[Reduction] #193: bread

This function doesn't seem to be used outside pfopen(), and IDA struggles with
that function, which explains the missing references.
This commit is contained in:
nmlgc 2014-08-26 21:34:06 +02:00
parent 5d2d4feca0
commit fae5f003ad
13 changed files with 95 additions and 385 deletions

80
libs/master.lib/bread.asm Normal file
View File

@ -0,0 +1,80 @@
; master library - (pf.lib)
;
; Description:
; ファイルからの読み込み
;
; Functions/Procedures:
; int bread(void *buf,int size,bf_t bf);
;
; Parameters:
; buf 読み込み先
; size 読み込みバイトバイト数
; bf bfileハンドル
;
; Returns:
; 読み込んだバイト数
;
; Binding Target:
; Microsoft-C / Turbo-C / Turbo Pascal
;
; Running Target:
; MS-DOS
;
; Requiring Resources:
; CPU: 186
;
; Notes:
; buf+sizeが10000hを越えてはならない。
;
; Assembly Language Note:
;
;
; Compiler/Assembler:
; TASM 3.0
; OPTASM 1.6
;
; Author:
; iR
; 恋塚昭彦
;
; Revision History:
; BREAD.ASM 607 94-05-30 13:43
; 95/ 1/10 Initial: bread.asm/master.lib 0.23
func BREAD ; bread() {
push BP
mov BP,SP
push SI
push DI
;arg buf:dataptr,siz:word,bf:word
buf = (RETSIZE+3)*2
siz = (RETSIZE+2)*2
bf = (RETSIZE+1)*2
mov DI,[BP+buf]
mov SI,[BP+siz]
cmp SI,0
jle short @@_return
@@_loop: push word ptr [BP+bf]
_call BGETC
inc AH
jz short @@_return
s_mov [DI],AL
_mov ES,[BP+buf+2]
_mov ES:[DI],AL
inc DI
dec SI
jnz short @@_loop
@@_return:
mov AX,DI
sub AX,[BP+buf]
pop DI
pop SI
pop BP
ret (2+DATASIZE)*2
endfunc ; }

View File

@ -120,48 +120,7 @@ loc_5C1:
retf 4
sub_574 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_5C8 proc far
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
arg_6 = word ptr 0Ch
push bp
mov bp, sp
push si
push di
mov di, [bp+arg_4]
mov si, [bp+arg_2]
cmp si, 0
jle short loc_5ED
loc_5D8:
push [bp+arg_0]
call bgetc
inc ah
jz short loc_5ED
mov es, [bp+arg_6]
mov es:[di], al
inc di
dec si
jnz short loc_5D8
loc_5ED:
mov ax, di
sub ax, [bp+arg_4]
pop di
pop si
pop bp
retf 8
sub_5C8 endp
include libs/master.lib/bread.asm
; ---------------------------------------------------------------------------
push bp
@ -5914,8 +5873,7 @@ loc_3D20:
push di
push 20h ; ' '
push word ptr es:0
push cs
call near ptr sub_5C8
call bread
inc byte_1E309
cmp byte_1E309, 0FFh
mov bx, 2

View File

@ -161,49 +161,7 @@ loc_605:
retf 4
sub_5B8 endp
; ---------------------------------------------------------------------------
nop
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_60C proc far
arg_0 = word ptr 6
arg_2 = word ptr 8
arg_4 = word ptr 0Ah
arg_6 = word ptr 0Ch
push bp
mov bp, sp
push si
push di
mov di, [bp+arg_4]
mov si, [bp+arg_2]
cmp si, 0
jle short loc_631
loc_61C:
push [bp+arg_0]
call bgetc
inc ah
jz short loc_631
mov es, [bp+arg_6]
mov es:[di], al
inc di
dec si
jnz short loc_61C
loc_631:
mov ax, di
sub ax, [bp+arg_4]
pop di
pop si
pop bp
retf 8
sub_60C endp
include libs/master.lib/bread.asm
; =============== S U B R O U T I N E =======================================
@ -3588,8 +3546,7 @@ loc_2C26:
push di
push 20h ; ' '
push word ptr es:0
push cs
call near ptr sub_60C
call bread
inc byte_D713
cmp byte_D713, 0FFh
mov bx, 2

