📄 vputbox.cod
字号:
; Static Name Aliases
;
TITLE vputbox
; NAME vputbox.C
.287
_TEXT SEGMENT BYTE PUBLIC 'CODE'
_TEXT ENDS
_DATA SEGMENT WORD PUBLIC 'DATA'
_DATA ENDS
CONST SEGMENT WORD PUBLIC 'CONST'
CONST ENDS
_BSS SEGMENT WORD PUBLIC 'BSS'
_BSS ENDS
DGROUP GROUP CONST, _BSS, _DATA
ASSUME CS: _TEXT, DS: DGROUP, SS: DGROUP, ES: DGROUP
EXTRN _vputn:NEAR
EXTRN _vidmode:NEAR
EXTRN _vput:NEAR
EXTRN __chkstk:NEAR
_TEXT SEGMENT
; Line 16
PUBLIC _vputbox
_vputbox PROC NEAR
*** 000000 55 push bp
*** 000001 8b ec mov bp,sp
*** 000003 b8 10 00 mov ax,16
*** 000006 e8 00 00 call __chkstk
*** 000009 56 push si
; Line 17
; row = 4
; col = 6
; width = 8
; height = 10
; attr = 12
; battr = 14
; retrace = 16
; frame = 18
; register si = c
; scr_ofs = -8
; vstart = -12
; iwid = -2
; iht = -16
; i = -14
; Line 22
*** 00000a 8b 46 08 mov ax,[bp+8] ;width
*** 00000d 2d 02 00 sub ax,2
*** 000010 89 46 fe mov [bp-2],ax ;iwid
; Line 23
*** 000013 8b 46 0a mov ax,[bp+10] ;height
*** 000016 2d 02 00 sub ax,2
*** 000019 89 46 f0 mov [bp-16],ax ;iht
; Line 25
*** 00001c e8 00 00 call _vidmode
*** 00001f 3d 07 00 cmp ax,7
*** 000022 75 19 jne $I26
; Line 26
; Line 27
*** 000024 b8 a0 00 mov ax,160
*** 000027 f7 6e 04 imul WORD PTR [bp+4] ;row
*** 00002a 80 c4 00 add ah,0
*** 00002d ba 00 b0 mov dx,-20480
*** 000030 89 46 f4 mov [bp-12],ax ;vstart
*** 000033 89 56 f6 mov [bp-10],dx
; Line 28
*** 000036 c7 46 10 00 00 mov WORD PTR [bp+16],0 ;retrace
; Line 29
; Line 30
*** 00003b eb 12 jmp SHORT $I27
$I26:
; Line 31
*** 00003d b8 a0 00 mov ax,160
*** 000040 f7 6e 04 imul WORD PTR [bp+4] ;row
*** 000043 80 c4 00 add ah,0
*** 000046 ba 00 b8 mov dx,-18432
*** 000049 89 46 f4 mov [bp-12],ax ;vstart
*** 00004c 89 56 f6 mov [bp-10],dx
$I27:
; Line 33
*** 00004f 8b 46 06 mov ax,[bp+6] ;col
*** 000052 d1 e0 shl ax,1
*** 000054 03 46 f4 add ax,[bp-12] ;vstart
*** 000057 8b 56 f6 mov dx,[bp-10]
*** 00005a 89 46 f8 mov [bp-8],ax ;scr_ofs
*** 00005d 89 56 fa mov [bp-6],dx
; Line 34
*** 000060 c4 5e 12 les bx,[bp+18] ;frame
*** 000063 26 8b 37 mov si,es:[bx]
*** 000066 8b 46 0e mov ax,[bp+14] ;battr
*** 000069 b1 08 mov cl,8
*** 00006b d3 e0 shl ax,cl
*** 00006d 0b f0 or si,ax
; Line 35
*** 00006f ff 76 10 push WORD PTR [bp+16] ;retrace
*** 000072 56 push si
*** 000073 52 push dx
*** 000074 ff 76 f8 push WORD PTR [bp-8] ;scr_ofs
*** 000077 83 46 f8 02 add WORD PTR [bp-8],2 ;scr_ofs
*** 00007b e8 00 00 call _vput
*** 00007e 83 c4 08 add sp,8
; Line 37
*** 000081 c4 5e 12 les bx,[bp+18] ;frame
*** 000084 26 8b 77 08 mov si,es:[bx+8]
*** 000088 8b 46 0e mov ax,[bp+14] ;battr
*** 00008b b1 08 mov cl,8
*** 00008d d3 e0 shl ax,cl
*** 00008f 0b f0 or si,ax
; Line 38
*** 000091 ff 76 10 push WORD PTR [bp+16] ;retrace
*** 000094 ff 76 fe push WORD PTR [bp-2] ;iwid
*** 000097 56 push si
*** 000098 ff 76 fa push WORD PTR [bp-6]
*** 00009b ff 76 f8 push WORD PTR [bp-8] ;scr_ofs
*** 00009e e8 00 00 call _vputn
*** 0000a1 83 c4 0a add sp,10
*** 0000a4 89 46 f8 mov [bp-8],ax ;scr_ofs
*** 0000a7 89 56 fa mov [bp-6],dx
; Line 40
*** 0000aa c4 5e 12 les bx,[bp+18] ;frame
*** 0000ad 26 8b 77 02 mov si,es:[bx+2]
*** 0000b1 8b 46 0e mov ax,[bp+14] ;battr
*** 0000b4 b1 08 mov cl,8
*** 0000b6 d3 e0 shl ax,cl
*** 0000b8 0b f0 or si,ax
; Line 41
*** 0000ba ff 76 10 push WORD PTR [bp+16] ;retrace
*** 0000bd 56 push si
*** 0000be 52 push dx
*** 0000bf ff 76 f8 push WORD PTR [bp-8] ;scr_ofs
*** 0000c2 e8 00 00 call _vput
*** 0000c5 83 c4 08 add sp,8
; Line 43
*** 0000c8 8b 46 f0 mov ax,[bp-16] ;iht
*** 0000cb 89 46 f2 mov [bp-14],ax ;i
; Line 44
*** 0000ce e9 82 00 jmp $L20001
$WC29:
; Line 45
; Line 46
*** 0000d1 81 46 f4 a0 00 add WORD PTR [bp-12],160 ;vstart
; Line 47
*** 0000d6 8b 46 06 mov ax,[bp+6] ;col
*** 0000d9 d1 e0 shl ax,1
*** 0000db 03 46 f4 add ax,[bp-12] ;vstart
*** 0000de 8b 56 f6 mov dx,[bp-10]
*** 0000e1 89 46 f8 mov [bp-8],ax ;scr_ofs
*** 0000e4 89 56 fa mov [bp-6],dx
; Line 49
*** 0000e7 c4 5e 12 les bx,[bp+18] ;frame
*** 0000ea 26 8b 77 0a mov si,es:[bx+10]
*** 0000ee 8b 46 0e mov ax,[bp+14] ;battr
*** 0000f1 b1 08 mov cl,8
*** 0000f3 d3 e0 shl ax,cl
*** 0000f5 0b f0 or si,ax
; Line 50
*** 0000f7 ff 76 10 push WORD PTR [bp+16] ;retrace
*** 0000fa 56 push si
*** 0000fb 52 push dx
*** 0000fc ff 76 f8 push WORD PTR [bp-8] ;scr_ofs
*** 0000ff 83 46 f8 02 add WORD PTR [bp-8],2 ;scr_ofs
*** 000103 e8 00 00 call _vput
*** 000106 83 c4 08 add sp,8
; Line 52
*** 000109 c4 5e 12 les bx,[bp+18] ;frame
*** 00010c 26 8b 77 0c mov si,es:[bx+12]
*** 000110 8b 46 0c mov ax,[bp+12] ;attr
*** 000113 b1 08 mov cl,8
*** 000115 d3 e0 shl ax,cl
*** 000117 0b f0 or si,ax
; Line 53
*** 000119 ff 76 10 push WORD PTR [bp+16] ;retrace
*** 00011c ff 76 fe push WORD PTR [bp-2] ;iwid
*** 00011f 56 push si
*** 000120 ff 76 fa push WORD PTR [bp-6]
*** 000123 ff 76 f8 push WORD PTR [bp-8] ;scr_ofs
*** 000126 e8 00 00 call _vputn
*** 000129 83 c4 0a add sp,10
*** 00012c 89 46 f8 mov [bp-8],ax ;scr_ofs
*** 00012f 89 56 fa mov [bp-6],dx
; Line 55
*** 000132 c4 5e 12 les bx,[bp+18] ;frame
*** 000135 26 8b 77 0a mov si,es:[bx+10]
*** 000139 8b 46 0e mov ax,[bp+14] ;battr
*** 00013c b1 08 mov cl,8
*** 00013e d3 e0 shl ax,cl
*** 000140 0b f0 or si,ax
; Line 56
*** 000142 ff 76 10 push WORD PTR [bp+16] ;retrace
*** 000145 56 push si
*** 000146 52 push dx
*** 000147 ff 76 f8 push WORD PTR [bp-8] ;scr_ofs
*** 00014a e8 00 00 call _vput
*** 00014d 83 c4 08 add sp,8
; Line 57
*** 000150 ff 4e f2 dec WORD PTR [bp-14] ;i
; Line 58
$L20001:
*** 000153 83 7e f2 00 cmp WORD PTR [bp-14],0 ;i
*** 000157 74 03 je $JCC343
*** 000159 e9 75 ff jmp $WC29
$JCC343:
; Line 59
*** 00015c 81 46 f4 a0 00 add WORD PTR [bp-12],160 ;vstart
; Line 60
*** 000161 8b 46 06 mov ax,[bp+6] ;col
*** 000164 d1 e0 shl ax,1
*** 000166 03 46 f4 add ax,[bp-12] ;vstart
*** 000169 8b 56 f6 mov dx,[bp-10]
*** 00016c 89 46 f8 mov [bp-8],ax ;scr_ofs
*** 00016f 89 56 fa mov [bp-6],dx
; Line 61
*** 000172 c4 5e 12 les bx,[bp+18] ;frame
*** 000175 26 8b 77 04 mov si,es:[bx+4]
*** 000179 8b 46 0e mov ax,[bp+14] ;battr
*** 00017c b1 08 mov cl,8
*** 00017e d3 e0 shl ax,cl
*** 000180 0b f0 or si,ax
; Line 62
*** 000182 ff 76 10 push WORD PTR [bp+16] ;retrace
*** 000185 56 push si
*** 000186 52 push dx
*** 000187 ff 76 f8 push WORD PTR [bp-8] ;scr_ofs
*** 00018a 83 46 f8 02 add WORD PTR [bp-8],2 ;scr_ofs
*** 00018e e8 00 00 call _vput
*** 000191 83 c4 08 add sp,8
; Line 64
*** 000194 c4 5e 12 les bx,[bp+18] ;frame
*** 000197 26 8b 77 08 mov si,es:[bx+8]
*** 00019b 8b 46 0e mov ax,[bp+14] ;battr
*** 00019e b1 08 mov cl,8
*** 0001a0 d3 e0 shl ax,cl
*** 0001a2 0b f0 or si,ax
; Line 65
*** 0001a4 ff 76 10 push WORD PTR [bp+16] ;retrace
*** 0001a7 ff 76 fe push WORD PTR [bp-2] ;iwid
*** 0001aa 56 push si
*** 0001ab ff 76 fa push WORD PTR [bp-6]
*** 0001ae ff 76 f8 push WORD PTR [bp-8] ;scr_ofs
*** 0001b1 e8 00 00 call _vputn
*** 0001b4 83 c4 0a add sp,10
*** 0001b7 89 46 f8 mov [bp-8],ax ;scr_ofs
*** 0001ba 89 56 fa mov [bp-6],dx
; Line 67
*** 0001bd c4 5e 12 les bx,[bp+18] ;frame
*** 0001c0 26 8b 77 06 mov si,es:[bx+6]
*** 0001c4 8b 46 0e mov ax,[bp+14] ;battr
*** 0001c7 b1 08 mov cl,8
*** 0001c9 d3 e0 shl ax,cl
*** 0001cb 0b f0 or si,ax
; Line 68
*** 0001cd ff 76 10 push WORD PTR [bp+16] ;retrace
*** 0001d0 56 push si
*** 0001d1 52 push dx
*** 0001d2 ff 76 f8 push WORD PTR [bp-8] ;scr_ofs
*** 0001d5 e8 00 00 call _vput
*** 0001d8 83 c4 08 add sp,8
; Line 69
*** 0001db 5e pop si
*** 0001dc 8b e5 mov sp,bp
*** 0001de 5d pop bp
*** 0001df c3 ret
_vputbox ENDP
_TEXT ENDS
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -