ReC98/th05/formats/scoredat_main.asm

37 lines
927 B
NASM

public _scoredat_load_for_cur
_scoredat_load_for_cur proc near
mov ax, 3D00h
mov dx, offset aGENSOU_SCR
int 21h ; DOS - 2+ - OPEN DISK FILE WITH HANDLE
; DS:DX -> ASCIZ filename
; AL = access mode
; 0 - read
jnb short @@read
retn
; ---------------------------------------------------------------------------
@@read:
mov bx, ax
xor ah, ah
mov al, _playchar
imul ax, RANK_COUNT
add al, _rank
imul ax, size scoredat_section_t
mov dx, ax
xor cx, cx
mov ax, 4200h
int 21h ; DOS - 2+ - MOVE FILE READ/WRITE POINTER (LSEEK)
; AL = method: offset from beginning of file
mov ah, 3Fh
mov dx, offset _hi
mov cx, size scoredat_section_t
int 21h ; DOS - 2+ - READ FROM FILE WITH HANDLE
; BX = file handle, CX = number of bytes to read
; DS:DX -> buffer
mov ah, 3Eh
int 21h ; DOS - 2+ - CLOSE A FILE WITH HANDLE
; BX = file handle
call scoredat_decode
retn
_scoredat_load_for_cur endp