View File

@ -152,34 +152,7 @@ loc_605:
pop bp
retf 4
; ---------------------------------------------------------------------------
nop
push bp
mov bp, sp
push si
push di
mov di, [bp+0Ah]
mov si, [bp+8]
cmp si, 0
jle short loc_631
loc_61C:
push word ptr [bp+6]
call bgetc
inc ah
jz short loc_631
mov es, word ptr [bp+0Ch]
mov es:[di], al
inc di
dec si
jnz short loc_61C
loc_631:
mov ax, di
sub ax, [bp+0Ah]
pop di
pop si
pop bp
retf 8
include libs/master.lib/bread.asm
; ---------------------------------------------------------------------------
push bp
mov bp, sp

View File

@ -110,34 +110,7 @@ loc_5C1:
pop bp
retf 4
; ---------------------------------------------------------------------------
nop
push bp
mov bp, sp
push si
push di
mov di, [bp+0Ah]
mov si, [bp+8]
cmp si, 0
jle short loc_5ED
loc_5D8:
push word ptr [bp+6]
call bgetc
inc ah
jz short loc_5ED
mov es, word ptr [bp+0Ch]
mov es:[di], al
inc di
dec si
jnz short loc_5D8
loc_5ED:
mov ax, di
sub ax, [bp+0Ah]
pop di
pop si
pop bp
retf 8
include libs/master.lib/bread.asm
; ---------------------------------------------------------------------------
push bp
mov bp, sp

View File

@ -163,34 +163,7 @@ loc_605:
sub_5B8 endp
; ---------------------------------------------------------------------------
nop
push bp
mov bp, sp
push si
push di
mov di, [bp+0Ah]
mov si, [bp+8]
cmp si, 0
jle short loc_631
loc_61C:
push word ptr [bp+6]
call bgetc
inc ah
jz short loc_631
mov es, word ptr [bp+0Ch]
mov es:[di], al
inc di
dec si
jnz short loc_61C
loc_631:
mov ax, di
sub ax, [bp+0Ah]
pop di
pop si
pop bp
retf 8
include libs/master.lib/bread.asm
; ---------------------------------------------------------------------------
push bp
mov bp, sp

View File

@ -123,34 +123,7 @@ loc_5C1:
sub_574 endp
; ---------------------------------------------------------------------------
nop
push bp
mov bp, sp
push si
push di
mov di, [bp+0Ah]
mov si, [bp+8]
cmp si, 0
jle short loc_5ED
loc_5D8:
push word ptr [bp+6]
call bgetc
inc ah
jz short loc_5ED
mov es, word ptr [bp+0Ch]
mov es:[di], al
inc di
dec si
jnz short loc_5D8
loc_5ED:
mov ax, di
sub ax, [bp+0Ah]
pop di
pop si
pop bp
retf 8
include libs/master.lib/bread.asm
; ---------------------------------------------------------------------------
push bp
mov bp, sp

View File

@ -163,38 +163,7 @@ loc_6F1:
sub_6A4 endp
; ---------------------------------------------------------------------------
nop
push bp
mov bp, sp
push si
push di
mov di, [bp+0Ah]
mov si, [bp+8]
cmp si, 0
jle short loc_71D
loc_708:
push word ptr [bp+6]
call bgetc
inc ah
loc_711:
; sub_2266+9r
jz short loc_71D
mov es, word ptr [bp+0Ch]
mov es:[di], al
inc di
dec si
jnz short loc_708
loc_71D:
; seg000:loc_711j
mov ax, di
sub ax, [bp+0Ah]
pop di
pop si
pop bp
retf 8
include libs/master.lib/bread.asm
; ---------------------------------------------------------------------------
push bp
mov bp, sp
@ -3564,8 +3533,7 @@ arg_2 = word ptr 6
push di
xor ax, ax
mov es, ax
assume es:seg000
mov al, byte ptr es:loc_711+1
mov al, byte ptr es:[712h]
inc ax
mov dx, ax
shl dx, 1

