mirror of https://github.com/nmlgc/ReC98.git
[Reduction] #449: setvbuf
This commit is contained in:
parent
00e419e9da
commit
01a126da71
|
@ -0,0 +1,152 @@
|
|||
; int __cdecl setvbuf(FILE *fp, char *buf, int type, size_t size)
|
||||
_setvbuf proc DIST
|
||||
@@fp = DPTR_ dPtrSize + 2
|
||||
@@buf = DPTR_ dPtrSize + 2 + dPtrSize
|
||||
@@type = word ptr dPtrSize + 2 + (dPtrSize * 2)
|
||||
@@size = word ptr dPtrSize + 2 + (dPtrSize * 2) + 2
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
LES_ bx, [bp+@@fp]
|
||||
mov ax, ES_[bx+FILE.token]
|
||||
cmp ax, word ptr [bp+@@fp]
|
||||
jz short @@validType?
|
||||
jmp @@retEOF
|
||||
|
||||
@@validType?:
|
||||
cmp [bp+@@type], 2
|
||||
jle short @@tooLarge?
|
||||
jmp @@retEOF
|
||||
|
||||
@@tooLarge?:
|
||||
cmp [bp+@@size], 7FFFh
|
||||
jbe short @@stdoutStart?
|
||||
jmp @@retEOF
|
||||
|
||||
@@stdoutStart?:
|
||||
cmp _stdoutStarted, 0
|
||||
jnz short @@stdinStart?
|
||||
cmp word ptr [bp+@@fp], offset stdout
|
||||
jnz short @@stdinStart?
|
||||
mov _stdoutStarted, 1
|
||||
jmp short @@reposition?
|
||||
|
||||
@@stdinStart?:
|
||||
cmp _stdinStarted, 0
|
||||
jnz short @@reposition?
|
||||
cmp word ptr [bp+@@fp], offset stdin
|
||||
jnz short @@reposition?
|
||||
mov _stdinStarted, 1
|
||||
|
||||
@@reposition?:
|
||||
LES_ bx, [bp+@@fp]
|
||||
cmp ES_[bx+FILE.level], 0
|
||||
jz short @@freeBuffer?
|
||||
mov ax, 1
|
||||
push ax
|
||||
xor ax, ax
|
||||
push ax
|
||||
push ax
|
||||
if LDATA
|
||||
push word ptr [bp+@@fp+2]
|
||||
endif
|
||||
push bx
|
||||
nopcall _fseek
|
||||
add sp, 6 + dPtrSize
|
||||
|
||||
@@freeBuffer?:
|
||||
LES_ bx, [bp+@@fp]
|
||||
test byte ptr ES_[bx+FILE.flags], 4
|
||||
jz short @@resetBuffer
|
||||
if LDATA
|
||||
push word ptr ES_[bx+FILE._buffer+2]
|
||||
endif
|
||||
push word ptr ES_[bx+FILE._buffer]
|
||||
nopcall _free
|
||||
if LDATA
|
||||
pop cx
|
||||
endif
|
||||
pop cx
|
||||
|
||||
@@resetBuffer:
|
||||
LES_ bx, [bp+@@fp]
|
||||
and ES_[bx+FILE.flags], 0FFF3h
|
||||
mov ES_[bx+FILE._bsize], 0
|
||||
if LDATA
|
||||
mov dx, word ptr [bp+@@fp+2]
|
||||
endif
|
||||
mov ax, word ptr [bp+@@fp]
|
||||
add ax, FILE.hold
|
||||
if LDATA
|
||||
mov word ptr ES_[bx+FILE._buffer+2], dx
|
||||
mov word ptr ES_[bx+FILE._buffer], ax
|
||||
mov word ptr ES_[bx+FILE._curp+2], dx
|
||||
else
|
||||
mov word ptr ES_[bx+FILE._buffer], ax
|
||||
endif
|
||||
mov word ptr ES_[bx+FILE._curp], ax
|
||||
cmp [bp+@@type], 2
|
||||
jz short @@ret0
|
||||
cmp [bp+@@size], 0
|
||||
jbe short @@ret0
|
||||
if LDATA
|
||||
mov word ptr _exitbuf+2, seg __xfflush
|
||||
mov word ptr _exitbuf, offset __xfflush
|
||||
mov ax, word ptr [bp+@@buf]
|
||||
or ax, word ptr [bp+@@buf+2]
|
||||
else
|
||||
mov word ptr _exitbuf, offset __xfflush
|
||||
cmp word ptr [bp+@@buf], 0
|
||||
endif
|
||||
jnz short @@setBuffer
|
||||
push [bp+@@size]
|
||||
nopcall _malloc
|
||||
pop cx
|
||||
if LDATA
|
||||
mov word ptr [bp+@@buf+2], dx
|
||||
mov word ptr [bp+@@buf], ax
|
||||
or ax, dx
|
||||
else
|
||||
mov word ptr [bp+@@buf], ax
|
||||
or ax, ax
|
||||
endif
|
||||
jz short @@retEOF
|
||||
LES_ bx, [bp+@@fp]
|
||||
or ES_[bx+FILE.flags], 4
|
||||
jmp short @@setBuffer
|
||||
|
||||
@@retEOF:
|
||||
mov ax, 0FFFFh
|
||||
jmp short @@ret
|
||||
|
||||
@@setBuffer:
|
||||
LES_ bx, [bp+@@fp]
|
||||
if LDATA
|
||||
mov dx, word ptr [bp+@@buf+2]
|
||||
mov ax, word ptr [bp+@@buf]
|
||||
mov word ptr ES_[bx+FILE._curp+2], dx
|
||||
mov word ptr ES_[bx+FILE._curp], ax
|
||||
mov word ptr ES_[bx+FILE._buffer+2], dx
|
||||
mov word ptr ES_[bx+FILE._buffer], ax
|
||||
else
|
||||
mov ax, word ptr [bp+@@buf]
|
||||
mov word ptr ES_[bx+FILE._curp], ax
|
||||
mov word ptr ES_[bx+FILE._buffer], ax
|
||||
endif
|
||||
mov ax, [bp+@@size]
|
||||
mov ES_[bx+FILE._bsize], ax
|
||||
cmp [bp+@@type], 1
|
||||
jnz short @@ret0
|
||||
or ES_[bx+FILE.flags], 8
|
||||
|
||||
@@ret0:
|
||||
xor ax, ax
|
||||
|
||||
@@ret:
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
ret
|
||||
_setvbuf endp
|
|
@ -0,0 +1,2 @@
|
|||
_stdinStarted dw 0
|
||||
_stdoutStarted dw 0
|
150
th01_fuuin.asm
150
th01_fuuin.asm
|
@ -5931,9 +5931,7 @@ loc_3FD9:
|
|||
push ax ; buf
|
||||
push word ptr [bp+stream+2]
|
||||
push word ptr [bp+stream] ; stream
|
||||
nop
|
||||
push cs
|
||||
call near ptr _setvbuf
|
||||
nopcall _setvbuf
|
||||
add sp, 0Ch
|
||||
or ax, ax
|
||||
jz short loc_4003
|
||||
|
@ -7700,148 +7698,7 @@ loc_52C5:
|
|||
retf
|
||||
sub_5189 endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
|
||||
_setvbuf proc far
|
||||
|
||||
stream = dword ptr 6
|
||||
buf = word ptr 0Ah
|
||||
arg_6 = word ptr 0Ch
|
||||
_type = word ptr 0Eh
|
||||
_size = word ptr 10h
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
les bx, [bp+stream]
|
||||
mov ax, es:[bx+12h]
|
||||
cmp ax, word ptr [bp+stream]
|
||||
jz short loc_52DF
|
||||
jmp loc_53B6
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_52DF:
|
||||
cmp [bp+_type], 2
|
||||
jle short loc_52E8
|
||||
jmp loc_53B6
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_52E8:
|
||||
cmp [bp+_size], 7FFFh
|
||||
jbe short loc_52F2
|
||||
jmp loc_53B6
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_52F2:
|
||||
cmp word_13C9A, 0
|
||||
jnz short loc_5308
|
||||
cmp word ptr [bp+stream], 0CBEh
|
||||
jnz short loc_5308
|
||||
mov word_13C9A, 1
|
||||
jmp short loc_531C
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5308:
|
||||
cmp word_13C98, 0
|
||||
jnz short loc_531C
|
||||
cmp word ptr [bp+stream], 0CAAh
|
||||
jnz short loc_531C
|
||||
mov word_13C98, 1
|
||||
|
||||
loc_531C:
|
||||
les bx, [bp+stream]
|
||||
cmp word ptr es:[bx], 0
|
||||
jz short loc_5339
|
||||
mov ax, 1
|
||||
push ax ; whence
|
||||
xor ax, ax
|
||||
push ax
|
||||
push ax ; offset
|
||||
push word ptr [bp+stream+2]
|
||||
push bx ; stream
|
||||
nopcall _fseek
|
||||
add sp, 0Ah
|
||||
|
||||
loc_5339:
|
||||
les bx, [bp+stream]
|
||||
test byte ptr es:[bx+2], 4
|
||||
jz short loc_5352
|
||||
push word ptr es:[bx+0Ah]
|
||||
push word ptr es:[bx+8]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _farfree
|
||||
pop cx
|
||||
pop cx
|
||||
|
||||
loc_5352:
|
||||
les bx, [bp+stream]
|
||||
and word ptr es:[bx+2], 0FFF3h
|
||||
mov word ptr es:[bx+6], 0
|
||||
mov dx, word ptr [bp+stream+2]
|
||||
mov ax, word ptr [bp+stream]
|
||||
add ax, 5
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
cmp [bp+_type], 2
|
||||
jz short loc_53E6
|
||||
cmp [bp+_size], 0
|
||||
jbe short loc_53E6
|
||||
mov word ptr _exitbuf+2, seg seg000
|
||||
mov word ptr _exitbuf, 57C9h
|
||||
mov ax, [bp+buf]
|
||||
or ax, [bp+arg_6]
|
||||
jnz short loc_53BB
|
||||
push [bp+_size]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _malloc
|
||||
pop cx
|
||||
mov [bp+arg_6], dx
|
||||
mov [bp+buf], ax
|
||||
or ax, dx
|
||||
jz short loc_53B6
|
||||
les bx, [bp+stream]
|
||||
or word ptr es:[bx+2], 4
|
||||
jmp short loc_53BB
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_53B6:
|
||||
mov ax, 0FFFFh
|
||||
jmp short loc_53E8
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_53BB:
|
||||
les bx, [bp+stream]
|
||||
mov dx, [bp+arg_6]
|
||||
mov ax, [bp+buf]
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov ax, [bp+_size]
|
||||
mov es:[bx+6], ax
|
||||
cmp [bp+_type], 1
|
||||
jnz short loc_53E6
|
||||
or word ptr es:[bx+2], 8
|
||||
|
||||
loc_53E6:
|
||||
xor ax, ax
|
||||
|
||||
loc_53E8:
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_setvbuf endp
|
||||
|
||||
include libs/BorlandC/setvbuf.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
@ -28833,8 +28690,7 @@ include libs/BorlandC/putc[data].asm
|
|||
db 0
|
||||
db 5Ch ; \
|
||||
db 0
|
||||
word_13C98 dw 0
|
||||
word_13C9A dw 0
|
||||
include libs/BorlandC/setvbuf[data].asm
|
||||
include libs/BorlandC/sysnerr[data].asm
|
||||
include libs/BorlandC/xx[data].asm
|
||||
aPrintScanfFloa db 'print scanf : floating point formats not linked',0Dh,0Ah,0
|
||||
|
|
157
th01_op.asm
157
th01_op.asm
|
@ -5924,8 +5924,7 @@ loc_40B1:
|
|||
push ax
|
||||
push word ptr [bp+buf+2] ; buf
|
||||
push word ptr [bp+buf]
|
||||
nop
|
||||
call _setvbuf
|
||||
nopcall _setvbuf
|
||||
add sp, 0Ch
|
||||
or ax, ax
|
||||
jz short loc_40DB
|
||||
|
@ -7603,154 +7602,7 @@ loc_5543:
|
|||
retf
|
||||
sub_5407 endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
|
||||
_setvbuf proc far
|
||||
|
||||
stream = dword ptr 4
|
||||
buf = dword ptr 8
|
||||
_type = word ptr 0Ch
|
||||
_size = word ptr 0Eh
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
_setvbuf endp ; sp-analysis failed
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function
|
||||
|
||||
sub_554E proc far
|
||||
les bx, [bp+6]
|
||||
mov ax, es:[bx+12h]
|
||||
cmp ax, [bp+6]
|
||||
jz short loc_555D
|
||||
jmp loc_5634
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_555D:
|
||||
cmp word ptr [bp+0Eh], 2
|
||||
jle short loc_5566
|
||||
jmp loc_5634
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5566:
|
||||
cmp word ptr [bp+10h], 7FFFh
|
||||
jbe short loc_5570
|
||||
jmp loc_5634
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5570:
|
||||
cmp word_131DA, 0
|
||||
jnz short loc_5586
|
||||
cmp word ptr [bp+6], 0A0Eh
|
||||
jnz short loc_5586
|
||||
mov word_131DA, 1
|
||||
jmp short loc_559A
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5586:
|
||||
cmp word_131D8, 0
|
||||
jnz short loc_559A
|
||||
cmp word ptr [bp+6], 9FAh
|
||||
jnz short loc_559A
|
||||
mov word_131D8, 1
|
||||
|
||||
loc_559A:
|
||||
les bx, [bp+6]
|
||||
cmp word ptr es:[bx], 0
|
||||
jz short loc_55B7
|
||||
mov ax, 1
|
||||
push ax ; whence
|
||||
xor ax, ax
|
||||
push ax
|
||||
push ax ; offset
|
||||
push word ptr [bp+8]
|
||||
push bx ; stream
|
||||
nopcall _fseek
|
||||
add sp, 0Ah
|
||||
|
||||
loc_55B7:
|
||||
les bx, [bp+6]
|
||||
test byte ptr es:[bx+2], 4
|
||||
jz short loc_55D0
|
||||
push word ptr es:[bx+0Ah]
|
||||
push word ptr es:[bx+8]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _farfree
|
||||
pop cx
|
||||
pop cx
|
||||
|
||||
loc_55D0:
|
||||
les bx, [bp+6]
|
||||
and word ptr es:[bx+2], 0FFF3h
|
||||
mov word ptr es:[bx+6], 0
|
||||
mov dx, [bp+8]
|
||||
mov ax, [bp+6]
|
||||
add ax, 5
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
cmp word ptr [bp+0Eh], 2
|
||||
jz short loc_5664
|
||||
cmp word ptr [bp+10h], 0
|
||||
jbe short loc_5664
|
||||
mov word ptr _exitbuf+2, seg seg000
|
||||
mov word ptr _exitbuf, 5A44h
|
||||
mov ax, [bp+0Ah]
|
||||
or ax, [bp+0Ch]
|
||||
jnz short loc_5639
|
||||
push word ptr [bp+10h]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _malloc
|
||||
pop cx
|
||||
mov [bp+0Ch], dx
|
||||
mov [bp+0Ah], ax
|
||||
or ax, dx
|
||||
jz short loc_5634
|
||||
les bx, [bp+6]
|
||||
or word ptr es:[bx+2], 4
|
||||
jmp short loc_5639
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5634:
|
||||
mov ax, 0FFFFh
|
||||
jmp short loc_5666
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5639:
|
||||
les bx, [bp+6]
|
||||
mov dx, [bp+0Ch]
|
||||
mov ax, [bp+0Ah]
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov ax, [bp+10h]
|
||||
mov es:[bx+6], ax
|
||||
cmp word ptr [bp+0Eh], 1
|
||||
jnz short loc_5664
|
||||
or word ptr es:[bx+2], 8
|
||||
|
||||
loc_5664:
|
||||
xor ax, ax
|
||||
|
||||
loc_5666:
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
sub_554E endp ; sp-analysis failed
|
||||
include libs/BorlandC/setvbuf.asm
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
push bp
|
||||
|
@ -26410,10 +26262,7 @@ include libs/BorlandC/putc[data].asm
|
|||
db 0
|
||||
db 5Ch ; \
|
||||
db 0
|
||||
word_131D8 dw 0
|
||||
; sub_554E+46w
|
||||
word_131DA dw 0
|
||||
; sub_554E+30w
|
||||
include libs/BorlandC/setvbuf[data].asm
|
||||
include libs/BorlandC/sysnerr[data].asm
|
||||
include libs/BorlandC/xx[data].asm
|
||||
aPrintScanfFloa db 'print scanf : floating point formats not linked',0Dh,0Ah,0
|
||||
|
|
150
th01_reiiden.asm
150
th01_reiiden.asm
|
@ -9290,9 +9290,7 @@ loc_5631:
|
|||
push ax ; buf
|
||||
push word ptr [bp+stream+2]
|
||||
push word ptr [bp+stream] ; stream
|
||||
nop
|
||||
push cs
|
||||
call near ptr _setvbuf
|
||||
nopcall _setvbuf
|
||||
add sp, 0Ch
|
||||
or ax, ax
|
||||
jz short loc_565B
|
||||
|
@ -11064,148 +11062,7 @@ loc_6941:
|
|||
retf
|
||||
sub_6805 endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
|
||||
_setvbuf proc far
|
||||
|
||||
stream = dword ptr 6
|
||||
buf = word ptr 0Ah
|
||||
arg_6 = word ptr 0Ch
|
||||
_type = word ptr 0Eh
|
||||
_size = word ptr 10h
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
les bx, [bp+stream]
|
||||
mov ax, es:[bx+12h]
|
||||
cmp ax, word ptr [bp+stream]
|
||||
jz short loc_695B
|
||||
jmp loc_6A32
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_695B:
|
||||
cmp [bp+_type], 2
|
||||
jle short loc_6964
|
||||
jmp loc_6A32
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_6964:
|
||||
cmp [bp+_size], 7FFFh
|
||||
jbe short loc_696E
|
||||
jmp loc_6A32
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_696E:
|
||||
cmp word_369C6, 0
|
||||
jnz short loc_6984
|
||||
cmp word ptr [bp+stream], 1A6Ah
|
||||
jnz short loc_6984
|
||||
mov word_369C6, 1
|
||||
jmp short loc_6998
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_6984:
|
||||
cmp word_369C4, 0
|
||||
jnz short loc_6998
|
||||
cmp word ptr [bp+stream], 1A56h
|
||||
jnz short loc_6998
|
||||
mov word_369C4, 1
|
||||
|
||||
loc_6998:
|
||||
les bx, [bp+stream]
|
||||
cmp word ptr es:[bx], 0
|
||||
jz short loc_69B5
|
||||
mov ax, 1
|
||||
push ax ; whence
|
||||
xor ax, ax
|
||||
push ax
|
||||
push ax ; offset
|
||||
push word ptr [bp+stream+2]
|
||||
push bx ; stream
|
||||
nopcall _fseek
|
||||
add sp, 0Ah
|
||||
|
||||
loc_69B5:
|
||||
les bx, [bp+stream]
|
||||
test byte ptr es:[bx+2], 4
|
||||
jz short loc_69CE
|
||||
push word ptr es:[bx+0Ah]
|
||||
push word ptr es:[bx+8]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _farfree
|
||||
pop cx
|
||||
pop cx
|
||||
|
||||
loc_69CE:
|
||||
les bx, [bp+stream]
|
||||
and word ptr es:[bx+2], 0FFF3h
|
||||
mov word ptr es:[bx+6], 0
|
||||
mov dx, word ptr [bp+stream+2]
|
||||
mov ax, word ptr [bp+stream]
|
||||
add ax, 5
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
cmp [bp+_type], 2
|
||||
jz short loc_6A62
|
||||
cmp [bp+_size], 0
|
||||
jbe short loc_6A62
|
||||
mov word ptr _exitbuf+2, seg seg000
|
||||
mov word ptr _exitbuf, 6EB7h
|
||||
mov ax, [bp+buf]
|
||||
or ax, [bp+arg_6]
|
||||
jnz short loc_6A37
|
||||
push [bp+_size]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _malloc
|
||||
pop cx
|
||||
mov [bp+arg_6], dx
|
||||
mov [bp+buf], ax
|
||||
or ax, dx
|
||||
jz short loc_6A32
|
||||
les bx, [bp+stream]
|
||||
or word ptr es:[bx+2], 4
|
||||
jmp short loc_6A37
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_6A32:
|
||||
mov ax, 0FFFFh
|
||||
jmp short loc_6A64
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_6A37:
|
||||
les bx, [bp+stream]
|
||||
mov dx, [bp+arg_6]
|
||||
mov ax, [bp+buf]
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov ax, [bp+_size]
|
||||
mov es:[bx+6], ax
|
||||
cmp [bp+_type], 1
|
||||
jnz short loc_6A62
|
||||
or word ptr es:[bx+2], 8
|
||||
|
||||
loc_6A62:
|
||||
xor ax, ax
|
||||
|
||||
loc_6A64:
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_setvbuf endp
|
||||
|
||||
include libs/BorlandC/setvbuf.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
|
@ -47005,8 +46862,7 @@ include libs/BorlandC/putc[data].asm
|
|||
db 0
|
||||
db 5Ch ; \
|
||||
db 0
|
||||
word_369C4 dw 0
|
||||
word_369C6 dw 0
|
||||
include libs/BorlandC/setvbuf[data].asm
|
||||
include libs/BorlandC/sysnerr[data].asm
|
||||
include libs/BorlandC/xx[data].asm
|
||||
aPrintScanfFloa db 'print scanf : floating point formats not linked',0Dh,0Ah,0
|
||||
|
|
129
th01_zunsoft.asm
129
th01_zunsoft.asm
|
@ -960,131 +960,7 @@ include libs/BorlandC/nearheap.asm
|
|||
include libs/BorlandC/fflush.asm
|
||||
include libs/BorlandC/flushall.asm
|
||||
include libs/BorlandC/fseek.asm
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
|
||||
_setvbuf proc near
|
||||
|
||||
stream = word ptr 4
|
||||
buf = word ptr 6
|
||||
_type = word ptr 8
|
||||
_size = word ptr 0Ah
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
mov bx, [bp+stream]
|
||||
mov ax, [bx+0Eh]
|
||||
cmp ax, [bp+stream]
|
||||
jz short loc_1EC0
|
||||
jmp loc_1F6B
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_1EC0:
|
||||
cmp [bp+_type], 2
|
||||
jle short loc_1EC9
|
||||
jmp loc_1F6B
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_1EC9:
|
||||
cmp [bp+_size], 7FFFh
|
||||
jbe short loc_1ED3
|
||||
jmp loc_1F6B
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_1ED3:
|
||||
cmp word_2866, 0
|
||||
jnz short loc_1EE9
|
||||
cmp [bp+stream], 26A4h
|
||||
jnz short loc_1EE9
|
||||
mov word_2866, 1
|
||||
jmp short loc_1EFD
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_1EE9:
|
||||
cmp word_2864, 0
|
||||
jnz short loc_1EFD
|
||||
cmp [bp+stream], 2694h
|
||||
jnz short loc_1EFD
|
||||
mov word_2864, 1
|
||||
|
||||
loc_1EFD:
|
||||
mov bx, [bp+stream]
|
||||
cmp word ptr [bx], 0
|
||||
jz short loc_1F14
|
||||
mov ax, 1
|
||||
push ax ; whence
|
||||
xor ax, ax
|
||||
push ax
|
||||
push ax ; offset
|
||||
push bx ; stream
|
||||
call _fseek
|
||||
add sp, 8
|
||||
|
||||
loc_1F14:
|
||||
mov bx, [bp+stream]
|
||||
test byte ptr [bx+2], 4
|
||||
jz short loc_1F24
|
||||
push word ptr [bx+8] ; block
|
||||
call _free
|
||||
pop cx
|
||||
|
||||
loc_1F24:
|
||||
mov bx, [bp+stream]
|
||||
and word ptr [bx+2], 0FFF3h
|
||||
mov word ptr [bx+6], 0
|
||||
mov ax, [bp+stream]
|
||||
add ax, 5
|
||||
mov [bx+8], ax
|
||||
mov [bx+0Ah], ax
|
||||
cmp [bp+_type], 2
|
||||
jz short loc_1F8C
|
||||
cmp [bp+_size], 0
|
||||
jbe short loc_1F8C
|
||||
mov _exitbuf, 2128h
|
||||
cmp [bp+buf], 0
|
||||
jnz short loc_1F70
|
||||
push [bp+_size] ; size
|
||||
call _malloc
|
||||
pop cx
|
||||
mov [bp+buf], ax
|
||||
or ax, ax
|
||||
jz short loc_1F6B
|
||||
mov bx, [bp+stream]
|
||||
or word ptr [bx+2], 4
|
||||
jmp short loc_1F70
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_1F6B:
|
||||
mov ax, 0FFFFh
|
||||
jmp short loc_1F8E
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_1F70:
|
||||
mov bx, [bp+stream]
|
||||
mov ax, [bp+buf]
|
||||
mov [bx+0Ah], ax
|
||||
mov [bx+8], ax
|
||||
mov ax, [bp+_size]
|
||||
mov [bx+6], ax
|
||||
cmp [bp+_type], 1
|
||||
jnz short loc_1F8C
|
||||
or word ptr [bx+2], 8
|
||||
|
||||
loc_1F8C:
|
||||
xor ax, ax
|
||||
|
||||
loc_1F8E:
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retn
|
||||
_setvbuf endp
|
||||
|
||||
include libs/BorlandC/setvbuf.asm
|
||||
include libs/BorlandC/_strlen.asm
|
||||
include libs/BorlandC/write.asm
|
||||
include libs/BorlandC/writea.asm
|
||||
|
@ -1123,8 +999,7 @@ include libs/BorlandC/__IOERROR[data].asm
|
|||
db 0
|
||||
__stklen dw 1000h
|
||||
include libs/BorlandC/nearheap[data].asm
|
||||
word_2864 dw 0
|
||||
word_2866 dw 0
|
||||
include libs/BorlandC/setvbuf[data].asm
|
||||
include libs/BorlandC/sysnerr[data].asm
|
||||
|
||||
InitStart label byte
|
||||
|
|
147
th02_main.asm
147
th02_main.asm
|
@ -4028,147 +4028,7 @@ loc_6993:
|
|||
retf
|
||||
sub_6857 endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
|
||||
_setvbuf proc far
|
||||
|
||||
stream = dword ptr 6
|
||||
buf = dword ptr 0Ah
|
||||
_type = word ptr 0Eh
|
||||
_size = word ptr 10h
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
les bx, [bp+stream]
|
||||
mov ax, es:[bx+12h]
|
||||
cmp ax, word ptr [bp+stream]
|
||||
jz short loc_69AD
|
||||
jmp loc_6A84
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_69AD:
|
||||
cmp [bp+_type], 2
|
||||
jle short loc_69B6
|
||||
jmp loc_6A84
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_69B6:
|
||||
cmp [bp+_size], 7FFFh
|
||||
jbe short loc_69C0
|
||||
jmp loc_6A84
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_69C0:
|
||||
cmp word_1F39A, 0
|
||||
jnz short loc_69D6
|
||||
cmp word ptr [bp+stream], 14A4h
|
||||
jnz short loc_69D6
|
||||
mov word_1F39A, 1
|
||||
jmp short loc_69EA
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_69D6:
|
||||
cmp word_1F398, 0
|
||||
jnz short loc_69EA
|
||||
cmp word ptr [bp+stream], 1490h
|
||||
jnz short loc_69EA
|
||||
mov word_1F398, 1
|
||||
|
||||
loc_69EA:
|
||||
les bx, [bp+stream]
|
||||
cmp word ptr es:[bx], 0
|
||||
jz short loc_6A07
|
||||
mov ax, 1
|
||||
push ax ; whence
|
||||
xor ax, ax
|
||||
push ax
|
||||
push ax ; offset
|
||||
push word ptr [bp+stream+2]
|
||||
push bx ; stream
|
||||
nopcall _fseek
|
||||
add sp, 0Ah
|
||||
|
||||
loc_6A07:
|
||||
les bx, [bp+stream]
|
||||
test byte ptr es:[bx+2], 4
|
||||
jz short loc_6A20
|
||||
push word ptr es:[bx+0Ah]
|
||||
push word ptr es:[bx+8]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _farfree
|
||||
pop cx
|
||||
pop cx
|
||||
|
||||
loc_6A20:
|
||||
les bx, [bp+stream]
|
||||
and word ptr es:[bx+2], 0FFF3h
|
||||
mov word ptr es:[bx+6], 0
|
||||
mov dx, word ptr [bp+stream+2]
|
||||
mov ax, word ptr [bp+stream]
|
||||
add ax, 5
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
cmp [bp+_type], 2
|
||||
jz short loc_6AB4
|
||||
cmp [bp+_size], 0
|
||||
jbe short loc_6AB4
|
||||
mov word ptr _exitbuf+2, seg seg000
|
||||
mov word ptr _exitbuf, 6DC2h
|
||||
mov ax, word ptr [bp+buf]
|
||||
or ax, word ptr [bp+buf+2]
|
||||
jnz short loc_6A89
|
||||
push [bp+_size]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _malloc
|
||||
pop cx
|
||||
mov word ptr [bp+buf+2], dx
|
||||
mov word ptr [bp+buf], ax
|
||||
or ax, dx
|
||||
jz short loc_6A84
|
||||
les bx, [bp+stream]
|
||||
or word ptr es:[bx+2], 4
|
||||
jmp short loc_6A89
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_6A84:
|
||||
mov ax, 0FFFFh
|
||||
jmp short loc_6AB6
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_6A89:
|
||||
les bx, [bp+stream]
|
||||
mov dx, word ptr [bp+buf+2]
|
||||
mov ax, word ptr [bp+buf]
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov ax, [bp+_size]
|
||||
mov es:[bx+6], ax
|
||||
cmp [bp+_type], 1
|
||||
jnz short loc_6AB4
|
||||
or word ptr es:[bx+2], 8
|
||||
|
||||
loc_6AB4:
|
||||
xor ax, ax
|
||||
|
||||
loc_6AB6:
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_setvbuf endp
|
||||
|
||||
include libs/BorlandC/setvbuf.asm
|
||||
include libs/BorlandC/_strcat.asm
|
||||
include libs/BorlandC/_strcmp.asm
|
||||
include libs/BorlandC/_strcpy.asm
|
||||
|
@ -42297,10 +42157,7 @@ dword_1F384 dd 0
|
|||
db 0
|
||||
db 5Ch ; \
|
||||
db 0
|
||||
word_1F398 dw 0
|
||||
; _setvbuf+4Bw
|
||||
word_1F39A dw 0
|
||||
; _setvbuf+35w
|
||||
include libs/BorlandC/setvbuf[data].asm
|
||||
include libs/BorlandC/sysnerr[data].asm
|
||||
include libs/BorlandC/xx[data].asm
|
||||
include libs/BorlandC/setenvp[data].asm
|
||||
|
|
147
th02_maine.asm
147
th02_maine.asm
|
@ -2085,147 +2085,7 @@ loc_4D93:
|
|||
retf
|
||||
sub_4C57 endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
|
||||
_setvbuf proc far
|
||||
|
||||
stream = dword ptr 6
|
||||
buf = dword ptr 0Ah
|
||||
_type = word ptr 0Eh
|
||||
_size = word ptr 10h
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
les bx, [bp+stream]
|
||||
mov ax, es:[bx+12h]
|
||||
cmp ax, word ptr [bp+stream]
|
||||
jz short loc_4DAD
|
||||
jmp loc_4E84
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_4DAD:
|
||||
cmp [bp+_type], 2
|
||||
jle short loc_4DB6
|
||||
jmp loc_4E84
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_4DB6:
|
||||
cmp [bp+_size], 7FFFh
|
||||
jbe short loc_4DC0
|
||||
jmp loc_4E84
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_4DC0:
|
||||
cmp word_DC64, 0
|
||||
jnz short loc_4DD6
|
||||
cmp word ptr [bp+stream], 85Eh
|
||||
jnz short loc_4DD6
|
||||
mov word_DC64, 1
|
||||
jmp short loc_4DEA
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_4DD6:
|
||||
cmp word_DC62, 0
|
||||
jnz short loc_4DEA
|
||||
cmp word ptr [bp+stream], 84Ah
|
||||
jnz short loc_4DEA
|
||||
mov word_DC62, 1
|
||||
|
||||
loc_4DEA:
|
||||
les bx, [bp+stream]
|
||||
cmp word ptr es:[bx], 0
|
||||
jz short loc_4E07
|
||||
mov ax, 1
|
||||
push ax ; whence
|
||||
xor ax, ax
|
||||
push ax
|
||||
push ax ; offset
|
||||
push word ptr [bp+stream+2]
|
||||
push bx ; stream
|
||||
nopcall _fseek
|
||||
add sp, 0Ah
|
||||
|
||||
loc_4E07:
|
||||
les bx, [bp+stream]
|
||||
test byte ptr es:[bx+2], 4
|
||||
jz short loc_4E20
|
||||
push word ptr es:[bx+0Ah]
|
||||
push word ptr es:[bx+8]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _farfree
|
||||
pop cx
|
||||
pop cx
|
||||
|
||||
loc_4E20:
|
||||
les bx, [bp+stream]
|
||||
and word ptr es:[bx+2], 0FFF3h
|
||||
mov word ptr es:[bx+6], 0
|
||||
mov dx, word ptr [bp+stream+2]
|
||||
mov ax, word ptr [bp+stream]
|
||||
add ax, 5
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
cmp [bp+_type], 2
|
||||
jz short loc_4EB4
|
||||
cmp [bp+_size], 0
|
||||
jbe short loc_4EB4
|
||||
mov word ptr _exitbuf+2, seg seg000
|
||||
mov word ptr _exitbuf, 51C2h
|
||||
mov ax, word ptr [bp+buf]
|
||||
or ax, word ptr [bp+buf+2]
|
||||
jnz short loc_4E89
|
||||
push [bp+_size]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _malloc
|
||||
pop cx
|
||||
mov word ptr [bp+buf+2], dx
|
||||
mov word ptr [bp+buf], ax
|
||||
or ax, dx
|
||||
jz short loc_4E84
|
||||
les bx, [bp+stream]
|
||||
or word ptr es:[bx+2], 4
|
||||
jmp short loc_4E89
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_4E84:
|
||||
mov ax, 0FFFFh
|
||||
jmp short loc_4EB6
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_4E89:
|
||||
les bx, [bp+stream]
|
||||
mov dx, word ptr [bp+buf+2]
|
||||
mov ax, word ptr [bp+buf]
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov ax, [bp+_size]
|
||||
mov es:[bx+6], ax
|
||||
cmp [bp+_type], 1
|
||||
jnz short loc_4EB4
|
||||
or word ptr es:[bx+2], 8
|
||||
|
||||
loc_4EB4:
|
||||
xor ax, ax
|
||||
|
||||
loc_4EB6:
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_setvbuf endp
|
||||
|
||||
include libs/BorlandC/setvbuf.asm
|
||||
include libs/BorlandC/_strcat.asm
|
||||
include libs/BorlandC/_strcmp.asm
|
||||
include libs/BorlandC/_strcpy.asm
|
||||
|
@ -8868,10 +8728,7 @@ dword_DC4E dd 0
|
|||
dw 0
|
||||
db 5Ch ; \
|
||||
db 0
|
||||
word_DC62 dw 0
|
||||
; _setvbuf+4Bw
|
||||
word_DC64 dw 0
|
||||
; _setvbuf+35w
|
||||
include libs/BorlandC/setvbuf[data].asm
|
||||
include libs/BorlandC/sysnerr[data].asm
|
||||
include libs/BorlandC/xx[data].asm
|
||||
include libs/BorlandC/setenvp[data].asm
|
||||
|
|
147
th02_op.asm
147
th02_op.asm
|
@ -1688,147 +1688,7 @@ loc_53E0:
|
|||
retf
|
||||
sub_52A4 endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
|
||||
_setvbuf proc far
|
||||
|
||||
stream = dword ptr 6
|
||||
buf = dword ptr 0Ah
|
||||
_type = word ptr 0Eh
|
||||
_size = word ptr 10h
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
les bx, [bp+stream]
|
||||
mov ax, es:[bx+12h]
|
||||
cmp ax, word ptr [bp+stream]
|
||||
jz short loc_53FA
|
||||
jmp loc_54D1
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_53FA:
|
||||
cmp [bp+_type], 2
|
||||
jle short loc_5403
|
||||
jmp loc_54D1
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5403:
|
||||
cmp [bp+_size], 7FFFh
|
||||
jbe short loc_540D
|
||||
jmp loc_54D1
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_540D:
|
||||
cmp word_E72A, 0
|
||||
jnz short loc_5423
|
||||
cmp word ptr [bp+stream], 0C74h
|
||||
jnz short loc_5423
|
||||
mov word_E72A, 1
|
||||
jmp short loc_5437
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5423:
|
||||
cmp word_E728, 0
|
||||
jnz short loc_5437
|
||||
cmp word ptr [bp+stream], 0C60h
|
||||
jnz short loc_5437
|
||||
mov word_E728, 1
|
||||
|
||||
loc_5437:
|
||||
les bx, [bp+stream]
|
||||
cmp word ptr es:[bx], 0
|
||||
jz short loc_5454
|
||||
mov ax, 1
|
||||
push ax ; whence
|
||||
xor ax, ax
|
||||
push ax
|
||||
push ax ; offset
|
||||
push word ptr [bp+stream+2]
|
||||
push bx ; stream
|
||||
nopcall _fseek
|
||||
add sp, 0Ah
|
||||
|
||||
loc_5454:
|
||||
les bx, [bp+stream]
|
||||
test byte ptr es:[bx+2], 4
|
||||
jz short loc_546D
|
||||
push word ptr es:[bx+0Ah]
|
||||
push word ptr es:[bx+8]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _farfree
|
||||
pop cx
|
||||
pop cx
|
||||
|
||||
loc_546D:
|
||||
les bx, [bp+stream]
|
||||
and word ptr es:[bx+2], 0FFF3h
|
||||
mov word ptr es:[bx+6], 0
|
||||
mov dx, word ptr [bp+stream+2]
|
||||
mov ax, word ptr [bp+stream]
|
||||
add ax, 5
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
cmp [bp+_type], 2
|
||||
jz short loc_5501
|
||||
cmp [bp+_size], 0
|
||||
jbe short loc_5501
|
||||
mov word ptr _exitbuf+2, seg seg000
|
||||
mov word ptr _exitbuf, 580Fh
|
||||
mov ax, word ptr [bp+buf]
|
||||
or ax, word ptr [bp+buf+2]
|
||||
jnz short loc_54D6
|
||||
push [bp+_size]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _malloc
|
||||
pop cx
|
||||
mov word ptr [bp+buf+2], dx
|
||||
mov word ptr [bp+buf], ax
|
||||
or ax, dx
|
||||
jz short loc_54D1
|
||||
les bx, [bp+stream]
|
||||
or word ptr es:[bx+2], 4
|
||||
jmp short loc_54D6
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_54D1:
|
||||
mov ax, 0FFFFh
|
||||
jmp short loc_5503
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_54D6:
|
||||
les bx, [bp+stream]
|
||||
mov dx, word ptr [bp+buf+2]
|
||||
mov ax, word ptr [bp+buf]
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov ax, [bp+_size]
|
||||
mov es:[bx+6], ax
|
||||
cmp [bp+_type], 1
|
||||
jnz short loc_5501
|
||||
or word ptr es:[bx+2], 8
|
||||
|
||||
loc_5501:
|
||||
xor ax, ax
|
||||
|
||||
loc_5503:
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_setvbuf endp
|
||||
|
||||
include libs/BorlandC/setvbuf.asm
|
||||
include libs/BorlandC/_strcat.asm
|
||||
include libs/BorlandC/_strcmp.asm
|
||||
include libs/BorlandC/_strcpy.asm
|
||||
|
@ -9125,10 +8985,7 @@ dword_E714 dd 0
|
|||
db 0
|
||||
db 5Ch ; \
|
||||
db 0
|
||||
word_E728 dw 0
|
||||
; _setvbuf+4Bw
|
||||
word_E72A dw 0
|
||||
; _setvbuf+35w
|
||||
include libs/BorlandC/setvbuf[data].asm
|
||||
include libs/BorlandC/sysnerr[data].asm
|
||||
include libs/BorlandC/xx[data].asm
|
||||
include libs/BorlandC/setenvp[data].asm
|
||||
|
|
147
th03_main.asm
147
th03_main.asm
|
@ -1713,147 +1713,7 @@ loc_4F15:
|
|||
retf
|
||||
sub_4DD9 endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
|
||||
_setvbuf proc far
|
||||
|
||||
stream = dword ptr 6
|
||||
buf = dword ptr 0Ah
|
||||
_type = word ptr 0Eh
|
||||
_size = word ptr 10h
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
les bx, [bp+stream]
|
||||
mov ax, es:[bx+12h]
|
||||
cmp ax, word ptr [bp+stream]
|
||||
jz short loc_4F2F
|
||||
jmp loc_5006
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_4F2F:
|
||||
cmp [bp+_type], 2
|
||||
jle short loc_4F38
|
||||
jmp loc_5006
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_4F38:
|
||||
cmp [bp+_size], 7FFFh
|
||||
jbe short loc_4F42
|
||||
jmp loc_5006
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_4F42:
|
||||
cmp word_1E616, 0
|
||||
jnz short loc_4F58
|
||||
cmp word ptr [bp+stream], 0C30h
|
||||
jnz short loc_4F58
|
||||
mov word_1E616, 1
|
||||
jmp short loc_4F6C
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_4F58:
|
||||
cmp word_1E614, 0
|
||||
jnz short loc_4F6C
|
||||
cmp word ptr [bp+stream], 0C1Ch
|
||||
jnz short loc_4F6C
|
||||
mov word_1E614, 1
|
||||
|
||||
loc_4F6C:
|
||||
les bx, [bp+stream]
|
||||
cmp word ptr es:[bx], 0
|
||||
jz short loc_4F89
|
||||
mov ax, 1
|
||||
push ax ; whence
|
||||
xor ax, ax
|
||||
push ax
|
||||
push ax ; offset
|
||||
push word ptr [bp+stream+2]
|
||||
push bx ; stream
|
||||
nopcall _fseek
|
||||
add sp, 0Ah
|
||||
|
||||
loc_4F89:
|
||||
les bx, [bp+stream]
|
||||
test byte ptr es:[bx+2], 4
|
||||
jz short loc_4FA2
|
||||
push word ptr es:[bx+0Ah]
|
||||
push word ptr es:[bx+8]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _farfree
|
||||
pop cx
|
||||
pop cx
|
||||
|
||||
loc_4FA2:
|
||||
les bx, [bp+stream]
|
||||
and word ptr es:[bx+2], 0FFF3h
|
||||
mov word ptr es:[bx+6], 0
|
||||
mov dx, word ptr [bp+stream+2]
|
||||
mov ax, word ptr [bp+stream]
|
||||
add ax, 5
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
cmp [bp+_type], 2
|
||||
jz short loc_5036
|
||||
cmp [bp+_size], 0
|
||||
jbe short loc_5036
|
||||
mov word ptr _exitbuf+2, seg seg000
|
||||
mov word ptr _exitbuf, 5344h
|
||||
mov ax, word ptr [bp+buf]
|
||||
or ax, word ptr [bp+buf+2]
|
||||
jnz short loc_500B
|
||||
push [bp+_size]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _malloc
|
||||
pop cx
|
||||
mov word ptr [bp+buf+2], dx
|
||||
mov word ptr [bp+buf], ax
|
||||
or ax, dx
|
||||
jz short loc_5006
|
||||
les bx, [bp+stream]
|
||||
or word ptr es:[bx+2], 4
|
||||
jmp short loc_500B
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5006:
|
||||
mov ax, 0FFFFh
|
||||
jmp short loc_5038
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_500B:
|
||||
les bx, [bp+stream]
|
||||
mov dx, word ptr [bp+buf+2]
|
||||
mov ax, word ptr [bp+buf]
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov ax, [bp+_size]
|
||||
mov es:[bx+6], ax
|
||||
cmp [bp+_type], 1
|
||||
jnz short loc_5036
|
||||
or word ptr es:[bx+2], 8
|
||||
|
||||
loc_5036:
|
||||
xor ax, ax
|
||||
|
||||
loc_5038:
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_setvbuf endp
|
||||
|
||||
include libs/BorlandC/setvbuf.asm
|
||||
include libs/BorlandC/_strcat.asm
|
||||
include libs/BorlandC/_strcmp.asm
|
||||
include libs/BorlandC/_strcpy.asm
|
||||
|
@ -42118,10 +41978,7 @@ dword_1E600 dd 0
|
|||
db 0
|
||||
db 5Ch ; \
|
||||
db 0
|
||||
word_1E614 dw 0
|
||||
; _setvbuf+4Bw
|
||||
word_1E616 dw 0
|
||||
; _setvbuf+35w
|
||||
include libs/BorlandC/setvbuf[data].asm
|
||||
include libs/BorlandC/sysnerr[data].asm
|
||||
include libs/BorlandC/xx[data].asm
|
||||
include libs/BorlandC/setenvp[data].asm
|
||||
|
|
147
th03_mainl.asm
147
th03_mainl.asm
|
@ -1918,147 +1918,7 @@ loc_4DE3:
|
|||
retf
|
||||
sub_4CA7 endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
|
||||
_setvbuf proc far
|
||||
|
||||
stream = dword ptr 6
|
||||
buf = dword ptr 0Ah
|
||||
_type = word ptr 0Eh
|
||||
_size = word ptr 10h
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
les bx, [bp+stream]
|
||||
mov ax, es:[bx+12h]
|
||||
cmp ax, word ptr [bp+stream]
|
||||
jz short loc_4DFD
|
||||
jmp loc_4ED4
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_4DFD:
|
||||
cmp [bp+_type], 2
|
||||
jle short loc_4E06
|
||||
jmp loc_4ED4
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_4E06:
|
||||
cmp [bp+_size], 7FFFh
|
||||
jbe short loc_4E10
|
||||
jmp loc_4ED4
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_4E10:
|
||||
cmp word_F55E, 0
|
||||
jnz short loc_4E26
|
||||
cmp word ptr [bp+stream], 0CE8h
|
||||
jnz short loc_4E26
|
||||
mov word_F55E, 1
|
||||
jmp short loc_4E3A
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_4E26:
|
||||
cmp word_F55C, 0
|
||||
jnz short loc_4E3A
|
||||
cmp word ptr [bp+stream], 0CD4h
|
||||
jnz short loc_4E3A
|
||||
mov word_F55C, 1
|
||||
|
||||
loc_4E3A:
|
||||
les bx, [bp+stream]
|
||||
cmp word ptr es:[bx], 0
|
||||
jz short loc_4E57
|
||||
mov ax, 1
|
||||
push ax ; whence
|
||||
xor ax, ax
|
||||
push ax
|
||||
push ax ; offset
|
||||
push word ptr [bp+stream+2]
|
||||
push bx ; stream
|
||||
nopcall _fseek
|
||||
add sp, 0Ah
|
||||
|
||||
loc_4E57:
|
||||
les bx, [bp+stream]
|
||||
test byte ptr es:[bx+2], 4
|
||||
jz short loc_4E70
|
||||
push word ptr es:[bx+0Ah]
|
||||
push word ptr es:[bx+8]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _farfree
|
||||
pop cx
|
||||
pop cx
|
||||
|
||||
loc_4E70:
|
||||
les bx, [bp+stream]
|
||||
and word ptr es:[bx+2], 0FFF3h
|
||||
mov word ptr es:[bx+6], 0
|
||||
mov dx, word ptr [bp+stream+2]
|
||||
mov ax, word ptr [bp+stream]
|
||||
add ax, 5
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
cmp [bp+_type], 2
|
||||
jz short loc_4F04
|
||||
cmp [bp+_size], 0
|
||||
jbe short loc_4F04
|
||||
mov word ptr _exitbuf+2, seg seg000
|
||||
mov word ptr _exitbuf, 5212h
|
||||
mov ax, word ptr [bp+buf]
|
||||
or ax, word ptr [bp+buf+2]
|
||||
jnz short loc_4ED9
|
||||
push [bp+_size]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _malloc
|
||||
pop cx
|
||||
mov word ptr [bp+buf+2], dx
|
||||
mov word ptr [bp+buf], ax
|
||||
or ax, dx
|
||||
jz short loc_4ED4
|
||||
les bx, [bp+stream]
|
||||
or word ptr es:[bx+2], 4
|
||||
jmp short loc_4ED9
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_4ED4:
|
||||
mov ax, 0FFFFh
|
||||
jmp short loc_4F06
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_4ED9:
|
||||
les bx, [bp+stream]
|
||||
mov dx, word ptr [bp+buf+2]
|
||||
mov ax, word ptr [bp+buf]
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov ax, [bp+_size]
|
||||
mov es:[bx+6], ax
|
||||
cmp [bp+_type], 1
|
||||
jnz short loc_4F04
|
||||
or word ptr es:[bx+2], 8
|
||||
|
||||
loc_4F04:
|
||||
xor ax, ax
|
||||
|
||||
loc_4F06:
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_setvbuf endp
|
||||
|
||||
include libs/BorlandC/setvbuf.asm
|
||||
include libs/BorlandC/_strcat.asm
|
||||
include libs/BorlandC/_strcmp.asm
|
||||
include libs/BorlandC/_strcpy.asm
|
||||
|
@ -11689,10 +11549,7 @@ dword_F548 dd 0
|
|||
db 0
|
||||
db 5Ch ; \
|
||||
db 0
|
||||
word_F55C dw 0
|
||||
; _setvbuf+4Bw
|
||||
word_F55E dw 0
|
||||
; _setvbuf+35w
|
||||
include libs/BorlandC/setvbuf[data].asm
|
||||
include libs/BorlandC/sysnerr[data].asm
|
||||
include libs/BorlandC/xx[data].asm
|
||||
include libs/BorlandC/setenvp[data].asm
|
||||
|
|
147
th03_op.asm
147
th03_op.asm
|
@ -2027,147 +2027,7 @@ loc_50C5:
|
|||
retf
|
||||
sub_4F89 endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
|
||||
_setvbuf proc far
|
||||
|
||||
stream = dword ptr 6
|
||||
buf = dword ptr 0Ah
|
||||
_type = word ptr 0Eh
|
||||
_size = word ptr 10h
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
les bx, [bp+stream]
|
||||
mov ax, es:[bx+12h]
|
||||
cmp ax, word ptr [bp+stream]
|
||||
jz short loc_50DF
|
||||
jmp loc_51B6
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_50DF:
|
||||
cmp [bp+_type], 2
|
||||
jle short loc_50E8
|
||||
jmp loc_51B6
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_50E8:
|
||||
cmp [bp+_size], 7FFFh
|
||||
jbe short loc_50F2
|
||||
jmp loc_51B6
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_50F2:
|
||||
cmp word_E7AA, 0
|
||||
jnz short loc_5108
|
||||
cmp word ptr [bp+stream], 0B34h
|
||||
jnz short loc_5108
|
||||
mov word_E7AA, 1
|
||||
jmp short loc_511C
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5108:
|
||||
cmp word_E7A8, 0
|
||||
jnz short loc_511C
|
||||
cmp word ptr [bp+stream], 0B20h
|
||||
jnz short loc_511C
|
||||
mov word_E7A8, 1
|
||||
|
||||
loc_511C:
|
||||
les bx, [bp+stream]
|
||||
cmp word ptr es:[bx], 0
|
||||
jz short loc_5139
|
||||
mov ax, 1
|
||||
push ax ; whence
|
||||
xor ax, ax
|
||||
push ax
|
||||
push ax ; offset
|
||||
push word ptr [bp+stream+2]
|
||||
push bx ; stream
|
||||
nopcall _fseek
|
||||
add sp, 0Ah
|
||||
|
||||
loc_5139:
|
||||
les bx, [bp+stream]
|
||||
test byte ptr es:[bx+2], 4
|
||||
jz short loc_5152
|
||||
push word ptr es:[bx+0Ah]
|
||||
push word ptr es:[bx+8]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _farfree
|
||||
pop cx
|
||||
pop cx
|
||||
|
||||
loc_5152:
|
||||
les bx, [bp+stream]
|
||||
and word ptr es:[bx+2], 0FFF3h
|
||||
mov word ptr es:[bx+6], 0
|
||||
mov dx, word ptr [bp+stream+2]
|
||||
mov ax, word ptr [bp+stream]
|
||||
add ax, 5
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
cmp [bp+_type], 2
|
||||
jz short loc_51E6
|
||||
cmp [bp+_size], 0
|
||||
jbe short loc_51E6
|
||||
mov word ptr _exitbuf+2, seg seg000
|
||||
mov word ptr _exitbuf, 54F4h
|
||||
mov ax, word ptr [bp+buf]
|
||||
or ax, word ptr [bp+buf+2]
|
||||
jnz short loc_51BB
|
||||
push [bp+_size]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _malloc
|
||||
pop cx
|
||||
mov word ptr [bp+buf+2], dx
|
||||
mov word ptr [bp+buf], ax
|
||||
or ax, dx
|
||||
jz short loc_51B6
|
||||
les bx, [bp+stream]
|
||||
or word ptr es:[bx+2], 4
|
||||
jmp short loc_51BB
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_51B6:
|
||||
mov ax, 0FFFFh
|
||||
jmp short loc_51E8
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_51BB:
|
||||
les bx, [bp+stream]
|
||||
mov dx, word ptr [bp+buf+2]
|
||||
mov ax, word ptr [bp+buf]
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov ax, [bp+_size]
|
||||
mov es:[bx+6], ax
|
||||
cmp [bp+_type], 1
|
||||
jnz short loc_51E6
|
||||
or word ptr es:[bx+2], 8
|
||||
|
||||
loc_51E6:
|
||||
xor ax, ax
|
||||
|
||||
loc_51E8:
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_setvbuf endp
|
||||
|
||||
include libs/BorlandC/setvbuf.asm
|
||||
include libs/BorlandC/_strcat.asm
|
||||
include libs/BorlandC/_strcmp.asm
|
||||
include libs/BorlandC/_strcpy.asm
|
||||
|
@ -9815,10 +9675,7 @@ dword_E794 dd 0
|
|||
db 0
|
||||
db 5Ch ; \
|
||||
db 0
|
||||
word_E7A8 dw 0
|
||||
; _setvbuf+4Bw
|
||||
word_E7AA dw 0
|
||||
; _setvbuf+35w
|
||||
include libs/BorlandC/setvbuf[data].asm
|
||||
include libs/BorlandC/sysnerr[data].asm
|
||||
include libs/BorlandC/xx[data].asm
|
||||
include libs/BorlandC/setenvp[data].asm
|
||||
|
|
148
th04_main.asm
148
th04_main.asm
|
@ -2302,148 +2302,7 @@ loc_6321:
|
|||
retf
|
||||
sub_61E5 endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
|
||||
_setvbuf proc far
|
||||
|
||||
stream = dword ptr 6
|
||||
buf = word ptr 0Ah
|
||||
arg_6 = word ptr 0Ch
|
||||
_type = word ptr 0Eh
|
||||
_size = word ptr 10h
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
les bx, [bp+stream]
|
||||
mov ax, es:[bx+12h]
|
||||
cmp ax, word ptr [bp+stream]
|
||||
jz short loc_633B
|
||||
jmp loc_6412
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_633B:
|
||||
cmp [bp+_type], 2
|
||||
jle short loc_6344
|
||||
jmp loc_6412
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_6344:
|
||||
cmp [bp+_size], 7FFFh
|
||||
jbe short loc_634E
|
||||
jmp loc_6412
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_634E:
|
||||
cmp word_23CC2, 0
|
||||
jnz short loc_6364
|
||||
cmp word ptr [bp+stream], 24FCh
|
||||
jnz short loc_6364
|
||||
mov word_23CC2, 1
|
||||
jmp short loc_6378
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_6364:
|
||||
cmp word_23CC0, 0
|
||||
jnz short loc_6378
|
||||
cmp word ptr [bp+stream], 24E8h
|
||||
jnz short loc_6378
|
||||
mov word_23CC0, 1
|
||||
|
||||
loc_6378:
|
||||
les bx, [bp+stream]
|
||||
cmp word ptr es:[bx], 0
|
||||
jz short loc_6395
|
||||
mov ax, 1
|
||||
push ax ; whence
|
||||
xor ax, ax
|
||||
push ax
|
||||
push ax ; offset
|
||||
push word ptr [bp+stream+2]
|
||||
push bx ; stream
|
||||
nopcall _fseek
|
||||
add sp, 0Ah
|
||||
|
||||
loc_6395:
|
||||
les bx, [bp+stream]
|
||||
test byte ptr es:[bx+2], 4
|
||||
jz short loc_63AE
|
||||
push word ptr es:[bx+0Ah]
|
||||
push word ptr es:[bx+8]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _farfree
|
||||
pop cx
|
||||
pop cx
|
||||
|
||||
loc_63AE:
|
||||
les bx, [bp+stream]
|
||||
and word ptr es:[bx+2], 0FFF3h
|
||||
mov word ptr es:[bx+6], 0
|
||||
mov dx, word ptr [bp+stream+2]
|
||||
mov ax, word ptr [bp+stream]
|
||||
add ax, 5
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
cmp [bp+_type], 2
|
||||
jz short loc_6442
|
||||
cmp [bp+_size], 0
|
||||
jbe short loc_6442
|
||||
mov word ptr _exitbuf+2, seg seg000
|
||||
mov word ptr _exitbuf, 6750h
|
||||
mov ax, [bp+buf]
|
||||
or ax, [bp+arg_6]
|
||||
jnz short loc_6417
|
||||
push [bp+_size]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _malloc
|
||||
pop cx
|
||||
mov [bp+arg_6], dx
|
||||
mov [bp+buf], ax
|
||||
or ax, dx
|
||||
jz short loc_6412
|
||||
les bx, [bp+stream]
|
||||
or word ptr es:[bx+2], 4
|
||||
jmp short loc_6417
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_6412:
|
||||
mov ax, 0FFFFh
|
||||
jmp short loc_6444
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_6417:
|
||||
les bx, [bp+stream]
|
||||
mov dx, [bp+arg_6]
|
||||
mov ax, [bp+buf]
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov ax, [bp+_size]
|
||||
mov es:[bx+6], ax
|
||||
cmp [bp+_type], 1
|
||||
jnz short loc_6442
|
||||
or word ptr es:[bx+2], 8
|
||||
|
||||
loc_6442:
|
||||
xor ax, ax
|
||||
|
||||
loc_6444:
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_setvbuf endp
|
||||
|
||||
include libs/BorlandC/setvbuf.asm
|
||||
include libs/BorlandC/_strcat.asm
|
||||
include libs/BorlandC/_strcmp.asm
|
||||
include libs/BorlandC/_strcpy.asm
|
||||
|
@ -26035,10 +25894,7 @@ dword_23CAC dd 0
|
|||
db 0
|
||||
db 5Ch ; \
|
||||
db 0
|
||||
word_23CC0 dw 0
|
||||
; _setvbuf+4Bw
|
||||
word_23CC2 dw 0
|
||||
; _setvbuf+35w
|
||||
include libs/BorlandC/setvbuf[data].asm
|
||||
include libs/BorlandC/sysnerr[data].asm
|
||||
include libs/BorlandC/xx[data].asm
|
||||
include libs/BorlandC/setenvp[data].asm
|
||||
|
|
147
th04_maine.asm
147
th04_maine.asm
|
@ -1966,147 +1966,7 @@ loc_5889:
|
|||
retf
|
||||
sub_574D endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
|
||||
_setvbuf proc far
|
||||
|
||||
stream = dword ptr 6
|
||||
buf = dword ptr 0Ah
|
||||
_type = word ptr 0Eh
|
||||
_size = word ptr 10h
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
les bx, [bp+stream]
|
||||
mov ax, es:[bx+12h]
|
||||
cmp ax, word ptr [bp+stream]
|
||||
jz short loc_58A3
|
||||
jmp loc_597A
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_58A3:
|
||||
cmp [bp+_type], 2
|
||||
jle short loc_58AC
|
||||
jmp loc_597A
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_58AC:
|
||||
cmp [bp+_size], 7FFFh
|
||||
jbe short loc_58B6
|
||||
jmp loc_597A
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_58B6:
|
||||
cmp word_F302, 0
|
||||
jnz short loc_58CC
|
||||
cmp word ptr [bp+stream], 94Ch
|
||||
jnz short loc_58CC
|
||||
mov word_F302, 1
|
||||
jmp short loc_58E0
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_58CC:
|
||||
cmp word_F300, 0
|
||||
jnz short loc_58E0
|
||||
cmp word ptr [bp+stream], 938h
|
||||
jnz short loc_58E0
|
||||
mov word_F300, 1
|
||||
|
||||
loc_58E0:
|
||||
les bx, [bp+stream]
|
||||
cmp word ptr es:[bx], 0
|
||||
jz short loc_58FD
|
||||
mov ax, 1
|
||||
push ax ; whence
|
||||
xor ax, ax
|
||||
push ax
|
||||
push ax ; offset
|
||||
push word ptr [bp+stream+2]
|
||||
push bx ; stream
|
||||
nopcall _fseek
|
||||
add sp, 0Ah
|
||||
|
||||
loc_58FD:
|
||||
les bx, [bp+stream]
|
||||
test byte ptr es:[bx+2], 4
|
||||
jz short loc_5916
|
||||
push word ptr es:[bx+0Ah]
|
||||
push word ptr es:[bx+8]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _farfree
|
||||
pop cx
|
||||
pop cx
|
||||
|
||||
loc_5916:
|
||||
les bx, [bp+stream]
|
||||
and word ptr es:[bx+2], 0FFF3h
|
||||
mov word ptr es:[bx+6], 0
|
||||
mov dx, word ptr [bp+stream+2]
|
||||
mov ax, word ptr [bp+stream]
|
||||
add ax, 5
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
cmp [bp+_type], 2
|
||||
jz short loc_59AA
|
||||
cmp [bp+_size], 0
|
||||
jbe short loc_59AA
|
||||
mov word ptr _exitbuf+2, seg seg000
|
||||
mov word ptr _exitbuf, 5CB8h
|
||||
mov ax, word ptr [bp+buf]
|
||||
or ax, word ptr [bp+buf+2]
|
||||
jnz short loc_597F
|
||||
push [bp+_size]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _malloc
|
||||
pop cx
|
||||
mov word ptr [bp+buf+2], dx
|
||||
mov word ptr [bp+buf], ax
|
||||
or ax, dx
|
||||
jz short loc_597A
|
||||
les bx, [bp+stream]
|
||||
or word ptr es:[bx+2], 4
|
||||
jmp short loc_597F
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_597A:
|
||||
mov ax, 0FFFFh
|
||||
jmp short loc_59AC
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_597F:
|
||||
les bx, [bp+stream]
|
||||
mov dx, word ptr [bp+buf+2]
|
||||
mov ax, word ptr [bp+buf]
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov ax, [bp+_size]
|
||||
mov es:[bx+6], ax
|
||||
cmp [bp+_type], 1
|
||||
jnz short loc_59AA
|
||||
or word ptr es:[bx+2], 8
|
||||
|
||||
loc_59AA:
|
||||
xor ax, ax
|
||||
|
||||
loc_59AC:
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_setvbuf endp
|
||||
|
||||
include libs/BorlandC/setvbuf.asm
|
||||
include libs/BorlandC/_strcat.asm
|
||||
include libs/BorlandC/_strcmp.asm
|
||||
include libs/BorlandC/_strcpy.asm
|
||||
|
@ -10326,10 +10186,7 @@ dword_F2EC dd 0
|
|||
db 0
|
||||
db 5Ch ; \
|
||||
db 0
|
||||
word_F300 dw 0
|
||||
; _setvbuf+4Bw
|
||||
word_F302 dw 0
|
||||
; _setvbuf+35w
|
||||
include libs/BorlandC/setvbuf[data].asm
|
||||
include libs/BorlandC/sysnerr[data].asm
|
||||
include libs/BorlandC/xx[data].asm
|
||||
include libs/BorlandC/setenvp[data].asm
|
||||
|
|
147
th04_op.asm
147
th04_op.asm
|
@ -1898,147 +1898,7 @@ loc_5F49:
|
|||
retf
|
||||
sub_5E0D endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
|
||||
_setvbuf proc far
|
||||
|
||||
stream = dword ptr 6
|
||||
buf = dword ptr 0Ah
|
||||
_type = word ptr 0Eh
|
||||
_size = word ptr 10h
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
les bx, [bp+stream]
|
||||
mov ax, es:[bx+12h]
|
||||
cmp ax, word ptr [bp+stream]
|
||||
jz short loc_5F63
|
||||
jmp loc_603A
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5F63:
|
||||
cmp [bp+_type], 2
|
||||
jle short loc_5F6C
|
||||
jmp loc_603A
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5F6C:
|
||||
cmp [bp+_size], 7FFFh
|
||||
jbe short loc_5F76
|
||||
jmp loc_603A
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5F76:
|
||||
cmp word_10CD6, 0
|
||||
jnz short loc_5F8C
|
||||
cmp word ptr [bp+stream], 1510h
|
||||
jnz short loc_5F8C
|
||||
mov word_10CD6, 1
|
||||
jmp short loc_5FA0
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5F8C:
|
||||
cmp word_10CD4, 0
|
||||
jnz short loc_5FA0
|
||||
cmp word ptr [bp+stream], 14FCh
|
||||
jnz short loc_5FA0
|
||||
mov word_10CD4, 1
|
||||
|
||||
loc_5FA0:
|
||||
les bx, [bp+stream]
|
||||
cmp word ptr es:[bx], 0
|
||||
jz short loc_5FBD
|
||||
mov ax, 1
|
||||
push ax ; whence
|
||||
xor ax, ax
|
||||
push ax
|
||||
push ax ; offset
|
||||
push word ptr [bp+stream+2]
|
||||
push bx ; stream
|
||||
nopcall _fseek
|
||||
add sp, 0Ah
|
||||
|
||||
loc_5FBD:
|
||||
les bx, [bp+stream]
|
||||
test byte ptr es:[bx+2], 4
|
||||
jz short loc_5FD6
|
||||
push word ptr es:[bx+0Ah]
|
||||
push word ptr es:[bx+8]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _farfree
|
||||
pop cx
|
||||
pop cx
|
||||
|
||||
loc_5FD6:
|
||||
les bx, [bp+stream]
|
||||
and word ptr es:[bx+2], 0FFF3h
|
||||
mov word ptr es:[bx+6], 0
|
||||
mov dx, word ptr [bp+stream+2]
|
||||
mov ax, word ptr [bp+stream]
|
||||
add ax, 5
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
cmp [bp+_type], 2
|
||||
jz short loc_606A
|
||||
cmp [bp+_size], 0
|
||||
jbe short loc_606A
|
||||
mov word ptr _exitbuf+2, seg seg000
|
||||
mov word ptr _exitbuf, 6378h
|
||||
mov ax, word ptr [bp+buf]
|
||||
or ax, word ptr [bp+buf+2]
|
||||
jnz short loc_603F
|
||||
push [bp+_size]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _malloc
|
||||
pop cx
|
||||
mov word ptr [bp+buf+2], dx
|
||||
mov word ptr [bp+buf], ax
|
||||
or ax, dx
|
||||
jz short loc_603A
|
||||
les bx, [bp+stream]
|
||||
or word ptr es:[bx+2], 4
|
||||
jmp short loc_603F
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_603A:
|
||||
mov ax, 0FFFFh
|
||||
jmp short loc_606C
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_603F:
|
||||
les bx, [bp+stream]
|
||||
mov dx, word ptr [bp+buf+2]
|
||||
mov ax, word ptr [bp+buf]
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov ax, [bp+_size]
|
||||
mov es:[bx+6], ax
|
||||
cmp [bp+_type], 1
|
||||
jnz short loc_606A
|
||||
or word ptr es:[bx+2], 8
|
||||
|
||||
loc_606A:
|
||||
xor ax, ax
|
||||
|
||||
loc_606C:
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_setvbuf endp
|
||||
|
||||
include libs/BorlandC/setvbuf.asm
|
||||
include libs/BorlandC/_strcat.asm
|
||||
include libs/BorlandC/_strcmp.asm
|
||||
include libs/BorlandC/_strcpy.asm
|
||||
|
@ -11317,10 +11177,7 @@ dword_10CC0 dd 0
|
|||
db 0
|
||||
db 5Ch ; \
|
||||
db 0
|
||||
word_10CD4 dw 0
|
||||
; _setvbuf+4Bw
|
||||
word_10CD6 dw 0
|
||||
; _setvbuf+35w
|
||||
include libs/BorlandC/setvbuf[data].asm
|
||||
include libs/BorlandC/sysnerr[data].asm
|
||||
include libs/BorlandC/xx[data].asm
|
||||
include libs/BorlandC/setenvp[data].asm
|
||||
|
|
147
th05_main.asm
147
th05_main.asm
|
@ -2423,147 +2423,7 @@ loc_664D:
|
|||
retf
|
||||
sub_6511 endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
|
||||
_setvbuf proc far
|
||||
|
||||
stream = dword ptr 6
|
||||
buf = dword ptr 0Ah
|
||||
_type = word ptr 0Eh
|
||||
_size = word ptr 10h
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
les bx, [bp+stream]
|
||||
mov ax, es:[bx+12h]
|
||||
cmp ax, word ptr [bp+stream]
|
||||
jz short loc_6667
|
||||
jmp loc_673E
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_6667:
|
||||
cmp [bp+_type], 2
|
||||
jle short loc_6670
|
||||
jmp loc_673E
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_6670:
|
||||
cmp [bp+_size], 7FFFh
|
||||
jbe short loc_667A
|
||||
jmp loc_673E
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_667A:
|
||||
cmp word_22F40, 0
|
||||
jnz short loc_6690
|
||||
cmp word ptr [bp+stream], 20DAh
|
||||
jnz short loc_6690
|
||||
mov word_22F40, 1
|
||||
jmp short loc_66A4
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_6690:
|
||||
cmp word_22F3E, 0
|
||||
jnz short loc_66A4
|
||||
cmp word ptr [bp+stream], 20C6h
|
||||
jnz short loc_66A4
|
||||
mov word_22F3E, 1
|
||||
|
||||
loc_66A4:
|
||||
les bx, [bp+stream]
|
||||
cmp word ptr es:[bx], 0
|
||||
jz short loc_66C1
|
||||
mov ax, 1
|
||||
push ax ; whence
|
||||
xor ax, ax
|
||||
push ax
|
||||
push ax ; offset
|
||||
push word ptr [bp+stream+2]
|
||||
push bx ; stream
|
||||
nopcall _fseek
|
||||
add sp, 0Ah
|
||||
|
||||
loc_66C1:
|
||||
les bx, [bp+stream]
|
||||
test byte ptr es:[bx+2], 4
|
||||
jz short loc_66DA
|
||||
push word ptr es:[bx+0Ah]
|
||||
push word ptr es:[bx+8]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _farfree
|
||||
pop cx
|
||||
pop cx
|
||||
|
||||
loc_66DA:
|
||||
les bx, [bp+stream]
|
||||
and word ptr es:[bx+2], 0FFF3h
|
||||
mov word ptr es:[bx+6], 0
|
||||
mov dx, word ptr [bp+stream+2]
|
||||
mov ax, word ptr [bp+stream]
|
||||
add ax, 5
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
cmp [bp+_type], 2
|
||||
jz short loc_676E
|
||||
cmp [bp+_size], 0
|
||||
jbe short loc_676E
|
||||
mov word ptr _exitbuf+2, seg seg000
|
||||
mov word ptr _exitbuf, 6A7Ch
|
||||
mov ax, word ptr [bp+buf]
|
||||
or ax, word ptr [bp+buf+2]
|
||||
jnz short loc_6743
|
||||
push [bp+_size]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _malloc
|
||||
pop cx
|
||||
mov word ptr [bp+buf+2], dx
|
||||
mov word ptr [bp+buf], ax
|
||||
or ax, dx
|
||||
jz short loc_673E
|
||||
les bx, [bp+stream]
|
||||
or word ptr es:[bx+2], 4
|
||||
jmp short loc_6743
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_673E:
|
||||
mov ax, 0FFFFh
|
||||
jmp short loc_6770
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_6743:
|
||||
les bx, [bp+stream]
|
||||
mov dx, word ptr [bp+buf+2]
|
||||
mov ax, word ptr [bp+buf]
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov ax, [bp+_size]
|
||||
mov es:[bx+6], ax
|
||||
cmp [bp+_type], 1
|
||||
jnz short loc_676E
|
||||
or word ptr es:[bx+2], 8
|
||||
|
||||
loc_676E:
|
||||
xor ax, ax
|
||||
|
||||
loc_6770:
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_setvbuf endp
|
||||
|
||||
include libs/BorlandC/setvbuf.asm
|
||||
include libs/BorlandC/_strcat.asm
|
||||
include libs/BorlandC/_strcmp.asm
|
||||
include libs/BorlandC/_strcpy.asm
|
||||
|
@ -26633,10 +26493,7 @@ dword_22F2A dd 0
|
|||
db 0
|
||||
db 5Ch ; \
|
||||
db 0
|
||||
word_22F3E dw 0
|
||||
; _setvbuf+4Bw
|
||||
word_22F40 dw 0
|
||||
; _setvbuf+35w
|
||||
include libs/BorlandC/setvbuf[data].asm
|
||||
include libs/BorlandC/sysnerr[data].asm
|
||||
include libs/BorlandC/xx[data].asm
|
||||
include libs/BorlandC/setenvp[data].asm
|
||||
|
|
146
th05_maine.asm
146
th05_maine.asm
|
@ -2118,146 +2118,7 @@ loc_5D75:
|
|||
retf
|
||||
sub_5C39 endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
|
||||
_setvbuf proc far
|
||||
|
||||
_offset = dword ptr 6
|
||||
buf = dword ptr 0Ah
|
||||
_type = word ptr 0Eh
|
||||
_size = word ptr 10h
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
les bx, [bp+_offset]
|
||||
mov ax, es:[bx+12h]
|
||||
cmp ax, word ptr [bp+_offset]
|
||||
jz short loc_5D8F
|
||||
jmp loc_5E66
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5D8F:
|
||||
cmp [bp+_type], 2
|
||||
jle short loc_5D98
|
||||
jmp loc_5E66
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5D98:
|
||||
cmp [bp+_size], 7FFFh
|
||||
jbe short loc_5DA2
|
||||
jmp loc_5E66
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5DA2:
|
||||
cmp word_11DA2, 0
|
||||
jnz short loc_5DB8
|
||||
cmp word ptr [bp+_offset], 181Ch
|
||||
jnz short loc_5DB8
|
||||
mov word_11DA2, 1
|
||||
jmp short loc_5DCC
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5DB8:
|
||||
cmp word_11DA0, 0
|
||||
jnz short loc_5DCC
|
||||
cmp word ptr [bp+_offset], 1808h
|
||||
jnz short loc_5DCC
|
||||
mov word_11DA0, 1
|
||||
|
||||
loc_5DCC:
|
||||
les bx, [bp+_offset]
|
||||
cmp word ptr es:[bx], 0
|
||||
jz short loc_5DE9
|
||||
mov ax, 1
|
||||
push ax
|
||||
xor ax, ax
|
||||
push ax ; whence
|
||||
push ax
|
||||
push word ptr [bp+_offset+2] ; offset
|
||||
push bx
|
||||
nopcall _fseek
|
||||
add sp, 0Ah
|
||||
|
||||
loc_5DE9:
|
||||
les bx, [bp+_offset]
|
||||
test byte ptr es:[bx+2], 4
|
||||
jz short loc_5E02
|
||||
push word ptr es:[bx+0Ah]
|
||||
push word ptr es:[bx+8]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _farfree
|
||||
pop cx
|
||||
pop cx
|
||||
|
||||
loc_5E02:
|
||||
les bx, [bp+_offset]
|
||||
and word ptr es:[bx+2], 0FFF3h
|
||||
mov word ptr es:[bx+6], 0
|
||||
mov dx, word ptr [bp+_offset+2]
|
||||
mov ax, word ptr [bp+_offset]
|
||||
add ax, 5
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
cmp [bp+_type], 2
|
||||
jz short loc_5E96
|
||||
cmp [bp+_size], 0
|
||||
jbe short loc_5E96
|
||||
mov word ptr _exitbuf+2, seg seg000
|
||||
mov word ptr _exitbuf, 61A4h
|
||||
mov ax, word ptr [bp+buf]
|
||||
or ax, word ptr [bp+buf+2]
|
||||
jnz short loc_5E6B
|
||||
push [bp+_size]
|
||||
nop
|
||||
call _malloc
|
||||
pop cx
|
||||
mov word ptr [bp+buf+2], dx
|
||||
mov word ptr [bp+buf], ax
|
||||
or ax, dx
|
||||
jz short loc_5E66
|
||||
les bx, [bp+_offset]
|
||||
or word ptr es:[bx+2], 4
|
||||
jmp short loc_5E6B
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5E66:
|
||||
mov ax, 0FFFFh
|
||||
jmp short loc_5E98
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5E6B:
|
||||
les bx, [bp+_offset]
|
||||
mov dx, word ptr [bp+buf+2]
|
||||
mov ax, word ptr [bp+buf]
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov ax, [bp+_size]
|
||||
mov es:[bx+6], ax
|
||||
cmp [bp+_type], 1
|
||||
jnz short loc_5E96
|
||||
or word ptr es:[bx+2], 8
|
||||
|
||||
loc_5E96:
|
||||
xor ax, ax
|
||||
|
||||
loc_5E98:
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_setvbuf endp ; sp-analysis failed
|
||||
|
||||
include libs/BorlandC/setvbuf.asm
|
||||
include libs/BorlandC/_strcat.asm
|
||||
include libs/BorlandC/_strcmp.asm
|
||||
include libs/BorlandC/_strcpy.asm
|
||||
|
@ -13870,10 +13731,7 @@ dword_11D8C dd 0
|
|||
db 0
|
||||
db 5Ch ; \
|
||||
db 0
|
||||
word_11DA0 dw 0
|
||||
; _setvbuf+4Bw
|
||||
word_11DA2 dw 0
|
||||
; _setvbuf+35w
|
||||
include libs/BorlandC/setvbuf[data].asm
|
||||
include libs/BorlandC/sysnerr[data].asm
|
||||
include libs/BorlandC/xx[data].asm
|
||||
include libs/BorlandC/setenvp[data].asm
|
||||
|
|
147
th05_op.asm
147
th05_op.asm
|
@ -2171,147 +2171,7 @@ loc_5B99:
|
|||
retf
|
||||
sub_5A5D endp
|
||||
|
||||
|
||||
; =============== S U B R O U T I N E =======================================
|
||||
|
||||
; Attributes: library function bp-based frame
|
||||
|
||||
; int __cdecl setvbuf(FILE *stream, char *buf, int type, size_t size)
|
||||
_setvbuf proc far
|
||||
|
||||
stream = dword ptr 6
|
||||
buf = dword ptr 0Ah
|
||||
_type = word ptr 0Eh
|
||||
_size = word ptr 10h
|
||||
|
||||
push bp
|
||||
mov bp, sp
|
||||
push si
|
||||
push di
|
||||
les bx, [bp+stream]
|
||||
mov ax, es:[bx+12h]
|
||||
cmp ax, word ptr [bp+stream]
|
||||
jz short loc_5BB3
|
||||
jmp loc_5C8A
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5BB3:
|
||||
cmp [bp+_type], 2
|
||||
jle short loc_5BBC
|
||||
jmp loc_5C8A
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5BBC:
|
||||
cmp [bp+_size], 7FFFh
|
||||
jbe short loc_5BC6
|
||||
jmp loc_5C8A
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5BC6:
|
||||
cmp word_11CFE, 0
|
||||
jnz short loc_5BDC
|
||||
cmp word ptr [bp+stream], 2898h
|
||||
jnz short loc_5BDC
|
||||
mov word_11CFE, 1
|
||||
jmp short loc_5BF0
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5BDC:
|
||||
cmp word_11CFC, 0
|
||||
jnz short loc_5BF0
|
||||
cmp word ptr [bp+stream], 2884h
|
||||
jnz short loc_5BF0
|
||||
mov word_11CFC, 1
|
||||
|
||||
loc_5BF0:
|
||||
les bx, [bp+stream]
|
||||
cmp word ptr es:[bx], 0
|
||||
jz short loc_5C0D
|
||||
mov ax, 1
|
||||
push ax ; whence
|
||||
xor ax, ax
|
||||
push ax
|
||||
push ax ; offset
|
||||
push word ptr [bp+stream+2]
|
||||
push bx ; stream
|
||||
nopcall _fseek
|
||||
add sp, 0Ah
|
||||
|
||||
loc_5C0D:
|
||||
les bx, [bp+stream]
|
||||
test byte ptr es:[bx+2], 4
|
||||
jz short loc_5C26
|
||||
push word ptr es:[bx+0Ah]
|
||||
push word ptr es:[bx+8]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _farfree
|
||||
pop cx
|
||||
pop cx
|
||||
|
||||
loc_5C26:
|
||||
les bx, [bp+stream]
|
||||
and word ptr es:[bx+2], 0FFF3h
|
||||
mov word ptr es:[bx+6], 0
|
||||
mov dx, word ptr [bp+stream+2]
|
||||
mov ax, word ptr [bp+stream]
|
||||
add ax, 5
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
cmp [bp+_type], 2
|
||||
jz short loc_5CBA
|
||||
cmp [bp+_size], 0
|
||||
jbe short loc_5CBA
|
||||
mov word ptr _exitbuf+2, seg seg000
|
||||
mov word ptr _exitbuf, 5FC8h
|
||||
mov ax, word ptr [bp+buf]
|
||||
or ax, word ptr [bp+buf+2]
|
||||
jnz short loc_5C8F
|
||||
push [bp+_size]
|
||||
nop
|
||||
push cs
|
||||
call near ptr _malloc
|
||||
pop cx
|
||||
mov word ptr [bp+buf+2], dx
|
||||
mov word ptr [bp+buf], ax
|
||||
or ax, dx
|
||||
jz short loc_5C8A
|
||||
les bx, [bp+stream]
|
||||
or word ptr es:[bx+2], 4
|
||||
jmp short loc_5C8F
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5C8A:
|
||||
mov ax, 0FFFFh
|
||||
jmp short loc_5CBC
|
||||
; ---------------------------------------------------------------------------
|
||||
|
||||
loc_5C8F:
|
||||
les bx, [bp+stream]
|
||||
mov dx, word ptr [bp+buf+2]
|
||||
mov ax, word ptr [bp+buf]
|
||||
mov es:[bx+0Eh], dx
|
||||
mov es:[bx+0Ch], ax
|
||||
mov es:[bx+0Ah], dx
|
||||
mov es:[bx+8], ax
|
||||
mov ax, [bp+_size]
|
||||
mov es:[bx+6], ax
|
||||
cmp [bp+_type], 1
|
||||
jnz short loc_5CBA
|
||||
or word ptr es:[bx+2], 8
|
||||
|
||||
loc_5CBA:
|
||||
xor ax, ax
|
||||
|
||||
loc_5CBC:
|
||||
pop di
|
||||
pop si
|
||||
pop bp
|
||||
retf
|
||||
_setvbuf endp
|
||||
|
||||
include libs/BorlandC/setvbuf.asm
|
||||
include libs/BorlandC/_strcat.asm
|
||||
include libs/BorlandC/_strcmp.asm
|
||||
include libs/BorlandC/_strcpy.asm
|
||||
|
@ -12481,10 +12341,7 @@ dword_11CE8 dd 0
|
|||
db 0
|
||||
db 5Ch ; \
|
||||
db 0
|
||||
word_11CFC dw 0
|
||||
; _setvbuf+4Bw
|
||||
word_11CFE dw 0
|
||||
; _setvbuf+35w
|
||||
include libs/BorlandC/setvbuf[data].asm
|
||||
include libs/BorlandC/sysnerr[data].asm
|
||||
include libs/BorlandC/xx[data].asm
|
||||
include libs/BorlandC/setenvp[data].asm
|
||||
|
|
Loading…
Reference in New Issue