ReC98/libs/master.lib/bfill.asm

81 lines
1.2 KiB
NASM

; master library - (pf.lib)
;
; Description:
; 読み込みバッファへの充填と先頭バイトの読み込み
;
; Functions/Procedures:
; int bfill(bf_t bf);
;
; Parameters:
; bf bファイルハンドル
;
; Returns:
; -1 ファイル終端に達したので1バイトも読めなかった
; 0〜255 バッファの先頭バイト(充填成功)
;
; Binding Target:
; Microsoft-C / Turbo-C / Turbo Pascal
;
; Running Target:
; MS-DOS
;
; Requiring Resources:
; CPU: 186
;
; Notes:
;
;
; Assembly Language Note:
;
;
; Compiler/Assembler:
; TASM 3.0
; OPTASM 1.6
;
; Author:
; iR
; 恋塚昭彦
;
; Revision History:
; BFILL.ASM 571 94-05-26 22:44
; 95/ 1/10 Initial: bfill.asm/master.lib 0.23
func BFILL ; bfill() {
push BP
mov BP,SP
push DS
;arg bf:word
@@bf = (RETSIZE+1)*2
mov DS,[BP+@@bf] ; BFILE構造体のセグメント
mov BX,DS:[b_hdl]
mov CX,DS:[b_siz]
lea DX,DS:[b_buff]
msdos ReadHandle
jc short @@_error
chk AX
jz short @@_error
@@_getc:
dec AX
mov DS:[b_left],AX
mov DS:[b_pos],1
mov AL,DS:[b_buff]
clr AH
pop DS
pop BP
ret (1)*2
@@_error:
clr AX
mov DS:[b_left],AX
dec AX ; mov AX,EOF
pop DS
pop BP
ret (1)*2
endfunc ; }