mirror of https://github.com/nmlgc/ReC98.git
116 lines
2.7 KiB
NASM
116 lines
2.7 KiB
NASM
;
|
|
; +-------------------------------------------------------------------------+
|
|
; | This file has been generated by The Interactive Disassembler (IDA) |
|
|
; | Copyright (c) 2009 by Hex-Rays, <support@hex-rays.com> |
|
|
; +-------------------------------------------------------------------------+
|
|
;
|
|
; Input MD5 : 5E401A5CD3D8D42DC67130359C42A7CF
|
|
|
|
; File Name : th05/ZUN.COM:MEMCHK (-M)
|
|
; Format : MS-DOS COM-file
|
|
; Base Address: 0h Range: 100h-237h Loaded length: 137h
|
|
; OS type : MS DOS
|
|
; Application type: Executable 16bit
|
|
|
|
.186
|
|
.model tiny
|
|
.code
|
|
org 100h
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
public start
|
|
start proc near
|
|
mov bx, 567
|
|
shr bx, 4
|
|
add bx, 17
|
|
mov ah, 4Ah
|
|
int 21h ; DOS - 2+ - ADJUST MEMORY BLOCK SIZE (SETBLOCK)
|
|
; ES = segment address of block to change
|
|
; BX = new size in paragraphs
|
|
shl bx, 4
|
|
mov sp, bx
|
|
mov dx, offset aVavVVGbgcgugbg ; "あなたのメインメモリ空き容量は $"
|
|
mov ah, 9
|
|
int 21h ; DOS - PRINT STRING
|
|
; DS:DX -> string terminated by "$"
|
|
mov bx, 0FFFFh
|
|
mov ah, 48h
|
|
int 21h ; DOS - 2+ - ALLOCATE MEMORY
|
|
; BX = number of 16-byte paragraphs desired
|
|
mov di, offset aVVVVKctgvVIVVv ; "それでは頑張って下さいね☆\r\n$"
|
|
cmp bx, 32500
|
|
jnb short loc_131
|
|
mov di, offset aVVxvVBagbgvgkv ; "ちょっと、メモリが足りないかも\r\nこのゲ"...
|
|
mov byte_236, 255
|
|
|
|
loc_131:
|
|
xor dx, dx
|
|
mov ax, 16
|
|
mul bx
|
|
mov cx, 10000
|
|
div cx
|
|
mov cx, 10
|
|
call sub_15F
|
|
mov ax, dx
|
|
mov cx, 1000
|
|
call sub_15F
|
|
mov dx, offset aGogcggvVV ; " バイトですの\r\n$"
|
|
mov ah, 9
|
|
int 21h ; DOS - PRINT STRING
|
|
; DS:DX -> string terminated by "$"
|
|
mov dx, di
|
|
mov ah, 9
|
|
int 21h ; DOS - PRINT STRING
|
|
; DS:DX -> string terminated by "$"
|
|
mov ah, 4Ch
|
|
mov al, byte_236
|
|
int 21h ; DOS - 2+ - QUIT WITH EXIT CODE (EXIT)
|
|
start endp ; AL = exit code
|
|
|
|
|
|
; =============== S U B R O U T I N E =======================================
|
|
|
|
|
|
sub_15F proc near
|
|
pushf
|
|
pusha
|
|
mov bx, ax
|
|
mov si, 10000
|
|
|
|
loc_166:
|
|
xor dx, dx
|
|
mov ax, bx
|
|
div si
|
|
mov bx, dx
|
|
cmp cx, si
|
|
jb short loc_17B
|
|
mov dl, al
|
|
add dl, '0'
|
|
mov ah, 2
|
|
int 21h ; DOS - DISPLAY OUTPUT
|
|
; DL = character to send to standard output
|
|
|
|
loc_17B:
|
|
xor dx, dx
|
|
mov ax, si
|
|
mov si, 10
|
|
div si
|
|
mov si, ax
|
|
cmp si, 0
|
|
jnz short loc_166
|
|
popa
|
|
popf
|
|
retn
|
|
sub_15F endp
|
|
|
|
; ---------------------------------------------------------------------------
|
|
aVavVVGbgcgugbg db 'あなたのメインメモリ空き容量は $'
|
|
aGogcggvVV db ' バイトですの',0Dh,0Ah,'$'
|
|
aVVxvVBagbgvgkv db 'ちょっと、メモリが足りないかも',0Dh,0Ah
|
|
db 'このゲームは空きメインメモリは 520000 バイトは必要ですわ',0Dh,0Ah,'$'
|
|
aVVVVKctgvVIVVv db 'それでは頑張って下さいね☆',0Dh,0Ah,'$'
|
|
byte_236 db 0
|
|
|
|
end start
|