_TEXT segment word public use16 'CODE' public _entry assume cs:_TEXT, ds:nothing, es:nothing org 0 org 0 VEC_INIT: ; 0000 jmp BIOS_INIT ; 0000 - e9 3c 01 -> 013f org 003h VEC_RE_INIT: ; 0003 jmp _loc_010 ; 0003 - e9 3e 01 -> 0144 org 006h BIOS_VERSION: ; 0006 db '01.00.00$' db 024h ; 000e db 024h ; 000f org 010h FAR_PROCEDURES proc near public ; 0010 nop ; 0010 - 90 nop ; 0011 - 90 nop ; 0012 - 90 retf ; 0013 - cb FAR_SET_CRIT: ; 0014 call SET_CRIT ; 0014 - e8 9b 0a -> 0ab2 retf ; 0017 - cb FAR_CLR_CRIT: ; 0018 call CLR_CRIT ; 0018 - e8 a6 0a -> 0ac1 retf ; 001b - cb FAR_DELAY: ; 001c call DELAY ; 001c - e8 b3 0a -> 0ad2 retf ; 001f - cb FAR_ISSUE_EOI: ; 0020 call ISSUE_EOI ; 0020 - e8 f9 0a -> 0b1c retf ; 0023 - cb FAR_ISSUE_EOI0: ; 0024 call ISSUE_EOI0 ; 0024 - e8 dd 0a -> 0b04 retf ; 0027 - cb FAR_ISSUE_EOI1: ; 0028 call ISSUE_EOI1 ; 0028 - e8 e0 0a -> 0b0b retf ; 002b - cb FAR_UNREFERENCED_2C: ; 002c nop ; 002c - 90 nop ; 002d - 90 nop ; 002e - 90 retf ; 002f - cb FAR_ALLOC: ; 0030 call ALLOC ; 0030 - e8 36 0a -> 0a69 retf ; 0033 - cb FAR_ALLOC_QUEUE: ; 0034 call ALLOC_QUEUE ; 0034 - e8 1f 0a -> 0a56 retf ; 0037 - cb FAR_CVT_ADR_PTR: ; 0038 call CVT_ADR_PTR ; 0038 - e8 65 0a -> 0aa0 retf ; 003b - cb FAR_CVT_PTR_ADR: ; 003c call CVT_PTR_ADR ; 003c - e8 54 0a -> 0a93 retf ; 003f - cb FAR_Q_INIT: ; 0040 call Q_INIT ; 0040 - e8 e8 0b -> 0c2b retf ; 0043 - cb FAR_Q_STORE: ; 0044 call Q_STORE ; 0044 - e8 ff 0b -> 0c46 retf ; 0047 - cb FAR_Q_FETCH: ; 0048 call Q_FETCH ; 0048 - e8 38 0c -> 0c83 retf ; 004b - cb FAR_Q_LOOK: ; 004c call Q_LOOK ; 004c - e8 6b 0c -> 0cba retf ; 004f - cb FAR_OUT_PORT: ; 0050 call OUT_PORT ; 0050 - e8 c3 0b -> 0c16 retf ; 0053 - cb FAR_OUT_VD_SPKR: ; 0054 call OUT_VD_SPKR ; 0054 - e8 b1 0b -> 0c08 retf ; 0057 - cb FAR_OUT_VD_ADDR: ; 0058 call OUT_VD_ADDR ; 0058 - e8 a5 0b -> 0c00 retf ; 005b - cb FAR_OUT_DRQ_CTL: ; 005c call OUT_DRQ_CTL ; 005c - e8 b1 0b -> 0c10 retf ; 005f - cb FAR_UNREFERENCED_60: ; 0060 nop ; 0060 - 90 nop ; 0061 - 90 nop ; 0062 - 90 retf ; 0063 - cb FAR_UNREFERENCED_64: ; 0064 nop ; 0064 - 90 nop ; 0065 - 90 nop ; 0066 - 90 retf ; 0067 - cb FAR_UNREFERENCED_68: ; 0068 nop ; 0068 - 90 nop ; 0069 - 90 nop ; 006a - 90 retf ; 006b - cb FAR_UNREFERENCED_6C: ; 006c nop ; 006c - 90 nop ; 006d - 90 nop ; 006e - 90 retf ; 006f - cb FAR_UNREFERENCED_70: ; 0070 nop ; 0070 - 90 nop ; 0071 - 90 nop ; 0072 - 90 retf ; 0073 - cb FAR_UNREFERENCED_74: ; 0074 nop ; 0074 - 90 nop ; 0075 - 90 nop ; 0076 - 90 retf ; 0077 - cb FAR_UNREFERENCED_78: ; 0078 nop ; 0078 - 90 nop ; 0079 - 90 nop ; 007a - 90 retf ; 007b - cb FAR_UNREFERENCED_7C: ; 007c nop ; 007c - 90 nop ; 007d - 90 nop ; 007e - 90 retf ; 007f - cb org 080h MSG_COPYRIGHT: ; 0080 db 'All rights reserved. Licensed to Tandy Corp.', 0 db 00dh ; 00ac db 00ah ; 00ad org 0aeh _str_1: ; 00ae db 'BIOS version 02.02.00', 0 db 00dh ; 00c3 db 00ah ; 00c4 org 0c5h _str_2: ; 00c5 db 'Copyright 1983,84,86 Tandy Corp.', 0 db 00dh ; 00e5 db 00ah ; 00e6 org 0e7h _str_3: ; 00e7 db 'All rights reserved.', 0 db 00dh ; 00fb db 00ah ; 00fc db 024h ; 00fd db 000h ; 00fe db 000h ; 00ff db 000h ; 0100 org 00101h MSG_PARITY_ERROR: ; 0101 db '*** MEMORY PARITY ERROR ***$' db 024h ; 011c db 041h ; 011d db 04dh ; 011e db 057h ; 011f org 00120h MSG_TIMEOUT_ERROR: ; 0120 db '*** MEMORY ACCESS ERROR ***$' db 024h ; 013b db 042h ; 013c db 045h ; 013d db 057h ; 013e BIOS_INIT: ; 013f jmp far ptr 005e0h, 00000h ; 013f - ea 00 00 e0 05 _loc_010: ; 0144 pusha ; 0144 - 60 push ds ; 0145 - 1e push es ; 0146 - 06 nop ; 0147 - 90 nop ; 0148 - 90 nop ; 0149 - 90 mov dx, 0080h ; 014a - ba 80 00 call DISPLAY_STRING ; 014d - e8 78 00 -> 01c8 call MEMORY_SETUP ; 0150 - e8 07 00 -> 015a nop ; 0153 - 90 nop ; 0154 - 90 nop ; 0155 - 90 pop es ; 0156 - 07 pop ds ; 0157 - 1f popa ; 0158 - 61 retf ; 0159 - cb FAR_PROCEDURES endp org 0015ah MEMORY_SETUP proc near public ; 015a nop ; 015a - 90 nop ; 015b - 90 nop ; 015c - 90 mov ax, 0 ; 015d - b8 00 00 mov ds, ax ; 0160 - 8e d8 cli ; 0162 - fa mov word ptr ds:[01c0h], 018fh ; 0163 - c7 06 c0 01 8f 01 mov word ptr ds:[01f4h], 01a2h ; 0169 - c7 06 f4 01 a2 01 mov word ptr ds:[01c4h], 01b5h ; 016f - c7 06 c4 01 b5 01 mov dx, 0062h ; 0175 - ba 62 00 in al, dx ; 0178 - ec and al, 0feh ; 0179 - 24 fe out dx, al ; 017b - ee mov dx, 0072h ; 017c - ba 72 00 in al, dx ; 017f - ec and al, 0dfh ; 0180 - 24 df out dx, al ; 0182 - ee mov dx, 0062h ; 0183 - ba 62 00 in al, dx ; 0186 - ec and al, 0fdh ; 0187 - 24 fd out dx, al ; 0189 - ee sti ; 018a - fb nop ; 018b - 90 nop ; 018c - 90 nop ; 018d - 90 ret ; 018e - c3 MEMORY_SETUP endp org 0018fh INH_RAMPTY0 proc near public ; 018f sti ; 018f - fb pusha ; 0190 - 60 push ds ; 0191 - 1e push es ; 0192 - 06 mov dx, 0101h ; 0193 - ba 01 01 call DISPLAY_STRING ; 0196 - e8 2f 00 -> 01c8 INH_RAMPTY0_HALT: ; 0199 jmp INH_RAMPTY0_HALT ; 0199 - eb fe -> 0199 INH_RAMPTY0_UNREACHABLE: ; 019b call ISSUE_EOI0 ; 019b - e8 66 09 -> 0b04 pop es ; 019e - 07 pop ds ; 019f - 1f popa ; 01a0 - 61 iret ; 01a1 - cf INH_RAMPTY0 endp org 001a2h INH_RAMPTY1 proc near public ; 01a2 sti ; 01a2 - fb pusha ; 01a3 - 60 push ds ; 01a4 - 1e push es ; 01a5 - 06 mov dx, 0101h ; 01a6 - ba 01 01 call DISPLAY_STRING ; 01a9 - e8 1c 00 -> 01c8 INH_RAMPTY1_HALT: ; 01ac jmp INH_RAMPTY1_HALT ; 01ac - eb fe -> 01ac INH_RAMPTY1_UNREACHABLE: ; 01ae call ISSUE_EOI1 ; 01ae - e8 5a 09 -> 0b0b pop es ; 01b1 - 07 pop ds ; 01b2 - 1f popa ; 01b3 - 61 iret ; 01b4 - cf INH_RAMPTY1 endp org 001b5h INH_RAMTIME proc near public ; 01b5 sti ; 01b5 - fb pusha ; 01b6 - 60 push ds ; 01b7 - 1e push es ; 01b8 - 06 mov dx, 0120h ; 01b9 - ba 20 01 call DISPLAY_STRING ; 01bc - e8 09 00 -> 01c8 INH_RAMTIME_HALT: ; 01bf jmp INH_RAMTIME_HALT ; 01bf - eb fe -> 01bf INH_RAMTIME_UNREACHABLE: ; 01c1 call ISSUE_EOI0 ; 01c1 - e8 40 09 -> 0b04 pop es ; 01c4 - 07 pop ds ; 01c5 - 1f popa ; 01c6 - 61 iret ; 01c7 - cf INH_RAMTIME endp org 001c8h DISPLAY_STRING proc near public ; 01c8 nop ; 01c8 - 90 nop ; 01c9 - 90 nop ; 01ca - 90 mov ax, cs ; 01cb - 8c c8 mov ds, ax ; 01cd - 8e d8 mov ah, 9 ; 01cf - b4 09 int 21h ; 01d1 - cd 21 nop ; 01d3 - 90 nop ; 01d4 - 90 nop ; 01d5 - 90 ret ; 01d6 - c3 DISPLAY_STRING endp nop ; 01d7 - 90 db 0eah ; 01d8 db 001h ; 01d9 db 060h ; 01da db 000h ; 01db db 003h ; 01dc db 080h ; 01dd db 06eh ; 01de db 002h ; 01df db 080h ; 01e0 db 002h ; 01e1 db 043h ; 01e2 db 04fh ; 01e3 db 04eh ; 01e4 db 020h ; 01e5 db 020h ; 01e6 db 020h ; 01e7 db 020h ; 01e8 db 020h ; 01e9 db 0fch ; 01ea db 001h ; 01eb db 060h ; 01ec db 000h ; 01ed db 000h ; 01ee db 080h ; 01ef db 06eh ; 01f0 db 002h ; 01f1 db 087h ; 01f2 db 002h ; 01f3 db 041h ; 01f4 db 055h ; 01f5 db 058h ; 01f6 db 020h ; 01f7 db 020h ; 01f8 db 020h ; 01f9 db 020h ; 01fa db 020h ; 01fb db 00eh ; 01fc db 002h ; 01fd db 060h ; 01fe db 000h ; 01ff db 000h ; 0200 db 080h ; 0201 db 06eh ; 0202 db 002h ; 0203 db 087h ; 0204 db 002h ; 0205 db 043h ; 0206 db 04fh ; 0207 db 04dh ; 0208 db 031h ; 0209 db 020h ; 020a db 020h ; 020b db 020h ; 020c db 020h ; 020d db 020h ; 020e db 002h ; 020f db 060h ; 0210 db 000h ; 0211 db 000h ; 0212 db 080h ; 0213 db 06eh ; 0214 db 002h ; 0215 db 08eh ; 0216 db 002h ; 0217 db 050h ; 0218 db 052h ; 0219 db 04eh ; 021a db 020h ; 021b db 020h ; 021c db 020h ; 021d db 020h ; 021e db 020h ; 021f db 032h ; 0220 db 002h ; 0221 db 060h ; 0222 db 000h ; 0223 db 000h ; 0224 db 080h ; 0225 db 06eh ; 0226 db 002h ; 0227 db 08eh ; 0228 db 002h ; 0229 db 04ch ; 022a db 050h ; 022b db 054h ; 022c db 031h ; 022d db 020h ; 022e db 020h ; 022f db 020h ; 0230 db 020h ; 0231 db 044h ; 0232 db 002h ; 0233 db 060h ; 0234 db 000h ; 0235 db 008h ; 0236 db 080h ; 0237 db 06eh ; 0238 db 002h ; 0239 db 095h ; 023a db 002h ; 023b db 043h ; 023c db 04ch ; 023d db 04fh ; 023e db 043h ; 023f db 04bh ; 0240 db 024h ; 0241 db 020h ; 0242 db 020h ; 0243 db 056h ; 0244 db 002h ; 0245 db 060h ; 0246 db 000h ; 0247 db 004h ; 0248 db 080h ; 0249 db 06eh ; 024a db 002h ; 024b db 09ch ; 024c db 002h ; 024d db 04eh ; 024e db 055h ; 024f db 04ch ; 0250 db 020h ; 0251 db 020h ; 0252 db 020h ; 0253 db 020h ; 0254 db 020h ; 0255 db 062h ; 0256 db 002h ; 0257 db 060h ; 0258 db 000h ; 0259 db 000h ; 025a db 020h ; 025b db 06eh ; 025c db 002h ; 025d db 0a3h ; 025e db 002h ; 025f db 002h ; 0260 db 000h ; 0261 db 0ffh ; 0262 db 0ffh ; 0263 db 0ffh ; 0264 db 0ffh ; 0265 db 000h ; 0266 db 000h ; 0267 db 06eh ; 0268 db 002h ; 0269 db 0aah ; 026a db 002h ; 026b db 001h ; 026c db 000h ; 026d org 0026eh STRATEGY proc near public ; 026e push ds ; 026e - 1e push ax ; 026f - 50 mov ax, 0 ; 0270 - b8 00 00 mov ds, ax ; 0273 - 8e d8 mov word ptr ds:[044ch], bx ; 0275 - 89 1e 4c 04 mov word ptr ds:[044eh], es ; 0279 - 8c 06 4e 04 pop ax ; 027d - 58 pop ds ; 027e - 1f retf ; 027f - cb STRATEGY endp CON_ENTRY: ; 0280 push di ; 0280 - 57 mov di, 0430h ; 0281 - bf 30 04 nop ; 0284 - 90 jmp ENTRY_FAR ; 0285 - eb 28 -> 02af AUX_ENTRY: ; 0287 push di ; 0287 - 57 mov di, 04d6h ; 0288 - bf d6 04 nop ; 028b - 90 jmp ENTRY_FAR ; 028c - eb 21 -> 02af PRN_ENTRY: ; 028e push di ; 028e - 57 mov di, 0580h ; 028f - bf 80 05 nop ; 0292 - 90 jmp ENTRY_FAR ; 0293 - eb 1a -> 02af CLOCK_ENTRY: ; 0295 push di ; 0295 - 57 mov di, 05e2h ; 0296 - bf e2 05 nop ; 0299 - 90 jmp ENTRY_FAR ; 029a - eb 13 -> 02af NUL_ENTRY: ; 029c push di ; 029c - 57 mov di, 062ah ; 029d - bf 2a 06 nop ; 02a0 - 90 jmp ENTRY_FAR ; 02a1 - eb 0c -> 02af FDISK_ENTRY: ; 02a3 push di ; 02a3 - 57 mov di, 0644h ; 02a4 - bf 44 06 nop ; 02a7 - 90 jmp ENTRY_FAR ; 02a8 - eb 05 -> 02af HDISK_ENTRY: ; 02aa push di ; 02aa - 57 mov di, 08bah ; 02ab - bf ba 08 nop ; 02ae - 90 ENTRY_FAR proc near public ; 02af push ds ; 02af - 1e push es ; 02b0 - 06 pusha ; 02b1 - 60 mov ax, 0 ; 02b2 - b8 00 00 mov ds, ax ; 02b5 - 8e d8 push ds ; 02b7 - 1e les bx, ds:[044ch] ; 02b8 - c4 1e 4c 04 mov al, byte ptr es:[bx + 2] ; 02bc - 26 8a 47 02 cmp al, 0ch ; 02c0 - 3c 0c jbe ENTRY_EXEC ; 02c2 - 76 05 -> 02c9 call ERROR_COMMAND ; 02c4 - e8 12 01 -> 03d9 jmp ENTRY_EXIT ; 02c7 - eb 2a -> 02f3 ENTRY_EXEC: ; 02c9 cld ; 02c9 - fc mov ah, 0 ; 02ca - b4 00 add ax, ax ; 02cc - 03 c0 add di, ax ; 02ce - 03 f8 cli ; 02d0 - fa mov word ptr cs:_data_1, sp ; 02d1 - 2e 89 26 01 03 mov word ptr cs:_data_2, ss ; 02d6 - 2e 8c 16 03 03 mov ax, cs ; 02db - 8c c8 mov ss, ax ; 02dd - 8e d0 mov sp, 03cch ; 02df - bc cc 03 nop ; 02e2 - 90 sti ; 02e3 - fb call cs:[di] ; 02e4 - 2e ff 15 cli ; 02e7 - fa mov ss, word ptr cs:_data_2 ; 02e8 - 2e 8e 16 03 03 mov sp, word ptr cs:_data_1 ; 02ed - 2e 8b 26 01 03 sti ; 02f2 - fb ENTRY_EXIT: ; 02f3 pop ds ; 02f3 - 1f les bx, ds:[044ch] ; 02f4 - c4 1e 4c 04 mov word ptr es:[bx + 3], ax ; 02f8 - 26 89 47 03 popa ; 02fc - 61 pop es ; 02fd - 07 pop ds ; 02fe - 1f pop di ; 02ff - 5f retf ; 0300 - cb org 00301h _data_1 dw 00000h ; 0301 org 00303h _data_2 dw 00000h ; 0303 db 055h ; 0305 db 055h ; 0306 db 055h ; 0307 db 055h ; 0308 db 055h ; 0309 db 055h ; 030a db 055h ; 030b db 055h ; 030c db 055h ; 030d db 055h ; 030e db 055h ; 030f db 055h ; 0310 db 055h ; 0311 db 055h ; 0312 db 055h ; 0313 db 055h ; 0314 db 055h ; 0315 db 055h ; 0316 db 055h ; 0317 db 055h ; 0318 db 055h ; 0319 db 055h ; 031a db 055h ; 031b db 055h ; 031c db 055h ; 031d db 055h ; 031e db 055h ; 031f db 055h ; 0320 db 055h ; 0321 db 055h ; 0322 db 055h ; 0323 db 055h ; 0324 db 055h ; 0325 db 055h ; 0326 db 055h ; 0327 db 055h ; 0328 db 055h ; 0329 db 055h ; 032a db 055h ; 032b db 055h ; 032c db 055h ; 032d db 055h ; 032e db 055h ; 032f db 055h ; 0330 db 055h ; 0331 db 055h ; 0332 db 055h ; 0333 db 055h ; 0334 db 055h ; 0335 db 055h ; 0336 db 055h ; 0337 db 055h ; 0338 db 055h ; 0339 db 055h ; 033a db 055h ; 033b db 055h ; 033c db 055h ; 033d db 055h ; 033e db 055h ; 033f db 055h ; 0340 db 055h ; 0341 db 055h ; 0342 db 055h ; 0343 db 055h ; 0344 db 055h ; 0345 db 055h ; 0346 db 055h ; 0347 db 055h ; 0348 db 055h ; 0349 db 055h ; 034a db 055h ; 034b db 055h ; 034c db 055h ; 034d db 055h ; 034e db 055h ; 034f db 055h ; 0350 db 055h ; 0351 db 055h ; 0352 db 055h ; 0353 db 055h ; 0354 db 055h ; 0355 db 055h ; 0356 db 055h ; 0357 db 055h ; 0358 db 055h ; 0359 db 055h ; 035a db 055h ; 035b db 055h ; 035c db 055h ; 035d db 055h ; 035e db 055h ; 035f db 055h ; 0360 db 055h ; 0361 db 055h ; 0362 db 055h ; 0363 db 055h ; 0364 db 055h ; 0365 db 055h ; 0366 db 055h ; 0367 db 055h ; 0368 db 055h ; 0369 db 055h ; 036a db 055h ; 036b db 055h ; 036c db 055h ; 036d db 055h ; 036e db 055h ; 036f db 055h ; 0370 db 055h ; 0371 db 055h ; 0372 db 055h ; 0373 db 055h ; 0374 db 055h ; 0375 db 055h ; 0376 db 055h ; 0377 db 055h ; 0378 db 055h ; 0379 db 055h ; 037a db 055h ; 037b db 055h ; 037c db 055h ; 037d db 055h ; 037e db 055h ; 037f db 055h ; 0380 db 055h ; 0381 db 055h ; 0382 db 055h ; 0383 db 055h ; 0384 db 055h ; 0385 db 055h ; 0386 db 055h ; 0387 db 055h ; 0388 db 055h ; 0389 db 055h ; 038a db 055h ; 038b db 055h ; 038c db 055h ; 038d db 055h ; 038e db 055h ; 038f db 055h ; 0390 db 055h ; 0391 db 055h ; 0392 db 055h ; 0393 db 055h ; 0394 db 055h ; 0395 db 055h ; 0396 db 055h ; 0397 db 055h ; 0398 db 055h ; 0399 db 055h ; 039a db 055h ; 039b db 055h ; 039c db 055h ; 039d db 055h ; 039e db 055h ; 039f db 055h ; 03a0 db 055h ; 03a1 db 055h ; 03a2 db 055h ; 03a3 db 055h ; 03a4 db 055h ; 03a5 db 055h ; 03a6 db 055h ; 03a7 db 055h ; 03a8 db 055h ; 03a9 db 055h ; 03aa db 055h ; 03ab db 055h ; 03ac db 055h ; 03ad db 055h ; 03ae db 055h ; 03af db 055h ; 03b0 db 055h ; 03b1 db 055h ; 03b2 db 055h ; 03b3 db 055h ; 03b4 db 055h ; 03b5 db 055h ; 03b6 db 055h ; 03b7 db 055h ; 03b8 db 055h ; 03b9 db 055h ; 03ba db 055h ; 03bb db 055h ; 03bc db 055h ; 03bd db 055h ; 03be db 055h ; 03bf db 055h ; 03c0 db 055h ; 03c1 db 055h ; 03c2 db 055h ; 03c3 db 055h ; 03c4 db 055h ; 03c5 db 055h ; 03c6 db 055h ; 03c7 db 055h ; 03c8 db 055h ; 03c9 db 055h ; 03ca db 055h ; 03cb db 055h ; 03cc ERROR_WRITE_PROTECT: ; 03cd mov al, 0 ; 03cd - b0 00 jmp ERROR ; 03cf - eb 2e -> 03ff ERROR_UNKNOWN_UNIT: ; 03d1 mov al, 1 ; 03d1 - b0 01 jmp ERROR ; 03d3 - eb 2a -> 03ff ERROR_DRIVE_NOT_READY: ; 03d5 mov al, 2 ; 03d5 - b0 02 jmp ERROR ; 03d7 - eb 26 -> 03ff ERROR_COMMAND: ; 03d9 mov al, 3 ; 03d9 - b0 03 jmp ERROR ; 03db - eb 22 -> 03ff ERROR_CRC: ; 03dd mov al, 4 ; 03dd - b0 04 jmp ERROR ; 03df - eb 1e -> 03ff ERROR_DRIVE_REQUEST: ; 03e1 mov al, 5 ; 03e1 - b0 05 jmp ERROR ; 03e3 - eb 1a -> 03ff ERROR_SEEK: ; 03e5 mov al, 6 ; 03e5 - b0 06 jmp ERROR ; 03e7 - eb 16 -> 03ff ERROR_UNKNOWN_MEDIA: ; 03e9 mov al, 7 ; 03e9 - b0 07 jmp ERROR ; 03eb - eb 12 -> 03ff ERROR_SECTOR_NOT_FOUND: ; 03ed mov al, 8 ; 03ed - b0 08 jmp ERROR ; 03ef - eb 0e -> 03ff ERROR_OUT_OF_PAPER: ; 03f1 mov al, 9 ; 03f1 - b0 09 jmp ERROR ; 03f3 - eb 0a -> 03ff ERROR_WRITE_FAULT: ; 03f5 mov al, 0ah ; 03f5 - b0 0a jmp ERROR ; 03f7 - eb 06 -> 03ff ERROR_READ_FAULT: ; 03f9 mov al, 0bh ; 03f9 - b0 0b jmp ERROR ; 03fb - eb 02 -> 03ff ERROR_MISC: ; 03fd mov al, 0ch ; 03fd - b0 0c ERROR: ; 03ff mov ah, 081h ; 03ff - b4 81 jmp EXIT ; 0401 - eb 06 -> 0409 EXIT_BUSY: ; 0403 mov ah, 3 ; 0403 - b4 03 jmp EXIT ; 0405 - eb 02 -> 0409 EXIT_DONE: ; 0407 mov ah, 1 ; 0407 - b4 01 EXIT: ; 0409 ret ; 0409 - c3 ENTRY_FAR endp org 0040ah CHAR_DVC_INIT proc near public ; 040a mov byte ptr es:[bx + 00dh], 1 ; 040a - 26 c6 47 0d 01 lds si, ds:[042eh] ; 040f - c5 36 2e 04 mov word ptr es:[bx + 00eh], si ; 0413 - 26 89 77 0e mov word ptr es:[bx + 010h], ds ; 0417 - 26 8c 5f 10 jmp EXIT_DONE ; 041b - eb ea -> 0407 CHAR_DVC_INIT endp org 0041dh BLOCK_DVC_INIT proc near public ; 041d mov byte ptr es:[bx + 00dh], 2 ; 041d - 26 c6 47 0d 02 lds si, ds:[042eh] ; 0422 - c5 36 2e 04 mov word ptr es:[bx + 00eh], si ; 0426 - 26 89 77 0e mov word ptr es:[bx + 010h], ds ; 042a - 26 8c 5f 10 jmp EXIT_DONE ; 042e - eb d7 -> 0407 BLOCK_DVC_INIT endp org 00430h CON_TBL: ; 0430 dw CHAR_DVC_INIT ; 0430 -> 040a dw EXIT_DONE ; 0432 -> 0407 dw EXIT_DONE ; 0434 -> 0407 dw ERROR_COMMAND ; 0436 -> 03d9 dw KBD_READ ; 0438 -> 044a dw KB_SCAN ; 043a -> 0485 dw KB_STATUS ; 043c -> 04a1 dw KB_FLUSH ; 043e -> 04aa dw VD_WRITE ; 0440 -> 04b1 dw VD_WRITE ; 0442 -> 04b1 dw VD_STATUS ; 0444 -> 04cf dw VD_FLUSH ; 0446 -> 04d2 dw ERROR_COMMAND ; 0448 -> 03d9 org 0044ah KBD_READ proc near public ; 044a mov cx, word ptr es:[bx + 012h] ; 044a - 26 8b 4f 12 jcxz KB_READ_X ; 044e - e3 33 -> 0483 mov si, word ptr es:[bx + 00eh] ; 0450 - 26 8b 77 0e mov ds, word ptr es:[bx + 010h] ; 0454 - 26 8e 5f 10 push es ; 0458 - 06 mov ax, 0 ; 0459 - b8 00 00 mov es, ax ; 045c - 8e c0 KB_READ_1: ; 045e mov ah, 0 ; 045e - b4 00 lock xchg ax, es:[0468h] ; 0461 - 26 87 06 68 04 or ah, ah ; 0466 - 0a e4 jnz KB_READ_2 ; 0468 - 75 13 -> 047d mov ah, 0 ; 046a - b4 00 int 51h ; 046c - cd 51 cmp al, 0 ; 046e - 3c 00 jnz KB_READ_2 ; 0470 - 75 0b -> 047d mov byte ptr es:[0468h], ah ; 0472 - 26 88 26 68 04 mov byte ptr es:[0469h], 0ffh ; 0477 - 26 c6 06 69 04 ff KB_READ_2: ; 047d mov byte ptr ds:[si], al ; 047d - 88 04 inc si ; 047f - 46 loop KB_READ_1 ; 0480 - e2 dc -> 045e pop es ; 0482 - 07 KB_READ_X: ; 0483 jmp EXIT_DONE ; 0483 - eb 82 -> 0407 KBD_READ endp org 00485h KB_SCAN proc near public ; 0485 push es ; 0485 - 06 mov ax, 0 ; 0486 - b8 00 00 mov es, ax ; 0489 - 8e c0 mov ax, es:[0468h] ; 048b - 26 a1 68 04 pop es ; 048f - 07 or ah, ah ; 0490 - 0a e4 jnz KB_SCAN_1 ; 0492 - 75 06 -> 049a mov ah, 1 ; 0494 - b4 01 int 51h ; 0496 - cd 51 jz KB_BUSY ; 0498 - 74 0d -> 04a7 KB_SCAN_1: ; 049a mov byte ptr es:[bx + 00dh], al ; 049a - 26 88 47 0d KB_AVAIL: ; 049e jmp EXIT_DONE ; 049e - e9 66 ff -> 0407 KB_SCAN endp org 004a1h KB_STATUS proc near public ; 04a1 mov ah, 1 ; 04a1 - b4 01 int 51h ; 04a3 - cd 51 jnz KB_AVAIL ; 04a5 - 75 f7 -> 049e KB_BUSY: ; 04a7 jmp EXIT_BUSY ; 04a7 - e9 59 ff -> 0403 KB_STATUS endp org 004aah KB_FLUSH proc near public ; 04aa mov ah, 3 ; 04aa - b4 03 int 51h ; 04ac - cd 51 jmp EXIT_DONE ; 04ae - e9 56 ff -> 0407 KB_FLUSH endp org 004b1h VD_WRITE proc near public ; 04b1 mov cx, word ptr es:[bx + 012h] ; 04b1 - 26 8b 4f 12 jcxz VD_WRITE_X ; 04b5 - e3 15 -> 04cc mov si, word ptr es:[bx + 00eh] ; 04b7 - 26 8b 77 0e mov ds, word ptr es:[bx + 010h] ; 04bb - 26 8e 5f 10 push bx ; 04bf - 53 mov bl, 3 ; 04c0 - b3 03 mov bh, 0ffh ; 04c2 - b7 ff VD_WRITE_1: ; 04c4 lodsb ; 04c4 - ac mov ah, 0eh ; 04c5 - b4 0e int 52h ; 04c7 - cd 52 loop VD_WRITE_1 ; 04c9 - e2 f9 -> 04c4 pop bx ; 04cb - 5b VD_WRITE_X: ; 04cc jmp EXIT_DONE ; 04cc - e9 38 ff -> 0407 VD_WRITE endp org 004cfh VD_STATUS proc near public ; 04cf jmp EXIT_DONE ; 04cf - e9 35 ff -> 0407 VD_STATUS endp org 004d2h VD_FLUSH proc near public ; 04d2 jmp EXIT_DONE ; 04d2 - e9 32 ff -> 0407 nop ; 04d5 - 90 VD_FLUSH endp org 004d6h AUX_TBL: ; 04d6 dw CHAR_DVC_INIT ; 04d6 -> 040a dw EXIT_DONE ; 04d8 -> 0407 dw EXIT_DONE ; 04da -> 0407 dw ERROR_COMMAND ; 04dc -> 03d9 dw AUX_READ ; 04de -> 04f0 dw AUX_SCAN ; 04e0 -> 051a dw AUX_STATUS ; 04e2 -> 0536 dw AUX_FLUSH ; 04e4 -> 0549 dw AUX_WRITE ; 04e6 -> 0558 dw AUX_WRITE ; 04e8 -> 0558 dw EXIT_DONE ; 04ea -> 0407 dw EXIT_DONE ; 04ec -> 0407 dw ERROR_COMMAND ; 04ee -> 03d9 org 004f0h AUX_READ proc near public ; 04f0 mov cx, word ptr es:[bx + 012h] ; 04f0 - 26 8b 4f 12 jcxz AUX_READ_X ; 04f4 - e3 19 -> 050f mov dl, byte ptr ds:[046eh] ; 04f6 - 8a 16 6e 04 mov si, word ptr es:[bx + 00eh] ; 04fa - 26 8b 77 0e mov ds, word ptr es:[bx + 010h] ; 04fe - 26 8e 5f 10 AUX_READ_1: ; 0502 mov ah, 2 ; 0502 - b4 02 int 53h ; 0504 - cd 53 mov byte ptr ds:[si], al ; 0506 - 88 04 inc si ; 0508 - 46 or ah, ah ; 0509 - 0a e4 jnz AUX_READ_E ; 050b - 75 05 -> 0512 loop AUX_READ_1 ; 050d - e2 f3 -> 0502 AUX_READ_X: ; 050f jmp EXIT_DONE ; 050f - e9 f5 fe -> 0407 AUX_READ_E: ; 0512 dec cx ; 0512 - 49 sub word ptr es:[bx + 012h], cx ; 0513 - 26 29 4f 12 jmp ERROR_READ_FAULT ; 0517 - e9 df fe -> 03f9 AUX_READ endp org 0051ah AUX_SCAN proc near public ; 051a mov dl, byte ptr ds:[046eh] ; 051a - 8a 16 6e 04 mov ah, 3 ; 051e - b4 03 int 53h ; 0520 - cd 53 test ah, 1 ; 0522 - f6 c4 01 jz AUX_BUSY ; 0525 - 74 1c -> 0543 mov al, ds:[046fh] ; 0527 - a0 6f 04 mov byte ptr es:[bx + 00dh], al ; 052a - 26 88 47 0d test ah, 09eh ; 052e - f6 c4 9e jz AUX_DONE ; 0531 - 74 13 -> 0546 jmp ERROR_READ_FAULT ; 0533 - e9 c3 fe -> 03f9 AUX_SCAN endp org 00536h AUX_STATUS proc near public ; 0536 mov dl, byte ptr ds:[046eh] ; 0536 - 8a 16 6e 04 mov ah, 3 ; 053a - b4 03 int 53h ; 053c - cd 53 test ah, 1 ; 053e - f6 c4 01 jnz AUX_DONE ; 0541 - 75 03 -> 0546 AUX_BUSY: ; 0543 jmp EXIT_BUSY ; 0543 - e9 bd fe -> 0403 AUX_DONE: ; 0546 jmp EXIT_DONE ; 0546 - e9 be fe -> 0407 AUX_STATUS endp org 00549h AUX_FLUSH proc near public ; 0549 mov dh, byte ptr ds:[04d9h] ; 0549 - 8a 36 d9 04 mov dl, byte ptr ds:[046eh] ; 054d - 8a 16 6e 04 mov ah, 4 ; 0551 - b4 04 int 53h ; 0553 - cd 53 jmp EXIT_DONE ; 0555 - e9 af fe -> 0407 AUX_FLUSH endp org 00558h AUX_WRITE proc near public ; 0558 mov cx, word ptr es:[bx + 012h] ; 0558 - 26 8b 4f 12 jcxz AUX_WRITE_X ; 055c - e3 18 -> 0576 mov dl, byte ptr ds:[046eh] ; 055e - 8a 16 6e 04 mov si, word ptr es:[bx + 00eh] ; 0562 - 26 8b 77 0e mov ds, word ptr es:[bx + 010h] ; 0566 - 26 8e 5f 10 AUX_WRITE_1: ; 056a lodsb ; 056a - ac mov ah, 1 ; 056b - b4 01 int 53h ; 056d - cd 53 test ah, 080h ; 056f - f6 c4 80 jnz AUX_WRITE_E ; 0572 - 75 05 -> 0579 loop AUX_WRITE_1 ; 0574 - e2 f4 -> 056a AUX_WRITE_X: ; 0576 jmp EXIT_DONE ; 0576 - e9 8e fe -> 0407 AUX_WRITE_E: ; 0579 sub word ptr es:[bx + 012h], cx ; 0579 - 26 29 4f 12 jmp ERROR_WRITE_FAULT ; 057d - e9 75 fe -> 03f5 AUX_WRITE endp org 00580h PRN_TBL: ; 0580 dw CHAR_DVC_INIT ; 0580 -> 040a dw EXIT_DONE ; 0582 -> 0407 dw EXIT_DONE ; 0584 -> 0407 dw ERROR_COMMAND ; 0586 -> 03d9 dw EXIT_BUSY ; 0588 -> 0403 dw EXIT_BUSY ; 058a -> 0403 dw EXIT_DONE ; 058c -> 0407 dw EXIT_DONE ; 058e -> 0407 dw PRN_WRITE ; 0590 -> 059a dw PRN_WRITE ; 0592 -> 059a dw PRN_STAT ; 0594 -> 05c9 dw PRN_FLUSH ; 0596 -> 05db dw ERROR_COMMAND ; 0598 -> 03d9 org 0059ah PRN_WRITE proc near public ; 059a mov cx, word ptr es:[bx + 012h] ; 059a - 26 8b 4f 12 jcxz PRN_WRITE_X ; 059e - e3 17 -> 05b7 mov si, word ptr es:[bx + 00eh] ; 05a0 - 26 8b 77 0e mov ds, word ptr es:[bx + 010h] ; 05a4 - 26 8e 5f 10 PRN_WRITE_1: ; 05a8 lodsb ; 05a8 - ac mov ah, 0 ; 05a9 - b4 00 int 54h ; 05ab - cd 54 xor ah, 10h ; 05ad - 80 f4 10 test ah, 0b9h ; 05b0 - f6 c4 b9 jnz PRN_WRITE_E ; 05b3 - 75 05 -> 05ba loop PRN_WRITE_1 ; 05b5 - e2 f1 -> 05a8 PRN_WRITE_X: ; 05b7 jmp EXIT_DONE ; 05b7 - e9 4d fe -> 0407 PRN_WRITE_E: ; 05ba sub word ptr es:[bx + 012h], cx ; 05ba - 26 29 4f 12 test ah, 20h ; 05be - f6 c4 20 jnz PRN_WRITE_P ; 05c1 - 75 03 -> 05c6 jmp ERROR_WRITE_FAULT ; 05c3 - e9 2f fe -> 03f5 PRN_WRITE_P: ; 05c6 jmp ERROR_OUT_OF_PAPER ; 05c6 - e9 28 fe -> 03f1 PRN_WRITE endp org 005c9h PRN_STAT proc near public ; 05c9 mov ah, 2 ; 05c9 - b4 02 int 54h ; 05cb - cd 54 xor ah, 10h ; 05cd - 80 f4 10 test ah, 0b9h ; 05d0 - f6 c4 b9 jnz PRN_BUSY ; 05d3 - 75 03 -> 05d8 jmp EXIT_DONE ; 05d5 - e9 2f fe -> 0407 PRN_BUSY: ; 05d8 jmp EXIT_BUSY ; 05d8 - e9 28 fe -> 0403 PRN_STAT endp org 005dbh PRN_FLUSH proc near public ; 05db mov ah, 1 ; 05db - b4 01 int 54h ; 05dd - cd 54 jmp EXIT_DONE ; 05df - e9 25 fe -> 0407 PRN_FLUSH endp org 005e2h CLOCK_TBL: ; 05e2 dw CHAR_DVC_INIT ; 05e2 -> 040a dw EXIT_DONE ; 05e4 -> 0407 dw EXIT_DONE ; 05e6 -> 0407 dw ERROR_COMMAND ; 05e8 -> 03d9 dw CLOCK_READ ; 05ea -> 05fc dw EXIT_BUSY ; 05ec -> 0403 dw EXIT_DONE ; 05ee -> 0407 dw EXIT_DONE ; 05f0 -> 0407 dw CLOCK_WRITE ; 05f2 -> 0613 dw CLOCK_WRITE ; 05f4 -> 0613 dw EXIT_DONE ; 05f6 -> 0407 dw EXIT_DONE ; 05f8 -> 0407 dw ERROR_COMMAND ; 05fa -> 03d9 org 005fch CLOCK_READ proc near public ; 05fc mov si, word ptr es:[bx + 00eh] ; 05fc - 26 8b 77 0e mov ds, word ptr es:[bx + 010h] ; 0600 - 26 8e 5f 10 mov ah, 2 ; 0604 - b4 02 int 55h ; 0606 - cd 55 mov word ptr ds:[si], bx ; 0608 - 89 1c mov word ptr ds:[si + 2], cx ; 060a - 89 4c 02 mov word ptr ds:[si + 4], dx ; 060d - 89 54 04 jmp EXIT_DONE ; 0610 - e9 f4 fd -> 0407 CLOCK_READ endp org 00613h CLOCK_WRITE proc near public ; 0613 mov si, word ptr es:[bx + 00eh] ; 0613 - 26 8b 77 0e mov ds, word ptr es:[bx + 010h] ; 0617 - 26 8e 5f 10 mov bx, word ptr ds:[si] ; 061b - 8b 1c mov cx, word ptr ds:[si + 2] ; 061d - 8b 4c 02 mov dx, word ptr ds:[si + 4] ; 0620 - 8b 54 04 mov ah, 3 ; 0623 - b4 03 int 55h ; 0625 - cd 55 jmp EXIT_DONE ; 0627 - e9 dd fd -> 0407 CLOCK_WRITE endp org 0062ah NUL_TBL: ; 062a dw CHAR_DVC_INIT ; 062a -> 040a dw EXIT_DONE ; 062c -> 0407 dw EXIT_DONE ; 062e -> 0407 dw ERROR_COMMAND ; 0630 -> 03d9 dw EXIT_BUSY ; 0632 -> 0403 dw EXIT_BUSY ; 0634 -> 0403 dw EXIT_DONE ; 0636 -> 0407 dw EXIT_DONE ; 0638 -> 0407 dw EXIT_DONE ; 063a -> 0407 dw EXIT_DONE ; 063c -> 0407 dw EXIT_DONE ; 063e -> 0407 dw EXIT_DONE ; 0640 -> 0407 dw ERROR_COMMAND ; 0642 -> 03d9 org 00644h FDISK_tBL: ; 0644 dw FD_INIT ; 0644 -> 065e dw FD_MEDIAC ; 0646 -> 0685 dw GET_FD_BPB ; 0648 -> 069e dw ERROR_COMMAND ; 064a -> 03d9 dw FD_READS ; 064c -> 07a9 dw EXIT_BUSY ; 064e -> 0403 dw EXIT_DONE ; 0650 -> 0407 dw EXIT_DONE ; 0652 -> 0407 dw FD_WRITES ; 0654 -> 07ad dw FD_WRITES ; 0656 -> 07ad dw EXIT_DONE ; 0658 -> 0407 dw EXIT_DONE ; 065a -> 0407 dw ERROR_COMMAND ; 065c -> 03d9 org 0065eh FD_INIT proc near public ; 065e mov byte ptr es:[bx + 00dh], 2 ; 065e - 26 c6 47 0d 02 mov ax, ds:[040ch] ; 0663 - a1 0c 04 mov word ptr es:[bx + 014h], ax ; 0666 - 26 89 47 14 mov word ptr es:[bx + 012h], 0043h ; 066a - 26 c7 47 12 43 00 mov ah, 0 ; 0670 - b4 00 int 40h ; 0672 - cd 40 mov ax, ds:[042eh] ; 0674 - a1 2e 04 mov word ptr es:[bx + 00eh], ax ; 0677 - 26 89 47 0e mov ax, ds:[0430h] ; 067b - a1 30 04 mov word ptr es:[bx + 010h], ax ; 067e - 26 89 47 10 jmp EXIT_DONE ; 0682 - e9 82 fd -> 0407 FD_INIT endp org 00685h FD_MEDIAC proc near public ; 0685 mov dl, byte ptr es:[bx + 1] ; 0685 - 26 8a 57 01 mov ah, 6 ; 0689 - b4 06 int 40h ; 068b - cd 40 jb fd_m1 ; 068d - 72 07 -> 0696 mov byte ptr es:[bx + 00eh], al ; 068f - 26 88 47 0e jmp EXIT_DONE ; 0693 - e9 71 fd -> 0407 fd_m1: ; 0696 mov byte ptr es:[bx + 00eh], 0 ; 0696 - 26 c6 47 0e 00 jmp ERROR_UNKNOWN_UNIT ; 069b - e9 33 fd -> 03d1 FD_MEDIAC endp org 0069eh GET_FD_BPB proc near public ; 069e mov si, 3 ; 069e - be 03 00 get_1: ; 06a1 mov dl, byte ptr es:[bx + 1] ; 06a1 - 26 8a 57 01 mov dh, 0 ; 06a5 - b6 00 mov cx, word ptr es:[bx + 00eh] ; 06a7 - 26 8b 4f 0e push bx ; 06ab - 53 push es ; 06ac - 06 mov es, word ptr es:[bx + 010h] ; 06ad - 26 8e 47 10 mov bx, cx ; 06b1 - 8b d9 mov ch, 0 ; 06b3 - b5 00 mov cl, 1 ; 06b5 - b1 01 mov al, 1 ; 06b7 - b0 01 mov ah, 2 ; 06b9 - b4 02 int 40h ; 06bb - cd 40 jnb get_2 ; 06bd - 73 0c -> 06cb pop es ; 06bf - 07 pop bx ; 06c0 - 5b mov ah, 0 ; 06c1 - b4 00 int 40h ; 06c3 - cd 40 dec si ; 06c5 - 4e jnz get_1 ; 06c6 - 75 d9 -> 06a1 get_err: ; 06c8 jmp ERROR_READ_FAULT ; 06c8 - e9 2e fd -> 03f9 get_2: ; 06cb cmp word ptr es:[bx + 00bh], 0200h ; 06cb - 26 81 7f 0b 00 02 jz get_3 ; 06d1 - 74 57 -> 072a pop es ; 06d3 - 07 pop bx ; 06d4 - 5b mov si, 3 ; 06d5 - be 03 00 get_1x: ; 06d8 mov dl, byte ptr es:[bx + 1] ; 06d8 - 26 8a 57 01 mov dh, 0 ; 06dc - b6 00 mov cx, word ptr es:[bx + 00eh] ; 06de - 26 8b 4f 0e push bx ; 06e2 - 53 push es ; 06e3 - 06 mov es, word ptr es:[bx + 010h] ; 06e4 - 26 8e 47 10 mov bx, cx ; 06e8 - 8b d9 mov ch, 0 ; 06ea - b5 00 mov cl, 2 ; 06ec - b1 02 mov al, 1 ; 06ee - b0 01 mov ah, 2 ; 06f0 - b4 02 int 40h ; 06f2 - cd 40 jnb get_2x ; 06f4 - 73 0b -> 0701 pop es ; 06f6 - 07 pop bx ; 06f7 - 5b mov ah, 0 ; 06f8 - b4 00 int 40h ; 06fa - cd 40 dec si ; 06fc - 4e jnz get_1x ; 06fd - 75 d9 -> 06d8 jmp get_err ; 06ff - eb c7 -> 06c8 get_2x: ; 0701 cmp byte ptr es:[bx], 0fch ; 0701 - 26 80 3f fc jnb get_2a ; 0705 - 73 03 -> 070a jmp ERROR_UNKNOWN_MEDIA ; 0707 - e9 df fc -> 03e9 get_2a: ; 070a push ds ; 070a - 1e push cs ; 070b - 0e pop ds ; 070c - 1f mov al, byte ptr es:[bx] ; 070d - 26 8a 07 mov si, 075ch ; 0710 - be 5c 07 nop ; 0713 - 90 what_media: ; 0714 cmp al, byte ptr ds:[si + 00ah] ; 0714 - 3a 44 0a jz good_ole_blue ; 0717 - 74 0c -> 0725 add si, 13h ; 0719 - 83 c6 13 cmp byte ptr ds:[si], 0ffh ; 071c - 80 3c ff jnz what_media ; 071f - 75 f3 -> 0714 pop ds ; 0721 - 1f jmp ERROR_UNKNOWN_MEDIA ; 0722 - e9 c4 fc -> 03e9 good_ole_blue: ; 0725 mov cx, ds ; 0725 - 8c d9 pop ds ; 0727 - 1f jmp get_3a ; 0728 - eb 07 -> 0731 get_3: ; 072a mov cx, es ; 072a - 8c c1 add bx, 0bh ; 072c - 83 c3 0b mov si, bx ; 072f - 8b f3 get_3a: ; 0731 mov es, word ptr ds:[040ch] ; 0731 - 8e 06 0c 04 mov di, 0047h ; 0735 - bf 47 00 cmp dl, 0 ; 0738 - 80 fa 00 jz right ; 073b - 74 03 -> 0740 mov di, 0069h ; 073d - bf 69 00 right: ; 0740 push di ; 0740 - 57 mov ds, cx ; 0741 - 8e d9 mov cx, 0013h ; 0743 - b9 13 00 get_loop: ; 0746 mov al, byte ptr ds:[si] ; 0746 - 8a 04 mov byte ptr es:[di], al ; 0748 - 26 88 05 inc si ; 074b - 46 inc di ; 074c - 47 loop get_loop ; 074d - e2 f7 -> 0746 pop ax ; 074f - 58 pop ds ; 0750 - 1f pop bx ; 0751 - 5b mov word ptr ds:[bx + 012h], ax ; 0752 - 89 47 12 mov word ptr ds:[bx + 014h], es ; 0755 - 8c 47 14 jmp EXIT_DONE ; 0758 - e9 ac fc -> 0407 GET_FD_BPB endp org 0075bh read_trk_0 proc near public ; 075b ret ; 075b - c3 read_trk_0 endp db 000h ; 075c db 002h ; 075d db 002h ; 075e db 001h ; 075f db 000h ; 0760 db 002h ; 0761 db 070h ; 0762 db 000h ; 0763 db 080h ; 0764 db 002h ; 0765 db 0ffh ; 0766 db 001h ; 0767 db 000h ; 0768 db 008h ; 0769 db 000h ; 076a db 002h ; 076b db 000h ; 076c db 000h ; 076d db 000h ; 076e db 000h ; 076f db 002h ; 0770 db 001h ; 0771 db 001h ; 0772 db 000h ; 0773 db 002h ; 0774 db 040h ; 0775 db 000h ; 0776 db 040h ; 0777 db 001h ; 0778 db 0feh ; 0779 db 001h ; 077a db 000h ; 077b db 008h ; 077c db 000h ; 077d db 001h ; 077e db 000h ; 077f db 000h ; 0780 db 000h ; 0781 db 000h ; 0782 db 002h ; 0783 db 002h ; 0784 db 001h ; 0785 db 000h ; 0786 db 002h ; 0787 db 070h ; 0788 db 000h ; 0789 db 0d0h ; 078a db 002h ; 078b db 0fdh ; 078c db 002h ; 078d db 000h ; 078e db 009h ; 078f db 000h ; 0790 db 002h ; 0791 db 000h ; 0792 db 000h ; 0793 db 000h ; 0794 db 000h ; 0795 db 002h ; 0796 db 001h ; 0797 db 001h ; 0798 db 000h ; 0799 db 002h ; 079a db 040h ; 079b db 000h ; 079c db 068h ; 079d db 001h ; 079e db 0fch ; 079f db 002h ; 07a0 db 000h ; 07a1 db 009h ; 07a2 db 000h ; 07a3 db 001h ; 07a4 db 000h ; 07a5 db 000h ; 07a6 db 000h ; 07a7 db 0ffh ; 07a8 org 007a9h FD_READS proc near public ; 07a9 mov ah, 2 ; 07a9 - b4 02 jmp FD_COM ; 07ab - eb 02 -> 07af FD_READS endp org 007adh FD_WRITES proc near public ; 07ad mov ah, 3 ; 07ad - b4 03 FD_COM: ; 07af mov al, byte ptr es:[bx + 1] ; 07af - 26 8a 47 01 cmp al, 0 ; 07b3 - 3c 00 jz com_bpb_0 ; 07b5 - 74 05 -> 07bc mov si, 0069h ; 07b7 - be 69 00 jmp set_ds ; 07ba - eb 03 -> 07bf com_bpb_0: ; 07bc mov si, 0047h ; 07bc - be 47 00 set_ds: ; 07bf mov cx, 0 ; 07bf - b9 00 00 mov ds, cx ; 07c2 - 8e d9 mov ds, word ptr ds:[040ch] ; 07c4 - 8e 1e 0c 04 push es ; 07c8 - 06 push bx ; 07c9 - 53 push 0000h ; 07ca - 6a 00 pusha ; 07cc - 60 mov bp, sp ; 07cd - 8b ec mov word ptr [bp + 2], si ; 07cf - 89 76 02 mov byte ptr [bp + 00fh], ah ; 07d2 - 88 66 0f mov ax, word ptr es:[bx + 00eh] ; 07d5 - 26 8b 47 0e mov word ptr [bp + 8], ax ; 07d9 - 89 46 08 mov ah, byte ptr es:[bx + 1] ; 07dc - 26 8a 67 01 mov byte ptr [bp + 00ah], ah ; 07e0 - 88 66 0a mov dx, word ptr es:[bx + 014h] ; 07e3 - 26 8b 57 14 add dx, word ptr ds:[si + 011h] ; 07e7 - 03 54 11 mov cx, word ptr es:[bx + 012h] ; 07ea - 26 8b 4f 12 mov word ptr [bp + 010h], cx ; 07ee - 89 4e 10 mov es, word ptr es:[bx + 010h] ; 07f1 - 26 8e 47 10 FD_IO1: ; 07f5 push dx ; 07f5 - 52 mov ax, dx ; 07f6 - 8b c2 mov dx, 0 ; 07f8 - ba 00 00 mov cx, word ptr ds:[si + 00dh] ; 07fb - 8b 4c 0d div cx ; 07fe - f7 f1 inc dl ; 0800 - fe c2 mov bl, dl ; 0802 - 8a da mov byte ptr [bp + 00ch], dl ; 0804 - 88 56 0c mov dx, 0 ; 0807 - ba 00 00 mov cx, word ptr ds:[si + 00fh] ; 080a - 8b 4c 0f div cx ; 080d - f7 f1 mov byte ptr [bp + 00bh], dl ; 080f - 88 56 0b mov byte ptr [bp + 00dh], al ; 0812 - 88 46 0d mov ax, word ptr ds:[si + 00dh] ; 0815 - 8b 44 0d inc al ; 0818 - fe c0 sub al, bl ; 081a - 2a c3 mov ah, 0 ; 081c - b4 00 pop dx ; 081e - 5a cmp ax, word ptr [bp + 010h] ; 081f - 3b 46 10 jnbe FD_IO2 ; 0822 - 77 07 -> 082b sub word ptr [bp + 010h], ax ; 0824 - 29 46 10 add dx, ax ; 0827 - 03 d0 jmp FD_IO3 ; 0829 - eb 08 -> 0833 FD_IO2: ; 082b mov ax, word ptr [bp + 010h] ; 082b - 8b 46 10 mov word ptr [bp + 010h], 0 ; 082e - c7 46 10 00 00 FD_IO3: ; 0833 mov byte ptr [bp + 00eh], al ; 0833 - 88 46 0e mov word ptr [bp + 0], dx ; 0836 - 89 56 00 popa ; 0839 - 61 mov bp, ax ; 083a - 8b e8 int 40h ; 083c - cd 40 jb FDQ_ERROR ; 083e - 72 3e -> 087e pusha ; 0840 - 60 mov dx, bp ; 0841 - 8b d5 mov bp, sp ; 0843 - 8b ec mov byte ptr [bp + 00fh], dh ; 0845 - 88 76 0f mov cx, 0 ; 0848 - b9 00 00 mov ds, cx ; 084b - 8e d9 mov ds, word ptr ds:[040ch] ; 084d - 8e 1e 0c 04 mov cx, word ptr ds:[si] ; 0851 - 8b 0c mov dx, 0 ; 0853 - ba 00 00 mul cx ; 0856 - f7 e1 mov dx, di ; 0858 - 8b d7 test al, 0fh ; 085a - a8 0f jz ADD_PTR ; 085c - 74 05 -> 0863 popa ; 085e - 61 mov ah, 9 ; 085f - b4 09 jmp FDQ_ERROR ; 0861 - eb 1b -> 087e ADD_PTR: ; 0863 shr ax, 04h ; 0863 - c1 e8 04 mov cx, es ; 0866 - 8c c1 add ax, cx ; 0868 - 03 c1 mov es, ax ; 086a - 8e c0 mov ax, word ptr [bp + 010h] ; 086c - 8b 46 10 or ax, ax ; 086f - 0b c0 jz fexit ; 0871 - 74 02 -> 0875 jmp FD_IO1 ; 0873 - eb 80 -> 07f5 fexit: ; 0875 popa ; 0875 - 61 pop bx ; 0876 - 5b pop bx ; 0877 - 5b pop es ; 0878 - 07 mov al, 0 ; 0879 - b0 00 jmp EXIT_DONE ; 087b - e9 89 fb -> 0407 FDQ_ERROR: ; 087e pop bx ; 087e - 5b pop bx ; 087f - 5b pop es ; 0880 - 07 mov word ptr es:[bx + 012h], 0 ; 0881 - 26 c7 47 12 00 00 push cs ; 0887 - 0e pop ds ; 0888 - 1f mov bl, 0ffh ; 0889 - b3 ff mov bh, 0dh ; 088b - b7 0d mov si, 08adh ; 088d - be ad 08 nop ; 0890 - 90 FD_ERROR2: ; 0891 inc bl ; 0891 - fe c3 lodsb ; 0893 - ac and al, ah ; 0894 - 22 c4 jz FD_ERRV ; 0896 - 74 04 -> 089c cmp ah, al ; 0898 - 3a e0 jz FD_ERROR3 ; 089a - 74 06 -> 08a2 FD_ERRV: ; 089c dec bh ; 089c - fe cf jnz FD_ERROR2 ; 089e - 75 f1 -> 0891 mov bl, 0ch ; 08a0 - b3 0c FD_ERROR3: ; 08a2 mov al, bl ; 08a2 - 8a c3 push ax ; 08a4 - 50 mov ah, 0 ; 08a5 - b4 00 int 40h ; 08a7 - cd 40 pop ax ; 08a9 - 58 jmp ERROR ; 08aa - e9 52 fb -> 03ff FD_WRITES endp org 008adh DERRTAB: ­ db 003h ; 008ad db 000h ; 008ae db 080h ; 008af db 001h ; 008b0 db 010h ; 008b1 db 000h ; 008b2 db 040h ; 008b3 db 000h ; 008b4 db 006h ; 008b5 db 000h ; 008b6 db 000h ; 008b7 db 000h ; 008b8 db 089h ; 008b9 org 008bah HDISK_TBL: ; 08ba dw HDISK_INIT ; 08ba -> 08d4 dw HDISK_MEDIA ; 08bc -> 08f9 dw HDISK_BUILD ; 08be -> 0920 dw HDISK_ERR0 ; 08c0 -> 0a3c dw HDISK_READ ; 08c2 -> 092f dw HDISK_ERR0 ; 08c4 -> 0a3c dw HDISK_ERR0 ; 08c6 -> 0a3c dw HDISK_ERR0 ; 08c8 -> 0a3c dw HDISK_WRITE ; 08ca -> 0933 dw HDISK_WRITE ; 08cc -> 0933 dw HDISK_ERR0 ; 08ce -> 0a3c dw HDISK_ERR0 ; 08d0 -> 0a3c dw HDISK_ERR0 ; 08d2 -> 0a3c org 008d4h HDISK_INIT proc near public ; 08d4 mov byte ptr es:[bx + 00dh], 2 ; 08d4 - 26 c6 47 0d 02 mov ax, ds:[040eh] ; 08d9 - a1 0e 04 mov word ptr es:[bx + 014h], ax ; 08dc - 26 89 47 14 mov ax, 0064h ; 08e0 - b8 64 00 mov word ptr es:[bx + 012h], ax ; 08e3 - 26 89 47 12 mov ax, ds:[042eh] ; 08e7 - a1 2e 04 mov word ptr es:[bx + 00eh], ax ; 08ea - 26 89 47 0e mov ax, ds:[0430h] ; 08ee - a1 30 04 mov word ptr es:[bx + 010h], ax ; 08f1 - 26 89 47 10 mov ax, 0100h ; 08f5 - b8 00 01 ret ; 08f8 - c3 HDISK_INIT endp org 008f9h HDISK_MEDIA proc near public ; 08f9 mov dl, byte ptr es:[bx + 1] ; 08f9 - 26 8a 57 01 cmp dl, 1 ; 08fd - 80 fa 01 jbe HDISK_MED1 ; 0900 - 76 03 -> 0905 jmp HDISK_ERR0 ; 0902 - e9 37 01 -> 0a3c HDISK_MED1: ; 0905 push ds ; 0905 - 1e push si ; 0906 - 56 mov ax, ds:[040eh] ; 0907 - a1 0e 04 mov ds, ax ; 090a - 8e d8 mov si, 007bh ; 090c - be 7b 00 add si, 13h ; 090f - 83 c6 13 mov al, byte ptr ds:[si] ; 0912 - 8a 04 mov byte ptr ds:[si], 1 ; 0914 - c6 04 01 mov byte ptr es:[bx + 00eh], al ; 0917 - 26 88 47 0e pop si ; 091b - 5e pop ds ; 091c - 1f jmp EXIT_DONE ; 091d - e9 e7 fa -> 0407 HDISK_MEDIA endp org 00920h HDISK_BUILD proc near public ; 0920 call HDISK_PNT_BPB ; 0920 - e8 1d 01 -> 0a40 mov word ptr es:[bx + 012h], si ; 0923 - 26 89 77 12 mov word ptr es:[bx + 014h], ds ; 0927 - 26 8c 5f 14 mov ax, 0100h ; 092b - b8 00 01 ret ; 092e - c3 HDISK_BUILD endp org 0092fh HDISK_READ proc near public ; 092f mov ah, 2 ; 092f - b4 02 jmp HD_COM ; 0931 - eb 02 -> 0935 HDISK_READ endp org 00933h HDISK_WRITE proc near public ; 0933 mov ah, 3 ; 0933 - b4 03 HD_COM: ; 0935 call HDISK_PNT_BPB ; 0935 - e8 08 01 -> 0a40 mov cx, word ptr ds:[si + 00fh] ; 0938 - 8b 4c 0f cmp cx, 0 ; 093b - 83 f9 00 jnz HD_COM_0 ; 093e - 75 05 -> 0945 mov al, 1 ; 0940 - b0 01 jmp _loc_009 ; 0942 - e9 f4 00 -> 0a39 HD_COM_0: ; 0945 push es ; 0945 - 06 push bx ; 0946 - 53 mov cx, 0 ; 0947 - b9 00 00 push cx ; 094a - 51 pusha ; 094b - 60 mov bp, sp ; 094c - 8b ec mov word ptr [bp + 2], si ; 094e - 89 76 02 mov byte ptr [bp + 00fh], ah ; 0951 - 88 66 0f mov ax, word ptr es:[bx + 00eh] ; 0954 - 26 8b 47 0e mov word ptr [bp + 8], ax ; 0958 - 89 46 08 mov ah, byte ptr es:[bx + 1] ; 095b - 26 8a 67 01 or ah, 080h ; 095f - 80 cc 80 mov byte ptr [bp + 00ah], ah ; 0962 - 88 66 0a mov dx, word ptr es:[bx + 014h] ; 0965 - 26 8b 57 14 add dx, word ptr ds:[si + 011h] ; 0969 - 03 54 11 mov cx, word ptr es:[bx + 012h] ; 096c - 26 8b 4f 12 mov word ptr [bp + 010h], cx ; 0970 - 89 4e 10 mov ax, word ptr es:[bx + 010h] ; 0973 - 26 8b 47 10 mov es, ax ; 0977 - 8e c0 HD_IO1: ; 0979 push dx ; 0979 - 52 mov ax, dx ; 097a - 8b c2 mov dx, 0 ; 097c - ba 00 00 mov cx, word ptr ds:[si + 00dh] ; 097f - 8b 4c 0d div cx ; 0982 - f7 f1 inc dl ; 0984 - fe c2 mov bl, dl ; 0986 - 8a da mov byte ptr [bp + 00ch], dl ; 0988 - 88 56 0c mov dx, 0 ; 098b - ba 00 00 mov cx, word ptr ds:[si + 00fh] ; 098e - 8b 4c 0f div cx ; 0991 - f7 f1 mov byte ptr [bp + 00bh], dl ; 0993 - 88 56 0b mov byte ptr [bp + 00dh], al ; 0996 - 88 46 0d and ah, 3 ; 0999 - 80 e4 03 shl ah, 06h ; 099c - c0 e4 06 or byte ptr [bp + 00ch], ah ; 099f - 08 66 0c mov ax, word ptr ds:[si + 00dh] ; 09a2 - 8b 44 0d inc al ; 09a5 - fe c0 sub al, bl ; 09a7 - 2a c3 mov ah, 0 ; 09a9 - b4 00 pop dx ; 09ab - 5a cmp ax, word ptr [bp + 010h] ; 09ac - 3b 46 10 jnbe HD_IO2 ; 09af - 77 07 -> 09b8 sub word ptr [bp + 010h], ax ; 09b1 - 29 46 10 add dx, ax ; 09b4 - 03 d0 jmp HD_IO3 ; 09b6 - eb 08 -> 09c0 HD_IO2: ; 09b8 mov ax, word ptr [bp + 010h] ; 09b8 - 8b 46 10 mov word ptr [bp + 010h], 0 ; 09bb - c7 46 10 00 00 HD_IO3: ; 09c0 mov byte ptr [bp + 00eh], al ; 09c0 - 88 46 0e mov word ptr [bp + 0], dx ; 09c3 - 89 56 00 popa ; 09c6 - 61 mov bp, ax ; 09c7 - 8b e8 int 56h ; 09c9 - cd 56 jb HDQ_ERROR ; 09cb - 72 36 -> 0a03 pusha ; 09cd - 60 mov dx, bp ; 09ce - 8b d5 mov bp, sp ; 09d0 - 8b ec mov byte ptr [bp + 00fh], dh ; 09d2 - 88 76 0f mov cx, word ptr ds:[si] ; 09d5 - 8b 0c mov dx, 0 ; 09d7 - ba 00 00 mul cx ; 09da - f7 e1 mov dx, di ; 09dc - 8b d7 test al, 0fh ; 09de - a8 0f jz HD_ADD_PTR ; 09e0 - 74 05 -> 09e7 popa ; 09e2 - 61 mov ah, 9 ; 09e3 - b4 09 jmp HDQ_ERROR ; 09e5 - eb 1c -> 0a03 HD_ADD_PTR: ; 09e7 mov cl, 4 ; 09e7 - b1 04 shr ax, cl ; 09e9 - d3 e8 mov cx, es ; 09eb - 8c c1 add ax, cx ; 09ed - 03 c1 mov es, ax ; 09ef - 8e c0 mov ax, word ptr [bp + 010h] ; 09f1 - 8b 46 10 or ax, ax ; 09f4 - 0b c0 jz HD_FEXIT ; 09f6 - 74 03 -> 09fb jmp HD_IO1 ; 09f8 - e9 7e ff -> 0979 HD_FEXIT: ; 09fb popa ; 09fb - 61 pop bx ; 09fc - 5b pop bx ; 09fd - 5b pop es ; 09fe - 07 mov ax, 0100h ; 09ff - b8 00 01 ret ; 0a02 - c3 HDQ_ERROR: ; 0a03 pop bx ; 0a03 - 5b pop bx ; 0a04 - 5b pop es ; 0a05 - 07 HD_ERROR: ; 0a06 mov word ptr es:[bx + 012h], 0 ; 0a06 - 26 c7 47 12 00 00 push cs ; 0a0c - 0e pop ds ; 0a0d - 1f mov bl, 0ffh ; 0a0e - b3 ff mov bh, 0dh ; 0a10 - b7 0d mov si, 0a2ch ; 0a12 - be 2c 0a nop ; 0a15 - 90 HD_ERROR2: ; 0a16 inc bl ; 0a16 - fe c3 lodsb ; 0a18 - ac cmp al, 0 ; 0a19 - 3c 00 jz HD_ERRv ; 0a1b - 74 04 -> 0a21 cmp ah, al ; 0a1d - 3a e0 jz HD_ERROR3 ; 0a1f - 74 06 -> 0a27 HD_ERRv: ; 0a21 dec bh ; 0a21 - fe cf jnz HD_ERROR2 ; 0a23 - 75 f1 -> 0a16 mov bl, 0ch ; 0a25 - b3 0c HD_ERROR3: ; 0a27 mov al, bl ; 0a27 - 8a c3 jmp _loc_009 ; 0a29 - eb 0e -> 0a39 nop ; 0a2b - 90 org 00a2ch HD_ETAB: , db 003h ; 00a2c db 000h ; 00a2d db 080h ; 00a2e db 001h ; 00a2f db 010h ; 00a30 db 000h ; 00a31 db 040h ; 00a32 db 000h ; 00a33 db 004h ; 00a34 db 000h ; 00a35 db 000h ; 00a36 db 000h ; 00a37 db 089h ; 00a38 _loc_009: ; 0a39 mov ah, 081h ; 0a39 - b4 81 ret ; 0a3b - c3 HDISK_WRITE endp HDISK_ERR0 proc near public ; 0a3c mov ax, 08103h ; 0a3c - b8 03 81 ret ; 0a3f - c3 HDISK_ERR0 endp org 00a40h HDISK_PNT_BPB proc near public ; 0a40 mov cx, word ptr ds:[040eh] ; 0a40 - 8b 0e 0e 04 mov ds, cx ; 0a44 - 8e d9 mov si, 0068h ; 0a46 - be 68 00 mov al, byte ptr es:[bx + 1] ; 0a49 - 26 8a 47 01 cmp al, 0 ; 0a4d - 3c 00 jz HDISK_PNT_RET ; 0a4f - 74 03 -> 0a54 mov si, 007bh ; 0a51 - be 7b 00 HDISK_PNT_RET: ; 0a54 ret ; 0a54 - c3 HDISK_PNT_BPB endp db 000h ; 0a55 org 00a56h ALLOC_QUEUE proc near public ; 0a56 mov byte ptr ds:[si], bl ; 0a56 - 88 1c mov bh, 0 ; 0a58 - b7 00 call ALLOC ; 0a5a - e8 0c 00 -> 0a69 add cx, bx ; 0a5d - 03 cb mov word ptr ds:[si + 2], es ; 0a5f - 8c 44 02 mov word ptr ds:[si + 4], bx ; 0a62 - 89 5c 04 mov word ptr ds:[si + 6], cx ; 0a65 - 89 4c 06 ret ; 0a68 - c3 ALLOC_QUEUE endp org 00a69h ALLOC proc near public ; 0a69 push ds ; 0a69 - 1e push ax ; 0a6a - 50 push dx ; 0a6b - 52 mov ax, 0 ; 0a6c - b8 00 00 mov ds, ax ; 0a6f - 8e d8 push bx ; 0a71 - 53 les bx, ds:[042ah] ; 0a72 - c4 1e 2a 04 call CVT_PTR_ADR ; 0a76 - e8 1a 00 -> 0a93 sub ax, cx ; 0a79 - 2b c1 sbb dx, 0 ; 0a7b - 83 da 00 pop bx ; 0a7e - 5b dec bx ; 0a7f - 4b not bx ; 0a80 - f7 d3 and ax, bx ; 0a82 - 23 c3 call CVT_ADR_PTR ; 0a84 - e8 19 00 -> 0aa0 mov word ptr ds:[042ah], bx ; 0a87 - 89 1e 2a 04 mov word ptr ds:[042ch], es ; 0a8b - 8c 06 2c 04 pop dx ; 0a8f - 5a pop ax ; 0a90 - 58 pop ds ; 0a91 - 1f ret ; 0a92 - c3 ALLOC endp org 00a93h CVT_PTR_ADR proc near public ; 0a93 mov ax, es ; 0a93 - 8c c0 mov dx, 0010h ; 0a95 - ba 10 00 mul dx ; 0a98 - f7 e2 add ax, bx ; 0a9a - 03 c3 adc dx, 0 ; 0a9c - 83 d2 00 ret ; 0a9f - c3 CVT_PTR_ADR endp org 00aa0h CVT_ADR_PTR proc near public ; 0aa0 test dx, 0fff0h ; 0aa0 - f7 c2 f0 ff jnz CVT_ADR_PTR_X ; 0aa4 - 75 0b -> 0ab1 mov bx, 0010h ; 0aa6 - bb 10 00 div bx ; 0aa9 - f7 f3 mov es, ax ; 0aab - 8e c0 mov bx, dx ; 0aad - 8b da xor dx, dx ; 0aaf - 33 d2 CVT_ADR_PTR_X: ; 0ab1 ret ; 0ab1 - c3 CVT_ADR_PTR endp org 00ab2h SET_CRIT proc near public ; 0ab2 push ds ; 0ab2 - 1e push ax ; 0ab3 - 50 mov ax, 0 ; 0ab4 - b8 00 00 mov ds, ax ; 0ab7 - 8e d8 cli ; 0ab9 - fa inc byte ptr ds:[0440h] ; 0aba - fe 06 40 04 pop ax ; 0abe - 58 pop ds ; 0abf - 1f ret ; 0ac0 - c3 SET_CRIT endp org 00ac1h CLR_CRIT proc near public ; 0ac1 push ds ; 0ac1 - 1e push ax ; 0ac2 - 50 mov ax, 0 ; 0ac3 - b8 00 00 mov ds, ax ; 0ac6 - 8e d8 dec byte ptr ds:[0440h] ; 0ac8 - fe 0e 40 04 jnz CLR_CRIT_X ; 0acc - 75 01 -> 0acf sti ; 0ace - fb CLR_CRIT_X: ; 0acf pop ax ; 0acf - 58 pop ds ; 0ad0 - 1f ret ; 0ad1 - c3 CLR_CRIT endp org 00ad2h DELAY proc near public ; 0ad2 sti ; 0ad2 - fb push ax ; 0ad3 - 50 push bx ; 0ad4 - 53 push cx ; 0ad5 - 51 push ds ; 0ad6 - 1e mov ax, 0 ; 0ad7 - b8 00 00 mov ds, ax ; 0ada - 8e d8 mov bx, 04c0h ; 0adc - bb c0 04 DELAY_0: ; 0adf mov al, byte ptr ds:[bx + 6] ; 0adf - 8a 47 06 DELAY_1: ; 0ae2 cmp al, byte ptr ds:[bx + 6] ; 0ae2 - 3a 47 06 jz DELAY_1 ; 0ae5 - 74 fb -> 0ae2 loop DELAY_0 ; 0ae7 - e2 f6 -> 0adf pop ds ; 0ae9 - 1f pop cx ; 0aea - 59 pop bx ; 0aeb - 5b pop ax ; 0aec - 58 ret ; 0aed - c3 DELAY endp org 00aeeh DUMMY_NEAR proc near public ; 0aee ret ; 0aee - c3 DUMMY_NEAR endp org 00aefh DUMMY_FAR proc near public ; 0aef retf ; 0aef - cb DUMMY_FAR endp org 00af0h DUMMY_INT proc near public ; 0af0 iret ; 0af0 - cf DUMMY_INT endp org 00af1h DUMMY_NMI proc near public ; 0af1 iret ; 0af1 - cf DUMMY_NMI endp org 00af2h DUMMY_EOI proc near public ; 0af2 pusha ; 0af2 - 60 call ISSUE_EOI ; 0af3 - e8 26 00 -> 0b1c popa ; 0af6 - 61 iret ; 0af7 - cf DUMMY_EOI endp org 00af8h DUMMY_EOI0 proc near public ; 0af8 pusha ; 0af8 - 60 call ISSUE_EOI0 ; 0af9 - e8 08 00 -> 0b04 popa ; 0afc - 61 iret ; 0afd - cf DUMMY_EOI0 endp org 00afeh DUMMY_EOI1 proc near public ; 0afe pusha ; 0afe - 60 call ISSUE_EOI1 ; 0aff - e8 09 00 -> 0b0b popa ; 0b02 - 61 iret ; 0b03 - cf DUMMY_EOI1 endp org 00b04h ISSUE_EOI0 proc near public ; 0b04 mov dx, 0060h ; 0b04 - ba 60 00 mov al, 20h ; 0b07 - b0 20 jmp ISSUE_EOI_S ; 0b09 - eb 05 -> 0b10 ISSUE_EOI0 endp org 00b0bh ISSUE_EOI1 proc near public ; 0b0b mov dx, 0070h ; 0b0b - ba 70 00 mov al, 20h ; 0b0e - b0 20 ISSUE_EOI_S: ; 0b10 cli ; 0b10 - fa out dx, al ; 0b11 - ee mov al, 0bh ; 0b12 - b0 0b out dx, al ; 0b14 - ee nop ; 0b15 - 90 nop ; 0b16 - 90 in al, dx ; 0b17 - ec or al, al ; 0b18 - 0a c0 jnz ISSUE_EOI_X ; 0b1a - 75 08 -> 0b24 ISSUE_EOI1 endp org 00b1ch ISSUE_EOI proc near public ; 0b1c cli ; 0b1c - fa mov dx, 0ff22h ; 0b1d - ba 22 ff mov ax, 08000h ; 0b20 - b8 00 80 out dx, ax ; 0b23 - ef ISSUE_EOI_X: ; 0b24 sti ; 0b24 - fb ret ; 0b25 - c3 ISSUE_EOI endp org 00b26h BOOT_SVC proc near public ; 0b26 cli ; 0b26 - fa nop ; 0b27 - 90 nop ; 0b28 - 90 nop ; 0b29 - 90 mov al, 0 ; 0b2a - b0 00 out 00h, al ; 0b2c - e6 00 nop ; 0b2e - 90 nop ; 0b2f - 90 nop ; 0b30 - 90 jmp far ptr 0ffffh, 00000h ; 0b31 - ea 00 00 ff ff BOOT_SVC endp org 00b36h EQUIP_SVC proc near public ; 0b36 sti ; 0b36 - fb push ds ; 0b37 - 1e nop ; 0b38 - 90 nop ; 0b39 - 90 nop ; 0b3a - 90 mov ax, 0 ; 0b3b - b8 00 00 mov ds, ax ; 0b3e - 8e d8 mov ax, ds:[0422h] ; 0b40 - a1 22 04 pop ds ; 0b43 - 1f nop ; 0b44 - 90 nop ; 0b45 - 90 nop ; 0b46 - 90 iret ; 0b47 - cf EQUIP_SVC endp org 00b48h MEM_SVC proc near public ; 0b48 sti ; 0b48 - fb push ds ; 0b49 - 1e nop ; 0b4a - 90 nop ; 0b4b - 90 nop ; 0b4c - 90 mov ax, 0 ; 0b4d - b8 00 00 mov ds, ax ; 0b50 - 8e d8 mov ax, ds:[042ah] ; 0b52 - a1 2a 04 shr ax, 04h ; 0b55 - c1 e8 04 add ax, word ptr ds:[042ch] ; 0b58 - 03 06 2c 04 shr ax, 06h ; 0b5c - c1 e8 06 pop ds ; 0b5f - 1f nop ; 0b60 - 90 nop ; 0b61 - 90 nop ; 0b62 - 90 iret ; 0b63 - cf MEM_SVC endp org 00b64h PRINT_SVC proc near public ; 0b64 sti ; 0b64 - fb pusha ; 0b65 - 60 push ds ; 0b66 - 1e push es ; 0b67 - 06 nop ; 0b68 - 90 nop ; 0b69 - 90 nop ; 0b6a - 90 mov ax, 0 ; 0b6b - b8 00 00 mov es, ax ; 0b6e - 8e c0 xor word ptr es:[0448h], 2 ; 0b70 - 26 81 36 48 04 02 00 test word ptr es:[0448h], 2 ; 0b77 - 26 f7 06 48 04 02 00 jz PRINT_SVC_X ; 0b7e - 74 5c -> 0bdc mov bh, 0ffh ; 0b80 - b7 ff mov ah, 0fh ; 0b82 - b4 0f int 52h ; 0b84 - cd 52 cmp al, 3 ; 0b86 - 3c 03 jnbe PRINT_SVC_R ; 0b88 - 77 4b -> 0bd5 mov bl, 50h ; 0b8a - b3 50 cmp al, 1 ; 0b8c - 3c 01 jnbe PRINT_SVC_0 ; 0b8e - 77 02 -> 0b92 mov bl, 28h ; 0b90 - b3 28 PRINT_SVC_0: ; 0b92 mov ah, 3 ; 0b92 - b4 03 int 52h ; 0b94 - cd 52 push cx ; 0b96 - 51 push dx ; 0b97 - 52 mov cx, 401fh ; 0b98 - b9 1f 40 mov ah, 1 ; 0b9b - b4 01 int 52h ; 0b9d - cd 52 mov dh, 0 ; 0b9f - b6 00 PRINT_SVC_1: ; 0ba1 mov dl, 0 ; 0ba1 - b2 00 PRINT_SVC_2: ; 0ba3 mov ah, 2 ; 0ba3 - b4 02 int 52h ; 0ba5 - cd 52 mov ah, 8 ; 0ba7 - b4 08 int 52h ; 0ba9 - cd 52 call PRINT_CHAR ; 0bab - e8 3e 00 -> 0bec jcxz PRINT_SVC_3 ; 0bae - e3 1b -> 0bcb inc dl ; 0bb0 - fe c2 cmp dl, bl ; 0bb2 - 3a d3 jb PRINT_SVC_2 ; 0bb4 - 72 ed -> 0ba3 call PRINT_CRLF ; 0bb6 - e8 2a 00 -> 0be3 jcxz PRINT_SVC_3 ; 0bb9 - e3 10 -> 0bcb test word ptr es:[0448h], 2 ; 0bbb - 26 f7 06 48 04 02 00 jz PRINT_SVC_3 ; 0bc2 - 74 07 -> 0bcb inc dh ; 0bc4 - fe c6 cmp dh, 19h ; 0bc6 - 80 fe 19 jb PRINT_SVC_1 ; 0bc9 - 72 d6 -> 0ba1 PRINT_SVC_3: ; 0bcb pop dx ; 0bcb - 5a mov ah, 2 ; 0bcc - b4 02 int 52h ; 0bce - cd 52 pop cx ; 0bd0 - 59 mov ah, 1 ; 0bd1 - b4 01 int 52h ; 0bd3 - cd 52 PRINT_SVC_R: ; 0bd5 and word ptr es:[0448h], 0fffdh ; 0bd5 - 26 81 26 48 04 fd ff PRINT_SVC_X: ; 0bdc nop ; 0bdc - 90 nop ; 0bdd - 90 nop ; 0bde - 90 pop es ; 0bdf - 07 pop ds ; 0be0 - 1f popa ; 0be1 - 61 iret ; 0be2 - cf PRINT_SVC endp org 00be3h PRINT_CRLF proc near public ; 0be3 mov al, 0dh ; 0be3 - b0 0d call PRINT_CHAR ; 0be5 - e8 04 00 -> 0bec jcxz PRINT_CHAR_X ; 0be8 - e3 13 -> 0bfd mov al, 0ah ; 0bea - b0 0a PRINT_CRLF endp org 00bech PRINT_CHAR proc near public ; 0bec mov cx, 0010h ; 0bec - b9 10 00 PRINT_CHAR_1: ; 0bef mov ah, 0 ; 0bef - b4 00 int 54h ; 0bf1 - cd 54 xor ah, 10h ; 0bf3 - 80 f4 10 test ah, 0b9h ; 0bf6 - f6 c4 b9 jz PRINT_CHAR_X ; 0bf9 - 74 02 -> 0bfd loop PRINT_CHAR_1 ; 0bfb - e2 f2 -> 0bef PRINT_CHAR_X: ; 0bfd ret ; 0bfd - c3 PRINT_CHAR endp org 00bfeh GRAPH_SVC proc near public ; 0bfe sti ; 0bfe - fb iret ; 0bff - cf GRAPH_SVC endp org 00c00h OUT_VD_ADDR proc near public ; 0c00 mov bx, 0486h ; 0c00 - bb 86 04 mov dx, 0101h ; 0c03 - ba 01 01 jmp OUT_PORT ; 0c06 - eb 0e -> 0c16 OUT_VD_ADDR endp org 00c08h OUT_VD_SPKR proc near public ; 0c08 mov bx, 0487h ; 0c08 - bb 87 04 mov dx, 0 ; 0c0b - ba 00 00 jmp OUT_PORT ; 0c0e - eb 06 -> 0c16 OUT_VD_SPKR endp org 00c10h OUT_DRQ_CTL proc near public ; 0c10 mov bx, 044ah ; 0c10 - bb 4a 04 mov dx, 2 ; 0c13 - ba 02 00 OUT_DRQ_CTL endp OUT_PORT proc near public ; 0c16 push ds ; 0c16 - 1e push cx ; 0c17 - 51 mov cx, 0 ; 0c18 - b9 00 00 mov ds, cx ; 0c1b - 8e d9 cli ; 0c1d - fa mov cl, byte ptr ds:[bx] ; 0c1e - 8a 0f and cl, ah ; 0c20 - 22 cc or al, cl ; 0c22 - 0a c1 mov byte ptr ds:[bx], al ; 0c24 - 88 07 out dx, al ; 0c26 - ee sti ; 0c27 - fb pop cx ; 0c28 - 59 pop ds ; 0c29 - 1f ret ; 0c2a - c3 OUT_PORT endp org 00c2bh Q_INIT proc near public ; 0c2b push ax ; 0c2b - 50 mov ax, word ptr ds:[si + 4] ; 0c2c - 8b 44 04 call SET_CRIT ; 0c2f - e8 80 fe -> 0ab2 mov word ptr ds:[si + 8], ax ; 0c32 - 89 44 08 mov word ptr ds:[si + 00ah], ax ; 0c35 - 89 44 0a mov word ptr ds:[si + 00ch], 0 ; 0c38 - c7 44 0c 00 00 mov byte ptr ds:[si + 1], 1 ; 0c3d - c6 44 01 01 call CLR_CRIT ; 0c41 - e8 7d fe -> 0ac1 pop ax ; 0c44 - 58 ret ; 0c45 - c3 Q_INIT endp org 00c46h Q_STORE proc near public ; 0c46 push es ; 0c46 - 06 push cx ; 0c47 - 51 push di ; 0c48 - 57 call SET_CRIT ; 0c49 - e8 66 fe -> 0ab2 call Q_SETUP ; 0c4c - e8 86 00 -> 0cd5 mov di, word ptr ds:[si + 8] ; 0c4f - 8b 7c 08 test ch, 4 ; 0c52 - f6 c5 04 jnz Q_STORE_2 ; 0c55 - 75 19 -> 0c70 call Q_PUT ; 0c57 - e8 81 00 -> 0cdb inc word ptr ds:[si + 00ch] ; 0c5a - ff 44 0c call Q_INC ; 0c5d - e8 a1 00 -> 0d01 mov word ptr ds:[si + 8], di ; 0c60 - 89 7c 08 cmp di, word ptr ds:[si + 00ah] ; 0c63 - 3b 7c 0a jnz Q_STORE_1 ; 0c66 - 75 03 -> 0c6b or ch, 4 ; 0c68 - 80 cd 04 Q_STORE_1: ; 0c6b and ch, 0fch ; 0c6b - 80 e5 fc jmp Q_STORE_X ; 0c6e - eb 09 -> 0c79 Q_STORE_2: ; 0c70 call Q_DEC ; 0c70 - e8 9d 00 -> 0d10 call Q_PUT ; 0c73 - e8 65 00 -> 0cdb or ch, 8 ; 0c76 - 80 cd 08 Q_STORE_X: ; 0c79 mov byte ptr ds:[si + 1], ch ; 0c79 - 88 6c 01 call CLR_CRIT ; 0c7c - e8 42 fe -> 0ac1 pop di ; 0c7f - 5f pop cx ; 0c80 - 59 pop es ; 0c81 - 07 ret ; 0c82 - c3 Q_STORE endp org 00c83h Q_FETCH proc near public ; 0c83 push es ; 0c83 - 06 push cx ; 0c84 - 51 push di ; 0c85 - 57 call SET_CRIT ; 0c86 - e8 29 fe -> 0ab2 call Q_SETUP ; 0c89 - e8 49 00 -> 0cd5 mov di, word ptr ds:[si + 00ah] ; 0c8c - 8b 7c 0a test ch, 1 ; 0c8f - f6 c5 01 jnz Q_FETCH_2 ; 0c92 - 75 19 -> 0cad call Q_GET ; 0c94 - e8 57 00 -> 0cee dec word ptr ds:[si + 00ch] ; 0c97 - ff 4c 0c call Q_INC ; 0c9a - e8 64 00 -> 0d01 mov word ptr ds:[si + 00ah], di ; 0c9d - 89 7c 0a cmp di, word ptr ds:[si + 8] ; 0ca0 - 3b 7c 08 jnz Q_FETCH_1 ; 0ca3 - 75 03 -> 0ca8 or ch, 1 ; 0ca5 - 80 cd 01 Q_FETCH_1: ; 0ca8 and ch, 0f3h ; 0ca8 - 80 e5 f3 jmp Q_FETCH_X ; 0cab - eb 03 -> 0cb0 Q_FETCH_2: ; 0cad or ch, 2 ; 0cad - 80 cd 02 Q_FETCH_X: ; 0cb0 mov byte ptr ds:[si + 1], ch ; 0cb0 - 88 6c 01 call CLR_CRIT ; 0cb3 - e8 0b fe -> 0ac1 pop di ; 0cb6 - 5f pop cx ; 0cb7 - 59 pop es ; 0cb8 - 07 ret ; 0cb9 - c3 Q_FETCH endp org 00cbah Q_LOOK proc near public ; 0cba push es ; 0cba - 06 push cx ; 0cbb - 51 push di ; 0cbc - 57 call SET_CRIT ; 0cbd - e8 f2 fd -> 0ab2 call Q_SETUP ; 0cc0 - e8 12 00 -> 0cd5 mov di, word ptr ds:[si + 00ah] ; 0cc3 - 8b 7c 0a test ch, 1 ; 0cc6 - f6 c5 01 jnz Q_LOOK_X ; 0cc9 - 75 03 -> 0cce call Q_GET ; 0ccb - e8 20 00 -> 0cee Q_LOOK_X: ; 0cce call CLR_CRIT ; 0cce - e8 f0 fd -> 0ac1 pop di ; 0cd1 - 5f pop cx ; 0cd2 - 59 pop es ; 0cd3 - 07 ret ; 0cd4 - c3 Q_LOOK endp org 00cd5h Q_SETUP proc near public ; 0cd5 mov es, word ptr ds:[si + 2] ; 0cd5 - 8e 44 02 mov cx, word ptr ds:[si] ; 0cd8 - 8b 0c ret ; 0cda - c3 Q_SETUP endp org 00cdbh Q_PUT proc near public ; 0cdb cmp cl, 2 ; 0cdb - 80 f9 02 jb Q_PUT_1 ; 0cde - 72 0a -> 0cea jz Q_PUT_2 ; 0ce0 - 74 04 -> 0ce6 mov word ptr es:[di + 2], dx ; 0ce2 - 26 89 55 02 Q_PUT_2: ; 0ce6 mov byte ptr es:[di + 1], ah ; 0ce6 - 26 88 65 01 Q_PUT_1: ; 0cea mov byte ptr es:[di], al ; 0cea - 26 88 05 ret ; 0ced - c3 Q_PUT endp org 00ceeh Q_GET proc near public ; 0cee cmp cl, 2 ; 0cee - 80 f9 02 jb Q_GET_1 ; 0cf1 - 72 0a -> 0cfd jz Q_GET_2 ; 0cf3 - 74 04 -> 0cf9 mov dx, word ptr es:[di + 2] ; 0cf5 - 26 8b 55 02 Q_GET_2: ; 0cf9 mov ah, byte ptr es:[di + 1] ; 0cf9 - 26 8a 65 01 Q_GET_1: ; 0cfd mov al, byte ptr es:[di] ; 0cfd - 26 8a 05 ret ; 0d00 - c3 Q_GET endp org 00d01h Q_INC proc near public ; 0d01 push cx ; 0d01 - 51 mov ch, 0 ; 0d02 - b5 00 add di, cx ; 0d04 - 03 f9 pop cx ; 0d06 - 59 cmp di, word ptr ds:[si + 6] ; 0d07 - 3b 7c 06 jb Q_INC_X ; 0d0a - 72 03 -> 0d0f mov di, word ptr ds:[si + 4] ; 0d0c - 8b 7c 04 Q_INC_X: ; 0d0f ret ; 0d0f - c3 Q_INC endp org 00d10h Q_DEC proc near public ; 0d10 cmp di, word ptr ds:[si + 4] ; 0d10 - 3b 7c 04 jnbe Q_DEC_X ; 0d13 - 77 03 -> 0d18 mov di, word ptr ds:[si + 6] ; 0d15 - 8b 7c 06 Q_DEC_X: ; 0d18 push cx ; 0d18 - 51 mov ch, 0 ; 0d19 - b5 00 sub di, cx ; 0d1b - 2b f9 pop cx ; 0d1d - 59 ret ; 0d1e - c3 Q_DEC endp SWITCH proc near public ; 0d1f cmp ah, byte ptr cs:[di] ; 0d1f - 2e 3a 25 jnb SWITCH_X ; 0d22 - 73 12 -> 0d36 mov bp, sp ; 0d24 - 8b ec cld ; 0d26 - fc push ax ; 0d27 - 50 mov al, ah ; 0d28 - 8a c4 inc al ; 0d2a - fe c0 add al, al ; 0d2c - 02 c0 xor ah, ah ; 0d2e - 32 e4 add di, ax ; 0d30 - 03 f8 pop ax ; 0d32 - 58 call cs:[di] ; 0d33 - 2e ff 15 SWITCH_X: ; 0d36 pop es ; 0d36 - 07 pop ds ; 0d37 - 1f popa ; 0d38 - 61 iret ; 0d39 - cf SWITCH endp org 00d3ah KB_SVC proc near public ; 0d3a sti ; 0d3a - fb pusha ; 0d3b - 60 push ds ; 0d3c - 1e push es ; 0d3d - 06 mov di, 0 ; 0d3e - bf 00 00 mov es, di ; 0d41 - 8e c7 mov ds, word ptr es:[0402h] ; 0d43 - 26 8e 1e 02 04 mov di, 0d50h ; 0d48 - bf 50 0d nop ; 0d4b - 90 jmp SWITCH ; 0d4c - e9 d0 ff -> 0d1f nop ; 0d4f - 90 KB_SVC endp org 00d50h KB_SVC_TBL_SIZE db 005h ; 0d50 db 000h ; 0d51 org 00d52h KB_SVC_TBL: ; 0d52 dw KB_SVC_READ ; 0d52 -> 0d5c dw KB_SVC_SCAN ; 0d54 -> 0d70 dw KB_SVC_SHIFT ; 0d56 -> 0d8f dw KB_SVC_FLUSH ; 0d58 -> 0d98 dw KB_SVC_RESET ; 0d5a -> 0da3 org 00d5ch KB_SVC_READ proc near public ; 0d5c lds si, es:[0460h] ; 0d5c - 26 c5 36 60 04 KB_SVC_READ_1: ; 0d61 test byte ptr ds:[si + 1], 1 ; 0d61 - f6 44 01 01 jnz KB_SVC_READ_1 ; 0d65 - 75 fa -> 0d61 call Q_FETCH ; 0d67 - e8 19 ff -> 0c83 mov word ptr [bp + 012h], ax ; 0d6a - 89 46 12 xor al, al ; 0d6d - 32 c0 ret ; 0d6f - c3 KB_SVC_READ endp org 00d70h KB_SVC_SCAN proc near public ; 0d70 lds si, es:[0460h] ; 0d70 - 26 c5 36 60 04 test byte ptr ds:[si + 1], 1 ; 0d75 - f6 44 01 01 jnz KB_SVC_SCAN_0 ; 0d79 - 75 0b -> 0d86 call Q_LOOK ; 0d7b - e8 3c ff -> 0cba mov word ptr [bp + 012h], ax ; 0d7e - 89 46 12 or ah, 0ffh ; 0d81 - 80 cc ff jmp KB_SVC_SCAN_X ; 0d84 - eb 02 -> 0d88 KB_SVC_SCAN_0: ; 0d86 xor ah, ah ; 0d86 - 32 e4 KB_SVC_SCAN_X: ; 0d88 lahf ; 0d88 - 9f mov byte ptr [bp + 018h], ah ; 0d89 - 88 66 18 xor al, al ; 0d8c - 32 c0 ret ; 0d8e - c3 KB_SVC_SCAN endp org 00d8fh KB_SVC_SHIFT proc near public ; 0d8f mov al, ds:[00h] ; 0d8f - a0 00 00 mov byte ptr [bp + 012h], al ; 0d92 - 88 46 12 xor al, al ; 0d95 - 32 c0 ret ; 0d97 - c3 KB_SVC_SHIFT endp org 00d98h KB_SVC_FLUSH proc near public ; 0d98 lds si, es:[0460h] ; 0d98 - 26 c5 36 60 04 call Q_INIT ; 0d9d - e8 8b fe -> 0c2b xor al, al ; 0da0 - 32 c0 ret ; 0da2 - c3 KB_SVC_FLUSH endp org 00da3h KB_SVC_RESET proc near public ; 0da3 mov ah, 0feh ; 0da3 - b4 fe mov al, 0 ; 0da5 - b0 00 call OUT_VD_SPKR ; 0da7 - e8 5e fe -> 0c08 mov al, 3 ; 0daa - b0 03 KB_SVC_RESET_1: ; 0dac call RESET_DELAY ; 0dac - e8 3d 00 -> 0dec dec al ; 0daf - fe c8 jnz KB_SVC_RESET_1 ; 0db1 - 75 f9 -> 0dac mov ah, 0feh ; 0db3 - b4 fe mov al, 1 ; 0db5 - b0 01 call OUT_VD_SPKR ; 0db7 - e8 4e fe -> 0c08 call RESET_DELAY ; 0dba - e8 2f 00 -> 0dec mov al, 3 ; 0dbd - b0 03 cli ; 0dbf - fa out 54h, al ; 0dc0 - e6 54 nop ; 0dc2 - 90 nop ; 0dc3 - 90 in al, 52h ; 0dc4 - e4 52 sti ; 0dc6 - fb call RESET_DELAY ; 0dc7 - e8 22 00 -> 0dec call SET_CRIT ; 0dca - e8 e5 fc -> 0ab2 mov word ptr ds:[000h], 0 ; 0dcd - c7 06 00 00 00 00 mov word ptr ds:[004h], 0a00h ; 0dd3 - c7 06 04 00 00 0a mov byte ptr ds:[002h], 0 ; 0dd9 - c6 06 02 00 00 lds si, es:[0460h] ; 0dde - 26 c5 36 60 04 call Q_INIT ; 0de3 - e8 45 fe -> 0c2b call CLR_CRIT ; 0de6 - e8 d8 fc -> 0ac1 xor al, al ; 0de9 - 32 c0 ret ; 0deb - c3 KB_SVC_RESET endp org 00dech RESET_DELAY proc near public ; 0dec mov cx, 0 ; 0dec - b9 00 00 RESET_DELAY_LP: ; 0def loop RESET_DELAY_LP ; 0def - e2 fe -> 0def ret ; 0df1 - c3 RESET_DELAY endp org 00df2h KB_INT proc near public ; 0df2 sti ; 0df2 - fb pusha ; 0df3 - 60 push ds ; 0df4 - 1e push es ; 0df5 - 06 mov al, 3 ; 0df6 - b0 03 cli ; 0df8 - fa out 54h, al ; 0df9 - e6 54 nop ; 0dfb - 90 nop ; 0dfc - 90 in al, 52h ; 0dfd - e4 52 mov bx, 0 ; 0dff - bb 00 00 mov ds, bx ; 0e02 - 8e db mov bx, word ptr ds:[0402h] ; 0e04 - 8b 1e 02 04 mov ds, bx ; 0e08 - 8e db test al, 080h ; 0e0a - a8 80 jz _loc_002 ; 0e0c - 74 21 -> 0e2f mov bl, byte ptr ds:[008h] ; 0e0e - 8a 1e 08 00 add bl, 080h ; 0e12 - 80 c3 80 cmp al, bl ; 0e15 - 3a c3 jnz _loc_001 ; 0e17 - 75 11 -> 0e2a mov byte ptr ds:[008h], 0 ; 0e19 - c6 06 08 00 00 mov byte ptr ds:[009h], 0 ; 0e1e - c6 06 09 00 00 mov byte ptr ds:[00ah], 0 ; 0e23 - c6 06 0a 00 00 jmp _loc_007 ; 0e28 - eb 4b -> 0e75 _loc_001: ; 0e2a mov ds:[0ah], al ; 0e2a - a2 0a 00 jmp _loc_007 ; 0e2d - eb 46 -> 0e75 _loc_002: ; 0e2f cmp al, byte ptr ds:[008h] ; 0e2f - 3a 06 08 00 jz _loc_003 ; 0e33 - 74 0d -> 0e42 cmp al, 2ah ; 0e35 - 3c 2a jz _loc_006 ; 0e37 - 74 32 -> 0e6b cmp al, 36h ; 0e39 - 3c 36 jz _loc_006 ; 0e3b - 74 2e -> 0e6b mov ds:[08h], al ; 0e3d - a2 08 00 jmp _loc_007 ; 0e40 - eb 33 -> 0e75 _loc_003: ; 0e42 cmp byte ptr ds:[009h], 2ah ; 0e42 - 80 3e 09 00 2a jz _loc_005 ; 0e47 - 74 1f -> 0e68 cmp byte ptr ds:[009h], 36h ; 0e49 - 80 3e 09 00 36 jz _loc_005 ; 0e4e - 74 18 -> 0e68 cmp byte ptr ds:[00ah], 0aah ; 0e50 - 80 3e 0a 00 aa jz _loc_004 ; 0e55 - 74 07 -> 0e5e cmp byte ptr ds:[00ah], 0b6h ; 0e57 - 80 3e 0a 00 b6 jnz _loc_007 ; 0e5c - 75 17 -> 0e75 _loc_004: ; 0e5e mov byte ptr ds:[00ah], 0 ; 0e5e - c6 06 0a 00 00 mov byte ptr ds:[009h], 0 ; 0e63 - c6 06 09 00 00 _loc_005: ; 0e68 jmp _loc_008 ; 0e68 - eb 41 -> 0eab nop ; 0e6a - 90 _loc_006: ; 0e6b cmp byte ptr ds:[008h], 0 ; 0e6b - 80 3e 08 00 00 jz _loc_007 ; 0e70 - 74 03 -> 0e75 mov ds:[09h], al ; 0e72 - a2 09 00 _loc_007: ; 0e75 sti ; 0e75 - fb push ax ; 0e76 - 50 int 60h ; 0e77 - cd 60 pop ax ; 0e79 - 58 mov bx, 0 ; 0e7a - bb 00 00 mov ds, bx ; 0e7d - 8e db les di, ds:[0464h] ; 0e7f - c4 3e 64 04 mov ds, word ptr ds:[0402h] ; 0e83 - 8e 1e 02 04 mov cl, al ; 0e87 - 8a c8 and al, 7fh ; 0e89 - 24 7f cmp al, 5fh ; 0e8b - 3c 5f jnbe _loc_008 ; 0e8d - 77 1c -> 0eab mov ch, al ; 0e8f - 8a e8 mov ah, 0 ; 0e91 - b4 00 shl ax, 03h ; 0e93 - c1 e0 03 add di, ax ; 0e96 - 03 f8 mov bx, word ptr ds:[000h] ; 0e98 - 8b 1e 00 00 add cl, cl ; 0e9c - 02 c9 mov dx, word ptr es:[di + 2] ; 0e9e - 26 8b 55 02 call es:[di] ; 0ea2 - 26 ff 15 jb KB_INT_X ; 0ea5 - 72 07 -> 0eae mov word ptr ds:[000h], bx ; 0ea7 - 89 1e 00 00 _loc_008: ; 0eab call ISSUE_EOI1 ; 0eab - e8 5d fc -> 0b0b KB_INT_X: ; 0eae pop es ; 0eae - 07 pop ds ; 0eaf - 1f popa ; 0eb0 - 61 iret ; 0eb1 - cf org 00eb2h KEY_ALT: ; 0eb2 jb KEY_ALT_R ; 0eb2 - 72 07 -> 0ebb KEY_ALT_P: ; 0eb4 mov byte ptr ds:[004h], 0 ; 0eb4 - c6 06 04 00 00 jmp CAT_SHIFT_P ; 0eb9 - eb 10 -> 0ecb KEY_ALT_R: ; 0ebb mov al, ds:[04h] ; 0ebb - a0 04 00 or al, al ; 0ebe - 0a c0 jz KEY_ALT_X ; 0ec0 - 74 05 -> 0ec7 mov ah, 0 ; 0ec2 - b4 00 call PUT_ASC ; 0ec4 - e8 b5 00 -> 0f7c KEY_ALT_X: ; 0ec7 jmp CAT_SHIFT_R ; 0ec7 - eb 0c -> 0ed5 CAT_SHIFT: ; 0ec9 jb CAT_SHIFT_R ; 0ec9 - 72 0a -> 0ed5 CAT_SHIFT_P: ; 0ecb mov bh, 1 ; 0ecb - b7 01 mov byte ptr ds:[006h], ch ; 0ecd - 88 2e 06 00 or bl, dl ; 0ed1 - 0a da jmp CAT_SHIFT_X ; 0ed3 - eb 0f -> 0ee4 CAT_SHIFT_R: ; 0ed5 cmp bh, 2 ; 0ed5 - 80 ff 02 jnz CAT_SHIFT_R_1 ; 0ed8 - 75 08 -> 0ee2 cmp ch, byte ptr ds:[006h] ; 0eda - 3a 2e 06 00 jnz CAT_SHIFT_R_1 ; 0ede - 75 02 -> 0ee2 mov bh, 3 ; 0ee0 - b7 03 CAT_SHIFT_R_1: ; 0ee2 and bl, dh ; 0ee2 - 22 de CAT_SHIFT_X: ; 0ee4 clc ; 0ee4 - f8 ret ; 0ee5 - c3 CAT_SPECIAL: ; 0ee6 cmp ch, 4eh ; 0ee6 - 80 fd 4e jnz CAT_SPECIAL_1 ; 0ee9 - 75 0b -> 0ef6 mov ax, 0 ; 0eeb - b8 00 00 mov es, ax ; 0eee - 8e c0 xor byte ptr es:[048eh], 1 ; 0ef0 - 26 80 36 8e 04 01 CAT_SPECIAL_1: ; 0ef6 clc ; 0ef6 - f8 ret ; 0ef7 - c3 CAT_ALPHA: ; 0ef8 jb CAT_ALPHA_R ; 0ef8 - 72 04 -> 0efe CAT_ALPHA_P: ; 0efa mov cl, 43h ; 0efa - b1 43 jmp CAT_NORMAL_P_1 ; 0efc - eb 34 -> 0f32 CAT_ALPHA_R: ; 0efe jmp CAT_NORMAL_R ; 0efe - eb 42 -> 0f42 nop ; 0f00 - 90 CAT_NUMER: ; 0f01 jb CAT_NUMER_R ; 0f01 - 72 28 -> 0f2b CAT_NUMER_P: ; 0f03 test bl, 8 ; 0f03 - f6 c3 08 jnz CAT_NUMER_P_1 ; 0f06 - 75 12 -> 0f1a test bl, 4 ; 0f08 - f6 c3 04 jnz PUT_CTL ; 0f0b - 75 42 -> 0f4f mov cl, 3 ; 0f0d - b1 03 test bl, 20h ; 0f0f - f6 c3 20 jnz CAT_NORMAL_P_3 ; 0f12 - 75 28 -> 0f3c test cl, bl ; 0f14 - 84 d9 jz PUT_UCS ; 0f16 - 74 40 -> 0f58 jmp PUT_LCS ; 0f18 - eb 47 -> 0f61 CAT_NUMER_P_1: ; 0f1a mov al, ds:[04h] ; 0f1a - a0 04 00 mul byte ptr ds:[005h] ; 0f1d - f6 26 05 00 add al, byte ptr es:[di + 7] ; 0f21 - 26 02 45 07 mov ds:[04h], al ; 0f25 - a2 04 00 CAT_NUMER_X: ; 0f28 jmp CAT_NORMAL_X ; 0f28 - eb 1a -> 0f44 nop ; 0f2a - 90 CAT_NUMER_R: ; 0f2b jmp CAT_NORMAL_R ; 0f2b - eb 15 -> 0f42 nop ; 0f2d - 90 CAT_NORMAL: ; 0f2e jb CAT_NORMAL_R ; 0f2e - 72 12 -> 0f42 CAT_NORMAL_P: ; 0f30 mov cl, 3 ; 0f30 - b1 03 CAT_NORMAL_P_1: ; 0f32 test bl, 8 ; 0f32 - f6 c3 08 jnz PUT_ALT ; 0f35 - 75 0f -> 0f46 CAT_NORMAL_P_2: ; 0f37 test bl, 4 ; 0f37 - f6 c3 04 jnz PUT_CTL ; 0f3a - 75 13 -> 0f4f CAT_NORMAL_P_3: ; 0f3c test cl, bl ; 0f3c - 84 d9 jnz PUT_UCS ; 0f3e - 75 18 -> 0f58 jmp PUT_LCS ; 0f40 - eb 1f -> 0f61 CAT_NORMAL_R: ; 0f42 mov bh, 0 ; 0f42 - b7 00 CAT_NORMAL_X: ; 0f44 clc ; 0f44 - f8 ret ; 0f45 - c3 PUT_ALT: ; 0f46 mov cl, byte ptr es:[di + 7] ; 0f46 - 26 8a 4d 07 test dh, 8 ; 0f4a - f6 c6 08 jmp PUT_ASK ; 0f4d - eb 19 -> 0f68 PUT_CTL: ; 0f4f mov cl, byte ptr es:[di + 6] ; 0f4f - 26 8a 4d 06 test dh, 4 ; 0f53 - f6 c6 04 jmp PUT_ASK ; 0f56 - eb 10 -> 0f68 PUT_UCS: ; 0f58 mov cl, byte ptr es:[di + 5] ; 0f58 - 26 8a 4d 05 test dh, 2 ; 0f5c - f6 c6 02 jmp PUT_ASK ; 0f5f - eb 07 -> 0f68 PUT_LCS: ; 0f61 mov cl, byte ptr es:[di + 4] ; 0f61 - 26 8a 4d 04 test dh, 1 ; 0f65 - f6 c6 01 PUT_ASK: ; 0f68 jnz PUT_ASE ; 0f68 - 75 08 -> 0f72 cmp cl, 0ffh ; 0f6a - 80 f9 ff jnz PUT_ASN ; 0f6d - 75 09 -> 0f78 jmp CAT_SPECIAL ; 0f6f - e9 74 ff -> 0ee6 PUT_ASE: ; 0f72 mov al, 0 ; 0f72 - b0 00 mov ah, cl ; 0f74 - 8a e1 jmp PUT_ASC ; 0f76 - eb 04 -> 0f7c PUT_ASN: ; 0f78 mov al, cl ; 0f78 - 8a c1 mov ah, ch ; 0f7a - 8a e5 PUT_ASC: ; 0f7c cmp bh, 1 ; 0f7c - 80 ff 01 jz PUT_ASC_1 ; 0f7f - 74 0f -> 0f90 cmp bh, 3 ; 0f81 - 80 ff 03 mov bh, 0 ; 0f84 - b7 00 jnz PUT_ASC_Q ; 0f86 - 75 0e -> 0f96 cmp ch, byte ptr ds:[007h] ; 0f88 - 3a 2e 07 00 jnz PUT_ASC_Q ; 0f8c - 75 08 -> 0f96 jmp PUT_ASC_X ; 0f8e - eb 36 -> 0fc6 PUT_ASC_1: ; 0f90 mov bh, 2 ; 0f90 - b7 02 mov byte ptr ds:[007h], ch ; 0f92 - 88 2e 07 00 PUT_ASC_Q: ; 0f96 push ds ; 0f96 - 1e mov si, 0 ; 0f97 - be 00 00 mov ds, si ; 0f9a - 8e de push ds ; 0f9c - 1e les di, ds:[0464h] ; 0f9d - c4 3e 64 04 mov ds, word ptr ds:[0402h] ; 0fa1 - 8e 1e 02 04 sub di, 2 ; 0fa5 - 83 ef 02 test word ptr es:[di], 080h ; 0fa8 - 26 f7 05 80 00 jnz SP_KB_OTH ; 0fad - 75 1e -> 0fcd PUT_ASC_D1: ; 0faf test word ptr es:[di], 1 ; 0faf - 26 f7 05 01 00 jnz KB_DEADKY1 ; 0fb4 - 75 66 -> 101c PUT_ASC_D2: ; 0fb6 test word ptr es:[di], 2 ; 0fb6 - 26 f7 05 02 00 jnz KB_DEADKY2 ; 0fbb - 75 77 -> 1034 PUT_ASC_Q2: ; 0fbd pop ds ; 0fbd - 1f lds si, ds:[0460h] ; 0fbe - c5 36 60 04 call Q_STORE ; 0fc2 - e8 81 fc -> 0c46 pop ds ; 0fc5 - 1f PUT_ASC_X: ; 0fc6 mov byte ptr ds:[004h], 0 ; 0fc6 - c6 06 04 00 00 PUT_ASX: ; 0fcb clc ; 0fcb - f8 ret ; 0fcc - c3 SP_KB_OTH: ; 0fcd jmp PUT_ASC_D1 ; 0fcd - eb e0 -> 0faf KEY_DEADKEY1: ; 0fcf jb KEY_DEADKEY_R ; 0fcf - 72 42 -> 1013 KEY_DEADKEY1_P: ; 0fd1 mov cl, 3 ; 0fd1 - b1 03 test bl, 8 ; 0fd3 - f6 c3 08 jnz PUT_ALT_L ; 0fd6 - 75 3e -> 1016 test bl, 4 ; 0fd8 - f6 c3 04 jnz PUT_CTL_L ; 0fdb - 75 3c -> 1019 test cl, bl ; 0fdd - 84 d9 jnz PUT_SHIFT_DDKY1 ; 0fdf - 75 08 -> 0fe9 PUT_UNSH_DDKY1: ; 0fe1 mov word ptr ds:[019h], 1408h ; 0fe1 - c7 06 19 00 08 14 jmp PUT_ASC_X ; 0fe7 - eb dd -> 0fc6 PUT_SHIFT_DDKY1: ; 0fe9 mov word ptr ds:[019h], 1427h ; 0fe9 - c7 06 19 00 27 14 jmp PUT_ASC_X ; 0fef - eb d5 -> 0fc6 KEY_DEADKEY2: ; 0ff1 jb KEY_DEADKEY_R ; 0ff1 - 72 20 -> 1013 KEY_DEADKEY2_P: ; 0ff3 mov cl, 3 ; 0ff3 - b1 03 test bl, 8 ; 0ff5 - f6 c3 08 jnz PUT_ALT_L ; 0ff8 - 75 1c -> 1016 test bl, 4 ; 0ffa - f6 c3 04 jnz PUT_CTL_L ; 0ffd - 75 1a -> 1019 test cl, bl ; 0fff - 84 d9 jnz PUT_SHIFT_DDKY2 ; 1001 - 75 08 -> 100b PUT_UNSH_DDKY2: ; 1003 mov word ptr ds:[01bh], 1446h ; 1003 - c7 06 1b 00 46 14 jmp PUT_ASC_X ; 1009 - eb bb -> 0fc6 PUT_SHIFT_DDKY2: ; 100b mov word ptr ds:[01bh], 1465h ; 100b - c7 06 1b 00 65 14 jmp PUT_ASC_X ; 1011 - eb b3 -> 0fc6 KEY_DEADKEY_R: ; 1013 jmp CAT_NORMAL_R ; 1013 - e9 2c ff -> 0f42 PUT_ALT_L: ; 1016 jmp PUT_ALT ; 1016 - e9 2d ff -> 0f46 PUT_CTL_L: ; 1019 jmp PUT_CTL ; 1019 - e9 33 ff -> 0f4f KB_DEADKY1: ; 101c mov si, word ptr ds:[019h] ; 101c - 8b 36 19 00 cmp si, 0 ; 1020 - 83 fe 00 jz KB_DEADKY1_EX ; 1023 - 74 07 -> 102c push di ; 1025 - 57 mov di, si ; 1026 - 8b fe call KB_DEADKY_1 ; 1028 - e8 22 00 -> 104d pop di ; 102b - 5f KB_DEADKY1_EX: ; 102c mov word ptr ds:[019h], 0 ; 102c - c7 06 19 00 00 00 jmp PUT_ASC_D2 ; 1032 - eb 82 -> 0fb6 KB_DEADKY2: ; 1034 mov si, word ptr ds:[01bh] ; 1034 - 8b 36 1b 00 cmp si, 0 ; 1038 - 83 fe 00 jz KB_DEADKY2_EX ; 103b - 74 07 -> 1044 push di ; 103d - 57 mov di, si ; 103e - 8b fe call KB_DEADKY_1 ; 1040 - e8 0a 00 -> 104d pop di ; 1043 - 5f KB_DEADKY2_EX: ; 1044 mov word ptr ds:[01bh], 0 ; 1044 - c7 06 1b 00 00 00 jmp PUT_ASC_Q2 ; 104a - e9 70 ff -> 0fbd KB_DEADKY_1: ; 104d cmp byte ptr es:[di], 0ffh ; 104d - 26 80 3d ff jz KB_DEADKY_EX ; 1051 - 74 0e -> 1061 cmp byte ptr es:[di], al ; 1053 - 26 38 05 jz KB_DEADKY_2 ; 1056 - 74 05 -> 105d add di, 2 ; 1058 - 83 c7 02 jmp KB_DEADKY_1 ; 105b - eb f0 -> 104d KB_DEADKY_2: ; 105d inc di ; 105d - 47 mov al, byte ptr es:[di] ; 105e - 26 8a 05 KB_DEADKY_EX: ; 1061 ret ; 1061 - c3 KEY_BREAK: ; 1062 jb KEY_BREAK_R ; 1062 - 72 18 -> 107c KEY_BREAK_P: ; 1064 test bl, 8 ; 1064 - f6 c3 08 jnz KEY_BREAK_N ; 1067 - 75 10 -> 1079 test bl, 4 ; 1069 - f6 c3 04 jz KEY_BREAK_N ; 106c - 74 0b -> 1079 KEY_BREAK_F: ; 106e call CAT_NORMAL_P ; 106e - e8 bf fe -> 0f30 call ISSUE_EOI1 ; 1071 - e8 97 fa -> 0b0b int 1bh ; 1074 - cd 1b KEY_BREAK_X: ; 1076 jmp NO_EOI ; 1076 - e9 86 00 -> 10ff KEY_BREAK_N: ; 1079 jmp CAT_NORMAL_P ; 1079 - e9 b4 fe -> 0f30 KEY_BREAK_R: ; 107c jmp CAT_NORMAL_R ; 107c - e9 c3 fe -> 0f42 KEY_DELETE: ; 107f jb KEY_DELETE_R ; 107f - 72 15 -> 1096 KEY_DELETE_P: ; 1081 test bl, 8 ; 1081 - f6 c3 08 jz KEY_DELETE_N ; 1084 - 74 0d -> 1093 test bl, 4 ; 1086 - f6 c3 04 jz KEY_DELETE_N ; 1089 - 74 08 -> 1093 KEY_DELETE_F: ; 108b call ISSUE_EOI1 ; 108b - e8 7d fa -> 0b0b int 49h ; 108e - cd 49 KEY_DELETE_X: ; 1090 jmp NO_EOI ; 1090 - eb 6d -> 10ff nop ; 1092 - 90 KEY_DELETE_N: ; 1093 jmp CAT_NORMAL_P ; 1093 - e9 9a fe -> 0f30 KEY_DELETE_R: ; 1096 jmp CAT_NORMAL_R ; 1096 - e9 a9 fe -> 0f42 KEY_EXCLAM: ; 1099 jb KEY_EXCLAM_R ; 1099 - 72 15 -> 10b0 test bl, 8 ; 109b - f6 c3 08 jnz KEY_EXCLAM_N ; 109e - 75 0d -> 10ad test bl, 4 ; 10a0 - f6 c3 04 jz KEY_EXCLAM_N ; 10a3 - 74 08 -> 10ad KEY_EXCLAM_F: ; 10a5 call ISSUE_EOI1 ; 10a5 - e8 63 fa -> 0b0b int 4dh ; 10a8 - cd 4d KEY_EXCLAM_X: ; 10aa jmp NO_EOI ; 10aa - eb 53 -> 10ff nop ; 10ac - 90 KEY_EXCLAM_N: ; 10ad jmp CAT_NORMAL_P ; 10ad - e9 80 fe -> 0f30 KEY_EXCLAM_R: ; 10b0 jmp CAT_NORMAL_R ; 10b0 - e9 8f fe -> 0f42 KEY_HOLD: ; 10b3 jb KEY_HOLD_R ; 10b3 - 72 12 -> 10c7 KEY_HOLD_P: ; 10b5 xor byte ptr ds:[002h], 1 ; 10b5 - 80 36 02 00 01 call ISSUE_EOI1 ; 10ba - e8 4e fa -> 0b0b KEY_HOLD_F: ; 10bd test byte ptr ds:[002h], 1 ; 10bd - f6 06 02 00 01 jnz KEY_HOLD_F ; 10c2 - 75 f9 -> 10bd KEY_HOLD_X: ; 10c4 jmp NO_EOI ; 10c4 - eb 39 -> 10ff nop ; 10c6 - 90 KEY_HOLD_R: ; 10c7 jmp CAT_NORMAL_R ; 10c7 - e9 78 fe -> 0f42 KEY_PRINT: ; 10ca jb KEY_PRINT_R ; 10ca - 72 15 -> 10e1 KEY_PRINT_P: ; 10cc test bl, 0ch ; 10cc - f6 c3 0c jnz KEY_PRINT_N ; 10cf - 75 0d -> 10de test bl, 3 ; 10d1 - f6 c3 03 jz KEY_PRINT_N ; 10d4 - 74 08 -> 10de KEY_PRINT_F: ; 10d6 call ISSUE_EOI1 ; 10d6 - e8 32 fa -> 0b0b int 4ah ; 10d9 - cd 4a KEY_PRINT_X: ; 10db jmp NO_EOI ; 10db - eb 22 -> 10ff nop ; 10dd - 90 KEY_PRINT_N: ; 10de jmp CAT_NORMAL_P ; 10de - e9 4f fe -> 0f30 KEY_PRINT_R: ; 10e1 jmp CAT_NORMAL_R ; 10e1 - e9 5e fe -> 0f42 KEY_RIGHT: ; 10e4 jb KEY_RIGHT_R ; 10e4 - 72 16 -> 10fc KEY_RIGHT_P: ; 10e6 test bl, 8 ; 10e6 - f6 c3 08 jz KEY_RIGHT_N ; 10e9 - 74 0e -> 10f9 KEY_RIGHT_F: ; 10eb mov ax, 0 ; 10eb - b8 00 00 mov es, ax ; 10ee - 8e c0 xor byte ptr es:[048eh], 1 ; 10f0 - 26 80 36 8e 04 01 KEY_RIGHT_X: ; 10f6 jmp PUT_ASX ; 10f6 - e9 d2 fe -> 0fcb KEY_RIGHT_N: ; 10f9 jmp CAT_NORMAL_P ; 10f9 - e9 34 fe -> 0f30 KEY_RIGHT_R: ; 10fc jmp CAT_NORMAL_R ; 10fc - e9 43 fe -> 0f42 NO_EOI: ; 10ff stc ; 10ff - f9 ret ; 1100 - c3 KB_INT endp nop ; 1101 - 90 db 000h ; 1102 db 000h ; 1103 db 000h ; 1104 db 000h ; 1105 db 000h ; 1106 db 000h ; 1107 org 01108h KB_SCAN_TBL:  db 0f6h, 00eh, 000h, 000h ; 01108 db 0ffh, 0ffh, 0ffh, 0ffh ; 0110c db 02eh, 00fh, 000h, 008h ; 01110 db 01bh, 01bh, 01bh, 08bh ; 01114 db 099h, 010h, 000h, 008h ; 01118 db 031h, 021h, 0ffh, 078h ; 0111c db 02eh, 00fh, 000h, 00ch ; 01120 db 032h, 040h, 003h, 079h ; 01124 db 02eh, 00fh, 000h, 008h ; 01128 db 033h, 023h, 0ffh, 07ah ; 0112c db 02eh, 00fh, 000h, 008h ; 01130 db 034h, 024h, 0ffh, 07bh ; 01134 db 02eh, 00fh, 000h, 008h ; 01138 db 035h, 025h, 0ffh, 07ch ; 0113c db 02eh, 00fh, 000h, 008h ; 01140 db 036h, 05eh, 01eh, 07dh ; 01144 db 02eh, 00fh, 000h, 008h ; 01148 db 037h, 026h, 0ffh, 07eh ; 0114c db 02eh, 00fh, 000h, 008h ; 01150 db 038h, 02ah, 0ffh, 07fh ; 01154 db 02eh, 00fh, 000h, 008h ; 01158 db 039h, 028h, 0ffh, 080h ; 0115c db 02eh, 00fh, 000h, 008h ; 01160 db 030h, 029h, 0ffh, 081h ; 01164 db 02eh, 00fh, 000h, 008h ; 01168 db 02dh, 05fh, 01fh, 082h ; 0116c db 02eh, 00fh, 000h, 008h ; 01170 db 03dh, 02bh, 0ffh, 083h ; 01174 db 02eh, 00fh, 000h, 008h ; 01178 db 008h, 008h, 07fh, 08ch ; 0117c db 02eh, 00fh, 000h, 00eh ; 01180 db 009h, 00fh, 08dh, 08eh ; 01184 db 0f8h, 00eh, 000h, 008h ; 01188 db 071h, 051h, 011h, 010h ; 0118c db 0f8h, 00eh, 000h, 008h ; 01190 db 077h, 057h, 017h, 011h ; 01194 db 0f8h, 00eh, 000h, 008h ; 01198 db 065h, 045h, 005h, 012h ; 0119c db 0f8h, 00eh, 000h, 008h ; 011a0 db 072h, 052h, 012h, 013h ; 011a4 db 0f8h, 00eh, 000h, 008h ; 011a8 db 074h, 054h, 014h, 014h ; 011ac db 0f8h, 00eh, 000h, 008h ; 011b0 db 079h, 059h, 019h, 015h ; 011b4 db 0f8h, 00eh, 000h, 008h ; 011b8 db 075h, 055h, 015h, 016h ; 011bc db 0f8h, 00eh, 000h, 008h ; 011c0 db 069h, 049h, 009h, 017h ; 011c4 db 0f8h, 00eh, 000h, 008h ; 011c8 db 06fh, 04fh, 00fh, 018h ; 011cc db 0f8h, 00eh, 000h, 008h ; 011d0 db 070h, 050h, 010h, 019h ; 011d4 db 02eh, 00fh, 000h, 000h ; 011d8 db 05bh, 07bh, 01bh, 0ffh ; 011dc db 02eh, 00fh, 000h, 000h ; 011e0 db 05dh, 07dh, 01dh, 0ffh ; 011e4 db 02eh, 00fh, 000h, 008h ; 011e8 db 00dh, 00dh, 00ah, 08fh ; 011ec db 0c9h, 00eh, 004h, 0fbh ; 011f0 db 000h, 000h, 000h, 000h ; 011f4 db 0f8h, 00eh, 000h, 008h ; 011f8 db 061h, 041h, 001h, 01eh ; 011fc db 0f8h, 00eh, 000h, 008h ; 01200 db 073h, 053h, 013h, 01fh ; 01204 db 0f8h, 00eh, 000h, 008h ; 01208 db 064h, 044h, 004h, 020h ; 0120c db 0f8h, 00eh, 000h, 008h ; 01210 db 066h, 046h, 006h, 021h ; 01214 db 0f8h, 00eh, 000h, 008h ; 01218 db 067h, 047h, 007h, 022h ; 0121c db 0f8h, 00eh, 000h, 008h ; 01220 db 068h, 048h, 008h, 023h ; 01224 db 0f8h, 00eh, 000h, 008h ; 01228 db 06ah, 04ah, 00ah, 024h ; 0122c db 0f8h, 00eh, 000h, 008h ; 01230 db 06bh, 04bh, 00bh, 025h ; 01234 db 0f8h, 00eh, 000h, 008h ; 01238 db 06ch, 04ch, 00ch, 026h ; 0123c db 02eh, 00fh, 000h, 000h ; 01240 db 03bh, 03ah, 0ffh, 0ffh ; 01244 db 02eh, 00fh, 000h, 000h ; 01248 db 027h, 022h, 0ffh, 0ffh ; 0124c db 02eh, 00fh, 000h, 00fh ; 01250 db 048h, 085h, 090h, 091h ; 01254 db 0c9h, 00eh, 002h, 0fdh ; 01258 db 000h, 000h, 000h, 000h ; 0125c db 02eh, 00fh, 000h, 00fh ; 01260 db 04bh, 087h, 073h, 092h ; 01264 db 0f8h, 00eh, 000h, 008h ; 01268 db 07ah, 05ah, 01ah, 02ch ; 0126c db 0f8h, 00eh, 000h, 008h ; 01270 db 078h, 058h, 018h, 02dh ; 01274 db 0f8h, 00eh, 000h, 008h ; 01278 db 063h, 043h, 003h, 02eh ; 0127c db 0f8h, 00eh, 000h, 008h ; 01280 db 076h, 056h, 016h, 02fh ; 01284 db 0f8h, 00eh, 000h, 008h ; 01288 db 062h, 042h, 002h, 030h ; 0128c db 0f8h, 00eh, 000h, 008h ; 01290 db 06eh, 04eh, 00eh, 031h ; 01294 db 0f8h, 00eh, 000h, 008h ; 01298 db 06dh, 04dh, 00dh, 032h ; 0129c db 02eh, 00fh, 000h, 000h ; 012a0 db 02ch, 03ch, 0ffh, 0ffh ; 012a4 db 02eh, 00fh, 000h, 000h ; 012a8 db 02eh, 03eh, 0ffh, 0ffh ; 012ac db 02eh, 00fh, 000h, 000h ; 012b0 db 02fh, 03fh, 0ffh, 0ffh ; 012b4 db 0c9h, 00eh, 001h, 0feh ; 012b8 db 000h, 000h, 000h, 000h ; 012bc db 0cah, 010h, 000h, 00ch ; 012c0 db 010h, 0ffh, 072h, 046h ; 012c4 db 0b2h, 00eh, 008h, 0f7h ; 012c8 db 000h, 000h, 000h, 000h ; 012cc db 02eh, 00fh, 000h, 000h ; 012d0 db 020h, 020h, 020h, 020h ; 012d4 db 0c9h, 00eh, 040h, 0bfh ; 012d8 db 000h, 000h, 000h, 000h ; 012dc db 02eh, 00fh, 000h, 00fh ; 012e0 db 03bh, 054h, 05eh, 068h ; 012e4 db 02eh, 00fh, 000h, 00fh ; 012e8 db 03ch, 055h, 05fh, 069h ; 012ec db 02eh, 00fh, 000h, 00fh ; 012f0 db 03dh, 056h, 060h, 06ah ; 012f4 db 02eh, 00fh, 000h, 00fh ; 012f8 db 03eh, 057h, 061h, 06bh ; 012fc db 02eh, 00fh, 000h, 00fh ; 01300 db 03fh, 058h, 062h, 06ch ; 01304 db 02eh, 00fh, 000h, 00fh ; 01308 db 040h, 059h, 063h, 06dh ; 0130c db 02eh, 00fh, 000h, 00fh ; 01310 db 041h, 05ah, 064h, 06eh ; 01314 db 02eh, 00fh, 000h, 00fh ; 01318 db 042h, 05bh, 065h, 06fh ; 0131c db 02eh, 00fh, 000h, 00fh ; 01320 db 043h, 05ch, 066h, 070h ; 01324 db 02eh, 00fh, 000h, 00fh ; 01328 db 044h, 05dh, 067h, 071h ; 0132c db 0c9h, 00eh, 020h, 0dfh ; 01330 db 000h, 000h, 000h, 000h ; 01334 db 0b3h, 010h, 000h, 000h ; 01338 db 0ffh, 0ffh, 0ffh, 0ffh ; 0133c db 001h, 00fh, 000h, 004h ; 01340 db 037h, 05ch, 093h, 007h ; 01344 db 001h, 00fh, 000h, 004h ; 01348 db 038h, 07eh, 094h, 008h ; 0134c db 001h, 00fh, 000h, 006h ; 01350 db 039h, 049h, 084h, 009h ; 01354 db 02eh, 00fh, 000h, 00fh ; 01358 db 050h, 086h, 096h, 097h ; 0135c db 001h, 00fh, 000h, 004h ; 01360 db 034h, 07ch, 095h, 004h ; 01364 db 001h, 00fh, 000h, 000h ; 01368 db 035h, 0ffh, 0ffh, 005h ; 0136c db 001h, 00fh, 000h, 000h ; 01370 db 036h, 0ffh, 0ffh, 006h ; 01374 db 0e4h, 010h, 000h, 007h ; 01378 db 04dh, 088h, 074h, 0ffh ; 0137c db 001h, 00fh, 000h, 006h ; 01380 db 031h, 04fh, 075h, 001h ; 01384 db 001h, 00fh, 000h, 004h ; 01388 db 032h, 060h, 09ah, 002h ; 0138c db 001h, 00fh, 000h, 006h ; 01390 db 033h, 051h, 076h, 003h ; 01394 db 001h, 00fh, 000h, 006h ; 01398 db 030h, 09bh, 09ch, 000h ; 0139c db 07fh, 010h, 000h, 00fh ; 013a0 db 053h, 08ah, 09dh, 09eh ; 013a4 db 062h, 010h, 000h, 00fh ; 013a8 db 000h, 000h, 000h, 000h ; 013ac db 02eh, 00fh, 000h, 00fh ; 013b0 db 052h, 089h, 09fh, 0a0h ; 013b4 db 02eh, 00fh, 000h, 00eh ; 013b8 db 02eh, 0a1h, 0a4h, 0a5h ; 013bc db 02eh, 00fh, 000h, 008h ; 013c0 db 00dh, 00dh, 00ah, 08fh ; 013c4 db 02eh, 00fh, 000h, 00fh ; 013c8 db 047h, 04ah, 077h, 0a6h ; 013cc db 02eh, 00fh, 000h, 00fh ; 013d0 db 098h, 0a2h, 0ach, 0b6h ; 013d4 db 02eh, 00fh, 000h, 00fh ; 013d8 db 099h, 0a3h, 0adh, 0b7h ; 013dc db 0f6h, 00eh, 000h, 000h ; 013e0 db 0ffh, 0ffh, 0ffh, 0ffh ; 013e4 db 0f6h, 00eh, 000h, 000h ; 013e8 db 0ffh, 0ffh, 0ffh, 0ffh ; 013ec db 0f6h, 00eh, 000h, 000h ; 013f0 db 0ffh, 0ffh, 0ffh, 0ffh ; 013f4 db 0f6h, 00eh, 000h, 000h ; 013f8 db 0ffh, 0ffh, 0ffh, 0ffh ; 013fc db 0f6h, 00eh, 000h, 000h ; 01400 db 0ffh, 0ffh, 0ffh, 0ffh ; 01404 org 01408h LC_DEADKY1: db 1fh dup (0) ; 1408 org 01427h UC_DEADKY1: db 1fh dup (0) ; 1427 org 01446h LC_DEADKY2: db 1fh dup (0) ; 1446 org 01465h UC_DEADKY2: db 1fh dup (0) ; 1465 org 01484h TABLE1_SIZE dw 00015h ; 1484 org 01486h TABLE1: ; 1486 dw SET_MODE ; 1486 -> 1500 dw SET_CTYPE ; 1488 -> 16ce dw SET_CPOS ; 148a -> 1745 dw READ_CURSOR ; 148c -> 17c3 dw READ_LPEN ; 148e -> 156e dw ACT_DISP_PAGE ; 1490 -> 17f7 dw SCROLL_UP ; 1492 -> 1842 dw SCROLL_DOWN ; 1494 -> 190f dw READ_AC_CURRENT ; 1496 -> 1da4 dw WRITE_AC_CURRENT ; 1498 -> 1dfc dw WRITE_C_CURRENT ; 149a -> 1e37 dw ERROR1 ; 149c -> 1571 dw ERROR1 ; 149e -> 1571 dw ERROR1 ; 14a0 -> 1571 dw WRITE_TTY ; 14a2 -> 1e5c dw VIDEO_STATE ; 14a4 -> 1512 dw VD_GEN_CHR ; 14a6 -> 152e dw WRITE_A_CURRENT ; 14a8 -> 1fd9 dw OMNI_SCROLL ; 14aa -> 201a dw ERROR1 ; 14ac -> 1571 dw ERROR1 ; 14ae -> 1571 org 014b0h TABLE2_SIZE dw 00015h ; 14b0 org 014b2h TABLE2: ; 14b2 dw SET_MODE ; 14b2 -> 1500 dw GR_SET_CTYPE ; 14b4 -> 231a dw GR_SET_CPOS ; 14b6 -> 235e dw GR_READ_CURSOR ; 14b8 -> 2368 dw READ_LPEN ; 14ba -> 156e dw ERROR1 ; 14bc -> 1571 dw GR_SCROLL_UP ; 14be -> 267f dw GR_SCROLL_DOWN ; 14c0 -> 2839 dw GR_READ_AC_CURRENT ; 14c2 -> 2385 dw GR_WRITE_AC_CURRENT ; 14c4 -> 23ca dw GR_WRITE_C_CURRENT ; 14c6 -> 24d9 dw GR_SET_COLOR ; 14c8 -> 2aea dw GR_WRITE_DOT ; 14ca -> 2ba1 dw GR_READ_DOT ; 14cc -> 2ccb dw GR_WRITE_TTY ; 14ce -> 2543 dw VIDEO_STATE ; 14d0 -> 1512 dw VD_GEN_CHR ; 14d2 -> 152e dw GR_CHANGE_A_CURRENT ; 14d4 -> 2494 dw GR_OMNI_SCROLL ; 14d6 -> 28ae dw GR_WRITE_LINE ; 14d8 -> 2bb1 dw GR_GET_PUT ; 14da -> 2d1c org 014dch VIDEO_IO proc near public ; 14dc sti ; 14dc - fb pusha ; 14dd - 60 push ds ; 14de - 1e push es ; 14df - 06 mov di, 05a2h ; 14e0 - bf a2 05 mov ds, di ; 14e3 - 8e df mov di, word ptr ds:[06eh] ; 14e5 - 8b 3e 6e 00 VIDEO_IO_20: ; 14e9 jmp SWITCH ; 14e9 - e9 33 f8 -> 0d1f VIDEO_IO endp org 014ech SET_TABLE: ; 14ec dw S9007_40 ; 14ec -> 1574 dw GR_40 ; 14ee -> 3714 dw S9007_80 ; 14f0 -> 1624 dw GR_80 ; 14f2 -> 3750 dw GR_320X200C ; 14f4 -> 378c dw GR_320X200B ; 14f6 -> 37b9 dw GR_640X200B ; 14f8 -> 37f7 dw S9007_80 ; 14fa -> 1624 dw GR_640X400C ; 14fc -> 3842 dw GR_640X400B ; 14fe -> 386f org 01500h SET_MODE proc near public ; 1500 cmp al, 0ah ; 1500 - 3c 0a jnbe ERROR3 ; 1502 - 77 0b -> 150f mov bl, al ; 1504 - 8a d8 xor bh, bh ; 1506 - 32 ff shl bx, 1 ; 1508 - d1 e3 jmp cs:[bx + 14ech] ; 150a - 2e ff a7 ec 14 ERROR3: ; 150f mov al, 3 ; 150f - b0 03 ret ; 1511 - c3 SET_MODE endp org 01512h VIDEO_STATE proc near public ; 1512 push ds ; 1512 - 1e mov ax, 0 ; 1513 - b8 00 00 mov ds, ax ; 1516 - 8e d8 mov al, ds:[0488h] ; 1518 - a0 88 04 mov byte ptr [bp + 012h], al ; 151b - 88 46 12 mov al, ds:[0489h] ; 151e - a0 89 04 mov byte ptr [bp + 00dh], al ; 1521 - 88 46 0d pop ds ; 1524 - 1f mov al, ds:[0aeh] ; 1525 - a0 ae 00 mov byte ptr [bp + 013h], al ; 1528 - 88 46 13 xor al, al ; 152b - 32 c0 ret ; 152d - c3 VIDEO_STATE endp org 0152eh VD_GEN_CHR proc near public ; 152e and al, 0fbh ; 152e - 24 fb or al, 4 ; 1530 - 0c 04 push ds ; 1532 - 1e mov cx, 0 ; 1533 - b9 00 00 mov ds, cx ; 1536 - 8e d9 mov si, 0476h ; 1538 - be 76 04 push ax ; 153b - 50 and ax, 6 ; 153c - 25 06 00 add ax, ax ; 153f - 03 c0 add si, ax ; 1541 - 03 f0 pop ax ; 1543 - 58 test al, 1 ; 1544 - a8 01 jnz VD_GEN_SET ; 1546 - 75 0a -> 1552 VD_GEN_GET: ; 1548 les bx, ds:[si] ; 1548 - c4 1c mov word ptr [bp + 00ch], bx ; 154a - 89 5e 0c mov word ptr [bp + 0], es ; 154d - 8c 46 00 jmp VD_GEN_EXIT ; 1550 - eb 18 -> 156a VD_GEN_SET: ; 1552 test al, 4 ; 1552 - a8 04 jnz VD_GEN_PGM ; 1554 - 75 07 -> 155d mov word ptr ds:[si], bx ; 1556 - 89 1c mov word ptr ds:[si + 2], es ; 1558 - 8c 44 02 jmp VD_GEN_EXIT ; 155b - eb 0d -> 156a VD_GEN_PGM: ; 155d push es ; 155d - 06 push bx ; 155e - 53 les di, ds:[si] ; 155f - c4 3c pop si ; 1561 - 5e pop ds ; 1562 - 1f mov cx, 0800h ; 1563 - b9 00 08 VD_GEN_PGM_1: ; 1566 movsb ; 1566 - a4 inc di ; 1567 - 47 loop VD_GEN_PGM_1 ; 1568 - e2 fc -> 1566 VD_GEN_EXIT: ; 156a pop ds ; 156a - 1f xor al, al ; 156b - 32 c0 ret ; 156d - c3 VD_GEN_CHR endp org 0156eh READ_LPEN proc near public ; 156e xor al, al ; 156e - 32 c0 ret ; 1570 - c3 READ_LPEN endp org 01571h ERROR1 proc near public ; 1571 mov al, 1 ; 1571 - b0 01 ret ; 1573 - c3 ERROR1 endp S9007_40 proc near public ; 1574 call SET_COLOR_ALPHA ; 1574 - e8 37 01 -> 16ae mov ax, ds:[1ch] ; 1577 - a1 1c 00 test ah, 1 ; 157a - f6 c4 01 jnz S9007_40_10 ; 157d - 75 06 -> 1585 xor al, al ; 157f - 32 c0 mov dx, 01a0h ; 1581 - ba a0 01 out dx, al ; 1584 - ee S9007_40_10: ; 1585 mov word ptr ds:[046h], 1 ; 1585 - c7 06 46 00 01 00 mov word ptr ds:[048h], 03e8h ; 158b - c7 06 48 00 e8 03 mov byte ptr ds:[0aeh], 28h ; 1591 - c6 06 ae 00 28 mov word ptr ds:[06eh], 1484h ; 1596 - c7 06 6e 00 84 14 call SET_ACTIVE ; 159c - e8 75 00 -> 1614 mov ax, 05a2h ; 159f - b8 a2 05 mov es, ax ; 15a2 - 8e c0 mov di, 00d2h ; 15a4 - bf d2 00 mov cx, 0200h ; 15a7 - b9 00 02 mov al, ds:[09ch] ; 15aa - a0 9c 00 xor ah, ah ; 15ad - 32 e4 mul cx ; 15af - f7 e1 mov dl, 1 ; 15b1 - b2 01 WRITE_FOUR_TABLES: ; 15b3 mov bh, 40h ; 15b3 - b7 40 call WRT_ROW_TBL ; 15b5 - e8 4c 00 -> 1604 dec dl ; 15b8 - fe ca jnz WRITE_FOUR_TABLES ; 15ba - 75 f7 -> 15b3 jmp TEMP_JOR ; 15bc - eb 0f -> 15cd nop ; 15be - 90 S9007_UNREACHABLE: ; 15bf mov ax, 2002h ; 15bf - b8 02 20 mov dl, 4 ; 15c2 - b2 04 WRITE_NEXT_FOUR: ; 15c4 mov bh, 40h ; 15c4 - b7 40 call WRT_ROW_TBL ; 15c6 - e8 3b 00 -> 1604 dec dl ; 15c9 - fe ca jnz WRITE_NEXT_FOUR ; 15cb - 75 f7 -> 15c4 TEMP_JOR: ; 15cd mov bx, 0762h ; 15cd - bb 62 07 mov es, bx ; 15d0 - 8e c3 xor al, al ; 15d2 - 32 c0 call ACT_DISP_PAGE ; 15d4 - e8 20 02 -> 17f7 xor ax, ax ; 15d7 - 33 c0 push es ; 15d9 - 06 mov dx, 05a2h ; 15da - ba a2 05 mov es, dx ; 15dd - 8e c2 mov di, 2 ; 15df - bf 02 00 mov cx, 8 ; 15e2 - b9 08 00 rep stosw ; 15e5 - f3 ab pop es ; 15e7 - 07 mov bh, 8 ; 15e8 - b7 08 mov byte ptr ds:[08dh], 7 ; 15ea - c6 06 8d 00 07 call BLANK_PAGE ; 15ef - e8 83 02 -> 1875 mov bl, 0 ; 15f2 - b3 00 mov word ptr ds:[040h], 0019h ; 15f4 - c7 06 40 00 19 00 mov word ptr ds:[012h], 0028h ; 15fa - c7 06 12 00 28 00 call LOAD_MODE ; 1600 - e8 9b 00 -> 169e ret ; 1603 - c3 S9007_40 endp org 01604h WRT_ROW_TBL proc near public ; 1604 mov cx, 001bh ; 1604 - b9 1b 00 and ah, 3fh ; 1607 - 80 e4 3f or ah, bh ; 160a - 0a e7 cld ; 160c - fc STORE_IT: ; 160d stosw ; 160d - ab add ax, 50h ; 160e - 05 50 00 loop STORE_IT ; 1611 - e2 fa -> 160d ret ; 1613 - c3 WRT_ROW_TBL endp org 01614h SET_ACTIVE proc near public ; 1614 push ds ; 1614 - 1e mov ax, 0 ; 1615 - b8 00 00 mov ds, ax ; 1618 - 8e d8 xor al, al ; 161a - 32 c0 mov ds:[0489h], al ; 161c - a2 89 04 pop ds ; 161f - 1f mov ds:[08ch], al ; 1620 - a2 8c 00 ret ; 1623 - c3 SET_ACTIVE endp S9007_80 proc near public ; 1624 call SET_COLOR_ALPHA ; 1624 - e8 87 00 -> 16ae mov ax, ds:[1ch] ; 1627 - a1 1c 00 test ah, 1 ; 162a - f6 c4 01 jnz S9007_80_10 ; 162d - 75 06 -> 1635 xor al, al ; 162f - 32 c0 mov dx, 01a0h ; 1631 - ba a0 01 out dx, al ; 1634 - ee S9007_80_10: ; 1635 mov word ptr ds:[046h], 1 ; 1635 - c7 06 46 00 01 00 mov word ptr ds:[048h], 07d0h ; 163b - c7 06 48 00 d0 07 mov byte ptr ds:[0aeh], 50h ; 1641 - c6 06 ae 00 50 mov word ptr ds:[06eh], 1484h ; 1646 - c7 06 6e 00 84 14 call SET_ACTIVE ; 164c - e8 c5 ff -> 1614 mov ax, 05a2h ; 164f - b8 a2 05 mov es, ax ; 1652 - 8e c0 mov di, 00d2h ; 1654 - bf d2 00 mov cx, 0200h ; 1657 - b9 00 02 mov al, ds:[09ch] ; 165a - a0 9c 00 xor ah, ah ; 165d - 32 e4 mul cx ; 165f - f7 e1 mov dl, 1 ; 1661 - b2 01 WRITE_FOUR_ONLY: ; 1663 mov bh, 0 ; 1663 - b7 00 call WRT_ROW_TBL ; 1665 - e8 9c ff -> 1604 dec dl ; 1668 - fe ca jnz WRITE_FOUR_ONLY ; 166a - 75 f7 -> 1663 mov al, 0ffh ; 166c - b0 ff call ACT_DISP_PAGE ; 166e - e8 86 01 -> 17f7 xor ax, ax ; 1671 - 33 c0 push es ; 1673 - 06 mov dx, 05a2h ; 1674 - ba a2 05 mov es, dx ; 1677 - 8e c2 mov di, 2 ; 1679 - bf 02 00 mov cx, 8 ; 167c - b9 08 00 rep stosw ; 167f - f3 ab pop es ; 1681 - 07 mov bh, 8 ; 1682 - b7 08 mov byte ptr ds:[08dh], 7 ; 1684 - c6 06 8d 00 07 call BLANK_PAGE ; 1689 - e8 e9 01 -> 1875 mov bl, 2 ; 168c - b3 02 mov word ptr ds:[040h], 0019h ; 168e - c7 06 40 00 19 00 mov word ptr ds:[012h], 0050h ; 1694 - c7 06 12 00 50 00 call LOAD_MODE ; 169a - e8 01 00 -> 169e ret ; 169d - c3 S9007_80 endp org 0169eh LOAD_MODE proc near public ; 169e push ds ; 169e - 1e mov byte ptr ds:[091h], bl ; 169f - 88 1e 91 00 mov ax, 0 ; 16a3 - b8 00 00 mov ds, ax ; 16a6 - 8e d8 mov byte ptr ds:[0488h], bl ; 16a8 - 88 1e 88 04 pop ds ; 16ac - 1f ret ; 16ad - c3 LOAD_MODE endp org 016aeh SET_COLOR_ALPHA proc near public ; 16ae mov ah, 7fh ; 16ae - b4 7f mov al, 080h ; 16b0 - b0 80 call OUT_VD_ADDR ; 16b2 - e8 4b f5 -> 0c00 mov dx, 0198h ; 16b5 - ba 98 01 mov al, 0 ; 16b8 - b0 00 out dx, al ; 16ba - ee add dx, 2 ; 16bb - 83 c2 02 mov al, 7 ; 16be - b0 07 out dx, al ; 16c0 - ee add dx, 2 ; 16c1 - 83 c2 02 mov al, 0 ; 16c4 - b0 00 out dx, al ; 16c6 - ee add dx, 2 ; 16c7 - 83 c2 02 mov al, 0fh ; 16ca - b0 0f out dx, al ; 16cc - ee ret ; 16cd - c3 SET_COLOR_ALPHA endp org 016ceh SET_CTYPE proc near public ; 16ce push dx ; 16ce - 52 mov byte ptr ds:[090h], 0 ; 16cf - c6 06 90 00 00 test ch, 20h ; 16d4 - f6 c5 20 jz BLANK_CHECK ; 16d7 - 74 05 -> 16de or byte ptr ds:[090h], 1 ; 16d9 - 80 0e 90 00 01 BLANK_CHECK: ; 16de and byte ptr ds:[0c1h], 0feh ; 16de - 80 26 c1 00 fe test ch, 40h ; 16e3 - f6 c5 40 jz SIZE_CHECK ; 16e6 - 74 11 -> 16f9 or byte ptr ds:[0c1h], 1 ; 16e8 - 80 0e c1 00 01 mov al, 2 ; 16ed - b0 02 mov dx, 0132h ; 16ef - ba 32 01 out dx, al ; 16f2 - ee mov al, 1ah ; 16f3 - b0 1a mov dx, 0130h ; 16f5 - ba 30 01 out dx, al ; 16f8 - ee SIZE_CHECK: ; 16f9 and ch, 1fh ; 16f9 - 80 e5 1f cmp ch, 8 ; 16fc - 80 fd 08 jnb SET_UNDERLINE ; 16ff - 73 0a -> 170b and cl, 1fh ; 1701 - 80 e1 1f sub cl, ch ; 1704 - 2a cd cmp cl, 6 ; 1706 - 80 f9 06 jnb SET_BLOCK ; 1709 - 73 07 -> 1712 SET_UNDERLINE: ; 170b or byte ptr ds:[090h], 0 ; 170b - 80 0e 90 00 00 jmp SC_RET ; 1710 - eb 05 -> 1717 SET_BLOCK: ; 1712 or byte ptr ds:[090h], 2 ; 1712 - 80 0e 90 00 02 SC_RET: ; 1717 pop dx ; 1717 - 5a call WRITE_NEW_CURSOR ; 1718 - e8 86 00 -> 17a1 ret ; 171b - c3 SET_CTYPE endp org 0171ch SET_DEF_CUR proc near public ; 171c call SET_DEFAULT ; 171c - e8 01 00 -> 1720 retf ; 171f - cb SET_DEF_CUR endp org 01720h SET_DEFAULT proc near public ; 1720 mov dx, word ptr ds:[010ah] ; 1720 - 8b 16 0a 01 mov es, dx ; 1724 - 8e c2 mov di, 0 ; 1726 - bf 00 00 mov ax, ds:[48h] ; 1729 - a1 48 00 mov bx, word ptr ds:[046h] ; 172c - 8b 1e 46 00 mul bx ; 1730 - f7 e3 mov cx, ax ; 1732 - 8b c8 cld ; 1734 - fc ATTRIB_LD: ; 1735 mov ax, word ptr es:[di] ; 1735 - 26 8b 05 and ah, 0fch ; 1738 - 80 e4 fc or ah, byte ptr ds:[090h] ; 173b - 0a 26 90 00 stosw ; 173f - ab nop ; 1740 - 90 nop ; 1741 - 90 loop ATTRIB_LD ; 1742 - e2 f1 -> 1735 ret ; 1744 - c3 SET_DEFAULT endp org 01745h SET_CPOS proc near public ; 1745 cmp bh, 0ffh ; 1745 - 80 ff ff jnz PAGE_VALID ; 1748 - 75 04 -> 174e mov bh, byte ptr ds:[08ch] ; 174a - 8a 3e 8c 00 PAGE_VALID: ; 174e cmp bh, 7 ; 174e - 80 ff 07 jnbe CPOS_ERROR ; 1751 - 77 48 -> 179b cmp dh, 19h ; 1753 - 80 fe 19 jbe COL_CHECK ; 1756 - 76 08 -> 1760 ROW_MOD: ; 1758 sub dh, 19h ; 1758 - 80 ee 19 cmp dh, 19h ; 175b - 80 fe 19 jnbe ROW_MOD ; 175e - 77 f8 -> 1758 COL_CHECK: ; 1760 mov ah, byte ptr ds:[0aeh] ; 1760 - 8a 26 ae 00 cmp dl, ah ; 1764 - 3a d4 jbe STORE_CURS ; 1766 - 76 06 -> 176e COL_MOD: ; 1768 sub dl, ah ; 1768 - 2a d4 cmp dl, ah ; 176a - 3a d4 jnbe COL_MOD ; 176c - 77 fa -> 1768 STORE_CURS: ; 176e mov cl, bh ; 176e - 8a cf xor ch, ch ; 1770 - 32 ed shl cx, 1 ; 1772 - d1 e1 mov si, cx ; 1774 - 8b f1 mov word ptr ds:[si + 2], dx ; 1776 - 89 94 02 00 push bx ; 177a - 53 mov bl, bh ; 177b - 8a df xor bh, bh ; 177d - 32 ff call MEMORY_POSN ; 177f - e8 0a 01 -> 188c pop bx ; 1782 - 5b mov ax, word ptr es:[di] ; 1783 - 26 8b 05 and ah, 0fch ; 1786 - 80 e4 fc or ah, byte ptr ds:[090h] ; 1789 - 0a 26 90 00 mov word ptr es:[di], ax ; 178d - 26 89 05 cmp byte ptr ds:[08ch], bh ; 1790 - 38 3e 8c 00 jnz CPOS_RETURN ; 1794 - 75 08 -> 179e call WRITE_NEW_CURSOR ; 1796 - e8 08 00 -> 17a1 jmp CPOS_RETURN ; 1799 - eb 03 -> 179e CPOS_ERROR: ; 179b mov byte ptr [bp + 012h], al ; 179b - 88 46 12 CPOS_RETURN: ; 179e xor al, al ; 179e - 32 c0 ret ; 17a0 - c3 SET_CPOS endp org 017a1h WRITE_NEW_CURSOR proc near public ; 17a1 test byte ptr ds:[0c1h], 1 ; 17a1 - f6 06 c1 00 01 jnz WRITE_NEW_RET ; 17a6 - 75 1a -> 17c2 mov cl, byte ptr ds:[08ch] ; 17a8 - 8a 0e 8c 00 xor ch, ch ; 17ac - 32 ed shl cx, 1 ; 17ae - d1 e1 mov si, cx ; 17b0 - 8b f1 mov cx, word ptr ds:[si + 2] ; 17b2 - 8b 8c 02 00 mov al, ch ; 17b6 - 8a c5 mov dx, 0130h ; 17b8 - ba 30 01 out dx, al ; 17bb - ee mov al, cl ; 17bc - 8a c1 mov dx, 0132h ; 17be - ba 32 01 out dx, al ; 17c1 - ee WRITE_NEW_RET: ; 17c2 ret ; 17c2 - c3 WRITE_NEW_CURSOR endp org 017c3h READ_CURSOR proc near public ; 17c3 mov bl, bh ; 17c3 - 8a df xor bh, bh ; 17c5 - 32 ff shl bx, 1 ; 17c7 - d1 e3 mov dx, word ptr ds:[bx + 2] ; 17c9 - 8b 97 02 00 mov word ptr [bp + 00eh], dx ; 17cd - 89 56 0e xor ch, ch ; 17d0 - 32 ed mov al, ds:[090h] ; 17d2 - a0 90 00 test al, 2 ; 17d5 - a8 02 jnz SET_CURSOR_END ; 17d7 - 75 02 -> 17db mov ch, 7 ; 17d9 - b5 07 SET_CURSOR_END: ; 17db mov cl, 7 ; 17db - b1 07 and ch, 0dfh ; 17dd - 80 e5 df test al, 1 ; 17e0 - a8 01 jz newtag ; 17e2 - 74 03 -> 17e7 or ch, 20h ; 17e4 - 80 cd 20 newtag: ; 17e7 test byte ptr ds:[0c1h], 1 ; 17e7 - f6 06 c1 00 01 jz SAVE_CX ; 17ec - 74 03 -> 17f1 or ch, 40h ; 17ee - 80 cd 40 SAVE_CX: ; 17f1 mov word ptr [bp + 010h], cx ; 17f1 - 89 4e 10 xor al, al ; 17f4 - 32 c0 ret ; 17f6 - c3 READ_CURSOR endp org 017f7h ACT_DISP_PAGE proc near public ; 17f7 mov bl, byte ptr ds:[08ch] ; 17f7 - 8a 1e 8c 00 xor bh, bh ; 17fb - 32 ff cmp al, 0ffh ; 17fd - 3c ff jnz VALID_PAGE ; 17ff - 75 04 -> 1805 xor al, al ; 1801 - 32 c0 jmp NEW_ACTIVE ; 1803 - eb 06 -> 180b VALID_PAGE: ; 1805 cmp al, 7 ; 1805 - 3c 07 jnbe ACT_PARAM_ERROR ; 1807 - 77 36 -> 183f nop ; 1809 - 90 nop ; 180a - 90 NEW_ACTIVE: ; 180b mov bx, 0 ; 180b - bb 00 00 mov es, bx ; 180e - 8e c3 mov es:[0489h], al ; 1810 - 26 a2 89 04 mov ds:[08ch], al ; 1814 - a2 8c 00 mov es, word ptr es:[0474h] ; 1817 - 26 8e 06 74 04 mov di, word ptr ds:[000h] ; 181c - 8b 3e 00 00 mov bl, byte ptr ds:[08ch] ; 1820 - 8a 1e 8c 00 xor bh, bh ; 1824 - 32 ff mov si, word ptr ds:[bx + 0d0h] ; 1826 - 8b b7 d0 00 mov cx, 001bh ; 182a - b9 1b 00 cld ; 182d - fc MT_1: ; 182e lodsw ; 182e - ad stosb ; 182f - aa inc di ; 1830 - 47 xchg ah, al ; 1831 - 86 c4 cld ; 1833 - fc stosb ; 1834 - aa inc di ; 1835 - 47 nop ; 1836 - 90 nop ; 1837 - 90 loop MT_1 ; 1838 - e2 f4 -> 182e call WRITE_NEW_CURSOR ; 183a - e8 64 ff -> 17a1 jmp ACT_RETURN ; 183d - eb 02 -> 1841 ACT_PARAM_ERROR: ; 183f mov al, 4 ; 183f - b0 04 ACT_RETURN: ; 1841 ret ; 1841 - c3 ACT_DISP_PAGE endp org 01842h SCROLL_UP proc near public ; 1842 mov byte ptr ds:[08dh], bh ; 1842 - 88 3e 8d 00 call WINDOW_VALID ; 1846 - e8 2e 01 -> 1977 jnz SU_RETURN ; 1849 - 75 29 -> 1874 call WINDOW_SIZE ; 184b - e8 f4 00 -> 1942 cmp byte ptr ds:[0b4h], 1 ; 184e - 80 3e b4 00 01 jnz NOT_SMOOTH_UP ; 1853 - 75 1c -> 1871 cmp al, 0 ; 1855 - 3c 00 jnz SMOOTH_CHECK ; 1857 - 75 05 -> 185e call JUMP_UP ; 1859 - e8 04 04 -> 1c60 jmp SU_RETURN ; 185c - eb 16 -> 1874 SMOOTH_CHECK: ; 185e push ds ; 185e - 1e mov si, 0 ; 185f - be 00 00 mov ds, si ; 1862 - 8e de cmp byte ptr ds:[048eh], 0 ; 1864 - 80 3e 8e 04 00 pop ds ; 1869 - 1f jz NOT_SMOOTH_UP ; 186a - 74 05 -> 1871 call SMOOTH_UP ; 186c - e8 25 01 -> 1994 jmp SU_RETURN ; 186f - eb 03 -> 1874 NOT_SMOOTH_UP: ; 1871 call JUMP_UP ; 1871 - e8 ec 03 -> 1c60 SU_RETURN: ; 1874 ret ; 1874 - c3 SCROLL_UP endp org 01875h BLANK_PAGE proc near public ; 1875 mov dl, byte ptr ds:[0aeh] ; 1875 - 8a 16 ae 00 mov byte ptr ds:[0bch], dl ; 1879 - 88 16 bc 00 mov cx, 0019h ; 187d - b9 19 00 xor dx, dx ; 1880 - 33 d2 CALL_BLANK: ; 1882 call BLANK_ROW ; 1882 - e8 69 04 -> 1cee inc dh ; 1885 - fe c6 nop ; 1887 - 90 nop ; 1888 - 90 loop CALL_BLANK ; 1889 - e2 f7 -> 1882 ret ; 188b - c3 BLANK_PAGE endp org 0188ch MEMORY_POSN proc near public ; 188c push ax ; 188c - 50 push dx ; 188d - 52 push cx ; 188e - 51 cmp bx, 0ffh ; 188f - 81 fb ff 00 jnz ACTIVE ; 1893 - 75 06 -> 189b mov bl, byte ptr ds:[08ch] ; 1895 - 8a 1e 8c 00 xor bh, bh ; 1899 - 32 ff ACTIVE: ; 189b mov cx, 0 ; 189b - b9 00 00 mov es, cx ; 189e - 8e c1 mov cx, word ptr es:[0474h] ; 18a0 - 26 8b 0e 74 04 mov es, cx ; 18a5 - 8e c1 mov di, word ptr ds:[000h] ; 18a7 - 8b 3e 00 00 mov al, dh ; 18ab - 8a c6 xor ah, ah ; 18ad - 32 e4 shl ax, 02h ; 18af - c1 e0 02 add di, ax ; 18b2 - 03 f8 mov al, byte ptr es:[di] ; 18b4 - 26 8a 05 mov ah, byte ptr es:[di + 2] ; 18b7 - 26 8a 65 02 and ah, 3fh ; 18bb - 80 e4 3f shl ax, 1 ; 18be - d1 e0 xor dh, dh ; 18c0 - 32 f6 shl dx, 1 ; 18c2 - d1 e2 add ax, dx ; 18c4 - 03 c2 mov di, ax ; 18c6 - 8b f8 mov cx, es ; 18c8 - 8c c1 sub cx, word ptr ds:[086h] ; 18ca - 2b 0e 86 00 mov es, cx ; 18ce - 8e c1 pop cx ; 18d0 - 59 pop dx ; 18d1 - 5a pop ax ; 18d2 - 58 ret ; 18d3 - c3 MEMORY_POSN endp org 018d4h MAP_ATTRIB proc near public ; 18d4 mov bl, 8 ; 18d4 - b3 08 test bh, 080h ; 18d6 - f6 c7 80 jz TEST_INTEN ; 18d9 - 74 03 -> 18de or bl, 20h ; 18db - 80 cb 20 TEST_INTEN: ; 18de test bh, 8 ; 18de - f6 c7 08 jz TEST_REVID ; 18e1 - 74 03 -> 18e6 or bl, 40h ; 18e3 - 80 cb 40 TEST_REVID: ; 18e6 and bh, 77h ; 18e6 - 80 e7 77 test bh, 70h ; 18e9 - f6 c7 70 jz TEST_3 ; 18ec - 74 03 -> 18f1 or bl, 080h ; 18ee - 80 cb 80 TEST_3: ; 18f1 cmp bh, 0 ; 18f1 - 80 ff 00 jnz TEST_UNDER ; 18f4 - 75 03 -> 18f9 or bl, 4 ; 18f6 - 80 cb 04 TEST_UNDER: ; 18f9 and bh, 7 ; 18f9 - 80 e7 07 cmp bh, 1 ; 18fc - 80 ff 01 jnz ANY_SET ; 18ff - 75 03 -> 1904 or bl, 10h ; 1901 - 80 cb 10 ANY_SET: ; 1904 cmp bl, 0 ; 1904 - 80 fb 00 jnz SET_ATTRIB ; 1907 - 75 03 -> 190c or bl, 084h ; 1909 - 80 cb 84 SET_ATTRIB: ; 190c mov bh, bl ; 190c - 8a fb ret ; 190e - c3 MAP_ATTRIB endp org 0190fh SCROLL_DOWN proc near public ; 190f mov byte ptr ds:[08dh], bh ; 190f - 88 3e 8d 00 call WINDOW_VALID ; 1913 - e8 61 00 -> 1977 jnz SD_RETURN ; 1916 - 75 29 -> 1941 call WINDOW_SIZE ; 1918 - e8 27 00 -> 1942 cmp byte ptr ds:[0b4h], 1 ; 191b - 80 3e b4 00 01 jnz NOT_SMOOTH_DOWN ; 1920 - 75 1c -> 193e cmp al, 0 ; 1922 - 3c 00 jnz CHECK_SMOOTH ; 1924 - 75 05 -> 192b call JUMP_DOWN ; 1926 - e8 1c 04 -> 1d45 jmp SD_RETURN ; 1929 - eb 16 -> 1941 CHECK_SMOOTH: ; 192b push ds ; 192b - 1e mov si, 0 ; 192c - be 00 00 mov ds, si ; 192f - 8e de cmp byte ptr ds:[048eh], 0 ; 1931 - 80 3e 8e 04 00 pop ds ; 1936 - 1f jz NOT_SMOOTH_DOWN ; 1937 - 74 05 -> 193e call SMOOTH_DOWN ; 1939 - e8 b5 01 -> 1af1 jmp SD_RETURN ; 193c - eb 03 -> 1941 NOT_SMOOTH_DOWN: ; 193e call JUMP_DOWN ; 193e - e8 04 04 -> 1d45 SD_RETURN: ; 1941 ret ; 1941 - c3 SCROLL_DOWN endp org 01942h WINDOW_SIZE proc near public ; 1942 cmp ch, 0 ; 1942 - 80 fd 00 jnz NOT_FULL_HEIGHT ; 1945 - 75 0f -> 1956 mov bl, 19h ; 1947 - b3 19 dec bl ; 1949 - fe cb cmp dh, bl ; 194b - 3a f3 jnz NOT_FULL_HEIGHT ; 194d - 75 07 -> 1956 mov byte ptr ds:[0b3h], 1 ; 194f - c6 06 b3 00 01 jmp WIDTH_CHECK ; 1954 - eb 05 -> 195b NOT_FULL_HEIGHT: ; 1956 mov byte ptr ds:[0b3h], 0 ; 1956 - c6 06 b3 00 00 WIDTH_CHECK: ; 195b cmp cl, 0 ; 195b - 80 f9 00 jnz NOT_FULL_WIDTH ; 195e - 75 11 -> 1971 mov bl, byte ptr ds:[0aeh] ; 1960 - 8a 1e ae 00 dec bl ; 1964 - fe cb cmp dl, bl ; 1966 - 3a d3 jnz NOT_FULL_WIDTH ; 1968 - 75 07 -> 1971 mov byte ptr ds:[0b4h], 1 ; 196a - c6 06 b4 00 01 jmp WS_RETURN ; 196f - eb 05 -> 1976 NOT_FULL_WIDTH: ; 1971 mov byte ptr ds:[0b4h], 0 ; 1971 - c6 06 b4 00 00 WS_RETURN: ; 1976 ret ; 1976 - c3 WINDOW_SIZE endp org 01977h WINDOW_VALID proc near public ; 1977 mov bl, 19h ; 1977 - b3 19 dec bl ; 1979 - fe cb cmp dh, bl ; 197b - 3a f3 jbe ROWS_OK ; 197d - 76 02 -> 1981 mov dh, bl ; 197f - 8a f3 ROWS_OK: ; 1981 mov bl, byte ptr ds:[0aeh] ; 1981 - 8a 1e ae 00 dec bl ; 1985 - fe cb cmp dl, bl ; 1987 - 3a d3 jbe PARAM_OK ; 1989 - 76 02 -> 198d mov dl, bl ; 198b - 8a d3 PARAM_OK: ; 198d xor ah, ah ; 198d - 32 e4 jmp WV_RETURN ; 198f - eb 02 -> 1993 db 0b4h ; 1991 db 004h ; 1992 WV_RETURN: ; 1993 ret ; 1993 - c3 WINDOW_VALID endp org 01994h SMOOTH_UP proc near public ; 1994 mov byte ptr ds:[08dh], bh ; 1994 - 88 3e 8d 00 mov ds:[0b7h], al ; 1998 - a2 b7 00 mov byte ptr ds:[0bdh], ch ; 199b - 88 2e bd 00 mov byte ptr ds:[0beh], dh ; 199f - 88 36 be 00 sub dl, cl ; 19a3 - 2a d1 sub dh, ch ; 19a5 - 2a f5 inc dl ; 19a7 - fe c2 inc dh ; 19a9 - fe c6 mov byte ptr ds:[0bbh], dh ; 19ab - 88 36 bb 00 mov byte ptr ds:[0bch], dl ; 19af - 88 16 bc 00 mov dh, 19h ; 19b3 - b6 19 xor dl, dl ; 19b5 - 32 d2 mov bh, byte ptr ds:[08dh] ; 19b7 - 8a 3e 8d 00 call MAP_ATTRIB ; 19bb - e8 16 ff -> 18d4 call BLANK_ROW ; 19be - e8 2d 03 -> 1cee mov al, ds:[0bdh] ; 19c1 - a0 bd 00 mov dx, 0122h ; 19c4 - ba 22 01 out dx, al ; 19c7 - ee mov al, ds:[0beh] ; 19c8 - a0 be 00 inc al ; 19cb - fe c0 mov dx, 0124h ; 19cd - ba 24 01 out dx, al ; 19d0 - ee mov ax, 0 ; 19d1 - b8 00 00 mov es, ax ; 19d4 - 8e c0 mov bl, byte ptr ds:[0b7h] ; 19d6 - 8a 1e b7 00 xor bh, bh ; 19da - 32 ff mov ax, 000fh ; 19dc - b8 0f 00 mul bx ; 19df - f7 e3 mov ds:[44h], ax ; 19e1 - a3 44 00 call SET_CRIT ; 19e4 - e8 cb f0 -> 0ab2 mov word ptr es:[01e4h], 1a24h ; 19e7 - 26 c7 06 e4 01 24 1a mov word ptr es:[01e6h], 0060h ; 19ee - 26 c7 06 e6 01 60 00 call CLR_CRIT ; 19f5 - e8 c9 f0 -> 0ac1 mov dx, 0072h ; 19f8 - ba 72 00 in al, dx ; 19fb - ec and al, 0fdh ; 19fc - 24 fd out dx, al ; 19fe - ee mov al, 1 ; 19ff - b0 01 mov dx, 0134h ; 1a01 - ba 34 01 out dx, al ; 1a04 - ee mov al, 0 ; 1a05 - b0 00 mov dx, 012eh ; 1a07 - ba 2e 01 out dx, al ; 1a0a - ee mov ds:[0b8h], al ; 1a0b - a2 b8 00 mov dx, 0174h ; 1a0e - ba 74 01 in al, dx ; 1a11 - ec LOK_CHECK: ; 1a12 cmp word ptr ds:[044h], 0 ; 1a12 - 83 3e 44 00 00 jnz LOK_CHECK ; 1a17 - 75 f9 -> 1a12 mov al, 1eh ; 1a19 - b0 1e mov dx, 0122h ; 1a1b - ba 22 01 out dx, al ; 1a1e - ee mov dx, 0124h ; 1a1f - ba 24 01 out dx, al ; 1a22 - ee ret ; 1a23 - c3 SMOOTH_UP endp org 01a24h SMOOTH_SCROLL_UP proc near public ; 1a24 sti ; 1a24 - fb push ds ; 1a25 - 1e push es ; 1a26 - 06 pusha ; 1a27 - 60 mov ax, 05a2h ; 1a28 - b8 a2 05 mov ds, ax ; 1a2b - 8e d8 cmp byte ptr ds:[0b8h], 0 ; 1a2d - 80 3e b8 00 00 jnz OFF_INC ; 1a32 - 75 51 -> 1a85 mov al, 19h ; 1a34 - b0 19 mov ah, byte ptr ds:[0beh] ; 1a36 - 8a 26 be 00 sub al, ah ; 1a3a - 2a c4 mov cl, byte ptr ds:[0bch] ; 1a3c - 8a 0e bc 00 xor ch, ch ; 1a40 - 32 ed mov bx, 00ffh ; 1a42 - bb ff 00 mov dh, 1ah ; 1a45 - b6 1a xor dl, dl ; 1a47 - 32 d2 call MEMORY_POSN ; 1a49 - e8 40 fe -> 188c push ds ; 1a4c - 1e push es ; 1a4d - 06 pop ds ; 1a4e - 1f MOVE_MEM_DOWN: ; 1a4f push cx ; 1a4f - 51 push di ; 1a50 - 57 pop si ; 1a51 - 5e sub si, 0a0h ; 1a52 - 81 ee a0 00 push si ; 1a56 - 56 cld ; 1a57 - fc rep movsw ; 1a58 - f3 a5 pop di ; 1a5a - 5f pop cx ; 1a5b - 59 dec al ; 1a5c - fe c8 jnz MOVE_MEM_DOWN ; 1a5e - 75 ef -> 1a4f pop ds ; 1a60 - 1f mov cl, byte ptr ds:[0bch] ; 1a61 - 8a 0e bc 00 xor ch, ch ; 1a65 - 32 ed mov bx, 00ffh ; 1a67 - bb ff 00 mov dh, 1ah ; 1a6a - b6 1a xor dl, dl ; 1a6c - 32 d2 call MEMORY_POSN ; 1a6e - e8 1b fe -> 188c push di ; 1a71 - 57 pop si ; 1a72 - 5e mov dh, byte ptr ds:[0beh] ; 1a73 - 8a 36 be 00 inc dh ; 1a77 - fe c6 xor dl, dl ; 1a79 - 32 d2 call MEMORY_POSN ; 1a7b - e8 0e fe -> 188c push ds ; 1a7e - 1e push es ; 1a7f - 06 pop ds ; 1a80 - 1f cld ; 1a81 - fc rep movsw ; 1a82 - f3 a5 pop ds ; 1a84 - 1f OFF_INC: ; 1a85 mov al, ds:[0b8h] ; 1a85 - a0 b8 00 inc al ; 1a88 - fe c0 mov ds:[0b8h], al ; 1a8a - a2 b8 00 shl al, 1 ; 1a8d - d0 e0 mov dx, 012eh ; 1a8f - ba 2e 01 out dx, al ; 1a92 - ee shr al, 1 ; 1a93 - d0 e8 cmp al, 0fh ; 1a95 - 3c 0f jnb CLEAR_OFF ; 1a97 - 73 03 -> 1a9c jmp LAST_CALL ; 1a99 - eb 47 -> 1ae2 nop ; 1a9b - 90 CLEAR_OFF: ; 1a9c xor al, al ; 1a9c - 32 c0 mov ds:[0b8h], al ; 1a9e - a2 b8 00 mov dx, 012eh ; 1aa1 - ba 2e 01 out dx, al ; 1aa4 - ee mov al, 19h ; 1aa5 - b0 19 mov ah, byte ptr ds:[0bdh] ; 1aa7 - 8a 26 bd 00 sub al, ah ; 1aab - 2a c4 inc al ; 1aad - fe c0 mov cl, byte ptr ds:[0bch] ; 1aaf - 8a 0e bc 00 xor ch, ch ; 1ab3 - 32 ed mov bx, 00ffh ; 1ab5 - bb ff 00 mov dh, byte ptr ds:[0bdh] ; 1ab8 - 8a 36 bd 00 xor dl, dl ; 1abc - 32 d2 call MEMORY_POSN ; 1abe - e8 cb fd -> 188c push ds ; 1ac1 - 1e push es ; 1ac2 - 06 pop ds ; 1ac3 - 1f MOVE_MEM_UP: ; 1ac4 push cx ; 1ac4 - 51 push di ; 1ac5 - 57 pop si ; 1ac6 - 5e add si, 0a0h ; 1ac7 - 81 c6 a0 00 push si ; 1acb - 56 cld ; 1acc - fc rep movsw ; 1acd - f3 a5 pop di ; 1acf - 5f pop cx ; 1ad0 - 59 dec al ; 1ad1 - fe c8 jnz MOVE_MEM_UP ; 1ad3 - 75 ef -> 1ac4 pop ds ; 1ad5 - 1f dec byte ptr ds:[0b7h] ; 1ad6 - fe 0e b7 00 jnz LAST_CALL ; 1ada - 75 06 -> 1ae2 xor al, al ; 1adc - 32 c0 mov dx, 0134h ; 1ade - ba 34 01 out dx, al ; 1ae1 - ee LAST_CALL: ; 1ae2 dec word ptr ds:[044h] ; 1ae2 - ff 0e 44 00 mov dx, 0174h ; 1ae6 - ba 74 01 in al, dx ; 1ae9 - ec call ISSUE_EOI1 ; 1aea - e8 1e f0 -> 0b0b popa ; 1aed - 61 pop es ; 1aee - 07 pop ds ; 1aef - 1f iret ; 1af0 - cf SMOOTH_SCROLL_UP endp org 01af1h SMOOTH_DOWN proc near public ; 1af1 mov byte ptr ds:[08dh], bh ; 1af1 - 88 3e 8d 00 mov ds:[0b7h], al ; 1af5 - a2 b7 00 mov byte ptr ds:[0bdh], ch ; 1af8 - 88 2e bd 00 mov byte ptr ds:[0beh], dh ; 1afc - 88 36 be 00 sub dl, cl ; 1b00 - 2a d1 sub dh, ch ; 1b02 - 2a f5 inc dl ; 1b04 - fe c2 inc dh ; 1b06 - fe c6 mov byte ptr ds:[0bbh], dh ; 1b08 - 88 36 bb 00 mov byte ptr ds:[0bch], dl ; 1b0c - 88 16 bc 00 mov dh, 19h ; 1b10 - b6 19 xor dl, dl ; 1b12 - 32 d2 mov bh, byte ptr ds:[08dh] ; 1b14 - 8a 3e 8d 00 call MAP_ATTRIB ; 1b18 - e8 b9 fd -> 18d4 call BLANK_ROW ; 1b1b - e8 d0 01 -> 1cee mov al, ds:[0bdh] ; 1b1e - a0 bd 00 mov dx, 0122h ; 1b21 - ba 22 01 out dx, al ; 1b24 - ee mov al, ds:[0beh] ; 1b25 - a0 be 00 inc al ; 1b28 - fe c0 mov dx, 0124h ; 1b2a - ba 24 01 out dx, al ; 1b2d - ee mov ax, 0 ; 1b2e - b8 00 00 mov es, ax ; 1b31 - 8e c0 mov bl, byte ptr ds:[0b7h] ; 1b33 - 8a 1e b7 00 xor bh, bh ; 1b37 - 32 ff mov ax, 000fh ; 1b39 - b8 0f 00 mul bx ; 1b3c - f7 e3 mov ds:[44h], ax ; 1b3e - a3 44 00 call SET_CRIT ; 1b41 - e8 6e ef -> 0ab2 mov word ptr es:[01e4h], 1b85h ; 1b44 - 26 c7 06 e4 01 85 1b mov word ptr es:[01e6h], 0060h ; 1b4b - 26 c7 06 e6 01 60 00 call CLR_CRIT ; 1b52 - e8 6c ef -> 0ac1 mov dx, 0072h ; 1b55 - ba 72 00 in al, dx ; 1b58 - ec and al, 0fdh ; 1b59 - 24 fd out dx, al ; 1b5b - ee mov al, 1 ; 1b5c - b0 01 mov dx, 0134h ; 1b5e - ba 34 01 out dx, al ; 1b61 - ee mov dx, 012eh ; 1b62 - ba 2e 01 mov al, 0 ; 1b65 - b0 00 shl al, 1 ; 1b67 - d0 e0 out dx, al ; 1b69 - ee shr al, 1 ; 1b6a - d0 e8 mov ds:[0b8h], al ; 1b6c - a2 b8 00 mov dx, 0174h ; 1b6f - ba 74 01 in al, dx ; 1b72 - ec CHECK_LOK: ; 1b73 cmp word ptr ds:[044h], 0 ; 1b73 - 83 3e 44 00 00 jnz CHECK_LOK ; 1b78 - 75 f9 -> 1b73 mov al, 1eh ; 1b7a - b0 1e mov dx, 0122h ; 1b7c - ba 22 01 out dx, al ; 1b7f - ee mov dx, 0124h ; 1b80 - ba 24 01 out dx, al ; 1b83 - ee ret ; 1b84 - c3 SMOOTH_DOWN endp org 01b85h SMOOTH_SCROLL_DOWN proc near public ; 1b85 sti ; 1b85 - fb push ds ; 1b86 - 1e push es ; 1b87 - 06 pusha ; 1b88 - 60 mov ax, 05a2h ; 1b89 - b8 a2 05 mov ds, ax ; 1b8c - 8e d8 cmp byte ptr ds:[0b8h], 0 ; 1b8e - 80 3e b8 00 00 jnz DEC_OFF ; 1b93 - 75 5c -> 1bf1 mov al, 19h ; 1b95 - b0 19 mov ah, byte ptr ds:[0bdh] ; 1b97 - 8a 26 bd 00 sub al, ah ; 1b9b - 2a c4 inc al ; 1b9d - fe c0 mov cl, byte ptr ds:[0bch] ; 1b9f - 8a 0e bc 00 xor ch, ch ; 1ba3 - 32 ed mov bx, 00ffh ; 1ba5 - bb ff 00 mov dh, 1ah ; 1ba8 - b6 1a xor dl, dl ; 1baa - 32 d2 call MEMORY_POSN ; 1bac - e8 dd fc -> 188c push ds ; 1baf - 1e push es ; 1bb0 - 06 pop ds ; 1bb1 - 1f SHIFT_MEM_DOWN: ; 1bb2 push cx ; 1bb2 - 51 push di ; 1bb3 - 57 pop si ; 1bb4 - 5e sub si, 0a0h ; 1bb5 - 81 ee a0 00 push si ; 1bb9 - 56 cld ; 1bba - fc rep movsw ; 1bbb - f3 a5 pop di ; 1bbd - 5f pop cx ; 1bbe - 59 dec al ; 1bbf - fe c8 jnz SHIFT_MEM_DOWN ; 1bc1 - 75 ef -> 1bb2 pop ds ; 1bc3 - 1f mov cl, byte ptr ds:[0bch] ; 1bc4 - 8a 0e bc 00 xor ch, ch ; 1bc8 - 32 ed mov bx, 00ffh ; 1bca - bb ff 00 mov dh, 1ah ; 1bcd - b6 1a xor dl, dl ; 1bcf - 32 d2 call MEMORY_POSN ; 1bd1 - e8 b8 fc -> 188c push di ; 1bd4 - 57 pop si ; 1bd5 - 5e mov dh, byte ptr ds:[0bdh] ; 1bd6 - 8a 36 bd 00 xor dl, dl ; 1bda - 32 d2 call MEMORY_POSN ; 1bdc - e8 ad fc -> 188c push ds ; 1bdf - 1e push es ; 1be0 - 06 pop ds ; 1be1 - 1f cld ; 1be2 - fc rep movsw ; 1be3 - f3 a5 pop ds ; 1be5 - 1f mov al, 0fh ; 1be6 - b0 0f mov ds:[0b8h], al ; 1be8 - a2 b8 00 shl al, 1 ; 1beb - d0 e0 mov dx, 012eh ; 1bed - ba 2e 01 out dx, al ; 1bf0 - ee DEC_OFF: ; 1bf1 mov al, ds:[0b8h] ; 1bf1 - a0 b8 00 dec al ; 1bf4 - fe c8 mov ds:[0b8h], al ; 1bf6 - a2 b8 00 shl al, 1 ; 1bf9 - d0 e0 mov dx, 012eh ; 1bfb - ba 2e 01 out dx, al ; 1bfe - ee shr al, 1 ; 1bff - d0 e8 cmp al, 0 ; 1c01 - 3c 00 jbe SET_OFFSET ; 1c03 - 76 03 -> 1c08 jmp FINI ; 1c05 - eb 49 -> 1c50 nop ; 1c07 - 90 SET_OFFSET: ; 1c08 mov al, 0 ; 1c08 - b0 00 mov ds:[0b8h], al ; 1c0a - a2 b8 00 shl al, 1 ; 1c0d - d0 e0 mov dx, 012eh ; 1c0f - ba 2e 01 out dx, al ; 1c12 - ee mov al, 19h ; 1c13 - b0 19 mov ah, byte ptr ds:[0beh] ; 1c15 - 8a 26 be 00 sub al, ah ; 1c19 - 2a c4 mov cl, byte ptr ds:[0bch] ; 1c1b - 8a 0e bc 00 xor ch, ch ; 1c1f - 32 ed mov bx, 00ffh ; 1c21 - bb ff 00 mov dh, byte ptr ds:[0beh] ; 1c24 - 8a 36 be 00 inc dh ; 1c28 - fe c6 xor dl, dl ; 1c2a - 32 d2 call MEMORY_POSN ; 1c2c - e8 5d fc -> 188c push ds ; 1c2f - 1e push es ; 1c30 - 06 pop ds ; 1c31 - 1f SHIFT_MEM_UP: ; 1c32 push cx ; 1c32 - 51 push di ; 1c33 - 57 pop si ; 1c34 - 5e add si, 0a0h ; 1c35 - 81 c6 a0 00 push si ; 1c39 - 56 cld ; 1c3a - fc rep movsw ; 1c3b - f3 a5 pop di ; 1c3d - 5f pop cx ; 1c3e - 59 dec al ; 1c3f - fe c8 jnz SHIFT_MEM_UP ; 1c41 - 75 ef -> 1c32 pop ds ; 1c43 - 1f dec byte ptr ds:[0b7h] ; 1c44 - fe 0e b7 00 jnz FINI ; 1c48 - 75 06 -> 1c50 xor al, al ; 1c4a - 32 c0 mov dx, 0134h ; 1c4c - ba 34 01 out dx, al ; 1c4f - ee FINI: ; 1c50 dec word ptr ds:[044h] ; 1c50 - ff 0e 44 00 mov dx, 0174h ; 1c54 - ba 74 01 in al, dx ; 1c57 - ec call ISSUE_EOI1 ; 1c58 - e8 b0 ee -> 0b0b popa ; 1c5b - 61 pop es ; 1c5c - 07 pop ds ; 1c5d - 1f iret ; 1c5e - cf SMOOTH_SCROLL_DOWN endp db 000h ; 1c5f org 01c60h JUMP_UP proc near public ; 1c60 call MAP_ATTRIB ; 1c60 - e8 71 fc -> 18d4 push cx ; 1c63 - 51 mov byte ptr ds:[0bdh], ch ; 1c64 - 88 2e bd 00 mov byte ptr ds:[0beh], dh ; 1c68 - 88 36 be 00 mov byte ptr ds:[0bfh], cl ; 1c6c - 88 0e bf 00 mov byte ptr ds:[0c0h], dl ; 1c70 - 88 16 c0 00 sub dl, cl ; 1c74 - 2a d1 sub dh, ch ; 1c76 - 2a f5 inc dl ; 1c78 - fe c2 inc dh ; 1c7a - fe c6 mov byte ptr ds:[0bbh], dh ; 1c7c - 88 36 bb 00 mov byte ptr ds:[0bch], dl ; 1c80 - 88 16 bc 00 cmp al, 0 ; 1c84 - 3c 00 jnz AL_OK ; 1c86 - 75 18 -> 1ca0 mov dh, byte ptr ds:[0bdh] ; 1c88 - 8a 36 bd 00 mov dl, byte ptr ds:[0bfh] ; 1c8c - 8a 16 bf 00 mov cl, byte ptr ds:[0bbh] ; 1c90 - 8a 0e bb 00 xor ch, ch ; 1c94 - 32 ed BLANK_WIN: ; 1c96 call BLANK_ROW ; 1c96 - e8 55 00 -> 1cee inc dh ; 1c99 - fe c6 loop BLANK_WIN ; 1c9b - e2 f9 -> 1c96 pop cx ; 1c9d - 59 jmp JUMP_UP_RET ; 1c9e - eb 1b -> 1cbb AL_OK: ; 1ca0 mov cl, al ; 1ca0 - 8a c8 xor ch, ch ; 1ca2 - 32 ed pop dx ; 1ca4 - 5a UP_ONE: ; 1ca5 push bx ; 1ca5 - 53 call SCROLL_ONE_UP ; 1ca6 - e8 13 00 -> 1cbc pop bx ; 1ca9 - 5b push dx ; 1caa - 52 mov dh, byte ptr ds:[0beh] ; 1cab - 8a 36 be 00 mov dl, byte ptr ds:[0bfh] ; 1caf - 8a 16 bf 00 call BLANK_ROW ; 1cb3 - e8 38 00 -> 1cee pop dx ; 1cb6 - 5a nop ; 1cb7 - 90 nop ; 1cb8 - 90 loop UP_ONE ; 1cb9 - e2 ea -> 1ca5 JUMP_UP_RET: ; 1cbb ret ; 1cbb - c3 JUMP_UP endp org 01cbch SCROLL_ONE_UP proc near public ; 1cbc push cx ; 1cbc - 51 push dx ; 1cbd - 52 mov cl, byte ptr ds:[0bbh] ; 1cbe - 8a 0e bb 00 xor ch, ch ; 1cc2 - 32 ed WINDOW_LOOP: ; 1cc4 mov bx, 00ffh ; 1cc4 - bb ff 00 call MEMORY_POSN ; 1cc7 - e8 c2 fb -> 188c push cx ; 1cca - 51 mov cl, byte ptr ds:[0bch] ; 1ccb - 8a 0e bc 00 xor ch, ch ; 1ccf - 32 ed push di ; 1cd1 - 57 inc dh ; 1cd2 - fe c6 mov bx, 00ffh ; 1cd4 - bb ff 00 call MEMORY_POSN ; 1cd7 - e8 b2 fb -> 188c mov si, di ; 1cda - 8b f7 pop di ; 1cdc - 5f push ds ; 1cdd - 1e mov ax, es ; 1cde - 8c c0 mov ds, ax ; 1ce0 - 8e d8 cld ; 1ce2 - fc rep movsw ; 1ce3 - f3 a5 pop ds ; 1ce5 - 1f pop cx ; 1ce6 - 59 nop ; 1ce7 - 90 nop ; 1ce8 - 90 loop WINDOW_LOOP ; 1ce9 - e2 d9 -> 1cc4 pop dx ; 1ceb - 5a pop cx ; 1cec - 59 ret ; 1ced - c3 SCROLL_ONE_UP endp org 01ceeh BLANK_ROW proc near public ; 1cee push dx ; 1cee - 52 push cx ; 1cef - 51 push bx ; 1cf0 - 53 mov bx, 00ffh ; 1cf1 - bb ff 00 call MEMORY_POSN ; 1cf4 - e8 95 fb -> 188c pop bx ; 1cf7 - 5b mov cl, byte ptr ds:[0bch] ; 1cf8 - 8a 0e bc 00 xor ch, ch ; 1cfc - 32 ed xor ah, ah ; 1cfe - 32 e4 or ah, byte ptr ds:[090h] ; 1d00 - 0a 26 90 00 or ah, bh ; 1d04 - 0a e7 mov al, 20h ; 1d06 - b0 20 cld ; 1d08 - fc rep stosw ; 1d09 - f3 ab pop cx ; 1d0b - 59 pop dx ; 1d0c - 5a ret ; 1d0d - c3 BLANK_ROW endp org 01d0eh SCROLL_ONE_DOWN proc near public ; 1d0e push cx ; 1d0e - 51 push dx ; 1d0f - 52 mov cl, byte ptr ds:[0bbh] ; 1d10 - 8a 0e bb 00 xor ch, ch ; 1d14 - 32 ed DOWN_LOOP: ; 1d16 mov bx, 00ffh ; 1d16 - bb ff 00 call MEMORY_POSN ; 1d19 - e8 70 fb -> 188c push di ; 1d1c - 57 dec dh ; 1d1d - fe ce mov bx, 00ffh ; 1d1f - bb ff 00 call MEMORY_POSN ; 1d22 - e8 67 fb -> 188c mov si, di ; 1d25 - 8b f7 pop di ; 1d27 - 5f push cx ; 1d28 - 51 mov cl, byte ptr ds:[0bch] ; 1d29 - 8a 0e bc 00 xor ch, ch ; 1d2d - 32 ed push ds ; 1d2f - 1e mov ax, es ; 1d30 - 8c c0 mov ds, ax ; 1d32 - 8e d8 cld ; 1d34 - fc rep movsw ; 1d35 - f3 a5 pop ds ; 1d37 - 1f pop cx ; 1d38 - 59 nop ; 1d39 - 90 nop ; 1d3a - 90 loop DOWN_LOOP ; 1d3b - e2 d9 -> 1d16 mov ax, 05a2h ; 1d3d - b8 a2 05 mov ds, ax ; 1d40 - 8e d8 pop dx ; 1d42 - 5a pop cx ; 1d43 - 59 ret ; 1d44 - c3 SCROLL_ONE_DOWN endp org 01d45h JUMP_DOWN proc near public ; 1d45 call MAP_ATTRIB ; 1d45 - e8 8c fb -> 18d4 push dx ; 1d48 - 52 mov byte ptr ds:[0bdh], ch ; 1d49 - 88 2e bd 00 mov byte ptr ds:[0beh], dh ; 1d4d - 88 36 be 00 mov byte ptr ds:[0bfh], cl ; 1d51 - 88 0e bf 00 mov byte ptr ds:[0c0h], dl ; 1d55 - 88 16 c0 00 sub dl, cl ; 1d59 - 2a d1 sub dh, ch ; 1d5b - 2a f5 inc dl ; 1d5d - fe c2 inc dh ; 1d5f - fe c6 mov byte ptr ds:[0bbh], dh ; 1d61 - 88 36 bb 00 mov byte ptr ds:[0bch], dl ; 1d65 - 88 16 bc 00 cmp al, 0 ; 1d69 - 3c 00 jnz NO_BLANK ; 1d6b - 75 18 -> 1d85 mov dh, byte ptr ds:[0bdh] ; 1d6d - 8a 36 bd 00 mov dl, byte ptr ds:[0bfh] ; 1d71 - 8a 16 bf 00 mov cl, byte ptr ds:[0bbh] ; 1d75 - 8a 0e bb 00 xor ch, ch ; 1d79 - 32 ed BLANK_WINDOW: ; 1d7b call BLANK_ROW ; 1d7b - e8 70 ff -> 1cee inc dh ; 1d7e - fe c6 loop BLANK_WINDOW ; 1d80 - e2 f9 -> 1d7b pop dx ; 1d82 - 5a jmp JUMP_DOWN_RET ; 1d83 - eb 1d -> 1da2 NO_BLANK: ; 1d85 mov cl, al ; 1d85 - 8a c8 xor ch, ch ; 1d87 - 32 ed pop dx ; 1d89 - 5a mov dl, byte ptr ds:[0bfh] ; 1d8a - 8a 16 bf 00 DOWN_ONE: ; 1d8e push bx ; 1d8e - 53 call SCROLL_ONE_DOWN ; 1d8f - e8 7c ff -> 1d0e pop bx ; 1d92 - 5b push dx ; 1d93 - 52 mov dh, byte ptr ds:[0bdh] ; 1d94 - 8a 36 bd 00 mov dl, byte ptr ds:[0bfh] ; 1d98 - 8a 16 bf 00 call BLANK_ROW ; 1d9c - e8 4f ff -> 1cee pop dx ; 1d9f - 5a loop DOWN_ONE ; 1da0 - e2 ec -> 1d8e JUMP_DOWN_RET: ; 1da2 ret ; 1da2 - c3 JUMP_DOWN endp db 000h ; 1da3 org 01da4h READ_AC_CURRENT proc near public ; 1da4 mov bl, bh ; 1da4 - 8a df xor bh, bh ; 1da6 - 32 ff cmp bx, 0ffh ; 1da8 - 81 fb ff 00 jnz _loc_061 ; 1dac - 75 06 -> 1db4 mov bl, byte ptr ds:[08ch] ; 1dae - 8a 1e 8c 00 xor bh, bh ; 1db2 - 32 ff _loc_061: ; 1db4 shl bx, 1 ; 1db4 - d1 e3 mov dx, word ptr ds:[bx + 2] ; 1db6 - 8b 97 02 00 shr bx, 1 ; 1dba - d1 eb call MEMORY_POSN ; 1dbc - e8 cd fa -> 188c mov ax, word ptr es:[di] ; 1dbf - 26 8b 05 mov bh, al ; 1dc2 - 8a f8 call _sub_018 ; 1dc4 - e8 08 00 -> 1dcf mov al, bh ; 1dc7 - 8a c7 mov word ptr [bp + 012h], ax ; 1dc9 - 89 46 12 xor al, al ; 1dcc - 32 c0 ret ; 1dce - c3 READ_AC_CURRENT endp org 01dcfh _sub_018 proc near public ; 1dcf mov al, 7 ; 1dcf - b0 07 and ah, 0fch ; 1dd1 - 80 e4 fc test ah, 4 ; 1dd4 - f6 c4 04 jz _loc_062 ; 1dd7 - 74 02 -> 1ddb xor al, al ; 1dd9 - 32 c0 _loc_062: ; 1ddb test ah, 10h ; 1ddb - f6 c4 10 jz _loc_063 ; 1dde - 74 04 -> 1de4 xor al, al ; 1de0 - 32 c0 or al, 1 ; 1de2 - 0c 01 _loc_063: ; 1de4 test ah, 20h ; 1de4 - f6 c4 20 jz _loc_064 ; 1de7 - 74 02 -> 1deb or al, 080h ; 1de9 - 0c 80 _loc_064: ; 1deb test ah, 40h ; 1deb - f6 c4 40 jz _loc_065 ; 1dee - 74 02 -> 1df2 or al, 8 ; 1df0 - 0c 08 _loc_065: ; 1df2 test ah, 080h ; 1df2 - f6 c4 80 jz _loc_066 ; 1df5 - 74 02 -> 1df9 xor al, 77h ; 1df7 - 34 77 _loc_066: ; 1df9 mov ah, al ; 1df9 - 8a e0 ret ; 1dfb - c3 _sub_018 endp org 01dfch WRITE_AC_CURRENT proc near public ; 1dfc mov ah, bl ; 1dfc - 8a e3 mov bl, bh ; 1dfe - 8a df xor bh, bh ; 1e00 - 32 ff cmp bx, 0ffh ; 1e02 - 81 fb ff 00 jnz _loc_059 ; 1e06 - 75 06 -> 1e0e mov bl, byte ptr ds:[08ch] ; 1e08 - 8a 1e 8c 00 xor bh, bh ; 1e0c - 32 ff _loc_059: ; 1e0e shl bx, 1 ; 1e0e - d1 e3 mov dx, word ptr ds:[bx + 2] ; 1e10 - 8b 97 02 00 shr bx, 1 ; 1e14 - d1 eb call MEMORY_POSN ; 1e16 - e8 73 fa -> 188c mov bh, ah ; 1e19 - 8a fc mov byte ptr ds:[08dh], bh ; 1e1b - 88 3e 8d 00 call MAP_ATTRIB ; 1e1f - e8 b2 fa -> 18d4 mov ah, bh ; 1e22 - 8a e7 _loc_060: ; 1e24 mov byte ptr es:[di], al ; 1e24 - 26 88 05 inc di ; 1e27 - 47 and byte ptr es:[di], 3 ; 1e28 - 26 80 25 03 or byte ptr es:[di], ah ; 1e2c - 26 08 25 inc di ; 1e2f - 47 nop ; 1e30 - 90 nop ; 1e31 - 90 loop _loc_060 ; 1e32 - e2 f0 -> 1e24 xor al, al ; 1e34 - 32 c0 ret ; 1e36 - c3 WRITE_AC_CURRENT endp org 01e37h WRITE_C_CURRENT proc near public ; 1e37 mov bl, bh ; 1e37 - 8a df xor bh, bh ; 1e39 - 32 ff cmp bx, 0ffh ; 1e3b - 81 fb ff 00 jnz _loc_057 ; 1e3f - 75 06 -> 1e47 mov bl, byte ptr ds:[08ch] ; 1e41 - 8a 1e 8c 00 xor bh, bh ; 1e45 - 32 ff _loc_057: ; 1e47 shl bx, 1 ; 1e47 - d1 e3 mov dx, word ptr ds:[bx + 2] ; 1e49 - 8b 97 02 00 shr bx, 1 ; 1e4d - d1 eb call MEMORY_POSN ; 1e4f - e8 3a fa -> 188c _loc_058: ; 1e52 cld ; 1e52 - fc stosb ; 1e53 - aa inc di ; 1e54 - 47 nop ; 1e55 - 90 nop ; 1e56 - 90 loop _loc_058 ; 1e57 - e2 f9 -> 1e52 xor al, al ; 1e59 - 32 c0 ret ; 1e5b - c3 WRITE_C_CURRENT endp org 01e5ch WRITE_TTY proc near public ; 1e5c cmp al, 0 ; 1e5c - 3c 00 jz _loc_054 ; 1e5e - 74 2c -> 1e8c cmp al, 7 ; 1e60 - 3c 07 jnz _loc_055 ; 1e62 - 75 06 -> 1e6a call _sub_017 ; 1e64 - e8 97 00 -> 1efe jmp _loc_056 ; 1e67 - eb 7d -> 1ee6 nop ; 1e69 - 90 _loc_055: ; 1e6a cmp al, 0dh ; 1e6a - 3c 0d jnz _loc_068 ; 1e6c - 75 05 -> 1e73 call _sub_019 ; 1e6e - e8 b6 00 -> 1f27 jmp _loc_056 ; 1e71 - eb 73 -> 1ee6 _loc_068: ; 1e73 cmp al, 0ah ; 1e73 - 3c 0a jnz _loc_208 ; 1e75 - 75 05 -> 1e7c call _sub_034 ; 1e77 - e8 c1 00 -> 1f3b jmp _loc_056 ; 1e7a - eb 6a -> 1ee6 _loc_208: ; 1e7c cmp al, 9 ; 1e7c - 3c 09 jnz _loc_211 ; 1e7e - 75 05 -> 1e85 call _sub_035 ; 1e80 - e8 f3 00 -> 1f76 jmp _loc_056 ; 1e83 - eb 61 -> 1ee6 _loc_211: ; 1e85 cmp al, 8 ; 1e85 - 3c 08 jnz _loc_299 ; 1e87 - 75 05 -> 1e8e call _sub_039 ; 1e89 - e8 12 01 -> 1f9e _loc_054: ; 1e8c jmp _loc_056 ; 1e8c - eb 58 -> 1ee6 _loc_299: ; 1e8e cmp al, 0ch ; 1e8e - 3c 0c jnz _loc_302 ; 1e90 - 75 05 -> 1e97 call _sub_040 ; 1e92 - e8 26 01 -> 1fbb jmp _loc_056 ; 1e95 - eb 4f -> 1ee6 _loc_302: ; 1e97 mov bl, byte ptr ds:[08ch] ; 1e97 - 8a 1e 8c 00 xor bh, bh ; 1e9b - 32 ff shl bx, 1 ; 1e9d - d1 e3 mov dx, word ptr ds:[bx + 2] ; 1e9f - 8b 97 02 00 mov bl, byte ptr ds:[0aeh] ; 1ea3 - 8a 1e ae 00 dec bl ; 1ea7 - fe cb cmp dl, bl ; 1ea9 - 3a d3 jb _loc_312 ; 1eab - 72 28 -> 1ed5 cmp dh, 18h ; 1ead - 80 fe 18 jb _loc_313 ; 1eb0 - 72 1d -> 1ecf mov bh, 0ffh ; 1eb2 - b7 ff mov cx, 1 ; 1eb4 - b9 01 00 push dx ; 1eb7 - 52 call WRITE_C_CURRENT ; 1eb8 - e8 7c ff -> 1e37 pop dx ; 1ebb - 5a mov al, 1 ; 1ebc - b0 01 xor cx, cx ; 1ebe - 33 c9 mov dh, 18h ; 1ec0 - b6 18 mov bh, byte ptr ds:[08dh] ; 1ec2 - 8a 3e 8d 00 call SCROLL_UP ; 1ec6 - e8 79 f9 -> 1842 xor dl, dl ; 1ec9 - 32 d2 mov dh, 18h ; 1ecb - b6 18 jmp _loc_314 ; 1ecd - eb 12 -> 1ee1 _loc_313: ; 1ecf inc dh ; 1ecf - fe c6 xor dl, dl ; 1ed1 - 32 d2 jmp _loc_315 ; 1ed3 - eb 02 -> 1ed7 _loc_312: ; 1ed5 inc dl ; 1ed5 - fe c2 _loc_315: ; 1ed7 mov bh, 0ffh ; 1ed7 - b7 ff mov cx, 1 ; 1ed9 - b9 01 00 push dx ; 1edc - 52 call WRITE_C_CURRENT ; 1edd - e8 57 ff -> 1e37 pop dx ; 1ee0 - 5a _loc_314: ; 1ee1 mov bh, 0ffh ; 1ee1 - b7 ff call SET_CPOS ; 1ee3 - e8 5f f8 -> 1745 _loc_056: ; 1ee6 xor al, al ; 1ee6 - 32 c0 ret ; 1ee8 - c3 WRITE_TTY endp db 0fbh ; 1ee9 db 01eh ; 1eea db 006h ; 1eeb db 060h ; 1eec db 0b4h ; 1eed db 0f3h ; 1eee db 0b0h ; 1eef db 000h ; 1ef0 db 0e8h ; 1ef1 db 014h ; 1ef2 db 0edh ; 1ef3 db 033h ; 1ef4 db 0c9h ; 1ef5 db 0fbh ; 1ef6 db 0e8h ; 1ef7 db 011h ; 1ef8 db 0ech ; 1ef9 db 061h ; 1efa db 007h ; 1efb db 01fh ; 1efc db 0cfh ; 1efd org 01efeh _sub_017 proc near public ; 1efe mov dx, 0046h ; 1efe - ba 46 00 mov al, 36h ; 1f01 - b0 36 out dx, al ; 1f03 - ee mov dx, 0040h ; 1f04 - ba 40 00 mov al, 0e8h ; 1f07 - b0 e8 out dx, al ; 1f09 - ee mov al, 3 ; 1f0a - b0 03 out dx, al ; 1f0c - ee mov ah, 0f3h ; 1f0d - b4 f3 mov al, 0ch ; 1f0f - b0 0c call OUT_VD_SPKR ; 1f11 - e8 f4 ec -> 0c08 xor dx, dx ; 1f14 - 33 d2 out dx, al ; 1f16 - ee mov cx, 0fa0h ; 1f17 - b9 a0 0f _loc_067: ; 1f1a mov ah, 0f3h ; 1f1a - b4 f3 mov al, 0 ; 1f1c - b0 00 push ax ; 1f1e - 50 pop ax ; 1f1f - 58 nop ; 1f20 - 90 loop _loc_067 ; 1f21 - e2 f7 -> 1f1a call OUT_VD_SPKR ; 1f23 - e8 e2 ec -> 0c08 ret ; 1f26 - c3 _sub_017 endp org 01f27h _sub_019 proc near public ; 1f27 mov bl, byte ptr ds:[08ch] ; 1f27 - 8a 1e 8c 00 xor bh, bh ; 1f2b - 32 ff shl bx, 1 ; 1f2d - d1 e3 mov dx, word ptr ds:[bx + 2] ; 1f2f - 8b 97 02 00 xor dl, dl ; 1f33 - 32 d2 mov bh, 0ffh ; 1f35 - b7 ff call SET_CPOS ; 1f37 - e8 0b f8 -> 1745 ret ; 1f3a - c3 _sub_019 endp org 01f3bh _sub_034 proc near public ; 1f3b mov bl, byte ptr ds:[08ch] ; 1f3b - 8a 1e 8c 00 xor bh, bh ; 1f3f - 32 ff shl bx, 1 ; 1f41 - d1 e3 mov dx, word ptr ds:[bx + 2] ; 1f43 - 8b 97 02 00 shr bx, 1 ; 1f47 - d1 eb push bx ; 1f49 - 53 cmp dh, 18h ; 1f4a - 80 fe 18 jb _loc_209 ; 1f4d - 72 1e -> 1f6d call MEMORY_POSN ; 1f4f - e8 3a f9 -> 188c lodsw ; 1f52 - ad mov bh, al ; 1f53 - 8a f8 xor cx, cx ; 1f55 - 33 c9 mov bl, byte ptr ds:[0aeh] ; 1f57 - 8a 1e ae 00 dec bl ; 1f5b - fe cb mov dl, bl ; 1f5d - 8a d3 mov dh, 18h ; 1f5f - b6 18 mov al, 1 ; 1f61 - b0 01 mov bh, byte ptr ds:[08dh] ; 1f63 - 8a 3e 8d 00 call SCROLL_UP ; 1f67 - e8 d8 f8 -> 1842 pop bx ; 1f6a - 5b jmp _loc_210 ; 1f6b - eb 08 -> 1f75 _loc_209: ; 1f6d inc dh ; 1f6d - fe c6 pop bx ; 1f6f - 5b mov bh, bl ; 1f70 - 8a fb call SET_CPOS ; 1f72 - e8 d0 f7 -> 1745 _loc_210: ; 1f75 ret ; 1f75 - c3 _sub_034 endp org 01f76h _sub_035 proc near public ; 1f76 mov bl, byte ptr ds:[08ch] ; 1f76 - 8a 1e 8c 00 xor bh, bh ; 1f7a - 32 ff shl bx, 1 ; 1f7c - d1 e3 mov dx, word ptr ds:[bx + 2] ; 1f7e - 8b 97 02 00 shr bx, 1 ; 1f82 - d1 eb push bx ; 1f84 - 53 mov bl, byte ptr ds:[0aeh] ; 1f85 - 8a 1e ae 00 dec bl ; 1f89 - fe cb cmp dl, bl ; 1f8b - 3a d3 jb _loc_297 ; 1f8d - 72 02 -> 1f91 jmp _loc_298 ; 1f8f - eb 0c -> 1f9d _loc_297: ; 1f91 add dl, 8 ; 1f91 - 80 c2 08 and dl, 0f8h ; 1f94 - 80 e2 f8 pop bx ; 1f97 - 5b mov bh, bl ; 1f98 - 8a fb call SET_CPOS ; 1f9a - e8 a8 f7 -> 1745 _loc_298: ; 1f9d ret ; 1f9d - c3 _sub_035 endp org 01f9eh _sub_039 proc near public ; 1f9e mov bl, byte ptr ds:[08ch] ; 1f9e - 8a 1e 8c 00 xor bh, bh ; 1fa2 - 32 ff shl bx, 1 ; 1fa4 - d1 e3 mov dx, word ptr ds:[bx + 2] ; 1fa6 - 8b 97 02 00 shr bx, 1 ; 1faa - d1 eb cmp dl, 0 ; 1fac - 80 fa 00 jnbe _loc_300 ; 1faf - 77 02 -> 1fb3 jmp _loc_301 ; 1fb1 - eb 07 -> 1fba _loc_300: ; 1fb3 dec dl ; 1fb3 - fe ca mov bh, bl ; 1fb5 - 8a fb call SET_CPOS ; 1fb7 - e8 8b f7 -> 1745 _loc_301: ; 1fba ret ; 1fba - c3 _sub_039 endp org 01fbbh _sub_040 proc near public ; 1fbb mov al, 0 ; 1fbb - b0 00 xor cx, cx ; 1fbd - 33 c9 mov dh, 18h ; 1fbf - b6 18 mov bl, byte ptr ds:[0aeh] ; 1fc1 - 8a 1e ae 00 dec bl ; 1fc5 - fe cb mov dl, bl ; 1fc7 - 8a d3 mov bh, byte ptr ds:[08dh] ; 1fc9 - 8a 3e 8d 00 call SCROLL_UP ; 1fcd - e8 72 f8 -> 1842 mov bh, 0ffh ; 1fd0 - b7 ff mov dx, 0 ; 1fd2 - ba 00 00 call SET_CPOS ; 1fd5 - e8 6d f7 -> 1745 ret ; 1fd8 - c3 _sub_040 endp org 01fd9h WRITE_A_CURRENT proc near public ; 1fd9 mov al, bl ; 1fd9 - 8a c3 mov bl, bh ; 1fdb - 8a df xor bh, bh ; 1fdd - 32 ff cmp bx, 0ffh ; 1fdf - 81 fb ff 00 jnz _loc_052 ; 1fe3 - 75 06 -> 1feb mov bl, byte ptr ds:[08ch] ; 1fe5 - 8a 1e 8c 00 xor bh, bh ; 1fe9 - 32 ff _loc_052: ; 1feb shl bx, 1 ; 1feb - d1 e3 mov dx, word ptr ds:[bx + 2] ; 1fed - 8b 97 02 00 shr bx, 1 ; 1ff1 - d1 eb call MEMORY_POSN ; 1ff3 - e8 96 f8 -> 188c mov bh, al ; 1ff6 - 8a f8 mov byte ptr ds:[08dh], bh ; 1ff8 - 88 3e 8d 00 call MAP_ATTRIB ; 1ffc - e8 d5 f8 -> 18d4 mov al, bh ; 1fff - 8a c7 _loc_053: ; 2001 inc di ; 2001 - 47 and byte ptr es:[di], 3 ; 2002 - 26 80 25 03 or byte ptr es:[di], al ; 2006 - 26 08 05 inc di ; 2009 - 47 nop ; 200a - 90 nop ; 200b - 90 loop _loc_053 ; 200c - e2 f3 -> 2001 xor al, al ; 200e - 32 c0 ret ; 2010 - c3 WRITE_A_CURRENT endp db 000h ; 2011 db 088h ; 2012 db 020h ; 2013 db 035h ; 2014 db 021h ; 2015 db 0e6h ; 2016 db 021h ; 2017 db 07bh ; 2018 db 022h ; 2019 org 0201ah OMNI_SCROLL proc near public ; 201a push ax ; 201a - 50 push bx ; 201b - 53 push cx ; 201c - 51 push dx ; 201d - 52 call WINDOW_VALID ; 201e - e8 56 f9 -> 1977 jnz _loc_049 ; 2021 - 75 64 -> 2087 call WINDOW_SIZE ; 2023 - e8 1c f9 -> 1942 mov byte ptr ds:[0bdh], ch ; 2026 - 88 2e bd 00 mov byte ptr ds:[0beh], dh ; 202a - 88 36 be 00 mov byte ptr ds:[0bfh], cl ; 202e - 88 0e bf 00 mov byte ptr ds:[0c0h], dl ; 2032 - 88 16 c0 00 sub dl, cl ; 2036 - 2a d1 inc dl ; 2038 - fe c2 sub dh, ch ; 203a - 2a f5 inc dh ; 203c - fe c6 mov byte ptr ds:[0bbh], dh ; 203e - 88 36 bb 00 mov byte ptr ds:[0bch], dl ; 2042 - 88 16 bc 00 mov word ptr ds:[06ch], es ; 2046 - 8c 06 6c 00 mov word ptr ds:[06ah], si ; 204a - 89 36 6a 00 pop dx ; 204e - 5a pop cx ; 204f - 59 pop bx ; 2050 - 5b pop ax ; 2051 - 58 cmp bl, 1 ; 2052 - 80 fb 01 jbe _loc_050 ; 2055 - 76 03 -> 205a jmp _loc_051 ; 2057 - eb 14 -> 206d nop ; 2059 - 90 _loc_050: ; 205a cmp al, byte ptr ds:[0bbh] ; 205a - 3a 06 bb 00 jnl _loc_071 ; 205e - 7d 07 -> 2067 cmp al, 0 ; 2060 - 3c 00 jbe _loc_071 ; 2062 - 76 03 -> 2067 jmp _loc_070 ; 2064 - eb 17 -> 207d nop ; 2066 - 90 _loc_071: ; 2067 mov al, ds:[0bbh] ; 2067 - a0 bb 00 jmp _loc_070 ; 206a - eb 11 -> 207d nop ; 206c - 90 _loc_051: ; 206d cmp al, byte ptr ds:[0bch] ; 206d - 3a 06 bc 00 jnl _loc_069 ; 2071 - 7d 07 -> 207a cmp al, 0 ; 2073 - 3c 00 jbe _loc_069 ; 2075 - 76 03 -> 207a jmp _loc_070 ; 2077 - eb 04 -> 207d nop ; 2079 - 90 _loc_069: ; 207a mov al, ds:[0bch] ; 207a - a0 bc 00 _loc_070: ; 207d push bx ; 207d - 53 xor bh, bh ; 207e - 32 ff shl bx, 1 ; 2080 - d1 e3 jmp cs:[bx + 2012h] ; 2082 - 2e ff a7 12 20 _loc_049: ; 2087 ret ; 2087 - c3 OMNI_SCROLL endp db 05bh ; 2088 db 08bh ; 2089 db 0d1h ; 208a db 08ah ; 208b db 0c8h ; 208c db 032h ; 208d db 0edh ; 208e db 0e8h ; 208f db 005h ; 2090 db 000h ; 2091 db 090h ; 2092 db 090h ; 2093 db 0e2h ; 2094 db 0f9h ; 2095 db 0c3h ; 2096 db 051h ; 2097 db 052h ; 2098 db 053h ; 2099 db 08ah ; 209a db 00eh ; 209b db 0bbh ; 209c db 000h ; 209d db 032h ; 209e db 0edh ; 209f db 049h ; 20a0 db 0bbh ; 20a1 db 0ffh ; 20a2 db 000h ; 20a3 db 0e8h ; 20a4 db 0e5h ; 20a5 db 0f7h ; 20a6 db 057h ; 20a7 db 0feh ; 20a8 db 0c6h ; 20a9 db 0bbh ; 20aa db 0ffh ; 20ab db 000h ; 20ac db 0e8h ; 20ad db 0dch ; 20ae db 0f7h ; 20af db 08bh ; 20b0 db 0f7h ; 20b1 db 05fh ; 20b2 db 051h ; 20b3 db 08ah ; 20b4 db 00eh ; 20b5 db 0bch ; 20b6 db 000h ; 20b7 db 032h ; 20b8 db 0edh ; 20b9 db 01eh ; 20ba db 08ch ; 20bb db 0c0h ; 20bc db 08eh ; 20bd db 0d8h ; 20be db 0fch ; 20bf db 0f3h ; 20c0 db 0a5h ; 20c1 db 01fh ; 20c2 db 059h ; 20c3 db 090h ; 20c4 db 090h ; 20c5 db 0e2h ; 20c6 db 0d9h ; 20c7 db 08ah ; 20c8 db 00eh ; 20c9 db 0bch ; 20ca db 000h ; 20cb db 032h ; 20cc db 0edh ; 20cd db 05bh ; 20ce db 053h ; 20cf db 080h ; 20d0 db 0ffh ; 20d1 db 000h ; 20d2 db 074h ; 20d3 db 027h ; 20d4 db 0bah ; 20d5 db 000h ; 20d6 db 019h ; 20d7 db 08ah ; 20d8 db 03eh ; 20d9 db 08dh ; 20da db 000h ; 20db db 0e8h ; 20dc db 0f5h ; 20dd db 0f7h ; 20de db 0e8h ; 20df db 00ch ; 20e0 db 0fch ; 20e1 db 0bbh ; 20e2 db 0ffh ; 20e3 db 000h ; 20e4 db 0e8h ; 20e5 db 0a4h ; 20e6 db 0f7h ; 20e7 db 08bh ; 20e8 db 0f7h ; 20e9 db 08ah ; 20ea db 00eh ; 20eb db 0bch ; 20ec db 000h ; 20ed db 032h ; 20ee db 0edh ; 20ef db 08ah ; 20f0 db 036h ; 20f1 db 0beh ; 20f2 db 000h ; 20f3 db 08ah ; 20f4 db 016h ; 20f5 db 0bfh ; 20f6 db 000h ; 20f7 db 01eh ; 20f8 db 006h ; 20f9 db 0ebh ; 20fa db 026h ; 20fb db 01eh ; 20fc db 08ah ; 20fd db 036h ; 20fe db 0beh ; 20ff db 000h ; 2100 db 08ah ; 2101 db 016h ; 2102 db 0bfh ; 2103 db 000h ; 2104 db 08bh ; 2105 db 036h ; 2106 db 06ah ; 2107 db 000h ; 2108 db 0ffh ; 2109 db 036h ; 210a db 06ch ; 210b db 000h ; 210c db 051h ; 210d db 056h ; 210e db 08eh ; 210f db 006h ; 2110 db 06ch ; 2111 db 000h ; 2112 db 046h ; 2113 db 026h ; 2114 db 08ah ; 2115 db 03ch ; 2116 db 0e8h ; 2117 db 0bah ; 2118 db 0f7h ; 2119 db 026h ; 211a db 088h ; 211b db 03ch ; 211c db 046h ; 211d db 0e2h ; 211e db 0f3h ; 211f db 05eh ; 2120 db 059h ; 2121 db 0bbh ; 2122 db 0ffh ; 2123 db 000h ; 2124 db 0e8h ; 2125 db 064h ; 2126 db 0f7h ; 2127 db 01fh ; 2128 db 0fch ; 2129 db 0f3h ; 212a db 0a5h ; 212b db 01fh ; 212c db 089h ; 212d db 036h ; 212e db 06ah ; 212f db 000h ; 2130 db 05bh ; 2131 db 05ah ; 2132 db 059h ; 2133 db 0c3h ; 2134 db 05bh ; 2135 db 08ah ; 2136 db 036h ; 2137 db 0bdh ; 2138 db 000h ; 2139 db 08ah ; 213a db 016h ; 213b db 0bfh ; 213c db 000h ; 213d db 052h ; 213e db 053h ; 213f db 03ah ; 2140 db 006h ; 2141 db 0bbh ; 2142 db 000h ; 2143 db 073h ; 2144 db 041h ; 2145 db 03ch ; 2146 db 000h ; 2147 db 076h ; 2148 db 03dh ; 2149 db 08ah ; 214a db 00eh ; 214b db 0bbh ; 214c db 000h ; 214d db 02ah ; 214e db 0c8h ; 214f db 032h ; 2150 db 0edh ; 2151 db 08ah ; 2152 db 036h ; 2153 db 0beh ; 2154 db 000h ; 2155 db 0bbh ; 2156 db 0ffh ; 2157 db 000h ; 2158 db 0e8h ; 2159 db 030h ; 215a db 0f7h ; 215b db 057h ; 215c db 0bbh ; 215d db 0ffh ; 215e db 000h ; 215f db 02ah ; 2160 db 0f0h ; 2161 db 0e8h ; 2162 db 027h ; 2163 db 0f7h ; 2164 db 08bh ; 2165 db 0f7h ; 2166 db 05fh ; 2167 db 002h ; 2168 db 0f0h ; 2169 db 0feh ; 216a db 0ceh ; 216b db 051h ; 216c db 08ah ; 216d db 00eh ; 216e db 0bch ; 216f db 000h ; 2170 db 032h ; 2171 db 0edh ; 2172 db 01eh ; 2173 db 050h ; 2174 db 08ch ; 2175 db 0c0h ; 2176 db 08eh ; 2177 db 0d8h ; 2178 db 0fch ; 2179 db 0f3h ; 217a db 0a5h ; 217b db 058h ; 217c db 01fh ; 217d db 059h ; 217e db 090h ; 217f db 090h ; 2180 db 0e2h ; 2181 db 0d3h ; 2182 db 0fch ; 2183 db 0ebh ; 2184 db 004h ; 2185 db 090h ; 2186 db 0a0h ; 2187 db 0bbh ; 2188 db 000h ; 2189 db 08ah ; 218a db 0c8h ; 218b db 032h ; 218c db 0edh ; 218d db 05bh ; 218e db 05ah ; 218f db 080h ; 2190 db 0ffh ; 2191 db 000h ; 2192 db 074h ; 2193 db 023h ; 2194 db 08bh ; 2195 db 0d8h ; 2196 db 08ah ; 2197 db 026h ; 2198 db 08dh ; 2199 db 000h ; 219a db 00ah ; 219b db 026h ; 219c db 090h ; 219d db 000h ; 219e db 0b0h ; 219f db 020h ; 21a0 db 051h ; 21a1 db 053h ; 21a2 db 0bbh ; 21a3 db 0ffh ; 21a4 db 000h ; 21a5 db 0e8h ; 21a6 db 0e3h ; 21a7 db 0f6h ; 21a8 db 05bh ; 21a9 db 08ah ; 21aa db 00eh ; 21ab db 0bch ; 21ac db 000h ; 21ad db 032h ; 21ae db 0edh ; 21af db 0f3h ; 21b0 db 0abh ; 21b1 db 0feh ; 21b2 db 0c6h ; 21b3 db 059h ; 21b4 db 0e2h ; 21b5 db 0eah ; 21b6 db 0c3h ; 21b7 db 08bh ; 21b8 db 036h ; 21b9 db 06ah ; 21ba db 000h ; 21bb db 08bh ; 21bc db 0d8h ; 21bd db 051h ; 21be db 053h ; 21bf db 0bbh ; 21c0 db 0ffh ; 21c1 db 000h ; 21c2 db 0e8h ; 21c3 db 0c6h ; 21c4 db 0f6h ; 21c5 db 05bh ; 21c6 db 08ah ; 21c7 db 00eh ; 21c8 db 0bch ; 21c9 db 000h ; 21ca db 032h ; 21cb db 0edh ; 21cc db 01eh ; 21cd db 08eh ; 21ce db 01eh ; 21cf db 06ch ; 21d0 db 000h ; 21d1 db 0adh ; 21d2 db 01fh ; 21d3 db 053h ; 21d4 db 08ah ; 21d5 db 0fch ; 21d6 db 0e8h ; 21d7 db 0fah ; 21d8 db 0f6h ; 21d9 db 08ah ; 21da db 0e7h ; 21db db 05bh ; 21dc db 0abh ; 21dd db 0e2h ; 21de db 0edh ; 21df db 0feh ; 21e0 db 0c6h ; 21e1 db 059h ; 21e2 db 0e2h ; 21e3 db 0d9h ; 21e4 db 0c3h ; 21e5 db 0fch ; 21e6 db 05bh ; 21e7 db 08ah ; 21e8 db 036h ; 21e9 db 0bdh ; 21ea db 000h ; 21eb db 08ah ; 21ec db 016h ; 21ed db 0bfh ; 21ee db 000h ; 21ef db 052h ; 21f0 db 053h ; 21f1 db 08ah ; 21f2 db 00eh ; 21f3 db 0bbh ; 21f4 db 000h ; 21f5 db 032h ; 21f6 db 0edh ; 21f7 db 0bbh ; 21f8 db 0ffh ; 21f9 db 000h ; 21fa db 052h ; 21fb db 002h ; 21fc db 0d0h ; 21fd db 0e8h ; 21fe db 08bh ; 21ff db 0f6h ; 2200 db 08bh ; 2201 db 0f7h ; 2202 db 05ah ; 2203 db 0e8h ; 2204 db 085h ; 2205 db 0f6h ; 2206 db 0feh ; 2207 db 0c6h ; 2208 db 051h ; 2209 db 08ah ; 220a db 00eh ; 220b db 0bch ; 220c db 000h ; 220d db 02ah ; 220e db 0c8h ; 220f db 032h ; 2210 db 0edh ; 2211 db 01eh ; 2212 db 08ch ; 2213 db 0c3h ; 2214 db 08eh ; 2215 db 0dbh ; 2216 db 0f3h ; 2217 db 0a5h ; 2218 db 01fh ; 2219 db 059h ; 221a db 0e2h ; 221b db 0dbh ; 221c db 05bh ; 221d db 05ah ; 221e db 002h ; 221f db 016h ; 2220 db 0bch ; 2221 db 000h ; 2222 db 02ah ; 2223 db 0d0h ; 2224 db 08ah ; 2225 db 00eh ; 2226 db 0bbh ; 2227 db 000h ; 2228 db 080h ; 2229 db 0ffh ; 222a db 000h ; 222b db 074h ; 222c db 021h ; 222d db 08bh ; 222e db 0d8h ; 222f db 08ah ; 2230 db 026h ; 2231 db 08dh ; 2232 db 000h ; 2233 db 00ah ; 2234 db 026h ; 2235 db 090h ; 2236 db 000h ; 2237 db 0b0h ; 2238 db 020h ; 2239 db 051h ; 223a db 053h ; 223b db 0bbh ; 223c db 0ffh ; 223d db 000h ; 223e db 0e8h ; 223f db 04ah ; 2240 db 0f6h ; 2241 db 05bh ; 2242 db 08ah ; 2243 db 0cbh ; 2244 db 032h ; 2245 db 0edh ; 2246 db 0f3h ; 2247 db 0abh ; 2248 db 0feh ; 2249 db 0c6h ; 224a db 059h ; 224b db 0e2h ; 224c db 0ech ; 224d db 0c3h ; 224e db 08bh ; 224f db 036h ; 2250 db 06ah ; 2251 db 000h ; 2252 db 08bh ; 2253 db 0d8h ; 2254 db 051h ; 2255 db 053h ; 2256 db 0bbh ; 2257 db 0ffh ; 2258 db 000h ; 2259 db 0e8h ; 225a db 02fh ; 225b db 0f6h ; 225c db 05bh ; 225d db 08ah ; 225e db 0cbh ; 225f db 032h ; 2260 db 0edh ; 2261 db 01eh ; 2262 db 08eh ; 2263 db 01eh ; 2264 db 06ch ; 2265 db 000h ; 2266 db 0adh ; 2267 db 01fh ; 2268 db 053h ; 2269 db 08ah ; 226a db 0fch ; 226b db 0e8h ; 226c db 065h ; 226d db 0f6h ; 226e db 08ah ; 226f db 0e7h ; 2270 db 05bh ; 2271 db 0abh ; 2272 db 0e2h ; 2273 db 0edh ; 2274 db 0feh ; 2275 db 0c6h ; 2276 db 059h ; 2277 db 0e2h ; 2278 db 0dbh ; 2279 db 0c3h ; 227a db 0fdh ; 227b db 05bh ; 227c db 08ah ; 227d db 036h ; 227e db 0bdh ; 227f db 000h ; 2280 db 08ah ; 2281 db 016h ; 2282 db 0bfh ; 2283 db 000h ; 2284 db 052h ; 2285 db 053h ; 2286 db 08ah ; 2287 db 00eh ; 2288 db 0bbh ; 2289 db 000h ; 228a db 032h ; 228b db 0edh ; 228c db 0bbh ; 228d db 0ffh ; 228e db 000h ; 228f db 08ah ; 2290 db 016h ; 2291 db 0bfh ; 2292 db 000h ; 2293 db 052h ; 2294 db 08ah ; 2295 db 016h ; 2296 db 0c0h ; 2297 db 000h ; 2298 db 02ah ; 2299 db 0d0h ; 229a db 0e8h ; 229b db 0eeh ; 229c db 0f5h ; 229d db 08bh ; 229e db 0f7h ; 229f db 05ah ; 22a0 db 002h ; 22a1 db 016h ; 22a2 db 0bch ; 22a3 db 000h ; 22a4 db 0feh ; 22a5 db 0cah ; 22a6 db 0e8h ; 22a7 db 0e2h ; 22a8 db 0f5h ; 22a9 db 0feh ; 22aa db 0c6h ; 22ab db 051h ; 22ac db 08ah ; 22ad db 00eh ; 22ae db 0bch ; 22af db 000h ; 22b0 db 02ah ; 22b1 db 0c8h ; 22b2 db 032h ; 22b3 db 0edh ; 22b4 db 01eh ; 22b5 db 08ch ; 22b6 db 0c3h ; 22b7 db 08eh ; 22b8 db 0dbh ; 22b9 db 0f3h ; 22ba db 0a5h ; 22bb db 01fh ; 22bc db 059h ; 22bd db 0e2h ; 22be db 0cdh ; 22bf db 0fch ; 22c0 db 05bh ; 22c1 db 05ah ; 22c2 db 08ah ; 22c3 db 00eh ; 22c4 db 0bbh ; 22c5 db 000h ; 22c6 db 080h ; 22c7 db 0ffh ; 22c8 db 000h ; 22c9 db 074h ; 22ca db 021h ; 22cb db 08bh ; 22cc db 0d8h ; 22cd db 08ah ; 22ce db 026h ; 22cf db 08dh ; 22d0 db 000h ; 22d1 db 00ah ; 22d2 db 026h ; 22d3 db 090h ; 22d4 db 000h ; 22d5 db 0b0h ; 22d6 db 020h ; 22d7 db 051h ; 22d8 db 053h ; 22d9 db 0bbh ; 22da db 0ffh ; 22db db 000h ; 22dc db 0e8h ; 22dd db 0ach ; 22de db 0f5h ; 22df db 05bh ; 22e0 db 08ah ; 22e1 db 0cbh ; 22e2 db 032h ; 22e3 db 0edh ; 22e4 db 0f3h ; 22e5 db 0abh ; 22e6 db 0feh ; 22e7 db 0c6h ; 22e8 db 059h ; 22e9 db 0e2h ; 22ea db 0ech ; 22eb db 0c3h ; 22ec db 08bh ; 22ed db 036h ; 22ee db 06ah ; 22ef db 000h ; 22f0 db 08bh ; 22f1 db 0d8h ; 22f2 db 051h ; 22f3 db 053h ; 22f4 db 0bbh ; 22f5 db 0ffh ; 22f6 db 000h ; 22f7 db 0e8h ; 22f8 db 091h ; 22f9 db 0f5h ; 22fa db 05bh ; 22fb db 08ah ; 22fc db 0cbh ; 22fd db 032h ; 22fe db 0edh ; 22ff db 01eh ; 2300 db 08eh ; 2301 db 01eh ; 2302 db 06ch ; 2303 db 000h ; 2304 db 0adh ; 2305 db 01fh ; 2306 db 053h ; 2307 db 08ah ; 2308 db 0fch ; 2309 db 0e8h ; 230a db 0c7h ; 230b db 0f5h ; 230c db 08ah ; 230d db 0e7h ; 230e db 05bh ; 230f db 0abh ; 2310 db 0e2h ; 2311 db 0edh ; 2312 db 0feh ; 2313 db 0c6h ; 2314 db 059h ; 2315 db 0e2h ; 2316 db 0dbh ; 2317 db 0c3h ; 2318 db 000h ; 2319 org 0231ah GR_SET_CTYPE proc near public ; 231a and ch, 5fh ; 231a - 80 e5 5f test ch, 40h ; 231d - f6 c5 40 jz _loc_047 ; 2320 - 74 0f -> 2331 and byte ptr ds:[0c1h], 7fh ; 2322 - 80 26 c1 00 7f call _sub_016 ; 2327 - e8 fc 0b -> 2f26 mov word ptr ds:[01ah], cx ; 232a - 89 0e 1a 00 jmp _loc_048 ; 232e - eb 22 -> 2352 nop ; 2330 - 90 _loc_047: ; 2331 push ax ; 2331 - 50 mov ah, ch ; 2332 - 8a e5 and ah, 1fh ; 2334 - 80 e4 1f cmp ah, cl ; 2337 - 3a e1 jl _loc_072 ; 2339 - 7c 1e -> 2359 cmp ah, 7 ; 233b - 80 fc 07 jnle _loc_072 ; 233e - 7f 19 -> 2359 _loc_207: ; 2340 cmp cl, 7 ; 2340 - 80 f9 07 jnle _loc_073 ; 2343 - 7f 10 -> 2355 _loc_206: ; 2345 pop ax ; 2345 - 58 mov word ptr ds:[01ah], cx ; 2346 - 89 0e 1a 00 or byte ptr ds:[0c1h], 080h ; 234a - 80 0e c1 00 80 call _sub_016 ; 234f - e8 d4 0b -> 2f26 _loc_048: ; 2352 xor al, al ; 2352 - 32 c0 ret ; 2354 - c3 GR_SET_CTYPE endp _loc_073: ; 2355 mov cl, 7 ; 2355 - b1 07 jmp _loc_206 ; 2357 - eb ec -> 2345 _loc_072: ; 2359 and ch, 0e0h ; 2359 - 80 e5 e0 jmp _loc_207 ; 235c - eb e2 -> 2340 org 0235eh GR_SET_CPOS proc near public ; 235e mov word ptr ds:[016h], dx ; 235e - 89 16 16 00 call _sub_016 ; 2362 - e8 c1 0b -> 2f26 xor al, al ; 2365 - 32 c0 ret ; 2367 - c3 GR_SET_CPOS endp org 02368h GR_READ_CURSOR proc near public ; 2368 call _sub_008 ; 2368 - e8 ba 01 -> 2525 mov dx, word ptr ds:[016h] ; 236b - 8b 16 16 00 mov cx, word ptr ds:[01ah] ; 236f - 8b 0e 1a 00 or ch, 20h ; 2373 - 80 cd 20 mov byte ptr [bp + 010h], cl ; 2376 - 88 4e 10 mov byte ptr [bp + 011h], ch ; 2379 - 88 6e 11 mov byte ptr [bp + 00eh], dl ; 237c - 88 56 0e mov byte ptr [bp + 00fh], dh ; 237f - 88 76 0f xor al, al ; 2382 - 32 c0 ret ; 2384 - c3 GR_READ_CURSOR endp org 02385h GR_READ_AC_CURRENT proc near public ; 2385 mov al, ds:[09bh] ; 2385 - a0 9b 00 cmp al, 0ffh ; 2388 - 3c ff mov ax, 0 ; 238a - b8 00 00 jz _loc_042 ; 238d - 74 32 -> 23c1 call _sub_008 ; 238f - e8 93 01 -> 2525 mov dx, word ptr ds:[016h] ; 2392 - 8b 16 16 00 call _sub_009 ; 2396 - e8 c5 00 -> 245e mov ax, word ptr es:[bx] ; 2399 - 26 8b 07 mov bh, ah ; 239c - 8a fc and bh, 3 ; 239e - 80 e7 03 mov bl, bh ; 23a1 - 8a df mov bh, ah ; 23a3 - 8a fc shr bh, 1 ; 23a5 - d0 ef and bh, 4 ; 23a7 - 80 e7 04 or bl, bh ; 23aa - 0a df xor bh, bh ; 23ac - 32 ff mov dl, byte ptr ds:[bx + 0a6h] ; 23ae - 8a 97 a6 00 shl dl, 04h ; 23b2 - c0 e2 04 mov bl, ah ; 23b5 - 8a dc shr bl, 04h ; 23b7 - c0 eb 04 and bl, 7 ; 23ba - 80 e3 07 or dl, byte ptr ds:[bx + 0a6h] ; 23bd - 0a 97 a6 00 _loc_042: ; 23c1 mov byte ptr [bp + 012h], al ; 23c1 - 88 46 12 mov byte ptr [bp + 013h], dl ; 23c4 - 88 56 13 xor al, al ; 23c7 - 32 c0 ret ; 23c9 - c3 GR_READ_AC_CURRENT endp org 023cah GR_WRITE_AC_CURRENT proc near public ; 23ca cmp byte ptr ds:[09bh], 0ffh ; 23ca - 80 3e 9b 00 ff jnz _loc_041 ; 23cf - 75 03 -> 23d4 xor al, al ; 23d1 - 32 c0 ret ; 23d3 - c3 _loc_041: ; 23d4 call _sub_008 ; 23d4 - e8 4e 01 -> 2525 push word ptr ds:[018h] ; 23d7 - ff 36 18 00 push word ptr ds:[016h] ; 23db - ff 36 16 00 push bx ; 23df - 53 call _sub_024 ; 23e0 - e8 ce 0c -> 30b1 pop bx ; 23e3 - 5b mov ah, bl ; 23e4 - 8a e3 push ax ; 23e6 - 50 mov bl, al ; 23e7 - 8a d8 xor al, al ; 23e9 - 32 c0 call READ_FONT ; 23eb - e8 bd 15 -> 39ab call _sub_025 ; 23ee - e8 ed 10 -> 34de pop ax ; 23f1 - 58 _loc_097: ; 23f2 call _sub_026 ; 23f2 - e8 32 00 -> 2427 call _sub_027 ; 23f5 - e8 95 0b -> 2f8d call _sub_028 ; 23f8 - e8 ed 0a -> 2ee8 loop _loc_097 ; 23fb - e2 f5 -> 23f2 _loc_103: ; 23fd pop word ptr ds:[016h] ; 23fd - 8f 06 16 00 pop ax ; 2401 - 58 cmp ax, 0ffffh ; 2402 - 3d ff ff jz _loc_098 ; 2405 - 74 0c -> 2413 mov word ptr ds:[018h], 0ffffh ; 2407 - c7 06 18 00 ff ff call _sub_016 ; 240d - e8 16 0b -> 2f26 jmp _loc_099 ; 2410 - eb 12 -> 2424 nop ; 2412 - 90 _loc_098: ; 2413 mov cx, word ptr ds:[016h] ; 2413 - 8b 0e 16 00 mov bl, ch ; 2417 - 8a dd xor bh, bh ; 2419 - 32 ff xor ch, ch ; 241b - 32 ed call _sub_001 ; 241d - e8 bb 0d -> 31db mov word ptr ds:[014h], di ; 2420 - 89 3e 14 00 _loc_099: ; 2424 xor al, al ; 2424 - 32 c0 ret ; 2426 - c3 GR_WRITE_AC_CURRENT endp org 02427h _sub_026 proc near public ; 2427 push dx ; 2427 - 52 push bx ; 2428 - 53 push ax ; 2429 - 50 mov ah, byte ptr ds:[043h] ; 242a - 8a 26 43 00 and ah, 7 ; 242e - 80 e4 07 shl ah, 04h ; 2431 - c0 e4 04 mov bh, byte ptr ds:[042h] ; 2434 - 8a 3e 42 00 mov bl, bh ; 2438 - 8a df shl bh, 1 ; 243a - d0 e7 and bh, 8 ; 243c - 80 e7 08 or ah, bh ; 243f - 0a e7 and bl, 3 ; 2441 - 80 e3 03 or ah, bl ; 2444 - 0a e3 test byte ptr ds:[0b9h], 1 ; 2446 - f6 06 b9 00 01 jnz _loc_183 ; 244b - 75 03 -> 2450 or ah, 4 ; 244d - 80 cc 04 _loc_183: ; 2450 mov dx, word ptr ds:[016h] ; 2450 - 8b 16 16 00 call _sub_009 ; 2454 - e8 07 00 -> 245e mov word ptr es:[bx], ax ; 2457 - 26 89 07 pop ax ; 245a - 58 pop bx ; 245b - 5b pop dx ; 245c - 5a ret ; 245d - c3 _sub_026 endp org 0245eh _sub_009 proc near public ; 245e push ax ; 245e - 50 push dx ; 245f - 52 mov al, dh ; 2460 - 8a c6 mov dh, 50h ; 2462 - b6 50 mul dh ; 2464 - f6 e6 xor dh, dh ; 2466 - 32 f6 add ax, dx ; 2468 - 03 c2 shl ax, 1 ; 246a - d1 e0 mov bx, ax ; 246c - 8b d8 mov ax, ds:[010ah] ; 246e - a1 0a 01 mov es, ax ; 2471 - 8e c0 pop dx ; 2473 - 5a pop ax ; 2474 - 58 ret ; 2475 - c3 _sub_009 endp org 02476h _sub_030 proc near public ; 2476 mov ax, ds:[42h] ; 2476 - a1 42 00 and ax, 0707h ; 2479 - 25 07 07 shl ah, 04h ; 247c - c0 e4 04 or ah, al ; 247f - 0a e0 shl al, 1 ; 2481 - d0 e0 and al, 8 ; 2483 - 24 08 and ah, 0fbh ; 2485 - 80 e4 fb test byte ptr ds:[0b9h], 1 ; 2488 - f6 06 b9 00 01 jnz _loc_164 ; 248d - 75 02 -> 2491 or al, 4 ; 248f - 0c 04 _loc_164: ; 2491 or ah, al ; 2491 - 0a e0 ret ; 2493 - c3 _sub_030 endp org 02494h GR_CHANGE_A_CURRENT proc near public ; 2494 mov al, ds:[09bh] ; 2494 - a0 9b 00 cmp al, 0ffh ; 2497 - 3c ff jnz _loc_035 ; 2499 - 75 03 -> 249e xor al, al ; 249b - 32 c0 ret ; 249d - c3 GR_CHANGE_A_CURRENT endp _loc_035: ; 249e call _sub_008 ; 249e - e8 84 00 -> 2525 push word ptr ds:[018h] ; 24a1 - ff 36 18 00 push word ptr ds:[016h] ; 24a5 - ff 36 16 00 call _sub_024 ; 24a9 - e8 05 0c -> 30b1 call _sub_030 ; 24ac - e8 c7 ff -> 2476 mov dx, word ptr ds:[016h] ; 24af - 8b 16 16 00 call _sub_009 ; 24b3 - e8 a8 ff -> 245e _loc_117: ; 24b6 mov al, byte ptr es:[bx] ; 24b6 - 26 8a 07 inc bx ; 24b9 - 43 mov byte ptr es:[bx], ah ; 24ba - 26 88 27 inc bx ; 24bd - 43 push ax ; 24be - 50 push bx ; 24bf - 53 push es ; 24c0 - 06 mov bl, al ; 24c1 - 8a d8 xor al, al ; 24c3 - 32 c0 call READ_FONT ; 24c5 - e8 e3 14 -> 39ab call _sub_025 ; 24c8 - e8 13 10 -> 34de call _sub_027 ; 24cb - e8 bf 0a -> 2f8d call _sub_028 ; 24ce - e8 17 0a -> 2ee8 pop es ; 24d1 - 07 pop bx ; 24d2 - 5b pop ax ; 24d3 - 58 loop _loc_117 ; 24d4 - e2 e0 -> 24b6 jmp _loc_103 ; 24d6 - e9 24 ff -> 23fd org 024d9h GR_WRITE_C_CURRENT proc near public ; 24d9 push ax ; 24d9 - 50 mov al, ds:[09bh] ; 24da - a0 9b 00 cmp al, 0ffh ; 24dd - 3c ff pop ax ; 24df - 58 jnz _loc_040 ; 24e0 - 75 03 -> 24e5 xor al, al ; 24e2 - 32 c0 ret ; 24e4 - c3 GR_WRITE_C_CURRENT endp _loc_040: ; 24e5 call _sub_008 ; 24e5 - e8 3d 00 -> 2525 push word ptr ds:[018h] ; 24e8 - ff 36 18 00 mov dx, word ptr ds:[016h] ; 24ec - 8b 16 16 00 push dx ; 24f0 - 52 push ax ; 24f1 - 50 mov ax, ds:[42h] ; 24f2 - a1 42 00 cmp ah, 0ffh ; 24f5 - 80 fc ff jnz _loc_100 ; 24f8 - 75 05 -> 24ff mov bl, 0fh ; 24fa - b3 0f call _sub_029 ; 24fc - e8 d9 0b -> 30d8 _loc_100: ; 24ff pop ax ; 24ff - 58 push cx ; 2500 - 51 push bx ; 2501 - 53 mov ah, bl ; 2502 - 8a e3 call _sub_009 ; 2504 - e8 57 ff -> 245e _loc_101: ; 2507 mov word ptr es:[bx], ax ; 2507 - 26 89 07 inc bx ; 250a - 43 inc bx ; 250b - 43 loop _loc_101 ; 250c - e2 f9 -> 2507 pop bx ; 250e - 5b pop cx ; 250f - 59 mov bl, al ; 2510 - 8a d8 xor al, al ; 2512 - 32 c0 call READ_FONT ; 2514 - e8 94 14 -> 39ab call _sub_025 ; 2517 - e8 c4 0f -> 34de _loc_102: ; 251a call _sub_027 ; 251a - e8 70 0a -> 2f8d call _sub_028 ; 251d - e8 c8 09 -> 2ee8 loop _loc_102 ; 2520 - e2 f8 -> 251a jmp _loc_103 ; 2522 - e9 d8 fe -> 23fd org 02525h _sub_008 proc near public ; 2525 push cx ; 2525 - 51 mov cx, word ptr ds:[016h] ; 2526 - 8b 0e 16 00 cmp cl, byte ptr ds:[0aeh] ; 252a - 3a 0e ae 00 jnl _loc_096 ; 252e - 7d 02 -> 2532 pop cx ; 2530 - 59 ret ; 2531 - c3 _loc_096: ; 2532 xor cl, cl ; 2532 - 32 c9 inc ch ; 2534 - fe c5 cmp ch, 19h ; 2536 - 80 fd 19 jl _loc_185 ; 2539 - 7c 02 -> 253d xor ch, ch ; 253b - 32 ed _loc_185: ; 253d mov word ptr ds:[016h], cx ; 253d - 89 0e 16 00 pop cx ; 2541 - 59 ret ; 2542 - c3 _sub_008 endp org 02543h GR_WRITE_TTY proc near public ; 2543 push ax ; 2543 - 50 mov al, ds:[09bh] ; 2544 - a0 9b 00 cmp al, 0ffh ; 2547 - 3c ff pop ax ; 2549 - 58 jnz _loc_036 ; 254a - 75 03 -> 254f xor al, al ; 254c - 32 c0 ret ; 254e - c3 _loc_036: ; 254f or al, al ; 254f - 0a c0 jz _loc_109 ; 2551 - 74 25 -> 2578 cmp al, 7 ; 2553 - 3c 07 jz _loc_110 ; 2555 - 74 24 -> 257b cmp al, 8 ; 2557 - 3c 08 jz _loc_111 ; 2559 - 74 26 -> 2581 cmp al, 9 ; 255b - 3c 09 jz _loc_112 ; 255d - 74 31 -> 2590 cmp al, 0ah ; 255f - 3c 0a jz _loc_113 ; 2561 - 74 4a -> 25ad cmp al, 0ch ; 2563 - 3c 0c jz _loc_114 ; 2565 - 74 4b -> 25b2 cmp al, 0dh ; 2567 - 3c 0d jnz _loc_115 ; 2569 - 75 03 -> 256e jmp _loc_116 ; 256b - eb 5f -> 25cc nop ; 256d - 90 _loc_115: ; 256e cmp al, 7fh ; 256e - 3c 7f jnz _loc_165 ; 2570 - 75 03 -> 2575 jmp _loc_166 ; 2572 - eb 66 -> 25da nop ; 2574 - 90 _loc_165: ; 2575 jmp _loc_248 ; 2575 - e9 87 00 -> 25ff _loc_109: ; 2578 xor al, al ; 2578 - 32 c0 ret ; 257a - c3 _loc_110: ; 257b call _sub_017 ; 257b - e8 80 f9 -> 1efe xor al, al ; 257e - 32 c0 ret ; 2580 - c3 _loc_111: ; 2581 mov ax, ds:[16h] ; 2581 - a1 16 00 or al, al ; 2584 - 0a c0 jnz _loc_169 ; 2586 - 75 03 -> 258b xor al, al ; 2588 - 32 c0 ret ; 258a - c3 _loc_169: ; 258b dec al ; 258b - fe c8 jmp _loc_167 ; 258d - eb 42 -> 25d1 nop ; 258f - 90 _loc_112: ; 2590 mov ax, ds:[16h] ; 2590 - a1 16 00 mov bp, ax ; 2593 - 8b e8 mov bl, 8 ; 2595 - b3 08 xor ah, ah ; 2597 - 32 e4 div bl ; 2599 - f6 f3 sub bl, ah ; 259b - 2a dc mov ax, bp ; 259d - 8b c5 add al, bl ; 259f - 02 c3 cmp al, byte ptr ds:[0aeh] ; 25a1 - 3a 06 ae 00 jbe _loc_168 ; 25a5 - 76 03 -> 25aa xor al, al ; 25a7 - 32 c0 ret ; 25a9 - c3 _loc_168: ; 25aa jmp _loc_167 ; 25aa - eb 25 -> 25d1 nop ; 25ac - 90 _loc_113: ; 25ad call _sub_031 ; 25ad - e8 9d 00 -> 264d jmp _loc_167 ; 25b0 - eb 1f -> 25d1 _loc_114: ; 25b2 xor al, al ; 25b2 - 32 c0 xor cx, cx ; 25b4 - 33 c9 mov dh, 18h ; 25b6 - b6 18 mov dl, byte ptr ds:[0aeh] ; 25b8 - 8a 16 ae 00 dec dl ; 25bc - fe ca mov bh, 0ffh ; 25be - b7 ff call GR_SCROLL_UP ; 25c0 - e8 bc 00 -> 267f xor ax, ax ; 25c3 - 33 c0 mov ds:[16h], ax ; 25c5 - a3 16 00 call _sub_016 ; 25c8 - e8 5b 09 -> 2f26 ret ; 25cb - c3 _loc_116: ; 25cc mov ax, ds:[16h] ; 25cc - a1 16 00 xor al, al ; 25cf - 32 c0 _loc_167: ; 25d1 mov ds:[16h], ax ; 25d1 - a3 16 00 call _sub_016 ; 25d4 - e8 4f 09 -> 2f26 xor al, al ; 25d7 - 32 c0 ret ; 25d9 - c3 _loc_166: ; 25da mov ax, ds:[16h] ; 25da - a1 16 00 or al, al ; 25dd - 0a c0 jz _loc_247 ; 25df - 74 1b -> 25fc dec al ; 25e1 - fe c8 mov ds:[16h], ax ; 25e3 - a3 16 00 mov ax, 0020h ; 25e6 - b8 20 00 call _sub_026 ; 25e9 - e8 3b fe -> 2427 mov bl, 20h ; 25ec - b3 20 xor al, al ; 25ee - 32 c0 call READ_FONT ; 25f0 - e8 b8 13 -> 39ab call _sub_025 ; 25f3 - e8 e8 0e -> 34de call _sub_027 ; 25f6 - e8 94 09 -> 2f8d call _sub_016 ; 25f9 - e8 2a 09 -> 2f26 _loc_247: ; 25fc xor al, al ; 25fc - 32 c0 ret ; 25fe - c3 GR_WRITE_TTY endp _loc_248: ; 25ff xchg ax, bx ; 25ff - 93 cmp byte ptr ds:[091h], 3 ; 2600 - 80 3e 91 00 03 jbe _loc_286 ; 2605 - 76 07 -> 260e and al, 7 ; 2607 - 24 07 add al, 8 ; 2609 - 04 08 mov ds:[43h], al ; 260b - a2 43 00 _loc_286: ; 260e push ax ; 260e - 50 push bx ; 260f - 53 mov ax, ds:[16h] ; 2610 - a1 16 00 cmp al, byte ptr ds:[0aeh] ; 2613 - 3a 06 ae 00 jl _loc_287 ; 2617 - 7c 13 -> 262c call _sub_031 ; 2619 - e8 31 00 -> 264d xor al, al ; 261c - 32 c0 mov ds:[16h], ax ; 261e - a3 16 00 mov cl, al ; 2621 - 8a c8 mov bl, ah ; 2623 - 8a dc call _sub_001 ; 2625 - e8 b3 0b -> 31db mov word ptr ds:[014h], di ; 2628 - 89 3e 14 00 _loc_287: ; 262c pop bx ; 262c - 5b pop ax ; 262d - 58 mov ah, al ; 262e - 8a e0 mov al, bl ; 2630 - 8a c3 call _sub_026 ; 2632 - e8 f2 fd -> 2427 xor al, al ; 2635 - 32 c0 call READ_FONT ; 2637 - e8 71 13 -> 39ab call _sub_025 ; 263a - e8 a1 0e -> 34de call _sub_027 ; 263d - e8 4d 09 -> 2f8d mov word ptr ds:[018h], 0ffffh ; 2640 - c7 06 18 00 ff ff mov ax, ds:[16h] ; 2646 - a1 16 00 inc al ; 2649 - fe c0 _loc_246: ; 264b jmp _loc_167 ; 264b - eb 84 -> 25d1 org 0264dh _sub_031 proc near public ; 264d mov ax, ds:[16h] ; 264d - a1 16 00 inc ah ; 2650 - fe c4 mov bx, 0019h ; 2652 - bb 19 00 cmp ah, bl ; 2655 - 3a e3 jnz _loc_246 ; 2657 - 75 f2 -> 264b xor cx, cx ; 2659 - 33 c9 mov ah, bl ; 265b - 8a e3 dec ah ; 265d - fe cc mov bp, ax ; 265f - 8b e8 mov dh, bl ; 2661 - 8a f3 dec dh ; 2663 - fe ce mov al, ds:[0aeh] ; 2665 - a0 ae 00 mov dl, al ; 2668 - 8a d0 dec dl ; 266a - fe ca mov al, 1 ; 266c - b0 01 mov word ptr ds:[016h], 0ffffh ; 266e - c7 06 16 00 ff ff call _sub_016 ; 2674 - e8 af 08 -> 2f26 mov bh, 0ffh ; 2677 - b7 ff call GR_SCROLL_UP ; 2679 - e8 03 00 -> 267f mov ax, bp ; 267c - 8b c5 ret ; 267e - c3 _sub_031 endp org 0267fh GR_SCROLL_UP proc near public ; 267f call _sub_010 ; 267f - e8 c9 0c -> 334b push ax ; 2682 - 50 push cx ; 2683 - 51 push dx ; 2684 - 52 push bx ; 2685 - 53 call _sub_015 ; 2686 - e8 37 00 -> 26c0 call _sub_012 ; 2689 - e8 80 01 -> 280c pop bx ; 268c - 5b pop dx ; 268d - 5a pop cx ; 268e - 59 pop ax ; 268f - 58 mov al, bh ; 2690 - 8a c7 mov bh, cl ; 2692 - 8a f9 mov bl, dl ; 2694 - 8a da push bx ; 2696 - 53 mov bh, al ; 2697 - 8a f8 xor al, al ; 2699 - 32 c0 call _sub_013 ; 269b - e8 d2 0b -> 3270 test byte ptr ds:[01ch], 4 ; 269e - f6 06 1c 00 04 jnz _loc_045 ; 26a3 - 75 06 -> 26ab call _sub_014 ; 26a5 - e8 e5 0c -> 338d pop bx ; 26a8 - 5b jmp _loc_046 ; 26a9 - eb 07 -> 26b2 _loc_045: ; 26ab call _sub_021 ; 26ab - e8 e7 0d -> 3495 pop cx ; 26ae - 59 call _sub_022 ; 26af - e8 32 0c -> 32e4 _loc_046: ; 26b2 pop word ptr ds:[016h] ; 26b2 - 8f 06 16 00 pop ax ; 26b6 - 58 cmp ax, 0ffffh ; 26b7 - 3d ff ff jz _loc_076 ; 26ba - 74 03 -> 26bf call _sub_016 ; 26bc - e8 67 08 -> 2f26 _loc_076: ; 26bf ret ; 26bf - c3 GR_SCROLL_UP endp org 026c0h _sub_015 proc near public ; 26c0 mov bl, dl ; 26c0 - 8a da sub bl, cl ; 26c2 - 2a d9 inc bl ; 26c4 - fe c3 mov bh, dh ; 26c6 - 8a fe sub bh, ch ; 26c8 - 2a fd cmp bh, al ; 26ca - 3a f8 jnl _loc_077 ; 26cc - 7d 02 -> 26d0 xor al, al ; 26ce - 32 c0 _loc_077: ; 26d0 sub bh, al ; 26d0 - 2a f8 inc bh ; 26d2 - fe c7 push bx ; 26d4 - 53 mov dx, cx ; 26d5 - 8b d1 call _sub_009 ; 26d7 - e8 84 fd -> 245e mov di, bx ; 26da - 8b fb add dh, al ; 26dc - 02 f0 call _sub_009 ; 26de - e8 7d fd -> 245e mov si, bx ; 26e1 - 8b f3 mov dx, 00a0h ; 26e3 - ba a0 00 xor ch, ch ; 26e6 - 32 ed pop bx ; 26e8 - 5b cld ; 26e9 - fc or al, al ; 26ea - 0a c0 jz _loc_078 ; 26ec - 74 1a -> 2708 push ds ; 26ee - 1e push ax ; 26ef - 50 mov ax, es ; 26f0 - 8c c0 mov ds, ax ; 26f2 - 8e d8 pop ax ; 26f4 - 58 _loc_079: ; 26f5 mov cl, bl ; 26f5 - 8a cb push si ; 26f7 - 56 push di ; 26f8 - 57 rep movsw ; 26f9 - f3 a5 pop di ; 26fb - 5f pop si ; 26fc - 5e add si, dx ; 26fd - 03 f2 add di, dx ; 26ff - 03 fa dec bh ; 2701 - fe cf jnz _loc_079 ; 2703 - 75 f0 -> 26f5 pop ds ; 2705 - 1f mov bh, al ; 2706 - 8a f8 _loc_078: ; 2708 ret ; 2708 - c3 _sub_015 endp org 02709h _sub_038 proc near public ; 2709 mov bl, dl ; 2709 - 8a da sub bl, cl ; 270b - 2a d9 inc bl ; 270d - fe c3 mov bh, dh ; 270f - 8a fe sub bh, ch ; 2711 - 2a fd inc bh ; 2713 - fe c7 cmp bl, al ; 2715 - 3a d8 jnl _loc_303 ; 2717 - 7d 02 -> 271b xor al, al ; 2719 - 32 c0 _loc_303: ; 271b sub bl, al ; 271b - 2a d8 push bx ; 271d - 53 mov ah, dl ; 271e - 8a e2 mov dx, cx ; 2720 - 8b d1 call _sub_009 ; 2722 - e8 39 fd -> 245e mov di, bx ; 2725 - 8b fb add dl, al ; 2727 - 02 d0 call _sub_009 ; 2729 - e8 32 fd -> 245e mov si, bx ; 272c - 8b f3 mov dx, cx ; 272e - 8b d1 mov dl, ah ; 2730 - 8a d4 sub dl, al ; 2732 - 2a d0 inc dl ; 2734 - fe c2 call _sub_009 ; 2736 - e8 25 fd -> 245e mov dx, bx ; 2739 - 8b d3 xor ch, ch ; 273b - 32 ed pop bx ; 273d - 5b push dx ; 273e - 52 cld ; 273f - fc mov dx, 00a0h ; 2740 - ba a0 00 or al, al ; 2743 - 0a c0 jz _loc_304 ; 2745 - 74 1c -> 2763 push ds ; 2747 - 1e push ax ; 2748 - 50 mov ax, es ; 2749 - 8c c0 mov ds, ax ; 274b - 8e d8 pop ax ; 274d - 58 push bx ; 274e - 53 _loc_305: ; 274f mov cl, bl ; 274f - 8a cb push si ; 2751 - 56 push di ; 2752 - 57 rep movsw ; 2753 - f3 a5 pop di ; 2755 - 5f pop si ; 2756 - 5e add si, dx ; 2757 - 03 f2 add di, dx ; 2759 - 03 fa dec bh ; 275b - fe cf jnz _loc_305 ; 275d - 75 f0 -> 274f pop bx ; 275f - 5b pop ds ; 2760 - 1f mov bl, al ; 2761 - 8a d8 _loc_304: ; 2763 pop di ; 2763 - 5f ret ; 2764 - c3 _sub_038 endp org 02765h _sub_041 proc near public ; 2765 mov bl, dl ; 2765 - 8a da sub bl, cl ; 2767 - 2a d9 inc bl ; 2769 - fe c3 mov bh, dh ; 276b - 8a fe sub bh, ch ; 276d - 2a fd inc bh ; 276f - fe c7 cmp bl, al ; 2771 - 3a d8 jnl _loc_309 ; 2773 - 7d 02 -> 2777 xor al, al ; 2775 - 32 c0 _loc_309: ; 2777 sub bl, al ; 2777 - 2a d8 push bx ; 2779 - 53 push cx ; 277a - 51 mov dh, ch ; 277b - 8a f5 call _sub_009 ; 277d - e8 de fc -> 245e mov di, bx ; 2780 - 8b fb sub dl, al ; 2782 - 2a d0 call _sub_009 ; 2784 - e8 d7 fc -> 245e mov si, bx ; 2787 - 8b f3 pop dx ; 2789 - 5a call _sub_009 ; 278a - e8 d1 fc -> 245e mov dx, bx ; 278d - 8b d3 xor ch, ch ; 278f - 32 ed pop bx ; 2791 - 5b push dx ; 2792 - 52 std ; 2793 - fd mov dx, 00a0h ; 2794 - ba a0 00 or al, al ; 2797 - 0a c0 jz _loc_310 ; 2799 - 74 1d -> 27b8 push ds ; 279b - 1e push ax ; 279c - 50 mov ax, es ; 279d - 8c c0 mov ds, ax ; 279f - 8e d8 pop ax ; 27a1 - 58 push bx ; 27a2 - 53 _loc_311: ; 27a3 mov cl, bl ; 27a3 - 8a cb push si ; 27a5 - 56 push di ; 27a6 - 57 rep movsw ; 27a7 - f3 a5 pop di ; 27a9 - 5f pop si ; 27aa - 5e add si, dx ; 27ab - 03 f2 add di, dx ; 27ad - 03 fa dec bh ; 27af - fe cf jnz _loc_311 ; 27b1 - 75 f0 -> 27a3 pop bx ; 27b3 - 5b pop ds ; 27b4 - 1f mov bl, al ; 27b5 - 8a d8 cld ; 27b7 - fc _loc_310: ; 27b8 pop di ; 27b8 - 5f ret ; 27b9 - c3 _sub_041 endp org 027bah _sub_011 proc near public ; 27ba mov bl, dl ; 27ba - 8a da sub bl, cl ; 27bc - 2a d9 inc bl ; 27be - fe c3 mov bh, dh ; 27c0 - 8a fe sub bh, ch ; 27c2 - 2a fd cmp bh, al ; 27c4 - 3a f8 jnl _loc_091 ; 27c6 - 7d 02 -> 27ca xor al, al ; 27c8 - 32 c0 _loc_091: ; 27ca sub bh, al ; 27ca - 2a f8 inc bh ; 27cc - fe c7 push bx ; 27ce - 53 mov dl, cl ; 27cf - 8a d1 call _sub_009 ; 27d1 - e8 8a fc -> 245e mov di, bx ; 27d4 - 8b fb sub dh, al ; 27d6 - 2a f0 call _sub_009 ; 27d8 - e8 83 fc -> 245e mov si, bx ; 27db - 8b f3 mov dx, cx ; 27dd - 8b d1 call _sub_009 ; 27df - e8 7c fc -> 245e mov dx, bx ; 27e2 - 8b d3 xor ch, ch ; 27e4 - 32 ed pop bx ; 27e6 - 5b push dx ; 27e7 - 52 mov dx, 00a0h ; 27e8 - ba a0 00 cld ; 27eb - fc or al, al ; 27ec - 0a c0 jz _loc_092 ; 27ee - 74 1a -> 280a push ds ; 27f0 - 1e push ax ; 27f1 - 50 mov ax, es ; 27f2 - 8c c0 mov ds, ax ; 27f4 - 8e d8 pop ax ; 27f6 - 58 _loc_093: ; 27f7 mov cl, bl ; 27f7 - 8a cb push si ; 27f9 - 56 push di ; 27fa - 57 rep movsw ; 27fb - f3 a5 pop di ; 27fd - 5f pop si ; 27fe - 5e sub si, dx ; 27ff - 2b f2 sub di, dx ; 2801 - 2b fa dec bh ; 2803 - fe cf jnz _loc_093 ; 2805 - 75 f0 -> 27f7 pop ds ; 2807 - 1f mov bh, al ; 2808 - 8a f8 _loc_092: ; 280a pop di ; 280a - 5f ret ; 280b - c3 _sub_011 endp org 0280ch _sub_012 proc near public ; 280c mov ah, byte ptr ds:[042h] ; 280c - 8a 26 42 00 and ah, 7 ; 2810 - 80 e4 07 mov al, ah ; 2813 - 8a c4 and ah, 3 ; 2815 - 80 e4 03 and al, 4 ; 2818 - 24 04 shl al, 1 ; 281a - d0 e0 test byte ptr ds:[0b9h], 1 ; 281c - f6 06 b9 00 01 jnz _loc_089 ; 2821 - 75 02 -> 2825 or al, 4 ; 2823 - 0c 04 _loc_089: ; 2825 or ah, al ; 2825 - 0a e0 mov al, 20h ; 2827 - b0 20 _loc_090: ; 2829 mov cl, bl ; 2829 - 8a cb push di ; 282b - 57 rep stosw ; 282c - f3 ab pop di ; 282e - 5f add di, dx ; 282f - 03 fa dec bh ; 2831 - fe cf jnz _loc_090 ; 2833 - 75 f4 -> 2829 ret ; 2835 - c3 _sub_012 endp db 0e8h ; 2836 db 012h ; 2837 db 00bh ; 2838 org 02839h GR_SCROLL_DOWN proc near public ; 2839 call _sub_010 ; 2839 - e8 0f 0b -> 334b push ax ; 283c - 50 push cx ; 283d - 51 push dx ; 283e - 52 push bx ; 283f - 53 call _sub_011 ; 2840 - e8 77 ff -> 27ba call _sub_012 ; 2843 - e8 c6 ff -> 280c pop bx ; 2846 - 5b pop dx ; 2847 - 5a pop cx ; 2848 - 59 pop ax ; 2849 - 58 mov al, bh ; 284a - 8a c7 mov bh, cl ; 284c - 8a f9 mov bl, dl ; 284e - 8a da push bx ; 2850 - 53 mov bh, al ; 2851 - 8a f8 mov al, 0ffh ; 2853 - b0 ff call _sub_013 ; 2855 - e8 18 0a -> 3270 test byte ptr ds:[01ch], 4 ; 2858 - f6 06 1c 00 04 jnz _loc_043 ; 285d - 75 06 -> 2865 call _sub_014 ; 285f - e8 2b 0b -> 338d pop bx ; 2862 - 5b jmp _loc_044 ; 2863 - eb 39 -> 289e _loc_043: ; 2865 push bx ; 2865 - 53 xor bx, bx ; 2866 - 33 db jcxz _loc_083 ; 2868 - e3 21 -> 288b _loc_085: ; 286a push cx ; 286a - 51 mov cx, 3 ; 286b - b9 03 00 _loc_084: ; 286e push cx ; 286e - 51 mov cx, 0010h ; 286f - b9 10 00 call _sub_014 ; 2872 - e8 18 0b -> 338d call CHANGE_PLANE_ON ; 2875 - e8 bf 11 -> 3a37 pop cx ; 2878 - 59 loop _loc_084 ; 2879 - e2 f3 -> 286e sub si, 0500h ; 287b - 81 ee 00 05 sub di, 0500h ; 287f - 81 ef 00 05 pop cx ; 2883 - 59 sub cx, 10h ; 2884 - 83 e9 10 jcxz _loc_083 ; 2887 - e3 02 -> 288b jmp _loc_085 ; 2889 - eb df -> 286a _loc_083: ; 288b pop bx ; 288b - 5b push dx ; 288c - 52 mov ax, 0500h ; 288d - b8 00 05 add di, ax ; 2890 - 03 f8 mov ax, 0050h ; 2892 - b8 50 00 mul bx ; 2895 - f7 e3 sub di, ax ; 2897 - 2b f8 pop dx ; 2899 - 5a pop cx ; 289a - 59 call _sub_022 ; 289b - e8 46 0a -> 32e4 _loc_044: ; 289e pop word ptr ds:[016h] ; 289e - 8f 06 16 00 pop ax ; 28a2 - 58 cmp ax, 0ffffh ; 28a3 - 3d ff ff jz _loc_080 ; 28a6 - 74 03 -> 28ab call _sub_016 ; 28a8 - e8 7b 06 -> 2f26 _loc_080: ; 28ab xor al, al ; 28ab - 32 c0 ret ; 28ad - c3 GR_SCROLL_DOWN endp org 028aeh GR_OMNI_SCROLL proc near public ; 28ae push word ptr ds:[018h] ; 28ae - ff 36 18 00 push word ptr ds:[016h] ; 28b2 - ff 36 16 00 push ax ; 28b6 - 50 push bx ; 28b7 - 53 push cx ; 28b8 - 51 push dx ; 28b9 - 52 push si ; 28ba - 56 push es ; 28bb - 06 cmp bl, 2 ; 28bc - 80 fb 02 jl _loc_033 ; 28bf - 7c 10 -> 28d1 cmp al, 0 ; 28c1 - 3c 00 jz _loc_034 ; 28c3 - 74 11 -> 28d6 push dx ; 28c5 - 52 sub dl, cl ; 28c6 - 2a d1 cmp al, dl ; 28c8 - 3a c2 pop dx ; 28ca - 5a jle _loc_033 ; 28cb - 7e 04 -> 28d1 mov al, 0 ; 28cd - b0 00 jmp _loc_034 ; 28cf - eb 05 -> 28d6 _loc_033: ; 28d1 cmp bl, 0 ; 28d1 - 80 fb 00 jnz _loc_119 ; 28d4 - 75 08 -> 28de _loc_034: ; 28d6 mov bh, 0ffh ; 28d6 - b7 ff call GR_SCROLL_UP ; 28d8 - e8 a4 fd -> 267f jmp _loc_118 ; 28db - e9 31 01 -> 2a0f _loc_119: ; 28de cmp bl, 1 ; 28de - 80 fb 01 jnz _loc_161 ; 28e1 - 75 08 -> 28eb mov bh, 0ffh ; 28e3 - b7 ff call GR_SCROLL_DOWN ; 28e5 - e8 51 ff -> 2839 jmp _loc_118 ; 28e8 - e9 24 01 -> 2a0f _loc_161: ; 28eb cmp bl, 2 ; 28eb - 80 fb 02 jz _loc_254 ; 28ee - 74 03 -> 28f3 jmp _loc_255 ; 28f0 - e9 87 00 -> 297a _loc_254: ; 28f3 push ax ; 28f3 - 50 push cx ; 28f4 - 51 push dx ; 28f5 - 52 mov bh, 0ffh ; 28f6 - b7 ff call _sub_010 ; 28f8 - e8 50 0a -> 334b pop ax ; 28fb - 58 pop ax ; 28fc - 58 pop dx ; 28fd - 5a pop cx ; 28fe - 59 pop ax ; 28ff - 58 push ax ; 2900 - 50 push cx ; 2901 - 51 push dx ; 2902 - 52 call _sub_038 ; 2903 - e8 03 fe -> 2709 call _sub_012 ; 2906 - e8 03 ff -> 280c pop dx ; 2909 - 5a pop cx ; 290a - 59 pop ax ; 290b - 58 mov bh, al ; 290c - 8a f8 mov ax, cx ; 290e - 8b c1 call _sub_023 ; 2910 - e8 aa 0b -> 34bd mov di, ax ; 2913 - 8b f8 mov ax, cx ; 2915 - 8b c1 add al, bh ; 2917 - 02 c7 call _sub_023 ; 2919 - e8 a1 0b -> 34bd mov si, ax ; 291c - 8b f0 mov al, dl ; 291e - 8a c2 inc al ; 2920 - fe c0 sub al, bh ; 2922 - 2a c7 mov ah, ch ; 2924 - 8a e5 call _sub_023 ; 2926 - e8 94 0b -> 34bd push ax ; 2929 - 50 sub dh, ch ; 292a - 2a f5 inc dh ; 292c - fe c6 mov al, dh ; 292e - 8a c6 mov bl, byte ptr ds:[09ah] ; 2930 - 8a 1e 9a 00 mul bl ; 2934 - f6 e3 push ax ; 2936 - 50 push ax ; 2937 - 50 mov dh, byte ptr ds:[098h] ; 2938 - 8a 36 98 00 sub dl, cl ; 293c - 2a d1 inc dl ; 293e - fe c2 sub dl, bh ; 2940 - 2a d7 xchg bh, dl ; 2942 - 86 d7 mov al, bh ; 2944 - 8a c7 pop cx ; 2946 - 59 pop bx ; 2947 - 5b push dx ; 2948 - 52 mov dl, al ; 2949 - 8a d0 test byte ptr ds:[01ch], 4 ; 294b - f6 06 1c 00 04 jnz _loc_280 ; 2950 - 75 1d -> 296f push bx ; 2952 - 53 xor bx, bx ; 2953 - 33 db call _sub_014 ; 2955 - e8 35 0a -> 338d pop bx ; 2958 - 5b pop dx ; 2959 - 5a pop di ; 295a - 5f mov ah, byte ptr ds:[042h] ; 295b - 8a 26 42 00 xor al, al ; 295f - 32 c0 ror ah, 1 ; 2961 - d0 cc jnb _loc_281 ; 2963 - 73 02 -> 2967 mov al, 0ffh ; 2965 - b0 ff _loc_281: ; 2967 xor cx, cx ; 2967 - 33 c9 call _sub_014 ; 2969 - e8 21 0a -> 338d jmp _loc_118 ; 296c - e9 a0 00 -> 2a0f _loc_280: ; 296f call _sub_021 ; 296f - e8 23 0b -> 3495 pop dx ; 2972 - 5a pop di ; 2973 - 5f call _sub_022 ; 2974 - e8 6d 09 -> 32e4 jmp _loc_118 ; 2977 - e9 95 00 -> 2a0f _loc_255: ; 297a cmp bl, 3 ; 297a - 80 fb 03 jz _loc_278 ; 297d - 74 03 -> 2982 jmp _loc_279 ; 297f - e9 84 00 -> 2a06 _loc_278: ; 2982 push ax ; 2982 - 50 push cx ; 2983 - 51 push dx ; 2984 - 52 mov bh, 0ffh ; 2985 - b7 ff call _sub_010 ; 2987 - e8 c1 09 -> 334b pop ax ; 298a - 58 pop ax ; 298b - 58 pop dx ; 298c - 5a pop cx ; 298d - 59 pop ax ; 298e - 58 push ax ; 298f - 50 push cx ; 2990 - 51 push dx ; 2991 - 52 call _sub_041 ; 2992 - e8 d0 fd -> 2765 call _sub_012 ; 2995 - e8 74 fe -> 280c pop dx ; 2998 - 5a pop cx ; 2999 - 59 pop ax ; 299a - 58 mov bh, al ; 299b - 8a f8 mov ah, ch ; 299d - 8a e5 mov al, dl ; 299f - 8a c2 push ax ; 29a1 - 50 call _sub_023 ; 29a2 - e8 18 0b -> 34bd mov di, ax ; 29a5 - 8b f8 pop ax ; 29a7 - 58 sub al, bh ; 29a8 - 2a c7 call _sub_023 ; 29aa - e8 10 0b -> 34bd mov si, ax ; 29ad - 8b f0 mov ax, cx ; 29af - 8b c1 call _sub_023 ; 29b1 - e8 09 0b -> 34bd push ax ; 29b4 - 50 std ; 29b5 - fd sub dh, ch ; 29b6 - 2a f5 inc dh ; 29b8 - fe c6 mov al, dh ; 29ba - 8a c6 mov bl, byte ptr ds:[09ah] ; 29bc - 8a 1e 9a 00 mul bl ; 29c0 - f6 e3 push ax ; 29c2 - 50 push ax ; 29c3 - 50 mov dh, byte ptr ds:[098h] ; 29c4 - 8a 36 98 00 sub dl, cl ; 29c8 - 2a d1 inc dl ; 29ca - fe c2 sub dl, bh ; 29cc - 2a d7 xchg bh, dl ; 29ce - 86 d7 mov al, bh ; 29d0 - 8a c7 pop cx ; 29d2 - 59 pop bx ; 29d3 - 5b push dx ; 29d4 - 52 mov dl, al ; 29d5 - 8a d0 test byte ptr ds:[01ch], 4 ; 29d7 - f6 06 1c 00 04 jnz _loc_306 ; 29dc - 75 1c -> 29fa push bx ; 29de - 53 xor bx, bx ; 29df - 33 db call _sub_014 ; 29e1 - e8 a9 09 -> 338d pop bx ; 29e4 - 5b pop dx ; 29e5 - 5a pop di ; 29e6 - 5f mov ah, byte ptr ds:[042h] ; 29e7 - 8a 26 42 00 xor al, al ; 29eb - 32 c0 ror ah, 1 ; 29ed - d0 cc jnb _loc_307 ; 29ef - 73 02 -> 29f3 mov al, 0ffh ; 29f1 - b0 ff _loc_307: ; 29f3 xor cx, cx ; 29f3 - 33 c9 call _sub_014 ; 29f5 - e8 95 09 -> 338d jmp _loc_118 ; 29f8 - eb 15 -> 2a0f _loc_306: ; 29fa call _sub_021 ; 29fa - e8 98 0a -> 3495 pop dx ; 29fd - 5a pop di ; 29fe - 5f cld ; 29ff - fc call _sub_022 ; 2a00 - e8 e1 08 -> 32e4 jmp _loc_118 ; 2a03 - eb 0a -> 2a0f nop ; 2a05 - 90 _loc_279: ; 2a06 pop es ; 2a06 - 07 pop si ; 2a07 - 5e pop dx ; 2a08 - 5a pop cx ; 2a09 - 59 pop bx ; 2a0a - 5b pop ax ; 2a0b - 58 pop ax ; 2a0c - 58 pop ax ; 2a0d - 58 ret ; 2a0e - c3 _loc_118: ; 2a0f pop es ; 2a0f - 07 pop si ; 2a10 - 5e pop dx ; 2a11 - 5a pop cx ; 2a12 - 59 pop bx ; 2a13 - 5b pop ax ; 2a14 - 58 or bh, bh ; 2a15 - 0a ff jz _loc_162 ; 2a17 - 74 03 -> 2a1c jmp _loc_163 ; 2a19 - e9 aa 00 -> 2ac6 _loc_162: ; 2a1c push word ptr ds:[016h] ; 2a1c - ff 36 16 00 push word ptr ds:[01ah] ; 2a20 - ff 36 1a 00 mov ah, byte ptr ds:[0c1h] ; 2a24 - 8a 26 c1 00 push ax ; 2a28 - 50 push ax ; 2a29 - 50 push cx ; 2a2a - 51 mov ch, 40h ; 2a2b - b5 40 call GR_SET_CTYPE ; 2a2d - e8 ea f8 -> 231a pop cx ; 2a30 - 59 pop ax ; 2a31 - 58 cmp bl, 1 ; 2a32 - 80 fb 01 jnbe _loc_250 ; 2a35 - 77 36 -> 2a6d cmp al, 0 ; 2a37 - 3c 00 jnz _loc_251 ; 2a39 - 75 06 -> 2a41 mov al, dh ; 2a3b - 8a c6 sub al, ch ; 2a3d - 2a c5 inc al ; 2a3f - fe c0 _loc_251: ; 2a41 cmp bl, 0 ; 2a41 - 80 fb 00 jnz _loc_252 ; 2a44 - 75 18 -> 2a5e mov ah, dh ; 2a46 - 8a e6 sub ah, al ; 2a48 - 2a e0 inc ah ; 2a4a - fe c4 mov bh, dh ; 2a4c - 8a fe mov dh, ah ; 2a4e - 8a f4 _loc_283: ; 2a50 mov ah, dl ; 2a50 - 8a e2 sub ah, cl ; 2a52 - 2a e1 inc ah ; 2a54 - fe c4 mov dl, cl ; 2a56 - 8a d1 mov ch, cl ; 2a58 - 8a e9 mov cl, ah ; 2a5a - 8a cc jmp _loc_253 ; 2a5c - eb 36 -> 2a94 _loc_252: ; 2a5e cmp bl, 1 ; 2a5e - 80 fb 01 jnz _loc_250 ; 2a61 - 75 0a -> 2a6d mov dh, ch ; 2a63 - 8a f5 mov bh, ch ; 2a65 - 8a fd add bh, al ; 2a67 - 02 f8 dec bh ; 2a69 - fe cf jmp _loc_283 ; 2a6b - eb e3 -> 2a50 _loc_250: ; 2a6d cmp al, 0 ; 2a6d - 3c 00 jnz _loc_284 ; 2a6f - 75 06 -> 2a77 mov al, dl ; 2a71 - 8a c2 sub al, cl ; 2a73 - 2a c1 inc al ; 2a75 - fe c0 _loc_284: ; 2a77 cmp bl, 2 ; 2a77 - 80 fb 02 jnz _loc_285 ; 2a7a - 75 0e -> 2a8a sub dl, al ; 2a7c - 2a d0 inc dl ; 2a7e - fe c2 mov bh, dh ; 2a80 - 8a fe mov dh, ch ; 2a82 - 8a f5 mov ch, dl ; 2a84 - 8a ea mov cl, al ; 2a86 - 8a c8 jmp _loc_253 ; 2a88 - eb 0a -> 2a94 _loc_285: ; 2a8a mov bh, dh ; 2a8a - 8a fe mov dh, ch ; 2a8c - 8a f5 mov dl, cl ; 2a8e - 8a d1 mov ch, dl ; 2a90 - 8a ea mov cl, al ; 2a92 - 8a c8 _loc_253: ; 2a94 push cx ; 2a94 - 51 push ax ; 2a95 - 50 call GR_SET_CPOS ; 2a96 - e8 c5 f8 -> 235e pop ax ; 2a99 - 58 _loc_282: ; 2a9a lodsw ; 2a9a - 26 ad mov bl, ah ; 2a9c - 8a dc push bx ; 2a9e - 53 push cx ; 2a9f - 51 mov cx, 1 ; 2aa0 - b9 01 00 push es ; 2aa3 - 06 call GR_WRITE_AC_CURRENT ; 2aa4 - e8 23 f9 -> 23ca pop es ; 2aa7 - 07 pop cx ; 2aa8 - 59 pop bx ; 2aa9 - 5b inc dl ; 2aaa - fe c2 dec cl ; 2aac - fe c9 jnz _loc_282 ; 2aae - 75 ea -> 2a9a pop cx ; 2ab0 - 59 mov dl, ch ; 2ab1 - 8a d5 inc dh ; 2ab3 - fe c6 cmp bh, dh ; 2ab5 - 3a fe jnl _loc_253 ; 2ab7 - 7d db -> 2a94 pop ax ; 2ab9 - 58 mov byte ptr ds:[0c1h], ah ; 2aba - 88 26 c1 00 pop cx ; 2abe - 59 pop word ptr ds:[016h] ; 2abf - 8f 06 16 00 call GR_SET_CTYPE ; 2ac3 - e8 54 f8 -> 231a _loc_163: ; 2ac6 pop word ptr ds:[016h] ; 2ac6 - 8f 06 16 00 pop ax ; 2aca - 58 cmp ax, 0ffffh ; 2acb - 3d ff ff jz _loc_249 ; 2ace - 74 03 -> 2ad3 call _sub_016 ; 2ad0 - e8 53 04 -> 2f26 _loc_249: ; 2ad3 ret ; 2ad3 - c3 GR_OMNI_SCROLL endp nop ; 2ad4 - 90 db 090h ; 2ad5 db 090h ; 2ad6 db 090h ; 2ad7 db 090h ; 2ad8 db 090h ; 2ad9 db 090h ; 2ada db 090h ; 2adb db 090h ; 2adc db 090h ; 2add db 090h ; 2ade db 090h ; 2adf db 090h ; 2ae0 db 090h ; 2ae1 db 090h ; 2ae2 db 090h ; 2ae3 db 090h ; 2ae4 db 090h ; 2ae5 db 090h ; 2ae6 db 090h ; 2ae7 db 090h ; 2ae8 db 090h ; 2ae9 org 02aeah GR_SET_COLOR proc near public ; 2aea cmp byte ptr ds:[091h], 3 ; 2aea - 80 3e 91 00 03 jle _loc_037 ; 2aef - 7e 35 -> 2b26 mov cl, al ; 2af1 - 8a c8 mov ax, ds:[1ch] ; 2af3 - a1 1c 00 or bh, bh ; 2af6 - 0a ff jnz _loc_038 ; 2af8 - 75 1b -> 2b15 test al, 4 ; 2afa - a8 04 jz _loc_037 ; 2afc - 74 28 -> 2b26 mov al, bl ; 2afe - 8a c3 and al, 7 ; 2b00 - 24 07 mov bx, 8 ; 2b02 - bb 08 00 mov byte ptr ds:[bx + 09eh], al ; 2b05 - 88 87 9e 00 mov dx, 0190h ; 2b09 - ba 90 01 mov word ptr ds:[03eh], dx ; 2b0c - 89 16 3e 00 mov ds:[094h], al ; 2b10 - a2 94 00 jmp _loc_039 ; 2b13 - eb 37 -> 2b4c _loc_038: ; 2b15 test bh, 1 ; 2b15 - f6 c7 01 jz _loc_105 ; 2b18 - 74 0d -> 2b27 cmp bl, 1 ; 2b1a - 80 fb 01 jnbe _loc_039 ; 2b1d - 77 2d -> 2b4c xor bh, bh ; 2b1f - 32 ff call LOAD_PALETTE ; 2b21 - e8 39 0b -> 365d xor al, al ; 2b24 - 32 c0 _loc_037: ; 2b26 ret ; 2b26 - c3 _loc_105: ; 2b27 test bh, 2 ; 2b27 - f6 c7 02 jz _loc_039 ; 2b2a - 74 20 -> 2b4c mov al, cl ; 2b2c - 8a c1 and al, 0fh ; 2b2e - 24 0f and bl, 7 ; 2b30 - 80 e3 07 xor bh, bh ; 2b33 - 32 ff mov dx, 0190h ; 2b35 - ba 90 01 shl bx, 1 ; 2b38 - d1 e3 add dx, bx ; 2b3a - 03 d3 mov word ptr ds:[03eh], dx ; 2b3c - 89 16 3e 00 mov ds:[094h], al ; 2b40 - a2 94 00 shr bx, 1 ; 2b43 - d1 eb add bl, 8 ; 2b45 - 80 c3 08 mov byte ptr ds:[bx + 09eh], al ; 2b48 - 88 87 9e 00 _loc_039: ; 2b4c mov byte ptr ds:[095h], 0ffh ; 2b4c - c6 06 95 00 ff mov ax, 0 ; 2b51 - b8 00 00 mov es, ax ; 2b54 - 8e c0 call SET_CRIT ; 2b56 - e8 59 df -> 0ab2 mov word ptr es:[01e4h], 2b85h ; 2b59 - 26 c7 06 e4 01 85 2b mov word ptr es:[01e6h], 0060h ; 2b60 - 26 c7 06 e6 01 60 00 call CLR_CRIT ; 2b67 - e8 57 df -> 0ac1 mov dx, 0072h ; 2b6a - ba 72 00 in al, dx ; 2b6d - ec and al, 0fdh ; 2b6e - 24 fd out dx, al ; 2b70 - ee mov al, 40h ; 2b71 - b0 40 mov dx, 0134h ; 2b73 - ba 34 01 out dx, al ; 2b76 - ee mov dx, 0174h ; 2b77 - ba 74 01 in al, dx ; 2b7a - ec _loc_104: ; 2b7b cmp byte ptr ds:[095h], 0 ; 2b7b - 80 3e 95 00 00 jnz _loc_104 ; 2b80 - 75 f9 -> 2b7b xor al, al ; 2b82 - 32 c0 ret ; 2b84 - c3 GR_SET_COLOR endp db 050h ; 2b85 db 052h ; 2b86 db 01eh ; 2b87 db 0b8h ; 2b88 db 0a2h ; 2b89 db 005h ; 2b8a db 08eh ; 2b8b db 0d8h ; 2b8c db 0a0h ; 2b8d db 094h ; 2b8e db 000h ; 2b8f db 08bh ; 2b90 db 016h ; 2b91 db 03eh ; 2b92 db 000h ; 2b93 db 0eeh ; 2b94 db 0c6h ; 2b95 db 006h ; 2b96 db 095h ; 2b97 db 000h ; 2b98 db 000h ; 2b99 db 0e8h ; 2b9a db 06eh ; 2b9b db 0dfh ; 2b9c db 01fh ; 2b9d db 05ah ; 2b9e db 058h ; 2b9f db 0cfh ; 2ba0 org 02ba1h GR_WRITE_DOT proc near public ; 2ba1 push ax ; 2ba1 - 50 mov ax, 0e000h ; 2ba2 - b8 00 e0 mov es, ax ; 2ba5 - 8e c0 mov bx, dx ; 2ba7 - 8b da call _sub_005 ; 2ba9 - e8 06 06 -> 31b2 pop ax ; 2bac - 58 call _sub_006 ; 2bad - e8 c6 00 -> 2c76 ret ; 2bb0 - c3 GR_WRITE_DOT endp org 02bb1h GR_WRITE_LINE proc near public ; 2bb1 or bx, bx ; 2bb1 - 0b db jz _loc_024 ; 2bb3 - 74 4d -> 2c02 push bp ; 2bb5 - 55 mov bp, bx ; 2bb6 - 8b eb push ax ; 2bb8 - 50 mov ax, 0e000h ; 2bb9 - b8 00 e0 mov es, ax ; 2bbc - 8e c0 mov bx, dx ; 2bbe - 8b da call _sub_005 ; 2bc0 - e8 ef 05 -> 31b2 cmp cx, 0101h ; 2bc3 - 81 f9 01 01 jnz _loc_025 ; 2bc7 - 75 05 -> 2bce cmp bp, 10h ; 2bc9 - 83 fd 10 jnbe _loc_026 ; 2bcc - 77 35 -> 2c03 _loc_025: ; 2bce mov bh, ch ; 2bce - 8a fd mov al, bl ; 2bd0 - 8a c3 inc al ; 2bd2 - fe c0 dec bp ; 2bd4 - 4d jz _loc_027 ; 2bd5 - 74 09 -> 2be0 _loc_028: ; 2bd7 cmp al, ch ; 2bd7 - 3a c5 jbe _loc_027 ; 2bd9 - 76 05 -> 2be0 add ch, bh ; 2bdb - 02 ef dec bp ; 2bdd - 4d jnz _loc_028 ; 2bde - 75 f7 -> 2bd7 _loc_027: ; 2be0 pop ax ; 2be0 - 58 _loc_032: ; 2be1 push ax ; 2be1 - 50 push bx ; 2be2 - 53 push cx ; 2be3 - 51 call _sub_006 ; 2be4 - e8 8f 00 -> 2c76 pop cx ; 2be7 - 59 pop bx ; 2be8 - 5b or bp, bp ; 2be9 - 0b ed jz _loc_029 ; 2beb - 74 13 -> 2c00 mov al, 8 ; 2bed - b0 08 mov bl, 7 ; 2bef - b3 07 xor ch, ch ; 2bf1 - 32 ed inc di ; 2bf3 - 47 _loc_031: ; 2bf4 cmp al, ch ; 2bf4 - 3a c5 jz _loc_030 ; 2bf6 - 74 05 -> 2bfd add ch, bh ; 2bf8 - 02 ef dec bp ; 2bfa - 4d jnz _loc_031 ; 2bfb - 75 f7 -> 2bf4 _loc_030: ; 2bfd pop ax ; 2bfd - 58 jmp _loc_032 ; 2bfe - eb e1 -> 2be1 _loc_029: ; 2c00 pop ax ; 2c00 - 58 pop bp ; 2c01 - 5d _loc_024: ; 2c02 ret ; 2c02 - c3 _loc_026: ; 2c03 mov al, ds:[0bah] ; 2c03 - a0 ba 00 xor ah, ah ; 2c06 - 32 e4 mov cx, ax ; 2c08 - 8b c8 pop ax ; 2c0a - 58 inc bl ; 2c0b - fe c3 _loc_257: ; 2c0d push cx ; 2c0d - 51 push di ; 2c0e - 57 push bp ; 2c0f - 55 mov cl, bl ; 2c10 - 8a cb mov bh, al ; 2c12 - 8a f8 _loc_154: ; 2c14 sub bp, cx ; 2c14 - 2b e9 mov al, 0ffh ; 2c16 - b0 ff shl al, cl ; 2c18 - d2 e0 test bh, 1 ; 2c1a - f6 c7 01 jnz _loc_124 ; 2c1d - 75 05 -> 2c24 and byte ptr es:[di], al ; 2c1f - 26 20 05 jmp _loc_125 ; 2c22 - eb 05 -> 2c29 _loc_124: ; 2c24 not al ; 2c24 - f6 d0 or byte ptr es:[di], al ; 2c26 - 26 08 05 _loc_125: ; 2c29 inc di ; 2c29 - 47 mov cx, 8 ; 2c2a - b9 08 00 test di, 1 ; 2c2d - f7 c7 01 00 jnz _loc_154 ; 2c31 - 75 e1 -> 2c14 mov cx, bp ; 2c33 - 8b cd and bp, 0fh ; 2c35 - 81 e5 0f 00 shr cx, 04h ; 2c39 - c1 e9 04 jcxz _loc_155 ; 2c3c - e3 0b -> 2c49 xor ax, ax ; 2c3e - 33 c0 test bh, 1 ; 2c40 - f6 c7 01 jz _loc_156 ; 2c43 - 74 02 -> 2c47 not ax ; 2c45 - f7 d0 _loc_156: ; 2c47 rep stosw ; 2c47 - f3 ab _loc_155: ; 2c49 or bp, bp ; 2c49 - 0b ed jz _loc_157 ; 2c4b - 74 18 -> 2c65 mov cx, bp ; 2c4d - 8b cd mov ax, 0ffffh ; 2c4f - b8 ff ff shr ax, cl ; 2c52 - d3 e8 xchg al, ah ; 2c54 - 86 e0 test bh, 1 ; 2c56 - f6 c7 01 jnz _loc_158 ; 2c59 - 75 05 -> 2c60 and word ptr es:[di], ax ; 2c5b - 26 21 05 jmp _loc_157 ; 2c5e - eb 05 -> 2c65 _loc_158: ; 2c60 not ax ; 2c60 - f7 d0 or word ptr es:[di], ax ; 2c62 - 26 09 05 _loc_157: ; 2c65 mov al, bh ; 2c65 - 8a c7 shr al, 1 ; 2c67 - d0 e8 pop bp ; 2c69 - 5d pop di ; 2c6a - 5f pop cx ; 2c6b - 59 call CHANGE_PLANE_ON ; 2c6c - e8 c8 0d -> 3a37 dec cx ; 2c6f - 49 jz _loc_256 ; 2c70 - 74 02 -> 2c74 jmp _loc_257 ; 2c72 - eb 99 -> 2c0d _loc_256: ; 2c74 pop bp ; 2c74 - 5d ret ; 2c75 - c3 GR_WRITE_LINE endp org 02c76h _sub_006 proc near public ; 2c76 mov bh, al ; 2c76 - 8a f8 test bh, 080h ; 2c78 - f6 c7 80 jnz _loc_120 ; 2c7b - 75 3c -> 2cb9 _loc_160: ; 2c7d mov al, cl ; 2c7d - 8a c1 mov cl, ch ; 2c7f - 8a cd dec cl ; 2c81 - fe c9 mov ah, 080h ; 2c83 - b4 80 sar ah, cl ; 2c85 - d2 fc mov cl, bl ; 2c87 - 8a cb inc cl ; 2c89 - fe c1 rol ah, cl ; 2c8b - d2 c4 mov bl, ah ; 2c8d - 8a dc not bl ; 2c8f - f6 d3 mov ch, byte ptr ds:[0bah] ; 2c91 - 8a 2e ba 00 _loc_159: ; 2c95 mov cl, al ; 2c95 - 8a c8 mov si, di ; 2c97 - 8b f7 rcr bh, 1 ; 2c99 - d0 df jb _loc_121 ; 2c9b - 72 0b -> 2ca8 _loc_122: ; 2c9d and byte ptr es:[si], bl ; 2c9d - 26 20 1c add si, dx ; 2ca0 - 03 f2 dec cl ; 2ca2 - fe c9 jnz _loc_122 ; 2ca4 - 75 f7 -> 2c9d jmp _loc_123 ; 2ca6 - eb 09 -> 2cb1 _loc_121: ; 2ca8 or byte ptr es:[si], ah ; 2ca8 - 26 08 24 add si, dx ; 2cab - 03 f2 dec cl ; 2cad - fe c9 jnz _loc_121 ; 2caf - 75 f7 -> 2ca8 _loc_123: ; 2cb1 call CHANGE_PLANE_ON ; 2cb1 - e8 83 0d -> 3a37 dec ch ; 2cb4 - fe cd jnz _loc_159 ; 2cb6 - 75 dd -> 2c95 ret ; 2cb8 - c3 _sub_006 endp _loc_120: ; 2cb9 and bh, 7 ; 2cb9 - 80 e7 07 push bx ; 2cbc - 53 push cx ; 2cbd - 51 push es ; 2cbe - 06 push dx ; 2cbf - 52 call _sub_007 ; 2cc0 - e8 14 00 -> 2cd7 pop dx ; 2cc3 - 5a pop es ; 2cc4 - 07 pop cx ; 2cc5 - 59 pop bx ; 2cc6 - 5b xor bh, al ; 2cc7 - 32 f8 jmp _loc_160 ; 2cc9 - eb b2 -> 2c7d org 02ccbh GR_READ_DOT proc near public ; 2ccb mov bx, dx ; 2ccb - 8b da call _sub_005 ; 2ccd - e8 e2 04 -> 31b2 call _sub_007 ; 2cd0 - e8 04 00 -> 2cd7 mov byte ptr [bp + 012h], al ; 2cd3 - 88 46 12 ret ; 2cd6 - c3 GR_READ_DOT endp org 02cd7h _sub_007 proc near public ; 2cd7 mov ax, 0e000h ; 2cd7 - b8 00 e0 mov es, ax ; 2cda - 8e c0 mov al, ds:[091h] ; 2cdc - a0 91 00 and al, 3 ; 2cdf - 24 03 jnz _loc_106 ; 2ce1 - 75 2a -> 2d0d mov bh, 1 ; 2ce3 - b7 01 mov cl, bl ; 2ce5 - 8a cb shl bh, cl ; 2ce7 - d2 e7 mov cx, 3 ; 2ce9 - b9 03 00 mov dx, 01a0h ; 2cec - ba a0 01 xor bl, bl ; 2cef - 32 db _loc_108: ; 2cf1 xor al, al ; 2cf1 - 32 c0 stc ; 2cf3 - f9 rcl al, cl ; 2cf4 - d2 d0 or al, 0f0h ; 2cf6 - 0c f0 out dx, al ; 2cf8 - ee test byte ptr es:[di], bh ; 2cf9 - 26 84 3d jnz _loc_107 ; 2cfc - 75 07 -> 2d05 rcl bl, 1 ; 2cfe - d0 d3 loop _loc_108 ; 2d00 - e2 ef -> 2cf1 mov al, bl ; 2d02 - 8a c3 ret ; 2d04 - c3 _loc_107: ; 2d05 stc ; 2d05 - f9 rcl bl, 1 ; 2d06 - d0 d3 loop _loc_108 ; 2d08 - e2 e7 -> 2cf1 mov al, bl ; 2d0a - 8a c3 ret ; 2d0c - c3 _loc_106: ; 2d0d mov al, 1 ; 2d0d - b0 01 mov cl, bl ; 2d0f - 8a cb shl al, cl ; 2d11 - d2 e0 and al, byte ptr es:[di] ; 2d13 - 26 22 05 jnz _loc_170 ; 2d16 - 75 01 -> 2d19 ret ; 2d18 - c3 _loc_170: ; 2d19 mov al, 1 ; 2d19 - b0 01 ret ; 2d1b - c3 _sub_007 endp org 02d1ch GR_GET_PUT proc near public ; 2d1c or al, al ; 2d1c - 0a c0 jnz _loc_023 ; 2d1e - 75 09 -> 2d29 mov al, ds:[092h] ; 2d20 - a0 92 00 mov byte ptr [bp + 012h], al ; 2d23 - 88 46 12 _loc_129: ; 2d26 xor al, al ; 2d26 - 32 c0 ret ; 2d28 - c3 _loc_023: ; 2d29 cmp al, 1 ; 2d29 - 3c 01 jz _loc_128 ; 2d2b - 74 07 -> 2d34 cmp al, 6 ; 2d2d - 3c 06 jnbe _loc_129 ; 2d2f - 77 f5 -> 2d26 jmp _loc_130 ; 2d31 - e9 ff 00 -> 2e33 _loc_128: ; 2d34 mov al, ds:[091h] ; 2d34 - a0 91 00 and al, 0ah ; 2d37 - 24 0a jz _loc_147 ; 2d39 - 74 58 -> 2d93 push cx ; 2d3b - 51 mov cx, bx ; 2d3c - 8b cb xor al, al ; 2d3e - 32 c0 mov di, si ; 2d40 - 8b fe rep stosb ; 2d42 - f3 aa pop cx ; 2d44 - 59 push bx ; 2d45 - 53 mov bx, dx ; 2d46 - 8b da call _sub_005 ; 2d48 - e8 67 04 -> 31b2 xchg si, di ; 2d4b - 87 fe mov bh, byte ptr ds:[0bah] ; 2d4d - 8a 3e ba 00 mov cl, bl ; 2d51 - 8a cb mov bl, 1 ; 2d53 - b3 01 shl bl, cl ; 2d55 - d2 e3 pop cx ; 2d57 - 59 mov dx, 0e000h ; 2d58 - ba 00 e0 mov ds, dx ; 2d5b - 8e da mov dx, 01a0h ; 2d5d - ba a0 01 push bp ; 2d60 - 55 mov bp, cx ; 2d61 - 8b e9 _loc_258: ; 2d63 mov cl, bh ; 2d63 - 8a cf xor al, al ; 2d65 - 32 c0 stc ; 2d67 - f9 rcl al, cl ; 2d68 - d2 d0 or al, 0f0h ; 2d6a - 0c f0 out dx, al ; 2d6c - ee mov cx, bp ; 2d6d - 8b cd push si ; 2d6f - 56 push di ; 2d70 - 57 mov al, bl ; 2d71 - 8a c3 mov ah, byte ptr ds:[si] ; 2d73 - 8a 24 _loc_150: ; 2d75 test ah, al ; 2d75 - 84 c4 jz _loc_148 ; 2d77 - 74 01 -> 2d7a stc ; 2d79 - f9 _loc_148: ; 2d7a ; rclb es:[di], 1 ; 2d7a - 26 d0 15 db 026h, 0d0h, 015h ; fixup @ 02d7a inc di ; 2d7d - 47 ror al, 1 ; 2d7e - d0 c8 jb _loc_149 ; 2d80 - 72 04 -> 2d86 loop _loc_150 ; 2d82 - e2 f1 -> 2d75 jmp _loc_151 ; 2d84 - eb 05 -> 2d8b _loc_149: ; 2d86 inc si ; 2d86 - 46 mov ah, byte ptr ds:[si] ; 2d87 - 8a 24 loop _loc_150 ; 2d89 - e2 ea -> 2d75 _loc_151: ; 2d8b pop di ; 2d8b - 5f pop si ; 2d8c - 5e dec bh ; 2d8d - fe cf jnz _loc_258 ; 2d8f - 75 d2 -> 2d63 pop bp ; 2d91 - 5d ret ; 2d92 - c3 _loc_147: ; 2d93 push bx ; 2d93 - 53 push si ; 2d94 - 56 mov bx, dx ; 2d95 - 8b da call _sub_005 ; 2d97 - e8 18 04 -> 31b2 mov si, di ; 2d9a - 8b f7 pop di ; 2d9c - 5f mov bh, byte ptr ds:[092h] ; 2d9d - 8a 3e 92 00 mov dh, ch ; 2da1 - 8a f5 mov dl, byte ptr ds:[01ch] ; 2da3 - 8a 16 1c 00 pop cx ; 2da7 - 59 mov ax, 0e000h ; 2da8 - b8 00 e0 mov ds, ax ; 2dab - 8e d8 dec bh ; 2dad - fe cf dec dh ; 2daf - fe ce mov al, bh ; 2db1 - 8a c7 xor ah, ah ; 2db3 - 32 e4 push bp ; 2db5 - 55 _loc_277: ; 2db6 push ax ; 2db6 - 50 push bx ; 2db7 - 53 push cx ; 2db8 - 51 push si ; 2db9 - 56 push di ; 2dba - 57 mov bp, cx ; 2dbb - 8b e9 mov ah, byte ptr es:[di] ; 2dbd - 26 8a 25 mov dl, 8 ; 2dc0 - b2 08 mov cl, al ; 2dc2 - 8a c8 sub dl, cl ; 2dc4 - 2a d1 rol ah, cl ; 2dc6 - d2 c4 lodsb ; 2dc8 - ac mov cl, 7 ; 2dc9 - b1 07 sub cl, bl ; 2dcb - 2a cb shl al, cl ; 2dcd - d2 e0 inc bl ; 2dcf - fe c3 jmp _loc_259 ; 2dd1 - eb 09 -> 2ddc _loc_274: ; 2dd3 mov bp, cx ; 2dd3 - 8b e9 dec bl ; 2dd5 - fe cb jnz _loc_259 ; 2dd7 - 75 03 -> 2ddc lodsb ; 2dd9 - ac mov bl, 8 ; 2dda - b3 08 _loc_259: ; 2ddc rcl al, 1 ; 2ddc - d0 d0 rcl ah, 1 ; 2dde - d0 d4 mov cl, dh ; 2de0 - 8a ce sub bl, cl ; 2de2 - 2a d9 shl al, cl ; 2de4 - d2 e0 mov cl, bh ; 2de6 - 8a cf xor ch, ch ; 2de8 - 32 ed dec dl ; 2dea - fe ca jz _loc_270 ; 2dec - 74 2f -> 2e1d jcxz _loc_271 ; 2dee - e3 08 -> 2df8 _loc_273: ; 2df0 rol ah, 1 ; 2df0 - d0 c4 dec dl ; 2df2 - fe ca jz _loc_272 ; 2df4 - 74 28 -> 2e1e _loc_308: ; 2df6 loop _loc_273 ; 2df6 - e2 f8 -> 2df0 _loc_271: ; 2df8 mov cx, bp ; 2df8 - 8b cd loop _loc_274 ; 2dfa - e2 d7 -> 2dd3 _loc_275: ; 2dfc rol ah, 1 ; 2dfc - d0 c4 dec dl ; 2dfe - fe ca jnz _loc_275 ; 2e00 - 75 fa -> 2dfc mov byte ptr es:[di], ah ; 2e02 - 26 88 25 pop di ; 2e05 - 5f pop si ; 2e06 - 5e pop cx ; 2e07 - 59 pop bx ; 2e08 - 5b pop ax ; 2e09 - 58 or ax, ax ; 2e0a - 0b c0 jz _loc_276 ; 2e0c - 74 1b -> 2e29 dec ax ; 2e0e - 48 push ax ; 2e0f - 50 push ds ; 2e10 - 1e mov ax, 05a2h ; 2e11 - b8 a2 05 mov ds, ax ; 2e14 - 8e d8 call CHANGE_PLANE_ON ; 2e16 - e8 1e 0c -> 3a37 pop ds ; 2e19 - 1f pop ax ; 2e1a - 58 jmp _loc_277 ; 2e1b - eb 99 -> 2db6 _loc_270: ; 2e1d inc cx ; 2e1d - 41 _loc_272: ; 2e1e mov byte ptr es:[di], ah ; 2e1e - 26 88 25 inc di ; 2e21 - 47 mov ah, byte ptr es:[di] ; 2e22 - 26 8a 25 mov dl, 8 ; 2e25 - b2 08 jmp _loc_308 ; 2e27 - eb cd -> 2df6 _loc_276: ; 2e29 pop bp ; 2e29 - 5d mov ax, 05a2h ; 2e2a - b8 a2 05 mov ds, ax ; 2e2d - 8e d8 call CHANGE_PLANE_0 ; 2e2f - e8 f5 0b -> 3a27 ret ; 2e32 - c3 _loc_130: ; 2e33 push bp ; 2e33 - 55 push ax ; 2e34 - 50 mov bp, bx ; 2e35 - 8b eb mov bx, dx ; 2e37 - 8b da call _sub_005 ; 2e39 - e8 76 03 -> 31b2 pop ax ; 2e3c - 58 mov dh, cl ; 2e3d - 8a f1 push dx ; 2e3f - 52 mov dh, cl ; 2e40 - 8a f1 mov dl, byte ptr ds:[01ch] ; 2e42 - 8a 16 1c 00 mov bh, byte ptr ds:[092h] ; 2e46 - 8a 3e 92 00 mov ax, es ; 2e4a - 8c c0 mov ds, ax ; 2e4c - 8e d8 mov ax, 0e000h ; 2e4e - b8 00 e0 mov es, ax ; 2e51 - 8e c0 pop cx ; 2e53 - 59 dec bh ; 2e54 - fe cf dec dh ; 2e56 - fe ce _loc_268: ; 2e58 push cx ; 2e58 - 51 push cx ; 2e59 - 51 push si ; 2e5a - 56 push di ; 2e5b - 57 push bp ; 2e5c - 55 mov al, bh ; 2e5d - 8a c7 xor ah, ah ; 2e5f - 32 e4 _loc_266: ; 2e61 push ax ; 2e61 - 50 push bx ; 2e62 - 53 push cx ; 2e63 - 51 push si ; 2e64 - 56 push di ; 2e65 - 57 mov bp, cx ; 2e66 - 8b e9 mov ah, byte ptr ds:[si] ; 2e68 - 8a 24 mov dl, 8 ; 2e6a - b2 08 mov cl, al ; 2e6c - 8a c8 sub dl, cl ; 2e6e - 2a d1 rol ah, cl ; 2e70 - d2 c4 mov al, byte ptr es:[di] ; 2e72 - 26 8a 05 mov cl, 7 ; 2e75 - b1 07 sub cl, bl ; 2e77 - 2a cb shl al, cl ; 2e79 - d2 e0 jmp _loc_146 ; 2e7b - eb 0f -> 2e8c _loc_264: ; 2e7d mov bp, cx ; 2e7d - 8b e9 dec bl ; 2e7f - fe cb jnz _loc_146 ; 2e81 - 75 09 -> 2e8c mov byte ptr es:[di], al ; 2e83 - 26 88 05 inc di ; 2e86 - 47 mov al, byte ptr es:[di] ; 2e87 - 26 8a 05 mov bl, 8 ; 2e8a - b3 08 _loc_146: ; 2e8c rcl ah, 1 ; 2e8c - d0 d4 rcl al, 1 ; 2e8e - d0 d0 mov cl, dh ; 2e90 - 8a ce sub bl, cl ; 2e92 - 2a d9 shl al, cl ; 2e94 - d2 e0 mov cl, bh ; 2e96 - 8a cf xor ch, ch ; 2e98 - 32 ed dec dl ; 2e9a - fe ca jz _loc_260 ; 2e9c - 74 27 -> 2ec5 jcxz _loc_261 ; 2e9e - e3 08 -> 2ea8 _loc_263: ; 2ea0 rol ah, 1 ; 2ea0 - d0 c4 dec dl ; 2ea2 - fe ca jz _loc_262 ; 2ea4 - 74 20 -> 2ec6 _loc_269: ; 2ea6 loop _loc_263 ; 2ea6 - e2 f8 -> 2ea0 _loc_261: ; 2ea8 mov cx, bp ; 2ea8 - 8b cd loop _loc_264 ; 2eaa - e2 d1 -> 2e7d pop di ; 2eac - 5f pop si ; 2ead - 5e pop cx ; 2eae - 59 pop bx ; 2eaf - 5b pop ax ; 2eb0 - 58 dec ax ; 2eb1 - 48 cmp ax, 0ffffh ; 2eb2 - 3d ff ff jz _loc_265 ; 2eb5 - 74 16 -> 2ecd push ax ; 2eb7 - 50 push ds ; 2eb8 - 1e mov ax, 05a2h ; 2eb9 - b8 a2 05 mov ds, ax ; 2ebc - 8e d8 call CHANGE_PLANE_ON ; 2ebe - e8 76 0b -> 3a37 pop ds ; 2ec1 - 1f pop ax ; 2ec2 - 58 jmp _loc_266 ; 2ec3 - eb 9c -> 2e61 _loc_260: ; 2ec5 inc cx ; 2ec5 - 41 _loc_262: ; 2ec6 inc si ; 2ec6 - 46 mov ah, byte ptr ds:[si] ; 2ec7 - 8a 24 mov dl, 8 ; 2ec9 - b2 08 jmp _loc_269 ; 2ecb - eb d9 -> 2ea6 _loc_265: ; 2ecd pop bp ; 2ecd - 5d pop di ; 2ece - 5f pop si ; 2ecf - 5e pop cx ; 2ed0 - 59 xor ch, ch ; 2ed1 - 32 ed add di, cx ; 2ed3 - 03 f9 pop cx ; 2ed5 - 59 dec ch ; 2ed6 - fe cd jz _loc_267 ; 2ed8 - 74 03 -> 2edd jmp _loc_268 ; 2eda - e9 7b ff -> 2e58 _loc_267: ; 2edd pop bp ; 2edd - 5d mov ax, 05a2h ; 2ede - b8 a2 05 mov ds, ax ; 2ee1 - 8e d8 call CHANGE_PLANE_0 ; 2ee3 - e8 41 0b -> 3a27 ret ; 2ee6 - c3 GR_GET_PUT endp db 000h ; 2ee7 org 02ee8h _sub_028 proc near public ; 2ee8 push ax ; 2ee8 - 50 mov ax, ds:[16h] ; 2ee9 - a1 16 00 inc al ; 2eec - fe c0 cmp al, byte ptr ds:[0aeh] ; 2eee - 3a 06 ae 00 jnb _loc_177 ; 2ef2 - 73 13 -> 2f07 mov ds:[16h], ax ; 2ef4 - a3 16 00 mov di, word ptr ds:[014h] ; 2ef7 - 8b 3e 14 00 inc di ; 2efb - 47 cmp byte ptr ds:[09bh], 3 ; 2efc - 80 3e 9b 00 03 jz _loc_178 ; 2f01 - 74 1d -> 2f20 inc di ; 2f03 - 47 jmp _loc_178 ; 2f04 - eb 1a -> 2f20 nop ; 2f06 - 90 _loc_177: ; 2f07 xor al, al ; 2f07 - 32 c0 inc ah ; 2f09 - fe c4 cmp ah, 19h ; 2f0b - 80 fc 19 jb _loc_238 ; 2f0e - 72 02 -> 2f12 xor ah, ah ; 2f10 - 32 e4 _loc_238: ; 2f12 mov ds:[16h], ax ; 2f12 - a3 16 00 push cx ; 2f15 - 51 push dx ; 2f16 - 52 mov bl, ah ; 2f17 - 8a dc mov cl, al ; 2f19 - 8a c8 call _sub_001 ; 2f1b - e8 bd 02 -> 31db pop dx ; 2f1e - 5a pop cx ; 2f1f - 59 _loc_178: ; 2f20 mov word ptr ds:[014h], di ; 2f20 - 89 3e 14 00 pop ax ; 2f24 - 58 ret ; 2f25 - c3 _sub_028 endp org 02f26h _sub_016 proc near public ; 2f26 push ax ; 2f26 - 50 push bx ; 2f27 - 53 push cx ; 2f28 - 51 push di ; 2f29 - 57 mov ax, ds:[18h] ; 2f2a - a1 18 00 cmp ax, 0ffffh ; 2f2d - 3d ff ff jz _loc_074 ; 2f30 - 74 14 -> 2f46 mov bl, ah ; 2f32 - 8a dc mov cl, al ; 2f34 - 8a c8 call _sub_001 ; 2f36 - e8 a2 02 -> 31db mov word ptr ds:[014h], di ; 2f39 - 89 3e 14 00 call _sub_020 ; 2f3d - e8 18 01 -> 3058 mov word ptr ds:[018h], 0ffffh ; 2f40 - c7 06 18 00 ff ff _loc_074: ; 2f46 mov ax, ds:[16h] ; 2f46 - a1 16 00 cmp ax, 0ffffh ; 2f49 - 3d ff ff jz _loc_075 ; 2f4c - 74 1b -> 2f69 mov bl, ah ; 2f4e - 8a dc mov cl, al ; 2f50 - 8a c8 call _sub_001 ; 2f52 - e8 86 02 -> 31db mov word ptr ds:[014h], di ; 2f55 - 89 3e 14 00 test byte ptr ds:[0c1h], 080h ; 2f59 - f6 06 c1 00 80 jz _loc_075 ; 2f5e - 74 09 -> 2f69 call _sub_020 ; 2f60 - e8 f5 00 -> 3058 mov ax, ds:[16h] ; 2f63 - a1 16 00 mov ds:[18h], ax ; 2f66 - a3 18 00 _loc_075: ; 2f69 pop di ; 2f69 - 5f pop cx ; 2f6a - 59 pop bx ; 2f6b - 5b pop ax ; 2f6c - 58 ret ; 2f6d - c3 _sub_016 endp org 02f6eh _sub_036 proc near public ; 2f6e push ax ; 2f6e - 50 push cx ; 2f6f - 51 push si ; 2f70 - 56 push di ; 2f71 - 57 push es ; 2f72 - 06 mov cx, ds ; 2f73 - 8c d9 mov es, cx ; 2f75 - 8e c1 mov di, 001eh ; 2f77 - bf 1e 00 mov si, 004ah ; 2f7a - be 4a 00 mov cx, 0010h ; 2f7d - b9 10 00 cld ; 2f80 - fc _loc_290: ; 2f81 lodsw ; 2f81 - ad not ax ; 2f82 - f7 d0 stosw ; 2f84 - ab loop _loc_290 ; 2f85 - e2 fa -> 2f81 pop es ; 2f87 - 07 pop di ; 2f88 - 5f pop si ; 2f89 - 5e pop cx ; 2f8a - 59 pop ax ; 2f8b - 58 ret ; 2f8c - c3 _sub_036 endp org 02f8dh _sub_027 proc near public ; 2f8d push ax ; 2f8d - 50 push bx ; 2f8e - 53 push cx ; 2f8f - 51 push dx ; 2f90 - 52 cmp byte ptr ds:[0bah], 3 ; 2f91 - 80 3e ba 00 03 jz _loc_179 ; 2f96 - 74 1e -> 2fb6 mov ax, ds:[42h] ; 2f98 - a1 42 00 test ah, 1 ; 2f9b - f6 c4 01 ror al, 1 ; 2f9e - d0 c8 jnz _loc_180 ; 2fa0 - 75 02 -> 2fa4 jb _loc_181 ; 2fa2 - 72 09 -> 2fad _loc_180: ; 2fa4 call RESTORE_FONT ; 2fa4 - e8 5f 0a -> 3a06 call _sub_032 ; 2fa7 - e8 72 00 -> 301c jmp _loc_182 ; 2faa - eb 6b -> 3017 nop ; 2fac - 90 _loc_181: ; 2fad call _sub_036 ; 2fad - e8 be ff -> 2f6e call _sub_032 ; 2fb0 - e8 69 00 -> 301c jmp _loc_182 ; 2fb3 - eb 62 -> 3017 nop ; 2fb5 - 90 _loc_179: ; 2fb6 mov cx, 3 ; 2fb6 - b9 03 00 mov dx, word ptr ds:[042h] ; 2fb9 - 8b 16 42 00 xor bh, bh ; 2fbd - 32 ff _loc_288: ; 2fbf test dh, 1 ; 2fbf - f6 c6 01 ror dh, 1 ; 2fc2 - d0 ce ror dl, 1 ; 2fc4 - d0 ca jnz _loc_235 ; 2fc6 - 75 19 -> 2fe1 jb _loc_236 ; 2fc8 - 72 31 -> 2ffb xor ax, ax ; 2fca - 33 c0 push cx ; 2fcc - 51 push di ; 2fcd - 57 push es ; 2fce - 06 mov cx, ds ; 2fcf - 8c d9 mov es, cx ; 2fd1 - 8e c1 mov di, 001eh ; 2fd3 - bf 1e 00 mov cx, 0010h ; 2fd6 - b9 10 00 cld ; 2fd9 - fc rep stosw ; 2fda - f3 ab pop es ; 2fdc - 07 pop di ; 2fdd - 5f pop cx ; 2fde - 59 jmp _loc_237 ; 2fdf - eb 2e -> 300f _loc_235: ; 2fe1 jnb _loc_289 ; 2fe1 - 73 23 -> 3006 mov ax, 0ffffh ; 2fe3 - b8 ff ff push cx ; 2fe6 - 51 push di ; 2fe7 - 57 push es ; 2fe8 - 06 mov cx, ds ; 2fe9 - 8c d9 mov es, cx ; 2feb - 8e c1 mov di, 001eh ; 2fed - bf 1e 00 mov cx, 0010h ; 2ff0 - b9 10 00 cld ; 2ff3 - fc rep stosw ; 2ff4 - f3 ab pop es ; 2ff6 - 07 pop di ; 2ff7 - 5f pop cx ; 2ff8 - 59 jmp _loc_237 ; 2ff9 - eb 14 -> 300f _loc_236: ; 2ffb call _sub_036 ; 2ffb - e8 70 ff -> 2f6e or bh, bh ; 2ffe - 0a ff jnz _loc_237 ; 3000 - 75 0d -> 300f dec bh ; 3002 - fe cf jmp _loc_237 ; 3004 - eb 09 -> 300f _loc_289: ; 3006 call RESTORE_FONT ; 3006 - e8 fd 09 -> 3a06 or bh, bh ; 3009 - 0a ff jnz _loc_237 ; 300b - 75 02 -> 300f inc bh ; 300d - fe c7 _loc_237: ; 300f call _sub_032 ; 300f - e8 0a 00 -> 301c call CHANGE_PLANE_ON ; 3012 - e8 22 0a -> 3a37 loop _loc_288 ; 3015 - e2 a8 -> 2fbf _loc_182: ; 3017 pop dx ; 3017 - 5a pop cx ; 3018 - 59 pop bx ; 3019 - 5b pop ax ; 301a - 58 ret ; 301b - c3 _sub_027 endp org 0301ch _sub_032 proc near public ; 301c push cx ; 301c - 51 push dx ; 301d - 52 push si ; 301e - 56 push di ; 301f - 57 push es ; 3020 - 06 mov dl, byte ptr ds:[098h] ; 3021 - 8a 16 98 00 sub dl, 2 ; 3025 - 80 ea 02 xor dh, dh ; 3028 - 32 f6 mov si, 001eh ; 302a - be 1e 00 mov di, word ptr ds:[014h] ; 302d - 8b 3e 14 00 cld ; 3031 - fc mov cx, 0e000h ; 3032 - b9 00 e0 mov es, cx ; 3035 - 8e c1 mov cl, byte ptr ds:[09ah] ; 3037 - 8a 0e 9a 00 xor ch, ch ; 303b - 32 ed cmp byte ptr ds:[09bh], 1 ; 303d - 80 3e 9b 00 01 jnz _loc_232 ; 3042 - 75 07 -> 304b _loc_233: ; 3044 movsw ; 3044 - a5 add di, dx ; 3045 - 03 fa loop _loc_233 ; 3047 - e2 fb -> 3044 jmp _loc_234 ; 3049 - eb 07 -> 3052 _loc_232: ; 304b inc dx ; 304b - 42 _loc_291: ; 304c movsb ; 304c - a4 add di, dx ; 304d - 03 fa inc si ; 304f - 46 loop _loc_291 ; 3050 - e2 fa -> 304c _loc_234: ; 3052 pop es ; 3052 - 07 pop di ; 3053 - 5f pop si ; 3054 - 5e pop dx ; 3055 - 5a pop cx ; 3056 - 59 ret ; 3057 - c3 _sub_032 endp org 03058h _sub_020 proc near public ; 3058 push ax ; 3058 - 50 push bx ; 3059 - 53 push cx ; 305a - 51 push dx ; 305b - 52 push di ; 305c - 57 push es ; 305d - 06 mov ax, 0e000h ; 305e - b8 00 e0 mov es, ax ; 3061 - 8e c0 xor ch, ch ; 3063 - 32 ed mov bx, word ptr ds:[01ah] ; 3065 - 8b 1e 1a 00 mov dl, byte ptr ds:[098h] ; 3069 - 8a 16 98 00 xor dh, dh ; 306d - 32 f6 mov di, word ptr ds:[014h] ; 306f - 8b 3e 14 00 shl bx, 1 ; 3073 - d1 e3 and bh, 1fh ; 3075 - 80 e7 1f jz _loc_201 ; 3078 - 74 08 -> 3082 sub bl, bh ; 307a - 2a df mov cl, bh ; 307c - 8a cf _loc_202: ; 307e add di, dx ; 307e - 03 fa loop _loc_202 ; 3080 - e2 fc -> 307e _loc_201: ; 3082 mov ah, bl ; 3082 - 8a e3 inc ah ; 3084 - fe c4 inc ah ; 3086 - fe c4 mov bh, byte ptr ds:[09bh] ; 3088 - 8a 3e 9b 00 mov al, ds:[0bah] ; 308c - a0 ba 00 _loc_205: ; 308f mov cl, ah ; 308f - 8a cc push di ; 3091 - 57 _loc_204: ; 3092 not byte ptr es:[di] ; 3092 - 26 f6 15 cmp bh, 3 ; 3095 - 80 ff 03 jz _loc_203 ; 3098 - 74 04 -> 309e not byte ptr es:[di + 1] ; 309a - 26 f6 55 01 _loc_203: ; 309e add di, dx ; 309e - 03 fa loop _loc_204 ; 30a0 - e2 f0 -> 3092 pop di ; 30a2 - 5f call CHANGE_PLANE_ON ; 30a3 - e8 91 09 -> 3a37 dec al ; 30a6 - fe c8 jnz _loc_205 ; 30a8 - 75 e5 -> 308f pop es ; 30aa - 07 pop di ; 30ab - 5f pop dx ; 30ac - 5a pop cx ; 30ad - 59 pop bx ; 30ae - 5b pop ax ; 30af - 58 ret ; 30b0 - c3 _sub_020 endp org 030b1h _sub_024 proc near public ; 30b1 push ax ; 30b1 - 50 cmp byte ptr ds:[091h], 3 ; 30b2 - 80 3e 91 00 03 jbe _loc_186 ; 30b7 - 76 11 -> 30ca mov al, bl ; 30b9 - 8a c3 test al, 080h ; 30bb - a8 80 jnz _loc_187 ; 30bd - 75 09 -> 30c8 _loc_227: ; 30bf and al, 7 ; 30bf - 24 07 add al, 8 ; 30c1 - 04 08 mov ds:[43h], al ; 30c3 - a2 43 00 pop ax ; 30c6 - 58 ret ; 30c7 - c3 _loc_187: ; 30c8 jmp _loc_227 ; 30c8 - eb f5 -> 30bf _loc_186: ; 30ca mov ax, ds:[1ch] ; 30ca - a1 1c 00 test al, 4 ; 30cd - a8 04 jz _loc_228 ; 30cf - 74 05 -> 30d6 push cx ; 30d1 - 51 call _sub_029 ; 30d2 - e8 03 00 -> 30d8 pop cx ; 30d5 - 59 _loc_228: ; 30d6 pop ax ; 30d6 - 58 ret ; 30d7 - c3 _sub_024 endp org 030d8h _sub_029 proc near public ; 30d8 push dx ; 30d8 - 52 mov al, bl ; 30d9 - 8a c3 mov ah, bl ; 30db - 8a e3 shr ah, 04h ; 30dd - c0 ec 04 and ax, 0f0fh ; 30e0 - 25 0f 0f cmp ah, 8 ; 30e3 - 80 fc 08 jz _loc_171 ; 30e6 - 74 20 -> 3108 _loc_245: ; 30e8 cmp al, 8 ; 30e8 - 3c 08 jz _loc_172 ; 30ea - 74 20 -> 310c _loc_244: ; 30ec mov bx, 8 ; 30ec - bb 08 00 mov cx, 8 ; 30ef - b9 08 00 _loc_176: ; 30f2 mov dl, byte ptr ds:[bx + 09eh] ; 30f2 - 8a 97 9e 00 cmp dl, 0ffh ; 30f6 - 80 fa ff jz _loc_173 ; 30f9 - 74 42 -> 313d cmp al, dl ; 30fb - 3a c2 jz _loc_174 ; 30fd - 74 11 -> 3110 _loc_240: ; 30ff cmp ah, dl ; 30ff - 3a e2 jz _loc_175 ; 3101 - 74 22 -> 3125 _loc_239: ; 3103 inc bx ; 3103 - 43 loop _loc_176 ; 3104 - e2 ec -> 30f2 pop dx ; 3106 - 5a ret ; 3107 - c3 _loc_171: ; 3108 xor ah, ah ; 3108 - 32 e4 jmp _loc_245 ; 310a - eb dc -> 30e8 _loc_172: ; 310c xor al, al ; 310c - 32 c0 jmp _loc_244 ; 310e - eb dc -> 30ec _loc_174: ; 3110 mov byte ptr ds:[043h], bl ; 3110 - 88 1e 43 00 and byte ptr ds:[0c2h], 0f0h ; 3114 - 80 26 c2 00 f0 or byte ptr ds:[0c2h], al ; 3119 - 08 06 c2 00 mov al, 0ffh ; 311d - b0 ff cmp ah, al ; 311f - 3a e0 jnz _loc_240 ; 3121 - 75 dc -> 30ff pop dx ; 3123 - 5a ret ; 3124 - c3 _loc_175: ; 3125 mov byte ptr ds:[042h], bl ; 3125 - 88 1e 42 00 and byte ptr ds:[0c2h], 0fh ; 3129 - 80 26 c2 00 0f shl ah, 04h ; 312e - c0 e4 04 or byte ptr ds:[0c2h], ah ; 3131 - 08 26 c2 00 mov ah, 0ffh ; 3135 - b4 ff cmp al, ah ; 3137 - 3a c4 jnz _loc_239 ; 3139 - 75 c8 -> 3103 pop dx ; 313b - 5a ret ; 313c - c3 _loc_173: ; 313d cmp al, 0ffh ; 313d - 3c ff jz _loc_241 ; 313f - 74 14 -> 3155 mov byte ptr ds:[043h], bl ; 3141 - 88 1e 43 00 and byte ptr ds:[0c2h], 0f0h ; 3145 - 80 26 c2 00 f0 or byte ptr ds:[0c2h], al ; 314a - 08 06 c2 00 call _sub_037 ; 314e - e8 2e 00 -> 317f dec cx ; 3151 - 49 jcxz _loc_242 ; 3152 - e3 1f -> 3173 inc bx ; 3154 - 43 _loc_241: ; 3155 cmp ah, 0ffh ; 3155 - 80 fc ff jz _loc_242 ; 3158 - 74 19 -> 3173 cmp ah, al ; 315a - 3a e0 jz _loc_243 ; 315c - 74 17 -> 3175 mov byte ptr ds:[042h], bl ; 315e - 88 1e 42 00 mov al, ah ; 3162 - 8a c4 and byte ptr ds:[0c2h], 0fh ; 3164 - 80 26 c2 00 0f shl ah, 04h ; 3169 - c0 e4 04 or byte ptr ds:[0c2h], ah ; 316c - 08 26 c2 00 call _sub_037 ; 3170 - e8 0c 00 -> 317f _loc_242: ; 3173 pop dx ; 3173 - 5a ret ; 3174 - c3 _loc_243: ; 3175 mov bl, byte ptr ds:[043h] ; 3175 - 8a 1e 43 00 mov byte ptr ds:[042h], bl ; 3179 - 88 1e 42 00 pop dx ; 317d - 5a ret ; 317e - c3 _sub_029 endp org 0317fh _sub_037 proc near public ; 317f mov byte ptr ds:[bx + 09eh], al ; 317f - 88 87 9e 00 mov dx, 0180h ; 3183 - ba 80 01 add dx, bx ; 3186 - 03 d3 add dx, bx ; 3188 - 03 d3 out dx, al ; 318a - ee ret ; 318b - c3 _sub_037 endp nop ; 318c - 90 db 090h ; 318d db 090h ; 318e db 090h ; 318f db 090h ; 3190 db 090h ; 3191 db 090h ; 3192 db 090h ; 3193 db 090h ; 3194 db 090h ; 3195 db 090h ; 3196 db 090h ; 3197 db 090h ; 3198 db 090h ; 3199 db 090h ; 319a db 090h ; 319b db 090h ; 319c db 090h ; 319d db 0f6h ; 319e db 031h ; 319f db 0f6h ; 31a0 db 031h ; 31a1 db 0f6h ; 31a2 db 031h ; 31a3 db 0f6h ; 31a4 db 031h ; 31a5 db 01ah ; 31a6 db 032h ; 31a7 db 01ah ; 31a8 db 032h ; 31a9 db 035h ; 31aa db 032h ; 31ab db 0f6h ; 31ac db 031h ; 31ad db 054h ; 31ae db 032h ; 31af db 054h ; 31b0 db 032h ; 31b1 org 031b2h _sub_005 proc near public ; 31b2 cmp bx, word ptr ds:[040h] ; 31b2 - 3b 1e 40 00 jnl _loc_126 ; 31b6 - 7d 15 -> 31cd _loc_153: ; 31b8 cmp cx, word ptr ds:[012h] ; 31b8 - 3b 0e 12 00 jnl _loc_127 ; 31bc - 7d 16 -> 31d4 _loc_152: ; 31be mov di, bx ; 31be - 8b fb xor bh, bh ; 31c0 - 32 ff mov bl, byte ptr ds:[091h] ; 31c2 - 8a 1e 91 00 shl bl, 1 ; 31c6 - d0 e3 jmp cs:[bx + 319eh] ; 31c8 - 2e ff a7 9e 31 _loc_126: ; 31cd mov bx, word ptr ds:[040h] ; 31cd - 8b 1e 40 00 dec bx ; 31d1 - 4b jmp _loc_153 ; 31d2 - eb e4 -> 31b8 _loc_127: ; 31d4 mov cx, word ptr ds:[012h] ; 31d4 - 8b 0e 12 00 dec cx ; 31d8 - 49 jmp _loc_152 ; 31d9 - eb e3 -> 31be _sub_005 endp org 031dbh _sub_001 proc near public ; 31db xor bh, bh ; 31db - 32 ff cmp bl, 19h ; 31dd - 80 fb 19 jnl _loc_140 ; 31e0 - 7d 10 -> 31f2 _loc_143: ; 31e2 xor ch, ch ; 31e2 - 32 ed cmp cl, byte ptr ds:[0aeh] ; 31e4 - 3a 0e ae 00 jl _loc_141 ; 31e8 - 7c 0e -> 31f8 mov cl, byte ptr ds:[0aeh] ; 31ea - 8a 0e ae 00 dec cl ; 31ee - fe c9 jmp _loc_141 ; 31f0 - eb 06 -> 31f8 _loc_140: ; 31f2 mov bl, 18h ; 31f2 - b3 18 jmp _loc_143 ; 31f4 - eb ec -> 31e2 db 08bh ; 31f6 db 0dfh ; 31f7 _loc_141: ; 31f8 push dx ; 31f8 - 52 mov al, cl ; 31f9 - 8a c1 mov al, ds:[0aeh] ; 31fb - a0 ae 00 mul bl ; 31fe - f6 e3 mov bl, byte ptr ds:[09ah] ; 3200 - 8a 1e 9a 00 mul bx ; 3204 - f7 e3 add ax, cx ; 3206 - 03 c1 mov di, ax ; 3208 - 8b f8 xor al, al ; 320a - 32 c0 mov dl, byte ptr ds:[09bh] ; 320c - 8a 16 9b 00 cmp dl, 1 ; 3210 - 80 fa 01 pop dx ; 3213 - 5a jz _loc_142 ; 3214 - 74 01 -> 3217 ret ; 3216 - c3 _loc_142: ; 3217 shl di, 1 ; 3217 - d1 e7 ret ; 3219 - c3 _sub_001 endp db 08bh ; 321a db 0dfh ; 321b db 0b8h ; 321c db 000h ; 321d db 005h ; 321e db 0f7h ; 321f db 0e3h ; 3220 db 050h ; 3221 db 052h ; 3222 db 0b8h ; 3223 db 002h ; 3224 db 000h ; 3225 db 0f7h ; 3226 db 0e1h ; 3227 db 05ah ; 3228 db 05bh ; 3229 db 003h ; 322a db 0c3h ; 322b db 073h ; 322c db 001h ; 322d db 042h ; 322e db 0b1h ; 322f db 002h ; 3230 db 0b5h ; 3231 db 002h ; 3232 db 0ebh ; 3233 db 010h ; 3234 db 08bh ; 3235 db 0dfh ; 3236 db 0b8h ; 3237 db 000h ; 3238 db 005h ; 3239 db 0f7h ; 323a db 0e3h ; 323b db 003h ; 323c db 0c1h ; 323d db 0b1h ; 323e db 002h ; 323f db 073h ; 3240 db 001h ; 3241 db 042h ; 3242 db 0b5h ; 3243 db 001h ; 3244 db 0bbh ; 3245 db 008h ; 3246 db 000h ; 3247 db 0f7h ; 3248 db 0f3h ; 3249 db 08bh ; 324a db 0f8h ; 324b db 0feh ; 324c db 0cbh ; 324d db 02ah ; 324e db 0dah ; 324f db 0bah ; 3250 db 050h ; 3251 db 000h ; 3252 db 0c3h ; 3253 db 0b8h ; 3254 db 050h ; 3255 db 000h ; 3256 db 08bh ; 3257 db 0d8h ; 3258 db 0f7h ; 3259 db 0e7h ; 325a db 08ah ; 325b db 0d9h ; 325c db 080h ; 325d db 0e3h ; 325e db 007h ; 325f db 080h ; 3260 db 0f3h ; 3261 db 007h ; 3262 db 0c1h ; 3263 db 0e9h ; 3264 db 003h ; 3265 db 003h ; 3266 db 0c1h ; 3267 db 08bh ; 3268 db 0d3h ; 3269 db 08bh ; 326a db 0f8h ; 326b db 0b9h ; 326c db 001h ; 326d db 001h ; 326e db 0c3h ; 326f org 03270h _sub_013 proc near public ; 3270 cld ; 3270 - fc push es ; 3271 - 06 push ax ; 3272 - 50 push cx ; 3273 - 51 push dx ; 3274 - 52 push ax ; 3275 - 50 mov bx, ds ; 3276 - 8c db mov es, bx ; 3278 - 8e c3 mov al, dh ; 327a - 8a c6 sub al, ch ; 327c - 2a c5 inc al ; 327e - fe c0 cmp ah, al ; 3280 - 3a e0 jb _loc_086 ; 3282 - 72 02 -> 3286 mov ah, al ; 3284 - 8a e0 _loc_086: ; 3286 push ax ; 3286 - 50 pop cx ; 3287 - 59 pop ax ; 3288 - 58 or al, al ; 3289 - 0a c0 jnz _loc_087 ; 328b - 75 16 -> 32a3 pop dx ; 328d - 5a pop ax ; 328e - 58 mov cx, ax ; 328f - 8b c8 call _sub_023 ; 3291 - e8 29 02 -> 34bd mov di, ax ; 3294 - 8b f8 pop bx ; 3296 - 5b mov ax, cx ; 3297 - 8b c1 add ah, bh ; 3299 - 02 e7 call _sub_023 ; 329b - e8 1f 02 -> 34bd mov si, ax ; 329e - 8b f0 jmp _loc_088 ; 32a0 - eb 18 -> 32ba nop ; 32a2 - 90 _loc_087: ; 32a3 pop dx ; 32a3 - 5a pop cx ; 32a4 - 59 mov ax, cx ; 32a5 - 8b c1 mov ah, dh ; 32a7 - 8a e6 call _sub_023 ; 32a9 - e8 11 02 -> 34bd mov di, ax ; 32ac - 8b f8 mov ax, cx ; 32ae - 8b c1 mov ah, dh ; 32b0 - 8a e6 pop bx ; 32b2 - 5b sub ah, bh ; 32b3 - 2a e7 call _sub_023 ; 32b5 - e8 05 02 -> 34bd mov si, ax ; 32b8 - 8b f0 _loc_088: ; 32ba call _sub_033 ; 32ba - e8 02 00 -> 32bf pop es ; 32bd - 07 ret ; 32be - c3 _sub_013 endp org 032bfh _sub_033 proc near public ; 32bf sub dh, ch ; 32bf - 2a f5 inc dh ; 32c1 - fe c6 cmp bh, dh ; 32c3 - 3a fe jbe _loc_226 ; 32c5 - 76 02 -> 32c9 mov bh, dh ; 32c7 - 8a fe _loc_226: ; 32c9 mov al, bh ; 32c9 - 8a c7 mov bl, byte ptr ds:[09ah] ; 32cb - 8a 1e 9a 00 mul bl ; 32cf - f6 e3 push ax ; 32d1 - 50 mov al, dh ; 32d2 - 8a c6 sub al, bh ; 32d4 - 2a c7 mul bl ; 32d6 - f6 e3 push ax ; 32d8 - 50 sub dl, cl ; 32d9 - 2a d1 inc dl ; 32db - fe c2 mov dh, byte ptr ds:[098h] ; 32dd - 8a 36 98 00 pop cx ; 32e1 - 59 pop bx ; 32e2 - 5b ret ; 32e3 - c3 _sub_033 endp org 032e4h _sub_022 proc near public ; 32e4 mov ah, byte ptr ds:[09bh] ; 32e4 - 8a 26 9b 00 cmp ah, 1 ; 32e8 - 80 fc 01 jnz _loc_194 ; 32eb - 75 03 -> 32f0 add cl, 28h ; 32ed - 80 c1 28 _loc_194: ; 32f0 cmp cx, 4fh ; 32f0 - 83 f9 4f jnz _loc_195 ; 32f3 - 75 3a -> 332f mov ax, 0028h ; 32f5 - b8 28 00 mul bx ; 32f8 - f7 e3 mov bx, ax ; 32fa - 8b d8 mov si, 0e000h ; 32fc - be 00 e0 mov dh, byte ptr ds:[042h] ; 32ff - 8a 36 42 00 mov dl, byte ptr ds:[0bah] ; 3303 - 8a 16 ba 00 _loc_197: ; 3307 xor ax, ax ; 3307 - 33 c0 ror dh, 1 ; 3309 - d0 ce jnb _loc_196 ; 330b - 73 03 -> 3310 mov ax, 0ffffh ; 330d - b8 ff ff _loc_196: ; 3310 push es ; 3310 - 06 mov es, si ; 3311 - 8e c6 push di ; 3313 - 57 mov cx, bx ; 3314 - 8b cb rep stosw ; 3316 - f3 ab pop di ; 3318 - 5f pop es ; 3319 - 07 call CHANGE_PLANE_ON ; 331a - e8 1a 07 -> 3a37 dec dl ; 331d - fe ca jnz _loc_197 ; 331f - 75 e6 -> 3307 ret ; 3321 - c3 nop ; 3322 - 90 db 090h ; 3323 db 090h ; 3324 db 090h ; 3325 db 090h ; 3326 db 090h ; 3327 db 090h ; 3328 db 090h ; 3329 db 090h ; 332a db 090h ; 332b db 090h ; 332c db 090h ; 332d db 090h ; 332e _loc_195: ; 332f mov ah, byte ptr ds:[042h] ; 332f - 8a 26 42 00 mov cx, 3 ; 3333 - b9 03 00 _loc_213: ; 3336 xor al, al ; 3336 - 32 c0 ror ah, 1 ; 3338 - d0 cc jnb _loc_212 ; 333a - 73 02 -> 333e mov al, 0ffh ; 333c - b0 ff _loc_212: ; 333e push cx ; 333e - 51 xor cx, cx ; 333f - 33 c9 call _sub_014 ; 3341 - e8 49 00 -> 338d call CHANGE_PLANE_ON ; 3344 - e8 f0 06 -> 3a37 pop cx ; 3347 - 59 loop _loc_213 ; 3348 - e2 ec -> 3336 ret ; 334a - c3 _sub_022 endp org 0334bh _sub_010 proc near public ; 334b cmp bh, 0ffh ; 334b - 80 ff ff jz _loc_094 ; 334e - 74 20 -> 3370 cmp byte ptr ds:[091h], 3 ; 3350 - 80 3e 91 00 03 jnbe _loc_095 ; 3355 - 77 0c -> 3363 mov bl, bh ; 3357 - 8a df call _sub_024 ; 3359 - e8 55 fd -> 30b1 jmp _loc_094 ; 335c - eb 12 -> 3370 nop ; 335e - 90 db 090h ; 335f db 090h ; 3360 db 090h ; 3361 db 090h ; 3362 _loc_095: ; 3363 and bh, 7 ; 3363 - 80 e7 07 add bh, 8 ; 3366 - 80 c7 08 and bh, 0fh ; 3369 - 80 e7 0f mov byte ptr ds:[042h], bh ; 336c - 88 3e 42 00 _loc_094: ; 3370 or al, al ; 3370 - 0a c0 jnz _loc_188 ; 3372 - 75 02 -> 3376 mov al, 19h ; 3374 - b0 19 _loc_188: ; 3376 mov ah, al ; 3376 - 8a e0 pop es ; 3378 - 07 push word ptr ds:[018h] ; 3379 - ff 36 18 00 push word ptr ds:[016h] ; 337d - ff 36 16 00 push es ; 3381 - 06 mov word ptr ds:[016h], 0ffffh ; 3382 - c7 06 16 00 ff ff call _sub_016 ; 3388 - e8 9b fb -> 2f26 clc ; 338b - f8 ret ; 338c - c3 _sub_010 endp org 0338dh _sub_014 proc near public ; 338d push es ; 338d - 06 push ds ; 338e - 1e push bp ; 338f - 55 push si ; 3390 - 56 push di ; 3391 - 57 push ax ; 3392 - 50 push bx ; 3393 - 53 push cx ; 3394 - 51 push dx ; 3395 - 52 mov bl, byte ptr ds:[098h] ; 3396 - 8a 1e 98 00 push bx ; 339a - 53 mov bp, sp ; 339b - 8b ec mov bx, word ptr ds:[01ch] ; 339d - 8b 1e 1c 00 mov bh, byte ptr ds:[09bh] ; 33a1 - 8a 3e 9b 00 push ax ; 33a5 - 50 mov ax, 0e000h ; 33a6 - b8 00 e0 mov es, ax ; 33a9 - 8e c0 mov ds, ax ; 33ab - 8e d8 pop ax ; 33ad - 58 mov al, dh ; 33ae - 8a c6 xor ah, ah ; 33b0 - 32 e4 jcxz _loc_081 ; 33b2 - e3 02 -> 33b6 jmp _loc_082 ; 33b4 - eb 03 -> 33b9 _loc_081: ; 33b6 jmp _loc_193 ; 33b6 - e9 92 00 -> 344b _loc_082: ; 33b9 push cx ; 33b9 - 51 push di ; 33ba - 57 push si ; 33bb - 56 mov cl, dl ; 33bc - 8a ca xor ch, ch ; 33be - 32 ed push ax ; 33c0 - 50 pushf ; 33c1 - 9c pop ax ; 33c2 - 58 test ah, 4 ; 33c3 - f6 c4 04 pop ax ; 33c6 - 58 jz _loc_189 ; 33c7 - 74 16 -> 33df test si, 1 ; 33c9 - f7 c6 01 00 jnz _loc_190 ; 33cd - 75 0b -> 33da movsb ; 33cf - a4 dec cx ; 33d0 - 49 cmp cx, 1 ; 33d1 - 83 f9 01 jz _loc_191 ; 33d4 - 74 0f -> 33e5 dec di ; 33d6 - 4f dec si ; 33d7 - 4e jmp _loc_192 ; 33d8 - eb 0d -> 33e7 _loc_190: ; 33da dec si ; 33da - 4e dec di ; 33db - 4f jmp _loc_225 ; 33dc - eb 0b -> 33e9 nop ; 33de - 90 _loc_189: ; 33df test si, 1 ; 33df - f7 c6 01 00 jz _loc_225 ; 33e3 - 74 04 -> 33e9 _loc_191: ; 33e5 movsb ; 33e5 - a4 dec cx ; 33e6 - 49 _loc_192: ; 33e7 jcxz _loc_220 ; 33e7 - e3 54 -> 343d _loc_225: ; 33e9 cmp cx, 1 ; 33e9 - 83 f9 01 jz _loc_191 ; 33ec - 74 f7 -> 33e5 cmp cl, byte ptr [bp + 0] ; 33ee - 3a 4e 00 jz _loc_221 ; 33f1 - 74 31 -> 3424 cmp bh, 1 ; 33f3 - 80 ff 01 jz _loc_222 ; 33f6 - 74 27 -> 341f push ax ; 33f8 - 50 pushf ; 33f9 - 9c pop ax ; 33fa - 58 test ah, 4 ; 33fb - f6 c4 04 pop ax ; 33fe - 58 jnz _loc_223 ; 33ff - 75 0e -> 340f _loc_292: ; 3401 movsw ; 3401 - a5 dec cx ; 3402 - 49 cmp cx, 2 ; 3403 - 83 f9 02 jnz _loc_224 ; 3406 - 75 03 -> 340b movsb ; 3408 - a4 jmp _loc_220 ; 3409 - eb 32 -> 343d _loc_224: ; 340b loop _loc_292 ; 340b - e2 f4 -> 3401 jmp _loc_220 ; 340d - eb 2e -> 343d _loc_223: ; 340f movsw ; 340f - a5 dec cx ; 3410 - 49 cmp cx, 2 ; 3411 - 83 f9 02 jnz _loc_293 ; 3414 - 75 05 -> 341b inc di ; 3416 - 47 inc si ; 3417 - 46 movsb ; 3418 - a4 jmp _loc_220 ; 3419 - eb 22 -> 343d _loc_293: ; 341b loop _loc_223 ; 341b - e2 f2 -> 340f jmp _loc_220 ; 341d - eb 1e -> 343d _loc_222: ; 341f movsw ; 341f - a5 loop _loc_222 ; 3420 - e2 fd -> 341f jmp _loc_220 ; 3422 - eb 19 -> 343d _loc_221: ; 3424 push ax ; 3424 - 50 push dx ; 3425 - 52 mov ax, word ptr [bp + 4] ; 3426 - 8b 46 04 mul cx ; 3429 - f7 e1 mov cx, ax ; 342b - 8b c8 pop dx ; 342d - 5a pop ax ; 342e - 58 cmp bh, 1 ; 342f - 80 ff 01 jz _loc_294 ; 3432 - 74 02 -> 3436 shr cx, 1 ; 3434 - d1 e9 _loc_294: ; 3436 rep movsw ; 3436 - f3 a5 add sp, 6 ; 3438 - 83 c4 06 jmp _loc_193 ; 343b - eb 0e -> 344b _loc_220: ; 343d pop si ; 343d - 5e pop di ; 343e - 5f pop cx ; 343f - 59 add si, ax ; 3440 - 03 f0 add di, ax ; 3442 - 03 f8 loop _loc_295 ; 3444 - e2 02 -> 3448 jmp _loc_193 ; 3446 - eb 03 -> 344b _loc_295: ; 3448 jmp _loc_082 ; 3448 - e9 6e ff -> 33b9 _loc_193: ; 344b mov cx, word ptr [bp + 6] ; 344b - 8b 4e 06 jcxz _loc_214 ; 344e - e3 3a -> 348a push ax ; 3450 - 50 mov al, byte ptr [bp + 8] ; 3451 - 8a 46 08 mov ah, al ; 3454 - 8a e0 pop bp ; 3456 - 5d _loc_296: ; 3457 push cx ; 3457 - 51 push di ; 3458 - 57 mov cl, dl ; 3459 - 8a ca xor ch, ch ; 345b - 32 ed cmp bh, 1 ; 345d - 80 ff 01 jz _loc_215 ; 3460 - 74 0f -> 3471 test di, 1 ; 3462 - f7 c7 01 00 jz _loc_216 ; 3466 - 74 04 -> 346c _loc_218: ; 3468 stosb ; 3468 - aa dec cx ; 3469 - 49 jcxz _loc_217 ; 346a - e3 18 -> 3484 _loc_216: ; 346c cmp cx, 1 ; 346c - 83 f9 01 jz _loc_218 ; 346f - 74 f7 -> 3468 _loc_215: ; 3471 stosw ; 3471 - ab cmp bh, 1 ; 3472 - 80 ff 01 jz _loc_219 ; 3475 - 74 0b -> 3482 dec cx ; 3477 - 49 jcxz _loc_217 ; 3478 - e3 0a -> 3484 cmp cx, 2 ; 347a - 83 f9 02 jnz _loc_219 ; 347d - 75 03 -> 3482 stosb ; 347f - aa jmp _loc_217 ; 3480 - eb 02 -> 3484 _loc_219: ; 3482 loop _loc_215 ; 3482 - e2 ed -> 3471 _loc_217: ; 3484 pop di ; 3484 - 5f add di, bp ; 3485 - 03 fd pop cx ; 3487 - 59 loop _loc_296 ; 3488 - e2 cd -> 3457 _loc_214: ; 348a pop ax ; 348a - 58 pop dx ; 348b - 5a pop cx ; 348c - 59 pop bx ; 348d - 5b pop ax ; 348e - 58 pop di ; 348f - 5f pop si ; 3490 - 5e pop bp ; 3491 - 5d pop ds ; 3492 - 1f pop es ; 3493 - 07 ret ; 3494 - c3 _sub_014 endp org 03495h _sub_021 proc near public ; 3495 push bx ; 3495 - 53 xor bx, bx ; 3496 - 33 db jcxz _loc_198 ; 3498 - e3 21 -> 34bb _loc_200: ; 349a push cx ; 349a - 51 mov cx, 3 ; 349b - b9 03 00 _loc_199: ; 349e push cx ; 349e - 51 mov cx, 0010h ; 349f - b9 10 00 call _sub_014 ; 34a2 - e8 e8 fe -> 338d call CHANGE_PLANE_ON ; 34a5 - e8 8f 05 -> 3a37 pop cx ; 34a8 - 59 loop _loc_199 ; 34a9 - e2 f3 -> 349e add si, 0500h ; 34ab - 81 c6 00 05 add di, 0500h ; 34af - 81 c7 00 05 pop cx ; 34b3 - 59 sub cx, 10h ; 34b4 - 83 e9 10 jcxz _loc_198 ; 34b7 - e3 02 -> 34bb jmp _loc_200 ; 34b9 - eb df -> 349a _loc_198: ; 34bb pop bx ; 34bb - 5b ret ; 34bc - c3 _sub_021 endp org 034bdh _sub_023 proc near public ; 34bd push bx ; 34bd - 53 push dx ; 34be - 52 push ax ; 34bf - 50 mov al, ah ; 34c0 - 8a c4 mov bl, byte ptr ds:[09ah] ; 34c2 - 8a 1e 9a 00 mul bl ; 34c6 - f6 e3 mov bl, byte ptr ds:[098h] ; 34c8 - 8a 1e 98 00 xor bh, bh ; 34cc - 32 ff mul bx ; 34ce - f7 e3 pop bx ; 34d0 - 5b push ax ; 34d1 - 50 mov al, ds:[097h] ; 34d2 - a0 97 00 mul bl ; 34d5 - f6 e3 pop bx ; 34d7 - 5b add ax, bx ; 34d8 - 03 c3 pop dx ; 34da - 5a pop bx ; 34db - 5b ret ; 34dc - c3 _sub_023 endp db 000h ; 34dd org 034deh _sub_025 proc near public ; 34de test byte ptr ds:[091h], 0ah ; 34de - f6 06 91 00 0a jz _loc_184 ; 34e3 - 74 01 -> 34e6 ret ; 34e5 - c3 _loc_184: ; 34e6 push ax ; 34e6 - 50 push bx ; 34e7 - 53 push cx ; 34e8 - 51 push si ; 34e9 - 56 push di ; 34ea - 57 push es ; 34eb - 06 mov ax, ds ; 34ec - 8c d8 mov es, ax ; 34ee - 8e c0 mov di, 0069h ; 34f0 - bf 69 00 mov si, 0068h ; 34f3 - be 68 00 mov cx, 0010h ; 34f6 - b9 10 00 std ; 34f9 - fd _loc_231: ; 34fa lodsb ; 34fa - ac push cx ; 34fb - 51 mov cx, 2 ; 34fc - b9 02 00 _loc_230: ; 34ff push cx ; 34ff - 51 mov cx, 4 ; 3500 - b9 04 00 _loc_229: ; 3503 ror al, 1 ; 3503 - d0 c8 rcr bl, 1 ; 3505 - d0 db rol al, 1 ; 3507 - d0 c0 rcr bl, 1 ; 3509 - d0 db ror al, 1 ; 350b - d0 c8 loop _loc_229 ; 350d - e2 f4 -> 3503 mov byte ptr ds:[di], bl ; 350f - 88 1d dec di ; 3511 - 4f pop cx ; 3512 - 59 loop _loc_230 ; 3513 - e2 ea -> 34ff dec si ; 3515 - 4e pop cx ; 3516 - 59 loop _loc_231 ; 3517 - e2 e1 -> 34fa pop es ; 3519 - 07 pop di ; 351a - 5f pop si ; 351b - 5e pop cx ; 351c - 59 pop bx ; 351d - 5b pop ax ; 351e - 58 ret ; 351f - c3 _sub_025 endp db 0f6h ; 3520 db 006h ; 3521 db 091h ; 3522 db 000h ; 3523 db 00ah ; 3524 db 074h ; 3525 db 001h ; 3526 db 0c3h ; 3527 db 050h ; 3528 db 053h ; 3529 db 051h ; 352a db 056h ; 352b db 057h ; 352c db 006h ; 352d db 08ch ; 352e db 0d8h ; 352f db 08eh ; 3530 db 0c0h ; 3531 db 0bfh ; 3532 db 04ah ; 3533 db 000h ; 3534 db 0beh ; 3535 db 04bh ; 3536 db 000h ; 3537 db 0b9h ; 3538 db 010h ; 3539 db 000h ; 353a db 0fch ; 353b db 051h ; 353c db 08ah ; 353d db 01ch ; 353e db 0b9h ; 353f db 002h ; 3540 db 000h ; 3541 db 051h ; 3542 db 0b9h ; 3543 db 004h ; 3544 db 000h ; 3545 db 0d0h ; 3546 db 0cbh ; 3547 db 0d0h ; 3548 db 0cbh ; 3549 db 0d0h ; 354a db 0d8h ; 354b db 0e2h ; 354c db 0f8h ; 354d db 04eh ; 354e db 08ah ; 354f db 01ch ; 3550 db 059h ; 3551 db 0e2h ; 3552 db 0eeh ; 3553 db 0aah ; 3554 db 083h ; 3555 db 0c6h ; 3556 db 004h ; 3557 db 047h ; 3558 db 059h ; 3559 db 0e2h ; 355a db 0e0h ; 355b db 007h ; 355c db 05fh ; 355d db 05eh ; 355e db 059h ; 355f db 05bh ; 3560 db 058h ; 3561 db 0c3h ; 3562 db 000h ; 3563 org 03564h CLEAR_GRAPHICS_MEMORY proc near public ; 3564 push ax ; 3564 - 50 push bx ; 3565 - 53 push cx ; 3566 - 51 push dx ; 3567 - 52 push di ; 3568 - 57 push es ; 3569 - 06 mov ax, 0e000h ; 356a - b8 00 e0 mov es, ax ; 356d - 8e c0 xor di, di ; 356f - 33 ff cld ; 3571 - fc mov ax, ds:[1ch] ; 3572 - a1 1c 00 test al, 4 ; 3575 - a8 04 jnz CLEAR_GR_XX ; 3577 - 75 03 -> 357c jmp CLEAR_GR_50 ; 3579 - eb 6f -> 35ea nop ; 357b - 90 CLEAR_GR_XX: ; 357c call GRAPHICS_OFF ; 357c - e8 af 04 -> 3a2e mov al, ds:[091h] ; 357f - a0 91 00 cmp al, 3 ; 3582 - 3c 03 jnbe CLEAR_GR_10 ; 3584 - 77 45 -> 35cb mov byte ptr ds:[09dh], 0 ; 3586 - c6 06 9d 00 00 mov bx, word ptr ds:[042h] ; 358b - 8b 1e 42 00 xor bh, bh ; 358f - 32 ff cmp bl, 8 ; 3591 - 80 fb 08 jz CLEAR_GR_03 ; 3594 - 74 25 -> 35bb mov al, byte ptr ds:[bx + 09eh] ; 3596 - 8a 87 9e 00 push bx ; 359a - 53 mov bl, 8 ; 359b - b3 08 mov ah, byte ptr ds:[bx + 09eh] ; 359d - 8a a7 9e 00 mov byte ptr ds:[bx + 09eh], al ; 35a1 - 88 87 9e 00 mov dx, 0190h ; 35a5 - ba 90 01 out dx, al ; 35a8 - ee mov al, ah ; 35a9 - 8a c4 pop bx ; 35ab - 5b mov byte ptr ds:[bx + 09eh], al ; 35ac - 88 87 9e 00 mov cx, bx ; 35b0 - 8b cb sub cx, 8 ; 35b2 - 83 e9 08 shl cx, 1 ; 35b5 - d1 e1 CLEAR_GR_01: ; 35b7 inc dx ; 35b7 - 42 loop CLEAR_GR_01 ; 35b8 - e2 fd -> 35b7 out dx, al ; 35ba - ee CLEAR_GR_03: ; 35bb mov byte ptr ds:[043h], 0ffh ; 35bb - c6 06 43 00 ff mov cx, 7 ; 35c0 - b9 07 00 CLEAR_GR_05: ; 35c3 inc bx ; 35c3 - 43 mov byte ptr ds:[bx + 09eh], 0ffh ; 35c4 - c6 87 9e 00 ff loop CLEAR_GR_05 ; 35c9 - e2 f8 -> 35c3 CLEAR_GR_10: ; 35cb xor ax, ax ; 35cb - 33 c0 mov cx, 3 ; 35cd - b9 03 00 CLEAR_GR_20: ; 35d0 push di ; 35d0 - 57 push cx ; 35d1 - 51 mov cx, 3e80h ; 35d2 - b9 80 3e rep stosw ; 35d5 - f3 ab pop cx ; 35d7 - 59 pop di ; 35d8 - 5f cmp cx, 1 ; 35d9 - 83 f9 01 jz CLEAR_GR_30 ; 35dc - 74 05 -> 35e3 call CHANGE_PLANE_OFF ; 35de - e8 41 04 -> 3a22 jmp CLEAR_GR_40 ; 35e1 - eb 03 -> 35e6 CLEAR_GR_30: ; 35e3 call CHANGE_PLANE_ON ; 35e3 - e8 51 04 -> 3a37 CLEAR_GR_40: ; 35e6 loop CLEAR_GR_20 ; 35e6 - e2 e8 -> 35d0 jmp CLEAR_GR_EXIT ; 35e8 - eb 07 -> 35f1 CLEAR_GR_50: ; 35ea xor ax, ax ; 35ea - 33 c0 mov cx, 3e80h ; 35ec - b9 80 3e rep stosw ; 35ef - f3 ab CLEAR_GR_EXIT: ; 35f1 mov cx, 07d0h ; 35f1 - b9 d0 07 mov di, 0 ; 35f4 - bf 00 00 mov ax, ds:[010ah] ; 35f7 - a1 0a 01 push es ; 35fa - 06 mov es, ax ; 35fb - 8e c0 mov ax, 0420h ; 35fd - b8 20 04 rep stosw ; 3600 - f3 ab pop es ; 3602 - 07 mov word ptr ds:[016h], 0 ; 3603 - c7 06 16 00 00 00 mov word ptr ds:[018h], 0ffffh ; 3609 - c7 06 18 00 ff ff mov al, ds:[09bh] ; 360f - a0 9b 00 cmp al, 0ffh ; 3612 - 3c ff jz CLEAR_GR_EXIT_10 ; 3614 - 74 0b -> 3621 xor bx, bx ; 3616 - 33 db xor cx, cx ; 3618 - 33 c9 call _sub_001 ; 361a - e8 be fb -> 31db mov word ptr ds:[014h], di ; 361d - 89 3e 14 00 CLEAR_GR_EXIT_10: ; 3621 pop es ; 3621 - 07 pop di ; 3622 - 5f pop dx ; 3623 - 5a pop cx ; 3624 - 59 pop bx ; 3625 - 5b pop ax ; 3626 - 58 ret ; 3627 - c3 CLEAR_GRAPHICS_MEMORY endp org 03628h CONFIG_PALETTE proc near public ; 3628 push ax ; 3628 - 50 push bx ; 3629 - 53 mov bx, 4 ; 362a - bb 04 00 test al, 2 ; 362d - a8 02 jz CONFIG_EXIT ; 362f - 74 03 -> 3634 mov bx, 3 ; 3631 - bb 03 00 CONFIG_EXIT: ; 3634 call LOAD_PALETTE ; 3634 - e8 26 00 -> 365d pop bx ; 3637 - 5b pop ax ; 3638 - 58 ret ; 3639 - c3 CONFIG_PALETTE endp org 0363ah LOAD_GRAPHIC_PALETTE proc near public ; 363a mov bx, 0 ; 363a - bb 00 00 call LOAD_PALETTE ; 363d - e8 1d 00 -> 365d test al, 2 ; 3640 - a8 02 jz LGP_20 ; 3642 - 74 07 -> 364b mov bx, 3 ; 3644 - bb 03 00 call LOAD_PALETTE ; 3647 - e8 13 00 -> 365d ret ; 364a - c3 LGP_20: ; 364b mov al, 0 ; 364b - b0 00 mov dx, 0190h ; 364d - ba 90 01 out dx, al ; 3650 - ee mov bx, 8 ; 3651 - bb 08 00 mov byte ptr ds:[bx + 09eh], al ; 3654 - 88 87 9e 00 mov byte ptr ds:[042h], bl ; 3658 - 88 1e 42 00 ret ; 365c - c3 LOAD_GRAPHIC_PALETTE endp org 0365dh LOAD_PALETTE proc near public ; 365d push ax ; 365d - 50 push cx ; 365e - 51 push dx ; 365f - 52 push si ; 3660 - 56 push di ; 3661 - 57 push es ; 3662 - 06 mov ax, ds ; 3663 - 8c d8 mov es, ax ; 3665 - 8e c0 mov cx, bx ; 3667 - 8b cb shl bx, 1 ; 3669 - d1 e3 mov bx, word ptr cs:[bx + 36beh] ; 366b - 2e 8b 9f be 36 mov ax, word ptr cs:[bx] ; 3670 - 2e 8b 07 nop ; 3673 - 90 nop ; 3674 - 90 cmp cx, 2 ; 3675 - 83 f9 02 jbe LOAD_PALETTE_10 ; 3678 - 76 05 -> 367f mov ds:[42h], ax ; 367a - a3 42 00 jmp LOAD_PALETTE_20 ; 367d - eb 04 -> 3683 LOAD_PALETTE_10: ; 367f mov byte ptr ds:[043h], ah ; 367f - 88 26 43 00 LOAD_PALETTE_20: ; 3683 mov al, 21h ; 3683 - b0 21 mov byte ptr ds:[08fh], 1 ; 3685 - c6 06 8f 00 01 mov dx, 01a0h ; 368a - ba a0 01 out dx, al ; 368d - ee mov cx, word ptr cs:[bx + 2] ; 368e - 2e 8b 4f 02 nop ; 3692 - 90 mov dx, word ptr cs:[bx + 4] ; 3693 - 2e 8b 57 04 nop ; 3697 - 90 mov di, 009eh ; 3698 - bf 9e 00 add di, word ptr cs:[bx + 6] ; 369b - 2e 03 7f 06 nop ; 369f - 90 mov si, bx ; 36a0 - 8b f3 add si, 8 ; 36a2 - 83 c6 08 nop ; 36a5 - 90 LOAD_PALETTE_30: ; 36a6 mov al, byte ptr cs:[si] ; 36a6 - 2e 8a 04 out dx, al ; 36a9 - ee add dx, 2 ; 36aa - 83 c2 02 inc si ; 36ad - 46 stosb ; 36ae - aa loop LOAD_PALETTE_30 ; 36af - e2 f5 -> 36a6 mov al, 0f1h ; 36b1 - b0 f1 mov dx, 01a0h ; 36b3 - ba a0 01 out dx, al ; 36b6 - ee pop es ; 36b7 - 07 pop di ; 36b8 - 5f pop si ; 36b9 - 5e pop dx ; 36ba - 5a pop cx ; 36bb - 59 pop ax ; 36bc - 58 ret ; 36bd - c3 LOAD_PALETTE endp org 036beh PALETTE_CONFIG_TABLE: ¾6 dw 036f6h ; 036be dw 03705h ; 036c0 dw 00000h ; 036c2 dw 036cch ; 036c4 dw 036d6h ; 036c6 dw 036e6h ; 036c8 dw 00000h ; 036ca org 036cch CONFIG_HI_1: ¾6 dw 00f0eh ; 036cc dw 00002h ; 036ce dw 0019ch ; 036d0 dw 0000eh ; 036d2 db 000h ; 36d4 db 007h ; 36d5 org 036d6h CONFIG_HI_3: ¾6 dw 00908h ; 036d6 dw 00008h ; 036d8 dw 00190h ; 036da dw 00008h ; 036dc db 000h ; 36de db 0ffh ; 36df db 0ffh ; 36e0 db 0ffh ; 36e1 db 0ffh ; 36e2 db 0ffh ; 36e3 db 0ffh ; 36e4 db 0ffh ; 36e5 org 036e6h CONFIG_BW_HI: ¾6 dw 00908h ; 036e6 dw 00008h ; 036e8 dw 00190h ; 036ea dw 00008h ; 036ec db 000h ; 36ee db 00fh ; 36ef db 000h ; 36f0 db 00fh ; 36f1 db 000h ; 36f2 db 00fh ; 36f3 db 000h ; 36f4 db 00fh ; 36f5 org 036f6h CONFIG_PALETTE_0: ¾6 dw 00908h ; 036f6 dw 00007h ; 036f8 dw 00192h ; 036fa dw 00009h ; 036fc db 002h ; 36fe db 004h ; 36ff db 006h ; 3700 db 00fh ; 3701 db 00bh ; 3702 db 009h ; 3703 db 00eh ; 3704 org 03705h CONFIG_PALETTE_1: ¾6 dw 00908h ; 03705 dw 00007h ; 03707 dw 00192h ; 03709 dw 00009h ; 0370b db 003h ; 370d db 005h ; 370e db 00fh ; 370f db 00ch ; 3710 db 00ah ; 3711 db 009h ; 3712 db 00eh ; 3713 org 03714h GR_40 proc near public ; 3714 mov ax, ds:[1ch] ; 3714 - a1 1c 00 and al, 7 ; 3717 - 24 07 jz GR_S9007_40 ; 3719 - 74 32 -> 374d test ah, 2 ; 371b - f6 c4 02 jz GR_S9007_40 ; 371e - 74 2d -> 374d call CONFIG_PALETTE ; 3720 - e8 05 ff -> 3628 mov bl, 1 ; 3723 - b3 01 mov word ptr ds:[040h], 0019h ; 3725 - c7 06 40 00 19 00 mov word ptr ds:[012h], 0028h ; 372b - c7 06 12 00 28 00 mov byte ptr ds:[092h], 0 ; 3731 - c6 06 92 00 00 mov byte ptr ds:[0bah], 3 ; 3736 - c6 06 ba 00 03 test byte ptr ds:[01ch], 4 ; 373b - f6 06 1c 00 04 jnz GR_40_3PL ; 3740 - 75 05 -> 3747 mov byte ptr ds:[0bah], 1 ; 3742 - c6 06 ba 00 01 GR_40_3PL: ; 3747 call GR_SETUP_40X25 ; 3747 - e8 63 01 -> 38ad xor al, al ; 374a - 32 c0 ret ; 374c - c3 GR_40 endp GR_S9007_40: ; 374d jmp S9007_40 ; 374d - e9 24 de -> 1574 org 03750h GR_80 proc near public ; 3750 mov ax, ds:[1ch] ; 3750 - a1 1c 00 and al, 7 ; 3753 - 24 07 jz GR_S9007_80 ; 3755 - 74 32 -> 3789 test ah, 2 ; 3757 - f6 c4 02 jz GR_S9007_80 ; 375a - 74 2d -> 3789 call CONFIG_PALETTE ; 375c - e8 c9 fe -> 3628 mov bl, 3 ; 375f - b3 03 mov word ptr ds:[040h], 0019h ; 3761 - c7 06 40 00 19 00 mov word ptr ds:[012h], 0050h ; 3767 - c7 06 12 00 50 00 mov byte ptr ds:[092h], 0 ; 376d - c6 06 92 00 00 mov byte ptr ds:[0bah], 3 ; 3772 - c6 06 ba 00 03 test byte ptr ds:[01ch], 4 ; 3777 - f6 06 1c 00 04 jnz GR_80_3PL ; 377c - 75 05 -> 3783 mov byte ptr ds:[0bah], 1 ; 377e - c6 06 ba 00 01 GR_80_3PL: ; 3783 call GR_SETUP_80X25 ; 3783 - e8 57 01 -> 38dd xor al, al ; 3786 - 32 c0 ret ; 3788 - c3 GR_80 endp GR_S9007_80: ; 3789 jmp S9007_80 ; 3789 - e9 98 de -> 1624 org 0378ch GR_320X200C proc near public ; 378c mov ax, ds:[1ch] ; 378c - a1 1c 00 and al, 7 ; 378f - 24 07 jz GR_320X200C_EXIT ; 3791 - 74 23 -> 37b6 test ah, 2 ; 3793 - f6 c4 02 jz GR_320X200B ; 3796 - 74 21 -> 37b9 call LOAD_GRAPHIC_PALETTE ; 3798 - e8 9f fe -> 363a mov bl, 4 ; 379b - b3 04 mov word ptr ds:[040h], 00c8h ; 379d - c7 06 40 00 c8 00 mov word ptr ds:[012h], 0140h ; 37a3 - c7 06 12 00 40 01 mov byte ptr ds:[092h], 2 ; 37a9 - c6 06 92 00 02 mov byte ptr ds:[0bah], 3 ; 37ae - c6 06 ba 00 03 call GR_SETUP_40X25 ; 37b3 - e8 f7 00 -> 38ad GR_320X200C_EXIT: ; 37b6 xor al, al ; 37b6 - 32 c0 ret ; 37b8 - c3 GR_320X200C endp GR_320X200B proc near public ; 37b9 mov ax, ds:[1ch] ; 37b9 - a1 1c 00 and al, 7 ; 37bc - 24 07 jz GR_320X200B_EXIT ; 37be - 74 34 -> 37f4 mov bx, 5 ; 37c0 - bb 05 00 test al, 2 ; 37c3 - a8 02 jz GR_320X200B_20 ; 37c5 - 74 03 -> 37ca mov bx, 3 ; 37c7 - bb 03 00 GR_320X200B_20: ; 37ca call LOAD_PALETTE ; 37ca - e8 90 fe -> 365d mov bl, 5 ; 37cd - b3 05 mov word ptr ds:[040h], 00c8h ; 37cf - c7 06 40 00 c8 00 mov word ptr ds:[012h], 0140h ; 37d5 - c7 06 12 00 40 01 mov byte ptr ds:[092h], 1 ; 37db - c6 06 92 00 01 mov byte ptr ds:[0bah], 1 ; 37e0 - c6 06 ba 00 01 call GR_SETUP_40X25 ; 37e5 - e8 c5 00 -> 38ad test ah, 2 ; 37e8 - f6 c4 02 jnz GR_320X200B_EXIT ; 37eb - 75 07 -> 37f4 mov ah, 7fh ; 37ed - b4 7f mov al, 0 ; 37ef - b0 00 call OUT_VD_ADDR ; 37f1 - e8 0c d4 -> 0c00 GR_320X200B_EXIT: ; 37f4 xor al, al ; 37f4 - 32 c0 ret ; 37f6 - c3 GR_320X200B endp org 037f7h GR_640X200B proc near public ; 37f7 mov ax, ds:[1ch] ; 37f7 - a1 1c 00 and al, 7 ; 37fa - 24 07 jz GR_640X200B_EXIT ; 37fc - 74 41 -> 383f test al, 1 ; 37fe - a8 01 jnz GR_320X200B ; 3800 - 75 b7 -> 37b9 mov bx, 5 ; 3802 - bb 05 00 test al, 2 ; 3805 - a8 02 jz GR_640X200B_10 ; 3807 - 74 03 -> 380c mov bx, 3 ; 3809 - bb 03 00 GR_640X200B_10: ; 380c call LOAD_PALETTE ; 380c - e8 4e fe -> 365d mov word ptr ds:[06eh], 14b0h ; 380f - c7 06 6e 00 b0 14 call GR_SETUP_80X25 ; 3815 - e8 c5 00 -> 38dd mov bl, 6 ; 3818 - b3 06 mov word ptr ds:[040h], 00c8h ; 381a - c7 06 40 00 c8 00 mov word ptr ds:[012h], 0280h ; 3820 - c7 06 12 00 80 02 mov byte ptr ds:[092h], 1 ; 3826 - c6 06 92 00 01 mov byte ptr ds:[0bah], 1 ; 382b - c6 06 ba 00 01 call LOAD_MODE ; 3830 - e8 6b de -> 169e test ah, 2 ; 3833 - f6 c4 02 jnz GR_640X200B_EXIT ; 3836 - 75 07 -> 383f mov ah, 7fh ; 3838 - b4 7f mov al, 0 ; 383a - b0 00 call OUT_VD_ADDR ; 383c - e8 c1 d3 -> 0c00 GR_640X200B_EXIT: ; 383f xor al, al ; 383f - 32 c0 ret ; 3841 - c3 GR_640X200B endp org 03842h GR_640X400C proc near public ; 3842 mov ax, ds:[1ch] ; 3842 - a1 1c 00 and al, 7 ; 3845 - 24 07 jz GR_640X400C_EXIT ; 3847 - 74 23 -> 386c test ah, 2 ; 3849 - f6 c4 02 jz GR_640X400B ; 384c - 74 21 -> 386f call LOAD_GRAPHIC_PALETTE ; 384e - e8 e9 fd -> 363a mov bl, 8 ; 3851 - b3 08 mov word ptr ds:[040h], 0190h ; 3853 - c7 06 40 00 90 01 mov word ptr ds:[012h], 0280h ; 3859 - c7 06 12 00 80 02 mov byte ptr ds:[092h], 3 ; 385f - c6 06 92 00 03 mov byte ptr ds:[0bah], 3 ; 3864 - c6 06 ba 00 03 call GR_SETUP_80X25 ; 3869 - e8 71 00 -> 38dd GR_640X400C_EXIT: ; 386c xor al, al ; 386c - 32 c0 ret ; 386e - c3 GR_640X400C endp GR_640X400B proc near public ; 386f mov ax, ds:[1ch] ; 386f - a1 1c 00 and al, 6 ; 3872 - 24 06 jz GR_640X400B_20 ; 3874 - 74 34 -> 38aa mov bx, 5 ; 3876 - bb 05 00 test al, 2 ; 3879 - a8 02 jz GR_640X400B_10 ; 387b - 74 03 -> 3880 mov bx, 3 ; 387d - bb 03 00 GR_640X400B_10: ; 3880 call LOAD_PALETTE ; 3880 - e8 da fd -> 365d mov bl, 9 ; 3883 - b3 09 mov word ptr ds:[040h], 0190h ; 3885 - c7 06 40 00 90 01 mov word ptr ds:[012h], 0280h ; 388b - c7 06 12 00 80 02 mov byte ptr ds:[092h], 1 ; 3891 - c6 06 92 00 01 mov byte ptr ds:[0bah], 1 ; 3896 - c6 06 ba 00 01 call GR_SETUP_80X25 ; 389b - e8 3f 00 -> 38dd test ah, 2 ; 389e - f6 c4 02 jnz GR_640X400B_20 ; 38a1 - 75 07 -> 38aa mov ah, 7fh ; 38a3 - b4 7f mov al, 0 ; 38a5 - b0 00 call OUT_VD_ADDR ; 38a7 - e8 56 d3 -> 0c00 GR_640X400B_20: ; 38aa xor al, al ; 38aa - 32 c0 ret ; 38ac - c3 GR_640X400B endp org 038adh GR_SETUP_40X25 proc near public ; 38ad call LOAD_MODE ; 38ad - e8 ee dd -> 169e mov word ptr ds:[06eh], 14b0h ; 38b0 - c7 06 6e 00 b0 14 mov byte ptr ds:[09ah], 10h ; 38b6 - c6 06 9a 00 10 mov byte ptr ds:[096h], 10h ; 38bb - c6 06 96 00 10 mov byte ptr ds:[097h], 2 ; 38c0 - c6 06 97 00 02 mov byte ptr ds:[098h], 50h ; 38c5 - c6 06 98 00 50 mov byte ptr ds:[099h], 28h ; 38ca - c6 06 99 00 28 mov byte ptr ds:[09bh], 1 ; 38cf - c6 06 9b 00 01 mov byte ptr ds:[0aeh], 28h ; 38d4 - c6 06 ae 00 28 call CLEAR_GRAPHICS_MEMORY ; 38d9 - e8 88 fc -> 3564 ret ; 38dc - c3 GR_SETUP_40X25 endp org 038ddh GR_SETUP_80X25 proc near public ; 38dd call LOAD_MODE ; 38dd - e8 be dd -> 169e mov word ptr ds:[06eh], 14b0h ; 38e0 - c7 06 6e 00 b0 14 mov byte ptr ds:[096h], 8 ; 38e6 - c6 06 96 00 08 mov byte ptr ds:[097h], 1 ; 38eb - c6 06 97 00 01 mov byte ptr ds:[098h], 50h ; 38f0 - c6 06 98 00 50 mov byte ptr ds:[099h], 28h ; 38f5 - c6 06 99 00 28 mov byte ptr ds:[09ah], 10h ; 38fa - c6 06 9a 00 10 mov byte ptr ds:[09bh], 3 ; 38ff - c6 06 9b 00 03 mov byte ptr ds:[0aeh], 50h ; 3904 - c6 06 ae 00 50 call CLEAR_GRAPHICS_MEMORY ; 3909 - e8 58 fc -> 3564 ret ; 390c - c3 GR_SETUP_80X25 endp db 000h ; 390d org 0390eh CMP_FONT proc near public ; 390e push bx ; 390e - 53 push cx ; 390f - 51 push dx ; 3910 - 52 push si ; 3911 - 56 push di ; 3912 - 57 push ds ; 3913 - 1e push es ; 3914 - 06 mov ax, ds ; 3915 - 8c d8 mov es, ax ; 3917 - 8e c0 mov di, 004ah ; 3919 - bf 4a 00 mov bh, byte ptr ds:[093h] ; 391c - 8a 3e 93 00 xor bl, bl ; 3920 - 32 db mov ax, 0 ; 3922 - b8 00 00 mov ds, ax ; 3925 - 8e d8 cld ; 3927 - fc cmp bh, 1 ; 3928 - 80 ff 01 jnz CMP_HI ; 392b - 75 17 -> 3944 push word ptr ds:[047ah] ; 392d - ff 36 7a 04 push word ptr ds:[047ch] ; 3931 - ff 36 7c 04 push word ptr ds:[0476h] ; 3935 - ff 36 76 04 push word ptr ds:[0478h] ; 3939 - ff 36 78 04 mov dx, 8 ; 393d - ba 08 00 mov bh, 1 ; 3940 - b7 01 jmp CMP_FONT_10 ; 3942 - eb 15 -> 3959 CMP_HI: ; 3944 push word ptr ds:[0482h] ; 3944 - ff 36 82 04 push word ptr ds:[0484h] ; 3948 - ff 36 84 04 push word ptr ds:[047eh] ; 394c - ff 36 7e 04 push word ptr ds:[0480h] ; 3950 - ff 36 80 04 mov bh, 2 ; 3954 - b7 02 mov dx, 0010h ; 3956 - ba 10 00 CMP_FONT_10: ; 3959 pop ds ; 3959 - 1f pop si ; 395a - 5e mov cx, 0080h ; 395b - b9 80 00 or bl, bl ; 395e - 0a db jnz CMP_FONT_20 ; 3960 - 75 0c -> 396e add si, dx ; 3962 - 03 f2 cmp bh, 2 ; 3964 - 80 ff 02 jnz CMP_FONT_15 ; 3967 - 75 02 -> 396b add si, dx ; 3969 - 03 f2 CMP_FONT_15: ; 396b inc bl ; 396b - fe c3 dec cx ; 396d - 49 CMP_FONT_20: ; 396e push di ; 396e - 57 push cx ; 396f - 51 mov cx, dx ; 3970 - 8b ca CMP_FONT_30: ; 3972 cmpsb ; 3972 - a6 jnz CMP_FONT_60 ; 3973 - 75 1e -> 3993 cmp bh, 2 ; 3975 - 80 ff 02 jnz CMP_FONT_35 ; 3978 - 75 01 -> 397b inc si ; 397a - 46 CMP_FONT_35: ; 397b inc di ; 397b - 47 loop CMP_FONT_30 ; 397c - e2 f4 -> 3972 pop cx ; 397e - 59 pop di ; 397f - 5f xor ah, ah ; 3980 - 32 e4 cmp bl, 7fh ; 3982 - 80 fb 7f jnbe CMP_FONT_50 ; 3985 - 77 02 -> 3989 pop cx ; 3987 - 59 pop cx ; 3988 - 59 CMP_FONT_50: ; 3989 mov al, bl ; 3989 - 8a c3 pop es ; 398b - 07 pop ds ; 398c - 1f pop di ; 398d - 5f pop si ; 398e - 5e pop dx ; 398f - 5a pop cx ; 3990 - 59 pop bx ; 3991 - 5b ret ; 3992 - c3 CMP_FONT endp CMP_FONT_60: ; 3993 inc bl ; 3993 - fe c3 add si, cx ; 3995 - 03 f1 cmp bh, 2 ; 3997 - 80 ff 02 jnz CMP_FONT_65 ; 399a - 75 02 -> 399e add si, cx ; 399c - 03 f1 CMP_FONT_65: ; 399e dec si ; 399e - 4e pop cx ; 399f - 59 pop di ; 39a0 - 5f loop CMP_FONT_20 ; 39a1 - e2 cb -> 396e or bl, bl ; 39a3 - 0a db jnz CMP_FONT_10 ; 39a5 - 75 b2 -> 3959 mov ah, 0ffh ; 39a7 - b4 ff jmp CMP_FONT_50 ; 39a9 - eb de -> 3989 org 039abh READ_FONT proc near public ; 39ab push ax ; 39ab - 50 push bx ; 39ac - 53 push cx ; 39ad - 51 push si ; 39ae - 56 push di ; 39af - 57 push ds ; 39b0 - 1e push es ; 39b1 - 06 mov ds:[093h], al ; 39b2 - a2 93 00 mov ah, bl ; 39b5 - 8a e3 mov bl, al ; 39b7 - 8a d8 xor bh, bh ; 39b9 - 32 ff mov cx, ds ; 39bb - 8c d9 mov es, cx ; 39bd - 8e c1 and bl, 1 ; 39bf - 80 e3 01 xor bl, 1 ; 39c2 - 80 f3 01 mov di, 004ah ; 39c5 - bf 4a 00 mov cx, 0 ; 39c8 - b9 00 00 mov ds, cx ; 39cb - 8e d9 rol ah, 1 ; 39cd - d0 c4 rcl bx, 03h ; 39cf - c1 d3 03 mov si, word ptr ds:[bx + 0476h] ; 39d2 - 8b b7 76 04 mov ds, word ptr ds:[bx + 0478h] ; 39d6 - 8e 9f 78 04 clc ; 39da - f8 rcr ah, 1 ; 39db - d0 dc cld ; 39dd - fc mov bl, ah ; 39de - 8a dc xor bh, bh ; 39e0 - 32 ff cmp al, 1 ; 39e2 - 3c 01 jnz READ_FONT_20 ; 39e4 - 75 0e -> 39f4 shl bx, 03h ; 39e6 - c1 e3 03 add si, bx ; 39e9 - 03 f3 mov cx, 8 ; 39eb - b9 08 00 READ_FONT_15: ; 39ee movsb ; 39ee - a4 inc di ; 39ef - 47 loop READ_FONT_15 ; 39f0 - e2 fc -> 39ee jmp READ_FONT_EXIT ; 39f2 - eb 0a -> 39fe READ_FONT_20: ; 39f4 shl bx, 05h ; 39f4 - c1 e3 05 add si, bx ; 39f7 - 03 f3 mov cx, 0010h ; 39f9 - b9 10 00 rep movsw ; 39fc - f3 a5 READ_FONT_EXIT: ; 39fe pop es ; 39fe - 07 pop ds ; 39ff - 1f pop di ; 3a00 - 5f pop si ; 3a01 - 5e pop cx ; 3a02 - 59 pop bx ; 3a03 - 5b pop ax ; 3a04 - 58 ret ; 3a05 - c3 READ_FONT endp org 03a06h RESTORE_FONT proc near public ; 3a06 push cx ; 3a06 - 51 push si ; 3a07 - 56 push di ; 3a08 - 57 push es ; 3a09 - 06 mov cx, ds ; 3a0a - 8c d9 mov es, cx ; 3a0c - 8e c1 mov si, 004ah ; 3a0e - be 4a 00 mov di, 001eh ; 3a11 - bf 1e 00 mov cx, 0010h ; 3a14 - b9 10 00 cld ; 3a17 - fc rep movsw ; 3a18 - f3 a5 pop es ; 3a1a - 07 pop di ; 3a1b - 5f pop si ; 3a1c - 5e pop cx ; 3a1d - 59 ret ; 3a1e - c3 RESTORE_FONT endp db 000h ; 3a1f org 03a20h CHANGE_PLANE proc near public ; 3a20 jmp CHANGE_PLANE_ON ; 3a20 - eb 15 -> 3a37 CHANGE_PLANE_OFF: ; 3a22 push ax ; 3a22 - 50 mov ah, 20h ; 3a23 - b4 20 jmp CHANGE_PLANE_CM ; 3a25 - eb 13 -> 3a3a CHANGE_PLANE_0: ; 3a27 push ax ; 3a27 - 50 mov ax, 0f001h ; 3a28 - b8 01 f0 push dx ; 3a2b - 52 jmp CHANGE_PLANE_FRC ; 3a2c - eb 1f -> 3a4d GRAPHICS_OFF: ; 3a2e push ax ; 3a2e - 50 mov ah, 20h ; 3a2f - b4 20 mov al, ds:[08fh] ; 3a31 - a0 8f 00 push dx ; 3a34 - 52 jmp CHANGE_PLANE_FRC ; 3a35 - eb 16 -> 3a4d CHANGE_PLANE_ON: ; 3a37 push ax ; 3a37 - 50 mov ah, 0f0h ; 3a38 - b4 f0 CHANGE_PLANE_CM: ; 3a3a push dx ; 3a3a - 52 mov al, ds:[08fh] ; 3a3b - a0 8f 00 cmp byte ptr ds:[0bah], 3 ; 3a3e - 80 3e ba 00 03 jnz CHANGE_PLANE_FRC ; 3a43 - 75 08 -> 3a4d mov dl, 2 ; 3a45 - b2 02 cmp dl, al ; 3a47 - 3a d0 rcl al, 1 ; 3a49 - d0 d0 and al, 7 ; 3a4b - 24 07 CHANGE_PLANE_FRC: ; 3a4d mov ds:[08fh], al ; 3a4d - a2 8f 00 or al, ah ; 3a50 - 0a c4 mov dx, 01a0h ; 3a52 - ba a0 01 out dx, al ; 3a55 - ee pop dx ; 3a56 - 5a pop ax ; 3a57 - 58 ret ; 3a58 - c3 CHANGE_PLANE endp db 000h ; 3a59 org 03a5ah AUX_SVC proc near public ; 3a5a sti ; 3a5a - fb pusha ; 3a5b - 60 push ds ; 3a5c - 1e push es ; 3a5d - 06 mov di, 0 ; 3a5e - bf 00 00 mov ds, di ; 3a61 - 8e df mov es, word ptr ds:[0406h] ; 3a63 - 8e 06 06 04 mov di, 3a6eh ; 3a67 - bf 6e 3a nop ; 3a6a - 90 jmp SWITCH ; 3a6b - e9 b1 d2 -> 0d1f AUX_SVC endp org 03a6eh AUX_SVC_TBL_SIZE dw 00005h ; 3a6e org 03a70h AUX_SVC_TBL: ; 3a70 dw AUX_SVC_INIT ; 3a70 -> 3a7a dw AUX_SVC_SEND ; 3a72 -> 3a94 dw AUX_SVC_RECV ; 3a74 -> 3aae dw AUX_SVC_STAT ; 3a76 -> 3aff dw AUX_SVC_FLUSH ; 3a78 -> 3b24 org 03a7ah AUX_SVC_INIT proc near public ; 3a7a lds si, ds:[046ah] ; 3a7a - c5 36 6a 04 push ax ; 3a7e - 50 push dx ; 3a7f - 52 call AUX_FLUSH2 ; 3a80 - e8 06 02 -> 3c89 mov word ptr [bp + 012h], ax ; 3a83 - 89 46 12 pop dx ; 3a86 - 5a pop ax ; 3a87 - 58 call AUX_RESET ; 3a88 - e8 68 01 -> 3bf3 mov cx, 0 ; 3a8b - b9 00 00 AUX_SVC_INIT_LP: ; 3a8e loop AUX_SVC_INIT_LP ; 3a8e - e2 fe -> 3a8e call Q_INIT ; 3a90 - e8 98 d1 -> 0c2b ret ; 3a93 - c3 AUX_SVC_INIT endp org 03a94h AUX_SVC_SEND proc near public ; 3a94 lds si, ds:[046ah] ; 3a94 - c5 36 6a 04 call AUX_SEND ; 3a98 - e8 62 02 -> 3cfd mov ah, 0e0h ; 3a9b - b4 e0 jcxz AUX_SVC_SEND_1 ; 3a9d - e3 02 -> 3aa1 mov ah, 60h ; 3a9f - b4 60 AUX_SVC_SEND_1: ; 3aa1 test byte ptr ds:[si + 1], 1 ; 3aa1 - f6 44 01 01 jz AUX_SVC_SEND_2 ; 3aa5 - 74 03 -> 3aaa or ah, 1 ; 3aa7 - 80 cc 01 AUX_SVC_SEND_2: ; 3aaa mov byte ptr [bp + 013h], ah ; 3aaa - 88 66 13 ret ; 3aad - c3 AUX_SVC_SEND endp org 03aaeh AUX_SVC_RECV proc near public ; 3aae lds si, ds:[046ah] ; 3aae - c5 36 6a 04 AUX_SVC_RECV_1: ; 3ab2 test byte ptr ds:[si + 1], 1 ; 3ab2 - f6 44 01 01 jnz AUX_SVC_RECV_1 ; 3ab6 - 75 fa -> 3ab2 call Q_FETCH ; 3ab8 - e8 c8 d1 -> 0c83 mov byte ptr [bp + 012h], al ; 3abb - 88 46 12 mov al, ah ; 3abe - 8a c4 xor al, 080h ; 3ac0 - 34 80 call AUX_STATUS2 ; 3ac2 - e8 e9 01 -> 3cae and ah, 09eh ; 3ac5 - 80 e4 9e mov byte ptr [bp + 013h], ah ; 3ac8 - 88 66 13 AUX_RP_XON: ; 3acb mov bh, byte ptr es:[001h] ; 3acb - 26 8a 3e 01 00 test bh, 1 ; 3ad0 - f6 c7 01 jz AUX_RP_XON_X ; 3ad3 - 74 29 -> 3afe mov ax, word ptr ds:[si + 00ch] ; 3ad5 - 8b 44 0c cmp ax, word ptr es:[004h] ; 3ad8 - 26 3b 06 04 00 jnbe AUX_RP_XON_X ; 3add - 77 1f -> 3afe test bh, 4 ; 3adf - f6 c7 04 jz AUX_RP_XON_X ; 3ae2 - 74 1a -> 3afe test bh, 10h ; 3ae4 - f6 c7 10 jnz AUX_RP_XON_X ; 3ae7 - 75 15 -> 3afe mov byte ptr es:[002h], 11h ; 3ae9 - 26 c6 06 02 00 11 or bh, 10h ; 3aef - 80 cf 10 and bh, 0fbh ; 3af2 - 80 e7 fb mov byte ptr es:[001h], bh ; 3af5 - 26 88 3e 01 00 mov al, 27h ; 3afa - b0 27 out 12h, al ; 3afc - e6 12 AUX_RP_XON_X: ; 3afe ret ; 3afe - c3 AUX_SVC_RECV endp org 03affh AUX_SVC_STAT proc near public ; 3aff mov ax, ds ; 3aff - 8c d8 mov es, ax ; 3b01 - 8e c0 lds si, ds:[046ah] ; 3b03 - c5 36 6a 04 test byte ptr ds:[si + 1], 1 ; 3b07 - f6 44 01 01 jz AUX_SVC_STAT_1 ; 3b0b - 74 05 -> 3b12 AUX_SVC_STAT_0: ; 3b0d call AUX_STATUS_DEF ; 3b0d - e8 9c 01 -> 3cac jmp AUX_SVC_STAT_X ; 3b10 - eb 0e -> 3b20 AUX_SVC_STAT_1: ; 3b12 call Q_LOOK ; 3b12 - e8 a5 d1 -> 0cba mov es:[046fh], al ; 3b15 - 26 a2 6f 04 mov al, ah ; 3b19 - 8a c4 xor al, 080h ; 3b1b - 34 80 call AUX_STATUS2 ; 3b1d - e8 8e 01 -> 3cae AUX_SVC_STAT_X: ; 3b20 mov word ptr [bp + 012h], ax ; 3b20 - 89 46 12 ret ; 3b23 - c3 AUX_SVC_STAT endp org 03b24h AUX_SVC_FLUSH proc near public ; 3b24 lds si, ds:[046ah] ; 3b24 - c5 36 6a 04 call AUX_FLUSH2 ; 3b28 - e8 5e 01 -> 3c89 mov word ptr [bp + 012h], ax ; 3b2b - 89 46 12 ret ; 3b2e - c3 AUX_SVC_FLUSH endp org 03b2fh AUX_INT proc near public ; 3b2f sti ; 3b2f - fb pusha ; 3b30 - 60 push ds ; 3b31 - 1e push es ; 3b32 - 06 mov ax, 0 ; 3b33 - b8 00 00 mov ds, ax ; 3b36 - 8e d8 mov es, word ptr ds:[0406h] ; 3b38 - 8e 06 06 04 in al, 12h ; 3b3c - e4 12 mov ah, al ; 3b3e - 8a e0 mov bh, byte ptr es:[001h] ; 3b40 - 26 8a 3e 01 00 AUX_INT_S: ; 3b45 test ah, 2 ; 3b45 - f6 c4 02 jz _loc_014 ; 3b48 - 74 0c -> 3b56 call _sub_002 ; 3b4a - e8 21 00 -> 3b6e call ISSUE_EOI0 ; 3b4d - e8 b4 cf -> 0b04 call _sub_003 ; 3b50 - e8 73 00 -> 3bc6 jmp _loc_015 ; 3b53 - eb 13 -> 3b68 nop ; 3b55 - 90 _loc_014: ; 3b56 call _sub_003 ; 3b56 - e8 6d 00 -> 3bc6 call ISSUE_EOI0 ; 3b59 - e8 a8 cf -> 0b04 in al, 12h ; 3b5c - e4 12 mov ah, al ; 3b5e - 8a e0 test ah, 2 ; 3b60 - f6 c4 02 jz _loc_015 ; 3b63 - 74 03 -> 3b68 call _sub_002 ; 3b65 - e8 06 00 -> 3b6e _loc_015: ; 3b68 pop es ; 3b68 - 07 pop ds ; 3b69 - 1f popa ; 3b6a - 61 jmp _loc_132 ; 3b6b - e9 84 00 -> 3bf2 AUX_INT endp org 03b6eh _sub_002 proc near public ; 3b6e in al, 10h ; 3b6e - e4 10 lds si, ds:[046ah] ; 3b70 - c5 36 6a 04 test byte ptr ds:[si + 1], 4 ; 3b74 - f6 44 01 04 jz _loc_136 ; 3b78 - 74 03 -> 3b7d or ah, 10h ; 3b7a - 80 cc 10 _loc_136: ; 3b7d test bh, 2 ; 3b7d - f6 c7 02 jz _loc_137 ; 3b80 - 74 19 -> 3b9b test bh, 8 ; 3b82 - f6 c7 08 jz _loc_138 ; 3b85 - 74 06 -> 3b8d cmp al, 11h ; 3b87 - 3c 11 jz _loc_139 ; 3b89 - 74 0b -> 3b96 jmp _loc_137 ; 3b8b - eb 0e -> 3b9b _loc_138: ; 3b8d cmp al, 13h ; 3b8d - 3c 13 jnz _loc_137 ; 3b8f - 75 0a -> 3b9b or bh, 8 ; 3b91 - 80 cf 08 jmp _loc_144 ; 3b94 - eb 08 -> 3b9e _loc_139: ; 3b96 and bh, 0f7h ; 3b96 - 80 e7 f7 jmp _loc_144 ; 3b99 - eb 03 -> 3b9e _loc_137: ; 3b9b call Q_STORE ; 3b9b - e8 a8 d0 -> 0c46 _loc_144: ; 3b9e test bh, 1 ; 3b9e - f6 c7 01 jz _loc_145 ; 3ba1 - 74 1d -> 3bc0 mov ax, word ptr ds:[si + 00ch] ; 3ba3 - 8b 44 0c cmp ax, word ptr es:[006h] ; 3ba6 - 26 3b 06 06 00 jb _loc_145 ; 3bab - 72 13 -> 3bc0 test bh, 4 ; 3bad - f6 c7 04 jnz _loc_145 ; 3bb0 - 75 0e -> 3bc0 test bh, 10h ; 3bb2 - f6 c7 10 jnz _loc_145 ; 3bb5 - 75 09 -> 3bc0 mov byte ptr es:[002h], 13h ; 3bb7 - 26 c6 06 02 00 13 or bh, 14h ; 3bbd - 80 cf 14 _loc_145: ; 3bc0 mov byte ptr es:[001h], bh ; 3bc0 - 26 88 3e 01 00 ret ; 3bc5 - c3 _sub_002 endp org 03bc6h _sub_003 proc near public ; 3bc6 in al, 12h ; 3bc6 - e4 12 mov ah, al ; 3bc8 - 8a e0 test ah, 1 ; 3bca - f6 c4 01 jz _loc_133 ; 3bcd - 74 1c -> 3beb test bh, 10h ; 3bcf - f6 c7 10 jz _loc_134 ; 3bd2 - 74 06 -> 3bda mov al, es:[02h] ; 3bd4 - 26 a0 02 00 out 10h, al ; 3bd8 - e6 10 _loc_134: ; 3bda mov bl, 36h ; 3bda - b3 36 mov al, bl ; 3bdc - 8a c3 out 12h, al ; 3bde - e6 12 and bh, 0efh ; 3be0 - 80 e7 ef mov byte ptr es:[001h], bh ; 3be3 - 26 88 3e 01 00 jmp _loc_135 ; 3be8 - eb 07 -> 3bf1 nop ; 3bea - 90 _loc_133: ; 3beb mov bl, 37h ; 3beb - b3 37 mov al, bl ; 3bed - 8a c3 out 12h, al ; 3bef - e6 12 _loc_135: ; 3bf1 ret ; 3bf1 - c3 _loc_132: ; 3bf2 iret ; 3bf2 - cf _sub_003 endp org 03bf3h AUX_RESET proc near public ; 3bf3 mov es:[00h], al ; 3bf3 - 26 a2 00 00 mov cl, 42h ; 3bf7 - b1 42 test al, 1 ; 3bf9 - a8 01 jz AUX_RESET_0 ; 3bfb - 74 03 -> 3c00 or cl, 4 ; 3bfd - 80 c9 04 AUX_RESET_0: ; 3c00 test al, 2 ; 3c00 - a8 02 jz AUX_RESET_1 ; 3c02 - 74 03 -> 3c07 or cl, 8 ; 3c04 - 80 c9 08 AUX_RESET_1: ; 3c07 test al, 4 ; 3c07 - a8 04 jz AUX_RESET_2 ; 3c09 - 74 03 -> 3c0e or cl, 080h ; 3c0b - 80 c9 80 AUX_RESET_2: ; 3c0e test al, 8 ; 3c0e - a8 08 jz AUX_RESET_3 ; 3c10 - 74 03 -> 3c15 or cl, 10h ; 3c12 - 80 c9 10 AUX_RESET_3: ; 3c15 test al, 10h ; 3c15 - a8 10 jz AUX_RESET_4 ; 3c17 - 74 03 -> 3c1c or cl, 20h ; 3c19 - 80 c9 20 AUX_RESET_4: ; 3c1c and ax, 0e0h ; 3c1c - 25 e0 00 shr ax, 04h ; 3c1f - c1 e8 04 mov bx, 3d2ah ; 3c22 - bb 2a 3d nop ; 3c25 - 90 add bx, ax ; 3c26 - 03 d8 mov ax, word ptr cs:[bx] ; 3c28 - 2e 8b 07 mov bx, ax ; 3c2b - 8b d8 mov dx, 0046h ; 3c2d - ba 46 00 mov al, 76h ; 3c30 - b0 76 call OUT_DELAY ; 3c32 - e8 f0 00 -> 3d25 mov dx, 0042h ; 3c35 - ba 42 00 mov al, bl ; 3c38 - 8a c3 call OUT_DELAY ; 3c3a - e8 e8 00 -> 3d25 mov al, bh ; 3c3d - 8a c7 call OUT_DELAY ; 3c3f - e8 e3 00 -> 3d25 org 03c42h WEIRD_NOPS: B< db 090h, 090h, 090h, 090h, 090h, 090h, 0; 03c42 db 090h, 090h, 090h, 090h, 090h, 090h, 0; 03c4c db 090h, 090h, 090h, 090h, 090h, 090h, 0; 03c56 db 090h, 090h, 090h, 090h, 090h, 090h, 0; 03c60 mov dx, 0012h ; 3c6a - ba 12 00 mov al, 0 ; 3c6d - b0 00 call OUT_DELAY ; 3c6f - e8 b3 00 -> 3d25 call OUT_DELAY ; 3c72 - e8 b0 00 -> 3d25 call OUT_DELAY ; 3c75 - e8 ad 00 -> 3d25 mov al, 40h ; 3c78 - b0 40 call OUT_DELAY ; 3c7a - e8 a8 00 -> 3d25 mov al, cl ; 3c7d - 8a c1 call OUT_DELAY ; 3c7f - e8 a3 00 -> 3d25 mov dx, 0012h ; 3c82 - ba 12 00 mov al, 36h ; 3c85 - b0 36 out dx, al ; 3c87 - ee ret ; 3c88 - c3 AUX_RESET endp org 03c89h AUX_FLUSH2 proc near public ; 3c89 call Q_INIT ; 3c89 - e8 9f cf -> 0c2b and dh, 3 ; 3c8c - 80 e6 03 mov byte ptr es:[001h], dh ; 3c8f - 26 88 36 01 00 mov ax, word ptr ds:[si + 6] ; 3c94 - 8b 44 06 sub ax, word ptr ds:[si + 4] ; 3c97 - 2b 44 04 shr ax, 1 ; 3c9a - d1 e8 mov bx, ax ; 3c9c - 8b d8 shr ax, 02h ; 3c9e - c1 e8 02 mov es:[04h], ax ; 3ca1 - 26 a3 04 00 sub bx, ax ; 3ca5 - 2b d8 mov word ptr es:[006h], bx ; 3ca7 - 26 89 1e 06 00 AUX_STATUS_DEF: ; 3cac mov al, 5 ; 3cac - b0 05 AUX_FLUSH2 endp org 03caeh AUX_STATUS2 proc near public ; 3cae mov ah, 0 ; 3cae - b4 00 test al, 1 ; 3cb0 - a8 01 jz AUX_STATUS_0 ; 3cb2 - 74 03 -> 3cb7 or ah, 20h ; 3cb4 - 80 cc 20 AUX_STATUS_0: ; 3cb7 test al, 2 ; 3cb7 - a8 02 jz AUX_STATUS_1 ; 3cb9 - 74 03 -> 3cbe or ah, 1 ; 3cbb - 80 cc 01 AUX_STATUS_1: ; 3cbe test al, 4 ; 3cbe - a8 04 jz AUX_STATUS_2 ; 3cc0 - 74 03 -> 3cc5 or ah, 40h ; 3cc2 - 80 cc 40 AUX_STATUS_2: ; 3cc5 test al, 8 ; 3cc5 - a8 08 jz AUX_STATUS_3 ; 3cc7 - 74 03 -> 3ccc or ah, 4 ; 3cc9 - 80 cc 04 AUX_STATUS_3: ; 3ccc test al, 10h ; 3ccc - a8 10 jz AUX_STATUS_4 ; 3cce - 74 03 -> 3cd3 or ah, 2 ; 3cd0 - 80 cc 02 AUX_STATUS_4: ; 3cd3 test al, 20h ; 3cd3 - a8 20 jz AUX_STATUS_5 ; 3cd5 - 74 03 -> 3cda or ah, 8 ; 3cd7 - 80 cc 08 AUX_STATUS_5: ; 3cda test al, 40h ; 3cda - a8 40 jz AUX_STATUS_6 ; 3cdc - 74 03 -> 3ce1 or ah, 10h ; 3cde - 80 cc 10 AUX_STATUS_6: ; 3ce1 test al, 080h ; 3ce1 - a8 80 jz AUX_STATUS_7 ; 3ce3 - 74 03 -> 3ce8 or ah, 080h ; 3ce5 - 80 cc 80 AUX_STATUS_7: ; 3ce8 push bx ; 3ce8 - 53 mov bx, ax ; 3ce9 - 8b d8 in al, 00h ; 3ceb - e4 00 shl al, 06h ; 3ced - c0 e0 06 and al, 0c0h ; 3cf0 - 24 c0 xor al, 0d0h ; 3cf2 - 34 d0 test bl, 080h ; 3cf4 - f6 c3 80 jz _loc_013 ; 3cf7 - 74 02 -> 3cfb or al, 20h ; 3cf9 - 0c 20 _loc_013: ; 3cfb pop bx ; 3cfb - 5b ret ; 3cfc - c3 AUX_STATUS2 endp AUX_SEND proc near public ; 3cfd test byte ptr es:[001h], 8 ; 3cfd - 26 f6 06 01 00 08 jnz AUX_SEND ; 3d03 - 75 f8 -> 3cfd mov cx, word ptr es:[008h] ; 3d05 - 26 8b 0e 08 00 AUX_SEND_1: ; 3d0a test byte ptr es:[001h], 10h ; 3d0a - 26 f6 06 01 00 10 jz AUX_SEND_2 ; 3d10 - 74 04 -> 3d16 loop AUX_SEND_1 ; 3d12 - e2 f6 -> 3d0a jmp AUX_SEND_X ; 3d14 - eb 0e -> 3d24 AUX_SEND_2: ; 3d16 mov es:[02h], al ; 3d16 - 26 a2 02 00 or byte ptr es:[001h], 10h ; 3d1a - 26 80 0e 01 00 10 mov al, 27h ; 3d20 - b0 27 out 12h, al ; 3d22 - e6 12 AUX_SEND_X: ; 3d24 ret ; 3d24 - c3 AUX_SEND endp org 03d25h OUT_DELAY proc near public ; 3d25 out dx, al ; 3d25 - ee nop ; 3d26 - 90 nop ; 3d27 - 90 nop ; 3d28 - 90 ret ; 3d29 - c3 OUT_DELAY endp org 03d2ah BAUD_RATE_TBL: *= dw 00470h ; 03d2a dw 00341h ; 03d2c dw 001a0h ; 03d2e dw 000d0h ; 03d30 dw 00068h ; 03d32 dw 00034h ; 03d34 dw 0001ah ; 03d36 dw 0000dh ; 03d38 org 03d3ah PRN_SVC proc near public ; 3d3a sti ; 3d3a - fb pusha ; 3d3b - 60 push ds ; 3d3c - 1e push es ; 3d3d - 06 mov di, 0 ; 3d3e - bf 00 00 mov es, di ; 3d41 - 8e c7 mov ds, word ptr es:[0408h] ; 3d43 - 26 8e 1e 08 04 mov di, 3d50h ; 3d48 - bf 50 3d nop ; 3d4b - 90 jmp SWITCH ; 3d4c - e9 d0 cf -> 0d1f nop ; 3d4f - 90 PRN_SVC endp org 03d50h PRN_SVC_TBL_SIZE dw 00003h ; 3d50 org 03d52h PRN_SVC_TBL: ; 3d52 dw PRN_SVC_WRITE ; 3d52 -> 3d58 dw PRN_SVC_RESET ; 3d54 -> 3da2 dw PRN_SVC_STATUS ; 3d56 -> 3da6 PRN_SVC_WRITE proc near public ; 3d58 mov bl, byte ptr es:[04dbh] ; 3d58 - 26 8a 1e db 04 cmp al, 0ah ; 3d5d - 3c 0a jnz PRN_SVC_WRITE_0 ; 3d5f - 75 1a -> 3d7b cmp byte ptr es:[048ch], 0dh ; 3d61 - 26 80 3e 8c 04 0d jnz PRN_SVC_WRITE_0 ; 3d67 - 75 12 -> 3d7b cmp byte ptr es:[04dah], 0 ; 3d69 - 26 80 3e da 04 00 jz PRN_SVC_WRITE_0 ; 3d6f - 74 0a -> 3d7b mov es:[048ch], al ; 3d71 - 26 a2 8c 04 mov al, es:[048dh] ; 3d75 - 26 a0 8d 04 jmp PRN_SVC_STATUS_2 ; 3d79 - eb 32 -> 3dad PRN_SVC_WRITE_0: ; 3d7b mov ah, al ; 3d7b - 8a e0 mov cx, 0 ; 3d7d - b9 00 00 PRN_SVC_WRITE_1: ; 3d80 call GET_STAT ; 3d80 - e8 32 00 -> 3db5 test al, 080h ; 3d83 - a8 80 jz PRN_SVC_WRITE_2 ; 3d85 - 74 0e -> 3d95 test al, 20h ; 3d87 - a8 20 jz PRN_SVC_WRITE_X ; 3d89 - 74 15 -> 3da0 loop PRN_SVC_WRITE_1 ; 3d8b - e2 f3 -> 3d80 dec bl ; 3d8d - fe cb jnz PRN_SVC_WRITE_1 ; 3d8f - 75 ef -> 3d80 or al, 1 ; 3d91 - 0c 01 jmp PRN_SVC_WRITE_X ; 3d93 - eb 0b -> 3da0 PRN_SVC_WRITE_2: ; 3d95 xchg ah, al ; 3d95 - 86 c4 mov es:[048ch], al ; 3d97 - 26 a2 8c 04 call _sub_004 ; 3d9b - e8 53 00 -> 3df1 xchg ah, al ; 3d9e - 86 c4 PRN_SVC_WRITE_X: ; 3da0 jmp PRN_SVC_STATUS_1 ; 3da0 - eb 07 -> 3da9 PRN_SVC_WRITE endp org 03da2h PRN_SVC_RESET proc near public ; 3da2 mov al, 0 ; 3da2 - b0 00 jmp PRN_SVC_WRITE ; 3da4 - eb b2 -> 3d58 PRN_SVC_RESET endp org 03da6h PRN_SVC_STATUS proc near public ; 3da6 call GET_STAT ; 3da6 - e8 0c 00 -> 3db5 PRN_SVC_STATUS_1: ; 3da9 mov es:[048dh], al ; 3da9 - 26 a2 8d 04 PRN_SVC_STATUS_2: ; 3dad call XLT_STAT ; 3dad - e8 14 00 -> 3dc4 mov byte ptr [bp + 013h], ah ; 3db0 - 88 66 13 ret ; 3db3 - c3 PRN_SVC_STATUS endp org 03db4h PRN_INT proc near public ; 3db4 iret ; 3db4 - cf PRN_INT endp org 03db5h GET_STAT proc near public ; 3db5 mov al, 1 ; 3db5 - b0 01 cli ; 3db7 - fa out 54h, al ; 3db8 - e6 54 nop ; 3dba - 90 nop ; 3dbb - 90 in al, 52h ; 3dbc - e4 52 sti ; 3dbe - fb and al, 0f8h ; 3dbf - 24 f8 or al, 20h ; 3dc1 - 0c 20 ret ; 3dc3 - c3 GET_STAT endp org 03dc4h XLT_STAT proc near public ; 3dc4 xor ah, ah ; 3dc4 - 32 e4 test al, 1 ; 3dc6 - a8 01 jz _loc_016 ; 3dc8 - 74 03 -> 3dcd or ah, 1 ; 3dca - 80 cc 01 _loc_016: ; 3dcd test al, 8 ; 3dcd - a8 08 jnz _loc_017 ; 3dcf - 75 03 -> 3dd4 or ah, 40h ; 3dd1 - 80 cc 40 _loc_017: ; 3dd4 test al, 10h ; 3dd4 - a8 10 jnz _loc_018 ; 3dd6 - 75 03 -> 3ddb or ah, 8 ; 3dd8 - 80 cc 08 _loc_018: ; 3ddb test al, 20h ; 3ddb - a8 20 jz _loc_019 ; 3ddd - 74 03 -> 3de2 or ah, 10h ; 3ddf - 80 cc 10 _loc_019: ; 3de2 test al, 40h ; 3de2 - a8 40 jz _loc_020 ; 3de4 - 74 03 -> 3de9 or ah, 20h ; 3de6 - 80 cc 20 _loc_020: ; 3de9 test al, 080h ; 3de9 - a8 80 jz _loc_021 ; 3deb - 74 03 -> 3df0 or ah, 080h ; 3ded - 80 cc 80 _loc_021: ; 3df0 ret ; 3df0 - c3 XLT_STAT endp org 03df1h _sub_004 proc near public ; 3df1 mov cx, 0010h ; 3df1 - b9 10 00 _loc_131: ; 3df4 loop _loc_131 ; 3df4 - e2 fe -> 3df4 out 50h, al ; 3df6 - e6 50 ret ; 3df8 - c3 _sub_004 endp db 000h ; 3df9 org 03dfah CLOCK_SVC proc near public ; 3dfa sti ; 3dfa - fb pusha ; 3dfb - 60 push ds ; 3dfc - 1e push es ; 3dfd - 06 mov di, 0 ; 3dfe - bf 00 00 mov ds, di ; 3e01 - 8e df mov di, 3e0ah ; 3e03 - bf 0a 3e nop ; 3e06 - 90 jmp SWITCH ; 3e07 - e9 15 cf -> 0d1f CLOCK_SVC endp org 03e0ah CLOCK_SVC_TBL_SIZE db 006h ; 3e0a db 000h ; 3e0b org 03e0ch CLOCK_SVC_TBL: ; 3e0c dw TIME_SVC_READ ; 3e0c -> 3e18 dw TIME_SVC_WRITE ; 3e0e -> 3e36 dw CLOCK_SVC_READ ; 3e10 -> 3e58 dw CLOCK_SVC_WRITE ; 3e12 -> 3e73 dw START_EGG_TIMER ; 3e14 -> 3e99 dw STOP_EGG_TIMER ; 3e16 -> 3ec8 org 03e18h TIME_SVC_READ proc near public ; 3e18 mov si, 04c0h ; 3e18 - be c0 04 call SET_CRIT ; 3e1b - e8 94 cc -> 0ab2 call CLOCK_LOAD_TIME ; 3e1e - e8 59 01 -> 3f7a xor al, al ; 3e21 - 32 c0 call CLOCK_ROLLOVER ; 3e23 - e8 45 01 -> 3f6b call CLR_CRIT ; 3e26 - e8 98 cc -> 0ac1 mov byte ptr [bp + 012h], al ; 3e29 - 88 46 12 call CLOCK_TO_TIME ; 3e2c - e8 52 01 -> 3f81 mov word ptr [bp + 010h], cx ; 3e2f - 89 4e 10 mov word ptr [bp + 00eh], dx ; 3e32 - 89 56 0e ret ; 3e35 - c3 TIME_SVC_READ endp org 03e36h TIME_SVC_WRITE proc near public ; 3e36 cmp cx, 1ah ; 3e36 - 83 f9 1a jb TIME_SVC_WRITE_1 ; 3e39 - 72 08 -> 3e43 jnbe _loc_012 ; 3e3b - 77 1a -> 3e57 cmp dx, 5e00h ; 3e3d - 81 fa 00 5e jnbe _loc_012 ; 3e41 - 77 14 -> 3e57 TIME_SVC_WRITE_1: ; 3e43 call TIME_TO_CLOCK ; 3e43 - e8 76 01 -> 3fbc mov si, 04c0h ; 3e46 - be c0 04 call SET_CRIT ; 3e49 - e8 66 cc -> 0ab2 call CLOCK_STORE_TIME ; 3e4c - e8 22 01 -> 3f71 xor al, al ; 3e4f - 32 c0 call CLOCK_ROLLOVER ; 3e51 - e8 17 01 -> 3f6b call CLR_CRIT ; 3e54 - e8 6a cc -> 0ac1 _loc_012: ; 3e57 ret ; 3e57 - c3 TIME_SVC_WRITE endp org 03e58h CLOCK_SVC_READ proc near public ; 3e58 mov si, 04c0h ; 3e58 - be c0 04 call SET_CRIT ; 3e5b - e8 54 cc -> 0ab2 call CLOCK_LOAD ; 3e5e - e8 17 01 -> 3f78 xor al, al ; 3e61 - 32 c0 call CLOCK_ROLLOVER ; 3e63 - e8 05 01 -> 3f6b call CLR_CRIT ; 3e66 - e8 58 cc -> 0ac1 mov word ptr [bp + 00ch], bx ; 3e69 - 89 5e 0c mov word ptr [bp + 010h], cx ; 3e6c - 89 4e 10 mov word ptr [bp + 00eh], dx ; 3e6f - 89 56 0e ret ; 3e72 - c3 CLOCK_SVC_READ endp org 03e73h CLOCK_SVC_WRITE proc near public ; 3e73 cmp ch, 18h ; 3e73 - 80 fd 18 jnb _loc_011 ; 3e76 - 73 20 -> 3e98 cmp cl, 3ch ; 3e78 - 80 f9 3c jnb _loc_011 ; 3e7b - 73 1b -> 3e98 cmp dh, 3ch ; 3e7d - 80 fe 3c jnb _loc_011 ; 3e80 - 73 16 -> 3e98 cmp dl, 64h ; 3e82 - 80 fa 64 jnb _loc_011 ; 3e85 - 73 11 -> 3e98 mov si, 04c0h ; 3e87 - be c0 04 call SET_CRIT ; 3e8a - e8 25 cc -> 0ab2 call CLOCK_STORE ; 3e8d - e8 df 00 -> 3f6f xor al, al ; 3e90 - 32 c0 call CLOCK_ROLLOVER ; 3e92 - e8 d6 00 -> 3f6b call CLR_CRIT ; 3e95 - e8 29 cc -> 0ac1 _loc_011: ; 3e98 ret ; 3e98 - c3 CLOCK_SVC_WRITE endp org 03e99h START_EGG_TIMER proc near public ; 3e99 mov ds, word ptr ds:[040ah] ; 3e99 - 8e 1e 0a 04 mov di, 2 ; 3e9d - bf 02 00 mov al, 5 ; 3ea0 - b0 05 mov ah, al ; 3ea2 - 8a e0 call SET_CRIT ; 3ea4 - e8 0b cc -> 0ab2 START_EGG_TIMER_1: ; 3ea7 cmp word ptr ds:[di], 0 ; 3ea7 - 83 3d 00 jz START_EGG_TIMER_2 ; 3eaa - 74 0b -> 3eb7 add di, 6 ; 3eac - 83 c7 06 dec al ; 3eaf - fe c8 jnz START_EGG_TIMER_1 ; 3eb1 - 75 f4 -> 3ea7 mov ah, 0ffh ; 3eb3 - b4 ff jmp START_EGG_TIMER_X ; 3eb5 - eb 0a -> 3ec1 START_EGG_TIMER_2: ; 3eb7 mov word ptr ds:[di + 4], es ; 3eb7 - 8c 45 04 mov word ptr ds:[di + 2], bx ; 3eba - 89 5d 02 mov word ptr ds:[di], cx ; 3ebd - 89 0d sub ah, al ; 3ebf - 2a e0 START_EGG_TIMER_X: ; 3ec1 call CLR_CRIT ; 3ec1 - e8 fd cb -> 0ac1 mov byte ptr [bp + 012h], ah ; 3ec4 - 88 66 12 ret ; 3ec7 - c3 START_EGG_TIMER endp org 03ec8h STOP_EGG_TIMER proc near public ; 3ec8 mov ds, word ptr ds:[040ah] ; 3ec8 - 8e 1e 0a 04 mov di, 2 ; 3ecc - bf 02 00 cmp al, 5 ; 3ecf - 3c 05 jnb STOP_EGG_TIMER_X ; 3ed1 - 73 0f -> 3ee2 mov cl, al ; 3ed3 - 8a c8 mov ch, 0 ; 3ed5 - b5 00 jcxz STOP_EGG_TIMER_2 ; 3ed7 - e3 05 -> 3ede STOP_EGG_TIMER_1: ; 3ed9 add di, 6 ; 3ed9 - 83 c7 06 loop STOP_EGG_TIMER_1 ; 3edc - e2 fb -> 3ed9 STOP_EGG_TIMER_2: ; 3ede mov word ptr ds:[di], 0 ; 3ede - c7 05 00 00 STOP_EGG_TIMER_X: ; 3ee2 ret ; 3ee2 - c3 STOP_EGG_TIMER endp org 03ee3h CLOCK_INT proc near public ; 3ee3 sti ; 3ee3 - fb pusha ; 3ee4 - 60 push ds ; 3ee5 - 1e push es ; 3ee6 - 06 mov ax, 0 ; 3ee7 - b8 00 00 mov ds, ax ; 3eea - 8e d8 mov es, ax ; 3eec - 8e c0 cld ; 3eee - fc mov si, 04c0h ; 3eef - be c0 04 call CLOCK_LOAD ; 3ef2 - e8 83 00 -> 3f78 inc dl ; 3ef5 - fe c2 cmp dl, 64h ; 3ef7 - 80 fa 64 jb CLOCK_INT_1 ; 3efa - 72 23 -> 3f1f mov dl, 0 ; 3efc - b2 00 inc dh ; 3efe - fe c6 cmp dh, 3ch ; 3f00 - 80 fe 3c jb CLOCK_INT_1 ; 3f03 - 72 1a -> 3f1f mov dh, 0 ; 3f05 - b6 00 inc cl ; 3f07 - fe c1 cmp cl, 3ch ; 3f09 - 80 f9 3c jb CLOCK_INT_1 ; 3f0c - 72 11 -> 3f1f mov cl, 0 ; 3f0e - b1 00 inc ch ; 3f10 - fe c5 cmp ch, 18h ; 3f12 - 80 fd 18 jb CLOCK_INT_1 ; 3f15 - 72 08 -> 3f1f mov ch, 0 ; 3f17 - b5 00 inc bx ; 3f19 - 43 mov al, 0ffh ; 3f1a - b0 ff call CLOCK_ROLLOVER ; 3f1c - e8 4c 00 -> 3f6b CLOCK_INT_1: ; 3f1f call CLOCK_STORE ; 3f1f - e8 4d 00 -> 3f6f mov ds, word ptr ds:[040ah] ; 3f22 - 8e 1e 0a 04 mov di, word ptr ds:[000h] ; 3f26 - 8b 3e 00 00 mov cx, word ptr ds:[di] ; 3f2a - 8b 0d jcxz CLOCK_INT_3 ; 3f2c - e3 1c -> 3f4a dec cx ; 3f2e - 49 jnz CLOCK_INT_2 ; 3f2f - 75 17 -> 3f48 push es ; 3f31 - 06 push si ; 3f32 - 56 mov bx, word ptr ds:[di + 2] ; 3f33 - 8b 5d 02 mov es, word ptr ds:[di + 4] ; 3f36 - 8e 45 04 push ds ; 3f39 - 1e push di ; 3f3a - 57 callf dword ptr ds:[di + 2] ; 3f3b - ff 5d 02 pop di ; 3f3e - 5f pop ds ; 3f3f - 1f mov word ptr ds:[di + 4], es ; 3f40 - 8c 45 04 mov word ptr ds:[di + 2], bx ; 3f43 - 89 5d 02 pop si ; 3f46 - 5e pop es ; 3f47 - 07 CLOCK_INT_2: ; 3f48 mov word ptr ds:[di], cx ; 3f48 - 89 0d CLOCK_INT_3: ; 3f4a add di, 6 ; 3f4a - 83 c7 06 mov word ptr ds:[000h], di ; 3f4d - 89 3e 00 00 dec byte ptr es:[si + 6] ; 3f51 - 26 fe 4c 06 jnz CLOCK_INT_X ; 3f55 - 75 0d -> 3f64 mov byte ptr es:[si + 6], 5 ; 3f57 - 26 c6 44 06 05 mov word ptr ds:[000h], 2 ; 3f5c - c7 06 00 00 02 00 int 1ch ; 3f62 - cd 1c CLOCK_INT_X: ; 3f64 call ISSUE_EOI ; 3f64 - e8 b5 cb -> 0b1c pop es ; 3f67 - 07 pop ds ; 3f68 - 1f popa ; 3f69 - 61 iret ; 3f6a - cf CLOCK_INT endp org 03f6bh CLOCK_ROLLOVER proc near public ; 3f6b xchg ds:[si + 7], al ; 3f6b - 86 44 07 ret ; 3f6e - c3 CLOCK_ROLLOVER endp org 03f6fh CLOCK_STORE proc near public ; 3f6f mov word ptr ds:[si], bx ; 3f6f - 89 1c CLOCK_STORE_TIME: ; 3f71 mov word ptr ds:[si + 2], cx ; 3f71 - 89 4c 02 mov word ptr ds:[si + 4], dx ; 3f74 - 89 54 04 ret ; 3f77 - c3 CLOCK_STORE endp org 03f78h CLOCK_LOAD proc near public ; 3f78 mov bx, word ptr ds:[si] ; 3f78 - 8b 1c CLOCK_LOAD_TIME: ; 3f7a mov cx, word ptr ds:[si + 2] ; 3f7a - 8b 4c 02 mov dx, word ptr ds:[si + 4] ; 3f7d - 8b 54 04 ret ; 3f80 - c3 CLOCK_LOAD endp org 03f81h CLOCK_TO_TIME proc near public ; 3f81 mov bx, dx ; 3f81 - 8b da mov al, 3ch ; 3f83 - b0 3c mul ch ; 3f85 - f6 e5 mov ch, 0 ; 3f87 - b5 00 add ax, cx ; 3f89 - 03 c1 mov cl, 3ch ; 3f8b - b1 3c mul cx ; 3f8d - f7 e1 mov cl, bh ; 3f8f - 8a cf add ax, cx ; 3f91 - 03 c1 adc dx, 0 ; 3f93 - 83 d2 00 push bx ; 3f96 - 53 mov cl, 14h ; 3f97 - b1 14 push dx ; 3f99 - 52 mul cx ; 3f9a - f7 e1 xchg ax, cx ; 3f9c - 91 mov bx, dx ; 3f9d - 8b da pop dx ; 3f9f - 5a mul dx ; 3fa0 - f7 e2 add ax, bx ; 3fa2 - 03 c3 adc dx, 0 ; 3fa4 - 83 d2 00 pop bx ; 3fa7 - 5b mov dx, cx ; 3fa8 - 8b d1 mov cx, ax ; 3faa - 8b c8 mov ah, 0 ; 3fac - b4 00 mov al, bl ; 3fae - 8a c3 mov bl, 5 ; 3fb0 - b3 05 div bl ; 3fb2 - f6 f3 mov ah, 0 ; 3fb4 - b4 00 add dx, ax ; 3fb6 - 03 d0 adc cx, 0 ; 3fb8 - 83 d1 00 ret ; 3fbb - c3 CLOCK_TO_TIME endp org 03fbch TIME_TO_CLOCK proc near public ; 3fbc mov ax, dx ; 3fbc - 8b c2 mov dx, cx ; 3fbe - 8b d1 mov bx, 04b0h ; 3fc0 - bb b0 04 div bx ; 3fc3 - f7 f3 mov bl, 3ch ; 3fc5 - b3 3c div bl ; 3fc7 - f6 f3 mov ch, al ; 3fc9 - 8a e8 mov cl, ah ; 3fcb - 8a cc mov ax, dx ; 3fcd - 8b c2 mov bl, 14h ; 3fcf - b3 14 div bl ; 3fd1 - f6 f3 mov dh, al ; 3fd3 - 8a f0 mov al, ah ; 3fd5 - 8a c4 mov bl, 5 ; 3fd7 - b3 05 mul bl ; 3fd9 - f6 e3 mov dl, al ; 3fdb - 8a d0 ret ; 3fdd - c3 TIME_TO_CLOCK endp org 03fdeh FDISK_IO proc near public ; 3fde sti ; 3fde - fb push ds ; 3fdf - 1e push es ; 3fe0 - 06 push bx ; 3fe1 - 53 push cx ; 3fe2 - 51 push ds ; 3fe3 - 1e push si ; 3fe4 - 56 push di ; 3fe5 - 57 push bp ; 3fe6 - 55 push dx ; 3fe7 - 52 mov bp, sp ; 3fe8 - 8b ec mov si, 0 ; 3fea - be 00 00 mov ds, si ; 3fed - 8e de mov ds, word ptr ds:[040ch] ; 3fef - 8e 1e 0c 04 call J1 ; 3ff3 - e8 14 00 -> 400a mov ah, byte ptr ds:[002h] ; 3ff6 - 8a 26 02 00 cmp ah, 1 ; 3ffa - 80 fc 01 cmc ; 3ffd - f5 pop dx ; 3ffe - 5a pop bp ; 3fff - 5d pop di ; 4000 - 5f pop si ; 4001 - 5e pop ds ; 4002 - 1f pop cx ; 4003 - 59 pop bx ; 4004 - 5b pop es ; 4005 - 07 pop ds ; 4006 - 1f retf 2h ; 4007 - ca 02 00 FDISK_IO endp org 0400ah J1 proc near public ; 400a mov dh, al ; 400a - 8a f0 or ah, ah ; 400c - 0a e4 jz DISK_RESET ; 400e - 74 41 -> 4051 cmp ah, 1 ; 4010 - 80 fc 01 jz DISK_STATUS ; 4013 - 74 38 -> 404d mov byte ptr ds:[002h], 0 ; 4015 - c6 06 02 00 00 cmp dl, 2 ; 401a - 80 fa 02 jnb J3 ; 401d - 73 28 -> 4047 cmp ah, 2 ; 401f - 80 fc 02 jnz J3a ; 4022 - 75 03 -> 4027 jmp FDISK_READ ; 4024 - eb 70 -> 4096 nop ; 4026 - 90 J3a: ; 4027 cmp ah, 3 ; 4027 - 80 fc 03 jnz J3b ; 402a - 75 03 -> 402f jmp FDISK_WRITE ; 402c - e9 8b 00 -> 40ba J3b: ; 402f cmp ah, 4 ; 402f - 80 fc 04 jnz J3c ; 4032 - 75 03 -> 4037 jmp FDISK_READ ; 4034 - eb 60 -> 4096 nop ; 4036 - 90 J3c: ; 4037 cmp ah, 5 ; 4037 - 80 fc 05 jnz J3d ; 403a - 75 03 -> 403f jmp FDISK_FORMAT ; 403c - e9 a6 00 -> 40e5 J3d: ; 403f cmp ah, 6 ; 403f - 80 fc 06 jnz J3 ; 4042 - 75 03 -> 4047 jmp _loc_022 ; 4044 - e9 c9 00 -> 4110 J3: ; 4047 mov byte ptr ds:[002h], 1 ; 4047 - c6 06 02 00 01 ret ; 404c - c3 J1 endp DISK_STATUS proc near public ; 404d mov al, ds:[02h] ; 404d - a0 02 00 ret ; 4050 - c3 DISK_STATUS endp DISK_RESET proc near public ; 4051 mov byte ptr ds:[002h], 0 ; 4051 - c6 06 02 00 00 mov byte ptr ds:[000h], 0 ; 4056 - c6 06 00 00 00 mov ah, 0dfh ; 405b - b4 df mov al, 0 ; 405d - b0 00 call OUT_VD_SPKR ; 405f - e8 a6 cb -> 0c08 mov cx, 0014h ; 4062 - b9 14 00 rwait: ; 4065 loop rwait ; 4065 - e2 fe -> 4065 mov ah, 0dfh ; 4067 - b4 df mov al, 20h ; 4069 - b0 20 call OUT_VD_SPKR ; 406b - e8 9a cb -> 0c08 mov al, 4 ; 406e - b0 04 roloop: ; 4070 mov cx, 0 ; 4070 - b9 00 00 riloop: ; 4073 loop riloop ; 4073 - e2 fe -> 4073 dec al ; 4075 - fe c8 jnz roloop ; 4077 - 75 f7 -> 4070 DISK_RESET endp org 04079h j6 proc near public ; 4079 cli ; 4079 - fa mov ah, 3 ; 407a - b4 03 call FDC_OUTPUT ; 407c - e8 74 02 -> 42f3 jb j6a ; 407f - 72 0e -> 408f mov bl, 0 ; 4081 - b3 00 call parm_output ; 4083 - e8 66 02 -> 42ec jb j6a ; 4086 - 72 07 -> 408f mov bl, 1 ; 4088 - b3 01 call parm_output ; 408a - e8 5f 02 -> 42ec jnb j6b ; 408d - 73 05 -> 4094 j6a: ; 408f mov byte ptr ds:[002h], 20h ; 408f - c6 06 02 00 20 j6b: ; 4094 sti ; 4094 - fb ret ; 4095 - c3 j6 endp FDISK_READ proc near public ; 4096 push ax ; 4096 - 50 call media_check ; 4097 - e8 d8 01 -> 4272 cmp al, 1 ; 409a - 3c 01 pop ax ; 409c - 58 jz fdr1 ; 409d - 74 05 -> 40a4 call sense_media ; 409f - e8 ef 01 -> 4291 jnz fdr2 ; 40a2 - 75 15 -> 40b9 fdr1: ; 40a4 mov si, 4 ; 40a4 - be 04 00 mov word ptr ds:[si + 00ch], es ; 40a7 - 8c 44 0c mov word ptr ds:[si + 00ah], bx ; 40aa - 89 5c 0a call DMA_CONT ; 40ad - e8 f9 02 -> 43a9 mov al, 0 ; 40b0 - b0 00 jb fdr2 ; 40b2 - 72 05 -> 40b9 mov ah, 66h ; 40b4 - b4 66 call FDISK_OP ; 40b6 - e8 6a 00 -> 4123 fdr2: ; 40b9 ret ; 40b9 - c3 FDISK_READ endp FDISK_WRITE proc near public ; 40ba push ax ; 40ba - 50 call media_check ; 40bb - e8 b4 01 -> 4272 cmp al, 1 ; 40be - 3c 01 pop ax ; 40c0 - 58 jz fdw1 ; 40c1 - 74 05 -> 40c8 call sense_media ; 40c3 - e8 cb 01 -> 4291 jnz fdw2 ; 40c6 - 75 1c -> 40e4 fdw1: ; 40c8 mov si, 0016h ; 40c8 - be 16 00 mov word ptr ds:[si + 8], es ; 40cb - 8c 44 08 mov word ptr ds:[si + 6], bx ; 40ce - 89 5c 06 call DMA_CONT ; 40d1 - e8 d5 02 -> 43a9 mov al, 0 ; 40d4 - b0 00 jb fdw2 ; 40d6 - 72 0c -> 40e4 mov ah, 45h ; 40d8 - b4 45 call FDISK_OP ; 40da - e8 46 00 -> 4123 push cx ; 40dd - 51 mov cx, 0578h ; 40de - b9 78 05 W_TRIM: ; 40e1 loop W_TRIM ; 40e1 - e2 fe -> 40e1 pop cx ; 40e3 - 59 fdw2: ; 40e4 ret ; 40e4 - c3 FDISK_WRITE endp FDISK_FORMAT proc near public ; 40e5 call get_bpb_ptr ; 40e5 - e8 9d 01 -> 4285 mov byte ptr ds:[si + 01eh], 0 ; 40e8 - c6 44 1e 00 mov si, 0028h ; 40ec - be 28 00 mov word ptr ds:[si + 8], es ; 40ef - 8c 44 08 mov word ptr ds:[si + 6], bx ; 40f2 - 89 5c 06 mov ah, 0 ; 40f5 - b4 00 mov al, dh ; 40f7 - 8a c6 shl ax, 02h ; 40f9 - c1 e0 02 call DMA_FTMT ; 40fc - e8 bf 02 -> 43be mov al, 0 ; 40ff - b0 00 jb fdf1 ; 4101 - 72 0c -> 410f mov ah, 4dh ; 4103 - b4 4d call FDISK_OP ; 4105 - e8 1b 00 -> 4123 push cx ; 4108 - 51 mov cx, 0578h ; 4109 - b9 78 05 F_TRIM: ; 410c loop F_TRIM ; 410c - e2 fe -> 410c pop cx ; 410e - 59 fdf1: ; 410f ret ; 410f - c3 _loc_022: ; 4110 call get_bpb_ptr ; 4110 - e8 72 01 -> 4285 mov ah, byte ptr ds:[si + 01fh] ; 4113 - 8a 64 1f cmp ah, byte ptr ds:[si + 020h] ; 4116 - 3a 64 20 mov byte ptr ds:[si + 020h], ah ; 4119 - 88 64 20 mov al, 1 ; 411c - b0 01 jz fdm1 ; 411e - 74 02 -> 4122 mov al, 0ffh ; 4120 - b0 ff fdm1: ; 4122 ret ; 4122 - c3 FDISK_FORMAT endp org 04123h FDISK_OP proc near public ; 4123 push ax ; 4123 - 50 call SEEK ; 4124 - e8 09 02 -> 4330 pop ax ; 4127 - 58 mov bh, ah ; 4128 - 8a fc mov dh, 0 ; 412a - b6 00 jb hop ; 412c - 72 55 -> 4183 cli ; 412e - fa mov ah, 4 ; 412f - b4 04 call FDC_OUTPUT ; 4131 - e8 bf 01 -> 42f3 jb hop ; 4134 - 72 4d -> 4183 call drive_select ; 4136 - e8 6c 03 -> 44a5 call FDC_OUTPUT ; 4139 - e8 b7 01 -> 42f3 jb hop ; 413c - 72 45 -> 4183 in al, 06h ; 413e - e4 06 call not_result_phase ; 4140 - e8 20 03 -> 4463 jb hop ; 4143 - 72 3e -> 4183 mov al, ds:[41h] ; 4145 - a0 41 00 test al, 20h ; 4148 - a8 20 jnz write ; 414a - 75 08 -> 4154 mov byte ptr ds:[002h], 080h ; 414c - c6 06 02 00 80 jmp j21a ; 4151 - e9 15 01 -> 4269 write: ; 4154 cmp bh, 45h ; 4154 - 80 ff 45 jz write_prot ; 4157 - 74 05 -> 415e cmp bh, 4dh ; 4159 - 80 ff 4d jnz moto ; 415c - 75 0c -> 416a write_prot: ; 415e test al, 40h ; 415e - a8 40 jz moto ; 4160 - 74 08 -> 416a mov byte ptr ds:[002h], 3 ; 4162 - c6 06 02 00 03 stc ; 4167 - f9 jmp hop ; 4168 - eb 19 -> 4183 moto: ; 416a test al, 8 ; 416a - a8 08 jz spinup ; 416c - 74 18 -> 4186 mov ah, 3 ; 416e - b4 03 call FDC_OUTPUT ; 4170 - e8 80 01 -> 42f3 jb hop ; 4173 - 72 0e -> 4183 mov bl, 0 ; 4175 - b3 00 call parm_output ; 4177 - e8 72 01 -> 42ec jb hop ; 417a - 72 07 -> 4183 mov ah, 10h ; 417c - b4 10 call FDC_OUTPUT ; 417e - e8 72 01 -> 42f3 jnb outx ; 4181 - 73 18 -> 419b hop: ; 4183 jmp j21 ; 4183 - e9 e0 00 -> 4266 spinup: ; 4186 mov ah, 3 ; 4186 - b4 03 call FDC_OUTPUT ; 4188 - e8 68 01 -> 42f3 jb hop ; 418b - 72 f6 -> 4183 mov bl, 0 ; 418d - b3 00 call parm_output ; 418f - e8 5a 01 -> 42ec jb hop ; 4192 - 72 ef -> 4183 mov ah, 080h ; 4194 - b4 80 call FDC_OUTPUT ; 4196 - e8 5a 01 -> 42f3 jb hop ; 4199 - 72 e8 -> 4183 outx: ; 419b mov ah, bh ; 419b - 8a e7 call FDC_OUTPUT ; 419d - e8 53 01 -> 42f3 jb hop ; 41a0 - 72 e1 -> 4183 call drive_select ; 41a2 - e8 00 03 -> 44a5 call FDC_OUTPUT ; 41a5 - e8 4b 01 -> 42f3 jb hop ; 41a8 - 72 d9 -> 4183 cmp bh, 4dh ; 41aa - 80 ff 4d jnz j15e ; 41ad - 75 1e -> 41cd mov bl, 3 ; 41af - b3 03 call parm_output ; 41b1 - e8 38 01 -> 42ec jb j17 ; 41b4 - 72 6f -> 4225 mov bl, 4 ; 41b6 - b3 04 call parm_output ; 41b8 - e8 31 01 -> 42ec jb j17 ; 41bb - 72 68 -> 4225 mov bl, 7 ; 41bd - b3 07 call parm_output ; 41bf - e8 2a 01 -> 42ec jb j17 ; 41c2 - 72 61 -> 4225 mov bl, 8 ; 41c4 - b3 08 call parm_output ; 41c6 - e8 23 01 -> 42ec jb j17 ; 41c9 - 72 5a -> 4225 jmp J16 ; 41cb - eb 32 -> 41ff j15e: ; 41cd mov ah, ch ; 41cd - 8a e5 call FDC_OUTPUT ; 41cf - e8 21 01 -> 42f3 jb j17 ; 41d2 - 72 51 -> 4225 mov ah, byte ptr [bp + 1] ; 41d4 - 8a 66 01 call FDC_OUTPUT ; 41d7 - e8 19 01 -> 42f3 jb j17 ; 41da - 72 49 -> 4225 mov ah, cl ; 41dc - 8a e1 call FDC_OUTPUT ; 41de - e8 12 01 -> 42f3 jb j17 ; 41e1 - 72 42 -> 4225 mov bl, 3 ; 41e3 - b3 03 call parm_output ; 41e5 - e8 04 01 -> 42ec jb j17 ; 41e8 - 72 3b -> 4225 mov bl, 4 ; 41ea - b3 04 call parm_output ; 41ec - e8 fd 00 -> 42ec jb j17 ; 41ef - 72 34 -> 4225 mov bl, 5 ; 41f1 - b3 05 call parm_output ; 41f3 - e8 f6 00 -> 42ec jb j17 ; 41f6 - 72 2d -> 4225 mov bl, 6 ; 41f8 - b3 06 call parm_output ; 41fa - e8 ef 00 -> 42ec jb j17 ; 41fd - 72 26 -> 4225 J16: ; 41ff mov bx, si ; 41ff - 8b de sti ; 4201 - fb push dx ; 4202 - 52 mov dx, 0072h ; 4203 - ba 72 00 in al, dx ; 4206 - ec or al, 1 ; 4207 - 0c 01 out dx, al ; 4209 - ee pop dx ; 420a - 5a call dma_wait ; 420b - e8 22 03 -> 4530 pushf ; 420e - 9c push dx ; 420f - 52 mov dx, 0072h ; 4210 - ba 72 00 in al, dx ; 4213 - ec and al, 0feh ; 4214 - 24 fe out dx, al ; 4216 - ee pop dx ; 4217 - 5a popf ; 4218 - 9d jnb j16b ; 4219 - 73 07 -> 4222 mov byte ptr ds:[002h], 8 ; 421b - c6 06 02 00 08 jmp j21 ; 4220 - eb 44 -> 4266 j16b: ; 4222 call WAIT_INT ; 4222 - e8 a9 01 -> 43ce j17: ; 4225 sti ; 4225 - fb jb j21 ; 4226 - 72 3e -> 4266 cld ; 4228 - fc mov si, 003ah ; 4229 - be 3a 00 lodsb ; 422c - ac and al, 0c0h ; 422d - 24 c0 jz j22 ; 422f - 74 3b -> 426c cmp al, 40h ; 4231 - 3c 40 jnz j18 ; 4233 - 75 27 -> 425c lodsb ; 4235 - ac shl al, 1 ; 4236 - d0 e0 mov ah, 4 ; 4238 - b4 04 jb j19 ; 423a - 72 22 -> 425e shl al, 02h ; 423c - c0 e0 02 mov ah, 10h ; 423f - b4 10 jb j19 ; 4241 - 72 1b -> 425e shl al, 1 ; 4243 - d0 e0 mov ah, 8 ; 4245 - b4 08 jb j19 ; 4247 - 72 15 -> 425e shl al, 02h ; 4249 - c0 e0 02 mov ah, 4 ; 424c - b4 04 jb j19 ; 424e - 72 0e -> 425e shl al, 1 ; 4250 - d0 e0 mov ah, 3 ; 4252 - b4 03 jb j19 ; 4254 - 72 08 -> 425e shl al, 1 ; 4256 - d0 e0 mov ah, 2 ; 4258 - b4 02 jb j19 ; 425a - 72 02 -> 425e j18: ; 425c mov ah, 20h ; 425c - b4 20 j19: ; 425e mov byte ptr ds:[002h], ah ; 425e - 88 26 02 00 call NUM_TRANS ; 4262 - e8 4c 02 -> 44b1 ret ; 4265 - c3 j21: ; 4266 call result_phase ; 4266 - e8 02 02 -> 446b j21a: ; 4269 mov al, 0 ; 4269 - b0 00 ret ; 426b - c3 j22: ; 426c call NUM_TRANS ; 426c - e8 42 02 -> 44b1 xor ah, ah ; 426f - 32 e4 ret ; 4271 - c3 FDISK_OP endp org 04272h media_check proc near public ; 4272 call get_bpb_ptr ; 4272 - e8 10 00 -> 4285 mov ah, byte ptr ds:[si + 01fh] ; 4275 - 8a 64 1f cmp ah, byte ptr ds:[si + 021h] ; 4278 - 3a 64 21 mov byte ptr ds:[si + 021h], ah ; 427b - 88 64 21 mov al, 1 ; 427e - b0 01 jz mc1 ; 4280 - 74 02 -> 4284 mov al, 0ffh ; 4282 - b0 ff mc1: ; 4284 ret ; 4284 - c3 media_check endp org 04285h get_bpb_ptr proc near public ; 4285 mov si, 0047h ; 4285 - be 47 00 cmp dl, 0 ; 4288 - 80 fa 00 jz bp0 ; 428b - 74 03 -> 4290 mov si, 0069h ; 428d - be 69 00 bp0: ; 4290 ret ; 4290 - c3 get_bpb_ptr endp org 04291h sense_media proc near public ; 4291 pusha ; 4291 - 60 call j6 ; 4292 - e8 e4 fd -> 4079 jb bad_sense ; 4295 - 72 39 -> 42d0 or dl, dl ; 4297 - 0a d2 mov al, 0feh ; 4299 - b0 fe jz drv_test ; 429b - 74 02 -> 429f mov al, 0fdh ; 429d - b0 fd drv_test: ; 429f and byte ptr ds:[000h], al ; 429f - 20 06 00 00 mov byte ptr ds:[si + 01eh], 0 ; 42a3 - c6 44 1e 00 mov ch, 2 ; 42a7 - b5 02 call SEEK ; 42a9 - e8 84 00 -> 4330 jb bad_sense ; 42ac - 72 22 -> 42d0 mov cx, 3 ; 42ae - b9 03 00 j8: ; 42b1 cli ; 42b1 - fa mov ah, 4ah ; 42b2 - b4 4a call FDC_OUTPUT ; 42b4 - e8 3c 00 -> 42f3 jb bad_sense ; 42b7 - 72 17 -> 42d0 call drive_select ; 42b9 - e8 e9 01 -> 44a5 call FDC_OUTPUT ; 42bc - e8 34 00 -> 42f3 sti ; 42bf - fb jb bad_sense ; 42c0 - 72 0e -> 42d0 call WAIT_INT ; 42c2 - e8 09 01 -> 43ce jnb bad_sense1 ; 42c5 - 73 10 -> 42d7 loop j8 ; 42c7 - e2 e8 -> 42b1 test byte ptr ds:[03bh], 5 ; 42c9 - f6 06 3b 00 05 jnz tp1a ; 42ce - 75 14 -> 42e4 bad_sense: ; 42d0 mov byte ptr ds:[002h], 20h ; 42d0 - c6 06 02 00 20 popa ; 42d5 - 61 ret ; 42d6 - c3 bad_sense1: ; 42d7 cmp byte ptr ds:[03dh], 2 ; 42d7 - 80 3e 3d 00 02 jz tp1a ; 42dc - 74 06 -> 42e4 mov byte ptr ds:[si + 01eh], 0ffh ; 42de - c6 44 1e ff jmp sense_end ; 42e2 - eb 04 -> 42e8 tp1a: ; 42e4 mov byte ptr ds:[si + 01eh], 0 ; 42e4 - c6 44 1e 00 sense_end: ; 42e8 xor ax, ax ; 42e8 - 33 c0 popa ; 42ea - 61 ret ; 42eb - c3 sense_media endp org 042ech parm_output proc near public ; 42ec call GET_PARM ; 42ec - e8 2d 00 -> 431c call FDC_OUTPUT ; 42ef - e8 01 00 -> 42f3 ret ; 42f2 - c3 parm_output endp org 042f3h FDC_OUTPUT proc near public ; 42f3 push cx ; 42f3 - 51 mov cx, 000fh ; 42f4 - b9 0f 00 jwait: ; 42f7 loop jwait ; 42f7 - e2 fe -> 42f7 J23: ; 42f9 in al, 30h ; 42f9 - e4 30 and al, 40h ; 42fb - 24 40 jz J25 ; 42fd - 74 0a -> 4309 loop J23 ; 42ff - e2 f8 -> 42f9 J24: ; 4301 mov byte ptr ds:[002h], 20h ; 4301 - c6 06 02 00 20 stc ; 4306 - f9 pop cx ; 4307 - 59 ret ; 4308 - c3 J25: ; 4309 mov cx, 0 ; 4309 - b9 00 00 J26: ; 430c in al, 30h ; 430c - e4 30 and al, 080h ; 430e - 24 80 jnz J27 ; 4310 - 75 04 -> 4316 loop J26 ; 4312 - e2 f8 -> 430c jmp J24 ; 4314 - eb eb -> 4301 J27: ; 4316 mov al, ah ; 4316 - 8a c4 out 32h, al ; 4318 - e6 32 pop cx ; 431a - 59 ret ; 431b - c3 FDC_OUTPUT endp org 0431ch GET_PARM proc near public ; 431c push ds ; 431c - 1e mov ax, 0 ; 431d - b8 00 00 mov ds, ax ; 4320 - 8e d8 push si ; 4322 - 56 push bx ; 4323 - 53 lds si, ds:[078h] ; 4324 - c5 36 78 00 mov bh, 0 ; 4328 - b7 00 mov ah, byte ptr ds:[bx + si] ; 432a - 8a 20 pop bx ; 432c - 5b pop si ; 432d - 5e pop ds ; 432e - 1f ret ; 432f - c3 GET_PARM endp org 04330h SEEK proc near public ; 4330 mov al, 1 ; 4330 - b0 01 push cx ; 4332 - 51 mov cl, dl ; 4333 - 8a ca shl al, cl ; 4335 - d2 e0 pop cx ; 4337 - 59 test byte ptr ds:[000h], al ; 4338 - 84 06 00 00 jnz J28 ; 433c - 75 3b -> 4379 or byte ptr ds:[000h], al ; 433e - 08 06 00 00 cli ; 4342 - fa mov ah, 7 ; 4343 - b4 07 call FDC_OUTPUT ; 4345 - e8 ab ff -> 42f3 jb J32 ; 4348 - 72 5d -> 43a7 mov ah, dl ; 434a - 8a e2 call FDC_OUTPUT ; 434c - e8 a4 ff -> 42f3 jb J32 ; 434f - 72 56 -> 43a7 sti ; 4351 - fb call WAIT_INT ; 4352 - e8 79 00 -> 43ce jnb J28 ; 4355 - 73 22 -> 4379 mov al, ds:[41h] ; 4357 - a0 41 00 test al, 10h ; 435a - a8 10 stc ; 435c - f9 jz J32 ; 435d - 74 48 -> 43a7 pusha ; 435f - 60 call DISK_RESET ; 4360 - e8 ee fc -> 4051 popa ; 4363 - 61 cli ; 4364 - fa mov ah, 7 ; 4365 - b4 07 call FDC_OUTPUT ; 4367 - e8 89 ff -> 42f3 jb J32 ; 436a - 72 3b -> 43a7 mov ah, dl ; 436c - 8a e2 call FDC_OUTPUT ; 436e - e8 82 ff -> 42f3 jb J32 ; 4371 - 72 34 -> 43a7 sti ; 4373 - fb call WAIT_INT ; 4374 - e8 57 00 -> 43ce jb J32 ; 4377 - 72 2e -> 43a7 J28: ; 4379 cli ; 4379 - fa mov ah, 0fh ; 437a - b4 0f call FDC_OUTPUT ; 437c - e8 74 ff -> 42f3 jb J32 ; 437f - 72 26 -> 43a7 call drive_select ; 4381 - e8 21 01 -> 44a5 call FDC_OUTPUT ; 4384 - e8 6c ff -> 42f3 jb J32 ; 4387 - 72 1e -> 43a7 test dl, 1 ; 4389 - f6 c2 01 mov ah, byte ptr ds:[087h] ; 438c - 8a 26 87 00 jnz sk_drv ; 4390 - 75 04 -> 4396 mov ah, byte ptr ds:[065h] ; 4392 - 8a 26 65 00 sk_drv: ; 4396 or ah, ah ; 4396 - 0a e4 mov ah, ch ; 4398 - 8a e5 jz s_drv ; 439a - 74 02 -> 439e shl ah, 1 ; 439c - d0 e4 s_drv: ; 439e call FDC_OUTPUT ; 439e - e8 52 ff -> 42f3 jb J32 ; 43a1 - 72 04 -> 43a7 sti ; 43a3 - fb call WAIT_INT ; 43a4 - e8 27 00 -> 43ce J32: ; 43a7 sti ; 43a7 - fb ret ; 43a8 - c3 SEEK endp org 043a9h DMA_CONT proc near public ; 43a9 mov ah, dh ; 43a9 - 8a e6 xor al, al ; 43ab - 32 c0 shr ax, 1 ; 43ad - d1 e8 push ax ; 43af - 50 mov bl, 3 ; 43b0 - b3 03 call GET_PARM ; 43b2 - e8 67 ff -> 431c mov bl, ah ; 43b5 - 8a dc pop ax ; 43b7 - 58 DMA_CA: ; 43b8 shl ax, 1 ; 43b8 - d1 e0 dec bl ; 43ba - fe cb jnz DMA_CA ; 43bc - 75 fa -> 43b8 DMA_CONT endp org 043beh DMA_FTMT proc near public ; 43be mov bx, si ; 43be - 8b de mov word ptr ds:[bx + 00eh], ax ; 43c0 - 89 47 0e call dma_xfer ; 43c3 - e8 01 01 -> 44c7 jnb dmac1 ; 43c6 - 73 05 -> 43cd mov byte ptr ds:[002h], 8 ; 43c8 - c6 06 02 00 08 dmac1: ; 43cd ret ; 43cd - c3 DMA_FTMT endp org 043ceh WAIT_INT proc near public ; 43ce sti ; 43ce - fb pusha ; 43cf - 60 mov bl, 8 ; 43d0 - b3 08 mov cx, 0 ; 43d2 - b9 00 00 J36: ; 43d5 test byte ptr ds:[000h], 080h ; 43d5 - f6 06 00 00 80 jz J36a ; 43da - 74 09 -> 43e5 or byte ptr ds:[002h], 0 ; 43dc - 80 0e 02 00 00 jz J37 ; 43e1 - 74 0e -> 43f1 jmp J36b ; 43e3 - eb 0b -> 43f0 J36a: ; 43e5 loop J36 ; 43e5 - e2 ee -> 43d5 dec bl ; 43e7 - fe cb jnz J36 ; 43e9 - 75 ea -> 43d5 mov byte ptr ds:[002h], 20h ; 43eb - c6 06 02 00 20 J36b: ; 43f0 stc ; 43f0 - f9 J37: ; 43f1 pushf ; 43f1 - 9c and byte ptr ds:[000h], 7fh ; 43f2 - 80 26 00 00 7f popf ; 43f7 - 9d popa ; 43f8 - 61 ret ; 43f9 - c3 WAIT_INT endp org 043fah DISK_INT proc near public ; 43fa sti ; 43fa - fb push ds ; 43fb - 1e pusha ; 43fc - 60 mov ax, 0 ; 43fd - b8 00 00 mov ds, ax ; 4400 - 8e d8 mov ds, word ptr ds:[040ch] ; 4402 - 8e 1e 0c 04 in al, 30h ; 4406 - e4 30 test al, 10h ; 4408 - a8 10 jnz int_result ; 440a - 75 49 -> 4455 mov ah, 8 ; 440c - b4 08 call FDC_OUTPUT ; 440e - e8 e2 fe -> 42f3 jnb j5 ; 4411 - 73 07 -> 441a bad: ; 4413 mov byte ptr ds:[002h], 20h ; 4413 - c6 06 02 00 20 jmp j11 ; 4418 - eb 3e -> 4458 j5: ; 441a call not_result_phase ; 441a - e8 46 00 -> 4463 jnz bad ; 441d - 75 f4 -> 4413 mov al, ds:[41h] ; 441f - a0 41 00 test al, 2 ; 4422 - a8 02 jnz j11a ; 4424 - 75 37 -> 445d mov ah, al ; 4426 - 8a e0 and al, 0e0h ; 4428 - 24 e0 cmp al, 60h ; 442a - 3c 60 jz j11x ; 442c - 74 20 -> 444e cmp al, 20h ; 442e - 3c 20 jnz j5a ; 4430 - 75 07 -> 4439 test ah, 10h ; 4432 - f6 c4 10 jnz j11x ; 4435 - 75 17 -> 444e jmp j11 ; 4437 - eb 1f -> 4458 j5a: ; 4439 cmp al, 0c0h ; 4439 - 3c c0 jnz j11a ; 443b - 75 20 -> 445d test ah, 1 ; 443d - f6 c4 01 jnz fd1 ; 4440 - 75 06 -> 4448 inc byte ptr ds:[066h] ; 4442 - fe 06 66 00 jmp j11a ; 4446 - eb 15 -> 445d fd1: ; 4448 inc byte ptr ds:[088h] ; 4448 - fe 06 88 00 jmp j11a ; 444c - eb 0f -> 445d j11x: ; 444e mov byte ptr ds:[002h], 40h ; 444e - c6 06 02 00 40 jmp j11 ; 4453 - eb 03 -> 4458 int_result: ; 4455 call result_phase ; 4455 - e8 13 00 -> 446b j11: ; 4458 or byte ptr ds:[000h], 080h ; 4458 - 80 0e 00 00 80 j11a: ; 445d call ISSUE_EOI0 ; 445d - e8 a4 c6 -> 0b04 popa ; 4460 - 61 pop ds ; 4461 - 1f iret ; 4462 - cf DISK_INT endp org 04463h not_result_phase proc near public ; 4463 mov di, 0041h ; 4463 - bf 41 00 pusha ; 4466 - 60 mov bl, 2 ; 4467 - b3 02 jmp j38 ; 4469 - eb 06 -> 4471 not_result_phase endp org 0446bh result_phase proc near public ; 446b mov di, 003ah ; 446b - bf 3a 00 pusha ; 446e - 60 mov bl, 7 ; 446f - b3 07 j38: ; 4471 cld ; 4471 - fc mov cx, 0 ; 4472 - b9 00 00 mov dx, 0030h ; 4475 - ba 30 00 J39: ; 4478 in al, dx ; 4478 - ec test al, 080h ; 4479 - a8 80 jnz J40a ; 447b - 75 0a -> 4487 loop J39 ; 447d - e2 f9 -> 4478 J40: ; 447f mov byte ptr ds:[002h], 20h ; 447f - c6 06 02 00 20 stc ; 4484 - f9 popa ; 4485 - 61 ret ; 4486 - c3 J40a: ; 4487 in al, dx ; 4487 - ec test al, 40h ; 4488 - a8 40 jnz J42 ; 448a - 75 02 -> 448e jmp J40 ; 448c - eb f1 -> 447f J42: ; 448e in al, 32h ; 448e - e4 32 mov byte ptr ds:[di], al ; 4490 - 88 05 inc di ; 4492 - 47 mov cx, 000fh ; 4493 - b9 0f 00 J43: ; 4496 loop J43 ; 4496 - e2 fe -> 4496 in al, dx ; 4498 - ec test al, 10h ; 4499 - a8 10 jnz J44 ; 449b - 75 02 -> 449f popa ; 449d - 61 ret ; 449e - c3 result_phase endp J44: ; 449f dec bl ; 449f - fe cb jnz j38 ; 44a1 - 75 ce -> 4471 jmp J40 ; 44a3 - eb da -> 447f org 044a5h drive_select proc near public ; 44a5 mov ah, byte ptr [bp + 1] ; 44a5 - 8a 66 01 shl ah, 02h ; 44a8 - c0 e4 02 and ah, 4 ; 44ab - 80 e4 04 or ah, dl ; 44ae - 0a e2 ret ; 44b0 - c3 drive_select endp org 044b1h NUM_TRANS proc near public ; 44b1 mov al, ds:[3dh] ; 44b1 - a0 3d 00 cmp al, ch ; 44b4 - 3a c5 mov al, ds:[3fh] ; 44b6 - a0 3f 00 jz J45 ; 44b9 - 74 09 -> 44c4 mov bl, 4 ; 44bb - b3 04 call GET_PARM ; 44bd - e8 5c fe -> 431c mov al, ah ; 44c0 - 8a c4 inc al ; 44c2 - fe c0 J45: ; 44c4 sub al, cl ; 44c4 - 2a c1 ret ; 44c6 - c3 NUM_TRANS endp org 044c7h dma_xfer proc near public ; 44c7 push es ; 44c7 - 06 pusha ; 44c8 - 60 call ger_dma_ptr ; 44c9 - e8 c5 00 -> 4591 call set_drq_ch ; 44cc - e8 0f 01 -> 45de jz dma_setup ; 44cf - 74 03 -> 44d4 jmp dma_error ; 44d1 - e9 8a 00 -> 455e dma_setup: ; 44d4 mov cx, word ptr ds:[bx + 8] ; 44d4 - 8b 4f 08 mov ax, word ptr ds:[bx + 6] ; 44d7 - 8b 47 06 call cvt_add ; 44da - e8 9d 00 -> 457a ; jnz dma_error ; 44dd - 75 7f -> 455e db 075h, 07fh ; fixup @ 044dd out dx, ax ; 44df - ef mov ax, cx ; 44e0 - 8b c1 inc dx ; 44e2 - 42 inc dx ; 44e3 - 42 out dx, ax ; 44e4 - ef mov cx, word ptr ds:[bx + 00ch] ; 44e5 - 8b 4f 0c mov ax, word ptr ds:[bx + 00ah] ; 44e8 - 8b 47 0a call cvt_add ; 44eb - e8 8c 00 -> 457a jnz dma_error ; 44ee - 75 6e -> 455e inc dx ; 44f0 - 42 inc dx ; 44f1 - 42 out dx, ax ; 44f2 - ef mov ax, cx ; 44f3 - 8b c1 inc dx ; 44f5 - 42 inc dx ; 44f6 - 42 out dx, ax ; 44f7 - ef mov ax, word ptr ds:[bx + 00eh] ; 44f8 - 8b 47 0e inc dx ; 44fb - 42 inc dx ; 44fc - 42 out dx, ax ; 44fd - ef mov ax, 0 ; 44fe - b8 00 00 mov es, ax ; 4501 - 8e c0 mov es, word ptr es:[040ch] ; 4503 - 26 8e 06 0c 04 test byte ptr ds:[bx], 0ffh ; 4508 - f6 07 ff jz save_dma0_cb ; 450b - 74 0c -> 4519 mov word ptr es:[08fh], bx ; 450d - 26 89 1e 8f 00 mov word ptr es:[091h], ds ; 4512 - 26 8c 1e 91 00 jmp output_control ; 4517 - eb 0d -> 4526 save_dma0_cb: ; 4519 mov word ptr es:[08bh], bx ; 4519 - 26 89 1e 8b 00 mov word ptr es:[08dh], ds ; 451e - 26 8c 1e 8d 00 call clear_dma_halt ; 4523 - e8 77 00 -> 459d output_control: ; 4526 mov ax, word ptr ds:[bx + 010h] ; 4526 - 8b 47 10 inc dx ; 4529 - 42 inc dx ; 452a - 42 out dx, ax ; 452b - ef or al, al ; 452c - 0a c0 jmp dma_return ; 452e - eb 47 -> 4577 dma_xfer endp org 04530h dma_wait proc near public ; 4530 push es ; 4530 - 06 pusha ; 4531 - 60 call clear_dma_halt ; 4532 - e8 68 00 -> 459d dma_wait_1: ; 4535 call ger_dma_ptr ; 4535 - e8 59 00 -> 4591 add dx, 8 ; 4538 - 83 c2 08 wait_up: ; 453b mov al, 0ah ; 453b - b0 0a wait_loop_out: ; 453d mov cx, 0ffffh ; 453d - b9 ff ff wait_loop: ; 4540 push ax ; 4540 - 50 in ax, dx ; 4541 - ed cmp ax, 0100h ; 4542 - 3d 00 01 pop ax ; 4545 - 58 jb wait_loop_1 ; 4546 - 72 08 -> 4550 loop wait_loop ; 4548 - e2 f6 -> 4540 dec al ; 454a - fe c8 jnz wait_loop_out ; 454c - 75 ef -> 453d jmp dma_error ; 454e - eb 0e -> 455e wait_loop_1: ; 4550 cli ; 4550 - fa push ax ; 4551 - 50 in ax, dx ; 4552 - ed or ax, ax ; 4553 - 0b c0 pop ax ; 4555 - 58 jz dma_exit ; 4556 - 74 15 -> 456d loop wait_loop_1 ; 4558 - e2 f6 -> 4550 dec al ; 455a - fe c8 jnz wait_loop_1 ; 455c - 75 f2 -> 4550 dma_error: ; 455e stc ; 455e - f9 dma_reset: ; 455f pushf ; 455f - 9c call ger_dma_ptr ; 4560 - e8 2e 00 -> 4591 add dx, 0ah ; 4563 - 83 c2 0a in ax, dx ; 4566 - ed and al, 0fdh ; 4567 - 24 fd or al, 4 ; 4569 - 0c 04 out dx, ax ; 456b - ef popf ; 456c - 9d dma_exit: ; 456d mov dx, word ptr ds:[bx + 2] ; 456d - 8b 57 02 in al, dx ; 4570 - ec sti ; 4571 - fb pushf ; 4572 - 9c call reset_drq ; 4573 - e8 d9 00 -> 464f popf ; 4576 - 9d dma_return: ; 4577 popa ; 4577 - 61 pop es ; 4578 - 07 ret ; 4579 - c3 dma_wait endp org 0457ah cvt_add proc near public ; 457a push dx ; 457a - 52 mov dx, cx ; 457b - 8b d1 mov cx, ax ; 457d - 8b c8 mov ax, 0010h ; 457f - b8 10 00 mul dx ; 4582 - f7 e2 add ax, cx ; 4584 - 03 c1 mov cx, dx ; 4586 - 8b ca pop dx ; 4588 - 5a jnb addnc ; 4589 - 73 01 -> 458c inc cx ; 458b - 41 addnc: ; 458c test cx, 0fff0h ; 458c - f7 c1 f0 ff ret ; 4590 - c3 cvt_add endp org 04591h ger_dma_ptr proc near public ; 4591 test byte ptr ds:[bx], 0ffh ; 4591 - f6 07 ff mov dx, 0ffc0h ; 4594 - ba c0 ff jz got_ptr ; 4597 - 74 03 -> 459c mov dx, 0ffd0h ; 4599 - ba d0 ff got_ptr: ; 459c ret ; 459c - c3 ger_dma_ptr endp org 0459dh clear_dma_halt proc near public ; 459d push dx ; 459d - 52 push ax ; 459e - 50 cli ; 459f - fa mov dx, 0ff30h ; 45a0 - ba 30 ff in ax, dx ; 45a3 - ed and ah, 7fh ; 45a4 - 80 e4 7f out dx, ax ; 45a7 - ef sti ; 45a8 - fb pop ax ; 45a9 - 58 pop dx ; 45aa - 5a ret ; 45ab - c3 clear_dma_halt endp org 045ach dma0_int proc near public ; 45ac pusha ; 45ac - 60 push ds ; 45ad - 1e mov ax, 0 ; 45ae - b8 00 00 mov ds, ax ; 45b1 - 8e d8 mov ds, word ptr ds:[040ch] ; 45b3 - 8e 1e 0c 04 lds si, ds:[08bh] ; 45b7 - c5 36 8b 00 mov dx, word ptr ds:[si + 2] ; 45bb - 8b 54 02 in al, dx ; 45be - ec call ISSUE_EOI ; 45bf - e8 5a c5 -> 0b1c pop ds ; 45c2 - 1f popa ; 45c3 - 61 iret ; 45c4 - cf dma0_int endp org 045c5h dma1_int proc near public ; 45c5 pusha ; 45c5 - 60 push ds ; 45c6 - 1e mov ax, 0 ; 45c7 - b8 00 00 mov ds, ax ; 45ca - 8e d8 mov ds, word ptr ds:[040ch] ; 45cc - 8e 1e 0c 04 lds si, ds:[08fh] ; 45d0 - c5 36 8f 00 mov dx, word ptr ds:[si + 2] ; 45d4 - 8b 54 02 in al, dx ; 45d7 - ec call ISSUE_EOI ; 45d8 - e8 41 c5 -> 0b1c pop ds ; 45db - 1f popa ; 45dc - 61 iret ; 45dd - cf dma1_int endp org 045deh set_drq_ch proc near public ; 45de push es ; 45de - 06 pusha ; 45df - 60 mov ax, 0 ; 45e0 - b8 00 00 mov es, ax ; 45e3 - 8e c0 mov es, word ptr es:[040ch] ; 45e5 - 26 8e 06 0c 04 mov cx, 0ffffh ; 45ea - b9 ff ff ch_busy: ; 45ed push cx ; 45ed - 51 mov cx, 4 ; 45ee - b9 04 00 clc ; 45f1 - f8 xor ah, ah ; 45f2 - 32 e4 mov al, es:[093h] ; 45f4 - 26 a0 93 00 ch_busy_loop: ; 45f8 rcr al, 1 ; 45f8 - d0 d8 jnb ch_loop_bot ; 45fa - 73 02 -> 45fe inc ah ; 45fc - fe c4 ch_loop_bot: ; 45fe loop ch_busy_loop ; 45fe - e2 f8 -> 45f8 cmp ah, 2 ; 4600 - 80 fc 02 jl ch_enable ; 4603 - 7c 08 -> 460d pop cx ; 4605 - 59 loop ch_busy ; 4606 - e2 e5 -> 45ed dec cl ; 4608 - fe c9 jmp drq_exit ; 460a - eb 40 -> 464c nop ; 460c - 90 ch_enable: ; 460d pop cx ; 460d - 59 mov cx, 0ffffh ; 460e - b9 ff ff ch_enable_loop: ; 4611 mov al, byte ptr ds:[bx + 1] ; 4611 - 8a 47 01 and al, 0fh ; 4614 - 24 0f test byte ptr es:[093h], al ; 4616 - 26 84 06 93 00 jz setup_drq_ch ; 461b - 74 07 -> 4624 loop ch_enable_loop ; 461d - e2 f2 -> 4611 dec cl ; 461f - fe c9 jmp drq_exit ; 4621 - eb 29 -> 464c nop ; 4623 - 90 setup_drq_ch: ; 4624 mov ah, al ; 4624 - 8a e0 rol ah, 04h ; 4626 - c0 c4 04 test byte ptr ds:[bx], 0ffh ; 4629 - f6 07 ff jnz setup_drq_ch1 ; 462c - 75 0a -> 4638 not ah ; 462e - f6 d4 and byte ptr es:[093h], ah ; 4630 - 26 20 26 93 00 jmp setup_drq ; 4635 - eb 03 -> 463a nop ; 4637 - 90 setup_drq_ch1: ; 4638 or al, ah ; 4638 - 0a c4 setup_drq: ; 463a or byte ptr es:[093h], al ; 463a - 26 08 06 93 00 mov al, es:[093h] ; 463f - 26 a0 93 00 out 02h, al ; 4643 - e6 02 xor al, al ; 4645 - 32 c0 or al, byte ptr es:[094h] ; 4647 - 26 0a 06 94 00 drq_exit: ; 464c popa ; 464c - 61 pop es ; 464d - 07 ret ; 464e - c3 set_drq_ch endp org 0464fh reset_drq proc near public ; 464f push es ; 464f - 06 push ax ; 4650 - 50 pushf ; 4651 - 9c mov ax, 0 ; 4652 - b8 00 00 mov es, ax ; 4655 - 8e c0 mov es, word ptr es:[040ch] ; 4657 - 26 8e 06 0c 04 test byte ptr ds:[bx + 010h], 0c0h ; 465c - f6 47 10 c0 jz reset_drq_exit ; 4660 - 74 12 -> 4674 mov al, byte ptr ds:[bx + 1] ; 4662 - 8a 47 01 and al, 0fh ; 4665 - 24 0f not al ; 4667 - f6 d0 and al, byte ptr es:[093h] ; 4669 - 26 22 06 93 00 mov es:[093h], al ; 466e - 26 a2 93 00 out 02h, al ; 4672 - e6 02 reset_drq_exit: ; 4674 popf ; 4674 - 9d pop ax ; 4675 - 58 pop es ; 4676 - 07 ret ; 4677 - c3 reset_drq endp org 04678h ext_drq_int proc near public ; 4678 push ds ; 4678 - 1e pusha ; 4679 - 60 mov ax, 0 ; 467a - b8 00 00 mov ds, ax ; 467d - 8e d8 mov ds, word ptr ds:[040ch] ; 467f - 8e 1e 0c 04 mov byte ptr ds:[094h], 0ffh ; 4683 - c6 06 94 00 ff call ISSUE_EOI1 ; 4688 - e8 80 c4 -> 0b0b popa ; 468b - 61 pop ds ; 468c - 1f iret ; 468d - cf ext_drq_int endp db 015h ; 468e db 000h ; 468f org 04690h HD_SVC_TBL: ; 4690 dw HD_RESET ; 4690 -> 46f0 dw HD_STATUS ; 4692 -> 4740 dw HD_READ ; 4694 -> 4747 dw HD_WRITE ; 4696 -> 4779 dw HD_VERIFY ; 4698 -> 47ab dw HD_FMTTRK ; 469a -> 47db dw BAD_COMMAND ; 469c -> 489a dw BAD_COMMAND ; 469e -> 489a dw HD_GET_PARMS ; 46a0 -> 4803 dw HD_INIT ; 46a2 -> 4836 dw BAD_COMMAND ; 46a4 -> 489a dw BAD_COMMAND ; 46a6 -> 489a dw HD_SEEK ; 46a8 -> 4853 dw HD_RESET ; 46aa -> 46f0 dw HD_RBUFF ; 46ac -> 486b dw HD_WBUFF ; 46ae -> 487a dw HD_TEST_BUSY ; 46b0 -> 4889 dw GOOD_RETURN ; 46b2 -> 489f dw GOOD_RETURN ; 46b4 -> 489f dw GOOD_RETURN ; 46b6 -> 489f dw GOOD_RETURN ; 46b8 -> 489f org 046bah HDISK proc near public ; 46ba cmp dl, 080h ; 46ba - 80 fa 80 jnb HD_HDISK ; 46bd - 73 05 -> 46c4 int 40h ; 46bf - cd 40 retf 2h ; 46c1 - ca 02 00 HD_HDISK: ; 46c4 cmp dl, 081h ; 46c4 - 80 fa 81 jbe HD_DO_SVC ; 46c7 - 76 06 -> 46cf mov ah, 1 ; 46c9 - b4 01 stc ; 46cb - f9 retf 2h ; 46cc - ca 02 00 HDISK endp HD_DO_SVC: ; 46cf sti ; 46cf - fb pusha ; 46d0 - 60 push ds ; 46d1 - 1e push es ; 46d2 - 06 mov di, 05c2h ; 46d3 - bf c2 05 mov ds, di ; 46d6 - 8e df and dl, 1 ; 46d8 - 80 e2 01 mov byte ptr ds:[002h], dl ; 46db - 88 16 02 00 push ax ; 46df - 50 mov al, dl ; 46e0 - 8a c2 call HD_POINT_PRM ; 46e2 - e8 78 02 -> 495d mov word ptr ds:[000h], si ; 46e5 - 89 36 00 00 pop ax ; 46e9 - 58 mov di, 468eh ; 46ea - bf 8e 46 jmp SWITCH ; 46ed - e9 2f c6 -> 0d1f org 046f0h HD_RESET proc near public ; 46f0 call HD_RES_CTLR ; 46f0 - e8 78 02 -> 496b mov dx, word ptr ds:[01ah] ; 46f3 - 8b 16 1a 00 in al, dx ; 46f7 - ec and al, 0f0h ; 46f8 - 24 f0 cmp al, 50h ; 46fa - 3c 50 jz DO_RECAL ; 46fc - 74 05 -> 4703 mov ah, 5 ; 46fe - b4 05 jmp HD_EXIT ; 4700 - e9 a1 01 -> 48a4 DO_RECAL: ; 4703 mov dl, byte ptr [bp + 00eh] ; 4703 - 8a 56 0e mov dh, 0 ; 4706 - b6 00 mov cx, 1 ; 4708 - b9 01 00 mov al, 0 ; 470b - b0 00 call HD_SELECT ; 470d - e8 02 02 -> 4912 mov byte ptr ds:[023h], 10h ; 4710 - c6 06 23 00 10 call OUT_CMD ; 4715 - e8 65 02 -> 497d mov si, word ptr ds:[000h] ; 4718 - 8b 36 00 00 mov bl, byte ptr ds:[si + 00bh] ; 471c - 8a 5c 0b call WAIT_RDY ; 471f - e8 76 02 -> 4998 jb HD_R1 ; 4722 - 72 19 -> 473d mov al, 0 ; 4724 - b0 00 mov dx, word ptr ds:[010h] ; 4726 - 8b 16 10 00 out dx, al ; 472a - ee mov dx, word ptr ds:[012h] ; 472b - 8b 16 12 00 out dx, al ; 472f - ee mov dx, word ptr ds:[014h] ; 4730 - 8b 16 14 00 out dx, al ; 4734 - ee mov dx, word ptr ds:[016h] ; 4735 - 8b 16 16 00 out dx, al ; 4739 - ee mov byte ptr [bp + 012h], al ; 473a - 88 46 12 HD_R1: ; 473d jmp HD_EXIT ; 473d - e9 64 01 -> 48a4 HD_RESET endp org 04740h HD_STATUS proc near public ; 4740 mov ah, byte ptr ds:[005h] ; 4740 - 8a 26 05 00 jmp HD_EXIT ; 4744 - e9 5d 01 -> 48a4 HD_STATUS endp org 04747h HD_READ proc near public ; 4747 call HD_SELECT ; 4747 - e8 c8 01 -> 4912 mov byte ptr ds:[023h], 20h ; 474a - c6 06 23 00 20 mov ch, 0 ; 474f - b5 00 mov cl, byte ptr ds:[01eh] ; 4751 - 8a 0e 1e 00 mov byte ptr ds:[01eh], 1 ; 4755 - c6 06 1e 00 01 HD_RD_LP: ; 475a call OUT_CMD ; 475a - e8 20 02 -> 497d mov si, word ptr ds:[000h] ; 475d - 8b 36 00 00 push bx ; 4761 - 53 mov bl, byte ptr ds:[si + 9] ; 4762 - 8a 5c 09 call WAIT_RDY ; 4765 - e8 30 02 -> 4998 pop bx ; 4768 - 5b jb HD_RD_EXIT ; 4769 - 72 0b -> 4776 call HD_INPUT ; 476b - e8 50 01 -> 48be jb HD_RD_EXIT ; 476e - 72 06 -> 4776 inc byte ptr ds:[01fh] ; 4770 - fe 06 1f 00 loop HD_RD_LP ; 4774 - e2 e4 -> 475a HD_RD_EXIT: ; 4776 jmp HD_EXIT ; 4776 - e9 2b 01 -> 48a4 HD_READ endp org 04779h HD_WRITE proc near public ; 4779 call HD_SELECT ; 4779 - e8 96 01 -> 4912 mov byte ptr ds:[023h], 30h ; 477c - c6 06 23 00 30 mov ch, 0 ; 4781 - b5 00 mov cl, byte ptr ds:[01eh] ; 4783 - 8a 0e 1e 00 mov byte ptr ds:[01eh], 1 ; 4787 - c6 06 1e 00 01 HD_WRT_LP: ; 478c call OUT_CMD ; 478c - e8 ee 01 -> 497d call HD_OUTPUT ; 478f - e8 56 01 -> 48e8 jb HD_WRT_EXIT ; 4792 - 72 14 -> 47a8 mov si, word ptr ds:[000h] ; 4794 - 8b 36 00 00 push bx ; 4798 - 53 mov bl, byte ptr ds:[si + 9] ; 4799 - 8a 5c 09 call WAIT_RDY ; 479c - e8 f9 01 -> 4998 pop bx ; 479f - 5b jb HD_WRT_EXIT ; 47a0 - 72 06 -> 47a8 inc byte ptr ds:[01fh] ; 47a2 - fe 06 1f 00 loop HD_WRT_LP ; 47a6 - e2 e4 -> 478c HD_WRT_EXIT: ; 47a8 jmp HD_EXIT ; 47a8 - e9 f9 00 -> 48a4 HD_WRITE endp org 047abh HD_VERIFY proc near public ; 47ab call HD_SELECT ; 47ab - e8 64 01 -> 4912 mov byte ptr ds:[023h], 20h ; 47ae - c6 06 23 00 20 mov ch, 0 ; 47b3 - b5 00 mov cl, byte ptr ds:[01eh] ; 47b5 - 8a 0e 1e 00 mov byte ptr ds:[01eh], 1 ; 47b9 - c6 06 1e 00 01 HD_VER_LP: ; 47be call OUT_CMD ; 47be - e8 bc 01 -> 497d mov si, word ptr ds:[000h] ; 47c1 - 8b 36 00 00 push bx ; 47c5 - 53 mov bl, byte ptr ds:[si + 9] ; 47c6 - 8a 5c 09 call WAIT_RDY ; 47c9 - e8 cc 01 -> 4998 pop bx ; 47cc - 5b jb HD_VER_EXIT ; 47cd - 72 09 -> 47d8 call HD_RES_CTLR ; 47cf - e8 99 01 -> 496b inc byte ptr ds:[01fh] ; 47d2 - fe 06 1f 00 loop HD_VER_LP ; 47d6 - e2 e6 -> 47be HD_VER_EXIT: ; 47d8 jmp HD_EXIT ; 47d8 - e9 c9 00 -> 48a4 HD_VERIFY endp org 047dbh HD_FMTTRK proc near public ; 47db call HD_SELECT ; 47db - e8 34 01 -> 4912 mov byte ptr ds:[023h], 50h ; 47de - c6 06 23 00 50 mov al, ds:[1eh] ; 47e3 - a0 1e 00 mov ds:[1fh], al ; 47e6 - a2 1f 00 mov byte ptr ds:[01eh], 11h ; 47e9 - c6 06 1e 00 11 call OUT_CMD ; 47ee - e8 8c 01 -> 497d call HD_OUTPUT ; 47f1 - e8 f4 00 -> 48e8 jb HD_FMTTRK_EXIT ; 47f4 - 72 0a -> 4800 mov si, word ptr ds:[000h] ; 47f6 - 8b 36 00 00 mov bl, byte ptr ds:[si + 00ah] ; 47fa - 8a 5c 0a call WAIT_RDY ; 47fd - e8 98 01 -> 4998 HD_FMTTRK_EXIT: ; 4800 jmp HD_EXIT ; 4800 - e9 a1 00 -> 48a4 HD_FMTTRK endp org 04803h HD_GET_PARMS proc near public ; 4803 mov si, word ptr ds:[000h] ; 4803 - 8b 36 00 00 mov ax, word ptr ds:[si] ; 4807 - 8b 04 sub ax, 2 ; 4809 - 2d 02 00 mov ch, al ; 480c - 8a e8 and ax, 0300h ; 480e - 25 00 03 shr ax, 1 ; 4811 - d1 e8 shr ax, 1 ; 4813 - d1 e8 or al, 11h ; 4815 - 0c 11 mov cl, al ; 4817 - 8a c8 mov dh, byte ptr ds:[si + 2] ; 4819 - 8a 74 02 dec dh ; 481c - fe ce mov dl, byte ptr ds:[003h] ; 481e - 8a 16 03 00 mov bx, word ptr ds:[si + 5] ; 4822 - 8b 5c 05 mov byte ptr [bp + 012h], al ; 4825 - 88 46 12 mov word ptr [bp + 00ch], bx ; 4828 - 89 5e 0c mov word ptr [bp + 010h], cx ; 482b - 89 4e 10 mov word ptr [bp + 00eh], dx ; 482e - 89 56 0e sub ah, ah ; 4831 - 2a e4 jmp HD_EXIT ; 4833 - eb 6f -> 48a4 nop ; 4835 - 90 HD_GET_PARMS endp org 04836h HD_INIT proc near public ; 4836 mov si, word ptr ds:[000h] ; 4836 - 8b 36 00 00 mov al, ds:[22h] ; 483a - a0 22 00 and al, 7 ; 483d - 24 07 mov byte ptr ds:[si + 2], al ; 483f - 88 44 02 mov ah, byte ptr ds:[021h] ; 4842 - 8a 26 21 00 mov al, ds:[20h] ; 4846 - a0 20 00 mov word ptr ds:[si], ax ; 4849 - 89 04 mov word ptr ds:[si + 5], bx ; 484b - 89 5c 05 sub ah, ah ; 484e - 2a e4 jmp HD_EXIT ; 4850 - eb 52 -> 48a4 nop ; 4852 - 90 HD_INIT endp org 04853h HD_SEEK proc near public ; 4853 call HD_SELECT ; 4853 - e8 bc 00 -> 4912 mov byte ptr ds:[023h], 70h ; 4856 - c6 06 23 00 70 call OUT_CMD ; 485b - e8 1f 01 -> 497d mov si, word ptr ds:[000h] ; 485e - 8b 36 00 00 mov bl, byte ptr ds:[si + 9] ; 4862 - 8a 5c 09 call WAIT_RDY ; 4865 - e8 30 01 -> 4998 jmp HD_EXIT ; 4868 - eb 3a -> 48a4 nop ; 486a - 90 HD_SEEK endp org 0486bh HD_RBUFF proc near public ; 486b mov byte ptr ds:[01eh], 1 ; 486b - c6 06 1e 00 01 call HD_INPUT ; 4870 - e8 4b 00 -> 48be jb HD_RBUFF_EXIT ; 4873 - 72 02 -> 4877 sub ah, ah ; 4875 - 2a e4 HD_RBUFF_EXIT: ; 4877 jmp HD_EXIT ; 4877 - eb 2b -> 48a4 nop ; 4879 - 90 HD_RBUFF endp org 0487ah HD_WBUFF proc near public ; 487a mov byte ptr ds:[01eh], 1 ; 487a - c6 06 1e 00 01 call HD_OUTPUT ; 487f - e8 66 00 -> 48e8 jb HD_WBUFF_EXIT ; 4882 - 72 02 -> 4886 sub ah, ah ; 4884 - 2a e4 HD_WBUFF_EXIT: ; 4886 jmp HD_EXIT ; 4886 - eb 1c -> 48a4 nop ; 4888 - 90 HD_WBUFF endp org 04889h HD_TEST_BUSY proc near public ; 4889 mov dx, word ptr ds:[01ah] ; 4889 - 8b 16 1a 00 in al, dx ; 488d - ec mov ah, al ; 488e - 8a e0 and ah, 080h ; 4890 - 80 e4 80 jz HD_TST_EXIT ; 4893 - 74 02 -> 4897 mov ah, 0ffh ; 4895 - b4 ff HD_TST_EXIT: ; 4897 jmp HD_EXIT ; 4897 - eb 0b -> 48a4 nop ; 4899 - 90 HD_TEST_BUSY endp org 0489ah BAD_COMMAND proc near public ; 489a mov ah, 1 ; 489a - b4 01 jmp HD_EXIT ; 489c - eb 06 -> 48a4 nop ; 489e - 90 BAD_COMMAND endp GOOD_RETURN proc near public ; 489f mov ah, 0 ; 489f - b4 00 jmp HD_EXIT ; 48a1 - eb 01 -> 48a4 nop ; 48a3 - 90 GOOD_RETURN endp HD_EXIT proc near public ; 48a4 mov byte ptr ds:[005h], ah ; 48a4 - 88 26 05 00 mov byte ptr [bp + 013h], ah ; 48a8 - 88 66 13 or ah, ah ; 48ab - 0a e4 jz HD_EXIT_1 ; 48ad - 74 08 -> 48b7 call HD_RES_CTLR ; 48af - e8 b9 00 -> 496b stc ; 48b2 - f9 mov byte ptr [bp + 012h], 0 ; 48b3 - c6 46 12 00 HD_EXIT_1: ; 48b7 lahf ; 48b7 - 9f mov byte ptr [bp + 018h], ah ; 48b8 - 88 66 18 sub al, al ; 48bb - 2a c0 ret ; 48bd - c3 HD_EXIT endp org 048beh HD_INPUT proc near public ; 48be push cx ; 48be - 51 push dx ; 48bf - 52 mov cx, 0 ; 48c0 - b9 00 00 mov dx, word ptr ds:[01ah] ; 48c3 - 8b 16 1a 00 HD_IN_LP1: ; 48c7 in al, dx ; 48c7 - ec test al, 8 ; 48c8 - a8 08 jnz HD_INPUT_1 ; 48ca - 75 08 -> 48d4 loop HD_IN_LP1 ; 48cc - e2 f9 -> 48c7 mov ah, 080h ; 48ce - b4 80 stc ; 48d0 - f9 jmp HD_INP_EXIT ; 48d1 - eb 12 -> 48e5 nop ; 48d3 - 90 HD_INPUT_1: ; 48d4 mov cx, 0200h ; 48d4 - b9 00 02 mov dx, word ptr ds:[00ah] ; 48d7 - 8b 16 0a 00 cld ; 48db - fc HD_INP_LP2: ; 48dc in al, dx ; 48dc - ec mov byte ptr es:[bx], al ; 48dd - 26 88 07 inc bx ; 48e0 - 43 loop HD_INP_LP2 ; 48e1 - e2 f9 -> 48dc sub ah, ah ; 48e3 - 2a e4 HD_INP_EXIT: ; 48e5 pop dx ; 48e5 - 5a pop cx ; 48e6 - 59 ret ; 48e7 - c3 HD_INPUT endp org 048e8h HD_OUTPUT proc near public ; 48e8 push cx ; 48e8 - 51 push dx ; 48e9 - 52 mov cx, 0 ; 48ea - b9 00 00 mov dx, word ptr ds:[01ah] ; 48ed - 8b 16 1a 00 HD_OUT_LP1: ; 48f1 in al, dx ; 48f1 - ec test al, 8 ; 48f2 - a8 08 jnz HD_OUT1 ; 48f4 - 75 08 -> 48fe loop HD_OUT_LP1 ; 48f6 - e2 f9 -> 48f1 mov ah, 080h ; 48f8 - b4 80 stc ; 48fa - f9 jmp HD_OUT_EXIT ; 48fb - eb 12 -> 490f nop ; 48fd - 90 HD_OUT1: ; 48fe mov cx, 0200h ; 48fe - b9 00 02 mov dx, word ptr ds:[00ah] ; 4901 - 8b 16 0a 00 cld ; 4905 - fc HD_OUT_LP2: ; 4906 mov al, byte ptr es:[bx] ; 4906 - 26 8a 07 out dx, al ; 4909 - ee inc bx ; 490a - 43 loop HD_OUT_LP2 ; 490b - e2 f9 -> 4906 sub ah, ah ; 490d - 2a e4 HD_OUT_EXIT: ; 490f pop dx ; 490f - 5a pop cx ; 4910 - 59 ret ; 4911 - c3 HD_OUTPUT endp org 04912h HD_SELECT proc near public ; 4912 push ax ; 4912 - 50 push dx ; 4913 - 52 mov ds:[1eh], al ; 4914 - a2 1e 00 mov al, cl ; 4917 - 8a c1 and al, 0c0h ; 4919 - 24 c0 shr al, 06h ; 491b - c0 e8 06 mov ds:[21h], al ; 491e - a2 21 00 and cl, 3fh ; 4921 - 80 e1 3f mov byte ptr ds:[01fh], cl ; 4924 - 88 0e 1f 00 mov byte ptr ds:[020h], ch ; 4928 - 88 2e 20 00 mov al, ds:[22h] ; 492c - a0 22 00 and al, 60h ; 492f - 24 60 mov dl, byte ptr ds:[002h] ; 4931 - 8a 16 02 00 mov cl, 3 ; 4935 - b1 03 shl dl, cl ; 4937 - d2 e2 or dl, dh ; 4939 - 0a d6 or al, dl ; 493b - 0a c2 mov ds:[22h], al ; 493d - a2 22 00 mov byte ptr ds:[023h], 0 ; 4940 - c6 06 23 00 00 mov dx, word ptr ds:[018h] ; 4945 - 8b 16 18 00 out dx, al ; 4949 - ee mov si, word ptr ds:[000h] ; 494a - 8b 36 00 00 mov ax, word ptr ds:[si + 5] ; 494e - 8b 44 05 shr ax, 1 ; 4951 - d1 e8 shr ax, 1 ; 4953 - d1 e8 mov dx, word ptr ds:[00eh] ; 4955 - 8b 16 0e 00 out dx, al ; 4959 - ee pop dx ; 495a - 5a pop ax ; 495b - 58 ret ; 495c - c3 HD_SELECT endp org 0495dh HD_POINT_PRM proc near public ; 495d mov al, ds:[02h] ; 495d - a0 02 00 mov si, 0024h ; 4960 - be 24 00 or al, al ; 4963 - 0a c0 jz HD_POINT_RET ; 4965 - 74 03 -> 496a add si, 10h ; 4967 - 83 c6 10 HD_POINT_RET: ; 496a ret ; 496a - c3 HD_POINT_PRM endp org 0496bh HD_RES_CTLR proc near public ; 496b push ax ; 496b - 50 push dx ; 496c - 52 push cx ; 496d - 51 mov dx, word ptr ds:[008h] ; 496e - 8b 16 08 00 in al, dx ; 4972 - ec mov ch, 32h ; 4973 - b5 32 RES_LOOP: ; 4975 dec ch ; 4975 - fe cd jnz RES_LOOP ; 4977 - 75 fc -> 4975 pop cx ; 4979 - 59 pop dx ; 497a - 5a pop ax ; 497b - 58 ret ; 497c - c3 HD_RES_CTLR endp org 0497dh OUT_CMD proc near public ; 497d push ax ; 497d - 50 push cx ; 497e - 51 push dx ; 497f - 52 push si ; 4980 - 56 mov cx, 6 ; 4981 - b9 06 00 mov si, 001eh ; 4984 - be 1e 00 mov dx, word ptr ds:[010h] ; 4987 - 8b 16 10 00 cld ; 498b - fc OUT_LP: ; 498c lodsb ; 498c - ac out dx, al ; 498d - ee add dx, 2 ; 498e - 83 c2 02 loop OUT_LP ; 4991 - e2 f9 -> 498c pop si ; 4993 - 5e pop dx ; 4994 - 5a pop cx ; 4995 - 59 pop ax ; 4996 - 58 ret ; 4997 - c3 OUT_CMD endp org 04998h WAIT_RDY proc near public ; 4998 push cx ; 4998 - 51 push dx ; 4999 - 52 mov dx, word ptr ds:[01ah] ; 499a - 8b 16 1a 00 sub cx, cx ; 499e - 2b c9 WAIT_RDY_LP: ; 49a0 in al, dx ; 49a0 - ec mov ah, al ; 49a1 - 8a e0 in al, dx ; 49a3 - ec cmp ah, al ; 49a4 - 3a e0 jnz WAIT_RDY_LP ; 49a6 - 75 f8 -> 49a0 and al, 0f0h ; 49a8 - 24 f0 cmp al, 50h ; 49aa - 3c 50 jz WAIT_RDY_ERR_CHK ; 49ac - 74 0a -> 49b8 loop WAIT_RDY_LP ; 49ae - e2 f0 -> 49a0 dec bl ; 49b0 - fe cb jnz WAIT_RDY_LP ; 49b2 - 75 ec -> 49a0 mov ah, 080h ; 49b4 - b4 80 jmp WAIT_RDY_ER2 ; 49b6 - eb 1f -> 49d7 WAIT_RDY_ERR_CHK: ; 49b8 test ah, 1 ; 49b8 - f6 c4 01 jnz WAIT_RDY_ER1 ; 49bb - 75 08 -> 49c5 test al, 20h ; 49bd - a8 20 jz WAIT_RDY_GD ; 49bf - 74 19 -> 49da mov ah, 0f0h ; 49c1 - b4 f0 jmp WAIT_RDY_ER2 ; 49c3 - eb 12 -> 49d7 WAIT_RDY_ER1: ; 49c5 test ah, 2 ; 49c5 - f6 c4 02 jz WAIT_RDY_ER15 ; 49c8 - 74 03 -> 49cd call HD_RES_CTLR ; 49ca - e8 9e ff -> 496b WAIT_RDY_ER15: ; 49cd mov dx, word ptr ds:[00ch] ; 49cd - 8b 16 0c 00 in al, dx ; 49d1 - ec and al, 0d7h ; 49d2 - 24 d7 call HD_ERRORR ; 49d4 - e8 08 00 -> 49df WAIT_RDY_ER2: ; 49d7 stc ; 49d7 - f9 jmp WAIT_RDY_XT ; 49d8 - eb 02 -> 49dc WAIT_RDY_GD: ; 49da sub ah, ah ; 49da - 2a e4 WAIT_RDY_XT: ; 49dc pop dx ; 49dc - 5a pop cx ; 49dd - 59 ret ; 49de - c3 WAIT_RDY endp org 049dfh HD_ERRORR proc near public ; 49df test al, 1 ; 49df - a8 01 jz HD_ER1 ; 49e1 - 74 03 -> 49e6 mov ah, 2 ; 49e3 - b4 02 ret ; 49e5 - c3 HD_ER1: ; 49e6 test al, 2 ; 49e6 - a8 02 jz HD_ER2 ; 49e8 - 74 03 -> 49ed mov ah, 40h ; 49ea - b4 40 ret ; 49ec - c3 HD_ER2: ; 49ed test al, 4 ; 49ed - a8 04 jz HD_ER3 ; 49ef - 74 03 -> 49f4 mov ah, 1 ; 49f1 - b4 01 ret ; 49f3 - c3 HD_ER3: ; 49f4 test al, 10h ; 49f4 - a8 10 jz HD_ER5 ; 49f6 - 74 03 -> 49fb mov ah, 4 ; 49f8 - b4 04 ret ; 49fa - c3 HD_ER5: ; 49fb test al, 40h ; 49fb - a8 40 jz HD_ER7 ; 49fd - 74 03 -> 4a02 mov ah, 10h ; 49ff - b4 10 ret ; 4a01 - c3 HD_ER7: ; 4a02 test al, 080h ; 4a02 - a8 80 jz HD_ERX ; 4a04 - 74 03 -> 4a09 mov ah, 0bh ; 4a06 - b4 0b ret ; 4a08 - c3 HD_ERX: ; 4a09 mov ah, 0bbh ; 4a09 - b4 bb ret ; 4a0b - c3 HD_ERRORR endp org 04a0ch HDIO0_INT proc near public ; 4a0c push ax ; 4a0c - 50 push dx ; 4a0d - 52 push ds ; 4a0e - 1e mov ax, 05c2h ; 4a0f - b8 c2 05 mov ds, ax ; 4a12 - 8e d8 mov dx, word ptr ds:[01ah] ; 4a14 - 8b 16 1a 00 in al, dx ; 4a18 - ec mov ah, al ; 4a19 - 8a e0 test ah, 080h ; 4a1b - f6 c4 80 jnz HDIO0_EXIT ; 4a1e - 75 05 -> 4a25 mov byte ptr ds:[004h], 0ffh ; 4a20 - c6 06 04 00 ff HDIO0_EXIT: ; 4a25 call ISSUE_EOI ; 4a25 - e8 f4 c0 -> 0b1c pop ds ; 4a28 - 1f pop dx ; 4a29 - 5a pop ax ; 4a2a - 58 iret ; 4a2b - cf HDIO0_INT endp db 000h ; 4a2c db 000h ; 4a2d db 000h ; 4a2e db 000h ; 4a2f db 000h ; 4a30 db 000h ; 4a31 db 000h ; 4a32 db 000h ; 4a33 db 000h ; 4a34 db 000h ; 4a35 db 000h ; 4a36 db 000h ; 4a37 db 000h ; 4a38 db 000h ; 4a39 db 000h ; 4a3a db 000h ; 4a3b db 000h ; 4a3c db 000h ; 4a3d db 000h ; 4a3e db 000h ; 4a3f db 000h ; 4a40 db 000h ; 4a41 db 000h ; 4a42 db 000h ; 4a43 db 000h ; 4a44 db 000h ; 4a45 db 000h ; 4a46 db 000h ; 4a47 db 000h ; 4a48 db 000h ; 4a49 db 000h ; 4a4a db 000h ; 4a4b db 000h ; 4a4c db 000h ; 4a4d db 000h ; 4a4e db 000h ; 4a4f db 000h ; 4a50 db 000h ; 4a51 db 000h ; 4a52 db 000h ; 4a53 db 000h ; 4a54 db 000h ; 4a55 db 000h ; 4a56 db 000h ; 4a57 db 000h ; 4a58 db 000h ; 4a59 db 000h ; 4a5a db 000h ; 4a5b db 000h ; 4a5c db 000h ; 4a5d db 000h ; 4a5e db 000h ; 4a5f db 000h ; 4a60 db 000h ; 4a61 db 000h ; 4a62 db 000h ; 4a63 db 000h ; 4a64 db 000h ; 4a65 db 000h ; 4a66 db 000h ; 4a67 db 000h ; 4a68 db 000h ; 4a69 db 000h ; 4a6a db 000h ; 4a6b db 000h ; 4a6c db 000h ; 4a6d db 000h ; 4a6e db 000h ; 4a6f db 000h ; 4a70 db 000h ; 4a71 db 000h ; 4a72 db 000h ; 4a73 db 000h ; 4a74 db 000h ; 4a75 db 000h ; 4a76 db 000h ; 4a77 db 000h ; 4a78 db 000h ; 4a79 db 000h ; 4a7a db 000h ; 4a7b db 000h ; 4a7c db 000h ; 4a7d db 000h ; 4a7e db 000h ; 4a7f db 000h ; 4a80 db 000h ; 4a81 db 000h ; 4a82 db 000h ; 4a83 db 000h ; 4a84 db 000h ; 4a85 db 000h ; 4a86 db 000h ; 4a87 db 000h ; 4a88 db 000h ; 4a89 db 000h ; 4a8a db 000h ; 4a8b db 000h ; 4a8c db 000h ; 4a8d db 000h ; 4a8e db 000h ; 4a8f db 000h ; 4a90 db 000h ; 4a91 db 000h ; 4a92 db 000h ; 4a93 db 000h ; 4a94 db 000h ; 4a95 db 000h ; 4a96 db 000h ; 4a97 db 000h ; 4a98 db 000h ; 4a99 db 000h ; 4a9a db 000h ; 4a9b db 000h ; 4a9c db 000h ; 4a9d db 000h ; 4a9e db 000h ; 4a9f db 000h ; 4aa0 db 000h ; 4aa1 db 000h ; 4aa2 db 000h ; 4aa3 db 000h ; 4aa4 db 000h ; 4aa5 db 000h ; 4aa6 db 000h ; 4aa7 db 000h ; 4aa8 db 000h ; 4aa9 db 000h ; 4aaa db 000h ; 4aab db 000h ; 4aac db 000h ; 4aad db 000h ; 4aae db 000h ; 4aaf db 000h ; 4ab0 db 000h ; 4ab1 db 000h ; 4ab2 db 000h ; 4ab3 db 000h ; 4ab4 db 000h ; 4ab5 db 000h ; 4ab6 db 000h ; 4ab7 db 000h ; 4ab8 db 000h ; 4ab9 db 000h ; 4aba db 000h ; 4abb db 000h ; 4abc db 000h ; 4abd db 000h ; 4abe db 000h ; 4abf db 000h ; 4ac0 db 000h ; 4ac1 db 000h ; 4ac2 db 000h ; 4ac3 db 000h ; 4ac4 db 000h ; 4ac5 db 000h ; 4ac6 db 000h ; 4ac7 db 000h ; 4ac8 db 000h ; 4ac9 db 000h ; 4aca db 000h ; 4acb db 000h ; 4acc db 000h ; 4acd db 000h ; 4ace db 000h ; 4acf db 000h ; 4ad0 db 000h ; 4ad1 db 000h ; 4ad2 db 000h ; 4ad3 db 000h ; 4ad4 db 000h ; 4ad5 db 000h ; 4ad6 db 000h ; 4ad7 db 000h ; 4ad8 db 000h ; 4ad9 db 000h ; 4ada db 000h ; 4adb db 000h ; 4adc db 000h ; 4add db 000h ; 4ade db 000h ; 4adf db 000h ; 4ae0 db 000h ; 4ae1 db 000h ; 4ae2 db 000h ; 4ae3 db 000h ; 4ae4 db 000h ; 4ae5 db 000h ; 4ae6 db 000h ; 4ae7 db 000h ; 4ae8 db 000h ; 4ae9 db 000h ; 4aea db 000h ; 4aeb db 000h ; 4aec db 000h ; 4aed db 000h ; 4aee db 000h ; 4aef db 000h ; 4af0 db 000h ; 4af1 db 000h ; 4af2 db 000h ; 4af3 db 000h ; 4af4 db 000h ; 4af5 db 000h ; 4af6 db 000h ; 4af7 db 000h ; 4af8 db 000h ; 4af9 db 000h ; 4afa db 000h ; 4afb db 000h ; 4afc db 000h ; 4afd db 000h ; 4afe db 000h ; 4aff db 000h ; 4b00 db 000h ; 4b01 db 000h ; 4b02 db 000h ; 4b03 db 000h ; 4b04 db 000h ; 4b05 db 000h ; 4b06 db 000h ; 4b07 db 000h ; 4b08 db 000h ; 4b09 db 000h ; 4b0a db 000h ; 4b0b db 000h ; 4b0c db 000h ; 4b0d db 000h ; 4b0e db 000h ; 4b0f db 000h ; 4b10 db 000h ; 4b11 db 000h ; 4b12 db 000h ; 4b13 db 000h ; 4b14 db 000h ; 4b15 db 000h ; 4b16 db 000h ; 4b17 db 000h ; 4b18 db 000h ; 4b19 db 000h ; 4b1a db 000h ; 4b1b db 000h ; 4b1c db 000h ; 4b1d db 000h ; 4b1e db 000h ; 4b1f db 000h ; 4b20 db 000h ; 4b21 db 000h ; 4b22 db 000h ; 4b23 db 000h ; 4b24 db 000h ; 4b25 db 000h ; 4b26 db 000h ; 4b27 db 000h ; 4b28 db 000h ; 4b29 db 000h ; 4b2a db 000h ; 4b2b db 000h ; 4b2c db 000h ; 4b2d db 000h ; 4b2e db 000h ; 4b2f db 000h ; 4b30 db 000h ; 4b31 db 000h ; 4b32 db 000h ; 4b33 db 000h ; 4b34 db 000h ; 4b35 db 000h ; 4b36 db 000h ; 4b37 db 000h ; 4b38 db 000h ; 4b39 db 000h ; 4b3a db 000h ; 4b3b db 000h ; 4b3c db 000h ; 4b3d db 000h ; 4b3e db 000h ; 4b3f db 000h ; 4b40 db 000h ; 4b41 db 000h ; 4b42 db 000h ; 4b43 db 000h ; 4b44 db 000h ; 4b45 db 000h ; 4b46 db 000h ; 4b47 db 000h ; 4b48 db 000h ; 4b49 db 000h ; 4b4a db 000h ; 4b4b db 000h ; 4b4c db 000h ; 4b4d db 000h ; 4b4e db 000h ; 4b4f db 000h ; 4b50 db 000h ; 4b51 db 000h ; 4b52 db 000h ; 4b53 db 000h ; 4b54 db 000h ; 4b55 db 000h ; 4b56 db 000h ; 4b57 db 000h ; 4b58 db 000h ; 4b59 db 000h ; 4b5a db 000h ; 4b5b db 000h ; 4b5c db 000h ; 4b5d db 000h ; 4b5e db 000h ; 4b5f db 000h ; 4b60 db 000h ; 4b61 db 000h ; 4b62 db 000h ; 4b63 db 000h ; 4b64 db 000h ; 4b65 db 000h ; 4b66 db 000h ; 4b67 db 000h ; 4b68 db 000h ; 4b69 db 000h ; 4b6a db 000h ; 4b6b db 000h ; 4b6c db 000h ; 4b6d db 000h ; 4b6e db 000h ; 4b6f db 000h ; 4b70 db 000h ; 4b71 db 000h ; 4b72 db 000h ; 4b73 db 000h ; 4b74 db 000h ; 4b75 db 000h ; 4b76 db 000h ; 4b77 db 000h ; 4b78 db 000h ; 4b79 db 000h ; 4b7a db 000h ; 4b7b db 000h ; 4b7c db 000h ; 4b7d db 000h ; 4b7e db 000h ; 4b7f db 000h ; 4b80 db 000h ; 4b81 db 000h ; 4b82 db 000h ; 4b83 db 000h ; 4b84 db 000h ; 4b85 db 000h ; 4b86 db 000h ; 4b87 db 000h ; 4b88 db 000h ; 4b89 db 000h ; 4b8a db 000h ; 4b8b db 000h ; 4b8c db 000h ; 4b8d db 000h ; 4b8e db 000h ; 4b8f db 000h ; 4b90 db 000h ; 4b91 db 000h ; 4b92 db 000h ; 4b93 db 000h ; 4b94 db 000h ; 4b95 db 000h ; 4b96 db 000h ; 4b97 db 000h ; 4b98 db 000h ; 4b99 db 000h ; 4b9a db 000h ; 4b9b db 000h ; 4b9c db 000h ; 4b9d db 000h ; 4b9e db 000h ; 4b9f db 000h ; 4ba0 db 000h ; 4ba1 db 000h ; 4ba2 db 000h ; 4ba3 db 000h ; 4ba4 db 000h ; 4ba5 db 000h ; 4ba6 db 000h ; 4ba7 db 000h ; 4ba8 db 000h ; 4ba9 db 000h ; 4baa db 000h ; 4bab db 000h ; 4bac db 000h ; 4bad db 000h ; 4bae db 000h ; 4baf db 000h ; 4bb0 db 000h ; 4bb1 db 000h ; 4bb2 db 000h ; 4bb3 db 000h ; 4bb4 db 000h ; 4bb5 db 000h ; 4bb6 db 000h ; 4bb7 db 000h ; 4bb8 db 000h ; 4bb9 db 000h ; 4bba db 000h ; 4bbb db 000h ; 4bbc db 000h ; 4bbd db 000h ; 4bbe db 000h ; 4bbf db 000h ; 4bc0 db 000h ; 4bc1 db 000h ; 4bc2 db 000h ; 4bc3 db 000h ; 4bc4 db 000h ; 4bc5 db 000h ; 4bc6 db 000h ; 4bc7 db 000h ; 4bc8 db 000h ; 4bc9 db 000h ; 4bca db 000h ; 4bcb db 000h ; 4bcc db 000h ; 4bcd db 000h ; 4bce db 000h ; 4bcf db 000h ; 4bd0 db 000h ; 4bd1 db 000h ; 4bd2 db 000h ; 4bd3 db 000h ; 4bd4 db 000h ; 4bd5 db 000h ; 4bd6 db 000h ; 4bd7 db 000h ; 4bd8 db 000h ; 4bd9 db 000h ; 4bda db 000h ; 4bdb db 000h ; 4bdc db 000h ; 4bdd db 000h ; 4bde db 000h ; 4bdf db 000h ; 4be0 db 000h ; 4be1 db 000h ; 4be2 db 000h ; 4be3 db 000h ; 4be4 db 000h ; 4be5 db 000h ; 4be6 db 000h ; 4be7 db 000h ; 4be8 db 000h ; 4be9 db 000h ; 4bea db 000h ; 4beb db 000h ; 4bec db 000h ; 4bed db 000h ; 4bee db 000h ; 4bef db 000h ; 4bf0 db 000h ; 4bf1 db 000h ; 4bf2 db 000h ; 4bf3 db 000h ; 4bf4 db 000h ; 4bf5 db 000h ; 4bf6 db 000h ; 4bf7 db 000h ; 4bf8 db 000h ; 4bf9 db 000h ; 4bfa db 000h ; 4bfb db 000h ; 4bfc db 000h ; 4bfd db 000h ; 4bfe db 000h ; 4bff db 000h ; 4c00 db 000h ; 4c01 db 000h ; 4c02 db 000h ; 4c03 db 000h ; 4c04 db 000h ; 4c05 db 000h ; 4c06 db 000h ; 4c07 db 000h ; 4c08 db 000h ; 4c09 db 000h ; 4c0a db 000h ; 4c0b db 000h ; 4c0c db 000h ; 4c0d db 000h ; 4c0e db 000h ; 4c0f db 000h ; 4c10 db 000h ; 4c11 db 000h ; 4c12 db 000h ; 4c13 db 000h ; 4c14 db 000h ; 4c15 db 000h ; 4c16 db 000h ; 4c17 db 000h ; 4c18 db 000h ; 4c19 db 000h ; 4c1a db 000h ; 4c1b db 000h ; 4c1c db 000h ; 4c1d db 000h ; 4c1e db 000h ; 4c1f db 000h ; 4c20 db 000h ; 4c21 db 000h ; 4c22 db 000h ; 4c23 db 000h ; 4c24 db 000h ; 4c25 db 000h ; 4c26 db 000h ; 4c27 db 000h ; 4c28 db 000h ; 4c29 db 000h ; 4c2a db 000h ; 4c2b db 000h ; 4c2c db 000h ; 4c2d db 000h ; 4c2e db 000h ; 4c2f db 000h ; 4c30 db 000h ; 4c31 db 000h ; 4c32 db 000h ; 4c33 db 000h ; 4c34 db 000h ; 4c35 db 000h ; 4c36 db 000h ; 4c37 db 000h ; 4c38 db 000h ; 4c39 db 000h ; 4c3a db 000h ; 4c3b db 000h ; 4c3c db 000h ; 4c3d db 000h ; 4c3e db 000h ; 4c3f db 000h ; 4c40 db 000h ; 4c41 db 000h ; 4c42 db 000h ; 4c43 db 000h ; 4c44 db 000h ; 4c45 db 000h ; 4c46 db 000h ; 4c47 db 000h ; 4c48 db 000h ; 4c49 db 000h ; 4c4a db 000h ; 4c4b db 000h ; 4c4c db 000h ; 4c4d db 000h ; 4c4e db 000h ; 4c4f db 000h ; 4c50 db 000h ; 4c51 db 000h ; 4c52 db 000h ; 4c53 db 000h ; 4c54 db 000h ; 4c55 db 000h ; 4c56 db 000h ; 4c57 db 000h ; 4c58 db 000h ; 4c59 db 000h ; 4c5a db 000h ; 4c5b db 000h ; 4c5c db 000h ; 4c5d db 000h ; 4c5e db 000h ; 4c5f db 000h ; 4c60 db 000h ; 4c61 db 000h ; 4c62 db 000h ; 4c63 db 000h ; 4c64 db 000h ; 4c65 db 000h ; 4c66 db 000h ; 4c67 db 000h ; 4c68 db 000h ; 4c69 db 000h ; 4c6a db 000h ; 4c6b db 000h ; 4c6c db 000h ; 4c6d db 000h ; 4c6e db 000h ; 4c6f db 000h ; 4c70 db 000h ; 4c71 db 000h ; 4c72 db 000h ; 4c73 db 000h ; 4c74 db 000h ; 4c75 db 000h ; 4c76 db 000h ; 4c77 db 000h ; 4c78 db 000h ; 4c79 db 000h ; 4c7a db 000h ; 4c7b db 000h ; 4c7c db 000h ; 4c7d db 000h ; 4c7e db 000h ; 4c7f db 000h ; 4c80 db 000h ; 4c81 db 000h ; 4c82 db 000h ; 4c83 db 000h ; 4c84 db 000h ; 4c85 db 000h ; 4c86 db 000h ; 4c87 db 000h ; 4c88 db 000h ; 4c89 db 000h ; 4c8a db 000h ; 4c8b db 000h ; 4c8c db 000h ; 4c8d db 000h ; 4c8e db 000h ; 4c8f db 000h ; 4c90 db 000h ; 4c91 db 000h ; 4c92 db 000h ; 4c93 db 000h ; 4c94 db 000h ; 4c95 db 000h ; 4c96 db 000h ; 4c97 db 000h ; 4c98 db 000h ; 4c99 db 000h ; 4c9a db 000h ; 4c9b db 000h ; 4c9c db 000h ; 4c9d db 000h ; 4c9e db 000h ; 4c9f db 000h ; 4ca0 db 000h ; 4ca1 db 000h ; 4ca2 db 000h ; 4ca3 db 000h ; 4ca4 db 000h ; 4ca5 db 000h ; 4ca6 db 000h ; 4ca7 db 000h ; 4ca8 db 000h ; 4ca9 db 000h ; 4caa db 000h ; 4cab db 000h ; 4cac db 000h ; 4cad db 000h ; 4cae db 000h ; 4caf db 000h ; 4cb0 db 000h ; 4cb1 db 000h ; 4cb2 db 000h ; 4cb3 db 000h ; 4cb4 db 000h ; 4cb5 db 000h ; 4cb6 db 000h ; 4cb7 db 000h ; 4cb8 db 000h ; 4cb9 db 000h ; 4cba db 000h ; 4cbb db 000h ; 4cbc db 000h ; 4cbd db 000h ; 4cbe db 000h ; 4cbf db 000h ; 4cc0 db 000h ; 4cc1 db 000h ; 4cc2 db 000h ; 4cc3 db 000h ; 4cc4 db 000h ; 4cc5 db 000h ; 4cc6 db 000h ; 4cc7 db 000h ; 4cc8 db 000h ; 4cc9 db 000h ; 4cca db 000h ; 4ccb db 000h ; 4ccc db 000h ; 4ccd db 000h ; 4cce db 000h ; 4ccf db 000h ; 4cd0 db 000h ; 4cd1 db 000h ; 4cd2 db 000h ; 4cd3 db 000h ; 4cd4 db 000h ; 4cd5 db 000h ; 4cd6 db 000h ; 4cd7 db 000h ; 4cd8 db 000h ; 4cd9 db 000h ; 4cda db 000h ; 4cdb db 000h ; 4cdc db 000h ; 4cdd db 000h ; 4cde db 000h ; 4cdf db 000h ; 4ce0 db 000h ; 4ce1 db 000h ; 4ce2 db 000h ; 4ce3 db 000h ; 4ce4 db 000h ; 4ce5 db 000h ; 4ce6 db 000h ; 4ce7 db 000h ; 4ce8 db 000h ; 4ce9 db 000h ; 4cea db 000h ; 4ceb db 000h ; 4cec db 000h ; 4ced db 000h ; 4cee db 000h ; 4cef db 000h ; 4cf0 db 000h ; 4cf1 db 000h ; 4cf2 db 000h ; 4cf3 db 000h ; 4cf4 db 000h ; 4cf5 db 000h ; 4cf6 db 000h ; 4cf7 db 000h ; 4cf8 db 000h ; 4cf9 db 000h ; 4cfa db 000h ; 4cfb db 000h ; 4cfc db 000h ; 4cfd db 000h ; 4cfe db 000h ; 4cff db 000h ; 4d00 db 000h ; 4d01 db 000h ; 4d02 db 000h ; 4d03 db 000h ; 4d04 db 000h ; 4d05 db 000h ; 4d06 db 000h ; 4d07 db 000h ; 4d08 db 000h ; 4d09 db 000h ; 4d0a db 000h ; 4d0b db 000h ; 4d0c db 000h ; 4d0d db 000h ; 4d0e db 000h ; 4d0f db 000h ; 4d10 db 000h ; 4d11 db 000h ; 4d12 db 000h ; 4d13 db 000h ; 4d14 db 000h ; 4d15 db 000h ; 4d16 db 000h ; 4d17 db 000h ; 4d18 db 000h ; 4d19 db 000h ; 4d1a db 000h ; 4d1b db 000h ; 4d1c db 000h ; 4d1d db 000h ; 4d1e db 000h ; 4d1f db 000h ; 4d20 db 000h ; 4d21 db 000h ; 4d22 db 000h ; 4d23 db 000h ; 4d24 db 000h ; 4d25 db 000h ; 4d26 db 000h ; 4d27 db 000h ; 4d28 db 000h ; 4d29 db 000h ; 4d2a db 000h ; 4d2b db 000h ; 4d2c db 000h ; 4d2d db 000h ; 4d2e db 000h ; 4d2f db 000h ; 4d30 db 000h ; 4d31 db 000h ; 4d32 db 000h ; 4d33 db 000h ; 4d34 db 000h ; 4d35 db 000h ; 4d36 db 000h ; 4d37 db 000h ; 4d38 db 000h ; 4d39 db 000h ; 4d3a db 000h ; 4d3b db 000h ; 4d3c db 000h ; 4d3d db 000h ; 4d3e db 000h ; 4d3f db 000h ; 4d40 db 000h ; 4d41 db 000h ; 4d42 db 000h ; 4d43 db 000h ; 4d44 db 000h ; 4d45 db 000h ; 4d46 db 000h ; 4d47 db 000h ; 4d48 db 000h ; 4d49 db 000h ; 4d4a db 000h ; 4d4b db 000h ; 4d4c db 000h ; 4d4d db 000h ; 4d4e db 000h ; 4d4f db 000h ; 4d50 db 000h ; 4d51 db 000h ; 4d52 db 000h ; 4d53 db 000h ; 4d54 db 000h ; 4d55 db 000h ; 4d56 db 000h ; 4d57 db 000h ; 4d58 db 000h ; 4d59 db 000h ; 4d5a db 000h ; 4d5b db 000h ; 4d5c db 000h ; 4d5d db 000h ; 4d5e db 000h ; 4d5f db 000h ; 4d60 db 000h ; 4d61 db 000h ; 4d62 db 000h ; 4d63 db 000h ; 4d64 db 000h ; 4d65 db 000h ; 4d66 db 000h ; 4d67 db 000h ; 4d68 db 000h ; 4d69 db 000h ; 4d6a db 000h ; 4d6b db 000h ; 4d6c db 000h ; 4d6d db 000h ; 4d6e db 000h ; 4d6f db 000h ; 4d70 db 000h ; 4d71 db 000h ; 4d72 db 000h ; 4d73 db 000h ; 4d74 db 000h ; 4d75 db 000h ; 4d76 db 000h ; 4d77 db 000h ; 4d78 db 000h ; 4d79 db 000h ; 4d7a db 000h ; 4d7b db 000h ; 4d7c db 000h ; 4d7d db 000h ; 4d7e db 000h ; 4d7f db 000h ; 4d80 db 000h ; 4d81 db 000h ; 4d82 db 000h ; 4d83 db 000h ; 4d84 db 000h ; 4d85 db 000h ; 4d86 db 000h ; 4d87 db 000h ; 4d88 db 000h ; 4d89 db 000h ; 4d8a db 000h ; 4d8b db 000h ; 4d8c db 000h ; 4d8d db 000h ; 4d8e db 000h ; 4d8f db 000h ; 4d90 db 000h ; 4d91 db 000h ; 4d92 db 000h ; 4d93 db 000h ; 4d94 db 000h ; 4d95 db 000h ; 4d96 db 000h ; 4d97 db 000h ; 4d98 db 000h ; 4d99 db 000h ; 4d9a db 000h ; 4d9b db 000h ; 4d9c db 000h ; 4d9d db 000h ; 4d9e db 000h ; 4d9f db 000h ; 4da0 db 000h ; 4da1 db 000h ; 4da2 db 000h ; 4da3 db 000h ; 4da4 db 000h ; 4da5 db 000h ; 4da6 db 000h ; 4da7 db 000h ; 4da8 db 000h ; 4da9 db 000h ; 4daa db 000h ; 4dab db 000h ; 4dac db 000h ; 4dad db 000h ; 4dae db 000h ; 4daf db 000h ; 4db0 db 000h ; 4db1 db 000h ; 4db2 db 000h ; 4db3 db 000h ; 4db4 db 000h ; 4db5 db 000h ; 4db6 db 000h ; 4db7 db 000h ; 4db8 db 000h ; 4db9 db 000h ; 4dba db 000h ; 4dbb db 000h ; 4dbc db 000h ; 4dbd db 000h ; 4dbe db 000h ; 4dbf db 000h ; 4dc0 db 000h ; 4dc1 db 000h ; 4dc2 db 000h ; 4dc3 db 000h ; 4dc4 db 000h ; 4dc5 db 000h ; 4dc6 db 000h ; 4dc7 db 000h ; 4dc8 db 000h ; 4dc9 db 000h ; 4dca db 000h ; 4dcb db 000h ; 4dcc db 000h ; 4dcd db 000h ; 4dce db 000h ; 4dcf db 000h ; 4dd0 db 000h ; 4dd1 db 000h ; 4dd2 db 000h ; 4dd3 db 000h ; 4dd4 db 000h ; 4dd5 db 000h ; 4dd6 db 000h ; 4dd7 db 000h ; 4dd8 db 000h ; 4dd9 db 000h ; 4dda db 000h ; 4ddb db 000h ; 4ddc db 000h ; 4ddd db 000h ; 4dde db 000h ; 4ddf db 000h ; 4de0 db 000h ; 4de1 db 000h ; 4de2 db 000h ; 4de3 db 000h ; 4de4 db 000h ; 4de5 db 000h ; 4de6 db 000h ; 4de7 db 000h ; 4de8 db 000h ; 4de9 db 000h ; 4dea db 000h ; 4deb db 000h ; 4dec db 000h ; 4ded db 000h ; 4dee db 000h ; 4def db 000h ; 4df0 db 000h ; 4df1 db 000h ; 4df2 db 000h ; 4df3 db 000h ; 4df4 db 000h ; 4df5 db 000h ; 4df6 db 000h ; 4df7 db 000h ; 4df8 db 000h ; 4df9 db 000h ; 4dfa db 000h ; 4dfb db 000h ; 4dfc db 000h ; 4dfd db 000h ; 4dfe db 000h ; 4dff db 000h ; 4e00 db 000h ; 4e01 db 000h ; 4e02 db 000h ; 4e03 db 000h ; 4e04 db 000h ; 4e05 db 000h ; 4e06 db 000h ; 4e07 db 000h ; 4e08 db 000h ; 4e09 db 000h ; 4e0a db 000h ; 4e0b db 000h ; 4e0c db 000h ; 4e0d db 000h ; 4e0e db 000h ; 4e0f db 000h ; 4e10 db 000h ; 4e11 db 000h ; 4e12 db 000h ; 4e13 db 000h ; 4e14 db 000h ; 4e15 db 000h ; 4e16 db 000h ; 4e17 db 000h ; 4e18 db 000h ; 4e19 db 000h ; 4e1a db 000h ; 4e1b db 000h ; 4e1c db 000h ; 4e1d db 000h ; 4e1e db 000h ; 4e1f db 000h ; 4e20 db 000h ; 4e21 db 000h ; 4e22 db 000h ; 4e23 db 000h ; 4e24 db 000h ; 4e25 db 000h ; 4e26 db 000h ; 4e27 db 000h ; 4e28 db 000h ; 4e29 db 000h ; 4e2a db 000h ; 4e2b db 000h ; 4e2c db 000h ; 4e2d db 000h ; 4e2e db 000h ; 4e2f db 000h ; 4e30 db 000h ; 4e31 db 000h ; 4e32 db 000h ; 4e33 db 000h ; 4e34 db 000h ; 4e35 db 000h ; 4e36 db 000h ; 4e37 db 000h ; 4e38 db 000h ; 4e39 db 000h ; 4e3a db 000h ; 4e3b db 000h ; 4e3c db 000h ; 4e3d db 000h ; 4e3e db 000h ; 4e3f db 000h ; 4e40 db 000h ; 4e41 db 000h ; 4e42 db 000h ; 4e43 db 000h ; 4e44 db 000h ; 4e45 db 000h ; 4e46 db 000h ; 4e47 db 000h ; 4e48 db 000h ; 4e49 db 000h ; 4e4a db 000h ; 4e4b db 000h ; 4e4c db 000h ; 4e4d db 000h ; 4e4e db 000h ; 4e4f db 000h ; 4e50 db 000h ; 4e51 db 000h ; 4e52 db 000h ; 4e53 db 000h ; 4e54 db 000h ; 4e55 db 000h ; 4e56 db 000h ; 4e57 db 000h ; 4e58 db 000h ; 4e59 db 000h ; 4e5a db 000h ; 4e5b db 000h ; 4e5c db 000h ; 4e5d db 000h ; 4e5e db 000h ; 4e5f db 000h ; 4e60 db 000h ; 4e61 db 000h ; 4e62 db 000h ; 4e63 db 000h ; 4e64 db 000h ; 4e65 db 000h ; 4e66 db 000h ; 4e67 db 000h ; 4e68 db 000h ; 4e69 db 000h ; 4e6a db 000h ; 4e6b db 000h ; 4e6c db 000h ; 4e6d db 000h ; 4e6e db 000h ; 4e6f db 000h ; 4e70 db 000h ; 4e71 db 000h ; 4e72 db 000h ; 4e73 db 000h ; 4e74 db 000h ; 4e75 db 000h ; 4e76 db 000h ; 4e77 db 000h ; 4e78 db 000h ; 4e79 db 000h ; 4e7a db 000h ; 4e7b db 000h ; 4e7c db 000h ; 4e7d db 000h ; 4e7e db 000h ; 4e7f db 000h ; 4e80 db 000h ; 4e81 db 000h ; 4e82 db 000h ; 4e83 db 000h ; 4e84 db 000h ; 4e85 db 000h ; 4e86 db 000h ; 4e87 db 000h ; 4e88 db 000h ; 4e89 db 000h ; 4e8a db 000h ; 4e8b db 000h ; 4e8c db 000h ; 4e8d db 000h ; 4e8e db 000h ; 4e8f db 000h ; 4e90 db 000h ; 4e91 db 000h ; 4e92 db 000h ; 4e93 db 000h ; 4e94 db 000h ; 4e95 db 000h ; 4e96 db 000h ; 4e97 db 000h ; 4e98 db 000h ; 4e99 db 000h ; 4e9a db 000h ; 4e9b db 000h ; 4e9c db 000h ; 4e9d db 000h ; 4e9e db 000h ; 4e9f db 000h ; 4ea0 db 000h ; 4ea1 db 000h ; 4ea2 db 000h ; 4ea3 db 000h ; 4ea4 db 000h ; 4ea5 db 000h ; 4ea6 db 000h ; 4ea7 db 000h ; 4ea8 db 000h ; 4ea9 db 000h ; 4eaa db 000h ; 4eab db 000h ; 4eac db 000h ; 4ead db 000h ; 4eae db 000h ; 4eaf db 000h ; 4eb0 db 000h ; 4eb1 db 000h ; 4eb2 db 000h ; 4eb3 db 000h ; 4eb4 db 000h ; 4eb5 db 000h ; 4eb6 db 000h ; 4eb7 db 000h ; 4eb8 db 000h ; 4eb9 db 000h ; 4eba db 000h ; 4ebb db 000h ; 4ebc db 000h ; 4ebd db 000h ; 4ebe db 000h ; 4ebf db 000h ; 4ec0 db 000h ; 4ec1 db 000h ; 4ec2 db 000h ; 4ec3 db 000h ; 4ec4 db 000h ; 4ec5 db 000h ; 4ec6 db 000h ; 4ec7 db 000h ; 4ec8 db 000h ; 4ec9 db 000h ; 4eca db 000h ; 4ecb db 000h ; 4ecc db 000h ; 4ecd db 000h ; 4ece db 000h ; 4ecf db 000h ; 4ed0 db 000h ; 4ed1 db 000h ; 4ed2 db 000h ; 4ed3 db 000h ; 4ed4 db 000h ; 4ed5 db 000h ; 4ed6 db 000h ; 4ed7 db 000h ; 4ed8 db 000h ; 4ed9 db 000h ; 4eda db 000h ; 4edb db 000h ; 4edc db 000h ; 4edd db 000h ; 4ede db 000h ; 4edf db 000h ; 4ee0 db 000h ; 4ee1 db 000h ; 4ee2 db 000h ; 4ee3 db 000h ; 4ee4 db 000h ; 4ee5 db 000h ; 4ee6 db 000h ; 4ee7 db 000h ; 4ee8 db 000h ; 4ee9 db 000h ; 4eea db 000h ; 4eeb db 000h ; 4eec db 000h ; 4eed db 000h ; 4eee db 000h ; 4eef db 000h ; 4ef0 db 000h ; 4ef1 db 000h ; 4ef2 db 000h ; 4ef3 db 000h ; 4ef4 db 000h ; 4ef5 db 000h ; 4ef6 db 000h ; 4ef7 db 000h ; 4ef8 db 000h ; 4ef9 db 000h ; 4efa db 000h ; 4efb db 000h ; 4efc db 000h ; 4efd db 000h ; 4efe db 000h ; 4eff db 000h ; 4f00 db 000h ; 4f01 db 000h ; 4f02 db 000h ; 4f03 db 000h ; 4f04 db 000h ; 4f05 db 000h ; 4f06 db 000h ; 4f07 db 000h ; 4f08 db 000h ; 4f09 db 000h ; 4f0a db 000h ; 4f0b db 000h ; 4f0c db 000h ; 4f0d db 000h ; 4f0e db 000h ; 4f0f db 000h ; 4f10 db 000h ; 4f11 db 000h ; 4f12 db 000h ; 4f13 db 000h ; 4f14 db 000h ; 4f15 db 000h ; 4f16 db 000h ; 4f17 db 000h ; 4f18 db 000h ; 4f19 db 000h ; 4f1a db 000h ; 4f1b db 000h ; 4f1c db 000h ; 4f1d db 000h ; 4f1e db 000h ; 4f1f db 000h ; 4f20 db 000h ; 4f21 db 000h ; 4f22 db 000h ; 4f23 db 000h ; 4f24 db 000h ; 4f25 db 000h ; 4f26 db 000h ; 4f27 db 000h ; 4f28 db 000h ; 4f29 db 000h ; 4f2a db 000h ; 4f2b db 000h ; 4f2c db 000h ; 4f2d db 000h ; 4f2e db 000h ; 4f2f db 000h ; 4f30 db 000h ; 4f31 db 000h ; 4f32 db 000h ; 4f33 db 000h ; 4f34 db 000h ; 4f35 db 000h ; 4f36 db 000h ; 4f37 db 000h ; 4f38 db 000h ; 4f39 db 000h ; 4f3a db 000h ; 4f3b db 000h ; 4f3c db 000h ; 4f3d db 000h ; 4f3e db 000h ; 4f3f db 000h ; 4f40 db 000h ; 4f41 db 000h ; 4f42 db 000h ; 4f43 db 000h ; 4f44 db 000h ; 4f45 db 000h ; 4f46 db 000h ; 4f47 db 000h ; 4f48 db 000h ; 4f49 db 000h ; 4f4a db 000h ; 4f4b db 000h ; 4f4c db 000h ; 4f4d db 000h ; 4f4e db 000h ; 4f4f db 000h ; 4f50 db 000h ; 4f51 db 000h ; 4f52 db 000h ; 4f53 db 000h ; 4f54 db 000h ; 4f55 db 000h ; 4f56 db 000h ; 4f57 db 000h ; 4f58 db 000h ; 4f59 db 000h ; 4f5a db 000h ; 4f5b db 000h ; 4f5c db 000h ; 4f5d db 000h ; 4f5e db 000h ; 4f5f db 000h ; 4f60 db 000h ; 4f61 db 000h ; 4f62 db 000h ; 4f63 db 000h ; 4f64 db 000h ; 4f65 db 000h ; 4f66 db 000h ; 4f67 db 000h ; 4f68 db 000h ; 4f69 db 000h ; 4f6a db 000h ; 4f6b db 000h ; 4f6c db 000h ; 4f6d db 000h ; 4f6e db 000h ; 4f6f db 000h ; 4f70 db 000h ; 4f71 db 000h ; 4f72 db 000h ; 4f73 db 000h ; 4f74 db 000h ; 4f75 db 000h ; 4f76 db 000h ; 4f77 db 000h ; 4f78 db 000h ; 4f79 db 000h ; 4f7a db 000h ; 4f7b db 000h ; 4f7c db 000h ; 4f7d db 000h ; 4f7e db 000h ; 4f7f db 000h ; 4f80 db 000h ; 4f81 db 000h ; 4f82 db 000h ; 4f83 db 000h ; 4f84 db 000h ; 4f85 db 000h ; 4f86 db 000h ; 4f87 db 000h ; 4f88 db 000h ; 4f89 db 000h ; 4f8a db 000h ; 4f8b db 000h ; 4f8c db 000h ; 4f8d db 000h ; 4f8e db 000h ; 4f8f db 000h ; 4f90 db 000h ; 4f91 db 000h ; 4f92 db 000h ; 4f93 db 000h ; 4f94 db 000h ; 4f95 db 000h ; 4f96 db 000h ; 4f97 db 000h ; 4f98 db 000h ; 4f99 db 000h ; 4f9a db 000h ; 4f9b db 000h ; 4f9c db 000h ; 4f9d db 000h ; 4f9e db 000h ; 4f9f db 000h ; 4fa0 db 000h ; 4fa1 db 000h ; 4fa2 db 000h ; 4fa3 db 000h ; 4fa4 db 000h ; 4fa5 db 000h ; 4fa6 db 000h ; 4fa7 db 000h ; 4fa8 db 000h ; 4fa9 db 000h ; 4faa db 000h ; 4fab db 000h ; 4fac db 000h ; 4fad db 000h ; 4fae db 000h ; 4faf db 000h ; 4fb0 db 000h ; 4fb1 db 000h ; 4fb2 db 000h ; 4fb3 db 000h ; 4fb4 db 000h ; 4fb5 db 000h ; 4fb6 db 000h ; 4fb7 db 000h ; 4fb8 db 000h ; 4fb9 db 000h ; 4fba db 000h ; 4fbb db 000h ; 4fbc db 000h ; 4fbd db 000h ; 4fbe db 000h ; 4fbf db 000h ; 4fc0 db 000h ; 4fc1 db 000h ; 4fc2 db 000h ; 4fc3 db 000h ; 4fc4 db 000h ; 4fc5 db 000h ; 4fc6 db 000h ; 4fc7 db 000h ; 4fc8 db 000h ; 4fc9 db 000h ; 4fca db 000h ; 4fcb db 000h ; 4fcc db 000h ; 4fcd db 000h ; 4fce db 000h ; 4fcf db 000h ; 4fd0 db 000h ; 4fd1 db 000h ; 4fd2 db 000h ; 4fd3 db 000h ; 4fd4 db 000h ; 4fd5 db 000h ; 4fd6 db 000h ; 4fd7 db 000h ; 4fd8 db 000h ; 4fd9 db 000h ; 4fda db 000h ; 4fdb db 000h ; 4fdc db 000h ; 4fdd db 000h ; 4fde db 000h ; 4fdf db 000h ; 4fe0 db 000h ; 4fe1 db 000h ; 4fe2 db 000h ; 4fe3 db 000h ; 4fe4 db 000h ; 4fe5 db 000h ; 4fe6 db 000h ; 4fe7 db 000h ; 4fe8 db 000h ; 4fe9 db 000h ; 4fea db 000h ; 4feb db 000h ; 4fec db 000h ; 4fed db 000h ; 4fee db 000h ; 4fef db 000h ; 4ff0 db 000h ; 4ff1 db 000h ; 4ff2 db 000h ; 4ff3 db 000h ; 4ff4 db 000h ; 4ff5 db 000h ; 4ff6 db 000h ; 4ff7 db 000h ; 4ff8 db 000h ; 4ff9 db 000h ; 4ffa db 000h ; 4ffb db 000h ; 4ffc db 000h ; 4ffd db 000h ; 4ffe db 000h ; 4fff db 000h ; 5000 db 000h ; 5001 db 000h ; 5002 db 000h ; 5003 db 000h ; 5004 db 000h ; 5005 db 000h ; 5006 db 000h ; 5007 db 000h ; 5008 db 000h ; 5009 db 000h ; 500a db 000h ; 500b db 000h ; 500c db 000h ; 500d db 000h ; 500e db 000h ; 500f db 000h ; 5010 db 000h ; 5011 db 000h ; 5012 db 000h ; 5013 db 000h ; 5014 db 000h ; 5015 db 000h ; 5016 db 000h ; 5017 db 000h ; 5018 db 000h ; 5019 db 000h ; 501a db 000h ; 501b db 000h ; 501c db 000h ; 501d db 000h ; 501e db 000h ; 501f db 000h ; 5020 db 000h ; 5021 db 000h ; 5022 db 000h ; 5023 db 000h ; 5024 db 000h ; 5025 db 000h ; 5026 db 000h ; 5027 db 000h ; 5028 db 000h ; 5029 db 000h ; 502a db 000h ; 502b db 000h ; 502c db 000h ; 502d db 000h ; 502e db 000h ; 502f db 000h ; 5030 db 000h ; 5031 db 000h ; 5032 db 000h ; 5033 db 000h ; 5034 db 000h ; 5035 db 000h ; 5036 db 000h ; 5037 db 000h ; 5038 db 000h ; 5039 db 000h ; 503a db 000h ; 503b db 000h ; 503c db 000h ; 503d db 000h ; 503e db 000h ; 503f db 000h ; 5040 db 000h ; 5041 db 000h ; 5042 db 000h ; 5043 db 000h ; 5044 db 000h ; 5045 db 000h ; 5046 db 000h ; 5047 db 000h ; 5048 db 000h ; 5049 db 000h ; 504a db 000h ; 504b db 000h ; 504c db 000h ; 504d db 000h ; 504e db 000h ; 504f db 000h ; 5050 db 000h ; 5051 db 000h ; 5052 db 000h ; 5053 db 000h ; 5054 db 000h ; 5055 db 000h ; 5056 db 000h ; 5057 db 000h ; 5058 db 000h ; 5059 db 000h ; 505a db 000h ; 505b db 000h ; 505c db 000h ; 505d db 000h ; 505e db 000h ; 505f db 000h ; 5060 db 000h ; 5061 db 000h ; 5062 db 000h ; 5063 db 000h ; 5064 db 000h ; 5065 db 000h ; 5066 db 000h ; 5067 db 000h ; 5068 db 000h ; 5069 db 000h ; 506a db 000h ; 506b db 000h ; 506c db 000h ; 506d db 000h ; 506e db 000h ; 506f db 000h ; 5070 db 000h ; 5071 db 000h ; 5072 db 000h ; 5073 db 000h ; 5074 db 000h ; 5075 db 000h ; 5076 db 000h ; 5077 db 000h ; 5078 db 000h ; 5079 db 000h ; 507a db 000h ; 507b db 000h ; 507c db 000h ; 507d db 000h ; 507e db 000h ; 507f db 000h ; 5080 db 000h ; 5081 db 000h ; 5082 db 000h ; 5083 db 000h ; 5084 db 000h ; 5085 db 000h ; 5086 db 000h ; 5087 db 000h ; 5088 db 000h ; 5089 db 000h ; 508a db 000h ; 508b db 000h ; 508c db 000h ; 508d db 000h ; 508e db 000h ; 508f db 000h ; 5090 db 000h ; 5091 db 000h ; 5092 db 000h ; 5093 db 000h ; 5094 db 000h ; 5095 db 000h ; 5096 db 000h ; 5097 db 000h ; 5098 db 000h ; 5099 db 000h ; 509a db 000h ; 509b db 000h ; 509c db 000h ; 509d db 000h ; 509e db 000h ; 509f db 000h ; 50a0 db 000h ; 50a1 db 000h ; 50a2 db 000h ; 50a3 db 000h ; 50a4 db 000h ; 50a5 db 000h ; 50a6 db 000h ; 50a7 db 000h ; 50a8 db 000h ; 50a9 db 000h ; 50aa db 000h ; 50ab db 000h ; 50ac db 000h ; 50ad db 000h ; 50ae db 000h ; 50af db 000h ; 50b0 db 000h ; 50b1 db 000h ; 50b2 db 000h ; 50b3 db 000h ; 50b4 db 000h ; 50b5 db 000h ; 50b6 db 000h ; 50b7 db 000h ; 50b8 db 000h ; 50b9 db 000h ; 50ba db 000h ; 50bb db 000h ; 50bc db 000h ; 50bd db 000h ; 50be db 000h ; 50bf db 000h ; 50c0 db 000h ; 50c1 db 000h ; 50c2 db 000h ; 50c3 db 000h ; 50c4 db 000h ; 50c5 db 000h ; 50c6 db 000h ; 50c7 db 000h ; 50c8 db 000h ; 50c9 db 000h ; 50ca db 000h ; 50cb db 000h ; 50cc db 000h ; 50cd db 000h ; 50ce db 000h ; 50cf db 000h ; 50d0 db 000h ; 50d1 db 000h ; 50d2 db 000h ; 50d3 db 000h ; 50d4 db 000h ; 50d5 db 000h ; 50d6 db 000h ; 50d7 db 000h ; 50d8 db 000h ; 50d9 db 000h ; 50da db 000h ; 50db db 000h ; 50dc db 000h ; 50dd db 000h ; 50de db 000h ; 50df db 000h ; 50e0 db 000h ; 50e1 db 000h ; 50e2 db 000h ; 50e3 db 000h ; 50e4 db 000h ; 50e5 db 000h ; 50e6 db 000h ; 50e7 db 000h ; 50e8 db 000h ; 50e9 db 000h ; 50ea db 000h ; 50eb db 000h ; 50ec db 000h ; 50ed db 000h ; 50ee db 000h ; 50ef db 000h ; 50f0 db 000h ; 50f1 db 000h ; 50f2 db 000h ; 50f3 db 000h ; 50f4 db 000h ; 50f5 db 000h ; 50f6 db 000h ; 50f7 db 000h ; 50f8 db 000h ; 50f9 db 000h ; 50fa db 000h ; 50fb db 000h ; 50fc db 000h ; 50fd db 000h ; 50fe db 000h ; 50ff db 000h ; 5100 db 000h ; 5101 db 000h ; 5102 db 000h ; 5103 db 000h ; 5104 db 000h ; 5105 db 000h ; 5106 db 000h ; 5107 db 000h ; 5108 db 000h ; 5109 db 000h ; 510a db 000h ; 510b db 000h ; 510c db 000h ; 510d db 000h ; 510e db 000h ; 510f db 000h ; 5110 db 000h ; 5111 db 000h ; 5112 db 000h ; 5113 db 000h ; 5114 db 000h ; 5115 db 000h ; 5116 db 000h ; 5117 db 000h ; 5118 db 000h ; 5119 db 000h ; 511a db 000h ; 511b db 000h ; 511c db 000h ; 511d db 000h ; 511e db 000h ; 511f db 000h ; 5120 db 000h ; 5121 db 000h ; 5122 db 000h ; 5123 db 000h ; 5124 db 000h ; 5125 db 000h ; 5126 db 000h ; 5127 db 000h ; 5128 db 000h ; 5129 db 000h ; 512a db 000h ; 512b db 000h ; 512c db 000h ; 512d db 000h ; 512e db 000h ; 512f db 000h ; 5130 db 000h ; 5131 db 000h ; 5132 db 000h ; 5133 db 000h ; 5134 db 000h ; 5135 db 000h ; 5136 db 000h ; 5137 db 000h ; 5138 db 000h ; 5139 db 000h ; 513a db 000h ; 513b db 000h ; 513c db 000h ; 513d db 000h ; 513e db 000h ; 513f db 000h ; 5140 db 000h ; 5141 db 000h ; 5142 db 000h ; 5143 db 000h ; 5144 db 000h ; 5145 db 000h ; 5146 db 000h ; 5147 db 000h ; 5148 db 000h ; 5149 db 000h ; 514a db 000h ; 514b db 000h ; 514c db 000h ; 514d db 000h ; 514e db 000h ; 514f db 000h ; 5150 db 000h ; 5151 db 000h ; 5152 db 000h ; 5153 db 000h ; 5154 db 000h ; 5155 db 000h ; 5156 db 000h ; 5157 db 000h ; 5158 db 000h ; 5159 db 000h ; 515a db 000h ; 515b db 000h ; 515c db 000h ; 515d db 000h ; 515e db 000h ; 515f db 000h ; 5160 db 000h ; 5161 db 000h ; 5162 db 000h ; 5163 db 000h ; 5164 db 000h ; 5165 db 000h ; 5166 db 000h ; 5167 db 000h ; 5168 db 000h ; 5169 db 000h ; 516a db 000h ; 516b db 000h ; 516c db 000h ; 516d db 000h ; 516e db 000h ; 516f db 000h ; 5170 db 000h ; 5171 db 000h ; 5172 db 000h ; 5173 db 000h ; 5174 db 000h ; 5175 db 000h ; 5176 db 000h ; 5177 db 000h ; 5178 db 000h ; 5179 db 000h ; 517a db 000h ; 517b db 000h ; 517c db 000h ; 517d db 000h ; 517e db 000h ; 517f db 000h ; 5180 db 000h ; 5181 db 000h ; 5182 db 000h ; 5183 db 000h ; 5184 db 000h ; 5185 db 000h ; 5186 db 000h ; 5187 db 000h ; 5188 db 000h ; 5189 db 000h ; 518a db 000h ; 518b db 000h ; 518c db 000h ; 518d db 000h ; 518e db 000h ; 518f db 000h ; 5190 db 000h ; 5191 db 000h ; 5192 db 000h ; 5193 db 000h ; 5194 db 000h ; 5195 db 000h ; 5196 db 000h ; 5197 db 000h ; 5198 db 000h ; 5199 db 000h ; 519a db 000h ; 519b db 000h ; 519c db 000h ; 519d db 000h ; 519e db 000h ; 519f db 000h ; 51a0 db 000h ; 51a1 db 000h ; 51a2 db 000h ; 51a3 db 000h ; 51a4 db 000h ; 51a5 db 000h ; 51a6 db 000h ; 51a7 db 000h ; 51a8 db 000h ; 51a9 db 000h ; 51aa db 000h ; 51ab db 000h ; 51ac db 000h ; 51ad db 000h ; 51ae db 000h ; 51af db 000h ; 51b0 db 000h ; 51b1 db 000h ; 51b2 db 000h ; 51b3 db 000h ; 51b4 db 000h ; 51b5 db 000h ; 51b6 db 000h ; 51b7 db 000h ; 51b8 db 000h ; 51b9 db 000h ; 51ba db 000h ; 51bb db 000h ; 51bc db 000h ; 51bd db 000h ; 51be db 000h ; 51bf db 000h ; 51c0 db 000h ; 51c1 db 000h ; 51c2 db 000h ; 51c3 db 000h ; 51c4 db 000h ; 51c5 db 000h ; 51c6 db 000h ; 51c7 db 000h ; 51c8 db 000h ; 51c9 db 000h ; 51ca db 000h ; 51cb db 000h ; 51cc db 000h ; 51cd db 000h ; 51ce db 000h ; 51cf db 000h ; 51d0 db 000h ; 51d1 db 000h ; 51d2 db 000h ; 51d3 db 000h ; 51d4 db 000h ; 51d5 db 000h ; 51d6 db 000h ; 51d7 db 000h ; 51d8 db 000h ; 51d9 db 000h ; 51da db 000h ; 51db db 000h ; 51dc db 000h ; 51dd db 000h ; 51de db 000h ; 51df db 000h ; 51e0 db 000h ; 51e1 db 000h ; 51e2 db 000h ; 51e3 db 000h ; 51e4 db 000h ; 51e5 db 000h ; 51e6 db 000h ; 51e7 db 000h ; 51e8 db 000h ; 51e9 db 000h ; 51ea db 000h ; 51eb db 000h ; 51ec db 000h ; 51ed db 000h ; 51ee db 000h ; 51ef db 000h ; 51f0 db 000h ; 51f1 db 000h ; 51f2 db 000h ; 51f3 db 000h ; 51f4 db 000h ; 51f5 db 000h ; 51f6 db 000h ; 51f7 db 000h ; 51f8 db 000h ; 51f9 db 000h ; 51fa db 000h ; 51fb db 000h ; 51fc db 000h ; 51fd db 000h ; 51fe db 000h ; 51ff db 000h ; 5200 db 000h ; 5201 db 000h ; 5202 db 000h ; 5203 db 000h ; 5204 db 000h ; 5205 db 000h ; 5206 db 000h ; 5207 db 000h ; 5208 db 000h ; 5209 db 000h ; 520a db 000h ; 520b db 000h ; 520c db 000h ; 520d db 000h ; 520e db 000h ; 520f db 000h ; 5210 db 000h ; 5211 db 000h ; 5212 db 000h ; 5213 db 000h ; 5214 db 000h ; 5215 db 000h ; 5216 db 000h ; 5217 db 000h ; 5218 db 000h ; 5219 db 000h ; 521a db 000h ; 521b db 000h ; 521c db 000h ; 521d db 000h ; 521e db 000h ; 521f db 000h ; 5220 db 000h ; 5221 db 000h ; 5222 db 000h ; 5223 db 000h ; 5224 db 000h ; 5225 db 000h ; 5226 db 000h ; 5227 db 000h ; 5228 db 000h ; 5229 db 000h ; 522a db 000h ; 522b db 000h ; 522c db 000h ; 522d db 000h ; 522e db 000h ; 522f db 000h ; 5230 db 000h ; 5231 db 000h ; 5232 db 000h ; 5233 db 000h ; 5234 db 000h ; 5235 db 000h ; 5236 db 000h ; 5237 db 000h ; 5238 db 000h ; 5239 db 000h ; 523a db 000h ; 523b db 000h ; 523c db 000h ; 523d db 000h ; 523e db 000h ; 523f db 000h ; 5240 db 000h ; 5241 db 000h ; 5242 db 000h ; 5243 db 000h ; 5244 db 000h ; 5245 db 000h ; 5246 db 000h ; 5247 db 000h ; 5248 db 000h ; 5249 db 000h ; 524a db 000h ; 524b db 000h ; 524c db 000h ; 524d db 000h ; 524e db 000h ; 524f db 000h ; 5250 db 000h ; 5251 db 000h ; 5252 db 000h ; 5253 db 000h ; 5254 db 000h ; 5255 db 000h ; 5256 db 000h ; 5257 db 000h ; 5258 db 000h ; 5259 db 000h ; 525a db 000h ; 525b db 000h ; 525c db 000h ; 525d db 000h ; 525e db 000h ; 525f db 000h ; 5260 db 000h ; 5261 db 000h ; 5262 db 000h ; 5263 db 000h ; 5264 db 000h ; 5265 db 000h ; 5266 db 000h ; 5267 db 000h ; 5268 db 000h ; 5269 db 000h ; 526a db 000h ; 526b db 000h ; 526c db 000h ; 526d db 000h ; 526e db 000h ; 526f db 000h ; 5270 db 000h ; 5271 db 000h ; 5272 db 000h ; 5273 db 000h ; 5274 db 000h ; 5275 db 000h ; 5276 db 000h ; 5277 db 000h ; 5278 db 000h ; 5279 db 000h ; 527a db 000h ; 527b db 000h ; 527c db 000h ; 527d db 000h ; 527e db 000h ; 527f db 000h ; 5280 db 000h ; 5281 db 000h ; 5282 db 000h ; 5283 db 000h ; 5284 db 000h ; 5285 db 000h ; 5286 db 000h ; 5287 db 000h ; 5288 db 000h ; 5289 db 000h ; 528a db 000h ; 528b db 000h ; 528c db 000h ; 528d db 000h ; 528e db 000h ; 528f db 000h ; 5290 db 000h ; 5291 db 000h ; 5292 db 000h ; 5293 db 000h ; 5294 db 000h ; 5295 db 000h ; 5296 db 000h ; 5297 db 000h ; 5298 db 000h ; 5299 db 000h ; 529a db 000h ; 529b db 000h ; 529c db 000h ; 529d db 000h ; 529e db 000h ; 529f db 000h ; 52a0 db 000h ; 52a1 db 000h ; 52a2 db 000h ; 52a3 db 000h ; 52a4 db 000h ; 52a5 db 000h ; 52a6 db 000h ; 52a7 db 000h ; 52a8 db 000h ; 52a9 db 000h ; 52aa db 000h ; 52ab db 000h ; 52ac db 000h ; 52ad db 000h ; 52ae db 000h ; 52af db 000h ; 52b0 db 000h ; 52b1 db 000h ; 52b2 db 000h ; 52b3 db 000h ; 52b4 db 000h ; 52b5 db 000h ; 52b6 db 000h ; 52b7 db 000h ; 52b8 db 000h ; 52b9 db 000h ; 52ba db 000h ; 52bb db 000h ; 52bc db 000h ; 52bd db 000h ; 52be db 000h ; 52bf db 000h ; 52c0 db 000h ; 52c1 db 000h ; 52c2 db 000h ; 52c3 db 000h ; 52c4 db 000h ; 52c5 db 000h ; 52c6 db 000h ; 52c7 db 000h ; 52c8 db 000h ; 52c9 db 000h ; 52ca db 000h ; 52cb db 000h ; 52cc db 000h ; 52cd db 000h ; 52ce db 000h ; 52cf db 000h ; 52d0 db 000h ; 52d1 db 000h ; 52d2 db 000h ; 52d3 db 000h ; 52d4 db 000h ; 52d5 db 000h ; 52d6 db 000h ; 52d7 db 000h ; 52d8 db 000h ; 52d9 db 000h ; 52da db 000h ; 52db db 000h ; 52dc db 000h ; 52dd db 000h ; 52de db 000h ; 52df db 000h ; 52e0 db 000h ; 52e1 db 000h ; 52e2 db 000h ; 52e3 db 000h ; 52e4 db 000h ; 52e5 db 000h ; 52e6 db 000h ; 52e7 db 000h ; 52e8 db 000h ; 52e9 db 000h ; 52ea db 000h ; 52eb db 000h ; 52ec db 000h ; 52ed db 000h ; 52ee db 000h ; 52ef db 000h ; 52f0 db 000h ; 52f1 db 000h ; 52f2 db 000h ; 52f3 db 000h ; 52f4 db 000h ; 52f5 db 000h ; 52f6 db 000h ; 52f7 db 000h ; 52f8 db 000h ; 52f9 db 000h ; 52fa db 000h ; 52fb db 000h ; 52fc db 000h ; 52fd db 000h ; 52fe db 000h ; 52ff db 000h ; 5300 db 000h ; 5301 db 000h ; 5302 db 000h ; 5303 db 000h ; 5304 db 000h ; 5305 db 000h ; 5306 db 000h ; 5307 db 000h ; 5308 db 000h ; 5309 db 000h ; 530a db 000h ; 530b db 000h ; 530c db 000h ; 530d db 000h ; 530e db 000h ; 530f db 000h ; 5310 db 000h ; 5311 db 000h ; 5312 db 000h ; 5313 db 000h ; 5314 db 000h ; 5315 db 000h ; 5316 db 000h ; 5317 db 000h ; 5318 db 000h ; 5319 db 000h ; 531a db 000h ; 531b db 000h ; 531c db 000h ; 531d db 000h ; 531e db 000h ; 531f db 000h ; 5320 db 000h ; 5321 db 000h ; 5322 db 000h ; 5323 db 000h ; 5324 db 000h ; 5325 db 000h ; 5326 db 000h ; 5327 db 000h ; 5328 db 000h ; 5329 db 000h ; 532a db 000h ; 532b db 000h ; 532c db 000h ; 532d db 000h ; 532e db 000h ; 532f db 000h ; 5330 db 000h ; 5331 db 000h ; 5332 db 000h ; 5333 db 000h ; 5334 db 000h ; 5335 db 000h ; 5336 db 000h ; 5337 db 000h ; 5338 db 000h ; 5339 db 000h ; 533a db 000h ; 533b db 000h ; 533c db 000h ; 533d db 000h ; 533e db 000h ; 533f db 000h ; 5340 db 000h ; 5341 db 000h ; 5342 db 000h ; 5343 db 000h ; 5344 db 000h ; 5345 db 000h ; 5346 db 000h ; 5347 db 000h ; 5348 db 000h ; 5349 db 000h ; 534a db 000h ; 534b db 000h ; 534c db 000h ; 534d db 000h ; 534e db 000h ; 534f db 000h ; 5350 db 000h ; 5351 db 000h ; 5352 db 000h ; 5353 db 000h ; 5354 db 000h ; 5355 db 000h ; 5356 db 000h ; 5357 db 000h ; 5358 db 000h ; 5359 db 000h ; 535a db 000h ; 535b db 000h ; 535c db 000h ; 535d db 000h ; 535e db 000h ; 535f db 000h ; 5360 db 000h ; 5361 db 000h ; 5362 db 000h ; 5363 db 000h ; 5364 db 000h ; 5365 db 000h ; 5366 db 000h ; 5367 db 000h ; 5368 db 000h ; 5369 db 000h ; 536a db 000h ; 536b db 000h ; 536c db 000h ; 536d db 000h ; 536e db 000h ; 536f db 000h ; 5370 db 000h ; 5371 db 000h ; 5372 db 000h ; 5373 db 000h ; 5374 db 000h ; 5375 db 000h ; 5376 db 000h ; 5377 db 000h ; 5378 db 000h ; 5379 db 000h ; 537a db 000h ; 537b db 000h ; 537c db 000h ; 537d db 000h ; 537e db 000h ; 537f db 000h ; 5380 db 000h ; 5381 db 000h ; 5382 db 000h ; 5383 db 000h ; 5384 db 000h ; 5385 db 000h ; 5386 db 000h ; 5387 db 000h ; 5388 db 000h ; 5389 db 000h ; 538a db 000h ; 538b db 000h ; 538c db 000h ; 538d db 000h ; 538e db 000h ; 538f db 000h ; 5390 db 000h ; 5391 db 000h ; 5392 db 000h ; 5393 db 000h ; 5394 db 000h ; 5395 db 000h ; 5396 db 000h ; 5397 db 000h ; 5398 db 000h ; 5399 db 000h ; 539a db 000h ; 539b db 000h ; 539c db 000h ; 539d db 000h ; 539e db 000h ; 539f db 000h ; 53a0 db 000h ; 53a1 db 000h ; 53a2 db 000h ; 53a3 db 000h ; 53a4 db 000h ; 53a5 db 000h ; 53a6 db 000h ; 53a7 db 000h ; 53a8 db 000h ; 53a9 db 000h ; 53aa db 000h ; 53ab db 000h ; 53ac db 000h ; 53ad db 000h ; 53ae db 000h ; 53af db 000h ; 53b0 db 000h ; 53b1 db 000h ; 53b2 db 000h ; 53b3 db 000h ; 53b4 db 000h ; 53b5 db 000h ; 53b6 db 000h ; 53b7 db 000h ; 53b8 db 000h ; 53b9 db 000h ; 53ba db 000h ; 53bb db 000h ; 53bc db 000h ; 53bd db 000h ; 53be db 000h ; 53bf db 000h ; 53c0 db 000h ; 53c1 db 000h ; 53c2 db 000h ; 53c3 db 000h ; 53c4 db 000h ; 53c5 db 000h ; 53c6 db 000h ; 53c7 db 000h ; 53c8 db 000h ; 53c9 db 000h ; 53ca db 000h ; 53cb db 000h ; 53cc db 000h ; 53cd db 000h ; 53ce db 000h ; 53cf db 000h ; 53d0 db 000h ; 53d1 db 000h ; 53d2 db 000h ; 53d3 db 000h ; 53d4 db 000h ; 53d5 db 000h ; 53d6 db 000h ; 53d7 db 000h ; 53d8 db 000h ; 53d9 db 000h ; 53da db 000h ; 53db db 000h ; 53dc db 000h ; 53dd db 000h ; 53de db 000h ; 53df db 000h ; 53e0 db 000h ; 53e1 db 000h ; 53e2 db 000h ; 53e3 db 000h ; 53e4 db 000h ; 53e5 db 000h ; 53e6 db 000h ; 53e7 db 000h ; 53e8 db 000h ; 53e9 db 000h ; 53ea db 000h ; 53eb db 000h ; 53ec db 000h ; 53ed db 000h ; 53ee db 000h ; 53ef db 000h ; 53f0 db 000h ; 53f1 db 000h ; 53f2 db 000h ; 53f3 db 000h ; 53f4 db 000h ; 53f5 db 000h ; 53f6 db 000h ; 53f7 db 000h ; 53f8 db 000h ; 53f9 db 000h ; 53fa db 000h ; 53fb db 000h ; 53fc db 000h ; 53fd db 000h ; 53fe db 000h ; 53ff db 000h ; 5400 db 000h ; 5401 db 000h ; 5402 db 000h ; 5403 db 000h ; 5404 db 000h ; 5405 db 000h ; 5406 db 000h ; 5407 db 000h ; 5408 db 000h ; 5409 db 000h ; 540a db 000h ; 540b db 000h ; 540c db 000h ; 540d db 000h ; 540e db 000h ; 540f db 000h ; 5410 db 000h ; 5411 db 000h ; 5412 db 000h ; 5413 db 000h ; 5414 db 000h ; 5415 db 000h ; 5416 db 000h ; 5417 db 000h ; 5418 db 000h ; 5419 db 000h ; 541a db 000h ; 541b db 000h ; 541c db 000h ; 541d db 000h ; 541e db 000h ; 541f db 000h ; 5420 db 000h ; 5421 db 000h ; 5422 db 000h ; 5423 db 000h ; 5424 db 000h ; 5425 db 000h ; 5426 db 000h ; 5427 db 000h ; 5428 db 000h ; 5429 db 000h ; 542a db 000h ; 542b db 000h ; 542c db 000h ; 542d db 000h ; 542e db 000h ; 542f db 000h ; 5430 db 000h ; 5431 db 000h ; 5432 db 000h ; 5433 db 000h ; 5434 db 000h ; 5435 db 000h ; 5436 db 000h ; 5437 db 000h ; 5438 db 000h ; 5439 db 005h ; 543a db 005h ; 543b db 000h ; 543c db 000h ; 543d db 000h ; 543e db 000h ; 543f db 000h ; 5440 db 000h ; 5441 db 000h ; 5442 db 000h ; 5443 db 000h ; 5444 db 000h ; 5445 db 000h ; 5446 db 000h ; 5447 db 000h ; 5448 db 000h ; 5449 db 000h ; 544a db 000h ; 544b db 000h ; 544c db 000h ; 544d db 000h ; 544e db 000h ; 544f db 000h ; 5450 db 000h ; 5451 db 000h ; 5452 db 000h ; 5453 db 000h ; 5454 db 000h ; 5455 db 000h ; 5456 db 000h ; 5457 db 000h ; 5458 db 000h ; 5459 db 000h ; 545a db 000h ; 545b db 000h ; 545c db 000h ; 545d db 000h ; 545e db 000h ; 545f db 000h ; 5460 db 000h ; 5461 db 000h ; 5462 db 000h ; 5463 db 000h ; 5464 db 000h ; 5465 db 000h ; 5466 db 000h ; 5467 db 000h ; 5468 db 000h ; 5469 db 000h ; 546a db 000h ; 546b db 000h ; 546c db 000h ; 546d db 000h ; 546e db 000h ; 546f db 000h ; 5470 db 000h ; 5471 db 000h ; 5472 db 000h ; 5473 db 000h ; 5474 db 000h ; 5475 db 000h ; 5476 db 000h ; 5477 db 000h ; 5478 db 000h ; 5479 db 000h ; 547a db 000h ; 547b db 000h ; 547c db 000h ; 547d db 000h ; 547e db 000h ; 547f db 000h ; 5480 db 000h ; 5481 db 000h ; 5482 db 000h ; 5483 db 000h ; 5484 db 000h ; 5485 db 000h ; 5486 db 000h ; 5487 db 000h ; 5488 db 000h ; 5489 db 000h ; 548a db 000h ; 548b db 000h ; 548c db 000h ; 548d db 000h ; 548e db 000h ; 548f db 000h ; 5490 db 000h ; 5491 db 000h ; 5492 db 000h ; 5493 db 000h ; 5494 db 000h ; 5495 db 000h ; 5496 db 000h ; 5497 db 000h ; 5498 db 000h ; 5499 db 000h ; 549a db 000h ; 549b db 000h ; 549c db 000h ; 549d db 000h ; 549e db 000h ; 549f db 000h ; 54a0 db 000h ; 54a1 db 000h ; 54a2 db 000h ; 54a3 db 000h ; 54a4 db 000h ; 54a5 db 000h ; 54a6 db 000h ; 54a7 db 000h ; 54a8 db 000h ; 54a9 db 000h ; 54aa db 000h ; 54ab db 000h ; 54ac db 000h ; 54ad db 000h ; 54ae db 000h ; 54af db 000h ; 54b0 db 000h ; 54b1 db 000h ; 54b2 db 000h ; 54b3 db 000h ; 54b4 db 000h ; 54b5 db 000h ; 54b6 db 000h ; 54b7 db 000h ; 54b8 db 000h ; 54b9 db 000h ; 54ba db 000h ; 54bb db 000h ; 54bc db 000h ; 54bd db 000h ; 54be db 000h ; 54bf db 000h ; 54c0 db 000h ; 54c1 db 000h ; 54c2 db 000h ; 54c3 db 000h ; 54c4 db 000h ; 54c5 db 000h ; 54c6 db 000h ; 54c7 db 000h ; 54c8 db 000h ; 54c9 db 000h ; 54ca db 000h ; 54cb db 000h ; 54cc db 000h ; 54cd db 000h ; 54ce db 000h ; 54cf db 000h ; 54d0 db 000h ; 54d1 db 000h ; 54d2 db 000h ; 54d3 db 000h ; 54d4 db 000h ; 54d5 db 000h ; 54d6 db 000h ; 54d7 db 000h ; 54d8 db 000h ; 54d9 db 000h ; 54da db 000h ; 54db db 000h ; 54dc db 000h ; 54dd db 000h ; 54de db 000h ; 54df db 000h ; 54e0 db 000h ; 54e1 db 000h ; 54e2 db 031h ; 54e3 db 028h ; 54e4 db 031h ; 54e5 db 032h ; 54e6 db 029h ; 54e7 db 020h ; 54e8 db 020h ; 54e9 db 020h ; 54ea db 066h ; 54eb db 064h ; 54ec db 069h ; 54ed db 076h ; 54ee db 020h ; 54ef db 0d2h ; 54f0 db 000h ; 54f1 db 000h ; 54f2 db 000h ; 54f3 db 000h ; 54f4 db 000h ; 54f5 db 000h ; 54f6 db 000h ; 54f7 db 000h ; 54f8 db 000h ; 54f9 db 000h ; 54fa db 000h ; 54fb db 000h ; 54fc db 000h ; 54fd db 000h ; 54fe db 000h ; 54ff db 000h ; 5500 db 000h ; 5501 db 000h ; 5502 db 000h ; 5503 db 000h ; 5504 db 000h ; 5505 db 000h ; 5506 db 000h ; 5507 db 000h ; 5508 db 000h ; 5509 db 000h ; 550a db 000h ; 550b db 000h ; 550c db 000h ; 550d db 000h ; 550e db 000h ; 550f db 000h ; 5510 db 000h ; 5511 db 000h ; 5512 db 000h ; 5513 db 000h ; 5514 db 000h ; 5515 db 000h ; 5516 db 000h ; 5517 db 000h ; 5518 db 000h ; 5519 db 000h ; 551a db 000h ; 551b db 000h ; 551c db 000h ; 551d db 000h ; 551e db 000h ; 551f db 000h ; 5520 db 000h ; 5521 db 000h ; 5522 db 000h ; 5523 db 000h ; 5524 db 000h ; 5525 db 000h ; 5526 db 000h ; 5527 db 000h ; 5528 db 000h ; 5529 db 000h ; 552a db 000h ; 552b db 000h ; 552c db 000h ; 552d db 000h ; 552e db 000h ; 552f db 000h ; 5530 db 000h ; 5531 db 000h ; 5532 db 000h ; 5533 db 000h ; 5534 db 000h ; 5535 db 000h ; 5536 db 000h ; 5537 db 000h ; 5538 db 000h ; 5539 db 000h ; 553a db 000h ; 553b db 000h ; 553c db 000h ; 553d db 000h ; 553e db 000h ; 553f db 000h ; 5540 db 000h ; 5541 db 000h ; 5542 db 000h ; 5543 db 000h ; 5544 db 000h ; 5545 db 000h ; 5546 db 000h ; 5547 db 000h ; 5548 db 000h ; 5549 db 000h ; 554a db 000h ; 554b db 000h ; 554c db 000h ; 554d db 000h ; 554e db 000h ; 554f db 000h ; 5550 db 000h ; 5551 db 000h ; 5552 db 000h ; 5553 db 000h ; 5554 db 000h ; 5555 db 000h ; 5556 db 000h ; 5557 db 000h ; 5558 db 000h ; 5559 db 000h ; 555a db 000h ; 555b db 000h ; 555c db 000h ; 555d db 000h ; 555e db 000h ; 555f db 000h ; 5560 db 000h ; 5561 db 000h ; 5562 db 000h ; 5563 db 000h ; 5564 db 000h ; 5565 db 000h ; 5566 db 000h ; 5567 db 000h ; 5568 db 000h ; 5569 db 000h ; 556a db 000h ; 556b db 000h ; 556c db 000h ; 556d db 000h ; 556e db 000h ; 556f db 000h ; 5570 db 000h ; 5571 db 000h ; 5572 db 000h ; 5573 db 000h ; 5574 db 000h ; 5575 db 000h ; 5576 db 000h ; 5577 db 000h ; 5578 db 000h ; 5579 db 000h ; 557a db 000h ; 557b db 000h ; 557c db 000h ; 557d db 000h ; 557e db 000h ; 557f db 000h ; 5580 db 000h ; 5581 db 000h ; 5582 db 000h ; 5583 db 000h ; 5584 db 000h ; 5585 db 000h ; 5586 db 000h ; 5587 db 000h ; 5588 db 000h ; 5589 db 000h ; 558a db 000h ; 558b db 000h ; 558c db 000h ; 558d db 000h ; 558e db 000h ; 558f db 000h ; 5590 db 000h ; 5591 db 000h ; 5592 db 000h ; 5593 db 000h ; 5594 db 000h ; 5595 db 000h ; 5596 db 000h ; 5597 db 000h ; 5598 db 000h ; 5599 db 000h ; 559a db 000h ; 559b db 000h ; 559c db 000h ; 559d db 000h ; 559e db 000h ; 559f db 000h ; 55a0 db 000h ; 55a1 db 000h ; 55a2 db 000h ; 55a3 db 000h ; 55a4 db 000h ; 55a5 db 000h ; 55a6 db 000h ; 55a7 db 000h ; 55a8 db 000h ; 55a9 db 000h ; 55aa db 000h ; 55ab db 000h ; 55ac db 000h ; 55ad db 000h ; 55ae db 000h ; 55af db 000h ; 55b0 db 000h ; 55b1 db 000h ; 55b2 db 000h ; 55b3 db 000h ; 55b4 db 000h ; 55b5 db 000h ; 55b6 db 000h ; 55b7 db 000h ; 55b8 db 000h ; 55b9 db 000h ; 55ba db 000h ; 55bb db 000h ; 55bc db 000h ; 55bd db 000h ; 55be db 000h ; 55bf db 000h ; 55c0 db 000h ; 55c1 db 000h ; 55c2 db 000h ; 55c3 db 000h ; 55c4 db 000h ; 55c5 db 000h ; 55c6 db 000h ; 55c7 db 000h ; 55c8 db 000h ; 55c9 db 000h ; 55ca db 000h ; 55cb db 000h ; 55cc db 000h ; 55cd db 000h ; 55ce db 000h ; 55cf db 000h ; 55d0 db 000h ; 55d1 db 000h ; 55d2 db 000h ; 55d3 db 000h ; 55d4 db 000h ; 55d5 db 000h ; 55d6 db 000h ; 55d7 db 000h ; 55d8 db 000h ; 55d9 db 000h ; 55da db 000h ; 55db db 000h ; 55dc db 000h ; 55dd db 000h ; 55de db 000h ; 55df db 000h ; 55e0 db 000h ; 55e1 db 000h ; 55e2 db 000h ; 55e3 db 000h ; 55e4 db 000h ; 55e5 db 000h ; 55e6 db 000h ; 55e7 db 000h ; 55e8 db 000h ; 55e9 db 000h ; 55ea db 000h ; 55eb db 000h ; 55ec db 000h ; 55ed db 000h ; 55ee db 000h ; 55ef db 000h ; 55f0 db 000h ; 55f1 db 000h ; 55f2 db 000h ; 55f3 db 000h ; 55f4 db 000h ; 55f5 db 000h ; 55f6 db 000h ; 55f7 db 000h ; 55f8 db 000h ; 55f9 db 000h ; 55fa db 000h ; 55fb db 000h ; 55fc db 000h ; 55fd db 000h ; 55fe db 000h ; 55ff db 000h ; 5600 db 000h ; 5601 db 000h ; 5602 db 000h ; 5603 db 000h ; 5604 db 000h ; 5605 db 000h ; 5606 db 000h ; 5607 db 000h ; 5608 db 000h ; 5609 db 000h ; 560a db 000h ; 560b db 000h ; 560c db 000h ; 560d db 000h ; 560e db 000h ; 560f db 000h ; 5610 db 000h ; 5611 db 000h ; 5612 db 000h ; 5613 db 000h ; 5614 db 000h ; 5615 db 000h ; 5616 db 000h ; 5617 db 000h ; 5618 db 000h ; 5619 db 000h ; 561a db 000h ; 561b db 000h ; 561c db 000h ; 561d db 000h ; 561e db 000h ; 561f org 05620h HD_PTR dw 00000h ; 5620 HD_DRIVE db 000h ; 5622 HD_NUM db 000h ; 5623 HD_INT_FLAG db 000h ; 5624 DISK_STATUS2 db 000h ; 5625 HD0_HERE db 000h ; 5626 HD1_HERE db 000h ; 5627 RESET_PRT dw 0026ch ; 5628 DATA_PRT dw 00270h ; 562a ERR_PRT dw 00272h ; 562c WPC_PRT dw 00272h ; 562e SECNT_PRT dw 00274h ; 5630 SECNO_PRT dw 00276h ; 5632 CYLLO_PRT dw 00278h ; 5634 CYLHI_PRT dw 0027ah ; 5636 SDH_PRT dw 0027ch ; 5638 STS_PRT dw 0027eh ; 563a CMD_PRT dw 0027eh ; 563c db 000h ; 563e db 000h ; 563f db 000h ; 5640 db 000h ; 5641 db 020h ; 5642 db 000h ; 5643 db 032h ; 5644 db 001h ; 5645 db 004h ; 5646 db 000h ; 5647 db 000h ; 5648 db 080h ; 5649 db 000h ; 564a db 000h ; 564b db 000h ; 564c db 002h ; 564d db 002h ; 564e db 010h ; 564f db 000h ; 5650 db 000h ; 5651 db 000h ; 5652 db 000h ; 5653 db 032h ; 5654 db 001h ; 5655 db 004h ; 5656 db 000h ; 5657 db 000h ; 5658 db 080h ; 5659 db 000h ; 565a db 000h ; 565b db 000h ; 565c db 002h ; 565d db 002h ; 565e db 010h ; 565f db 000h ; 5660 db 000h ; 5661 db 000h ; 5662 db 000h ; 5663 db 032h ; 5664 db 001h ; 5665 db 004h ; 5666 db 000h ; 5667 db 000h ; 5668 db 080h ; 5669 db 000h ; 566a db 000h ; 566b db 000h ; 566c db 002h ; 566d db 002h ; 566e db 010h ; 566f db 000h ; 5670 db 000h ; 5671 db 000h ; 5672 db 000h ; 5673 db 032h ; 5674 db 001h ; 5675 db 004h ; 5676 db 000h ; 5677 db 000h ; 5678 db 080h ; 5679 db 000h ; 567a db 000h ; 567b db 000h ; 567c db 002h ; 567d db 002h ; 567e db 010h ; 567f db 000h ; 5680 db 000h ; 5681 db 000h ; 5682 db 000h ; 5683 org 05684h HD_BPB_PTR dw 00068h ; 5684 db 07bh ; 5686 db 000h ; 5687 org 05688h HD_BPB_0 db 000h ; 5688 db 002h ; 5689 db 010h ; 568a db 001h ; 568b db 000h ; 568c db 002h ; 568d db 000h ; 568e db 002h ; 568f db 048h ; 5690 db 051h ; 5691 db 0f8h ; 5692 db 00ch ; 5693 db 000h ; 5694 db 011h ; 5695 db 000h ; 5696 db 000h ; 5697 db 000h ; 5698 db 000h ; 5699 db 000h ; 569a org 0569bh HD_BPB_1 db 000h ; 569b db 002h ; 569c db 010h ; 569d db 001h ; 569e db 000h ; 569f db 002h ; 56a0 db 000h ; 56a1 db 002h ; 56a2 db 048h ; 56a3 db 051h ; 56a4 db 0f8h ; 56a5 db 00ch ; 56a6 db 000h ; 56a7 db 011h ; 56a8 db 000h ; 56a9 db 000h ; 56aa db 000h ; 56ab db 000h ; 56ac db 000h ; 56ad org 056aeh HD_MEDIA_FLAG db 001h ; 56ae db 000h ; 56af db 000h ; 56b0 db 000h ; 56b1 db 000h ; 56b2 db 000h ; 56b3 db 000h ; 56b4 db 000h ; 56b5 db 000h ; 56b6 db 000h ; 56b7 db 000h ; 56b8 db 000h ; 56b9 db 000h ; 56ba db 000h ; 56bb db 000h ; 56bc db 000h ; 56bd db 000h ; 56be db 000h ; 56bf db 000h ; 56c0 db 000h ; 56c1 db 000h ; 56c2 db 000h ; 56c3 db 000h ; 56c4 db 000h ; 56c5 db 000h ; 56c6 db 000h ; 56c7 db 000h ; 56c8 db 000h ; 56c9 db 000h ; 56ca db 000h ; 56cb db 000h ; 56cc db 000h ; 56cd db 000h ; 56ce db 000h ; 56cf db 000h ; 56d0 db 000h ; 56d1 db 000h ; 56d2 db 000h ; 56d3 db 000h ; 56d4 db 000h ; 56d5 db 000h ; 56d6 db 000h ; 56d7 db 000h ; 56d8 db 000h ; 56d9 db 000h ; 56da db 000h ; 56db db 000h ; 56dc db 000h ; 56dd db 000h ; 56de db 000h ; 56df db 000h ; 56e0 db 000h ; 56e1 db 000h ; 56e2 db 000h ; 56e3 db 000h ; 56e4 db 000h ; 56e5 db 000h ; 56e6 db 000h ; 56e7 db 000h ; 56e8 db 000h ; 56e9 db 000h ; 56ea db 000h ; 56eb db 000h ; 56ec db 000h ; 56ed db 000h ; 56ee db 000h ; 56ef db 000h ; 56f0 db 000h ; 56f1 db 000h ; 56f2 db 000h ; 56f3 db 000h ; 56f4 db 000h ; 56f5 db 000h ; 56f6 db 000h ; 56f7 db 000h ; 56f8 db 000h ; 56f9 db 000h ; 56fa db 000h ; 56fb db 000h ; 56fc db 000h ; 56fd db 000h ; 56fe db 000h ; 56ff db 000h ; 5700 db 000h ; 5701 db 000h ; 5702 db 000h ; 5703 db 000h ; 5704 db 000h ; 5705 db 000h ; 5706 db 000h ; 5707 db 000h ; 5708 db 000h ; 5709 db 000h ; 570a db 000h ; 570b db 000h ; 570c db 000h ; 570d db 000h ; 570e db 000h ; 570f db 000h ; 5710 db 000h ; 5711 db 000h ; 5712 db 000h ; 5713 db 000h ; 5714 db 000h ; 5715 db 000h ; 5716 db 000h ; 5717 db 000h ; 5718 db 000h ; 5719 db 000h ; 571a db 000h ; 571b db 000h ; 571c db 000h ; 571d db 000h ; 571e db 000h ; 571f db 000h ; 5720 db 000h ; 5721 db 000h ; 5722 db 000h ; 5723 db 000h ; 5724 db 000h ; 5725 db 000h ; 5726 db 000h ; 5727 db 000h ; 5728 db 000h ; 5729 db 000h ; 572a db 000h ; 572b db 000h ; 572c db 000h ; 572d db 000h ; 572e db 000h ; 572f db 000h ; 5730 db 000h ; 5731 db 000h ; 5732 db 000h ; 5733 db 000h ; 5734 db 000h ; 5735 db 000h ; 5736 db 000h ; 5737 db 000h ; 5738 db 000h ; 5739 db 000h ; 573a db 000h ; 573b db 000h ; 573c db 000h ; 573d db 000h ; 573e db 000h ; 573f db 000h ; 5740 db 000h ; 5741 db 000h ; 5742 db 000h ; 5743 db 000h ; 5744 db 000h ; 5745 db 000h ; 5746 db 000h ; 5747 db 000h ; 5748 db 000h ; 5749 db 000h ; 574a db 000h ; 574b db 000h ; 574c db 000h ; 574d db 000h ; 574e db 000h ; 574f db 000h ; 5750 db 000h ; 5751 db 000h ; 5752 db 000h ; 5753 db 000h ; 5754 db 000h ; 5755 db 000h ; 5756 db 000h ; 5757 db 000h ; 5758 db 000h ; 5759 db 000h ; 575a db 000h ; 575b db 000h ; 575c db 000h ; 575d db 000h ; 575e db 000h ; 575f db 000h ; 5760 db 000h ; 5761 db 000h ; 5762 db 000h ; 5763 db 000h ; 5764 db 000h ; 5765 db 000h ; 5766 db 000h ; 5767 db 000h ; 5768 db 000h ; 5769 db 000h ; 576a db 000h ; 576b db 000h ; 576c db 000h ; 576d db 000h ; 576e db 000h ; 576f db 000h ; 5770 db 000h ; 5771 db 000h ; 5772 db 000h ; 5773 db 000h ; 5774 db 000h ; 5775 db 000h ; 5776 db 000h ; 5777 db 000h ; 5778 db 000h ; 5779 db 000h ; 577a db 000h ; 577b db 000h ; 577c db 000h ; 577d db 000h ; 577e db 000h ; 577f db 000h ; 5780 db 000h ; 5781 db 000h ; 5782 db 000h ; 5783 db 000h ; 5784 db 000h ; 5785 db 000h ; 5786 db 000h ; 5787 db 000h ; 5788 db 000h ; 5789 db 000h ; 578a db 000h ; 578b db 000h ; 578c db 000h ; 578d db 000h ; 578e db 000h ; 578f db 000h ; 5790 db 000h ; 5791 db 000h ; 5792 db 000h ; 5793 db 000h ; 5794 db 000h ; 5795 db 000h ; 5796 db 000h ; 5797 db 000h ; 5798 db 000h ; 5799 db 000h ; 579a db 000h ; 579b db 000h ; 579c db 000h ; 579d db 000h ; 579e db 000h ; 579f db 000h ; 57a0 db 000h ; 57a1 db 000h ; 57a2 db 000h ; 57a3 db 000h ; 57a4 db 000h ; 57a5 db 000h ; 57a6 db 000h ; 57a7 db 000h ; 57a8 db 000h ; 57a9 db 000h ; 57aa db 000h ; 57ab db 000h ; 57ac db 000h ; 57ad db 000h ; 57ae db 000h ; 57af db 000h ; 57b0 db 000h ; 57b1 db 000h ; 57b2 db 000h ; 57b3 db 000h ; 57b4 db 000h ; 57b5 db 000h ; 57b6 db 000h ; 57b7 db 000h ; 57b8 db 000h ; 57b9 db 000h ; 57ba db 000h ; 57bb db 000h ; 57bc db 000h ; 57bd db 000h ; 57be db 000h ; 57bf db 000h ; 57c0 db 000h ; 57c1 db 000h ; 57c2 db 000h ; 57c3 db 000h ; 57c4 db 000h ; 57c5 db 000h ; 57c6 db 000h ; 57c7 db 000h ; 57c8 db 000h ; 57c9 db 000h ; 57ca db 000h ; 57cb db 000h ; 57cc db 000h ; 57cd db 000h ; 57ce db 000h ; 57cf db 000h ; 57d0 db 000h ; 57d1 db 000h ; 57d2 db 000h ; 57d3 db 000h ; 57d4 db 000h ; 57d5 db 000h ; 57d6 db 000h ; 57d7 db 000h ; 57d8 db 000h ; 57d9 db 000h ; 57da db 000h ; 57db db 000h ; 57dc db 000h ; 57dd db 000h ; 57de db 000h ; 57df db 000h ; 57e0 db 000h ; 57e1 db 000h ; 57e2 db 000h ; 57e3 db 000h ; 57e4 db 000h ; 57e5 db 000h ; 57e6 db 000h ; 57e7 db 000h ; 57e8 db 000h ; 57e9 db 000h ; 57ea db 000h ; 57eb db 000h ; 57ec db 000h ; 57ed db 000h ; 57ee db 000h ; 57ef db 000h ; 57f0 db 000h ; 57f1 db 000h ; 57f2 db 000h ; 57f3 db 000h ; 57f4 db 000h ; 57f5 db 000h ; 57f6 db 000h ; 57f7 db 000h ; 57f8 db 000h ; 57f9 db 000h ; 57fa db 000h ; 57fb db 000h ; 57fc db 000h ; 57fd db 000h ; 57fe db 000h ; 57ff org 05800h FAR_INIT: ; 5800 nop ; 5800 - 90 nop ; 5801 - 90 nop ; 5802 - 90 call BIOS_SETUP ; 5803 - e8 11 00 -> 5817 call PROCS_SETUP ; 5806 - e8 21 02 -> 5a2a call DVC_SETUP ; 5809 - e8 d8 00 -> 58e4 call MSDOS_SETUP ; 580c - e8 d3 01 -> 59e2 nop ; 580f - 90 nop ; 5810 - 90 nop ; 5811 - 90 jmp far ptr 00760h, 00000h ; 5812 - ea 00 00 60 07 org 05817h BIOS_SETUP proc near public ; 5817 nop ; 5817 - 90 nop ; 5818 - 90 nop ; 5819 - 90 call IVT_SETUP ; 581a - e8 0a 00 -> 5827 call BCA_SETUP ; 581d - e8 5d 00 -> 587d call ICC_SETUP ; 5820 - e8 af 00 -> 58d2 nop ; 5823 - 90 nop ; 5824 - 90 nop ; 5825 - 90 ret ; 5826 - c3 BIOS_SETUP endp org 05827h IVT_SETUP proc near public ; 5827 nop ; 5827 - 90 nop ; 5828 - 90 nop ; 5829 - 90 mov ax, 0 ; 582a - b8 00 00 mov ds, ax ; 582d - 8e d8 mov es, ax ; 582f - 8e c0 cli ; 5831 - fa mov di, 0 ; 5832 - bf 00 00 mov cx, 0100h ; 5835 - b9 00 01 mov bx, 0af0h ; 5838 - bb f0 0a call IVT_SETUP_WRT ; 583b - e8 35 00 -> 5873 mov word ptr ds:[008h], 0af1h ; 583e - c7 06 08 00 f1 0a mov ax, 0af2h ; 5844 - b8 f2 0a mov ds:[28h], ax ; 5847 - a3 28 00 mov ds:[2ch], ax ; 584a - a3 2c 00 mov ds:[20h], ax ; 584d - a3 20 00 mov ds:[48h], ax ; 5850 - a3 48 00 mov ds:[4ch], ax ; 5853 - a3 4c 00 mov di, 01c0h ; 5856 - bf c0 01 mov cx, 8 ; 5859 - b9 08 00 mov bx, 0af8h ; 585c - bb f8 0a call IVT_SETUP_WRT ; 585f - e8 11 00 -> 5873 mov di, 01e0h ; 5862 - bf e0 01 mov cx, 8 ; 5865 - b9 08 00 mov bx, 0afeh ; 5868 - bb fe 0a call IVT_SETUP_WRT ; 586b - e8 05 00 -> 5873 nop ; 586e - 90 nop ; 586f - 90 nop ; 5870 - 90 sti ; 5871 - fb ret ; 5872 - c3 IVT_SETUP endp IVT_SETUP_WRT proc near public ; 5873 mov ax, bx ; 5873 - 8b c3 stosw ; 5875 - ab mov ax, 0060h ; 5876 - b8 60 00 stosw ; 5879 - ab loop IVT_SETUP_WRT ; 587a - e2 f7 -> 5873 ret ; 587c - c3 IVT_SETUP_WRT endp org 0587dh BCA_SETUP proc near public ; 587d nop ; 587d - 90 nop ; 587e - 90 nop ; 587f - 90 mov ax, 0 ; 5880 - b8 00 00 mov es, ax ; 5883 - 8e c0 lds si, es:[0444h] ; 5885 - 26 c5 36 44 04 add si, 01c0h ; 588a - 81 c6 c0 01 mov di, 04c0h ; 588e - bf c0 04 mov cx, 0020h ; 5891 - b9 20 00 rep movsw ; 5894 - f3 a5 mov ax, 0 ; 5896 - b8 00 00 mov ds, ax ; 5899 - 8e d8 mov ax, ds:[0426h] ; 589b - a1 26 04 mov ds:[042ah], ax ; 589e - a3 2a 04 mov ds:[0472h], ax ; 58a1 - a3 72 04 mov ax, ds:[0428h] ; 58a4 - a1 28 04 mov bx, word ptr ds:[04cah] ; 58a7 - 8b 1e ca 04 shr bx, 04h ; 58ab - c1 eb 04 sub ax, bx ; 58ae - 2b c3 mov ds:[042ch], ax ; 58b0 - a3 2c 04 mov ds:[0474h], ax ; 58b3 - a3 74 04 mov word ptr ds:[047eh], 0 ; 58b6 - c7 06 7e 04 00 00 mov word ptr ds:[0480h], 0f800h ; 58bc - c7 06 80 04 00 f8 mov word ptr ds:[0482h], 1000h ; 58c2 - c7 06 82 04 00 10 mov word ptr ds:[0484h], 0f800h ; 58c8 - c7 06 84 04 00 f8 nop ; 58ce - 90 nop ; 58cf - 90 nop ; 58d0 - 90 ret ; 58d1 - c3 BCA_SETUP endp org 058d2h ICC_SETUP proc near public ; 58d2 nop ; 58d2 - 90 nop ; 58d3 - 90 nop ; 58d4 - 90 mov cx, 8 ; 58d5 - b9 08 00 ICC_SETUP_1: ; 58d8 int 08h ; 58d8 - cd 08 int 70h ; 58da - cd 70 int 78h ; 58dc - cd 78 loop ICC_SETUP_1 ; 58de - e2 f8 -> 58d8 nop ; 58e0 - 90 nop ; 58e1 - 90 nop ; 58e2 - 90 ret ; 58e3 - c3 ICC_SETUP endp org 058e4h DVC_SETUP proc near public ; 58e4 nop ; 58e4 - 90 nop ; 58e5 - 90 nop ; 58e6 - 90 call CON_SETUP ; 58e7 - e8 1a 00 -> 5904 call AUX_SETUP ; 58ea - e8 29 13 -> 6c16 call PRN_SETUP ; 58ed - e8 8c 13 -> 6c7c call CLOCK_SETUP ; 58f0 - e8 b7 13 -> 6caa call DUMMY_SETUP ; 58f3 - e8 0a 00 -> 5900 call FDISK_SETUP ; 58f6 - e8 21 14 -> 6d1a call HDISK_SETUP ; 58f9 - e8 0c 15 -> 6e08 nop ; 58fc - 90 nop ; 58fd - 90 nop ; 58fe - 90 ret ; 58ff - c3 DVC_SETUP endp org 05900h DUMMY_SETUP proc near public ; 5900 nop ; 5900 - 90 nop ; 5901 - 90 nop ; 5902 - 90 ret ; 5903 - c3 DUMMY_SETUP endp org 05904h CON_SETUP proc near public ; 5904 nop ; 5904 - 90 nop ; 5905 - 90 nop ; 5906 - 90 call KB_SETUP ; 5907 - e8 76 01 -> 5a80 call EQ_SETUP ; 590a - e8 07 00 -> 5914 call VD_SETUP ; 590d - e8 c8 01 -> 5ad8 nop ; 5910 - 90 nop ; 5911 - 90 nop ; 5912 - 90 ret ; 5913 - c3 CON_SETUP endp org 05914h EQ_SETUP proc near public ; 5914 nop ; 5914 - 90 nop ; 5915 - 90 nop ; 5916 - 90 mov ax, 0 ; 5917 - b8 00 00 mov ds, ax ; 591a - 8e d8 mov ax, cs ; 591c - 8c c8 mov es, ax ; 591e - 8e c0 mov cx, word ptr ds:[04d0h] ; 5920 - 8b 0e d0 04 mov al, ds:[04d2h] ; 5924 - a0 d2 04 or cx, cx ; 5927 - 0b c9 jnz EQ_SETUP_1 ; 5929 - 75 0d -> 5938 mov cx, word ptr ds:[0422h] ; 592b - 8b 0e 22 04 call EQ_HARD ; 592f - e8 17 00 -> 5949 call EQ_KEY ; 5932 - e8 52 00 -> 5987 call EQ_SOFT ; 5935 - e8 7b 00 -> 59b3 EQ_SETUP_1: ; 5938 mov word ptr ds:[0422h], cx ; 5938 - 89 0e 22 04 mov ds:[0488h], al ; 593c - a2 88 04 mov al, ds:[04d3h] ; 593f - a0 d3 04 mov ds:[048eh], al ; 5942 - a2 8e 04 nop ; 5945 - 90 nop ; 5946 - 90 nop ; 5947 - 90 ret ; 5948 - c3 EQ_SETUP endp org 05949h EQ_HARD proc near public ; 5949 nop ; 5949 - 90 nop ; 594a - 90 nop ; 594b - 90 and cl, 0f8h ; 594c - 80 e1 f8 mov dx, 0180h ; 594f - ba 80 01 in al, dx ; 5952 - ec and al, 3fh ; 5953 - 24 3f cmp al, 3fh ; 5955 - 3c 3f jnz EQ_HARD_LR_HR ; 5957 - 75 04 -> 595d mov bl, 0 ; 5959 - b3 00 jmp EQ_HARD_X ; 595b - eb 26 -> 5983 EQ_HARD_LR_HR: ; 595d test al, 1 ; 595d - a8 01 jz EQ_HARD_HR ; 595f - 74 07 -> 5968 or cl, 1 ; 5961 - 80 c9 01 mov bl, 1 ; 5964 - b3 01 jmp EQ_HARD_X ; 5966 - eb 1b -> 5983 EQ_HARD_HR: ; 5968 test al, 20h ; 5968 - a8 20 jnz EQ_HARD_HR4 ; 596a - 75 12 -> 597e test al, 2 ; 596c - a8 02 jnz EQ_HARD_HR3 ; 596e - 75 07 -> 5977 or cl, 2 ; 5970 - 80 c9 02 mov bl, 2 ; 5973 - b3 02 jmp EQ_HARD_X ; 5975 - eb 0c -> 5983 EQ_HARD_HR3: ; 5977 or cl, 4 ; 5977 - 80 c9 04 mov bl, 3 ; 597a - b3 03 jmp EQ_HARD_X ; 597c - eb 05 -> 5983 EQ_HARD_HR4: ; 597e or cl, 6 ; 597e - 80 c9 06 mov bl, 3 ; 5981 - b3 03 EQ_HARD_X: ; 5983 nop ; 5983 - 90 nop ; 5984 - 90 nop ; 5985 - 90 ret ; 5986 - c3 EQ_HARD endp org 05987h EQ_KEY proc near public ; 5987 nop ; 5987 - 90 nop ; 5988 - 90 nop ; 5989 - 90 push cx ; 598a - 51 EQ_KEY_0: ; 598b mov cx, 2000h ; 598b - b9 00 20 EQ_KEY_1: ; 598e mov ah, 1 ; 598e - b4 01 int 51h ; 5990 - cd 51 jz EQ_KEY_2 ; 5992 - 74 18 -> 59ac mov di, 01c8h ; 5994 - bf c8 01 nop ; 5997 - 90 mov cx, 5 ; 5998 - b9 05 00 nop ; 599b - 90 repne scasw ; 599c - f2 af jnz EQ_KEY_X ; 599e - 75 0e -> 59ae or bl, 4 ; 59a0 - 80 cb 04 mov ah, 0 ; 59a3 - b4 00 int 51h ; 59a5 - cd 51 mov cx, 0400h ; 59a7 - b9 00 04 jmp EQ_KEY_0 ; 59aa - eb df -> 598b EQ_KEY_2: ; 59ac loop EQ_KEY_1 ; 59ac - e2 e0 -> 598e EQ_KEY_X: ; 59ae pop cx ; 59ae - 59 nop ; 59af - 90 nop ; 59b0 - 90 nop ; 59b1 - 90 ret ; 59b2 - c3 EQ_KEY endp org 059b3h EQ_SOFT proc near public ; 59b3 nop ; 59b3 - 90 nop ; 59b4 - 90 nop ; 59b5 - 90 and ch, 0f8h ; 59b6 - 80 e5 f8 mov bh, 0 ; 59b9 - b7 00 add bx, bx ; 59bb - 03 db mov ax, word ptr es:[bx + 01d2h] ; 59bd - 26 8b 87 d2 01 or ch, ah ; 59c2 - 0a ec nop ; 59c4 - 90 nop ; 59c5 - 90 nop ; 59c6 - 90 ret ; 59c7 - c3 EQ_SOFT endp org 059c8h EQ_KEY_TBL: ÈY db 000h, 000h ; 059c8 db 000h, 099h ; 059ca db 000h, 0a3h ; 059cc db 000h, 0adh ; 059ce db 000h, 0b7h ; 059d0 org 059d2h EQ_SOFT_TBL: ÈY db 002h, 001h ; 059d2 db 001h, 004h ; 059d4 db 002h, 001h ; 059d6 db 002h, 002h ; 059d8 db 002h, 001h ; 059da db 002h, 001h ; 059dc db 002h, 002h ; 059de db 002h, 001h ; 059e0 org 059e2h MSDOS_SETUP proc near public ; 59e2 nop ; 59e2 - 90 nop ; 59e3 - 90 nop ; 59e4 - 90 mov ax, 0760h ; 59e5 - b8 60 07 mov ds, ax ; 59e8 - 8e d8 mov ax, 0 ; 59ea - b8 00 00 mov es, ax ; 59ed - 8e c0 mov al, es:[0442h] ; 59ef - 26 a0 42 04 inc al ; 59f3 - fe c0 mov ds:[11h], al ; 59f5 - a2 11 00 mov ax, es:[042ch] ; 59f8 - 26 a1 2c 04 mov ds:[0fh], ax ; 59fc - a3 0f 00 mov word ptr ds:[00bh], 01d8h ; 59ff - c7 06 0b 00 d8 01 mov word ptr ds:[00dh], 0060h ; 5a05 - c7 06 0d 00 60 00 mov word ptr ds:[005h], 0860h ; 5a0b - c7 06 05 00 60 08 mov word ptr ds:[009h], 05e0h ; 5a11 - c7 06 09 00 e0 05 mov word ptr es:[042eh], 0 ; 5a17 - 26 c7 06 2e 04 00 00 mov word ptr es:[0430h], 05e0h ; 5a1e - 26 c7 06 30 04 e0 05 nop ; 5a25 - 90 nop ; 5a26 - 90 nop ; 5a27 - 90 ret ; 5a28 - c3 MSDOS_SETUP endp db 000h ; 5a29 org 05a2ah PROCS_SETUP proc near public ; 5a2a mov ax, 0 ; 5a2a - b8 00 00 mov ds, ax ; 5a2d - 8e d8 cli ; 5a2f - fa mov word ptr ds:[0120h], 0af0h ; 5a30 - c7 06 20 01 f0 0a mov word ptr ds:[0140h], 0af0h ; 5a36 - c7 06 40 01 f0 0a mov word ptr ds:[0124h], 0b26h ; 5a3c - c7 06 24 01 26 0b mov word ptr ds:[064h], 0b26h ; 5a42 - c7 06 64 00 26 0b mov word ptr ds:[012ch], 0b36h ; 5a48 - c7 06 2c 01 36 0b mov word ptr ds:[044h], 0b36h ; 5a4e - c7 06 44 00 36 0b mov word ptr ds:[0130h], 0b48h ; 5a54 - c7 06 30 01 48 0b mov word ptr ds:[048h], 0b48h ; 5a5a - c7 06 48 00 48 0b mov word ptr ds:[0128h], 0b64h ; 5a60 - c7 06 28 01 64 0b mov word ptr ds:[014h], 0b64h ; 5a66 - c7 06 14 00 64 0b mov word ptr ds:[0134h], 0bfeh ; 5a6c - c7 06 34 01 fe 0b mov byte ptr ds:[0440h], 0 ; 5a72 - c6 06 40 04 00 mov word ptr ds:[0448h], 0 ; 5a77 - c7 06 48 04 00 00 sti ; 5a7d - fb ret ; 5a7e - c3 PROCS_SETUP endp db 000h ; 5a7f org 05a80h KB_SETUP proc near public ; 5a80 mov ax, 0 ; 5a80 - b8 00 00 mov ds, ax ; 5a83 - 8e d8 mov ax, 05a0h ; 5a85 - b8 a0 05 mov es, ax ; 5a88 - 8e c0 cli ; 5a8a - fa mov word ptr ds:[0402h], es ; 5a8b - 8c 06 02 04 mov word ptr ds:[01e0h], 0df2h ; 5a8f - c7 06 e0 01 f2 0d mov word ptr ds:[0144h], 0d3ah ; 5a95 - c7 06 44 01 3a 0d mov word ptr ds:[058h], 0d3ah ; 5a9b - c7 06 58 00 3a 0d mov word ptr ds:[0464h], 1108h ; 5aa1 - c7 06 64 04 08 11 mov word ptr ds:[0466h], 0060h ; 5aa7 - c7 06 66 04 60 00 mov byte ptr ds:[0469h], 0 ; 5aad - c6 06 69 04 00 mov word ptr ds:[0460h], 000bh ; 5ab2 - c7 06 60 04 0b 00 mov word ptr ds:[0462h], es ; 5ab8 - 8c 06 62 04 mov bl, 2 ; 5abc - b3 02 mov cx, word ptr ds:[04c8h] ; 5abe - 8b 0e c8 04 lds si, ds:[0460h] ; 5ac2 - c5 36 60 04 call far ptr 00060h, 00034h ; 5ac6 - 9a 34 00 60 00 mov dx, 0072h ; 5acb - ba 72 00 in al, dx ; 5ace - ec and al, 0feh ; 5acf - 24 fe out dx, al ; 5ad1 - ee sti ; 5ad2 - fb mov ah, 4 ; 5ad3 - b4 04 int 51h ; 5ad5 - cd 51 ret ; 5ad7 - c3 KB_SETUP endp org 05ad8h VD_SETUP proc near public ; 5ad8 mov ax, 0 ; 5ad8 - b8 00 00 mov ds, ax ; 5adb - 8e d8 mov ax, 05a2h ; 5add - b8 a2 05 mov ds:[0404h], ax ; 5ae0 - a3 04 04 mov word ptr ds:[0148h], 14dch ; 5ae3 - c7 06 48 01 dc 14 mov word ptr ds:[040h], 14dch ; 5ae9 - c7 06 40 00 dc 14 les dx, ds:[0472h] ; 5aef - c4 16 72 04 mov cx, word ptr ds:[0422h] ; 5af3 - 8b 0e 22 04 mov bl, byte ptr ds:[0488h] ; 5af7 - 8a 1e 88 04 cmp word ptr ds:[04cah], 4000h ; 5afb - 81 3e ca 04 00 40 mov ax, 05a2h ; 5b01 - b8 a2 05 mov ds, ax ; 5b04 - 8e d8 mov word ptr ds:[06eh], 1484h ; 5b06 - c7 06 6e 00 84 14 jnz SET_FOR_1 ; 5b0c - 75 1a -> 5b28 mov byte ptr ds:[09ch], 10h ; 5b0e - c6 06 9c 00 10 mov word ptr ds:[000h], 3fc0h ; 5b13 - c7 06 00 00 c0 3f mov word ptr ds:[084h], 4000h ; 5b19 - c7 06 84 00 00 40 mov word ptr ds:[086h], 0400h ; 5b1f - c7 06 86 00 00 04 jmp PAGES_SET ; 5b25 - eb 18 -> 5b3f nop ; 5b27 - 90 SET_FOR_1: ; 5b28 mov byte ptr ds:[09ch], 1bh ; 5b28 - c6 06 9c 00 1b mov word ptr ds:[000h], 10e0h ; 5b2d - c7 06 00 00 e0 10 mov word ptr ds:[084h], 6c00h ; 5b33 - c7 06 84 00 00 6c mov word ptr ds:[086h], 06c0h ; 5b39 - c7 06 86 00 c0 06 PAGES_SET: ; 5b3f mov word ptr ds:[0108h], dx ; 5b3f - 89 16 08 01 mov word ptr ds:[010ah], es ; 5b43 - 8c 06 0a 01 mov byte ptr ds:[091h], bl ; 5b47 - 88 1e 91 00 mov word ptr ds:[01ch], cx ; 5b4b - 89 0e 1c 00 push es ; 5b4f - 06 mov ax, cs ; 5b50 - 8c c8 mov es, ax ; 5b52 - 8e c0 mov al, 65h ; 5b54 - b0 65 mov ah, 10h ; 5b56 - b4 10 mov bx, 0416h ; 5b58 - bb 16 04 nop ; 5b5b - 90 int 52h ; 5b5c - cd 52 mov al, 6fh ; 5b5e - b0 6f mov bx, 0c16h ; 5b60 - bb 16 0c nop ; 5b63 - 90 int 52h ; 5b64 - cd 52 pop es ; 5b66 - 07 mov ax, ds:[1ch] ; 5b67 - a1 1c 00 and al, 7 ; 5b6a - 24 07 jz NO_GR_BOARD ; 5b6c - 74 34 -> 5ba2 mov al, 1 ; 5b6e - b0 01 mov ds:[08fh], al ; 5b70 - a2 8f 00 mov dx, 01a0h ; 5b73 - ba a0 01 out dx, al ; 5b76 - ee mov al, ds:[091h] ; 5b77 - a0 91 00 cmp al, 2 ; 5b7a - 3c 02 jz GR_SETUP_30 ; 5b7c - 74 03 -> 5b81 jmp GR_SETUP_40 ; 5b7e - eb 1d -> 5b9d nop ; 5b80 - 90 GR_SETUP_30: ; 5b81 push ax ; 5b81 - 50 push dx ; 5b82 - 52 mov dx, 0198h ; 5b83 - ba 98 01 mov al, 0 ; 5b86 - b0 00 out dx, al ; 5b88 - ee add dx, 2 ; 5b89 - 83 c2 02 mov al, 0fh ; 5b8c - b0 0f out dx, al ; 5b8e - ee add dx, 2 ; 5b8f - 83 c2 02 mov al, 0 ; 5b92 - b0 00 out dx, al ; 5b94 - ee add dx, 2 ; 5b95 - 83 c2 02 mov al, 7 ; 5b98 - b0 07 out dx, al ; 5b9a - ee pop dx ; 5b9b - 5a pop ax ; 5b9c - 58 GR_SETUP_40: ; 5b9d or byte ptr ds:[0c1h], 080h ; 5b9d - 80 0e c1 00 80 NO_GR_BOARD: ; 5ba2 xor ax, ax ; 5ba2 - 33 c0 push es ; 5ba4 - 06 mov dx, 05a2h ; 5ba5 - ba a2 05 mov es, dx ; 5ba8 - 8e c2 mov di, 2 ; 5baa - bf 02 00 mov cx, 8 ; 5bad - b9 08 00 rep stosw ; 5bb0 - f3 ab pop es ; 5bb2 - 07 mov byte ptr ds:[090h], 2 ; 5bb3 - c6 06 90 00 02 mov word ptr ds:[046h], 1 ; 5bb8 - c7 06 46 00 01 00 mov word ptr ds:[048h], 07d0h ; 5bbe - c7 06 48 00 d0 07 and byte ptr ds:[0c1h], 080h ; 5bc4 - 80 26 c1 00 80 mov byte ptr ds:[0aeh], 50h ; 5bc9 - c6 06 ae 00 50 mov byte ptr ds:[08dh], 7 ; 5bce - c6 06 8d 00 07 mov byte ptr ds:[0b9h], 0 ; 5bd3 - c6 06 b9 00 00 mov cx, 8 ; 5bd8 - b9 08 00 mov ah, 1 ; 5bdb - b4 01 int 52h ; 5bdd - cd 52 call far ptr 00060h, 0171ch ; 5bdf - 9a 1c 17 60 00 mov byte ptr ds:[0b5h], 0 ; 5be4 - c6 06 b5 00 00 mov al, 2 ; 5be9 - b0 02 mov ah, 0 ; 5beb - b4 00 int 52h ; 5bed - cd 52 mov byte ptr ds:[0b5h], 0ffh ; 5bef - c6 06 b5 00 ff mov al, ds:[091h] ; 5bf4 - a0 91 00 mov ah, 0 ; 5bf7 - b4 00 int 52h ; 5bf9 - cd 52 mov cx, word ptr ds:[000h] ; 5bfb - 8b 0e 00 00 add cx, word ptr ds:[084h] ; 5bff - 03 0e 84 00 shr cx, 1 ; 5c03 - d1 e9 mov dx, 0118h ; 5c05 - ba 18 01 mov al, cl ; 5c08 - 8a c1 out dx, al ; 5c0a - ee mov dx, 011ah ; 5c0b - ba 1a 01 mov al, ch ; 5c0e - 8a c5 or al, 080h ; 5c10 - 0c 80 and al, 0bfh ; 5c12 - 24 bf out dx, al ; 5c14 - ee ret ; 5c15 - c3 VD_SETUP endp db 000h ; 5c16 db 000h ; 5c17 db 000h ; 5c18 db 000h ; 5c19 db 000h ; 5c1a db 000h ; 5c1b db 000h ; 5c1c db 000h ; 5c1d db 000h ; 5c1e db 000h ; 5c1f db 000h ; 5c20 db 000h ; 5c21 db 000h ; 5c22 db 000h ; 5c23 db 000h ; 5c24 db 000h ; 5c25 db 000h ; 5c26 db 03ch ; 5c27 db 042h ; 5c28 db 081h ; 5c29 db 0a5h ; 5c2a db 081h ; 5c2b db 0a5h ; 5c2c db 099h ; 5c2d db 042h ; 5c2e db 03ch ; 5c2f db 000h ; 5c30 db 000h ; 5c31 db 000h ; 5c32 db 000h ; 5c33 db 000h ; 5c34 db 000h ; 5c35 db 000h ; 5c36 db 03ch ; 5c37 db 07eh ; 5c38 db 0ffh ; 5c39 db 0dbh ; 5c3a db 0ffh ; 5c3b db 0dbh ; 5c3c db 0e7h ; 5c3d db 07eh ; 5c3e db 03ch ; 5c3f db 000h ; 5c40 db 000h ; 5c41 db 000h ; 5c42 db 000h ; 5c43 db 000h ; 5c44 db 000h ; 5c45 db 000h ; 5c46 db 000h ; 5c47 db 022h ; 5c48 db 077h ; 5c49 db 07fh ; 5c4a db 07fh ; 5c4b db 03eh ; 5c4c db 01ch ; 5c4d db 008h ; 5c4e db 000h ; 5c4f db 000h ; 5c50 db 000h ; 5c51 db 000h ; 5c52 db 000h ; 5c53 db 000h ; 5c54 db 000h ; 5c55 db 000h ; 5c56 db 000h ; 5c57 db 008h ; 5c58 db 01ch ; 5c59 db 03eh ; 5c5a db 07fh ; 5c5b db 03eh ; 5c5c db 01ch ; 5c5d db 008h ; 5c5e db 000h ; 5c5f db 000h ; 5c60 db 000h ; 5c61 db 000h ; 5c62 db 000h ; 5c63 db 000h ; 5c64 db 000h ; 5c65 db 000h ; 5c66 db 000h ; 5c67 db 01ch ; 5c68 db 008h ; 5c69 db 049h ; 5c6a db 07fh ; 5c6b db 049h ; 5c6c db 008h ; 5c6d db 03eh ; 5c6e db 000h ; 5c6f db 000h ; 5c70 db 000h ; 5c71 db 000h ; 5c72 db 000h ; 5c73 db 000h ; 5c74 db 000h ; 5c75 db 000h ; 5c76 db 000h ; 5c77 db 008h ; 5c78 db 01ch ; 5c79 db 03eh ; 5c7a db 07fh ; 5c7b db 02ah ; 5c7c db 008h ; 5c7d db 03eh ; 5c7e db 000h ; 5c7f db 000h ; 5c80 db 000h ; 5c81 db 000h ; 5c82 db 000h ; 5c83 db 000h ; 5c84 db 000h ; 5c85 db 000h ; 5c86 db 000h ; 5c87 db 000h ; 5c88 db 018h ; 5c89 db 03ch ; 5c8a db 03ch ; 5c8b db 03ch ; 5c8c db 018h ; 5c8d db 000h ; 5c8e db 000h ; 5c8f db 000h ; 5c90 db 000h ; 5c91 db 000h ; 5c92 db 000h ; 5c93 db 000h ; 5c94 db 000h ; 5c95 db 000h ; 5c96 db 0ffh ; 5c97 db 0ffh ; 5c98 db 0e7h ; 5c99 db 0c3h ; 5c9a db 0c3h ; 5c9b db 0c3h ; 5c9c db 0e7h ; 5c9d db 0ffh ; 5c9e db 0ffh ; 5c9f db 000h ; 5ca0 db 000h ; 5ca1 db 000h ; 5ca2 db 000h ; 5ca3 db 000h ; 5ca4 db 000h ; 5ca5 db 000h ; 5ca6 db 000h ; 5ca7 db 000h ; 5ca8 db 03ch ; 5ca9 db 042h ; 5caa db 042h ; 5cab db 042h ; 5cac db 03ch ; 5cad db 000h ; 5cae db 000h ; 5caf db 000h ; 5cb0 db 000h ; 5cb1 db 000h ; 5cb2 db 000h ; 5cb3 db 000h ; 5cb4 db 000h ; 5cb5 db 000h ; 5cb6 db 0ffh ; 5cb7 db 0ffh ; 5cb8 db 0c3h ; 5cb9 db 099h ; 5cba db 0bdh ; 5cbb db 099h ; 5cbc db 0c3h ; 5cbd db 0ffh ; 5cbe db 0ffh ; 5cbf db 000h ; 5cc0 db 000h ; 5cc1 db 000h ; 5cc2 db 000h ; 5cc3 db 000h ; 5cc4 db 000h ; 5cc5 db 000h ; 5cc6 db 007h ; 5cc7 db 003h ; 5cc8 db 005h ; 5cc9 db 038h ; 5cca db 044h ; 5ccb db 082h ; 5ccc db 082h ; 5ccd db 044h ; 5cce db 038h ; 5ccf db 000h ; 5cd0 db 000h ; 5cd1 db 000h ; 5cd2 db 000h ; 5cd3 db 000h ; 5cd4 db 000h ; 5cd5 db 000h ; 5cd6 db 000h ; 5cd7 db 000h ; 5cd8 db 000h ; 5cd9 db 038h ; 5cda db 044h ; 5cdb db 082h ; 5cdc db 082h ; 5cdd db 044h ; 5cde db 038h ; 5cdf db 010h ; 5ce0 db 07ch ; 5ce1 db 010h ; 5ce2 db 000h ; 5ce3 db 000h ; 5ce4 db 000h ; 5ce5 db 000h ; 5ce6 db 018h ; 5ce7 db 014h ; 5ce8 db 012h ; 5ce9 db 010h ; 5cea db 010h ; 5ceb db 010h ; 5cec db 010h ; 5ced db 030h ; 5cee db 030h ; 5cef db 000h ; 5cf0 db 000h ; 5cf1 db 000h ; 5cf2 db 000h ; 5cf3 db 000h ; 5cf4 db 000h ; 5cf5 db 000h ; 5cf6 db 018h ; 5cf7 db 014h ; 5cf8 db 012h ; 5cf9 db 01ah ; 5cfa db 016h ; 5cfb db 012h ; 5cfc db 012h ; 5cfd db 032h ; 5cfe db 032h ; 5cff db 006h ; 5d00 db 006h ; 5d01 db 000h ; 5d02 db 000h ; 5d03 db 000h ; 5d04 db 000h ; 5d05 db 000h ; 5d06 db 000h ; 5d07 db 049h ; 5d08 db 02ah ; 5d09 db 036h ; 5d0a db 063h ; 5d0b db 036h ; 5d0c db 02ah ; 5d0d db 049h ; 5d0e db 000h ; 5d0f db 000h ; 5d10 db 000h ; 5d11 db 000h ; 5d12 db 000h ; 5d13 db 000h ; 5d14 db 000h ; 5d15 db 000h ; 5d16 db 000h ; 5d17 db 040h ; 5d18 db 070h ; 5d19 db 07ch ; 5d1a db 07fh ; 5d1b db 07ch ; 5d1c db 070h ; 5d1d db 040h ; 5d1e db 000h ; 5d1f db 000h ; 5d20 db 000h ; 5d21 db 000h ; 5d22 db 000h ; 5d23 db 000h ; 5d24 db 000h ; 5d25 db 000h ; 5d26 db 000h ; 5d27 db 001h ; 5d28 db 007h ; 5d29 db 01fh ; 5d2a db 07fh ; 5d2b db 01fh ; 5d2c db 007h ; 5d2d db 001h ; 5d2e db 000h ; 5d2f db 000h ; 5d30 db 000h ; 5d31 db 000h ; 5d32 db 000h ; 5d33 db 000h ; 5d34 db 000h ; 5d35 db 000h ; 5d36 db 008h ; 5d37 db 01ch ; 5d38 db 02ah ; 5d39 db 008h ; 5d3a db 008h ; 5d3b db 008h ; 5d3c db 02ah ; 5d3d db 01ch ; 5d3e db 008h ; 5d3f db 000h ; 5d40 db 000h ; 5d41 db 000h ; 5d42 db 000h ; 5d43 db 000h ; 5d44 db 000h ; 5d45 db 000h ; 5d46 db 024h ; 5d47 db 024h ; 5d48 db 024h ; 5d49 db 024h ; 5d4a db 024h ; 5d4b db 024h ; 5d4c db 024h ; 5d4d db 000h ; 5d4e db 024h ; 5d4f db 000h ; 5d50 db 000h ; 5d51 db 000h ; 5d52 db 000h ; 5d53 db 000h ; 5d54 db 000h ; 5d55 db 000h ; 5d56 db 03fh ; 5d57 db 04ah ; 5d58 db 04ah ; 5d59 db 04ah ; 5d5a db 03ah ; 5d5b db 00ah ; 5d5c db 00ah ; 5d5d db 00ah ; 5d5e db 00ah ; 5d5f db 000h ; 5d60 db 000h ; 5d61 db 000h ; 5d62 db 000h ; 5d63 db 000h ; 5d64 db 000h ; 5d65 db 000h ; 5d66 db 01eh ; 5d67 db 020h ; 5d68 db 020h ; 5d69 db 01ch ; 5d6a db 022h ; 5d6b db 01ch ; 5d6c db 002h ; 5d6d db 002h ; 5d6e db 03ch ; 5d6f db 000h ; 5d70 db 000h ; 5d71 db 000h ; 5d72 db 000h ; 5d73 db 000h ; 5d74 db 000h ; 5d75 db 000h ; 5d76 db 000h ; 5d77 db 000h ; 5d78 db 000h ; 5d79 db 07eh ; 5d7a db 07eh ; 5d7b db 07eh ; 5d7c db 000h ; 5d7d db 000h ; 5d7e db 000h ; 5d7f db 000h ; 5d80 db 000h ; 5d81 db 000h ; 5d82 db 000h ; 5d83 db 000h ; 5d84 db 000h ; 5d85 db 000h ; 5d86 db 008h ; 5d87 db 01ch ; 5d88 db 02ah ; 5d89 db 008h ; 5d8a db 008h ; 5d8b db 008h ; 5d8c db 02ah ; 5d8d db 01ch ; 5d8e db 008h ; 5d8f db 07fh ; 5d90 db 000h ; 5d91 db 000h ; 5d92 db 000h ; 5d93 db 000h ; 5d94 db 000h ; 5d95 db 000h ; 5d96 db 008h ; 5d97 db 01ch ; 5d98 db 02ah ; 5d99 db 008h ; 5d9a db 008h ; 5d9b db 008h ; 5d9c db 008h ; 5d9d db 008h ; 5d9e db 008h ; 5d9f db 000h ; 5da0 db 000h ; 5da1 db 000h ; 5da2 db 000h ; 5da3 db 000h ; 5da4 db 000h ; 5da5 db 000h ; 5da6 db 008h ; 5da7 db 008h ; 5da8 db 008h ; 5da9 db 008h ; 5daa db 008h ; 5dab db 008h ; 5dac db 02ah ; 5dad db 01ch ; 5dae db 008h ; 5daf db 000h ; 5db0 db 000h ; 5db1 db 000h ; 5db2 db 000h ; 5db3 db 000h ; 5db4 db 000h ; 5db5 db 000h ; 5db6 db 000h ; 5db7 db 000h ; 5db8 db 004h ; 5db9 db 002h ; 5dba db 0ffh ; 5dbb db 002h ; 5dbc db 004h ; 5dbd db 000h ; 5dbe db 000h ; 5dbf db 000h ; 5dc0 db 000h ; 5dc1 db 000h ; 5dc2 db 000h ; 5dc3 db 000h ; 5dc4 db 000h ; 5dc5 db 000h ; 5dc6 db 000h ; 5dc7 db 000h ; 5dc8 db 020h ; 5dc9 db 040h ; 5dca db 0ffh ; 5dcb db 040h ; 5dcc db 020h ; 5dcd db 000h ; 5dce db 000h ; 5dcf db 000h ; 5dd0 db 000h ; 5dd1 db 000h ; 5dd2 db 000h ; 5dd3 db 000h ; 5dd4 db 000h ; 5dd5 db 000h ; 5dd6 db 000h ; 5dd7 db 000h ; 5dd8 db 000h ; 5dd9 db 040h ; 5dda db 040h ; 5ddb db 040h ; 5ddc db 040h ; 5ddd db 07eh ; 5dde db 000h ; 5ddf db 000h ; 5de0 db 000h ; 5de1 db 000h ; 5de2 db 000h ; 5de3 db 000h ; 5de4 db 000h ; 5de5 db 000h ; 5de6 db 000h ; 5de7 db 000h ; 5de8 db 024h ; 5de9 db 042h ; 5dea db 0ffh ; 5deb db 042h ; 5dec db 024h ; 5ded db 000h ; 5dee db 000h ; 5def db 000h ; 5df0 db 000h ; 5df1 db 000h ; 5df2 db 000h ; 5df3 db 000h ; 5df4 db 000h ; 5df5 db 000h ; 5df6 db 000h ; 5df7 db 008h ; 5df8 db 008h ; 5df9 db 01ch ; 5dfa db 01ch ; 5dfb db 03eh ; 5dfc db 03eh ; 5dfd db 07fh ; 5dfe db 000h ; 5dff db 000h ; 5e00 db 000h ; 5e01 db 000h ; 5e02 db 000h ; 5e03 db 000h ; 5e04 db 000h ; 5e05 db 000h ; 5e06 db 000h ; 5e07 db 07fh ; 5e08 db 03eh ; 5e09 db 03eh ; 5e0a db 01ch ; 5e0b db 01ch ; 5e0c db 008h ; 5e0d db 008h ; 5e0e db 000h ; 5e0f db 000h ; 5e10 db 000h ; 5e11 db 000h ; 5e12 db 000h ; 5e13 db 000h ; 5e14 db 000h ; 5e15 db 000h ; 5e16 db 000h ; 5e17 db 000h ; 5e18 db 000h ; 5e19 db 000h ; 5e1a db 000h ; 5e1b db 000h ; 5e1c db 000h ; 5e1d db 000h ; 5e1e db 000h ; 5e1f db 000h ; 5e20 db 000h ; 5e21 db 000h ; 5e22 db 000h ; 5e23 db 000h ; 5e24 db 000h ; 5e25 db 000h ; 5e26 db 008h ; 5e27 db 008h ; 5e28 db 008h ; 5e29 db 008h ; 5e2a db 008h ; 5e2b db 008h ; 5e2c db 008h ; 5e2d db 000h ; 5e2e db 008h ; 5e2f db 000h ; 5e30 db 000h ; 5e31 db 000h ; 5e32 db 000h ; 5e33 db 000h ; 5e34 db 000h ; 5e35 db 000h ; 5e36 db 014h ; 5e37 db 014h ; 5e38 db 014h ; 5e39 db 000h ; 5e3a db 000h ; 5e3b db 000h ; 5e3c db 000h ; 5e3d db 000h ; 5e3e db 000h ; 5e3f db 000h ; 5e40 db 000h ; 5e41 db 000h ; 5e42 db 000h ; 5e43 db 000h ; 5e44 db 000h ; 5e45 db 000h ; 5e46 db 024h ; 5e47 db 024h ; 5e48 db 024h ; 5e49 db 07eh ; 5e4a db 024h ; 5e4b db 07eh ; 5e4c db 024h ; 5e4d db 024h ; 5e4e db 024h ; 5e4f db 000h ; 5e50 db 000h ; 5e51 db 000h ; 5e52 db 000h ; 5e53 db 000h ; 5e54 db 000h ; 5e55 db 000h ; 5e56 db 008h ; 5e57 db 03fh ; 5e58 db 048h ; 5e59 db 048h ; 5e5a db 03eh ; 5e5b db 009h ; 5e5c db 009h ; 5e5d db 07eh ; 5e5e db 008h ; 5e5f db 000h ; 5e60 db 000h ; 5e61 db 000h ; 5e62 db 000h ; 5e63 db 000h ; 5e64 db 000h ; 5e65 db 000h ; 5e66 db 020h ; 5e67 db 051h ; 5e68 db 022h ; 5e69 db 004h ; 5e6a db 008h ; 5e6b db 010h ; 5e6c db 022h ; 5e6d db 045h ; 5e6e db 002h ; 5e6f db 000h ; 5e70 db 000h ; 5e71 db 000h ; 5e72 db 000h ; 5e73 db 000h ; 5e74 db 000h ; 5e75 db 000h ; 5e76 db 010h ; 5e77 db 028h ; 5e78 db 028h ; 5e79 db 010h ; 5e7a db 028h ; 5e7b db 044h ; 5e7c db 045h ; 5e7d db 042h ; 5e7e db 03dh ; 5e7f db 000h ; 5e80 db 000h ; 5e81 db 000h ; 5e82 db 000h ; 5e83 db 000h ; 5e84 db 000h ; 5e85 db 000h ; 5e86 db 008h ; 5e87 db 008h ; 5e88 db 010h ; 5e89 db 000h ; 5e8a db 000h ; 5e8b db 000h ; 5e8c db 000h ; 5e8d db 000h ; 5e8e db 000h ; 5e8f db 000h ; 5e90 db 000h ; 5e91 db 000h ; 5e92 db 000h ; 5e93 db 000h ; 5e94 db 000h ; 5e95 db 000h ; 5e96 db 004h ; 5e97 db 008h ; 5e98 db 010h ; 5e99 db 010h ; 5e9a db 010h ; 5e9b db 010h ; 5e9c db 010h ; 5e9d db 008h ; 5e9e db 004h ; 5e9f db 000h ; 5ea0 db 000h ; 5ea1 db 000h ; 5ea2 db 000h ; 5ea3 db 000h ; 5ea4 db 000h ; 5ea5 db 000h ; 5ea6 db 010h ; 5ea7 db 008h ; 5ea8 db 004h ; 5ea9 db 004h ; 5eaa db 004h ; 5eab db 004h ; 5eac db 004h ; 5ead db 008h ; 5eae db 010h ; 5eaf db 000h ; 5eb0 db 000h ; 5eb1 db 000h ; 5eb2 db 000h ; 5eb3 db 000h ; 5eb4 db 000h ; 5eb5 db 000h ; 5eb6 db 000h ; 5eb7 db 000h ; 5eb8 db 008h ; 5eb9 db 02ah ; 5eba db 01ch ; 5ebb db 01ch ; 5ebc db 02ah ; 5ebd db 008h ; 5ebe db 000h ; 5ebf db 000h ; 5ec0 db 000h ; 5ec1 db 000h ; 5ec2 db 000h ; 5ec3 db 000h ; 5ec4 db 000h ; 5ec5 db 000h ; 5ec6 db 000h ; 5ec7 db 000h ; 5ec8 db 008h ; 5ec9 db 008h ; 5eca db 03eh ; 5ecb db 008h ; 5ecc db 008h ; 5ecd db 000h ; 5ece db 000h ; 5ecf db 000h ; 5ed0 db 000h ; 5ed1 db 000h ; 5ed2 db 000h ; 5ed3 db 000h ; 5ed4 db 000h ; 5ed5 db 000h ; 5ed6 db 000h ; 5ed7 db 000h ; 5ed8 db 000h ; 5ed9 db 000h ; 5eda db 000h ; 5edb db 000h ; 5edc db 000h ; 5edd db 000h ; 5ede db 008h ; 5edf db 008h ; 5ee0 db 010h ; 5ee1 db 000h ; 5ee2 db 000h ; 5ee3 db 000h ; 5ee4 db 000h ; 5ee5 db 000h ; 5ee6 db 000h ; 5ee7 db 000h ; 5ee8 db 000h ; 5ee9 db 000h ; 5eea db 03eh ; 5eeb db 000h ; 5eec db 000h ; 5eed db 000h ; 5eee db 000h ; 5eef db 000h ; 5ef0 db 000h ; 5ef1 db 000h ; 5ef2 db 000h ; 5ef3 db 000h ; 5ef4 db 000h ; 5ef5 db 000h ; 5ef6 db 000h ; 5ef7 db 000h ; 5ef8 db 000h ; 5ef9 db 000h ; 5efa db 000h ; 5efb db 000h ; 5efc db 000h ; 5efd db 000h ; 5efe db 008h ; 5eff db 000h ; 5f00 db 000h ; 5f01 db 000h ; 5f02 db 000h ; 5f03 db 000h ; 5f04 db 000h ; 5f05 db 000h ; 5f06 db 000h ; 5f07 db 001h ; 5f08 db 002h ; 5f09 db 004h ; 5f0a db 008h ; 5f0b db 010h ; 5f0c db 020h ; 5f0d db 040h ; 5f0e db 000h ; 5f0f db 000h ; 5f10 db 000h ; 5f11 db 000h ; 5f12 db 000h ; 5f13 db 000h ; 5f14 db 000h ; 5f15 db 000h ; 5f16 db 03eh ; 5f17 db 041h ; 5f18 db 043h ; 5f19 db 045h ; 5f1a db 049h ; 5f1b db 051h ; 5f1c db 061h ; 5f1d db 041h ; 5f1e db 03eh ; 5f1f db 000h ; 5f20 db 000h ; 5f21 db 000h ; 5f22 db 000h ; 5f23 db 000h ; 5f24 db 000h ; 5f25 db 000h ; 5f26 db 008h ; 5f27 db 018h ; 5f28 db 028h ; 5f29 db 008h ; 5f2a db 008h ; 5f2b db 008h ; 5f2c db 008h ; 5f2d db 008h ; 5f2e db 03eh ; 5f2f db 000h ; 5f30 db 000h ; 5f31 db 000h ; 5f32 db 000h ; 5f33 db 000h ; 5f34 db 000h ; 5f35 db 000h ; 5f36 db 03eh ; 5f37 db 041h ; 5f38 db 001h ; 5f39 db 002h ; 5f3a db 004h ; 5f3b db 008h ; 5f3c db 010h ; 5f3d db 020h ; 5f3e db 07fh ; 5f3f db 000h ; 5f40 db 000h ; 5f41 db 000h ; 5f42 db 000h ; 5f43 db 000h ; 5f44 db 000h ; 5f45 db 000h ; 5f46 db 03eh ; 5f47 db 041h ; 5f48 db 001h ; 5f49 db 001h ; 5f4a db 00eh ; 5f4b db 001h ; 5f4c db 001h ; 5f4d db 041h ; 5f4e db 03eh ; 5f4f db 000h ; 5f50 db 000h ; 5f51 db 000h ; 5f52 db 000h ; 5f53 db 000h ; 5f54 db 000h ; 5f55 db 000h ; 5f56 db 002h ; 5f57 db 006h ; 5f58 db 00ah ; 5f59 db 012h ; 5f5a db 022h ; 5f5b db 042h ; 5f5c db 07fh ; 5f5d db 002h ; 5f5e db 002h ; 5f5f db 000h ; 5f60 db 000h ; 5f61 db 000h ; 5f62 db 000h ; 5f63 db 000h ; 5f64 db 000h ; 5f65 db 000h ; 5f66 db 07eh ; 5f67 db 040h ; 5f68 db 040h ; 5f69 db 07ch ; 5f6a db 002h ; 5f6b db 001h ; 5f6c db 001h ; 5f6d db 042h ; 5f6e db 03ch ; 5f6f db 000h ; 5f70 db 000h ; 5f71 db 000h ; 5f72 db 000h ; 5f73 db 000h ; 5f74 db 000h ; 5f75 db 000h ; 5f76 db 01eh ; 5f77 db 020h ; 5f78 db 040h ; 5f79 db 040h ; 5f7a db 07eh ; 5f7b db 041h ; 5f7c db 041h ; 5f7d db 041h ; 5f7e db 03eh ; 5f7f db 000h ; 5f80 db 000h ; 5f81 db 000h ; 5f82 db 000h ; 5f83 db 000h ; 5f84 db 000h ; 5f85 db 000h ; 5f86 db 07fh ; 5f87 db 041h ; 5f88 db 001h ; 5f89 db 002h ; 5f8a db 004h ; 5f8b db 008h ; 5f8c db 008h ; 5f8d db 008h ; 5f8e db 008h ; 5f8f db 000h ; 5f90 db 000h ; 5f91 db 000h ; 5f92 db 000h ; 5f93 db 000h ; 5f94 db 000h ; 5f95 db 000h ; 5f96 db 03eh ; 5f97 db 041h ; 5f98 db 041h ; 5f99 db 041h ; 5f9a db 03eh ; 5f9b db 041h ; 5f9c db 041h ; 5f9d db 041h ; 5f9e db 03eh ; 5f9f db 000h ; 5fa0 db 000h ; 5fa1 db 000h ; 5fa2 db 000h ; 5fa3 db 000h ; 5fa4 db 000h ; 5fa5 db 000h ; 5fa6 db 03eh ; 5fa7 db 041h ; 5fa8 db 041h ; 5fa9 db 041h ; 5faa db 03fh ; 5fab db 001h ; 5fac db 001h ; 5fad db 002h ; 5fae db 03ch ; 5faf db 000h ; 5fb0 db 000h ; 5fb1 db 000h ; 5fb2 db 000h ; 5fb3 db 000h ; 5fb4 db 000h ; 5fb5 db 000h ; 5fb6 db 000h ; 5fb7 db 000h ; 5fb8 db 000h ; 5fb9 db 008h ; 5fba db 000h ; 5fbb db 000h ; 5fbc db 000h ; 5fbd db 008h ; 5fbe db 000h ; 5fbf db 000h ; 5fc0 db 000h ; 5fc1 db 000h ; 5fc2 db 000h ; 5fc3 db 000h ; 5fc4 db 000h ; 5fc5 db 000h ; 5fc6 db 000h ; 5fc7 db 000h ; 5fc8 db 000h ; 5fc9 db 008h ; 5fca db 000h ; 5fcb db 000h ; 5fcc db 000h ; 5fcd db 008h ; 5fce db 008h ; 5fcf db 010h ; 5fd0 db 000h ; 5fd1 db 000h ; 5fd2 db 000h ; 5fd3 db 000h ; 5fd4 db 000h ; 5fd5 db 000h ; 5fd6 db 000h ; 5fd7 db 004h ; 5fd8 db 008h ; 5fd9 db 010h ; 5fda db 020h ; 5fdb db 010h ; 5fdc db 008h ; 5fdd db 004h ; 5fde db 000h ; 5fdf db 000h ; 5fe0 db 000h ; 5fe1 db 000h ; 5fe2 db 000h ; 5fe3 db 000h ; 5fe4 db 000h ; 5fe5 db 000h ; 5fe6 db 000h ; 5fe7 db 000h ; 5fe8 db 000h ; 5fe9 db 07eh ; 5fea db 000h ; 5feb db 07eh ; 5fec db 000h ; 5fed db 000h ; 5fee db 000h ; 5fef db 000h ; 5ff0 db 000h ; 5ff1 db 000h ; 5ff2 db 000h ; 5ff3 db 000h ; 5ff4 db 000h ; 5ff5 db 000h ; 5ff6 db 000h ; 5ff7 db 020h ; 5ff8 db 010h ; 5ff9 db 008h ; 5ffa db 004h ; 5ffb db 008h ; 5ffc db 010h ; 5ffd db 020h ; 5ffe db 000h ; 5fff db 000h ; 6000 db 000h ; 6001 db 000h ; 6002 db 000h ; 6003 db 000h ; 6004 db 000h ; 6005 db 000h ; 6006 db 03ch ; 6007 db 042h ; 6008 db 002h ; 6009 db 002h ; 600a db 004h ; 600b db 008h ; 600c db 008h ; 600d db 000h ; 600e db 008h ; 600f db 000h ; 6010 db 000h ; 6011 db 000h ; 6012 db 000h ; 6013 db 000h ; 6014 db 000h ; 6015 db 000h ; 6016 db 01eh ; 6017 db 021h ; 6018 db 04dh ; 6019 db 055h ; 601a db 051h ; 601b db 04eh ; 601c db 040h ; 601d db 040h ; 601e db 03ch ; 601f db 000h ; 6020 db 000h ; 6021 db 000h ; 6022 db 000h ; 6023 db 000h ; 6024 db 000h ; 6025 db 000h ; 6026 db 008h ; 6027 db 014h ; 6028 db 022h ; 6029 db 041h ; 602a db 041h ; 602b db 07fh ; 602c db 041h ; 602d db 041h ; 602e db 041h ; 602f db 000h ; 6030 db 000h ; 6031 db 000h ; 6032 db 000h ; 6033 db 000h ; 6034 db 000h ; 6035 db 000h ; 6036 db 07eh ; 6037 db 021h ; 6038 db 021h ; 6039 db 021h ; 603a db 03eh ; 603b db 021h ; 603c db 021h ; 603d db 021h ; 603e db 07eh ; 603f db 000h ; 6040 db 000h ; 6041 db 000h ; 6042 db 000h ; 6043 db 000h ; 6044 db 000h ; 6045 db 000h ; 6046 db 01eh ; 6047 db 021h ; 6048 db 040h ; 6049 db 040h ; 604a db 040h ; 604b db 040h ; 604c db 040h ; 604d db 021h ; 604e db 01eh ; 604f db 000h ; 6050 db 000h ; 6051 db 000h ; 6052 db 000h ; 6053 db 000h ; 6054 db 000h ; 6055 db 000h ; 6056 db 07ch ; 6057 db 022h ; 6058 db 021h ; 6059 db 021h ; 605a db 021h ; 605b db 021h ; 605c db 021h ; 605d db 022h ; 605e db 07ch ; 605f db 000h ; 6060 db 000h ; 6061 db 000h ; 6062 db 000h ; 6063 db 000h ; 6064 db 000h ; 6065 db 000h ; 6066 db 07fh ; 6067 db 040h ; 6068 db 040h ; 6069 db 040h ; 606a db 07ch ; 606b db 040h ; 606c db 040h ; 606d db 040h ; 606e db 07fh ; 606f db 000h ; 6070 db 000h ; 6071 db 000h ; 6072 db 000h ; 6073 db 000h ; 6074 db 000h ; 6075 db 000h ; 6076 db 07fh ; 6077 db 040h ; 6078 db 040h ; 6079 db 040h ; 607a db 07ch ; 607b db 040h ; 607c db 040h ; 607d db 040h ; 607e db 040h ; 607f db 000h ; 6080 db 000h ; 6081 db 000h ; 6082 db 000h ; 6083 db 000h ; 6084 db 000h ; 6085 db 000h ; 6086 db 01eh ; 6087 db 021h ; 6088 db 040h ; 6089 db 040h ; 608a db 04fh ; 608b db 041h ; 608c db 041h ; 608d db 021h ; 608e db 01eh ; 608f db 000h ; 6090 db 000h ; 6091 db 000h ; 6092 db 000h ; 6093 db 000h ; 6094 db 000h ; 6095 db 000h ; 6096 db 041h ; 6097 db 041h ; 6098 db 041h ; 6099 db 041h ; 609a db 07fh ; 609b db 041h ; 609c db 041h ; 609d db 041h ; 609e db 041h ; 609f db 000h ; 60a0 db 000h ; 60a1 db 000h ; 60a2 db 000h ; 60a3 db 000h ; 60a4 db 000h ; 60a5 db 000h ; 60a6 db 01ch ; 60a7 db 008h ; 60a8 db 008h ; 60a9 db 008h ; 60aa db 008h ; 60ab db 008h ; 60ac db 008h ; 60ad db 008h ; 60ae db 01ch ; 60af db 000h ; 60b0 db 000h ; 60b1 db 000h ; 60b2 db 000h ; 60b3 db 000h ; 60b4 db 000h ; 60b5 db 000h ; 60b6 db 00eh ; 60b7 db 004h ; 60b8 db 004h ; 60b9 db 004h ; 60ba db 004h ; 60bb db 004h ; 60bc db 004h ; 60bd db 024h ; 60be db 018h ; 60bf db 000h ; 60c0 db 000h ; 60c1 db 000h ; 60c2 db 000h ; 60c3 db 000h ; 60c4 db 000h ; 60c5 db 000h ; 60c6 db 041h ; 60c7 db 042h ; 60c8 db 044h ; 60c9 db 048h ; 60ca db 050h ; 60cb db 068h ; 60cc db 044h ; 60cd db 042h ; 60ce db 041h ; 60cf db 000h ; 60d0 db 000h ; 60d1 db 000h ; 60d2 db 000h ; 60d3 db 000h ; 60d4 db 000h ; 60d5 db 000h ; 60d6 db 040h ; 60d7 db 040h ; 60d8 db 040h ; 60d9 db 040h ; 60da db 040h ; 60db db 040h ; 60dc db 040h ; 60dd db 040h ; 60de db 07fh ; 60df db 000h ; 60e0 db 000h ; 60e1 db 000h ; 60e2 db 000h ; 60e3 db 000h ; 60e4 db 000h ; 60e5 db 000h ; 60e6 db 041h ; 60e7 db 063h ; 60e8 db 055h ; 60e9 db 049h ; 60ea db 049h ; 60eb db 041h ; 60ec db 041h ; 60ed db 041h ; 60ee db 041h ; 60ef db 000h ; 60f0 db 000h ; 60f1 db 000h ; 60f2 db 000h ; 60f3 db 000h ; 60f4 db 000h ; 60f5 db 000h ; 60f6 db 041h ; 60f7 db 041h ; 60f8 db 061h ; 60f9 db 051h ; 60fa db 049h ; 60fb db 045h ; 60fc db 043h ; 60fd db 041h ; 60fe db 041h ; 60ff db 000h ; 6100 db 000h ; 6101 db 000h ; 6102 db 000h ; 6103 db 000h ; 6104 db 000h ; 6105 db 000h ; 6106 db 03eh ; 6107 db 041h ; 6108 db 041h ; 6109 db 041h ; 610a db 041h ; 610b db 041h ; 610c db 041h ; 610d db 041h ; 610e db 03eh ; 610f db 000h ; 6110 db 000h ; 6111 db 000h ; 6112 db 000h ; 6113 db 000h ; 6114 db 000h ; 6115 db 000h ; 6116 db 07eh ; 6117 db 041h ; 6118 db 041h ; 6119 db 041h ; 611a db 07eh ; 611b db 040h ; 611c db 040h ; 611d db 040h ; 611e db 040h ; 611f db 000h ; 6120 db 000h ; 6121 db 000h ; 6122 db 000h ; 6123 db 000h ; 6124 db 000h ; 6125 db 000h ; 6126 db 03eh ; 6127 db 041h ; 6128 db 041h ; 6129 db 041h ; 612a db 041h ; 612b db 049h ; 612c db 045h ; 612d db 042h ; 612e db 03dh ; 612f db 000h ; 6130 db 000h ; 6131 db 000h ; 6132 db 000h ; 6133 db 000h ; 6134 db 000h ; 6135 db 000h ; 6136 db 07eh ; 6137 db 041h ; 6138 db 041h ; 6139 db 041h ; 613a db 07eh ; 613b db 048h ; 613c db 044h ; 613d db 042h ; 613e db 041h ; 613f db 000h ; 6140 db 000h ; 6141 db 000h ; 6142 db 000h ; 6143 db 000h ; 6144 db 000h ; 6145 db 000h ; 6146 db 03eh ; 6147 db 041h ; 6148 db 040h ; 6149 db 040h ; 614a db 03eh ; 614b db 001h ; 614c db 001h ; 614d db 041h ; 614e db 03eh ; 614f db 000h ; 6150 db 000h ; 6151 db 000h ; 6152 db 000h ; 6153 db 000h ; 6154 db 000h ; 6155 db 000h ; 6156 db 07fh ; 6157 db 008h ; 6158 db 008h ; 6159 db 008h ; 615a db 008h ; 615b db 008h ; 615c db 008h ; 615d db 008h ; 615e db 008h ; 615f db 000h ; 6160 db 000h ; 6161 db 000h ; 6162 db 000h ; 6163 db 000h ; 6164 db 000h ; 6165 db 000h ; 6166 db 041h ; 6167 db 041h ; 6168 db 041h ; 6169 db 041h ; 616a db 041h ; 616b db 041h ; 616c db 041h ; 616d db 041h ; 616e db 03eh ; 616f db 000h ; 6170 db 000h ; 6171 db 000h ; 6172 db 000h ; 6173 db 000h ; 6174 db 000h ; 6175 db 000h ; 6176 db 041h ; 6177 db 041h ; 6178 db 041h ; 6179 db 022h ; 617a db 022h ; 617b db 014h ; 617c db 014h ; 617d db 008h ; 617e db 008h ; 617f db 000h ; 6180 db 000h ; 6181 db 000h ; 6182 db 000h ; 6183 db 000h ; 6184 db 000h ; 6185 db 000h ; 6186 db 041h ; 6187 db 041h ; 6188 db 041h ; 6189 db 041h ; 618a db 049h ; 618b db 049h ; 618c db 055h ; 618d db 063h ; 618e db 041h ; 618f db 000h ; 6190 db 000h ; 6191 db 000h ; 6192 db 000h ; 6193 db 000h ; 6194 db 000h ; 6195 db 000h ; 6196 db 041h ; 6197 db 041h ; 6198 db 022h ; 6199 db 014h ; 619a db 008h ; 619b db 014h ; 619c db 022h ; 619d db 041h ; 619e db 041h ; 619f db 000h ; 61a0 db 000h ; 61a1 db 000h ; 61a2 db 000h ; 61a3 db 000h ; 61a4 db 000h ; 61a5 db 000h ; 61a6 db 041h ; 61a7 db 041h ; 61a8 db 041h ; 61a9 db 022h ; 61aa db 014h ; 61ab db 008h ; 61ac db 008h ; 61ad db 008h ; 61ae db 008h ; 61af db 000h ; 61b0 db 000h ; 61b1 db 000h ; 61b2 db 000h ; 61b3 db 000h ; 61b4 db 000h ; 61b5 db 000h ; 61b6 db 07fh ; 61b7 db 001h ; 61b8 db 002h ; 61b9 db 004h ; 61ba db 008h ; 61bb db 010h ; 61bc db 020h ; 61bd db 040h ; 61be db 07fh ; 61bf db 000h ; 61c0 db 000h ; 61c1 db 000h ; 61c2 db 000h ; 61c3 db 000h ; 61c4 db 000h ; 61c5 db 000h ; 61c6 db 01ch ; 61c7 db 010h ; 61c8 db 010h ; 61c9 db 010h ; 61ca db 010h ; 61cb db 010h ; 61cc db 010h ; 61cd db 010h ; 61ce db 01ch ; 61cf db 000h ; 61d0 db 000h ; 61d1 db 000h ; 61d2 db 000h ; 61d3 db 000h ; 61d4 db 000h ; 61d5 db 000h ; 61d6 db 000h ; 61d7 db 040h ; 61d8 db 020h ; 61d9 db 010h ; 61da db 008h ; 61db db 004h ; 61dc db 002h ; 61dd db 001h ; 61de db 000h ; 61df db 000h ; 61e0 db 000h ; 61e1 db 000h ; 61e2 db 000h ; 61e3 db 000h ; 61e4 db 000h ; 61e5 db 000h ; 61e6 db 01ch ; 61e7 db 004h ; 61e8 db 004h ; 61e9 db 004h ; 61ea db 004h ; 61eb db 004h ; 61ec db 004h ; 61ed db 004h ; 61ee db 01ch ; 61ef db 000h ; 61f0 db 000h ; 61f1 db 000h ; 61f2 db 000h ; 61f3 db 000h ; 61f4 db 000h ; 61f5 db 000h ; 61f6 db 008h ; 61f7 db 014h ; 61f8 db 022h ; 61f9 db 000h ; 61fa db 000h ; 61fb db 000h ; 61fc db 000h ; 61fd db 000h ; 61fe db 000h ; 61ff db 000h ; 6200 db 000h ; 6201 db 000h ; 6202 db 000h ; 6203 db 000h ; 6204 db 000h ; 6205 db 000h ; 6206 db 000h ; 6207 db 000h ; 6208 db 000h ; 6209 db 000h ; 620a db 000h ; 620b db 000h ; 620c db 000h ; 620d db 000h ; 620e db 000h ; 620f db 000h ; 6210 db 0ffh ; 6211 db 000h ; 6212 db 000h ; 6213 db 000h ; 6214 db 000h ; 6215 db 000h ; 6216 db 010h ; 6217 db 010h ; 6218 db 008h ; 6219 db 000h ; 621a db 000h ; 621b db 000h ; 621c db 000h ; 621d db 000h ; 621e db 000h ; 621f db 000h ; 6220 db 000h ; 6221 db 000h ; 6222 db 000h ; 6223 db 000h ; 6224 db 000h ; 6225 db 000h ; 6226 db 000h ; 6227 db 000h ; 6228 db 000h ; 6229 db 038h ; 622a db 004h ; 622b db 03ch ; 622c db 044h ; 622d db 044h ; 622e db 03ah ; 622f db 000h ; 6230 db 000h ; 6231 db 000h ; 6232 db 000h ; 6233 db 000h ; 6234 db 000h ; 6235 db 000h ; 6236 db 040h ; 6237 db 040h ; 6238 db 040h ; 6239 db 05ch ; 623a db 062h ; 623b db 042h ; 623c db 042h ; 623d db 062h ; 623e db 05ch ; 623f db 000h ; 6240 db 000h ; 6241 db 000h ; 6242 db 000h ; 6243 db 000h ; 6244 db 000h ; 6245 db 000h ; 6246 db 000h ; 6247 db 000h ; 6248 db 000h ; 6249 db 03ch ; 624a db 042h ; 624b db 040h ; 624c db 040h ; 624d db 042h ; 624e db 03ch ; 624f db 000h ; 6250 db 000h ; 6251 db 000h ; 6252 db 000h ; 6253 db 000h ; 6254 db 000h ; 6255 db 000h ; 6256 db 002h ; 6257 db 002h ; 6258 db 002h ; 6259 db 03ah ; 625a db 046h ; 625b db 042h ; 625c db 042h ; 625d db 046h ; 625e db 03ah ; 625f db 000h ; 6260 db 000h ; 6261 db 000h ; 6262 db 000h ; 6263 db 000h ; 6264 db 000h ; 6265 db 000h ; 6266 db 000h ; 6267 db 000h ; 6268 db 000h ; 6269 db 03ch ; 626a db 042h ; 626b db 07eh ; 626c db 040h ; 626d db 042h ; 626e db 03ch ; 626f db 000h ; 6270 db 000h ; 6271 db 000h ; 6272 db 000h ; 6273 db 000h ; 6274 db 000h ; 6275 db 000h ; 6276 db 004h ; 6277 db 00ah ; 6278 db 008h ; 6279 db 008h ; 627a db 03eh ; 627b db 008h ; 627c db 008h ; 627d db 008h ; 627e db 008h ; 627f db 000h ; 6280 db 000h ; 6281 db 000h ; 6282 db 000h ; 6283 db 000h ; 6284 db 000h ; 6285 db 000h ; 6286 db 000h ; 6287 db 000h ; 6288 db 000h ; 6289 db 03ah ; 628a db 046h ; 628b db 042h ; 628c db 042h ; 628d db 046h ; 628e db 03ah ; 628f db 002h ; 6290 db 002h ; 6291 db 022h ; 6292 db 01ch ; 6293 db 000h ; 6294 db 000h ; 6295 db 000h ; 6296 db 040h ; 6297 db 040h ; 6298 db 040h ; 6299 db 05ch ; 629a db 062h ; 629b db 042h ; 629c db 042h ; 629d db 042h ; 629e db 042h ; 629f db 000h ; 62a0 db 000h ; 62a1 db 000h ; 62a2 db 000h ; 62a3 db 000h ; 62a4 db 000h ; 62a5 db 000h ; 62a6 db 008h ; 62a7 db 000h ; 62a8 db 000h ; 62a9 db 018h ; 62aa db 008h ; 62ab db 008h ; 62ac db 008h ; 62ad db 008h ; 62ae db 01ch ; 62af db 000h ; 62b0 db 000h ; 62b1 db 000h ; 62b2 db 000h ; 62b3 db 000h ; 62b4 db 000h ; 62b5 db 000h ; 62b6 db 008h ; 62b7 db 000h ; 62b8 db 000h ; 62b9 db 018h ; 62ba db 008h ; 62bb db 008h ; 62bc db 008h ; 62bd db 008h ; 62be db 008h ; 62bf db 008h ; 62c0 db 008h ; 62c1 db 028h ; 62c2 db 010h ; 62c3 db 000h ; 62c4 db 000h ; 62c5 db 000h ; 62c6 db 040h ; 62c7 db 040h ; 62c8 db 040h ; 62c9 db 044h ; 62ca db 048h ; 62cb db 050h ; 62cc db 070h ; 62cd db 048h ; 62ce db 044h ; 62cf db 000h ; 62d0 db 000h ; 62d1 db 000h ; 62d2 db 000h ; 62d3 db 000h ; 62d4 db 000h ; 62d5 db 000h ; 62d6 db 018h ; 62d7 db 008h ; 62d8 db 008h ; 62d9 db 008h ; 62da db 008h ; 62db db 008h ; 62dc db 008h ; 62dd db 008h ; 62de db 01ch ; 62df db 000h ; 62e0 db 000h ; 62e1 db 000h ; 62e2 db 000h ; 62e3 db 000h ; 62e4 db 000h ; 62e5 db 000h ; 62e6 db 000h ; 62e7 db 000h ; 62e8 db 000h ; 62e9 db 076h ; 62ea db 049h ; 62eb db 049h ; 62ec db 049h ; 62ed db 049h ; 62ee db 049h ; 62ef db 000h ; 62f0 db 000h ; 62f1 db 000h ; 62f2 db 000h ; 62f3 db 000h ; 62f4 db 000h ; 62f5 db 000h ; 62f6 db 000h ; 62f7 db 000h ; 62f8 db 000h ; 62f9 db 05ch ; 62fa db 062h ; 62fb db 042h ; 62fc db 042h ; 62fd db 042h ; 62fe db 042h ; 62ff db 000h ; 6300 db 000h ; 6301 db 000h ; 6302 db 000h ; 6303 db 000h ; 6304 db 000h ; 6305 db 000h ; 6306 db 000h ; 6307 db 000h ; 6308 db 000h ; 6309 db 03ch ; 630a db 042h ; 630b db 042h ; 630c db 042h ; 630d db 042h ; 630e db 03ch ; 630f db 000h ; 6310 db 000h ; 6311 db 000h ; 6312 db 000h ; 6313 db 000h ; 6314 db 000h ; 6315 db 000h ; 6316 db 000h ; 6317 db 000h ; 6318 db 000h ; 6319 db 05ch ; 631a db 062h ; 631b db 042h ; 631c db 042h ; 631d db 062h ; 631e db 05ch ; 631f db 040h ; 6320 db 040h ; 6321 db 040h ; 6322 db 040h ; 6323 db 000h ; 6324 db 000h ; 6325 db 000h ; 6326 db 000h ; 6327 db 000h ; 6328 db 000h ; 6329 db 03ah ; 632a db 046h ; 632b db 042h ; 632c db 042h ; 632d db 046h ; 632e db 03ah ; 632f db 002h ; 6330 db 002h ; 6331 db 002h ; 6332 db 002h ; 6333 db 000h ; 6334 db 000h ; 6335 db 000h ; 6336 db 000h ; 6337 db 000h ; 6338 db 000h ; 6339 db 05ch ; 633a db 062h ; 633b db 040h ; 633c db 040h ; 633d db 040h ; 633e db 040h ; 633f db 000h ; 6340 db 000h ; 6341 db 000h ; 6342 db 000h ; 6343 db 000h ; 6344 db 000h ; 6345 db 000h ; 6346 db 000h ; 6347 db 000h ; 6348 db 000h ; 6349 db 03ch ; 634a db 042h ; 634b db 030h ; 634c db 00ch ; 634d db 042h ; 634e db 03ch ; 634f db 000h ; 6350 db 000h ; 6351 db 000h ; 6352 db 000h ; 6353 db 000h ; 6354 db 000h ; 6355 db 000h ; 6356 db 010h ; 6357 db 010h ; 6358 db 010h ; 6359 db 07ch ; 635a db 010h ; 635b db 010h ; 635c db 010h ; 635d db 012h ; 635e db 00ch ; 635f db 000h ; 6360 db 000h ; 6361 db 000h ; 6362 db 000h ; 6363 db 000h ; 6364 db 000h ; 6365 db 000h ; 6366 db 000h ; 6367 db 000h ; 6368 db 000h ; 6369 db 042h ; 636a db 042h ; 636b db 042h ; 636c db 042h ; 636d db 046h ; 636e db 03ah ; 636f db 000h ; 6370 db 000h ; 6371 db 000h ; 6372 db 000h ; 6373 db 000h ; 6374 db 000h ; 6375 db 000h ; 6376 db 000h ; 6377 db 000h ; 6378 db 000h ; 6379 db 042h ; 637a db 042h ; 637b db 042h ; 637c db 042h ; 637d db 024h ; 637e db 018h ; 637f db 000h ; 6380 db 000h ; 6381 db 000h ; 6382 db 000h ; 6383 db 000h ; 6384 db 000h ; 6385 db 000h ; 6386 db 000h ; 6387 db 000h ; 6388 db 000h ; 6389 db 041h ; 638a db 041h ; 638b db 041h ; 638c db 049h ; 638d db 049h ; 638e db 036h ; 638f db 000h ; 6390 db 000h ; 6391 db 000h ; 6392 db 000h ; 6393 db 000h ; 6394 db 000h ; 6395 db 000h ; 6396 db 000h ; 6397 db 000h ; 6398 db 000h ; 6399 db 042h ; 639a db 024h ; 639b db 018h ; 639c db 018h ; 639d db 024h ; 639e db 042h ; 639f db 000h ; 63a0 db 000h ; 63a1 db 000h ; 63a2 db 000h ; 63a3 db 000h ; 63a4 db 000h ; 63a5 db 000h ; 63a6 db 000h ; 63a7 db 000h ; 63a8 db 000h ; 63a9 db 042h ; 63aa db 042h ; 63ab db 042h ; 63ac db 042h ; 63ad db 046h ; 63ae db 03ah ; 63af db 002h ; 63b0 db 002h ; 63b1 db 022h ; 63b2 db 01ch ; 63b3 db 000h ; 63b4 db 000h ; 63b5 db 000h ; 63b6 db 000h ; 63b7 db 000h ; 63b8 db 000h ; 63b9 db 07eh ; 63ba db 004h ; 63bb db 008h ; 63bc db 010h ; 63bd db 020h ; 63be db 07eh ; 63bf db 000h ; 63c0 db 000h ; 63c1 db 000h ; 63c2 db 000h ; 63c3 db 000h ; 63c4 db 000h ; 63c5 db 000h ; 63c6 db 00ch ; 63c7 db 010h ; 63c8 db 010h ; 63c9 db 010h ; 63ca db 020h ; 63cb db 010h ; 63cc db 010h ; 63cd db 010h ; 63ce db 00ch ; 63cf db 000h ; 63d0 db 000h ; 63d1 db 000h ; 63d2 db 000h ; 63d3 db 000h ; 63d4 db 000h ; 63d5 db 000h ; 63d6 db 008h ; 63d7 db 008h ; 63d8 db 008h ; 63d9 db 008h ; 63da db 000h ; 63db db 008h ; 63dc db 008h ; 63dd db 008h ; 63de db 008h ; 63df db 000h ; 63e0 db 000h ; 63e1 db 000h ; 63e2 db 000h ; 63e3 db 000h ; 63e4 db 000h ; 63e5 db 000h ; 63e6 db 030h ; 63e7 db 008h ; 63e8 db 008h ; 63e9 db 008h ; 63ea db 004h ; 63eb db 008h ; 63ec db 008h ; 63ed db 008h ; 63ee db 030h ; 63ef db 000h ; 63f0 db 000h ; 63f1 db 000h ; 63f2 db 000h ; 63f3 db 000h ; 63f4 db 000h ; 63f5 db 000h ; 63f6 db 032h ; 63f7 db 04ch ; 63f8 db 000h ; 63f9 db 000h ; 63fa db 000h ; 63fb db 000h ; 63fc db 000h ; 63fd db 000h ; 63fe db 000h ; 63ff db 000h ; 6400 db 000h ; 6401 db 000h ; 6402 db 000h ; 6403 db 000h ; 6404 db 000h ; 6405 db 000h ; 6406 db 000h ; 6407 db 000h ; 6408 db 000h ; 6409 db 000h ; 640a db 008h ; 640b db 014h ; 640c db 022h ; 640d db 041h ; 640e db 07fh ; 640f db 000h ; 6410 db 000h ; 6411 db 000h ; 6412 db 000h ; 6413 db 000h ; 6414 db 000h ; 6415 db 000h ; 6416 db 01eh ; 6417 db 021h ; 6418 db 040h ; 6419 db 040h ; 641a db 040h ; 641b db 040h ; 641c db 040h ; 641d db 021h ; 641e db 01eh ; 641f db 004h ; 6420 db 002h ; 6421 db 00ch ; 6422 db 000h ; 6423 db 000h ; 6424 db 000h ; 6425 db 000h ; 6426 db 024h ; 6427 db 000h ; 6428 db 000h ; 6429 db 042h ; 642a db 042h ; 642b db 042h ; 642c db 042h ; 642d db 046h ; 642e db 03ah ; 642f db 000h ; 6430 db 000h ; 6431 db 000h ; 6432 db 000h ; 6433 db 000h ; 6434 db 000h ; 6435 db 000h ; 6436 db 008h ; 6437 db 010h ; 6438 db 000h ; 6439 db 03ch ; 643a db 042h ; 643b db 07eh ; 643c db 040h ; 643d db 042h ; 643e db 03ch ; 643f db 000h ; 6440 db 000h ; 6441 db 000h ; 6442 db 000h ; 6443 db 000h ; 6444 db 000h ; 6445 db 000h ; 6446 db 010h ; 6447 db 028h ; 6448 db 000h ; 6449 db 038h ; 644a db 004h ; 644b db 03ch ; 644c db 044h ; 644d db 044h ; 644e db 03ah ; 644f db 000h ; 6450 db 000h ; 6451 db 000h ; 6452 db 000h ; 6453 db 000h ; 6454 db 000h ; 6455 db 000h ; 6456 db 024h ; 6457 db 000h ; 6458 db 000h ; 6459 db 038h ; 645a db 004h ; 645b db 03ch ; 645c db 044h ; 645d db 044h ; 645e db 03ah ; 645f db 000h ; 6460 db 000h ; 6461 db 000h ; 6462 db 000h ; 6463 db 000h ; 6464 db 000h ; 6465 db 000h ; 6466 db 010h ; 6467 db 008h ; 6468 db 000h ; 6469 db 038h ; 646a db 004h ; 646b db 03ch ; 646c db 044h ; 646d db 044h ; 646e db 03ah ; 646f db 000h ; 6470 db 000h ; 6471 db 000h ; 6472 db 000h ; 6473 db 000h ; 6474 db 000h ; 6475 db 010h ; 6476 db 028h ; 6477 db 010h ; 6478 db 000h ; 6479 db 038h ; 647a db 004h ; 647b db 03ch ; 647c db 044h ; 647d db 044h ; 647e db 03ah ; 647f db 000h ; 6480 db 000h ; 6481 db 000h ; 6482 db 000h ; 6483 db 000h ; 6484 db 000h ; 6485 db 000h ; 6486 db 000h ; 6487 db 000h ; 6488 db 000h ; 6489 db 03ch ; 648a db 042h ; 648b db 040h ; 648c db 040h ; 648d db 042h ; 648e db 03ch ; 648f db 008h ; 6490 db 004h ; 6491 db 018h ; 6492 db 000h ; 6493 db 000h ; 6494 db 000h ; 6495 db 000h ; 6496 db 008h ; 6497 db 014h ; 6498 db 000h ; 6499 db 03ch ; 649a db 042h ; 649b db 07eh ; 649c db 040h ; 649d db 042h ; 649e db 03ch ; 649f db 000h ; 64a0 db 000h ; 64a1 db 000h ; 64a2 db 000h ; 64a3 db 000h ; 64a4 db 000h ; 64a5 db 000h ; 64a6 db 024h ; 64a7 db 000h ; 64a8 db 000h ; 64a9 db 03ch ; 64aa db 042h ; 64ab db 07eh ; 64ac db 040h ; 64ad db 042h ; 64ae db 03ch ; 64af db 000h ; 64b0 db 000h ; 64b1 db 000h ; 64b2 db 000h ; 64b3 db 000h ; 64b4 db 000h ; 64b5 db 000h ; 64b6 db 010h ; 64b7 db 008h ; 64b8 db 000h ; 64b9 db 03ch ; 64ba db 042h ; 64bb db 07eh ; 64bc db 040h ; 64bd db 042h ; 64be db 03ch ; 64bf db 000h ; 64c0 db 000h ; 64c1 db 000h ; 64c2 db 000h ; 64c3 db 000h ; 64c4 db 000h ; 64c5 db 000h ; 64c6 db 024h ; 64c7 db 000h ; 64c8 db 000h ; 64c9 db 018h ; 64ca db 008h ; 64cb db 008h ; 64cc db 008h ; 64cd db 008h ; 64ce db 01ch ; 64cf db 000h ; 64d0 db 000h ; 64d1 db 000h ; 64d2 db 000h ; 64d3 db 000h ; 64d4 db 000h ; 64d5 db 000h ; 64d6 db 008h ; 64d7 db 014h ; 64d8 db 000h ; 64d9 db 018h ; 64da db 008h ; 64db db 008h ; 64dc db 008h ; 64dd db 008h ; 64de db 01ch ; 64df db 000h ; 64e0 db 000h ; 64e1 db 000h ; 64e2 db 000h ; 64e3 db 000h ; 64e4 db 000h ; 64e5 db 000h ; 64e6 db 010h ; 64e7 db 008h ; 64e8 db 000h ; 64e9 db 018h ; 64ea db 008h ; 64eb db 008h ; 64ec db 008h ; 64ed db 008h ; 64ee db 01ch ; 64ef db 000h ; 64f0 db 000h ; 64f1 db 000h ; 64f2 db 000h ; 64f3 db 000h ; 64f4 db 000h ; 64f5 db 022h ; 64f6 db 008h ; 64f7 db 014h ; 64f8 db 022h ; 64f9 db 041h ; 64fa db 041h ; 64fb db 07fh ; 64fc db 041h ; 64fd db 041h ; 64fe db 041h ; 64ff db 000h ; 6500 db 000h ; 6501 db 000h ; 6502 db 000h ; 6503 db 000h ; 6504 db 000h ; 6505 db 008h ; 6506 db 014h ; 6507 db 008h ; 6508 db 014h ; 6509 db 022h ; 650a db 041h ; 650b db 041h ; 650c db 07fh ; 650d db 041h ; 650e db 041h ; 650f db 000h ; 6510 db 000h ; 6511 db 000h ; 6512 db 000h ; 6513 db 000h ; 6514 db 000h ; 6515 db 004h ; 6516 db 008h ; 6517 db 000h ; 6518 db 07fh ; 6519 db 040h ; 651a db 040h ; 651b db 07ch ; 651c db 040h ; 651d db 040h ; 651e db 07fh ; 651f db 000h ; 6520 db 000h ; 6521 db 000h ; 6522 db 000h ; 6523 db 000h ; 6524 db 000h ; 6525 db 000h ; 6526 db 000h ; 6527 db 000h ; 6528 db 000h ; 6529 db 036h ; 652a db 009h ; 652b db 03eh ; 652c db 048h ; 652d db 048h ; 652e db 036h ; 652f db 000h ; 6530 db 000h ; 6531 db 000h ; 6532 db 000h ; 6533 db 000h ; 6534 db 000h ; 6535 db 000h ; 6536 db 00fh ; 6537 db 018h ; 6538 db 028h ; 6539 db 048h ; 653a db 04eh ; 653b db 078h ; 653c db 048h ; 653d db 048h ; 653e db 04fh ; 653f db 000h ; 6540 db 000h ; 6541 db 000h ; 6542 db 000h ; 6543 db 000h ; 6544 db 000h ; 6545 db 000h ; 6546 db 008h ; 6547 db 014h ; 6548 db 000h ; 6549 db 03ch ; 654a db 042h ; 654b db 042h ; 654c db 042h ; 654d db 042h ; 654e db 03ch ; 654f db 000h ; 6550 db 000h ; 6551 db 000h ; 6552 db 000h ; 6553 db 000h ; 6554 db 000h ; 6555 db 000h ; 6556 db 024h ; 6557 db 000h ; 6558 db 000h ; 6559 db 03ch ; 655a db 042h ; 655b db 042h ; 655c db 042h ; 655d db 042h ; 655e db 03ch ; 655f db 000h ; 6560 db 000h ; 6561 db 000h ; 6562 db 000h ; 6563 db 000h ; 6564 db 000h ; 6565 db 000h ; 6566 db 010h ; 6567 db 008h ; 6568 db 000h ; 6569 db 03ch ; 656a db 042h ; 656b db 042h ; 656c db 042h ; 656d db 042h ; 656e db 03ch ; 656f db 000h ; 6570 db 000h ; 6571 db 000h ; 6572 db 000h ; 6573 db 000h ; 6574 db 000h ; 6575 db 000h ; 6576 db 008h ; 6577 db 014h ; 6578 db 000h ; 6579 db 042h ; 657a db 042h ; 657b db 042h ; 657c db 042h ; 657d db 046h ; 657e db 03ah ; 657f db 000h ; 6580 db 000h ; 6581 db 000h ; 6582 db 000h ; 6583 db 000h ; 6584 db 000h ; 6585 db 000h ; 6586 db 010h ; 6587 db 008h ; 6588 db 000h ; 6589 db 042h ; 658a db 042h ; 658b db 042h ; 658c db 042h ; 658d db 046h ; 658e db 03ah ; 658f db 000h ; 6590 db 000h ; 6591 db 000h ; 6592 db 000h ; 6593 db 000h ; 6594 db 000h ; 6595 db 000h ; 6596 db 024h ; 6597 db 000h ; 6598 db 000h ; 6599 db 042h ; 659a db 042h ; 659b db 042h ; 659c db 042h ; 659d db 046h ; 659e db 03ah ; 659f db 002h ; 65a0 db 002h ; 65a1 db 022h ; 65a2 db 01ch ; 65a3 db 000h ; 65a4 db 000h ; 65a5 db 022h ; 65a6 db 000h ; 65a7 db 03eh ; 65a8 db 041h ; 65a9 db 041h ; 65aa db 041h ; 65ab db 041h ; 65ac db 041h ; 65ad db 041h ; 65ae db 03eh ; 65af db 000h ; 65b0 db 000h ; 65b1 db 000h ; 65b2 db 000h ; 65b3 db 000h ; 65b4 db 000h ; 65b5 db 022h ; 65b6 db 000h ; 65b7 db 041h ; 65b8 db 041h ; 65b9 db 041h ; 65ba db 041h ; 65bb db 041h ; 65bc db 041h ; 65bd db 041h ; 65be db 03eh ; 65bf db 000h ; 65c0 db 000h ; 65c1 db 000h ; 65c2 db 000h ; 65c3 db 000h ; 65c4 db 000h ; 65c5 db 000h ; 65c6 db 000h ; 65c7 db 008h ; 65c8 db 008h ; 65c9 db 03eh ; 65ca db 049h ; 65cb db 048h ; 65cc db 048h ; 65cd db 049h ; 65ce db 03eh ; 65cf db 008h ; 65d0 db 008h ; 65d1 db 000h ; 65d2 db 000h ; 65d3 db 000h ; 65d4 db 000h ; 65d5 db 000h ; 65d6 db 008h ; 65d7 db 014h ; 65d8 db 010h ; 65d9 db 010h ; 65da db 07ch ; 65db db 010h ; 65dc db 010h ; 65dd db 012h ; 65de db 07ch ; 65df db 000h ; 65e0 db 000h ; 65e1 db 000h ; 65e2 db 000h ; 65e3 db 000h ; 65e4 db 000h ; 65e5 db 000h ; 65e6 db 000h ; 65e7 db 022h ; 65e8 db 014h ; 65e9 db 008h ; 65ea db 03eh ; 65eb db 008h ; 65ec db 03eh ; 65ed db 008h ; 65ee db 008h ; 65ef db 000h ; 65f0 db 000h ; 65f1 db 000h ; 65f2 db 000h ; 65f3 db 000h ; 65f4 db 000h ; 65f5 db 000h ; 65f6 db 0e0h ; 65f7 db 090h ; 65f8 db 094h ; 65f9 db 0e4h ; 65fa db 08eh ; 65fb db 084h ; 65fc db 084h ; 65fd db 085h ; 65fe db 082h ; 65ff db 000h ; 6600 db 000h ; 6601 db 000h ; 6602 db 000h ; 6603 db 000h ; 6604 db 000h ; 6605 db 000h ; 6606 db 008h ; 6607 db 014h ; 6608 db 010h ; 6609 db 010h ; 660a db 038h ; 660b db 010h ; 660c db 010h ; 660d db 010h ; 660e db 050h ; 660f db 020h ; 6610 db 000h ; 6611 db 000h ; 6612 db 000h ; 6613 db 000h ; 6614 db 000h ; 6615 db 000h ; 6616 db 008h ; 6617 db 010h ; 6618 db 000h ; 6619 db 038h ; 661a db 004h ; 661b db 03ch ; 661c db 044h ; 661d db 044h ; 661e db 03ah ; 661f db 000h ; 6620 db 000h ; 6621 db 000h ; 6622 db 000h ; 6623 db 000h ; 6624 db 000h ; 6625 db 000h ; 6626 db 008h ; 6627 db 010h ; 6628 db 000h ; 6629 db 018h ; 662a db 008h ; 662b db 008h ; 662c db 008h ; 662d db 008h ; 662e db 01ch ; 662f db 000h ; 6630 db 000h ; 6631 db 000h ; 6632 db 000h ; 6633 db 000h ; 6634 db 000h ; 6635 db 000h ; 6636 db 008h ; 6637 db 010h ; 6638 db 000h ; 6639 db 03ch ; 663a db 042h ; 663b db 042h ; 663c db 042h ; 663d db 042h ; 663e db 03ch ; 663f db 000h ; 6640 db 000h ; 6641 db 000h ; 6642 db 000h ; 6643 db 000h ; 6644 db 000h ; 6645 db 000h ; 6646 db 008h ; 6647 db 010h ; 6648 db 000h ; 6649 db 042h ; 664a db 042h ; 664b db 042h ; 664c db 042h ; 664d db 046h ; 664e db 03ah ; 664f db 000h ; 6650 db 000h ; 6651 db 000h ; 6652 db 000h ; 6653 db 000h ; 6654 db 000h ; 6655 db 000h ; 6656 db 032h ; 6657 db 04ch ; 6658 db 000h ; 6659 db 05ch ; 665a db 062h ; 665b db 042h ; 665c db 042h ; 665d db 042h ; 665e db 042h ; 665f db 000h ; 6660 db 000h ; 6661 db 000h ; 6662 db 000h ; 6663 db 000h ; 6664 db 000h ; 6665 db 019h ; 6666 db 026h ; 6667 db 000h ; 6668 db 041h ; 6669 db 061h ; 666a db 051h ; 666b db 049h ; 666c db 045h ; 666d db 043h ; 666e db 041h ; 666f db 000h ; 6670 db 000h ; 6671 db 000h ; 6672 db 000h ; 6673 db 000h ; 6674 db 000h ; 6675 db 000h ; 6676 db 000h ; 6677 db 000h ; 6678 db 000h ; 6679 db 038h ; 667a db 004h ; 667b db 03ch ; 667c db 044h ; 667d db 044h ; 667e db 03ah ; 667f db 000h ; 6680 db 07eh ; 6681 db 000h ; 6682 db 000h ; 6683 db 000h ; 6684 db 000h ; 6685 db 000h ; 6686 db 000h ; 6687 db 000h ; 6688 db 000h ; 6689 db 03ch ; 668a db 042h ; 668b db 042h ; 668c db 042h ; 668d db 042h ; 668e db 03ch ; 668f db 000h ; 6690 db 07eh ; 6691 db 000h ; 6692 db 000h ; 6693 db 000h ; 6694 db 000h ; 6695 db 000h ; 6696 db 000h ; 6697 db 000h ; 6698 db 008h ; 6699 db 000h ; 669a db 008h ; 669b db 008h ; 669c db 010h ; 669d db 020h ; 669e db 020h ; 669f db 021h ; 66a0 db 01eh ; 66a1 db 000h ; 66a2 db 000h ; 66a3 db 000h ; 66a4 db 000h ; 66a5 db 000h ; 66a6 db 000h ; 66a7 db 000h ; 66a8 db 000h ; 66a9 db 07eh ; 66aa db 040h ; 66ab db 040h ; 66ac db 040h ; 66ad db 040h ; 66ae db 040h ; 66af db 000h ; 66b0 db 000h ; 66b1 db 000h ; 66b2 db 000h ; 66b3 db 000h ; 66b4 db 000h ; 66b5 db 000h ; 66b6 db 000h ; 66b7 db 000h ; 66b8 db 000h ; 66b9 db 07eh ; 66ba db 002h ; 66bb db 002h ; 66bc db 002h ; 66bd db 002h ; 66be db 002h ; 66bf db 000h ; 66c0 db 000h ; 66c1 db 000h ; 66c2 db 000h ; 66c3 db 000h ; 66c4 db 000h ; 66c5 db 000h ; 66c6 db 041h ; 66c7 db 0c2h ; 66c8 db 044h ; 66c9 db 0e8h ; 66ca db 016h ; 66cb db 029h ; 66cc db 042h ; 66cd db 084h ; 66ce db 00fh ; 66cf db 000h ; 66d0 db 000h ; 66d1 db 000h ; 66d2 db 000h ; 66d3 db 000h ; 66d4 db 000h ; 66d5 db 000h ; 66d6 db 041h ; 66d7 db 0c2h ; 66d8 db 044h ; 66d9 db 0e8h ; 66da db 012h ; 66db db 026h ; 66dc db 04ah ; 66dd db 09fh ; 66de db 002h ; 66df db 000h ; 66e0 db 000h ; 66e1 db 000h ; 66e2 db 000h ; 66e3 db 000h ; 66e4 db 000h ; 66e5 db 000h ; 66e6 db 000h ; 66e7 db 000h ; 66e8 db 010h ; 66e9 db 000h ; 66ea db 010h ; 66eb db 010h ; 66ec db 010h ; 66ed db 010h ; 66ee db 010h ; 66ef db 010h ; 66f0 db 010h ; 66f1 db 000h ; 66f2 db 000h ; 66f3 db 000h ; 66f4 db 000h ; 66f5 db 000h ; 66f6 db 000h ; 66f7 db 000h ; 66f8 db 009h ; 66f9 db 012h ; 66fa db 024h ; 66fb db 048h ; 66fc db 024h ; 66fd db 012h ; 66fe db 009h ; 66ff db 000h ; 6700 db 000h ; 6701 db 000h ; 6702 db 000h ; 6703 db 000h ; 6704 db 000h ; 6705 db 000h ; 6706 db 000h ; 6707 db 000h ; 6708 db 048h ; 6709 db 024h ; 670a db 012h ; 670b db 009h ; 670c db 012h ; 670d db 024h ; 670e db 048h ; 670f db 000h ; 6710 db 000h ; 6711 db 000h ; 6712 db 000h ; 6713 db 000h ; 6714 db 000h ; 6715 db 000h ; 6716 db 000h ; 6717 db 011h ; 6718 db 022h ; 6719 db 044h ; 671a db 088h ; 671b db 011h ; 671c db 022h ; 671d db 044h ; 671e db 088h ; 671f db 011h ; 6720 db 022h ; 6721 db 044h ; 6722 db 088h ; 6723 db 000h ; 6724 db 000h ; 6725 db 000h ; 6726 db 000h ; 6727 db 033h ; 6728 db 066h ; 6729 db 0cch ; 672a db 099h ; 672b db 033h ; 672c db 066h ; 672d db 0cch ; 672e db 099h ; 672f db 033h ; 6730 db 066h ; 6731 db 0cch ; 6732 db 099h ; 6733 db 000h ; 6734 db 000h ; 6735 db 000h ; 6736 db 000h ; 6737 db 077h ; 6738 db 0eeh ; 6739 db 0ddh ; 673a db 0bbh ; 673b db 077h ; 673c db 0eeh ; 673d db 0ddh ; 673e db 0bbh ; 673f db 077h ; 6740 db 0eeh ; 6741 db 0ddh ; 6742 db 0bbh ; 6743 db 000h ; 6744 db 000h ; 6745 db 010h ; 6746 db 010h ; 6747 db 010h ; 6748 db 010h ; 6749 db 010h ; 674a db 010h ; 674b db 010h ; 674c db 010h ; 674d db 010h ; 674e db 010h ; 674f db 010h ; 6750 db 010h ; 6751 db 010h ; 6752 db 010h ; 6753 db 010h ; 6754 db 010h ; 6755 db 010h ; 6756 db 010h ; 6757 db 010h ; 6758 db 010h ; 6759 db 010h ; 675a db 010h ; 675b db 010h ; 675c db 010h ; 675d db 0f0h ; 675e db 010h ; 675f db 010h ; 6760 db 010h ; 6761 db 010h ; 6762 db 010h ; 6763 db 010h ; 6764 db 010h ; 6765 db 010h ; 6766 db 010h ; 6767 db 010h ; 6768 db 010h ; 6769 db 010h ; 676a db 010h ; 676b db 0f0h ; 676c db 010h ; 676d db 0f0h ; 676e db 010h ; 676f db 010h ; 6770 db 010h ; 6771 db 010h ; 6772 db 010h ; 6773 db 010h ; 6774 db 010h ; 6775 db 028h ; 6776 db 028h ; 6777 db 028h ; 6778 db 028h ; 6779 db 028h ; 677a db 028h ; 677b db 028h ; 677c db 028h ; 677d db 0e8h ; 677e db 028h ; 677f db 028h ; 6780 db 028h ; 6781 db 028h ; 6782 db 028h ; 6783 db 028h ; 6784 db 028h ; 6785 db 000h ; 6786 db 000h ; 6787 db 000h ; 6788 db 000h ; 6789 db 000h ; 678a db 000h ; 678b db 000h ; 678c db 000h ; 678d db 0f8h ; 678e db 028h ; 678f db 028h ; 6790 db 028h ; 6791 db 028h ; 6792 db 028h ; 6793 db 028h ; 6794 db 028h ; 6795 db 000h ; 6796 db 000h ; 6797 db 000h ; 6798 db 000h ; 6799 db 000h ; 679a db 000h ; 679b db 0f0h ; 679c db 010h ; 679d db 0f0h ; 679e db 010h ; 679f db 010h ; 67a0 db 010h ; 67a1 db 010h ; 67a2 db 010h ; 67a3 db 010h ; 67a4 db 010h ; 67a5 db 028h ; 67a6 db 028h ; 67a7 db 028h ; 67a8 db 028h ; 67a9 db 028h ; 67aa db 028h ; 67ab db 0e8h ; 67ac db 028h ; 67ad db 0e8h ; 67ae db 028h ; 67af db 028h ; 67b0 db 028h ; 67b1 db 028h ; 67b2 db 028h ; 67b3 db 028h ; 67b4 db 028h ; 67b5 db 028h ; 67b6 db 028h ; 67b7 db 028h ; 67b8 db 028h ; 67b9 db 028h ; 67ba db 028h ; 67bb db 028h ; 67bc db 028h ; 67bd db 028h ; 67be db 028h ; 67bf db 028h ; 67c0 db 028h ; 67c1 db 028h ; 67c2 db 028h ; 67c3 db 028h ; 67c4 db 028h ; 67c5 db 000h ; 67c6 db 000h ; 67c7 db 000h ; 67c8 db 000h ; 67c9 db 000h ; 67ca db 000h ; 67cb db 0f8h ; 67cc db 008h ; 67cd db 0e8h ; 67ce db 028h ; 67cf db 028h ; 67d0 db 028h ; 67d1 db 028h ; 67d2 db 028h ; 67d3 db 028h ; 67d4 db 028h ; 67d5 db 028h ; 67d6 db 028h ; 67d7 db 028h ; 67d8 db 028h ; 67d9 db 028h ; 67da db 028h ; 67db db 0e8h ; 67dc db 008h ; 67dd db 0f8h ; 67de db 000h ; 67df db 000h ; 67e0 db 000h ; 67e1 db 000h ; 67e2 db 000h ; 67e3 db 000h ; 67e4 db 000h ; 67e5 db 028h ; 67e6 db 028h ; 67e7 db 028h ; 67e8 db 028h ; 67e9 db 028h ; 67ea db 028h ; 67eb db 028h ; 67ec db 028h ; 67ed db 0f8h ; 67ee db 000h ; 67ef db 000h ; 67f0 db 000h ; 67f1 db 000h ; 67f2 db 000h ; 67f3 db 000h ; 67f4 db 000h ; 67f5 db 010h ; 67f6 db 010h ; 67f7 db 010h ; 67f8 db 010h ; 67f9 db 010h ; 67fa db 010h ; 67fb db 0f0h ; 67fc db 010h ; 67fd db 0f0h ; 67fe db 000h ; 67ff db 000h ; 6800 db 000h ; 6801 db 000h ; 6802 db 000h ; 6803 db 000h ; 6804 db 000h ; 6805 db 000h ; 6806 db 000h ; 6807 db 000h ; 6808 db 000h ; 6809 db 000h ; 680a db 000h ; 680b db 000h ; 680c db 000h ; 680d db 0f0h ; 680e db 010h ; 680f db 010h ; 6810 db 010h ; 6811 db 010h ; 6812 db 010h ; 6813 db 010h ; 6814 db 010h ; 6815 db 010h ; 6816 db 010h ; 6817 db 010h ; 6818 db 010h ; 6819 db 010h ; 681a db 010h ; 681b db 010h ; 681c db 010h ; 681d db 01fh ; 681e db 000h ; 681f db 000h ; 6820 db 000h ; 6821 db 000h ; 6822 db 000h ; 6823 db 000h ; 6824 db 000h ; 6825 db 010h ; 6826 db 010h ; 6827 db 010h ; 6828 db 010h ; 6829 db 010h ; 682a db 010h ; 682b db 010h ; 682c db 010h ; 682d db 0ffh ; 682e db 000h ; 682f db 000h ; 6830 db 000h ; 6831 db 000h ; 6832 db 000h ; 6833 db 000h ; 6834 db 000h ; 6835 db 000h ; 6836 db 000h ; 6837 db 000h ; 6838 db 000h ; 6839 db 000h ; 683a db 000h ; 683b db 000h ; 683c db 000h ; 683d db 0ffh ; 683e db 010h ; 683f db 010h ; 6840 db 010h ; 6841 db 010h ; 6842 db 010h ; 6843 db 010h ; 6844 db 010h ; 6845 db 010h ; 6846 db 010h ; 6847 db 010h ; 6848 db 010h ; 6849 db 010h ; 684a db 010h ; 684b db 010h ; 684c db 010h ; 684d db 01fh ; 684e db 010h ; 684f db 010h ; 6850 db 010h ; 6851 db 010h ; 6852 db 010h ; 6853 db 010h ; 6854 db 010h ; 6855 db 000h ; 6856 db 000h ; 6857 db 000h ; 6858 db 000h ; 6859 db 000h ; 685a db 000h ; 685b db 000h ; 685c db 000h ; 685d db 0ffh ; 685e db 000h ; 685f db 000h ; 6860 db 000h ; 6861 db 000h ; 6862 db 000h ; 6863 db 000h ; 6864 db 000h ; 6865 db 010h ; 6866 db 010h ; 6867 db 010h ; 6868 db 010h ; 6869 db 010h ; 686a db 010h ; 686b db 010h ; 686c db 010h ; 686d db 0ffh ; 686e db 010h ; 686f db 010h ; 6870 db 010h ; 6871 db 010h ; 6872 db 010h ; 6873 db 010h ; 6874 db 010h ; 6875 db 010h ; 6876 db 010h ; 6877 db 010h ; 6878 db 010h ; 6879 db 010h ; 687a db 010h ; 687b db 01fh ; 687c db 010h ; 687d db 01fh ; 687e db 010h ; 687f db 010h ; 6880 db 010h ; 6881 db 010h ; 6882 db 010h ; 6883 db 010h ; 6884 db 010h ; 6885 db 028h ; 6886 db 028h ; 6887 db 028h ; 6888 db 028h ; 6889 db 028h ; 688a db 028h ; 688b db 028h ; 688c db 028h ; 688d db 02fh ; 688e db 028h ; 688f db 028h ; 6890 db 028h ; 6891 db 028h ; 6892 db 028h ; 6893 db 028h ; 6894 db 028h ; 6895 db 028h ; 6896 db 028h ; 6897 db 028h ; 6898 db 028h ; 6899 db 028h ; 689a db 028h ; 689b db 02fh ; 689c db 020h ; 689d db 03fh ; 689e db 000h ; 689f db 000h ; 68a0 db 000h ; 68a1 db 000h ; 68a2 db 000h ; 68a3 db 000h ; 68a4 db 000h ; 68a5 db 000h ; 68a6 db 000h ; 68a7 db 000h ; 68a8 db 000h ; 68a9 db 000h ; 68aa db 000h ; 68ab db 03fh ; 68ac db 020h ; 68ad db 02fh ; 68ae db 028h ; 68af db 028h ; 68b0 db 028h ; 68b1 db 028h ; 68b2 db 028h ; 68b3 db 028h ; 68b4 db 028h ; 68b5 db 028h ; 68b6 db 028h ; 68b7 db 028h ; 68b8 db 028h ; 68b9 db 028h ; 68ba db 028h ; 68bb db 0efh ; 68bc db 000h ; 68bd db 0ffh ; 68be db 000h ; 68bf db 000h ; 68c0 db 000h ; 68c1 db 000h ; 68c2 db 000h ; 68c3 db 000h ; 68c4 db 000h ; 68c5 db 000h ; 68c6 db 000h ; 68c7 db 000h ; 68c8 db 000h ; 68c9 db 000h ; 68ca db 000h ; 68cb db 0ffh ; 68cc db 000h ; 68cd db 0efh ; 68ce db 028h ; 68cf db 028h ; 68d0 db 028h ; 68d1 db 028h ; 68d2 db 028h ; 68d3 db 028h ; 68d4 db 028h ; 68d5 db 028h ; 68d6 db 028h ; 68d7 db 028h ; 68d8 db 028h ; 68d9 db 028h ; 68da db 028h ; 68db db 02fh ; 68dc db 020h ; 68dd db 02fh ; 68de db 028h ; 68df db 028h ; 68e0 db 028h ; 68e1 db 028h ; 68e2 db 028h ; 68e3 db 028h ; 68e4 db 028h ; 68e5 db 000h ; 68e6 db 000h ; 68e7 db 000h ; 68e8 db 000h ; 68e9 db 000h ; 68ea db 000h ; 68eb db 0ffh ; 68ec db 000h ; 68ed db 0ffh ; 68ee db 000h ; 68ef db 000h ; 68f0 db 000h ; 68f1 db 000h ; 68f2 db 000h ; 68f3 db 000h ; 68f4 db 000h ; 68f5 db 028h ; 68f6 db 028h ; 68f7 db 028h ; 68f8 db 028h ; 68f9 db 028h ; 68fa db 028h ; 68fb db 0efh ; 68fc db 000h ; 68fd db 0efh ; 68fe db 028h ; 68ff db 028h ; 6900 db 028h ; 6901 db 028h ; 6902 db 028h ; 6903 db 028h ; 6904 db 028h ; 6905 db 010h ; 6906 db 010h ; 6907 db 010h ; 6908 db 010h ; 6909 db 010h ; 690a db 010h ; 690b db 0ffh ; 690c db 000h ; 690d db 0ffh ; 690e db 000h ; 690f db 000h ; 6910 db 000h ; 6911 db 000h ; 6912 db 000h ; 6913 db 000h ; 6914 db 000h ; 6915 db 028h ; 6916 db 028h ; 6917 db 028h ; 6918 db 028h ; 6919 db 028h ; 691a db 028h ; 691b db 0ffh ; 691c db 000h ; 691d db 000h ; 691e db 000h ; 691f db 000h ; 6920 db 000h ; 6921 db 000h ; 6922 db 000h ; 6923 db 000h ; 6924 db 000h ; 6925 db 000h ; 6926 db 000h ; 6927 db 000h ; 6928 db 000h ; 6929 db 000h ; 692a db 000h ; 692b db 0ffh ; 692c db 000h ; 692d db 0ffh ; 692e db 010h ; 692f db 010h ; 6930 db 010h ; 6931 db 010h ; 6932 db 010h ; 6933 db 010h ; 6934 db 010h ; 6935 db 000h ; 6936 db 000h ; 6937 db 000h ; 6938 db 000h ; 6939 db 000h ; 693a db 000h ; 693b db 000h ; 693c db 000h ; 693d db 0ffh ; 693e db 028h ; 693f db 028h ; 6940 db 028h ; 6941 db 028h ; 6942 db 028h ; 6943 db 028h ; 6944 db 028h ; 6945 db 028h ; 6946 db 028h ; 6947 db 028h ; 6948 db 028h ; 6949 db 028h ; 694a db 028h ; 694b db 028h ; 694c db 028h ; 694d db 03fh ; 694e db 000h ; 694f db 000h ; 6950 db 000h ; 6951 db 000h ; 6952 db 000h ; 6953 db 000h ; 6954 db 000h ; 6955 db 010h ; 6956 db 010h ; 6957 db 010h ; 6958 db 010h ; 6959 db 010h ; 695a db 010h ; 695b db 01fh ; 695c db 010h ; 695d db 01fh ; 695e db 000h ; 695f db 000h ; 6960 db 000h ; 6961 db 000h ; 6962 db 000h ; 6963 db 000h ; 6964 db 000h ; 6965 db 000h ; 6966 db 000h ; 6967 db 000h ; 6968 db 000h ; 6969 db 000h ; 696a db 000h ; 696b db 01fh ; 696c db 010h ; 696d db 01fh ; 696e db 010h ; 696f db 010h ; 6970 db 010h ; 6971 db 010h ; 6972 db 010h ; 6973 db 010h ; 6974 db 010h ; 6975 db 000h ; 6976 db 000h ; 6977 db 000h ; 6978 db 000h ; 6979 db 000h ; 697a db 000h ; 697b db 000h ; 697c db 000h ; 697d db 03fh ; 697e db 028h ; 697f db 028h ; 6980 db 028h ; 6981 db 028h ; 6982 db 028h ; 6983 db 028h ; 6984 db 028h ; 6985 db 028h ; 6986 db 028h ; 6987 db 028h ; 6988 db 028h ; 6989 db 028h ; 698a db 028h ; 698b db 028h ; 698c db 028h ; 698d db 0ffh ; 698e db 028h ; 698f db 028h ; 6990 db 028h ; 6991 db 028h ; 6992 db 028h ; 6993 db 028h ; 6994 db 028h ; 6995 db 010h ; 6996 db 010h ; 6997 db 010h ; 6998 db 010h ; 6999 db 010h ; 699a db 010h ; 699b db 0ffh ; 699c db 010h ; 699d db 0ffh ; 699e db 010h ; 699f db 010h ; 69a0 db 010h ; 69a1 db 010h ; 69a2 db 010h ; 69a3 db 010h ; 69a4 db 010h ; 69a5 db 010h ; 69a6 db 010h ; 69a7 db 010h ; 69a8 db 010h ; 69a9 db 010h ; 69aa db 010h ; 69ab db 010h ; 69ac db 010h ; 69ad db 0f0h ; 69ae db 000h ; 69af db 000h ; 69b0 db 000h ; 69b1 db 000h ; 69b2 db 000h ; 69b3 db 000h ; 69b4 db 000h ; 69b5 db 000h ; 69b6 db 000h ; 69b7 db 000h ; 69b8 db 000h ; 69b9 db 000h ; 69ba db 000h ; 69bb db 000h ; 69bc db 000h ; 69bd db 01fh ; 69be db 010h ; 69bf db 010h ; 69c0 db 010h ; 69c1 db 010h ; 69c2 db 010h ; 69c3 db 010h ; 69c4 db 010h ; 69c5 db 0ffh ; 69c6 db 0ffh ; 69c7 db 0ffh ; 69c8 db 0ffh ; 69c9 db 0ffh ; 69ca db 0ffh ; 69cb db 0ffh ; 69cc db 0ffh ; 69cd db 0ffh ; 69ce db 0ffh ; 69cf db 0ffh ; 69d0 db 0ffh ; 69d1 db 0ffh ; 69d2 db 0ffh ; 69d3 db 0ffh ; 69d4 db 0ffh ; 69d5 db 000h ; 69d6 db 000h ; 69d7 db 000h ; 69d8 db 000h ; 69d9 db 000h ; 69da db 000h ; 69db db 000h ; 69dc db 000h ; 69dd db 0ffh ; 69de db 0ffh ; 69df db 0ffh ; 69e0 db 0ffh ; 69e1 db 0ffh ; 69e2 db 0ffh ; 69e3 db 0ffh ; 69e4 db 0ffh ; 69e5 db 0f0h ; 69e6 db 0f0h ; 69e7 db 0f0h ; 69e8 db 0f0h ; 69e9 db 0f0h ; 69ea db 0f0h ; 69eb db 0f0h ; 69ec db 0f0h ; 69ed db 0f0h ; 69ee db 0f0h ; 69ef db 0f0h ; 69f0 db 0f0h ; 69f1 db 0f0h ; 69f2 db 0f0h ; 69f3 db 0f0h ; 69f4 db 0f0h ; 69f5 db 00fh ; 69f6 db 00fh ; 69f7 db 00fh ; 69f8 db 00fh ; 69f9 db 00fh ; 69fa db 00fh ; 69fb db 00fh ; 69fc db 00fh ; 69fd db 00fh ; 69fe db 00fh ; 69ff db 00fh ; 6a00 db 00fh ; 6a01 db 00fh ; 6a02 db 00fh ; 6a03 db 00fh ; 6a04 db 00fh ; 6a05 db 0ffh ; 6a06 db 0ffh ; 6a07 db 0ffh ; 6a08 db 0ffh ; 6a09 db 0ffh ; 6a0a db 0ffh ; 6a0b db 0ffh ; 6a0c db 0ffh ; 6a0d db 000h ; 6a0e db 000h ; 6a0f db 000h ; 6a10 db 000h ; 6a11 db 000h ; 6a12 db 000h ; 6a13 db 000h ; 6a14 db 000h ; 6a15 db 000h ; 6a16 db 000h ; 6a17 db 000h ; 6a18 db 000h ; 6a19 db 03bh ; 6a1a db 044h ; 6a1b db 044h ; 6a1c db 044h ; 6a1d db 03bh ; 6a1e db 000h ; 6a1f db 000h ; 6a20 db 000h ; 6a21 db 000h ; 6a22 db 000h ; 6a23 db 000h ; 6a24 db 000h ; 6a25 db 000h ; 6a26 db 01ch ; 6a27 db 022h ; 6a28 db 042h ; 6a29 db 05ch ; 6a2a db 042h ; 6a2b db 042h ; 6a2c db 042h ; 6a2d db 042h ; 6a2e db 05ch ; 6a2f db 040h ; 6a30 db 000h ; 6a31 db 000h ; 6a32 db 000h ; 6a33 db 000h ; 6a34 db 000h ; 6a35 db 000h ; 6a36 db 07eh ; 6a37 db 022h ; 6a38 db 020h ; 6a39 db 020h ; 6a3a db 020h ; 6a3b db 020h ; 6a3c db 020h ; 6a3d db 020h ; 6a3e db 070h ; 6a3f db 000h ; 6a40 db 000h ; 6a41 db 000h ; 6a42 db 000h ; 6a43 db 000h ; 6a44 db 000h ; 6a45 db 000h ; 6a46 db 000h ; 6a47 db 03eh ; 6a48 db 014h ; 6a49 db 014h ; 6a4a db 014h ; 6a4b db 014h ; 6a4c db 014h ; 6a4d db 014h ; 6a4e db 012h ; 6a4f db 000h ; 6a50 db 000h ; 6a51 db 000h ; 6a52 db 000h ; 6a53 db 000h ; 6a54 db 000h ; 6a55 db 000h ; 6a56 db 07fh ; 6a57 db 041h ; 6a58 db 020h ; 6a59 db 010h ; 6a5a db 00ch ; 6a5b db 010h ; 6a5c db 020h ; 6a5d db 041h ; 6a5e db 07fh ; 6a5f db 000h ; 6a60 db 000h ; 6a61 db 000h ; 6a62 db 000h ; 6a63 db 000h ; 6a64 db 000h ; 6a65 db 000h ; 6a66 db 000h ; 6a67 db 000h ; 6a68 db 000h ; 6a69 db 03fh ; 6a6a db 044h ; 6a6b db 044h ; 6a6c db 044h ; 6a6d db 044h ; 6a6e db 038h ; 6a6f db 000h ; 6a70 db 000h ; 6a71 db 000h ; 6a72 db 000h ; 6a73 db 000h ; 6a74 db 000h ; 6a75 db 000h ; 6a76 db 000h ; 6a77 db 000h ; 6a78 db 000h ; 6a79 db 022h ; 6a7a db 022h ; 6a7b db 022h ; 6a7c db 022h ; 6a7d db 022h ; 6a7e db 03ch ; 6a7f db 040h ; 6a80 db 040h ; 6a81 db 000h ; 6a82 db 000h ; 6a83 db 000h ; 6a84 db 000h ; 6a85 db 000h ; 6a86 db 000h ; 6a87 db 03eh ; 6a88 db 048h ; 6a89 db 008h ; 6a8a db 008h ; 6a8b db 008h ; 6a8c db 008h ; 6a8d db 008h ; 6a8e db 008h ; 6a8f db 000h ; 6a90 db 000h ; 6a91 db 000h ; 6a92 db 000h ; 6a93 db 000h ; 6a94 db 000h ; 6a95 db 000h ; 6a96 db 01ch ; 6a97 db 008h ; 6a98 db 008h ; 6a99 db 03eh ; 6a9a db 041h ; 6a9b db 041h ; 6a9c db 041h ; 6a9d db 03eh ; 6a9e db 008h ; 6a9f db 008h ; 6aa0 db 01ch ; 6aa1 db 000h ; 6aa2 db 000h ; 6aa3 db 000h ; 6aa4 db 000h ; 6aa5 db 000h ; 6aa6 db 000h ; 6aa7 db 000h ; 6aa8 db 03ch ; 6aa9 db 042h ; 6aaa db 042h ; 6aab db 07eh ; 6aac db 042h ; 6aad db 042h ; 6aae db 03ch ; 6aaf db 000h ; 6ab0 db 000h ; 6ab1 db 000h ; 6ab2 db 000h ; 6ab3 db 000h ; 6ab4 db 000h ; 6ab5 db 000h ; 6ab6 db 01ch ; 6ab7 db 022h ; 6ab8 db 041h ; 6ab9 db 041h ; 6aba db 041h ; 6abb db 041h ; 6abc db 022h ; 6abd db 014h ; 6abe db 077h ; 6abf db 000h ; 6ac0 db 000h ; 6ac1 db 000h ; 6ac2 db 000h ; 6ac3 db 000h ; 6ac4 db 000h ; 6ac5 db 000h ; 6ac6 db 00ch ; 6ac7 db 012h ; 6ac8 db 008h ; 6ac9 db 03ch ; 6aca db 042h ; 6acb db 042h ; 6acc db 042h ; 6acd db 042h ; 6ace db 03ch ; 6acf db 000h ; 6ad0 db 000h ; 6ad1 db 000h ; 6ad2 db 000h ; 6ad3 db 000h ; 6ad4 db 000h ; 6ad5 db 000h ; 6ad6 db 000h ; 6ad7 db 000h ; 6ad8 db 000h ; 6ad9 db 036h ; 6ada db 049h ; 6adb db 049h ; 6adc db 049h ; 6add db 036h ; 6ade db 000h ; 6adf db 000h ; 6ae0 db 000h ; 6ae1 db 000h ; 6ae2 db 000h ; 6ae3 db 000h ; 6ae4 db 000h ; 6ae5 db 000h ; 6ae6 db 000h ; 6ae7 db 004h ; 6ae8 db 004h ; 6ae9 db 03ch ; 6aea db 04ah ; 6aeb db 04ah ; 6aec db 052h ; 6aed db 052h ; 6aee db 03ch ; 6aef db 020h ; 6af0 db 020h ; 6af1 db 000h ; 6af2 db 000h ; 6af3 db 000h ; 6af4 db 000h ; 6af5 db 000h ; 6af6 db 01fh ; 6af7 db 020h ; 6af8 db 040h ; 6af9 db 040h ; 6afa db 07fh ; 6afb db 040h ; 6afc db 040h ; 6afd db 020h ; 6afe db 01fh ; 6aff db 000h ; 6b00 db 000h ; 6b01 db 000h ; 6b02 db 000h ; 6b03 db 000h ; 6b04 db 000h ; 6b05 db 000h ; 6b06 db 01ch ; 6b07 db 022h ; 6b08 db 041h ; 6b09 db 041h ; 6b0a db 041h ; 6b0b db 041h ; 6b0c db 041h ; 6b0d db 041h ; 6b0e db 041h ; 6b0f db 000h ; 6b10 db 000h ; 6b11 db 000h ; 6b12 db 000h ; 6b13 db 000h ; 6b14 db 000h ; 6b15 db 000h ; 6b16 db 000h ; 6b17 db 000h ; 6b18 db 07eh ; 6b19 db 000h ; 6b1a db 07eh ; 6b1b db 000h ; 6b1c db 07eh ; 6b1d db 000h ; 6b1e db 000h ; 6b1f db 000h ; 6b20 db 000h ; 6b21 db 000h ; 6b22 db 000h ; 6b23 db 000h ; 6b24 db 000h ; 6b25 db 000h ; 6b26 db 000h ; 6b27 db 008h ; 6b28 db 008h ; 6b29 db 03eh ; 6b2a db 008h ; 6b2b db 008h ; 6b2c db 000h ; 6b2d db 03eh ; 6b2e db 000h ; 6b2f db 000h ; 6b30 db 000h ; 6b31 db 000h ; 6b32 db 000h ; 6b33 db 000h ; 6b34 db 000h ; 6b35 db 000h ; 6b36 db 000h ; 6b37 db 010h ; 6b38 db 008h ; 6b39 db 004h ; 6b3a db 008h ; 6b3b db 010h ; 6b3c db 000h ; 6b3d db 03eh ; 6b3e db 000h ; 6b3f db 000h ; 6b40 db 000h ; 6b41 db 000h ; 6b42 db 000h ; 6b43 db 000h ; 6b44 db 000h ; 6b45 db 000h ; 6b46 db 000h ; 6b47 db 004h ; 6b48 db 008h ; 6b49 db 010h ; 6b4a db 008h ; 6b4b db 004h ; 6b4c db 000h ; 6b4d db 03eh ; 6b4e db 000h ; 6b4f db 000h ; 6b50 db 000h ; 6b51 db 000h ; 6b52 db 000h ; 6b53 db 000h ; 6b54 db 000h ; 6b55 db 000h ; 6b56 db 000h ; 6b57 db 000h ; 6b58 db 000h ; 6b59 db 006h ; 6b5a db 008h ; 6b5b db 008h ; 6b5c db 008h ; 6b5d db 008h ; 6b5e db 008h ; 6b5f db 008h ; 6b60 db 010h ; 6b61 db 010h ; 6b62 db 010h ; 6b63 db 000h ; 6b64 db 000h ; 6b65 db 010h ; 6b66 db 010h ; 6b67 db 010h ; 6b68 db 020h ; 6b69 db 020h ; 6b6a db 020h ; 6b6b db 020h ; 6b6c db 020h ; 6b6d db 020h ; 6b6e db 0c0h ; 6b6f db 000h ; 6b70 db 000h ; 6b71 db 000h ; 6b72 db 000h ; 6b73 db 000h ; 6b74 db 000h ; 6b75 db 000h ; 6b76 db 000h ; 6b77 db 000h ; 6b78 db 008h ; 6b79 db 000h ; 6b7a db 07fh ; 6b7b db 000h ; 6b7c db 008h ; 6b7d db 000h ; 6b7e db 000h ; 6b7f db 000h ; 6b80 db 000h ; 6b81 db 000h ; 6b82 db 000h ; 6b83 db 000h ; 6b84 db 000h ; 6b85 db 000h ; 6b86 db 000h ; 6b87 db 000h ; 6b88 db 030h ; 6b89 db 049h ; 6b8a db 006h ; 6b8b db 030h ; 6b8c db 049h ; 6b8d db 006h ; 6b8e db 000h ; 6b8f db 000h ; 6b90 db 000h ; 6b91 db 000h ; 6b92 db 000h ; 6b93 db 000h ; 6b94 db 000h ; 6b95 db 000h ; 6b96 db 018h ; 6b97 db 024h ; 6b98 db 024h ; 6b99 db 024h ; 6b9a db 018h ; 6b9b db 000h ; 6b9c db 000h ; 6b9d db 000h ; 6b9e db 000h ; 6b9f db 000h ; 6ba0 db 000h ; 6ba1 db 000h ; 6ba2 db 000h ; 6ba3 db 000h ; 6ba4 db 000h ; 6ba5 db 000h ; 6ba6 db 018h ; 6ba7 db 03ch ; 6ba8 db 03ch ; 6ba9 db 03ch ; 6baa db 018h ; 6bab db 000h ; 6bac db 000h ; 6bad db 000h ; 6bae db 000h ; 6baf db 000h ; 6bb0 db 000h ; 6bb1 db 000h ; 6bb2 db 000h ; 6bb3 db 000h ; 6bb4 db 000h ; 6bb5 db 000h ; 6bb6 db 000h ; 6bb7 db 000h ; 6bb8 db 000h ; 6bb9 db 018h ; 6bba db 03ch ; 6bbb db 03ch ; 6bbc db 018h ; 6bbd db 000h ; 6bbe db 000h ; 6bbf db 000h ; 6bc0 db 000h ; 6bc1 db 000h ; 6bc2 db 000h ; 6bc3 db 000h ; 6bc4 db 000h ; 6bc5 db 000h ; 6bc6 db 000h ; 6bc7 db 000h ; 6bc8 db 000h ; 6bc9 db 01fh ; 6bca db 010h ; 6bcb db 010h ; 6bcc db 010h ; 6bcd db 050h ; 6bce db 020h ; 6bcf db 000h ; 6bd0 db 000h ; 6bd1 db 000h ; 6bd2 db 000h ; 6bd3 db 000h ; 6bd4 db 000h ; 6bd5 db 000h ; 6bd6 db 058h ; 6bd7 db 064h ; 6bd8 db 044h ; 6bd9 db 044h ; 6bda db 044h ; 6bdb db 000h ; 6bdc db 000h ; 6bdd db 000h ; 6bde db 000h ; 6bdf db 000h ; 6be0 db 000h ; 6be1 db 000h ; 6be2 db 000h ; 6be3 db 000h ; 6be4 db 000h ; 6be5 db 000h ; 6be6 db 030h ; 6be7 db 048h ; 6be8 db 010h ; 6be9 db 020h ; 6bea db 078h ; 6beb db 000h ; 6bec db 000h ; 6bed db 000h ; 6bee db 000h ; 6bef db 000h ; 6bf0 db 000h ; 6bf1 db 000h ; 6bf2 db 000h ; 6bf3 db 000h ; 6bf4 db 000h ; 6bf5 db 000h ; 6bf6 db 000h ; 6bf7 db 000h ; 6bf8 db 000h ; 6bf9 db 01ch ; 6bfa db 01ch ; 6bfb db 01ch ; 6bfc db 01ch ; 6bfd db 01ch ; 6bfe db 01ch ; 6bff db 000h ; 6c00 db 000h ; 6c01 db 000h ; 6c02 db 000h ; 6c03 db 000h ; 6c04 db 000h ; 6c05 db 000h ; 6c06 db 000h ; 6c07 db 000h ; 6c08 db 000h ; 6c09 db 000h ; 6c0a db 000h ; 6c0b db 000h ; 6c0c db 000h ; 6c0d db 000h ; 6c0e db 000h ; 6c0f db 000h ; 6c10 db 000h ; 6c11 db 000h ; 6c12 db 000h ; 6c13 db 000h ; 6c14 db 000h ; 6c15 org 06c16h AUX_SETUP proc near public ; 6c16 mov ax, 0 ; 6c16 - b8 00 00 mov ds, ax ; 6c19 - 8e d8 mov ax, 05b3h ; 6c1b - b8 b3 05 mov es, ax ; 6c1e - 8e c0 cli ; 6c20 - fa mov word ptr ds:[0406h], es ; 6c21 - 8c 06 06 04 mov word ptr ds:[01c8h], 3b2fh ; 6c25 - c7 06 c8 01 2f 3b mov word ptr ds:[014ch], 3a5ah ; 6c2b - c7 06 4c 01 5a 3a mov word ptr ds:[050h], 3a5ah ; 6c31 - c7 06 50 00 5a 3a mov byte ptr ds:[046eh], 0 ; 6c37 - c6 06 6e 04 00 mov byte ptr ds:[046fh], 0 ; 6c3c - c6 06 6f 04 00 mov word ptr es:[008h], 4e20h ; 6c41 - 26 c7 06 08 00 20 4e mov word ptr ds:[046ah], 000ah ; 6c48 - c7 06 6a 04 0a 00 mov word ptr ds:[046ch], es ; 6c4e - 8c 06 6c 04 push ds ; 6c52 - 1e mov bl, 2 ; 6c53 - b3 02 mov cx, word ptr ds:[04cch] ; 6c55 - 8b 0e cc 04 lds si, ds:[046ah] ; 6c59 - c5 36 6a 04 call far ptr 00060h, 00034h ; 6c5d - 9a 34 00 60 00 pop ds ; 6c62 - 1f mov dx, 0062h ; 6c63 - ba 62 00 in al, dx ; 6c66 - ec and al, 0fbh ; 6c67 - 24 fb out dx, al ; 6c69 - ee sti ; 6c6a - fb mov al, ds:[04d8h] ; 6c6b - a0 d8 04 mov dh, byte ptr ds:[04d9h] ; 6c6e - 8a 36 d9 04 mov dl, byte ptr ds:[046eh] ; 6c72 - 8a 16 6e 04 mov ah, 0 ; 6c76 - b4 00 int 53h ; 6c78 - cd 53 ret ; 6c7a - c3 AUX_SETUP endp db 000h ; 6c7b org 06c7ch PRN_SETUP proc near public ; 6c7c mov ax, 0 ; 6c7c - b8 00 00 mov ds, ax ; 6c7f - 8e d8 mov ax, 05b5h ; 6c81 - b8 b5 05 mov es, ax ; 6c84 - 8e c0 cli ; 6c86 - fa mov word ptr ds:[0408h], es ; 6c87 - 8c 06 08 04 mov word ptr ds:[01ech], 3db4h ; 6c8b - c7 06 ec 01 b4 3d mov word ptr ds:[0150h], 3d3ah ; 6c91 - c7 06 50 01 3a 3d mov word ptr ds:[05ch], 3d3ah ; 6c97 - c7 06 5c 00 3a 3d mov word ptr es:[000h], 0 ; 6c9d - 26 c7 06 00 00 00 00 sti ; 6ca4 - fb mov ah, 1 ; 6ca5 - b4 01 int 54h ; 6ca7 - cd 54 ret ; 6ca9 - c3 PRN_SETUP endp org 06caah CLOCK_SETUP proc near public ; 6caa mov ax, 0 ; 6caa - b8 00 00 mov ds, ax ; 6cad - 8e d8 mov ax, 05b6h ; 6caf - b8 b6 05 mov es, ax ; 6cb2 - 8e c0 cli ; 6cb4 - fa mov word ptr ds:[040ah], es ; 6cb5 - 8c 06 0a 04 mov word ptr ds:[020h], 3ee3h ; 6cb9 - c7 06 20 00 e3 3e mov word ptr ds:[0154h], 3dfah ; 6cbf - c7 06 54 01 fa 3d mov word ptr ds:[068h], 3dfah ; 6cc5 - c7 06 68 00 fa 3d cld ; 6ccb - fc mov di, 2 ; 6ccc - bf 02 00 mov word ptr es:[000h], di ; 6ccf - 26 89 3e 00 00 mov cl, 5 ; 6cd4 - b1 05 mov ch, 0 ; 6cd6 - b5 00 mov ax, 0 ; 6cd8 - b8 00 00 CLOCK_SETUP_1: ; 6cdb stosw ; 6cdb - ab stosw ; 6cdc - ab stosw ; 6cdd - ab loop CLOCK_SETUP_1 ; 6cde - e2 fb -> 6cdb mov ax, 4000h ; 6ce0 - b8 00 40 mov dx, 0ff56h ; 6ce3 - ba 56 ff out dx, ax ; 6ce6 - ef mov ah, 0bfh ; 6ce7 - b4 bf mov al, 40h ; 6ce9 - b0 40 call far ptr 00060h, 00054h ; 6ceb - 9a 54 00 60 00 mov ax, 4e20h ; 6cf0 - b8 20 4e mov dx, 0ff52h ; 6cf3 - ba 52 ff out dx, ax ; 6cf6 - ef mov ax, 0 ; 6cf7 - b8 00 00 mov dx, 0ff50h ; 6cfa - ba 50 ff out dx, ax ; 6cfd - ef mov ax, 0e001h ; 6cfe - b8 01 e0 mov dx, 0ff56h ; 6d01 - ba 56 ff out dx, ax ; 6d04 - ef mov si, 04c0h ; 6d05 - be c0 04 mov byte ptr ds:[si + 6], 5 ; 6d08 - c6 44 06 05 sti ; 6d0c - fb mov bx, word ptr ds:[si] ; 6d0d - 8b 1c mov cx, word ptr ds:[si + 2] ; 6d0f - 8b 4c 02 mov dx, word ptr ds:[si + 4] ; 6d12 - 8b 54 04 mov ah, 3 ; 6d15 - b4 03 int 55h ; 6d17 - cd 55 ret ; 6d19 - c3 CLOCK_SETUP endp org 06d1ah FDISK_SETUP proc near public ; 6d1a mov ax, 0 ; 6d1a - b8 00 00 mov es, ax ; 6d1d - 8e c0 mov ax, 05b8h ; 6d1f - b8 b8 05 mov es:[040ch], ax ; 6d22 - 26 a3 0c 04 mov es, ax ; 6d26 - 8e c0 push cs ; 6d28 - 0e pop ds ; 6d29 - 1f mov si, 1572h ; 6d2a - be 72 15 nop ; 6d2d - 90 mov di, 0 ; 6d2e - bf 00 00 mov cx, 0095h ; 6d31 - b9 95 00 nop ; 6d34 - 90 cld ; 6d35 - fc rep movsb ; 6d36 - f3 a4 mov ax, 0 ; 6d38 - b8 00 00 mov ds, ax ; 6d3b - 8e d8 mov word ptr ds:[01d0h], 43fah ; 6d3d - c7 06 d0 01 fa 43 mov word ptr ds:[028h], 45ach ; 6d43 - c7 06 28 00 ac 45 mov word ptr ds:[02ch], 45c5h ; 6d49 - c7 06 2c 00 c5 45 mov word ptr ds:[01f8h], 4678h ; 6d4f - c7 06 f8 01 78 46 mov word ptr ds:[0100h], 3fdeh ; 6d55 - c7 06 00 01 de 3f mov word ptr ds:[0158h], 3fdeh ; 6d5b - c7 06 58 01 de 3f mov word ptr ds:[04ch], 3fdeh ; 6d61 - c7 06 4c 00 de 3f mov word ptr ds:[078h], 005ah ; 6d67 - c7 06 78 00 5a 00 mov word ptr ds:[07ah], es ; 6d6d - 8c 06 7a 00 ret ; 6d71 - c3 FDISK_SETUP endp db 000h ; 6d72 db 000h ; 6d73 db 000h ; 6d74 db 000h ; 6d75 db 000h ; 6d76 db 001h ; 6d77 db 004h ; 6d78 db 000h ; 6d79 db 000h ; 6d7a db 000h ; 6d7b db 080h ; 6d7c db 000h ; 6d7d db 000h ; 6d7e db 000h ; 6d7f db 000h ; 6d80 db 000h ; 6d81 db 000h ; 6d82 db 000h ; 6d83 db 000h ; 6d84 db 000h ; 6d85 db 066h ; 6d86 db 0a2h ; 6d87 db 000h ; 6d88 db 001h ; 6d89 db 004h ; 6d8a db 000h ; 6d8b db 000h ; 6d8c db 000h ; 6d8d db 000h ; 6d8e db 000h ; 6d8f db 000h ; 6d90 db 000h ; 6d91 db 080h ; 6d92 db 000h ; 6d93 db 000h ; 6d94 db 000h ; 6d95 db 000h ; 6d96 db 000h ; 6d97 db 086h ; 6d98 db 016h ; 6d99 db 000h ; 6d9a db 001h ; 6d9b db 02fh ; 6d9c db 000h ; 6d9d db 000h ; 6d9e db 000h ; 6d9f db 000h ; 6da0 db 000h ; 6da1 db 000h ; 6da2 db 000h ; 6da3 db 080h ; 6da4 db 000h ; 6da5 db 000h ; 6da6 db 000h ; 6da7 db 000h ; 6da8 db 000h ; 6da9 db 086h ; 6daa db 016h ; 6dab db 000h ; 6dac db 000h ; 6dad db 000h ; 6dae db 000h ; 6daf db 000h ; 6db0 db 000h ; 6db1 db 000h ; 6db2 db 000h ; 6db3 db 000h ; 6db4 db 047h ; 6db5 db 000h ; 6db6 db 069h ; 6db7 db 000h ; 6db8 db 000h ; 6db9 db 002h ; 6dba db 004h ; 6dbb db 001h ; 6dbc db 000h ; 6dbd db 002h ; 6dbe db 070h ; 6dbf db 000h ; 6dc0 db 0a0h ; 6dc1 db 005h ; 6dc2 db 0edh ; 6dc3 db 002h ; 6dc4 db 000h ; 6dc5 db 009h ; 6dc6 db 000h ; 6dc7 db 002h ; 6dc8 db 000h ; 6dc9 db 000h ; 6dca db 000h ; 6dcb db 0e0h ; 6dcc db 08ch ; 6dcd db 000h ; 6dce db 002h ; 6dcf db 009h ; 6dd0 db 02ah ; 6dd1 db 0ffh ; 6dd2 db 050h ; 6dd3 db 0f6h ; 6dd4 db 00fh ; 6dd5 db 002h ; 6dd6 db 000h ; 6dd7 db 000h ; 6dd8 db 000h ; 6dd9 db 000h ; 6dda db 000h ; 6ddb db 002h ; 6ddc db 004h ; 6ddd db 001h ; 6dde db 000h ; 6ddf db 002h ; 6de0 db 070h ; 6de1 db 000h ; 6de2 db 0a0h ; 6de3 db 005h ; 6de4 db 0edh ; 6de5 db 002h ; 6de6 db 000h ; 6de7 db 009h ; 6de8 db 000h ; 6de9 db 002h ; 6dea db 000h ; 6deb db 000h ; 6dec db 000h ; 6ded db 0e1h ; 6dee db 08ch ; 6def db 000h ; 6df0 db 002h ; 6df1 db 009h ; 6df2 db 02ah ; 6df3 db 0ffh ; 6df4 db 050h ; 6df5 db 0f6h ; 6df6 db 00fh ; 6df7 db 002h ; 6df8 db 000h ; 6df9 db 000h ; 6dfa db 000h ; 6dfb db 000h ; 6dfc db 000h ; 6dfd db 000h ; 6dfe db 000h ; 6dff db 000h ; 6e00 db 000h ; 6e01 db 000h ; 6e02 db 000h ; 6e03 db 000h ; 6e04 db 000h ; 6e05 db 000h ; 6e06 db 000h ; 6e07 org 06e08h HDISK_SETUP proc near public ; 6e08 push ds ; 6e08 - 1e push ax ; 6e09 - 50 push bx ; 6e0a - 53 push cx ; 6e0b - 51 push dx ; 6e0c - 52 push es ; 6e0d - 06 mov ax, 0 ; 6e0e - b8 00 00 mov ds, ax ; 6e11 - 8e d8 cli ; 6e13 - fa mov word ptr ds:[01d8h], 4a0ch ; 6e14 - c7 06 d8 01 0c 4a mov word ptr ds:[040eh], 05c2h ; 6e1a - c7 06 0e 04 c2 05 mov word ptr ds:[04ch], 46bah ; 6e20 - c7 06 4c 00 ba 46 mov word ptr ds:[0158h], 46bah ; 6e26 - c7 06 58 01 ba 46 mov word ptr ds:[0104h], 0024h ; 6e2c - c7 06 04 01 24 00 mov word ptr ds:[0106h], 05c2h ; 6e32 - c7 06 06 01 c2 05 mov ax, 05c2h ; 6e38 - b8 c2 05 mov ds, ax ; 6e3b - 8e d8 mov byte ptr ds:[005h], 0 ; 6e3d - c6 06 05 00 00 mov byte ptr ds:[003h], 0 ; 6e42 - c6 06 03 00 00 mov dx, 0080h ; 6e47 - ba 80 00 call HD_SETUP_1 ; 6e4a - e8 24 00 -> 6e71 jb HD_SET_10 ; 6e4d - 72 1b -> 6e6a mov byte ptr ds:[003h], 1 ; 6e4f - c6 06 03 00 01 mov dx, 0081h ; 6e54 - ba 81 00 call HD_SETUP_1 ; 6e57 - e8 17 00 -> 6e71 jb HD_SET_10 ; 6e5a - 72 0e -> 6e6a add byte ptr ds:[003h], 1 ; 6e5c - 80 06 03 00 01 mov ax, 0 ; 6e61 - b8 00 00 mov dx, 0080h ; 6e64 - ba 80 00 int 56h ; 6e67 - cd 56 clc ; 6e69 - f8 HD_SET_10: ; 6e6a pop es ; 6e6a - 07 pop dx ; 6e6b - 5a pop cx ; 6e6c - 59 pop bx ; 6e6d - 5b pop ax ; 6e6e - 58 pop ds ; 6e6f - 1f ret ; 6e70 - c3 HDISK_SETUP endp org 06e71h HD_SETUP_1 proc near public ; 6e71 mov ax, 0 ; 6e71 - b8 00 00 mov cx, 1 ; 6e74 - b9 01 00 int 56h ; 6e77 - cd 56 jb HD_SETUP_EXIT ; 6e79 - 72 4d -> 6ec8 mov ax, cs ; 6e7b - 8c c8 mov es, ax ; 6e7d - 8e c0 mov bx, 120eh ; 6e7f - bb 0e 12 mov ah, 2 ; 6e82 - b4 02 mov dh, 0 ; 6e84 - b6 00 mov ch, 0 ; 6e86 - b5 00 mov cl, 1 ; 6e88 - b1 01 mov al, 1 ; 6e8a - b0 01 int 56h ; 6e8c - cd 56 jb HD_SETUP_EX_GD ; 6e8e - 72 37 -> 6ec7 mov di, bx ; 6e90 - 8b fb add di, 3 ; 6e92 - 83 c7 03 lea si, ds:[16c9h] ; 6e95 - 8d 36 c9 16 mov cx, 8 ; 6e99 - b9 08 00 MATCH_LOOP: ; 6e9c mov al, byte ptr cs:[si] ; 6e9c - 2e 8a 04 scasb ; 6e9f - ae jnz HD_SETUP_EX_GD ; 6ea0 - 75 25 -> 6ec7 inc si ; 6ea2 - 46 loop MATCH_LOOP ; 6ea3 - e2 f7 -> 6e9c mov si, 0068h ; 6ea5 - be 68 00 mov al, dl ; 6ea8 - 8a c2 cmp al, 081h ; 6eaa - 3c 81 jnz BOOT_MOVE ; 6eac - 75 03 -> 6eb1 mov si, 007bh ; 6eae - be 7b 00 BOOT_MOVE: ; 6eb1 mov cx, 0013h ; 6eb1 - b9 13 00 mov bx, 1219h ; 6eb4 - bb 19 12 HD_BPB_SET: ; 6eb7 mov al, byte ptr es:[bx] ; 6eb7 - 26 8a 07 mov byte ptr ds:[si], al ; 6eba - 88 04 inc bx ; 6ebc - 43 inc si ; 6ebd - 46 loop HD_BPB_SET ; 6ebe - e2 f7 -> 6eb7 sub si, 9 ; 6ec0 - 83 ee 09 mov al, 0f8h ; 6ec3 - b0 f8 mov byte ptr ds:[si], al ; 6ec5 - 88 04 HD_SETUP_EX_GD: ; 6ec7 clc ; 6ec7 - f8 HD_SETUP_EXIT: ; 6ec8 ret ; 6ec8 - c3 HD_SETUP_1 endp org 06ec9h TANDYMSG: ; 6ec9 db 'TANDY2.0', 0 db 000h ; 6ed1 db 000h ; 6ed2 db 000h ; 6ed3 db 000h ; 6ed4 db 000h ; 6ed5 db 000h ; 6ed6 db 000h ; 6ed7 db 000h ; 6ed8 db 000h ; 6ed9 db 000h ; 6eda db 000h ; 6edb db 000h ; 6edc db 000h ; 6edd db 03ah ; 6ede db 030h ; 6edf db 030h ; 6ee0 db 030h ; 6ee1 db 030h ; 6ee2 db 030h ; 6ee3 db 030h ; 6ee4 db 030h ; 6ee5 db 031h ; 6ee6 db 046h ; 6ee7 db 046h ; 6ee8 db 00ah ; 6ee9 db 000h ; 6eea db 034h ; 6eeb db 031h ; 6eec db 034h ; 6eed db 045h ; 6eee db 034h ; 6eef db 034h ; 6ef0 db 035h ; 6ef1 db 039h ; 6ef2 db 033h ; 6ef3 db 032h ; 6ef4 db 032h ; 6ef5 db 045h ; 6ef6 db 033h ; 6ef7 db 030h ; 6ef8 db 035h ; 6ef9 db 043h ; 6efa db 00ah ; 6efb db 000h ; 6efc db 042h ; 6efd db 030h ; 6efe db 046h ; 6eff db 038h ; 6f00 db 038h ; 6f01 db 038h ; 6f02 db 030h ; 6f03 db 034h ; 6f04 db 046h ; 6f05 db 038h ; 6f06 db 031h ; 6f07 db 033h ; 6f08 db 00ah ; 6f09 db 000h ; 6f0a db 000h ; 6f0b db 000h ; 6f0c db 000h ; 6f0d db 000h ; 6f0e db 000h ; 6f0f db 000h ; 6f10 db 000h ; 6f11 db 000h ; 6f12 db 000h ; 6f13 db 000h ; 6f14 db 000h ; 6f15 db 000h ; 6f16 db 000h ; 6f17 db 000h ; 6f18 db 000h ; 6f19 db 000h ; 6f1a db 000h ; 6f1b db 000h ; 6f1c db 000h ; 6f1d db 000h ; 6f1e db 000h ; 6f1f db 000h ; 6f20 db 000h ; 6f21 db 000h ; 6f22 db 000h ; 6f23 db 000h ; 6f24 db 000h ; 6f25 db 000h ; 6f26 db 000h ; 6f27 db 000h ; 6f28 db 000h ; 6f29 db 000h ; 6f2a db 000h ; 6f2b db 000h ; 6f2c db 000h ; 6f2d db 01ch ; 6f2e db 077h ; 6f2f db 004h ; 6f30 db 000h ; 6f31 db 032h ; 6f32 db 038h ; 6f33 db 06bh ; 6f34 db 020h ; 6f35 db 073h ; 6f36 db 079h ; 6f37 db 073h ; 6f38 db 074h ; 6f39 db 065h ; 6f3a db 06dh ; 6f3b db 009h ; 6f3c db 031h ; 6f3d db 032h ; 6f3e db 02fh ; 6f3f db 030h ; 6f40 db 037h ; 6f41 db 02fh ; 6f42 db 038h ; 6f43 db 033h ; 6f44 db 00dh ; 6f45 db 00ah ; 6f46 db 000h ; 6f47 db 068h ; 6f48 db 065h ; 6f49 db 078h ; 6f4a db 02eh ; 6f4b db 064h ; 6f4c db 061h ; 6f4d db 074h ; 6f4e db 000h ; 6f4f db 072h ; 6f50 db 000h ; 6f51 db 049h ; 6f52 db 04fh ; 6f53 db 053h ; 6f54 db 059h ; 6f55 db 053h ; 6f56 db 03ah ; 6f57 db 020h ; 6f58 db 065h ; 6f59 db 072h ; 6f5a db 072h ; 6f5b db 06fh ; 6f5c db 072h ; 6f5d db 020h ; 6f5e db 069h ; 6f5f db 06eh ; 6f60 db 020h ; 6f61 db 06fh ; 6f62 db 070h ; 6f63 db 065h ; 6f64 db 06eh ; 6f65 db 069h ; 6f66 db 06eh ; 6f67 db 067h ; 6f68 db 020h ; 6f69 db 027h ; 6f6a db 068h ; 6f6b db 065h ; 6f6c db 078h ; 6f6d db 02eh ; 6f6e db 064h ; 6f6f db 061h ; 6f70 db 074h ; 6f71 db 027h ; 6f72 db 00dh ; 6f73 db 00ah ; 6f74 db 000h ; 6f75 db 02bh ; 6f76 db 000h ; 6f77 db 068h ; 6f78 db 065h ; 6f79 db 078h ; 6f7a db 02eh ; 6f7b db 06fh ; 6f7c db 062h ; 6f7d db 06ah ; 6f7e db 000h ; 6f7f db 049h ; 6f80 db 04fh ; 6f81 db 053h ; 6f82 db 059h ; 6f83 db 053h ; 6f84 db 03ah ; 6f85 db 020h ; 6f86 db 065h ; 6f87 db 072h ; 6f88 db 072h ; 6f89 db 06fh ; 6f8a db 072h ; 6f8b db 020h ; 6f8c db 069h ; 6f8d db 06eh ; 6f8e db 020h ; 6f8f db 06fh ; 6f90 db 070h ; 6f91 db 065h ; 6f92 db 06eh ; 6f93 db 020h ; 6f94 db 06fh ; 6f95 db 066h ; 6f96 db 020h ; 6f97 db 027h ; 6f98 db 068h ; 6f99 db 065h ; 6f9a db 078h ; 6f9b db 02eh ; 6f9c db 06fh ; 6f9d db 062h ; 6f9e db 06ah ; 6f9f db 027h ; 6fa0 db 00dh ; 6fa1 db 00ah ; 6fa2 db 000h ; 6fa3 db 049h ; 6fa4 db 04fh ; 6fa5 db 053h ; 6fa6 db 059h ; 6fa7 db 053h ; 6fa8 db 03ah ; 6fa9 db 020h ; 6faa db 065h ; 6fab db 072h ; 6fac db 072h ; 6fad db 06fh ; 6fae db 072h ; 6faf db 020h ; 6fb0 db 069h ; 6fb1 db 06eh ; 6fb2 db 020h ; 6fb3 db 077h ; 6fb4 db 072h ; 6fb5 db 069h ; 6fb6 db 074h ; 6fb7 db 069h ; 6fb8 db 06eh ; 6fb9 db 067h ; 6fba db 020h ; 6fbb db 027h ; 6fbc db 068h ; 6fbd db 065h ; 6fbe db 078h ; 6fbf db 02eh ; 6fc0 db 06fh ; 6fc1 db 062h ; 6fc2 db 06ah ; 6fc3 db 027h ; 6fc4 db 00dh ; 6fc5 db 00ah ; 6fc6 db 000h ; 6fc7 db 00dh ; 6fc8 db 00ah ; 6fc9 db 00dh ; 6fca db 00ah ; 6fcb db 025h ; 6fcc db 064h ; 6fcd db 020h ; 6fce db 062h ; 6fcf db 079h ; 6fd0 db 074h ; 6fd1 db 065h ; 6fd2 db 073h ; 6fd3 db 020h ; 6fd4 db 077h ; 6fd5 db 072h ; 6fd6 db 069h ; 6fd7 db 074h ; 6fd8 db 074h ; 6fd9 db 065h ; 6fda db 06eh ; 6fdb db 00dh ; 6fdc db 00ah ; 6fdd db 000h ; 6fde db 00dh ; 6fdf db 00ah ; 6fe0 db 054h ; 6fe1 db 079h ; 6fe2 db 070h ; 6fe3 db 065h ; 6fe4 db 020h ; 6fe5 db 066h ; 6fe6 db 072h ; 6fe7 db 06fh ; 6fe8 db 06dh ; 6fe9 db 020h ; 6fea db 063h ; 6feb db 06fh ; 6fec db 06dh ; 6fed db 06dh ; 6fee db 061h ; 6fef db 06eh ; 6ff0 db 064h ; 6ff1 db 020h ; 6ff2 db 06ch ; 6ff3 db 069h ; 6ff4 db 06eh ; 6ff5 db 065h ; 6ff6 db 03ah ; 6ff7 db 00dh ; 6ff8 db 00ah ; 6ff9 db 000h ; 6ffa db 00dh ; 6ffb db 00ah ; 6ffc db 064h ; 6ffd db 065h ; 6ffe db 062h ; 6fff db 0ebh ; 7000 db 063h ; 7001 db 090h ; 7002 db 000h ; 7003 db 000h ; 7004 db 000h ; 7005 db 000h ; 7006 db 000h ; 7007 db 000h ; 7008 db 000h ; 7009 db 000h ; 700a db 000h ; 700b db 000h ; 700c db 000h ; 700d db 000h ; 700e db 001h ; 700f db 000h ; 7010 db 000h ; 7011 db 002h ; 7012 db 008h ; 7013 db 002h ; 7014 db 000h ; 7015 db 050h ; 7016 db 000h ; 7017 db 000h ; 7018 db 000h ; 7019 db 000h ; 701a db 000h ; 701b db 000h ; 701c db 000h ; 701d db 000h ; 701e db 000h ; 701f db 000h ; 7020 db 000h ; 7021 db 000h ; 7022 db 000h ; 7023 db 000h ; 7024 db 000h ; 7025 db 000h ; 7026 db 000h ; 7027 db 000h ; 7028 db 000h ; 7029 db 000h ; 702a db 000h ; 702b db 000h ; 702c db 000h ; 702d db 000h ; 702e db 000h ; 702f db 000h ; 7030 db 000h ; 7031 db 000h ; 7032 db 000h ; 7033 db 000h ; 7034 db 000h ; 7035 db 000h ; 7036 db 014h ; 7037 db 000h ; 7038 db 000h ; 7039 db 007h ; 703a db 011h ; 703b db 000h ; 703c db 000h ; 703d db 007h ; 703e db 034h ; 703f db 000h ; 7040 db 000h ; 7041 db 007h ; 7042 db 000h ; 7043 db 000h ; 7044 db 000h ; 7045 db 000h ; 7046 db 000h ; 7047 db 000h ; 7048 db 000h ; 7049 db 000h ; 704a db 000h ; 704b db 000h ; 704c db 000h ; 704d db 000h ; 704e db 016h ; 704f db 000h ; 7050 db 000h ; 7051 db 000h ; 7052 db 000h ; 7053 db 000h ; 7054 db 000h ; 7055 db 000h ; 7056 db 000h ; 7057 db 000h ; 7058 db 000h ; 7059 db 000h ; 705a db 000h ; 705b db 000h ; 705c db 000h ; 705d db 000h ; 705e db 000h ; 705f db 000h ; 7060 db 000h ; 7061 db 000h ; 7062 db 000h ; 7063 db 000h ; 7064 db 0fch ; 7065 db 033h ; 7066 db 0f6h ; 7067 db 08bh ; 7068 db 0feh ; 7069 db 02eh ; 706a db 08bh ; 706b db 00eh ; 706c db 00fh ; 706d db 000h ; 706e db 083h ; 706f db 0f9h ; 7070 db 001h ; 7071 db 075h ; 7072 db 01dh ; 7073 db 0b9h ; 7074 db 000h ; 7075 db 008h ; 7076 db 033h ; 7077 db 0dbh ; 7078 db 041h ; 7079 db 074h ; 707a db 010h ; 707b db 08eh ; 707c db 0d9h ; 707d db 08ah ; 707e db 007h ; 707f db 0f6h ; 7080 db 0d0h ; 7081 db 088h ; 7082 db 007h ; 7083 db 03ah ; 7084 db 007h ; 7085 db 0f6h ; 7086 db 0d0h ; 7087 db 088h ; 7088 db 007h ; 7089 db 074h ; 708a db 0edh ; 708b db 02eh ; 708c db 089h ; 708d db 00eh ; 708e db 00fh ; 708f db 000h ; 7090 db 08ch ; 7091 db 0c8h ; 7092 db 08eh ; 7093 db 0d8h ; 7094 db 0b8h ; 7095 db 0fbh ; 7096 db 007h ; 7097 db 0d1h ; 7098 db 0e8h ; 7099 db 0d1h ; 709a db 0e8h ; 709b db 0d1h ; 709c db 0e8h ; 709d db 0d1h ; 709e db 0e8h ; 709f db 02bh ; 70a0 db 0c8h ; 70a1 db 08eh ; 70a2 db 0c1h ; 70a3 db 0b9h ; 70a4 db 0edh ; 70a5 db 007h ; 70a6 db 0d1h ; 70a7 db 0e9h ; 70a8 db 0f3h ; 70a9 db 0a5h ; 70aa db 006h ; 70ab db 0b8h ; 70ac db 0b1h ; 70ad db 000h ; 70ae db 050h ; 70af db 0cbh ; 70b0 db 02eh ; 70b1 db 0a1h ; 70b2 db 005h ; 70b3 db 000h ; 70b4 db 08eh ; 70b5 db 0d8h ; 70b6 db 02eh ; 70b7 db 0a1h ; 70b8 db 009h ; 70b9 db 000h ; 70ba db 08eh ; 70bb db 0c0h ; 70bc db 033h ; 70bd db 0f6h ; 70be db 08bh ; 70bf db 0feh ; 70c0 db 0b9h ; 70c1 db 000h ; 70c2 db 028h ; 70c3 db 0f3h ; 70c4 db 0a5h ; 70c5 db 02eh ; 70c6 db 0c5h ; 70c7 db 036h ; 70c8 db 00bh ; 70c9 db 000h ; 70ca db 02eh ; 70cb db 08bh ; 70cc db 016h ; 70cd db 00fh ; 70ce db 000h ; 70cf db 0fah ; 70d0 db 08ch ; 70d1 db 0c8h ; 70d2 db 08eh ; 70d3 db 0d0h ; 70d4 db 0bch ; 70d5 db 0d9h ; 70d6 db 000h ; 70d7 db 0fbh ; 70d8 db 036h ; 70d9 db 0ffh ; 70da db 01eh ; 70db db 007h ; 70dc db 000h ; 70dd db 036h ; 70de db 08ch ; 70df db 006h ; 70e0 db 005h ; 70e1 db 000h ; 70e2 db 036h ; 70e3 db 089h ; 70e4 db 03eh ; 70e5 db 003h ; 70e6 db 000h ; 70e7 db 09ah ; 70e8 db 003h ; 70e9 db 000h ; 70ea db 060h ; 70eb db 000h ; 70ec db 0fbh ; 70ed db 0fch ; 70ee db 08ch ; 70ef db 0cbh ; 70f0 db 083h ; 70f1 db 0ebh ; 70f2 db 010h ; 70f3 db 08eh ; 70f4 db 0c3h ; 70f5 db 033h ; 70f6 db 0f6h ; 70f7 db 08bh ; 70f8 db 0feh ; 70f9 db 0b9h ; 70fa db 080h ; 70fb db 000h ; 70fc db 0f3h ; 70fd db 0a5h ; 70fe db 0b4h ; 70ff db 050h ; 7100 db 0cdh ; 7101 db 021h ; 7102 db 01eh ; 7103 db 00eh ; 7104 db 01fh ; 7105 db 0bah ; 7106 db 0eah ; 7107 db 006h ; 7108 db 0b8h ; 7109 db 024h ; 710a db 025h ; 710b db 0cdh ; 710c db 021h ; 710d db 01fh ; 710e db 036h ; 710f db 08ah ; 7110 db 016h ; 7111 db 011h ; 7112 db 000h ; 7113 db 00ah ; 7114 db 0d2h ; 7115 db 074h ; 7116 db 006h ; 7117 db 0feh ; 7118 db 0cah ; 7119 db 0b4h ; 711a db 00eh ; 711b db 0cdh ; 711c db 021h ; 711d db 0e8h ; 711e db 085h ; 711f db 000h ; 7120 db 00eh ; 7121 db 01fh ; 7122 db 0a0h ; 7123 db 013h ; 7124 db 000h ; 7125 db 098h ; 7126 db 08bh ; 7127 db 0c8h ; 7128 db 033h ; 7129 db 0dbh ; 712a db 0b4h ; 712b db 03eh ; 712c db 0cdh ; 712d db 021h ; 712e db 0bbh ; 712f db 002h ; 7130 db 000h ; 7131 db 0b4h ; 7132 db 03eh ; 7133 db 0cdh ; 7134 db 021h ; 7135 db 043h ; 7136 db 0e2h ; 7137 db 0f9h ; 7138 db 0bah ; 7139 db 006h ; 713a db 007h ; 713b db 0b0h ; 713c db 002h ; 713d db 0b4h ; 713e db 03dh ; 713f db 0f9h ; 7140 db 0cdh ; 7141 db 021h ; 7142 db 073h ; 7143 db 005h ; 7144 db 0e8h ; 7145 db 024h ; 7146 db 005h ; 7147 db 0ebh ; 7148 db 013h ; 7149 db 050h ; 714a db 0bbh ; 714b db 001h ; 714c db 000h ; 714d db 0b4h ; 714e db 03eh ; 714f db 0cdh ; 7150 db 021h ; 7151 db 058h ; 7152 db 08bh ; 7153 db 0d8h ; 7154 db 0b4h ; 7155 db 045h ; 7156 db 0cdh ; 7157 db 021h ; 7158 db 0b4h ; 7159 db 045h ; 715a db 0cdh ; 715b db 021h ; 715c db 0bah ; 715d db 00fh ; 715e db 007h ; 715f db 0b0h ; 7160 db 002h ; 7161 db 0e8h ; 7162 db 062h ; 7163 db 005h ; 7164 db 0bah ; 7165 db 018h ; 7166 db 007h ; 7167 db 0b0h ; 7168 db 001h ; 7169 db 0e8h ; 716a db 05ah ; 716b db 005h ; 716c db 0beh ; 716d db 015h ; 716e db 000h ; 716f db 01eh ; 7170 db 007h ; 7171 db 08bh ; 7172 db 0feh ; 7173 db 0b1h ; 7174 db 0ffh ; 7175 db 0feh ; 7176 db 0c1h ; 7177 db 0ach ; 7178 db 0aah ; 7179 db 00ah ; 717a db 0c0h ; 717b db 075h ; 717c db 0f8h ; 717d db 04fh ; 717e db 0b0h ; 717f db 00dh ; 7180 db 0aah ; 7181 db 088h ; 7182 db 00eh ; 7183 db 014h ; 7184 db 000h ; 7185 db 00eh ; 7186 db 007h ; 7187 db 0bah ; 7188 db 02dh ; 7189 db 007h ; 718a db 0bbh ; 718b db 035h ; 718c db 000h ; 718d db 08ch ; 718e db 04fh ; 718f db 004h ; 7190 db 08ch ; 7191 db 04fh ; 7192 db 008h ; 7193 db 08ch ; 7194 db 04fh ; 7195 db 00ch ; 7196 db 033h ; 7197 db 0c0h ; 7198 db 0b4h ; 7199 db 04bh ; 719a db 0f9h ; 719b db 0cdh ; 719c db 021h ; 719d db 0bah ; 719e db 0d8h ; 719f db 007h ; 71a0 db 0e8h ; 71a1 db 0c8h ; 71a2 db 004h ; 71a3 db 0ebh ; 71a4 db 0feh ; 71a5 db 00eh ; 71a6 db 01fh ; 71a7 db 0bbh ; 71a8 db 0ffh ; 71a9 db 0ffh ; 71aa db 0b4h ; 71ab db 048h ; 71ac db 0cdh ; 71ad db 021h ; 71ae db 0b4h ; 71af db 048h ; 71b0 db 0cdh ; 71b1 db 021h ; 71b2 db 0a3h ; 71b3 db 04dh ; 71b4 db 000h ; 71b5 db 0a3h ; 71b6 db 049h ; 71b7 db 000h ; 71b8 db 0b8h ; 71b9 db 000h ; 71ba db 037h ; 71bb db 0cdh ; 71bc db 021h ; 71bd db 088h ; 71be db 016h ; 71bf db 015h ; 71c0 db 000h ; 71c1 db 0bah ; 71c2 db 021h ; 71c3 db 007h ; 71c4 db 0b8h ; 71c5 db 000h ; 71c6 db 03dh ; 71c7 db 0f9h ; 71c8 db 0cdh ; 71c9 db 021h ; 71ca db 072h ; 71cb db 003h ; 71cc db 0e9h ; 71cd db 0a9h ; 71ce db 000h ; 71cf db 00eh ; 71d0 db 01fh ; 71d1 db 0e8h ; 71d2 db 01ah ; 71d3 db 004h ; 71d4 db 0a0h ; 71d5 db 013h ; 71d6 db 000h ; 71d7 db 02ch ; 71d8 db 005h ; 71d9 db 076h ; 71da db 03bh ; 71db db 098h ; 71dc db 08bh ; 71dd db 01eh ; 71de db 047h ; 71df db 000h ; 71e0 db 08bh ; 71e1 db 016h ; 71e2 db 049h ; 71e3 db 000h ; 71e4 db 0c5h ; 71e5 db 03eh ; 71e6 db 003h ; 71e7 db 000h ; 71e8 db 0c5h ; 71e9 db 07dh ; 71ea db 004h ; 71eb db 089h ; 71ec db 01dh ; 71ed db 089h ; 71ee db 055h ; 71ef db 002h ; 71f0 db 00eh ; 71f1 db 01fh ; 71f2 db 0c4h ; 71f3 db 03eh ; 71f4 db 047h ; 71f5 db 000h ; 71f6 db 026h ; 71f7 db 0c7h ; 71f8 db 005h ; 71f9 db 0ffh ; 71fa db 0ffh ; 71fb db 026h ; 71fc db 089h ; 71fd db 045h ; 71fe db 004h ; 71ff db 0b3h ; 7200 db 028h ; 7201 db 0f6h ; 7202 db 0e3h ; 7203 db 08bh ; 7204 db 0c8h ; 7205 db 001h ; 7206 db 006h ; 7207 db 047h ; 7208 db 000h ; 7209 db 0b8h ; 720a db 006h ; 720b db 000h ; 720c db 001h ; 720d db 006h ; 720e db 047h ; 720f db 000h ; 7210 db 003h ; 7211 db 0f8h ; 7212 db 033h ; 7213 db 0c0h ; 7214 db 0f3h ; 7215 db 0aah ; 7216 db 0e8h ; 7217 db 0d5h ; 7218 db 003h ; 7219 db 0feh ; 721a db 00eh ; 721b db 012h ; 721c db 000h ; 721d db 074h ; 721e db 02fh ; 721f db 01eh ; 7220 db 0c4h ; 7221 db 03eh ; 7222 db 047h ; 7223 db 000h ; 7224 db 0c5h ; 7225 db 01eh ; 7226 db 003h ; 7227 db 000h ; 7228 db 08bh ; 7229 db 047h ; 722a db 013h ; 722b db 026h ; 722c db 089h ; 722d db 005h ; 722e db 08bh ; 722f db 047h ; 7230 db 015h ; 7231 db 026h ; 7232 db 089h ; 7233 db 045h ; 7234 db 002h ; 7235 db 089h ; 7236 db 07fh ; 7237 db 013h ; 7238 db 08ch ; 7239 db 047h ; 723a db 015h ; 723b db 026h ; 723c db 0c7h ; 723d db 045h ; 723e db 004h ; 723f db 0ffh ; 7240 db 000h ; 7241 db 08bh ; 7242 db 05fh ; 7243 db 011h ; 7244 db 01fh ; 7245 db 083h ; 7246 db 0c3h ; 7247 db 010h ; 7248 db 001h ; 7249 db 01eh ; 724a db 047h ; 724b db 000h ; 724c db 0ebh ; 724d db 0c8h ; 724e db 0e8h ; 724f db 09dh ; 7250 db 003h ; 7251 db 08bh ; 7252 db 01eh ; 7253 db 049h ; 7254 db 000h ; 7255 db 0a1h ; 7256 db 04dh ; 7257 db 000h ; 7258 db 08eh ; 7259 db 0c0h ; 725a db 02bh ; 725b db 0d8h ; 725c db 0b4h ; 725d db 04ah ; 725e db 0cdh ; 725f db 021h ; 7260 db 006h ; 7261 db 08ch ; 7262 db 0c0h ; 7263 db 048h ; 7264 db 08eh ; 7265 db 0c0h ; 7266 db 026h ; 7267 db 0c7h ; 7268 db 006h ; 7269 db 001h ; 726a db 000h ; 726b db 008h ; 726c db 000h ; 726d db 007h ; 726e db 0c3h ; 726f db 0bah ; 7270 db 07eh ; 7271 db 007h ; 7272 db 0e8h ; 7273 db 016h ; 7274 db 004h ; 7275 db 0e9h ; 7276 db 08dh ; 7277 db 000h ; 7278 db 08bh ; 7279 db 0d8h ; 727a db 033h ; 727b db 0c9h ; 727c db 033h ; 727d db 0d2h ; 727e db 0b8h ; 727f db 002h ; 7280 db 042h ; 7281 db 0cdh ; 7282 db 021h ; 7283 db 0a3h ; 7284 db 043h ; 7285 db 000h ; 7286 db 033h ; 7287 db 0d2h ; 7288 db 0b8h ; 7289 db 000h ; 728a db 042h ; 728b db 0cdh ; 728c db 021h ; 728d db 08ch ; 728e db 0cah ; 728f db 0a1h ; 7290 db 043h ; 7291 db 000h ; 7292 db 005h ; 7293 db 00fh ; 7294 db 000h ; 7295 db 0b1h ; 7296 db 004h ; 7297 db 0d3h ; 7298 db 0e8h ; 7299 db 02bh ; 729a db 0d0h ; 729b db 083h ; 729c db 0eah ; 729d db 011h ; 729e db 08eh ; 729f db 0dah ; 72a0 db 08eh ; 72a1 db 0c2h ; 72a2 db 033h ; 72a3 db 0d2h ; 72a4 db 036h ; 72a5 db 08bh ; 72a6 db 00eh ; 72a7 db 043h ; 72a8 db 000h ; 72a9 db 0b4h ; 72aa db 03fh ; 72ab db 0f9h ; 72ac db 0cdh ; 72ad db 021h ; 72ae db 09ch ; 72af db 00eh ; 72b0 db 01fh ; 72b1 db 050h ; 72b2 db 0b4h ; 72b3 db 03eh ; 72b4 db 0cdh ; 72b5 db 021h ; 72b6 db 058h ; 72b7 db 09dh ; 72b8 db 072h ; 72b9 db 004h ; 72ba db 03bh ; 72bb db 0c8h ; 72bc db 074h ; 72bd db 009h ; 72be db 0bah ; 72bf db 021h ; 72c0 db 007h ; 72c1 db 0e8h ; 72c2 db 0a7h ; 72c3 db 003h ; 72c4 db 0e9h ; 72c5 db 008h ; 72c6 db 0ffh ; 72c7 db 0e8h ; 72c8 db 067h ; 72c9 db 002h ; 72ca db 0e8h ; 72cb db 04bh ; 72cc db 002h ; 72cd db 072h ; 72ce db 0f5h ; 72cf db 08ah ; 72d0 db 0e0h ; 72d1 db 0e8h ; 72d2 db 044h ; 72d3 db 002h ; 72d4 db 080h ; 72d5 db 0fch ; 72d6 db 042h ; 72d7 db 075h ; 72d8 db 00fh ; 72d9 db 0e8h ; 72da db 060h ; 72db db 003h ; 72dc db 074h ; 72dd db 027h ; 72de db 03dh ; 72df db 064h ; 72e0 db 000h ; 72e1 db 073h ; 72e2 db 08ch ; 72e3 db 0a2h ; 72e4 db 012h ; 72e5 db 000h ; 72e6 db 0ebh ; 72e7 db 01dh ; 72e8 db 080h ; 72e9 db 0fch ; 72ea db 043h ; 72eb db 074h ; 72ec db 003h ; 72ed db 0ebh ; 72ee db 01dh ; 72ef db 090h ; 72f0 db 03ch ; 72f1 db 04fh ; 72f2 db 075h ; 72f3 db 011h ; 72f4 db 0e8h ; 72f5 db 021h ; 72f6 db 002h ; 72f7 db 072h ; 72f8 db 0cbh ; 72f9 db 03ch ; 72fa db 04eh ; 72fb db 075h ; 72fc db 008h ; 72fd db 0b4h ; 72fe db 033h ; 72ff db 0b0h ; 7300 db 001h ; 7301 db 08ah ; 7302 db 0d0h ; 7303 db 0cdh ; 7304 db 021h ; 7305 db 00eh ; 7306 db 01fh ; 7307 db 0e8h ; 7308 db 0bch ; 7309 db 002h ; 730a db 0ebh ; 730b db 0c1h ; 730c db 080h ; 730d db 0fch ; 730e db 044h ; 730f db 074h ; 7310 db 003h ; 7311 db 0e9h ; 7312 db 085h ; 7313 db 001h ; 7314 db 08ch ; 7315 db 0cbh ; 7316 db 08eh ; 7317 db 0dbh ; 7318 db 089h ; 7319 db 036h ; 731a db 061h ; 731b db 000h ; 731c db 08ch ; 731d db 006h ; 731e db 063h ; 731f db 000h ; 7320 db 0e8h ; 7321 db 0cbh ; 7322 db 002h ; 7323 db 033h ; 7324 db 0c0h ; 7325 db 0a3h ; 7326 db 007h ; 7327 db 000h ; 7328 db 0a1h ; 7329 db 049h ; 732a db 000h ; 732b db 0a3h ; 732c db 009h ; 732d db 000h ; 732e db 0a3h ; 732f db 04bh ; 7330 db 000h ; 7331 db 006h ; 7332 db 01fh ; 7333 db 08bh ; 7334 db 0d6h ; 7335 db 08eh ; 7336 db 0c3h ; 7337 db 0bbh ; 7338 db 049h ; 7339 db 000h ; 733a db 0b0h ; 733b db 003h ; 733c db 0b4h ; 733d db 04bh ; 733e db 0f9h ; 733f db 0cdh ; 7340 db 021h ; 7341 db 01eh ; 7342 db 007h ; 7343 db 00eh ; 7344 db 01fh ; 7345 db 073h ; 7346 db 005h ; 7347 db 0e8h ; 7348 db 025h ; 7349 db 003h ; 734a db 0ebh ; 734b db 0b9h ; 734c db 006h ; 734d db 056h ; 734e db 00eh ; 734f db 007h ; 7350 db 0bbh ; 7351 db 006h ; 7352 db 000h ; 7353 db 0e8h ; 7354 db 0b3h ; 7355 db 002h ; 7356 db 0bbh ; 7357 db 008h ; 7358 db 000h ; 7359 db 0e8h ; 735a db 0adh ; 735b db 002h ; 735c db 00eh ; 735d db 01fh ; 735e db 0a1h ; 735f db 05fh ; 7360 db 000h ; 7361 db 03bh ; 7362 db 006h ; 7363 db 00fh ; 7364 db 000h ; 7365 db 072h ; 7366 db 004h ; 7367 db 05eh ; 7368 db 007h ; 7369 db 0ebh ; 736a db 0dch ; 736b db 0a3h ; 736c db 049h ; 736d db 000h ; 736e db 0a1h ; 736f db 05dh ; 7370 db 000h ; 7371 db 0a3h ; 7372 db 047h ; 7373 db 000h ; 7374 db 0c5h ; 7375 db 016h ; 7376 db 007h ; 7377 db 000h ; 7378 db 08bh ; 7379 db 0f2h ; 737a db 083h ; 737b db 0c6h ; 737c db 004h ; 737d db 02eh ; 737e db 0c4h ; 737f db 03eh ; 7380 db 003h ; 7381 db 000h ; 7382 db 08bh ; 7383 db 004h ; 7384 db 0a9h ; 7385 db 000h ; 7386 db 080h ; 7387 db 074h ; 7388 db 01dh ; 7389 db 0a9h ; 738a db 001h ; 738b db 000h ; 738c db 074h ; 738d db 008h ; 738e db 026h ; 738f db 089h ; 7390 db 055h ; 7391 db 00ch ; 7392 db 026h ; 7393 db 08ch ; 7394 db 05dh ; 7395 db 00eh ; 7396 db 0a9h ; 7397 db 008h ; 7398 db 000h ; 7399 db 074h ; 739a db 008h ; 739b db 026h ; 739c db 089h ; 739d db 055h ; 739e db 008h ; 739f db 026h ; 73a0 db 08ch ; 73a1 db 05dh ; 73a2 db 00ah ; 73a3 db 0e9h ; 73a4 db 0a4h ; 73a5 db 000h ; 73a6 db 02eh ; 73a7 db 0a0h ; 73a8 db 05ch ; 73a9 db 000h ; 73aa db 00ah ; 73ab db 0c0h ; 73ac db 075h ; 73ad db 00dh ; 73ae db 02eh ; 73af db 0c7h ; 73b0 db 006h ; 73b1 db 047h ; 73b2 db 000h ; 73b3 db 000h ; 73b4 db 000h ; 73b5 db 0b8h ; 73b6 db 0ffh ; 73b7 db 0ffh ; 73b8 db 0e9h ; 73b9 db 0b4h ; 73ba db 000h ; 73bb db 098h ; 73bc db 08bh ; 73bd db 0c8h ; 73be db 08ah ; 73bf db 0f4h ; 73c0 db 026h ; 73c1 db 08ah ; 73c2 db 055h ; 73c3 db 010h ; 73c4 db 026h ; 73c5 db 000h ; 73c6 db 045h ; 73c7 db 010h ; 73c8 db 02eh ; 73c9 db 0c5h ; 73ca db 01eh ; 73cb db 061h ; 73cc db 000h ; 73cd db 02eh ; 73ce db 0c4h ; 73cf db 02eh ; 73d0 db 003h ; 73d1 db 000h ; 73d2 db 026h ; 73d3 db 0c4h ; 73d4 db 06eh ; 73d5 db 000h ; 73d6 db 026h ; 73d7 db 083h ; 73d8 db 07eh ; 73d9 db 018h ; 73da db 0ffh ; 73db db 074h ; 73dc db 006h ; 73dd db 026h ; 73de db 0c4h ; 73df db 06eh ; 73e0 db 018h ; 73e1 db 0ebh ; 73e2 db 0f3h ; 73e3 db 02eh ; 73e4 db 0a1h ; 73e5 db 047h ; 73e6 db 000h ; 73e7 db 026h ; 73e8 db 089h ; 73e9 db 046h ; 73ea db 018h ; 73eb db 02eh ; 73ec db 0a1h ; 73ed db 049h ; 73ee db 000h ; 73ef db 026h ; 73f0 db 089h ; 73f1 db 046h ; 73f2 db 01ah ; 73f3 db 02eh ; 73f4 db 0c4h ; 73f5 db 02eh ; 73f6 db 047h ; 73f7 db 000h ; 73f8 db 02eh ; 73f9 db 083h ; 73fa db 006h ; 73fb db 047h ; 73fc db 000h ; 73fd db 05eh ; 73fe db 026h ; 73ff db 0c7h ; 7400 db 046h ; 7401 db 018h ; 7402 db 0ffh ; 7403 db 0ffh ; 7404 db 026h ; 7405 db 0c6h ; 7406 db 046h ; 7407 db 017h ; 7408 db 0ffh ; 7409 db 08bh ; 740a db 037h ; 740b db 043h ; 740c db 043h ; 740d db 026h ; 740e db 089h ; 740f db 056h ; 7410 db 000h ; 7411 db 0b4h ; 7412 db 053h ; 7413 db 0cdh ; 7414 db 021h ; 7415 db 026h ; 7416 db 08bh ; 7417 db 046h ; 7418 db 002h ; 7419 db 006h ; 741a db 02eh ; 741b db 0c4h ; 741c db 03eh ; 741d db 003h ; 741e db 000h ; 741f db 026h ; 7420 db 03bh ; 7421 db 045h ; 7422 db 011h ; 7423 db 007h ; 7424 db 076h ; 7425 db 00eh ; 7426 db 05eh ; 7427 db 007h ; 7428 db 0bah ; 7429 db 000h ; 742a db 000h ; 742b db 0bbh ; 742c db 000h ; 742d db 000h ; 742e db 0e8h ; 742f db 044h ; 7430 db 002h ; 7431 db 0e9h ; 7432 db 0d1h ; 7433 db 0feh ; 7434 db 01eh ; 7435 db 052h ; 7436 db 02eh ; 7437 db 0c5h ; 7438 db 016h ; 7439 db 007h ; 743a db 000h ; 743b db 026h ; 743c db 089h ; 743d db 056h ; 743e db 012h ; 743f db 026h ; 7440 db 08ch ; 7441 db 05eh ; 7442 db 014h ; 7443 db 05ah ; 7444 db 01fh ; 7445 db 042h ; 7446 db 0feh ; 7447 db 0c6h ; 7448 db 0e2h ; 7449 db 083h ; 744a db 02eh ; 744b db 0c4h ; 744c db 03eh ; 744d db 003h ; 744e db 000h ; 744f db 026h ; 7450 db 08bh ; 7451 db 04dh ; 7452 db 017h ; 7453 db 026h ; 7454 db 08bh ; 7455 db 055h ; 7456 db 019h ; 7457 db 02eh ; 7458 db 0c5h ; 7459 db 036h ; 745a db 007h ; 745b db 000h ; 745c db 026h ; 745d db 089h ; 745e db 075h ; 745f db 017h ; 7460 db 026h ; 7461 db 08ch ; 7462 db 05dh ; 7463 db 019h ; 7464 db 08bh ; 7465 db 004h ; 7466 db 02eh ; 7467 db 0a3h ; 7468 db 007h ; 7469 db 000h ; 746a db 089h ; 746b db 00ch ; 746c db 089h ; 746d db 054h ; 746e db 002h ; 746f db 05eh ; 7470 db 007h ; 7471 db 040h ; 7472 db 074h ; 7473 db 003h ; 7474 db 0e9h ; 7475 db 0d5h ; 7476 db 0feh ; 7477 db 0e9h ; 7478 db 08bh ; 7479 db 0feh ; 747a db 080h ; 747b db 0fch ; 747c db 051h ; 747d db 075h ; 747e db 02eh ; 747f db 0e8h ; 7480 db 0bah ; 7481 db 001h ; 7482 db 074h ; 7483 db 0f3h ; 7484 db 00ah ; 7485 db 0e4h ; 7486 db 075h ; 7487 db 0efh ; 7488 db 0b4h ; 7489 db 038h ; 748a db 0bah ; 748b db 0ffh ; 748c db 0ffh ; 748d db 0cdh ; 748e db 021h ; 748f db 073h ; 7490 db 0e6h ; 7491 db 0bah ; 7492 db 000h ; 7493 db 000h ; 7494 db 0e8h ; 7495 db 0f4h ; 7496 db 001h ; 7497 db 0ebh ; 7498 db 0deh ; 7499 db 080h ; 749a db 0fch ; 749b db 046h ; 749c db 075h ; 749d db 0dch ; 749e db 0e8h ; 749f db 09bh ; 74a0 db 001h ; 74a1 db 074h ; 74a2 db 0d4h ; 74a3 db 03dh ; 74a4 db 064h ; 74a5 db 000h ; 74a6 db 073h ; 74a7 db 05bh ; 74a8 db 0a2h ; 74a9 db 013h ; 74aa db 000h ; 74ab db 0ebh ; 74ac db 0cah ; 74ad db 080h ; 74ae db 0fch ; 74af db 057h ; 74b0 db 075h ; 74b1 db 00eh ; 74b2 db 08ah ; 74b3 db 0d0h ; 74b4 db 0b8h ; 74b5 db 001h ; 74b6 db 037h ; 74b7 db 088h ; 74b8 db 016h ; 74b9 db 015h ; 74ba db 000h ; 74bb db 0cdh ; 74bc db 021h ; 74bd db 0e9h ; 74be db 045h ; 74bf db 0feh ; 74c0 db 080h ; 74c1 db 0fch ; 74c2 db 041h ; 74c3 db 075h ; 74c4 db 00eh ; 74c5 db 03ch ; 74c6 db 046h ; 74c7 db 075h ; 74c8 db 007h ; 74c9 db 0b8h ; 74ca db 003h ; 74cb db 037h ; 74cc db 032h ; 74cd db 0d2h ; 74ce db 0cdh ; 74cf db 021h ; 74d0 db 0e9h ; 74d1 db 032h ; 74d2 db 0feh ; 74d3 db 080h ; 74d4 db 0fch ; 74d5 db 053h ; 74d6 db 075h ; 74d7 db 02bh ; 74d8 db 0c6h ; 74d9 db 006h ; 74da db 015h ; 74db db 000h ; 74dc db 000h ; 74dd db 0bfh ; 74de db 02eh ; 74df db 007h ; 74e0 db 088h ; 74e1 db 045h ; 74e2 db 0ffh ; 74e3 db 0e8h ; 74e4 db 032h ; 74e5 db 000h ; 74e6 db 00ah ; 74e7 db 0c0h ; 74e8 db 074h ; 74e9 db 01ch ; 74ea db 03ch ; 74eb db 020h ; 74ec db 072h ; 74ed db 005h ; 74ee db 088h ; 74ef db 005h ; 74f0 db 047h ; 74f1 db 0ebh ; 74f2 db 0f0h ; 74f3 db 0c6h ; 74f4 db 005h ; 74f5 db 000h ; 74f6 db 0e8h ; 74f7 db 01fh ; 74f8 db 000h ; 74f9 db 03ch ; 74fa db 00ah ; 74fb db 075h ; 74fc db 003h ; 74fd db 0e8h ; 74fe db 018h ; 74ff db 000h ; 7500 db 0e9h ; 7501 db 0cah ; 7502 db 0fdh ; 7503 db 0e9h ; 7504 db 069h ; 7505 db 0fdh ; 7506 db 0c6h ; 7507 db 005h ; 7508 db 000h ; 7509 db 0bfh ; 750a db 015h ; 750b db 000h ; 750c db 0e8h ; 750d db 009h ; 750e db 000h ; 750f db 03ch ; 7510 db 020h ; 7511 db 072h ; 7512 db 0e0h ; 7513 db 088h ; 7514 db 005h ; 7515 db 047h ; 7516 db 0ebh ; 7517 db 0f4h ; 7518 db 08bh ; 7519 db 00eh ; 751a db 043h ; 751b db 000h ; 751c db 0e3h ; 751d db 011h ; 751e db 08bh ; 751f db 036h ; 7520 db 045h ; 7521 db 000h ; 7522 db 026h ; 7523 db 08ah ; 7524 db 004h ; 7525 db 0ffh ; 7526 db 00eh ; 7527 db 043h ; 7528 db 000h ; 7529 db 0ffh ; 752a db 006h ; 752b db 045h ; 752c db 000h ; 752d db 0f8h ; 752e db 0c3h ; 752f db 0f9h ; 7530 db 0c3h ; 7531 db 08bh ; 7532 db 00eh ; 7533 db 043h ; 7534 db 000h ; 7535 db 0e3h ; 7536 db 0f8h ; 7537 db 0e8h ; 7538 db 099h ; 7539 db 000h ; 753a db 033h ; 753b db 0f6h ; 753c db 08bh ; 753d db 0feh ; 753e db 0e8h ; 753f db 059h ; 7540 db 000h ; 7541 db 03ch ; 7542 db 020h ; 7543 db 072h ; 7544 db 0f9h ; 7545 db 051h ; 7546 db 056h ; 7547 db 057h ; 7548 db 08bh ; 7549 db 0eeh ; 754a db 04dh ; 754b db 0beh ; 754c db 03ah ; 754d db 007h ; 754e db 0b5h ; 754f db 000h ; 7550 db 08bh ; 7551 db 0fdh ; 7552 db 08ah ; 7553 db 00ch ; 7554 db 046h ; 7555 db 0e3h ; 7556 db 00eh ; 7557 db 0f3h ; 7558 db 0a6h ; 7559 db 09fh ; 755a db 003h ; 755b db 0f1h ; 755c db 09eh ; 755d db 0ach ; 755e db 075h ; 755f db 0f0h ; 7560 db 05fh ; 7561 db 05eh ; 7562 db 059h ; 7563 db 0ebh ; 7564 db 005h ; 7565 db 05fh ; 7566 db 05eh ; 7567 db 059h ; 7568 db 0b0h ; 7569 db 05ah ; 756a db 0aah ; 756b db 0e8h ; 756c db 024h ; 756d db 000h ; 756e db 0e8h ; 756f db 036h ; 7570 db 000h ; 7571 db 075h ; 7572 db 0f8h ; 7573 db 0e8h ; 7574 db 024h ; 7575 db 000h ; 7576 db 0aah ; 7577 db 0e8h ; 7578 db 018h ; 7579 db 000h ; 757a db 0aah ; 757b db 03ch ; 757c db 020h ; 757d db 077h ; 757e db 0f8h ; 757f db 03ch ; 7580 db 00ah ; 7581 db 074h ; 7582 db 0bbh ; 7583 db 026h ; 7584 db 0c6h ; 7585 db 045h ; 7586 db 0ffh ; 7587 db 000h ; 7588 db 0e8h ; 7589 db 007h ; 758a db 000h ; 758b db 0aah ; 758c db 03ch ; 758d db 00ah ; 758e db 075h ; 758f db 0f8h ; 7590 db 0ebh ; 7591 db 0ach ; 7592 db 0e3h ; 7593 db 026h ; 7594 db 026h ; 7595 db 08ah ; 7596 db 004h ; 7597 db 046h ; 7598 db 049h ; 7599 db 0c3h ; 759a db 0e3h ; 759b db 01eh ; 759c db 026h ; 759d db 08ah ; 759e db 004h ; 759f db 046h ; 75a0 db 049h ; 75a1 db 0e8h ; 75a2 db 003h ; 75a3 db 000h ; 75a4 db 074h ; 75a5 db 0f4h ; 75a6 db 0c3h ; 75a7 db 03ch ; 75a8 db 020h ; 75a9 db 074h ; 75aa db 0fbh ; 75ab db 03ch ; 75ac db 009h ; 75ad db 074h ; 75ae db 0f7h ; 75af db 03ch ; 75b0 db 03dh ; 75b1 db 074h ; 75b2 db 0f3h ; 75b3 db 03ch ; 75b4 db 02ch ; 75b5 db 074h ; 75b6 db 0efh ; 75b7 db 03ch ; 75b8 db 03bh ; 75b9 db 0c3h ; 75ba db 059h ; 75bb db 089h ; 75bc db 03eh ; 75bd db 043h ; 75be db 000h ; 75bf db 033h ; 75c0 db 0f6h ; 75c1 db 089h ; 75c2 db 036h ; 75c3 db 045h ; 75c4 db 000h ; 75c5 db 0c3h ; 75c6 db 0e8h ; 75c7 db 04fh ; 75c8 db 0ffh ; 75c9 db 072h ; 75ca db 007h ; 75cb db 03ch ; 75cc db 00ah ; 75cd db 075h ; 75ce db 0f7h ; 75cf db 0e8h ; 75d0 db 046h ; 75d1 db 0ffh ; 75d2 db 0c3h ; 75d3 db 051h ; 75d4 db 056h ; 75d5 db 01eh ; 75d6 db 006h ; 75d7 db 01fh ; 75d8 db 033h ; 75d9 db 0f6h ; 75da db 0ach ; 75db db 03ch ; 75dc db 061h ; 75dd db 072h ; 75de db 009h ; 75df db 03ch ; 75e0 db 07ah ; 75e1 db 077h ; 75e2 db 005h ; 75e3 db 02ch ; 75e4 db 020h ; 75e5 db 088h ; 75e6 db 044h ; 75e7 db 0ffh ; 75e8 db 0e2h ; 75e9 db 0f0h ; 75ea db 01fh ; 75eb db 05eh ; 75ec db 059h ; 75ed db 0c3h ; 75ee db 036h ; 75ef db 0a1h ; 75f0 db 047h ; 75f1 db 000h ; 75f2 db 005h ; 75f3 db 00fh ; 75f4 db 000h ; 75f5 db 0d1h ; 75f6 db 0e8h ; 75f7 db 0d1h ; 75f8 db 0e8h ; 75f9 db 0d1h ; 75fa db 0e8h ; 75fb db 0d1h ; 75fc db 0e8h ; 75fd db 036h ; 75fe db 001h ; 75ff db 006h ; 7600 db 049h ; 7601 db 000h ; 7602 db 033h ; 7603 db 0c0h ; 7604 db 036h ; 7605 db 0a3h ; 7606 db 047h ; 7607 db 000h ; 7608 db 0c3h ; 7609 db 02eh ; 760a db 08eh ; 760b db 01eh ; 760c db 009h ; 760d db 000h ; 760e db 02eh ; 760f db 003h ; 7610 db 01eh ; 7611 db 007h ; 7612 db 000h ; 7613 db 08bh ; 7614 db 007h ; 7615 db 02eh ; 7616 db 0ffh ; 7617 db 036h ; 7618 db 007h ; 7619 db 000h ; 761a db 02eh ; 761b db 0a3h ; 761c db 007h ; 761d db 000h ; 761e db 0bbh ; 761f db 04fh ; 7620 db 000h ; 7621 db 036h ; 7622 db 0ffh ; 7623 db 01eh ; 7624 db 007h ; 7625 db 000h ; 7626 db 02eh ; 7627 db 08fh ; 7628 db 006h ; 7629 db 007h ; 762a db 000h ; 762b db 0c3h ; 762c db 058h ; 762d db 0e9h ; 762e db 03fh ; 762f db 0fch ; 7630 db 02ch ; 7631 db 030h ; 7632 db 072h ; 7633 db 006h ; 7634 db 03ch ; 7635 db 009h ; 7636 db 077h ; 7637 db 002h ; 7638 db 0f8h ; 7639 db 0c3h ; 763a db 0f9h ; 763b db 0c3h ; 763c db 033h ; 763d db 0dbh ; 763e db 0e8h ; 763f db 0efh ; 7640 db 0ffh ; 7641 db 072h ; 7642 db 0e9h ; 7643 db 093h ; 7644 db 053h ; 7645 db 0bbh ; 7646 db 00ah ; 7647 db 000h ; 7648 db 0f7h ; 7649 db 0e3h ; 764a db 05bh ; 764b db 002h ; 764c db 0c3h ; 764d db 080h ; 764e db 0d4h ; 764f db 000h ; 7650 db 072h ; 7651 db 0dah ; 7652 db 093h ; 7653 db 0e8h ; 7654 db 0c2h ; 7655 db 0feh ; 7656 db 072h ; 7657 db 00eh ; 7658 db 00ah ; 7659 db 0c0h ; 765a db 075h ; 765b db 0e2h ; 765c db 036h ; 765d db 0ffh ; 765e db 006h ; 765f db 043h ; 7660 db 000h ; 7661 db 036h ; 7662 db 0ffh ; 7663 db 00eh ; 7664 db 045h ; 7665 db 000h ; 7666 db 08bh ; 7667 db 0c3h ; 7668 db 00bh ; 7669 db 0c0h ; 766a db 0c3h ; 766b db 00eh ; 766c db 007h ; 766d db 08bh ; 766e db 0f2h ; 766f db 0bah ; 7670 db 000h ; 7671 db 000h ; 7672 db 0bbh ; 7673 db 000h ; 7674 db 000h ; 7675 db 00eh ; 7676 db 01fh ; 7677 db 0b4h ; 7678 db 009h ; 7679 db 0cdh ; 767a db 021h ; 767b db 026h ; 767c db 08ah ; 767d db 014h ; 767e db 00ah ; 767f db 0d2h ; 7680 db 074h ; 7681 db 007h ; 7682 db 0b4h ; 7683 db 002h ; 7684 db 0cdh ; 7685 db 021h ; 7686 db 046h ; 7687 db 0ebh ; 7688 db 0f2h ; 7689 db 08bh ; 768a db 0d3h ; 768b db 0b4h ; 768c db 009h ; 768d db 0cdh ; 768e db 021h ; 768f db 0c3h ; 7690 db 050h ; 7691 db 053h ; 7692 db 051h ; 7693 db 052h ; 7694 db 056h ; 7695 db 01eh ; 7696 db 053h ; 7697 db 033h ; 7698 db 0c0h ; 7699 db 0b4h ; 769a db 03dh ; 769b db 0f9h ; 769c db 0cdh ; 769d db 021h ; 769e db 05ah ; 769f db 072h ; 76a0 db 01eh ; 76a1 db 006h ; 76a2 db 01fh ; 76a3 db 08bh ; 76a4 db 0d8h ; 76a5 db 0b9h ; 76a6 db 000h ; 76a7 db 0ffh ; 76a8 db 0b4h ; 76a9 db 03fh ; 76aa db 0f9h ; 76ab db 0cdh ; 76ac db 021h ; 76ad db 072h ; 76ae db 010h ; 76af db 08bh ; 76b0 db 0f2h ; 76b1 db 081h ; 76b2 db 03ch ; 76b3 db 04dh ; 76b4 db 05ah ; 76b5 db 075h ; 76b6 db 003h ; 76b7 db 0f9h ; 76b8 db 0ebh ; 76b9 db 005h ; 76ba db 0b4h ; 76bb db 03eh ; 76bc db 0f9h ; 76bd db 0cdh ; 76be db 021h ; 76bf db 01fh ; 76c0 db 05eh ; 76c1 db 05ah ; 76c2 db 059h ; 76c3 db 05bh ; 76c4 db 058h ; 76c5 db 0c3h ; 76c6 db 0e8h ; 76c7 db 01ah ; 76c8 db 000h ; 76c9 db 073h ; 76ca db 007h ; 76cb db 0bah ; 76cc db 0fdh ; 76cd db 006h ; 76ce db 0e8h ; 76cf db 012h ; 76d0 db 000h ; 76d1 db 0c3h ; 76d2 db 033h ; 76d3 db 0c0h ; 76d4 db 0b4h ; 76d5 db 044h ; 76d6 db 0cdh ; 76d7 db 021h ; 76d8 db 0f6h ; 76d9 db 0c2h ; 76da db 080h ; 76db db 075h ; 76dc db 0f4h ; 76dd db 0b4h ; 76de db 03eh ; 76df db 0cdh ; 76e0 db 021h ; 76e1 db 0ebh ; 76e2 db 0e8h ; 76e3 db 0b4h ; 76e4 db 03dh ; 76e5 db 0f9h ; 76e6 db 0cdh ; 76e7 db 021h ; 76e8 db 0c3h ; 76e9 db 083h ; 76ea db 0c4h ; 76eb db 006h ; 76ec db 058h ; 76ed db 05bh ; 76ee db 059h ; 76ef db 05ah ; 76f0 db 05eh ; 76f1 db 05fh ; 76f2 db 05dh ; 76f3 db 01fh ; 76f4 db 007h ; 76f5 db 050h ; 76f6 db 0b4h ; 76f7 db 019h ; 76f8 db 0cdh ; 76f9 db 021h ; 76fa db 058h ; 76fb db 0cfh ; 76fc _str_4: ; 76fd db '\DEV\NUL', 0 db 000h ; 7705 _str_5: ; 7706 db '\DEV\CON', 0 db 000h ; 770e _str_6: ; 770f db '\DEV\AUX', 0 db 000h ; 7717 _str_7: ; 7718 db '\DEV\PRN', 0 db 000h ; 7720 _str_8: ; 7721 db '\CONFIG.SYS', 0 db 000h ; 772c _str_9: ; 772d db '\COMMAND.COM', 0 db 000h ; 7739 db 007h ; 773a _str_10: ; 773b db 'BUFFERSB', 0 db 005h ; 7743 _str_11: ; 7744 db 'BREAKC', 0 db 005h ; 774a _str_12: ; 774b db 'SHELLS', 0 db 006h ; 7751 _str_13: ; 7752 db 'DEVICED', 0 db 005h ; 7759 _str_14: ; 775a db 'FILESF', 0 db 008h ; 7760 _str_15: ; 7761 db 'SWITCHARW', 0 db 008h ; 776a _str_16: ; 776b db 'AVAILDEVA', 0 db 007h ; 7774 _str_17: ; 7775 db 'COUNTRYQ', 0 db 000h ; 777d db 00dh ; 777e db 00ah ; 777f _str_18: ; 7780 db 'Unrecognized command in CONFIG.SYS', 0 db 00dh ; 77a2 db 00ah ; 77a3 db 024h ; 77a4 db 00dh ; 77a5 db 00ah ; 77a6 _str_19: ; 77a7 db 'Sector size too large in file $' db 024h ; 77c5 db 00dh ; 77c6 db 00ah ; 77c7 _str_20: ; 77c8 db 'Bad or missing $' db 024h ; 77d7 _str_21: ; 77d8 db 'Command Interpreter', 0 org 077ebh _unknown: db 070dh dup (0) ; 77eb _TEXT ends end