; Segment Number : 4 ; Alloc Size : 3DAFh ; Offset in the file: 14710h Length: 3DAFh ; Attributes (1D70): CODE Moveable Pure Preloaded Relocations Discardable DPL: 3 ; 様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 ; Segment type: Regular cseg04 segment para public 'CODE' use16 assume cs:cseg04 assume es:nothing, ss:nothing, ds:dseg08, fs:nothing, gs:nothing aResolution db 'Resolution',0 ; DATA XREF: GetScreenSettings+19o aBaseaddress db 'BaseAddress',0 ; DATA XREF: DriverInit+70o assume ss:cseg01 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame DriverInit proc far var_28 = byte ptr -28h push bp mov bp, sp add sp, 0FFD8h push si push di push seg cseg01 call GLOBALSMARTPAGELOCK push seg cseg06 call GLOBALSMARTPAGELOCK push seg cseg05 call GLOBALSMARTPAGELOCK mov ax, 1684h mov bx, 0Ah int 2Fh ; - Multiplex - MS WINDOWS - GET DEVICE API ENTRY POINT ; BX = virtual device (VxD) ID, ES:DI = 0000h:0000h ; Return: ES:DI -> VxD API entry point, or 0:0 if the VxD does not support an API mov word ptr VDDEntryPoint, di mov word ptr VDDEntryPoint+2, es mov [bp+var_28], 0 push ds push offset aIntl ; "intl" push ds push offset aSlanguage ; "slanguage" push ss lea ax, [bp+var_28] push ax push ss lea ax, [bp+var_28] push ax push 5 push ds push offset aWin_ini ; "WIN.INI" call GETPRIVATEPROFILESTRING push es push ss pop es assume es:cseg01 mov si, 53DCh lea di, [bp+var_28] mov cx, 3 repe cmpsb jnz loc_1400_7D mov bWinLang, 1 loc_1400_7D: ; CODE XREF: DriverInit+5Fj pop es assume es:nothing mov [bp+var_28], 0 push ds push offset szBoard ; "NeoMagic95" push cs push offset aBaseaddress ; "BaseAddress" push ss lea ax, [bp+var_28] push ax push ss lea ax, [bp+var_28] push ax push 28h ; '(' push ds push offset szSystemIni ; "SYSTEM.INI" call GETPRIVATEPROFILESTRING cmp [bp+var_28], 0 jz loc_1400_CE xor ecx, ecx lea si, [bp+var_28] loc_1400_AB: ; CODE XREF: DriverInit+B0j mov al, ss:[si+0] inc si or al, al jz loc_1400_C9 cmp al, 39h ; '9' ja loc_1400_BB sub al, 30h ; '0' jmp short loc_1400_C1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_BB: ; CODE XREF: DriverInit+9Ej and al, 5Fh sub al, 41h ; 'A' add al, 0Ah loc_1400_C1: ; CODE XREF: DriverInit+A2j shl ecx, 4 add cl, al jmp short loc_1400_AB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_C9: ; CODE XREF: DriverInit+9Aj mov PhysicalBase, ecx loc_1400_CE: ; CODE XREF: DriverInit+8Cj mov ax, 1 pop di pop si mov sp, bp pop bp retf DriverInit endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame GetScreenSettings proc near ; CODE XREF: REENABLE1+4Cp ENABLE1+1Fp var_76 = word ptr -76h var_74 = word ptr -74h var_72 = byte ptr -72h var_4A = byte ptr -4Ah var_46 = dword ptr -46h var_32 = word ptr -32h var_30 = word ptr -30h var_2E = word ptr -2Eh var_2B = byte ptr -2Bh var_2A = word ptr -2Ah push bp mov bp, sp add sp, 0FF8Ah mov [bp+var_74], 0 mov [bp+var_76], 0 mov [bp+var_72], 0 push ds push offset szBoard ; "NeoMagic95" push cs push offset aResolution ; "Resolution" push ss lea ax, [bp+var_72] push ax push ss lea ax, [bp+var_72] push ax push 28h ; '(' push ds push offset szSystemIni ; "SYSTEM.INI" call GETPRIVATEPROFILESTRING test ax, ax jz loc_1400_118 lea di, [bp+var_72] call ConvResToXY mov [bp+var_74], bx mov [bp+var_76], dx loc_1400_118: ; CODE XREF: GetScreenSettings+33j mov ax, ss mov es, ax assume es:cseg01 lea edi, [bp+var_4A] mov eax, 85h ; '' mov ebx, dwDeviceHandle mov ecx, 4Ah ; 'J' call VDDEntryPoint cmp eax, 85h ; '' jz loc_1400_1A4 inc eax jz loc_1400_1A4 mov ax, [bp+var_2A] mov RefreshRateMax, ax mov ebx, [bp+var_46] mov dwDevNode, ebx mov bx, [bp+var_32] mov dx, [bp+var_30] movzx ax, [bp+var_2B] mov wBpp, ax mov ax, [bp+var_2E] test ax, ax jz loc_1400_167 mov wDpi, ax loc_1400_167: ; CODE XREF: GetScreenSettings+8Bj mov cxScreenPixels, bx mov cyScreenPixels, dx cmp [bp+var_74], 0 jz loc_1400_18F mov bx, [bp+var_74] mov dx, [bp+var_76] cmp cxScreenPixels, bx jnb loc_1400_185 mov bx, cxScreenPixels loc_1400_185: ; CODE XREF: GetScreenSettings+A8j cmp cyScreenPixels, dx jnb loc_1400_18F mov dx, cyScreenPixels loc_1400_18F: ; CODE XREF: GetScreenSettings+9Cj ; GetScreenSettings+B2j call FindPModeTag cmp dwUnitNumber, 0 jnz loc_1400_1A0 mov pModeTag, si jmp short loc_1400_1A4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_1A0: ; CODE XREF: GetScreenSettings+C1j mov pModeTagSecond, si loc_1400_1A4: ; CODE XREF: GetScreenSettings+64j ; GetScreenSettings+68j ; GetScreenSettings+C7j mov cx, 0 cmp wBpp, 8 jnz loc_1400_1B1 mov cx, 1 loc_1400_1B1: ; CODE XREF: GetScreenSettings+D5j mov wPalettized, cx xor eax, eax mov al, byte ptr wBpp inc al shr al, 3 mov bytespp, eax neg eax mov Negbytespp, eax mov sp, bp pop bp retn GetScreenSettings endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 FindPModeTag proc near ; CODE XREF: GetScreenSettings+B8p ; VALIDATEMODE1+F7p cmp dwUnitNumber, 1 jnz loc_1400_26D push di test fDisplay_Status, 4 jz loc_1400_1FD mov di, word ptr fDisplay_Status and di, 8 shr di, 3 mov cx, 0Eh cmp fToshibaSys, 0 jz loc_1400_1F8 mov cx, 14h loc_1400_1F8: ; CODE XREF: FindPModeTag+24j mov si, 8AFEh jmp short loc_1400_20D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_1FD: ; CODE XREF: FindPModeTag+10j mov cx, 0Ch cmp fToshibaSys, 0 jz loc_1400_20A mov cx, 0Fh loc_1400_20A: ; CODE XREF: FindPModeTag+36j mov si, 89F0h loc_1400_20D: ; CODE XREF: FindPModeTag+2Cj call FindG2ModeTag or si, si jnz loc_1400_22E cmp dx, 1E0h jnz loc_1400_220 cmp bx, 280h jnz loc_1400_22C loc_1400_220: ; CODE XREF: FindPModeTag+49j cmp dx, 258h jnz loc_1400_22E cmp bx, 320h jz loc_1400_22E loc_1400_22C: ; CODE XREF: FindPModeTag+4Fj xor ax, ax loc_1400_22E: ; CODE XREF: FindPModeTag+43j ; FindPModeTag+55j FindPModeTag+5Bj or si, si jnz loc_1400_268 test fDisplay_Status, 4 jz loc_1400_268 or ax, ax jz loc_1400_268 mov cx, 280h mov dx, 1E0h or di, di jnz loc_1400_253 cmp bx, 190h jnz loc_1400_253 mov cx, 140h mov dx, 0F0h ; '' loc_1400_253: ; CODE XREF: FindPModeTag+76j ; FindPModeTag+7Cj mov bx, cx mov cx, 0Eh cmp fToshibaSys, 0 jz loc_1400_262 mov cx, 14h loc_1400_262: ; CODE XREF: FindPModeTag+8Ej mov si, 8AFEh call FindG2ModeTag loc_1400_268: ; CODE XREF: FindPModeTag+61j ; FindPModeTag+68j FindPModeTag+6Cj pop di mov ax, 2 retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_26D: ; CODE XREF: FindPModeTag+6j mov cx, 22h ; '"' mov si, 878Ch mov ax, wBpp loc_1400_276: ; CODE XREF: FindPModeTag+B8j cmp [si], ax jnz loc_1400_284 cmp [si+6], bx jnz loc_1400_284 cmp [si+8], dx jz locret_1400_28B loc_1400_284: ; CODE XREF: FindPModeTag+A9j ; FindPModeTag+AEj add si, 12h loop loc_1400_276 xor si, si locret_1400_28B: ; CODE XREF: FindPModeTag+B3j retn FindPModeTag endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 FindG2ModeTag proc near ; CODE XREF: FindPModeTag+3Ep ; FindPModeTag+96p mov ax, wBpp loc_1400_28F: ; CODE XREF: FindG2ModeTag+20j test fDisplay_Status, 4 jz loc_1400_29B cmp [si+0Eh], di jnz loc_1400_2A9 loc_1400_29B: ; CODE XREF: FindG2ModeTag+8j cmp [si], ax jnz loc_1400_2A9 cmp [si+6], bx jnz loc_1400_2A9 cmp [si+8], dx jz loc_1400_2B0 loc_1400_2A9: ; CODE XREF: FindG2ModeTag+Dj ; FindG2ModeTag+11j FindG2ModeTag+16j add si, 12h loop loc_1400_28F xor si, si loc_1400_2B0: ; CODE XREF: FindG2ModeTag+1Bj cmp fTVInfo, 1 ja locret_1400_2C7 cmp word ptr [si+2], 203h jz loc_1400_2C5 cmp word ptr [si+2], 213h jnz locret_1400_2C7 loc_1400_2C5: ; CODE XREF: FindG2ModeTag+30j xor si, si locret_1400_2C7: ; CODE XREF: FindG2ModeTag+29j ; FindG2ModeTag+37j retn FindG2ModeTag endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 OutputErrorMessage db 0B8h ; db 3 ; db 0 ; db 0CDh ; db 10h ; db 0B4h ; db 9 ; db 0CDh ; db 21h ; ! db 0BAh ; db 0A6h ; db 53h ; S db 0B4h ; db 9 ; db 0CDh ; db 21h ; ! db 0B4h ; db 8 ; db 0CDh ; db 21h ; ! db 0CBh ; ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ConvResToXY proc near ; CODE XREF: GetScreenSettings+38p xor dx, dx xor bx, bx xor ax, ax loc_1400_2E3: ; CODE XREF: ConvResToXY+12j ; ConvResToXY+1Fj mov al, ss:[di] inc di test al, al jz locret_1400_313 or al, 20h cmp al, 20h ; ' ' jz loc_1400_2E3 cmp al, 78h ; 'x' jz loc_1400_2FE sub al, 30h ; '0' imul bx, 0Ah add bx, ax jmp short loc_1400_2E3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2FE: ; CODE XREF: ConvResToXY+16j ; ConvResToXY+34j mov al, ss:[di] inc di test al, al jz locret_1400_313 cmp al, 20h ; ' ' jz locret_1400_313 sub al, 30h ; '0' imul dx, 0Ah add dx, ax jmp short loc_1400_2FE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 locret_1400_313: ; CODE XREF: ConvResToXY+Cj ; ConvResToXY+27j ConvResToXY+2Bj retn ConvResToXY endp ; ; External Entry #450 into the Module ; Attributes (0003): Moveable Exported Shared dataseg ; ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame public GetDriverResourceID GetDriverResourceID proc far var_2 = byte ptr -2 arg_4 = word ptr 0Ah mov ax, ds ; DISPLAY_450 nop push bp mov bp, sp push ds mov ds, ax mov ax, [bp+arg_4] cmp ax, 3 jnz loc_1400_32F cmp wDpi, 60h ; '`' jz loc_1400_32F mov ax, 7D3h loc_1400_32F: ; CODE XREF: GetDriverResourceID+Fj ; GetDriverResourceID+16j xor dx, dx lea sp, [bp+var_2] pop ds pop bp retf 6 GetDriverResourceID endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 HookInt2Fh proc near ; CODE XREF: ENABLE1+320p push bx push cx push dx push ds push es mov ax, word ptr RepaintAddr or ax, word ptr RepaintAddr+2 jnz loc_1400_384 mov ax, 568Fh push ds push ax call GETMODULEHANDLE push ax mov ax, 113h cwd push dx push ax call GETPROCADDRESS mov word ptr RepaintAddr, ax mov word ptr RepaintAddr+2, dx mov ax, 5698h push ds push ax call GETMODULEHANDLE push ax mov ax, 1C1h cwd push dx push ax call GETPROCADDRESS mov GetColorAddr, ax mov word_1947_5696, dx loc_1400_384: ; CODE XREF: HookInt2Fh+Cj cli or byte_1947_5688, 1 push ds mov ax, seg cseg05 push ax call ALLOCCSTODSALIAS mov ds, ax push ax push ax mov ax, 352Fh int 21h ; DOS - 2+ - GET INTERRUPT VECTOR ; AL = interrupt number ; Return: ES:BX = value of interrupt vector mov word_1947_0, bx mov word_1947_2, es mov dx, 70h ; 'p' mov ax, seg cseg05 mov ds, ax assume ds:cseg05 mov ax, 252Fh int 21h ; DOS - SET INTERRUPT VECTOR ; AL = interrupt number ; DS:DX = new vector to be used for specified interrupt pop ds assume ds:dseg08 mov ax, 3510h int 21h ; DOS - 2+ - GET INTERRUPT VECTOR ; AL = interrupt number ; Return: ES:BX = value of interrupt vector mov dx, es mov ax, seg cseg05 cmp ax, dx jz loc_1400_3C9 mov word_1947_4, bx mov word_1947_6, es loc_1400_3C9: ; CODE XREF: HookInt2Fh+83j mov ds, ax assume ds:cseg05 mov dx, 32h ; '2' mov ax, 2510h int 21h ; DOS - SET INTERRUPT VECTOR ; AL = interrupt number ; DS:DX = new vector to be used for specified interrupt call FREESELECTOR pop ds assume ds:dseg08 sti pop es assume es:nothing pop ds pop dx pop cx pop bx retn HookInt2Fh endp ; sp = -18h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 RestoreInt2Fh proc near ; CODE XREF: DISABLE1+BBp mov ax, seg dseg08 mov es, ax assume es:dseg08 test es:byte_1947_5688, 1 jz locret_1400_416 cli and es:byte_1947_5688, 0FEh push es push ds mov ax, seg cseg05 push ax call ALLOCCSTODSALIAS mov es, ax assume es:nothing push ax push dx lds dx, es:0 mov ax, 252Fh int 21h ; DOS - SET INTERRUPT VECTOR ; AL = interrupt number ; DS:DX = new vector to be used for specified interrupt pop dx sti call FREESELECTOR pop ds pop es locret_1400_416: ; CODE XREF: RestoreInt2Fh+Bj retn RestoreInt2Fh endp ; sp = -4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 2 DIB1ColorTable db 0 ; db 0 ; db 0 ; db 0 ; db 0FFh ; db 0FFh ; db 0FFh ; db 1 ; DIB4ColorTable db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 80h ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 80h ; db 0 ; db 80h ; db 80h ; db 0 ; db 0 ; db 0C0h ; db 0C0h ; db 0C0h ; db 1 ; db 80h ; db 80h ; db 80h ; db 1 ; db 0 ; db 0 ; db 0FFh ; db 0 ; db 0 ; db 0FFh ; db 0 ; db 1 ; db 0 ; db 0FFh ; db 0FFh ; db 1 ; db 0FFh ; db 0 ; db 0 ; db 0 ; db 0FFh ; db 0 ; db 0FFh ; db 0 ; db 0FFh ; db 0FFh ; db 0 ; db 1 ; db 0FFh ; db 0FFh ; db 0FFh ; db 1 ; DIB8ColorTable db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 80h ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 80h ; db 0 ; db 80h ; db 80h ; db 0 ; db 0 ; db 0C0h ; db 0C0h ; db 0C0h ; db 1 ; db 0C0h ; db 0DCh ; db 0C0h ; db 81h ; db 0F0h ; db 0CAh ; db 0A6h ; db 81h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0 ; db 0 ; db 0 ; db 80h ; db 0F0h ; db 0FBh ; db 0FFh ; db 81h ; db 0A4h ; db 0A0h ; db 0A0h ; db 81h ; db 80h ; db 80h ; db 80h ; db 1 ; db 0 ; db 0 ; db 0FFh ; db 0 ; db 0 ; db 0FFh ; db 0 ; db 1 ; db 0 ; db 0FFh ; db 0FFh ; db 1 ; db 0FFh ; db 0 ; db 0 ; db 0 ; db 0FFh ; db 0 ; db 0FFh ; db 0 ; db 0FFh ; db 0FFh ; db 0 ; db 1 ; db 0FFh ; db 0FFh ; db 0FFh ; db 1 ; GDIInfoTable db 0 ; db 4 ; db 1 ; db 0 ; db 0D0h ; db 0 ; db 9Ch ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 1 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 20h ; db 8 ; db 18h ; db 6 ; db 0 ; db 0 ; db 0 ; db 0 ; db 40h ; @ db 51h ; Q db 0F0h ; db 3Ch ; < db 0 ; db 0 ; db 0 ; db 0 ; db 45h ; E db 1 ; db 45h ; E db 1 ; db 0 ; db 0 ; db 0 ; db 0 ; db 59h ; Y db 6 ; db 59h ; Y db 6 ; db 0 ; db 0 ; db 0 ; db 0 ; db 24h ; $ db 9 ; db 24h ; $ db 9 ; db 0 ; db 0 ; db 0 ; db 0 ; db 60h ; ` db 0 ; db 60h ; ` db 0 ; db 4 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; db 0 ; ResStructs db 40h ; @ db 1 ; db 0C8h ; db 0 ; db 7Fh ;  db 0 ; db 81h ; db 0FFh ; db 40h ; @ db 0 ; db 0C0h ; db 0FFh ; db 40h ; @ db 0 ; db 0C0h ; db 0FFh ; db 90h ; db 1 ; db 2Ch ; , db 1 ; db 9Fh ; db 0 ; db 61h ; a db 0FFh ; db 4Fh ; O db 0 ; db 0B1h ; db 0FFh ; db 4Fh ; O db 0 ; db 0B1h ; db 0FFh ; db 0 ; db 2 ; db 80h ; db 1 ; db 0CEh ; db 0 ; db 32h ; 2 db 0FFh ; db 65h ; e db 0 ; db 9Bh ; db 0FFh ; db 65h ; e db 0 ; db 9Bh ; db 0FFh ; db 80h ; db 2 ; db 0E0h ; db 1 ; db 0FEh ; db 0 ; db 2 ; db 0FFh ; db 7Fh ;  db 0 ; db 81h ; db 0FFh ; db 7Fh ;  db 0 ; db 81h ; db 0FFh ; db 20h ; db 3 ; db 58h ; X db 2 ; db 3Eh ; > db 1 ; db 0C2h ; db 0FEh ; db 9Fh ; db 0 ; db 61h ; a db 0FFh ; db 9Fh ; db 0 ; db 61h ; a db 0FFh ; db 0 ; db 4 ; db 0 ; db 3 ; db 97h ; db 1 ; db 69h ; i db 0FEh ; db 0CBh ; db 0 ; db 35h ; 5 db 0FFh ; db 0CBh ; db 0 ; db 35h ; 5 db 0FFh ; db 80h ; db 4 ; db 60h ; ` db 3 ; db 0FDh ; db 1 ; db 3 ; db 0FEh ; db 0FEh ; db 0 ; db 2 ; db 0FFh ; db 0FEh ; db 0 ; db 2 ; db 0FFh ; db 0 ; db 5 ; db 0 ; db 4 ; db 0FDh ; db 1 ; db 3 ; db 0FEh ; db 0FEh ; db 0 ; db 2 ; db 0FFh ; db 0FEh ; db 0 ; db 2 ; db 0FFh ; db 40h ; @ db 6 ; db 0B0h ; db 4 ; db 0FDh ; db 1 ; db 3 ; db 0FEh ; db 0FEh ; db 0 ; db 2 ; db 0FFh ; db 0FEh ; db 0 ; db 2 ; db 0FFh ; db 0 ; db 4 ; db 0 ; db 3 ; db 97h ; db 1 ; db 69h ; i db 0FEh ; db 0CBh ; db 0 ; db 35h ; 5 db 0FFh ; db 0CBh ; db 0 ; db 35h ; 5 db 0FFh ; ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 CANHWRUNASSECONDARY proc far ; CODE XREF: Enable+23BP mov ax, seg dseg08 mov ds, ax cmp wChipId, 6 jb loc_1400_97C jmp short loc_1400_993 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_97C: ; CODE XREF: CANHWRUNASSECONDARY+Aj cmp wBpp, 18h jnz loc_1400_993 cmp wScreenWidth, 400h jl loc_1400_993 cmp wScreenHeight, 300h jnb loc_1400_9C6 loc_1400_993: ; CODE XREF: CANHWRUNASSECONDARY+Cj ; CANHWRUNASSECONDARY+13j ; CANHWRUNASSECONDARY+1Bj cmp dwDeviceHandle, 1 jz loc_1400_9A3 cmp dwUnitNumber, 0 jz loc_1400_9BF loc_1400_9A3: ; CODE XREF: CANHWRUNASSECONDARY+2Bj mov ax, 4F14h mov bx, 4 int 10h ; - VIDEO - VESA SuperVGA BIOS - test bl, 1 jnz loc_1400_9BF mov ax, 4F14h mov bx, 104h mov cl, 1 int 10h ; - VIDEO - VESA SuperVGA BIOS - test cl, 1 jz loc_1400_9C6 loc_1400_9BF: ; CODE XREF: CANHWRUNASSECONDARY+33j ; CANHWRUNASSECONDARY+40j mov eax, 1 retf ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_9C6: ; CODE XREF: CANHWRUNASSECONDARY+23j ; CANHWRUNASSECONDARY+4Fj mov eax, 0 retf CANHWRUNASSECONDARY endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame REENABLE1 proc far ; CODE XREF: ReEnable+82P ReEnable+ECP arg_0 = dword ptr 6 arg_4 = dword ptr 0Ah push bp mov bp, sp push ds push esi push edi mov ax, seg dseg08 mov ds, ax mov _bReEnableCalled, 1 cmp selVGA, 0 jz loc_1400_A07 mov fs, selVGA mov al, 9 mov fs:3CEh, al mov al, 26h ; '&' mov fs:3CFh, al mov al, 11h mov fs:3CEh, al mov ax, fs:3CEh and ah, 0DFh mov fs:3CEh, ax loc_1400_A07: ; CODE XREF: REENABLE1+17j mov ax, pModeTag mov LastValidPModeTag, ax mov ax, cxScreenPixels mov LastcxScreenPixels, ax mov ax, cyScreenPixels mov LastcyScreenPixels, ax call GetScreenSettings mov bReEnable, 1 push large [bp+arg_4] xor eax, eax push eax mov ax, cxScreenPixels dec ax push ax mov ax, cyScreenPixels dec ax push ax push 8 call BeginAccess xor eax, eax mov StartAddress, eax push si mov si, _pPrimary mov [si], eax pop si push large [bp+arg_4] push 0 push eax push eax push eax push cs call near ptr ENABLE1 push ax push large [bp+arg_4] push 8 call EndAccess pop ax test ax, ax jz loc_1400_B42 xor eax, eax push large [bp+arg_0] push 1 push eax push eax push eax push cs call near ptr ENABLE1 cmp _lpDDHAL_SetInfo, 0 jz loc_1400_AA4 push 1 call _SetDriverInfo add sp, 2 mov dx, 3CEh mov ax, 2609h out dx, ax ; EGA: graph 1 and 2 addr reg: ; unknown register mov ax, 0B0h ; '' out dx, al ; EGA: graph 1 and 2 addr reg: ; unknown register inc dl in al, dx ; EGA port: graphics controller data register and al, 0FEh out dx, al ; EGA port: graphics controller data register loc_1400_AA4: ; CODE XREF: REENABLE1+BAj mov ax, 1 loc_1400_AA7: ; CODE XREF: REENABLE1+1BAj cmp TOFULLDOS, 0 jz loc_1400_AB3 call DevToForeground_FAR loc_1400_AB3: ; CODE XREF: REENABLE1+DFj mov bReEnable, 0 cli push si push dx push ax pusha call _InitLocalPostBuffPtrs popa xor eax, eax mov StartAddress, eax mov si, _pPrimary mov [si], eax mov cxVisScreenLeft, ax mov cyVisScreenTop, ax mov cxG2VisScreenLeft, ax mov cyG2VisScreenTop, ax mov ax, G2SCREENWIDTH mov cxG2VisScreenRight, ax mov ax, G2SCREENHEIGHT mov cyG2VisScreenBottom, ax cmp G2_Status, 1 jnz loc_1400_AFF push large lpPDevCursorShape push large lpDriverPDevice call DIB_SETCURSOREXT loc_1400_AFF: ; CODE XREF: REENABLE1+121j mov si, pPanelModeTag mov ax, [si+6] dec ax mov cxVisScreenRight, ax mov ax, [si+8] dec ax mov cyVisScreenBottom, ax mov dx, 3D4h mov ax, 0Ch out dx, ax ; Video: CRT cntrlr addr ; regen start address (high) mov al, 0Dh out dx, ax ; Video: CRT cntrlr addr ; regen start address (low) mov dx, 3CEh mov al, 0Eh out dx, al ; EGA: graph 1 and 2 addr reg: ; unknown register in ax, dx ; EGA: graph 1 and 2 addr reg: ; and ah, 0F8h out dx, ax ; EGA: graph 1 and 2 addr reg: ; set/reset. ; Data bits 0-3 select planes for write mode 00 mov dx, 3DAh in al, dx ; Video status bits: ; 0: retrace. 1=display is in vert or horiz retrace. ; 1: 1=light pen is triggered; 0=armed ; 2: 1=light pen switch is open; 0=closed ; 3: 1=vertical sync pulse is occurring. mov dx, 3C0h mov al, 33h ; '3' out dx, al ; EGA: horizontal pixel panning: ; Number of dots to shift data left. ; Bits 0-3 valid (0-0fH) xor al, al out dx, al ; EGA: palette register: select colors for attribute AL: ; 0: RED ; 1: GREEN ; 2: BLUE ; 3: blue ; 4: green ; 5: red pop ax pop dx pop si sti pop edi pop esi pop ds mov sp, bp pop bp retf 8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_B42: ; CODE XREF: REENABLE1+9Dj mov bReEnable, 2 mov si, LastValidPModeTag cmp dwUnitNumber, 0 jnz loc_1400_B59 mov pModeTag, si jmp short loc_1400_B5D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_B59: ; CODE XREF: REENABLE1+184j mov pModeTagSecond, si loc_1400_B5D: ; CODE XREF: REENABLE1+18Aj mov ax, [si] mov wBpp, ax mov ax, LastcxScreenPixels mov cxScreenPixels, ax mov ax, LastcyScreenPixels mov cyScreenPixels, ax xor eax, eax push large [bp+arg_4] push 0 push eax push eax push eax push cs call near ptr ENABLE1 call RepaintAddr xor ax, ax jmp loc_1400_AA7 REENABLE1 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame ENABLE1 proc far ; CODE XREF: REENABLE1+8Bp ; REENABLE1+B1p REENABLE1+1B1p ; Enable+17BP Enable+293P arg_0 = dword ptr 6 arg_4 = dword ptr 0Ah arg_8 = dword ptr 0Eh arg_C = word ptr 12h arg_E = dword ptr 14h push bp mov bp, sp push ds push esi push edi mov ax, seg dseg08 mov ds, ax call PhysDevInitialization test ax, ax jz loc_1400_10FE cmp bReEnable, 2 jz loc_1400_BB1 call GetScreenSettings or bProcessingBusy, 1 loc_1400_BB1: ; CODE XREF: ENABLE1+1Dj test [bp+arg_C], 1 jnz loc_1400_F03 cmp dwUnitNumber, 0 jz loc_1400_BC9 call _FlushOffscreenBitmaps jmp short loc_1400_BD5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_BC9: ; CODE XREF: ENABLE1+36j call Map_VGA_MMIO cmp ax, 0 jz loc_1400_10FE loc_1400_BD5: ; CODE XREF: ENABLE1+3Dj mov ax, 1 call PhysPtrs mov eax, [bp+arg_E] mov lpDriverPDevice, eax call PhysicalEnable jb loc_1400_10FE cmp dwDeviceHandle, 1 jnz loc_1400_C00 cmp bReEnable, 0 jnz loc_1400_C00 mov ax, 4000h int 2Fh ; - Multiplex - OS/2 compatibility box - SWITCH DOS TO BACKGROUND loc_1400_C00: ; CODE XREF: ENABLE1+68j ENABLE1+6Fj cmp wBpp, 10h jnz loc_1400_C1E cmp TOFULLDOS, 0 jz loc_1400_C1E cmp wBppOld, 10h jnb loc_1400_C1E cmp bDrvDisabled, 0 jz loc_1400_C1E jmp short loc_1400_C36 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_C1E: ; CODE XREF: ENABLE1+7Bj ENABLE1+82j ; ENABLE1+89j ENABLE1+90j push large [bp+arg_E] push [bp+arg_C] push large [bp+arg_8] push large [bp+arg_4] push large [bp+arg_0] call DIB_ENABLE loc_1400_C36: ; CODE XREF: ENABLE1+92j cmp wPalettized, 0 jz loc_1400_C4D mov edx, lpDriverPDevice push large 0 call far ptr SetPaletteTranslate loc_1400_C4D: ; CODE XREF: ENABLE1+B1j les bx, [bp+arg_E] mov dword ptr es:[bx+30h], 0 mov dword ptr es:[bx+34h], 0 mov word ptr es:[bx+38h], 0 mov al, 2 cmp dwUnitNumber, 0 jnz loc_1400_C7C cmp lpSecondDev, 0 jnz loc_1400_C7C dec al loc_1400_C7C: ; CODE XREF: ENABLE1+E6j ENABLE1+EEj mov es:[bx+3Ah], al add bx, wDIBPdevSize xor eax, eax mov es:[bx+10h], eax mov es:[bx+14h], eax mov es:[bx+18h], eax mov es:[bx+1Ch], eax mov es:[bx+20h], eax mov es:[bx+24h], eax mov dword ptr es:[bx], 28h ; '(' xor eax, eax mov ax, wScreenWidth mov es:[bx+4], eax mov ax, wScreenHeight mov es:[bx+8], eax mov ax, wBpp inc ax and ax, 0FFFEh rol eax, 10h inc ax mov es:[bx+0Ch], eax cmp wBpp, 10h jnz loc_1400_D13 cmp TOFULLDOS, 0 jz loc_1400_CEF cmp wBppOld, 10h jbe loc_1400_CEF cmp bDrvDisabled, 0 jz loc_1400_CEF jmp short loc_1400_D13 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_CEF: ; CODE XREF: ENABLE1+153j ENABLE1+15Aj ; ENABLE1+161j mov dword ptr es:[bx+10h], 3 mov dword ptr es:[bx+28h], 0F800h mov dword ptr es:[bx+2Ch], 7E0h mov dword ptr es:[bx+30h], 1Fh loc_1400_D13: ; CODE XREF: ENABLE1+14Cj ENABLE1+163j mov ax, wBpp mov si, 460h mov cx, 100h cmp ax, 8 jg loc_1400_D6E jz loc_1400_D34 mov si, 418h mov cx, 2 cmp ax, 1 jz loc_1400_D34 mov si, 420h mov cx, 10h loc_1400_D34: ; CODE XREF: ENABLE1+197j ENABLE1+1A2j mov di, bx add di, es:[bx] cmp dwUnitNumber, 0 jnz loc_1400_D49 mov word ptr lpColorTable, di mov word ptr lpColorTable+2, es loc_1400_D49: ; CODE XREF: ENABLE1+1B5j cmp bReEnable, 0 jnz loc_1400_D54 repe movs dword ptr es:[di], dword ptr cs:[si] loc_1400_D54: ; CODE XREF: ENABLE1+1C4j cmp wBpp, 8 jnz loc_1400_D6E mov eax, 0FFFFFFFFh mov cx, 100h mov di, word ptr [bp+arg_E] add di, 464h repe stosd loc_1400_D6E: ; CODE XREF: ENABLE1+195j ENABLE1+1CFj cmp wBpp, 10h jnz loc_1400_D8C cmp TOFULLDOS, 0 jz loc_1400_D8C cmp wBppOld, 10h jnb loc_1400_D8C cmp bDrvDisabled, 0 jz loc_1400_D8C jmp short loc_1400_DBA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_D8C: ; CODE XREF: ENABLE1+1E9j ENABLE1+1F0j ; ENABLE1+1F7j ENABLE1+1FEj push es push bx push large [bp+arg_E] push ScreenSelector push 0 mov ax, wPDeviceFlags cmp wBpp, 10h jnz $+2 cmp wPalettized, 0 jz loc_1400_DAD or ax, 2 loc_1400_DAD: ; CODE XREF: ENABLE1+21Ej push ax call CREATEDIBPDEVICE test eax, eax jz loc_1400_10FE loc_1400_DBA: ; CODE XREF: ENABLE1+200j les di, [bp+arg_E] mov eax, dwDeviceHandle mov es:[di+2Ch], eax cmp dwUnitNumber, 0 jnz loc_1400_DD8 mov eax, [bp+arg_E] mov lpPrimaryDev, eax jmp short loc_1400_E1B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_DD8: ; CODE XREF: ENABLE1+242j mov dwSecondDevHandle, eax mov eax, [bp+arg_E] mov lpSecondDev, eax mov eax, PHYSBASESEC mov es:[di+30h], eax mov es:[di+16h], eax mov ax, selScreen mov es:[di+1Ah], ax mov byte ptr es:[di+3Ah], 2 les di, lpPrimaryDev mov al, es:[di+3Ah] mov bPrimaryDevCursorFlag, al cmp al, 1 jnz loc_1400_E17 call _CursorToSoftware mov byte ptr es:[di+3Ah], 2 loc_1400_E17: ; CODE XREF: ENABLE1+281j les di, lpSecondDev loc_1400_E1B: ; CODE XREF: ENABLE1+24Cj xor eax, eax mov ax, cxScreenPixels mov es:[di+2], ax mov cx, ax cmp wBpp, 8 jz loc_1400_E39 add ax, ax cmp wBpp, 10h jz loc_1400_E39 add ax, cx loc_1400_E39: ; CODE XREF: ENABLE1+2A2j ENABLE1+2ABj mov es:[di+6], ax add eax, 3 and eax, 0FFFFFFFCh mov es:[di+0Eh], eax mov ax, cyScreenPixels mov es:[di+4], ax mov ax, seg cseg01 shl eax, 10h mov ax, 18E0h mov es:[di+24h], eax mov ax, seg cseg01 shl eax, 10h mov ax, 193Bh mov es:[di+28h], eax cmp wBpp, 8 ja loc_1400_E9B mov cx, 2 cmp wBpp, 1 jz loc_1400_E8D mov cx, 10h cmp wBpp, 4 jz loc_1400_E8D mov cx, 100h loc_1400_E8D: ; CODE XREF: ENABLE1+2F4j ENABLE1+2FEj xor ax, ax mov si, es:[di+20h] add si, es:[si] call SETRAMDAC_FAR loc_1400_E9B: ; CODE XREF: ENABLE1+2EAj cmp bReEnable, 0 jnz loc_1400_EAD cmp dwDeviceHandle, 1 jnz loc_1400_EAD call HookInt2Fh loc_1400_EAD: ; CODE XREF: ENABLE1+316j ENABLE1+31Ej mov ax, 1 mov wEnabled, ax cmp dwUnitNumber, 0 jnz loc_1400_ED2 mov ax, seg cseg06 push ax push 1 push 401Ah call SELECTORACCESSRIGHTS call InitObjectCache call pfnPhysicalFinalEnable loc_1400_ED2: ; CODE XREF: ENABLE1+32Fj cmp fAlreadyInited, 1 jnz loc_1400_EDE call fRefreshCursor loc_1400_EDE: ; CODE XREF: ENABLE1+34Dj mov fAlreadyInited, 1 cmp _lpDDHAL_SetInfo, 0 jz loc_1400_EFD cmp dwUnitNumber, 0 jnz loc_1400_EFD push 1 call _SetDriverInfo add sp, 2 loc_1400_EFD: ; CODE XREF: ENABLE1+35Fj ENABLE1+367j mov ax, 1 jmp loc_1400_10EE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_F03: ; CODE XREF: ENABLE1+2Cj push large [bp+arg_E] push [bp+arg_C] push large [bp+arg_8] push large [bp+arg_4] push large [bp+arg_0] call DIB_ENABLE les di, [bp+arg_E] mov eax, [bp+arg_E] mov lpDriverPDeviceGDI, eax mov si, 860h mov cx, 6 repe movs dword ptr es:[di], dword ptr cs:[si] add di, 18h add si, 18h mov cx, 0Ah repe movs dword ptr es:[di], dword ptr cs:[si] mov di, word ptr [bp+arg_E] mov ax, wDpi mov es:[di+58h], ax mov es:[di+5Ah], ax mov bx, wBpp inc bx and bx, 0FFFEh mov es:[di+0Ch], bx mov eax, 83h ; '' mov ebx, dwDeviceHandle mov ecx, 8 call VDDEntryPoint mov bWinOSType, al mov word ptr es:[di+5Ch], 4 cmp bWinOSType, 1 jz loc_1400_F82 mov word ptr es:[di+5Ch], 0 loc_1400_F82: ; CODE XREF: ENABLE1+3F0j or word ptr es:[di+5Eh], 0D80h or word ptr es:[di+5Eh], 20h or word ptr es:[di+1Ch], 89h or word ptr es:[di+1Eh], 23h or word ptr es:[di+20h], 89h mov wDIBPdevSize, 3Ch ; '<' mov word ptr es:[di+1Ah], 3Ch ; '<' mov ax, 4828h add es:[di+1Ah], ax mov ax, cxScreenPixels mov bx, cyScreenPixels mov si, 8CEh mov cx, 9 loc_1400_FBE: ; CODE XREF: ENABLE1+43Dj cmp cs:[si], ax jz loc_1400_FC9 add si, 10h dec cx jnz loc_1400_FBE loc_1400_FC9: ; CODE XREF: ENABLE1+437j mov es:[di+8], ax mov es:[di+0Ah], bx neg bx mov es:[di+34h], ax mov es:[di+36h], bx mov es:[di+3Ch], ax mov es:[di+3Eh], bx mov ax, cs:[si+4] mov bx, cs:[si+6] mov es:[di+44h], ax mov es:[di+46h], bx mov ax, cs:[si+8] mov bx, cs:[si+0Ah] mov es:[di+4Ch], ax mov es:[di+4Eh], bx mov ax, cs:[si+0Ch] mov bx, cs:[si+0Eh] mov es:[di+54h], ax mov es:[di+56h], bx mov bx, wBpp cmp bx, 8 jl loc_1400_108C jg loc_1400_10C4 mov word ptr es:[di+10h], 0FFFFh cmp wPalettized, 0 jz loc_1400_105E mov word ptr es:[di+12h], 10h mov word ptr es:[di+18h], 14h mov word ptr es:[di+68h], 100h mov word ptr es:[di+6Ah], 14h mov word ptr es:[di+6Ch], 12h or word ptr es:[di+26h], 340h mov ax, 428h add es:[di+1Ah], ax mov ax, 6Eh ; 'n' jmp loc_1400_10EE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_105E: ; CODE XREF: ENABLE1+4A1j mov word ptr es:[di+12h], 100h mov word ptr es:[di+18h], 100h xor ax, ax mov es:[di+68h], ax mov es:[di+6Ah], ax mov es:[di+6Ch], ax or word ptr es:[di+26h], 200h mov ax, 428h add word ptr es:[di+1Ah], 428h mov ax, 6Eh ; 'n' jmp short loc_1400_10EE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_108C: ; CODE XREF: ENABLE1+490j mov cl, bl mov ax, 1 shl ax, cl mov es:[di+12h], ax mov es:[di+18h], ax mov word ptr es:[di+10h], 0FFFFh xor cx, cx mov es:[di+68h], cx mov es:[di+6Ah], cx mov es:[di+6Ch], cx or word ptr es:[di+26h], 200h shl ax, 2 add ax, 60h ; '`' mov es:[di+1Ah], ax mov ax, 6Eh ; 'n' jmp short loc_1400_10EE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_10C4: ; CODE XREF: ENABLE1+492j mov ax, 0FFFFh mov es:[di+12h], ax mov es:[di+10h], ax mov es:[di+18h], ax inc ax mov es:[di+68h], ax mov es:[di+6Ah], ax mov es:[di+6Ch], ax or word ptr es:[di+26h], 200h add word ptr es:[di+1Ah], 38h ; '8' mov ax, 6Eh ; 'n' loc_1400_10EE: ; CODE XREF: ENABLE1+376j ENABLE1+4D1j ; ENABLE1+500j ENABLE1+538j ; ENABLE1+576j and bProcessingBusy, 0FEh pop edi pop esi pop ds mov sp, bp pop bp retf 12h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_10FE: ; CODE XREF: ENABLE1+14j ENABLE1+47j ; ENABLE1+5Ej ENABLE1+22Cj xor ax, ax jmp short loc_1400_10EE ENABLE1 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 PhysicalEnable proc near ; CODE XREF: ENABLE1+5Bp cmp bWinLang, 0 jz loc_1400_1121 mov ax, 4F11h mov bx, 7 int 10h ; - VIDEO - VESA SuperVGA BIOS - and ch, 0FEh and cl, 0FEh mov ax, 4F11h mov bx, 107h int 10h ; - VIDEO - VESA SuperVGA BIOS - loc_1400_1121: ; CODE XREF: PhysicalEnable+5j cmp dwUnitNumber, 0 jnz loc_1400_1145 cmp selScreen, 0 jz loc_1400_1138 mov ax, selScreen mov ScreenSelector, ax jmp short loc_1400_1155 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_1138: ; CODE XREF: PhysicalEnable+2Aj jnz loc_1400_1155 call PhysChipID or ax, ax jz loc_1400_1246 loc_1400_1145: ; CODE XREF: PhysicalEnable+23j push si push di call GetScreenSelector pop di pop si or ax, ax jz loc_1400_1246 mov ScreenSelector, ax loc_1400_1155: ; CODE XREF: PhysicalEnable+32j ; PhysicalEnable+34j push fs mov fs, selVGA mov byte ptr fs:3CEh, 82h ; '' mov al, fs:3CFh mov fScrBlanking, al or al, 10h mov fs:3CFh, al pop fs mov ax, 1 push cs call near ptr SetMode jb loc_1400_1246 cmp dwUnitNumber, 0 jnz loc_1400_122F mov dx, selCOP shl edx, 10h mov dx, selScreen mov edi, cbPlanarMem mov si, selHost mov ecx, 1 mov eax, 83h ; '' mov ebx, dwDeviceHandle call VDDEntryPoint mov edx, 0FFFFFFFFh mov ecx, 0 cmp cbPlanarMem, 8000h jb loc_1400_11CE mov ecx, pPlanarMem xor edx, edx loc_1400_11CE: ; CODE XREF: PhysicalEnable+C0j mov eax, 80h ; '' mov ebx, dwDeviceHandle mov di, seg cseg01 mov es, di assume es:cseg01 mov di, 19B0h push esi mov si, seg cseg01 shl esi, 10h mov si, 3F0Ch call VDDEntryPoint pop esi cmp eax, 80h ; '' jz loc_1400_1208 cmp eax, 0FFFFFFFFh jz loc_1400_1208 cmp eax, pPlanarMem jnz loc_1400_1211 loc_1400_1208: ; CODE XREF: PhysicalEnable+F5j ; PhysicalEnable+FBj mov cbPlanarMem, 0 loc_1400_1211: ; CODE XREF: PhysicalEnable+102j mov eax, 87h ; '' mov ebx, dwDeviceHandle call VDDEntryPoint mov eax, 82h ; '' mov ebx, dwDeviceHandle call VDDEntryPoint loc_1400_122F: ; CODE XREF: PhysicalEnable+7Dj mov si, wBpp cmp dwUnitNumber, 0 jnz loc_1400_1240 call ClearScreen jmp short loc_1400_1243 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_1240: ; CODE XREF: PhysicalEnable+135j call ClearScreen2 loc_1400_1243: ; CODE XREF: PhysicalEnable+13Aj clc jmp short loc_1400_1257 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_1246: ; CODE XREF: PhysicalEnable+3Dj ; PhysicalEnable+4Aj ; PhysicalEnable+73j cmp dwUnitNumber, 0 jz loc_1400_1256 mov eax, lpPrimaryDev mov lpDriverPDevice, eax loc_1400_1256: ; CODE XREF: PhysicalEnable+148j stc loc_1400_1257: ; CODE XREF: PhysicalEnable+140j pushf push fs mov fs, selVGA mov ah, fScrBlanking mov al, 82h ; '' mov fs:3CEh, ax pop fs popf retn PhysicalEnable endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ClearScreen_Far proc far ; CODE XREF: ResetHiResMode+B9P call ClearScreen retf ClearScreen_Far endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ClearScreen2_Far proc far ; CODE XREF: ResetHiResMode+145P call ClearScreen2 retf ClearScreen2_Far endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 0FDh ; db 0FFh ; db 0FFh ; db 0FFh ; db 0 ; db 0 ; db 0 ; db 0 ; db 1 ; db 0 ; db 0 ; db 0 ; db 1 ; db 0 ; db 0 ; db 0 ; db 2 ; db 0 ; ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ClearScreen proc near ; CODE XREF: PhysicalEnable+137p ; ClearScreen_Farp mov dx, selScreen mov es, dx assume es:nothing shr si, 1 movzx ecx, word ptr cs:[si+1274h] mov dx, wScreenWidth mov bx, dx cmp si, 0Ch jz loc_1400_12A2 xor bx, bx loc_1400_12A2: ; CODE XREF: ClearScreen+18j rol dx, cl add dx, bx movzx ebx, wScreenWidthBytes sub bx, dx shr dx, 2 xor edi, edi mov eax, edi mov si, wScreenHeight loc_1400_12BB: ; CODE XREF: ClearScreen+3Fj mov cx, dx repe stos dword ptr es:[edi] add edi, ebx dec si jnz loc_1400_12BB retn ClearScreen endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ClearScreen2 proc near ; CODE XREF: PhysicalEnable+13Cp ; ClearScreen2_Farp mov dx, selScreen2 mov es, dx shr si, 1 movzx ecx, word ptr cs:[si+1274h] mov dx, G2SCREENWIDTH mov bx, dx cmp si, 0Ch jz loc_1400_12E4 xor bx, bx loc_1400_12E4: ; CODE XREF: ClearScreen2+18j rol dx, cl add dx, bx movzx ebx, G2SCREENWIDTHBYTES sub bx, dx shr dx, 2 xor edi, edi mov eax, edi mov si, G2SCREENHEIGHT loc_1400_12FD: ; CODE XREF: ClearScreen2+3Fj mov cx, dx repe stos dword ptr es:[edi] add edi, ebx dec si jnz loc_1400_12FD retn ClearScreen2 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 GetScreenSelector proc near ; CODE XREF: PhysicalEnable+43p cmp dwUnitNumber, 0 jz loc_1400_13BA cmp selScreen2, 0 jnz loc_1400_1326 push offset __A000H call ALLOCSELECTOR mov selScreen2, ax loc_1400_1326: ; CODE XREF: GetScreenSelector+Fj xor ecx, ecx movzx eax, cxScreenPixels movzx ebx, cyScreenPixels imul eax, ebx mov cx, wBpp shr cx, 3 imul eax, ecx mov dwSecSizebak, eax mov ebx, CBSCRATCHMEM add ebx, dwSecSize cmp eax, ebx jbe loc_1400_135A xor ax, ax retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_135A: ; CODE XREF: GetScreenSelector+4Bj mov dwSecSize, eax mov eax, PSCRATCHMEM add eax, ebx sub eax, dwSecSize mov PHYSBASESEC, eax sub eax, PSCRATCHMEM mov CBSCRATCHMEM, eax mov _orgCbScratchMem, eax mov ecx, LinearBase add ecx, PHYSBASESEC push selScreen2 push ecx call SETSELECTORBASE push selScreen2 push 1 push 8012h call SELECTORACCESSRIGHTS mov eax, PhysicalLimit sub eax, PHYSBASESEC shr eax, 0Ch push selScreen2 push eax call SETSELECTORLIMIT mov ax, selScreen2 retn ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_13BA: ; CODE XREF: GetScreenSelector+6j cmp selScreen, 0 jnz loc_1400_143F push offset __A000H call ALLOCSELECTOR mov selScreen, ax mov eax, PhysicalLimit mov ecx, 1000000h loc_1400_13D6: ; CODE XREF: GetScreenSelector+D4j test ecx, eax jnz loc_1400_13E0 shr ecx, 1 jmp short loc_1400_13D6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_13E0: ; CODE XREF: GetScreenSelector+CFj cmp ecx, eax jz loc_1400_13E8 shl ecx, 1 loc_1400_13E8: ; CODE XREF: GetScreenSelector+D9j shl ecx, 2 push ecx mov di, cx shr ecx, 10h mov si, cx mov cx, word ptr PhysicalBase mov bx, word ptr PhysicalBase+2 mov ax, 800h int 31h ; DPMI Services ax=func xxxxh ; PHYSICAL ADDRESS MAPPING ; BX:CX = physical address, SI:DI = size in bytes ; Return: CF set on error ; CF clear if successful ; BX:CX = linear address which maps the requested physical memory jnb loc_1400_140D mov cx, word ptr PhysicalBase mov bx, word ptr PhysicalBase+2 loc_1400_140D: ; CODE XREF: GetScreenSelector+F9j mov word ptr LinearBase, cx mov word ptr LinearBase+2, bx push selScreen push bx push cx call SETSELECTORBASE push selScreen push 1 push 8012h call SELECTORACCESSRIGHTS pop eax shr eax, 0Ch push selScreen push eax call SETSELECTORLIMIT loc_1400_143F: ; CODE XREF: GetScreenSelector+B5j cmp COPBase, 0 jz loc_1400_1494 cmp selCOP, 0 jnz loc_1400_1494 push offset __A000H call ALLOCSELECTOR mov selCOP, ax mov cx, word ptr COPBase mov bx, word ptr COPBase+2 mov di, word ptr COPLimit mov si, word ptr COPLimit+2 mov ax, 800h int 31h ; DPMI Services ax=func xxxxh ; PHYSICAL ADDRESS MAPPING ; BX:CX = physical address, SI:DI = size in bytes ; Return: CF set on error ; CF clear if successful ; BX:CX = linear address which maps the requested physical memory jnb loc_1400_147B mov cx, word ptr COPBase mov bx, word ptr COPBase+2 add bx, 40h ; '@' loc_1400_147B: ; CODE XREF: GetScreenSelector+164j push selCOP push bx push cx call SETSELECTORBASE push selCOP push large COPLimit call SETSELECTORLIMIT loc_1400_1494: ; CODE XREF: GetScreenSelector+13Bj ; GetScreenSelector+142j cmp HostBase, 0 jz loc_1400_14EF cmp selHost, 0 jnz loc_1400_14EF push offset __A000H call ALLOCSELECTOR mov selHost, ax sub HostBase, 4 mov cx, word ptr HostBase mov bx, word ptr HostBase+2 mov di, word ptr HostLimit mov si, word ptr HostLimit+2 mov ax, 800h int 31h ; DPMI Services ax=func xxxxh ; PHYSICAL ADDRESS MAPPING ; BX:CX = physical address, SI:DI = size in bytes ; Return: CF set on error ; CF clear if successful ; BX:CX = linear address which maps the requested physical memory jnb loc_1400_14D6 mov cx, word ptr HostBase mov bx, word ptr HostBase+2 add bx, 40h ; '@' loc_1400_14D6: ; CODE XREF: GetScreenSelector+1BFj push selHost push bx push cx call SETSELECTORBASE push selHost push large HostLimit call SETSELECTORLIMIT loc_1400_14EF: ; CODE XREF: GetScreenSelector+190j ; GetScreenSelector+197j mov ax, selScreen retn GetScreenSelector endp ; sp = -30h ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 SetMode proc far ; CODE XREF: ResetHiResMode+52P ; ResetHiResMode+10FP ; PhysicalEnable+70p mov fFullInit, al cmp dwUnitNumber, 0 jnz loc_1400_1504 mov di, pModeTag jmp short loc_1400_1508 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_1504: ; CODE XREF: SetMode+9j mov di, pModeTagSecond loc_1400_1508: ; CODE XREF: SetMode+Fj cmp di, 0 jz loc_1400_1616 cmp dwUnitNumber, 0 jnz loc_1400_1555 mov cx, [di+6] mov dx, [di+8] mov wScreenWidth, cx mov wScreenHeight, dx mov cxScreenPixels, cx mov CXVISSCREENPIXELS, cx mov cyScreenPixels, dx mov CYVISSCREENPIXELS, dx mov dx, 3CEh mov ax, 2609h out dx, ax ; EGA: graph 1 and 2 addr reg: ; unknown register mov dx, 3CEh mov al, 42h ; 'B' out dx, al ; EGA: graph 1 and 2 addr reg: ; unknown register inc dx in al, dx ; EGA port: graphics controller data register and al, 0FEh out dx, al ; EGA port: graphics controller data register dec dx mov cx, [di+0Ah] mov wScreenWidthBytes, cx mov word ptr cxScreenBytes, cx jmp short loc_1400_1582 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_1555: ; CODE XREF: SetMode+22j xor cx, cx mov cxG2VisScreenLeft, cx mov cyG2VisScreenTop, cx mov cx, [di+6] mov dx, [di+8] mov G2SCREENWIDTH, cx mov G2SCREENHEIGHT, dx mov cxG2VisScreenRight, cx mov cyG2VisScreenBottom, dx mov cx, [di+0Ah] mov G2SCREENWIDTHBYTES, cx mov cx, [di] mov G2BPP, cx loc_1400_1582: ; CODE XREF: SetMode+60j mov wPDeviceFlags, 8001h call pfnPhysical_Enable test ax, ax jz loc_1400_1616 cmp dwUnitNumber, 0 jnz loc_1400_1614 cmp fFullInit, 1 jnz loc_1400_15A5 call pfnPhysicalFinalEnable loc_1400_15A5: ; CODE XREF: SetMode+ACj mov al, bMotionCompSet and al, 1 cmp lpSecondDev, 0 jz loc_1400_15F7 cmp al, bMotionCompBak jnz loc_1400_15BF cmp bMotionCompSet, 0 jnz loc_1400_15F7 loc_1400_15BF: ; CODE XREF: SetMode+C3j mov bMotionCompBak, al mov eax, pPatternMem sub eax, dwSecSize mov PHYSBASESEC, eax les di, lpSecondDev mov es:[di+16h], eax mov es:[di+30h], eax mov ax, es:[di+6] movzx edi, ax shr edi, 1 mov dx, word ptr PHYSBASESEC mov bh, byte ptr PHYSBASESEC+2 mov ax, 4F14h mov bl, 21h ; '!' int 10h ; - VIDEO - VESA SuperVGA BIOS - loc_1400_15F7: ; CODE XREF: SetMode+BDj SetMode+CAj call GetOffscreenMemory mov dx, 3CEh mov ax, 2609h out dx, ax ; EGA: graph 1 and 2 addr reg: ; unknown register mov al, 43h ; 'C' out dx, al ; EGA: graph 1 and 2 addr reg: ; unknown register inc dx in al, dx ; EGA port: graphics controller data register mov ah, al dec dx mov al, 42h ; 'B' out dx, al ; EGA: graph 1 and 2 addr reg: ; unknown register inc dx in al, dx ; EGA port: graphics controller data register and al, 1Fh inc dx mov word ptr BltMode0, ax loc_1400_1614: ; CODE XREF: SetMode+A5j clc retf ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_1616: ; CODE XREF: SetMode+18j SetMode+9Bj stc retf SetMode endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame VALIDATEMODE1 proc far ; CODE XREF: ValidateMode+10DP ; ValidateModeEx+280P arg_0 = dword ptr 6 push bp mov bp, sp push ds push esi push edi mov ax, seg dseg08 mov ds, ax push wBpp cmp selScreen, 0 jnz loc_1400_163B call PhysChipID or ax, ax jz loc_1400_1750 loc_1400_163B: ; CODE XREF: VALIDATEMODE1+16j les di, [bp+arg_0] movzx eax, word ptr es:[di+4] movzx ebx, word ptr es:[di+6] movzx ecx, word ptr es:[di+2] imul eax, ebx shr cx, 3 imul eax, ecx cmp PHYSBASESEC, 0 jz loc_1400_1685 cmp bMotionCompSet, 1 jnz loc_1400_1685 cmp dwUnitNumber, 0 jnz loc_1400_1685 mov edx, PHYSBASESEC add edx, dwSecSize cmp edx, pPatternMem ja loc_1400_174B loc_1400_1685: ; CODE XREF: VALIDATEMODE1+49j ; VALIDATEMODE1+50j VALIDATEMODE1+58j cmp PHYSBASESEC, 0 jz loc_1400_16C9 cmp dwUnitNumber, 0 jnz loc_1400_16B6 mov cx, es:[di+2] cmp cx, 18h jl loc_1400_16AB cmp ax, 400h jl loc_1400_16AB cmp bx, 300h jz loc_1400_174B loc_1400_16AB: ; CODE XREF: VALIDATEMODE1+84j ; VALIDATEMODE1+89j cmp eax, PHYSBASESEC ja loc_1400_174B jmp short loc_1400_1700 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_16B6: ; CODE XREF: VALIDATEMODE1+7Bj mov ecx, dwSecSize add ecx, CBSCRATCHMEM cmp eax, ecx ja loc_1400_174B jmp short loc_1400_1700 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_16C9: ; CODE XREF: VALIDATEMODE1+73j cmp dwUnitNumber, 1 jnz loc_1400_16E2 mov ecx, dwSecSizebak add ecx, CBSCRATCHMEM cmp eax, ecx ja loc_1400_174B jmp short loc_1400_1700 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_16E2: ; CODE XREF: VALIDATEMODE1+B7j cmp eax, pPatternMem ja loc_1400_174B cmp fToshibaSys, 0 jz loc_1400_1700 cmp word ptr es:[di+2], 18h jnz loc_1400_1700 test fDisplay_Status, 4 jz loc_1400_1700 jmp short loc_1400_174B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_1700: ; CODE XREF: VALIDATEMODE1+9Cj ; VALIDATEMODE1+AFj VALIDATEMODE1+C8j ; VALIDATEMODE1+D6j VALIDATEMODE1+DDj ; VALIDATEMODE1+E4j mov bx, es:[di+4] mov dx, es:[di+6] mov ax, es:[di+2] mov wBpp, ax call FindPModeTag or si, si jz loc_1400_174B cmp ax, 2 jz loc_1400_173B mov al, [si+0Ch] or al, al jz loc_1400_173B mov di, pPanelModeTag mov al, [di+0Ch] or al, al jz loc_1400_174B mov ax, [di+6] cmp ax, bx jnz loc_1400_174B mov cx, [si+8] cmp cx, dx jnz loc_1400_174B loc_1400_173B: ; CODE XREF: VALIDATEMODE1+101j ; VALIDATEMODE1+108j mov ax, 0 loc_1400_173E: ; CODE XREF: VALIDATEMODE1+136j ; VALIDATEMODE1+13Bj pop wBpp pop edi pop esi pop ds pop bp retf 4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_174B: ; CODE XREF: VALIDATEMODE1+69j ; VALIDATEMODE1+8Fj VALIDATEMODE1+98j ; VALIDATEMODE1+ABj VALIDATEMODE1+C6j ; VALIDATEMODE1+CFj VALIDATEMODE1+E6j ; VALIDATEMODE1+FCj VALIDATEMODE1+113j ; VALIDATEMODE1+11Aj ; VALIDATEMODE1+121j mov ax, 2 jmp short loc_1400_173E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_1750: ; CODE XREF: VALIDATEMODE1+1Fj mov ax, 1 jmp short loc_1400_173E VALIDATEMODE1 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 GetOffscreenMemory proc near ; CODE XREF: SetMode+104p push fs push ebx push ecx push edx mov OffscreenFreeHead, 0 mov eax, PSCRATCHMEM mov _orgPScratchMem, eax mov ebx, CBSCRATCHMEM mov _orgCbScratchMem, ebx cmp bMotionCompSet, 2 jz loc_1400_178C test deviceBitmapFlags, 1 jnz loc_1400_17D5 jmp short loc_1400_1791 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_178C: ; CODE XREF: GetOffscreenMemory+28j mov bMotionCompSet, 0 loc_1400_1791: ; CODE XREF: GetOffscreenMemory+35j mov OffscreenFreeHeadCopy, 0 mov ax, selScreen mov fs, ax mov eax, PSCRATCHMEM cmp ebx, 2BF00h jb loc_1400_17D5 movzx ecx, wScreenWidthBytes add eax, ecx mov OffscreenFreeHead, eax mov OffscreenFreeHeadCopy, eax sub ebx, ecx mov dFreeMemory, ebx mov dFreeMemoryCopy, ebx push eax add eax, ebx mov dLastMemory, eax pop eax loc_1400_17D5: ; CODE XREF: GetOffscreenMemory+33j ; GetOffscreenMemory+55j pop edx pop ecx pop ebx pop fs retn GetOffscreenMemory endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame DISABLE1 proc far ; CODE XREF: Disable+81P Disable+EDP var_2 = byte ptr -2 arg_0 = dword ptr 6 mov ax, ds nop push bp mov bp, sp push ds mov ds, ax mov gs, ax assume gs:dseg08 push es push fs push esi push edi or bProcessingBusy, 4 les si, [bp+arg_0] lock or word ptr es:[si+1Ch], 10h cmp dwUnitNumber, 1 jnz loc_1400_1817 call PhysicalDisableSecond xor eax, eax mov dwSecondDevHandle, eax jmp loc_1400_189E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_1817: ; CODE XREF: DISABLE1+26j mov wEnabled, 0 cmp selVGA, 0 jz loc_1400_1845 mov fs, selVGA mov al, 9 mov fs:3CEh, al mov al, 26h ; '&' mov fs:3CFh, al mov al, 11h mov fs:3CEh, al mov ax, fs:3CEh and ah, 0DFh mov fs:3CEh, ax loc_1400_1845: ; CODE XREF: DISABLE1+42j call PhysicalDisable push dx push ax mov dx, 3CEh mov ax, 2609h out dx, ax ; EGA: graph 1 and 2 addr reg: ; unknown register pop ax pop dx mov dx, 3CEh mov al, 42h ; 'B' out dx, al ; EGA: graph 1 and 2 addr reg: ; unknown register inc dx in al, dx ; EGA port: graphics controller data register or al, 1 out dx, al ; EGA port: graphics controller data register dec dx mov al, 82h ; '' out dx, al ; EGA: graph 1 and 2 addr reg: ; unknown register in ax, dx ; EGA: graph 1 and 2 addr reg: ; and ah, 0FEh out dx, ax ; EGA: graph 1 and 2 addr reg: ; set/reset. ; Data bits 0-3 select planes for write mode 00 mov ax, 0B0h ; '' out dx, ax ; EGA: graph 1 and 2 addr reg: ; unknown register cmp dwDeviceHandle, 1 jnz loc_1400_187A mov ax, 4007h int 2Fh ; - Multiplex - OS/2 compatibility box - loc_1400_187A: ; CODE XREF: DISABLE1+93j call _FlushOffscreenBitmaps mov eax, 81h ; '' mov ebx, dwDeviceHandle call VDDEntryPoint mov ax, 83h ; '' int 10h ; - VIDEO - SET VIDEO MODE ; AL = mode cmp dwDeviceHandle, 1 jnz loc_1400_189E call RestoreInt2Fh loc_1400_189E: ; CODE XREF: DISABLE1+34j DISABLE1+B9j and bProcessingBusy, 0FBh mov ax, 0FFFFh pop edi pop esi pop fs pop es lea sp, [bp+var_2] pop ds pop bp retf 4 DISABLE1 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 4 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 PhysChipID proc far ; CODE XREF: PhysicalEnable+36P ; VALIDATEMODE1+18P ; PhysDevInitialization+28P mov dx, 3CEh mov ax, 2609h out dx, ax ; EGA: graph 1 and 2 addr reg: ; unknown register xor ax, ax mov dx, 3D4h mov al, 1Ah out dx, al ; Video: CRT cntrlr addr ; inc dx in al, dx ; Video: CRT controller internal registers and al, 9Fh mov bChipID, al mov wChipId, ax dec dx mov al, 1Bh out dx, al ; Video: CRT cntrlr addr ; inc dx in al, dx ; Video: CRT controller internal registers mov bChipRev, al push ax dec dx mov ax, 58Eh out dx, ax ; Video: CRT cntrlr addr ; mov al, 8Fh ; '' out dx, al ; Video: CRT cntrlr addr ; in ax, dx ; Video: CRT cntrlr addr ; test ah, 40h pop ax cmp al, 52h ; 'R' jz loc_1400_18F0 cmp al, 20h ; ' ' ja loc_1400_18F2 loc_1400_18F0: ; CODE XREF: PhysChipID+32j mov al, 11h loc_1400_18F2: ; CODE XREF: PhysChipID+36j mov WCHIPREV, ax cmp wChipId, 5 jz loc_1400_1907 cmp wChipId, 50h ; 'P' jz loc_1400_1907 xor ax, ax jmp short locret_1400_196D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_1907: ; CODE XREF: PhysChipID+42j ; PhysChipID+49j cmp wChipId, 16h jnz loc_1400_1922 mov dwICONADDRESS, 5FFC04h mov dwSHAREDDATA, 5FFC08h jmp short loc_1400_196A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_1922: ; CODE XREF: PhysChipID+54j cmp wChipId, 6 jnz loc_1400_193D mov dwICONADDRESS, 3FFC04h mov dwSHAREDDATA, 3FFC08h jmp short loc_1400_196A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_193D: ; CODE XREF: PhysChipID+6Fj cmp WCHIPREV, 50h ; 'P' jnz loc_1400_1958 mov dwICONADDRESS, 2FFC04h mov dwSHAREDDATA, 2FFC08h jmp short loc_1400_196A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_1958: ; CODE XREF: PhysChipID+8Aj mov dwICONADDRESS, 27FC04h mov dwSHAREDDATA, 27FC08h loc_1400_196A: ; CODE XREF: PhysChipID+68j ; PhysChipID+83j PhysChipID+9Ej mov ax, 1 locret_1400_196D: ; CODE XREF: PhysChipID+4Dj retf PhysChipID endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 PhysPtrs proc far ; CODE XREF: ENABLE1+4EP push es push bx or BusMasterUsed, 1 mov BUSMASTERUSEDCOPY, 1 or ax, ax jnz loc_1400_1980 jmp short loc_1400_19B7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_1980: ; CODE XREF: PhysPtrs+Ej cmp cxScreenPixels, 190h jnz loc_1400_1990 mov pfnPhysNewFontBlt, 37C0h jmp short loc_1400_19B7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_1990: ; CODE XREF: PhysPtrs+18j cmp dwUnitNumber, 0 jnz loc_1400_19A0 cmp lpSecondDev, 0 jz loc_1400_19AD loc_1400_19A0: ; CODE XREF: PhysPtrs+28j test dword_1947_A306, 100000h jnz loc_1400_19AD jmp short loc_1400_19B7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_19AD: ; CODE XREF: PhysPtrs+30j PhysPtrs+3Bj cmp cxScreenPixels, 200h jnz loc_1400_1A37 loc_1400_19B7: ; CODE XREF: PhysPtrs+10j PhysPtrs+20j ; PhysPtrs+3Dj mov fEnableAccel, 0 mov word_1947_83B6, 430h mov word_1947_83A6, 430h mov word_1947_83A2, 430h mov pfnPhysScanFill, 37C0h mov pfnPhysScanline, 37C0h mov pfnPhysInitScanline, 37C0h mov apfnHorizontalRoutines, 32E0h mov apfnVerticalRoutines, 33E0h mov word_1947_7CA9, 3390h mov word_1947_7CAD, 3410h mov apfnDiagonalRoutines, 3450h mov word_1947_7C9B, 3510h mov word_1947_7C9F, 35D0h mov word_1947_7CA3, 3690h mov pfnPhysPatternBlt, 37C0h mov pfnPhysOutputOpaqueRects, 37C0h mov pfnPhysDrawTextBitmap, 37C0h mov pfnPhysDrawOpaqueRect, 37C0h mov pfnPhysicalFinalEnable, 2AE9h mov pfnPhysical_Enable, 1F48h jmp loc_1400_1B67 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_1A37: ; CODE XREF: PhysPtrs+45j mov pfnTurnCursorOn, 238h mov pfnTurnCursorOff, 251h mov word_1947_83B6, 45B0h mov word_1947_83A6, 4B8Eh mov word_1947_83A2, 4DD4h mov pfnPhysPatternBlt, 513Ah mov pfnPhysNewFontBlt, 5649h mov pfnPhysOutputOpaqueRects, 5525h mov pfnPhysScanFill, 5DB0h mov pfnPhysScanline, 5BF0h mov pfnPhysInitScanline, 5E50h mov pfnPhysDrawTextBitmap, 52DFh mov pfnPhysDrawOpaqueRect, 54A7h mov apfnHorizontalRoutines, 5B64h mov apfnVerticalRoutines, 5B50h mov word_1947_7CA9, 3390h mov word_1947_7CAD, 3410h mov apfnDiagonalRoutines, 3450h mov word_1947_7C9B, 3510h mov word_1947_7C9F, 35D0h mov word_1947_7CA3, 3690h mov pfnPhysicalFinalEnable, 2AE9h mov pfnPhysical_Enable, 1F48h test ISBUSMASTER, 1 jz loc_1400_1B67 call _Busmaster_Subkey_Read mov wUseBusmaster, ax or ax, ax jnz loc_1400_1ADE and ISBUSMASTER, 0FEh jmp loc_1400_1B67 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_1ADE: ; CODE XREF: PhysPtrs+166j and BusMasterUsed, 0FEh mov BUSMASTERUSEDCOPY, 0 mov word_1947_83B6, 5FF0h mov word_1947_83A2, 6CA0h mov word_1947_83A6, 6940h mov word_1947_83AE, 6661h mov pfnPhysPatternBlt, 7880h mov pfnPhysScanFill, 9FE0h mov pfnPhysScanline, 9C40h mov pfnPhysInitScanline, 0A110h mov apfnHorizontalRoutines, 8E3Ah mov apfnVerticalRoutines, 8E30h mov word_1947_7CA9, 8F80h mov word_1947_7CAD, 9270h mov apfnDiagonalRoutines, 9640h mov word_1947_7C9B, 97C0h cmp wBpp, 18h jz loc_1400_1B49 mov word_1947_7C9F, 9940h loc_1400_1B49: ; CODE XREF: PhysPtrs+1D3j mov word_1947_7CA3, 9AC0h mov pfnPhysNewFontBlt, 7D80h mov pfnPhysOutputOpaqueRects, 7B80h mov pfnPhysDrawTextBitmap, 88A3h mov pfnPhysDrawOpaqueRect, 8C76h loc_1400_1B67: ; CODE XREF: PhysPtrs+C6j ; PhysPtrs+158j PhysPtrs+16Dj and PUNTSTR, 0FEh mov PUNTSTRCOPY, 0 cmp pfnPhysDrawTextBitmap, 37C0h jz loc_1400_1BCD cmp cxScreenPixels, 190h jz loc_1400_1B89 cmp cxScreenPixels, 200h jnz loc_1400_1B8B loc_1400_1B89: ; CODE XREF: PhysPtrs+211j jmp short loc_1400_1BCD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_1B8B: ; CODE XREF: PhysPtrs+219j mov ax, WCHIPREV test ISBUSMASTER, 1 jz loc_1400_1BCD cmp dwUnitNumber, 1 jnz loc_1400_1BAB les bx, lpPrimaryDev cmp word ptr es:[bx+4], 400h jz loc_1400_1BCD jmp short loc_1400_1BBF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_1BAB: ; CODE XREF: PhysPtrs+22Dj cmp lpSecondDev, 0 jz loc_1400_1BBF les bx, lpSecondDev cmp word ptr es:[bx+4], 400h jz loc_1400_1BCD loc_1400_1BBF: ; CODE XREF: PhysPtrs+23Bj ; PhysPtrs+243j cmp cyScreenPixels, 400h jz loc_1400_1BCD loc_1400_1BC7: ; CODE XREF: PhysPtrs+269j mov ax, 1 pop bx pop es retf ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_1BCD: ; CODE XREF: PhysPtrs+209j ; PhysPtrs+21Bj PhysPtrs+225j ; PhysPtrs+239j PhysPtrs+24Fj ; PhysPtrs+257j or PUNTSTR, 1 mov PUNTSTRCOPY, 1 jmp short loc_1400_1BC7 PhysPtrs endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 a3 db '3[',7,'',0 align 2 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 PhysDevInitialization proc far ; CODE XREF: ENABLE1+DP cmp selVGA, 0 jz loc_1400_1C08 mov fs, selVGA mov al, 9 mov fs:3CEh, al mov al, 26h ; '&' mov fs:3CFh, al mov al, 11h mov fs:3CEh, al mov ax, fs:3CEh and ah, 0DFh mov fs:3CEh, ax loc_1400_1C08: ; CODE XREF: PhysDevInitialization+5j call PhysChipID or ax, ax jz locret_1400_1C18 call Physical_Read_Profile mov ax, 1 retf ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 locret_1400_1C18: ; CODE XREF: PhysDevInitialization+2Fj retf PhysDevInitialization endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 Map_VGA_MMIO proc far ; CODE XREF: ENABLE1+3FP mov ax, 4F14h mov bx, 108h int 10h ; - VIDEO - VESA SuperVGA BIOS - shl edx, 14h mov VgaBase, edx mov ISBUSMASTER, bl mov VGALimit, 100000h cmp VgaBase, 0 jz loc_1400_1CC4 push offset __A000H call ALLOCSELECTOR mov selVGA, ax mov cx, word ptr VgaBase mov bx, word ptr VgaBase+2 mov di, word ptr VGALimit mov si, word ptr VGALimit+2 mov ax, 800h int 31h ; DPMI Services ax=func xxxxh ; PHYSICAL ADDRESS MAPPING ; BX:CX = physical address, SI:DI = size in bytes ; Return: CF set on error ; CF clear if successful ; BX:CX = linear address which maps the requested physical memory jnb loc_1400_1C6B mov cx, word ptr VgaBase mov bx, word ptr VgaBase+2 loc_1400_1C6B: ; CODE XREF: Map_VGA_MMIO+48j mov word ptr VgaBase, cx mov word ptr VgaBase+2, bx mov ecx, 9 mov dx, word ptr VgaBase+2 shl edx, 10h mov dx, word ptr VgaBase mov eax, 83h ; '' mov ebx, dwDeviceHandle call VDDEntryPoint mov cx, word ptr VgaBase mov bx, word ptr VgaBase+2 push selVGA push bx push cx call SETSELECTORBASE push selVGA push large VGALimit call SETSELECTORLIMIT mov dx, 3CEh mov al, 11h out dx, al ; EGA: graph 1 and 2 addr reg: ; unknown register inc dx in al, dx ; EGA port: graphics controller data register or al, 40h out dx, al ; EGA port: graphics controller data register mov ax, 1 retf ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_1CC4: ; CODE XREF: Map_VGA_MMIO+24j xor ax, ax retf Map_VGA_MMIO endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 Physical_Read_Profile proc near ; CODE XREF: PhysDevInitialization+31p cmp dwUnitNumber, 0 jz loc_1400_1CDA cmp lpPrimaryDev, 0 jz loc_1400_1CDA jmp locret_1400_1DEE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_1CDA: ; CODE XREF: Physical_Read_Profile+6j ; Physical_Read_Profile+Ej mov PhysicalBase, 0C00000h mov ax, 4F14h mov bl, 1 int 10h ; - VIDEO - VESA SuperVGA BIOS - or ah, ah jnz loc_1400_1CFA movzx eax, bx shl eax, 14h mov PhysicalBase, eax loc_1400_1CFA: ; CODE XREF: Physical_Read_Profile+25j mov ax, wChipId movzx ebx, ax and bx, 0Fh and ax, 10h shr ax, 4 add bx, ax dec ebx shl ebx, 2 mov eax, [ebx+8FC0h] cmp wChipId, 5 jnz loc_1400_1D6C cmp WCHIPREV, 50h ; 'P' jnz loc_1400_1D2E add eax, 80000h loc_1400_1D2E: ; CODE XREF: Physical_Read_Profile+5Fj cmp WCHIPREV, 50h ; 'P' jz loc_1400_1D43 cmp WCHIPREV, 40h ; '@' jb loc_1400_1D4B cmp WCHIPREV, 48h ; 'H' jnb loc_1400_1D4B loc_1400_1D43: ; CODE XREF: Physical_Read_Profile+6Cj mov wGUCursor, 1 jmp short loc_1400_1D6C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_1D4B: ; CODE XREF: Physical_Read_Profile+73j ; Physical_Read_Profile+7Aj cmp WCHIPREV, 50h ; 'P' jbe loc_1400_1D6C push ax push bx push cx push dx mov ax, 4F14h mov bx, 0 int 10h ; - VIDEO - VESA SuperVGA BIOS - and bx, 4 shr bx, 2 mov wGUCursor, bx pop dx pop cx pop bx pop ax loc_1400_1D6C: ; CODE XREF: Physical_Read_Profile+58j ; Physical_Read_Profile+82j ; Physical_Read_Profile+89j mov PhysicalLimit, eax cmp dwUnitNumber, 0 jz loc_1400_1D8A add PhysicalBase, 100000h mov PhysicalLimit, 0C0000h loc_1400_1D8A: ; CODE XREF: Physical_Read_Profile+AFj movzx eax, dx shl eax, 14h mov COPBase, eax mov COPLimit, 400000h movzx eax, cx shl eax, 0Ah mov pTopOffscreenMem, eax mov ebx, COPBase add ebx, 100000h mov HostBase, ebx mov HostLimit, 300000h cmp dwUnitNumber, 0 jnz locret_1400_1DEE pusha call _InitLocalPostBuffPtrs popa mov ecx, 0 mov eax, 83h ; '' mov edx, PhysicalLimit mov ebx, dwDeviceHandle call VDDEntryPoint locret_1400_1DEE: ; CODE XREF: Physical_Read_Profile+10j ; Physical_Read_Profile+104j retn Physical_Read_Profile endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 PhysValidateMode db 83h ; db 3Eh ; > db 90h ; db 83h ; db 5 ; db 75h ; u db 3Bh ; ; db 66h ; f db 83h ; db 3Eh ; > db 86h ; db 5Ch ; \ db 1 ; db 75h ; u db 33h ; 3 db 81h ; db 0FAh ; db 0E0h ; db 1 ; db 7Ch ; | db 2Fh ; / db 75h ; u db 6 ; db 81h ; db 0FBh ; db 80h ; db 2 ; db 75h ; u db 27h ; ' db 83h ; db 3Eh ; > db 0CCh ; db 5Ah ; Z db 8 ; db 7Ch ; | db 20h ; db 83h ; db 3Eh ; > db 0CCh ; db 5Ah ; Z db 10h ; db 7Fh ;  db 19h ; db 0Fh ; db 0A0h ; db 8Eh ; db 26h ; & db 89h ; db 8Fh ; db 64h ; d db 0C6h ; db 6 ; db 0CEh ; db 3 ; db 20h ; db 64h ; d db 0A1h ; db 0CEh ; db 3 ; db 0Fh ; db 0A1h ; db 0F6h ; db 0C4h ; db 2 ; db 74h ; t db 2 ; db 0F8h ; db 0CBh ; db 0F9h ; db 0CBh ; ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 PhysicalDisable proc far ; CODE XREF: DISABLE1+65P cseg05:0140P mov fs, selCOP mov CursorOff, 1 cmp byte ptr fs:0, 0FFh jz locret_1400_1E4E loc_1400_1E46: ; CODE XREF: PhysicalDisable+17j test byte ptr fs:0, 3 jnz loc_1400_1E46 locret_1400_1E4E: ; CODE XREF: PhysicalDisable+Fj retf PhysicalDisable endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 PhysicalDisableSecond proc far ; CODE XREF: DISABLE1+28P push bx push cx mov ax, 4F14h mov bx, 20h ; ' ' mov cx, 0FFh int 10h ; - VIDEO - VESA SuperVGA BIOS - push fs mov fs, selVGA test fDisplay_Status, 5 jz loc_1400_1E75 mov byte ptr fs:3CEh, 20h ; ' ' and byte ptr fs:3CFh, 0FEh loc_1400_1E75: ; CODE XREF: PhysicalDisableSecond+18j lfs bx, lpPrimaryDev mov ax, fs:[bx+6] mov word ptr cxScreenBytes, ax mov ax, fs:[bx+2] mov cxScreenPixels, ax mov ax, fs:[bx+4] mov cyScreenPixels, ax xor eax, eax mov al, fs:[bx+9] mov wBpp, ax shr ax, 3 mov bytespp, eax mov fs, selCOP loc_1400_1EA4: ; CODE XREF: PhysicalDisableSecond+5Bj test byte ptr fs:0, 1 jnz loc_1400_1EA4 mov ax, word ptr cxScreenBytes mov fs:16h, ax mov al, bBltDepth mov fs:3, al mov byte_1947_59BD, al pop fs xor eax, eax mov pModeTagSecond, ax mov lpSecondDev, eax mov PHYSBASESEC, eax xchg eax, dwSecSize add CBSCRATCHMEM, eax mov eax, CBSCRATCHMEM mov _orgCbScratchMem, eax test fDisplay_Status, 4 jnz loc_1400_1EF2 mov ax, 4F14h mov bx, 4 int 10h ; - VIDEO - VESA SuperVGA BIOS - mov fDisplay_Status, bl loc_1400_1EF2: ; CODE XREF: PhysicalDisableSecond+95j mov eax, lpPrimaryDev mov lpDriverPDevice, eax push fs lfs bx, lpDriverPDevice cmp bPrimaryDevCursorFlag, 1 jnz loc_1400_1F41 mov byte ptr fs:[bx+3Ah], 1 push large 0 push large lpDriverPDevice call DIB_SETCURSOREXT mov al, byte_1947_A326 mov ah, CursorDefinedFlag mov CursorDefinedFlag, 1 mov byte_1947_A326, 1 push ax call fRefreshCursor pop ax mov byte_1947_A326, al mov CursorDefinedFlag, ah mov bPrimaryDevCursorFlag, 0 loc_1400_1F41: ; CODE XREF: PhysicalDisableSecond+B7j pop fs pop cx pop bx retf PhysicalDisableSecond endp ; sp = -8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 FindPanelModeTag db 0 ; db 0 ; Physical_Enable_5 db 0C6h ; db 6 ; db 0FDh ; db 98h ; db 0 ; db 0B8h ; db 14h ; db 4Fh ; O db 32h ; 2 db 0DBh ; db 0CDh ; db 10h ; db 88h ; db 1Eh ; db 0F4h ; db 98h ; db 83h ; db 3Eh ; > db 0FAh ; db 98h ; db 0FFh ; db 75h ; u db 6 ; db 0A0h ; db 0F1h ; db 98h ; db 0A2h ; db 0FCh ; db 98h ; db 66h ; f db 83h ; db 3Eh ; > db 86h ; db 5Ch ; \ db 0 ; db 75h ; u db 4Dh ; M db 9Ah ; dd _FlushOffscreenBitmaps db 66h ; f db 33h ; 3 db 0DBh ; db 66h ; f db 33h ; 3 db 0C9h ; db 8Bh ; db 36h ; 6 db 0BEh ; db 5Ah ; Z db 8Bh ; db 4Ch ; L db 0Ah ; db 8Bh ; db 5Ch ; \ db 8 ; db 66h ; f db 0Fh ; db 0AFh ; db 0D9h ; db 66h ; f db 3Bh ; ; db 1Eh ; db 0ACh ; db 98h ; db 7Ch ; | db 5 ; db 66h ; f db 89h ; db 1Eh ; db 0ACh ; db 98h ; db 66h ; f db 8Bh ; db 1Eh ; db 0ACh ; db 98h ; db 66h ; f db 0C1h ; db 0EBh ; db 2 ; db 66h ; f db 33h ; 3 db 0C9h ; db 8Eh ; db 6 ; db 84h ; db 0 ; db 8Bh ; db 0CBh ; db 66h ; f db 0C1h ; db 0EBh ; db 10h ; db 0FCh ; db 66h ; f db 33h ; 3 db 0FFh ; db 66h ; f db 33h ; 3 db 0C0h ; db 43h ; C db 0F3h ; db 67h ; g db 66h ; f db 0ABh ; db 0B9h ; db 0FFh ; db 0FFh ; db 4Bh ; K db 75h ; u db 0F6h ; db 66h ; f db 83h ; db 3Eh ; > db 86h ; db 5Ch ; \ db 0 ; db 0Fh ; db 85h ; db 20h ; db 6 ; db 8Bh ; db 36h ; 6 db 0BEh ; db 5Ah ; Z db 8Bh ; db 5Ch ; \ db 2 ; db 89h ; db 1Eh ; db 94h ; db 8Fh ; db 81h ; db 0CBh ; db 0 ; db 0C0h ; db 0B8h ; db 2 ; db 4Fh ; O db 0CDh ; db 10h ; db 0Ah ; db 0E4h ; db 0Fh ; db 85h ; db 8 ; db 0Bh ; db 8Eh ; db 6 ; db 84h ; db 0 ; db 66h ; f db 8Bh ; db 1Eh ; db 88h ; db 83h ; db 67h ; g db 66h ; f db 26h ; & db 83h ; db 23h ; # db 0FBh ; db 6 ; db 66h ; f db 53h ; S db 9Ah ; dd _MotionComp_Subkey_Read db 66h ; f db 5Bh ; [ db 7 ; db 66h ; f db 0A9h ; db 1 ; db 0 ; db 0 ; db 0 ; db 74h ; t db 0Dh ; db 67h ; g db 66h ; f db 26h ; & db 83h ; db 0Bh ; db 4 ; db 0C6h ; db 6 ; db 0F6h ; db 98h ; db 1 ; db 0EBh ; db 0Ch ; db 80h ; db 3Eh ; > db 0F6h ; db 98h ; db 1 ; db 75h ; u db 5 ; db 0C6h ; db 6 ; db 0F6h ; db 98h ; db 2 ; MotionCompSet db 80h ; db 3Eh ; > db 81h ; db 56h ; V db 1 ; db 74h ; t db 7 ; db 80h ; db 3Eh ; > db 10h ; db 9Dh ; db 1 ; db 75h ; u db 3 ; db 0E8h ; db 0B7h ; db 0Ch ; db 66h ; f db 8Bh ; db 3Eh ; > db 84h ; db 83h ; db 67h ; g db 66h ; f db 26h ; & db 8Bh ; db 37h ; 7 db 66h ; f db 83h ; db 0FEh ; db 0FFh ; db 74h ; t db 47h ; G db 66h ; f db 0C7h ; db 6 ; db 8 ; db 99h ; db 0 ; db 0 ; db 0 ; db 0 ; db 67h ; g db 66h ; f db 26h ; & db 0F7h ; db 3 ; db 1 ; db 0 ; db 0 ; db 0 ; db 75h ; u db 2Eh ; . db 66h ; f db 0C7h ; db 6 ; db 8 ; db 99h ; db 1 ; db 0 ; db 0 ; db 0 ; db 67h ; g db 66h ; f db 26h ; & db 0F7h ; db 3 ; db 4 ; db 0 ; db 0 ; db 0 ; db 66h ; f db 8Bh ; db 0Eh ; db 0 ; db 99h ; db 74h ; t db 12h ; db 66h ; f db 8Bh ; db 0Eh ; db 4 ; db 99h ; db 67h ; g db 66h ; f db 26h ; & db 0F7h ; db 3 ; db 2 ; db 0 ; db 0 ; db 0 ; db 0Fh ; db 85h ; db 6Dh ; m db 0Ah ; db 66h ; f db 2Bh ; + db 0F1h ; db 66h ; f db 89h ; db 36h ; 6 db 96h ; db 8Fh ; db 8Ah ; db 0Eh ; db 0F1h ; db 98h ; db 80h ; db 3Eh ; > db 26h ; & db 0A3h ; db 1 ; db 75h ; u db 0Dh ; db 66h ; f db 0F7h ; db 6 ; db 6 ; db 0A3h ; db 1 ; db 0 ; db 0 ; db 0 ; db 74h ; t db 2 ; db 0EBh ; db 50h ; P db 80h ; db 3Eh ; > db 81h ; db 56h ; V db 1 ; db 75h ; u db 6Ch ; l db 66h ; f db 83h ; db 3Eh ; > db 8Ch ; db 58h ; X db 0 ; db 75h ; u db 41h ; A db 0A0h ; db 0F1h ; db 98h ; db 24h ; $ db 7 ; db 80h ; db 3Eh ; > db 0F4h ; db 98h ; db 0 ; db 74h ; t db 6 ; db 3Ch ; < db 4 ; db 75h ; u db 2 ; db 0EBh ; db 2Fh ; / db 66h ; f db 51h ; Q db 66h ; f db 0B8h ; db 83h ; db 0 ; db 0 ; db 0 ; db 66h ; f db 8Bh ; db 1Eh ; db 82h ; db 5Ch ; \ db 66h ; f db 0B9h ; db 0Dh ; db 0 ; db 0 ; db 0 ; db 0FFh ; db 1Eh ; db 9Ch ; db 53h ; S db 66h ; f db 59h ; Y db 0Bh ; db 0C0h ; db 74h ; t db 12h ; db 66h ; f db 0A9h ; db 0 ; db 0 ; db 0 ; db 80h ; db 74h ; t db 7 ; db 0F6h ; db 0C1h ; db 4 ; db 74h ; t db 2 ; db 0EBh ; db 3 ; db 66h ; f db 8Bh ; db 0C8h ; db 80h ; db 3Eh ; > db 0F4h ; db 98h ; db 0 ; db 74h ; t db 11h ; db 8Ah ; db 0E9h ; db 80h ; db 0E5h ; db 40h ; @ db 80h ; db 0E1h ; db 0EFh ; db 0C0h ; db 0EDh ; db 2 ; db 0Ah ; db 0CDh ; db 88h ; db 0Eh ; db 0FDh ; db 98h ; db 80h ; db 0C9h ; db 40h ; @ db 0B8h ; db 14h ; db 4Fh ; O db 0BBh ; db 4 ; db 1 ; db 0CDh ; db 10h ; db 0B8h ; db 14h ; db 4Fh ; O db 0BBh ; db 4 ; db 0 ; db 0CDh ; db 10h ; db 88h ; db 1Eh ; db 0F1h ; db 98h ; db 80h ; db 3Eh ; > db 0FDh ; db 98h ; db 0 ; db 75h ; u db 4 ; db 88h ; db 1Eh ; db 0FDh ; db 98h ; db 0B8h ; db 14h ; db 4Fh ; O db 0BBh ; db 7 ; db 0 ; db 0CDh ; db 10h ; db 88h ; db 0Eh ; db 0F5h ; db 98h ; db 80h ; db 3Eh ; > db 26h ; & db 0A3h ; db 1 ; db 75h ; u db 22h ; " db 66h ; f db 0F7h ; db 6 ; db 6 ; db 0A3h ; db 0 ; db 2 ; db 0 ; db 0 ; db 74h ; t db 17h ; db 0B8h ; db 11h ; db 4Fh ; O db 0BBh ; db 6 ; db 1 ; db 0B9h ; db 1 ; db 1 ; db 0CDh ; db 10h ; db 0B8h ; db 11h ; db 4Fh ; O db 0BBh ; db 7 ; db 1 ; db 8Bh ; db 0Eh ; db 0Ch ; db 0A3h ; db 0CDh ; db 10h ; db 80h ; db 3Eh ; > db 26h ; & db 0A3h ; db 1 ; db 75h ; u db 19h ; db 66h ; f db 0F7h ; db 6 ; db 6 ; db 0A3h ; db 0 ; db 0 ; db 4 ; db 0 ; db 74h ; t db 0Eh ; db 0B8h ; db 14h ; db 4Fh ; O db 0BBh ; db 7 ; db 5 ; db 0B5h ; db 0 ; db 8Ah ; db 0Eh ; db 25h ; % db 0A3h ; db 0CDh ; db 10h ; db 80h ; db 3Eh ; > db 26h ; & db 0A3h ; db 1 ; db 75h ; u db 19h ; db 66h ; f db 0F7h ; db 6 ; db 6 ; db 0A3h ; db 0 ; db 20h ; db 0 ; db 0 ; db 74h ; t db 0Eh ; db 0B8h ; db 14h ; db 4Fh ; O db 0BBh ; db 7 ; db 2 ; db 0B5h ; db 0 ; db 8Ah ; db 0Eh ; db 0Eh ; db 0A3h ; db 0CDh ; db 10h ; db 80h ; db 3Eh ; > db 0F5h ; db 98h ; db 1 ; db 76h ; v db 20h ; db 80h ; db 3Eh ; > db 26h ; & db 0A3h ; db 1 ; db 75h ; u db 19h ; db 66h ; f db 0F7h ; db 6 ; db 6 ; db 0A3h ; db 0 ; db 0 ; db 1 ; db 0 ; db 74h ; t db 0Eh ; db 0B8h ; db 14h ; db 4Fh ; O db 0BBh ; db 9 ; db 0Ah ; db 0B5h ; db 0 ; db 8Ah ; db 0Eh ; db 23h ; # db 0A3h ; db 0CDh ; db 10h ; db 80h ; db 3Eh ; > db 0F5h ; db 98h ; db 1 ; db 76h ; v db 20h ; db 80h ; db 3Eh ; > db 26h ; & db 0A3h ; db 1 ; db 75h ; u db 19h ; db 66h ; f db 0F7h ; db 6 ; db 6 ; db 0A3h ; db 0 ; db 0 ; db 2 ; db 0 ; db 74h ; t db 0Eh ; db 0B8h ; db 14h ; db 4Fh ; O db 0BBh ; db 9 ; db 0Bh ; db 0B5h ; db 0 ; db 8Ah ; db 0Eh ; db 24h ; $ db 0A3h ; db 0CDh ; db 10h ; db 66h ; f db 83h ; db 3Eh ; > db 8Ch ; db 58h ; X db 0 ; db 0Fh ; db 84h ; db 0C0h ; db 0 ; db 80h ; db 3Eh ; > db 81h ; db 56h ; V db 0 ; db 0Fh ; db 85h ; db 0B7h ; db 0 ; db 6 ; db 56h ; V db 0C4h ; db 36h ; 6 db 8Ch ; db 58h ; X db 26h ; & db 80h ; db 7Ch ; | db 9 ; db 8 ; db 75h ; u db 23h ; # db 66h ; f db 0C7h ; db 6 ; db 86h ; db 5Ch ; \ db 1 ; db 0 ; db 0 ; db 0 ; db 0B9h ; db 0 ; db 1 ; db 33h ; 3 db 0C0h ; db 26h ; & db 0C4h ; db 74h ; t db 20h ; db 26h ; & db 3 ; db 34h ; 4 db 9Ah ; dd SETRAMDAC_FAR db 66h ; f db 0C7h ; db 6 ; db 86h ; db 5Ch ; \ db 0 ; db 0 ; db 0 ; db 0 ; db 83h ; db 3Eh ; > db 0FAh ; db 98h ; db 0FFh ; db 75h ; u db 16h ; db 0F6h ; db 6 ; db 0F1h ; db 98h ; db 10h ; db 75h ; u db 74h ; t db 0F6h ; db 6 ; db 0FCh ; db 98h ; db 10h ; db 74h ; t db 6Dh ; m db 0C7h ; db 6 ; db 0FAh ; db 98h ; db 2 ; db 0 ; db 0EBh ; db 65h ; e db 81h ; db 3Eh ; > db 93h ; db 59h ; Y db 90h ; db 1 ; db 75h ; u db 0Ah ; db 81h ; db 3Eh ; > db 95h ; db 59h ; Y db 2Ch ; , db 1 ; db 75h ; u db 2 ; db 0EBh ; db 42h ; B db 80h ; db 3Eh ; > db 0F4h ; db 98h ; db 0 ; db 74h ; t db 2Bh ; + db 81h ; db 3Eh ; > db 93h ; db 59h ; Y db 40h ; @ db 1 ; db 75h ; u db 11h ; db 81h ; db 3Eh ; > db 95h ; db 59h ; Y db 0C8h ; db 0 ; db 75h ; u db 9 ; db 83h ; db 3Eh ; > db 0CCh ; db 5Ah ; Z db 8 ; db 76h ; v db 2 ; db 0EBh ; db 22h ; " db 81h ; db 3Eh ; > db 93h ; db 59h ; Y db 40h ; @ db 1 ; db 75h ; u db 0Ah ; db 81h ; db 3Eh ; > db 95h ; db 59h ; Y db 0F0h ; db 0 ; db 75h ; u db 2 ; db 0EBh ; db 10h ; db 81h ; db 3Eh ; > db 93h ; db 59h ; Y db 80h ; db 2 ; db 73h ; s db 8 ; db 81h ; db 3Eh ; > db 95h ; db 59h ; Y db 0E0h ; db 1 ; db 72h ; r db 11h ; db 0C4h ; db 36h ; 6 db 8Ch ; db 58h ; X db 26h ; & db 8Bh ; db 5Ch ; \ db 2 ; db 26h ; & db 8Bh ; db 54h ; T db 4 ; db 5Eh ; ^ db 7 ; db 0E9h ; db 69h ; i db 3 ; db 5Eh ; ^ db 7 ; db 0E9h ; db 31h ; 1 db 3 ; db 83h ; db 3Eh ; > db 0FAh ; db 98h ; db 0FFh ; db 75h ; u db 1Ch ; db 0A0h ; db 0FDh ; db 98h ; db 24h ; $ db 7 ; db 3Ch ; < db 1 ; db 74h ; t db 8 ; db 3Ch ; < db 2 ; db 74h ; t db 4 ; db 3Ch ; < db 4 ; db 75h ; u db 4 ; db 33h ; 3 db 0C0h ; db 0EBh ; db 0Ah ; db 9Ah ; dd _IDTDisplay_SubKey_Read db 0EBh ; db 3 ; db 0A1h ; db 0FAh ; db 98h ; db 66h ; f db 83h ; db 3Eh ; > db 8Ch ; db 58h ; X db 0 ; db 75h ; u db 0Ah ; db 0F6h ; db 6 ; db 0F1h ; db 98h ; db 4 ; db 74h ; t db 3 ; db 0B8h ; db 1 ; db 0 ; db 0A3h ; db 0BAh ; db 98h ; db 0Bh ; db 0C0h ; db 74h ; t db 1Ah ; db 66h ; f db 33h ; 3 db 0C0h ; db 66h ; f db 0A3h ; db 85h ; db 59h ; Y db 80h ; db 3Eh ; > db 81h ; db 56h ; V db 1 ; db 74h ; t db 4 ; db 66h ; f db 0A3h ; db 0B0h ; db 86h ; db 0A1h ; db 9Bh ; db 59h ; Y db 0A3h ; db 0B6h ; db 86h ; db 0EBh ; db 29h ; ) db 0C6h ; db 6 ; db 0CBh ; db 86h ; db 0 ; db 66h ; f db 83h ; db 3Eh ; > db 8Ch ; db 58h ; X db 0 ; db 75h ; u db 12h ; db 0B9h ; db 0FFh ; db 1Fh ; db 0B8h ; db 14h ; db 4Fh ; O db 0B3h ; db 20h ; db 0CDh ; db 10h ; db 0Ah ; db 0E4h ; db 0Fh ; db 85h ; db 0C0h ; db 7 ; db 0EBh ; db 3 ; db 0B9h ; db 0FFh ; db 0FFh ; db 83h ; db 0F9h ; db 0FFh ; db 0Fh ; db 84h ; db 0AFh ; db 2 ; db 56h ; V db 8Bh ; db 36h ; 6 db 0C0h ; db 5Ah ; Z db 8Bh ; db 4Ch ; L db 2 ; db 5Eh ; ^ db 83h ; db 3Eh ; > db 0BAh ; db 98h ; db 1 ; db 0Fh ; db 85h ; db 0C4h ; db 1 ; db 0B9h ; db 0Eh ; db 0 ; db 80h ; db 3Eh ; > db 0F4h ; db 98h ; db 0 ; db 74h ; t db 3 ; db 0B9h ; db 14h ; db 0 ; db 0BEh ; db 0FEh ; db 8Ah ; db 8Bh ; db 16h ; db 0BCh ; db 86h ; db 0F6h ; db 6 ; db 0F1h ; db 98h ; db 4 ; db 75h ; u db 3Eh ; > db 80h ; db 3Eh ; > db 0F4h ; db 98h ; db 1 ; db 75h ; u db 0Ch ; db 0C7h ; db 6 ; db 0B4h ; db 86h ; db 0 ; db 4 ; db 0C7h ; db 6 ; db 0BAh ; db 86h ; db 0 ; db 3 ; db 83h ; db 3Eh ; > db 0FAh ; db 98h ; db 0FFh ; db 74h ; t db 10h ; db 0B8h ; db 14h ; db 4Fh ; O db 0BBh ; db 24h ; $ db 0 ; db 0CDh ; db 10h ; db 89h ; db 0Eh ; db 0B4h ; db 86h ; db 89h ; db 16h ; db 0BAh ; db 86h ; db 0B9h ; db 0Ch ; db 0 ; db 80h ; db 3Eh ; > db 0F4h ; db 98h ; db 0 ; db 74h ; t db 3 ; db 0B9h ; db 0Fh ; db 0 ; db 0BEh ; db 0F0h ; db 89h ; db 8Bh ; db 16h ; db 0BAh ; db 86h ; db 8Bh ; db 1Eh ; db 0B4h ; db 86h ; db 0A1h ; db 0C8h ; db 86h ; db 51h ; Q db 8Bh ; db 3Eh ; > db 0BEh ; db 5Ah ; Z db 3Bh ; ; db 5 ; db 75h ; u db 22h ; " db 80h ; db 3Eh ; > db 0F6h ; db 98h ; db 0 ; db 75h ; u db 1Bh ; db 8Bh ; db 45h ; E db 6 ; db 3Bh ; ; db 0C3h ; db 72h ; r db 0Fh ; db 8Bh ; db 4Dh ; M db 8 ; db 3Bh ; ; db 0CAh ; db 72h ; r db 8 ; db 81h ; db 0FBh ; db 80h ; db 2 ; db 72h ; r db 2 ; db 0EBh ; db 3Eh ; > db 8Bh ; db 4Dh ; M db 8 ; db 0EBh ; db 25h ; % db 8Bh ; db 45h ; E db 6 ; db 8Bh ; db 4Dh ; M db 8 ; db 0F6h ; db 6 ; db 0F1h ; db 98h ; db 4 ; db 74h ; t db 18h ; db 66h ; f db 0F7h ; db 6 ; db 6 ; db 0A3h ; db 0 ; db 80h ; db 0 ; db 0 ; db 74h ; t db 0Dh ; db 3Bh ; ; db 6 ; db 1Fh ; db 0A3h ; db 76h ; v db 7 ; db 0A1h ; db 1Fh ; db 0A3h ; db 8Bh ; db 0Eh ; db 21h ; ! db 0A3h ; db 0A3h ; db 0B4h ; db 86h ; db 89h ; db 0Eh ; db 0BAh ; db 86h ; db 89h ; db 0Eh ; db 0BCh ; db 86h ; db 8Bh ; db 0D8h ; db 8Bh ; db 0D1h ; db 8Bh ; db 5 ; db 0A3h ; db 0C8h ; db 86h ; db 59h ; Y db 53h ; S db 33h ; 3 db 0DBh ; db 8Ah ; db 1Eh ; db 0F1h ; db 98h ; db 0C1h ; db 0EBh ; db 3 ; db 80h ; db 0E3h ; db 1 ; db 8Bh ; db 0FBh ; db 5Bh ; [ db 0F6h ; db 6 ; db 0F1h ; db 98h ; db 4 ; db 74h ; t db 29h ; ) db 66h ; f db 0F7h ; db 6 ; db 6 ; db 0A3h ; db 0 ; db 80h ; db 0 ; db 0 ; db 74h ; t db 1Eh ; db 0Bh ; db 0FFh ; db 74h ; t db 1Ah ; db 3Bh ; ; db 1Eh ; db 1Fh ; db 0A3h ; db 76h ; v db 14h ; db 8Bh ; db 1Eh ; db 1Fh ; db 0A3h ; db 8Bh ; db 16h ; db 21h ; ! db 0A3h ; db 89h ; db 1Eh ; db 0B4h ; db 86h ; db 89h ; db 16h ; db 0BAh ; db 86h ; db 89h ; db 16h ; db 0BCh ; db 86h ; db 0E8h ; db 40h ; @ db 0DEh ; db 0Bh ; db 0F6h ; db 74h ; t db 0Ah ; db 89h ; db 36h ; 6 db 0C0h ; db 5Ah ; Z db 8Bh ; db 4Ch ; L db 2 ; db 0E9h ; db 0E5h ; db 0 ; db 0F6h ; db 6 ; db 0F1h ; db 98h ; db 4 ; db 74h ; t db 64h ; d db 66h ; f db 0F7h ; db 6 ; db 6 ; db 0A3h ; db 0 ; db 80h ; db 0 ; db 0 ; db 74h ; t db 0Ah ; db 8Bh ; db 0Eh ; db 1Fh ; db 0A3h ; db 8Bh ; db 16h ; db 21h ; ! db 0A3h ; db 0EBh ; db 6 ; db 0B9h ; db 20h ; db 3 ; db 0BAh ; db 58h ; X db 2 ; db 0Bh ; db 0FFh ; db 75h ; u db 1Fh ; db 0B9h ; db 80h ; db 2 ; db 0BAh ; db 0E0h ; db 1 ; db 80h ; db 3Eh ; > db 0F5h ; db 98h ; db 1 ; db 77h ; w db 6 ; db 0B9h ; db 80h ; db 2 ; db 0BAh ; db 0E0h ; db 1 ; db 81h ; db 0FBh ; db 90h ; db 1 ; db 75h ; u db 6 ; db 0B9h ; db 40h ; @ db 1 ; db 0BAh ; db 0F0h ; db 0 ; db 8Bh ; db 0D9h ; db 89h ; db 1Eh ; db 0B4h ; db 86h ; db 89h ; db 16h ; db 0BCh ; db 86h ; db 0B9h ; db 0Eh ; db 0 ; db 80h ; db 3Eh ; > db 0F4h ; db 98h ; db 0 ; db 74h ; t db 3 ; db 0B9h ; db 14h ; db 0 ; db 0BEh ; db 0FEh ; db 8Ah ; db 0E8h ; db 0D0h ; db 0DDh ; db 89h ; db 36h ; 6 db 0C0h ; db 5Ah ; Z db 8Bh ; db 4Ch ; L db 2 ; db 0EBh ; db 7Ah ; z db 0B9h ; db 0FFh ; db 0 ; db 0B8h ; db 14h ; db 4Fh ; O db 0B3h ; db 20h ; db 0CDh ; db 10h ; db 33h ; 3 db 0C0h ; db 50h ; P db 9Ah ; dd _IDTDisplay_SubKey_Write db 58h ; X db 0A0h ; db 0FCh ; db 98h ; db 24h ; $ db 5 ; db 80h ; db 3Eh ; > db 0F4h ; db 98h ; db 0 ; db 74h ; t db 0Dh ; db 3Ch ; < db 4 ; db 74h ; t db 9 ; db 0B8h ; db 14h ; db 4Fh ; O db 0B3h ; db 0Bh ; db 0B1h ; db 0 ; db 0CDh ; db 10h ; db 83h ; db 3Eh ; > db 0FAh ; db 98h ; db 0FFh ; db 75h ; u db 0Dh ; db 0F6h ; db 6 ; db 0FCh ; db 98h ; db 2 ; db 74h ; t db 6 ; db 0C7h ; db 6 ; db 0FAh ; db 98h ; db 1 ; db 0 ; db 0E9h ; db 0D9h ; db 0 ; db 0F6h ; db 6 ; db 0F1h ; db 98h ; db 4 ; db 74h ; t db 30h ; 0 db 33h ; 3 db 0C9h ; db 8Ah ; db 0Eh ; db 0F1h ; db 98h ; db 0C0h ; db 0E9h ; db 3 ; db 80h ; db 0E1h ; db 1 ; db 8Bh ; db 0F9h ; db 0B9h ; db 0Eh ; db 0 ; db 80h ; db 3Eh ; > db 0F4h ; db 98h ; db 0 ; db 74h ; t db 3 ; db 0B9h ; db 14h ; db 0 ; db 0BEh ; db 0FEh ; db 8Ah ; db 8Bh ; db 1Eh ; db 0B4h ; db 86h ; db 8Bh ; db 16h ; db 0BCh ; db 86h ; db 0E8h ; db 54h ; T db 0DDh ; db 89h ; db 36h ; 6 db 0C0h ; db 5Ah ; Z db 8Bh ; db 4Ch ; L db 2 ; db 0F6h ; db 6 ; db 0F1h ; db 98h ; db 4 ; db 74h ; t db 15h ; db 8Bh ; db 36h ; 6 db 0C0h ; db 5Ah ; Z db 80h ; db 3Eh ; > db 0F5h ; db 98h ; db 1 ; db 8Bh ; db 54h ; T db 8 ; db 75h ; u db 3 ; db 8Bh ; db 54h ; T db 0Ch ; db 89h ; db 16h ; db 0BAh ; db 86h ; db 0C6h ; db 6 ; db 0CBh ; db 86h ; db 1 ; db 8Bh ; db 16h ; db 85h ; db 59h ; Y db 8Ah ; db 3Eh ; > db 87h ; db 59h ; Y db 66h ; f db 0Fh ; db 0B7h ; db 3Eh ; > db 0B6h ; db 86h ; db 80h ; db 3Eh ; > db 0F4h ; db 98h ; db 1 ; db 75h ; u db 0Dh ; db 0F6h ; db 6 ; db 0F1h ; db 98h ; db 4 ; db 74h ; t db 6 ; db 66h ; f db 0Fh ; db 0B7h ; db 3Eh ; > db 9Bh ; db 59h ; Y db 66h ; f db 0D1h ; db 0EFh ; db 53h ; S db 52h ; R db 57h ; W db 0B8h ; db 14h ; db 4Fh ; O db 0B3h ; db 20h ; db 0CDh ; db 10h ; db 5Fh ; _ db 5Ah ; Z db 5Bh ; [ db 0B8h ; db 14h ; db 4Fh ; O db 0B3h ; db 21h ; ! db 0CDh ; db 10h ; db 89h ; db 0Eh ; db 0C6h ; db 86h ; db 83h ; db 3Eh ; > db 0FAh ; db 98h ; db 0FFh ; db 74h ; t db 29h ; ) db 0B8h ; db 1 ; db 0 ; db 50h ; P db 9Ah ; dd _IDTDisplay_SubKey_Write db 58h ; X db 0A0h ; db 0FCh ; db 98h ; db 24h ; $ db 5 ; db 80h ; db 3Eh ; > db 0F4h ; db 98h ; db 0 ; db 74h ; t db 0Dh ; db 3Ch ; < db 4 ; db 74h ; t db 9 ; db 0B8h ; db 14h ; db 4Fh ; O db 0B3h ; db 0Bh ; db 0B1h ; db 1 ; db 0CDh ; db 10h ; db 0C7h ; db 6 ; db 0FAh ; db 98h ; db 0FFh ; db 0FFh ; db 66h ; f db 0A1h ; db 85h ; db 59h ; Y db 80h ; db 3Eh ; > db 0F3h ; db 98h ; db 1 ; db 74h ; t db 9 ; db 0C6h ; db 6 ; db 0F3h ; db 98h ; db 0 ; db 66h ; f db 0A3h ; db 0B0h ; db 86h ; db 0E9h ; db 93h ; db 1 ; db 8Ah ; db 0Eh ; db 0F1h ; db 98h ; db 0F6h ; db 0C1h ; db 1 ; db 75h ; u db 1Fh ; db 80h ; db 3Eh ; > db 0F4h ; db 98h ; db 0 ; db 74h ; t db 0Dh ; db 8Ah ; db 0E9h ; db 80h ; db 0E5h ; db 40h ; @ db 80h ; db 0E1h ; db 0EFh ; db 0C0h ; db 0EDh ; db 2 ; db 0Ah ; db 0CDh ; db 0B8h ; db 14h ; db 4Fh ; O db 0BBh ; db 4 ; db 1 ; db 80h ; db 0C9h ; db 41h ; A db 0CDh ; db 10h ; db 8Bh ; db 1Eh ; db 0B0h ; db 5Ah ; Z db 8Bh ; db 16h ; db 0B4h ; db 5Ah ; Z db 33h ; 3 db 0C0h ; db 39h ; 9 db 1Eh ; db 0B4h ; db 86h ; db 75h ; u db 6 ; db 39h ; 9 db 16h ; db 0BAh ; db 86h ; db 74h ; t db 3Ch ; < db 0A1h ; db 0CCh ; db 5Ah ; Z db 50h ; P db 0A1h ; db 0C8h ; db 86h ; db 0A3h ; db 0CCh ; db 5Ah ; Z db 66h ; f db 8Bh ; db 3Eh ; > db 86h ; db 5Ch ; \ db 66h ; f db 0C7h ; db 6 ; db 86h ; db 5Ch ; \ db 0 ; db 0 ; db 0 ; db 0 ; db 0E8h ; db 92h ; db 0DBh ; db 66h ; f db 89h ; db 3Eh ; > db 86h ; db 5Ch ; \ db 58h ; X db 0A3h ; db 0CCh ; db 5Ah ; Z db 0Bh ; db 0F6h ; db 75h ; u db 4 ; db 0B8h ; db 0 ; db 0 ; db 0C3h ; db 8Bh ; db 44h ; D db 0Ah ; db 89h ; db 1Eh ; db 0B4h ; db 86h ; db 89h ; db 16h ; db 0BAh ; db 86h ; db 0A3h ; db 0B6h ; db 86h ; db 0EBh ; db 11h ; db 0F6h ; db 6 ; db 0CAh ; db 86h ; db 2 ; db 74h ; t db 0Ah ; db 0F6h ; db 6 ; db 0F1h ; db 98h ; db 4 ; db 74h ; t db 3 ; db 8Bh ; db 44h ; D db 0Ch ; db 0Bh ; db 0C0h ; db 74h ; t db 22h ; " db 0Fh ; db 0A0h ; db 8Eh ; db 26h ; & db 89h ; db 8Fh ; db 64h ; d db 8Ah ; db 26h ; & db 0D4h ; db 3 ; db 0B0h ; db 1Eh ; db 64h ; d db 0A2h ; db 0D4h ; db 3 ; db 64h ; d db 0A0h ; db 0D5h ; db 3 ; db 0Ch ; db 20h ; db 64h ; d db 0A2h ; db 0D5h ; db 3 ; db 64h ; d db 88h ; db 26h ; & db 0D4h ; db 3 ; db 0Fh ; db 0A1h ; db 8Bh ; db 16h ; db 85h ; db 59h ; Y db 8Ah ; db 3Eh ; > db 87h ; db 59h ; Y db 8Bh ; db 36h ; 6 db 0C0h ; db 5Ah ; Z db 8Bh ; db 4Ch ; L db 2 ; db 8Bh ; db 3Eh ; > db 0B6h ; db 86h ; db 0D1h ; db 0EFh ; db 0B8h ; db 14h ; db 4Fh ; O db 0B3h ; db 20h ; db 0CDh ; db 10h ; db 0Ah ; db 0E4h ; db 8Bh ; db 16h ; db 85h ; db 59h ; Y db 8Ah ; db 3Eh ; > db 87h ; db 59h ; Y db 8Bh ; db 3Eh ; > db 0B6h ; db 86h ; db 0D1h ; db 0EFh ; db 0B8h ; db 14h ; db 4Fh ; O db 0B3h ; db 21h ; ! db 0CDh ; db 10h ; db 0B8h ; db 14h ; db 4Fh ; O db 0BBh ; db 4 ; db 0 ; db 0CDh ; db 10h ; db 88h ; db 1Eh ; db 0F1h ; db 98h ; db 83h ; db 3Eh ; > db 83h ; db 59h ; Y db 0 ; db 74h ; t db 3Bh ; ; db 66h ; f db 8Bh ; db 0Eh ; db 9Fh ; db 59h ; Y db 66h ; f db 3 ; db 0Eh ; db 85h ; db 59h ; Y db 0FFh ; db 36h ; 6 db 83h ; db 59h ; Y db 66h ; f db 51h ; Q db 9Ah ; dd SETSELECTORBASE db 0FFh ; db 36h ; 6 db 83h ; db 59h ; Y db 6Ah ; j db 1 ; db 68h ; h db 12h ; db 80h ; db 9Ah ; dd SELECTORACCESSRIGHTS db 66h ; f db 0A1h ; db 81h ; db 53h ; S db 66h ; f db 2Bh ; + db 6 ; db 85h ; db 59h ; Y db 66h ; f db 0C1h ; db 0E8h ; db 0Ch ; db 0FFh ; db 36h ; 6 db 83h ; db 59h ; Y db 66h ; f db 50h ; P db 9Ah ; dd SETSELECTORLIMIT db 9Ah ; dd SETDEFAULTREF db 9Ah ; dd LOADREFRESHRATE ; "VW>Z" db 52h ; R db 50h ; P db 0BAh ; db 0CEh ; db 3 ; db 0B8h ; db 9 ; db 26h ; & db 0EFh ; db 58h ; X db 5Ah ; Z db 8Eh ; db 26h ; & db 88h ; db 0 ; db 83h ; db 3Eh ; > db 0FAh ; db 98h ; db 0FFh ; db 74h ; t db 3Eh ; > db 6 ; db 56h ; V db 0C4h ; db 36h ; 6 db 8Ch ; db 58h ; X db 26h ; & db 80h ; db 7Ch ; | db 9 ; db 8 ; db 75h ; u db 26h ; & db 66h ; f db 0A1h ; db 86h ; db 5Ch ; \ db 66h ; f db 0C7h ; db 6 ; db 86h ; db 5Ch ; \ db 1 ; db 0 ; db 0 ; db 0 ; db 66h ; f db 50h ; P db 0B9h ; db 0 ; db 1 ; db 33h ; 3 db 0C0h ; db 26h ; & db 0C4h ; db 74h ; t db 20h ; db 26h ; & db 3 ; db 34h ; 4 db 9Ah ; dd SETRAMDAC_FAR db 66h ; f db 58h ; X db 66h ; f db 0A3h ; db 86h ; db 5Ch ; \ db 5Eh ; ^ db 7 ; db 0C7h ; db 6 ; db 0FAh ; db 98h ; db 0FFh ; db 0FFh ; db 0E9h ; db 0BCh ; db 1 ; db 0E9h ; db 0E1h ; db 2 ; db 80h ; db 3Eh ; > db 81h ; db 56h ; V db 1 ; db 74h ; t db 28h ; ( db 33h ; 3 db 0DBh ; db 0B8h ; db 14h ; db 4Fh ; O db 0CDh ; db 10h ; db 8Bh ; db 0D9h ; db 4Bh ; K db 4Ah ; J db 89h ; db 1Eh ; db 0A8h ; db 86h ; db 89h ; db 16h ; db 0AEh ; db 86h ; db 43h ; C db 42h ; B db 0E8h ; db 39h ; 9 db 0DAh ; db 0Bh ; db 0F6h ; db 89h ; db 36h ; 6 db 92h ; db 8Fh ; db 75h ; u db 8 ; db 8Bh ; db 36h ; 6 db 0BEh ; db 5Ah ; Z db 89h ; db 36h ; 6 db 92h ; db 8Fh ; db 52h ; R db 50h ; P db 0BAh ; db 0CEh ; db 3 ; db 0B8h ; db 9 ; db 26h ; & db 0EFh ; db 58h ; X db 5Ah ; Z db 80h ; db 26h ; & db 0CCh ; db 86h ; db 0FDh ; db 0F6h ; db 6 ; db 0F1h ; db 98h ; db 5 ; db 74h ; t db 26h ; & db 8Bh ; db 3Eh ; > db 92h ; db 8Fh ; db 8Bh ; db 36h ; 6 db 0BEh ; db 5Ah ; Z db 8Bh ; db 5Ch ; \ db 8 ; db 8Bh ; db 4Dh ; M db 8 ; db 3Bh ; ; db 0D9h ; db 76h ; v db 14h ; db 80h ; db 0Eh ; db 0CCh ; db 86h ; db 2 ; db 8Bh ; db 5Ch ; \ db 6 ; db 8Bh ; db 4Dh ; M db 6 ; db 3Bh ; ; db 0D9h ; db 76h ; v db 5 ; db 80h ; db 0Eh ; db 0CCh ; db 86h ; db 2 ; db 66h ; f db 83h ; db 3Eh ; > db 8Ch ; db 58h ; X db 0 ; db 74h ; t db 2 ; db 0EBh ; db 2Ch ; , db 80h ; db 26h ; & db 0CAh ; db 86h ; db 0FDh ; db 0F6h ; db 6 ; db 0F1h ; db 98h ; db 5 ; db 74h ; t db 20h ; db 8Bh ; db 5Ch ; \ db 8 ; db 8Bh ; db 0Eh ; db 0BAh ; db 86h ; db 3Bh ; ; db 0D9h ; db 76h ; v db 15h ; db 80h ; db 0Eh ; db 0CAh ; db 86h ; db 2 ; db 8Bh ; db 5Ch ; \ db 6 ; db 8Bh ; db 0Eh ; db 0B4h ; db 86h ; db 3Bh ; ; db 0D9h ; db 76h ; v db 5 ; db 80h ; db 0Eh ; db 0CAh ; db 86h ; db 2 ; db 66h ; f db 83h ; db 3Eh ; > db 86h ; db 5Ch ; \ db 0 ; db 75h ; u db 10h ; db 66h ; f db 83h ; db 3Eh ; > db 8Ch ; db 58h ; X db 0 ; db 74h ; t db 8 ; db 0C7h ; db 6 ; db 48h ; H db 90h ; db 3Ch ; < db 0 ; db 0EBh ; db 15h ; db 9Ah ; dd SETDEFAULTREF db 9Ah ; dd LOADREFRESHRATE ; "VW>Z" db 52h ; R db 50h ; P db 0BAh ; db 0CEh ; db 3 ; db 0B8h ; db 9 ; db 26h ; & db 0EFh ; db 58h ; X db 5Ah ; Z db 0A1h ; db 0B4h ; db 5Ah ; Z db 0C6h ; db 6 ; db 0F2h ; db 98h ; db 1 ; db 3Dh ; = db 0 ; db 3 ; db 75h ; u db 0Ch ; db 83h ; db 3Eh ; > db 48h ; H db 90h ; db 3Ch ; < db 76h ; v db 5 ; db 0C6h ; db 6 ; db 0F2h ; db 98h ; db 0 ; db 0C6h ; db 6 ; db 0CDh ; db 86h ; db 0 ; db 3Dh ; = db 80h ; db 1 ; db 74h ; t db 5 ; db 3Dh ; = db 5Eh ; ^ db 1 ; db 73h ; s db 5 ; db 0C6h ; db 6 ; db 0CDh ; db 86h ; db 1 ; db 0F6h ; db 6 ; db 0CCh ; db 86h ; db 2 ; db 74h ; t db 3Bh ; ; db 66h ; f db 0A1h ; db 0A4h ; db 86h ; db 8Bh ; db 1Eh ; db 0A0h ; db 0CFh ; db 66h ; f db 3 ; db 7 ; db 66h ; f db 33h ; 3 db 0D2h ; db 66h ; f db 0BBh ; db 4 ; db 0 ; db 0 ; db 0 ; db 66h ; f db 0F7h ; db 0F3h ; db 8Bh ; db 0C8h ; db 8Bh ; db 0DAh ; db 0B0h ; db 0Dh ; db 8Ah ; db 0E1h ; db 0FAh ; db 0BAh ; db 0D4h ; db 3 ; db 0EFh ; db 0B0h ; db 0Ch ; db 8Ah ; db 0E5h ; db 0EFh ; db 66h ; f db 0C1h ; db 0E8h ; db 8 ; db 0B0h ; db 0Eh ; db 0BAh ; db 0CEh ; db 3 ; db 0EEh ; db 42h ; B db 0ECh ; db 24h ; $ db 0F0h ; db 0Ah ; db 0C4h ; db 0EEh ; db 0FBh ; db 66h ; f db 83h ; db 3Eh ; > db 8Ch ; db 58h ; X db 0 ; db 74h ; t db 2 ; db 0EBh ; db 23h ; # db 66h ; f db 0A1h ; db 0B0h ; db 86h ; db 8Bh ; db 1Eh ; db 0A0h ; db 0CFh ; db 66h ; f db 3 ; db 7 ; db 66h ; f db 8Bh ; db 0D8h ; db 0C1h ; db 0E0h ; db 8 ; db 0B0h ; db 8Bh ; db 0BAh ; db 0D4h ; db 3 ; db 0EFh ; db 8Bh ; db 0C3h ; db 0B0h ; db 8Ah ; db 0EFh ; db 66h ; f db 0C1h ; db 0E8h ; db 8 ; db 0B0h ; db 89h ; db 0EFh ; db 0B8h ; db 1 ; db 0 ; db 0A2h ; db 63h ; c db 90h ; db 8Eh ; db 26h ; & db 88h ; db 0 ; db 0BAh ; db 0CEh ; db 3 ; db 0B0h ; db 11h ; db 0EEh ; db 42h ; B db 0ECh ; db 0Ch ; db 0C0h ; db 0EEh ; db 0BAh ; db 0CEh ; db 3 ; db 0B0h ; db 85h ; db 0EEh ; db 42h ; B db 66h ; f db 33h ; 3 db 0C9h ; db 0ECh ; db 8Ah ; db 0C8h ; db 66h ; f db 0C1h ; db 0E1h ; db 0Eh ; db 0BAh ; db 0CEh ; db 3 ; db 0B0h ; db 88h ; db 0EEh ; db 42h ; B db 66h ; f db 33h ; 3 db 0C0h ; db 0ECh ; db 66h ; f db 0Fh ; db 0B7h ; db 0D0h ; db 83h ; db 0E0h ; db 0Fh ; db 66h ; f db 0C1h ; db 0E0h ; db 0Ah ; db 66h ; f db 0Bh ; db 0C1h ; db 66h ; f db 0A3h ; db 0DCh ; db 8Fh ; db 0BAh ; db 0CEh ; db 3 ; db 0B0h ; db 11h ; db 0EEh ; db 42h ; B db 0ECh ; db 0Ch ; db 0C0h ; db 0EEh ; db 66h ; f db 0Fh ; db 0B7h ; db 6 ; db 0B4h ; db 5Ah ; Z db 66h ; f db 0Fh ; db 0AFh ; db 6 ; db 0B8h ; db 5Ah ; Z db 66h ; f db 0A3h ; db 0E0h ; db 8Fh ; db 66h ; f db 33h ; 3 db 0C0h ; db 66h ; f db 8Bh ; db 16h ; db 96h ; db 8Fh ; db 8Eh ; db 6 ; db 84h ; db 0 ; db 66h ; f db 8Bh ; db 1Eh ; db 88h ; db 83h ; db 67h ; g db 66h ; f db 26h ; & db 0F7h ; db 3 ; db 4 ; db 0 ; db 0 ; db 0 ; db 75h ; u db 24h ; $ db 66h ; f db 8Bh ; db 0C2h ; db 80h ; db 3Eh ; > db 0C4h ; db 53h ; S db 0 ; db 74h ; t db 0Eh ; db 66h ; f db 25h ; % db 0FFh ; db 0FFh ; db 0 ; db 0 ; db 66h ; f db 5 ; db 0 ; db 0 ; db 1 ; db 0 ; db 0EBh ; db 0Ch ; db 66h ; f db 25h ; % db 0FFh ; db 7Fh ;  db 0 ; db 0 ; db 66h ; f db 5 ; db 0 ; db 80h ; db 0 ; db 0 ; db 66h ; f db 0A3h ; db 0B8h ; db 59h ; Y db 66h ; f db 2Bh ; + db 0D0h ; db 66h ; f db 89h ; db 16h ; db 0B4h ; db 59h ; Y db 66h ; f db 0C1h ; db 0EAh ; db 10h ; db 66h ; f db 0B8h ; db 83h ; db 0 ; db 0 ; db 0 ; db 66h ; f db 8Bh ; db 1Eh ; db 82h ; db 5Ch ; \ db 66h ; f db 0B9h ; db 3 ; db 0 ; db 0 ; db 0 ; db 0FFh ; db 1Eh ; db 9Ch ; db 53h ; S db 66h ; f db 33h ; 3 db 0C0h ; db 66h ; f db 0A3h ; db 0ECh ; db 8Fh ; db 66h ; f db 0A1h ; db 0B4h ; db 59h ; Y db 66h ; f db 0A3h ; db 0E8h ; db 8Fh ; db 66h ; f db 8Bh ; db 1Eh ; db 88h ; db 83h ; db 67h ; g db 66h ; f db 26h ; & db 0F7h ; db 3 ; db 4 ; db 0 ; db 0 ; db 0 ; db 75h ; u db 4Ah ; J db 66h ; f db 0A1h ; db 0B4h ; db 59h ; Y db 66h ; f db 0C7h ; db 6 ; db 0ECh ; db 8Fh ; db 0 ; db 28h ; ( db 0 ; db 0 ; db 83h ; db 3Eh ; > db 0CCh ; db 5Ah ; Z db 18h ; db 75h ; u db 2Dh ; - db 66h ; f db 0C7h ; db 6 ; db 0ECh ; db 8Fh ; db 0 ; db 31h ; 1 db 0 ; db 0 ; db 66h ; f db 2Dh ; - db 0 ; db 1 ; db 0 ; db 0 ; db 6 ; db 66h ; f db 60h ; ` db 8Eh ; db 6 ; db 84h ; db 0 ; db 66h ; f db 8Bh ; db 0F8h ; db 66h ; f db 0B8h ; db 0FFh ; db 0FFh ; db 0FFh ; db 0FFh ; db 67h ; g db 66h ; f db 26h ; & db 89h ; db 7 ; db 67h ; g db 66h ; f db 26h ; & db 89h ; db 47h ; G db 4 ; db 66h ; f db 61h ; a db 7 ; db 66h ; f db 2Bh ; + db 6 ; db 0ECh ; db 8Fh ; db 66h ; f db 0A3h ; db 0E8h ; db 8Fh ; db 66h ; f db 2Bh ; + db 6 ; db 0E0h ; db 8Fh ; db 0Fh ; db 8Ch ; db 0CFh ; db 0 ; db 74h ; t db 9 ; db 66h ; f db 2Bh ; + db 6 ; db 89h ; db 59h ; Y db 66h ; f db 0A3h ; db 0E4h ; db 8Fh ; db 8Eh ; db 6 ; db 84h ; db 0 ; db 66h ; f db 8Bh ; db 3Eh ; > db 0DCh ; db 8Fh ; db 66h ; f db 33h ; 3 db 0C0h ; db 66h ; f db 0B9h ; db 0 ; db 2 ; db 0 ; db 0 ; db 0F3h ; db 67h ; g db 66h ; f db 0ABh ; db 66h ; f db 64h ; d db 0C7h ; db 6 ; db 0Ch ; db 10h ; db 0FFh ; db 0FFh ; db 0FFh ; db 0 ; db 66h ; f db 64h ; d db 0C7h ; db 6 ; db 10h ; db 10h ; db 0 ; db 0 ; db 0 ; db 0 ; db 0A1h ; db 0B8h ; db 5Ah ; Z db 64h ; d db 0A3h ; db 16h ; db 0 ; db 9Ah ; dd PhysFlushGlyphCache ; "fP3>" db 0B0h ; db 1 ; db 66h ; f db 83h ; db 3Eh ; > db 0C4h ; db 5Ah ; Z db 1 ; db 74h ; t db 0Ch ; db 0B0h ; db 2 ; db 66h ; f db 83h ; db 3Eh ; > db 0C4h ; db 5Ah ; Z db 2 ; db 74h ; t db 2 ; db 0B0h ; db 3 ; db 32h ; 2 db 0E4h ; db 64h ; d db 0C6h ; db 6 ; db 7 ; db 0 ; db 60h ; ` db 0C6h ; db 6 ; db 0F0h ; db 8Fh ; db 60h ; ` db 0B4h ; db 4 ; db 81h ; db 3Eh ; > db 0B0h ; db 5Ah ; Z db 40h ; @ db 1 ; db 74h ; t db 3Eh ; > db 0B4h ; db 8 ; db 81h ; db 3Eh ; > db 0B0h ; db 5Ah ; Z db 80h ; db 2 ; db 74h ; t db 34h ; 4 db 0B4h ; db 0Ch ; db 81h ; db 3Eh ; > db 0B0h ; db 5Ah ; Z db 20h ; db 3 ; db 74h ; t db 2Ah ; * db 0B4h ; db 10h ; db 81h ; db 3Eh ; > db 0B0h ; db 5Ah ; Z db 0 ; db 4 ; db 74h ; t db 20h ; db 0B4h ; db 14h ; db 81h ; db 3Eh ; > db 0B0h ; db 5Ah ; Z db 80h ; db 4 ; db 74h ; t db 16h ; db 0B4h ; db 18h ; db 81h ; db 3Eh ; > db 0B0h ; db 5Ah ; Z db 0 ; db 5 ; db 74h ; t db 0Ch ; db 0B4h ; db 1Ch ; db 81h ; db 3Eh ; > db 0B0h ; db 5Ah ; Z db 40h ; @ db 6 ; db 74h ; t db 2 ; db 0B4h ; db 8 ; db 0Ah ; db 0C4h ; db 64h ; d db 0A2h ; db 3 ; db 0 ; db 66h ; f db 83h ; db 3Eh ; > db 86h ; db 5Ch ; \ db 0 ; db 75h ; u db 5 ; db 0A2h ; db 0F8h ; db 98h ; db 0EBh ; db 3 ; db 0A2h ; db 0F9h ; db 98h ; db 0E8h ; db 0D3h ; db 1 ; db 0C7h ; db 6 ; db 0B8h ; db 98h ; db 1 ; db 0 ; db 0B8h ; db 1 ; db 0 ; db 0C3h ; db 33h ; 3 db 0C0h ; db 0C3h ; PhysicalFinalEnable_5 db 80h ; db 3Eh ; > db 99h ; db 53h ; S db 1 ; db 0Fh ; db 84h ; db 79h ; y db 1 ; db 83h ; db 3Eh ; > db 0BCh ; db 98h ; db 0 ; db 0Fh ; db 85h ; db 70h ; p db 1 ; db 60h ; ` db 9Ah ; dd _InitLocalPostBuffPtrs aAoI db 'a&',0 aFG db 'f',0 align 4 db 66h ; f db 8Bh ; db 1Eh ; db 82h ; db 5Ch ; \ db 66h ; f db 0B9h ; db 5 ; db 0 ; db 0 ; db 0 ; db 0FFh ; db 1Eh ; db 9Ch ; db 53h ; S db 66h ; f db 64h ; d db 0A3h ; db 84h ; db 0 ; db 33h ; 3 db 0C0h ; db 0B8h ; dw offset __A000H db 50h ; P db 9Ah ; dd ALLOCSELECTOR db 0A3h ; db 0BCh ; db 98h ; db 50h ; P db 9Ah ; dd ALLOCSELECTOR db 0A3h ; db 0C0h ; dd unk_1947_B898 aOFG db 'リf',0 db 0 ; db 0 ; db 66h ; f db 8Bh ; db 1Eh ; db 82h ; db 5Ch ; \ db 66h ; f db 0B9h ; db 0Eh ; db 0 ; db 0 ; db 0 ; db 0FFh ; db 1Eh ; db 9Ch ; db 53h ; S db 66h ; f db 0C1h ; db 0E0h ; db 0Ch ; db 66h ; f db 48h ; H db 66h ; f db 0A3h ; db 0C8h ; db 98h ; db 66h ; f db 89h ; db 1Eh ; db 0CCh ; db 98h ; db 66h ; f db 89h ; db 0Eh ; db 0D0h ; db 98h ; db 66h ; f db 0A1h ; db 0CCh ; db 98h ; db 0FFh ; db 36h ; 6 db 0C0h ; db 98h ; db 66h ; f db 50h ; P db 9Ah ; dd SETSELECTORBASE db 66h ; f db 0A1h ; db 0C8h ; db 98h ; db 0FFh ; db 36h ; 6 db 0C0h ; db 98h ; db 66h ; f db 50h ; P db 9Ah ; dd SETSELECTORLIMIT db 0B8h ; dw seg dseg08 aOFG_0 db 'リf',0 db 0 ; db 0 ; db 66h ; f db 8Bh ; db 1Eh ; db 82h ; db 5Ch ; \ db 66h ; f db 0B9h ; db 6 ; db 0 ; db 0 ; db 0 ; db 0FFh ; db 1Eh ; db 9Ch ; db 53h ; S db 66h ; f db 64h ; d db 0A3h ; db 88h ; db 0 ; db 66h ; f db 89h ; db 3Eh ; > db 9Ch ; db 98h ; db 66h ; f db 89h ; db 36h ; 6 db 0A0h ; db 98h ; db 66h ; f db 81h ; db 0E9h ; db 0 ; db 40h ; @ db 0 ; db 0 ; db 66h ; f db 89h ; db 0Eh ; db 88h ; db 98h ; db 66h ; f db 0C1h ; db 0E9h ; db 3 ; db 66h ; f db 89h ; db 0Eh ; db 8Ch ; db 98h ; db 66h ; f db 89h ; db 16h ; db 84h ; db 98h ; db 66h ; f db 0C1h ; db 0EAh ; db 2 ; db 66h ; f db 89h ; db 16h ; db 90h ; db 98h ; db 66h ; f db 0C1h ; db 0EAh ; db 8 ; db 66h ; f db 0C1h ; db 0E2h ; db 10h ; db 66h ; f db 0C1h ; db 0E9h ; db 8 ; db 8Ah ; db 0F1h ; db 0B2h ; db 4 ; db 66h ; f db 89h ; db 16h ; db 94h ; db 98h ; db 0B2h ; db 7 ; db 66h ; f db 89h ; db 16h ; db 98h ; db 98h ; db 66h ; f db 89h ; db 1Eh ; db 0B4h ; db 98h ; db 66h ; f db 0A1h ; db 9Ch ; db 98h ; db 0FFh ; db 36h ; 6 db 0BCh ; db 98h ; db 66h ; f db 50h ; P db 9Ah ; dd SETSELECTORBASE db 66h ; f db 0A1h ; db 88h ; db 98h ; db 66h ; f db 5 ; db 0 ; db 40h ; @ db 0 ; db 0 ; db 0FFh ; db 36h ; 6 db 0BCh ; db 98h ; db 66h ; f db 50h ; P db 9Ah ; dd SETSELECTORLIMIT aBGSl6Sdbo db '錬6d',0 db 89h ; db 4 ; db 89h ; db 44h ; D db 2 ; db 64h ; d db 0A1h ; db 90h ; db 0 ; db 0A3h ; db 0E4h ; db 98h ; db 0A3h ; db 0E0h ; db 98h ; db 66h ; f db 0A1h ; db 94h ; db 98h ; db 66h ; f db 64h ; d db 0A3h ; db 80h ; db 0 ; db 66h ; f db 0B8h ; db 83h ; db 0 ; db 0 ; db 0 ; db 66h ; f db 8Bh ; db 1Eh ; db 82h ; db 5Ch ; \ db 66h ; f db 0B9h ; db 8 ; db 0 ; db 0 ; db 0 ; db 0FFh ; db 1Eh ; db 9Ch ; db 53h ; S db 0A2h ; db 0F0h ; db 98h ; db 66h ; f db 0B9h ; db 2 ; db 0 ; db 0 ; db 0 ; db 8Bh ; db 16h ; db 3Ch ; < db 0C3h ; db 66h ; f db 0B8h ; db 83h ; db 0 ; db 0 ; db 0 ; db 66h ; f db 8Bh ; db 1Eh ; db 82h ; db 5Ch ; \ db 0FFh ; db 1Eh ; db 9Ch ; db 53h ; S db 0C3h ; ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame ALLOCMCBUFFER proc far ; CODE XREF: CONTROL1+650P arg_0 = dword ptr 6 arg_4 = dword ptr 0Ah push bp mov bp, sp push es push ds push esi mov ax, seg dseg08 mov ds, ax les si, [bp+arg_4] mov dx, es:[si+4] shl edx, 10h mov dx, es:[si] mov eax, 83h ; '' mov ebx, dwDeviceHandle mov ecx, 0Ch call VDDEntryPoint les si, [bp+arg_0] mov es:[si], ebx mov es:[si+4], edx pop esi pop ds pop es pop bp retf 8 ALLOCMCBUFFER endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 saveMem1KLoc db 0FCh ; db 51h ; Q db 1Eh ; db 6 ; db 1Eh ; db 7 ; db 8Eh ; db 1Eh ; db 84h ; db 0 ; db 66h ; f db 26h ; & db 8Bh ; db 36h ; 6 db 84h ; db 83h ; db 67h ; g db 66h ; f db 81h ; db 26h ; & db 0FFh ; db 0FFh ; db 0FFh ; db 0 ; db 66h ; f db 83h ; db 0EEh ; db 4 ; db 66h ; f db 0BFh ; db 10h ; db 99h ; db 0 ; db 0 ; db 0B9h ; db 0 ; db 4 ; db 67h ; g db 0A4h ; db 0E2h ; db 0FCh ; db 7 ; db 1Fh ; db 59h ; Y db 0C6h ; db 6 ; db 10h ; db 9Dh ; db 1 ; db 0C3h ; RestoreMem1KLoc db 0FCh ; db 51h ; Q db 1Eh ; db 6 ; db 8Eh ; db 6 ; db 84h ; db 0 ; db 66h ; f db 0BEh ; db 10h ; db 99h ; db 0 ; db 0 ; db 66h ; f db 8Bh ; db 3Eh ; > db 84h ; db 83h ; db 66h ; f db 83h ; db 0EFh ; db 4 ; db 67h ; g db 66h ; f db 26h ; & db 83h ; db 7Fh ;  db 4 ; db 0FFh ; db 74h ; t db 0Ch ; db 67h ; g db 66h ; f db 26h ; & db 0F7h ; db 47h ; G db 4 ; db 0 ; db 0 ; db 0 ; db 0FFh ; db 75h ; u db 0Fh ; db 66h ; f db 50h ; P db 67h ; g db 66h ; f db 26h ; & db 8Bh ; db 7 ; db 67h ; g db 66h ; f db 3Bh ; ; db 6 ; db 66h ; f db 58h ; X db 74h ; t db 0Ah ; db 66h ; f db 0B9h ; db 0 ; db 1 ; db 0 ; db 0 ; db 0F3h ; db 67h ; g db 66h ; f db 0A5h ; db 7 ; db 1Fh ; db 59h ; Y db 0C3h ; db 0 ; db 0 ; ; ; External Entry #5 into the Module ; Attributes (0001): Moveable Exported ; ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame public Enable Enable proc far var_52 = word ptr -52h var_50 = word ptr -50h var_4E = byte ptr -4Eh var_36 = word ptr -36h var_2F = byte ptr -2Fh var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_4 = word ptr -4 var_2 = byte ptr -2 arg_0 = word ptr 6 arg_2 = word ptr 8 arg_4 = word ptr 0Ah arg_6 = word ptr 0Ch arg_8 = word ptr 0Eh arg_A = word ptr 10h arg_C = word ptr 12h arg_E = word ptr 14h arg_10 = word ptr 16h mov ax, ds ; DISPLAY_5 nop inc bp push bp mov bp, sp push ds mov ds, ax sub sp, 50h push di push si mov ax, seg dseg08 mov ds, ax mov ax, [bp+arg_A] or ax, [bp+arg_8] jnz loc_1400_2D4C jmp loc_1400_2D99 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2D4C: ; CODE XREF: Enable+1Bj push 0 push 0 push [bp+arg_A] push [bp+arg_8] push 0 push 0 push 0 push 8Dh ; '' push 0 push 0 call _VDDCall add sp, 14h mov word ptr dwDeviceHandle, ax mov word ptr dwDeviceHandle+2, dx mov ax, word ptr dwDeviceHandle+2 or ax, word ptr dwDeviceHandle jnz loc_1400_2D7C jmp loc_1400_2D90 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2D7C: ; CODE XREF: Enable+4Bj cmp word ptr dwDeviceHandle, 0FFFFh jz loc_1400_2D86 jmp loc_1400_2D96 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2D86: ; CODE XREF: Enable+55j cmp word ptr dwDeviceHandle+2, 0FFFFh jz loc_1400_2D90 jmp loc_1400_2D96 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2D90: ; CODE XREF: Enable+4Dj Enable+5Fj mov ax, 0 jmp loc_1400_311F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2D96: ; CODE XREF: Enable+57j Enable+61j jmp loc_1400_2DA5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2D99: ; CODE XREF: Enable+1Dj mov word ptr dwDeviceHandle, 1 mov word ptr dwDeviceHandle+2, 0 loc_1400_2DA5: ; CODE XREF: Enable+6Aj mov ax, 0 mov cx, 25h ; '%' lea di, [bp+var_4E] push ss pop es assume es:cseg01 repe stosw push 0 push 4Ah ; 'J' lea ax, [bp+var_4E] push ss push ax push 0 push 0 push 0 push 85h ; '' push word ptr dwDeviceHandle+2 push word ptr dwDeviceHandle call _VDDCall add sp, 14h mov ax, [bp+var_1C] mov dx, [bp+var_1A] mov word ptr dwUnitNumber, ax mov word ptr dwUnitNumber+2, dx cmp wChipId, 0 jz loc_1400_2DE9 jmp loc_1400_2E11 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2DE9: ; CODE XREF: Enable+B8j mov ax, 2609h mov dx, 3CEh out dx, ax ; EGA: graph 1 and 2 addr reg: ; unknown register mov ax, 1Ah mov dx, 3D4h out dx, al ; Video: CRT cntrlr addr ; mov dx, 3D5h in al, dx ; Video: CRT controller internal registers and ax, 9Fh mov wChipId, ax mov ax, 1Bh mov dx, 3D4h out dx, al ; Video: CRT cntrlr addr ; mov dx, 3D5h in al, dx ; Video: CRT controller internal registers sub ah, ah mov WCHIPREV, ax loc_1400_2E11: ; CODE XREF: Enable+BAj mov ax, word ptr dwUnitNumber+2 or ax, word ptr dwUnitNumber jz loc_1400_2E1D jmp loc_1400_2E54 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2E1D: ; CODE XREF: Enable+ECj cmp wChipId, 16h jnz loc_1400_2E27 jmp loc_1400_2E54 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2E27: ; CODE XREF: Enable+F6j cmp wChipId, 5 jz loc_1400_2E31 jmp loc_1400_2E3B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2E31: ; CODE XREF: Enable+100j cmp WCHIPREV, 25h ; '%' jb loc_1400_2E3B jmp loc_1400_2E54 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2E3B: ; CODE XREF: Enable+102j Enable+10Aj cmp [bp+var_2F], 8 ja loc_1400_2E44 jmp loc_1400_2E54 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2E44: ; CODE XREF: Enable+113j cmp [bp+var_36], 500h jge loc_1400_2E4E jmp loc_1400_2E54 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2E4E: ; CODE XREF: Enable+11Dj mov ax, 0 jmp loc_1400_311F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2E54: ; CODE XREF: Enable+EEj Enable+F8j ; Enable+10Cj Enable+115j Enable+11Fj cmp word ptr dwDeviceHandle, 1 jz loc_1400_2E5E jmp loc_1400_2F0E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2E5E: ; CODE XREF: Enable+12Dj cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_2E68 jmp loc_1400_2F0E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2E68: ; CODE XREF: Enable+137j test [bp+arg_C], 7FFFh jz loc_1400_2E72 jmp loc_1400_2E8C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2E72: ; CODE XREF: Enable+141j call RESTOREDISPLAYSTATUS test byte ptr dword_1947_A306, 1 jnz loc_1400_2E81 jmp loc_1400_2E87 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2E81: ; CODE XREF: Enable+150j mov al, byte_1947_A30A mov fDisplay_Status, al loc_1400_2E87: ; CODE XREF: Enable+152j mov byte_1947_A326, 1 loc_1400_2E8C: ; CODE XREF: Enable+143j push [bp+arg_10] push [bp+arg_E] push [bp+arg_C] push [bp+arg_A] push [bp+arg_8] push [bp+arg_6] push [bp+arg_4] push [bp+arg_2] push [bp+arg_0] call ENABLE1 mov [bp+var_4], ax cmp byte_1947_A326, 0 jnz loc_1400_2EB9 jmp loc_1400_2F08 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2EB9: ; CODE XREF: Enable+188j test word ptr dword_1947_A306+2, 100h jnz loc_1400_2EC4 jmp loc_1400_2EE2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2EC4: ; CODE XREF: Enable+193j push 0 push 0 push 1 call RestoreGammaCorrectionTable cmp ax, 0 jz loc_1400_2ED7 jmp loc_1400_2EE2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2ED7: ; CODE XREF: Enable+1A6j and word ptr dword_1947_A306, 0FFFFh and word ptr dword_1947_A306+2, 0FEFFh loc_1400_2EE2: ; CODE XREF: Enable+195j Enable+1A8j test word ptr dword_1947_A306+2, 100h jnz loc_1400_2EED jmp loc_1400_2EFE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2EED: ; CODE XREF: Enable+1BCj push [bp+arg_10] push [bp+arg_E] push 1 push 0 push 0 call GammaRampControl loc_1400_2EFE: ; CODE XREF: Enable+1BEj mov byte_1947_A326, 0 mov bDrvDisabled, 0 loc_1400_2F08: ; CODE XREF: Enable+18Aj mov ax, [bp+var_4] jmp loc_1400_311F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2F0E: ; CODE XREF: Enable+12Fj Enable+139j cmp word ptr dwDeviceHandle, 1 jz loc_1400_2F18 jmp loc_1400_2F2B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2F18: ; CODE XREF: Enable+1E7j cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_2F22 jmp loc_1400_2F2B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2F22: ; CODE XREF: Enable+1F1j mov ax, 0 mov dx, 0 jmp loc_1400_2F4B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2F2B: ; CODE XREF: Enable+1E9j Enable+1F3j push 0 push 0 push 0 push 0 push 0 push 0FFh push 0 push 8Bh ; '' push word ptr dwDeviceHandle+2 push word ptr dwDeviceHandle call _VDDCall add sp, 14h loc_1400_2F4B: ; CODE XREF: Enable+1FCj mov [bp+var_52], ax mov [bp+var_50], dx cmp ax, 0FFFFh jz loc_1400_2F59 jmp loc_1400_2F67 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2F59: ; CODE XREF: Enable+228j cmp dx, 0FFFFh jz loc_1400_2F61 jmp loc_1400_2F67 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2F61: ; CODE XREF: Enable+230j mov ax, 0 jmp loc_1400_311F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2F67: ; CODE XREF: Enable+22Aj Enable+232j call CANHWRUNASSECONDARY cmp ax, 0 jnz loc_1400_2F74 jmp loc_1400_30E3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2F74: ; CODE XREF: Enable+243j test [bp+arg_C], 7FFFh jz loc_1400_2F7E jmp loc_1400_2FA4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2F7E: ; CODE XREF: Enable+24Dj mov ax, word ptr dwUnitNumber+2 or ax, word ptr dwUnitNumber jz loc_1400_2F8A jmp loc_1400_2FA4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2F8A: ; CODE XREF: Enable+259j call RESTOREDISPLAYSTATUS test byte ptr dword_1947_A306, 1 jnz loc_1400_2F99 jmp loc_1400_2F9F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2F99: ; CODE XREF: Enable+268j mov al, byte_1947_A30A mov fDisplay_Status, al loc_1400_2F9F: ; CODE XREF: Enable+26Aj mov byte_1947_A326, 1 loc_1400_2FA4: ; CODE XREF: Enable+24Fj Enable+25Bj push [bp+arg_10] push [bp+arg_E] push [bp+arg_C] push [bp+arg_A] push [bp+arg_8] push [bp+arg_6] push [bp+arg_4] push [bp+arg_2] push [bp+arg_0] call ENABLE1 mov [bp+var_4], ax cmp byte_1947_A326, 0 jnz loc_1400_2FD1 jmp loc_1400_3020 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2FD1: ; CODE XREF: Enable+2A0j test word ptr dword_1947_A306+2, 100h jnz loc_1400_2FDC jmp loc_1400_2FFA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2FDC: ; CODE XREF: Enable+2ABj push 0 push 0 push 1 call RestoreGammaCorrectionTable cmp ax, 0 jz loc_1400_2FEF jmp loc_1400_2FFA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_2FEF: ; CODE XREF: Enable+2BEj and word ptr dword_1947_A306, 0FFFFh and word ptr dword_1947_A306+2, 0FEFFh loc_1400_2FFA: ; CODE XREF: Enable+2ADj Enable+2C0j test word ptr dword_1947_A306+2, 100h jnz loc_1400_3005 jmp loc_1400_3016 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3005: ; CODE XREF: Enable+2D4j push [bp+arg_10] push [bp+arg_E] push 1 push 0 push 0 call GammaRampControl loc_1400_3016: ; CODE XREF: Enable+2D6j mov byte_1947_A326, 0 mov bDrvDisabled, 0 loc_1400_3020: ; CODE XREF: Enable+2A2j cmp [bp+var_4], 0 jz loc_1400_3029 jmp loc_1400_3065 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3029: ; CODE XREF: Enable+2F8j cmp word ptr dwDeviceHandle, 1 jz loc_1400_3033 jmp loc_1400_3040 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3033: ; CODE XREF: Enable+302j cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_303D jmp loc_1400_3040 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_303D: ; CODE XREF: Enable+30Cj jmp loc_1400_305F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3040: ; CODE XREF: Enable+304j Enable+30Ej push 0 push 0 push 0 push 0 push 0 push 0 push 0 push 8Bh ; '' push word ptr dwDeviceHandle+2 push word ptr dwDeviceHandle call _VDDCall add sp, 14h loc_1400_305F: ; CODE XREF: Enable+311j mov ax, 0 jmp loc_1400_311F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3065: ; CODE XREF: Enable+2FAj cmp [bp+arg_C], 1 jz loc_1400_306E jmp loc_1400_30A7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_306E: ; CODE XREF: Enable+33Dj cmp word ptr dwDeviceHandle, 1 jz loc_1400_3078 jmp loc_1400_3085 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3078: ; CODE XREF: Enable+347j cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_3082 jmp loc_1400_3085 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3082: ; CODE XREF: Enable+351j jmp loc_1400_30A4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3085: ; CODE XREF: Enable+349j Enable+353j push 0 push 0 push 0 push 0 push 0 push 0 push 0 push 8Bh ; '' push word ptr dwDeviceHandle+2 push word ptr dwDeviceHandle call _VDDCall add sp, 14h loc_1400_30A4: ; CODE XREF: Enable+356j jmp loc_1400_30DD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_30A7: ; CODE XREF: Enable+33Fj cmp word ptr dwDeviceHandle, 1 jz loc_1400_30B1 jmp loc_1400_30BE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_30B1: ; CODE XREF: Enable+380j cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_30BB jmp loc_1400_30BE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_30BB: ; CODE XREF: Enable+38Aj jmp loc_1400_30DD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_30BE: ; CODE XREF: Enable+382j Enable+38Cj push 0 push 0 push 0 push 0 push 0 push 2 push 0 push 8Bh ; '' push word ptr dwDeviceHandle+2 push word ptr dwDeviceHandle call _VDDCall add sp, 14h loc_1400_30DD: ; CODE XREF: Enable+378j Enable+38Fj mov ax, [bp+var_4] jmp loc_1400_311F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_30E3: ; CODE XREF: Enable+245j cmp word ptr dwDeviceHandle, 1 jz loc_1400_30ED jmp loc_1400_30FA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_30ED: ; CODE XREF: Enable+3BCj cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_30F7 jmp loc_1400_30FA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_30F7: ; CODE XREF: Enable+3C6j jmp loc_1400_3119 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_30FA: ; CODE XREF: Enable+3BEj Enable+3C8j push 0 push 0 push 0 push 0 push 0 push 0 push 0 push 8Bh ; '' push word ptr dwDeviceHandle+2 push word ptr dwDeviceHandle call _VDDCall add sp, 14h loc_1400_3119: ; CODE XREF: Enable+3CBj mov ax, 0 jmp $+3 loc_1400_311F: ; CODE XREF: Enable+67j Enable+125j ; Enable+1DFj Enable+238j Enable+336j ; Enable+3B4j pop si pop di lea sp, [bp+var_2] pop ds pop bp dec bp retf 12h Enable endp ; sp = -50h ; ; External Entry #31 into the Module ; Attributes (0001): Moveable Exported ; ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame public ReEnable ReEnable proc far var_C = word ptr -0Ch var_A = word ptr -0Ah var_8 = dword ptr -8 var_4 = word ptr -4 var_2 = byte ptr -2 arg_0 = word ptr 6 arg_2 = word ptr 8 arg_4 = word ptr 0Ah arg_6 = word ptr 0Ch mov ax, ds ; DISPLAY_31 nop inc bp push bp mov bp, sp push ds mov ds, ax sub sp, 0Ah push di push si mov ax, seg dseg08 mov ds, ax mov [bp+var_4], 0 mov ax, [bp+arg_4] mov dx, [bp+arg_6] mov word ptr [bp+var_8], ax mov word ptr [bp+var_8+2], dx les bx, [bp+var_8] assume es:nothing mov ax, es:[bx+2Ch] mov dx, es:[bx+2Eh] mov word ptr dwDeviceHandle, ax mov word ptr dwDeviceHandle+2, dx mov ax, word ptr dwDeviceHandle mov dx, word ptr dwDeviceHandle+2 cmp word ptr dwSecondDevHandle, ax jz loc_1400_3172 jmp loc_1400_3181 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3172: ; CODE XREF: ReEnable+43j cmp word ptr dwSecondDevHandle+2, dx jz loc_1400_317B jmp loc_1400_3181 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_317B: ; CODE XREF: ReEnable+4Cj mov ax, 1 jmp loc_1400_3184 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3181: ; CODE XREF: ReEnable+45j ReEnable+4Ej mov ax, 0 loc_1400_3184: ; CODE XREF: ReEnable+54j cwd mov word ptr dwUnitNumber, ax mov word ptr dwUnitNumber+2, dx cmp word ptr dwDeviceHandle, 1 jz loc_1400_3196 jmp loc_1400_31B7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3196: ; CODE XREF: ReEnable+67j cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_31A0 jmp loc_1400_31B7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_31A0: ; CODE XREF: ReEnable+71j push [bp+arg_6] push [bp+arg_4] push [bp+arg_2] push [bp+arg_0] call REENABLE1 mov [bp+var_4], ax jmp loc_1400_3254 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_31B7: ; CODE XREF: ReEnable+69j ReEnable+73j cmp word ptr dwDeviceHandle, 1 jz loc_1400_31C1 jmp loc_1400_31D4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_31C1: ; CODE XREF: ReEnable+92j cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_31CB jmp loc_1400_31D4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_31CB: ; CODE XREF: ReEnable+9Cj mov ax, 0 mov dx, 0 jmp loc_1400_31F4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_31D4: ; CODE XREF: ReEnable+94j ReEnable+9Ej push 0 push 0 push 0 push 0 push 0 push 0FFh push 0 push 8Bh ; '' push word ptr dwDeviceHandle+2 push word ptr dwDeviceHandle call _VDDCall add sp, 14h loc_1400_31F4: ; CODE XREF: ReEnable+A7j mov [bp+var_C], ax mov [bp+var_A], dx cmp ax, 0FFFFh jz loc_1400_3202 jmp loc_1400_320A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3202: ; CODE XREF: ReEnable+D3j cmp dx, 0FFFFh jnz loc_1400_320A jmp loc_1400_3254 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_320A: ; CODE XREF: ReEnable+D5j ReEnable+DBj push [bp+arg_6] push [bp+arg_4] push [bp+arg_2] push [bp+arg_0] call REENABLE1 mov [bp+var_4], ax cmp word ptr dwDeviceHandle, 1 jz loc_1400_3228 jmp loc_1400_3235 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3228: ; CODE XREF: ReEnable+F9j cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_3232 jmp loc_1400_3235 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3232: ; CODE XREF: ReEnable+103j jmp loc_1400_3254 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3235: ; CODE XREF: ReEnable+FBj ; ReEnable+105j push 0 push 0 push 0 push 0 push 0 push 2 push 0 push 8Bh ; '' push word ptr dwDeviceHandle+2 push word ptr dwDeviceHandle call _VDDCall add sp, 14h loc_1400_3254: ; CODE XREF: ReEnable+8Aj ReEnable+DDj ; ReEnable+108j cmp [bp+var_4], 0 jnz loc_1400_325D jmp loc_1400_3299 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_325D: ; CODE XREF: ReEnable+12Ej cmp word ptr lpSecondDev, 0 jz loc_1400_3267 jmp loc_1400_3280 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3267: ; CODE XREF: ReEnable+138j test word ptr dword_1947_A306+2, 100h jnz loc_1400_3272 jmp loc_1400_3280 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3272: ; CODE XREF: ReEnable+143j push 0 push 0 push 1 call RestoreGammaCorrectionTable jmp loc_1400_3288 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3280: ; CODE XREF: ReEnable+13Aj ; ReEnable+145j sub ax, ax mov [bp+arg_6], ax mov [bp+arg_4], ax loc_1400_3288: ; CODE XREF: ReEnable+153j push [bp+arg_6] push [bp+arg_4] push 1 push 0 push 0 call GammaRampControl loc_1400_3299: ; CODE XREF: ReEnable+130j mov ax, [bp+var_4] jmp $+3 pop si pop di lea sp, [bp+var_2] pop ds pop bp dec bp retf 8 ReEnable endp ; sp = -0Ah ; ; External Entry #4 into the Module ; Attributes (0003): Moveable Exported Shared dataseg ; ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame public Disable Disable proc far var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 var_2 = byte ptr -2 arg_0 = dword ptr 6 mov ax, ds ; DISPLAY_4 nop inc bp push bp mov bp, sp push ds mov ds, ax sub sp, 6 push di push si mov ax, seg dseg08 mov ds, ax mov [bp+var_4], 0 les bx, [bp+arg_0] mov ax, es:[bx+2Ch] mov dx, es:[bx+2Eh] mov word ptr dwDeviceHandle, ax mov word ptr dwDeviceHandle+2, dx mov ax, word ptr dwDeviceHandle mov dx, word ptr dwDeviceHandle+2 cmp word ptr dwSecondDevHandle, ax jz loc_1400_32E6 jmp loc_1400_32F5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_32E6: ; CODE XREF: Disable+37j cmp word ptr dwSecondDevHandle+2, dx jz loc_1400_32EF jmp loc_1400_32F5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_32EF: ; CODE XREF: Disable+40j mov ax, 1 jmp loc_1400_32F8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_32F5: ; CODE XREF: Disable+39j Disable+42j mov ax, 0 loc_1400_32F8: ; CODE XREF: Disable+48j cwd mov word ptr dwUnitNumber, ax mov word ptr dwUnitNumber+2, dx mov ax, word ptr dwUnitNumber+2 or ax, word ptr dwUnitNumber jz loc_1400_330C jmp loc_1400_3311 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_330C: ; CODE XREF: Disable+5Dj call SAVEDISPLAYSTATUS loc_1400_3311: ; CODE XREF: Disable+5Fj cmp word ptr dwDeviceHandle, 1 jz loc_1400_331B jmp loc_1400_333E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_331B: ; CODE XREF: Disable+6Cj cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_3325 jmp loc_1400_333E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3325: ; CODE XREF: Disable+76j push word ptr [bp+arg_0+2] push word ptr [bp+arg_0] call DISABLE1 mov [bp+var_4], ax mov bDrvDisabled, 1 mov ax, [bp+var_4] jmp loc_1400_3413 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_333E: ; CODE XREF: Disable+6Ej Disable+78j cmp word ptr dwDeviceHandle, 1 jz loc_1400_3348 jmp loc_1400_335B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3348: ; CODE XREF: Disable+99j cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_3352 jmp loc_1400_335B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3352: ; CODE XREF: Disable+A3j mov ax, 0 mov dx, 0 jmp loc_1400_337B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_335B: ; CODE XREF: Disable+9Bj Disable+A5j push 0 push 0 push 0 push 0 push 0 push 0FFh push 0 push 8Bh ; '' push word ptr dwDeviceHandle+2 push word ptr dwDeviceHandle call _VDDCall add sp, 14h loc_1400_337B: ; CODE XREF: Disable+AEj mov [bp+var_8], ax mov [bp+var_6], dx cmp ax, 0FFFFh jz loc_1400_3389 jmp loc_1400_3391 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3389: ; CODE XREF: Disable+DAj cmp dx, 0FFFFh jnz loc_1400_3391 jmp loc_1400_33A4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3391: ; CODE XREF: Disable+DCj Disable+E2j push word ptr [bp+arg_0+2] push word ptr [bp+arg_0] call DISABLE1 mov [bp+var_4], ax mov bDrvDisabled, 1 loc_1400_33A4: ; CODE XREF: Disable+E4j cmp word ptr dwDeviceHandle, 1 jz loc_1400_33AE jmp loc_1400_33BB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_33AE: ; CODE XREF: Disable+FFj cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_33B8 jmp loc_1400_33BB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_33B8: ; CODE XREF: Disable+109j jmp loc_1400_33DA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_33BB: ; CODE XREF: Disable+101j Disable+10Bj push 0 push 0 push 0 push 0 push 0 push 0 push 0 push 8Bh ; '' push word ptr dwDeviceHandle+2 push word ptr dwDeviceHandle call _VDDCall add sp, 14h loc_1400_33DA: ; CODE XREF: Disable+10Ej push 0 push 0 push 0 push 0 push 0 push 0 push 0 push 8Eh ; '' push word ptr dwDeviceHandle+2 push word ptr dwDeviceHandle call _VDDCall add sp, 14h mov ax, word ptr dwUnitNumber+2 or ax, word ptr dwUnitNumber jz loc_1400_3405 jmp loc_1400_340D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3405: ; CODE XREF: Disable+156j sub ax, ax mov word ptr dwDeviceHandle+2, ax mov word ptr dwDeviceHandle, ax loc_1400_340D: ; CODE XREF: Disable+158j mov ax, [bp+var_4] jmp $+3 loc_1400_3413: ; CODE XREF: Disable+91j pop si pop di lea sp, [bp+var_2] pop ds pop bp dec bp retf 4 Disable endp ; sp = -6 ; ; External Entry #700 into the Module ; Attributes (0001): Moveable Exported ; ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame public ValidateMode ValidateMode proc far var_14 = word ptr -14h var_12 = word ptr -12h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = word ptr -0Ch var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 var_2 = byte ptr -2 arg_0 = dword ptr 6 mov ax, ds ; DISPLAY_700 nop inc bp push bp mov bp, sp push ds mov ds, ax sub sp, 12h push di push si mov ax, seg dseg08 mov ds, ax mov [bp+var_4], 0 les bx, [bp+arg_0] mov ax, es:[bx+2] mov [bp+var_C], ax mov [bp+var_A], 0 les bx, [bp+arg_0] mov ax, es:[bx+4] cwd mov [bp+var_10], ax mov [bp+var_E], dx les bx, [bp+arg_0] mov ax, es:[bx+6] cwd mov [bp+var_14], ax mov [bp+var_12], dx mov ax, word ptr dwDeviceHandle+2 or ax, word ptr dwDeviceHandle jz loc_1400_346F jmp loc_1400_3475 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_346F: ; CODE XREF: ValidateMode+4Cj mov ax, 0 jmp loc_1400_3571 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3475: ; CODE XREF: ValidateMode+4Ej mov ax, word ptr dwUnitNumber+2 or ax, word ptr dwUnitNumber jz loc_1400_3481 jmp loc_1400_34C9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3481: ; CODE XREF: ValidateMode+5Ej cmp wChipId, 16h jnz loc_1400_348B jmp loc_1400_34C9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_348B: ; CODE XREF: ValidateMode+68j cmp wChipId, 5 jz loc_1400_3495 jmp loc_1400_349F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3495: ; CODE XREF: ValidateMode+72j cmp WCHIPREV, 25h ; '%' jb loc_1400_349F jmp loc_1400_34C9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_349F: ; CODE XREF: ValidateMode+74j ; ValidateMode+7Cj cmp [bp+var_A], 0 jbe loc_1400_34A8 jmp loc_1400_34B1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_34A8: ; CODE XREF: ValidateMode+85j cmp [bp+var_C], 8 ja loc_1400_34B1 jmp loc_1400_34C9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_34B1: ; CODE XREF: ValidateMode+87j ; ValidateMode+8Ej cmp [bp+var_E], 0 jbe loc_1400_34BA jmp loc_1400_34C4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_34BA: ; CODE XREF: ValidateMode+97j cmp [bp+var_10], 500h jnb loc_1400_34C4 jmp loc_1400_34C9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_34C4: ; CODE XREF: ValidateMode+99j ; ValidateMode+A1j mov [bp+var_4], 2 loc_1400_34C9: ; CODE XREF: ValidateMode+60j ; ValidateMode+6Aj ValidateMode+7Ej ; ValidateMode+90j ValidateMode+A3j cmp [bp+var_4], 2 jnz loc_1400_34D2 jmp loc_1400_356B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_34D2: ; CODE XREF: ValidateMode+AFj cmp word ptr dwDeviceHandle, 1 jz loc_1400_34DC jmp loc_1400_34EF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_34DC: ; CODE XREF: ValidateMode+B9j cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_34E6 jmp loc_1400_34EF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_34E6: ; CODE XREF: ValidateMode+C3j mov ax, 0 mov dx, 0 jmp loc_1400_350F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_34EF: ; CODE XREF: ValidateMode+BBj ; ValidateMode+C5j push 0 push 0 push 0 push 0 push 0 push 0FFh push 0 push 8Bh ; '' push word ptr dwDeviceHandle+2 push word ptr dwDeviceHandle call _VDDCall add sp, 14h loc_1400_350F: ; CODE XREF: ValidateMode+CEj mov [bp+var_8], ax mov [bp+var_6], dx cmp ax, 0FFFFh jz loc_1400_351D jmp loc_1400_3525 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_351D: ; CODE XREF: ValidateMode+FAj cmp dx, 0FFFFh jnz loc_1400_3525 jmp loc_1400_356B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3525: ; CODE XREF: ValidateMode+FCj ; ValidateMode+102j push word ptr [bp+arg_0+2] push word ptr [bp+arg_0] call VALIDATEMODE1 mov [bp+var_4], ax cmp word ptr dwDeviceHandle, 1 jz loc_1400_353D jmp loc_1400_354A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_353D: ; CODE XREF: ValidateMode+11Aj cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_3547 jmp loc_1400_354A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3547: ; CODE XREF: ValidateMode+124j jmp loc_1400_356B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_354A: ; CODE XREF: ValidateMode+11Cj ; ValidateMode+126j push 0 push 0 push 0 push 0 push [bp+var_6] push [bp+var_8] push 0 push 8Bh ; '' push word ptr dwDeviceHandle+2 push word ptr dwDeviceHandle call _VDDCall add sp, 14h loc_1400_356B: ; CODE XREF: ValidateMode+B1j ; ValidateMode+104j ValidateMode+129j mov ax, [bp+var_4] jmp $+3 loc_1400_3571: ; CODE XREF: ValidateMode+54j pop si pop di lea sp, [bp+var_2] pop ds pop bp dec bp retf 4 ValidateMode endp ; sp = -12h ; ; External Entry #701 into the Module ; Attributes (0003): Moveable Exported Shared dataseg ; ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame public ValidateModeEx ValidateModeEx proc far var_24 = word ptr -24h var_22 = word ptr -22h var_20 = word ptr -20h var_1E = word ptr -1Eh var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = word ptr -18h var_16 = word ptr -16h var_14 = word ptr -14h var_12 = word ptr -12h var_10 = byte ptr -10h var_E = word ptr -0Eh var_C = word ptr -0Ch var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 var_2 = byte ptr -2 arg_0 = dword ptr 6 arg_4 = dword ptr 0Ah mov ax, ds ; DISPLAY_701 nop inc bp push bp mov bp, sp push ds mov ds, ax sub sp, 22h push di push si mov ax, seg dseg08 mov ds, ax mov [bp+var_4], 0 mov ax, word ptr [bp+arg_4+2] or ax, word ptr [bp+arg_4] jnz loc_1400_35A1 jmp loc_1400_35DD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_35A1: ; CODE XREF: ValidateModeEx+20j les bx, [bp+arg_4] mov ax, es:[bx+2Ch] mov dx, es:[bx+2Eh] mov word ptr dwDeviceHandle, ax mov word ptr dwDeviceHandle+2, dx mov ax, word ptr dwDeviceHandle mov dx, word ptr dwDeviceHandle+2 cmp word ptr dwSecondDevHandle, ax jz loc_1400_35C3 jmp loc_1400_35D2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_35C3: ; CODE XREF: ValidateModeEx+42j cmp word ptr dwSecondDevHandle+2, dx jz loc_1400_35CC jmp loc_1400_35D2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_35CC: ; CODE XREF: ValidateModeEx+4Bj mov ax, 1 jmp loc_1400_35D5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_35D2: ; CODE XREF: ValidateModeEx+44j ; ValidateModeEx+4Dj mov ax, 0 loc_1400_35D5: ; CODE XREF: ValidateModeEx+53j cwd mov word ptr dwUnitNumber, ax mov word ptr dwUnitNumber+2, dx loc_1400_35DD: ; CODE XREF: ValidateModeEx+22j mov ax, word ptr dwDeviceHandle+2 or ax, word ptr dwDeviceHandle jz loc_1400_35E9 jmp loc_1400_35EF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_35E9: ; CODE XREF: ValidateModeEx+68j mov ax, 0 jmp loc_1400_3842 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_35EF: ; CODE XREF: ValidateModeEx+6Aj les bx, [bp+arg_0] mov ax, es:[bx+68h] mov dx, es:[bx+6Ah] mov [bp+var_18], ax mov [bp+var_16], dx les bx, [bp+arg_0] mov ax, es:[bx+6Ch] mov dx, es:[bx+6Eh] mov [bp+var_1C], ax mov [bp+var_1A], dx les bx, [bp+arg_0] mov ax, es:[bx+70h] mov dx, es:[bx+72h] mov [bp+var_20], ax mov [bp+var_1E], dx les bx, [bp+arg_0] mov ax, es:[bx+78h] mov dx, es:[bx+7Ah] mov [bp+var_24], ax mov [bp+var_22], dx mov ax, [bp+var_1C] mov [bp+var_C], ax mov ax, [bp+var_20] mov [bp+var_A], ax mov ax, [bp+var_18] mov [bp+var_E], ax push [bp+var_1A] push [bp+var_1C] push [bp+var_1E] push [bp+var_20] mov ax, [bp+var_18] mov dx, [bp+var_16] shr dx, 1 rcr ax, 1 shr dx, 1 rcr ax, 1 shr dx, 1 rcr ax, 1 push dx push ax call __aFlmul push dx push ax call __aFlmul mov [bp+var_14], ax mov [bp+var_12], dx cmp word ptr dwDeviceHandle, 1 jz loc_1400_3681 jmp loc_1400_368B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3681: ; CODE XREF: ValidateModeEx+100j cmp word ptr dwDeviceHandle+2, 0 jnz loc_1400_368B jmp loc_1400_3747 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_368B: ; CODE XREF: ValidateModeEx+102j ; ValidateModeEx+10Aj mov ax, word ptr dwUnitNumber+2 or ax, word ptr dwUnitNumber jnz loc_1400_3697 jmp loc_1400_3747 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3697: ; CODE XREF: ValidateModeEx+116j cmp [bp+var_16], 0 jbe loc_1400_36A0 jmp loc_1400_36BB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_36A0: ; CODE XREF: ValidateModeEx+11Fj cmp [bp+var_18], 10h jbe loc_1400_36A9 jmp loc_1400_36BB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_36A9: ; CODE XREF: ValidateModeEx+128j cmp [bp+var_16], 0 jbe loc_1400_36B2 jmp loc_1400_36C3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_36B2: ; CODE XREF: ValidateModeEx+131j cmp [bp+var_18], 8 jb loc_1400_36BB jmp loc_1400_36C3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_36BB: ; CODE XREF: ValidateModeEx+121j ; ValidateModeEx+12Aj ; ValidateModeEx+13Aj mov [bp+var_4], 2 jmp loc_1400_3747 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_36C3: ; CODE XREF: ValidateModeEx+133j ; ValidateModeEx+13Cj cmp [bp+var_22], 0 jbe loc_1400_36CC jmp loc_1400_36D5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_36CC: ; CODE XREF: ValidateModeEx+14Bj cmp [bp+var_24], 3Ch ; '<' ja loc_1400_36D5 jmp loc_1400_36F0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_36D5: ; CODE XREF: ValidateModeEx+14Dj ; ValidateModeEx+154j cmp [bp+var_1C], 400h jz loc_1400_36DF jmp loc_1400_36F0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_36DF: ; CODE XREF: ValidateModeEx+15Ej cmp [bp+var_1A], 0 jz loc_1400_36E8 jmp loc_1400_36F0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_36E8: ; CODE XREF: ValidateModeEx+167j mov [bp+var_4], 2 jmp loc_1400_3747 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_36F0: ; CODE XREF: ValidateModeEx+156j ; ValidateModeEx+160j ; ValidateModeEx+169j cmp [bp+var_1A], 0 jbe loc_1400_36F9 jmp loc_1400_3703 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_36F9: ; CODE XREF: ValidateModeEx+178j cmp [bp+var_1C], 280h jnb loc_1400_3703 jmp loc_1400_3716 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3703: ; CODE XREF: ValidateModeEx+17Aj ; ValidateModeEx+182j cmp [bp+var_1A], 0 jbe loc_1400_370C jmp loc_1400_3716 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_370C: ; CODE XREF: ValidateModeEx+18Bj cmp [bp+var_1C], 400h ja loc_1400_3716 jmp loc_1400_371E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3716: ; CODE XREF: ValidateModeEx+184j ; ValidateModeEx+18Dj ; ValidateModeEx+195j mov [bp+var_4], 2 jmp loc_1400_3747 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_371E: ; CODE XREF: ValidateModeEx+197j mov ax, word ptr dwSecSize mov dx, word ptr dwSecSize+2 add ax, word ptr CBSCRATCHMEM adc dx, word ptr CBSCRATCHMEM+2 cmp dx, [bp+var_12] jbe loc_1400_3735 jmp loc_1400_3747 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3735: ; CODE XREF: ValidateModeEx+1B4j jnb loc_1400_373A jmp loc_1400_3742 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_373A: ; CODE XREF: ValidateModeEx+1B9j cmp ax, [bp+var_14] jb loc_1400_3742 jmp loc_1400_3747 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3742: ; CODE XREF: ValidateModeEx+1BBj ; ValidateModeEx+1C1j mov [bp+var_4], 2 loc_1400_3747: ; CODE XREF: ValidateModeEx+10Cj ; ValidateModeEx+118j ; ValidateModeEx+144j ; ValidateModeEx+171j ; ValidateModeEx+19Fj ; ValidateModeEx+1B6j ; ValidateModeEx+1C3j mov ax, word ptr dwUnitNumber+2 or ax, word ptr dwUnitNumber jz loc_1400_3753 jmp loc_1400_379B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3753: ; CODE XREF: ValidateModeEx+1D2j cmp wChipId, 16h jnz loc_1400_375D jmp loc_1400_379B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_375D: ; CODE XREF: ValidateModeEx+1DCj cmp wChipId, 5 jz loc_1400_3767 jmp loc_1400_3771 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3767: ; CODE XREF: ValidateModeEx+1E6j cmp WCHIPREV, 25h ; '%' jb loc_1400_3771 jmp loc_1400_379B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3771: ; CODE XREF: ValidateModeEx+1E8j ; ValidateModeEx+1F0j cmp [bp+var_16], 0 jbe loc_1400_377A jmp loc_1400_3783 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_377A: ; CODE XREF: ValidateModeEx+1F9j cmp [bp+var_18], 8 ja loc_1400_3783 jmp loc_1400_379B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3783: ; CODE XREF: ValidateModeEx+1FBj ; ValidateModeEx+202j cmp [bp+var_1A], 0 jbe loc_1400_378C jmp loc_1400_3796 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_378C: ; CODE XREF: ValidateModeEx+20Bj cmp [bp+var_1C], 500h jnb loc_1400_3796 jmp loc_1400_379B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3796: ; CODE XREF: ValidateModeEx+20Dj ; ValidateModeEx+215j mov [bp+var_4], 2 loc_1400_379B: ; CODE XREF: ValidateModeEx+1D4j ; ValidateModeEx+1DEj ; ValidateModeEx+1F2j ; ValidateModeEx+204j ; ValidateModeEx+217j cmp [bp+var_4], 0 jz loc_1400_37A4 jmp loc_1400_383C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_37A4: ; CODE XREF: ValidateModeEx+223j cmp word ptr dwDeviceHandle, 1 jz loc_1400_37AE jmp loc_1400_37C1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_37AE: ; CODE XREF: ValidateModeEx+22Dj cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_37B8 jmp loc_1400_37C1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_37B8: ; CODE XREF: ValidateModeEx+237j mov ax, 0 mov dx, 0 jmp loc_1400_37E1 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_37C1: ; CODE XREF: ValidateModeEx+22Fj ; ValidateModeEx+239j push 0 push 0 push 0 push 0 push 0 push 0FFh push 0 push 8Bh ; '' push word ptr dwDeviceHandle+2 push word ptr dwDeviceHandle call _VDDCall add sp, 14h loc_1400_37E1: ; CODE XREF: ValidateModeEx+242j mov [bp+var_8], ax mov [bp+var_6], dx cmp ax, 0FFFFh jz loc_1400_37EF jmp loc_1400_37F7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_37EF: ; CODE XREF: ValidateModeEx+26Ej cmp dx, 0FFFFh jnz loc_1400_37F7 jmp loc_1400_383C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_37F7: ; CODE XREF: ValidateModeEx+270j ; ValidateModeEx+276j lea ax, [bp+var_10] push ss push ax call VALIDATEMODE1 mov [bp+var_4], ax cmp word ptr dwDeviceHandle, 1 jz loc_1400_380E jmp loc_1400_381B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_380E: ; CODE XREF: ValidateModeEx+28Dj cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_3818 jmp loc_1400_381B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3818: ; CODE XREF: ValidateModeEx+297j jmp loc_1400_383C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_381B: ; CODE XREF: ValidateModeEx+28Fj ; ValidateModeEx+299j push 0 push 0 push 0 push 0 push [bp+var_6] push [bp+var_8] push 0 push 8Bh ; '' push word ptr dwDeviceHandle+2 push word ptr dwDeviceHandle call _VDDCall add sp, 14h loc_1400_383C: ; CODE XREF: ValidateModeEx+225j ; ValidateModeEx+278j ; ValidateModeEx+29Cj mov ax, [bp+var_4] jmp $+3 loc_1400_3842: ; CODE XREF: ValidateModeEx+70j pop si pop di lea sp, [bp+var_2] pop ds pop bp dec bp retf 8 ValidateModeEx endp ; sp = -22h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 2 ; ; External Entry #22 into the Module ; Attributes (0003): Moveable Exported Shared dataseg ; ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame public SetPalette SetPalette proc far var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 var_2 = byte ptr -2 arg_0 = word ptr 6 arg_2 = word ptr 8 arg_4 = word ptr 0Ah arg_6 = word ptr 0Ch mov ax, ds ; DISPLAY_22 nop inc bp push bp mov bp, sp push ds mov ds, ax sub sp, 6 push di push si mov ax, seg dseg08 mov ds, ax mov [bp+var_4], 0 call _GetDevHandle mov ax, word ptr dwDeviceHandle mov dx, word ptr dwDeviceHandle+2 cmp word ptr dwSecondDevHandle, ax jz loc_1400_387D jmp loc_1400_388C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_387D: ; CODE XREF: SetPalette+2Aj cmp word ptr dwSecondDevHandle+2, dx jz loc_1400_3886 jmp loc_1400_388C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3886: ; CODE XREF: SetPalette+33j mov ax, 1 jmp loc_1400_388F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_388C: ; CODE XREF: SetPalette+2Cj ; SetPalette+35j mov ax, 0 loc_1400_388F: ; CODE XREF: SetPalette+3Bj cwd mov word ptr dwUnitNumber, ax mov word ptr dwUnitNumber+2, dx cmp word ptr dwDeviceHandle, 1 jz loc_1400_38A1 jmp loc_1400_38BF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_38A1: ; CODE XREF: SetPalette+4Ej cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_38AB jmp loc_1400_38BF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_38AB: ; CODE XREF: SetPalette+58j push [bp+arg_6] push [bp+arg_4] push [bp+arg_2] push [bp+arg_0] call SETPALETTE1 jmp loc_1400_3964 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_38BF: ; CODE XREF: SetPalette+50j ; SetPalette+5Aj cmp word ptr dwDeviceHandle, 1 jz loc_1400_38C9 jmp loc_1400_38DC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_38C9: ; CODE XREF: SetPalette+76j cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_38D3 jmp loc_1400_38DC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_38D3: ; CODE XREF: SetPalette+80j mov ax, 0 mov dx, 0 jmp loc_1400_38FC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_38DC: ; CODE XREF: SetPalette+78j ; SetPalette+82j push 0 push 0 push 0 push 0 push 0 push 0FFh push 0 push 8Bh ; '' push word ptr dwDeviceHandle+2 push word ptr dwDeviceHandle call _VDDCall add sp, 14h loc_1400_38FC: ; CODE XREF: SetPalette+8Bj mov [bp+var_8], ax mov [bp+var_6], dx cmp ax, 0FFFFh jz loc_1400_390A jmp loc_1400_3912 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_390A: ; CODE XREF: SetPalette+B7j cmp dx, 0FFFFh jnz loc_1400_3912 jmp loc_1400_395E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3912: ; CODE XREF: SetPalette+B9j ; SetPalette+BFj push [bp+arg_6] push [bp+arg_4] push [bp+arg_2] push [bp+arg_0] call SETPALETTE1 mov [bp+var_4], ax cmp word ptr dwDeviceHandle, 1 jz loc_1400_3930 jmp loc_1400_393D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3930: ; CODE XREF: SetPalette+DDj cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_393A jmp loc_1400_393D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_393A: ; CODE XREF: SetPalette+E7j jmp loc_1400_395E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_393D: ; CODE XREF: SetPalette+DFj ; SetPalette+E9j push 0 push 0 push 0 push 0 push [bp+var_6] push [bp+var_8] push 0 push 8Bh ; '' push word ptr dwDeviceHandle+2 push word ptr dwDeviceHandle call _VDDCall add sp, 14h loc_1400_395E: ; CODE XREF: SetPalette+C1j ; SetPalette+ECj mov ax, [bp+var_4] jmp $+3 loc_1400_3964: ; CODE XREF: SetPalette+6Ej pop si pop di lea sp, [bp+var_2] pop ds pop bp dec bp retf 8 SetPalette endp ; sp = -6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 2 ; ; External Entry #32 into the Module ; Attributes (0003): Moveable Exported Shared dataseg ; ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame public GammaRampControl GammaRampControl proc far ; CODE XREF: SETPALETTE1+69P ; ResetHiResMode+97P CONTROL1+1340P ; Enable+1CDP Enable+2E5P ; ReEnable+16AP var_10 = word ptr -10h var_E = word ptr -0Eh var_C = word ptr -0Ch var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 var_2 = byte ptr -2 arg_0 = dword ptr 6 arg_4 = word ptr 0Ah arg_6 = dword ptr 0Ch mov ax, ds ; DISPLAY_32 nop inc bp push bp mov bp, sp push ds mov ds, ax sub sp, 0Eh push di push si mov ax, seg dseg08 mov ds, ax mov [bp+var_4], 0 mov ax, word ptr [bp+arg_6+2] or ax, word ptr [bp+arg_6] jnz loc_1400_3995 jmp loc_1400_39A2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3995: ; CODE XREF: GammaRampControl+20j les bx, [bp+arg_6] cmp byte ptr es:[bx+9], 8 jz loc_1400_39A2 jmp loc_1400_39CD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_39A2: ; CODE XREF: GammaRampControl+22j ; GammaRampControl+2Dj test word ptr dword_1947_A306+2, 100h jz loc_1400_39AD jmp loc_1400_39BC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_39AD: ; CODE XREF: GammaRampControl+38j mov word_1947_5C90, 0 mov ax, 0 jmp loc_1400_3BDB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 0E9h ; db 11h ; db 0 ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_39BC: ; CODE XREF: GammaRampControl+3Aj mov ax, word ptr [bp+arg_6+2] or ax, word ptr [bp+arg_6] jz loc_1400_39C7 jmp loc_1400_39CD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_39C7: ; CODE XREF: GammaRampControl+52j mov ax, 1 jmp loc_1400_3BDB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_39CD: ; CODE XREF: GammaRampControl+2Fj ; GammaRampControl+54j les bx, [bp+arg_6] mov ax, es:[bx+2Ch] mov dx, es:[bx+2Eh] mov word ptr dwDeviceHandle, ax mov word ptr dwDeviceHandle+2, dx mov ax, word ptr dwDeviceHandle mov dx, word ptr dwDeviceHandle+2 cmp word ptr dwSecondDevHandle, ax jz loc_1400_39EF jmp loc_1400_39FE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_39EF: ; CODE XREF: GammaRampControl+7Aj cmp word ptr dwSecondDevHandle+2, dx jz loc_1400_39F8 jmp loc_1400_39FE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_39F8: ; CODE XREF: GammaRampControl+83j mov ax, 1 jmp loc_1400_3A01 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_39FE: ; CODE XREF: GammaRampControl+7Cj ; GammaRampControl+85j mov ax, 0 loc_1400_3A01: ; CODE XREF: GammaRampControl+8Bj cwd mov word ptr dwUnitNumber, ax mov word ptr dwUnitNumber+2, dx mov ax, word ptr [bp+arg_0+2] or ax, word ptr [bp+arg_0] jnz loc_1400_3A14 jmp loc_1400_3A8F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3A14: ; CODE XREF: GammaRampControl+9Fj cmp [bp+arg_4], 0 jnz loc_1400_3A1D jmp loc_1400_3A8C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3A1D: ; CODE XREF: GammaRampControl+A8j mov ax, word ptr [bp+arg_0] mov dx, word ptr [bp+arg_0+2] mov [bp+var_E], ax mov [bp+var_C], dx mov [bp+var_10], 0C0FFh les bx, [bp+arg_6] cmp byte ptr es:[bx+9], 10h ja loc_1400_3A3B jmp loc_1400_3A40 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3A3B: ; CODE XREF: GammaRampControl+C6j mov [bp+var_10], 0FFh loc_1400_3A40: ; CODE XREF: GammaRampControl+C8j mov [bp+var_A], 0 jmp loc_1400_3A4C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3A48: ; CODE XREF: GammaRampControl+FBj add [bp+var_A], 2 loc_1400_3A4C: ; CODE XREF: GammaRampControl+D5j cmp [bp+var_A], 600h jb loc_1400_3A56 jmp loc_1400_3A6E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3A56: ; CODE XREF: GammaRampControl+E1j les bx, [bp+arg_0] mov si, [bp+var_A] cmp byte ptr es:[bx+si], 0 jnz loc_1400_3A65 jmp loc_1400_3A6B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3A65: ; CODE XREF: GammaRampControl+F0j mov ax, 0 jmp loc_1400_3BDB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3A6B: ; CODE XREF: GammaRampControl+F2j jmp loc_1400_3A48 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3A6E: ; CODE XREF: GammaRampControl+E3j mov ax, 0C342h mov dx, word ptr [bp+arg_0] mov bx, word ptr [bp+arg_0+2] push ds mov di, ax mov si, dx push ds pop es assume es:dseg08 mov ds, bx mov cx, 300h repe movsw pop ds mov word_1947_5C90, 1 loc_1400_3A8C: ; CODE XREF: GammaRampControl+AAj jmp loc_1400_3A97 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3A8F: ; CODE XREF: GammaRampControl+A1j mov word ptr [bp+arg_0], offset LPGAMMATABLE mov word ptr [bp+arg_0+2], ds loc_1400_3A97: ; CODE XREF: GammaRampControl+11Cj les bx, [bp+arg_6] assume es:nothing cmp byte ptr es:[bx+9], 8 jz loc_1400_3AA4 jmp loc_1400_3AD3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3AA4: ; CODE XREF: GammaRampControl+12Fj push es push di push si mov cx, 100h xor ax, ax cmp [bp+arg_4], 0 jnz loc_1400_3AB5 jmp loc_1400_3AC0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3AB5: ; CODE XREF: GammaRampControl+140j les si, [bp+arg_0] call SETRAMDAC_FAR jmp loc_1400_3AC8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3AC0: ; CODE XREF: GammaRampControl+142j les di, [bp+arg_0] call GETRAMDAC_FAR loc_1400_3AC8: ; CODE XREF: GammaRampControl+14Dj pop si pop di pop es mov [bp+var_4], 1 jmp loc_1400_3BA3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3AD3: ; CODE XREF: GammaRampControl+131j cmp word ptr dwDeviceHandle, 1 jz loc_1400_3ADD jmp loc_1400_3B01 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3ADD: ; CODE XREF: GammaRampControl+168j cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_3AE7 jmp loc_1400_3B01 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3AE7: ; CODE XREF: GammaRampControl+172j push word ptr [bp+arg_6+2] push word ptr [bp+arg_6] push [bp+arg_4] push word ptr [bp+arg_0+2] push word ptr [bp+arg_0] call GAMMARAMPCONTROL1 mov [bp+var_4], ax jmp loc_1400_3BA3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3B01: ; CODE XREF: GammaRampControl+16Aj ; GammaRampControl+174j cmp word ptr dwDeviceHandle, 1 jz loc_1400_3B0B jmp loc_1400_3B1E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3B0B: ; CODE XREF: GammaRampControl+196j cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_3B15 jmp loc_1400_3B1E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3B15: ; CODE XREF: GammaRampControl+1A0j mov ax, 0 mov dx, 0 jmp loc_1400_3B3E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3B1E: ; CODE XREF: GammaRampControl+198j ; GammaRampControl+1A2j push 0 push 0 push 0 push 0 push 0 push 0FFh push 0 push 8Bh ; '' push word ptr dwDeviceHandle+2 push word ptr dwDeviceHandle call _VDDCall add sp, 14h loc_1400_3B3E: ; CODE XREF: GammaRampControl+1ABj mov [bp+var_8], ax mov [bp+var_6], dx cmp ax, 0FFFFh jz loc_1400_3B4C jmp loc_1400_3B54 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3B4C: ; CODE XREF: GammaRampControl+1D7j cmp dx, 0FFFFh jnz loc_1400_3B54 jmp loc_1400_3BA3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3B54: ; CODE XREF: GammaRampControl+1D9j ; GammaRampControl+1DFj push word ptr [bp+arg_6+2] push word ptr [bp+arg_6] push [bp+arg_4] push word ptr [bp+arg_0+2] push word ptr [bp+arg_0] call GAMMARAMPCONTROL1 mov [bp+var_4], ax cmp word ptr dwDeviceHandle, 1 jz loc_1400_3B75 jmp loc_1400_3B82 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3B75: ; CODE XREF: GammaRampControl+200j cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_3B7F jmp loc_1400_3B82 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3B7F: ; CODE XREF: GammaRampControl+20Aj jmp loc_1400_3BA3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3B82: ; CODE XREF: GammaRampControl+202j ; GammaRampControl+20Cj push 0 push 0 push 0 push 0 push [bp+var_6] push [bp+var_8] push 0 push 8Bh ; '' push word ptr dwDeviceHandle+2 push word ptr dwDeviceHandle call _VDDCall add sp, 14h loc_1400_3BA3: ; CODE XREF: GammaRampControl+160j ; GammaRampControl+18Ej ; GammaRampControl+1E1j ; GammaRampControl+20Fj cmp [bp+arg_4], 0 jz loc_1400_3BAC jmp loc_1400_3BD5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3BAC: ; CODE XREF: GammaRampControl+237j cmp word_1947_5C90, 0 jnz loc_1400_3BB6 jmp loc_1400_3BD5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3BB6: ; CODE XREF: GammaRampControl+241j mov ax, 0C342h mov cx, ds cmp word ptr [bp+arg_0], ax jz loc_1400_3BC3 jmp loc_1400_3BCB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3BC3: ; CODE XREF: GammaRampControl+24Ej cmp word ptr [bp+arg_0+2], cx jnz loc_1400_3BCB jmp loc_1400_3BD5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3BCB: ; CODE XREF: GammaRampControl+250j ; GammaRampControl+256j mov si, ax les di, [bp+arg_0] mov cx, 300h repe movsw loc_1400_3BD5: ; CODE XREF: GammaRampControl+239j ; GammaRampControl+243j ; GammaRampControl+258j mov ax, [bp+var_4] jmp $+3 loc_1400_3BDB: ; CODE XREF: GammaRampControl+46j ; GammaRampControl+5Aj ; GammaRampControl+F8j pop si pop di lea sp, [bp+var_2] pop ds pop bp dec bp retf 0Ah GammaRampControl endp ; sp = -0Eh ; ; External Entry #3 into the Module ; Attributes (0003): Moveable Exported Shared dataseg ; ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame public Control Control proc far var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 var_2 = byte ptr -2 arg_0 = word ptr 6 arg_2 = word ptr 8 arg_4 = word ptr 0Ah arg_6 = word ptr 0Ch arg_8 = word ptr 0Eh arg_A = dword ptr 10h mov ax, ds ; DISPLAY_3 nop inc bp push bp mov bp, sp push ds mov ds, ax sub sp, 8 push di push si mov ax, seg dseg08 mov ds, ax sub ax, ax mov [bp+var_4], ax mov [bp+var_6], ax les bx, [bp+arg_A] mov ax, es:[bx+2Ch] mov dx, es:[bx+2Eh] mov word ptr dwDeviceHandle, ax mov word ptr dwDeviceHandle+2, dx mov ax, word ptr dwDeviceHandle mov dx, word ptr dwDeviceHandle+2 cmp word ptr dwSecondDevHandle, ax jz loc_1400_3C25 jmp loc_1400_3C34 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3C25: ; CODE XREF: Control+3Aj cmp word ptr dwSecondDevHandle+2, dx jz loc_1400_3C2E jmp loc_1400_3C34 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3C2E: ; CODE XREF: Control+43j mov ax, 1 jmp loc_1400_3C37 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3C34: ; CODE XREF: Control+3Cj Control+45j mov ax, 0 loc_1400_3C37: ; CODE XREF: Control+4Bj cwd mov word ptr dwUnitNumber, ax mov word ptr dwUnitNumber+2, dx cmp word ptr dwDeviceHandle, 1 jz loc_1400_3C49 jmp loc_1400_3C70 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3C49: ; CODE XREF: Control+5Ej cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_3C53 jmp loc_1400_3C70 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3C53: ; CODE XREF: Control+68j push word ptr [bp+arg_A+2] push word ptr [bp+arg_A] push [bp+arg_8] push [bp+arg_6] push [bp+arg_4] push [bp+arg_2] push [bp+arg_0] call CONTROL1 jmp loc_1400_3D24 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3C70: ; CODE XREF: Control+60j Control+6Aj cmp word ptr dwDeviceHandle, 1 jz loc_1400_3C7A jmp loc_1400_3C8D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3C7A: ; CODE XREF: Control+8Fj cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_3C84 jmp loc_1400_3C8D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3C84: ; CODE XREF: Control+99j mov ax, 0 mov dx, 0 jmp loc_1400_3CAD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3C8D: ; CODE XREF: Control+91j Control+9Bj push 0 push 0 push 0 push 0 push 0 push 0FFh push 0 push 8Bh ; '' push word ptr dwDeviceHandle+2 push word ptr dwDeviceHandle call _VDDCall add sp, 14h loc_1400_3CAD: ; CODE XREF: Control+A4j mov [bp+var_A], ax mov [bp+var_8], dx cmp ax, 0FFFFh jz loc_1400_3CBB jmp loc_1400_3CC3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3CBB: ; CODE XREF: Control+D0j cmp dx, 0FFFFh jnz loc_1400_3CC3 jmp loc_1400_3D1B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3CC3: ; CODE XREF: Control+D2j Control+D8j push word ptr [bp+arg_A+2] push word ptr [bp+arg_A] push [bp+arg_8] push [bp+arg_6] push [bp+arg_4] push [bp+arg_2] push [bp+arg_0] call CONTROL1 mov [bp+var_6], ax mov [bp+var_4], dx cmp word ptr dwDeviceHandle, 1 jz loc_1400_3CED jmp loc_1400_3CFA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3CED: ; CODE XREF: Control+102j cmp word ptr dwDeviceHandle+2, 0 jz loc_1400_3CF7 jmp loc_1400_3CFA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3CF7: ; CODE XREF: Control+10Cj jmp loc_1400_3D1B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3CFA: ; CODE XREF: Control+104j Control+10Ej push 0 push 0 push 0 push 0 push [bp+var_8] push [bp+var_A] push 0 push 8Bh ; '' push word ptr dwDeviceHandle+2 push word ptr dwDeviceHandle call _VDDCall add sp, 14h loc_1400_3D1B: ; CODE XREF: Control+DAj Control+111j mov ax, [bp+var_6] mov dx, [bp+var_4] jmp $+3 loc_1400_3D24: ; CODE XREF: Control+87j pop si pop di lea sp, [bp+var_2] pop ds pop bp dec bp retf 0Eh Control endp ; sp = -8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 2 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame _VDDCall proc near ; CODE XREF: Enable+37p Enable+A0p ; Enable+219p Enable+32Dp Enable+372p ; Enable+3ABp Enable+3E7p ; ReEnable+C4p ReEnable+124p ; Disable+CBp Disable+12Ap ; Disable+149p ValidateMode+EBp ; ValidateMode+147p ; ValidateModeEx+25Fp ; ValidateModeEx+2BAp SetPalette+A8p ; SetPalette+10Ap ; GammaRampControl+1C8p ; GammaRampControl+22Dp Control+C1p ; Control+12Fp var_4 = dword ptr -4 arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h arg_10 = dword ptr 14h enter 4, 0 push di push si mov word ptr [bp+var_4], 0FFFFh mov word ptr [bp+var_4+2], 0FFFFh mov ax, word ptr dword_1947_5C92+2 or ax, word ptr dword_1947_5C92 jz loc_1400_3D4C jmp loc_1400_3D75 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3D4C: ; CODE XREF: _VDDCall+17j xor di, di mov es, di assume es:cseg01 mov ax, 1684h mov bx, 0Ah int 2Fh ; - Multiplex - MS WINDOWS - GET DEVICE API ENTRY POINT ; BX = virtual device (VxD) ID, ES:DI = 0000h:0000h ; Return: ES:DI -> VxD API entry point, or 0:0 if the VxD does not support an API mov word ptr dword_1947_5C92, di mov word ptr dword_1947_5C92+2, es mov ax, word ptr dword_1947_5C92+2 or ax, word ptr dword_1947_5C92 jz loc_1400_3D6C jmp loc_1400_3D75 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3D6C: ; CODE XREF: _VDDCall+37j mov ax, word ptr [bp+var_4] mov dx, word ptr [bp+var_4+2] jmp loc_1400_3DAB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1400_3D75: ; CODE XREF: _VDDCall+19j _VDDCall+39j push esi push edi mov eax, [bp+arg_4] mov ebx, [bp+arg_0] mov ecx, [bp+arg_10] mov edx, [bp+arg_8] xor edi, edi les di, [bp+arg_C] assume es:nothing mov si, es call dword_1947_5C92 cmp ax, word ptr [bp+arg_4] jz loc_1400_3D9E mov [bp+var_4], eax loc_1400_3D9E: ; CODE XREF: _VDDCall+68j pop edi pop esi mov ax, word ptr [bp+var_4] mov dx, word ptr [bp+var_4+2] jmp $+3 loc_1400_3DAB: ; CODE XREF: _VDDCall+42j pop si pop di leave retn _VDDCall endp cseg04 ends