📄 stprin~1.asm
字号:
@54:
push 0
call @biosprint
mov ebx,eax
test ebx,ebx
je short @55
mov eax,ebx
jmp @24
@55:
push 27
call @biosprint
mov ebx,eax
test ebx,ebx
je short @56
mov eax,ebx
jmp @24
@56:
push 82
call @biosprint
mov ebx,eax
test ebx,ebx
je short @57
mov eax,ebx
jmp short @24
@57:
push 0
call @biosprint
mov ebx,eax
test ebx,ebx
je short @58
mov eax,ebx
jmp short @24
@58:
push 27
call @biosprint
mov ebx,eax
test ebx,ebx
je short @59
mov eax,ebx
jmp short @24
@59:
push 85
call @biosprint
mov ebx,eax
test ebx,ebx
je short @60
mov eax,ebx
jmp short @24
@60:
push 0
call @biosprint
mov ebx,eax
test ebx,ebx
je short @61
mov eax,ebx
jmp short @24
@61:
push 27
call @biosprint
mov ebx,eax
test ebx,ebx
je short @62
mov eax,ebx
jmp short @24
@62:
push 53
call @biosprint
mov ebx,eax
test ebx,ebx
je short @63
mov eax,ebx
jmp short @24
@63:
push 0
call @biosprint
mov ebx,eax
mov eax,ebx
@64:
@24:
pop edi
pop esi
pop ebx
ret
@InitPrinter endp
InitPrinter ends
_TEXT ends
_TEXT segment dword public use32 'CODE'
Set_Page_Size segment virtual
align 2
@Set_Page_Size proc near
?live16391@0:
@65:
push ebp
mov ebp,esp
push ebx
mov ebx,dword ptr [ebp+8]
?live16391@16: ; EBX = _pagesize
push 27
call @biosprint
test eax,eax
jne short @67
push 64
call @biosprint
test eax,eax
jne short @67
push 27
call @biosprint
test eax,eax
jne short @67
push 67
call @biosprint
test eax,eax
jne short @67
cmp ebx,30
jge short @71
push 0
call @biosprint
test eax,eax
jne short @67
@71:
push ebx
call @biosprint
?live16391@128: ;
@73:
@67:
pop ebx
pop ebp
ret 4
@Set_Page_Size endp
Set_Page_Size ends
_TEXT ends
_TEXT segment dword public use32 'CODE'
IsPrnStatusOk segment virtual
align 2
@IsPrnStatusOk proc near
?live16392@0:
@74:
push ebx
push esi
call @GetTickCount
mov esi,eax
?live16392@32: ; ESI = BeginTimeMillis
@75:
mov ax,word ptr [_IoPortBase]
inc eax
push eax
call @@_inp$qus
pop ecx
?live16392@48: ; EAX = statue, ESI = BeginTimeMillis
cmp eax,127
jne short @76
?live16392@64: ; ESI = BeginTimeMillis
mov ebx,-10006
jmp short @77
?live16392@80: ; EAX = statue, ESI = BeginTimeMillis
@76:
test al,-128
jne short @78
?live16392@96: ; ESI = BeginTimeMillis
mov ebx,1
jmp short @77
?live16392@112: ; EAX = statue, ESI = BeginTimeMillis
@78:
test al,64
jne short @79
?live16392@128: ; ESI = BeginTimeMillis
mov ebx,-10001
jmp short @77
?live16392@144: ; EAX = statue, ESI = BeginTimeMillis
@79:
mov edx,eax
and edx,32
dec edx
jne short @80
?live16392@160: ; ESI = BeginTimeMillis
mov ebx,-10004
jmp short @77
?live16392@176: ; EAX = statue, ESI = BeginTimeMillis
@80:
test al,16
jne short @81
?live16392@192: ; ESI = BeginTimeMillis
mov ebx,-10005
jmp short @77
?live16392@208: ; EAX = statue, ESI = BeginTimeMillis
@81:
test al,8
jne short @82
?live16392@224: ; ESI = BeginTimeMillis
mov ebx,-10002
jmp short @77
@82:
xor ebx,ebx
?live16392@256: ; EBX = condition, ESI = BeginTimeMillis
@77:
call @GetTickCount
sub eax,esi
cmp eax,50
jae short @83
cmp ebx,1
je short @75
?live16392@272: ; EBX = condition
@83:
cmp ebx,1
jne short @84
?live16392@288: ;
mov ebx,-10003
?live16392@304: ; EBX = condition
@84:
mov eax,ebx
?live16392@320: ;
@86:
@85:
pop esi
pop ebx
ret
@IsPrnStatusOk endp
IsPrnStatusOk ends
_TEXT ends
_TEXT segment dword public use32 'CODE'
Print_Str_Wide segment virtual
align 2
@Print_Str_Wide proc near
?live16393@0:
@87:
push ebp
mov ebp,esp
push ebx
push 27
call @biosprint
test eax,eax
jne short @89
push 14
call @biosprint
test eax,eax
jne short @89
mov eax,dword ptr [ebp+8]
mov ebx,eax
jmp short @92
?live16393@64: ; EBX = @temp1, EAX = @temp2
@91:
movsx eax,al
push eax
call @biosprint
test eax,eax
jne short @89
inc ebx
@92:
mov al,byte ptr [ebx]
test al,al
setne dl
and edx,1
test dl,dl
jne short @91
?live16393@80: ;
push 27
call @biosprint
test eax,eax
jne short @89
push 20
call @biosprint
test eax,eax
jne short @89
@97:
@89:
pop ebx
pop ebp
ret 4
@Print_Str_Wide endp
Print_Str_Wide ends
_TEXT ends
_TEXT segment dword public use32 'CODE'
Print_Str segment virtual
align 2
@Print_Str proc near
?live16394@0:
@98:
push ebp
mov ebp,esp
push ebx
?live16394@16: ; EAX = ret
mov edx,dword ptr [ebp+8]
mov ebx,edx
jmp short @100
?live16394@32: ; EBX = @temp0, EDX = @temp2
@99:
movsx eax,dl
push eax
call @biosprint
test eax,eax
jne short @102
inc ebx
@100:
mov dl,byte ptr [ebx]
test dl,dl
setne cl
and ecx,1
test cl,cl
jne short @99
?live16394@48: ;
@104:
@102:
pop ebx
pop ebp
ret 4
@Print_Str endp
Print_Str ends
_TEXT ends
_TEXT segment dword public use32 'CODE'
Feed_Paper segment virtual
align 2
@Feed_Paper proc near
?live16395@0:
@105:
push ebp
mov ebp,esp
push ebx
push esi
mov esi,dword ptr [ebp+8]
?live16395@16: ; ESI = _feedline
@106:
xor ebx,ebx
jmp short @108
?live16395@32: ; EBX = i, ESI = _feedline
@107:
push 27
call @biosprint
test eax,eax
jne short @110
test esi,esi
jle short @111
push 74
call @biosprint
test eax,eax
je short @113
jmp short @110
@111:
push 106
call @biosprint
test eax,eax
jne short @110
@113:
push 30
call @biosprint
test eax,eax
jne short @110
@116:
inc ebx
@108:
mov ecx,esi
mov eax,ecx
cdq
xor eax,edx
sub eax,edx
cmp ebx,eax
jl short @107
?live16395@128: ;
push 32
call @biosprint
test eax,eax
jne short @110
push 13
call @biosprint
@119:
@110:
pop esi
pop ebx
pop ebp
ret 4
@Feed_Paper endp
Feed_Paper ends
_TEXT ends
_TEXT segment dword public use32 'CODE'
End_Page segment virtual
align 2
@End_Page proc near
?live16396@0:
@120:
push 12
call @biosprint
@122:
@121:
ret
@End_Page endp
End_Page ends
_TEXT ends
_TEXT segment dword public use32 'CODE'
biosprint segment virtual
align 2
@biosprint proc near
?live16397@0:
@123:
push ebp
mov ebp,esp
push ebx
push esi
mov esi,offset _CircleTimes
?live16397@16: ; ESI = &_CircleTimes
@124:
xor ebx,ebx
?live16397@32: ; EBX = j, ESI = &_CircleTimes
@125:
call @IsPrnStatusOk
?live16397@48: ; EAX = ret, EBX = j, ESI = &_CircleTimes
test eax,eax
je short @128
?live16397@64: ; ESI = &_CircleTimes
cmp eax,-10003
jne @130
?live16397@80: ; EAX = ret
cmp ebx,99
jne short @132
mov eax,-10003
jmp short @130
?live16397@96: ; EBX = j, ESI = &_CircleTimes
@132:
push 50
call @Sleep
@133:
inc ebx
cmp ebx,100
jl short @125
?live16397@128: ; ESI = &_CircleTimes
@128:
mov cx,word ptr [_IoPortBase]
mov dl,byte ptr [ebp+8]
push edx
push ecx
call @@_outp$qusuc
add esp,8
xor eax,eax
jmp short @136
@135:
inc eax
@136:
cmp eax,dword ptr [esi]
jl short @135
mov cx,word ptr [_IoPortBase]
mov dl,byte ptr [_MakePrt]
and dl,13
add cx,2
push edx
push ecx
call @@_outp$qusuc
add esp,8
xor eax,eax
jmp short @139
@138:
inc eax
@139:
cmp eax,dword ptr [esi]
jl short @138
mov cx,word ptr [_IoPortBase]
mov dl,byte ptr [_MakePrt]
and dl,12
add cx,2
push edx
push ecx
call @@_outp$qusuc
add esp,8
xor eax,eax
jmp short @142
@141:
inc eax
@142:
cmp eax,dword ptr [esi]
jl short @141
?live16397@224: ;
xor eax,eax
@144:
@130:
pop esi
pop ebx
pop ebp
ret 4
@biosprint endp
biosprint ends
_TEXT ends
_TEXT segment dword public use32 'CODE'
Get_PrnErrMsg segment virtual
align 2
@Get_PrnErrMsg proc near
?live16398@0:
@145:
push ebp
mov ebp,esp
push ebx
push esi
push edi
mov ebx,dword ptr [ebp+12]
mov eax,dword ptr [ebp+8]
?live16398@16: ; EAX = ErrNo, EBX = ErrMsg
cmp eax,-10001
jne short @146
?live16398@32: ; EBX = ErrMsg
mov esi,offset s@
mov edi,ebx
mov eax,edi
movsd
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -