From 01a126da715624b07b8072aee01d96f4f0b441ca Mon Sep 17 00:00:00 2001 From: nmlgc Date: Wed, 3 Sep 2014 14:02:14 +0200 Subject: [PATCH] [Reduction] #449: setvbuf --- libs/BorlandC/setvbuf.asm | 152 +++++++++++++++++++++++++++++++ libs/BorlandC/setvbuf[data].asm | 2 + th01_fuuin.asm | 150 +----------------------------- th01_op.asm | 157 +------------------------------- th01_reiiden.asm | 150 +----------------------------- th01_zunsoft.asm | 129 +------------------------- th02_main.asm | 147 +----------------------------- th02_maine.asm | 147 +----------------------------- th02_op.asm | 147 +----------------------------- th03_main.asm | 147 +----------------------------- th03_mainl.asm | 147 +----------------------------- th03_op.asm | 147 +----------------------------- th04_main.asm | 148 +----------------------------- th04_maine.asm | 147 +----------------------------- th04_op.asm | 147 +----------------------------- th05_main.asm | 147 +----------------------------- th05_maine.asm | 146 +---------------------------- th05_op.asm | 147 +----------------------------- 18 files changed, 189 insertions(+), 2315 deletions(-) create mode 100644 libs/BorlandC/setvbuf.asm create mode 100644 libs/BorlandC/setvbuf[data].asm diff --git a/libs/BorlandC/setvbuf.asm b/libs/BorlandC/setvbuf.asm new file mode 100644 index 00000000..0d6d63b9 --- /dev/null +++ b/libs/BorlandC/setvbuf.asm @@ -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 diff --git a/libs/BorlandC/setvbuf[data].asm b/libs/BorlandC/setvbuf[data].asm new file mode 100644 index 00000000..bf01958e --- /dev/null +++ b/libs/BorlandC/setvbuf[data].asm @@ -0,0 +1,2 @@ +_stdinStarted dw 0 +_stdoutStarted dw 0 diff --git a/th01_fuuin.asm b/th01_fuuin.asm index 82838ee6..cba0f1a2 100644 --- a/th01_fuuin.asm +++ b/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 diff --git a/th01_op.asm b/th01_op.asm index 7a9fa1a6..164eb74a 100644 --- a/th01_op.asm +++ b/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 diff --git a/th01_reiiden.asm b/th01_reiiden.asm index cc0d7755..3eb68ee9 100644 --- a/th01_reiiden.asm +++ b/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 diff --git a/th01_zunsoft.asm b/th01_zunsoft.asm index 1635eb4a..b824ec94 100644 --- a/th01_zunsoft.asm +++ b/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 diff --git a/th02_main.asm b/th02_main.asm index 8421a324..fd40ce00 100644 --- a/th02_main.asm +++ b/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 diff --git a/th02_maine.asm b/th02_maine.asm index fc677f56..167a500d 100644 --- a/th02_maine.asm +++ b/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 diff --git a/th02_op.asm b/th02_op.asm index d24a3071..f2b2bb8d 100644 --- a/th02_op.asm +++ b/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 diff --git a/th03_main.asm b/th03_main.asm index 9d300735..21af8242 100644 --- a/th03_main.asm +++ b/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 diff --git a/th03_mainl.asm b/th03_mainl.asm index 4e3a2c9f..532ab66d 100644 --- a/th03_mainl.asm +++ b/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 diff --git a/th03_op.asm b/th03_op.asm index 12d78ad7..8cff30e1 100644 --- a/th03_op.asm +++ b/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 diff --git a/th04_main.asm b/th04_main.asm index e04114ba..6210f1b0 100644 --- a/th04_main.asm +++ b/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 diff --git a/th04_maine.asm b/th04_maine.asm index 44533b5e..8ea7e2c8 100644 --- a/th04_maine.asm +++ b/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 diff --git a/th04_op.asm b/th04_op.asm index c18213e9..24032c7f 100644 --- a/th04_op.asm +++ b/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 diff --git a/th05_main.asm b/th05_main.asm index 99b3dcc4..2b995c1e 100644 --- a/th05_main.asm +++ b/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 diff --git a/th05_maine.asm b/th05_maine.asm index afcd9c48..cda5ce88 100644 --- a/th05_maine.asm +++ b/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 diff --git a/th05_op.asm b/th05_op.asm index 5ed354c4..d3c9f085 100644 --- a/th05_op.asm +++ b/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