View File

@ -162,37 +162,7 @@ loc_6F1:
sub_6A4 endp
; ---------------------------------------------------------------------------
nop
push bp
mov bp, sp
push si
push di
mov di, [bp+0Ah]
mov si, [bp+8]
cmp si, 0
jle short loc_71D
loc_708:
push word ptr [bp+6]
call bgetc
inc ah
loc_711:
jz short loc_71D
mov es, word ptr [bp+0Ch]
mov es:[di], al
inc di
dec si
jnz short loc_708
loc_71D:
; seg000:loc_711j
mov ax, di
sub ax, [bp+0Ah]
pop di
pop si
pop bp
retf 8
include libs/master.lib/bread.asm
; ---------------------------------------------------------------------------
push bp
mov bp, sp

View File

@ -151,38 +151,7 @@ loc_6F1:
pop bp
retf 4
; ---------------------------------------------------------------------------
nop
push bp
mov bp, sp
push si
push di
mov di, [bp+0Ah]
mov si, [bp+8]
cmp si, 0
jle short loc_71D
loc_708:
push word ptr [bp+6]
call bgetc
inc ah
loc_711:
; seg000:250Er ...
jz short loc_71D
mov es, word ptr [bp+0Ch]
mov es:[di], al
inc di
dec si
jnz short loc_708
loc_71D:
; seg000:loc_711j
mov ax, di
sub ax, [bp+0Ah]
pop di
pop si
pop bp
retf 8
include libs/master.lib/bread.asm
; ---------------------------------------------------------------------------
push bp
mov bp, sp

View File

@ -161,35 +161,7 @@ loc_6CF:
retf 4
sub_682 endp
; ---------------------------------------------------------------------------
nop
push bp
mov bp, sp
push si
push di
mov di, [bp+0Ah]
mov si, [bp+8]
cmp si, 0
jle short loc_6FB
loc_6E6:
push word ptr [bp+6]
call bgetc
inc ah
jz short loc_6FB
mov es, word ptr [bp+0Ch]
mov es:[di], al
inc di
dec si
jnz short loc_6E6
loc_6FB:
mov ax, di
sub ax, [bp+0Ah]
pop di
pop si
pop bp
retf 8
include libs/master.lib/bread.asm
; ---------------------------------------------------------------------------
push bp
mov bp, sp

View File

@ -162,35 +162,7 @@ loc_6CF:
retf 4
sub_682 endp
; ---------------------------------------------------------------------------
nop
push bp
mov bp, sp
push si
push di
mov di, [bp+0Ah]
mov si, [bp+8]
cmp si, 0
jle short loc_6FB
loc_6E6:
push word ptr [bp+6]
call bgetc
inc ah
jz short loc_6FB
mov es, word ptr [bp+0Ch]
mov es:[di], al
inc di
dec si
jnz short loc_6E6
loc_6FB:
mov ax, di
sub ax, [bp+0Ah]
pop di
pop si
pop bp
retf 8
include libs/master.lib/bread.asm
; ---------------------------------------------------------------------------
push bp
mov bp, sp

View File

@ -160,35 +160,7 @@ loc_6CF:
retf 4
sub_682 endp
; ---------------------------------------------------------------------------
nop
push bp
mov bp, sp
push si
push di
mov di, [bp+0Ah]
mov si, [bp+8]
cmp si, 0
jle short loc_6FB
loc_6E6:
push word ptr [bp+6]
call bgetc
inc ah
jz short loc_6FB
mov es, word ptr [bp+0Ch]
mov es:[di], al
inc di
dec si
jnz short loc_6E6
loc_6FB:
mov ax, di
sub ax, [bp+0Ah]
pop di
pop si
pop bp
retf 8
include libs/master.lib/bread.asm
; ---------------------------------------------------------------------------
push bp
mov bp, sp