Changeset 44751 in vbox
- Timestamp:
- Feb 19, 2013 1:03:01 PM (12 years ago)
- Location:
- trunk/src/VBox/Devices
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/BiosCommonCode/MakeAlternativeSource.cpp
r43630 r44751 987 987 && pb[5] == 0x01 988 988 ) 989 || ( pb[0] == 0x98 /* bytes after apm_out_str_ */ 990 && pb[1] == 0x8a 991 && pb[2] == 0x67 992 && pb[3] == 0x8b) 989 993 || 0 990 994 ) -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.asm
r43630 r44751 8 8 ; 9 9 ; 10 ; Copyright (C) 2006-201 1Oracle Corporation10 ; Copyright (C) 2006-2012 Oracle Corporation 11 11 ; 12 12 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 92 92 ; 93 93 ; 94 ; Copyright (C) 2006-201 1Oracle Corporation94 ; Copyright (C) 2006-2012 Oracle Corporation 95 95 ; 96 96 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 134 134 ; 135 135 ; 136 ; Copyright (C) 2006-201 1Oracle Corporation136 ; Copyright (C) 2006-2012 Oracle Corporation 137 137 ; 138 138 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 176 176 ; 177 177 ; 178 ; Copyright (C) 2006-201 1Oracle Corporation178 ; Copyright (C) 2006-2013 Oracle Corporation 179 179 ; 180 180 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 218 218 ; 219 219 ; 220 ; Copyright (C) 2006-201 1Oracle Corporation220 ; Copyright (C) 2006-2012 Oracle Corporation 221 221 ; 222 222 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 260 260 ; 261 261 ; 262 ; Copyright (C) 2006-201 1Oracle Corporation262 ; Copyright (C) 2006-2012 Oracle Corporation 263 263 ; 264 264 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 302 302 ; 303 303 ; 304 ; Copyright (C) 2006-201 1Oracle Corporation304 ; Copyright (C) 2006-2012 Oracle Corporation 305 305 ; 306 306 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 344 344 ; 345 345 ; 346 ; Copyright (C) 2006-201 1Oracle Corporation346 ; Copyright (C) 2006-2012 Oracle Corporation 347 347 ; 348 348 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 386 386 ; 387 387 ; 388 ; Copyright (C) 2006-201 1Oracle Corporation388 ; Copyright (C) 2006-2013 Oracle Corporation 389 389 ; 390 390 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 428 428 ; 429 429 ; 430 ; Copyright (C) 2006-201 1Oracle Corporation430 ; Copyright (C) 2006-2012 Oracle Corporation 431 431 ; 432 432 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 512 512 ; 513 513 ; 514 ; Copyright (C) 2006-201 1Oracle Corporation514 ; Copyright (C) 2006-2012 Oracle Corporation 515 515 ; 516 516 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 558 558 ; 559 559 ; 560 ; Copyright (C) 2004-201 1Oracle Corporation560 ; Copyright (C) 2004-2012 Oracle Corporation 561 561 ; 562 562 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 576 576 ; 577 577 ; 578 ; Copyright (C) 2004-201 1Oracle Corporation578 ; Copyright (C) 2004-2012 Oracle Corporation 579 579 ; 580 580 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 594 594 ; 595 595 ; 596 ; Copyright (C) 2011 Oracle Corporation596 ; Copyright (C) 2011-2012 Oracle Corporation 597 597 ; 598 598 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 792 792 793 793 794 section _DATA progbits vstart=0x0 align=1 ; size=0x30 class=DATA group=DGROUP 795 _dskacc: ; 0xf0000 LB 0x30 794 section _DATA progbits vstart=0x0 align=1 ; size=0x40 class=DATA group=DGROUP 795 _pktacc: ; 0xf0000 LB 0xc 796 db 000h, 000h, 000h, 000h, 000h, 000h, 0eah, 027h, 08dh, 075h, 0adh, 082h 797 _softrst: ; 0xf000c LB 0xc 798 db 000h, 000h, 000h, 000h, 000h, 000h, 0cdh, 02ah, 000h, 000h, 000h, 000h 799 _dskacc: ; 0xf0018 LB 0x28 796 800 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 039h, 027h, 0b0h, 027h, 000h, 000h, 000h, 000h 797 db 0 c4h, 074h, 075h, 075h, 0c4h, 081h, 055h, 082h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h798 db 0 5fh, 033h, 032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h801 db 02bh, 074h, 0dch, 074h, 0afh, 081h, 040h, 082h, 05fh, 033h, 032h, 05fh, 000h, 0dah, 00fh, 000h 802 db 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h 799 803 800 section CONST progbits vstart=0x 30 align=1 ; size=0xcaaclass=DATA group=DGROUP804 section CONST progbits vstart=0x40 align=1 ; size=0xce0 class=DATA group=DGROUP 801 805 db 'NMI Handler called', 00ah, 000h 802 806 db 'INT18: BOOT FAILURE', 00ah, 000h … … 821 825 db '%s: drive>1 || head>1 ...', 00ah, 000h 822 826 db '%s: ctrl not ready', 00ah, 000h 823 db '%s: read error', 00ah, 000h824 827 db '%s: write error', 00ah, 000h 825 828 db '%s: bad floppy type', 00ah, 000h 826 829 db '%s: unsupported AH=%02x', 00ah, 000h, 000h 827 830 db 'int13_eltorito', 000h 828 db '%s: call with AX=%04x . Please report', 00ah, 000h831 db '%s: call with AX=%04x not implemented.', 00ah, 000h 829 832 db '%s: unsupported AH=%02x', 00ah, 000h 830 833 db 'int13_cdemu', 000h … … 900 903 db '%s: SCSI_INQUIRY failed', 00ah, 000h 901 904 db '%s: SCSI_READ_CAPACITY failed', 00ah, 000h 902 db 'Disk %d has an unsupported sector size of %u', 00ah, 000h, 000h 905 db 'Disk %d has an unsupported sector size of %u', 00ah, 000h 906 db 'SCSI %d-ID#%d: LCHS=%u/%u/%u %ld sectors', 00ah, 000h 907 db 'SCSI %d-ID#%d: CD/DVD-ROM', 00ah, 000h 903 908 db 'ahci_read_sectors', 000h 904 909 db '%s: device_id out of range %d', 00ah, 000h … … 913 918 db 'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h 914 919 915 section CONST2 progbits vstart=0x cdaalign=1 ; size=0x3fa class=DATA group=DGROUP916 _bios_cvs_version_string: ; 0xf0 cdaLB 0x12920 section CONST2 progbits vstart=0xd20 align=1 ; size=0x3fa class=DATA group=DGROUP 921 _bios_cvs_version_string: ; 0xf0d20 LB 0x12 917 922 db 'VirtualBox 4.2.51', 000h 918 _bios_prefix_string: ; 0xf0 cecLB 0x8923 _bios_prefix_string: ; 0xf0d32 LB 0x8 919 924 db 'BIOS: ', 000h, 000h 920 _isotag: ; 0xf0 cf4LB 0x6925 _isotag: ; 0xf0d3a LB 0x6 921 926 db 'CD001', 000h 922 _eltorito: ; 0xf0 cfaLB 0x18927 _eltorito: ; 0xf0d40 LB 0x18 923 928 db 'EL TORITO SPECIFICATION', 000h 924 _drivetypes: ; 0xf0d 12LB 0x28929 _drivetypes: ; 0xf0d58 LB 0x28 925 930 db 046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h 926 931 db 069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h 927 932 db 04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h 928 _scan_to_scanascii: ; 0xf0d 3aLB 0x37a933 _scan_to_scanascii: ; 0xf0d80 LB 0x37a 929 934 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h 930 935 db 000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h … … 983 988 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h 984 989 db 000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h 985 _panic_msg_keyb_buffer_full: ; 0xf10 b4LB 0x20990 _panic_msg_keyb_buffer_full: ; 0xf10fa LB 0x20 986 991 db '%s: keyboard input buffer full', 00ah, 000h 987 992 988 ; Padding 0x 52c bytes at 0xf10d4989 times 1 324 db 0993 ; Padding 0x4e6 bytes at 0xf111a 994 times 1254 db 0 990 995 991 section _TEXT progbits vstart=0x1600 align=1 ; size=0x7a b5 class=CODE group=AUTO996 section _TEXT progbits vstart=0x1600 align=1 ; size=0x7aa5 class=CODE group=AUTO 992 997 read_byte_: ; 0xf1600 LB 0xe 993 998 push bx ; 53 … … 1133 1138 push bp ; 55 1134 1139 mov bp, sp ; 89 e5 1135 push strict word 000 30h ; 68 30 001140 push strict word 00040h ; 68 40 00 1136 1141 push strict byte 00007h ; 6a 07 1137 1142 call 018e9h ; e8 f7 01 … … 1142 1147 push bp ; 55 1143 1148 mov bp, sp ; 89 e5 1144 push strict word 000 44h ; 68 44 001149 push strict word 00054h ; 68 54 00 1145 1150 push strict byte 00007h ; 6a 07 1146 1151 call 018e9h ; e8 e7 01 … … 1151 1156 push bp ; 55 1152 1157 mov bp, sp ; 89 e5 1153 mov bx, 00 cech ; bb ec 0c1158 mov bx, 00d32h ; bb 32 0d 1154 1159 mov cx, ds ; 8c d9 1155 1160 mov ax, strict word 00004h ; b8 04 00 1156 1161 call 018aeh ; e8 99 01 1157 push 00 cdah ; 68 da 0c1158 push strict word 000 59h ; 68 59 001162 push 00d20h ; 68 20 0d 1163 push strict word 00069h ; 68 69 00 1159 1164 push strict byte 00004h ; 6a 04 1160 1165 call 018e9h ; e8 c9 01 … … 1180 1185 pop bp ; 5d 1181 1186 retn ; c3 1182 call 07 130h ; e8 e1591187 call 07097h ; e8 48 59 1183 1188 pop bp ; 5d 1184 1189 retn ; c3 … … 1313 1318 mov bx, strict word 0000ah ; bb 0a 00 1314 1319 xor cx, cx ; 31 c9 1315 call 08f c0h ; e8 67 771320 call 08fb0h ; e8 57 77 1316 1321 mov word [bp-004h], ax ; 89 46 fc 1317 1322 mov cx, dx ; 89 d1 … … 1408 1413 mov dx, 00401h ; ba 01 04 1409 1414 out DX, AL ; ee 1410 push strict word 000 5eh ; 68 5e 001415 push strict word 0006eh ; 68 6e 00 1411 1416 push strict byte 00002h ; 6a 02 1412 1417 call 018e9h ; e8 d1 ff … … 1591 1596 call 01751h ; e8 64 fc 1592 1597 jmp short 01afah ; eb 0b 1593 push strict word 000 66h ; 68 66 001598 push strict word 00076h ; 68 76 00 1594 1599 push strict byte 00007h ; 6a 07 1595 1600 call 018e9h ; e8 f2 fd … … 2184 2189 test ax, ax ; 85 c0 2185 2190 je short 020c4h ; 74 0b 2186 push 000 84h ; 68 84 002191 push 00094h ; 68 94 00 2187 2192 push strict byte 00007h ; 6a 07 2188 2193 call 018e9h ; e8 28 f8 … … 2263 2268 mov dx, ss ; 8c d2 2264 2269 lea ax, [bp-032h] ; 8d 46 ce 2265 call 05 33dh ; e8 b7312266 mov bx, 00 cech ; bb ec 0c2270 call 052a4h ; e8 1e 31 2271 mov bx, 00d32h ; bb 32 0d 2267 2272 mov cx, ds ; 8c d9 2268 2273 mov ax, strict word 00004h ; b8 04 00 … … 2281 2286 movzx ax, byte [bp-014h] ; 0f b6 46 ec 2282 2287 push ax ; 50 2283 push 000 adh ; 68 ad 002288 push 000bdh ; 68 bd 00 2284 2289 push strict byte 00004h ; 6a 04 2285 2290 call 018e9h ; e8 31 f7 … … 2379 2384 test ax, ax ; 85 c0 2380 2385 je short 022dbh ; 74 0b 2381 push 000 d4h ; 68 d4 002386 push 000e4h ; 68 e4 00 2382 2387 push strict byte 00007h ; 6a 07 2383 2388 call 018e9h ; e8 11 f6 … … 2471 2476 cmp byte [bp-004h], 000h ; 80 7e fc 00 2472 2477 je short 023dfh ; 74 05 2473 mov ax, 00 0ffh ; b8 ff 002478 mov ax, 0010fh ; b8 0f 01 2474 2479 jmp short 023e2h ; eb 03 2475 mov ax, 001 06h ; b8 06 012480 mov ax, 00116h ; b8 16 01 2476 2481 push ax ; 50 2477 2482 movzx ax, byte [bp-014h] ; 0f b6 46 ec 2478 2483 push ax ; 50 2479 push 001 0dh ; 68 0d 012484 push 0011dh ; 68 1d 01 2480 2485 push strict byte 00002h ; 6a 02 2481 2486 call 018e9h ; e8 f9 f4 … … 2487 2492 je short 0240ch ; 74 0e 2488 2493 push ax ; 50 2489 push 001 18h ; 68 18 012494 push 00128h ; 68 28 01 2490 2495 push strict byte 00002h ; 6a 02 2491 2496 call 018e9h ; e8 e2 f4 … … 2495 2500 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2496 2501 push ax ; 50 2497 push 001 1bh ; 68 1b 012502 push 0012bh ; 68 2b 01 2498 2503 push strict byte 00002h ; 6a 02 2499 2504 call 018e9h ; e8 cc f4 … … 2502 2507 cmp byte [bp-004h], 000h ; 80 7e fc 00 2503 2508 je short 0242eh ; 74 05 2504 mov ax, 00 0ffh ; b8 ff 002509 mov ax, 0010fh ; b8 0f 01 2505 2510 jmp short 02431h ; eb 03 2506 mov ax, 001 06h ; b8 06 012511 mov ax, 00116h ; b8 16 01 2507 2512 push ax ; 50 2508 2513 movzx ax, byte [bp-014h] ; 0f b6 46 ec 2509 2514 push ax ; 50 2510 push 001 0dh ; 68 0d 012515 push 0011dh ; 68 1d 01 2511 2516 push strict byte 00002h ; 6a 02 2512 2517 call 018e9h ; e8 aa f4 … … 2518 2523 je short 0245bh ; 74 0e 2519 2524 push ax ; 50 2520 push 001 18h ; 68 18 012525 push 00128h ; 68 28 01 2521 2526 push strict byte 00002h ; 6a 02 2522 2527 call 018e9h ; e8 93 f4 … … 2531 2536 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2532 2537 push ax ; 50 2533 push 001 3bh ; 68 3b 012538 push 0014bh ; 68 4b 01 2534 2539 jmp short 02480h ; eb 08 2535 2540 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2536 2541 push ax ; 50 2537 push 001 55h ; 68 55 012542 push 00165h ; 68 65 01 2538 2543 push strict byte 00002h ; 6a 02 2539 2544 call 018e9h ; e8 64 f4 … … 2542 2547 cmp byte [bp-004h], 000h ; 80 7e fc 00 2543 2548 je short 02495h ; 74 05 2544 mov ax, 00 0ffh ; b8 ff 002549 mov ax, 0010fh ; b8 0f 01 2545 2550 jmp short 02498h ; eb 03 2546 mov ax, 001 06h ; b8 06 012551 mov ax, 00116h ; b8 16 01 2547 2552 push ax ; 50 2548 2553 movzx ax, byte [bp-014h] ; 0f b6 46 ec 2549 2554 push ax ; 50 2550 push 001 67h ; 68 67 012555 push 00177h ; 68 77 01 2551 2556 push strict byte 00002h ; 6a 02 2552 2557 call 018e9h ; e8 43 f4 … … 2902 2907 cmp byte [bp+00eh], 002h ; 80 7e 0e 02 2903 2908 jne short 0283ah ; 75 1f 2904 mov bx, 00 cech ; bb ec 0c2909 mov bx, 00d32h ; bb 32 0d 2905 2910 mov cx, ds ; 8c d9 2906 2911 mov ax, strict word 00004h ; b8 04 00 2907 2912 call 018aeh ; e8 88 f0 2908 push 001 81h ; 68 81 012909 push 001 90h ; 68 90 012913 push 00191h ; 68 91 01 2914 push 001a0h ; 68 a0 01 2910 2915 push strict byte 00004h ; 6a 04 2911 2916 call 018e9h ; e8 b8 f0 … … 3184 3189 pop si ; 5e 3185 3190 retn 0000ch ; c2 0c 00 3186 set_diskette_ret_status_: ; 0xf2acd LB 0x15 3191 ata_soft_reset_: ; 0xf2acd LB 0x7d 3192 push bx ; 53 3193 push cx ; 51 3194 push dx ; 52 3195 enter 00002h, 000h ; c8 02 00 00 3196 mov bx, ax ; 89 c3 3197 mov dx, strict word 0000eh ; ba 0e 00 3198 mov ax, strict word 00040h ; b8 40 00 3199 call 0161ch ; e8 3d eb 3200 mov dx, bx ; 89 da 3201 shr dx, 1 ; d1 ea 3202 and bl, 001h ; 80 e3 01 3203 mov byte [bp-002h], bl ; 88 5e fe 3204 xor dh, dh ; 30 f6 3205 imul bx, dx, strict byte 00006h ; 6b da 06 3206 mov es, ax ; 8e c0 3207 add bx, 00122h ; 81 c3 22 01 3208 mov cx, word [es:bx+001c2h] ; 26 8b 8f c2 01 3209 mov bx, word [es:bx+001c4h] ; 26 8b 9f c4 01 3210 lea dx, [bx+006h] ; 8d 57 06 3211 mov AL, strict byte 00ah ; b0 0a 3212 out DX, AL ; ee 3213 cmp byte [bp-002h], 000h ; 80 7e fe 00 3214 je short 02b0fh ; 74 05 3215 mov ax, 000b0h ; b8 b0 00 3216 jmp short 02b12h ; eb 03 3217 mov ax, 000a0h ; b8 a0 00 3218 mov dx, cx ; 89 ca 3219 add dx, strict byte 00006h ; 83 c2 06 3220 out DX, AL ; ee 3221 mov dx, cx ; 89 ca 3222 add dx, strict byte 00007h ; 83 c2 07 3223 mov AL, strict byte 008h ; b0 08 3224 out DX, AL ; ee 3225 mov dx, cx ; 89 ca 3226 add dx, strict byte 00007h ; 83 c2 07 3227 in AL, DX ; ec 3228 db 02ah, 0e4h 3229 ; sub ah, ah ; 2a e4 3230 test AL, strict byte 080h ; a8 80 3231 jne short 02b20h ; 75 f4 3232 and AL, strict byte 0e9h ; 24 e9 3233 cmp AL, strict byte 040h ; 3c 40 3234 je short 02b3dh ; 74 0b 3235 lea dx, [bx+006h] ; 8d 57 06 3236 mov AL, strict byte 008h ; b0 08 3237 out DX, AL ; ee 3238 mov ax, strict word 00001h ; b8 01 00 3239 jmp short 02b45h ; eb 08 3240 lea dx, [bx+006h] ; 8d 57 06 3241 mov AL, strict byte 008h ; b0 08 3242 out DX, AL ; ee 3243 xor ax, ax ; 31 c0 3244 leave ; c9 3245 pop dx ; 5a 3246 pop cx ; 59 3247 pop bx ; 5b 3248 retn ; c3 3249 set_diskette_ret_status_: ; 0xf2b4a LB 0x15 3187 3250 push bx ; 53 3188 3251 push dx ; 52 … … 3192 3255 mov dx, strict word 00041h ; ba 41 00 3193 3256 mov ax, strict word 00040h ; b8 40 00 3194 call 0160eh ; e8 30 eb3257 call 0160eh ; e8 b3 ea 3195 3258 pop bp ; 5d 3196 3259 pop dx ; 5a 3197 3260 pop bx ; 5b 3198 3261 retn ; c3 3199 set_diskette_current_cyl_: ; 0xf2 ae2LB 0x2a3262 set_diskette_current_cyl_: ; 0xf2b5f LB 0x2a 3200 3263 push bx ; 53 3201 3264 push bp ; 55 … … 3203 3266 mov bl, al ; 88 c3 3204 3267 cmp AL, strict byte 001h ; 3c 01 3205 jbe short 02 af7h ; 76 0b3206 push 001 b0h ; 68 b0 013268 jbe short 02b74h ; 76 0b 3269 push 001c0h ; 68 c0 01 3207 3270 push strict byte 00007h ; 6a 07 3208 call 018e9h ; e8 f5ed3271 call 018e9h ; e8 78 ed 3209 3272 add sp, strict byte 00004h ; 83 c4 04 3210 3273 movzx ax, dl ; 0f b6 c2 … … 3213 3276 mov bx, ax ; 89 c3 3214 3277 mov ax, strict word 00040h ; b8 40 00 3215 call 0160eh ; e8 05 eb3278 call 0160eh ; e8 88 ea 3216 3279 pop bp ; 5d 3217 3280 pop bx ; 5b 3218 3281 retn ; c3 3219 floppy_reset_controller_: ; 0xf2b 0cLB 0x283282 floppy_reset_controller_: ; 0xf2b89 LB 0x28 3220 3283 push bx ; 53 3221 3284 push dx ; 52 … … 3239 3302 and AL, strict byte 0c0h ; 24 c0 3240 3303 cmp AL, strict byte 080h ; 3c 80 3241 jne short 02b 24h ; 75 f43304 jne short 02ba1h ; 75 f4 3242 3305 pop bp ; 5d 3243 3306 pop dx ; 5a 3244 3307 pop bx ; 5b 3245 3308 retn ; c3 3246 floppy_prepare_controller_: ; 0xf2b 34LB 0x8c3309 floppy_prepare_controller_: ; 0xf2bb1 LB 0x8c 3247 3310 push bx ; 53 3248 3311 push cx ; 51 … … 3252 3315 mov dx, strict word 0003eh ; ba 3e 00 3253 3316 mov ax, strict word 00040h ; b8 40 00 3254 call 01600h ; e8 baea3317 call 01600h ; e8 3d ea 3255 3318 and AL, strict byte 07fh ; 24 7f 3256 3319 movzx bx, al ; 0f b6 d8 3257 3320 mov dx, strict word 0003eh ; ba 3e 00 3258 3321 mov ax, strict word 00040h ; b8 40 00 3259 call 0160eh ; e8 baea3322 call 0160eh ; e8 3d ea 3260 3323 mov dx, 003f2h ; ba f2 03 3261 3324 in AL, DX ; ec … … 3265 3328 mov byte [bp-002h], al ; 88 46 fe 3266 3329 test cx, cx ; 85 c9 3267 je short 02b 67h ; 74 043330 je short 02be4h ; 74 04 3268 3331 mov AL, strict byte 020h ; b0 20 3269 jmp short 02b 69h ; eb 023332 jmp short 02be6h ; eb 02 3270 3333 mov AL, strict byte 010h ; b0 10 3271 3334 or AL, strict byte 00ch ; 0c 0c … … 3276 3339 mov dx, strict word 00040h ; ba 40 00 3277 3340 mov ax, dx ; 89 d0 3278 call 0160eh ; e8 92ea3341 call 0160eh ; e8 15 ea 3279 3342 mov dx, 0008bh ; ba 8b 00 3280 3343 mov ax, strict word 00040h ; b8 40 00 3281 call 01600h ; e8 7b ea3344 call 01600h ; e8 fe e9 3282 3345 shr al, 006h ; c0 e8 06 3283 3346 mov dx, 003f7h ; ba f7 03 … … 3289 3352 and AL, strict byte 0c0h ; 24 c0 3290 3353 cmp AL, strict byte 080h ; 3c 80 3291 jne short 02 b8ch ; 75 f43354 jne short 02c09h ; 75 f4 3292 3355 cmp byte [bp-002h], 000h ; 80 7e fe 00 3293 jne short 02 bbbh ; 75 1d3356 jne short 02c38h ; 75 1d 3294 3357 sti ; fb 3295 3358 mov dx, strict word 0003eh ; ba 3e 00 3296 3359 mov ax, strict word 00040h ; b8 40 00 3297 call 01600h ; e8 58 ea3360 call 01600h ; e8 db e9 3298 3361 test AL, strict byte 080h ; a8 80 3299 je short 02 b9fh ; 74 f33362 je short 02c1ch ; 74 f3 3300 3363 and AL, strict byte 07fh ; 24 7f 3301 3364 cli ; fa … … 3303 3366 mov dx, strict word 0003eh ; ba 3e 00 3304 3367 mov ax, strict word 00040h ; b8 40 00 3305 call 0160eh ; e8 53 ea3368 call 0160eh ; e8 d6 e9 3306 3369 leave ; c9 3307 3370 pop dx ; 5a … … 3309 3372 pop bx ; 5b 3310 3373 retn ; c3 3311 floppy_media_known_: ; 0xf2 bc0LB 0x403374 floppy_media_known_: ; 0xf2c3d LB 0x40 3312 3375 push bx ; 53 3313 3376 push dx ; 52 … … 3317 3380 mov dx, strict word 0003eh ; ba 3e 00 3318 3381 mov ax, strict word 00040h ; b8 40 00 3319 call 01600h ; e8 30 ea3382 call 01600h ; e8 b3 e9 3320 3383 mov ah, al ; 88 c4 3321 3384 test bx, bx ; 85 db 3322 je short 02 bd8h ; 74 023385 je short 02c55h ; 74 02 3323 3386 shr al, 1 ; d0 e8 3324 3387 and AL, strict byte 001h ; 24 01 3325 jne short 02 be0h ; 75 043388 jne short 02c5dh ; 75 04 3326 3389 xor ah, ah ; 30 e4 3327 jmp short 02 bfch ; eb 1c3390 jmp short 02c79h ; eb 1c 3328 3391 mov dx, 00090h ; ba 90 00 3329 3392 test bx, bx ; 85 db 3330 je short 02 beah ; 74 033393 je short 02c67h ; 74 03 3331 3394 mov dx, 00091h ; ba 91 00 3332 3395 mov ax, strict word 00040h ; b8 40 00 3333 call 01600h ; e8 10 ea3396 call 01600h ; e8 93 e9 3334 3397 xor ah, ah ; 30 e4 3335 3398 sar ax, 004h ; c1 f8 04 3336 3399 and AL, strict byte 001h ; 24 01 3337 je short 02 bdch ; 74 e33400 je short 02c59h ; 74 e3 3338 3401 mov ax, strict word 00001h ; b8 01 00 3339 3402 pop bp ; 5d … … 3341 3404 pop bx ; 5b 3342 3405 retn ; c3 3343 floppy_read_id_: ; 0xf2c 00LB 0x493406 floppy_read_id_: ; 0xf2c7d LB 0x49 3344 3407 push bx ; 53 3345 3408 push dx ; 52 … … 3347 3410 enter 00008h, 000h ; c8 08 00 00 3348 3411 mov bx, ax ; 89 c3 3349 call 02b 34h ; e8 28 ff3412 call 02bb1h ; e8 28 ff 3350 3413 mov AL, strict byte 04ah ; b0 4a 3351 3414 mov dx, 003f5h ; ba f5 03 … … 3356 3419 mov dx, strict word 0003eh ; ba 3e 00 3357 3420 mov ax, strict word 00040h ; b8 40 00 3358 call 01600h ; e8 e1e93421 call 01600h ; e8 64 e9 3359 3422 and AL, strict byte 080h ; 24 80 3360 3423 test al, al ; 84 c0 3361 je short 02c 16h ; 74 f13424 je short 02c93h ; 74 f1 3362 3425 cli ; fa 3363 3426 xor si, si ; 31 f6 3364 jmp short 02c 2fh ; eb 053427 jmp short 02cach ; eb 05 3365 3428 cmp si, strict byte 00007h ; 83 fe 07 3366 jnl short 02c 3bh ; 7d 0c3429 jnl short 02cb8h ; 7d 0c 3367 3430 mov dx, 003f5h ; ba f5 03 3368 3431 in AL, DX ; ec … … 3371 3434 mov byte [bp+si-008h], al ; 88 42 f8 3372 3435 inc si ; 46 3373 jmp short 02c 2ah ; eb ef3436 jmp short 02ca7h ; eb ef 3374 3437 test byte [bp-008h], 0c0h ; f6 46 f8 c0 3375 3438 db 00fh, 094h, 0c0h … … 3381 3444 pop bx ; 5b 3382 3445 retn ; c3 3383 floppy_drive_recal_: ; 0xf2c 49LB 0x5e3446 floppy_drive_recal_: ; 0xf2cc6 LB 0x5e 3384 3447 push bx ; 53 3385 3448 push cx ; 51 … … 3388 3451 mov bp, sp ; 89 e5 3389 3452 mov bx, ax ; 89 c3 3390 call 02b 34h ; e8 e0 fe3453 call 02bb1h ; e8 e0 fe 3391 3454 mov AL, strict byte 007h ; b0 07 3392 3455 mov dx, 003f5h ; ba f5 03 … … 3397 3460 mov dx, strict word 0003eh ; ba 3e 00 3398 3461 mov ax, strict word 00040h ; b8 40 00 3399 call 01600h ; e8 99e93462 call 01600h ; e8 1c e9 3400 3463 and AL, strict byte 080h ; 24 80 3401 3464 test al, al ; 84 c0 3402 je short 02c 5eh ; 74 f13465 je short 02cdbh ; 74 f1 3403 3466 cli ; fa 3404 3467 mov dx, strict word 0003eh ; ba 3e 00 3405 3468 mov ax, strict word 00040h ; b8 40 00 3406 call 01600h ; e8 89e93469 call 01600h ; e8 0c e9 3407 3470 and AL, strict byte 07fh ; 24 7f 3408 3471 test bx, bx ; 85 db 3409 je short 02 c84h ; 74 073472 je short 02d01h ; 74 07 3410 3473 or AL, strict byte 002h ; 0c 02 3411 3474 mov cx, 00095h ; b9 95 00 3412 jmp short 02 c89h ; eb 053475 jmp short 02d06h ; eb 05 3413 3476 or AL, strict byte 001h ; 0c 01 3414 3477 mov cx, 00094h ; b9 94 00 … … 3416 3479 mov dx, strict word 0003eh ; ba 3e 00 3417 3480 mov ax, strict word 00040h ; b8 40 00 3418 call 0160eh ; e8 79 e93481 call 0160eh ; e8 fc e8 3419 3482 xor bx, bx ; 31 db 3420 3483 mov dx, cx ; 89 ca 3421 3484 mov ax, strict word 00040h ; b8 40 00 3422 call 0160eh ; e8 6f e93485 call 0160eh ; e8 f2 e8 3423 3486 mov ax, strict word 00001h ; b8 01 00 3424 3487 pop bp ; 5d … … 3427 3490 pop bx ; 5b 3428 3491 retn ; c3 3429 floppy_media_sense_: ; 0xf2 ca7LB 0xfa3492 floppy_media_sense_: ; 0xf2d24 LB 0xfa 3430 3493 push bx ; 53 3431 3494 push cx ; 51 … … 3436 3499 mov bp, sp ; 89 e5 3437 3500 mov di, ax ; 89 c7 3438 call 02c 49h ; e8 95 ff3501 call 02cc6h ; e8 95 ff 3439 3502 test ax, ax ; 85 c0 3440 jne short 02 cbdh ; 75 053503 jne short 02d3ah ; 75 05 3441 3504 xor cx, cx ; 31 c9 3442 jmp near 02 d98h ; e9 db 003505 jmp near 02e15h ; e9 db 00 3443 3506 mov ax, strict word 00010h ; b8 10 00 3444 call 0165ch ; e8 99e93507 call 0165ch ; e8 1c e9 3445 3508 test di, di ; 85 ff 3446 jne short 02 cceh ; 75 073509 jne short 02d4bh ; 75 07 3447 3510 mov cl, al ; 88 c1 3448 3511 shr cl, 004h ; c0 e9 04 3449 jmp short 02 cd3h ; eb 053512 jmp short 02d50h ; eb 05 3450 3513 mov cl, al ; 88 c1 3451 3514 and cl, 00fh ; 80 e1 0f 3452 3515 cmp cl, 001h ; 80 f9 01 3453 jne short 02 ce1h ; 75 093516 jne short 02d5eh ; 75 09 3454 3517 xor cl, cl ; 30 c9 3455 3518 mov CH, strict byte 015h ; b5 15 3456 3519 mov si, strict word 00001h ; be 01 00 3457 jmp short 02d 2ch ; eb 4b3520 jmp short 02da9h ; eb 4b 3458 3521 cmp cl, 002h ; 80 f9 02 3459 jne short 02 cech ; 75 063522 jne short 02d69h ; 75 06 3460 3523 xor cl, cl ; 30 c9 3461 3524 mov CH, strict byte 035h ; b5 35 3462 jmp short 02 cdch ; eb f03525 jmp short 02d59h ; eb f0 3463 3526 cmp cl, 003h ; 80 f9 03 3464 jne short 02 cf7h ; 75 063527 jne short 02d74h ; 75 06 3465 3528 xor cl, cl ; 30 c9 3466 3529 mov CH, strict byte 017h ; b5 17 3467 jmp short 02 cdch ; eb e53530 jmp short 02d59h ; eb e5 3468 3531 cmp cl, 004h ; 80 f9 04 3469 jne short 02d 02h ; 75 063532 jne short 02d7fh ; 75 06 3470 3533 xor cl, cl ; 30 c9 3471 3534 mov CH, strict byte 017h ; b5 17 3472 jmp short 02 cdch ; eb da3535 jmp short 02d59h ; eb da 3473 3536 cmp cl, 005h ; 80 f9 05 3474 jne short 02d 0dh ; 75 063537 jne short 02d8ah ; 75 06 3475 3538 mov CL, strict byte 0cch ; b1 cc 3476 3539 mov CH, strict byte 0d7h ; b5 d7 3477 jmp short 02 cdch ; eb cf3540 jmp short 02d59h ; eb cf 3478 3541 cmp cl, 006h ; 80 f9 06 3479 jne short 02d 18h ; 75 063542 jne short 02d95h ; 75 06 3480 3543 xor cl, cl ; 30 c9 3481 3544 mov CH, strict byte 027h ; b5 27 3482 jmp short 02 cdch ; eb c43545 jmp short 02d59h ; eb c4 3483 3546 cmp cl, 007h ; 80 f9 07 3484 jne short 02d 1fh ; 75 023485 jmp short 02d 12h ; eb f33547 jne short 02d9ch ; 75 02 3548 jmp short 02d8fh ; eb f3 3486 3549 cmp cl, 008h ; 80 f9 08 3487 jne short 02d 26h ; 75 023488 jmp short 02d 12h ; eb ec3550 jne short 02da3h ; 75 02 3551 jmp short 02d8fh ; eb ec 3489 3552 xor cl, cl ; 30 c9 3490 3553 xor ch, ch ; 30 ed … … 3493 3556 mov dx, 0008bh ; ba 8b 00 3494 3557 mov ax, strict word 00040h ; b8 40 00 3495 call 0160eh ; e8 d6e83558 call 0160eh ; e8 59 e8 3496 3559 mov ax, di ; 89 f8 3497 call 02c 00h ; e8 c3 fe3560 call 02c7dh ; e8 c3 fe 3498 3561 test ax, ax ; 85 c0 3499 jne short 02d 73h ; 75 323562 jne short 02df0h ; 75 32 3500 3563 mov al, cl ; 88 c8 3501 3564 and AL, strict byte 0c0h ; 24 c0 3502 3565 cmp AL, strict byte 080h ; 3c 80 3503 je short 02d 73h ; 74 2a3566 je short 02df0h ; 74 2a 3504 3567 mov al, cl ; 88 c8 3505 3568 and AL, strict byte 0c0h ; 24 c0 3506 3569 cmp AL, strict byte 0c0h ; 3c c0 3507 je short 02d 60h ; 74 0f3570 je short 02dddh ; 74 0f 3508 3571 mov ah, cl ; 88 cc 3509 3572 and ah, 03fh ; 80 e4 3f 3510 3573 cmp AL, strict byte 040h ; 3c 40 3511 je short 02d 6ch ; 74 123574 je short 02de9h ; 74 12 3512 3575 test al, al ; 84 c0 3513 je short 02d 65h ; 74 073514 jmp short 02d 2ch ; eb cc3576 je short 02de2h ; 74 07 3577 jmp short 02da9h ; eb cc 3515 3578 and cl, 03fh ; 80 e1 3f 3516 jmp short 02d 2ch ; eb c73579 jmp short 02da9h ; eb c7 3517 3580 mov cl, ah ; 88 e1 3518 3581 or cl, 040h ; 80 c9 40 3519 jmp short 02d 2ch ; eb c03582 jmp short 02da9h ; eb c0 3520 3583 mov cl, ah ; 88 e1 3521 3584 or cl, 080h ; 80 c9 80 3522 jmp short 02d 2ch ; eb b93585 jmp short 02da9h ; eb b9 3523 3586 test di, di ; 85 ff 3524 3587 db 00fh, 095h, 0c0h … … 3529 3592 mov dx, 0008bh ; ba 8b 00 3530 3593 mov ax, strict word 00040h ; b8 40 00 3531 call 0160eh ; e8 83e83594 call 0160eh ; e8 06 e8 3532 3595 movzx bx, ch ; 0f b6 dd 3533 3596 mov dx, di ; 89 fa 3534 3597 mov ax, strict word 00040h ; b8 40 00 3535 call 0160eh ; e8 78 e83598 call 0160eh ; e8 fb e7 3536 3599 mov cx, si ; 89 f1 3537 3600 mov ax, cx ; 89 c8 … … 3543 3606 pop bx ; 5b 3544 3607 retn ; c3 3545 floppy_drive_exists_: ; 0xf2 da1LB 0x333608 floppy_drive_exists_: ; 0xf2e1e LB 0x33 3546 3609 push dx ; 52 3547 3610 push bp ; 55 … … 3549 3612 mov dx, ax ; 89 c2 3550 3613 mov ax, strict word 00010h ; b8 10 00 3551 call 0165ch ; e8 afe83614 call 0165ch ; e8 32 e8 3552 3615 test dx, dx ; 85 d2 3553 jne short 02 db6h ; 75 053616 jne short 02e33h ; 75 05 3554 3617 shr al, 004h ; c0 e8 04 3555 jmp short 02 db8h ; eb 023618 jmp short 02e35h ; eb 02 3556 3619 and AL, strict byte 00fh ; 24 0f 3557 3620 test al, al ; 84 c0 … … 3562 3625 pop dx ; 5a 3563 3626 retn ; c3 3564 mov byte [si], dh ; 88 34 3565 xchg bx, ax ; 93 3566 xor AL, strict byte 09dh ; 34 9d 3567 xor AL, strict byte 0a4h ; 34 a4 3568 xor AL, strict byte 0abh ; 34 ab 3569 xor AL, strict byte 0b2h ; 34 b2 3570 xor AL, strict byte 0b9h ; 34 b9 3571 xor AL, strict byte 0c3h ; 34 c3 3572 xor AL, strict byte 0cah ; 34 ca 3573 db 034h 3574 _int13_diskette_function: ; 0xf2dd4 LB 0x799 3627 sti ; fb 3628 xor AL, strict byte 006h ; 34 06 3629 xor ax, 03510h ; 35 10 35 3630 pop SS ; 17 3631 xor ax, 0351eh ; 35 1e 35 3632 and ax, 02c35h ; 25 35 2c 3633 xor ax, 03536h ; 35 36 35 3634 db 03dh 3635 db 035h 3636 _int13_diskette_function: ; 0xf2e51 LB 0x78f 3575 3637 push si ; 56 3576 3638 push di ; 57 … … 3583 3645 mov ah, byte [bp+012h] ; 8a 66 12 3584 3646 cmp bl, 008h ; 80 fb 08 3585 jc short 02e 2bh ; 72 3a3647 jc short 02ea8h ; 72 3a 3586 3648 mov dx, word [bp+020h] ; 8b 56 20 3587 3649 or dl, 001h ; 80 ca 01 3588 3650 cmp bl, 008h ; 80 fb 08 3589 jbe near 034 09h ; 0f 86 0b063651 jbe near 0347ch ; 0f 86 01 06 3590 3652 cmp bl, 016h ; 80 fb 16 3591 jc short 02e 21h ; 72 1e3653 jc short 02e9eh ; 72 1e 3592 3654 or si, 00100h ; 81 ce 00 01 3593 3655 mov cx, si ; 89 f1 3594 3656 cmp bl, 016h ; 80 fb 16 3595 jbe near 035 28h ; 0f 86 18073657 jbe near 0359bh ; 0f 86 0e 07 3596 3658 cmp bl, 018h ; 80 fb 18 3597 je near 035 2dh ; 0f 84 16073659 je near 035a0h ; 0f 84 0c 07 3598 3660 cmp bl, 017h ; 80 fb 17 3599 je near 035 2dh ; 0f 84 0f073600 jmp near 035 4ah ; e9 29073661 je near 035a0h ; 0f 84 05 07 3662 jmp near 035bdh ; e9 1f 07 3601 3663 cmp bl, 015h ; 80 fb 15 3602 je near 03 4ech ; 0f 84 c4063603 jmp near 035 4ah ; e9 1f073664 je near 0355fh ; 0f 84 ba 06 3665 jmp near 035bdh ; e9 15 07 3604 3666 cmp bl, 001h ; 80 fb 01 3605 jc short 02e 45h ; 72 153606 jbe near 02 ebbh ; 0f 86 87 003667 jc short 02ec2h ; 72 15 3668 jbe near 02f38h ; 0f 86 87 00 3607 3669 cmp bl, 005h ; 80 fb 05 3608 je near 032 62h ; 0f 84 27043670 je near 032d5h ; 0f 84 1d 04 3609 3671 cmp bl, 004h ; 80 fb 04 3610 jbe near 02 ed9h ; 0f 86 97 003611 jmp near 035 4ah ; e9 05 073672 jbe near 02f56h ; 0f 86 97 00 3673 jmp near 035bdh ; e9 fb 06 3612 3674 test bl, bl ; 84 db 3613 jne near 035 4ah ; 0f 85 ff063675 jne near 035bdh ; 0f 85 f5 06 3614 3676 mov al, byte [bp+012h] ; 8a 46 12 3615 3677 mov byte [bp-00ah], al ; 88 46 f6 3616 3678 cmp AL, strict byte 001h ; 3c 01 3617 jbe short 02e 69h ; 76 143679 jbe short 02ee6h ; 76 14 3618 3680 mov ax, word [bp+01ah] ; 8b 46 1a 3619 3681 xor ah, ah ; 30 e4 … … 3621 3683 mov word [bp+01ah], ax ; 89 46 1a 3622 3684 mov ax, strict word 00001h ; b8 01 00 3623 call 02 acdh ; e8 67 fc3624 jmp near 032 34h ; e9 cb 033685 call 02b4ah ; e8 67 fc 3686 jmp near 032b1h ; e9 cb 03 3625 3687 mov ax, strict word 00010h ; b8 10 00 3626 call 0165ch ; e8 ede73688 call 0165ch ; e8 70 e7 3627 3689 cmp byte [bp-00ah], 000h ; 80 7e f6 00 3628 jne short 02e 7ch ; 75 073690 jne short 02ef9h ; 75 07 3629 3691 mov bl, al ; 88 c3 3630 3692 shr bl, 004h ; c0 eb 04 3631 jmp short 02e 81h ; eb 053693 jmp short 02efeh ; eb 05 3632 3694 mov bl, al ; 88 c3 3633 3695 and bl, 00fh ; 80 e3 0f 3634 3696 test bl, bl ; 84 db 3635 jne short 02 e95h ; 75 103697 jne short 02f12h ; 75 10 3636 3698 mov ax, word [bp+01ah] ; 8b 46 1a 3637 3699 xor ah, ah ; 30 e4 … … 3639 3701 mov word [bp+01ah], ax ; 89 46 1a 3640 3702 mov ax, 00080h ; b8 80 00 3641 jmp short 02e 63h ; eb ce3703 jmp short 02ee0h ; eb ce 3642 3704 xor bx, bx ; 31 db 3643 3705 mov dx, strict word 0003eh ; ba 3e 00 3644 3706 mov ax, strict word 00040h ; b8 40 00 3645 call 0160eh ; e8 6e e73707 call 0160eh ; e8 f1 e6 3646 3708 xor al, al ; 30 c0 3647 3709 mov byte [bp+01bh], al ; 88 46 1b 3648 3710 xor ah, ah ; 30 e4 3649 call 02 acdh ; e8 23 fc3711 call 02b4ah ; e8 23 fc 3650 3712 and byte [bp+020h], 0feh ; 80 66 20 fe 3651 3713 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3652 3714 xor dx, dx ; 31 d2 3653 call 02 ae2h ; e8 2b fc3715 call 02b5fh ; e8 2b fc 3654 3716 leave ; c9 3655 3717 pop di ; 5f … … 3659 3721 mov dx, 00441h ; ba 41 04 3660 3722 xor ax, ax ; 31 c0 3661 call 01600h ; e8 39 e73723 call 01600h ; e8 bc e6 3662 3724 movzx dx, al ; 0f b6 d0 3663 3725 sal dx, 008h ; c1 e2 08 … … 3665 3727 mov word [bp+01ah], si ; 89 76 1a 3666 3728 test al, al ; 84 c0 3667 je short 02 eb7h ; 74 e13668 jmp near 032 34h ; e9 5b 033729 je short 02f34h ; 74 e1 3730 jmp near 032b1h ; e9 5b 03 3669 3731 mov al, byte [bp+01ah] ; 8a 46 1a 3670 3732 mov byte [bp-008h], al ; 88 46 f8 … … 3679 3741 mov byte [bp-00ah], ah ; 88 66 f6 3680 3742 cmp ah, 001h ; 80 fc 01 3681 jnbe short 02f 0fh ; 77 103743 jnbe short 02f8ch ; 77 10 3682 3744 cmp dl, 001h ; 80 fa 01 3683 jnbe short 02f 0fh ; 77 0b3745 jnbe short 02f8ch ; 77 0b 3684 3746 mov al, byte [bp-008h] ; 8a 46 f8 3685 3747 test al, al ; 84 c0 3686 je short 02f 0fh ; 74 043748 je short 02f8ch ; 74 04 3687 3749 cmp AL, strict byte 048h ; 3c 48 3688 jbe short 02f 38h ; 76 293689 mov bx, 00 cech ; bb ec 0c3750 jbe short 02fb5h ; 76 29 3751 mov bx, 00d32h ; bb 32 0d 3690 3752 mov cx, ds ; 8c d9 3691 3753 mov ax, strict word 00004h ; b8 04 00 3692 call 018aeh ; e8 94e93693 push 001 d5h ; 68 d5 013694 push 001 edh ; 68 ed 013754 call 018aeh ; e8 17 e9 3755 push 001e5h ; 68 e5 01 3756 push 001fdh ; 68 fd 01 3695 3757 push strict byte 00004h ; 6a 04 3696 call 018e9h ; e8 c4e93758 call 018e9h ; e8 47 e9 3697 3759 add sp, strict byte 00006h ; 83 c4 06 3698 3760 mov ax, word [bp+01ah] ; 8b 46 1a … … 3701 3763 mov word [bp+01ah], ax ; 89 46 1a 3702 3764 mov ax, strict word 00001h ; b8 01 00 3703 jmp short 0 2fa9h ; eb 713765 jmp short 03026h ; eb 71 3704 3766 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3705 call 02 da1h ; e8 62 fe3767 call 02e1eh ; e8 62 fe 3706 3768 test ax, ax ; 85 c0 3707 je near 030 42h ; 0f 84 fd 003769 je near 030bfh ; 0f 84 fd 00 3708 3770 movzx dx, byte [bp-00ah] ; 0f b6 56 f6 3709 3771 mov ax, dx ; 89 d0 3710 call 02 bc0h ; e8 72 fc3772 call 02c3dh ; e8 72 fc 3711 3773 test ax, ax ; 85 c0 3712 jne short 02f 6bh ; 75 193774 jne short 02fe8h ; 75 19 3713 3775 mov ax, dx ; 89 d0 3714 call 02 ca7h ; e8 50 fd3776 call 02d24h ; e8 50 fd 3715 3777 test ax, ax ; 85 c0 3716 jne short 02f 6bh ; 75 103778 jne short 02fe8h ; 75 10 3717 3779 mov ax, word [bp+01ah] ; 8b 46 1a 3718 3780 xor ah, ah ; 30 e4 … … 3720 3782 mov word [bp+01ah], ax ; 89 46 1a 3721 3783 mov ax, strict word 0000ch ; b8 0c 00 3722 jmp short 0 2fa9h ; eb 3e3784 jmp short 03026h ; eb 3e 3723 3785 cmp ch, 002h ; 80 fd 02 3724 jne near 031 00h ; 0f 85 8e 013786 jne near 0317dh ; 0f 85 8e 01 3725 3787 mov dx, word [bp+00ah] ; 8b 56 0a 3726 3788 shr dx, 00ch ; c1 ea 0c … … 3731 3793 add bx, cx ; 01 cb 3732 3794 cmp bx, cx ; 39 cb 3733 jnc short 0 2f8bh ; 73 023795 jnc short 03008h ; 73 02 3734 3796 db 0feh, 0c4h 3735 3797 ; inc ah ; fe c4 … … 3740 3802 add dx, cx ; 01 ca 3741 3803 cmp dx, bx ; 39 da 3742 jnc short 0 2fb3h ; 73 183804 jnc short 03030h ; 73 18 3743 3805 mov ax, word [bp+01ah] ; 8b 46 1a 3744 3806 xor ah, ah ; 30 e4 … … 3746 3808 mov word [bp+01ah], ax ; 89 46 1a 3747 3809 mov ax, strict word 00009h ; b8 09 00 3748 call 02 acdh ; e8 21 fb3810 call 02b4ah ; e8 21 fb 3749 3811 mov byte [bp+01ah], 000h ; c6 46 1a 00 3750 jmp near 032 34h ; e9 81 023812 jmp near 032b1h ; e9 81 02 3751 3813 mov AL, strict byte 006h ; b0 06 3752 3814 mov dx, strict word 0000ah ; ba 0a 00 … … 3781 3843 out DX, AL ; ee 3782 3844 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3783 call 02b 34h ; e8 3d fb3845 call 02bb1h ; e8 3d fb 3784 3846 mov AL, strict byte 0e6h ; b0 e6 3785 3847 mov dx, 003f5h ; ba f5 03 … … 3812 3874 mov dx, strict word 00040h ; ba 40 00 3813 3875 mov ax, dx ; 89 d0 3814 call 01600h ; e8 c5e53876 call 01600h ; e8 48 e5 3815 3877 test al, al ; 84 c0 3816 jne short 030 53h ; 75 143817 call 02b 0ch ; e8 ca fa3878 jne short 030d0h ; 75 14 3879 call 02b89h ; e8 ca fa 3818 3880 mov ax, word [bp+01ah] ; 8b 46 1a 3819 3881 xor ah, ah ; 30 e4 … … 3821 3883 mov word [bp+01ah], ax ; 89 46 1a 3822 3884 mov ax, 00080h ; b8 80 00 3823 jmp near 0 2fa9h ; e9 56 ff3885 jmp near 03026h ; e9 56 ff 3824 3886 mov dx, strict word 0003eh ; ba 3e 00 3825 3887 mov ax, strict word 00040h ; b8 40 00 3826 call 01600h ; e8 a4e53888 call 01600h ; e8 27 e5 3827 3889 and AL, strict byte 080h ; 24 80 3828 3890 test al, al ; 84 c0 3829 je short 030 33h ; 74 d13891 je short 030b0h ; 74 d1 3830 3892 cli ; fa 3831 3893 mov dx, strict word 0003eh ; ba 3e 00 3832 3894 mov ax, strict word 00040h ; b8 40 00 3833 call 01600h ; e8 94e53895 call 01600h ; e8 17 e5 3834 3896 and AL, strict byte 07fh ; 24 7f 3835 3897 movzx bx, al ; 0f b6 d8 3836 3898 mov dx, strict word 0003eh ; ba 3e 00 3837 3899 mov ax, strict word 00040h ; b8 40 00 3838 call 0160eh ; e8 94e53900 call 0160eh ; e8 17 e5 3839 3901 mov dx, 003f4h ; ba f4 03 3840 3902 in AL, DX ; ec … … 3843 3905 and AL, strict byte 0c0h ; 24 c0 3844 3906 cmp AL, strict byte 0c0h ; 3c c0 3845 je short 03 094h ; 74 0e3846 push 001 d5h ; 68 d5 013847 push 002 08h ; 68 08 023907 je short 03111h ; 74 0e 3908 push 001e5h ; 68 e5 01 3909 push 00218h ; 68 18 02 3848 3910 push strict byte 00007h ; 6a 07 3849 call 018e9h ; e8 58 e83911 call 018e9h ; e8 db e7 3850 3912 add sp, strict byte 00006h ; 83 c4 06 3851 3913 xor si, si ; 31 f6 3852 jmp short 03 09dh ; eb 053914 jmp short 0311ah ; eb 05 3853 3915 cmp si, strict byte 00007h ; 83 fe 07 3854 jnl short 03 0b5h ; 7d 183916 jnl short 03132h ; 7d 18 3855 3917 mov dx, 003f5h ; ba f5 03 3856 3918 in AL, DX ; ec … … 3861 3923 lea dx, [si+042h] ; 8d 54 42 3862 3924 mov ax, strict word 00040h ; b8 40 00 3863 call 0160eh ; e8 5c e53925 call 0160eh ; e8 df e4 3864 3926 inc si ; 46 3865 jmp short 03 098h ; eb e33927 jmp short 03115h ; eb e3 3866 3928 test byte [bp-012h], 0c0h ; f6 46 ee c0 3867 je short 03 0cch ; 74 113929 je short 03149h ; 74 11 3868 3930 mov ax, word [bp+01ah] ; 8b 46 1a 3869 3931 xor ah, ah ; 30 e4 … … 3871 3933 mov word [bp+01ah], ax ; 89 46 1a 3872 3934 mov ax, strict word 00020h ; b8 20 00 3873 jmp near 0 2fa9h ; e9 dd fe3935 jmp near 03026h ; e9 dd fe 3874 3936 movzx ax, byte [bp-008h] ; 0f b6 46 f8 3875 3937 sal ax, 009h ; c1 e0 09 … … 3889 3951 movzx dx, byte [bp-004h] ; 0f b6 56 fc 3890 3952 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3891 call 02 ae2h ; e8 ed f93953 call 02b5fh ; e8 ed f9 3892 3954 mov byte [bp+01bh], 000h ; c6 46 1b 00 3893 3955 and byte [bp+020h], 0feh ; 80 66 20 fe 3894 jmp near 02 eb7h ; e9 b7 fd3956 jmp near 02f34h ; e9 b7 fd 3895 3957 cmp ch, 003h ; 80 fd 03 3896 jne near 032 4ch ; 0f 85 45013958 jne near 032bfh ; 0f 85 3b 01 3897 3959 mov dx, word [bp+00ah] ; 8b 56 0a 3898 3960 shr dx, 00ch ; c1 ea 0c … … 3903 3965 add bx, cx ; 01 cb 3904 3966 cmp bx, cx ; 39 cb 3905 jnc short 031 20h ; 73 023967 jnc short 0319dh ; 73 02 3906 3968 db 0feh, 0c4h 3907 3969 ; inc ah ; fe c4 … … 3912 3974 add dx, cx ; 01 ca 3913 3975 cmp dx, bx ; 39 da 3914 jc near 0 2f9bh ; 0f 82 69 fe3976 jc near 03018h ; 0f 82 69 fe 3915 3977 mov AL, strict byte 006h ; b0 06 3916 3978 mov dx, strict word 0000ah ; ba 0a 00 … … 3944 4006 out DX, AL ; ee 3945 4007 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3946 call 02b 34h ; e8 bf f94008 call 02bb1h ; e8 bf f9 3947 4009 mov AL, strict byte 0c5h ; b0 c5 3948 4010 mov dx, 003f5h ; ba f5 03 … … 3975 4037 mov dx, strict word 00040h ; ba 40 00 3976 4038 mov ax, dx ; 89 d0 3977 call 01600h ; e8 47 e44039 call 01600h ; e8 ca e3 3978 4040 test al, al ; 84 c0 3979 je near 030 3fh ; 0f 84 80 fe4041 je near 030bch ; 0f 84 80 fe 3980 4042 mov dx, strict word 0003eh ; ba 3e 00 3981 4043 mov ax, strict word 00040h ; b8 40 00 3982 call 01600h ; e8 38 e44044 call 01600h ; e8 bb e3 3983 4045 and AL, strict byte 080h ; 24 80 3984 4046 test al, al ; 84 c0 3985 je short 03 1b1h ; 74 e34047 je short 0322eh ; 74 e3 3986 4048 cli ; fa 3987 4049 mov dx, strict word 0003eh ; ba 3e 00 3988 4050 mov ax, strict word 00040h ; b8 40 00 3989 call 01600h ; e8 28 e44051 call 01600h ; e8 ab e3 3990 4052 and AL, strict byte 07fh ; 24 7f 3991 4053 movzx bx, al ; 0f b6 d8 3992 4054 mov dx, strict word 0003eh ; ba 3e 00 3993 4055 mov ax, strict word 00040h ; b8 40 00 3994 call 0160eh ; e8 28 e44056 call 0160eh ; e8 ab e3 3995 4057 mov dx, 003f4h ; ba f4 03 3996 4058 in AL, DX ; ec … … 3999 4061 and AL, strict byte 0c0h ; 24 c0 4000 4062 cmp AL, strict byte 0c0h ; 3c c0 4001 je short 032 00h ; 74 0e4002 push 001 d5h ; 68 d5 014003 push 002 08h ; 68 08 024063 je short 0327dh ; 74 0e 4064 push 001e5h ; 68 e5 01 4065 push 00218h ; 68 18 02 4004 4066 push strict byte 00007h ; 6a 07 4005 call 018e9h ; e8 ece64067 call 018e9h ; e8 6f e6 4006 4068 add sp, strict byte 00006h ; 83 c4 06 4007 4069 xor si, si ; 31 f6 4008 jmp short 032 09h ; eb 054070 jmp short 03286h ; eb 05 4009 4071 cmp si, strict byte 00007h ; 83 fe 07 4010 jnl short 032 21h ; 7d 184072 jnl short 0329eh ; 7d 18 4011 4073 mov dx, 003f5h ; ba f5 03 4012 4074 in AL, DX ; ec … … 4017 4079 lea dx, [si+042h] ; 8d 54 42 4018 4080 mov ax, strict word 00040h ; b8 40 00 4019 call 0160eh ; e8 f0e34081 call 0160eh ; e8 73 e3 4020 4082 inc si ; 46 4021 jmp short 032 04h ; eb e34083 jmp short 03281h ; eb e3 4022 4084 test byte [bp-012h], 0c0h ; f6 46 ee c0 4023 je near 03 0eah ; 0f 84 c1 fe4085 je near 03167h ; 0f 84 c1 fe 4024 4086 test byte [bp-011h], 002h ; f6 46 ef 02 4025 je short 032 3bh ; 74 0c4087 je short 032b8h ; 74 0c 4026 4088 mov word [bp+01ah], 00300h ; c7 46 1a 00 03 4027 4089 or byte [bp+020h], 001h ; 80 4e 20 01 4028 jmp near 02eb7h ; e9 7c fc 4029 push 001d5h ; 68 d5 01 4030 push 0021ch ; 68 1c 02 4031 push strict byte 00007h ; 6a 07 4032 call 018e9h ; e8 a3 e6 4033 add sp, strict byte 00006h ; 83 c4 06 4034 jmp near 030eah ; e9 9e fe 4090 jmp near 02f34h ; e9 7c fc 4091 mov word [bp+01ah], 00100h ; c7 46 1a 00 01 4092 jmp short 032b1h ; eb f2 4035 4093 movzx dx, byte [bp-004h] ; 0f b6 56 fc 4036 4094 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 4037 call 02 ae2h ; e8 8bf84095 call 02b5fh ; e8 95 f8 4038 4096 and byte [bp+020h], 0feh ; 80 66 20 fe 4039 4097 mov byte [bp+01bh], 000h ; c6 46 1b 00 4040 jmp near 02 eb7h ; e9 55fc4098 jmp near 02f34h ; e9 5f fc 4041 4099 mov al, byte [bp+01ah] ; 8a 46 1a 4042 4100 mov byte [bp-008h], al ; 88 46 f8 … … 4049 4107 mov byte [bp-00ah], bl ; 88 5e f6 4050 4108 cmp bl, 001h ; 80 fb 01 4051 jnbe short 03 296h ; 77 144109 jnbe short 03309h ; 77 14 4052 4110 cmp AL, strict byte 001h ; 3c 01 4053 jnbe short 03 296h ; 77 104111 jnbe short 03309h ; 77 10 4054 4112 cmp dl, 04fh ; 80 fa 4f 4055 jnbe short 03 296h ; 77 0b4113 jnbe short 03309h ; 77 0b 4056 4114 mov al, byte [bp-008h] ; 8a 46 f8 4057 4115 test al, al ; 84 c0 4058 je short 03 296h ; 74 044116 je short 03309h ; 74 04 4059 4117 cmp AL, strict byte 012h ; 3c 12 4060 jbe short 03 2abh ; 76 154118 jbe short 0331eh ; 76 15 4061 4119 mov ax, word [bp+01ah] ; 8b 46 1a 4062 4120 xor ah, ah ; 30 e4 … … 4064 4122 mov word [bp+01ah], ax ; 89 46 1a 4065 4123 mov ax, strict word 00001h ; b8 01 00 4066 call 02 acdh ; e8 26f84124 call 02b4ah ; e8 30 f8 4067 4125 or byte [bp+020h], 001h ; 80 4e 20 01 4068 4126 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 4069 call 02 da1h ; e8 effa4127 call 02e1eh ; e8 f9 fa 4070 4128 test ax, ax ; 85 c0 4071 je near 02 e85h ; 0f 84 cdfb4129 je near 02f02h ; 0f 84 d7 fb 4072 4130 movzx dx, byte [bp-00ah] ; 0f b6 56 f6 4073 4131 mov ax, dx ; 89 d0 4074 call 02 bc0h ; e8 ff f84132 call 02c3dh ; e8 09 f9 4075 4133 test ax, ax ; 85 c0 4076 jne short 03 2d0h ; 75 0b4134 jne short 03343h ; 75 0b 4077 4135 mov ax, dx ; 89 d0 4078 call 02 ca7h ; e8 ddf94136 call 02d24h ; e8 e7 f9 4079 4137 test ax, ax ; 85 c0 4080 je near 02f 5bh ; 0f 84 8bfc4138 je near 02fd8h ; 0f 84 95 fc 4081 4139 mov dx, word [bp+00ah] ; 8b 56 0a 4082 4140 shr dx, 00ch ; c1 ea 0c … … 4087 4145 add bx, cx ; 01 cb 4088 4146 cmp bx, cx ; 39 cb 4089 jnc short 03 2e9h ; 73 024147 jnc short 0335ch ; 73 02 4090 4148 db 0feh, 0c4h 4091 4149 ; inc ah ; fe c4 … … 4096 4154 add dx, cx ; 01 ca 4097 4155 cmp dx, bx ; 39 da 4098 jc near 0 2f9bh ; 0f 82 a0fc4156 jc near 03018h ; 0f 82 aa fc 4099 4157 mov AL, strict byte 006h ; b0 06 4100 4158 mov dx, strict word 0000ah ; ba 0a 00 … … 4128 4186 out DX, AL ; ee 4129 4187 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 4130 call 02b 34h ; e8 f6 f74188 call 02bb1h ; e8 00 f8 4131 4189 mov AL, strict byte 04dh ; b0 4d 4132 4190 mov dx, 003f5h ; ba f5 03 … … 4149 4207 mov dx, strict word 00040h ; ba 40 00 4150 4208 mov ax, dx ; 89 d0 4151 call 01600h ; e8 95e24209 call 01600h ; e8 22 e2 4152 4210 test al, al ; 84 c0 4153 jne short 033 75h ; 75 064154 call 02b 0ch ; e8 9af74155 jmp near 02 e85h ; e9 10fb4211 jne short 033e8h ; 75 06 4212 call 02b89h ; e8 a4 f7 4213 jmp near 02f02h ; e9 1a fb 4156 4214 mov dx, strict word 0003eh ; ba 3e 00 4157 4215 mov ax, strict word 00040h ; b8 40 00 4158 call 01600h ; e8 82e24216 call 01600h ; e8 0f e2 4159 4217 and AL, strict byte 080h ; 24 80 4160 4218 test al, al ; 84 c0 4161 je short 033 63h ; 74 df4219 je short 033d6h ; 74 df 4162 4220 cli ; fa 4163 4221 mov dx, strict word 0003eh ; ba 3e 00 4164 4222 mov ax, strict word 00040h ; b8 40 00 4165 call 01600h ; e8 72 e24223 call 01600h ; e8 ff e1 4166 4224 and AL, strict byte 07fh ; 24 7f 4167 4225 movzx bx, al ; 0f b6 d8 4168 4226 mov dx, strict word 0003eh ; ba 3e 00 4169 4227 mov ax, strict word 00040h ; b8 40 00 4170 call 0160eh ; e8 72 e24228 call 0160eh ; e8 ff e1 4171 4229 mov dx, 003f4h ; ba f4 03 4172 4230 in AL, DX ; ec … … 4175 4233 and AL, strict byte 0c0h ; 24 c0 4176 4234 cmp AL, strict byte 0c0h ; 3c c0 4177 je short 03 3b6h ; 74 0e4178 push 001 d5h ; 68 d5 014179 push 002 08h ; 68 08 024235 je short 03429h ; 74 0e 4236 push 001e5h ; 68 e5 01 4237 push 00218h ; 68 18 02 4180 4238 push strict byte 00007h ; 6a 07 4181 call 018e9h ; e8 36 e54239 call 018e9h ; e8 c3 e4 4182 4240 add sp, strict byte 00006h ; 83 c4 06 4183 4241 xor si, si ; 31 f6 4184 jmp short 03 3bfh ; eb 054242 jmp short 03432h ; eb 05 4185 4243 cmp si, strict byte 00007h ; 83 fe 07 4186 jnl short 03 3d7h ; 7d 184244 jnl short 0344ah ; 7d 18 4187 4245 mov dx, 003f5h ; ba f5 03 4188 4246 in AL, DX ; ec … … 4193 4251 lea dx, [si+042h] ; 8d 54 42 4194 4252 mov ax, strict word 00040h ; b8 40 00 4195 call 0160eh ; e8 3a e24253 call 0160eh ; e8 c7 e1 4196 4254 inc si ; 46 4197 jmp short 03 3bah ; eb e34255 jmp short 0342dh ; eb e3 4198 4256 test byte [bp-012h], 0c0h ; f6 46 ee c0 4199 je short 03 3f3h ; 74 164257 je short 03466h ; 74 16 4200 4258 test byte [bp-011h], 002h ; f6 46 ef 02 4201 jne near 032 2fh ; 0f 85 4afe4202 push 001 d5h ; 68 d5 014259 jne near 032ach ; 0f 85 54 fe 4260 push 001e5h ; 68 e5 01 4203 4261 push 0022ch ; 68 2c 02 4204 4262 push strict byte 00007h ; 6a 07 4205 call 018e9h ; e8 f9e44263 call 018e9h ; e8 86 e4 4206 4264 add sp, strict byte 00006h ; 83 c4 06 4207 4265 xor al, al ; 30 c0 4208 4266 mov byte [bp+01bh], al ; 88 46 1b 4209 4267 xor ah, ah ; 30 e4 4210 call 02 acdh ; e8 d0f64268 call 02b4ah ; e8 da f6 4211 4269 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 4212 4270 xor dx, dx ; 31 d2 4213 call 02 ae2h ; e8 dcf64214 jmp near 03 0f9h ; e9 f0fc4271 call 02b5fh ; e8 e6 f6 4272 jmp near 03176h ; e9 fa fc 4215 4273 mov byte [bp-00ah], ah ; 88 66 f6 4216 4274 cmp ah, 001h ; 80 fc 01 4217 jbe short 034 31h ; 76 204275 jbe short 034a4h ; 76 20 4218 4276 xor ax, ax ; 31 c0 4219 4277 mov word [bp+01ah], ax ; 89 46 1a … … 4226 4284 mov word [bp+016h], ax ; 89 46 16 4227 4285 mov word [bp+020h], dx ; 89 56 20 4228 jmp near 02 eb7h ; e9 86fa4286 jmp near 02f34h ; e9 90 fa 4229 4287 mov ax, strict word 00010h ; b8 10 00 4230 call 0165ch ; e8 25 e24288 call 0165ch ; e8 b2 e1 4231 4289 mov bl, al ; 88 c3 4232 4290 xor cl, cl ; 30 c9 4233 4291 test AL, strict byte 0f0h ; a8 f0 4234 je short 034 41h ; 74 024292 je short 034b4h ; 74 02 4235 4293 mov CL, strict byte 001h ; b1 01 4236 4294 test bl, 00fh ; f6 c3 0f 4237 je short 034 48h ; 74 024295 je short 034bbh ; 74 02 4238 4296 db 0feh, 0c1h 4239 4297 ; inc cl ; fe c1 4240 4298 cmp byte [bp-00ah], 000h ; 80 7e f6 00 4241 jne short 034 53h ; 75 054299 jne short 034c6h ; 75 05 4242 4300 shr bl, 004h ; c0 eb 04 4243 jmp short 034 56h ; eb 034301 jmp short 034c9h ; eb 03 4244 4302 and bl, 00fh ; 80 e3 0f 4245 4303 xor al, al ; 30 c0 … … 4255 4313 mov word [bp+016h], dx ; 89 56 16 4256 4314 cmp bl, 008h ; 80 fb 08 4257 jnbe short 03 4d1h ; 77 594315 jnbe short 03544h ; 77 59 4258 4316 add si, si ; 01 f6 4259 4317 mov ax, dx ; 89 d0 … … 4261 4319 mov bx, ax ; 89 c3 4262 4320 or bh, 001h ; 80 cf 01 4263 jmp word [cs:si+02 dc2h] ; 2e ff a4 c2 2d4321 jmp word [cs:si+02e3fh] ; 2e ff a4 3f 2e 4264 4322 mov word [bp+018h], strict word 00000h ; c7 46 18 00 00 4265 4323 mov byte [bp+017h], 000h ; c6 46 17 00 4266 jmp short 03 4dfh ; eb 4c4324 jmp short 03552h ; eb 4c 4267 4325 mov word [bp+018h], 02709h ; c7 46 18 09 27 4268 4326 mov word [bp+016h], bx ; 89 5e 16 4269 jmp short 03 4dfh ; eb 424327 jmp short 03552h ; eb 42 4270 4328 mov word [bp+018h], 04f0fh ; c7 46 18 0f 4f 4271 jmp short 03 498h ; eb f44329 jmp short 0350bh ; eb f4 4272 4330 mov word [bp+018h], 04f09h ; c7 46 18 09 4f 4273 jmp short 03 498h ; eb ed4331 jmp short 0350bh ; eb ed 4274 4332 mov word [bp+018h], 04f12h ; c7 46 18 12 4f 4275 jmp short 03 498h ; eb e64333 jmp short 0350bh ; eb e6 4276 4334 mov word [bp+018h], 04f24h ; c7 46 18 24 4f 4277 jmp short 03 498h ; eb df4335 jmp short 0350bh ; eb df 4278 4336 mov word [bp+018h], 02708h ; c7 46 18 08 27 4279 4337 mov word [bp+016h], ax ; 89 46 16 4280 jmp short 03 4dfh ; eb 1c4338 jmp short 03552h ; eb 1c 4281 4339 mov word [bp+018h], 02709h ; c7 46 18 09 27 4282 jmp short 03 4beh ; eb f44340 jmp short 03531h ; eb f4 4283 4341 mov word [bp+018h], 02708h ; c7 46 18 08 27 4284 jmp short 03 498h ; eb c74285 push 001 d5h ; 68 d5 014342 jmp short 0350bh ; eb c7 4343 push 001e5h ; 68 e5 01 4286 4344 push 0023dh ; 68 3d 02 4287 4345 push strict byte 00007h ; 6a 07 4288 call 018e9h ; e8 0d e44346 call 018e9h ; e8 9a e3 4289 4347 add sp, strict byte 00006h ; 83 c4 06 4290 4348 mov word [bp+00ah], 0f000h ; c7 46 0a 00 f0 4291 4349 mov word [bp+00ch], 0efc7h ; c7 46 0c c7 ef 4292 jmp near 03 0f9h ; e9 0dfc4350 jmp near 03176h ; e9 17 fc 4293 4351 mov byte [bp-00ah], ah ; 88 66 f6 4294 4352 cmp ah, 001h ; 80 fc 01 4295 jbe short 03 4fah ; 76 064353 jbe short 0356dh ; 76 06 4296 4354 mov word [bp+01ah], si ; 89 76 1a 4297 jmp near 034 2bh ; e9 31 ff4355 jmp near 0349eh ; e9 31 ff 4298 4356 mov ax, strict word 00010h ; b8 10 00 4299 call 0165ch ; e8 5c e14357 call 0165ch ; e8 e9 e0 4300 4358 cmp byte [bp-00ah], 000h ; 80 7e f6 00 4301 jne short 035 0dh ; 75 074359 jne short 03580h ; 75 07 4302 4360 mov bl, al ; 88 c3 4303 4361 shr bl, 004h ; c0 eb 04 4304 jmp short 035 12h ; eb 054362 jmp short 03585h ; eb 05 4305 4363 mov bl, al ; 88 c3 4306 4364 and bl, 00fh ; 80 e3 0f … … 4309 4367 xor ah, ah ; 30 e4 4310 4368 test bl, bl ; 84 db 4311 je short 035 22h ; 74 034369 je short 03595h ; 74 03 4312 4370 or ah, 001h ; 80 cc 01 4313 4371 mov word [bp+01ah], ax ; 89 46 1a 4314 jmp near 02 eb7h ; e9 8ff94372 jmp near 02f34h ; e9 99 f9 4315 4373 cmp ah, 001h ; 80 fc 01 4316 jbe short 035 39h ; 76 0c4374 jbe short 035ach ; 76 0c 4317 4375 mov word [bp+01ah], si ; 89 76 1a 4318 4376 mov ax, strict word 00001h ; b8 01 00 4319 call 02 acdh ; e8 97f54320 jmp near 034 2bh ; e9 f2 fe4377 call 02b4ah ; e8 a1 f5 4378 jmp near 0349eh ; e9 f2 fe 4321 4379 mov ax, word [bp+01ah] ; 8b 46 1a 4322 4380 xor ah, ah ; 30 e4 … … 4324 4382 mov word [bp+01ah], ax ; 89 46 1a 4325 4383 mov ax, strict word 00006h ; b8 06 00 4326 jmp near 02e 63h ; e9 19f94327 mov bx, 00 cech ; bb ec 0c4384 jmp near 02ee0h ; e9 23 f9 4385 mov bx, 00d32h ; bb 32 0d 4328 4386 mov cx, ds ; 8c d9 4329 4387 mov ax, strict word 00004h ; b8 04 00 4330 call 018aeh ; e8 59 e34388 call 018aeh ; e8 e6 e2 4331 4389 mov ax, word [bp+01ah] ; 8b 46 1a 4332 4390 shr ax, 008h ; c1 e8 08 4333 4391 push ax ; 50 4334 push 001 d5h ; 68 d5 014392 push 001e5h ; 68 e5 01 4335 4393 push 00252h ; 68 52 02 4336 4394 push strict byte 00004h ; 6a 04 4337 call 018e9h ; e8 82e34395 call 018e9h ; e8 0f e3 4338 4396 add sp, strict byte 00008h ; 83 c4 08 4339 jmp near 02e 55h ; e9 e8f84340 _cdemu_init: ; 0xf35 6dLB 0x164397 jmp near 02ed2h ; e9 f2 f8 4398 _cdemu_init: ; 0xf35e0 LB 0x16 4341 4399 push bp ; 55 4342 4400 mov bp, sp ; 89 e5 4343 4401 mov dx, strict word 0000eh ; ba 0e 00 4344 4402 mov ax, strict word 00040h ; b8 40 00 4345 call 0161ch ; e8 a3e04403 call 0161ch ; e8 30 e0 4346 4404 xor bx, bx ; 31 db 4347 4405 mov dx, 00322h ; ba 22 03 4348 call 0160eh ; e8 8de04406 call 0160eh ; e8 1a e0 4349 4407 pop bp ; 5d 4350 4408 retn ; c3 4351 _cdemu_isactive: ; 0xf35 83LB 0x144409 _cdemu_isactive: ; 0xf35f6 LB 0x14 4352 4410 push bp ; 55 4353 4411 mov bp, sp ; 89 e5 4354 4412 mov dx, strict word 0000eh ; ba 0e 00 4355 4413 mov ax, strict word 00040h ; b8 40 00 4356 call 0161ch ; e8 8de04414 call 0161ch ; e8 1a e0 4357 4415 mov dx, 00322h ; ba 22 03 4358 call 01600h ; e8 6b e04416 call 01600h ; e8 f8 df 4359 4417 pop bp ; 5d 4360 4418 retn ; c3 4361 _cdemu_emulated_drive: ; 0xf3 597LB 0x144419 _cdemu_emulated_drive: ; 0xf360a LB 0x14 4362 4420 push bp ; 55 4363 4421 mov bp, sp ; 89 e5 4364 4422 mov dx, strict word 0000eh ; ba 0e 00 4365 4423 mov ax, strict word 00040h ; b8 40 00 4366 call 0161ch ; e8 79e04424 call 0161ch ; e8 06 e0 4367 4425 mov dx, 00324h ; ba 24 03 4368 call 01600h ; e8 57 e04426 call 01600h ; e8 e4 df 4369 4427 pop bp ; 5d 4370 4428 retn ; c3 4371 _int13_eltorito: ; 0xf3 5ab LB 0x17d4429 _int13_eltorito: ; 0xf361e LB 0x186 4372 4430 push si ; 56 4373 4431 push di ; 57 … … 4376 4434 mov dx, strict word 0000eh ; ba 0e 00 4377 4435 mov ax, strict word 00040h ; b8 40 00 4378 call 0161ch ; e8 63 e04436 call 0161ch ; e8 f0 df 4379 4437 mov si, 00322h ; be 22 03 4380 4438 mov di, ax ; 89 c7 … … 4382 4440 shr ax, 008h ; c1 e8 08 4383 4441 cmp ax, strict word 0004bh ; 3d 4b 00 4384 jc short 03 5d3h ; 72 0a4385 jbe short 03 5eeh ; 76 234442 jc short 03646h ; 72 0a 4443 jbe short 0366ch ; 76 2e 4386 4444 cmp ax, strict word 0004dh ; 3d 4d 00 4387 jbe short 03 5dah ; 76 0a4388 jmp near 03 6eah ; e9 17014445 jbe short 0364dh ; 76 0a 4446 jmp near 03768h ; e9 22 01 4389 4447 cmp ax, strict word 0004ah ; 3d 4a 00 4390 jne near 036eah ; 0f 85 10 01 4448 jne near 03768h ; 0f 85 1b 01 4449 mov bx, 00d32h ; bb 32 0d 4450 mov cx, ds ; 8c d9 4451 mov ax, strict word 00004h ; b8 04 00 4452 call 018aeh ; e8 56 e2 4391 4453 push word [bp+01ah] ; ff 76 1a 4392 4454 push 0026ch ; 68 6c 02 4393 4455 push 0027bh ; 68 7b 02 4394 push strict byte 0000 7h ; 6a 074395 call 018e9h ; e8 01 e34456 push strict byte 00004h ; 6a 04 4457 call 018e9h ; e8 83 e2 4396 4458 add sp, strict byte 00008h ; 83 c4 08 4397 jmp near 037 07h ; e9 19014459 jmp near 03783h ; e9 17 01 4398 4460 mov dx, word [bp+00eh] ; 8b 56 0e 4399 4461 mov ax, word [bp+008h] ; 8b 46 08 4400 4462 mov bx, strict word 00013h ; bb 13 00 4401 call 0160eh ; e8 14 e04463 call 0160eh ; e8 96 df 4402 4464 mov es, di ; 8e c7 4403 4465 movzx bx, byte [es:si+001h] ; 26 0f b6 5c 01 … … 4405 4467 inc dx ; 42 4406 4468 mov ax, word [bp+008h] ; 8b 46 08 4407 call 0160eh ; e8 03 e04469 call 0160eh ; e8 85 df 4408 4470 mov es, di ; 8e c7 4409 4471 movzx bx, byte [es:si+002h] ; 26 0f b6 5c 02 … … 4412 4474 inc dx ; 42 4413 4475 mov ax, word [bp+008h] ; 8b 46 08 4414 call 0160eh ; e8 f1df4476 call 0160eh ; e8 73 df 4415 4477 mov es, di ; 8e c7 4416 4478 movzx bx, byte [es:si+003h] ; 26 0f b6 5c 03 … … 4418 4480 add dx, strict byte 00003h ; 83 c2 03 4419 4481 mov ax, word [bp+008h] ; 8b 46 08 4420 call 0160eh ; e8 dedf4482 call 0160eh ; e8 60 df 4421 4483 mov es, di ; 8e c7 4422 4484 mov bx, word [es:si+008h] ; 26 8b 5c 08 … … 4425 4487 add dx, strict byte 00004h ; 83 c2 04 4426 4488 mov ax, word [bp+008h] ; 8b 46 08 4427 call 0164ah ; e8 04 e04489 call 0164ah ; e8 86 df 4428 4490 mov es, di ; 8e c7 4429 4491 mov bx, word [es:si+004h] ; 26 8b 5c 04 … … 4431 4493 add dx, strict byte 00008h ; 83 c2 08 4432 4494 mov ax, word [bp+008h] ; 8b 46 08 4433 call 0162ah ; e8 d2df4495 call 0162ah ; e8 54 df 4434 4496 mov es, di ; 8e c7 4435 4497 mov bx, word [es:si+006h] ; 26 8b 5c 06 … … 4437 4499 add dx, strict byte 0000ah ; 83 c2 0a 4438 4500 mov ax, word [bp+008h] ; 8b 46 08 4439 call 0162ah ; e8 c0df4501 call 0162ah ; e8 42 df 4440 4502 mov es, di ; 8e c7 4441 4503 mov bx, word [es:si+00ch] ; 26 8b 5c 0c … … 4443 4505 add dx, strict byte 0000ch ; 83 c2 0c 4444 4506 mov ax, word [bp+008h] ; 8b 46 08 4445 call 0162ah ; e8 aedf4507 call 0162ah ; e8 30 df 4446 4508 mov es, di ; 8e c7 4447 4509 mov bx, word [es:si+00eh] ; 26 8b 5c 0e … … 4449 4511 add dx, strict byte 0000eh ; 83 c2 0e 4450 4512 mov ax, word [bp+008h] ; 8b 46 08 4451 call 0162ah ; e8 9cdf4513 call 0162ah ; e8 1e df 4452 4514 mov es, di ; 8e c7 4453 4515 movzx bx, byte [es:si+012h] ; 26 0f b6 5c 12 … … 4455 4517 add dx, strict byte 00010h ; 83 c2 10 4456 4518 mov ax, word [bp+008h] ; 8b 46 08 4457 call 0160eh ; e8 6d df4519 call 0160eh ; e8 ef de 4458 4520 mov es, di ; 8e c7 4459 4521 movzx bx, byte [es:si+014h] ; 26 0f b6 5c 14 … … 4461 4523 add dx, strict byte 00011h ; 83 c2 11 4462 4524 mov ax, word [bp+008h] ; 8b 46 08 4463 call 0160eh ; e8 5a df4525 call 0160eh ; e8 dc de 4464 4526 mov es, di ; 8e c7 4465 4527 movzx bx, byte [es:si+010h] ; 26 0f b6 5c 10 … … 4467 4529 add dx, strict byte 00012h ; 83 c2 12 4468 4530 mov ax, word [bp+008h] ; 8b 46 08 4469 call 0160eh ; e8 47 df4531 call 0160eh ; e8 c9 de 4470 4532 test byte [bp+01ah], 0ffh ; f6 46 1a ff 4471 jne short 03 6d3h ; 75 064533 jne short 03751h ; 75 06 4472 4534 mov es, di ; 8e c7 4473 4535 mov byte [es:si], 000h ; 26 c6 04 00 … … 4476 4538 mov dx, strict word 00074h ; ba 74 00 4477 4539 mov ax, strict word 00040h ; b8 40 00 4478 call 0160eh ; e8 2c df4540 call 0160eh ; e8 ae de 4479 4541 and byte [bp+020h], 0feh ; 80 66 20 fe 4480 4542 pop bp ; 5d … … 4482 4544 pop si ; 5e 4483 4545 retn ; c3 4484 mov bx, 00 cech ; bb ec 0c4546 mov bx, 00d32h ; bb 32 0d 4485 4547 mov cx, ds ; 8c d9 4486 4548 mov ax, strict word 00004h ; b8 04 00 4487 call 018aeh ; e8 b9e14549 call 018aeh ; e8 3b e1 4488 4550 mov ax, word [bp+01ah] ; 8b 46 1a 4489 4551 shr ax, 008h ; c1 e8 08 4490 4552 push ax ; 50 4491 4553 push 0026ch ; 68 6c 02 4492 push 002a1h ; 68 a1 02 4493 push strict byte 00004h ; 6a 04 4494 jmp near 035e5h ; e9 de fe 4554 push 002a3h ; 68 a3 02 4555 jmp near 03661h ; e9 de fe 4495 4556 mov ax, word [bp+01ah] ; 8b 46 1a 4496 4557 xor ah, ah ; 30 e4 … … 4502 4563 mov dx, strict word 00074h ; ba 74 00 4503 4564 mov ax, strict word 00040h ; b8 40 00 4504 call 0160eh ; e8 ecde4565 call 0160eh ; e8 70 de 4505 4566 or byte [bp+020h], 001h ; 80 4e 20 01 4506 jmp short 03 6e6h ; eb be4507 device_is_cdrom_: ; 0xf37 28LB 0x324567 jmp short 03764h ; eb c0 4568 device_is_cdrom_: ; 0xf37a4 LB 0x32 4508 4569 push bx ; 53 4509 4570 push dx ; 52 … … 4513 4574 mov dx, strict word 0000eh ; ba 0e 00 4514 4575 mov ax, strict word 00040h ; b8 40 00 4515 call 0161ch ; e8 e4de4576 call 0161ch ; e8 68 de 4516 4577 cmp bl, 010h ; 80 fb 10 4517 jc short 037 41h ; 72 044578 jc short 037bdh ; 72 04 4518 4579 xor ax, ax ; 31 c0 4519 jmp short 037 56h ; eb 154580 jmp short 037d2h ; eb 15 4520 4581 xor bh, bh ; 30 ff 4521 4582 imul bx, bx, strict byte 00018h ; 6b db 18 … … 4523 4584 add bx, 00122h ; 81 c3 22 01 4524 4585 cmp byte [es:bx+01fh], 005h ; 26 80 7f 1f 05 4525 jne short 037 3dh ; 75 ea4586 jne short 037b9h ; 75 ea 4526 4587 mov ax, strict word 00001h ; b8 01 00 4527 4588 pop bp ; 5d … … 4529 4590 pop bx ; 5b 4530 4591 retn ; c3 4531 cdrom_boot_: ; 0xf37 5a LB 0x4ac4592 cdrom_boot_: ; 0xf37d6 LB 0x410 4532 4593 push bx ; 53 4533 4594 push cx ; 51 … … 4535 4596 push si ; 56 4536 4597 push di ; 57 4537 enter 0081 ah, 000h ; c8 1a08 004598 enter 0081ch, 000h ; c8 1c 08 00 4538 4599 mov dx, strict word 0000eh ; ba 0e 00 4539 4600 mov ax, strict word 00040h ; b8 40 00 4540 call 0161ch ; e8 b0de4601 call 0161ch ; e8 34 de 4541 4602 mov word [bp-00eh], ax ; 89 46 f2 4542 4603 mov si, 00322h ; be 22 03 4543 4604 mov word [bp-006h], ax ; 89 46 fa 4544 mov word [bp-00 ch], 00122h ; c7 46 f422 014605 mov word [bp-00ah], 00122h ; c7 46 f6 22 01 4545 4606 mov word [bp-008h], ax ; 89 46 f8 4546 mov byte [bp-00 4h], 000h ; c6 46 fc004547 jmp short 03 78ch ; eb 094548 inc byte [bp-00 4h] ; fe 46 fc4549 cmp byte [bp-00 4h], 010h ; 80 7e fc104550 jnc short 03 797h ; 73 0b4551 movzx ax, byte [bp-00 4h] ; 0f b6 46 fc4552 call 037 28h ; e8 95 ff4607 mov byte [bp-002h], 000h ; c6 46 fe 00 4608 jmp short 03808h ; eb 09 4609 inc byte [bp-002h] ; fe 46 fe 4610 cmp byte [bp-002h], 010h ; 80 7e fe 10 4611 jnc short 03813h ; 73 0b 4612 movzx ax, byte [bp-002h] ; 0f b6 46 fe 4613 call 037a4h ; e8 95 ff 4553 4614 test ax, ax ; 85 c0 4554 je short 037 83h ; 74 ec4555 cmp byte [bp-00 4h], 010h ; 80 7e fc104556 jc short 03 7a3h ; 72 064615 je short 037ffh ; 74 ec 4616 cmp byte [bp-002h], 010h ; 80 7e fe 10 4617 jc short 0381fh ; 72 06 4557 4618 mov ax, strict word 00002h ; b8 02 00 4558 jmp near 03b a6h ; e9 03 044619 jmp near 03b86h ; e9 67 03 4559 4620 mov cx, strict word 0000ch ; b9 0c 00 4560 4621 xor bx, bx ; 31 db 4561 4622 mov dx, ss ; 8c d2 4562 lea ax, [bp-01 ah] ; 8d 46 e64563 call 090 2ah ; e8 7a 584564 mov word [bp-01 ah], strict word 00028h ; c7 46 e628 004623 lea ax, [bp-01ch] ; 8d 46 e4 4624 call 0901ah ; e8 ee 57 4625 mov word [bp-01ch], strict word 00028h ; c7 46 e4 28 00 4565 4626 mov ax, strict word 00011h ; b8 11 00 4566 4627 xor dx, dx ; 31 d2 … … 4568 4629 xchg dh, dl ; 86 d6 4569 4630 xchg dx, ax ; 92 4570 mov word [bp-01 8h], ax ; 89 46 e84571 mov word [bp-01 6h], dx ; 89 56 ea4631 mov word [bp-01ah], ax ; 89 46 e6 4632 mov word [bp-018h], dx ; 89 56 e8 4572 4633 mov ax, strict word 00001h ; b8 01 00 4573 4634 xchg ah, al ; 86 c4 4574 mov word [bp-013h], ax ; 89 46 ed 4575 mov es, [bp-008h] ; 8e 46 f8 4576 mov bx, word [bp-00ch] ; 8b 5e f4 4635 mov word [bp-015h], ax ; 89 46 eb 4636 les bx, [bp-00ah] ; c4 5e f6 4577 4637 db 066h, 026h, 0c7h, 047h, 00ah, 001h, 000h, 000h, 008h 4578 4638 ; mov dword [es:bx+00ah], strict dword 008000001h ; 66 26 c7 47 0a 01 00 00 08 4579 mov byte [bp-002h], 000h ; c6 46 fe 00 4580 jmp short 03831h ; eb 4f 4581 cmp AL, strict byte 008h ; 3c 08 4582 jc short 03806h ; 72 20 4583 lea dx, [bp-0081ah] ; 8d 96 e6 f7 4639 mov byte [bp-004h], 000h ; c6 46 fc 00 4640 jmp short 03864h ; eb 09 4641 inc byte [bp-004h] ; fe 46 fc 4642 cmp byte [bp-004h], 004h ; 80 7e fc 04 4643 jnbe short 0389bh ; 77 37 4644 movzx di, byte [bp-002h] ; 0f b6 7e fe 4645 imul di, di, strict byte 00018h ; 6b ff 18 4646 mov es, [bp-008h] ; 8e 46 f8 4647 add di, word [bp-00ah] ; 03 7e f6 4648 movzx di, byte [es:di+01eh] ; 26 0f b6 7d 1e 4649 add di, di ; 01 ff 4650 lea dx, [bp-0081ch] ; 8d 96 e4 f7 4584 4651 push SS ; 16 4585 4652 push dx ; 52 … … 4588 4655 push 00800h ; 68 00 08 4589 4656 push strict byte 00000h ; 6a 00 4590 movzx ax, byte [bp-00 4h] ; 0f b6 46 fc4657 movzx ax, byte [bp-002h] ; 0f b6 46 fe 4591 4658 mov cx, ss ; 8c d1 4592 lea bx, [bp-01 ah] ; 8d 5e e64659 lea bx, [bp-01ch] ; 8d 5e e4 4593 4660 mov dx, strict word 0000ch ; ba 0c 00 4594 call 07626h ; e8 22 3e 4595 jmp short 03824h ; eb 1e 4596 lea dx, [bp-0081ah] ; 8d 96 e6 f7 4661 call word [word di+00000h] ; ff 95 00 00 4662 test ax, ax ; 85 c0 4663 jne short 0385bh ; 75 c0 4664 test ax, ax ; 85 c0 4665 je short 038a5h ; 74 06 4666 mov ax, strict word 00003h ; b8 03 00 4667 jmp near 03b86h ; e9 e1 02 4668 cmp byte [bp-0081ch], 000h ; 80 be e4 f7 00 4669 je short 038b2h ; 74 06 4670 mov ax, strict word 00004h ; b8 04 00 4671 jmp near 03b86h ; e9 d4 02 4672 xor di, di ; 31 ff 4673 jmp short 038bch ; eb 06 4674 inc di ; 47 4675 cmp di, strict byte 00005h ; 83 ff 05 4676 jnc short 038cch ; 73 10 4677 mov al, byte [bp+di-0081bh] ; 8a 83 e5 f7 4678 cmp al, byte [di+00d3ah] ; 3a 85 3a 0d 4679 je short 038b6h ; 74 f0 4680 mov ax, strict word 00005h ; b8 05 00 4681 jmp near 03b86h ; e9 ba 02 4682 xor di, di ; 31 ff 4683 jmp short 038d6h ; eb 06 4684 inc di ; 47 4685 cmp di, strict byte 00017h ; 83 ff 17 4686 jnc short 038e6h ; 73 10 4687 mov al, byte [bp+di-00815h] ; 8a 83 eb f7 4688 cmp al, byte [di+00d40h] ; 3a 85 40 0d 4689 je short 038d0h ; 74 f0 4690 mov ax, strict word 00006h ; b8 06 00 4691 jmp near 03b86h ; e9 a0 02 4692 mov ax, word [bp-007d5h] ; 8b 86 2b f8 4693 mov dx, word [bp-007d3h] ; 8b 96 2d f8 4694 mov word [bp-01ch], strict word 00028h ; c7 46 e4 28 00 4695 xchg ah, al ; 86 c4 4696 xchg dh, dl ; 86 d6 4697 xchg dx, ax ; 92 4698 mov word [bp-01ah], ax ; 89 46 e6 4699 mov word [bp-018h], dx ; 89 56 e8 4700 mov ax, strict word 00001h ; b8 01 00 4701 xchg ah, al ; 86 c4 4702 mov word [bp-015h], ax ; 89 46 eb 4703 movzx di, byte [bp-002h] ; 0f b6 7e fe 4704 imul di, di, strict byte 00018h ; 6b ff 18 4705 mov es, [bp-008h] ; 8e 46 f8 4706 add di, word [bp-00ah] ; 03 7e f6 4707 movzx di, byte [es:di+01eh] ; 26 0f b6 7d 1e 4708 add di, di ; 01 ff 4709 lea dx, [bp-0081ch] ; 8d 96 e4 f7 4597 4710 push SS ; 16 4598 4711 push dx ; 52 … … 4601 4714 push 00800h ; 68 00 08 4602 4715 push strict byte 00000h ; 6a 00 4603 movzx ax, byte [bp-00 4h] ; 0f b6 46 fc4716 movzx ax, byte [bp-002h] ; 0f b6 46 fe 4604 4717 mov cx, ss ; 8c d1 4605 lea bx, [bp-01 ah] ; 8d 5e e64718 lea bx, [bp-01ch] ; 8d 5e e4 4606 4719 mov dx, strict word 0000ch ; ba 0c 00 4607 call 027eah ; e8 c6 ef4720 call word [word di+00000h] ; ff 95 00 00 4608 4721 test ax, ax ; 85 c0 4609 je short 03858h ; 74 30 4610 inc byte [bp-002h] ; fe 46 fe 4611 cmp byte [bp-002h], 004h ; 80 7e fe 04 4612 jnbe short 03858h ; 77 27 4613 mov al, byte [bp-004h] ; 8a 46 fc 4614 cmp AL, strict byte 00ch ; 3c 0c 4615 jc short 037e2h ; 72 aa 4616 lea dx, [bp-0081ah] ; 8d 96 e6 f7 4617 push SS ; 16 4618 push dx ; 52 4619 push strict byte 00001h ; 6a 01 4620 push strict byte 00000h ; 6a 00 4621 push 00800h ; 68 00 08 4622 push strict byte 00000h ; 6a 00 4623 movzx ax, byte [bp-004h] ; 0f b6 46 fc 4624 mov cx, ss ; 8c d1 4625 lea bx, [bp-01ah] ; 8d 5e e6 4626 mov dx, strict word 0000ch ; ba 0c 00 4627 call 082c2h ; e8 6c 4a 4628 jmp short 03824h ; eb cc 4629 test ax, ax ; 85 c0 4630 je short 03862h ; 74 06 4631 mov ax, strict word 00003h ; b8 03 00 4632 jmp near 03ba6h ; e9 44 03 4633 cmp byte [bp-0081ah], 000h ; 80 be e6 f7 00 4634 je short 0386fh ; 74 06 4635 mov ax, strict word 00004h ; b8 04 00 4636 jmp near 03ba6h ; e9 37 03 4637 xor di, di ; 31 ff 4638 jmp short 03879h ; eb 06 4639 inc di ; 47 4640 cmp di, strict byte 00005h ; 83 ff 05 4641 jnc short 03889h ; 73 10 4642 mov al, byte [bp+di-00819h] ; 8a 83 e7 f7 4643 cmp al, byte [di+00cf4h] ; 3a 85 f4 0c 4644 je short 03873h ; 74 f0 4645 mov ax, strict word 00005h ; b8 05 00 4646 jmp near 03ba6h ; e9 1d 03 4647 xor di, di ; 31 ff 4648 jmp short 03893h ; eb 06 4649 inc di ; 47 4650 cmp di, strict byte 00017h ; 83 ff 17 4651 jnc short 038a3h ; 73 10 4652 mov al, byte [bp+di-00813h] ; 8a 83 ed f7 4653 cmp al, byte [di+00cfah] ; 3a 85 fa 0c 4654 je short 0388dh ; 74 f0 4655 mov ax, strict word 00006h ; b8 06 00 4656 jmp near 03ba6h ; e9 03 03 4657 mov ax, word [bp-007d3h] ; 8b 86 2d f8 4658 mov dx, word [bp-007d1h] ; 8b 96 2f f8 4659 mov word [bp-01ah], strict word 00028h ; c7 46 e6 28 00 4660 xchg ah, al ; 86 c4 4661 xchg dh, dl ; 86 d6 4662 xchg dx, ax ; 92 4663 mov word [bp-018h], ax ; 89 46 e8 4664 mov word [bp-016h], dx ; 89 56 ea 4665 mov ax, strict word 00001h ; b8 01 00 4666 xchg ah, al ; 86 c4 4667 mov word [bp-013h], ax ; 89 46 ed 4668 mov al, byte [bp-004h] ; 8a 46 fc 4669 cmp AL, strict byte 00ch ; 3c 0c 4670 jc short 038eah ; 72 20 4671 lea dx, [bp-0081ah] ; 8d 96 e6 f7 4672 push SS ; 16 4673 push dx ; 52 4674 push strict byte 00001h ; 6a 01 4675 push strict byte 00000h ; 6a 00 4676 push 00800h ; 68 00 08 4677 push strict byte 00000h ; 6a 00 4678 movzx ax, byte [bp-004h] ; 0f b6 46 fc 4679 mov cx, ss ; 8c d1 4680 lea bx, [bp-01ah] ; 8d 5e e6 4681 mov dx, strict word 0000ch ; ba 0c 00 4682 call 082c2h ; e8 da 49 4683 jmp short 0392ch ; eb 42 4684 cmp AL, strict byte 008h ; 3c 08 4685 jc short 0390eh ; 72 20 4686 lea dx, [bp-0081ah] ; 8d 96 e6 f7 4687 push SS ; 16 4688 push dx ; 52 4689 push strict byte 00001h ; 6a 01 4690 push strict byte 00000h ; 6a 00 4691 push 00800h ; 68 00 08 4692 push strict byte 00000h ; 6a 00 4693 movzx ax, byte [bp-004h] ; 0f b6 46 fc 4694 mov cx, ss ; 8c d1 4695 lea bx, [bp-01ah] ; 8d 5e e6 4696 mov dx, strict word 0000ch ; ba 0c 00 4697 call 07626h ; e8 1a 3d 4698 jmp short 0392ch ; eb 1e 4699 lea dx, [bp-0081ah] ; 8d 96 e6 f7 4700 push SS ; 16 4701 push dx ; 52 4702 push strict byte 00001h ; 6a 01 4703 push strict byte 00000h ; 6a 00 4704 push 00800h ; 68 00 08 4705 push strict byte 00000h ; 6a 00 4706 movzx ax, byte [bp-004h] ; 0f b6 46 fc 4707 mov cx, ss ; 8c d1 4708 lea bx, [bp-01ah] ; 8d 5e e6 4709 mov dx, strict word 0000ch ; ba 0c 00 4710 call 027eah ; e8 be ee 4711 test ax, ax ; 85 c0 4712 je short 03936h ; 74 06 4722 je short 03943h ; 74 06 4713 4723 mov ax, strict word 00007h ; b8 07 00 4714 jmp near 03b a6h ; e9 70024715 cmp byte [bp-0081 ah], 001h ; 80 be e6f7 014716 je short 039 43h ; 74 064724 jmp near 03b86h ; e9 43 02 4725 cmp byte [bp-0081ch], 001h ; 80 be e4 f7 01 4726 je short 03950h ; 74 06 4717 4727 mov ax, strict word 00008h ; b8 08 00 4718 jmp near 03b a6h ; e9 63024719 cmp byte [bp-0081 9h], 000h ; 80 be e7f7 004720 je short 0395 0h ; 74 064728 jmp near 03b86h ; e9 36 02 4729 cmp byte [bp-0081bh], 000h ; 80 be e5 f7 00 4730 je short 0395dh ; 74 06 4721 4731 mov ax, strict word 00009h ; b8 09 00 4722 jmp near 03b a6h ; e9 56024723 cmp byte [bp-007f ch], 055h ; 80 be 04f8 554724 je short 039 5dh ; 74 064732 jmp near 03b86h ; e9 29 02 4733 cmp byte [bp-007feh], 055h ; 80 be 02 f8 55 4734 je short 0396ah ; 74 06 4725 4735 mov ax, strict word 0000ah ; b8 0a 00 4726 jmp near 03b a6h ; e9 49024727 cmp byte [bp-007f bh], 0aah ; 80 be 05f8 aa4728 jne short 039 57h ; 75 f34729 cmp byte [bp-007f ah], 088h ; 80 be 06f8 884730 je short 0397 1h ; 74 064736 jmp near 03b86h ; e9 1c 02 4737 cmp byte [bp-007fdh], 0aah ; 80 be 03 f8 aa 4738 jne short 03964h ; 75 f3 4739 cmp byte [bp-007fch], 088h ; 80 be 04 f8 88 4740 je short 0397eh ; 74 06 4731 4741 mov ax, strict word 0000bh ; b8 0b 00 4732 jmp near 03b a6h ; e9 35024733 mov al, byte [bp-007f 9h] ; 8a 86 07f84742 jmp near 03b86h ; e9 08 02 4743 mov al, byte [bp-007fbh] ; 8a 86 05 f8 4734 4744 mov es, [bp-006h] ; 8e 46 fa 4735 4745 mov byte [es:si+001h], al ; 26 88 44 01 4736 cmp byte [bp-007f 9h], 000h ; 80 be 07f8 004737 jne short 039 8ah ; 75 074746 cmp byte [bp-007fbh], 000h ; 80 be 05 f8 00 4747 jne short 03997h ; 75 07 4738 4748 mov byte [es:si+002h], 0e0h ; 26 c6 44 02 e0 4739 jmp short 039 9dh ; eb 134740 cmp byte [bp-007f 9h], 004h ; 80 be 07f8 044741 jnc short 039 98h ; 73 074749 jmp short 039aah ; eb 13 4750 cmp byte [bp-007fbh], 004h ; 80 be 05 f8 04 4751 jnc short 039a5h ; 73 07 4742 4752 mov byte [es:si+002h], 000h ; 26 c6 44 02 00 4743 jmp short 039 9dh ; eb 054753 jmp short 039aah ; eb 05 4744 4754 mov byte [es:si+002h], 080h ; 26 c6 44 02 80 4745 movzx di, byte [bp-00 4h] ; 0f b6 7e fc4755 movzx di, byte [bp-002h] ; 0f b6 7e fe 4746 4756 mov ax, di ; 89 f8 4747 4757 cwd ; 99 … … 4756 4766 idiv bx ; f7 fb 4757 4767 mov word [es:si+004h], dx ; 26 89 54 04 4758 mov di, word [bp-007f8h] ; 8b be 08 f8 4768 mov ax, word [bp-007fah] ; 8b 86 06 f8 4769 mov word [bp-00ch], ax ; 89 46 f4 4770 test ax, ax ; 85 c0 4771 jne short 039d8h ; 75 05 4772 mov word [bp-00ch], 007c0h ; c7 46 f4 c0 07 4773 mov ax, word [bp-00ch] ; 8b 46 f4 4774 mov es, [bp-006h] ; 8e 46 fa 4775 mov word [es:si+00ch], ax ; 26 89 44 0c 4776 mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00 4777 mov di, word [bp-007f6h] ; 8b be 0a f8 4778 mov word [es:si+00eh], di ; 26 89 7c 0e 4759 4779 test di, di ; 85 ff 4760 j ne short 039c6h ; 75 034761 mov di, 007c0h ; bf c0 074762 mov es, [bp-006h] ; 8e 46 fa4763 mov word [es:si+00ch], di ; 26 89 7c 0c4764 mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 004780 je short 039fah ; 74 06 4781 cmp di, 00400h ; 81 ff 00 04 4782 jbe short 03a00h ; 76 06 4783 mov ax, strict word 0000ch ; b8 0c 00 4784 jmp near 03b86h ; e9 86 01 4765 4785 mov ax, word [bp-007f4h] ; 8b 86 0c f8 4766 mov word [bp-00ah], ax ; 89 46 f6 4767 mov word [es:si+00eh], ax ; 26 89 44 0e 4768 mov ax, word [bp-007f2h] ; 8b 86 0e f8 4769 mov dx, word [bp-007f0h] ; 8b 96 10 f8 4786 mov dx, word [bp-007f2h] ; 8b 96 0e f8 4770 4787 mov word [es:si+008h], ax ; 26 89 44 08 4771 4788 mov word [es:si+00ah], dx ; 26 89 54 0a 4772 mov word [bp-01 ah], strict word 00028h ; c7 46 e628 004789 mov word [bp-01ch], strict word 00028h ; c7 46 e4 28 00 4773 4790 xchg ah, al ; 86 c4 4774 4791 xchg dh, dl ; 86 d6 4775 4792 xchg dx, ax ; 92 4776 mov word [bp-018h], ax ; 89 46 e8 4777 mov word [bp-016h], dx ; 89 56 ea 4778 mov dx, word [bp-00ah] ; 8b 56 f6 4779 dec dx ; 4a 4793 mov word [bp-01ah], ax ; 89 46 e6 4794 mov word [bp-018h], dx ; 89 56 e8 4795 lea dx, [di-001h] ; 8d 55 ff 4780 4796 shr dx, 002h ; c1 ea 02 4781 4797 inc dx ; 42 4782 4798 mov ax, dx ; 89 d0 4783 4799 xchg ah, al ; 86 c4 4784 mov word [bp-013h], ax ; 89 46 ed 4785 mov es, [bp-008h] ; 8e 46 f8 4786 mov bx, word [bp-00ch] ; 8b 5e f4 4800 mov word [bp-015h], ax ; 89 46 eb 4801 les bx, [bp-00ah] ; c4 5e f6 4787 4802 mov word [es:bx+00ah], dx ; 26 89 57 0a 4788 4803 mov word [es:bx+00ch], 00200h ; 26 c7 47 0c 00 02 4789 mov ax, word [bp-00ah] ; 8b 46 f64804 mov ax, di ; 89 f8 4790 4805 sal ax, 009h ; c1 e0 09 4791 and ah, 007h ; 80 e4 074792 4806 mov dx, 00800h ; ba 00 08 4793 4807 sub dx, ax ; 29 c2 4794 mov word [es:bx+01ch], dx ; 26 89 57 1c 4795 mov al, byte [bp-004h] ; 8a 46 fc 4796 cmp AL, strict byte 00ch ; 3c 0c 4797 jc short 03a5dh ; 72 27 4798 push di ; 57 4808 mov ax, dx ; 89 d0 4809 and ah, 007h ; 80 e4 07 4810 mov word [es:bx+01ch], ax ; 26 89 47 1c 4811 movzx ax, byte [bp-002h] ; 0f b6 46 fe 4812 imul ax, ax, strict byte 00018h ; 6b c0 18 4813 add bx, ax ; 01 c3 4814 movzx ax, byte [es:bx+01eh] ; 26 0f b6 47 1e 4815 add ax, ax ; 01 c0 4816 mov word [bp-010h], ax ; 89 46 f0 4817 push word [bp-00ch] ; ff 76 f4 4799 4818 push dword 000000001h ; 66 6a 01 4800 mov ax, word [bp-00ah] ; 8b 46 f64801 xor d x, dx ; 31 d24819 mov ax, di ; 89 f8 4820 xor di, di ; 31 ff 4802 4821 mov cx, strict word 00009h ; b9 09 00 4803 4822 sal ax, 1 ; d1 e0 4804 rcl d x, 1 ; d1 d24805 loop 03a 42h ; e2 fa4806 push d x ; 524823 rcl di, 1 ; d1 d7 4824 loop 03a6eh ; e2 fa 4825 push di ; 57 4807 4826 push ax ; 50 4808 4827 push strict byte 00000h ; 6a 00 4809 movzx ax, byte [bp-00 4h] ; 0f b6 46 fc4828 movzx ax, byte [bp-002h] ; 0f b6 46 fe 4810 4829 mov cx, ss ; 8c d1 4811 lea bx, [bp-01 ah] ; 8d 5e e64830 lea bx, [bp-01ch] ; 8d 5e e4 4812 4831 mov dx, strict word 0000ch ; ba 0c 00 4813 call 082c2h ; e8 67 48 4814 jmp short 03aadh ; eb 50 4815 cmp AL, strict byte 008h ; 3c 08 4816 jc short 03a88h ; 72 27 4817 push di ; 57 4818 push dword 000000001h ; 66 6a 01 4819 mov ax, word [bp-00ah] ; 8b 46 f6 4820 xor dx, dx ; 31 d2 4821 mov cx, strict word 00009h ; b9 09 00 4822 sal ax, 1 ; d1 e0 4823 rcl dx, 1 ; d1 d2 4824 loop 03a6dh ; e2 fa 4825 push dx ; 52 4826 push ax ; 50 4827 push strict byte 00000h ; 6a 00 4828 movzx ax, byte [bp-004h] ; 0f b6 46 fc 4829 mov cx, ss ; 8c d1 4830 lea bx, [bp-01ah] ; 8d 5e e6 4831 mov dx, strict word 0000ch ; ba 0c 00 4832 call 07626h ; e8 a0 3b 4833 jmp short 03aadh ; eb 25 4834 push di ; 57 4835 push dword 000000001h ; 66 6a 01 4836 mov ax, word [bp-00ah] ; 8b 46 f6 4837 xor dx, dx ; 31 d2 4838 mov cx, strict word 00009h ; b9 09 00 4839 sal ax, 1 ; d1 e0 4840 rcl dx, 1 ; d1 d2 4841 loop 03a94h ; e2 fa 4842 push dx ; 52 4843 push ax ; 50 4844 push strict byte 00000h ; 6a 00 4845 movzx ax, byte [bp-004h] ; 0f b6 46 fc 4846 mov cx, ss ; 8c d1 4847 lea bx, [bp-01ah] ; 8d 5e e6 4848 mov dx, strict word 0000ch ; ba 0c 00 4849 call 027eah ; e8 3d ed 4850 mov es, [bp-008h] ; 8e 46 f8 4851 mov bx, word [bp-00ch] ; 8b 5e f4 4832 mov di, word [bp-010h] ; 8b 7e f0 4833 call word [word di+00000h] ; ff 95 00 00 4834 les bx, [bp-00ah] ; c4 5e f6 4852 4835 mov word [es:bx+01ch], strict word 00000h ; 26 c7 47 1c 00 00 4853 4836 test ax, ax ; 85 c0 4854 je short 03a c3h ; 74 064855 mov ax, strict word 0000 ch ; b8 0c004856 jmp near 03b a6h ; e9 e3004837 je short 03a9eh ; 74 06 4838 mov ax, strict word 0000dh ; b8 0d 00 4839 jmp near 03b86h ; e9 e8 00 4857 4840 mov es, [bp-006h] ; 8e 46 fa 4858 4841 mov al, byte [es:si+001h] ; 26 8a 44 01 4859 4842 cmp AL, strict byte 002h ; 3c 02 4860 jc short 03a dah ; 72 0c4861 jbe short 03a f2h ; 76 224843 jc short 03ab6h ; 72 0d 4844 jbe short 03aceh ; 76 23 4862 4845 cmp AL, strict byte 004h ; 3c 04 4863 je short 03 b08h ; 74 344846 je short 03ae4h ; 74 35 4864 4847 cmp AL, strict byte 003h ; 3c 03 4865 je short 03a fdh ; 74 254866 jmp short 03b4fh ; eb 754848 je short 03ad9h ; 74 26 4849 jmp near 03b2fh ; e9 79 00 4867 4850 cmp AL, strict byte 001h ; 3c 01 4868 jne short 03b 4fh ; 75 714851 jne short 03b2fh ; 75 75 4869 4852 mov es, [bp-006h] ; 8e 46 fa 4870 4853 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h 4871 4854 ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00 4872 4855 mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00 4873 jmp short 03b 4fh ; eb 5d4856 jmp short 03b2fh ; eb 61 4874 4857 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h 4875 4858 ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00 4876 jmp short 03a eah ; eb ed4859 jmp short 03ac6h ; eb ed 4877 4860 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h 4878 4861 ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00 4879 jmp short 03a eah ; eb e24862 jmp short 03ac6h ; eb e2 4880 4863 mov dx, 001c4h ; ba c4 01 4881 mov ax, di ; 89 f84882 call 01600h ; e8 f0 da4864 mov ax, word [bp-00ch] ; 8b 46 f4 4865 call 01600h ; e8 13 db 4883 4866 and AL, strict byte 03fh ; 24 3f 4884 4867 xor ah, ah ; 30 e4 … … 4886 4869 mov word [es:si+014h], ax ; 26 89 44 14 4887 4870 mov dx, 001c4h ; ba c4 01 4888 mov ax, di ; 89 f84889 call 01600h ; e8 ddda4871 mov ax, word [bp-00ch] ; 8b 46 f4 4872 call 01600h ; e8 ff da 4890 4873 movzx bx, al ; 0f b6 d8 4891 4874 sal bx, 002h ; c1 e3 02 4892 4875 mov dx, 001c5h ; ba c5 01 4893 mov ax, di ; 89 f84894 call 01600h ; e8 cfda4876 mov ax, word [bp-00ch] ; 8b 46 f4 4877 call 01600h ; e8 f0 da 4895 4878 xor ah, ah ; 30 e4 4896 4879 add ax, bx ; 01 d8 … … 4899 4882 mov word [es:si+012h], ax ; 26 89 44 12 4900 4883 mov dx, 001c3h ; ba c3 01 4901 mov ax, di ; 89 f84902 call 01600h ; e8 bb da4884 mov ax, word [bp-00ch] ; 8b 46 f4 4885 call 01600h ; e8 db da 4903 4886 xor ah, ah ; 30 e4 4904 4887 inc ax ; 40 … … 4907 4890 mov es, [bp-006h] ; 8e 46 fa 4908 4891 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 4909 je short 03b 8dh ; 74 344892 je short 03b6dh ; 74 34 4910 4893 cmp byte [es:si+002h], 000h ; 26 80 7c 02 00 4911 jne short 03b 76h ; 75 164894 jne short 03b56h ; 75 16 4912 4895 mov dx, strict word 00010h ; ba 10 00 4913 4896 mov ax, strict word 00040h ; b8 40 00 4914 call 01600h ; e8 97 da4897 call 01600h ; e8 b7 da 4915 4898 or AL, strict byte 041h ; 0c 41 4916 4899 movzx bx, al ; 0f b6 d8 4917 4900 mov dx, strict word 00010h ; ba 10 00 4918 4901 mov ax, strict word 00040h ; b8 40 00 4919 jmp short 03b 8ah ; eb 144902 jmp short 03b6ah ; eb 14 4920 4903 mov dx, 002c0h ; ba c0 02 4921 4904 mov ax, word [bp-00eh] ; 8b 46 f2 4922 call 01600h ; e8 81 da4905 call 01600h ; e8 a1 da 4923 4906 db 0feh, 0c0h 4924 4907 ; inc al ; fe c0 … … 4926 4909 mov dx, 002c0h ; ba c0 02 4927 4910 mov ax, word [bp-00eh] ; 8b 46 f2 4928 call 0160eh ; e8 81 da4911 call 0160eh ; e8 a1 da 4929 4912 mov es, [bp-006h] ; 8e 46 fa 4930 4913 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 4931 je short 03b 9bh ; 74 044914 je short 03b7bh ; 74 04 4932 4915 mov byte [es:si], 001h ; 26 c6 04 01 4933 4916 mov es, [bp-006h] ; 8e 46 fa … … 4959 4942 add AL, strict byte 003h ; 04 03 4960 4943 add al, byte [bx+di] ; 02 01 4961 add byte [bx+si-067c1h], bh ; 00 b8 3f 98 4944 add byte [bx+di+03fh], bh ; 00 79 3f 4945 mov bh, byte [si] ; 8a 3c 4946 sar word [si], 1 ; d1 3c 4947 stc ; f9 4948 cmp AL, strict byte 0c6h ; 3c c6 4949 cmp AL, strict byte 0f9h ; 3c f9 4950 cmp AL, strict byte 0c6h ; 3c c6 4951 cmp AL, strict byte 0cfh ; 3c cf 4952 db 03eh, 0afh 4953 ; ds scasw ; 3e af 4954 cmp AL, strict byte 079h ; 3c 79 4962 4955 aas ; 3f 4963 mov BH, strict byte 03ch ; b7 3c 4964 loope 03c0eh ; e1 3c 4965 lodsb ; ac 4966 cmp AL, strict byte 0e1h ; 3c e1 4967 cmp AL, strict byte 0ach ; 3c ac 4968 cmp AL, strict byte 002h ; 3c 02 4969 aas ; 3f 4970 cbw ; 98 4971 aas ; 3f 4972 mov ax, 0b83fh ; b8 3f b8 4973 aas ; 3f 4974 cbw ; 98 4975 aas ; 3f 4976 cbw ; 98 4977 aas ; 3f 4978 cbw ; 98 4979 aas ; 3f 4980 cbw ; 98 4981 aas ; 3f 4982 cbw ; 98 4956 jns short 03bffh ; 79 3f 4957 scasw ; af 4958 cmp AL, strict byte 0afh ; 3c af 4959 cmp AL, strict byte 0afh ; 3c af 4960 cmp AL, strict byte 0afh ; 3c af 4961 cmp AL, strict byte 0afh ; 3c af 4962 cmp AL, strict byte 070h ; 3c 70 4983 4963 aas ; 3f 4984 4964 scasw ; af 4965 cmp AL, strict byte 079h ; 3c 79 4985 4966 aas ; 3f 4986 cbw ; 98 4987 aas ; 3f 4988 mov ax, 0b83fh ; b8 3f b8 4989 aas ; 3f 4990 mov ax, 0b83fh ; b8 3f b8 4991 aas ; 3f 4992 mov ax, 0b83fh ; b8 3f b8 4993 aas ; 3f 4994 mov ax, 0b83fh ; b8 3f b8 4995 aas ; 3f 4996 mov ax, 0b83fh ; b8 3f b8 4997 aas ; 3f 4998 mov ax, 0b83fh ; b8 3f b8 4999 aas ; 3f 5000 _int13_cdemu: ; 0xf3c06 LB 0x44d 4967 jns short 03c11h ; 79 3f 4968 jns short 03c13h ; 79 3f 4969 jns short 03c15h ; 79 3f 4970 jns short 03c17h ; 79 3f 4971 jns short 03c19h ; 79 3f 4972 jns short 03c1bh ; 79 3f 4973 jns short 03c1dh ; 79 3f 4974 jns short 03c1fh ; 79 3f 4975 jns short 03c21h ; 79 3f 4976 jns short 03c23h ; 79 3f 4977 jns short 03c25h ; 79 3f 4978 _int13_cdemu: ; 0xf3be6 LB 0x42f 5001 4979 push si ; 56 5002 4980 push di ; 57 … … 5004 4982 mov dx, strict word 0000eh ; ba 0e 00 5005 4983 mov ax, strict word 00040h ; b8 40 00 5006 call 0161ch ; e8 07 da4984 call 0161ch ; e8 27 da 5007 4985 mov di, 00322h ; bf 22 03 5008 4986 mov cx, ax ; 89 c1 … … 5020 4998 mov dx, strict word 00074h ; ba 74 00 5021 4999 mov ax, strict word 00040h ; b8 40 00 5022 call 0160eh ; e8 ca d95000 call 0160eh ; e8 ea d9 5023 5001 mov es, cx ; 8e c1 5024 5002 cmp byte [es:di], 000h ; 26 80 3d 00 5025 je short 03c 5ah ; 74 0e5003 je short 03c3ah ; 74 0e 5026 5004 movzx dx, byte [es:di+002h] ; 26 0f b6 55 02 5027 5005 mov ax, word [bp+016h] ; 8b 46 16 5028 5006 xor ah, ah ; 30 e4 5029 5007 cmp dx, ax ; 39 c2 5030 je short 03c 83h ; 74 295031 mov bx, 00 cech ; bb ec 0c5008 je short 03c63h ; 74 29 5009 mov bx, 00d32h ; bb 32 0d 5032 5010 mov cx, ds ; 8c d9 5033 5011 mov ax, strict word 00004h ; b8 04 00 5034 call 018aeh ; e8 49 dc5012 call 018aeh ; e8 69 dc 5035 5013 mov ax, word [bp+016h] ; 8b 46 16 5036 5014 xor ah, ah ; 30 e4 … … 5039 5017 shr ax, 008h ; c1 e8 08 5040 5018 push ax ; 50 5041 push 002b ah ; 68 ba025042 push 002c 6h ; 68 c6025019 push 002bch ; 68 bc 02 5020 push 002c8h ; 68 c8 02 5043 5021 push strict byte 00004h ; 6a 04 5044 call 018e9h ; e8 6c dc5022 call 018e9h ; e8 8c dc 5045 5023 add sp, strict byte 0000ah ; 83 c4 0a 5046 jmp near 03f d8h ; e9 55035024 jmp near 03f99h ; e9 36 03 5047 5025 mov ax, word [bp+01ah] ; 8b 46 1a 5048 5026 shr ax, 008h ; c1 e8 08 5049 5027 cmp ax, strict word 00050h ; 3d 50 00 5050 jnbe near 03f b8h ; 0f 87 28035028 jnbe near 03f79h ; 0f 87 09 03 5051 5029 push CS ; 0e 5052 5030 pop ES ; 07 5053 5031 mov cx, strict word 0001eh ; b9 1e 00 5054 mov di, 03b adh ; bf ad 3b5032 mov di, 03b8dh ; bf 8d 3b 5055 5033 repne scasb ; f2 ae 5056 5034 sal cx, 1 ; d1 e1 5057 5035 mov di, cx ; 89 cf 5058 mov ax, word [cs:di+03b cah] ; 2e 8b 85 ca 3b5059 mov di, word [bp+01ah] ; 8b 7e 1a5060 and di, 000ffh ; 81 e7 ff 005036 mov ax, word [cs:di+03baah] ; 2e 8b 85 aa 3b 5037 mov bx, word [bp+01ah] ; 8b 5e 1a 5038 xor bh, bh ; 30 ff 5061 5039 jmp ax ; ff e0 5040 movzx bx, byte [bp-002h] ; 0f b6 5e fe 5041 imul bx, bx, strict byte 00018h ; 6b db 18 5042 mov es, [bp-008h] ; 8e 46 f8 5043 add bx, word [bp-00ah] ; 03 5e f6 5044 movzx bx, byte [es:bx+01eh] ; 26 0f b6 5f 1e 5045 add bx, bx ; 01 db 5046 cmp word [word bx+00000h], strict byte 00000h ; 83 bf 00 00 00 5047 je near 03cafh ; 0f 84 08 00 5048 movzx ax, byte [bp-002h] ; 0f b6 46 fe 5049 call word [word bx+0000ch] ; ff 97 0c 00 5050 mov byte [bp+01bh], 000h ; c6 46 1b 00 5051 xor bx, bx ; 31 db 5052 mov dx, strict word 00074h ; ba 74 00 5053 mov ax, strict word 00040h ; b8 40 00 5054 call 0160eh ; e8 50 d9 5055 and byte [bp+020h], 0feh ; 80 66 20 fe 5056 leave ; c9 5057 pop di ; 5f 5058 pop si ; 5e 5059 retn ; c3 5062 5060 mov ax, word [bp+01ah] ; 8b 46 1a 5063 5061 xor ah, ah ; 30 e4 5064 5062 or ah, 003h ; 80 cc 03 5065 jmp near 03f e0h ; e9 29 035063 jmp near 03fa1h ; e9 d0 02 5066 5064 mov dx, strict word 00074h ; ba 74 00 5067 5065 mov ax, strict word 00040h ; b8 40 00 5068 call 01600h ; e8 40d95066 call 01600h ; e8 26 d9 5069 5067 mov cl, al ; 88 c1 5070 5068 movzx ax, cl ; 0f b6 c1 5071 5069 sal ax, 008h ; c1 e0 08 5072 or di, ax ; 09 c75073 mov word [bp+01ah], di ; 89 7e 1a5070 or bx, ax ; 09 c3 5071 mov word [bp+01ah], bx ; 89 5e 1a 5074 5072 xor bx, bx ; 31 db 5075 5073 mov dx, strict word 00074h ; ba 74 00 5076 5074 mov ax, strict word 00040h ; b8 40 00 5077 call 0160eh ; e8 36d95075 call 0160eh ; e8 1c d9 5078 5076 test cl, cl ; 84 c9 5079 je near 03f9ch ; 0f 84 be 025080 jmp near 03f f4h ; e9 13 035077 je short 03cb3h ; 74 bd 5078 jmp near 03fb5h ; e9 bc 02 5081 5079 mov es, [bp-004h] ; 8e 46 fc 5082 mov ax, word [es:si+014h] ; 26 8b 44 14 5083 mov word [bp-00ch], ax ; 89 46 f4 5080 mov di, word [es:si+014h] ; 26 8b 7c 14 5084 5081 mov dx, word [es:si+012h] ; 26 8b 54 12 5085 mov di, word [es:si+010h] ; 26 8b 7c 105082 mov bx, word [es:si+010h] ; 26 8b 5c 10 5086 5083 mov ax, word [es:si+008h] ; 26 8b 44 08 5087 mov word [bp-01 8h], ax ; 89 46 e85084 mov word [bp-010h], ax ; 89 46 f0 5088 5085 mov ax, word [es:si+00ah] ; 26 8b 44 0a 5089 mov word [bp-0 16h], ax ; 89 46 ea5086 mov word [bp-00eh], ax ; 89 46 f2 5090 5087 mov ax, word [bp+018h] ; 8b 46 18 5091 5088 and ax, strict word 0003fh ; 25 3f 00 5092 mov word [bp-012h], ax ; 89 46 ee 5089 mov word [bp-00ch], ax ; 89 46 f4 5090 mov cx, word [bp+018h] ; 8b 4e 18 5091 and cx, 000c0h ; 81 e1 c0 00 5092 sal cx, 002h ; c1 e1 02 5093 5093 mov ax, word [bp+018h] ; 8b 46 18 5094 xor ah, ah ; 30 e4 5095 and AL, strict byte 0c0h ; 24 c0 5096 sal ax, 002h ; c1 e0 02 5097 mov bx, word [bp+018h] ; 8b 5e 18 5098 shr bx, 008h ; c1 eb 08 5099 or ax, bx ; 09 d8 5094 shr ax, 008h ; c1 e8 08 5095 or ax, cx ; 09 c8 5100 5096 mov si, word [bp+016h] ; 8b 76 16 5101 5097 shr si, 008h ; c1 ee 08 5102 mov bx, word [bp+01ah] ; 8b 5e 1a5103 xor bh, bh ; 30 ff5104 mov word [bp-006h], bx ; 89 5e fa5105 test bx, bx ; 85 db5106 j e near 03f98h ; 0f 84 68 025107 mov bx, word [bp-012h] ; 8b 5e ee5108 cmp bx, word [bp-00ch] ; 3b 5e f45109 j nbe near 03fd8h ; 0f 87 9e025098 mov cx, word [bp+01ah] ; 8b 4e 1a 5099 xor ch, ch ; 30 ed 5100 mov word [bp-006h], cx ; 89 4e fa 5101 test cx, cx ; 85 c9 5102 jne short 03d46h ; 75 03 5103 jmp near 03cafh ; e9 69 ff 5104 cmp di, word [bp-00ch] ; 3b 7e f4 5105 jc near 03f99h ; 0f 82 4c 02 5110 5106 cmp ax, dx ; 39 d0 5111 jnc near 03f d8h ; 0f 83 98025112 cmp si, di ; 39 fe5113 jnc near 03f d8h ; 0f 83 92025107 jnc near 03f99h ; 0f 83 46 02 5108 cmp si, bx ; 39 de 5109 jnc near 03f99h ; 0f 83 40 02 5114 5110 mov dx, word [bp+01ah] ; 8b 56 1a 5115 5111 shr dx, 008h ; c1 ea 08 5116 5112 cmp dx, strict byte 00004h ; 83 fa 04 5117 je near 03f98h ; 0f 84 45 02 5113 jne short 03d67h ; 75 03 5114 jmp near 03cafh ; e9 48 ff 5118 5115 mov dx, word [bp+014h] ; 8b 56 14 5119 5116 shr dx, 004h ; c1 ea 04 5120 mov bx, word [bp+00ah] ; 8b 5e 0a5121 add bx, dx ; 01 d35122 mov word [bp-0 0eh], bx ; 89 5e f25117 mov cx, word [bp+00ah] ; 8b 4e 0a 5118 add cx, dx ; 01 d1 5119 mov word [bp-012h], cx ; 89 4e ee 5123 5120 mov dx, word [bp+014h] ; 8b 56 14 5124 5121 and dx, strict byte 0000fh ; 83 e2 0f 5125 mov word [bp-01 0h], dx ; 89 56 f05122 mov word [bp-018h], dx ; 89 56 e8 5126 5123 xor dl, dl ; 30 d2 5127 mov bx, di ; 89 fb5128 5124 xor cx, cx ; 31 c9 5129 call 08f f9h ; e8 86525125 call 08fe9h ; e8 64 52 5130 5126 xor bx, bx ; 31 db 5131 5127 add ax, si ; 01 f0 5132 5128 adc dx, bx ; 11 da 5133 mov bx, word [bp-00ch] ; 8b 5e f45129 mov bx, di ; 89 fb 5134 5130 xor cx, cx ; 31 c9 5135 call 08ff9h ; e8 78 52 5136 mov bx, word [bp-012h] ; 8b 5e ee 5137 dec bx ; 4b 5131 call 08fe9h ; e8 57 52 5132 mov bx, ax ; 89 c3 5133 mov ax, word [bp-00ch] ; 8b 46 f4 5134 dec ax ; 48 5138 5135 xor cx, cx ; 31 c9 5139 5136 add ax, bx ; 01 d8 … … 5150 5147 shr di, 1 ; d1 ef 5151 5148 rcr si, 1 ; d1 de 5152 mov bx, ax ; 89 c3 5153 xor bh, ah ; 30 e7 5154 and bl, 003h ; 80 e3 03 5155 mov word [bp-014h], bx ; 89 5e ec 5156 xor bx, bx ; 31 db 5149 mov word [bp-01ah], di ; 89 7e e6 5150 mov di, ax ; 89 c7 5151 and di, strict byte 00003h ; 83 e7 03 5152 xor bh, bh ; 30 ff 5157 5153 add ax, word [bp-006h] ; 03 46 fa 5158 5154 adc dx, bx ; 11 da … … 5168 5164 mov dx, ss ; 8c d2 5169 5165 lea ax, [bp-02ah] ; 8d 46 d6 5170 call 090 2ah ; e8 52525166 call 0901ah ; e8 31 52 5171 5167 mov word [bp-02ah], strict word 00028h ; c7 46 d6 28 00 5172 mov ax, word [bp-01 8h] ; 8b 46 e85168 mov ax, word [bp-010h] ; 8b 46 f0 5173 5169 add ax, si ; 01 f0 5174 mov dx, word [bp-0 16h] ; 8b 56 ea5175 adc dx, di ; 11 fa5170 mov dx, word [bp-00eh] ; 8b 56 f2 5171 adc dx, word [bp-01ah] ; 13 56 e6 5176 5172 xchg ah, al ; 86 c4 5177 5173 xchg dh, dl ; 86 d6 … … 5179 5175 mov word [bp-028h], ax ; 89 46 d8 5180 5176 mov word [bp-026h], dx ; 89 56 da 5181 mov dx, word [bp-01eh] ; 8b 56 e2 5182 sub dx, si ; 29 f2 5183 inc dx ; 42 5184 mov ax, dx ; 89 d0 5177 mov ax, word [bp-01eh] ; 8b 46 e2 5178 sub ax, si ; 29 f0 5179 inc ax ; 40 5185 5180 xchg ah, al ; 86 c4 5186 5181 mov word [bp-023h], ax ; 89 46 dd 5182 mov ax, word [bp-006h] ; 8b 46 fa 5187 5183 les bx, [bp-00ah] ; c4 5e f6 5188 mov word [es:bx+00ah], dx ; 26 89 57 0a5184 mov word [es:bx+00ah], ax ; 26 89 47 0a 5189 5185 mov word [es:bx+00ch], 00200h ; 26 c7 47 0c 00 02 5190 mov ax, word [bp-014h] ; 8b 46 ec5186 mov ax, di ; 89 f8 5191 5187 sal ax, 009h ; c1 e0 09 5192 5188 mov word [es:bx+01ah], ax ; 26 89 47 1a 5193 5189 mov dx, word [bp-006h] ; 8b 56 fa 5190 xor dh, dh ; 30 f6 5191 and dl, 003h ; 80 e2 03 5192 mov bx, strict word 00004h ; bb 04 00 5193 sub bx, dx ; 29 d3 5194 mov dx, bx ; 89 da 5195 sub dx, di ; 29 fa 5194 5196 sal dx, 009h ; c1 e2 09 5195 5197 and dh, 007h ; 80 e6 07 5196 mov bx, 00800h ; bb 00 085197 sub bx, dx ; 29 d35198 mov dx, bx ; 89 da5199 mov bx, word [bp-00ah] ; 8b 5e f65200 mov bx, word [es:bx+01ah] ; 26 8b 5f 1a5201 sub dx, bx ; 29 da5202 5198 mov bx, word [bp-00ah] ; 8b 5e f6 5203 5199 mov word [es:bx+01ch], dx ; 26 89 57 1c 5204 cmp byte [bp-002h], 00ch ; 80 7e fe 0c 5205 jc short 03e64h ; 72 28 5206 push dword [bp-010h] ; 66 ff 76 f0 5200 movzx dx, byte [bp-002h] ; 0f b6 56 fe 5201 imul dx, dx, strict byte 00018h ; 6b d2 18 5202 add bx, dx ; 01 d3 5203 movzx dx, byte [es:bx+01eh] ; 26 0f b6 57 1e 5204 add dx, dx ; 01 d2 5205 mov word [bp-016h], dx ; 89 56 ea 5206 push word [bp-012h] ; ff 76 ee 5207 push word [bp-018h] ; ff 76 e8 5207 5208 push strict byte 00001h ; 6a 01 5208 5209 mov si, word [bp-006h] ; 8b 76 fa … … 5211 5212 sal si, 1 ; d1 e6 5212 5213 rcl di, 1 ; d1 d7 5213 loop 03e 4ah ; e2 fa5214 loop 03e69h ; e2 fa 5214 5215 push di ; 57 5215 5216 push si ; 56 … … 5219 5220 lea bx, [bp-02ah] ; 8d 5e d6 5220 5221 mov dx, strict word 0000ch ; ba 0c 00 5221 call 082c2h ; e8 60 44 5222 jmp short 03eb8h ; eb 54 5223 cmp byte [bp-002h], 008h ; 80 7e fe 08 5224 jc short 03e92h ; 72 28 5225 push dword [bp-010h] ; 66 ff 76 f0 5226 push strict byte 00001h ; 6a 01 5227 mov si, word [bp-006h] ; 8b 76 fa 5228 xor di, di ; 31 ff 5229 mov cx, strict word 00009h ; b9 09 00 5230 sal si, 1 ; d1 e6 5231 rcl di, 1 ; d1 d7 5232 loop 03e78h ; e2 fa 5233 push di ; 57 5234 push si ; 56 5235 push ax ; 50 5236 movzx ax, byte [bp-002h] ; 0f b6 46 fe 5237 mov cx, ss ; 8c d1 5238 lea bx, [bp-02ah] ; 8d 5e d6 5239 mov dx, strict word 0000ch ; ba 0c 00 5240 call 07626h ; e8 96 37 5241 jmp short 03eb8h ; eb 26 5242 push dword [bp-010h] ; 66 ff 76 f0 5243 push strict byte 00001h ; 6a 01 5244 mov si, word [bp-006h] ; 8b 76 fa 5245 xor di, di ; 31 ff 5246 mov cx, strict word 00009h ; b9 09 00 5247 sal si, 1 ; d1 e6 5248 rcl di, 1 ; d1 d7 5249 loop 03ea0h ; e2 fa 5250 push di ; 57 5251 push si ; 56 5252 push ax ; 50 5253 movzx ax, byte [bp-002h] ; 0f b6 46 fe 5254 mov cx, ss ; 8c d1 5255 lea bx, [bp-02ah] ; 8d 5e d6 5256 mov dx, strict word 0000ch ; ba 0c 00 5257 call 027eah ; e8 32 e9 5258 mov dl, al ; 88 c2 5222 mov si, word [bp-016h] ; 8b 76 ea 5223 call word [word si+00000h] ; ff 94 00 00 5224 mov dx, ax ; 89 c2 5259 5225 les bx, [bp-00ah] ; c4 5e f6 5260 5226 db 066h, 026h, 0c7h, 047h, 01ah, 000h, 000h, 000h, 000h 5261 5227 ; mov dword [es:bx+01ah], strict dword 000000000h ; 66 26 c7 47 1a 00 00 00 00 5262 test dl, dl ; 84 d25263 je near 03 f98h ; 0f 84 cc 005264 mov bx, 00 cech ; bb ec 0c5228 test al, al ; 84 c0 5229 je near 03cafh ; 0f 84 16 fe 5230 mov bx, 00d32h ; bb 32 0d 5265 5231 mov cx, ds ; 8c d9 5266 5232 mov ax, strict word 00004h ; b8 04 00 5267 call 018aeh ; e8 d7 d95233 call 018aeh ; e8 0a da 5268 5234 movzx ax, dl ; 0f b6 c2 5269 5235 push ax ; 50 … … 5271 5237 shr ax, 008h ; c1 e8 08 5272 5238 push ax ; 50 5273 push 002b ah ; 68 ba025274 push 002f ch ; 68 fc025239 push 002bch ; 68 bc 02 5240 push 002feh ; 68 fe 02 5275 5241 push strict byte 00004h ; 6a 04 5276 call 018e9h ; e8 fc d95242 call 018e9h ; e8 2f da 5277 5243 add sp, strict byte 0000ah ; 83 c4 0a 5278 5244 mov ax, word [bp+01ah] ; 8b 46 1a … … 5281 5247 mov word [bp+01ah], ax ; 89 46 1a 5282 5248 mov byte [bp+01ah], 000h ; c6 46 1a 00 5283 jmp near 03f e3h ; e9 e1005249 jmp near 03fa4h ; e9 d5 00 5284 5250 mov es, [bp-004h] ; 8e 46 fc 5285 mov ax, word [es:si+014h] ; 26 8b 44 14 5286 mov word [bp-00ch], ax ; 89 46 f4 5251 mov di, word [es:si+014h] ; 26 8b 7c 14 5287 5252 mov dx, word [es:si+012h] ; 26 8b 54 12 5288 5253 dec dx ; 4a 5289 mov di, word [es:si+010h] ; 26 8b 7c 105290 dec di ; 4f5254 mov bx, word [es:si+010h] ; 26 8b 5c 10 5255 dec bx ; 4b 5291 5256 mov byte [bp+01ah], 000h ; c6 46 1a 00 5292 mov cx, word [bp+014h] ; 8b 4e 14 5293 xor cl, cl ; 30 c9 5294 mov ax, word [bp+018h] ; 8b 46 18 5295 xor ah, ah ; 30 e4 5296 mov word [bp-01ah], ax ; 89 46 e6 5297 mov ax, dx ; 89 d0 5298 xor ah, dh ; 30 f4 5299 sal ax, 008h ; c1 e0 08 5300 mov bx, word [bp-01ah] ; 8b 5e e6 5301 or bx, ax ; 09 c3 5302 mov word [bp+018h], bx ; 89 5e 18 5257 mov ax, word [bp+014h] ; 8b 46 14 5258 xor al, al ; 30 c0 5259 mov cx, word [bp+018h] ; 8b 4e 18 5260 xor ch, ch ; 30 ed 5261 mov word [bp-016h], cx ; 89 4e ea 5262 mov cx, dx ; 89 d1 5263 xor ch, dh ; 30 f5 5264 sal cx, 008h ; c1 e1 08 5265 mov word [bp-014h], cx ; 89 4e ec 5266 mov cx, word [bp-016h] ; 8b 4e ea 5267 or cx, word [bp-014h] ; 0b 4e ec 5268 mov word [bp+018h], cx ; 89 4e 18 5303 5269 shr dx, 002h ; c1 ea 02 5304 5270 xor dh, dh ; 30 f6 5305 5271 and dl, 0c0h ; 80 e2 c0 5306 mov ax, word [bp-00ch] ; 8b 46 f4 5307 and AL, strict byte 03fh ; 24 3f 5308 or dl, al ; 08 c2 5309 mov ax, bx ; 89 d8 5310 xor al, bl ; 30 d8 5311 or ax, dx ; 09 d0 5312 mov word [bp+018h], ax ; 89 46 18 5313 mov ax, word [bp+016h] ; 8b 46 16 5314 xor ah, ah ; 30 e4 5315 sal di, 008h ; c1 e7 08 5316 or ax, di ; 09 f8 5317 mov word [bp+016h], ax ; 89 46 16 5318 xor al, al ; 30 c0 5319 or AL, strict byte 002h ; 0c 02 5320 mov word [bp+016h], ax ; 89 46 16 5321 mov al, byte [es:si+001h] ; 26 8a 44 01 5322 mov word [bp+014h], cx ; 89 4e 14 5323 cmp AL, strict byte 003h ; 3c 03 5324 je short 03f89h ; 74 1c 5325 cmp AL, strict byte 002h ; 3c 02 5326 je short 03f81h ; 74 10 5327 cmp AL, strict byte 001h ; 3c 01 5328 jne short 03f8eh ; 75 19 5272 and di, strict byte 0003fh ; 83 e7 3f 5273 or dx, di ; 09 fa 5274 xor cl, cl ; 30 c9 5275 or cx, dx ; 09 d1 5276 mov word [bp+018h], cx ; 89 4e 18 5277 mov dx, word [bp+016h] ; 8b 56 16 5278 xor dh, dh ; 30 f6 5279 sal bx, 008h ; c1 e3 08 5280 or dx, bx ; 09 da 5281 mov word [bp+016h], dx ; 89 56 16 5282 xor dl, dl ; 30 d2 5283 or dl, 002h ; 80 ca 02 5284 mov word [bp+016h], dx ; 89 56 16 5285 mov dl, byte [es:si+001h] ; 26 8a 54 01 5286 mov word [bp+014h], ax ; 89 46 14 5287 cmp dl, 003h ; 80 fa 03 5288 je short 03f53h ; 74 1a 5289 cmp dl, 002h ; 80 fa 02 5290 je short 03f4fh ; 74 11 5291 cmp dl, 001h ; 80 fa 01 5292 jne short 03f57h ; 75 14 5329 5293 mov ax, word [bp+014h] ; 8b 46 14 5330 5294 xor al, al ; 30 c0 5331 5295 or AL, strict byte 002h ; 0c 02 5332 5296 mov word [bp+014h], ax ; 89 46 14 5333 jmp short 03f8eh ; eb 0d 5334 or cl, 004h ; 80 c9 04 5335 mov word [bp+014h], cx ; 89 4e 14 5336 jmp short 03f8eh ; eb 05 5337 or cl, 006h ; 80 c9 06 5338 jmp short 03f84h ; eb f6 5297 jmp short 03f57h ; eb 08 5298 or AL, strict byte 004h ; 0c 04 5299 jmp short 03f4ah ; eb f7 5300 or AL, strict byte 005h ; 0c 05 5301 jmp short 03f4ah ; eb f3 5302 mov es, [bp-004h] ; 8e 46 fc 5303 cmp byte [es:si+001h], 004h ; 26 80 7c 01 04 5304 jnc near 03cafh ; 0f 83 4c fd 5339 5305 mov word [bp+00ch], 0efc7h ; c7 46 0c c7 ef 5340 5306 mov word [bp+00ah], 0f000h ; c7 46 0a 00 f0 5341 mov byte [bp+01bh], 000h ; c6 46 1b 00 5342 xor bx, bx ; 31 db 5343 mov dx, strict word 00074h ; ba 74 00 5344 mov ax, strict word 00040h ; b8 40 00 5345 call 0160eh ; e8 67 d6 5346 and byte [bp+020h], 0feh ; 80 66 20 fe 5347 leave ; c9 5348 pop di ; 5f 5349 pop si ; 5e 5350 retn ; c3 5351 or di, 00300h ; 81 cf 00 03 5352 mov word [bp+01ah], di ; 89 7e 1a 5353 jmp short 03f9ch ; eb e4 5354 mov bx, 00cech ; bb ec 0c 5307 jmp near 03cafh ; e9 3f fd 5308 or bh, 003h ; 80 cf 03 5309 mov word [bp+01ah], bx ; 89 5e 1a 5310 jmp near 03cb3h ; e9 3a fd 5311 mov bx, 00d32h ; bb 32 0d 5355 5312 mov cx, ds ; 8c d9 5356 5313 mov ax, strict word 00004h ; b8 04 00 5357 call 018aeh ; e8 eb d85314 call 018aeh ; e8 2a d9 5358 5315 mov ax, word [bp+01ah] ; 8b 46 1a 5359 5316 shr ax, 008h ; c1 e8 08 5360 5317 push ax ; 50 5361 push 002b ah ; 68 ba025362 push 0031 dh ; 68 1d035318 push 002bch ; 68 bc 02 5319 push 0031fh ; 68 1f 03 5363 5320 push strict byte 00004h ; 6a 04 5364 call 018e9h ; e8 14d95321 call 018e9h ; e8 53 d9 5365 5322 add sp, strict byte 00008h ; 83 c4 08 5366 5323 mov ax, word [bp+01ah] ; 8b 46 1a … … 5373 5330 mov dx, strict word 00074h ; ba 74 00 5374 5331 mov ax, strict word 00040h ; b8 40 00 5375 call 0160eh ; e8 1ad65332 call 0160eh ; e8 59 d6 5376 5333 or byte [bp+020h], 001h ; 80 4e 20 01 5377 jmp short 03fabh ; eb b15334 jmp near 03cc2h ; e9 06 fd 5378 5335 push ax ; 50 5379 5336 dec si ; 4e … … 5394 5351 add AL, strict byte 003h ; 04 03 5395 5352 add al, byte [bx+di] ; 02 01 5396 add dh, ch ; 00 ee 5353 add byte [di+045h], dl ; 00 55 45 5354 aam 042h ; d4 42 5355 rol byte [bx+si+055h], 045h ; c0 40 55 45 5356 mov CH, strict byte 040h ; b5 40 5357 push bp ; 55 5397 5358 inc bp ; 45 5398 xchg di, ax ; 97 5359 mov CH, strict byte 040h ; b5 40 5360 push bp ; 55 5399 5361 inc bp ; 45 5400 inc byte [bx+si-012h] ; fe 40 ee 5362 aam 042h ; d4 42 5363 push bp ; 55 5364 inc bp ; 45 5365 push bp ; 55 5366 inc bp ; 45 5367 aam 042h ; d4 42 5368 aam 042h ; d4 42 5369 aam 042h ; d4 42 5370 aam 042h ; d4 42 5371 aam 042h ; d4 42 5372 jmp far 05542h:0d440h ; ea 40 d4 42 55 5401 5373 inc bp ; 45 5402 5374 rep inc ax ; f3 40 5403 out DX, AL ; ee 5375 push ES ; 06 5376 inc cx ; 41 5377 mov CH, strict byte 040h ; b5 40 5378 push ES ; 06 5379 inc cx ; 41 5380 xor AL, strict byte 042h ; 34 42 5381 jmp short 0404dh ; eb 42 5382 push ES ; 06 5383 inc cx ; 41 5384 adc al, byte [bp+di+00eh] ; 12 43 0e 5404 5385 inc bp ; 45 5405 rep inc ax ; f3 40 5406 out DX, AL ; ee 5386 push SS ; 16 5407 5387 inc bp ; 45 5408 xchg di, ax ; 975388 push bp ; 55 5409 5389 inc bp ; 45 5410 out DX, AL ; ee 5411 inc bp ; 45 5412 out DX, AL ; ee 5413 inc bp ; 45 5414 xchg di, ax ; 97 5415 inc bp ; 45 5416 xchg di, ax ; 97 5417 inc bp ; 45 5418 xchg di, ax ; 97 5419 inc bp ; 45 5420 xchg di, ax ; 97 5421 inc bp ; 45 5422 xchg di, ax ; 97 5423 inc bp ; 45 5424 sub byte [bx+di-069h], al ; 28 41 97 5425 inc bp ; 45 5426 out DX, AL ; ee 5427 inc bp ; 45 5428 xor word [bx+di+044h], ax ; 31 41 44 5429 inc cx ; 41 5430 rep inc ax ; f3 40 5431 inc sp ; 44 5432 inc cx ; 41 5433 iret ; cf 5434 inc dx ; 42 5435 jc short 0408ch ; 72 43 5436 inc sp ; 44 5437 inc cx ; 41 5438 lahf ; 9f 5439 inc bx ; 43 5440 scasb ; ae 5441 inc bp ; 45 5442 mov DH, strict byte 045h ; b6 45 5443 out DX, AL ; ee 5444 inc bp ; 45 5445 _int13_cdrom: ; 0xf4053 LB 0x5b8 5390 _int13_cdrom: ; 0xf4015 LB 0x55d 5446 5391 push si ; 56 5447 5392 push di ; 57 … … 5449 5394 mov dx, strict word 0000eh ; ba 0e 00 5450 5395 mov ax, strict word 00040h ; b8 40 00 5451 call 0161ch ; e8 bad55452 mov word [bp-01 8h], ax ; 89 46 e85396 call 0161ch ; e8 f8 d5 5397 mov word [bp-016h], ax ; 89 46 ea 5453 5398 mov si, 00122h ; be 22 01 5454 mov word [bp-00 ah], ax ; 89 46 f65399 mov word [bp-008h], ax ; 89 46 f8 5455 5400 xor bx, bx ; 31 db 5456 5401 mov dx, strict word 00074h ; ba 74 00 5457 5402 mov ax, strict word 00040h ; b8 40 00 5458 call 0160eh ; e8 98d55403 call 0160eh ; e8 d6 d5 5459 5404 mov ax, word [bp+014h] ; 8b 46 14 5460 5405 xor ah, ah ; 30 e4 5461 5406 cmp ax, 000e0h ; 3d e0 00 5462 jc short 040 85h ; 72 055407 jc short 04047h ; 72 05 5463 5408 cmp ax, 000f0h ; 3d f0 00 5464 jc short 040 a3h ; 72 1e5409 jc short 04065h ; 72 1e 5465 5410 mov ax, word [bp+014h] ; 8b 46 14 5466 5411 xor ah, ah ; 30 e4 … … 5469 5414 shr ax, 008h ; c1 e8 08 5470 5415 push ax ; 50 5471 push 0034 dh ; 68 4d035472 push 0035 9h ; 68 59035416 push 0034fh ; 68 4f 03 5417 push 0035bh ; 68 5b 03 5473 5418 push strict byte 00004h ; 6a 04 5474 call 018e9h ; e8 4cd85419 call 018e9h ; e8 8a d8 5475 5420 add sp, strict byte 0000ah ; 83 c4 0a 5476 jmp near 045 cch ; e9 29 055421 jmp near 04532h ; e9 cd 04 5477 5422 mov ax, word [bp+014h] ; 8b 46 14 5478 5423 xor ah, ah ; 30 e4 5479 mov es, [bp-00 ah] ; 8e 46 f65424 mov es, [bp-008h] ; 8e 46 f8 5480 5425 mov bx, si ; 89 f3 5481 5426 add bx, ax ; 01 c3 5482 5427 mov dl, byte [es:bx+000d0h] ; 26 8a 97 d0 00 5483 mov byte [bp-00 2h], dl ; 88 56 fe5428 mov byte [bp-004h], dl ; 88 56 fc 5484 5429 cmp dl, 010h ; 80 fa 10 5485 jc short 040 cch ; 72 105430 jc short 0408eh ; 72 10 5486 5431 push ax ; 50 5487 5432 mov ax, word [bp+01ch] ; 8b 46 1c 5488 5433 shr ax, 008h ; c1 e8 08 5489 5434 push ax ; 50 5490 push 0034 dh ; 68 4d035491 push 0038 4h ; 68 84035492 jmp short 040 98h ; eb cc5435 push 0034fh ; 68 4f 03 5436 push 00386h ; 68 86 03 5437 jmp short 0405ah ; eb cc 5493 5438 mov ax, word [bp+01ch] ; 8b 46 1c 5494 5439 shr ax, 008h ; c1 e8 08 5495 5440 cmp ax, strict word 00050h ; 3d 50 00 5496 jnbe near 045 eeh ; 0f 87 15 055441 jnbe near 04555h ; 0f 87 ba 04 5497 5442 push CS ; 0e 5498 5443 pop ES ; 07 5499 5444 mov cx, strict word 0001eh ; b9 1e 00 5500 mov di, 03f fah ; bf fa3f5445 mov di, 03fbch ; bf bc 3f 5501 5446 repne scasb ; f2 ae 5502 5447 sal cx, 1 ; d1 e1 5503 5448 mov di, cx ; 89 cf 5504 mov ax, word [cs:di+0 4017h] ; 2e 8b 85 17 405449 mov ax, word [cs:di+03fd9h] ; 2e 8b 85 d9 3f 5505 5450 mov bx, word [bp+01ch] ; 8b 5e 1c 5506 5451 xor bh, bh ; 30 ff … … 5509 5454 xor ah, ah ; 30 e4 5510 5455 or ah, 003h ; 80 cc 03 5511 jmp near 045 d4h ; e9 d6045456 jmp near 0453ah ; e9 7a 04 5512 5457 mov dx, strict word 00074h ; ba 74 00 5513 5458 mov ax, strict word 00040h ; b8 40 00 5514 call 01600h ; e8 f9 d45459 call 01600h ; e8 37 d5 5515 5460 mov cl, al ; 88 c1 5516 5461 movzx ax, cl ; 0f b6 c1 … … 5521 5466 mov dx, strict word 00074h ; ba 74 00 5522 5467 mov ax, strict word 00040h ; b8 40 00 5523 call 0160eh ; e8 ef d45468 call 0160eh ; e8 2d d5 5524 5469 test cl, cl ; 84 c9 5525 je near 04 59bh ; 0f 84 76 045526 jmp near 045 e8h ; e9 c0045470 je near 042d8h ; 0f 84 f1 01 5471 jmp near 0454eh ; e9 64 04 5527 5472 or bh, 002h ; 80 cf 02 5528 5473 mov word [bp+01ch], bx ; 89 5e 1c 5529 jmp near 045 d7h ; e9 a6045474 jmp near 0453dh ; e9 4a 04 5530 5475 mov word [bp+016h], 0aa55h ; c7 46 16 55 aa 5531 5476 or bh, 030h ; 80 cf 30 5532 5477 mov word [bp+01ch], bx ; 89 5e 1c 5533 5478 mov word [bp+01ah], strict word 00007h ; c7 46 1a 07 00 5534 jmp near 04 59bh ; e9 57 045479 jmp near 042d8h ; e9 d2 01 5535 5480 mov bx, word [bp+010h] ; 8b 5e 10 5536 5481 mov es, [bp+00ah] ; 8e 46 0a 5537 mov di, bx ; 89 df5538 mov [bp-0 16h], es ; 8c 46 ea5482 mov word [bp-010h], bx ; 89 5e f0 5483 mov [bp-00eh], es ; 8c 46 f2 5539 5484 mov ax, word [es:bx+002h] ; 26 8b 47 02 5485 mov word [bp-00ch], ax ; 89 46 f4 5486 mov ax, word [es:bx+006h] ; 26 8b 47 06 5487 mov word [bp-018h], ax ; 89 46 e8 5488 mov ax, word [es:bx+004h] ; 26 8b 47 04 5540 5489 mov word [bp-01ch], ax ; 89 46 e4 5541 mov ax, word [es:bx+006h] ; 26 8b 47 065542 mov word [bp-012h], ax ; 89 46 ee5543 mov ax, word [es:bx+004h] ; 26 8b 47 045544 mov word [bp-010h], ax ; 89 46 f05545 5490 mov ax, word [es:bx+00ch] ; 26 8b 47 0c 5546 5491 mov word [bp-014h], ax ; 89 46 ec 5547 mov ax, word [es:bx+00eh] ; 26 8b 47 0e 5548 mov word [bp-00eh], ax ; 89 46 f2 5549 or ax, word [bp-014h] ; 0b 46 ec 5550 je short 0418fh ; 74 18 5492 mov di, word [es:bx+00eh] ; 26 8b 7f 0e 5493 or di, ax ; 09 c7 5494 je short 0414eh ; 74 18 5551 5495 mov ax, word [bp+01ch] ; 8b 46 1c 5552 5496 shr ax, 008h ; c1 e8 08 5553 5497 push ax ; 50 5554 push 0034 dh ; 68 4d035555 push 003b 6h ; 68 b6035498 push 0034fh ; 68 4f 03 5499 push 003b8h ; 68 b8 03 5556 5500 push strict byte 00007h ; 6a 07 5557 call 018e9h ; e8 60d75501 call 018e9h ; e8 a1 d7 5558 5502 add sp, strict byte 00008h ; 83 c4 08 5559 jmp near 045 cch ; e9 3d 045560 mov es, [bp-016h] ; 8e 46 ea5561 mov ax, word [es: di+008h] ; 26 8b 45085503 jmp near 04532h ; e9 e4 03 5504 les bx, [bp-010h] ; c4 5e f0 5505 mov ax, word [es:bx+008h] ; 26 8b 47 08 5562 5506 mov word [bp-014h], ax ; 89 46 ec 5563 mov ax, word [es:di+00ah] ; 26 8b 45 0a5564 mov word [bp-00eh], ax ; 89 46 f25507 mov di, bx ; 89 df 5508 mov di, word [es:di+00ah] ; 26 8b 7d 0a 5565 5509 mov ax, word [bp+01ch] ; 8b 46 1c 5566 5510 shr ax, 008h ; c1 e8 08 5511 mov word [bp-012h], ax ; 89 46 ee 5567 5512 cmp ax, strict word 00044h ; 3d 44 00 5568 je near 04 597h ; 0f 84 ea 035513 je near 042d4h ; 0f 84 66 01 5569 5514 cmp ax, strict word 00047h ; 3d 47 00 5570 je near 04 597h ; 0f 84 e3 035515 je near 042d4h ; 0f 84 5f 01 5571 5516 mov cx, strict word 0000ch ; b9 0c 00 5572 5517 xor bx, bx ; 31 db 5573 5518 mov dx, ss ; 8c d2 5574 5519 lea ax, [bp-028h] ; 8d 46 d8 5575 call 090 2ah ; e8 694e5520 call 0901ah ; e8 98 4e 5576 5521 mov word [bp-028h], strict word 00028h ; c7 46 d8 28 00 5577 5522 mov ax, word [bp-014h] ; 8b 46 ec 5578 mov dx, word [bp-00eh] ; 8b 56 f25523 mov dx, di ; 89 fa 5579 5524 xchg ah, al ; 86 c4 5580 5525 xchg dh, dl ; 86 d6 … … 5582 5527 mov word [bp-026h], ax ; 89 46 da 5583 5528 mov word [bp-024h], dx ; 89 56 dc 5584 mov ax, word [bp-0 1ch] ; 8b 46 e45529 mov ax, word [bp-00ch] ; 8b 46 f4 5585 5530 xchg ah, al ; 86 c4 5586 5531 mov word [bp-021h], ax ; 89 46 df 5587 mov ax, word [bp-0 1ch] ; 8b 46 e45588 mov es, [bp-00 ah] ; 8e 46 f65532 mov ax, word [bp-00ch] ; 8b 46 f4 5533 mov es, [bp-008h] ; 8e 46 f8 5589 5534 mov word [es:si+00ah], ax ; 26 89 44 0a 5590 5535 mov word [es:si+00ch], 00800h ; 26 c7 44 0c 00 08 5591 mov al, byte [bp-002h] ; 8a 46 fe 5592 cmp AL, strict byte 00ch ; 3c 0c 5593 jc short 04221h ; 72 2b 5594 push word [bp-012h] ; ff 76 ee 5595 push word [bp-010h] ; ff 76 f0 5536 movzx bx, byte [bp-004h] ; 0f b6 5e fc 5537 imul bx, bx, strict byte 00018h ; 6b db 18 5538 add bx, si ; 01 f3 5539 movzx di, byte [es:bx+01eh] ; 26 0f b6 7f 1e 5540 add di, di ; 01 ff 5541 push word [bp-018h] ; ff 76 e8 5542 push word [bp-01ch] ; ff 76 e4 5596 5543 push strict byte 00001h ; 6a 01 5597 mov ax, word [bp-01ch] ; 8b 46 e45598 5544 xor bx, bx ; 31 db 5599 5545 mov cx, strict word 0000bh ; b9 0b 00 5600 5546 sal ax, 1 ; d1 e0 5601 5547 rcl bx, 1 ; d1 d3 5602 loop 04 206h ; e2 fa5548 loop 041cch ; e2 fa 5603 5549 push bx ; 53 5604 5550 push ax ; 50 5605 5551 push strict byte 00000h ; 6a 00 5606 movzx ax, byte [bp-00 2h] ; 0f b6 46 fe5552 movzx ax, byte [bp-004h] ; 0f b6 46 fc 5607 5553 mov cx, ss ; 8c d1 5608 5554 lea bx, [bp-028h] ; 8d 5e d8 5609 5555 mov dx, strict word 0000ch ; ba 0c 00 5610 call 082c2h ; e8 a3 40 5611 jmp short 04279h ; eb 58 5612 cmp AL, strict byte 008h ; 3c 08 5613 jc short 04250h ; 72 2b 5614 push word [bp-012h] ; ff 76 ee 5615 push word [bp-010h] ; ff 76 f0 5616 push strict byte 00001h ; 6a 01 5617 mov ax, word [bp-01ch] ; 8b 46 e4 5618 xor bx, bx ; 31 db 5556 call word [word di+00000h] ; ff 95 00 00 5557 mov dx, ax ; 89 c2 5558 mov es, [bp-008h] ; 8e 46 f8 5559 mov ax, word [es:si+016h] ; 26 8b 44 16 5560 mov di, word [es:si+018h] ; 26 8b 7c 18 5619 5561 mov cx, strict word 0000bh ; b9 0b 00 5620 sal ax, 1 ; d1 e0 5621 rcl bx, 1 ; d1 d3 5622 loop 04235h ; e2 fa 5623 push bx ; 53 5624 push ax ; 50 5625 push strict byte 00000h ; 6a 00 5626 movzx ax, byte [bp-002h] ; 0f b6 46 fe 5627 mov cx, ss ; 8c d1 5628 lea bx, [bp-028h] ; 8d 5e d8 5629 mov dx, strict word 0000ch ; ba 0c 00 5630 call 07626h ; e8 d8 33 5631 jmp short 04279h ; eb 29 5632 push word [bp-012h] ; ff 76 ee 5633 push word [bp-010h] ; ff 76 f0 5634 push strict byte 00001h ; 6a 01 5635 mov ax, word [bp-01ch] ; 8b 46 e4 5636 xor bx, bx ; 31 db 5637 mov cx, strict word 0000bh ; b9 0b 00 5638 sal ax, 1 ; d1 e0 5639 rcl bx, 1 ; d1 d3 5640 loop 04260h ; e2 fa 5641 push bx ; 53 5642 push ax ; 50 5643 push strict byte 00000h ; 6a 00 5644 movzx ax, byte [bp-002h] ; 0f b6 46 fe 5645 mov cx, ss ; 8c d1 5646 lea bx, [bp-028h] ; 8d 5e d8 5647 mov dx, strict word 0000ch ; ba 0c 00 5648 call 027eah ; e8 71 e5 5649 mov byte [bp-006h], al ; 88 46 fa 5650 mov es, [bp-00ah] ; 8e 46 f6 5651 mov ax, word [es:si+016h] ; 26 8b 44 16 5652 mov bx, word [es:si+018h] ; 26 8b 5c 18 5653 mov cx, strict word 0000bh ; b9 0b 00 5654 shr bx, 1 ; d1 eb 5562 shr di, 1 ; d1 ef 5655 5563 rcr ax, 1 ; d1 d8 5656 loop 04 28ah ; e2 fa5657 mov es, [bp-016h] ; 8e 46 ea5658 mov word [es: di+002h], ax ; 26 89 45025659 cmp byte [bp-006h], 000h ; 80 7e fa 005660 je near 04 597h ; 0f 84 f8 025661 mov bx, 00 cech ; bb ec 0c5564 loop 041f6h ; e2 fa 5565 les bx, [bp-010h] ; c4 5e f0 5566 mov word [es:bx+002h], ax ; 26 89 47 02 5567 test dl, dl ; 84 d2 5568 je near 042d4h ; 0f 84 cb 00 5569 mov bx, 00d32h ; bb 32 0d 5662 5570 mov cx, ds ; 8c d9 5663 5571 mov ax, strict word 00004h ; b8 04 00 5664 call 018aeh ; e8 04d65665 movzx ax, byte [bp-006h] ; 0f b6 46 fa5572 call 018aeh ; e8 9a d6 5573 movzx ax, dl ; 0f b6 c2 5666 5574 push ax ; 50 5667 mov ax, word [bp+01ch] ; 8b 46 1c 5668 shr ax, 008h ; c1 e8 08 5669 push ax ; 50 5670 push 0034dh ; 68 4d 03 5671 push 003dfh ; 68 df 03 5575 push word [bp-012h] ; ff 76 ee 5576 push 0034fh ; 68 4f 03 5577 push 003e1h ; 68 e1 03 5672 5578 push strict byte 00004h ; 6a 04 5673 call 018e9h ; e8 28d65579 call 018e9h ; e8 c3 d6 5674 5580 add sp, strict byte 0000ah ; 83 c4 0a 5675 5581 mov ax, word [bp+01ch] ; 8b 46 1c 5676 5582 xor ah, ah ; 30 e4 5677 5583 or ah, 00ch ; 80 cc 0c 5678 jmp near 045 d4h ; e9 05035584 jmp near 0453ah ; e9 06 03 5679 5585 cmp bx, strict byte 00002h ; 83 fb 02 5680 jnbe near 045 cch ; 0f 87 f6025681 movzx ax, byte [bp-00 2h] ; 0f b6 46 fe5586 jnbe near 04532h ; 0f 87 f7 02 5587 movzx ax, byte [bp-004h] ; 0f b6 46 fc 5682 5588 imul ax, ax, strict byte 00018h ; 6b c0 18 5683 mov es, [bp-00 ah] ; 8e 46 f65589 mov es, [bp-008h] ; 8e 46 f8 5684 5590 mov di, si ; 89 f7 5685 5591 add di, ax ; 01 c7 5686 5592 mov al, byte [es:di+021h] ; 26 8a 45 21 5687 5593 cmp bx, strict byte 00002h ; 83 fb 02 5688 je short 04 361h ; 74 745594 je short 042c5h ; 74 73 5689 5595 cmp bx, strict byte 00001h ; 83 fb 01 5690 je short 04 32dh ; 74 3b5596 je short 04292h ; 74 3b 5691 5597 test bx, bx ; 85 db 5692 jne near 04 597h ; 0f 85 9f 025598 jne near 042d4h ; 0f 85 77 00 5693 5599 cmp AL, strict byte 0ffh ; 3c ff 5694 jne short 04 30eh ; 75 125600 jne short 04273h ; 75 12 5695 5601 mov ax, word [bp+01ch] ; 8b 46 1c 5696 5602 xor ah, ah ; 30 e4 … … 5699 5605 xor al, al ; 30 c0 5700 5606 or AL, strict byte 001h ; 0c 01 5701 jmp near 045 d4h ; e9 c6025702 movzx dx, byte [bp-00 2h] ; 0f b6 56 fe5607 jmp near 0453ah ; e9 c7 02 5608 movzx dx, byte [bp-004h] ; 0f b6 56 fc 5703 5609 imul dx, dx, strict byte 00018h ; 6b d2 18 5704 5610 db 0feh, 0c0h 5705 5611 ; inc al ; fe c0 5706 mov es, [bp-00 ah] ; 8e 46 f65612 mov es, [bp-008h] ; 8e 46 f8 5707 5613 add si, dx ; 01 d6 5708 5614 mov byte [es:si+021h], al ; 26 88 44 21 … … 5711 5617 or AL, strict byte 001h ; 0c 01 5712 5618 mov word [bp+01ch], ax ; 89 46 1c 5713 jmp near 04 597h ; e9 6a 025619 jmp near 042d4h ; e9 42 00 5714 5620 test al, al ; 84 c0 5715 jne short 04 33dh ; 75 0c5621 jne short 042a2h ; 75 0c 5716 5622 or bh, 0b0h ; 80 cf b0 5717 5623 mov word [bp+01ch], bx ; 89 5e 1c 5718 5624 mov byte [bp+01ch], al ; 88 46 1c 5719 jmp near 045 d7h ; e9 9a025720 movzx dx, byte [bp-00 2h] ; 0f b6 56 fe5625 jmp near 0453dh ; e9 9b 02 5626 movzx dx, byte [bp-004h] ; 0f b6 56 fc 5721 5627 imul dx, dx, strict byte 00018h ; 6b d2 18 5722 5628 db 0feh, 0c8h 5723 5629 ; dec al ; fe c8 5724 mov es, [bp-00 ah] ; 8e 46 f65630 mov es, [bp-008h] ; 8e 46 f8 5725 5631 add si, dx ; 01 d6 5726 5632 mov byte [es:si+021h], al ; 26 88 44 21 5633 test al, al ; 84 c0 5634 db 00fh, 095h, 0c0h 5635 ; setne al ; 0f 95 c0 5636 movzx dx, al ; 0f b6 d0 5637 mov ax, word [bp+01ch] ; 8b 46 1c 5638 xor al, al ; 30 c0 5639 or ax, dx ; 09 d0 5640 jmp short 0428ch ; eb c7 5727 5641 test al, al ; 84 c0 5728 5642 db 00fh, 095h, 0c0h … … 5732 5646 mov dl, al ; 88 c2 5733 5647 mov word [bp+01ch], dx ; 89 56 1c 5734 jmp near 04597h ; e9 36 02 5735 test al, al ; 84 c0 5736 db 00fh, 095h, 0c0h 5737 ; setne al ; 0f 95 c0 5738 movzx dx, al ; 0f b6 d0 5739 mov ax, word [bp+01ch] ; 8b 46 1c 5740 xor al, al ; 30 c0 5741 or ax, dx ; 09 d0 5742 jmp short 04327h ; eb b5 5743 movzx ax, byte [bp-002h] ; 0f b6 46 fe 5648 mov byte [bp+01dh], 000h ; c6 46 1d 00 5649 xor bx, bx ; 31 db 5650 mov dx, strict word 00074h ; ba 74 00 5651 mov ax, strict word 00040h ; b8 40 00 5652 call 0160eh ; e8 2b d3 5653 and byte [bp+022h], 0feh ; 80 66 22 fe 5654 leave ; c9 5655 pop di ; 5f 5656 pop si ; 5e 5657 retn ; c3 5658 movzx ax, byte [bp-004h] ; 0f b6 46 fc 5744 5659 imul ax, ax, strict byte 00018h ; 6b c0 18 5745 mov es, [bp-00 ah] ; 8e 46 f65660 mov es, [bp-008h] ; 8e 46 f8 5746 5661 add si, ax ; 01 c6 5747 5662 mov al, byte [es:si+021h] ; 26 8a 44 21 5748 5663 test al, al ; 84 c0 5749 je short 043 8ch ; 74 065664 je short 04305h ; 74 06 5750 5665 or bh, 0b1h ; 80 cf b1 5751 jmp near 0412bh ; e9 9f fd 5752 cmp byte [bp-006h], 000h ; 80 7e fa 00 5753 je near 04597h ; 0f 84 03 02 5666 jmp near 040edh ; e9 e8 fd 5667 je short 042d4h ; 74 cd 5754 5668 mov ax, word [bp+01ch] ; 8b 46 1c 5755 5669 xor ah, ah ; 30 e4 5756 5670 or ah, 0b1h ; 80 cc b1 5757 jmp near 045 d4h ; e9 35025671 jmp near 0453ah ; e9 28 02 5758 5672 mov dx, word [bp+010h] ; 8b 56 10 5759 5673 mov cx, word [bp+00ah] ; 8b 4e 0a 5760 5674 mov bx, dx ; 89 d3 5761 mov word [bp-00 8h], cx ; 89 4e f85675 mov word [bp-006h], cx ; 89 4e fa 5762 5676 mov es, cx ; 8e c1 5763 5677 mov di, dx ; 89 d7 5764 5678 mov ax, word [es:di] ; 26 8b 05 5765 mov word [bp-00 ch], ax ; 89 46 f45679 mov word [bp-00ah], ax ; 89 46 f6 5766 5680 cmp ax, strict word 0001ah ; 3d 1a 00 5767 jc near 045cch ; 0f 82 11 02 5768 jc short 0440ah ; 72 4d 5769 movzx di, byte [bp-002h] ; 0f b6 7e fe 5770 imul di, di, strict byte 00018h ; 6b ff 18 5771 mov es, [bp-00ah] ; 8e 46 f6 5772 add di, si ; 01 f7 5681 jc near 04532h ; 0f 82 04 02 5682 jc short 0437fh ; 72 4f 5683 movzx ax, byte [bp-004h] ; 0f b6 46 fc 5684 imul ax, ax, strict byte 00018h ; 6b c0 18 5685 mov es, [bp-008h] ; 8e 46 f8 5686 mov di, si ; 89 f7 5687 add di, ax ; 01 c7 5773 5688 mov ax, word [es:di+024h] ; 26 8b 45 24 5774 5689 mov es, cx ; 8e c1 … … 5787 5702 db 066h, 026h, 0c7h, 045h, 014h, 0ffh, 0ffh, 0ffh, 0ffh 5788 5703 ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff 5789 cmp word [bp-00 ch], strict byte 0001eh ; 83 7e f41e5790 jc near 044 e2h ; 0f 82 d0005791 mov es, [bp-00 8h] ; 8e 46 f85704 cmp word [bp-00ah], strict byte 0001eh ; 83 7e f6 1e 5705 jc near 04456h ; 0f 82 cf 00 5706 mov es, [bp-006h] ; 8e 46 fa 5792 5707 mov word [es:bx], strict word 0001eh ; 26 c7 07 1e 00 5793 mov ax, word [bp-01 8h] ; 8b 46 e85708 mov ax, word [bp-016h] ; 8b 46 ea 5794 5709 mov word [es:bx+01ch], ax ; 26 89 47 1c 5795 5710 mov word [es:bx+01ah], 00312h ; 26 c7 47 1a 12 03 5796 movzx cx, byte [bp-00 2h] ; 0f b6 4e fe5711 movzx cx, byte [bp-004h] ; 0f b6 4e fc 5797 5712 mov ax, cx ; 89 c8 5798 5713 cwd ; 99 … … 5800 5715 ; sub ax, dx ; 2b c2 5801 5716 sar ax, 1 ; d1 f8 5802 xor ah, ah ; 30 e4 5803 imul ax, ax, strict byte 00006h ; 6b c0 06 5804 mov es, [bp-00ah] ; 8e 46 f6 5805 mov di, si ; 89 f7 5806 add di, ax ; 01 c7 5717 movzx di, al ; 0f b6 f8 5718 imul di, di, strict byte 00006h ; 6b ff 06 5719 mov es, [bp-008h] ; 8e 46 f8 5720 add di, si ; 01 f7 5807 5721 mov ax, word [es:di+001c2h] ; 26 8b 85 c2 01 5808 5722 mov word [bp-01ah], ax ; 89 46 e6 5809 5723 mov dx, word [es:di+001c4h] ; 26 8b 95 c4 01 5810 5724 mov al, byte [es:di+001c1h] ; 26 8a 85 c1 01 5811 mov byte [bp-00 4h], al ; 88 46 fc5725 mov byte [bp-002h], al ; 88 46 fe 5812 5726 imul cx, cx, strict byte 00018h ; 6b c9 18 5813 5727 mov di, si ; 89 f7 … … 5817 5731 db 00fh, 094h, 0c0h 5818 5732 ; sete al ; 0f 94 c0 5819 movzx cx, al ; 0f b6 c8 5820 or cl, 070h ; 80 c9 70 5733 xor ah, ah ; 30 e4 5734 or AL, strict byte 070h ; 0c 70 5735 mov di, ax ; 89 c7 5821 5736 mov ax, word [bp-01ah] ; 8b 46 e6 5822 5737 mov word [es:si+001f0h], ax ; 26 89 84 f0 01 5823 5738 mov word [es:si+001f2h], dx ; 26 89 94 f2 01 5824 movzx ax, byte [bp-00 2h] ; 0f b6 46 fe5739 movzx ax, byte [bp-004h] ; 0f b6 46 fc 5825 5740 cwd ; 99 5826 mov di, strict word 00002h ; bf02 005827 idiv di ; f7 ff5741 mov cx, strict word 00002h ; b9 02 00 5742 idiv cx ; f7 f9 5828 5743 or dl, 00eh ; 80 ca 0e 5829 5744 mov ax, dx ; 89 d0 … … 5831 5746 mov byte [es:si+001f4h], al ; 26 88 84 f4 01 5832 5747 mov byte [es:si+001f5h], 0cbh ; 26 c6 84 f5 01 cb 5833 mov al, byte [bp-00 4h] ; 8a 46 fc5748 mov al, byte [bp-002h] ; 8a 46 fe 5834 5749 mov byte [es:si+001f6h], al ; 26 88 84 f6 01 5835 5750 mov word [es:si+001f7h], strict word 00001h ; 26 c7 84 f7 01 01 00 5836 5751 mov byte [es:si+001f9h], 000h ; 26 c6 84 f9 01 00 5837 mov word [es:si+001fah], cx ; 26 89 8c fa 015752 mov word [es:si+001fah], di ; 26 89 bc fa 01 5838 5753 mov word [es:si+001fch], strict word 00000h ; 26 c7 84 fc 01 00 00 5839 5754 mov byte [es:si+001feh], 011h ; 26 c6 84 fe 01 11 5840 5755 xor cl, cl ; 30 c9 5841 5756 xor ch, ch ; 30 ed 5842 jmp short 044 c5h ; eb 055757 jmp short 04439h ; eb 05 5843 5758 cmp ch, 00fh ; 80 fd 0f 5844 jnc short 044 d8h ; 73 135759 jnc short 0444ch ; 73 13 5845 5760 movzx dx, ch ; 0f b6 d5 5846 5761 add dx, 00312h ; 81 c2 12 03 5847 mov ax, word [bp-01 8h] ; 8b 46 e85848 call 01600h ; e8 2ed15762 mov ax, word [bp-016h] ; 8b 46 ea 5763 call 01600h ; e8 ba d1 5849 5764 add cl, al ; 00 c1 5850 5765 db 0feh, 0c5h 5851 5766 ; inc ch ; fe c5 5852 jmp short 044 c0h ; eb e85767 jmp short 04434h ; eb e8 5853 5768 neg cl ; f6 d9 5854 mov es, [bp-00 ah] ; 8e 46 f65769 mov es, [bp-008h] ; 8e 46 f8 5855 5770 mov byte [es:si+001ffh], cl ; 26 88 8c ff 01 5856 cmp word [bp-00 ch], strict byte 00042h ; 83 7e f4425857 jc near 04 597h ; 0f 82 ad 005858 movzx ax, byte [bp-00 2h] ; 0f b6 46 fe5771 cmp word [bp-00ah], strict byte 00042h ; 83 7e f6 42 5772 jc near 042d4h ; 0f 82 76 fe 5773 movzx ax, byte [bp-004h] ; 0f b6 46 fc 5859 5774 cwd ; 99 5860 5775 db 02bh, 0c2h … … 5863 5778 xor ah, ah ; 30 e4 5864 5779 imul ax, ax, strict byte 00006h ; 6b c0 06 5865 mov es, [bp-00 ah] ; 8e 46 f65780 mov es, [bp-008h] ; 8e 46 f8 5866 5781 add si, ax ; 01 c6 5867 5782 mov al, byte [es:si+001c0h] ; 26 8a 84 c0 01 5868 5783 mov dx, word [es:si+001c2h] ; 26 8b 94 c2 01 5869 mov es, [bp-00 8h] ; 8e 46 f85784 mov es, [bp-006h] ; 8e 46 fa 5870 5785 mov word [es:bx], strict word 00042h ; 26 c7 07 42 00 5871 5786 db 066h, 026h, 0c7h, 047h, 01eh, 0ddh, 0beh, 024h, 000h … … 5873 5788 mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00 5874 5789 test al, al ; 84 c0 5875 jne short 04 52bh ; 75 095790 jne short 0449fh ; 75 09 5876 5791 db 066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h 5877 5792 ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20 5878 mov es, [bp-00 8h] ; 8e 46 f85793 mov es, [bp-006h] ; 8e 46 fa 5879 5794 db 066h, 026h, 0c7h, 047h, 028h, 041h, 054h, 041h, 020h 5880 5795 ; mov dword [es:bx+028h], strict dword 020415441h ; 66 26 c7 47 28 41 54 41 20 … … 5882 5797 ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20 5883 5798 test al, al ; 84 c0 5884 jne short 04 557h ; 75 135799 jne short 044cbh ; 75 13 5885 5800 mov word [es:bx+030h], dx ; 26 89 57 30 5886 5801 db 066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h 5887 5802 ; mov dword [es:bx+032h], strict dword 000000000h ; 66 26 c7 47 32 00 00 00 00 5888 5803 mov word [es:bx+036h], strict word 00000h ; 26 c7 47 36 00 00 5889 mov al, byte [bp-00 2h] ; 8a 46 fe5804 mov al, byte [bp-004h] ; 8a 46 fc 5890 5805 and AL, strict byte 001h ; 24 01 5891 5806 xor ah, ah ; 30 e4 5892 mov es, [bp-00 8h] ; 8e 46 f85807 mov es, [bp-006h] ; 8e 46 fa 5893 5808 mov word [es:bx+038h], ax ; 26 89 47 38 5894 5809 db 066h, 026h, 0c7h, 047h, 03ah, 000h, 000h, 000h, 000h … … 5897 5812 xor al, al ; 30 c0 5898 5813 mov AH, strict byte 01eh ; b4 1e 5899 jmp short 04 57fh ; eb 055814 jmp short 044f3h ; eb 05 5900 5815 cmp ah, 040h ; 80 fc 40 5901 jnc short 045 8eh ; 73 0f5816 jnc short 04502h ; 73 0f 5902 5817 movzx si, ah ; 0f b6 f4 5903 mov es, [bp-00 8h] ; 8e 46 f85818 mov es, [bp-006h] ; 8e 46 fa 5904 5819 add si, bx ; 01 de 5905 5820 add al, byte [es:si] ; 26 02 04 5906 5821 db 0feh, 0c4h 5907 5822 ; inc ah ; fe c4 5908 jmp short 04 57ah ; eb ec5823 jmp short 044eeh ; eb ec 5909 5824 neg al ; f6 d8 5910 mov es, [bp-00 8h] ; 8e 46 f85825 mov es, [bp-006h] ; 8e 46 fa 5911 5826 mov byte [es:bx+041h], al ; 26 88 47 41 5912 mov byte [bp+01dh], 000h ; c6 46 1d 00 5913 xor bx, bx ; 31 db 5914 mov dx, strict word 00074h ; ba 74 00 5915 mov ax, strict word 00040h ; b8 40 00 5916 call 0160eh ; e8 68 d0 5917 and byte [bp+022h], 0feh ; 80 66 22 fe 5918 leave ; c9 5919 pop di ; 5f 5920 pop si ; 5e 5921 retn ; c3 5827 jmp near 042d4h ; e9 c6 fd 5922 5828 or bh, 006h ; 80 cf 06 5923 5829 mov word [bp+01ch], bx ; 89 5e 1c 5924 jmp short 045 e8h ; eb 325830 jmp short 0454eh ; eb 38 5925 5831 cmp bx, strict byte 00006h ; 83 fb 06 5926 je short 04597h ; 74 dc5832 je near 042d4h ; 0f 84 b7 fd 5927 5833 cmp bx, strict byte 00001h ; 83 fb 01 5928 jc short 045 cch ; 72 0c5929 jbe short 04597h ; 76 d55834 jc short 04532h ; 72 10 5835 jbe near 042d4h ; 0f 86 ae fd 5930 5836 cmp bx, strict byte 00003h ; 83 fb 03 5931 jc short 045 cch ; 72 055837 jc short 04532h ; 72 07 5932 5838 cmp bx, strict byte 00004h ; 83 fb 04 5933 jbe short 04597h ; 76 cb5839 jbe near 042d4h ; 0f 86 a2 fd 5934 5840 mov ax, word [bp+01ch] ; 8b 46 1c 5935 5841 xor ah, ah ; 30 e4 … … 5941 5847 mov dx, strict word 00074h ; ba 74 00 5942 5848 mov ax, strict word 00040h ; b8 40 00 5943 call 0160eh ; e8 26d05849 call 0160eh ; e8 c0 d0 5944 5850 or byte [bp+022h], 001h ; 80 4e 22 01 5945 jmp short 045aah ; eb bc5946 mov bx, 00 cech ; bb ec 0c5851 jmp near 042e7h ; e9 92 fd 5852 mov bx, 00d32h ; bb 32 0d 5947 5853 mov cx, ds ; 8c d9 5948 5854 mov ax, strict word 00004h ; b8 04 00 5949 call 018aeh ; e8 b5 d25855 call 018aeh ; e8 4e d3 5950 5856 mov ax, word [bp+01ch] ; 8b 46 1c 5951 5857 shr ax, 008h ; c1 e8 08 5952 5858 push ax ; 50 5953 push 0034 dh ; 68 4d035954 push 002a 1h ; 68 a1025859 push 0034fh ; 68 4f 03 5860 push 002a3h ; 68 a3 02 5955 5861 push strict byte 00004h ; 6a 04 5956 jmp near 041 86h ; e9 7bfb5957 print_boot_device_: ; 0xf4 60bLB 0x485862 jmp near 04145h ; e9 d3 fb 5863 print_boot_device_: ; 0xf4572 LB 0x48 5958 5864 push cx ; 51 5959 5865 push bp ; 55 5960 5866 mov bp, sp ; 89 e5 5961 5867 test al, al ; 84 c0 5962 je short 04 618h ; 74 055868 je short 0457fh ; 74 05 5963 5869 mov dx, strict word 00002h ; ba 02 00 5964 jmp short 04 632h ; eb 1a5870 jmp short 04599h ; eb 1a 5965 5871 test dl, dl ; 84 d2 5966 je short 04 621h ; 74 055872 je short 04588h ; 74 05 5967 5873 mov dx, strict word 00003h ; ba 03 00 5968 jmp short 04 632h ; eb 115874 jmp short 04599h ; eb 11 5969 5875 test bl, 080h ; f6 c3 80 5970 jne short 04 62ah ; 75 045876 jne short 04591h ; 75 04 5971 5877 xor dh, dh ; 30 f6 5972 jmp short 04 632h ; eb 085878 jmp short 04599h ; eb 08 5973 5879 test bl, 080h ; f6 c3 80 5974 je short 04 650h ; 74 215880 je short 045b7h ; 74 21 5975 5881 mov dx, strict word 00001h ; ba 01 00 5976 mov bx, 00 cech ; bb ec 0c5882 mov bx, 00d32h ; bb 32 0d 5977 5883 mov cx, ds ; 8c d9 5978 5884 mov ax, strict word 00004h ; b8 04 00 5979 call 018aeh ; e8 71 d25885 call 018aeh ; e8 0a d3 5980 5886 imul dx, dx, strict byte 0000ah ; 6b d2 0a 5981 add dx, 00d 12h ; 81 c2 120d5887 add dx, 00d58h ; 81 c2 58 0d 5982 5888 push dx ; 52 5983 push 0040 2h ; 68 02045889 push 00404h ; 68 04 04 5984 5890 push strict byte 00004h ; 6a 04 5985 call 018e9h ; e8 9c d25891 call 018e9h ; e8 35 d3 5986 5892 add sp, strict byte 00006h ; 83 c4 06 5987 5893 pop bp ; 5d 5988 5894 pop cx ; 59 5989 5895 retn ; c3 5990 print_boot_failure_: ; 0xf4 653LB 0x905896 print_boot_failure_: ; 0xf45ba LB 0x90 5991 5897 push si ; 56 5992 5898 push bp ; 55 … … 5997 5903 movzx si, ah ; 0f b6 f4 5998 5904 test al, al ; 84 c0 5999 je short 04 680h ; 74 1b6000 mov bx, 00 cech ; bb ec 0c5905 je short 045e7h ; 74 1b 5906 mov bx, 00d32h ; bb 32 0d 6001 5907 mov cx, ds ; 8c d9 6002 5908 mov ax, strict word 00004h ; b8 04 00 6003 call 018aeh ; e8 3ed26004 push 00d 26h ; 68 260d6005 push 0041 6h ; 68 16045909 call 018aeh ; e8 d7 d2 5910 push 00d6ch ; 68 6c 0d 5911 push 00418h ; 68 18 04 6006 5912 push strict byte 00004h ; 6a 04 6007 call 018e9h ; e8 6e d25913 call 018e9h ; e8 07 d3 6008 5914 add sp, strict byte 00006h ; 83 c4 06 6009 jmp short 046 c4h ; eb 445915 jmp short 0462bh ; eb 44 6010 5916 test dl, dl ; 84 d2 6011 je short 04 694h ; 74 106012 mov bx, 00 cech ; bb ec 0c5917 je short 045fbh ; 74 10 5918 mov bx, 00d32h ; bb 32 0d 6013 5919 mov cx, ds ; 8c d9 6014 5920 mov ax, strict word 00004h ; b8 04 00 6015 call 018aeh ; e8 1fd26016 push 00d 30h ; 68 300d6017 jmp short 04 673h ; eb df5921 call 018aeh ; e8 b8 d2 5922 push 00d76h ; 68 76 0d 5923 jmp short 045dah ; eb df 6018 5924 test bl, 080h ; f6 c3 80 6019 je short 046 aah ; 74 116020 mov bx, 00 cech ; bb ec 0c5925 je short 04611h ; 74 11 5926 mov bx, 00d32h ; bb 32 0d 6021 5927 mov cx, ds ; 8c d9 6022 5928 mov ax, strict word 00004h ; b8 04 00 6023 call 018aeh ; e8 0ad25929 call 018aeh ; e8 a3 d2 6024 5930 push si ; 56 6025 push 00d 1ch ; 68 1c0d6026 jmp short 046 b9h ; eb 0f6027 mov bx, 00 cech ; bb ec 0c5931 push 00d62h ; 68 62 0d 5932 jmp short 04620h ; eb 0f 5933 mov bx, 00d32h ; bb 32 0d 6028 5934 mov cx, ds ; 8c d9 6029 5935 mov ax, strict word 00004h ; b8 04 00 6030 call 018aeh ; e8 f9 d15936 call 018aeh ; e8 92 d2 6031 5937 push si ; 56 6032 push 00d 12h ; 68 120d6033 push 0042 bh ; 68 2b045938 push 00d58h ; 68 58 0d 5939 push 0042dh ; 68 2d 04 6034 5940 push strict byte 00004h ; 6a 04 6035 call 018e9h ; e8 28d25941 call 018e9h ; e8 c1 d2 6036 5942 add sp, strict byte 00008h ; 83 c4 08 6037 5943 cmp byte [bp+006h], 001h ; 80 7e 06 01 6038 jne short 046 deh ; 75 145944 jne short 04645h ; 75 14 6039 5945 test dh, dh ; 84 f6 6040 jne short 046 d3h ; 75 056041 push 0044 3h ; 68 43046042 jmp short 046 d6h ; eb 036043 push 0046 dh ; 68 6d045946 jne short 0463ah ; 75 05 5947 push 00445h ; 68 45 04 5948 jmp short 0463dh ; eb 03 5949 push 0046fh ; 68 6f 04 6044 5950 push strict byte 00007h ; 6a 07 6045 call 018e9h ; e8 0ed25951 call 018e9h ; e8 a7 d2 6046 5952 add sp, strict byte 00004h ; 83 c4 04 6047 5953 pop bp ; 5d 6048 5954 pop si ; 5e 6049 5955 retn 00002h ; c2 02 00 6050 print_cdromboot_failure_: ; 0xf46 e3LB 0x245956 print_cdromboot_failure_: ; 0xf464a LB 0x24 6051 5957 push bx ; 53 6052 5958 push cx ; 51 … … 6055 5961 mov bp, sp ; 89 e5 6056 5962 mov dx, ax ; 89 c2 6057 mov bx, 00 cech ; bb ec 0c5963 mov bx, 00d32h ; bb 32 0d 6058 5964 mov cx, ds ; 8c d9 6059 5965 mov ax, strict word 00004h ; b8 04 00 6060 call 018aeh ; e8 b8 d15966 call 018aeh ; e8 51 d2 6061 5967 push dx ; 52 6062 push 004a 2h ; 68 a2045968 push 004a4h ; 68 a4 04 6063 5969 push strict byte 00004h ; 6a 04 6064 call 018e9h ; e8 ea d15970 call 018e9h ; e8 83 d2 6065 5971 add sp, strict byte 00006h ; 83 c4 06 6066 5972 pop bp ; 5d … … 6069 5975 pop bx ; 5b 6070 5976 retn ; c3 6071 _int19_function: ; 0xf4 707LB 0x2515977 _int19_function: ; 0xf466e LB 0x251 6072 5978 push si ; 56 6073 5979 push di ; 57 … … 6075 5981 mov dx, strict word 0000eh ; ba 0e 00 6076 5982 mov ax, strict word 00040h ; b8 40 00 6077 call 0161ch ; e8 06cf5983 call 0161ch ; e8 9f cf 6078 5984 mov bx, ax ; 89 c3 6079 5985 mov word [bp-00ah], ax ; 89 46 f6 6080 5986 mov byte [bp-004h], 000h ; c6 46 fc 00 6081 5987 mov ax, strict word 0003dh ; b8 3d 00 6082 call 0165ch ; e8 37cf5988 call 0165ch ; e8 d0 cf 6083 5989 movzx si, al ; 0f b6 f0 6084 5990 mov ax, strict word 00038h ; b8 38 00 6085 call 0165ch ; e8 2ecf5991 call 0165ch ; e8 c7 cf 6086 5992 and AL, strict byte 0f0h ; 24 f0 6087 5993 xor ah, ah ; 30 e4 … … 6089 5995 or si, ax ; 09 c6 6090 5996 mov ax, strict word 0003ch ; b8 3c 00 6091 call 0165ch ; e8 1fcf5997 call 0165ch ; e8 b8 cf 6092 5998 and AL, strict byte 00fh ; 24 0f 6093 5999 xor ah, ah ; 30 e4 … … 6096 6002 mov dx, 00339h ; ba 39 03 6097 6003 mov ax, bx ; 89 d8 6098 call 01600h ; e8 b2 ce6004 call 01600h ; e8 4b cf 6099 6005 test al, al ; 84 c0 6100 je short 04 75dh ; 74 0b6006 je short 046c4h ; 74 0b 6101 6007 mov dx, 00339h ; ba 39 03 6102 6008 mov ax, bx ; 89 d8 6103 call 01600h ; e8 a6 ce6009 call 01600h ; e8 3f cf 6104 6010 movzx si, al ; 0f b6 f0 6105 6011 cmp byte [bp+008h], 001h ; 80 7e 08 01 6106 jne short 04 773h ; 75 106012 jne short 046dah ; 75 10 6107 6013 mov ax, strict word 0003ch ; b8 3c 00 6108 call 0165ch ; e8 f3 ce6014 call 0165ch ; e8 8c cf 6109 6015 and AL, strict byte 0f0h ; 24 f0 6110 6016 xor ah, ah ; 30 e4 6111 6017 sar ax, 004h ; c1 f8 04 6112 call 07 34fh ; e8 dc 2b6018 call 072b6h ; e8 dc 2b 6113 6019 cmp byte [bp+008h], 002h ; 80 7e 08 02 6114 jne short 04 77ch ; 75 036020 jne short 046e3h ; 75 03 6115 6021 shr si, 004h ; c1 ee 04 6116 6022 cmp byte [bp+008h], 003h ; 80 7e 08 03 6117 jne short 04 785h ; 75 036023 jne short 046ech ; 75 03 6118 6024 shr si, 008h ; c1 ee 08 6119 6025 cmp byte [bp+008h], 004h ; 80 7e 08 04 6120 jne short 04 78eh ; 75 036026 jne short 046f5h ; 75 03 6121 6027 shr si, 00ch ; c1 ee 0c 6122 6028 cmp si, strict byte 00010h ; 83 fe 10 6123 jnc short 04 797h ; 73 046029 jnc short 046feh ; 73 04 6124 6030 mov byte [bp-004h], 001h ; c6 46 fc 01 6125 6031 xor al, al ; 30 c0 … … 6127 6033 mov byte [bp-006h], al ; 88 46 fa 6128 6034 mov byte [bp-008h], al ; 88 46 f8 6129 mov bx, 00 cech ; bb ec 0c6035 mov bx, 00d32h ; bb 32 0d 6130 6036 mov cx, ds ; 8c d9 6131 6037 mov ax, strict word 00004h ; b8 04 00 6132 call 018aeh ; e8 01d16038 call 018aeh ; e8 9a d1 6133 6039 push si ; 56 6134 6040 movzx ax, byte [bp+008h] ; 0f b6 46 08 6135 6041 push ax ; 50 6136 push 004c 2h ; 68 c2046042 push 004c4h ; 68 c4 04 6137 6043 push strict byte 00004h ; 6a 04 6138 call 018e9h ; e8 2ed16044 call 018e9h ; e8 c7 d1 6139 6045 add sp, strict byte 00008h ; 83 c4 08 6140 6046 and si, strict byte 0000fh ; 83 e6 0f 6141 6047 cmp si, strict byte 00002h ; 83 fe 02 6142 jc short 047 d4h ; 72 0e6143 jbe short 047 e3h ; 76 1b6048 jc short 0473bh ; 72 0e 6049 jbe short 0474ah ; 76 1b 6144 6050 cmp si, strict byte 00004h ; 83 fe 04 6145 je short 04 801h ; 74 346051 je short 04768h ; 74 34 6146 6052 cmp si, strict byte 00003h ; 83 fe 03 6147 je short 047 f7h ; 74 256148 jmp short 04 82eh ; eb 5a6053 je short 0475eh ; 74 25 6054 jmp short 04795h ; eb 5a 6149 6055 cmp si, strict byte 00001h ; 83 fe 01 6150 jne short 04 82eh ; 75 556056 jne short 04795h ; 75 55 6151 6057 xor al, al ; 30 c0 6152 6058 mov byte [bp-002h], al ; 88 46 fe 6153 6059 mov byte [bp-006h], al ; 88 46 fa 6154 jmp short 04 846h ; eb 636060 jmp short 047adh ; eb 63 6155 6061 mov dx, 00338h ; ba 38 03 6156 6062 mov ax, word [bp-00ah] ; 8b 46 f6 6157 call 01600h ; e8 14ce6063 call 01600h ; e8 ad ce 6158 6064 add AL, strict byte 080h ; 04 80 6159 6065 mov byte [bp-002h], al ; 88 46 fe 6160 6066 mov byte [bp-006h], 000h ; c6 46 fa 00 6161 jmp short 04 846h ; eb 4f6067 jmp short 047adh ; eb 4f 6162 6068 mov byte [bp-002h], 000h ; c6 46 fe 00 6163 6069 mov byte [bp-006h], 001h ; c6 46 fa 01 6164 jmp short 04 80bh ; eb 0a6070 jmp short 04772h ; eb 0a 6165 6071 mov byte [bp-008h], 001h ; c6 46 f8 01 6166 6072 cmp byte [bp-006h], 000h ; 80 7e fa 00 6167 je short 04 846h ; 74 3b6168 call 037 5ah ; e8 4c ef6073 je short 047adh ; 74 3b 6074 call 037d6h ; e8 61 f0 6169 6075 mov bx, ax ; 89 c3 6170 6076 test AL, strict byte 0ffh ; a8 ff 6171 je short 04 835h ; 74 216172 call 046 e3h ; e8 cc fe6077 je short 0479ch ; 74 21 6078 call 0464ah ; e8 cc fe 6173 6079 movzx ax, byte [bp-004h] ; 0f b6 46 fc 6174 6080 push ax ; 50 … … 6177 6083 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6178 6084 mov cx, strict word 00001h ; b9 01 00 6179 call 04 653h ; e8 25 fe6085 call 045bah ; e8 25 fe 6180 6086 xor ax, ax ; 31 c0 6181 6087 xor dx, dx ; 31 d2 6182 jmp near 04 954h ; e9 1f 016088 jmp near 048bbh ; e9 1f 01 6183 6089 mov dx, 0032eh ; ba 2e 03 6184 6090 mov ax, word [bp-00ah] ; 8b 46 f6 6185 call 0161ch ; e8 de cd6091 call 0161ch ; e8 77 ce 6186 6092 mov di, ax ; 89 c7 6187 6093 shr bx, 008h ; c1 eb 08 6188 6094 mov byte [bp-002h], bl ; 88 5e fe 6189 6095 cmp byte [bp-008h], 001h ; 80 7e f8 01 6190 jne near 048 c2h ; 0f 85 74 006096 jne near 04829h ; 0f 85 74 00 6191 6097 xor si, si ; 31 f6 6192 6098 mov ax, 0e200h ; b8 00 e2 6193 6099 mov es, ax ; 8e c0 6194 6100 cmp word [es:si], 0aa55h ; 26 81 3c 55 aa 6195 jne short 04 817h ; 75 bb6101 jne short 0477eh ; 75 bb 6196 6102 mov cx, ax ; 89 c1 6197 6103 mov si, word [es:si+01ah] ; 26 8b 74 1a 6198 6104 cmp word [es:si+002h], 0506eh ; 26 81 7c 02 6e 50 6199 jne short 04 817h ; 75 ad6105 jne short 0477eh ; 75 ad 6200 6106 cmp word [es:si], 05024h ; 26 81 3c 24 50 6201 jne short 04 817h ; 75 a66107 jne short 0477eh ; 75 a6 6202 6108 mov di, word [es:si+00eh] ; 26 8b 7c 0e 6203 6109 mov dx, word [es:di] ; 26 8b 15 6204 6110 mov ax, word [es:di+002h] ; 26 8b 45 02 6205 6111 cmp ax, 06568h ; 3d 68 65 6206 jne short 048 a0h ; 75 1f6112 jne short 04807h ; 75 1f 6207 6113 cmp dx, 07445h ; 81 fa 45 74 6208 jne short 048 a0h ; 75 196114 jne short 04807h ; 75 19 6209 6115 movzx bx, byte [bp-002h] ; 0f b6 5e fe 6210 6116 movzx dx, byte [bp-008h] ; 0f b6 56 f8 6211 6117 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6212 call 04 60bh ; e8 75 fd6118 call 04572h ; e8 75 fd 6213 6119 mov word [bp-00eh], strict word 00006h ; c7 46 f2 06 00 6214 6120 mov word [bp-00ch], cx ; 89 4e f4 6215 jmp short 048 bch ; eb 1c6121 jmp short 04823h ; eb 1c 6216 6122 movzx bx, byte [bp-002h] ; 0f b6 5e fe 6217 6123 movzx dx, byte [bp-008h] ; 0f b6 56 f8 6218 6124 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6219 call 04 60bh ; e8 5c fd6125 call 04572h ; e8 5c fd 6220 6126 sti ; fb 6221 6127 mov word [bp-00ch], cx ; 89 4e f4 … … 6224 6130 mov word [bp-00eh], ax ; 89 46 f2 6225 6131 call far [bp-00eh] ; ff 5e f2 6226 jmp near 04 817h ; e9 55 ff6132 jmp near 0477eh ; e9 55 ff 6227 6133 cmp byte [bp-006h], 000h ; 80 7e fa 00 6228 jne short 048 eeh ; 75 266134 jne short 04855h ; 75 26 6229 6135 cmp byte [bp-008h], 000h ; 80 7e f8 00 6230 jne short 048 eeh ; 75 206136 jne short 04855h ; 75 20 6231 6137 mov di, 007c0h ; bf c0 07 6232 6138 mov es, di ; 8e c7 … … 6241 6147 sbb ax, strict byte 00000h ; 83 d8 00 6242 6148 test ax, ax ; 85 c0 6243 jne near 04 817h ; 0f 85 29 ff6149 jne near 0477eh ; 0f 85 29 ff 6244 6150 cmp byte [bp-002h], 000h ; 80 7e fe 00 6245 6151 db 00fh, 094h, 0c1h 6246 6152 ; sete cl ; 0f 94 c1 6247 6153 cmp byte [bp-006h], 000h ; 80 7e fa 00 6248 je short 048 fdh ; 74 026154 je short 04864h ; 74 02 6249 6155 mov CL, strict byte 001h ; b1 01 6250 6156 xor dx, dx ; 31 d2 6251 6157 mov ax, di ; 89 f8 6252 call 0161ch ; e8 18cd6158 call 0161ch ; e8 b1 cd 6253 6159 mov bx, ax ; 89 c3 6254 6160 mov dx, strict word 00002h ; ba 02 00 6255 6161 mov ax, di ; 89 f8 6256 call 0161ch ; e8 0ecd6162 call 0161ch ; e8 a7 cd 6257 6163 cmp bx, ax ; 39 c3 6258 je short 04 923h ; 74 116164 je short 0488ah ; 74 11 6259 6165 test cl, cl ; 84 c9 6260 jne short 04 939h ; 75 236166 jne short 048a0h ; 75 23 6261 6167 mov dx, 001feh ; ba fe 01 6262 6168 mov ax, di ; 89 f8 6263 call 0161ch ; e8 fe cc6169 call 0161ch ; e8 97 cd 6264 6170 cmp ax, 0aa55h ; 3d 55 aa 6265 je short 04 939h ; 74 166171 je short 048a0h ; 74 16 6266 6172 movzx ax, byte [bp-004h] ; 0f b6 46 fc 6267 6173 push ax ; 50 … … 6270 6176 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6271 6177 xor cx, cx ; 31 c9 6272 jmp near 04 82bh ; e9 f2 fe6178 jmp near 04792h ; e9 f2 fe 6273 6179 movzx bx, byte [bp-002h] ; 0f b6 5e fe 6274 6180 movzx dx, byte [bp-008h] ; 0f b6 56 f8 6275 6181 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6276 call 04 60bh ; e8 c3 fc6182 call 04572h ; e8 c3 fc 6277 6183 movzx bx, byte [bp-002h] ; 0f b6 5e fe 6278 6184 xor dx, dx ; 31 d2 … … 6284 6190 pop si ; 5e 6285 6191 retn ; c3 6286 keyboard_panic_: ; 0xf4 958LB 0x116192 keyboard_panic_: ; 0xf48bf LB 0x11 6287 6193 push bp ; 55 6288 6194 mov bp, sp ; 89 e5 6289 6195 push ax ; 50 6290 push 004e 2h ; 68 e2046196 push 004e4h ; 68 e4 04 6291 6197 push strict byte 00007h ; 6a 07 6292 call 018e9h ; e8 85 cf6198 call 018e9h ; e8 1e d0 6293 6199 add sp, strict byte 00006h ; 83 c4 06 6294 6200 pop bp ; 5d 6295 6201 retn ; c3 6296 _keyboard_init: ; 0xf4 969LB 0x27a6202 _keyboard_init: ; 0xf48d0 LB 0x27a 6297 6203 push bp ; 55 6298 6204 mov bp, sp ; 89 e5 … … 6306 6212 ; sub ah, ah ; 2a e4 6307 6213 test AL, strict byte 002h ; a8 02 6308 je short 04 98ch ; 74 0d6214 je short 048f3h ; 74 0d 6309 6215 dec bx ; 4b 6310 6216 test bx, bx ; 85 db 6311 jbe short 04 98ch ; 76 086217 jbe short 048f3h ; 76 08 6312 6218 xor al, al ; 30 c0 6313 6219 mov dx, 00080h ; ba 80 00 6314 6220 out DX, AL ; ee 6315 jmp short 04 975h ; eb e96221 jmp short 048dch ; eb e9 6316 6222 test bx, bx ; 85 db 6317 jne short 04 995h ; 75 056223 jne short 048fch ; 75 05 6318 6224 xor ax, ax ; 31 c0 6319 call 04 958h ; e8 c3 ff6225 call 048bfh ; e8 c3 ff 6320 6226 mov bx, strict word 0ffffh ; bb ff ff 6321 6227 mov dx, strict word 00064h ; ba 64 00 … … 6324 6230 ; sub ah, ah ; 2a e4 6325 6231 test AL, strict byte 001h ; a8 01 6326 jne short 049 afh ; 75 0d6232 jne short 04916h ; 75 0d 6327 6233 dec bx ; 4b 6328 6234 test bx, bx ; 85 db 6329 jbe short 049 afh ; 76 086235 jbe short 04916h ; 76 08 6330 6236 mov AL, strict byte 001h ; b0 01 6331 6237 mov dx, 00080h ; ba 80 00 6332 6238 out DX, AL ; ee 6333 jmp short 04 998h ; eb e96239 jmp short 048ffh ; eb e9 6334 6240 test bx, bx ; 85 db 6335 jne short 049 b9h ; 75 066241 jne short 04920h ; 75 06 6336 6242 mov ax, strict word 00001h ; b8 01 00 6337 call 04 958h ; e8 9f ff6243 call 048bfh ; e8 9f ff 6338 6244 mov dx, strict word 00060h ; ba 60 00 6339 6245 in AL, DX ; ec … … 6341 6247 ; sub ah, ah ; 2a e4 6342 6248 cmp ax, strict word 00055h ; 3d 55 00 6343 je short 049 cah ; 74 066249 je short 04931h ; 74 06 6344 6250 mov ax, 003dfh ; b8 df 03 6345 call 04 958h ; e8 8e ff6251 call 048bfh ; e8 8e ff 6346 6252 mov AL, strict byte 0abh ; b0 ab 6347 6253 mov dx, strict word 00064h ; ba 64 00 … … 6353 6259 ; sub ah, ah ; 2a e4 6354 6260 test AL, strict byte 002h ; a8 02 6355 je short 049 eah ; 74 0d6261 je short 04951h ; 74 0d 6356 6262 dec bx ; 4b 6357 6263 test bx, bx ; 85 db 6358 jbe short 049 eah ; 76 086264 jbe short 04951h ; 76 08 6359 6265 mov AL, strict byte 010h ; b0 10 6360 6266 mov dx, 00080h ; ba 80 00 6361 6267 out DX, AL ; ee 6362 jmp short 049 d3h ; eb e96268 jmp short 0493ah ; eb e9 6363 6269 test bx, bx ; 85 db 6364 jne short 049 f4h ; 75 066270 jne short 0495bh ; 75 06 6365 6271 mov ax, strict word 0000ah ; b8 0a 00 6366 call 04 958h ; e8 64 ff6272 call 048bfh ; e8 64 ff 6367 6273 mov bx, strict word 0ffffh ; bb ff ff 6368 6274 mov dx, strict word 00064h ; ba 64 00 … … 6371 6277 ; sub ah, ah ; 2a e4 6372 6278 test AL, strict byte 001h ; a8 01 6373 jne short 04 a0eh ; 75 0d6279 jne short 04975h ; 75 0d 6374 6280 dec bx ; 4b 6375 6281 test bx, bx ; 85 db 6376 jbe short 04 a0eh ; 76 086282 jbe short 04975h ; 76 08 6377 6283 mov AL, strict byte 011h ; b0 11 6378 6284 mov dx, 00080h ; ba 80 00 6379 6285 out DX, AL ; ee 6380 jmp short 049 f7h ; eb e96286 jmp short 0495eh ; eb e9 6381 6287 test bx, bx ; 85 db 6382 jne short 04 a18h ; 75 066288 jne short 0497fh ; 75 06 6383 6289 mov ax, strict word 0000bh ; b8 0b 00 6384 call 04 958h ; e8 40 ff6290 call 048bfh ; e8 40 ff 6385 6291 mov dx, strict word 00060h ; ba 60 00 6386 6292 in AL, DX ; ec … … 6388 6294 ; sub ah, ah ; 2a e4 6389 6295 test ax, ax ; 85 c0 6390 je short 04 a28h ; 74 066296 je short 0498fh ; 74 06 6391 6297 mov ax, 003e0h ; b8 e0 03 6392 call 04 958h ; e8 30 ff6298 call 048bfh ; e8 30 ff 6393 6299 mov AL, strict byte 0ffh ; b0 ff 6394 6300 mov dx, strict word 00060h ; ba 60 00 … … 6400 6306 ; sub ah, ah ; 2a e4 6401 6307 test AL, strict byte 002h ; a8 02 6402 je short 04 a48h ; 74 0d6308 je short 049afh ; 74 0d 6403 6309 dec bx ; 4b 6404 6310 test bx, bx ; 85 db 6405 jbe short 04 a48h ; 76 086311 jbe short 049afh ; 76 08 6406 6312 mov AL, strict byte 020h ; b0 20 6407 6313 mov dx, 00080h ; ba 80 00 6408 6314 out DX, AL ; ee 6409 jmp short 04 a31h ; eb e96315 jmp short 04998h ; eb e9 6410 6316 test bx, bx ; 85 db 6411 jne short 04 a52h ; 75 066317 jne short 049b9h ; 75 06 6412 6318 mov ax, strict word 00014h ; b8 14 00 6413 call 04 958h ; e8 06 ff6319 call 048bfh ; e8 06 ff 6414 6320 mov bx, strict word 0ffffh ; bb ff ff 6415 6321 mov dx, strict word 00064h ; ba 64 00 … … 6418 6324 ; sub ah, ah ; 2a e4 6419 6325 test AL, strict byte 001h ; a8 01 6420 jne short 04 a6ch ; 75 0d6326 jne short 049d3h ; 75 0d 6421 6327 dec bx ; 4b 6422 6328 test bx, bx ; 85 db 6423 jbe short 04 a6ch ; 76 086329 jbe short 049d3h ; 76 08 6424 6330 mov AL, strict byte 021h ; b0 21 6425 6331 mov dx, 00080h ; ba 80 00 6426 6332 out DX, AL ; ee 6427 jmp short 04 a55h ; eb e96333 jmp short 049bch ; eb e9 6428 6334 test bx, bx ; 85 db 6429 jne short 04 a76h ; 75 066335 jne short 049ddh ; 75 06 6430 6336 mov ax, strict word 00015h ; b8 15 00 6431 call 04 958h ; e8 e2 fe6337 call 048bfh ; e8 e2 fe 6432 6338 mov dx, strict word 00060h ; ba 60 00 6433 6339 in AL, DX ; ec … … 6435 6341 ; sub ah, ah ; 2a e4 6436 6342 cmp ax, 000fah ; 3d fa 00 6437 je short 04 a87h ; 74 066343 je short 049eeh ; 74 06 6438 6344 mov ax, 003e1h ; b8 e1 03 6439 call 04 958h ; e8 d1 fe6345 call 048bfh ; e8 d1 fe 6440 6346 mov bx, strict word 0ffffh ; bb ff ff 6441 6347 mov dx, strict word 00064h ; ba 64 00 … … 6444 6350 ; sub ah, ah ; 2a e4 6445 6351 test AL, strict byte 001h ; a8 01 6446 jne short 04a a1h ; 75 0d6352 jne short 04a08h ; 75 0d 6447 6353 dec bx ; 4b 6448 6354 test bx, bx ; 85 db 6449 jbe short 04a a1h ; 76 086355 jbe short 04a08h ; 76 08 6450 6356 mov AL, strict byte 031h ; b0 31 6451 6357 mov dx, 00080h ; ba 80 00 6452 6358 out DX, AL ; ee 6453 jmp short 04 a8ah ; eb e96359 jmp short 049f1h ; eb e9 6454 6360 test bx, bx ; 85 db 6455 jne short 04a abh ; 75 066361 jne short 04a12h ; 75 06 6456 6362 mov ax, strict word 0001fh ; b8 1f 00 6457 call 04 958h ; e8 ad fe6363 call 048bfh ; e8 ad fe 6458 6364 mov dx, strict word 00060h ; ba 60 00 6459 6365 in AL, DX ; ec … … 6461 6367 ; sub ah, ah ; 2a e4 6462 6368 cmp ax, 000aah ; 3d aa 00 6463 je short 04a c4h ; 74 0e6369 je short 04a2bh ; 74 0e 6464 6370 in AL, DX ; ec 6465 6371 db 02ah, 0e4h 6466 6372 ; sub ah, ah ; 2a e4 6467 6373 cmp ax, 000aah ; 3d aa 00 6468 je short 04a c4h ; 74 066374 je short 04a2bh ; 74 06 6469 6375 mov ax, 003e2h ; b8 e2 03 6470 call 04 958h ; e8 94 fe6376 call 048bfh ; e8 94 fe 6471 6377 mov AL, strict byte 0f5h ; b0 f5 6472 6378 mov dx, strict word 00060h ; ba 60 00 … … 6478 6384 ; sub ah, ah ; 2a e4 6479 6385 test AL, strict byte 002h ; a8 02 6480 je short 04a e4h ; 74 0d6386 je short 04a4bh ; 74 0d 6481 6387 dec bx ; 4b 6482 6388 test bx, bx ; 85 db 6483 jbe short 04a e4h ; 76 086389 jbe short 04a4bh ; 76 08 6484 6390 mov AL, strict byte 040h ; b0 40 6485 6391 mov dx, 00080h ; ba 80 00 6486 6392 out DX, AL ; ee 6487 jmp short 04a cdh ; eb e96393 jmp short 04a34h ; eb e9 6488 6394 test bx, bx ; 85 db 6489 jne short 04a eeh ; 75 066395 jne short 04a55h ; 75 06 6490 6396 mov ax, strict word 00028h ; b8 28 00 6491 call 04 958h ; e8 6a fe6397 call 048bfh ; e8 6a fe 6492 6398 mov bx, strict word 0ffffh ; bb ff ff 6493 6399 mov dx, strict word 00064h ; ba 64 00 … … 6496 6402 ; sub ah, ah ; 2a e4 6497 6403 test AL, strict byte 001h ; a8 01 6498 jne short 04 b08h ; 75 0d6404 jne short 04a6fh ; 75 0d 6499 6405 dec bx ; 4b 6500 6406 test bx, bx ; 85 db 6501 jbe short 04 b08h ; 76 086407 jbe short 04a6fh ; 76 08 6502 6408 mov AL, strict byte 041h ; b0 41 6503 6409 mov dx, 00080h ; ba 80 00 6504 6410 out DX, AL ; ee 6505 jmp short 04a f1h ; eb e96411 jmp short 04a58h ; eb e9 6506 6412 test bx, bx ; 85 db 6507 jne short 04 b12h ; 75 066413 jne short 04a79h ; 75 06 6508 6414 mov ax, strict word 00029h ; b8 29 00 6509 call 04 958h ; e8 46 fe6415 call 048bfh ; e8 46 fe 6510 6416 mov dx, strict word 00060h ; ba 60 00 6511 6417 in AL, DX ; ec … … 6513 6419 ; sub ah, ah ; 2a e4 6514 6420 cmp ax, 000fah ; 3d fa 00 6515 je short 04 b23h ; 74 066421 je short 04a8ah ; 74 06 6516 6422 mov ax, 003e3h ; b8 e3 03 6517 call 04 958h ; e8 35 fe6423 call 048bfh ; e8 35 fe 6518 6424 mov AL, strict byte 060h ; b0 60 6519 6425 mov dx, strict word 00064h ; ba 64 00 … … 6525 6431 ; sub ah, ah ; 2a e4 6526 6432 test AL, strict byte 002h ; a8 02 6527 je short 04 b43h ; 74 0d6433 je short 04aaah ; 74 0d 6528 6434 dec bx ; 4b 6529 6435 test bx, bx ; 85 db 6530 jbe short 04 b43h ; 76 086436 jbe short 04aaah ; 76 08 6531 6437 mov AL, strict byte 050h ; b0 50 6532 6438 mov dx, 00080h ; ba 80 00 6533 6439 out DX, AL ; ee 6534 jmp short 04 b2ch ; eb e96440 jmp short 04a93h ; eb e9 6535 6441 test bx, bx ; 85 db 6536 jne short 04 b4dh ; 75 066442 jne short 04ab4h ; 75 06 6537 6443 mov ax, strict word 00032h ; b8 32 00 6538 call 04 958h ; e8 0b fe6444 call 048bfh ; e8 0b fe 6539 6445 mov AL, strict byte 065h ; b0 65 6540 6446 mov dx, strict word 00060h ; ba 60 00 … … 6546 6452 ; sub ah, ah ; 2a e4 6547 6453 test AL, strict byte 002h ; a8 02 6548 je short 04 b6dh ; 74 0d6454 je short 04ad4h ; 74 0d 6549 6455 dec bx ; 4b 6550 6456 test bx, bx ; 85 db 6551 jbe short 04 b6dh ; 76 086457 jbe short 04ad4h ; 76 08 6552 6458 mov AL, strict byte 060h ; b0 60 6553 6459 mov dx, 00080h ; ba 80 00 6554 6460 out DX, AL ; ee 6555 jmp short 04 b56h ; eb e96461 jmp short 04abdh ; eb e9 6556 6462 test bx, bx ; 85 db 6557 jne short 04 b77h ; 75 066463 jne short 04adeh ; 75 06 6558 6464 mov ax, strict word 0003ch ; b8 3c 00 6559 call 04 958h ; e8 e1 fd6465 call 048bfh ; e8 e1 fd 6560 6466 mov AL, strict byte 0f4h ; b0 f4 6561 6467 mov dx, strict word 00060h ; ba 60 00 … … 6567 6473 ; sub ah, ah ; 2a e4 6568 6474 test AL, strict byte 002h ; a8 02 6569 je short 04 b97h ; 74 0d6475 je short 04afeh ; 74 0d 6570 6476 dec bx ; 4b 6571 6477 test bx, bx ; 85 db 6572 jbe short 04 b97h ; 76 086478 jbe short 04afeh ; 76 08 6573 6479 mov AL, strict byte 070h ; b0 70 6574 6480 mov dx, 00080h ; ba 80 00 6575 6481 out DX, AL ; ee 6576 jmp short 04 b80h ; eb e96482 jmp short 04ae7h ; eb e9 6577 6483 test bx, bx ; 85 db 6578 jne short 04b a1h ; 75 066484 jne short 04b08h ; 75 06 6579 6485 mov ax, strict word 00046h ; b8 46 00 6580 call 04 958h ; e8 b7 fd6486 call 048bfh ; e8 b7 fd 6581 6487 mov bx, strict word 0ffffh ; bb ff ff 6582 6488 mov dx, strict word 00064h ; ba 64 00 … … 6585 6491 ; sub ah, ah ; 2a e4 6586 6492 test AL, strict byte 001h ; a8 01 6587 jne short 04b bbh ; 75 0d6493 jne short 04b22h ; 75 0d 6588 6494 dec bx ; 4b 6589 6495 test bx, bx ; 85 db 6590 jbe short 04b bbh ; 76 086496 jbe short 04b22h ; 76 08 6591 6497 mov AL, strict byte 071h ; b0 71 6592 6498 mov dx, 00080h ; ba 80 00 6593 6499 out DX, AL ; ee 6594 jmp short 04b a4h ; eb e96500 jmp short 04b0bh ; eb e9 6595 6501 test bx, bx ; 85 db 6596 jne short 04b c5h ; 75 066502 jne short 04b2ch ; 75 06 6597 6503 mov ax, strict word 00046h ; b8 46 00 6598 call 04 958h ; e8 93 fd6504 call 048bfh ; e8 93 fd 6599 6505 mov dx, strict word 00060h ; ba 60 00 6600 6506 in AL, DX ; ec … … 6602 6508 ; sub ah, ah ; 2a e4 6603 6509 cmp ax, 000fah ; 3d fa 00 6604 je short 04b d6h ; 74 066510 je short 04b3dh ; 74 06 6605 6511 mov ax, 003e4h ; b8 e4 03 6606 call 04 958h ; e8 82 fd6512 call 048bfh ; e8 82 fd 6607 6513 mov AL, strict byte 0a8h ; b0 a8 6608 6514 mov dx, strict word 00064h ; ba 64 00 6609 6515 out DX, AL ; ee 6610 6516 xor ax, ax ; 31 c0 6611 call 05 e33h ; e8 52 126517 call 05d9ah ; e8 52 12 6612 6518 pop bp ; 5d 6613 6519 retn ; c3 6614 enqueue_key_: ; 0xf4b e3LB 0x906520 enqueue_key_: ; 0xf4b4a LB 0x90 6615 6521 push bx ; 53 6616 6522 push cx ; 51 … … 6622 6528 mov dx, strict word 0001ah ; ba 1a 00 6623 6529 mov ax, strict word 00040h ; b8 40 00 6624 call 0161ch ; e8 23ca6530 call 0161ch ; e8 bc ca 6625 6531 mov di, ax ; 89 c7 6626 6532 mov dx, strict word 0001ch ; ba 1c 00 6627 6533 mov ax, strict word 00040h ; b8 40 00 6628 call 0161ch ; e8 18ca6534 call 0161ch ; e8 b1 ca 6629 6535 mov si, ax ; 89 c6 6630 6536 lea cx, [si+002h] ; 8d 4c 02 6631 6537 cmp cx, strict byte 0003eh ; 83 f9 3e 6632 jc short 04 c11h ; 72 036538 jc short 04b78h ; 72 03 6633 6539 mov cx, strict word 0001eh ; b9 1e 00 6634 6540 cmp cx, di ; 39 f9 6635 jne short 04 c19h ; 75 046541 jne short 04b80h ; 75 04 6636 6542 xor ax, ax ; 31 c0 6637 jmp short 04 c3eh ; eb 256543 jmp short 04ba5h ; eb 25 6638 6544 xor bh, bh ; 30 ff 6639 6545 mov dx, si ; 89 f2 6640 6546 mov ax, strict word 00040h ; b8 40 00 6641 call 0160eh ; e8 eb c96547 call 0160eh ; e8 84 ca 6642 6548 movzx bx, byte [bp-002h] ; 0f b6 5e fe 6643 6549 lea dx, [si+001h] ; 8d 54 01 6644 6550 mov ax, strict word 00040h ; b8 40 00 6645 call 0160eh ; e8 de c96551 call 0160eh ; e8 77 ca 6646 6552 mov bx, cx ; 89 cb 6647 6553 mov dx, strict word 0001ch ; ba 1c 00 6648 6554 mov ax, strict word 00040h ; b8 40 00 6649 call 0162ah ; e8 ef c96555 call 0162ah ; e8 88 ca 6650 6556 mov ax, strict word 00001h ; b8 01 00 6651 6557 leave ; c9 … … 6664 6570 cmp bh, byte [bx+si] ; 3a 38 6665 6571 sub bl, byte [ss:di] ; 36 2a 1d 6666 stosw ; ab 6667 dec si ; 4e 6668 cmp byte [di+007h], cl ; 38 4d 07 6572 adc cl, byte [bp-061h] ; 12 4e 9f 6573 dec sp ; 4c 6574 outsb ; 6e 6575 dec sp ; 4c 6576 outsb ; 6e 6577 dec sp ; 4c 6578 and word [di+047h], cx ; 21 4d 47 6579 dec sp ; 4c 6580 xchg bx, ax ; 93 6669 6581 dec bp ; 4d 6670 pop ES ; 07 6582 loop 04c17h ; e2 4d 6583 add ax, 0e04eh ; 05 4e e0 6584 dec sp ; 4c 6585 outsb ; 6e 6586 dec sp ; 4c 6587 outsb ; 6e 6588 dec sp ; 4c 6589 pop dx ; 5a 6671 6590 dec bp ; 4d 6672 mov dx, 0e04dh ; ba 4d e06591 pushaw ; 60 6673 6592 dec sp ; 4c 6674 sub AL, strict byte 04eh ; 2c 4e 6675 jnp short 04cb1h ; 7b 4e 6676 sahf ; 9e 6677 dec si ; 4e 6678 jns short 04cb4h ; 79 4d 6679 pop ES ; 07 6593 retn ; c3 6680 6594 dec bp ; 4d 6681 pop ES ; 076595 db 0feh 6682 6596 dec bp ; 4d 6683 rep dec bp ; f3 4d 6684 stc ; f9 6685 dec sp ; 4c 6686 pop sp ; 5c 6687 dec si ; 4e 6688 xchg di, ax ; 97 6689 dec si ; 4e 6690 _int09_function: ; 0xf4c73 LB 0x358 6597 _int09_function: ; 0xf4bda LB 0x358 6691 6598 push si ; 56 6692 6599 push di ; 57 … … 6695 6602 mov byte [bp-006h], al ; 88 46 fa 6696 6603 test al, al ; 84 c0 6697 jne short 04c 9ch ; 75 196698 mov bx, 00 cech ; bb ec 0c6604 jne short 04c03h ; 75 19 6605 mov bx, 00d32h ; bb 32 0d 6699 6606 mov cx, ds ; 8c d9 6700 6607 mov ax, strict word 00004h ; b8 04 00 6701 call 018aeh ; e8 20cc6702 push 004f 5h ; 68 f5046608 call 018aeh ; e8 b9 cc 6609 push 004f7h ; 68 f7 04 6703 6610 push strict byte 00004h ; 6a 04 6704 call 018e9h ; e8 53cc6611 call 018e9h ; e8 ec cc 6705 6612 add sp, strict byte 00004h ; 83 c4 04 6706 jmp near 04f c7h ; e9 2b 036613 jmp near 04f2eh ; e9 2b 03 6707 6614 mov dx, strict word 00017h ; ba 17 00 6708 6615 mov ax, strict word 00040h ; b8 40 00 6709 call 01600h ; e8 5bc96616 call 01600h ; e8 f4 c9 6710 6617 mov byte [bp-00ah], al ; 88 46 f6 6711 6618 mov bl, al ; 88 c3 6712 6619 mov dx, strict word 00018h ; ba 18 00 6713 6620 mov ax, strict word 00040h ; b8 40 00 6714 call 01600h ; e8 4dc96621 call 01600h ; e8 e6 c9 6715 6622 mov byte [bp-00ch], al ; 88 46 f4 6716 6623 mov byte [bp-008h], al ; 88 46 f8 6717 6624 mov dx, 00096h ; ba 96 00 6718 6625 mov ax, strict word 00040h ; b8 40 00 6719 call 01600h ; e8 3ec96626 call 01600h ; e8 d7 c9 6720 6627 mov byte [bp-004h], al ; 88 46 fc 6721 6628 mov byte [bp-002h], al ; 88 46 fe … … 6724 6631 pop ES ; 07 6725 6632 mov cx, strict word 00010h ; b9 10 00 6726 mov di, 04 c44h ; bf 44 4c6633 mov di, 04babh ; bf ab 4b 6727 6634 repne scasb ; f2 ae 6728 6635 sal cx, 1 ; d1 e1 6729 6636 mov di, cx ; 89 cf 6730 mov ax, word [cs:di+04 c53h] ; 2e 8b 85 53 4c6637 mov ax, word [cs:di+04bbah] ; 2e 8b 85 ba 4b 6731 6638 jmp ax ; ff e0 6732 6639 xor bl, 040h ; 80 f3 40 … … 6734 6641 mov dx, strict word 00017h ; ba 17 00 6735 6642 mov ax, strict word 00040h ; b8 40 00 6736 call 0160eh ; e8 20c96643 call 0160eh ; e8 b9 c9 6737 6644 or byte [bp-008h], 040h ; 80 4e f8 40 6738 6645 movzx bx, byte [bp-008h] ; 0f b6 5e f8 6739 jmp near 04 e6fh ; e9 76 016646 jmp near 04dd6h ; e9 76 01 6740 6647 mov al, byte [bp-00ch] ; 8a 46 f4 6741 6648 and AL, strict byte 0bfh ; 24 bf 6742 6649 mov byte [bp-008h], al ; 88 46 f8 6743 6650 movzx bx, al ; 0f b6 d8 6744 jmp near 04 e6fh ; e9 68 016651 jmp near 04dd6h ; e9 68 01 6745 6652 test byte [bp-002h], 002h ; f6 46 fe 02 6746 jne near 04f a9h ; 0f 85 9a 026653 jne near 04f10h ; 0f 85 9a 02 6747 6654 mov al, byte [bp-006h] ; 8a 46 fa 6748 6655 and AL, strict byte 07fh ; 24 7f … … 6753 6660 inc ax ; 40 6754 6661 test byte [bp-006h], 080h ; f6 46 fa 80 6755 je short 04 d28h ; 74 066662 je short 04c8fh ; 74 06 6756 6663 not al ; f6 d0 6757 6664 and bl, al ; 20 c3 6758 jmp short 04 d2ah ; eb 026665 jmp short 04c91h ; eb 02 6759 6666 or bl, al ; 08 c3 6760 6667 xor bh, bh ; 30 ff 6761 6668 mov dx, strict word 00017h ; ba 17 00 6762 6669 mov ax, strict word 00040h ; b8 40 00 6763 call 0160eh ; e8 d9 c86764 jmp near 04f a9h ; e9 71 026670 call 0160eh ; e8 72 c9 6671 jmp near 04f10h ; e9 71 02 6765 6672 test byte [bp-004h], 001h ; f6 46 fc 01 6766 jne near 04f a9h ; 0f 85 69 026673 jne near 04f10h ; 0f 85 69 02 6767 6674 or bl, 004h ; 80 cb 04 6768 6675 xor bh, bh ; 30 ff 6769 6676 mov dx, strict word 00017h ; ba 17 00 6770 6677 mov ax, strict word 00040h ; b8 40 00 6771 call 0160eh ; e8 c0 c86678 call 0160eh ; e8 59 c9 6772 6679 mov al, byte [bp-004h] ; 8a 46 fc 6773 6680 test AL, strict byte 002h ; a8 02 6774 je short 04 d62h ; 74 0d6681 je short 04cc9h ; 74 0d 6775 6682 or AL, strict byte 004h ; 0c 04 6776 6683 mov byte [bp-002h], al ; 88 46 fe 6777 6684 movzx bx, al ; 0f b6 d8 6778 6685 mov dx, 00096h ; ba 96 00 6779 jmp short 04 d70h ; eb 0e6686 jmp short 04cd7h ; eb 0e 6780 6687 mov al, byte [bp-00ch] ; 8a 46 f4 6781 6688 or AL, strict byte 001h ; 0c 01 … … 6784 6691 mov dx, strict word 00018h ; ba 18 00 6785 6692 mov ax, strict word 00040h ; b8 40 00 6786 call 0160eh ; e8 98 c86787 jmp near 04f a9h ; e9 30 026693 call 0160eh ; e8 31 c9 6694 jmp near 04f10h ; e9 30 02 6788 6695 test byte [bp-004h], 001h ; f6 46 fc 01 6789 jne near 04f a9h ; 0f 85 28 026696 jne near 04f10h ; 0f 85 28 02 6790 6697 and bl, 0fbh ; 80 e3 fb 6791 6698 xor bh, bh ; 30 ff 6792 6699 mov dx, strict word 00017h ; ba 17 00 6793 6700 mov ax, strict word 00040h ; b8 40 00 6794 call 0160eh ; e8 7f c86701 call 0160eh ; e8 18 c9 6795 6702 mov al, byte [bp-004h] ; 8a 46 fc 6796 6703 test AL, strict byte 002h ; a8 02 6797 je short 04d a3h ; 74 0d6704 je short 04d0ah ; 74 0d 6798 6705 and AL, strict byte 0fbh ; 24 fb 6799 6706 mov byte [bp-002h], al ; 88 46 fe 6800 6707 movzx bx, al ; 0f b6 d8 6801 6708 mov dx, 00096h ; ba 96 00 6802 jmp short 04d b1h ; eb 0e6709 jmp short 04d18h ; eb 0e 6803 6710 mov al, byte [bp-00ch] ; 8a 46 f4 6804 6711 and AL, strict byte 0feh ; 24 fe … … 6807 6714 mov dx, strict word 00018h ; ba 18 00 6808 6715 mov ax, strict word 00040h ; b8 40 00 6809 call 0160eh ; e8 57c86810 jmp near 04f a9h ; e9 ef 016716 call 0160eh ; e8 f0 c8 6717 jmp near 04f10h ; e9 ef 01 6811 6718 or bl, 008h ; 80 cb 08 6812 6719 xor bh, bh ; 30 ff 6813 6720 mov dx, strict word 00017h ; ba 17 00 6814 6721 mov ax, strict word 00040h ; b8 40 00 6815 call 0160eh ; e8 46c86722 call 0160eh ; e8 df c8 6816 6723 mov al, byte [bp-004h] ; 8a 46 fc 6817 6724 test AL, strict byte 002h ; a8 02 6818 je short 04d dch ; 74 0d6725 je short 04d43h ; 74 0d 6819 6726 or AL, strict byte 008h ; 0c 08 6820 6727 mov byte [bp-002h], al ; 88 46 fe 6821 6728 movzx bx, al ; 0f b6 d8 6822 6729 mov dx, 00096h ; ba 96 00 6823 jmp short 04d eah ; eb 0e6730 jmp short 04d51h ; eb 0e 6824 6731 mov al, byte [bp-00ch] ; 8a 46 f4 6825 6732 or AL, strict byte 002h ; 0c 02 … … 6828 6735 mov dx, strict word 00018h ; ba 18 00 6829 6736 mov ax, strict word 00040h ; b8 40 00 6830 call 0160eh ; e8 1ec86831 jmp near 04f a9h ; e9 b6 016737 call 0160eh ; e8 b7 c8 6738 jmp near 04f10h ; e9 b6 01 6832 6739 and bl, 0f7h ; 80 e3 f7 6833 6740 xor bh, bh ; 30 ff 6834 6741 mov dx, strict word 00017h ; ba 17 00 6835 6742 mov ax, strict word 00040h ; b8 40 00 6836 call 0160eh ; e8 0dc86743 call 0160eh ; e8 a6 c8 6837 6744 mov al, byte [bp-004h] ; 8a 46 fc 6838 6745 test AL, strict byte 002h ; a8 02 6839 je short 04 e15h ; 74 0d6746 je short 04d7ch ; 74 0d 6840 6747 and AL, strict byte 0f7h ; 24 f7 6841 6748 mov byte [bp-002h], al ; 88 46 fe 6842 6749 movzx bx, al ; 0f b6 d8 6843 6750 mov dx, 00096h ; ba 96 00 6844 jmp short 04 e23h ; eb 0e6751 jmp short 04d8ah ; eb 0e 6845 6752 mov al, byte [bp-00ch] ; 8a 46 f4 6846 6753 and AL, strict byte 0fdh ; 24 fd … … 6849 6756 mov dx, strict word 00018h ; ba 18 00 6850 6757 mov ax, strict word 00040h ; b8 40 00 6851 call 0160eh ; e8 e5 c76852 jmp near 04f a9h ; e9 7d 016758 call 0160eh ; e8 7e c8 6759 jmp near 04f10h ; e9 7d 01 6853 6760 test byte [bp-004h], 003h ; f6 46 fc 03 6854 jne near 04f a9h ; 0f 85 75 016761 jne near 04f10h ; 0f 85 75 01 6855 6762 mov al, byte [bp-00ch] ; 8a 46 f4 6856 6763 or AL, strict byte 020h ; 0c 20 … … 6859 6766 mov dx, strict word 00018h ; ba 18 00 6860 6767 mov ax, strict word 00040h ; b8 40 00 6861 call 0160eh ; e8 c6 c76768 call 0160eh ; e8 5f c8 6862 6769 mov bl, byte [bp-00ah] ; 8a 5e f6 6863 6770 xor bl, 020h ; 80 f3 20 … … 6865 6772 mov dx, strict word 00017h ; ba 17 00 6866 6773 mov ax, strict word 00040h ; b8 40 00 6867 call 0160eh ; e8 b5 c76868 jmp near 04f a9h ; e9 4d 016774 call 0160eh ; e8 4e c8 6775 jmp near 04f10h ; e9 4d 01 6869 6776 test byte [bp-004h], 003h ; f6 46 fc 03 6870 jne near 04f a9h ; 0f 85 45 016777 jne near 04f10h ; 0f 85 45 01 6871 6778 mov al, byte [bp-00ch] ; 8a 46 f4 6872 6779 and AL, strict byte 0dfh ; 24 df … … 6875 6782 mov dx, strict word 00018h ; ba 18 00 6876 6783 mov ax, strict word 00040h ; b8 40 00 6877 call 0160eh ; e8 96 c76878 jmp near 04f a9h ; e9 2e 016784 call 0160eh ; e8 2f c8 6785 jmp near 04f10h ; e9 2e 01 6879 6786 mov al, byte [bp-00ch] ; 8a 46 f4 6880 6787 or AL, strict byte 010h ; 0c 10 … … 6883 6790 mov dx, strict word 00018h ; ba 18 00 6884 6791 mov ax, strict word 00040h ; b8 40 00 6885 call 0160eh ; e8 7f c76792 call 0160eh ; e8 18 c8 6886 6793 mov bl, byte [bp-00ah] ; 8a 5e f6 6887 6794 xor bl, 010h ; 80 f3 10 6888 jmp short 04 e4eh ; eb b76795 jmp short 04db5h ; eb b7 6889 6796 mov al, byte [bp-00ch] ; 8a 46 f4 6890 6797 and AL, strict byte 0efh ; 24 ef 6891 jmp short 04 e69h ; eb cb6798 jmp short 04dd0h ; eb cb 6892 6799 mov al, bl ; 88 d8 6893 6800 and AL, strict byte 00ch ; 24 0c 6894 6801 cmp AL, strict byte 00ch ; 3c 0c 6895 jne short 04e abh ; 75 056802 jne short 04e12h ; 75 05 6896 6803 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 6897 6804 test byte [bp-006h], 080h ; f6 46 fa 80 6898 jne near 04f a9h ; 0f 85 f6 006805 jne near 04f10h ; 0f 85 f6 00 6899 6806 cmp byte [bp-006h], 058h ; 80 7e fa 58 6900 jbe short 04e d7h ; 76 1e6901 mov bx, 00 cech ; bb ec 0c6807 jbe short 04e3eh ; 76 1e 6808 mov bx, 00d32h ; bb 32 0d 6902 6809 mov cx, ds ; 8c d9 6903 6810 mov ax, strict word 00004h ; b8 04 00 6904 call 018aeh ; e8 ea c96811 call 018aeh ; e8 83 ca 6905 6812 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6906 6813 push ax ; 50 6907 push 005 0fh ; 68 0f056814 push 00511h ; 68 11 05 6908 6815 push strict byte 00004h ; 6a 04 6909 call 018e9h ; e8 18ca6816 call 018e9h ; e8 b1 ca 6910 6817 add sp, strict byte 00006h ; 83 c4 06 6911 jmp near 04f c7h ; e9 f0 006818 jmp near 04f2eh ; e9 f0 00 6912 6819 test bl, 008h ; f6 c3 08 6913 je short 04e eeh ; 74 126820 je short 04e55h ; 74 12 6914 6821 movzx si, byte [bp-006h] ; 0f b6 76 fa 6915 6822 imul si, si, strict byte 0000ah ; 6b f6 0a 6916 mov dl, byte [si+00d 40h] ; 8a 94 400d6917 mov ax, word [si+00d 40h] ; 8b 84 400d6918 jmp near 04 f7ah ; e9 8c 006823 mov dl, byte [si+00d86h] ; 8a 94 86 0d 6824 mov ax, word [si+00d86h] ; 8b 84 86 0d 6825 jmp near 04ee1h ; e9 8c 00 6919 6826 test bl, 004h ; f6 c3 04 6920 je short 04 f05h ; 74 126827 je short 04e6ch ; 74 12 6921 6828 movzx si, byte [bp-006h] ; 0f b6 76 fa 6922 6829 imul si, si, strict byte 0000ah ; 6b f6 0a 6923 mov dl, byte [si+00d 3eh] ; 8a 94 3e0d6924 mov ax, word [si+00d 3eh] ; 8b 84 3e0d6925 jmp near 04 f7ah ; e9 75 006830 mov dl, byte [si+00d84h] ; 8a 94 84 0d 6831 mov ax, word [si+00d84h] ; 8b 84 84 0d 6832 jmp near 04ee1h ; e9 75 00 6926 6833 mov al, byte [bp-002h] ; 8a 46 fe 6927 6834 and AL, strict byte 002h ; 24 02 6928 6835 test al, al ; 84 c0 6929 jbe short 04 f23h ; 76 156836 jbe short 04e8ah ; 76 15 6930 6837 mov al, byte [bp-006h] ; 8a 46 fa 6931 6838 cmp AL, strict byte 047h ; 3c 47 6932 jc short 04 f23h ; 72 0e6839 jc short 04e8ah ; 72 0e 6933 6840 cmp AL, strict byte 053h ; 3c 53 6934 jnbe short 04 f23h ; 77 0a6841 jnbe short 04e8ah ; 77 0a 6935 6842 mov DL, strict byte 0e0h ; b2 e0 6936 6843 movzx si, al ; 0f b6 f0 6937 6844 imul si, si, strict byte 0000ah ; 6b f6 0a 6938 jmp short 04 f76h ; eb 536845 jmp short 04eddh ; eb 53 6939 6846 test bl, 003h ; f6 c3 03 6940 je short 04 f55h ; 74 2d6847 je short 04ebch ; 74 2d 6941 6848 movzx si, byte [bp-006h] ; 0f b6 76 fa 6942 6849 imul si, si, strict byte 0000ah ; 6b f6 0a 6943 movzx ax, byte [si+00d 42h] ; 0f b6 84 420d6850 movzx ax, byte [si+00d88h] ; 0f b6 84 88 0d 6944 6851 movzx dx, bl ; 0f b6 d3 6945 6852 test dx, ax ; 85 c2 6946 je short 04 f45h ; 74 0a6947 mov dl, byte [si+00d 3ah] ; 8a 94 3a0d6948 mov ax, word [si+00d 3ah] ; 8b 84 3a0d6949 jmp short 04 f4dh ; eb 086950 mov dl, byte [si+00d 3ch] ; 8a 94 3c0d6951 mov ax, word [si+00d 3ch] ; 8b 84 3c0d6853 je short 04each ; 74 0a 6854 mov dl, byte [si+00d80h] ; 8a 94 80 0d 6855 mov ax, word [si+00d80h] ; 8b 84 80 0d 6856 jmp short 04eb4h ; eb 08 6857 mov dl, byte [si+00d82h] ; 8a 94 82 0d 6858 mov ax, word [si+00d82h] ; 8b 84 82 0d 6952 6859 shr ax, 008h ; c1 e8 08 6953 6860 mov byte [bp-006h], al ; 88 46 fa 6954 jmp short 04 f80h ; eb 2b6861 jmp short 04ee7h ; eb 2b 6955 6862 movzx si, byte [bp-006h] ; 0f b6 76 fa 6956 6863 imul si, si, strict byte 0000ah ; 6b f6 0a 6957 movzx ax, byte [si+00d 42h] ; 0f b6 84 420d6864 movzx ax, byte [si+00d88h] ; 0f b6 84 88 0d 6958 6865 movzx dx, bl ; 0f b6 d3 6959 6866 test dx, ax ; 85 c2 6960 je short 04 f72h ; 74 0a6961 mov dl, byte [si+00d 3ch] ; 8a 94 3c0d6962 mov ax, word [si+00d 3ch] ; 8b 84 3c0d6963 jmp short 04 f7ah ; eb 086964 mov dl, byte [si+00d 3ah] ; 8a 94 3a0d6965 mov ax, word [si+00d 3ah] ; 8b 84 3a0d6867 je short 04ed9h ; 74 0a 6868 mov dl, byte [si+00d82h] ; 8a 94 82 0d 6869 mov ax, word [si+00d82h] ; 8b 84 82 0d 6870 jmp short 04ee1h ; eb 08 6871 mov dl, byte [si+00d80h] ; 8a 94 80 0d 6872 mov ax, word [si+00d80h] ; 8b 84 80 0d 6966 6873 shr ax, 008h ; c1 e8 08 6967 6874 mov byte [bp-006h], al ; 88 46 fa 6968 6875 cmp byte [bp-006h], 000h ; 80 7e fa 00 6969 jne short 04f a0h ; 75 1a6876 jne short 04f07h ; 75 1a 6970 6877 test dl, dl ; 84 d2 6971 jne short 04f a0h ; 75 166972 mov bx, 00 cech ; bb ec 0c6878 jne short 04f07h ; 75 16 6879 mov bx, 00d32h ; bb 32 0d 6973 6880 mov cx, ds ; 8c d9 6974 6881 mov ax, strict word 00004h ; b8 04 00 6975 call 018aeh ; e8 19c96976 push 0054 6h ; 68 46056882 call 018aeh ; e8 b2 c9 6883 push 00548h ; 68 48 05 6977 6884 push strict byte 00004h ; 6a 04 6978 call 018e9h ; e8 4cc96885 call 018e9h ; e8 e5 c9 6979 6886 add sp, strict byte 00004h ; 83 c4 04 6980 6887 xor dh, dh ; 30 f6 6981 6888 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6982 call 04b e3h ; e8 3a fc6889 call 04b4ah ; e8 3a fc 6983 6890 mov al, byte [bp-006h] ; 8a 46 fa 6984 6891 and AL, strict byte 07fh ; 24 7f 6985 6892 cmp AL, strict byte 01dh ; 3c 1d 6986 je short 04f b6h ; 74 046893 je short 04f1dh ; 74 04 6987 6894 and byte [bp-002h], 0feh ; 80 66 fe fe 6988 6895 and byte [bp-002h], 0fdh ; 80 66 fe fd … … 6990 6897 mov dx, 00096h ; ba 96 00 6991 6898 mov ax, strict word 00040h ; b8 40 00 6992 call 0160eh ; e8 47c66899 call 0160eh ; e8 e0 c6 6993 6900 leave ; c9 6994 6901 pop di ; 5f 6995 6902 pop si ; 5e 6996 6903 retn ; c3 6997 dequeue_key_: ; 0xf4f cbLB 0x906904 dequeue_key_: ; 0xf4f32 LB 0x90 6998 6905 push si ; 56 6999 6906 push di ; 57 … … 7005 6912 mov dx, strict word 0001ah ; ba 1a 00 7006 6913 mov ax, strict word 00040h ; b8 40 00 7007 call 0161ch ; e8 38c66914 call 0161ch ; e8 d1 c6 7008 6915 mov bx, ax ; 89 c3 7009 6916 mov dx, strict word 0001ch ; ba 1c 00 7010 6917 mov ax, strict word 00040h ; b8 40 00 7011 call 0161ch ; e8 2dc66918 call 0161ch ; e8 c6 c6 7012 6919 cmp bx, ax ; 39 c3 7013 je short 0 5030h ; 74 3d6920 je short 04f97h ; 74 3d 7014 6921 mov dx, bx ; 89 da 7015 6922 mov ax, strict word 00040h ; b8 40 00 7016 call 01600h ; e8 05c66923 call 01600h ; e8 9e c6 7017 6924 mov cl, al ; 88 c1 7018 6925 lea dx, [bx+001h] ; 8d 57 01 7019 6926 mov ax, strict word 00040h ; b8 40 00 7020 call 01600h ; e8 fa c56927 call 01600h ; e8 93 c6 7021 6928 mov es, [bp-004h] ; 8e 46 fc 7022 6929 mov byte [es:si], cl ; 26 88 0c … … 7024 6931 mov byte [es:di], al ; 26 88 05 7025 6932 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 7026 je short 0 502bh ; 74 136933 je short 04f92h ; 74 13 7027 6934 inc bx ; 43 7028 6935 inc bx ; 43 7029 6936 cmp bx, strict byte 0003eh ; 83 fb 3e 7030 jc short 0 5022h ; 72 036937 jc short 04f89h ; 72 03 7031 6938 mov bx, strict word 0001eh ; bb 1e 00 7032 6939 mov dx, strict word 0001ah ; ba 1a 00 7033 6940 mov ax, strict word 00040h ; b8 40 00 7034 call 0162ah ; e8 ff c56941 call 0162ah ; e8 98 c6 7035 6942 mov ax, strict word 00001h ; b8 01 00 7036 jmp short 0 5032h ; eb 026943 jmp short 04f99h ; eb 02 7037 6944 xor ax, ax ; 31 c0 7038 6945 leave ; c9 … … 7044 6951 or cl, byte [bx+di] ; 0a 09 7045 6952 add ax, 00102h ; 05 02 01 7046 add bh, dh ; 00 f7 6953 add byte [bp+052h], bl ; 00 5e 52 6954 je short 04ffeh ; 74 50 6955 mov bx, 00750h ; bb 50 07 6956 push cx ; 51 6957 pop SS ; 17 6958 push cx ; 51 6959 inc cx ; 41 6960 push cx ; 51 6961 dec dx ; 4a 6962 push cx ; 51 6963 mov bx, 0ec51h ; bb 51 ec 6964 push cx ; 51 6965 sbb word [bp+si+053h], dx ; 19 52 53 7047 6966 push dx ; 52 7048 or ax, 05451h ; 0d 51 54 7049 push cx ; 51 7050 mov AL, byte [0b051h] ; a0 51 b0 7051 push cx ; 51 7052 ficom dword [bx+di-01dh] ; da 51 e3 7053 push cx ; 51 7054 push sp ; 54 6967 db 0a1h 7055 6968 push dx ; 52 7056 test word [bp+si-04eh], dx ; 85 52 b2 7057 push dx ; 52 7058 in AL, DX ; ec 7059 push dx ; 52 7060 db 03ah 7061 push bx ; 53 7062 _int16_function: ; 0xf505b LB 0x2e2 6969 _int16_function: ; 0xf4fc2 LB 0x2e2 7063 6970 push di ; 57 7064 6971 enter 00006h, 000h ; c8 06 00 00 7065 6972 mov dx, strict word 00017h ; ba 17 00 7066 6973 mov ax, strict word 00040h ; b8 40 00 7067 call 01600h ; e8 97 c56974 call 01600h ; e8 30 c6 7068 6975 mov cl, al ; 88 c1 7069 6976 mov bh, al ; 88 c7 7070 6977 mov dx, 00097h ; ba 97 00 7071 6978 mov ax, strict word 00040h ; b8 40 00 7072 call 01600h ; e8 8a c56979 call 01600h ; e8 23 c6 7073 6980 mov bl, al ; 88 c3 7074 6981 movzx dx, cl ; 0f b6 d1 … … 7079 6986 xor al, dl ; 30 d0 7080 6987 test ax, ax ; 85 c0 7081 je short 050 ebh ; 74 606988 je short 05052h ; 74 60 7082 6989 cli ; fa 7083 6990 mov AL, strict byte 0edh ; b0 ed … … 7089 6996 ; sub ah, ah ; 2a e4 7090 6997 test AL, strict byte 001h ; a8 01 7091 jne short 050 a4h ; 75 086998 jne short 0500bh ; 75 08 7092 6999 mov AL, strict byte 021h ; b0 21 7093 7000 mov dx, 00080h ; ba 80 00 7094 7001 out DX, AL ; ee 7095 jmp short 0 5092h ; eb ee7002 jmp short 04ff9h ; eb ee 7096 7003 mov dx, strict word 00060h ; ba 60 00 7097 7004 in AL, DX ; ec … … 7099 7006 ; sub ah, ah ; 2a e4 7100 7007 cmp ax, 000fah ; 3d fa 00 7101 jne short 050 eah ; 75 3b7008 jne short 05051h ; 75 3b 7102 7009 and bl, 0f8h ; 80 e3 f8 7103 7010 movzx ax, bh ; 0f b6 c7 … … 7115 7022 ; sub ah, ah ; 2a e4 7116 7023 test AL, strict byte 001h ; a8 01 7117 jne short 050 d9h ; 75 087024 jne short 05040h ; 75 08 7118 7025 mov AL, strict byte 021h ; b0 21 7119 7026 mov dx, 00080h ; ba 80 00 7120 7027 out DX, AL ; ee 7121 jmp short 050 c7h ; eb ee7028 jmp short 0502eh ; eb ee 7122 7029 mov dx, strict word 00060h ; ba 60 00 7123 7030 in AL, DX ; ec … … 7127 7034 mov dx, 00097h ; ba 97 00 7128 7035 mov ax, strict word 00040h ; b8 40 00 7129 call 0160eh ; e8 24c57036 call 0160eh ; e8 bd c5 7130 7037 sti ; fb 7131 7038 mov ax, word [bp+014h] ; 8b 46 14 7132 7039 shr ax, 008h ; c1 e8 08 7133 7040 cmp ax, 000a2h ; 3d a2 00 7134 jnbe near 052 f7h ; 0f 87 ff 017041 jnbe near 0525eh ; 0f 87 ff 01 7135 7042 push CS ; 0e 7136 7043 pop ES ; 07 7137 7044 mov cx, strict word 0000ch ; b9 0c 00 7138 mov di, 0 5038h ; bf 38 507045 mov di, 04f9fh ; bf 9f 4f 7139 7046 repne scasb ; f2 ae 7140 7047 sal cx, 1 ; d1 e1 7141 7048 mov di, cx ; 89 cf 7142 mov ax, word [cs:di+0 5043h] ; 2e 8b 85 43 507049 mov ax, word [cs:di+04faah] ; 2e 8b 85 aa 4f 7143 7050 jmp ax ; ff e0 7144 7051 push strict byte 00001h ; 6a 01 … … 7147 7054 mov dx, ss ; 8c d2 7148 7055 lea ax, [bp-004h] ; 8d 46 fc 7149 call 04f cbh ; e8 af fe7056 call 04f32h ; e8 af fe 7150 7057 test ax, ax ; 85 c0 7151 jne short 05 12bh ; 75 0b7152 push 0057 dh ; 68 7d057058 jne short 05092h ; 75 0b 7059 push 0057fh ; 68 7f 05 7153 7060 push strict byte 00007h ; 6a 07 7154 call 018e9h ; e8 c1 c77061 call 018e9h ; e8 5a c8 7155 7062 add sp, strict byte 00004h ; 83 c4 04 7156 7063 cmp byte [bp-004h], 000h ; 80 7e fc 00 7157 je short 05 137h ; 74 067064 je short 0509eh ; 74 06 7158 7065 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 7159 je short 05 13dh ; 74 067066 je short 050a4h ; 74 06 7160 7067 cmp byte [bp-006h], 0e0h ; 80 7e fa e0 7161 jne short 05 141h ; 75 047068 jne short 050a8h ; 75 04 7162 7069 mov byte [bp-006h], 000h ; c6 46 fa 00 7163 7070 movzx dx, byte [bp-004h] ; 0f b6 56 fc … … 7175 7082 mov dx, ss ; 8c d2 7176 7083 lea ax, [bp-004h] ; 8d 46 fc 7177 call 04f cbh ; e8 63 fe7084 call 04f32h ; e8 63 fe 7178 7085 test ax, ax ; 85 c0 7179 jne short 05 173h ; 75 077086 jne short 050dah ; 75 07 7180 7087 or word [bp+01eh], strict byte 00040h ; 83 4e 1e 40 7181 7088 leave ; c9 … … 7183 7090 retn ; c3 7184 7091 cmp byte [bp-004h], 000h ; 80 7e fc 00 7185 je short 05 17fh ; 74 067092 je short 050e6h ; 74 06 7186 7093 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 7187 je short 05 185h ; 74 067094 je short 050ech ; 74 06 7188 7095 cmp byte [bp-006h], 0e0h ; 80 7e fa e0 7189 jne short 05 189h ; 75 047096 jne short 050f0h ; 75 04 7190 7097 mov byte [bp-006h], 000h ; c6 46 fa 00 7191 7098 movzx dx, byte [bp-004h] ; 0f b6 56 fc … … 7200 7107 mov dx, strict word 00017h ; ba 17 00 7201 7108 mov ax, strict word 00040h ; b8 40 00 7202 call 01600h ; e8 57c47109 call 01600h ; e8 f0 c4 7203 7110 mov dx, word [bp+014h] ; 8b 56 14 7204 7111 mov dl, al ; 88 c2 7205 jmp short 05 14eh ; eb 9e7112 jmp short 050b5h ; eb 9e 7206 7113 mov al, byte [bp+012h] ; 8a 46 12 7207 7114 movzx dx, al ; 0f b6 d0 … … 7209 7116 shr ax, 008h ; c1 e8 08 7210 7117 xor ah, ah ; 30 e4 7211 call 04b e3h ; e8 22 fa7118 call 04b4ah ; e8 22 fa 7212 7119 test ax, ax ; 85 c0 7213 jne short 051 d2h ; 75 0d7120 jne short 05139h ; 75 0d 7214 7121 mov ax, word [bp+014h] ; 8b 46 14 7215 7122 xor al, al ; 30 c0 … … 7226 7133 xor al, al ; 30 c0 7227 7134 or AL, strict byte 030h ; 0c 30 7228 jmp short 051 cch ; eb e97135 jmp short 05133h ; eb e9 7229 7136 mov byte [bp-002h], 002h ; c6 46 fe 02 7230 7137 xor cx, cx ; 31 c9 … … 7239 7146 ; sub ah, ah ; 2a e4 7240 7147 test AL, strict byte 001h ; a8 01 7241 jne short 05 20ah ; 75 0d7148 jne short 05171h ; 75 0d 7242 7149 dec bx ; 4b 7243 7150 test bx, bx ; 85 db 7244 jbe short 05 20ah ; 76 087151 jbe short 05171h ; 76 08 7245 7152 mov dx, 00080h ; ba 80 00 7246 7153 in AL, DX ; ec 7247 7154 db 02ah, 0e4h 7248 7155 ; sub ah, ah ; 2a e4 7249 jmp short 051 f3h ; eb e97156 jmp short 0515ah ; eb e9 7250 7157 test bx, bx ; 85 db 7251 jbe short 05 24eh ; 76 407158 jbe short 051b5h ; 76 40 7252 7159 mov dx, strict word 00060h ; ba 60 00 7253 7160 in AL, DX ; ec … … 7255 7162 ; sub ah, ah ; 2a e4 7256 7163 cmp ax, 000fah ; 3d fa 00 7257 jne short 05 24eh ; 75 357164 jne short 051b5h ; 75 35 7258 7165 mov bx, strict word 0ffffh ; bb ff ff 7259 7166 mov dx, strict word 00064h ; ba 64 00 … … 7262 7169 ; sub ah, ah ; 2a e4 7263 7170 test AL, strict byte 001h ; a8 01 7264 jne short 05 233h ; 75 0d7171 jne short 0519ah ; 75 0d 7265 7172 dec bx ; 4b 7266 7173 test bx, bx ; 85 db 7267 jbe short 05 233h ; 76 087174 jbe short 0519ah ; 76 08 7268 7175 mov dx, 00080h ; ba 80 00 7269 7176 in AL, DX ; ec 7270 7177 db 02ah, 0e4h 7271 7178 ; sub ah, ah ; 2a e4 7272 jmp short 05 21ch ; eb e97179 jmp short 05183h ; eb e9 7273 7180 test bx, bx ; 85 db 7274 jbe short 05 245h ; 76 0e7181 jbe short 051ach ; 76 0e 7275 7182 shr cx, 008h ; c1 e9 08 7276 7183 mov dx, strict word 00060h ; ba 60 00 … … 7282 7189 dec byte [bp-002h] ; fe 4e fe 7283 7190 cmp byte [bp-002h], 000h ; 80 7e fe 00 7284 jnbe short 05 219h ; 77 cb7191 jnbe short 05180h ; 77 cb 7285 7192 mov word [bp+00eh], cx ; 89 4e 0e 7286 7193 leave ; c9 … … 7292 7199 mov dx, ss ; 8c d2 7293 7200 lea ax, [bp-004h] ; 8d 46 fc 7294 call 04f cbh ; e8 68 fd7201 call 04f32h ; e8 68 fd 7295 7202 test ax, ax ; 85 c0 7296 jne short 05 272h ; 75 0b7297 push 0057 dh ; 68 7d057203 jne short 051d9h ; 75 0b 7204 push 0057fh ; 68 7f 05 7298 7205 push strict byte 00007h ; 6a 07 7299 call 018e9h ; e8 7a c67206 call 018e9h ; e8 13 c7 7300 7207 add sp, strict byte 00004h ; 83 c4 04 7301 7208 cmp byte [bp-004h], 000h ; 80 7e fc 00 7302 je near 05 141h ; 0f 84 c7 fe7209 je near 050a8h ; 0f 84 c7 fe 7303 7210 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 7304 je near 05 13dh ; 0f 84 bb fe7305 jmp near 05 141h ; e9 bc fe7211 je near 050a4h ; 0f 84 bb fe 7212 jmp near 050a8h ; e9 bc fe 7306 7213 or word [bp+01eh], 00200h ; 81 4e 1e 00 02 7307 7214 push strict byte 00000h ; 6a 00 … … 7310 7217 mov dx, ss ; 8c d2 7311 7218 lea ax, [bp-004h] ; 8d 46 fc 7312 call 04f cbh ; e8 32 fd7219 call 04f32h ; e8 32 fd 7313 7220 test ax, ax ; 85 c0 7314 je near 05 16ch ; 0f 84 cd fe7221 je near 050d3h ; 0f 84 cd fe 7315 7222 cmp byte [bp-004h], 000h ; 80 7e fc 00 7316 je near 05 189h ; 0f 84 e2 fe7223 je near 050f0h ; 0f 84 e2 fe 7317 7224 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 7318 je near 05 185h ; 0f 84 d6 fe7319 jmp near 05 189h ; e9 d7 fe7225 je near 050ech ; 0f 84 d6 fe 7226 jmp near 050f0h ; e9 d7 fe 7320 7227 mov dx, strict word 00017h ; ba 17 00 7321 7228 mov ax, strict word 00040h ; b8 40 00 7322 call 01600h ; e8 45c37229 call 01600h ; e8 de c3 7323 7230 mov dx, word [bp+014h] ; 8b 56 14 7324 7231 mov dl, al ; 88 c2 … … 7326 7233 mov dx, strict word 00018h ; ba 18 00 7327 7234 mov ax, strict word 00040h ; b8 40 00 7328 call 01600h ; e8 34c37235 call 01600h ; e8 cd c3 7329 7236 mov bh, al ; 88 c7 7330 7237 and bh, 073h ; 80 e7 73 7331 7238 mov dx, 00096h ; ba 96 00 7332 7239 mov ax, strict word 00040h ; b8 40 00 7333 call 01600h ; e8 26c37240 call 01600h ; e8 bf c3 7334 7241 and AL, strict byte 00ch ; 24 0c 7335 7242 or bh, al ; 08 c7 … … 7338 7245 movzx ax, bh ; 0f b6 c7 7339 7246 sal ax, 008h ; c1 e0 08 7340 jmp near 05 14ch ; e9 60 fe7247 jmp near 050b3h ; e9 60 fe 7341 7248 mov ax, word [bp+014h] ; 8b 46 14 7342 7249 xor ah, ah ; 30 e4 7343 7250 or ah, 080h ; 80 cc 80 7344 jmp near 051 cch ; e9 d5 fe7345 mov bx, 00 cech ; bb ec 0c7251 jmp near 05133h ; e9 d5 fe 7252 mov bx, 00d32h ; bb 32 0d 7346 7253 mov cx, ds ; 8c d9 7347 7254 mov ax, strict word 00004h ; b8 04 00 7348 call 018aeh ; e8 ac c57255 call 018aeh ; e8 45 c6 7349 7256 mov ax, word [bp+014h] ; 8b 46 14 7350 7257 shr ax, 008h ; c1 e8 08 7351 7258 push ax ; 50 7352 push 005a 1h ; 68 a1057259 push 005a3h ; 68 a3 05 7353 7260 push strict byte 00004h ; 6a 04 7354 call 018e9h ; e8 d8 c57261 call 018e9h ; e8 71 c6 7355 7262 add sp, strict byte 00006h ; 83 c4 06 7356 mov bx, 00 cech ; bb ec 0c7263 mov bx, 00d32h ; bb 32 0d 7357 7264 mov cx, ds ; 8c d9 7358 7265 mov ax, strict word 00004h ; b8 04 00 7359 call 018aeh ; e8 8f c57266 call 018aeh ; e8 28 c6 7360 7267 mov ax, word [bp+010h] ; 8b 46 10 7361 7268 push ax ; 50 … … 7366 7273 mov ax, word [bp+014h] ; 8b 46 14 7367 7274 push ax ; 50 7368 push 005c 9h ; 68 c9057275 push 005cbh ; 68 cb 05 7369 7276 push strict byte 00004h ; 6a 04 7370 call 018e9h ; e8 b2 c57277 call 018e9h ; e8 4b c6 7371 7278 add sp, strict byte 0000ch ; 83 c4 0c 7372 7279 leave ; c9 7373 7280 pop di ; 5f 7374 7281 retn ; c3 7375 set_geom_lba_: ; 0xf5 33dLB 0x9e7282 set_geom_lba_: ; 0xf52a4 LB 0x9e 7376 7283 push si ; 56 7377 7284 push di ; 57 … … 7385 7292 mov di, 000ffh ; bf ff 00 7386 7293 xor bx, bx ; 31 db 7387 jmp short 05 35eh ; eb 057294 jmp short 052c5h ; eb 05 7388 7295 cmp bx, strict byte 00004h ; 83 fb 04 7389 jnl short 05 374h ; 7d 167296 jnl short 052dbh ; 7d 16 7390 7297 cmp dx, word [bp-002h] ; 3b 56 fe 7391 jnbe short 05 36ah ; 77 077392 jne short 05 36dh ; 75 087298 jnbe short 052d1h ; 77 07 7299 jne short 052d4h ; 75 08 7393 7300 cmp ax, word [bp-004h] ; 3b 46 fc 7394 jc short 05 36dh ; 72 037301 jc short 052d4h ; 72 03 7395 7302 inc di ; 47 7396 7303 shr di, 1 ; d1 ef … … 7398 7305 rcr ax, 1 ; d1 d8 7399 7306 inc bx ; 43 7400 jmp short 05 359h ; eb e57307 jmp short 052c0h ; eb e5 7401 7308 mov ax, di ; 89 f8 7402 7309 xor dx, dx ; 31 d2 7403 7310 mov bx, strict word 0003fh ; bb 3f 00 7404 7311 xor cx, cx ; 31 c9 7405 call 08f f9h ; e8 79 3c7312 call 08fe9h ; e8 02 3d 7406 7313 mov bx, ax ; 89 c3 7407 7314 mov cx, dx ; 89 d1 7408 7315 mov ax, word [bp-004h] ; 8b 46 fc 7409 7316 mov dx, word [bp-002h] ; 8b 56 fe 7410 call 08f c0h ; e8 333c7317 call 08fb0h ; e8 bc 3c 7411 7318 mov word [es:si+002h], ax ; 26 89 44 02 7412 7319 cmp ax, 00400h ; 3d 00 04 7413 jbe short 053 9ch ; 76 067320 jbe short 05303h ; 76 06 7414 7321 mov word [es:si+002h], 00400h ; 26 c7 44 02 00 04 7415 7322 mov word [es:si], di ; 26 89 3c … … 7419 7326 pop si ; 5e 7420 7327 retn ; c3 7421 arpl word [si-079h], dx ; 63 54 87 7328 retf 0ee53h ; ca 53 ee 7329 push bx ; 53 7330 sbb dx, word [si+01bh] ; 1b 54 1b 7422 7331 push sp ; 54 7423 mov AH, strict byte 054h ; b4 54 7424 mov AH, strict byte 054h ; b4 54 7425 mov AH, strict byte 054h ; b4 54 7426 mov [bp-046h], ss ; 8c 56 ba 7332 sbb dx, word [si-00dh] ; 1b 54 f3 7333 push bp ; 55 7334 and word [bx+021h], dx ; 21 57 21 7427 7335 push di ; 57 7428 mov dx, 0a557h ; ba 57 a5 7336 or AL, strict byte 056h ; 0c 56 7337 db 0feh 7429 7338 push si ; 56 7430 xchg di, ax ; 977339 and word [bx+021h], dx ; 21 57 21 7431 7340 push di ; 57 7432 mov dx, 0ba57h ; ba 57 ba 7341 db 0feh 7342 push si ; 56 7343 db 0feh 7344 push si ; 56 7345 and word [bx+021h], dx ; 21 57 21 7433 7346 push di ; 57 7434 xchg di, ax ; 97 7347 db 082h, 056h, 0feh, 056h 7348 ; adc byte [bp-002h], 056h ; 82 56 fe 56 7349 and word [bx+021h], dx ; 21 57 21 7435 7350 push di ; 57 7436 xchg di, ax ; 97 7351 db 0feh 7352 push si ; 56 7353 mov DL, strict byte 056h ; b2 56 7354 and word [bx+021h], dx ; 21 57 21 7437 7355 push di ; 57 7438 mov dx, 0ba57h ; ba 57 ba7356 db 021h 7439 7357 push di ; 57 7440 sbb dx, word [bx-069h] ; 1b 57 97 7441 push di ; 57 7442 mov dx, 0ba57h ; ba 57 ba 7443 push di ; 57 7444 xchg di, ax ; 97 7445 push di ; 57 7446 dec bx ; 4b 7447 push di ; 57 7448 mov dx, 0ba57h ; ba 57 ba 7449 push di ; 57 7450 db 0bah 7451 push di ; 57 7452 _int13_harddisk: ; 0xf53db LB 0x43c 7358 _int13_harddisk: ; 0xf5342 LB 0x43c 7453 7359 enter 00010h, 000h ; c8 10 00 00 7454 7360 mov dx, strict word 0000eh ; ba 0e 00 7455 7361 mov ax, strict word 00040h ; b8 40 00 7456 call 0161ch ; e8 34c27362 call 0161ch ; e8 cd c2 7457 7363 mov si, 00122h ; be 22 01 7458 7364 mov word [bp-004h], ax ; 89 46 fc … … 7460 7366 mov dx, 0008eh ; ba 8e 00 7461 7367 mov ax, strict word 00040h ; b8 40 00 7462 call 0160eh ; e8 15c27368 call 0160eh ; e8 ae c2 7463 7369 mov ax, word [bp+00eh] ; 8b 46 0e 7464 7370 xor ah, ah ; 30 e4 7465 7371 cmp ax, 00080h ; 3d 80 00 7466 jc short 05 408h ; 72 057372 jc short 0536fh ; 72 05 7467 7373 cmp ax, 00090h ; 3d 90 00 7468 jc short 05 426h ; 72 1e7374 jc short 0538dh ; 72 1e 7469 7375 mov ax, word [bp+00eh] ; 8b 46 0e 7470 7376 xor ah, ah ; 30 e4 … … 7473 7379 shr ax, 008h ; c1 e8 08 7474 7380 push ax ; 50 7475 push 005e ch ; 68 ec057476 push 005f bh ; 68 fb057381 push 005eeh ; 68 ee 05 7382 push 005fdh ; 68 fd 05 7477 7383 push strict byte 00004h ; 6a 04 7478 call 018e9h ; e8 c9 c47384 call 018e9h ; e8 62 c5 7479 7385 add sp, strict byte 0000ah ; 83 c4 0a 7480 jmp near 057 d5h ; e9 af 037386 jmp near 0573ch ; e9 af 03 7481 7387 mov ax, word [bp+00eh] ; 8b 46 0e 7482 7388 xor ah, ah ; 30 e4 … … 7487 7393 mov byte [bp-002h], dl ; 88 56 fe 7488 7394 cmp dl, 010h ; 80 fa 10 7489 jc short 05 44fh ; 72 107395 jc short 053b6h ; 72 10 7490 7396 push ax ; 50 7491 7397 mov ax, word [bp+016h] ; 8b 46 16 7492 7398 shr ax, 008h ; c1 e8 08 7493 7399 push ax ; 50 7494 push 005e ch ; 68 ec057495 push 0062 6h ; 68 26067496 jmp short 05 41bh ; eb cc7400 push 005eeh ; 68 ee 05 7401 push 00628h ; 68 28 06 7402 jmp short 05382h ; eb cc 7497 7403 mov bx, word [bp+016h] ; 8b 5e 16 7498 7404 shr bx, 008h ; c1 eb 08 7499 7405 cmp bx, strict byte 00018h ; 83 fb 18 7500 jnbe near 057 bah ; 0f 87 5e 037406 jnbe near 05721h ; 0f 87 5e 03 7501 7407 add bx, bx ; 01 db 7502 jmp word [cs:bx+053 a9h] ; 2e ff a7 a9537408 jmp word [cs:bx+05310h] ; 2e ff a7 10 53 7503 7409 cmp byte [bp-002h], 008h ; 80 7e fe 08 7504 jnc near 05 472h ; 0f 83 07 007410 jnc near 053d9h ; 0f 83 07 00 7505 7411 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7506 call 01be6h ; e8 74 c77412 call 01be6h ; e8 0d c8 7507 7413 mov byte [bp+017h], 000h ; c6 46 17 00 7508 7414 xor bx, bx ; 31 db 7509 7415 mov dx, strict word 00074h ; ba 74 00 7510 7416 mov ax, strict word 00040h ; b8 40 00 7511 call 0160eh ; e8 8d c17417 call 0160eh ; e8 26 c2 7512 7418 and byte [bp+01ch], 0feh ; 80 66 1c fe 7513 7419 leave ; c9 … … 7515 7421 mov dx, strict word 00074h ; ba 74 00 7516 7422 mov ax, strict word 00040h ; b8 40 00 7517 call 01600h ; e8 70 c17423 call 01600h ; e8 09 c2 7518 7424 mov cl, al ; 88 c1 7519 7425 mov dx, word [bp+016h] ; 8b 56 16 … … 7526 7432 mov dx, strict word 00074h ; ba 74 00 7527 7433 mov ax, strict word 00040h ; b8 40 00 7528 call 0160eh ; e8 61c17434 call 0160eh ; e8 fa c1 7529 7435 test cl, cl ; 84 c9 7530 je short 05 476h ; 74 c57531 jmp near 057 f1h ; e9 3d 037436 je short 053ddh ; 74 c5 7437 jmp near 05758h ; e9 3d 03 7532 7438 mov ax, word [bp+016h] ; 8b 46 16 7533 7439 xor ah, ah ; 30 e4 … … 7549 7455 mov ax, word [bp-00ch] ; 8b 46 f4 7550 7456 cmp ax, 00080h ; 3d 80 00 7551 jnbe short 054 efh ; 77 047457 jnbe short 05456h ; 77 04 7552 7458 test ax, ax ; 85 c0 7553 jne short 05 512h ; 75 237554 mov bx, 00 cech ; bb ec 0c7459 jne short 05479h ; 75 23 7460 mov bx, 00d32h ; bb 32 0d 7555 7461 mov cx, ds ; 8c d9 7556 7462 mov ax, strict word 00004h ; b8 04 00 7557 call 018aeh ; e8 b4 c37463 call 018aeh ; e8 4d c4 7558 7464 mov ax, word [bp+016h] ; 8b 46 16 7559 7465 shr ax, 008h ; c1 e8 08 7560 7466 push ax ; 50 7561 push 005e ch ; 68 ec057562 push 0065 8h ; 68 58067467 push 005eeh ; 68 ee 05 7468 push 0065ah ; 68 5a 06 7563 7469 push strict byte 00004h ; 6a 04 7564 call 018e9h ; e8 dd c37470 call 018e9h ; e8 76 c4 7565 7471 add sp, strict byte 00008h ; 83 c4 08 7566 jmp near 057 d5h ; e9 c3 027472 jmp near 0573ch ; e9 c3 02 7567 7473 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7568 7474 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 7575 7481 mov word [bp-00ah], dx ; 89 56 f6 7576 7482 cmp di, ax ; 39 c7 7577 jnc short 05 53fh ; 73 0c7483 jnc short 054a6h ; 73 0c 7578 7484 cmp cx, word [bp-008h] ; 3b 4e f8 7579 jbe short 05 53fh ; 76 077485 jbe short 054a6h ; 76 07 7580 7486 mov ax, word [bp-006h] ; 8b 46 fa 7581 7487 cmp ax, dx ; 39 d0 7582 jbe short 05 56dh ; 76 2e7583 mov bx, 00 cech ; bb ec 0c7488 jbe short 054d4h ; 76 2e 7489 mov bx, 00d32h ; bb 32 0d 7584 7490 mov cx, ds ; 8c d9 7585 7491 mov ax, strict word 00004h ; b8 04 00 7586 call 018aeh ; e8 64c37492 call 018aeh ; e8 fd c3 7587 7493 push dword [bp-008h] ; 66 ff 76 f8 7588 7494 push di ; 57 … … 7593 7499 shr ax, 008h ; c1 e8 08 7594 7500 push ax ; 50 7595 push 005e ch ; 68 ec057596 push 0068 0h ; 68 80067501 push 005eeh ; 68 ee 05 7502 push 00682h ; 68 82 06 7597 7503 push strict byte 00004h ; 6a 04 7598 call 018e9h ; e8 82 c37504 call 018e9h ; e8 1b c4 7599 7505 add sp, strict byte 00010h ; 83 c4 10 7600 jmp near 057 d5h ; e9 68 027506 jmp near 0573ch ; e9 68 02 7601 7507 mov ax, word [bp+016h] ; 8b 46 16 7602 7508 shr ax, 008h ; c1 e8 08 7603 7509 cmp ax, strict word 00004h ; 3d 04 00 7604 jne short 05 57bh ; 75 037605 jmp near 05 472h ; e9 f7 fe7510 jne short 054e2h ; 75 03 7511 jmp near 053d9h ; e9 f7 fe 7606 7512 movzx bx, byte [bp-002h] ; 0f b6 5e fe 7607 7513 imul bx, bx, strict byte 00018h ; 6b db 18 … … 7609 7515 add bx, si ; 01 f3 7610 7516 cmp cx, word [es:bx+02ch] ; 26 3b 4f 2c 7611 jne short 055 9ch ; 75 0f7517 jne short 05503h ; 75 0f 7612 7518 mov ax, word [es:bx+030h] ; 26 8b 47 30 7613 7519 cmp ax, word [bp-00ah] ; 3b 46 f6 7614 jne short 055 9ch ; 75 067520 jne short 05503h ; 75 06 7615 7521 cmp byte [bp-002h], 008h ; 80 7e fe 08 7616 jc short 055 cch ; 72 307522 jc short 05533h ; 72 30 7617 7523 mov ax, di ; 89 f8 7618 7524 xor dx, dx ; 31 d2 7619 7525 mov bx, cx ; 89 cb 7620 7526 xor cx, cx ; 31 c9 7621 call 08f f9h ; e8 523a7527 call 08fe9h ; e8 db 3a 7622 7528 xor bx, bx ; 31 db 7623 7529 add ax, word [bp-008h] ; 03 46 f8 … … 7625 7531 mov bx, word [bp-00ah] ; 8b 5e f6 7626 7532 xor cx, cx ; 31 c9 7627 call 08f f9h ; e8 433a7533 call 08fe9h ; e8 cc 3a 7628 7534 xor bx, bx ; 31 db 7629 7535 add ax, word [bp-006h] ; 03 46 fa … … 7669 7575 push ES ; 06 7670 7576 push si ; 56 7671 call word [word bx -00004h] ; ff 97 fc ff7577 call word [word bx+00014h] ; ff 97 14 00 7672 7578 mov dx, ax ; 89 c2 7673 7579 mov ax, word [bp+016h] ; 8b 46 16 … … 7678 7584 mov word [bp+016h], bx ; 89 5e 16 7679 7585 test dl, dl ; 84 d2 7680 je near 05 472h ; 0f 84 15 fe7681 mov bx, 00 cech ; bb ec 0c7586 je near 053d9h ; 0f 84 15 fe 7587 mov bx, 00d32h ; bb 32 0d 7682 7588 mov cx, ds ; 8c d9 7683 7589 mov ax, strict word 00004h ; b8 04 00 7684 call 018aeh ; e8 46c27590 call 018aeh ; e8 df c2 7685 7591 movzx ax, dl ; 0f b6 c2 7686 7592 push ax ; 50 … … 7688 7594 shr ax, 008h ; c1 e8 08 7689 7595 push ax ; 50 7690 push 005e ch ; 68 ec057691 push 006c 7h ; 68 c7067596 push 005eeh ; 68 ee 05 7597 push 006c9h ; 68 c9 06 7692 7598 push strict byte 00004h ; 6a 04 7693 call 018e9h ; e8 6b c27599 call 018e9h ; e8 04 c3 7694 7600 add sp, strict byte 0000ah ; 83 c4 0a 7695 7601 mov ax, word [bp+016h] ; 8b 46 16 7696 7602 xor ah, ah ; 30 e4 7697 7603 or ah, 00ch ; 80 cc 0c 7698 jmp near 057 ddh ; e9 51 017699 mov bx, 00 cech ; bb ec 0c7604 jmp near 05744h ; e9 51 01 7605 mov bx, 00d32h ; bb 32 0d 7700 7606 mov cx, ds ; 8c d9 7701 7607 mov ax, strict word 00004h ; b8 04 00 7702 call 018aeh ; e8 17c27703 push 006e 8h ; 68 e8067608 call 018aeh ; e8 b0 c2 7609 push 006eah ; 68 ea 06 7704 7610 push strict byte 00004h ; 6a 04 7705 call 018e9h ; e8 4ac27611 call 018e9h ; e8 e3 c2 7706 7612 add sp, strict byte 00004h ; 83 c4 04 7707 jmp near 05 472h ; e9 cd fd7613 jmp near 053d9h ; e9 cd fd 7708 7614 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7709 7615 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 7748 7654 or dx, ax ; 09 c2 7749 7655 mov word [bp+012h], dx ; 89 56 12 7750 jmp near 05 472h ; e9 57 fd7656 jmp near 053d9h ; e9 57 fd 7751 7657 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7752 7658 cwd ; 99 … … 7764 7670 and AL, strict byte 0c0h ; 24 c0 7765 7671 cmp AL, strict byte 040h ; 3c 40 7766 jne short 05 740h ; 75 037767 jmp near 05 472h ; e9 32 fd7672 jne short 056a7h ; 75 03 7673 jmp near 053d9h ; e9 32 fd 7768 7674 mov ax, word [bp+016h] ; 8b 46 16 7769 7675 xor ah, ah ; 30 e4 7770 7676 or ah, 0aah ; 80 cc aa 7771 jmp near 057 ddh ; e9 92 007677 jmp near 05744h ; e9 92 00 7772 7678 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7773 7679 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 7783 7689 mov bx, word [bp-008h] ; 8b 5e f8 7784 7690 xor cx, cx ; 31 c9 7785 call 08f f9h ; e8 84 387691 call 08fe9h ; e8 0d 39 7786 7692 mov bx, word [bp-006h] ; 8b 5e fa 7787 7693 xor cx, cx ; 31 c9 7788 call 08f f9h ; e8 7c 387694 call 08fe9h ; e8 05 39 7789 7695 mov word [bp-010h], ax ; 89 46 f0 7790 7696 mov word [bp-00eh], dx ; 89 56 f2 … … 7795 7701 or ah, 003h ; 80 cc 03 7796 7702 mov word [bp+016h], ax ; 89 46 16 7797 jmp near 05 476h ; e9 df fc7798 mov bx, 00 cech ; bb ec 0c7703 jmp near 053ddh ; e9 df fc 7704 mov bx, 00d32h ; bb 32 0d 7799 7705 mov cx, ds ; 8c d9 7800 7706 mov ax, strict word 00004h ; b8 04 00 7801 call 018aeh ; e8 0cc17707 call 018aeh ; e8 a5 c1 7802 7708 mov ax, word [bp+016h] ; 8b 46 16 7803 7709 shr ax, 008h ; c1 e8 08 7804 7710 push ax ; 50 7805 push 005e ch ; 68 ec057806 push 0070 2h ; 68 02077711 push 005eeh ; 68 ee 05 7712 push 00704h ; 68 04 07 7807 7713 push strict byte 00004h ; 6a 04 7808 call 018e9h ; e8 35c17714 call 018e9h ; e8 ce c1 7809 7715 add sp, strict byte 00008h ; 83 c4 08 7810 jmp near 05 472h ; e9 b8 fc7811 mov bx, 00 cech ; bb ec 0c7716 jmp near 053d9h ; e9 b8 fc 7717 mov bx, 00d32h ; bb 32 0d 7812 7718 mov cx, ds ; 8c d9 7813 7719 mov ax, strict word 00004h ; b8 04 00 7814 call 018aeh ; e8 e9 c07720 call 018aeh ; e8 82 c1 7815 7721 mov ax, word [bp+016h] ; 8b 46 16 7816 7722 shr ax, 008h ; c1 e8 08 7817 7723 push ax ; 50 7818 push 005e ch ; 68 ec057819 push 0073 5h ; 68 35077820 jmp near 05 507h ; e9 32 fd7724 push 005eeh ; 68 ee 05 7725 push 00737h ; 68 37 07 7726 jmp near 0546eh ; e9 32 fd 7821 7727 mov ax, word [bp+016h] ; 8b 46 16 7822 7728 xor ah, ah ; 30 e4 … … 7828 7734 mov dx, strict word 00074h ; ba 74 00 7829 7735 mov ax, strict word 00040h ; b8 40 00 7830 call 0160eh ; e8 1dbe7736 call 0160eh ; e8 b6 be 7831 7737 or byte [bp+01ch], 001h ; 80 4e 1c 01 7832 7738 leave ; c9 7833 7739 retn ; c3 7834 db 0b0h, 058h, 0c8h, 058h, 0c8h, 058h, 0c8h, 058h, 077h, 05ch, 00bh, 05ah, 0c8h, 058h, 011h, 05ah 7835 db 077h, 05ch, 0c4h, 05ch, 0c4h, 05ch, 0c4h, 05ch, 0c4h, 05ch, 08ch, 05ch, 0c4h, 05ch, 0c4h, 05ch 7836 _int13_harddisk_ext: ; 0xf5817 LB 0x4c8 7740 pop SS ; 17 7741 pop ax ; 58 7742 das ; 2f 7743 pop ax ; 58 7744 das ; 2f 7745 pop ax ; 58 7746 das ; 2f 7747 pop ax ; 58 7748 ficomp word [bp+di+072h] ; de 5b 72 7749 pop cx ; 59 7750 das ; 2f 7751 pop ax ; 58 7752 js short 057c7h ; 78 59 7753 ficomp word [bp+di+02bh] ; de 5b 2b 7754 pop sp ; 5c 7755 sub bx, word [si+02bh] ; 2b 5c 2b 7756 pop sp ; 5c 7757 sub bx, word [si-00dh] ; 2b 5c f3 7758 pop bx ; 5b 7759 sub bx, word [si+02bh] ; 2b 5c 2b 7760 pop sp ; 5c 7761 _int13_harddisk_ext: ; 0xf577e LB 0x4c8 7837 7762 enter 00028h, 000h ; c8 28 00 00 7838 7763 mov dx, strict word 0000eh ; ba 0e 00 7839 7764 mov ax, strict word 00040h ; b8 40 00 7840 call 0161ch ; e8 f8 bd7765 call 0161ch ; e8 91 be 7841 7766 mov word [bp-014h], ax ; 89 46 ec 7842 7767 mov dx, strict word 0000eh ; ba 0e 00 7843 7768 mov ax, strict word 00040h ; b8 40 00 7844 call 0161ch ; e8 ec bd7769 call 0161ch ; e8 85 be 7845 7770 mov si, 00122h ; be 22 01 7846 7771 mov word [bp-026h], ax ; 89 46 da … … 7848 7773 mov dx, 0008eh ; ba 8e 00 7849 7774 mov ax, strict word 00040h ; b8 40 00 7850 call 0160eh ; e8 cd bd7775 call 0160eh ; e8 66 be 7851 7776 mov ax, word [bp+00eh] ; 8b 46 0e 7852 7777 xor ah, ah ; 30 e4 7853 7778 cmp ax, 00080h ; 3d 80 00 7854 jc short 05 850h ; 72 057779 jc short 057b7h ; 72 05 7855 7780 cmp ax, 00090h ; 3d 90 00 7856 jc short 05 86eh ; 72 1e7781 jc short 057d5h ; 72 1e 7857 7782 mov ax, word [bp+00eh] ; 8b 46 0e 7858 7783 xor ah, ah ; 30 e4 … … 7861 7786 shr ax, 008h ; c1 e8 08 7862 7787 push ax ; 50 7863 push 0076 3h ; 68 63077864 push 005f bh ; 68 fb057788 push 00765h ; 68 65 07 7789 push 005fdh ; 68 fd 05 7865 7790 push strict byte 00004h ; 6a 04 7866 call 018e9h ; e8 81 c07791 call 018e9h ; e8 1a c1 7867 7792 add sp, strict byte 0000ah ; 83 c4 0a 7868 jmp near 05c a2h ; e9 34 047793 jmp near 05c09h ; e9 34 04 7869 7794 mov ax, word [bp+00eh] ; 8b 46 0e 7870 7795 xor ah, ah ; 30 e4 … … 7874 7799 mov cl, byte [es:bx+0011fh] ; 26 8a 8f 1f 01 7875 7800 cmp cl, 010h ; 80 f9 10 7876 jc short 05 894h ; 72 107801 jc short 057fbh ; 72 10 7877 7802 push ax ; 50 7878 7803 mov ax, word [bp+016h] ; 8b 46 16 7879 7804 shr ax, 008h ; c1 e8 08 7880 7805 push ax ; 50 7881 push 0076 3h ; 68 63077882 push 0062 6h ; 68 26067883 jmp short 05 863h ; eb cf7806 push 00765h ; 68 65 07 7807 push 00628h ; 68 28 06 7808 jmp short 057cah ; eb cf 7884 7809 mov bx, word [bp+016h] ; 8b 5e 16 7885 7810 shr bx, 008h ; c1 eb 08 7886 7811 sub bx, strict byte 00041h ; 83 eb 41 7887 7812 cmp bx, strict byte 0000fh ; 83 fb 0f 7888 jnbe near 05c c4h ; 0f 87 20 047813 jnbe near 05c2bh ; 0f 87 20 04 7889 7814 add bx, bx ; 01 db 7890 7815 mov ax, word [bp+016h] ; 8b 46 16 7891 7816 xor ah, ah ; 30 e4 7892 jmp word [cs:bx+057 f7h] ; 2e ff a7 f7577817 jmp word [cs:bx+0575eh] ; 2e ff a7 5e 57 7893 7818 mov word [bp+010h], 0aa55h ; c7 46 10 55 aa 7894 7819 mov ax, word [bp+016h] ; 8b 46 16 … … 7897 7822 mov word [bp+016h], ax ; 89 46 16 7898 7823 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 7899 jmp near 05 c7bh ; e9 b3 037824 jmp near 05be2h ; e9 b3 03 7900 7825 mov bx, word [bp+00ah] ; 8b 5e 0a 7901 7826 mov es, [bp+004h] ; 8e 46 04 … … 7912 7837 mov ax, word [es:bx+00eh] ; 26 8b 47 0e 7913 7838 or ax, word [bp-00ah] ; 0b 46 f6 7914 je short 05 909h ; 74 117839 je short 05870h ; 74 11 7915 7840 mov ax, word [bp+016h] ; 8b 46 16 7916 7841 shr ax, 008h ; c1 e8 08 7917 7842 push ax ; 50 7918 push 0076 3h ; 68 63077919 push 0077 6h ; 68 76077843 push 00765h ; 68 65 07 7844 push 00778h ; 68 78 07 7920 7845 push strict byte 00007h ; 6a 07 7921 jmp short 05 953h ; eb 4a7846 jmp short 058bah ; eb 4a 7922 7847 mov es, [bp-010h] ; 8e 46 f0 7923 7848 mov ax, word [es:di+008h] ; 26 8b 45 08 … … 7931 7856 mov ch, byte [es:bx+01eh] ; 26 8a 6f 1e 7932 7857 cmp ax, word [es:bx+034h] ; 26 3b 47 34 7933 jnbe short 05 939h ; 77 0b7934 jne short 05 95ch ; 75 2c7858 jnbe short 058a0h ; 77 0b 7859 jne short 058c3h ; 75 2c 7935 7860 mov dx, word [bp-00ah] ; 8b 56 f6 7936 7861 cmp dx, word [es:bx+032h] ; 26 3b 57 32 7937 jc short 05 95ch ; 72 237938 mov bx, 00 cech ; bb ec 0c7862 jc short 058c3h ; 72 23 7863 mov bx, 00d32h ; bb 32 0d 7939 7864 mov cx, ds ; 8c d9 7940 7865 mov ax, strict word 00004h ; b8 04 00 7941 call 018aeh ; e8 6a bf7866 call 018aeh ; e8 03 c0 7942 7867 mov ax, word [bp+016h] ; 8b 46 16 7943 7868 shr ax, 008h ; c1 e8 08 7944 7869 push ax ; 50 7945 push 0076 3h ; 68 63077946 push 007 9fh ; 68 9f077870 push 00765h ; 68 65 07 7871 push 007a1h ; 68 a1 07 7947 7872 push strict byte 00004h ; 6a 04 7948 call 018e9h ; e8 93 bf7873 call 018e9h ; e8 2c c0 7949 7874 add sp, strict byte 00008h ; 83 c4 08 7950 jmp near 05c a2h ; e9 46 037875 jmp near 05c09h ; e9 46 03 7951 7876 mov dx, word [bp+016h] ; 8b 56 16 7952 7877 shr dx, 008h ; c1 ea 08 7953 7878 mov word [bp-00ch], dx ; 89 56 f4 7954 7879 cmp dx, strict byte 00044h ; 83 fa 44 7955 je near 05 c77h ; 0f 84 0b 037880 je near 05bdeh ; 0f 84 0b 03 7956 7881 cmp dx, strict byte 00047h ; 83 fa 47 7957 je near 05 c77h ; 0f 84 04 037882 je near 05bdeh ; 0f 84 04 03 7958 7883 mov es, [bp-026h] ; 8e 46 da 7959 7884 db 066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h … … 7979 7904 push ES ; 06 7980 7905 push si ; 56 7981 call word [ bx-00084h] ; ff 97 7cff7906 call word [word bx-0006ch] ; ff 97 94 ff 7982 7907 mov dx, ax ; 89 c2 7983 7908 mov es, [bp-026h] ; 8e 46 da … … 7987 7912 mov word [es:di+002h], ax ; 26 89 45 02 7988 7913 test dl, dl ; 84 d2 7989 je near 05 c77h ; 0f 84 97 027990 mov bx, 00 cech ; bb ec 0c7914 je near 05bdeh ; 0f 84 97 02 7915 mov bx, 00d32h ; bb 32 0d 7991 7916 mov cx, ds ; 8c d9 7992 7917 mov ax, strict word 00004h ; b8 04 00 7993 call 018aeh ; e8 c3 be7918 call 018aeh ; e8 5c bf 7994 7919 movzx ax, dl ; 0f b6 c2 7995 7920 push ax ; 50 7996 7921 push word [bp-00ch] ; ff 76 f4 7997 push 0076 3h ; 68 63077998 push 006c 7h ; 68 c7067922 push 00765h ; 68 65 07 7923 push 006c9h ; 68 c9 06 7999 7924 push strict byte 00004h ; 6a 04 8000 call 018e9h ; e8 ec be7925 call 018e9h ; e8 85 bf 8001 7926 add sp, strict byte 0000ah ; 83 c4 0a 8002 7927 mov ax, word [bp+016h] ; 8b 46 16 8003 7928 xor ah, ah ; 30 e4 8004 7929 or ah, 00ch ; 80 cc 0c 8005 jmp near 05c aah ; e9 9f 027930 jmp near 05c11h ; e9 9f 02 8006 7931 or ah, 0b2h ; 80 cc b2 8007 jmp near 05c aah ; e9 99 027932 jmp near 05c11h ; e9 99 02 8008 7933 mov bx, word [bp+00ah] ; 8b 5e 0a 8009 7934 mov ax, word [bp+004h] ; 8b 46 04 … … 8015 7940 mov word [bp-00eh], ax ; 89 46 f2 8016 7941 cmp ax, strict word 0001ah ; 3d 1a 00 8017 jc near 05c a2h ; 0f 82 74 028018 jc near 05a b5h ; 0f 82 83 007942 jc near 05c09h ; 0f 82 74 02 7943 jc near 05a1ch ; 0f 82 83 00 8019 7944 movzx ax, cl ; 0f b6 c1 8020 7945 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 8054 7979 ; mov dword [es:di+014h], strict dword 000000000h ; 66 26 c7 45 14 00 00 00 00 8055 7980 cmp word [bp-00eh], strict byte 0001eh ; 83 7e f2 1e 8056 jc near 05b c1h ; 0f 82 04 017981 jc near 05b28h ; 0f 82 04 01 8057 7982 mov es, [bp-004h] ; 8e 46 fc 8058 7983 mov word [es:bx], strict word 0001eh ; 26 c7 07 1e 00 … … 8080 8005 mov al, byte [es:di+023h] ; 26 8a 45 23 8081 8006 test al, al ; 84 c0 8082 jne short 05 b13h ; 75 048007 jne short 05a7ah ; 75 04 8083 8008 xor dx, dx ; 31 d2 8084 jmp short 05 b16h ; eb 038009 jmp short 05a7dh ; eb 03 8085 8010 mov dx, strict word 00008h ; ba 08 00 8086 8011 or dl, 010h ; 80 ca 10 … … 8097 8022 or word [bp-008h], dx ; 09 56 f8 8098 8023 cmp AL, strict byte 003h ; 3c 03 8099 jne short 05 b3ch ; 75 058024 jne short 05aa3h ; 75 05 8100 8025 mov ax, strict word 00003h ; b8 03 00 8101 jmp short 05 b3eh ; eb 028026 jmp short 05aa5h ; eb 02 8102 8027 xor ax, ax ; 31 c0 8103 8028 or word [bp-008h], ax ; 09 46 f8 … … 8124 8049 xor ch, ch ; 30 ed 8125 8050 mov byte [bp-002h], ch ; 88 6e fe 8126 jmp short 05b a2h ; eb 068051 jmp short 05b09h ; eb 06 8127 8052 cmp byte [bp-002h], 00fh ; 80 7e fe 0f 8128 jnc short 05b b7h ; 73 158053 jnc short 05b1eh ; 73 15 8129 8054 movzx dx, byte [bp-002h] ; 0f b6 56 fe 8130 8055 add dx, 00312h ; 81 c2 12 03 8131 8056 mov ax, word [bp-014h] ; 8b 46 ec 8132 call 01600h ; e8 50ba8057 call 01600h ; e8 e9 ba 8133 8058 add ch, al ; 00 c5 8134 8059 inc byte [bp-002h] ; fe 46 fe 8135 jmp short 05b 9ch ; eb e58060 jmp short 05b03h ; eb e5 8136 8061 neg ch ; f6 dd 8137 8062 mov es, [bp-026h] ; 8e 46 da 8138 8063 mov byte [es:si+001ffh], ch ; 26 88 ac ff 01 8139 8064 cmp word [bp-00eh], strict byte 00042h ; 83 7e f2 42 8140 jc near 05 c77h ; 0f 82 ae 008065 jc near 05bdeh ; 0f 82 ae 00 8141 8066 movzx ax, cl ; 0f b6 c1 8142 8067 cwd ; 99 … … 8156 8081 mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00 8157 8082 test al, al ; 84 c0 8158 jne short 05 c09h ; 75 098083 jne short 05b70h ; 75 09 8159 8084 db 066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h 8160 8085 ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20 … … 8165 8090 ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20 8166 8091 test al, al ; 84 c0 8167 jne short 05 c35h ; 75 138092 jne short 05b9ch ; 75 13 8168 8093 mov word [es:bx+030h], dx ; 26 89 57 30 8169 8094 db 066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h … … 8180 8105 xor cl, cl ; 30 c9 8181 8106 mov CH, strict byte 01eh ; b5 1e 8182 jmp short 05 c5ch ; eb 058107 jmp short 05bc3h ; eb 05 8183 8108 cmp ch, 040h ; 80 fd 40 8184 jnc short 05 c6eh ; 73 128109 jnc short 05bd5h ; 73 12 8185 8110 movzx dx, ch ; 0f b6 d5 8186 8111 add dx, word [bp+00ah] ; 03 56 0a 8187 8112 mov ax, word [bp+004h] ; 8b 46 04 8188 call 01600h ; e8 98 b98113 call 01600h ; e8 31 ba 8189 8114 add cl, al ; 00 c1 8190 8115 db 0feh, 0c5h 8191 8116 ; inc ch ; fe c5 8192 jmp short 05 c57h ; eb e98117 jmp short 05bbeh ; eb e9 8193 8118 neg cl ; f6 d9 8194 8119 mov es, [bp-004h] ; 8e 46 fc … … 8198 8123 mov dx, strict word 00074h ; ba 74 00 8199 8124 mov ax, strict word 00040h ; b8 40 00 8200 call 0160eh ; e8 88 b98125 call 0160eh ; e8 21 ba 8201 8126 and byte [bp+01ch], 0feh ; 80 66 1c fe 8202 8127 leave ; c9 8203 8128 retn ; c3 8204 8129 cmp ax, strict word 00006h ; 3d 06 00 8205 je short 05 c77h ; 74 e68130 je short 05bdeh ; 74 e6 8206 8131 cmp ax, strict word 00001h ; 3d 01 00 8207 jc short 05c a2h ; 72 0c8208 jbe short 05 c77h ; 76 df8132 jc short 05c09h ; 72 0c 8133 jbe short 05bdeh ; 76 df 8209 8134 cmp ax, strict word 00003h ; 3d 03 00 8210 jc short 05c a2h ; 72 058135 jc short 05c09h ; 72 05 8211 8136 cmp ax, strict word 00004h ; 3d 04 00 8212 jbe short 05 c77h ; 76 d58137 jbe short 05bdeh ; 76 d5 8213 8138 mov ax, word [bp+016h] ; 8b 46 16 8214 8139 xor ah, ah ; 30 e4 … … 8220 8145 mov dx, strict word 00074h ; ba 74 00 8221 8146 mov ax, strict word 00040h ; b8 40 00 8222 call 0160eh ; e8 50b98147 call 0160eh ; e8 e9 b9 8223 8148 or byte [bp+01ch], 001h ; 80 4e 1c 01 8224 8149 leave ; c9 8225 8150 retn ; c3 8226 mov bx, 00 cech ; bb ec 0c8151 mov bx, 00d32h ; bb 32 0d 8227 8152 mov cx, ds ; 8c d9 8228 8153 mov ax, strict word 00004h ; b8 04 00 8229 call 018aeh ; e8 df bb8154 call 018aeh ; e8 78 bc 8230 8155 mov ax, word [bp+016h] ; 8b 46 16 8231 8156 shr ax, 008h ; c1 e8 08 8232 8157 push ax ; 50 8233 push 0076 3h ; 68 63078234 push 0073 5h ; 68 35078235 jmp near 05 951h ; e9 72 fc8236 _int14_function: ; 0xf5c dfLB 0x1548158 push 00765h ; 68 65 07 8159 push 00737h ; 68 37 07 8160 jmp near 058b8h ; e9 72 fc 8161 _int14_function: ; 0xf5c46 LB 0x154 8237 8162 push si ; 56 8238 8163 push bp ; 55 … … 8242 8167 add dx, dx ; 01 d2 8243 8168 mov ax, strict word 00040h ; b8 40 00 8244 call 0161ch ; e8 2db98169 call 0161ch ; e8 c6 b9 8245 8170 mov si, ax ; 89 c6 8246 8171 mov bx, ax ; 89 c3 … … 8248 8173 add dx, strict byte 0007ch ; 83 c2 7c 8249 8174 mov ax, strict word 00040h ; b8 40 00 8250 call 01600h ; e8 01b98175 call 01600h ; e8 9a b9 8251 8176 mov cl, al ; 88 c1 8252 8177 cmp word [bp+010h], strict byte 00004h ; 83 7e 10 04 8253 jnc near 05 e2ch ; 0f 83 23 018178 jnc near 05d93h ; 0f 83 23 01 8254 8179 test si, si ; 85 f6 8255 jbe near 05 e2ch ; 0f 86 1d 018180 jbe near 05d93h ; 0f 86 1d 01 8256 8181 mov al, byte [bp+015h] ; 8a 46 15 8257 8182 cmp AL, strict byte 001h ; 3c 01 8258 jc short 05 d27h ; 72 118259 jbe short 05 d7bh ; 76 638183 jc short 05c8eh ; 72 11 8184 jbe short 05ce2h ; 76 63 8260 8185 cmp AL, strict byte 003h ; 3c 03 8261 je near 05 e14h ; 0f 84 f6 008186 je near 05d7bh ; 0f 84 f6 00 8262 8187 cmp AL, strict byte 002h ; 3c 02 8263 je near 05d c9h ; 0f 84 a5 008264 jmp near 05 e25h ; e9 fe 008188 je near 05d30h ; 0f 84 a5 00 8189 jmp near 05d8ch ; e9 fe 00 8265 8190 test al, al ; 84 c0 8266 jne near 05 e25h ; 0f 85 f8 008191 jne near 05d8ch ; 0f 85 f8 00 8267 8192 lea dx, [bx+003h] ; 8d 57 03 8268 8193 in AL, DX ; ec … … 8296 8221 ; sub ah, ah ; 2a e4 8297 8222 mov byte [bp+014h], al ; 88 46 14 8298 jmp near 05 e05h ; e9 97 008223 jmp near 05d6ch ; e9 97 00 8299 8224 mov AL, strict byte 017h ; b0 17 8300 8225 mov dx, bx ; 89 da … … 8303 8228 mov AL, strict byte 004h ; b0 04 8304 8229 out DX, AL ; ee 8305 jmp short 05 d50h ; eb d58230 jmp short 05cb7h ; eb d5 8306 8231 mov dx, strict word 0006ch ; ba 6c 00 8307 8232 mov ax, strict word 00040h ; b8 40 00 8308 call 0161ch ; e8 98 b88233 call 0161ch ; e8 31 b9 8309 8234 mov si, ax ; 89 c6 8310 8235 lea dx, [bx+005h] ; 8d 57 05 … … 8314 8239 and ax, strict word 00060h ; 25 60 00 8315 8240 cmp ax, strict word 00060h ; 3d 60 00 8316 je short 05d abh ; 74 178241 je short 05d12h ; 74 17 8317 8242 test cl, cl ; 84 c9 8318 je short 05d abh ; 74 138243 je short 05d12h ; 74 13 8319 8244 mov dx, strict word 0006ch ; ba 6c 00 8320 8245 mov ax, strict word 00040h ; b8 40 00 8321 call 0161ch ; e8 7b b88246 call 0161ch ; e8 14 b9 8322 8247 cmp ax, si ; 39 f0 8323 je short 05 d86h ; 74 e18248 je short 05cedh ; 74 e1 8324 8249 mov si, ax ; 89 c6 8325 8250 db 0feh, 0c9h 8326 8251 ; dec cl ; fe c9 8327 jmp short 05 d86h ; eb db8252 jmp short 05cedh ; eb db 8328 8253 test cl, cl ; 84 c9 8329 je short 05d b5h ; 74 068254 je short 05d1ch ; 74 06 8330 8255 mov al, byte [bp+014h] ; 8a 46 14 8331 8256 mov dx, bx ; 89 da … … 8337 8262 mov byte [bp+015h], al ; 88 46 15 8338 8263 test cl, cl ; 84 c9 8339 jne short 05 e05h ; 75 438264 jne short 05d6ch ; 75 43 8340 8265 or AL, strict byte 080h ; 0c 80 8341 8266 mov byte [bp+015h], al ; 88 46 15 8342 jmp short 05 e05h ; eb 3c8267 jmp short 05d6ch ; eb 3c 8343 8268 mov dx, strict word 0006ch ; ba 6c 00 8344 8269 mov ax, strict word 00040h ; b8 40 00 8345 call 0161ch ; e8 4ab88270 call 0161ch ; e8 e3 b8 8346 8271 mov si, ax ; 89 c6 8347 8272 lea dx, [bx+005h] ; 8d 57 05 … … 8350 8275 ; sub ah, ah ; 2a e4 8351 8276 test AL, strict byte 001h ; a8 01 8352 jne short 05d f5h ; 75 178277 jne short 05d5ch ; 75 17 8353 8278 test cl, cl ; 84 c9 8354 je short 05d f5h ; 74 138279 je short 05d5ch ; 74 13 8355 8280 mov dx, strict word 0006ch ; ba 6c 00 8356 8281 mov ax, strict word 00040h ; b8 40 00 8357 call 0161ch ; e8 31b88282 call 0161ch ; e8 ca b8 8358 8283 cmp ax, si ; 39 f0 8359 je short 05d d4h ; 74 e58284 je short 05d3bh ; 74 e5 8360 8285 mov si, ax ; 89 c6 8361 8286 db 0feh, 0c9h 8362 8287 ; dec cl ; fe c9 8363 jmp short 05d d4h ; eb df8288 jmp short 05d3bh ; eb df 8364 8289 test cl, cl ; 84 c9 8365 je short 05 e0ch ; 74 138290 je short 05d73h ; 74 13 8366 8291 mov byte [bp+015h], 000h ; c6 46 15 00 8367 8292 mov dx, bx ; 89 da … … 8378 8303 db 02ah, 0e4h 8379 8304 ; sub ah, ah ; 2a e4 8380 jmp short 05d c4h ; eb b08305 jmp short 05d2bh ; eb b0 8381 8306 lea dx, [si+005h] ; 8d 54 05 8382 8307 in AL, DX ; ec … … 8388 8313 db 02ah, 0e4h 8389 8314 ; sub ah, ah ; 2a e4 8390 jmp short 05 e02h ; eb dd8315 jmp short 05d69h ; eb dd 8391 8316 or byte [bp+01eh], 001h ; 80 4e 1e 01 8392 8317 pop bp ; 5d … … 8397 8322 pop si ; 5e 8398 8323 retn ; c3 8399 set_enable_a20_: ; 0xf5 e33LB 0x298324 set_enable_a20_: ; 0xf5d9a LB 0x29 8400 8325 push bx ; 53 8401 8326 push cx ; 51 … … 8410 8335 mov cl, al ; 88 c1 8411 8336 test bx, bx ; 85 db 8412 je short 05 e4ch ; 74 058337 je short 05db3h ; 74 05 8413 8338 or AL, strict byte 002h ; 0c 02 8414 8339 out DX, AL ; ee 8415 jmp short 05 e4fh ; eb 038340 jmp short 05db6h ; eb 03 8416 8341 and AL, strict byte 0fdh ; 24 fd 8417 8342 out DX, AL ; ee … … 8425 8350 pop bx ; 5b 8426 8351 retn ; c3 8427 set_e820_range_: ; 0xf5 e5cLB 0x8c8352 set_e820_range_: ; 0xf5dc3 LB 0x8c 8428 8353 push si ; 56 8429 8354 push bp ; 55 … … 8454 8379 retn 0000ah ; c2 0a 00 8455 8380 in AL, DX ; ec 8456 jmp near 0 208fh ; e9 d8 c18381 jmp near 01ff6h ; e9 d8 c1 8457 8382 sar byte [bx-06f6fh], 089h ; c0 bf 91 90 89 8458 8383 mov byte [bx+05283h], al ; 88 87 83 52 … … 8460 8385 inc cx ; 41 8461 8386 and AL, strict byte 000h ; 24 00 8462 and word [bp+di+026h], strict byte 0005fh ; 83 63 26 5f 8463 cmp word [bx-035h], bx ; 39 5f cb 8387 jmp far 0a05eh:08d62h ; ea 62 8d 5e a0 8388 pop si ; 5e 8389 xor bl, byte [bx+038h] ; 32 5f 38 8464 8390 pop di ; 5f 8465 rcr word [bx-02ah], 1 ; d1 5f d68391 cmp ax, 0425fh ; 3d 5f 42 8466 8392 pop di ; 5f 8467 fistp dword [bx+07dh] ; db 5f 7d 8468 pushaw ; 60 8469 sbb ah, byte [bp+si+040h] ; 1a 62 40 8393 in AL, strict byte 05fh ; e4 5f 8394 and word [bx+di-059h], 02e61h ; 81 61 a7 61 2e 8395 pop di ; 5f 8396 db 02eh, 05fh 8397 ; cs pop di ; 2e 5f 8398 je short 05ea7h ; 74 62 8399 pushfw ; 9c 8400 bound bp, [bx-0419eh] ; 62 af 62 be 8401 bound si, [bp+si] ; 62 32 8402 pop di ; 5f 8403 db 0c5h 8470 8404 db 062h 8471 db 0c7h, 05fh, 0c7h, 05fh, 00dh 8472 ; mov word [bx-039h], 00d5fh ; c7 5f c7 5f 0d 8473 arpl word [di], si ; 63 35 8474 arpl word [bx+si+063h], cx ; 63 48 63 8475 push di ; 57 8476 arpl bx, cx ; 63 cb 8477 pop di ; 5f 8478 pop si ; 5e 8479 db 063h 8480 _int15_function: ; 0xf5ee8 LB 0x4c9 8405 _int15_function: ; 0xf5e4f LB 0x4c9 8481 8406 push si ; 56 8482 8407 push di ; 57 … … 8485 8410 shr ax, 008h ; c1 e8 08 8486 8411 cmp ax, 000ech ; 3d ec 00 8487 jnbe near 06 383h ; 0f 87 88 048412 jnbe near 062eah ; 0f 87 88 04 8488 8413 push CS ; 0e 8489 8414 pop ES ; 07 8490 8415 mov cx, strict word 00012h ; b9 12 00 8491 mov di, 05e b3h ; bf b35e8416 mov di, 05e1ah ; bf 1a 5e 8492 8417 repne scasb ; f2 ae 8493 8418 sal cx, 1 ; d1 e1 8494 8419 mov di, cx ; 89 cf 8495 mov si, word [cs:di+05e c4h] ; 2e 8b b5 c45e8420 mov si, word [cs:di+05e2bh] ; 2e 8b b5 2b 5e 8496 8421 mov ax, word [bp+016h] ; 8b 46 16 8497 8422 xor ah, ah ; 30 e4 … … 8506 8431 xor ah, ah ; 30 e4 8507 8432 cmp ax, 000c0h ; 3d c0 00 8508 jne near 06 383h ; 0f 85 51 048433 jne near 062eah ; 0f 85 51 04 8509 8434 or byte [bp+01ch], 001h ; 80 4e 1c 01 8510 jmp near 06 32ch ; e9 f3 038435 jmp near 06293h ; e9 f3 03 8511 8436 mov dx, ax ; 89 c2 8512 8437 cmp ax, strict word 00001h ; 3d 01 00 8513 jc short 05 f4eh ; 72 0e8514 jbe short 05 f62h ; 76 208438 jc short 05eb5h ; 72 0e 8439 jbe short 05ec9h ; 76 20 8515 8440 cmp ax, strict word 00003h ; 3d 03 00 8516 je short 05 f8fh ; 74 488441 je short 05ef6h ; 74 48 8517 8442 cmp ax, strict word 00002h ; 3d 02 00 8518 je short 05 f72h ; 74 268519 jmp short 05f 9ch ; eb 4e8443 je short 05ed9h ; 74 26 8444 jmp short 05f03h ; eb 4e 8520 8445 test ax, ax ; 85 c0 8521 jne short 05f 9ch ; 75 4a8446 jne short 05f03h ; 75 4a 8522 8447 xor ax, ax ; 31 c0 8523 call 05 e33h ; e8 dc fe8448 call 05d9ah ; e8 dc fe 8524 8449 and byte [bp+01ch], 0feh ; 80 66 1c fe 8525 8450 mov byte [bp+017h], 000h ; c6 46 17 00 8526 jmp near 05f c7h ; e9 65 008451 jmp near 05f2eh ; e9 65 00 8527 8452 mov ax, strict word 00001h ; b8 01 00 8528 call 05 e33h ; e8 cb fe8453 call 05d9ah ; e8 cb fe 8529 8454 and byte [bp+01ch], 0feh ; 80 66 1c fe 8530 8455 mov byte [bp+017h], dh ; 88 76 17 8531 jmp near 05f c7h ; e9 55 008456 jmp near 05f2eh ; e9 55 00 8532 8457 mov dx, 00092h ; ba 92 00 8533 8458 in AL, DX ; ec … … 8541 8466 and byte [bp+01ch], 0feh ; 80 66 1c fe 8542 8467 mov byte [bp+017h], ah ; 88 66 17 8543 jmp near 05f c7h ; e9 38 008468 jmp near 05f2eh ; e9 38 00 8544 8469 and byte [bp+01ch], 0feh ; 80 66 1c fe 8545 8470 mov byte [bp+017h], ah ; 88 66 17 8546 8471 mov word [bp+010h], ax ; 89 46 10 8547 jmp near 05f c7h ; e9 2b 008548 mov bx, 00 cech ; bb ec 0c8472 jmp near 05f2eh ; e9 2b 00 8473 mov bx, 00d32h ; bb 32 0d 8549 8474 mov cx, ds ; 8c d9 8550 8475 mov ax, strict word 00004h ; b8 04 00 8551 call 018aeh ; e8 07b98476 call 018aeh ; e8 a0 b9 8552 8477 mov ax, word [bp+016h] ; 8b 46 16 8553 8478 xor ah, ah ; 30 e4 8554 8479 push ax ; 50 8555 push 007c 4h ; 68 c4078480 push 007c6h ; 68 c6 07 8556 8481 push strict byte 00004h ; 6a 04 8557 call 018e9h ; e8 34b98482 call 018e9h ; e8 cd b9 8558 8483 add sp, strict byte 00006h ; 83 c4 06 8559 8484 or byte [bp+01ch], 001h ; 80 4e 1c 01 … … 8567 8492 retn ; c3 8568 8493 mov word [bp+01ch], bx ; 89 5e 1c 8569 jmp near 0 6077h ; e9 a6 008494 jmp near 05fdeh ; e9 a6 00 8570 8495 mov word [bp+01ch], bx ; 89 5e 1c 8571 jmp short 05f c7h ; eb f18496 jmp short 05f2eh ; eb f1 8572 8497 mov word [bp+01ch], cx ; 89 4e 1c 8573 jmp short 05f c4h ; eb e98498 jmp short 05f2bh ; eb e9 8574 8499 test byte [bp+016h], 0ffh ; f6 46 16 ff 8575 je short 0 604dh ; 74 6c8500 je short 05fb4h ; 74 6c 8576 8501 mov dx, 000a0h ; ba a0 00 8577 8502 mov ax, strict word 00040h ; b8 40 00 8578 call 01600h ; e8 16b68503 call 01600h ; e8 af b6 8579 8504 test AL, strict byte 001h ; a8 01 8580 jne near 06 323h ; 0f 85 33 038505 jne near 0628ah ; 0f 85 33 03 8581 8506 mov bx, strict word 00001h ; bb 01 00 8582 8507 mov dx, 000a0h ; ba a0 00 8583 8508 mov ax, strict word 00040h ; b8 40 00 8584 call 0160eh ; e8 12b68509 call 0160eh ; e8 ab b6 8585 8510 mov bx, word [bp+018h] ; 8b 5e 18 8586 8511 mov dx, 00098h ; ba 98 00 8587 8512 mov ax, strict word 00040h ; b8 40 00 8588 call 0162ah ; e8 22b68513 call 0162ah ; e8 bb b6 8589 8514 mov bx, word [bp+010h] ; 8b 5e 10 8590 8515 mov dx, 0009ah ; ba 9a 00 8591 8516 mov ax, strict word 00040h ; b8 40 00 8592 call 0162ah ; e8 16b68517 call 0162ah ; e8 af b6 8593 8518 mov bx, word [bp+012h] ; 8b 5e 12 8594 8519 mov dx, 0009ch ; ba 9c 00 8595 8520 mov ax, strict word 00040h ; b8 40 00 8596 call 0162ah ; e8 0ab68521 call 0162ah ; e8 a3 b6 8597 8522 mov bx, word [bp+014h] ; 8b 5e 14 8598 8523 mov dx, 0009eh ; ba 9e 00 8599 8524 mov ax, strict word 00040h ; b8 40 00 8600 call 0162ah ; e8 fe b58525 call 0162ah ; e8 97 b6 8601 8526 and byte [bp+01ch], 0feh ; 80 66 1c fe 8602 8527 mov dx, 000a1h ; ba a1 00 … … 8607 8532 out DX, AL ; ee 8608 8533 mov ax, strict word 0000bh ; b8 0b 00 8609 call 0165ch ; e8 1db68534 call 0165ch ; e8 b6 b6 8610 8535 or AL, strict byte 040h ; 0c 40 8611 8536 movzx dx, al ; 0f b6 d0 8612 8537 mov ax, strict word 0000bh ; b8 0b 00 8613 call 0166dh ; e8 23b68614 jmp near 05f c7h ; e9 7a ff8538 call 0166dh ; e8 bc b6 8539 jmp near 05f2eh ; e9 7a ff 8615 8540 cmp ax, strict word 00001h ; 3d 01 00 8616 jne short 0 606bh ; 75 198541 jne short 05fd2h ; 75 19 8617 8542 xor bx, bx ; 31 db 8618 8543 mov dx, 000a0h ; ba a0 00 8619 8544 mov ax, strict word 00040h ; b8 40 00 8620 call 0160eh ; e8 b1 b58545 call 0160eh ; e8 4a b6 8621 8546 and byte [bp+01ch], 0feh ; 80 66 1c fe 8622 8547 mov ax, strict word 0000bh ; b8 0b 00 8623 call 0165ch ; e8 f5 b58548 call 0165ch ; e8 8e b6 8624 8549 and AL, strict byte 0bfh ; 24 bf 8625 jmp short 0 6041h ; eb d68550 jmp short 05fa8h ; eb d6 8626 8551 mov word [bp+01ch], bx ; 89 5e 1c 8627 8552 mov ax, dx ; 89 d0 … … 8631 8556 or dx, ax ; 09 c2 8632 8557 mov word [bp+016h], dx ; 89 56 16 8633 jmp near 05f c7h ; e9 4a ff8558 jmp near 05f2eh ; e9 4a ff 8634 8559 cli ; fa 8635 8560 mov ax, strict word 00001h ; b8 01 00 8636 call 05 e33h ; e8 af fd8561 call 05d9ah ; e8 af fd 8637 8562 mov di, ax ; 89 c7 8638 8563 mov ax, word [bp+018h] ; 8b 46 18 … … 8644 8569 mov byte [bp-002h], dl ; 88 56 fe 8645 8570 cmp cx, ax ; 39 c1 8646 jnc short 060 a3h ; 73 058571 jnc short 0600ah ; 73 05 8647 8572 db 0feh, 0c2h 8648 8573 ; inc dl ; fe c2 … … 8652 8577 mov ax, word [bp+018h] ; 8b 46 18 8653 8578 mov bx, strict word 0002fh ; bb 2f 00 8654 call 0162ah ; e8 78 b58579 call 0162ah ; e8 11 b6 8655 8580 mov dx, word [bp+00ah] ; 8b 56 0a 8656 8581 add dx, strict byte 0000ah ; 83 c2 0a 8657 8582 mov ax, word [bp+018h] ; 8b 46 18 8658 8583 mov bx, cx ; 89 cb 8659 call 0162ah ; e8 6a b58584 call 0162ah ; e8 03 b6 8660 8585 movzx bx, byte [bp-002h] ; 0f b6 5e fe 8661 8586 mov dx, word [bp+00ah] ; 8b 56 0a 8662 8587 add dx, strict byte 0000ch ; 83 c2 0c 8663 8588 mov ax, word [bp+018h] ; 8b 46 18 8664 call 0160eh ; e8 3eb58589 call 0160eh ; e8 d7 b5 8665 8590 mov dx, word [bp+00ah] ; 8b 56 0a 8666 8591 add dx, strict byte 0000dh ; 83 c2 0d 8667 8592 mov ax, word [bp+018h] ; 8b 46 18 8668 8593 mov bx, 00093h ; bb 93 00 8669 call 0160eh ; e8 2fb58594 call 0160eh ; e8 c8 b5 8670 8595 mov dx, word [bp+00ah] ; 8b 56 0a 8671 8596 add dx, strict byte 0000eh ; 83 c2 0e 8672 8597 mov ax, word [bp+018h] ; 8b 46 18 8673 8598 xor bx, bx ; 31 db 8674 call 0162ah ; e8 3db58599 call 0162ah ; e8 d6 b5 8675 8600 mov dx, word [bp+00ah] ; 8b 56 0a 8676 8601 add dx, strict byte 00020h ; 83 c2 20 8677 8602 mov ax, word [bp+018h] ; 8b 46 18 8678 8603 mov bx, strict word 0ffffh ; bb ff ff 8679 call 0162ah ; e8 2eb58604 call 0162ah ; e8 c7 b5 8680 8605 mov dx, word [bp+00ah] ; 8b 56 0a 8681 8606 add dx, strict byte 00022h ; 83 c2 22 8682 8607 mov ax, word [bp+018h] ; 8b 46 18 8683 8608 xor bx, bx ; 31 db 8684 call 0162ah ; e8 20b58609 call 0162ah ; e8 b9 b5 8685 8610 mov dx, word [bp+00ah] ; 8b 56 0a 8686 8611 add dx, strict byte 00024h ; 83 c2 24 8687 8612 mov ax, word [bp+018h] ; 8b 46 18 8688 8613 mov bx, strict word 0000fh ; bb 0f 00 8689 call 0160eh ; e8 f5 b48614 call 0160eh ; e8 8e b5 8690 8615 mov dx, word [bp+00ah] ; 8b 56 0a 8691 8616 add dx, strict byte 00025h ; 83 c2 25 8692 8617 mov ax, word [bp+018h] ; 8b 46 18 8693 8618 mov bx, 0009bh ; bb 9b 00 8694 call 0160eh ; e8 e6 b48619 call 0160eh ; e8 7f b5 8695 8620 mov dx, word [bp+00ah] ; 8b 56 0a 8696 8621 add dx, strict byte 00026h ; 83 c2 26 8697 8622 mov ax, word [bp+018h] ; 8b 46 18 8698 8623 xor bx, bx ; 31 db 8699 call 0162ah ; e8 f4 b48624 call 0162ah ; e8 8d b5 8700 8625 mov ax, ss ; 8c d0 8701 8626 mov cx, ax ; 89 c1 … … 8707 8632 mov ax, word [bp+018h] ; 8b 46 18 8708 8633 mov bx, strict word 0ffffh ; bb ff ff 8709 call 0162ah ; e8 d8 b48634 call 0162ah ; e8 71 b5 8710 8635 mov dx, word [bp+00ah] ; 8b 56 0a 8711 8636 add dx, strict byte 0002ah ; 83 c2 2a 8712 8637 mov ax, word [bp+018h] ; 8b 46 18 8713 8638 mov bx, cx ; 89 cb 8714 call 0162ah ; e8 ca b48639 call 0162ah ; e8 63 b5 8715 8640 movzx bx, byte [bp-004h] ; 0f b6 5e fc 8716 8641 mov dx, word [bp+00ah] ; 8b 56 0a 8717 8642 add dx, strict byte 0002ch ; 83 c2 2c 8718 8643 mov ax, word [bp+018h] ; 8b 46 18 8719 call 0160eh ; e8 9e b48644 call 0160eh ; e8 37 b5 8720 8645 mov dx, word [bp+00ah] ; 8b 56 0a 8721 8646 add dx, strict byte 0002dh ; 83 c2 2d 8722 8647 mov ax, word [bp+018h] ; 8b 46 18 8723 8648 mov bx, 00093h ; bb 93 00 8724 call 0160eh ; e8 8f b48649 call 0160eh ; e8 28 b5 8725 8650 mov dx, word [bp+00ah] ; 8b 56 0a 8726 8651 add dx, strict byte 0002eh ; 83 c2 2e 8727 8652 mov ax, word [bp+018h] ; 8b 46 18 8728 8653 xor bx, bx ; 31 db 8729 call 0162ah ; e8 9d b48654 call 0162ah ; e8 36 b5 8730 8655 mov si, word [bp+00ah] ; 8b 76 0a 8731 8656 mov es, [bp+018h] ; 8e 46 18 … … 8738 8663 mov word [00467h], sp ; 89 26 67 04 8739 8664 mov [00469h], ss ; 8c 16 69 04 8740 call 061 a9h ; e8 00 008665 call 06110h ; e8 00 00 8741 8666 pop di ; 5f 8742 8667 add di, strict byte 0001bh ; 83 c7 1b … … 8744 8669 push di ; 57 8745 8670 lgdt [es:si+008h] ; 26 0f 01 54 08 8746 lidt [cs:0ef dfh] ; 2e 0f 01 1e dfef8671 lidt [cs:0efe1h] ; 2e 0f 01 1e e1 ef 8747 8672 mov eax, cr0 ; 0f 20 c0 8748 8673 or AL, strict byte 001h ; 0c 01 … … 8761 8686 cld ; fc 8762 8687 rep movsw ; f3 a5 8763 call 061 ddh ; e8 00 008688 call 06144h ; e8 00 00 8764 8689 pop ax ; 58 8765 8690 push 0f000h ; 68 00 f0 … … 8773 8698 mov cr0, eax ; 0f 22 c0 8774 8699 retf ; cb 8775 lidt [cs:0efe 5h] ; 2e 0f 01 1e e5ef8700 lidt [cs:0efe7h] ; 2e 0f 01 1e e7 ef 8776 8701 db 033h, 0c0h 8777 8702 ; xor ax, ax ; 33 c0 … … 8782 8707 pop DS ; 1f 8783 8708 mov ax, di ; 89 f8 8784 call 05 e33h ; e8 25 fc8709 call 05d9ah ; e8 25 fc 8785 8710 sti ; fb 8786 8711 mov byte [bp+017h], 000h ; c6 46 17 00 8787 8712 and byte [bp+01ch], 0feh ; 80 66 1c fe 8788 jmp near 05f c7h ; e9 ad fd8713 jmp near 05f2eh ; e9 ad fd 8789 8714 mov ax, strict word 00031h ; b8 31 00 8790 call 0165ch ; e8 3cb48715 call 0165ch ; e8 d5 b4 8791 8716 xor ah, ah ; 30 e4 8792 8717 mov dx, ax ; 89 c2 8793 8718 sal dx, 008h ; c1 e2 08 8794 8719 mov ax, strict word 00030h ; b8 30 00 8795 call 0165ch ; e8 2fb48720 call 0165ch ; e8 c8 b4 8796 8721 xor ah, ah ; 30 e4 8797 8722 or dx, ax ; 09 c2 8798 8723 mov word [bp+016h], dx ; 89 56 16 8799 8724 cmp dx, strict byte 0ffc0h ; 83 fa c0 8800 jbe short 06 213h ; 76 da8725 jbe short 0617ah ; 76 da 8801 8726 mov word [bp+016h], strict word 0ffc0h ; c7 46 16 c0 ff 8802 jmp short 06 213h ; eb d38727 jmp short 0617ah ; eb d3 8803 8728 cli ; fa 8804 8729 mov ax, strict word 00001h ; b8 01 00 8805 call 05 e33h ; e8 ec fb8730 call 05d9ah ; e8 ec fb 8806 8731 mov dx, word [bp+00ah] ; 8b 56 0a 8807 8732 add dx, strict byte 00038h ; 83 c2 38 8808 8733 mov ax, word [bp+018h] ; 8b 46 18 8809 8734 mov bx, strict word 0ffffh ; bb ff ff 8810 call 0162ah ; e8 d4 b38735 call 0162ah ; e8 6d b4 8811 8736 mov dx, word [bp+00ah] ; 8b 56 0a 8812 8737 add dx, strict byte 0003ah ; 83 c2 3a 8813 8738 mov ax, word [bp+018h] ; 8b 46 18 8814 8739 xor bx, bx ; 31 db 8815 call 0162ah ; e8 c6 b38740 call 0162ah ; e8 5f b4 8816 8741 mov dx, word [bp+00ah] ; 8b 56 0a 8817 8742 add dx, strict byte 0003ch ; 83 c2 3c 8818 8743 mov ax, word [bp+018h] ; 8b 46 18 8819 8744 mov bx, strict word 0000fh ; bb 0f 00 8820 call 0160eh ; e8 9b b38745 call 0160eh ; e8 34 b4 8821 8746 mov dx, word [bp+00ah] ; 8b 56 0a 8822 8747 add dx, strict byte 0003dh ; 83 c2 3d 8823 8748 mov ax, word [bp+018h] ; 8b 46 18 8824 8749 mov bx, 0009bh ; bb 9b 00 8825 call 0160eh ; e8 8c b38750 call 0160eh ; e8 25 b4 8826 8751 mov dx, word [bp+00ah] ; 8b 56 0a 8827 8752 add dx, strict byte 0003eh ; 83 c2 3e 8828 8753 mov ax, word [bp+018h] ; 8b 46 18 8829 8754 xor bx, bx ; 31 db 8830 call 0162ah ; e8 9a b38755 call 0162ah ; e8 33 b4 8831 8756 mov AL, strict byte 011h ; b0 11 8832 8757 mov dx, strict word 00020h ; ba 20 00 … … 8858 8783 out DX, AL ; ee 8859 8784 mov si, word [bp+00ah] ; 8b 76 0a 8860 call 062 d1h ; e8 00 008785 call 06238h ; e8 00 00 8861 8786 pop di ; 5f 8862 8787 add di, strict byte 00018h ; 83 c7 18 … … 8886 8811 push cx ; 51 8887 8812 retf ; cb 8888 jmp near 05f c7h ; e9 ba fc8889 mov bx, 00 cech ; bb ec 0c8813 jmp near 05f2eh ; e9 ba fc 8814 mov bx, 00d32h ; bb 32 0d 8890 8815 mov cx, ds ; 8c d9 8891 8816 mov ax, strict word 00004h ; b8 04 00 8892 call 018aeh ; e8 96 b58893 push 0080 4h ; 68 04088817 call 018aeh ; e8 2f b6 8818 push 00806h ; 68 06 08 8894 8819 push strict byte 00004h ; 6a 04 8895 call 018e9h ; e8 c9 b58820 call 018e9h ; e8 62 b6 8896 8821 add sp, strict byte 00004h ; 83 c4 04 8897 8822 or byte [bp+01ch], 001h ; 80 4e 1c 01 … … 8900 8825 or ah, 086h ; 80 cc 86 8901 8826 mov word [bp+016h], ax ; 89 46 16 8902 jmp near 05f c7h ; e9 92 fc8827 jmp near 05f2eh ; e9 92 fc 8903 8828 mov word [bp+01ch], cx ; 89 4e 1c 8904 8829 mov word [bp+016h], ax ; 89 46 16 8905 8830 mov word [bp+010h], 0e6f5h ; c7 46 10 f5 e6 8906 8831 mov word [bp+018h], 0f000h ; c7 46 18 00 f0 8907 jmp near 05f c7h ; e9 7f fc8832 jmp near 05f2eh ; e9 7f fc 8908 8833 mov dx, strict word 0000eh ; ba 0e 00 8909 8834 mov ax, strict word 00040h ; b8 40 00 8910 call 0161ch ; e8 cb b28835 call 0161ch ; e8 64 b3 8911 8836 mov word [bp+018h], ax ; 89 46 18 8912 jmp near 06 213h ; e9 bc fe8913 push 0083 3h ; 68 33088837 jmp near 0617ah ; e9 bc fe 8838 push 00835h ; 68 35 08 8914 8839 push strict byte 00008h ; 6a 08 8915 jmp short 06 31dh ; eb bf8840 jmp short 06284h ; eb bf 8916 8841 test byte [bp+016h], 0ffh ; f6 46 16 ff 8917 jne short 06 383h ; 75 1f8842 jne short 062eah ; 75 1f 8918 8843 mov word [bp+016h], ax ; 89 46 16 8919 8844 mov ax, word [bp+010h] ; 8b 46 10 8920 8845 xor ah, ah ; 30 e4 8921 8846 cmp ax, strict word 00001h ; 3d 01 00 8922 jc short 06 37ch ; 72 0b8847 jc short 062e3h ; 72 0b 8923 8848 cmp ax, strict word 00003h ; 3d 03 00 8924 jnbe short 06 37ch ; 77 068849 jnbe short 062e3h ; 77 06 8925 8850 mov word [bp+01ch], cx ; 89 4e 1c 8926 jmp near 05f c7h ; e9 4b fc8851 jmp near 05f2eh ; e9 4b fc 8927 8852 or byte [bp+01ch], 001h ; 80 4e 1c 01 8928 jmp near 05f c7h ; e9 44 fc8929 mov bx, 00 cech ; bb ec 0c8853 jmp near 05f2eh ; e9 44 fc 8854 mov bx, 00d32h ; bb 32 0d 8930 8855 mov cx, ds ; 8c d9 8931 8856 mov ax, strict word 00004h ; b8 04 00 8932 call 018aeh ; e8 20b58857 call 018aeh ; e8 b9 b5 8933 8858 push word [bp+010h] ; ff 76 10 8934 8859 push word [bp+016h] ; ff 76 16 8935 push 0084 ah ; 68 4a088860 push 0084ch ; 68 4c 08 8936 8861 push strict byte 00004h ; 6a 04 8937 call 018e9h ; e8 4db58862 call 018e9h ; e8 e6 b5 8938 8863 add sp, strict byte 00008h ; 83 c4 08 8939 jmp short 06 323h ; eb 828940 jcxz 06407h ; e3 648941 sbb word [di+03bh], sp ; 19 65 3b8942 db 065h, 05ch8943 ; gs pop sp ; 65 5c8944 db 065h, 07bh, 065h8945 ; gs jnp short 06410h ; 65 7b 658946 call far 00965h:0dc65h ; 9a 65 dc 65 098947 db 066h8948 _int15_function32: ; 0xf63 b1LB 0x3098864 jmp short 0628ah ; eb 82 8865 dec dx ; 4a 8866 and byte [fs:si-05eh], 064h ; 64 80 64 a2 64 8867 retn ; c3 8868 db 064h, 0e2h, 064h 8869 ; fs loop 06376h ; 64 e2 64 8870 add word [di+043h], sp ; 01 65 43 8871 db 065h, 070h, 065h 8872 ; gs jo short 0637dh ; 65 70 65 8873 _int15_function32: ; 0xf6318 LB 0x309 8949 8874 push si ; 56 8950 8875 enter 00008h, 000h ; c8 08 00 00 … … 8952 8877 shr ax, 008h ; c1 e8 08 8953 8878 cmp ax, 000e8h ; 3d e8 00 8954 je short 06 402h ; 74 418879 je short 06369h ; 74 41 8955 8880 cmp ax, 00086h ; 3d 86 00 8956 jne near 06 68dh ; 0f 85 c5 028881 jne near 065f4h ; 0f 85 c5 02 8957 8882 sti ; fb 8958 8883 mov ax, word [bp+01eh] ; 8b 46 1e … … 8973 8898 db 066h, 00bh, 0c9h 8974 8899 ; or ecx, ecx ; 66 0b c9 8975 je near 063 ffh ; 0f 84 0e 008900 je near 06366h ; 0f 84 0e 00 8976 8901 in AL, strict byte 061h ; e4 61 8977 8902 and AL, strict byte 010h ; 24 10 8978 8903 db 03ah, 0c4h 8979 8904 ; cmp al, ah ; 3a c4 8980 je short 063 f1h ; 74 f88905 je short 06358h ; 74 f8 8981 8906 db 08ah, 0e0h 8982 8907 ; mov ah, al ; 8a e0 8983 8908 dec ecx ; 66 49 8984 jne short 063 f1h ; 75 f28909 jne short 06358h ; 75 f2 8985 8910 leave ; c9 8986 8911 pop si ; 5e … … 8989 8914 xor ah, ah ; 30 e4 8990 8915 cmp ax, strict word 00020h ; 3d 20 00 8991 je short 06 416h ; 74 0a8916 je short 0637dh ; 74 0a 8992 8917 cmp ax, strict word 00001h ; 3d 01 00 8993 je near 06 63fh ; 0f 84 2c 028994 jmp near 06 68dh ; e9 77 028918 je near 065a6h ; 0f 84 2c 02 8919 jmp near 065f4h ; e9 77 02 8995 8920 cmp word [bp+01ch], 0534dh ; 81 7e 1c 4d 53 8996 jne near 06 68dh ; 0f 85 6e 028921 jne near 065f4h ; 0f 85 6e 02 8997 8922 cmp word [bp+01ah], 04150h ; 81 7e 1a 50 41 8998 jne near 06 68dh ; 0f 85 65 028923 jne near 065f4h ; 0f 85 65 02 8999 8924 mov ax, strict word 00035h ; b8 35 00 9000 call 0165ch ; e8 2eb28925 call 0165ch ; e8 c7 b2 9001 8926 movzx bx, al ; 0f b6 d8 9002 8927 xor dx, dx ; 31 d2 … … 9004 8929 sal bx, 1 ; d1 e3 9005 8930 rcl dx, 1 ; d1 d2 9006 loop 06 436h ; e2 fa8931 loop 0639dh ; e2 fa 9007 8932 mov ax, strict word 00034h ; b8 34 00 9008 call 0165ch ; e8 1ab28933 call 0165ch ; e8 b3 b2 9009 8934 xor ah, ah ; 30 e4 9010 8935 mov dx, bx ; 89 da … … 9014 8939 adc dx, 00100h ; 81 d2 00 01 9015 8940 cmp dx, 00100h ; 81 fa 00 01 9016 jc short 06 45ch ; 72 069017 jne short 06 489h ; 75 318941 jc short 063c3h ; 72 06 8942 jne short 063f0h ; 75 31 9018 8943 test bx, bx ; 85 db 9019 jnbe short 06 489h ; 77 2d8944 jnbe short 063f0h ; 77 2d 9020 8945 mov ax, strict word 00031h ; b8 31 00 9021 call 0165ch ; e8 fa b18946 call 0165ch ; e8 93 b2 9022 8947 movzx bx, al ; 0f b6 d8 9023 8948 xor dx, dx ; 31 d2 … … 9025 8950 sal bx, 1 ; d1 e3 9026 8951 rcl dx, 1 ; d1 d2 9027 loop 06 46ah ; e2 fa8952 loop 063d1h ; e2 fa 9028 8953 mov ax, strict word 00030h ; b8 30 00 9029 call 0165ch ; e8 e6 b18954 call 0165ch ; e8 7f b2 9030 8955 xor ah, ah ; 30 e4 9031 8956 or bx, ax ; 09 c3 … … 9033 8958 sal bx, 1 ; d1 e3 9034 8959 rcl dx, 1 ; d1 d2 9035 loop 06 47dh ; e2 fa8960 loop 063e4h ; e2 fa 9036 8961 add bx, strict byte 00000h ; 83 c3 00 9037 8962 adc dx, strict byte 00010h ; 83 d2 10 9038 8963 mov ax, strict word 00062h ; b8 62 00 9039 call 0165ch ; e8 cd b18964 call 0165ch ; e8 66 b2 9040 8965 xor ah, ah ; 30 e4 9041 8966 mov word [bp-008h], ax ; 89 46 f8 … … 9045 8970 sal word [bp-008h], 1 ; d1 66 f8 9046 8971 rcl word [bp-006h], 1 ; d1 56 fa 9047 loop 064 9ch ; e2 f88972 loop 06403h ; e2 f8 9048 8973 mov ax, strict word 00061h ; b8 61 00 9049 call 0165ch ; e8 b2 b18974 call 0165ch ; e8 4b b2 9050 8975 xor ah, ah ; 30 e4 9051 8976 or word [bp-008h], ax ; 09 46 f8 … … 9054 8979 mov word [bp-008h], strict word 00000h ; c7 46 f8 00 00 9055 8980 mov ax, strict word 00063h ; b8 63 00 9056 call 0165ch ; e8 9c b18981 call 0165ch ; e8 35 b2 9057 8982 mov byte [bp-004h], al ; 88 46 fc 9058 8983 mov byte [bp-002h], al ; 88 46 fe 9059 8984 mov ax, word [bp+016h] ; 8b 46 16 9060 8985 cmp ax, strict word 00007h ; 3d 07 00 9061 jnbe near 06 68dh ; 0f 87 bd 018986 jnbe near 065f4h ; 0f 87 bd 01 9062 8987 mov si, ax ; 89 c6 9063 8988 add si, ax ; 01 c6 … … 9066 8991 mov cx, dx ; 89 d1 9067 8992 adc cx, strict byte 0ffffh ; 83 d1 ff 9068 jmp word [cs:si+063 a1h] ; 2e ff a4 a1638993 jmp word [cs:si+06308h] ; 2e ff a4 08 63 9069 8994 push strict byte 00001h ; 6a 01 9070 8995 push dword 000000000h ; 66 6a 00 … … 9075 9000 xor bx, bx ; 31 db 9076 9001 xor cx, cx ; 31 c9 9077 call 05 e5ch ; e8 62 f99002 call 05dc3h ; e8 62 f9 9078 9003 mov dword [bp+016h], strict dword 000000001h ; 66 c7 46 16 01 00 00 00 9079 9004 mov dword [bp+022h], strict dword 0534d4150h ; 66 c7 46 22 50 41 4d 53 … … 9091 9016 mov bx, 0fc00h ; bb 00 fc 9092 9017 mov cx, strict word 00009h ; b9 09 00 9093 call 05 e5ch ; e8 2b f99018 call 05dc3h ; e8 2b f9 9094 9019 mov dword [bp+016h], strict dword 000000002h ; 66 c7 46 16 02 00 00 00 9095 jmp short 06 502h ; eb c79020 jmp short 06469h ; eb c7 9096 9021 push strict byte 00002h ; 6a 02 9097 9022 push dword 000000000h ; 66 6a 00 … … 9102 9027 xor bx, bx ; 31 db 9103 9028 mov cx, strict word 0000fh ; b9 0f 00 9104 call 05 e5ch ; e8 0a f99029 call 05dc3h ; e8 0a f9 9105 9030 mov dword [bp+016h], strict dword 000000003h ; 66 c7 46 16 03 00 00 00 9106 jmp short 06 502h ; eb a69031 jmp short 06469h ; eb a6 9107 9032 push strict byte 00001h ; 6a 01 9108 9033 push dword 000000000h ; 66 6a 00 … … 9113 9038 xor bx, bx ; 31 db 9114 9039 mov cx, strict word 00010h ; b9 10 00 9115 call 05 e5ch ; e8 eb f89040 call 05dc3h ; e8 eb f8 9116 9041 mov dword [bp+016h], strict dword 000000004h ; 66 c7 46 16 04 00 00 00 9117 jmp short 06 502h ; eb 879042 jmp short 06469h ; eb 87 9118 9043 push strict byte 00003h ; 6a 03 9119 9044 push dword 000000000h ; 66 6a 00 … … 9124 9049 mov bx, ax ; 89 c3 9125 9050 mov ax, si ; 89 f0 9126 call 05 e5ch ; e8 cd f89051 call 05dc3h ; e8 cd f8 9127 9052 mov dword [bp+016h], strict dword 000000005h ; 66 c7 46 16 05 00 00 00 9128 jmp near 06 502h ; e9 68 ff9053 jmp near 06469h ; e9 68 ff 9129 9054 push strict byte 00002h ; 6a 02 9130 9055 push dword 000000000h ; 66 6a 00 … … 9134 9059 xor bx, bx ; 31 db 9135 9060 mov cx, strict word 0fffch ; b9 fc ff 9136 call 05 e5ch ; e8 ac f89061 call 05dc3h ; e8 ac f8 9137 9062 cmp byte [bp-004h], 000h ; 80 7e fc 00 9138 jne short 065 bdh ; 75 079063 jne short 06524h ; 75 07 9139 9064 mov ax, word [bp-006h] ; 8b 46 fa 9140 9065 test ax, ax ; 85 c0 9141 je short 065 d3h ; 74 169066 je short 0653ah ; 74 16 9142 9067 mov dword [bp+016h], strict dword 000000007h ; 66 c7 46 16 07 00 00 00 9143 jmp near 06 502h ; e9 3a ff9068 jmp near 06469h ; e9 3a ff 9144 9069 mov dword [bp+016h], strict dword 000000006h ; 66 c7 46 16 06 00 00 00 9145 jmp near 06 502h ; e9 2f ff9070 jmp near 06469h ; e9 2f ff 9146 9071 mov word [bp+016h], ax ; 89 46 16 9147 9072 mov word [bp+018h], ax ; 89 46 18 9148 jmp near 06 502h ; e9 26 ff9073 jmp near 06469h ; e9 26 ff 9149 9074 push strict byte 00002h ; 6a 02 9150 9075 push dword 000000000h ; 66 6a 00 … … 9154 9079 xor bx, bx ; 31 db 9155 9080 xor cx, cx ; 31 c9 9156 call 05 e5ch ; e8 6b f89081 call 05dc3h ; e8 6b f8 9157 9082 cmp byte [bp-004h], 000h ; 80 7e fc 00 9158 jne short 065 feh ; 75 079083 jne short 06565h ; 75 07 9159 9084 mov ax, word [bp-006h] ; 8b 46 fa 9160 9085 test ax, ax ; 85 c0 9161 je short 06 600h ; 74 029162 jmp short 065 bdh ; eb bd9086 je short 06567h ; 74 02 9087 jmp short 06524h ; eb bd 9163 9088 mov word [bp+016h], ax ; 89 46 16 9164 9089 mov word [bp+018h], ax ; 89 46 18 9165 jmp near 06 502h ; e9 f9 fe9090 jmp near 06469h ; e9 f9 fe 9166 9091 cmp byte [bp-004h], 000h ; 80 7e fc 00 9167 jne short 06 617h ; 75 089092 jne short 0657eh ; 75 08 9168 9093 cmp word [bp-006h], strict byte 00000h ; 83 7e fa 00 9169 je near 06 502h ; 0f 84 eb fe9094 je near 06469h ; 0f 84 eb fe 9170 9095 push strict byte 00001h ; 6a 01 9171 9096 mov al, byte [bp-002h] ; 8a 46 fe … … 9180 9105 xor bx, bx ; 31 db 9181 9106 xor cx, cx ; 31 c9 9182 call 05 e5ch ; e8 28 f89107 call 05dc3h ; e8 28 f8 9183 9108 xor ax, ax ; 31 c0 9184 9109 mov word [bp+016h], ax ; 89 46 16 9185 9110 mov word [bp+018h], ax ; 89 46 18 9186 jmp near 06 502h ; e9 c3 fe9111 jmp near 06469h ; e9 c3 fe 9187 9112 and byte [bp+02ah], 0feh ; 80 66 2a fe 9188 9113 mov ax, strict word 00031h ; b8 31 00 9189 call 0165ch ; e8 13b09114 call 0165ch ; e8 ac b0 9190 9115 xor ah, ah ; 30 e4 9191 9116 mov dx, ax ; 89 c2 9192 9117 sal dx, 008h ; c1 e2 08 9193 9118 mov ax, strict word 00030h ; b8 30 00 9194 call 0165ch ; e8 06b09119 call 0165ch ; e8 9f b0 9195 9120 xor ah, ah ; 30 e4 9196 9121 or dx, ax ; 09 c2 9197 9122 mov word [bp+01eh], dx ; 89 56 1e 9198 9123 cmp dx, 03c00h ; 81 fa 00 3c 9199 jbe short 06 668h ; 76 059124 jbe short 065cfh ; 76 05 9200 9125 mov word [bp+01eh], 03c00h ; c7 46 1e 00 3c 9201 9126 mov ax, strict word 00035h ; b8 35 00 9202 call 0165ch ; e8 ee af9127 call 0165ch ; e8 87 b0 9203 9128 movzx dx, al ; 0f b6 d0 9204 9129 sal dx, 008h ; c1 e2 08 9205 9130 mov ax, strict word 00034h ; b8 34 00 9206 call 0165ch ; e8 e2 af9131 call 0165ch ; e8 7b b0 9207 9132 xor ah, ah ; 30 e4 9208 9133 or dx, ax ; 09 c2 … … 9214 9139 pop si ; 5e 9215 9140 retn ; c3 9216 mov bx, 00 cech ; bb ec 0c9141 mov bx, 00d32h ; bb 32 0d 9217 9142 mov cx, ds ; 8c d9 9218 9143 mov ax, strict word 00004h ; b8 04 00 9219 call 018aeh ; e8 16b29144 call 018aeh ; e8 af b2 9220 9145 push word [bp+016h] ; ff 76 16 9221 9146 push word [bp+022h] ; ff 76 22 9222 push 0084 ah ; 68 4a089147 push 0084ch ; 68 4c 08 9223 9148 push strict byte 00004h ; 6a 04 9224 call 018e9h ; e8 43b29149 call 018e9h ; e8 dc b2 9225 9150 add sp, strict byte 00008h ; 83 c4 08 9226 9151 or byte [bp+02ah], 001h ; 80 4e 2a 01 … … 9232 9157 pop si ; 5e 9233 9158 retn ; c3 9234 init_rtc_: ; 0xf66 baLB 0x259159 init_rtc_: ; 0xf6621 LB 0x25 9235 9160 push dx ; 52 9236 9161 push bp ; 55 … … 9238 9163 mov dx, strict word 00026h ; ba 26 00 9239 9164 mov ax, strict word 0000ah ; b8 0a 00 9240 call 0166dh ; e8 a6 af9165 call 0166dh ; e8 3f b0 9241 9166 mov dx, strict word 00002h ; ba 02 00 9242 9167 mov ax, strict word 0000bh ; b8 0b 00 9243 call 0166dh ; e8 9d af9168 call 0166dh ; e8 36 b0 9244 9169 mov ax, strict word 0000ch ; b8 0c 00 9245 call 0165ch ; e8 86 af9170 call 0165ch ; e8 1f b0 9246 9171 mov ax, strict word 0000dh ; b8 0d 00 9247 call 0165ch ; e8 80 af9172 call 0165ch ; e8 19 b0 9248 9173 pop bp ; 5d 9249 9174 pop dx ; 5a 9250 9175 retn ; c3 9251 rtc_updating_: ; 0xf66 dfLB 0x1f9176 rtc_updating_: ; 0xf6646 LB 0x1f 9252 9177 push dx ; 52 9253 9178 push bp ; 55 … … 9255 9180 mov dx, 061a8h ; ba a8 61 9256 9181 dec dx ; 4a 9257 je short 066 f8h ; 74 0f9182 je short 0665fh ; 74 0f 9258 9183 mov ax, strict word 0000ah ; b8 0a 00 9259 call 0165ch ; e8 6d af9184 call 0165ch ; e8 06 b0 9260 9185 test AL, strict byte 080h ; a8 80 9261 jne short 066 e6h ; 75 f39186 jne short 0664dh ; 75 f3 9262 9187 xor ax, ax ; 31 c0 9263 9188 pop bp ; 5d … … 9268 9193 pop dx ; 5a 9269 9194 retn ; c3 9270 _int70_function: ; 0xf66 feLB 0xbb9195 _int70_function: ; 0xf6665 LB 0xbb 9271 9196 push si ; 56 9272 9197 enter 00002h, 000h ; c8 02 00 00 9273 9198 mov ax, strict word 0000bh ; b8 0b 00 9274 call 0165ch ; e8 53af9199 call 0165ch ; e8 ec af 9275 9200 mov dl, al ; 88 c2 9276 9201 mov byte [bp-002h], al ; 88 46 fe 9277 9202 mov ax, strict word 0000ch ; b8 0c 00 9278 call 0165ch ; e8 48af9203 call 0165ch ; e8 e1 af 9279 9204 mov dh, al ; 88 c6 9280 9205 test dl, 060h ; f6 c2 60 9281 je near 067 a3h ; 0f 84 86 009206 je near 0670ah ; 0f 84 86 00 9282 9207 test AL, strict byte 020h ; a8 20 9283 je short 06 725h ; 74 049208 je short 0668ch ; 74 04 9284 9209 sti ; fb 9285 9210 int 04ah ; cd 4a 9286 9211 cli ; fa 9287 9212 test dh, 040h ; f6 c6 40 9288 je near 067 a3h ; 0f 84 77 009213 je near 0670ah ; 0f 84 77 00 9289 9214 mov dx, 000a0h ; ba a0 00 9290 9215 mov ax, strict word 00040h ; b8 40 00 9291 call 01600h ; e8 cb ae9216 call 01600h ; e8 64 af 9292 9217 test al, al ; 84 c0 9293 je short 067 a3h ; 74 6a9218 je short 0670ah ; 74 6a 9294 9219 mov dx, 0009ch ; ba 9c 00 9295 9220 mov ax, strict word 00040h ; b8 40 00 9296 call 01638h ; e8 f6 ae9221 call 01638h ; e8 8f af 9297 9222 test dx, dx ; 85 d2 9298 jne short 06 78fh ; 75 499223 jne short 066f6h ; 75 49 9299 9224 cmp ax, 003d1h ; 3d d1 03 9300 jnc short 06 78fh ; 73 449225 jnc short 066f6h ; 73 44 9301 9226 mov dx, 00098h ; ba 98 00 9302 9227 mov ax, strict word 00040h ; b8 40 00 9303 call 0161ch ; e8 c8 ae9228 call 0161ch ; e8 61 af 9304 9229 mov si, ax ; 89 c6 9305 9230 mov dx, 0009ah ; ba 9a 00 9306 9231 mov ax, strict word 00040h ; b8 40 00 9307 call 0161ch ; e8 bd ae9232 call 0161ch ; e8 56 af 9308 9233 mov cx, ax ; 89 c1 9309 9234 xor bx, bx ; 31 db 9310 9235 mov dx, 000a0h ; ba a0 00 9311 9236 mov ax, strict word 00040h ; b8 40 00 9312 call 0160eh ; e8 a2 ae9237 call 0160eh ; e8 3b af 9313 9238 mov al, byte [bp-002h] ; 8a 46 fe 9314 9239 and AL, strict byte 037h ; 24 37 9315 9240 movzx dx, al ; 0f b6 d0 9316 9241 mov ax, strict word 0000bh ; b8 0b 00 9317 call 0166dh ; e8 f3 ae9242 call 0166dh ; e8 8c af 9318 9243 mov dx, cx ; 89 ca 9319 9244 mov ax, si ; 89 f0 9320 call 01600h ; e8 7f ae9245 call 01600h ; e8 18 af 9321 9246 or AL, strict byte 080h ; 0c 80 9322 9247 movzx bx, al ; 0f b6 d8 9323 9248 mov dx, cx ; 89 ca 9324 9249 mov ax, si ; 89 f0 9325 call 0160eh ; e8 81 ae9326 jmp short 067 a3h ; eb 149250 call 0160eh ; e8 1a af 9251 jmp short 0670ah ; eb 14 9327 9252 mov bx, ax ; 89 c3 9328 9253 add bx, 0fc2fh ; 81 c3 2f fc … … 9331 9256 mov dx, 0009ch ; ba 9c 00 9332 9257 mov ax, strict word 00040h ; b8 40 00 9333 call 0164ah ; e8 a7 ae9334 call 0e03bh ; e8 95 789258 call 0164ah ; e8 40 af 9259 call 0e03bh ; e8 2e 79 9335 9260 leave ; c9 9336 9261 pop si ; 5e 9337 9262 retn ; c3 9338 db 0d0h, 067h, 0f7h, 067h, 01ch, 068h, 04eh, 068h, 09ch, 068h, 0d2h, 068h, 014h, 069h, 069h, 069h 9339 _int1a_function: ; 0xf67b9 LB 0x1c0 9263 aaa ; 37 9264 db 067h, 05eh 9265 ; pop si ; 67 5e 9266 and word [edi-04bh], strict byte 00067h ; 67 83 67 b5 67 9267 add bp, word [bx+si+039h] ; 03 68 39 9268 push 0687bh ; 68 7b 68 9269 db 0d0h 9270 db 068h 9271 _int1a_function: ; 0xf6720 LB 0x1c0 9340 9272 push bp ; 55 9341 9273 mov bp, sp ; 89 e5 … … 9343 9275 mov al, byte [bp+013h] ; 8a 46 13 9344 9276 cmp AL, strict byte 007h ; 3c 07 9345 jnbe near 067 f5h ; 0f 87 2f 009277 jnbe near 0675ch ; 0f 87 2f 00 9346 9278 movzx bx, al ; 0f b6 d8 9347 9279 add bx, bx ; 01 db 9348 jmp word [cs:bx+067 a9h] ; 2e ff a7 a9679280 jmp word [cs:bx+06710h] ; 2e ff a7 10 67 9349 9281 cli ; fa 9350 9282 mov bx, 0046eh ; bb 6e 04 … … 9378 9310 pop bp ; 5d 9379 9311 retn ; c3 9380 call 066 dfh ; e8 c0 fe9312 call 06646h ; e8 c0 fe 9381 9313 test ax, ax ; 85 c0 9382 je short 06 825h ; 74 029314 je short 0678ch ; 74 02 9383 9315 pop bp ; 5d 9384 9316 retn ; c3 9385 9317 xor ax, ax ; 31 c0 9386 call 0165ch ; e8 32ae9318 call 0165ch ; e8 cb ae 9387 9319 mov byte [bp+00fh], al ; 88 46 0f 9388 9320 mov ax, strict word 00002h ; b8 02 00 9389 call 0165ch ; e8 29ae9321 call 0165ch ; e8 c2 ae 9390 9322 mov byte [bp+010h], al ; 88 46 10 9391 9323 mov ax, strict word 00004h ; b8 04 00 9392 call 0165ch ; e8 20ae9324 call 0165ch ; e8 b9 ae 9393 9325 mov bl, al ; 88 c3 9394 9326 mov byte [bp+011h], al ; 88 46 11 9395 9327 mov ax, strict word 0000bh ; b8 0b 00 9396 call 0165ch ; e8 15ae9328 call 0165ch ; e8 ae ae 9397 9329 and AL, strict byte 001h ; 24 01 9398 9330 mov byte [bp+00eh], al ; 88 46 0e 9399 jmp short 06 893h ; eb 459400 call 066 dfh ; e8 8e fe9331 jmp short 067fah ; eb 45 9332 call 06646h ; e8 8e fe 9401 9333 test ax, ax ; 85 c0 9402 je short 06 858h ; 74 039403 call 066 bah ; e8 62 fe9334 je short 067bfh ; 74 03 9335 call 06621h ; e8 62 fe 9404 9336 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 9405 9337 xor ax, ax ; 31 c0 9406 call 0166dh ; e8 0cae9338 call 0166dh ; e8 a5 ae 9407 9339 movzx dx, byte [bp+010h] ; 0f b6 56 10 9408 9340 mov ax, strict word 00002h ; b8 02 00 9409 call 0166dh ; e8 02ae9341 call 0166dh ; e8 9b ae 9410 9342 movzx dx, byte [bp+011h] ; 0f b6 56 11 9411 9343 mov ax, strict word 00004h ; b8 04 00 9412 call 0166dh ; e8 f8 ad9344 call 0166dh ; e8 91 ae 9413 9345 mov ax, strict word 0000bh ; b8 0b 00 9414 call 0165ch ; e8 e1 ad9346 call 0165ch ; e8 7a ae 9415 9347 mov bl, al ; 88 c3 9416 9348 and bl, 060h ; 80 e3 60 … … 9421 9353 movzx dx, bl ; 0f b6 d3 9422 9354 mov ax, strict word 0000bh ; b8 0b 00 9423 call 0166dh ; e8 da ad9355 call 0166dh ; e8 73 ae 9424 9356 mov byte [bp+013h], 000h ; c6 46 13 00 9425 9357 mov byte [bp+012h], bl ; 88 5e 12 … … 9427 9359 retn ; c3 9428 9360 mov byte [bp+013h], 000h ; c6 46 13 00 9429 call 066 dfh ; e8 3c fe9361 call 06646h ; e8 3c fe 9430 9362 test ax, ax ; 85 c0 9431 je short 068 a9h ; 74 029363 je short 06810h ; 74 02 9432 9364 pop bp ; 5d 9433 9365 retn ; c3 9434 9366 mov ax, strict word 00009h ; b8 09 00 9435 call 0165ch ; e8 ad ad9367 call 0165ch ; e8 46 ae 9436 9368 mov byte [bp+010h], al ; 88 46 10 9437 9369 mov ax, strict word 00008h ; b8 08 00 9438 call 0165ch ; e8 a4 ad9370 call 0165ch ; e8 3d ae 9439 9371 mov byte [bp+00fh], al ; 88 46 0f 9440 9372 mov ax, strict word 00007h ; b8 07 00 9441 call 0165ch ; e8 9b ad9373 call 0165ch ; e8 34 ae 9442 9374 mov byte [bp+00eh], al ; 88 46 0e 9443 9375 mov ax, strict word 00032h ; b8 32 00 9444 call 0165ch ; e8 92 ad9376 call 0165ch ; e8 2b ae 9445 9377 mov byte [bp+011h], al ; 88 46 11 9446 9378 mov byte [bp+012h], al ; 88 46 12 9447 9379 pop bp ; 5d 9448 9380 retn ; c3 9449 call 066 dfh ; e8 0a fe9381 call 06646h ; e8 0a fe 9450 9382 test ax, ax ; 85 c0 9451 je short 068 deh ; 74 059452 call 066 bah ; e8 de fd9383 je short 06845h ; 74 05 9384 call 06621h ; e8 de fd 9453 9385 pop bp ; 5d 9454 9386 retn ; c3 9455 9387 movzx dx, byte [bp+010h] ; 0f b6 56 10 9456 9388 mov ax, strict word 00009h ; b8 09 00 9457 call 0166dh ; e8 85 ad9389 call 0166dh ; e8 1e ae 9458 9390 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 9459 9391 mov ax, strict word 00008h ; b8 08 00 9460 call 0166dh ; e8 7b ad9392 call 0166dh ; e8 14 ae 9461 9393 movzx dx, byte [bp+00eh] ; 0f b6 56 0e 9462 9394 mov ax, strict word 00007h ; b8 07 00 9463 call 0166dh ; e8 71 ad9395 call 0166dh ; e8 0a ae 9464 9396 movzx dx, byte [bp+011h] ; 0f b6 56 11 9465 9397 mov ax, strict word 00032h ; b8 32 00 9466 call 0166dh ; e8 67 ad9398 call 0166dh ; e8 00 ae 9467 9399 mov ax, strict word 0000bh ; b8 0b 00 9468 call 0165ch ; e8 50ad9400 call 0165ch ; e8 e9 ad 9469 9401 mov bl, al ; 88 c3 9470 9402 and bl, 07fh ; 80 e3 7f 9471 jmp near 06 88ah ; e9 76 ff9403 jmp near 067f1h ; e9 76 ff 9472 9404 mov ax, strict word 0000bh ; b8 0b 00 9473 call 0165ch ; e8 42ad9405 call 0165ch ; e8 db ad 9474 9406 mov bl, al ; 88 c3 9475 9407 mov word [bp+012h], strict word 00000h ; c7 46 12 00 00 9476 9408 test AL, strict byte 020h ; a8 20 9477 je short 06 927h ; 74 029409 je short 0688eh ; 74 02 9478 9410 pop bp ; 5d 9479 9411 retn ; c3 9480 call 066 dfh ; e8 b5 fd9412 call 06646h ; e8 b5 fd 9481 9413 test ax, ax ; 85 c0 9482 je short 06 931h ; 74 039483 call 066 bah ; e8 89 fd9414 je short 06898h ; 74 03 9415 call 06621h ; e8 89 fd 9484 9416 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 9485 9417 mov ax, strict word 00001h ; b8 01 00 9486 call 0166dh ; e8 32ad9418 call 0166dh ; e8 cb ad 9487 9419 movzx dx, byte [bp+010h] ; 0f b6 56 10 9488 9420 mov ax, strict word 00003h ; b8 03 00 9489 call 0166dh ; e8 28ad9421 call 0166dh ; e8 c1 ad 9490 9422 movzx dx, byte [bp+011h] ; 0f b6 56 11 9491 9423 mov ax, strict word 00005h ; b8 05 00 9492 call 0166dh ; e8 1ead9424 call 0166dh ; e8 b7 ad 9493 9425 mov dx, 000a1h ; ba a1 00 9494 9426 in AL, DX ; ec … … 9502 9434 movzx dx, al ; 0f b6 d0 9503 9435 mov ax, strict word 0000bh ; b8 0b 00 9504 call 0166dh ; e8 06ad9436 call 0166dh ; e8 9f ad 9505 9437 pop bp ; 5d 9506 9438 retn ; c3 9507 9439 mov ax, strict word 0000bh ; b8 0b 00 9508 call 0165ch ; e8 ed ac9440 call 0165ch ; e8 86 ad 9509 9441 mov bl, al ; 88 c3 9510 9442 and AL, strict byte 057h ; 24 57 9511 9443 movzx dx, al ; 0f b6 d0 9512 jmp near 06 88dh ; e9 14 ff9513 send_to_mouse_ctrl_: ; 0xf6 979LB 0x319444 jmp near 067f4h ; e9 14 ff 9445 send_to_mouse_ctrl_: ; 0xf68e0 LB 0x31 9514 9446 push bx ; 53 9515 9447 push dx ; 52 … … 9522 9454 ; sub ah, ah ; 2a e4 9523 9455 test AL, strict byte 002h ; a8 02 9524 je short 06 998h ; 74 0e9525 push 0088 4h ; 68 84089526 push 010 b4h ; 68 b4109456 je short 068ffh ; 74 0e 9457 push 00886h ; 68 86 08 9458 push 010fah ; 68 fa 10 9527 9459 push strict byte 00007h ; 6a 07 9528 call 018e9h ; e8 54af9460 call 018e9h ; e8 ed af 9529 9461 add sp, strict byte 00006h ; 83 c4 06 9530 9462 mov AL, strict byte 0d4h ; b0 d4 … … 9539 9471 pop bx ; 5b 9540 9472 retn ; c3 9541 get_mouse_data_: ; 0xf69 aaLB 0x389473 get_mouse_data_: ; 0xf6911 LB 0x38 9542 9474 push bx ; 53 9543 9475 push cx ; 51 … … 9553 9485 and ax, strict word 00021h ; 25 21 00 9554 9486 cmp ax, strict word 00021h ; 3d 21 00 9555 je short 069 cbh ; 74 079487 je short 06932h ; 74 07 9556 9488 test cx, cx ; 85 c9 9557 je short 069 cbh ; 74 039489 je short 06932h ; 74 03 9558 9490 dec cx ; 49 9559 jmp short 069 b6h ; eb eb9491 jmp short 0691dh ; eb eb 9560 9492 test cx, cx ; 85 c9 9561 jne short 069 d3h ; 75 049493 jne short 0693ah ; 75 04 9562 9494 mov AL, strict byte 001h ; b0 01 9563 jmp short 069 deh ; eb 0b9495 jmp short 06945h ; eb 0b 9564 9496 mov dx, strict word 00060h ; ba 60 00 9565 9497 in AL, DX ; ec … … 9572 9504 pop bx ; 5b 9573 9505 retn ; c3 9574 set_kbd_command_byte_: ; 0xf69 e2LB 0x2f9506 set_kbd_command_byte_: ; 0xf6949 LB 0x2f 9575 9507 push bx ; 53 9576 9508 push dx ; 52 … … 9583 9515 ; sub ah, ah ; 2a e4 9584 9516 test AL, strict byte 002h ; a8 02 9585 je short 06 a01h ; 74 0e9586 push 008 8eh ; 68 8e089587 push 010 b4h ; 68 b4109517 je short 06968h ; 74 0e 9518 push 00890h ; 68 90 08 9519 push 010fah ; 68 fa 10 9588 9520 push strict byte 00007h ; 6a 07 9589 call 018e9h ; e8 eb ae9521 call 018e9h ; e8 84 af 9590 9522 add sp, strict byte 00006h ; 83 c4 06 9591 9523 mov AL, strict byte 060h ; b0 60 … … 9599 9531 pop bx ; 5b 9600 9532 retn ; c3 9601 _int74_function: ; 0xf6 a11LB 0xc69533 _int74_function: ; 0xf6978 LB 0xc6 9602 9534 enter 00008h, 000h ; c8 08 00 00 9603 9535 mov dx, strict word 0000eh ; ba 0e 00 9604 9536 mov ax, strict word 00040h ; b8 40 00 9605 call 0161ch ; e8 fe ab9537 call 0161ch ; e8 97 ac 9606 9538 mov cx, ax ; 89 c1 9607 9539 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 9612 9544 and AL, strict byte 021h ; 24 21 9613 9545 cmp AL, strict byte 021h ; 3c 21 9614 jne near 06a c5h ; 0f 85 92 009546 jne near 06a2ch ; 0f 85 92 00 9615 9547 mov dx, strict word 00060h ; ba 60 00 9616 9548 in AL, DX ; ec … … 9620 9552 mov dx, strict word 00026h ; ba 26 00 9621 9553 mov ax, cx ; 89 c8 9622 call 01600h ; e8 bd ab9554 call 01600h ; e8 56 ac 9623 9555 mov byte [bp-006h], al ; 88 46 fa 9624 9556 mov dx, strict word 00027h ; ba 27 00 9625 9557 mov ax, cx ; 89 c8 9626 call 01600h ; e8 b2 ab9558 call 01600h ; e8 4b ac 9627 9559 mov byte [bp-008h], al ; 88 46 f8 9628 9560 test AL, strict byte 080h ; a8 80 9629 je short 06a c5h ; 74 709561 je short 06a2ch ; 74 70 9630 9562 mov al, byte [bp-008h] ; 8a 46 f8 9631 9563 and AL, strict byte 007h ; 24 07 … … 9638 9570 add dx, strict byte 00028h ; 83 c2 28 9639 9571 mov ax, cx ; 89 c8 9640 call 0160eh ; e8 9c ab9572 call 0160eh ; e8 35 ac 9641 9573 mov al, byte [bp-004h] ; 8a 46 fc 9642 9574 cmp al, byte [bp-002h] ; 3a 46 fe 9643 jc short 06a b6h ; 72 3c9575 jc short 06a1dh ; 72 3c 9644 9576 mov dx, strict word 00028h ; ba 28 00 9645 9577 mov ax, cx ; 89 c8 9646 call 01600h ; e8 7e ab9578 call 01600h ; e8 17 ac 9647 9579 xor ah, ah ; 30 e4 9648 9580 mov word [bp+00ch], ax ; 89 46 0c 9649 9581 mov dx, strict word 00029h ; ba 29 00 9650 9582 mov ax, cx ; 89 c8 9651 call 01600h ; e8 71 ab9583 call 01600h ; e8 0a ac 9652 9584 xor ah, ah ; 30 e4 9653 9585 mov word [bp+00ah], ax ; 89 46 0a 9654 9586 mov dx, strict word 0002ah ; ba 2a 00 9655 9587 mov ax, cx ; 89 c8 9656 call 01600h ; e8 64ab9588 call 01600h ; e8 fd ab 9657 9589 xor ah, ah ; 30 e4 9658 9590 mov word [bp+008h], ax ; 89 46 08 … … 9661 9593 mov byte [bp-006h], ah ; 88 66 fa 9662 9594 test byte [bp-008h], 080h ; f6 46 f8 80 9663 je short 06a b9h ; 74 0a9595 je short 06a20h ; 74 0a 9664 9596 mov word [bp+004h], strict word 00001h ; c7 46 04 01 00 9665 jmp short 06a b9h ; eb 039597 jmp short 06a20h ; eb 03 9666 9598 inc byte [bp-006h] ; fe 46 fa 9667 9599 movzx bx, byte [bp-006h] ; 0f b6 5e fa 9668 9600 mov dx, strict word 00026h ; ba 26 00 9669 9601 mov ax, cx ; 89 c8 9670 call 0160eh ; e8 49ab9602 call 0160eh ; e8 e2 ab 9671 9603 leave ; c9 9672 9604 retn ; c3 9673 sbb word [bp+di-071h], bp ; 19 6b 8f 9674 imul dx, word [bp+si], strict byte 0006ch ; 6b 12 6c 9675 mov word [0116ch], ax ; a3 6c 11 9676 insw ; 6d 9677 imul di, word [gs:bx+di], strict byte 0006dh ; 65 6b 39 6d 9678 db 0feh 9679 insw ; 6d 9680 _int15_function_mouse: ; 0xf6ad7 LB 0x386 9605 sub byte [bp+si-00ah], 06ah ; 80 6a f6 6a 9606 jns short 06a9fh ; 79 6b 9607 or ch, byte [si+078h] ; 0a 6c 78 9608 insb ; 6c 9609 int3 ; cc 9610 push strict byte 0ffa0h ; 6a a0 9611 insb ; 6c 9612 db 065h, 06dh 9613 ; gs insw ; 65 6d 9614 _int15_function_mouse: ; 0xf6a3e LB 0x386 9681 9615 push si ; 56 9682 9616 enter 00006h, 000h ; c8 06 00 00 9683 9617 mov dx, strict word 0000eh ; ba 0e 00 9684 9618 mov ax, strict word 00040h ; b8 40 00 9685 call 0161ch ; e8 37ab9619 call 0161ch ; e8 d0 ab 9686 9620 mov cx, ax ; 89 c1 9687 9621 cmp byte [bp+014h], 007h ; 80 7e 14 07 9688 jbe short 06a f8h ; 76 0b9622 jbe short 06a5fh ; 76 0b 9689 9623 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9690 9624 mov byte [bp+015h], 001h ; c6 46 15 01 … … 9693 9627 retn ; c3 9694 9628 mov ax, strict word 00065h ; b8 65 00 9695 call 069 e2h ; e8 e4 fe9629 call 06949h ; e8 e4 fe 9696 9630 and word [bp+01ah], strict byte 0fffeh ; 83 66 1a fe 9697 9631 mov byte [bp+015h], 000h ; c6 46 15 00 9698 9632 mov al, byte [bp+014h] ; 8a 46 14 9699 9633 cmp AL, strict byte 007h ; 3c 07 9700 jnbe near 06 e41h ; 0f 87 32 039634 jnbe near 06da8h ; 0f 87 32 03 9701 9635 movzx si, al ; 0f b6 f0 9702 9636 add si, si ; 01 f6 9703 jmp word [cs:si+06a c7h] ; 2e ff a4 c76a9637 jmp word [cs:si+06a2eh] ; 2e ff a4 2e 6a 9704 9638 cmp byte [bp+00fh], 001h ; 80 7e 0f 01 9705 jnbe near 06 e4ch ; 0f 87 2b 039639 jnbe near 06db3h ; 0f 87 2b 03 9706 9640 mov dx, strict word 00027h ; ba 27 00 9707 9641 mov ax, cx ; 89 c8 9708 call 01600h ; e8 d7 aa9642 call 01600h ; e8 70 ab 9709 9643 test AL, strict byte 080h ; a8 80 9710 jne short 06 b38h ; 75 0b9644 jne short 06a9fh ; 75 0b 9711 9645 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9712 9646 mov byte [bp+015h], 005h ; c6 46 15 05 9713 jmp near 06 e54h ; e9 1c 039647 jmp near 06dbbh ; e9 1c 03 9714 9648 cmp byte [bp+00fh], 000h ; 80 7e 0f 00 9715 9649 db 00fh, 094h, 0c0h … … 9717 9651 add AL, strict byte 0f4h ; 04 f4 9718 9652 xor ah, ah ; 30 e4 9719 call 06 979h ; e8 33 fe9653 call 068e0h ; e8 33 fe 9720 9654 test al, al ; 84 c0 9721 jne near 06d dah ; 0f 85 8e 029655 jne near 06d41h ; 0f 85 8e 02 9722 9656 mov dx, ss ; 8c d2 9723 9657 lea ax, [bp-006h] ; 8d 46 fa 9724 call 069 aah ; e8 56 fe9658 call 06911h ; e8 56 fe 9725 9659 test al, al ; 84 c0 9726 je near 06 e54h ; 0f 84 fa 029660 je near 06dbbh ; 0f 84 fa 02 9727 9661 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9728 jne near 06d dah ; 0f 85 78 029729 jmp near 06 e54h ; e9 ef 029662 jne near 06d41h ; 0f 85 78 02 9663 jmp near 06dbbh ; e9 ef 02 9730 9664 mov al, byte [bp+00fh] ; 8a 46 0f 9731 9665 cmp AL, strict byte 001h ; 3c 01 9732 jc short 06 b70h ; 72 049666 jc short 06ad7h ; 72 04 9733 9667 cmp AL, strict byte 008h ; 3c 08 9734 jbe short 06 b73h ; 76 039735 jmp near 06 d06h ; e9 93 019668 jbe short 06adah ; 76 03 9669 jmp near 06c6dh ; e9 93 01 9736 9670 mov dx, strict word 00027h ; ba 27 00 9737 9671 mov ax, cx ; 89 c8 9738 call 01600h ; e8 85 aa9672 call 01600h ; e8 1e ab 9739 9673 mov ah, byte [bp+00fh] ; 8a 66 0f 9740 9674 db 0feh, 0cch … … 9745 9679 mov dx, strict word 00027h ; ba 27 00 9746 9680 mov ax, cx ; 89 c8 9747 call 0160eh ; e8 7f aa9681 call 0160eh ; e8 18 ab 9748 9682 mov dx, strict word 00026h ; ba 26 00 9749 9683 mov ax, cx ; 89 c8 9750 call 01600h ; e8 69 aa9684 call 01600h ; e8 02 ab 9751 9685 and AL, strict byte 0f8h ; 24 f8 9752 9686 movzx bx, al ; 0f b6 d8 9753 9687 mov dx, strict word 00026h ; ba 26 00 9754 9688 mov ax, cx ; 89 c8 9755 call 0160eh ; e8 6a aa9689 call 0160eh ; e8 03 ab 9756 9690 mov ax, 000ffh ; b8 ff 00 9757 call 06 979h ; e8 cf fd9691 call 068e0h ; e8 cf fd 9758 9692 test al, al ; 84 c0 9759 jne near 06d dah ; 0f 85 2a 029693 jne near 06d41h ; 0f 85 2a 02 9760 9694 mov dx, ss ; 8c d2 9761 9695 lea ax, [bp-002h] ; 8d 46 fe 9762 call 069 aah ; e8 f2 fd9696 call 06911h ; e8 f2 fd 9763 9697 mov cl, al ; 88 c1 9764 9698 cmp byte [bp-002h], 0feh ; 80 7e fe fe 9765 jne short 06b cbh ; 75 0b9699 jne short 06b32h ; 75 0b 9766 9700 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9767 9701 mov byte [bp+015h], 004h ; c6 46 15 04 9768 jmp near 06 e54h ; e9 89 029702 jmp near 06dbbh ; e9 89 02 9769 9703 cmp byte [bp-002h], 0fah ; 80 7e fe fa 9770 je short 06b e1h ; 74 109704 je short 06b48h ; 74 10 9771 9705 movzx ax, byte [bp-002h] ; 0f b6 46 fe 9772 9706 push ax ; 50 9773 push 0089 9h ; 68 99089707 push 0089bh ; 68 9b 08 9774 9708 push strict byte 00007h ; 6a 07 9775 call 018e9h ; e8 0bad9709 call 018e9h ; e8 a4 ad 9776 9710 add sp, strict byte 00006h ; 83 c4 06 9777 9711 test cl, cl ; 84 c9 9778 jne near 06d dah ; 0f 85 f3 019712 jne near 06d41h ; 0f 85 f3 01 9779 9713 mov dx, ss ; 8c d2 9780 9714 lea ax, [bp-006h] ; 8d 46 fa 9781 call 069 aah ; e8 bb fd9715 call 06911h ; e8 bb fd 9782 9716 test al, al ; 84 c0 9783 jne near 06d dah ; 0f 85 e5 019717 jne near 06d41h ; 0f 85 e5 01 9784 9718 mov dx, ss ; 8c d2 9785 9719 lea ax, [bp-004h] ; 8d 46 fc 9786 call 069 aah ; e8 ad fd9720 call 06911h ; e8 ad fd 9787 9721 test al, al ; 84 c0 9788 jne near 06d dah ; 0f 85 d7 019722 jne near 06d41h ; 0f 85 d7 01 9789 9723 mov al, byte [bp-006h] ; 8a 46 fa 9790 9724 mov byte [bp+00eh], al ; 88 46 0e 9791 9725 mov al, byte [bp-004h] ; 8a 46 fc 9792 9726 mov byte [bp+00fh], al ; 88 46 0f 9793 jmp near 06 e54h ; e9 42 029727 jmp near 06dbbh ; e9 42 02 9794 9728 mov al, byte [bp+00fh] ; 8a 46 0f 9795 9729 cmp AL, strict byte 003h ; 3c 03 9796 jc short 06 c29h ; 72 109797 jbe short 06 c47h ; 76 2c9730 jc short 06b90h ; 72 10 9731 jbe short 06baeh ; 76 2c 9798 9732 cmp AL, strict byte 006h ; 3c 06 9799 je short 06 c59h ; 74 3a9733 je short 06bc0h ; 74 3a 9800 9734 cmp AL, strict byte 005h ; 3c 05 9801 je short 06 c53h ; 74 309735 je short 06bbah ; 74 30 9802 9736 cmp AL, strict byte 004h ; 3c 04 9803 je short 06 c4dh ; 74 269804 jmp short 06 c5fh ; eb 369737 je short 06bb4h ; 74 26 9738 jmp short 06bc6h ; eb 36 9805 9739 cmp AL, strict byte 002h ; 3c 02 9806 je short 06 c41h ; 74 149740 je short 06ba8h ; 74 14 9807 9741 cmp AL, strict byte 001h ; 3c 01 9808 je short 06 c3bh ; 74 0a9742 je short 06ba2h ; 74 0a 9809 9743 test al, al ; 84 c0 9810 jne short 06 c5fh ; 75 2a9744 jne short 06bc6h ; 75 2a 9811 9745 mov byte [bp-006h], 00ah ; c6 46 fa 0a 9812 jmp short 06 c63h ; eb 289746 jmp short 06bcah ; eb 28 9813 9747 mov byte [bp-006h], 014h ; c6 46 fa 14 9814 jmp short 06 c63h ; eb 229748 jmp short 06bcah ; eb 22 9815 9749 mov byte [bp-006h], 028h ; c6 46 fa 28 9816 jmp short 06 c63h ; eb 1c9750 jmp short 06bcah ; eb 1c 9817 9751 mov byte [bp-006h], 03ch ; c6 46 fa 3c 9818 jmp short 06 c63h ; eb 169752 jmp short 06bcah ; eb 16 9819 9753 mov byte [bp-006h], 050h ; c6 46 fa 50 9820 jmp short 06 c63h ; eb 109754 jmp short 06bcah ; eb 10 9821 9755 mov byte [bp-006h], 064h ; c6 46 fa 64 9822 jmp short 06 c63h ; eb 0a9756 jmp short 06bcah ; eb 0a 9823 9757 mov byte [bp-006h], 0c8h ; c6 46 fa c8 9824 jmp short 06 c63h ; eb 049758 jmp short 06bcah ; eb 04 9825 9759 mov byte [bp-006h], 000h ; c6 46 fa 00 9826 9760 cmp byte [bp-006h], 000h ; 80 7e fa 00 9827 jbe short 06 c98h ; 76 2f9761 jbe short 06bffh ; 76 2f 9828 9762 mov ax, 000f3h ; b8 f3 00 9829 call 06 979h ; e8 0a fd9763 call 068e0h ; e8 0a fd 9830 9764 test al, al ; 84 c0 9831 jne short 06 c8dh ; 75 1a9765 jne short 06bf4h ; 75 1a 9832 9766 mov dx, ss ; 8c d2 9833 9767 lea ax, [bp-004h] ; 8d 46 fc 9834 call 069 aah ; e8 2f fd9768 call 06911h ; e8 2f fd 9835 9769 movzx ax, byte [bp-006h] ; 0f b6 46 fa 9836 call 06 979h ; e8 f7 fc9770 call 068e0h ; e8 f7 fc 9837 9771 mov dx, ss ; 8c d2 9838 9772 lea ax, [bp-004h] ; 8d 46 fc 9839 call 069 aah ; e8 20 fd9840 jmp near 06 e54h ; e9 c7 019773 call 06911h ; e8 20 fd 9774 jmp near 06dbbh ; e9 c7 01 9841 9775 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9842 9776 mov byte [bp+015h], 003h ; c6 46 15 03 9843 jmp near 06 e54h ; e9 bc 019777 jmp near 06dbbh ; e9 bc 01 9844 9778 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9845 9779 mov byte [bp+015h], 002h ; c6 46 15 02 9846 jmp near 06 e54h ; e9 b1 019780 jmp near 06dbbh ; e9 b1 01 9847 9781 cmp byte [bp+00fh], 004h ; 80 7e 0f 04 9848 jnc short 06 d06h ; 73 5d9782 jnc short 06c6dh ; 73 5d 9849 9783 mov ax, 000e8h ; b8 e8 00 9850 call 06 979h ; e8 ca fc9784 call 068e0h ; e8 ca fc 9851 9785 test al, al ; 84 c0 9852 jne short 06c fbh ; 75 489786 jne short 06c62h ; 75 48 9853 9787 mov dx, ss ; 8c d2 9854 9788 lea ax, [bp-006h] ; 8d 46 fa 9855 call 069 aah ; e8 ef fc9789 call 06911h ; e8 ef fc 9856 9790 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9857 je short 06c d1h ; 74 109791 je short 06c38h ; 74 10 9858 9792 movzx ax, byte [bp-006h] ; 0f b6 46 fa 9859 9793 push ax ; 50 9860 push 008c 4h ; 68 c4089794 push 008c6h ; 68 c6 08 9861 9795 push strict byte 00007h ; 6a 07 9862 call 018e9h ; e8 1bac9796 call 018e9h ; e8 b4 ac 9863 9797 add sp, strict byte 00006h ; 83 c4 06 9864 9798 movzx ax, byte [bp+00fh] ; 0f b6 46 0f 9865 call 06 979h ; e8 a1 fc9799 call 068e0h ; e8 a1 fc 9866 9800 mov dx, ss ; 8c d2 9867 9801 lea ax, [bp-006h] ; 8d 46 fa 9868 call 069 aah ; e8 ca fc9802 call 06911h ; e8 ca fc 9869 9803 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9870 je near 06 e54h ; 0f 84 6c 019804 je near 06dbbh ; 0f 84 6c 01 9871 9805 movzx ax, byte [bp-006h] ; 0f b6 46 fa 9872 9806 push ax ; 50 9873 push 008c 4h ; 68 c4089807 push 008c6h ; 68 c6 08 9874 9808 push strict byte 00007h ; 6a 07 9875 call 018e9h ; e8 f4 ab9809 call 018e9h ; e8 8d ac 9876 9810 add sp, strict byte 00006h ; 83 c4 06 9877 jmp near 06 e54h ; e9 59 019811 jmp near 06dbbh ; e9 59 01 9878 9812 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9879 9813 mov byte [bp+015h], 003h ; c6 46 15 03 9880 jmp near 06 e54h ; e9 4e 019814 jmp near 06dbbh ; e9 4e 01 9881 9815 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9882 9816 mov byte [bp+015h], 002h ; c6 46 15 02 9883 jmp near 06 e54h ; e9 43 019817 jmp near 06dbbh ; e9 43 01 9884 9818 mov ax, 000f2h ; b8 f2 00 9885 call 06 979h ; e8 62 fc9819 call 068e0h ; e8 62 fc 9886 9820 test al, al ; 84 c0 9887 jne short 06 d2eh ; 75 139821 jne short 06c95h ; 75 13 9888 9822 mov dx, ss ; 8c d2 9889 9823 lea ax, [bp-006h] ; 8d 46 fa 9890 call 069 aah ; e8 87 fc9824 call 06911h ; e8 87 fc 9891 9825 mov dx, ss ; 8c d2 9892 9826 lea ax, [bp-004h] ; 8d 46 fc 9893 call 069 aah ; e8 7f fc9894 jmp near 06 c09h ; e9 db fe9827 call 06911h ; e8 7f fc 9828 jmp near 06b70h ; e9 db fe 9895 9829 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9896 9830 mov byte [bp+015h], 003h ; c6 46 15 03 9897 jmp near 06 e54h ; e9 1b 019831 jmp near 06dbbh ; e9 1b 01 9898 9832 mov al, byte [bp+00fh] ; 8a 46 0f 9899 9833 test al, al ; 84 c0 9900 jbe short 06 d47h ; 76 079834 jbe short 06caeh ; 76 07 9901 9835 cmp AL, strict byte 002h ; 3c 02 9902 jbe short 06d b0h ; 76 6c9903 jmp near 06d e4h ; e9 9d 009836 jbe short 06d17h ; 76 6c 9837 jmp near 06d4bh ; e9 9d 00 9904 9838 mov ax, 000e9h ; b8 e9 00 9905 call 06 979h ; e8 2c fc9839 call 068e0h ; e8 2c fc 9906 9840 test al, al ; 84 c0 9907 jne near 06d dah ; 0f 85 87 009841 jne near 06d41h ; 0f 85 87 00 9908 9842 mov dx, ss ; 8c d2 9909 9843 lea ax, [bp-006h] ; 8d 46 fa 9910 call 069 aah ; e8 4f fc9844 call 06911h ; e8 4f fc 9911 9845 mov cl, al ; 88 c1 9912 9846 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9913 je short 06 d73h ; 74 109847 je short 06cdah ; 74 10 9914 9848 movzx ax, byte [bp-006h] ; 0f b6 46 fa 9915 9849 push ax ; 50 9916 push 008c 4h ; 68 c4089850 push 008c6h ; 68 c6 08 9917 9851 push strict byte 00007h ; 6a 07 9918 call 018e9h ; e8 79 ab9852 call 018e9h ; e8 12 ac 9919 9853 add sp, strict byte 00006h ; 83 c4 06 9920 9854 test cl, cl ; 84 c9 9921 jne short 06d dah ; 75 639855 jne short 06d41h ; 75 63 9922 9856 mov dx, ss ; 8c d2 9923 9857 lea ax, [bp-006h] ; 8d 46 fa 9924 call 069 aah ; e8 2b fc9858 call 06911h ; e8 2b fc 9925 9859 test al, al ; 84 c0 9926 jne short 06d dah ; 75 579860 jne short 06d41h ; 75 57 9927 9861 mov dx, ss ; 8c d2 9928 9862 lea ax, [bp-004h] ; 8d 46 fc 9929 call 069 aah ; e8 1f fc9863 call 06911h ; e8 1f fc 9930 9864 test al, al ; 84 c0 9931 jne short 06d dah ; 75 4b9865 jne short 06d41h ; 75 4b 9932 9866 mov dx, ss ; 8c d2 9933 9867 lea ax, [bp-002h] ; 8d 46 fe 9934 call 069 aah ; e8 13 fc9868 call 06911h ; e8 13 fc 9935 9869 test al, al ; 84 c0 9936 jne short 06d dah ; 75 3f9870 jne short 06d41h ; 75 3f 9937 9871 mov al, byte [bp-006h] ; 8a 46 fa 9938 9872 mov byte [bp+00eh], al ; 88 46 0e … … 9941 9875 mov al, byte [bp-002h] ; 8a 46 fe 9942 9876 mov byte [bp+010h], al ; 88 46 10 9943 jmp near 06 e54h ; e9 a4 009877 jmp near 06dbbh ; e9 a4 00 9944 9878 cmp AL, strict byte 001h ; 3c 01 9945 jne short 06d b9h ; 75 059879 jne short 06d20h ; 75 05 9946 9880 mov ax, 000e6h ; b8 e6 00 9947 jmp short 06d bch ; eb 039881 jmp short 06d23h ; eb 03 9948 9882 mov ax, 000e7h ; b8 e7 00 9949 call 06 979h ; e8 ba fb9883 call 068e0h ; e8 ba fb 9950 9884 mov cl, al ; 88 c1 9951 9885 test cl, cl ; 84 c9 9952 jne short 06d d4h ; 75 0f9886 jne short 06d3bh ; 75 0f 9953 9887 mov dx, ss ; 8c d2 9954 9888 lea ax, [bp-006h] ; 8d 46 fa 9955 call 069 aah ; e8 dd fb9889 call 06911h ; e8 dd fb 9956 9890 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9957 9891 db 00fh, 095h, 0c1h 9958 9892 ; setne cl ; 0f 95 c1 9959 9893 test cl, cl ; 84 c9 9960 je near 06 e54h ; 0f 84 7a 009894 je near 06dbbh ; 0f 84 7a 00 9961 9895 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9962 9896 mov byte [bp+015h], 003h ; c6 46 15 03 9963 jmp short 06 e54h ; eb 709897 jmp short 06dbbh ; eb 70 9964 9898 movzx ax, byte [bp+00fh] ; 0f b6 46 0f 9965 9899 push ax ; 50 9966 push 008f 0h ; 68 f0089900 push 008f2h ; 68 f2 08 9967 9901 push strict byte 00007h ; 6a 07 9968 call 018e9h ; e8 f8 aa9902 call 018e9h ; e8 91 ab 9969 9903 add sp, strict byte 00006h ; 83 c4 06 9970 9904 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9971 9905 mov byte [bp+015h], 001h ; c6 46 15 01 9972 jmp short 06 e54h ; eb 569906 jmp short 06dbbh ; eb 56 9973 9907 mov si, word [bp+00eh] ; 8b 76 0e 9974 9908 mov bx, si ; 89 f3 9975 9909 mov dx, strict word 00022h ; ba 22 00 9976 9910 mov ax, cx ; 89 c8 9977 call 0162ah ; e8 1fa89911 call 0162ah ; e8 b8 a8 9978 9912 mov bx, word [bp+016h] ; 8b 5e 16 9979 9913 mov dx, strict word 00024h ; ba 24 00 9980 9914 mov ax, cx ; 89 c8 9981 call 0162ah ; e8 14a89915 call 0162ah ; e8 ad a8 9982 9916 mov dx, strict word 00027h ; ba 27 00 9983 9917 mov ax, cx ; 89 c8 9984 call 01600h ; e8 e2 a79918 call 01600h ; e8 7b a8 9985 9919 mov ah, al ; 88 c4 9986 9920 test si, si ; 85 f6 9987 jne short 06 e32h ; 75 0e9921 jne short 06d99h ; 75 0e 9988 9922 cmp word [bp+016h], strict byte 00000h ; 83 7e 16 00 9989 jne short 06 e32h ; 75 089923 jne short 06d99h ; 75 08 9990 9924 test AL, strict byte 080h ; a8 80 9991 je short 06 e34h ; 74 069925 je short 06d9bh ; 74 06 9992 9926 and AL, strict byte 07fh ; 24 7f 9993 jmp short 06 e34h ; eb 029927 jmp short 06d9bh ; eb 02 9994 9928 or AL, strict byte 080h ; 0c 80 9995 9929 movzx bx, al ; 0f b6 d8 9996 9930 mov dx, strict word 00027h ; ba 27 00 9997 9931 mov ax, cx ; 89 c8 9998 call 0160eh ; e8 cf a79999 jmp short 06 e54h ; eb 1310000 push 0090 ah ; 68 0a099932 call 0160eh ; e8 68 a8 9933 jmp short 06dbbh ; eb 13 9934 push 0090ch ; 68 0c 09 10001 9935 push strict byte 00007h ; 6a 07 10002 call 018e9h ; e8 a0 aa9936 call 018e9h ; e8 39 ab 10003 9937 add sp, strict byte 00004h ; 83 c4 04 10004 9938 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 10005 9939 mov byte [bp+015h], 001h ; c6 46 15 01 10006 9940 mov ax, strict word 00047h ; b8 47 00 10007 call 069 e2h ; e8 88 fb9941 call 06949h ; e8 88 fb 10008 9942 leave ; c9 10009 9943 pop si ; 5e 10010 9944 retn ; c3 10011 _int17_function: ; 0xf6 e5dLB 0xb19945 _int17_function: ; 0xf6dc4 LB 0xb1 10012 9946 push si ; 56 10013 9947 enter 00002h, 000h ; c8 02 00 00 … … 10017 9951 add dx, strict byte 00008h ; 83 c2 08 10018 9952 mov ax, strict word 00040h ; b8 40 00 10019 call 0161ch ; e8 ab a79953 call 0161ch ; e8 44 a8 10020 9954 mov bx, ax ; 89 c3 10021 9955 mov si, ax ; 89 c6 10022 9956 cmp byte [bp+015h], 003h ; 80 7e 15 03 10023 jnc near 06 f07h ; 0f 83 8a 009957 jnc near 06e6eh ; 0f 83 8a 00 10024 9958 mov ax, word [bp+010h] ; 8b 46 10 10025 9959 cmp ax, strict word 00003h ; 3d 03 00 10026 jnc near 06 f07h ; 0f 83 80 009960 jnc near 06e6eh ; 0f 83 80 00 10027 9961 test bx, bx ; 85 db 10028 jbe near 06 f07h ; 0f 86 7a 009962 jbe near 06e6eh ; 0f 86 7a 00 10029 9963 mov dx, ax ; 89 c2 10030 9964 add dx, strict byte 00078h ; 83 c2 78 10031 9965 mov ax, strict word 00040h ; b8 40 00 10032 call 01600h ; e8 68 a79966 call 01600h ; e8 01 a8 10033 9967 movzx cx, al ; 0f b6 c8 10034 9968 sal cx, 008h ; c1 e1 08 10035 9969 cmp byte [bp+015h], 000h ; 80 7e 15 00 10036 jne short 06e d1h ; 75 2d9970 jne short 06e38h ; 75 2d 10037 9971 mov al, byte [bp+014h] ; 8a 46 14 10038 9972 mov dx, bx ; 89 da … … 10054 9988 ; sub ah, ah ; 2a e4 10055 9989 test AL, strict byte 040h ; a8 40 10056 je short 06e d1h ; 74 079990 je short 06e38h ; 74 07 10057 9991 test cx, cx ; 85 c9 10058 je short 06e d1h ; 74 039992 je short 06e38h ; 74 03 10059 9993 dec cx ; 49 10060 jmp short 06e c0h ; eb ef9994 jmp short 06e27h ; eb ef 10061 9995 cmp byte [bp+015h], 001h ; 80 7e 15 01 10062 jne short 06e edh ; 75 169996 jne short 06e54h ; 75 16 10063 9997 lea dx, [si+002h] ; 8d 54 02 10064 9998 in AL, DX ; ec … … 10079 10013 mov byte [bp+015h], al ; 88 46 15 10080 10014 test cx, cx ; 85 c9 10081 jne short 06 f00h ; 75 0410015 jne short 06e67h ; 75 04 10082 10016 or byte [bp+015h], 001h ; 80 4e 15 01 10083 10017 and byte [bp+01eh], 0feh ; 80 66 1e fe … … 10089 10023 pop si ; 5e 10090 10024 retn ; c3 10091 wait_: ; 0xf6 f0eLB 0xad10025 wait_: ; 0xf6e75 LB 0xad 10092 10026 push bx ; 53 10093 10027 push cx ; 51 … … 10105 10039 mov dx, 0046ch ; ba 6c 04 10106 10040 xor ax, ax ; 31 c0 10107 call 01638h ; e8 09a710041 call 01638h ; e8 a2 a7 10108 10042 mov word [bp-006h], ax ; 89 46 fa 10109 10043 mov bx, dx ; 89 d3 … … 10111 10045 mov dx, 0046ch ; ba 6c 04 10112 10046 xor ax, ax ; 31 c0 10113 call 01638h ; e8 fb a610047 call 01638h ; e8 94 a7 10114 10048 mov word [bp-00ah], ax ; 89 46 f6 10115 10049 mov di, dx ; 89 d7 10116 10050 cmp dx, bx ; 39 da 10117 jnbe short 06 f4dh ; 77 0710118 jne short 06 f54h ; 75 0c10051 jnbe short 06eb4h ; 77 07 10052 jne short 06ebbh ; 75 0c 10119 10053 cmp ax, word [bp-006h] ; 3b 46 fa 10120 jbe short 06 f54h ; 76 0710054 jbe short 06ebbh ; 76 07 10121 10055 sub ax, word [bp-006h] ; 2b 46 fa 10122 10056 sbb dx, bx ; 19 da 10123 jmp short 06 f5fh ; eb 0b10057 jmp short 06ec6h ; eb 0b 10124 10058 cmp dx, bx ; 39 da 10125 jc short 06 f5fh ; 72 0710126 jne short 06 f63h ; 75 0910059 jc short 06ec6h ; 72 07 10060 jne short 06ecah ; 75 09 10127 10061 cmp ax, word [bp-006h] ; 3b 46 fa 10128 jnc short 06 f63h ; 73 0410062 jnc short 06ecah ; 73 04 10129 10063 sub si, ax ; 29 c6 10130 10064 sbb cx, dx ; 19 d1 … … 10134 10068 mov ax, 00100h ; b8 00 01 10135 10069 int 016h ; cd 16 10136 je near 06 f79h ; 0f 84 05 0010070 je near 06ee0h ; 0f 84 05 00 10137 10071 mov AL, strict byte 001h ; b0 01 10138 jmp near 06 f7bh ; e9 02 0010072 jmp near 06ee2h ; e9 02 00 10139 10073 db 032h, 0c0h 10140 10074 ; xor al, al ; 32 c0 10141 10075 test al, al ; 84 c0 10142 je short 06f a3h ; 74 2410076 je short 06f0ah ; 74 24 10143 10077 db 033h, 0c0h 10144 10078 ; xor ax, ax ; 33 c0 … … 10149 10083 movzx ax, dl ; 0f b6 c2 10150 10084 push ax ; 50 10151 push 0092 ch ; 68 2c0910085 push 0092eh ; 68 2e 09 10152 10086 push strict byte 00004h ; 6a 04 10153 call 018e9h ; e8 53a910087 call 018e9h ; e8 ec a9 10154 10088 add sp, strict byte 00006h ; 83 c4 06 10155 10089 cmp byte [bp-004h], 000h ; 80 7e fc 00 10156 je short 06f a3h ; 74 0410090 je short 06f0ah ; 74 04 10157 10091 mov al, dl ; 88 d0 10158 jmp short 06f b5h ; eb 1210092 jmp short 06f1ch ; eb 12 10159 10093 test cx, cx ; 85 c9 10160 jnle short 06 f34h ; 7f 8d10161 jne short 06f adh ; 75 0410094 jnle short 06e9bh ; 7f 8d 10095 jne short 06f14h ; 75 04 10162 10096 test si, si ; 85 f6 10163 jnbe short 06 f34h ; 77 8710097 jnbe short 06e9bh ; 77 87 10164 10098 mov ax, word [bp-008h] ; 8b 46 f8 10165 10099 push ax ; 50 … … 10172 10106 pop bx ; 5b 10173 10107 retn ; c3 10174 read_logo_byte_: ; 0xf6f bbLB 0x1310108 read_logo_byte_: ; 0xf6f22 LB 0x13 10175 10109 push dx ; 52 10176 10110 push bp ; 55 … … 10186 10120 pop dx ; 5a 10187 10121 retn ; c3 10188 read_logo_word_: ; 0xf6f ceLB 0x1110122 read_logo_word_: ; 0xf6f35 LB 0x11 10189 10123 push dx ; 52 10190 10124 push bp ; 55 … … 10198 10132 pop dx ; 5a 10199 10133 retn ; c3 10200 print_detected_harddisks_: ; 0xf6f dfLB 0x12c10134 print_detected_harddisks_: ; 0xf6f46 LB 0x12c 10201 10135 push bx ; 53 10202 10136 push cx ; 51 … … 10207 10141 mov dx, strict word 0000eh ; ba 0e 00 10208 10142 mov ax, strict word 00040h ; b8 40 00 10209 call 0161ch ; e8 2ba610143 call 0161ch ; e8 c4 a6 10210 10144 mov si, ax ; 89 c6 10211 10145 mov byte [bp-002h], 000h ; c6 46 fe 00 … … 10213 10147 xor ch, ch ; 30 ed 10214 10148 mov dx, 002c0h ; ba c0 02 10215 call 01600h ; e8 ff a510149 call 01600h ; e8 98 a6 10216 10150 mov byte [bp-004h], al ; 88 46 fc 10217 10151 xor bl, bl ; 30 db 10218 10152 cmp bl, byte [bp-004h] ; 3a 5e fc 10219 jnc near 070 e0h ; 0f 83 d3 0010153 jnc near 07047h ; 0f 83 d3 00 10220 10154 movzx dx, bl ; 0f b6 d3 10221 10155 add dx, 002c1h ; 81 c2 c1 02 10222 10156 mov ax, si ; 89 f0 10223 call 01600h ; e8 e7 a510157 call 01600h ; e8 80 a6 10224 10158 mov bh, al ; 88 c7 10225 10159 cmp AL, strict byte 00ch ; 3c 0c 10226 jc short 0 7043h ; 72 2410160 jc short 06faah ; 72 24 10227 10161 test cl, cl ; 84 c9 10228 jne short 0 7030h ; 75 0d10229 push 0093 dh ; 68 3d0910162 jne short 06f97h ; 75 0d 10163 push 0093fh ; 68 3f 09 10230 10164 push strict byte 00002h ; 6a 02 10231 call 018e9h ; e8 be a810165 call 018e9h ; e8 57 a9 10232 10166 add sp, strict byte 00004h ; 83 c4 04 10233 10167 mov CL, strict byte 001h ; b1 01 … … 10235 10169 inc ax ; 40 10236 10170 push ax ; 50 10237 push 0095 1h ; 68 510910171 push 00953h ; 68 53 09 10238 10172 push strict byte 00002h ; 6a 02 10239 call 018e9h ; e8 ac a810173 call 018e9h ; e8 45 a9 10240 10174 add sp, strict byte 00006h ; 83 c4 06 10241 jmp near 070 dbh ; e9 98 0010175 jmp near 07042h ; e9 98 00 10242 10176 cmp AL, strict byte 008h ; 3c 08 10243 jc short 0 705ah ; 72 1310177 jc short 06fc1h ; 72 13 10244 10178 test ch, ch ; 84 ed 10245 jne short 0 7058h ; 75 0d10246 push 0096 4h ; 68 640910179 jne short 06fbfh ; 75 0d 10180 push 00966h ; 68 66 09 10247 10181 push strict byte 00002h ; 6a 02 10248 call 018e9h ; e8 96 a810182 call 018e9h ; e8 2f a9 10249 10183 add sp, strict byte 00004h ; 83 c4 04 10250 10184 mov CH, strict byte 001h ; b5 01 10251 jmp short 0 7030h ; eb d610185 jmp short 06f97h ; eb d6 10252 10186 cmp AL, strict byte 004h ; 3c 04 10253 jnc short 0 7075h ; 73 1710187 jnc short 06fdch ; 73 17 10254 10188 cmp byte [bp-002h], 000h ; 80 7e fe 00 10255 jne short 0 7075h ; 75 1110256 push 0097 8h ; 68 780910189 jne short 06fdch ; 75 11 10190 push 0097ah ; 68 7a 09 10257 10191 push strict byte 00002h ; 6a 02 10258 call 018e9h ; e8 7d a810192 call 018e9h ; e8 16 a9 10259 10193 add sp, strict byte 00004h ; 83 c4 04 10260 10194 mov byte [bp-002h], 001h ; c6 46 fe 01 10261 jmp short 0 708bh ; eb 1610195 jmp short 06ff2h ; eb 16 10262 10196 cmp bh, 004h ; 80 ff 04 10263 jc short 0 708bh ; 72 1110197 jc short 06ff2h ; 72 11 10264 10198 test cl, cl ; 84 c9 10265 jne short 0 708bh ; 75 0d10266 push 0093 dh ; 68 3d0910199 jne short 06ff2h ; 75 0d 10200 push 0093fh ; 68 3f 09 10267 10201 push strict byte 00002h ; 6a 02 10268 call 018e9h ; e8 63a810202 call 018e9h ; e8 fc a8 10269 10203 add sp, strict byte 00004h ; 83 c4 04 10270 10204 mov CL, strict byte 001h ; b1 01 … … 10272 10206 inc ax ; 40 10273 10207 push ax ; 50 10274 push 0098 9h ; 68 890910208 push 0098bh ; 68 8b 09 10275 10209 push strict byte 00002h ; 6a 02 10276 call 018e9h ; e8 51a810210 call 018e9h ; e8 ea a8 10277 10211 add sp, strict byte 00006h ; 83 c4 06 10278 10212 cmp bh, 004h ; 80 ff 04 10279 jc short 070 a3h ; 72 0310213 jc short 0700ah ; 72 03 10280 10214 sub bh, 004h ; 80 ef 04 10281 10215 movzx ax, bh ; 0f b6 c7 … … 10285 10219 sar ax, 1 ; d1 f8 10286 10220 test ax, ax ; 85 c0 10287 je short 070 b4h ; 74 0510288 push 0099 3h ; 68 930910289 jmp short 070 b7h ; eb 0310290 push 009 9eh ; 68 9e0910221 je short 0701bh ; 74 05 10222 push 00995h ; 68 95 09 10223 jmp short 0701eh ; eb 03 10224 push 009a0h ; 68 a0 09 10291 10225 push strict byte 00002h ; 6a 02 10292 call 018e9h ; e8 2da810226 call 018e9h ; e8 c6 a8 10293 10227 add sp, strict byte 00004h ; 83 c4 04 10294 10228 movzx ax, bh ; 0f b6 c7 … … 10297 10231 idiv di ; f7 ff 10298 10232 test dx, dx ; 85 d2 10299 je short 070 d1h ; 74 0510300 push 009a 7h ; 68 a70910301 jmp short 070 d4h ; eb 0310302 push 009a dh ; 68 ad0910233 je short 07038h ; 74 05 10234 push 009a9h ; 68 a9 09 10235 jmp short 0703bh ; eb 03 10236 push 009afh ; 68 af 09 10303 10237 push di ; 57 10304 call 018e9h ; e8 11a810238 call 018e9h ; e8 aa a8 10305 10239 add sp, strict byte 00004h ; 83 c4 04 10306 10240 db 0feh, 0c3h 10307 10241 ; inc bl ; fe c3 10308 jmp near 0 7006h ; e9 26 ff10242 jmp near 06f6dh ; e9 26 ff 10309 10243 cmp byte [bp-002h], 000h ; 80 7e fe 00 10310 jne short 070 f9h ; 75 1310244 jne short 07060h ; 75 13 10311 10245 test cl, cl ; 84 c9 10312 jne short 070 f9h ; 75 0f10246 jne short 07060h ; 75 0f 10313 10247 test ch, ch ; 84 ed 10314 jne short 070 f9h ; 75 0b10315 push 009b 4h ; 68 b40910248 jne short 07060h ; 75 0b 10249 push 009b6h ; 68 b6 09 10316 10250 push strict byte 00002h ; 6a 02 10317 call 018e9h ; e8 f3 a710251 call 018e9h ; e8 8c a8 10318 10252 add sp, strict byte 00004h ; 83 c4 04 10319 push 009c 8h ; 68 c80910253 push 009cah ; 68 ca 09 10320 10254 push strict byte 00002h ; 6a 02 10321 call 018e9h ; e8 e8 a710255 call 018e9h ; e8 81 a8 10322 10256 add sp, strict byte 00004h ; 83 c4 04 10323 10257 leave ; c9 … … 10328 10262 pop bx ; 5b 10329 10263 retn ; c3 10330 get_boot_drive_: ; 0xf7 10bLB 0x2510264 get_boot_drive_: ; 0xf7072 LB 0x25 10331 10265 push bx ; 53 10332 10266 push dx ; 52 … … 10336 10270 mov dx, strict word 0000eh ; ba 0e 00 10337 10271 mov ax, strict word 00040h ; b8 40 00 10338 call 0161ch ; e8 01a510272 call 0161ch ; e8 9a a5 10339 10273 mov dx, 002c0h ; ba c0 02 10340 call 01600h ; e8 df a410274 call 01600h ; e8 78 a5 10341 10275 sub bl, 002h ; 80 eb 02 10342 10276 cmp bl, al ; 38 c3 10343 jc short 07 12ah ; 72 0210277 jc short 07091h ; 72 02 10344 10278 mov BL, strict byte 0ffh ; b3 ff 10345 10279 mov al, bl ; 88 d8 … … 10348 10282 pop bx ; 5b 10349 10283 retn ; c3 10350 show_logo_: ; 0xf7 130LB 0x21f10284 show_logo_: ; 0xf7097 LB 0x21f 10351 10285 push bx ; 53 10352 10286 push cx ; 51 … … 10357 10291 mov dx, strict word 0000eh ; ba 0e 00 10358 10292 mov ax, strict word 00040h ; b8 40 00 10359 call 0161ch ; e8 da a410293 call 0161ch ; e8 73 a5 10360 10294 mov si, ax ; 89 c6 10361 10295 xor cl, cl ; 30 c9 … … 10368 10302 out strict byte 040h, AL ; e6 40 10369 10303 movzx ax, dl ; 0f b6 c2 10370 call 06f ceh ; e8 74 fe10304 call 06f35h ; e8 74 fe 10371 10305 cmp ax, 066bbh ; 3d bb 66 10372 jne near 07 232h ; 0f 85 d1 0010306 jne near 07199h ; 0f 85 d1 00 10373 10307 push SS ; 16 10374 10308 pop ES ; 07 … … 10378 10312 mov word [es:di], bx ; 26 89 1d 10379 10313 cmp ax, strict word 0004fh ; 3d 4f 00 10380 jne near 07 232h ; 0f 85 bd 0010314 jne near 07199h ; 0f 85 bd 00 10381 10315 mov al, dl ; 88 d0 10382 10316 add AL, strict byte 004h ; 04 04 10383 10317 xor ah, ah ; 30 e4 10384 call 06f bbh ; e8 3d fe10318 call 06f22h ; e8 3d fe 10385 10319 mov ch, al ; 88 c5 10386 10320 mov byte [bp-002h], al ; 88 46 fe … … 10388 10322 add AL, strict byte 005h ; 04 05 10389 10323 xor ah, ah ; 30 e4 10390 call 06f bbh ; e8 2f fe10324 call 06f22h ; e8 2f fe 10391 10325 mov dh, al ; 88 c6 10392 10326 mov byte [bp-006h], al ; 88 46 fa … … 10394 10328 add AL, strict byte 002h ; 04 02 10395 10329 xor ah, ah ; 30 e4 10396 call 06f ceh ; e8 34 fe10330 call 06f35h ; e8 34 fe 10397 10331 mov bx, ax ; 89 c3 10398 10332 mov word [bp-00ah], ax ; 89 46 f6 … … 10400 10334 add AL, strict byte 006h ; 04 06 10401 10335 xor ah, ah ; 30 e4 10402 call 06f bbh ; e8 13 fe10336 call 06f22h ; e8 13 fe 10403 10337 mov byte [bp-008h], al ; 88 46 f8 10404 10338 test ch, ch ; 84 ed 10405 jne short 071 b9h ; 75 0a10339 jne short 07120h ; 75 0a 10406 10340 test dh, dh ; 84 f6 10407 jne short 071 b9h ; 75 0610341 jne short 07120h ; 75 06 10408 10342 test bx, bx ; 85 db 10409 je near 07 232h ; 0f 84 79 0010343 je near 07199h ; 0f 84 79 00 10410 10344 mov bx, 00142h ; bb 42 01 10411 10345 mov ax, 04f02h ; b8 02 4f 10412 10346 int 010h ; cd 10 10413 10347 cmp byte [bp-002h], 000h ; 80 7e fe 00 10414 je short 071 eah ; 74 2310348 je short 07151h ; 74 23 10415 10349 xor bx, bx ; 31 db 10416 jmp short 071 d1h ; eb 0610350 jmp short 07138h ; eb 06 10417 10351 inc bx ; 43 10418 10352 cmp bx, strict byte 00010h ; 83 fb 10 10419 jnbe short 071 f1h ; 77 2010353 jnbe short 07158h ; 77 20 10420 10354 mov ax, bx ; 89 d8 10421 10355 or ah, 002h ; 80 cc 02 … … 10424 10358 xor dx, dx ; 31 d2 10425 10359 mov ax, strict word 00001h ; b8 01 00 10426 call 06 f0eh ; e8 2c fd10360 call 06e75h ; e8 2c fd 10427 10361 cmp AL, strict byte 086h ; 3c 86 10428 jne short 071 cbh ; 75 e510362 jne short 07132h ; 75 e5 10429 10363 mov CL, strict byte 001h ; b1 01 10430 jmp short 071 f1h ; eb 0710364 jmp short 07158h ; eb 07 10431 10365 mov ax, 00210h ; b8 10 02 10432 10366 mov dx, 003b8h ; ba b8 03 10433 10367 out DX, ax ; ef 10434 10368 test cl, cl ; 84 c9 10435 jne short 07 207h ; 75 1210369 jne short 0716eh ; 75 12 10436 10370 mov ax, word [bp-00ah] ; 8b 46 f6 10437 10371 shr ax, 004h ; c1 e8 04 10438 10372 mov dx, strict word 00001h ; ba 01 00 10439 call 06 f0eh ; e8 0d fd10373 call 06e75h ; e8 0d fd 10440 10374 cmp AL, strict byte 086h ; 3c 86 10441 jne short 07 207h ; 75 0210375 jne short 0716eh ; 75 02 10442 10376 mov CL, strict byte 001h ; b1 01 10443 10377 cmp byte [bp-006h], 000h ; 80 7e fa 00 10444 je short 07 232h ; 74 2510378 je short 07199h ; 74 25 10445 10379 test cl, cl ; 84 c9 10446 jne short 07 232h ; 75 2110380 jne short 07199h ; 75 21 10447 10381 mov bx, strict word 00010h ; bb 10 00 10448 jmp short 07 21bh ; eb 0510382 jmp short 07182h ; eb 05 10449 10383 dec bx ; 4b 10450 10384 test bx, bx ; 85 db 10451 jbe short 07 232h ; 76 1710385 jbe short 07199h ; 76 17 10452 10386 mov ax, bx ; 89 d8 10453 10387 or ah, 002h ; 80 cc 02 … … 10456 10390 xor dx, dx ; 31 d2 10457 10391 mov ax, strict word 00001h ; b8 01 00 10458 call 06 f0eh ; e8 e2 fc10392 call 06e75h ; e8 e2 fc 10459 10393 cmp AL, strict byte 086h ; 3c 86 10460 jne short 07 216h ; 75 e610394 jne short 0717dh ; 75 e6 10461 10395 mov CL, strict byte 001h ; b1 01 10462 10396 xor bx, bx ; 31 db 10463 10397 mov dx, 00339h ; ba 39 03 10464 10398 mov ax, si ; 89 f0 10465 call 0160eh ; e8 d2 a310399 call 0160eh ; e8 6b a4 10466 10400 mov AL, strict byte 003h ; b0 03 10467 10401 mov AH, strict byte 000h ; b4 00 10468 10402 int 010h ; cd 10 10469 10403 cmp byte [bp-008h], 000h ; 80 7e f8 00 10470 je near 07 333h ; 0f 84 e9 0010404 je near 0729ah ; 0f 84 e9 00 10471 10405 cmp byte [bp-002h], 000h ; 80 7e fe 00 10472 jne short 07 280h ; 75 3010406 jne short 071e7h ; 75 30 10473 10407 cmp byte [bp-006h], 000h ; 80 7e fa 00 10474 jne short 07 280h ; 75 2a10408 jne short 071e7h ; 75 2a 10475 10409 cmp word [bp-00ah], strict byte 00000h ; 83 7e f6 00 10476 jne short 07 280h ; 75 2410410 jne short 071e7h ; 75 24 10477 10411 cmp byte [bp-008h], 002h ; 80 7e f8 02 10478 jne short 07 26dh ; 75 0b10479 push 009c ah ; 68 ca0910412 jne short 071d4h ; 75 0b 10413 push 009cch ; 68 cc 09 10480 10414 push strict byte 00002h ; 6a 02 10481 call 018e9h ; e8 7f a610415 call 018e9h ; e8 18 a7 10482 10416 add sp, strict byte 00004h ; 83 c4 04 10483 10417 test cl, cl ; 84 c9 10484 jne short 07 280h ; 75 0f10418 jne short 071e7h ; 75 0f 10485 10419 mov dx, strict word 00001h ; ba 01 00 10486 10420 mov ax, 000c0h ; b8 c0 00 10487 call 06 f0eh ; e8 94 fc10421 call 06e75h ; e8 94 fc 10488 10422 cmp AL, strict byte 086h ; 3c 86 10489 jne short 07 280h ; 75 0210423 jne short 071e7h ; 75 02 10490 10424 mov CL, strict byte 001h ; b1 01 10491 10425 test cl, cl ; 84 c9 10492 je near 07 333h ; 0f 84 ad 0010426 je near 0729ah ; 0f 84 ad 00 10493 10427 mov byte [bp-004h], 000h ; c6 46 fc 00 10494 10428 mov ax, 00100h ; b8 00 01 … … 10507 10441 ; xor dx, dx ; 33 d2 10508 10442 int 010h ; cd 10 10509 push 009e ch ; 68 ec0910443 push 009eeh ; 68 ee 09 10510 10444 push strict byte 00002h ; 6a 02 10511 call 018e9h ; e8 3aa610445 call 018e9h ; e8 d3 a6 10512 10446 add sp, strict byte 00004h ; 83 c4 04 10513 call 06f dfh ; e8 2a fd10514 push 00a3 0h ; 68 300a10447 call 06f46h ; e8 2a fd 10448 push 00a32h ; 68 32 0a 10515 10449 push strict byte 00002h ; 6a 02 10516 call 018e9h ; e8 2ca610450 call 018e9h ; e8 c5 a6 10517 10451 add sp, strict byte 00004h ; 83 c4 04 10518 10452 mov dx, strict word 00001h ; ba 01 00 10519 10453 mov ax, strict word 00040h ; b8 40 00 10520 call 06 f0eh ; e8 45 fc10454 call 06e75h ; e8 45 fc 10521 10455 mov bl, al ; 88 c3 10522 10456 test al, al ; 84 c0 10523 je short 072 c0h ; 74 f110457 je short 07227h ; 74 f1 10524 10458 cmp AL, strict byte 030h ; 3c 30 10525 je short 07 321h ; 74 4e10459 je short 07288h ; 74 4e 10526 10460 cmp bl, 002h ; 80 fb 02 10527 jc short 072 fah ; 72 2210461 jc short 07261h ; 72 22 10528 10462 cmp bl, 009h ; 80 fb 09 10529 jnbe short 072 fah ; 77 1d10463 jnbe short 07261h ; 77 1d 10530 10464 movzx ax, bl ; 0f b6 c3 10531 call 07 10bh ; e8 28 fe10465 call 07072h ; e8 28 fe 10532 10466 cmp AL, strict byte 0ffh ; 3c ff 10533 jne short 072 e9h ; 75 0210534 jmp short 072 c0h ; eb d710467 jne short 07250h ; 75 02 10468 jmp short 07227h ; eb d7 10535 10469 movzx bx, al ; 0f b6 d8 10536 10470 mov dx, 00338h ; ba 38 03 10537 10471 mov ax, si ; 89 f0 10538 call 0160eh ; e8 1aa310472 call 0160eh ; e8 b3 a3 10539 10473 mov byte [bp-004h], 002h ; c6 46 fc 02 10540 jmp short 07 321h ; eb 2710474 jmp short 07288h ; eb 27 10541 10475 cmp bl, 02eh ; 80 fb 2e 10542 je short 07 30fh ; 74 1010476 je short 07276h ; 74 10 10543 10477 cmp bl, 026h ; 80 fb 26 10544 je short 07 315h ; 74 1110478 je short 0727ch ; 74 11 10545 10479 cmp bl, 021h ; 80 fb 21 10546 jne short 07 31bh ; 75 1210480 jne short 07282h ; 75 12 10547 10481 mov byte [bp-004h], 001h ; c6 46 fc 01 10548 jmp short 07 321h ; eb 1210482 jmp short 07288h ; eb 12 10549 10483 mov byte [bp-004h], 003h ; c6 46 fc 03 10550 jmp short 07 321h ; eb 0c10484 jmp short 07288h ; eb 0c 10551 10485 mov byte [bp-004h], 004h ; c6 46 fc 04 10552 jmp short 07 321h ; eb 0610486 jmp short 07288h ; eb 06 10553 10487 cmp byte [bp-004h], 000h ; 80 7e fc 00 10554 je short 072 c0h ; 74 9f10488 je short 07227h ; 74 9f 10555 10489 movzx bx, byte [bp-004h] ; 0f b6 5e fc 10556 10490 mov dx, 00339h ; ba 39 03 10557 10491 mov ax, si ; 89 f0 10558 call 0160eh ; e8 e1 a210492 call 0160eh ; e8 7a a3 10559 10493 mov AL, strict byte 003h ; b0 03 10560 10494 mov AH, strict byte 000h ; b4 00 … … 10569 10503 push DS ; 1e 10570 10504 mov ds, ax ; 8e d8 10571 call 0edbfh ; e8 7a 7a10505 call 0edbfh ; e8 13 7b 10572 10506 pop DS ; 1f 10573 10507 popad ; 66 61 … … 10579 10513 pop bx ; 5b 10580 10514 retn ; c3 10581 delay_boot_: ; 0xf7 34fLB 0x6410515 delay_boot_: ; 0xf72b6 LB 0x64 10582 10516 push bx ; 53 10583 10517 push dx ; 52 … … 10586 10520 mov dx, ax ; 89 c2 10587 10521 test ax, ax ; 85 c0 10588 je short 073 afh ; 74 5510522 je short 07316h ; 74 55 10589 10523 mov AL, strict byte 034h ; b0 34 10590 10524 out strict byte 043h, AL ; e6 43 … … 10594 10528 out strict byte 040h, AL ; e6 40 10595 10529 push dx ; 52 10596 push 00a7 ah ; 68 7a0a10530 push 00a7ch ; 68 7c 0a 10597 10531 push strict byte 00002h ; 6a 02 10598 call 018e9h ; e8 7a a510532 call 018e9h ; e8 13 a6 10599 10533 add sp, strict byte 00006h ; 83 c4 06 10600 10534 mov bx, dx ; 89 d3 10601 10535 test bx, bx ; 85 db 10602 jbe short 07 38fh ; 76 1710536 jbe short 072f6h ; 76 17 10603 10537 push bx ; 53 10604 push 00a9 8h ; 68 980a10538 push 00a9ah ; 68 9a 0a 10605 10539 push strict byte 00002h ; 6a 02 10606 call 018e9h ; e8 68 a510540 call 018e9h ; e8 01 a6 10607 10541 add sp, strict byte 00006h ; 83 c4 06 10608 10542 xor dx, dx ; 31 d2 10609 10543 mov ax, strict word 00040h ; b8 40 00 10610 call 06 f0eh ; e8 82 fb10544 call 06e75h ; e8 82 fb 10611 10545 dec bx ; 4b 10612 jmp short 07 374h ; eb e510613 push 009c 8h ; 68 c80910546 jmp short 072dbh ; eb e5 10547 push 009cah ; 68 ca 09 10614 10548 push strict byte 00002h ; 6a 02 10615 call 018e9h ; e8 52a510549 call 018e9h ; e8 eb a5 10616 10550 add sp, strict byte 00004h ; 83 c4 04 10617 10551 mov AL, strict byte 034h ; b0 34 … … 10624 10558 push DS ; 1e 10625 10559 mov ds, ax ; 8e d8 10626 call 0edbfh ; e8 137a10560 call 0edbfh ; e8 ac 7a 10627 10561 pop DS ; 1f 10628 10562 popad ; 66 61 … … 10631 10565 pop bx ; 5b 10632 10566 retn ; c3 10633 scsi_cmd_data_in_: ; 0xf73 b3LB 0x8810567 scsi_cmd_data_in_: ; 0xf731a LB 0x88 10634 10568 push si ; 56 10635 10569 push di ; 57 … … 10644 10578 ; sub ah, ah ; 2a e4 10645 10579 test AL, strict byte 001h ; a8 01 10646 jne short 073 c4h ; 75 f710580 jne short 0732bh ; 75 f7 10647 10581 mov ax, word [bp+00eh] ; 8b 46 0e 10648 10582 mov dx, word [bp+010h] ; 8b 56 10 … … 10650 10584 shr dx, 1 ; d1 ea 10651 10585 rcr ax, 1 ; d1 d8 10652 loop 073 d6h ; e2 fa10586 loop 0733dh ; e2 fa 10653 10587 and ax, 000f0h ; 25 f0 00 10654 10588 movzx bx, byte [bp+008h] ; 0f b6 5e 08 … … 10668 10602 shr dx, 1 ; d1 ea 10669 10603 rcr ax, 1 ; d1 d8 10670 loop 073 feh ; e2 fa10604 loop 07365h ; e2 fa 10671 10605 mov dx, si ; 89 f2 10672 10606 out DX, AL ; ee … … 10674 10608 movzx ax, byte [bp+008h] ; 0f b6 46 08 10675 10609 cmp bx, ax ; 39 c3 10676 jnc short 07 41fh ; 73 0e10610 jnc short 07386h ; 73 0e 10677 10611 les di, [bp-006h] ; c4 7e fa 10678 10612 add di, bx ; 01 df … … 10681 10615 out DX, AL ; ee 10682 10616 inc bx ; 43 10683 jmp short 07 409h ; eb ea10617 jmp short 07370h ; eb ea 10684 10618 mov dx, si ; 89 f2 10685 10619 in AL, DX ; ec … … 10687 10621 ; sub ah, ah ; 2a e4 10688 10622 test AL, strict byte 001h ; a8 01 10689 jne short 07 41fh ; 75 f710623 jne short 07386h ; 75 f7 10690 10624 lea dx, [si+001h] ; 8d 54 01 10691 10625 mov cx, word [bp+00eh] ; 8b 4e 0e … … 10697 10631 pop si ; 5e 10698 10632 retn 0000ah ; c2 0a 00 10699 scsi_cmd_data_out_: ; 0xf7 43bLB 0x8910633 scsi_cmd_data_out_: ; 0xf73a2 LB 0x89 10700 10634 push si ; 56 10701 10635 push di ; 57 … … 10710 10644 ; sub ah, ah ; 2a e4 10711 10645 test AL, strict byte 001h ; a8 01 10712 jne short 07 44ch ; 75 f710646 jne short 073b3h ; 75 f7 10713 10647 mov ax, word [bp+00eh] ; 8b 46 0e 10714 10648 mov dx, word [bp+010h] ; 8b 56 10 … … 10716 10650 shr dx, 1 ; d1 ea 10717 10651 rcr ax, 1 ; d1 d8 10718 loop 07 45eh ; e2 fa10652 loop 073c5h ; e2 fa 10719 10653 and ax, 000f0h ; 25 f0 00 10720 10654 movzx bx, byte [bp+008h] ; 0f b6 5e 08 … … 10734 10668 shr dx, 1 ; d1 ea 10735 10669 rcr ax, 1 ; d1 d8 10736 loop 07 486h ; e2 fa10670 loop 073edh ; e2 fa 10737 10671 mov dx, di ; 89 fa 10738 10672 out DX, AL ; ee … … 10740 10674 movzx ax, byte [bp+008h] ; 0f b6 46 08 10741 10675 cmp bx, ax ; 39 c3 10742 jnc short 074 a7h ; 73 0e10676 jnc short 0740eh ; 73 0e 10743 10677 les si, [bp-006h] ; c4 76 fa 10744 10678 add si, bx ; 01 de … … 10747 10681 out DX, AL ; ee 10748 10682 inc bx ; 43 10749 jmp short 07 491h ; eb ea10683 jmp short 073f8h ; eb ea 10750 10684 lea dx, [di+001h] ; 8d 55 01 10751 10685 mov cx, word [bp+00eh] ; 8b 4e 0e … … 10758 10692 ; sub ah, ah ; 2a e4 10759 10693 test AL, strict byte 001h ; a8 01 10760 jne short 074 b3h ; 75 f710694 jne short 0741ah ; 75 f7 10761 10695 xor ax, ax ; 31 c0 10762 10696 leave ; c9 … … 10764 10698 pop si ; 5e 10765 10699 retn 0000ah ; c2 0a 00 10766 @scsi_read_sectors: ; 0xf74 c4LB 0xb110700 @scsi_read_sectors: ; 0xf742b LB 0xb1 10767 10701 push si ; 56 10768 10702 push di ; 57 … … 10773 10707 sub bl, 008h ; 80 eb 08 10774 10708 cmp bl, 004h ; 80 fb 04 10775 jbe short 074 ebh ; 76 0f10709 jbe short 07452h ; 76 0f 10776 10710 movzx ax, bl ; 0f b6 c3 10777 10711 push ax ; 50 10778 push 00a9 ch ; 68 9c0a10712 push 00a9eh ; 68 9e 0a 10779 10713 push strict byte 00007h ; 6a 07 10780 call 018e9h ; e8 01a410714 call 018e9h ; e8 9a a4 10781 10715 add sp, strict byte 00006h ; 83 c4 06 10782 10716 mov es, [bp+00ah] ; 8e 46 0a … … 10805 10739 sal word [bp-004h], 1 ; d1 66 fc 10806 10740 rcl word [bp-002h], 1 ; d1 56 fe 10807 loop 07 534h ; e2 f810741 loop 0749bh ; e2 f8 10808 10742 push dword [bp-004h] ; 66 ff 76 fc 10809 10743 db 066h, 026h, 0ffh, 074h, 004h … … 10813 10747 mov cx, ss ; 8c d1 10814 10748 lea bx, [bp-00eh] ; 8d 5e f2 10815 call 073 b3h ; e8 62 fe10749 call 0731ah ; e8 62 fe 10816 10750 mov ah, al ; 88 c4 10817 10751 test al, al ; 84 c0 10818 jne short 07 56ch ; 75 1510752 jne short 074d3h ; 75 15 10819 10753 mov es, [bp+00ah] ; 8e 46 0a 10820 10754 mov word [es:si+014h], di ; 26 89 7c 14 … … 10828 10762 pop si ; 5e 10829 10763 retn 00004h ; c2 04 00 10830 @scsi_write_sectors: ; 0xf7 575LB 0xb110764 @scsi_write_sectors: ; 0xf74dc LB 0xb1 10831 10765 push si ; 56 10832 10766 push di ; 57 … … 10837 10771 sub bl, 008h ; 80 eb 08 10838 10772 cmp bl, 004h ; 80 fb 04 10839 jbe short 075 9ch ; 76 0f10773 jbe short 07503h ; 76 0f 10840 10774 movzx ax, bl ; 0f b6 c3 10841 10775 push ax ; 50 10842 push 00ac ah ; 68 ca0a10776 push 00acch ; 68 cc 0a 10843 10777 push strict byte 00007h ; 6a 07 10844 call 018e9h ; e8 50a310778 call 018e9h ; e8 e9 a3 10845 10779 add sp, strict byte 00006h ; 83 c4 06 10846 10780 mov es, [bp+00ah] ; 8e 46 0a … … 10869 10803 sal word [bp-004h], 1 ; d1 66 fc 10870 10804 rcl word [bp-002h], 1 ; d1 56 fe 10871 loop 075 e5h ; e2 f810805 loop 0754ch ; e2 f8 10872 10806 push dword [bp-004h] ; 66 ff 76 fc 10873 10807 db 066h, 026h, 0ffh, 074h, 004h … … 10877 10811 mov cx, ss ; 8c d1 10878 10812 lea bx, [bp-00eh] ; 8d 5e f2 10879 call 07 43bh ; e8 39 fe10813 call 073a2h ; e8 39 fe 10880 10814 mov ah, al ; 88 c4 10881 10815 test al, al ; 84 c0 10882 jne short 07 61dh ; 75 1510816 jne short 07584h ; 75 15 10883 10817 mov es, [bp+00ah] ; 8e 46 0a 10884 10818 mov word [es:si+014h], di ; 26 89 7c 14 … … 10892 10826 pop si ; 5e 10893 10827 retn 00004h ; c2 04 00 10894 scsi_cmd_packet_: ; 0xf7 626 LB 0x13110828 scsi_cmd_packet_: ; 0xf758d LB 0x161 10895 10829 push si ; 56 10896 10830 push di ; 57 … … 10898 10832 mov di, ax ; 89 c7 10899 10833 mov byte [bp-002h], dl ; 88 56 fe 10900 mov word [bp-00 ch], bx ; 89 5e f410834 mov word [bp-008h], bx ; 89 5e f8 10901 10835 mov word [bp-006h], cx ; 89 4e fa 10902 10836 mov dx, strict word 0000eh ; ba 0e 00 10903 10837 mov ax, strict word 00040h ; b8 40 00 10904 call 0161ch ; e8 dc 9f10838 call 0161ch ; e8 75 a0 10905 10839 mov si, 00122h ; be 22 01 10906 10840 mov word [bp-00ah], ax ; 89 46 f6 10907 10841 cmp byte [bp+00eh], 002h ; 80 7e 0e 02 10908 jne short 07 66bh ; 75 1f10909 mov bx, 00 cech ; bb ec 0c10842 jne short 075d2h ; 75 1f 10843 mov bx, 00d32h ; bb 32 0d 10910 10844 mov cx, ds ; 8c d9 10911 10845 mov ax, strict word 00004h ; b8 04 00 10912 call 018aeh ; e8 57a210913 push 00af 9h ; 68 f90a10914 push 00b0 9h ; 68 090b10846 call 018aeh ; e8 f0 a2 10847 push 00afbh ; 68 fb 0a 10848 push 00b0bh ; 68 0b 0b 10915 10849 push strict byte 00004h ; 6a 04 10916 call 018e9h ; e8 87 a210850 call 018e9h ; e8 20 a3 10917 10851 add sp, strict byte 00006h ; 83 c4 06 10918 10852 mov dx, strict word 00001h ; ba 01 00 10919 jmp near 07 74fh ; e9 e4 0010853 jmp near 076e6h ; e9 14 01 10920 10854 sub di, strict byte 00008h ; 83 ef 08 10921 10855 sal di, 002h ; c1 e7 02 … … 10931 10865 ; sub ah, ah ; 2a e4 10932 10866 test AL, strict byte 001h ; a8 01 10933 jne short 07687h ; 75 f7 10867 jne short 075eeh ; 75 f7 10868 xor ax, ax ; 31 c0 10869 mov dx, word [bp+00ah] ; 8b 56 0a 10870 add dx, word [bp+008h] ; 03 56 08 10871 adc ax, word [bp+00ch] ; 13 46 0c 10872 mov es, [bp-00ah] ; 8e 46 f6 10873 mov cx, word [es:si+01ch] ; 26 8b 4c 1c 10934 10874 xor di, di ; 31 ff 10935 mov ax, word [bp+00ah] ; 8b 46 0a10936 add ax, word [bp+008h] ; 03 46 0810937 mov word [bp-008h], ax ; 89 46 f810938 adc di, word [bp+00ch] ; 13 7e 0c10875 add cx, dx ; 01 d1 10876 mov word [bp-00ch], cx ; 89 4e f4 10877 adc di, ax ; 11 c7 10878 mov ax, cx ; 89 c8 10939 10879 mov dx, di ; 89 fa 10940 10880 mov cx, strict word 0000ch ; b9 0c 00 10941 10881 shr dx, 1 ; d1 ea 10942 10882 rcr ax, 1 ; d1 d8 10943 loop 076 a3h ; e2 fa10883 loop 07619h ; e2 fa 10944 10884 and ax, 000f0h ; 25 f0 00 10945 10885 movzx cx, byte [bp-002h] ; 0f b6 4e fe … … 10952 10892 mov al, cl ; 88 c8 10953 10893 out DX, AL ; ee 10954 mov ax, word [bp+00ah] ; 8b 46 0a 10955 add ax, word [bp+008h] ; 03 46 08 10956 out DX, AL ; ee 10957 mov ax, word [bp-008h] ; 8b 46 f8 10894 mov al, byte [bp-00ch] ; 8a 46 f4 10895 out DX, AL ; ee 10896 mov ax, word [bp-00ch] ; 8b 46 f4 10958 10897 mov dx, di ; 89 fa 10959 10898 mov cx, strict word 00008h ; b9 08 00 10960 10899 shr dx, 1 ; d1 ea 10961 10900 rcr ax, 1 ; d1 d8 10962 loop 076 cdh ; e2 fa10901 loop 07640h ; e2 fa 10963 10902 mov dx, bx ; 89 da 10964 10903 out DX, AL ; ee … … 10966 10905 movzx ax, byte [bp-002h] ; 0f b6 46 fe 10967 10906 cmp cx, ax ; 39 c1 10968 jnc short 076f1h ; 73 11 10969 mov es, [bp-006h] ; 8e 46 fa 10970 mov di, word [bp-00ch] ; 8b 7e f4 10907 jnc short 07661h ; 73 0e 10908 les di, [bp-008h] ; c4 7e f8 10971 10909 add di, cx ; 01 cf 10972 10910 mov al, byte [es:di] ; 26 8a 05 … … 10974 10912 out DX, AL ; ee 10975 10913 inc cx ; 41 10976 jmp short 076 d8h ; eb e710914 jmp short 0764bh ; eb ea 10977 10915 mov dx, bx ; 89 da 10978 10916 in AL, DX ; ec … … 10980 10918 ; sub ah, ah ; 2a e4 10981 10919 test AL, strict byte 001h ; a8 01 10982 jne short 076f1h ; 75 f7 10920 jne short 07661h ; 75 f7 10921 test AL, strict byte 002h ; a8 02 10922 je short 0767ch ; 74 0e 10923 lea dx, [bx+003h] ; 8d 57 03 10924 xor al, al ; 30 c0 10925 out DX, AL ; ee 10926 in AL, DX ; ec 10927 db 02ah, 0e4h 10928 ; sub ah, ah ; 2a e4 10929 mov dx, strict word 00003h ; ba 03 00 10930 jmp short 076e6h ; eb 6a 10983 10931 mov ax, word [bp+008h] ; 8b 46 08 10984 10932 test ax, ax ; 85 c0 10985 je short 07 709h ; 74 0810933 je short 0768bh ; 74 08 10986 10934 lea dx, [bx+001h] ; 8d 57 01 10987 10935 mov cx, ax ; 89 c1 10988 10936 in AL, DX ; ec 10989 loop 07 706h ; e2 fd10937 loop 07688h ; e2 fd 10990 10938 mov ax, word [bp+00ah] ; 8b 46 0a 10991 10939 mov es, [bp-00ah] ; 8e 46 f6 … … 10993 10941 mov ax, word [bp+00ch] ; 8b 46 0c 10994 10942 mov word [es:si+018h], ax ; 26 89 44 18 10995 lea dx, [bx+001h] ; 8d 57 0110943 lea ax, [bx+001h] ; 8d 47 01 10996 10944 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 10997 jne short 07 72ah ; 75 0710945 jne short 076ach ; 75 07 10998 10946 cmp word [bp+00ah], 08000h ; 81 7e 0a 00 80 10999 jbe short 07745h ; 76 1b 10947 jbe short 076c9h ; 76 1d 10948 mov dx, ax ; 89 c2 11000 10949 mov cx, 08000h ; b9 00 80 11001 10950 les di, [bp+010h] ; c4 7e 10 … … 11006 10955 add ax, 00800h ; 05 00 08 11007 10956 mov word [bp+012h], ax ; 89 46 12 11008 jmp short 0771ah ; eb d5 10957 jmp short 0769ch ; eb d3 10958 mov dx, ax ; 89 c2 11009 10959 mov cx, word [bp+00ah] ; 8b 4e 0a 11010 10960 les di, [bp+010h] ; c4 7e 10 11011 10961 rep insb ; f3 6c 10962 mov es, [bp-00ah] ; 8e 46 f6 10963 cmp word [es:si+01ch], strict byte 00000h ; 26 83 7c 1c 00 10964 je short 076e4h ; 74 07 10965 mov cx, word [es:si+01ch] ; 26 8b 4c 1c 10966 in AL, DX ; ec 10967 loop 076e1h ; e2 fd 11012 10968 xor dx, dx ; 31 d2 11013 10969 mov ax, dx ; 89 d0 … … 11016 10972 pop si ; 5e 11017 10973 retn 0000ch ; c2 0c 00 11018 scsi_enumerate_attached_devices_: ; 0xf7 757 LB 0x31910974 scsi_enumerate_attached_devices_: ; 0xf76ee LB 0x36d 11019 10975 push bx ; 53 11020 10976 push cx ; 51 … … 11023 10979 push di ; 57 11024 10980 enter 0021eh, 000h ; c8 1e 02 00 11025 mov di, ax ; 89 c710981 push ax ; 50 11026 10982 mov dx, strict word 0000eh ; ba 0e 00 11027 10983 mov ax, strict word 00040h ; b8 40 00 11028 call 0161ch ; e8 b1 9e10984 call 0161ch ; e8 1b 9f 11029 10985 mov si, 00122h ; be 22 01 11030 mov word [bp-00 ah], ax ; 89 46 f611031 mov word [bp-00 6h], strict word 00000h ; c7 46 fa00 0011032 jmp near 07 a03h ; e9 8a0211033 mov es, [bp-00 ah] ; 8e 46 f610986 mov word [bp-008h], ax ; 89 46 f8 10987 mov word [bp-00ah], strict word 00000h ; c7 46 f6 00 00 10988 jmp near 079ech ; e9 dd 02 10989 mov es, [bp-008h] ; 8e 46 f8 11034 10990 cmp byte [es:si+001e8h], 004h ; 26 80 bc e8 01 04 11035 jnc near 07a 69h ; 0f 83 e3 0210991 jnc near 07a54h ; 0f 83 38 03 11036 10992 mov cx, strict word 0000ah ; b9 0a 00 11037 10993 xor bx, bx ; 31 db 11038 10994 mov dx, ss ; 8c d2 11039 10995 lea ax, [bp-01eh] ; 8d 46 e2 11040 call 090 2ah ; e8 971810996 call 0901ah ; e8 f1 18 11041 10997 mov byte [bp-01eh], 025h ; c6 46 e2 25 11042 10998 push dword 000000008h ; 66 6a 08 … … 11045 11001 push dx ; 52 11046 11002 push strict byte 0000ah ; 6a 0a 11047 movzx dx, byte [bp-00 6h] ; 0f b6 56 fa11003 movzx dx, byte [bp-00ah] ; 0f b6 56 f6 11048 11004 mov cx, ss ; 8c d1 11049 11005 lea bx, [bp-01eh] ; 8d 5e e2 11050 mov ax, di ; 89 f811051 call 073 b3h ; e8 03 fc11006 mov ax, word [bp-00220h] ; 8b 86 e0 fd 11007 call 0731ah ; e8 d2 fb 11052 11008 test al, al ; 84 c0 11053 je short 077 c2h ; 74 0e11054 push 00b2 9h ; 68 290b11055 push 00b6 2h ; 68 620b11009 je short 0775ah ; 74 0e 11010 push 00b2bh ; 68 2b 0b 11011 push 00b64h ; 68 64 0b 11056 11012 push strict byte 00007h ; 6a 07 11057 call 018e9h ; e8 2aa111013 call 018e9h ; e8 92 a1 11058 11014 add sp, strict byte 00006h ; 83 c4 06 11059 11015 movzx dx, byte [bp-0021dh] ; 0f b6 96 e3 fd 11060 movzx ax, byte [bp-0021eh] ; 0f b6 86e2 fd11061 sal ax, 008h ; c1 e00811016 movzx di, byte [bp-0021eh] ; 0f b6 be e2 fd 11017 sal di, 008h ; c1 e7 08 11062 11018 xor bx, bx ; 31 db 11063 or ax, dx ; 09 d0 11064 mov word [bp-014h], ax ; 89 46 ec 11019 or di, dx ; 09 d7 11065 11020 movzx ax, byte [bp-0021ch] ; 0f b6 86 e4 fd 11066 11021 xor dx, dx ; 31 d2 … … 11068 11023 sal ax, 1 ; d1 e0 11069 11024 rcl dx, 1 ; d1 d2 11070 loop 077e0h ; e2 fa 11071 or bx, ax ; 09 c3 11072 or dx, word [bp-014h] ; 0b 56 ec 11073 movzx ax, byte [bp-0021bh] ; 0f b6 86 e5 fd 11074 or bx, ax ; 09 c3 11075 mov word [bp-010h], bx ; 89 5e f0 11076 mov word [bp-008h], dx ; 89 56 f8 11025 loop 07775h ; e2 fa 11026 or ax, bx ; 09 d8 11027 or di, dx ; 09 d7 11028 movzx dx, byte [bp-0021bh] ; 0f b6 96 e5 fd 11029 or ax, dx ; 09 d0 11030 mov word [bp-006h], ax ; 89 46 fa 11077 11031 movzx dx, byte [bp-0021ah] ; 0f b6 96 e6 fd 11078 11032 sal dx, 008h ; c1 e2 08 11079 11033 movzx ax, byte [bp-00219h] ; 0f b6 86 e7 fd 11080 xor bx, bx ; 31 db11081 11034 or dx, ax ; 09 c2 11082 11035 mov word [bp-014h], dx ; 89 56 ec … … 11086 11039 sal ax, 1 ; d1 e0 11087 11040 rcl dx, 1 ; d1 d2 11088 loop 07 816h ; e2 fa11041 loop 077a5h ; e2 fa 11089 11042 or bx, ax ; 09 c3 11090 11043 or dx, word [bp-014h] ; 0b 56 ec 11091 11044 movzx ax, byte [bp-00217h] ; 0f b6 86 e9 fd 11092 11045 or bx, ax ; 09 c3 11093 mov word [bp-0 12h], bx ; 89 5e ee11046 mov word [bp-004h], bx ; 89 5e fc 11094 11047 test dx, dx ; 85 d2 11095 jne short 07 835h ; 75 0611048 jne short 077c4h ; 75 06 11096 11049 cmp bx, 00200h ; 81 fb 00 02 11097 je short 07 855h ; 74 2011098 mov bx, 00 cech ; bb ec 0c11050 je short 077e4h ; 74 20 11051 mov bx, 00d32h ; bb 32 0d 11099 11052 mov cx, ds ; 8c d9 11100 11053 mov ax, strict word 00004h ; b8 04 00 11101 call 018aeh ; e8 6ea011054 call 018aeh ; e8 df a0 11102 11055 push dx ; 52 11103 push word [bp-0 12h] ; ff 76 ee11104 push word [bp-00 6h] ; ff 76 fa11105 push 00b8 1h ; 68 810b11056 push word [bp-004h] ; ff 76 fc 11057 push word [bp-00ah] ; ff 76 f6 11058 push 00b83h ; 68 83 0b 11106 11059 push strict byte 00004h ; 6a 04 11107 call 018e9h ; e8 9a a011060 call 018e9h ; e8 0b a1 11108 11061 add sp, strict byte 0000ah ; 83 c4 0a 11109 jmp near 079fah ; e9 a5 01 11110 mov ax, word [bp-008h] ; 8b 46 f8 11111 cmp ax, strict word 00040h ; 3d 40 00 11112 jnbe short 0785fh ; 77 02 11113 jne short 07869h ; 75 0a 11062 jmp near 079e3h ; e9 ff 01 11063 cmp di, strict byte 00040h ; 83 ff 40 11064 jnbe short 077ebh ; 77 02 11065 jne short 077f5h ; 75 0a 11114 11066 mov dword [bp-00eh], strict dword 000ff003fh ; 66 c7 46 f2 3f 00 ff 00 11115 jmp short 078 82h ; eb 1911116 cmp ax, strict word 00020h ; 3d 20 0011117 jnbe short 07 870h ; 77 0211118 jne short 078 7ah ; 75 0a11067 jmp short 0780eh ; eb 19 11068 cmp di, strict byte 00020h ; 83 ff 20 11069 jnbe short 077fch ; 77 02 11070 jne short 07806h ; 75 0a 11119 11071 mov dword [bp-00eh], strict dword 000800020h ; 66 c7 46 f2 20 00 80 00 11120 jmp short 078 82h ; eb 0811072 jmp short 0780eh ; eb 08 11121 11073 mov dword [bp-00eh], strict dword 000400020h ; 66 c7 46 f2 20 00 40 00 11122 11074 mov bx, word [bp-00ch] ; 8b 5e f4 11123 11075 imul bx, word [bp-00eh] ; 0f af 5e f2 11124 mov ax, word [bp-0 10h] ; 8b 46 f011125 mov dx, word [bp-008h] ; 8b 56 f811076 mov ax, word [bp-006h] ; 8b 46 fa 11077 mov dx, di ; 89 fa 11126 11078 xor cx, cx ; 31 c9 11127 call 08f c0h ; e8 2c1711128 mov cx, ax ; 89 c111129 mov word [bp-0 04h], dx ; 89 56 fc11130 mov es, [bp-00 ah] ; 8e 46 f611079 call 08fb0h ; e8 91 17 11080 mov word [bp-012h], ax ; 89 46 ee 11081 mov word [bp-010h], dx ; 89 56 f0 11082 mov es, [bp-008h] ; 8e 46 f8 11131 11083 mov al, byte [es:si+001e8h] ; 26 8a 84 e8 01 11132 11084 mov byte [bp-002h], al ; 88 46 fe 11133 add AL, strict byte 008h ; 04 08 11134 movzx bx, byte [bp-002h] ; 0f b6 5e fe 11085 mov dl, al ; 88 c2 11086 add dl, 008h ; 80 c2 08 11087 movzx bx, al ; 0f b6 d8 11135 11088 sal bx, 002h ; c1 e3 02 11136 11089 add bx, si ; 01 f3 11137 mov word [es:bx+001d8h], di ; 26 89 bf d8 01 11138 mov ah, byte [bp-006h] ; 8a 66 fa 11139 mov byte [es:bx+001dah], ah ; 26 88 a7 da 01 11140 movzx dx, al ; 0f b6 d0 11141 imul dx, dx, strict byte 00018h ; 6b d2 18 11090 mov ax, word [bp-00220h] ; 8b 86 e0 fd 11091 mov word [es:bx+001d8h], ax ; 26 89 87 d8 01 11092 mov al, byte [bp-00ah] ; 8a 46 f6 11093 mov byte [es:bx+001dah], al ; 26 88 87 da 01 11094 movzx ax, dl ; 0f b6 c2 11095 imul ax, ax, strict byte 00018h ; 6b c0 18 11142 11096 mov bx, si ; 89 f3 11143 add bx, dx ; 01 d311097 add bx, ax ; 01 c3 11144 11098 db 066h, 026h, 0c7h, 047h, 01eh, 004h, 0ffh, 000h, 000h 11145 11099 ; mov dword [es:bx+01eh], strict dword 00000ff04h ; 66 26 c7 47 1e 04 ff 00 00 11146 mov dx, word [bp-012h] ; 8b 56 ee11147 mov word [es:bx+024h], dx ; 26 89 57 2411100 mov ax, word [bp-004h] ; 8b 46 fc 11101 mov word [es:bx+024h], ax ; 26 89 47 24 11148 11102 mov byte [es:bx+023h], 001h ; 26 c6 47 23 01 11149 mov dx, word [bp-00ch] ; 8b 56 f411150 mov word [es:bx+026h], dx ; 26 89 57 2611151 mov dx, word [bp-00eh] ; 8b 56 f211152 mov word [es:bx+02ah], dx ; 26 89 57 2a11153 cmp word [bp-0 04h], strict byte 00000h ; 83 7e fc0011154 jne short 078 f5h ; 75 0611155 cmp cx, 00400h ; 81 f900 0411156 jbe short 078 fdh ; 76 0811103 mov ax, word [bp-00ch] ; 8b 46 f4 11104 mov word [es:bx+026h], ax ; 26 89 47 26 11105 mov ax, word [bp-00eh] ; 8b 46 f2 11106 mov word [es:bx+02ah], ax ; 26 89 47 2a 11107 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 11108 jne short 07888h ; 75 07 11109 cmp word [bp-012h], 00400h ; 81 7e ee 00 04 11110 jbe short 07890h ; 76 08 11157 11111 mov word [es:bx+028h], 00400h ; 26 c7 47 28 00 04 11158 jmp short 07901h ; eb 04 11159 mov word [es:bx+028h], cx ; 26 89 4f 28 11160 movzx dx, al ; 0f b6 d0 11161 imul dx, dx, strict byte 00018h ; 6b d2 18 11162 mov es, [bp-00ah] ; 8e 46 f6 11163 mov bx, si ; 89 f3 11164 add bx, dx ; 01 d3 11165 mov dx, word [bp-00ch] ; 8b 56 f4 11166 mov word [es:bx+02ch], dx ; 26 89 57 2c 11167 mov dx, word [bp-00eh] ; 8b 56 f2 11168 mov word [es:bx+030h], dx ; 26 89 57 30 11169 cmp word [bp-004h], strict byte 00000h ; 83 7e fc 00 11170 jne short 07928h ; 75 06 11171 cmp cx, 00400h ; 81 f9 00 04 11172 jbe short 07930h ; 76 08 11173 mov word [es:bx+02eh], 00400h ; 26 c7 47 2e 00 04 11174 jmp short 07934h ; eb 04 11175 mov word [es:bx+02eh], cx ; 26 89 4f 2e 11176 xor ah, ah ; 30 e4 11112 jmp short 07897h ; eb 07 11113 mov ax, word [bp-012h] ; 8b 46 ee 11114 mov word [es:bx+028h], ax ; 26 89 47 28 11115 mov bx, 00d32h ; bb 32 0d 11116 mov cx, ds ; 8c d9 11117 mov ax, strict word 00004h ; b8 04 00 11118 call 018aeh ; e8 0c a0 11119 push di ; 57 11120 push word [bp-006h] ; ff 76 fa 11121 push word [bp-00eh] ; ff 76 f2 11122 push word [bp-00ch] ; ff 76 f4 11123 push word [bp-012h] ; ff 76 ee 11124 push word [bp-00ah] ; ff 76 f6 11125 movzx ax, byte [bp-002h] ; 0f b6 46 fe 11126 push ax ; 50 11127 push 00bb1h ; 68 b1 0b 11128 push strict byte 00004h ; 6a 04 11129 call 018e9h ; e8 2a a0 11130 add sp, strict byte 00012h ; 83 c4 12 11131 movzx ax, dl ; 0f b6 c2 11177 11132 imul ax, ax, strict byte 00018h ; 6b c0 18 11178 mov es, [bp-00 ah] ; 8e 46 f611133 mov es, [bp-008h] ; 8e 46 f8 11179 11134 mov bx, si ; 89 f3 11180 11135 add bx, ax ; 01 c3 11181 mov ax, word [bp-010h] ; 8b 46 f0 11136 mov ax, word [bp-00ch] ; 8b 46 f4 11137 mov word [es:bx+02ch], ax ; 26 89 47 2c 11138 mov ax, word [bp-00eh] ; 8b 46 f2 11139 mov word [es:bx+030h], ax ; 26 89 47 30 11140 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 11141 jne short 078eah ; 75 07 11142 cmp word [bp-012h], 00400h ; 81 7e ee 00 04 11143 jbe short 078f2h ; 76 08 11144 mov word [es:bx+02eh], 00400h ; 26 c7 47 2e 00 04 11145 jmp short 078f9h ; eb 07 11146 mov ax, word [bp-012h] ; 8b 46 ee 11147 mov word [es:bx+02eh], ax ; 26 89 47 2e 11148 movzx ax, dl ; 0f b6 c2 11149 imul ax, ax, strict byte 00018h ; 6b c0 18 11150 mov es, [bp-008h] ; 8e 46 f8 11151 mov bx, si ; 89 f3 11152 add bx, ax ; 01 c3 11153 mov ax, word [bp-006h] ; 8b 46 fa 11182 11154 mov word [es:bx+032h], ax ; 26 89 47 32 11183 mov ax, word [bp-008h] ; 8b 46 f8 11184 mov word [es:bx+034h], ax ; 26 89 47 34 11155 mov word [es:bx+034h], di ; 26 89 7f 34 11185 11156 mov al, byte [es:si+0019eh] ; 26 8a 84 9e 01 11186 11157 mov ah, byte [bp-002h] ; 8a 66 fe … … 11194 11165 mov dx, strict word 00075h ; ba 75 00 11195 11166 mov ax, strict word 00040h ; b8 40 00 11196 call 01600h ; e8 8d9c11167 call 01600h ; e8 ca 9c 11197 11168 db 0feh, 0c0h 11198 11169 ; inc al ; fe c0 … … 11200 11171 mov dx, strict word 00075h ; ba 75 00 11201 11172 mov ax, strict word 00040h ; b8 40 00 11202 call 0160eh ; e8 8d9c11173 call 0160eh ; e8 ca 9c 11203 11174 inc byte [bp-002h] ; fe 46 fe 11204 11175 mov al, byte [bp-002h] ; 8a 46 fe 11205 mov es, [bp-00 ah] ; 8e 46 f611176 mov es, [bp-008h] ; 8e 46 f8 11206 11177 mov byte [es:si+001e8h], al ; 26 88 84 e8 01 11207 jmp short 079fah ; eb 69 11208 mov al, byte [bp-002h] ; 8a 46 fe 11209 add AL, strict byte 008h ; 04 08 11178 jmp near 079e3h ; e9 8e 00 11179 mov bx, 00d32h ; bb 32 0d 11180 mov cx, ds ; 8c d9 11181 mov ax, strict word 00004h ; b8 04 00 11182 call 018aeh ; e8 4e 9f 11183 push word [bp-00ah] ; ff 76 f6 11184 movzx ax, byte [bp-002h] ; 0f b6 46 fe 11185 push ax ; 50 11186 push 00bdbh ; 68 db 0b 11187 push strict byte 00004h ; 6a 04 11188 call 018e9h ; e8 79 9f 11189 add sp, strict byte 00008h ; 83 c4 08 11190 mov dl, byte [bp-002h] ; 8a 56 fe 11191 add dl, 008h ; 80 c2 08 11210 11192 test byte [bp-0021dh], 080h ; f6 86 e3 fd 80 11211 db 00fh, 095h, 0c4h 11212 ; setne ah ; 0f 95 c4 11213 movzx dx, ah ; 0f b6 d4 11214 movzx bx, byte [bp-002h] ; 0f b6 5e fe 11215 sal bx, 002h ; c1 e3 02 11216 mov es, [bp-00ah] ; 8e 46 f6 11217 add bx, si ; 01 f3 11218 mov word [es:bx+001d8h], di ; 26 89 bf d8 01 11219 mov ah, byte [bp-006h] ; 8a 66 fa 11220 mov byte [es:bx+001dah], ah ; 26 88 a7 da 01 11193 db 00fh, 095h, 0c0h 11194 ; setne al ; 0f 95 c0 11221 11195 xor ah, ah ; 30 e4 11222 imul ax, ax, strict byte 00018h ; 6b c0 18 11196 mov cx, ax ; 89 c1 11197 movzx ax, byte [bp-002h] ; 0f b6 46 fe 11198 sal ax, 002h ; c1 e0 02 11199 mov es, [bp-008h] ; 8e 46 f8 11223 11200 mov bx, si ; 89 f3 11224 11201 add bx, ax ; 01 c3 11202 mov ax, word [bp-00220h] ; 8b 86 e0 fd 11203 mov word [es:bx+001d8h], ax ; 26 89 87 d8 01 11204 mov al, byte [bp-00ah] ; 8a 46 f6 11205 mov byte [es:bx+001dah], al ; 26 88 87 da 01 11206 movzx bx, dl ; 0f b6 da 11207 imul bx, bx, strict byte 00018h ; 6b db 18 11208 add bx, si ; 01 f3 11225 11209 mov word [es:bx+01eh], 00504h ; 26 c7 47 1e 04 05 11226 mov byte [es:bx+020h], dl ; 26 88 572011210 mov byte [es:bx+020h], cl ; 26 88 4f 20 11227 11211 mov word [es:bx+024h], 00800h ; 26 c7 47 24 00 08 11228 11212 mov al, byte [es:si+001afh] ; 26 8a 84 af 01 … … 11238 11222 mov al, byte [bp-002h] ; 8a 46 fe 11239 11223 mov byte [es:si+001e8h], al ; 26 88 84 e8 01 11240 inc word [bp-00 6h] ; ff 46 fa11241 cmp word [bp-00 6h], strict byte 00010h ; 83 7e fa1011242 jnl short 07a 69h ; 7d 6611224 inc word [bp-00ah] ; ff 46 f6 11225 cmp word [bp-00ah], strict byte 00010h ; 83 7e f6 10 11226 jnl short 07a54h ; 7d 68 11243 11227 mov byte [bp-01eh], 012h ; c6 46 e2 12 11244 11228 xor al, al ; 30 c0 … … 11253 11237 push dx ; 52 11254 11238 push strict byte 00006h ; 6a 06 11255 movzx dx, byte [bp-00 6h] ; 0f b6 56 fa11239 movzx dx, byte [bp-00ah] ; 0f b6 56 f6 11256 11240 mov cx, ss ; 8c d1 11257 11241 lea bx, [bp-01eh] ; 8d 5e e2 11258 mov ax, di ; 89 f811259 call 073 b3h ; e8 81 f911242 mov ax, word [bp-00220h] ; 8b 86 e0 fd 11243 call 0731ah ; e8 fd f8 11260 11244 test al, al ; 84 c0 11261 je short 07a 44h ; 74 0e11262 push 00b2 9h ; 68 290b11263 push 00b4 9h ; 68 490b11245 je short 07a2fh ; 74 0e 11246 push 00b2bh ; 68 2b 0b 11247 push 00b4bh ; 68 4b 0b 11264 11248 push strict byte 00007h ; 6a 07 11265 call 018e9h ; e8 a89e11249 call 018e9h ; e8 bd 9e 11266 11250 add sp, strict byte 00006h ; 83 c4 06 11267 11251 test byte [bp-0021eh], 0e0h ; f6 86 e2 fd e0 11268 jne short 07a 54h ; 75 0911252 jne short 07a3fh ; 75 09 11269 11253 test byte [bp-0021eh], 01fh ; f6 86 e2 fd 1f 11270 je near 077 79h ; 0f 84 25 fd11254 je near 0770fh ; 0f 84 d0 fc 11271 11255 test byte [bp-0021eh], 0e0h ; f6 86 e2 fd e0 11272 jne short 079 fah ; 75 9f11256 jne short 079e3h ; 75 9d 11273 11257 mov al, byte [bp-0021eh] ; 8a 86 e2 fd 11274 11258 and AL, strict byte 01fh ; 24 1f 11275 11259 cmp AL, strict byte 005h ; 3c 05 11276 je near 079 91h ; 0f 84 2aff11277 jmp short 079 fah ; eb 9111260 je near 07955h ; 0f 84 03 ff 11261 jmp short 079e3h ; eb 8f 11278 11262 leave ; c9 11279 11263 pop di ; 5f … … 11283 11267 pop bx ; 5b 11284 11268 retn ; c3 11285 _scsi_init: ; 0xf7a 70LB 0x6411269 _scsi_init: ; 0xf7a5b LB 0x64 11286 11270 push bp ; 55 11287 11271 mov bp, sp ; 89 e5 11288 11272 mov dx, strict word 0000eh ; ba 0e 00 11289 11273 mov ax, strict word 00040h ; b8 40 00 11290 call 0161ch ; e8 a09b11274 call 0161ch ; e8 b5 9b 11291 11275 mov bx, 00122h ; bb 22 01 11292 11276 mov es, ax ; 8e c0 11293 11277 mov byte [es:bx+001e8h], 000h ; 26 c6 87 e8 01 00 11294 11278 mov AL, strict byte 055h ; b0 55 11295 mov dx, 00 332h ; ba 32 0311279 mov dx, 00432h ; ba 32 04 11296 11280 out DX, AL ; ee 11297 11281 in AL, DX ; ec … … 11299 11283 ; sub ah, ah ; 2a e4 11300 11284 cmp AL, strict byte 055h ; 3c 55 11301 jne short 07a a0h ; 75 0c11285 jne short 07a8bh ; 75 0c 11302 11286 xor al, al ; 30 c0 11303 mov dx, 00 333h ; ba 33 0311304 out DX, AL ; ee 11305 mov ax, 00 330h ; b8 30 0311306 call 07 757h ; e8 b7fc11287 mov dx, 00433h ; ba 33 04 11288 out DX, AL ; ee 11289 mov ax, 00430h ; b8 30 04 11290 call 076eeh ; e8 63 fc 11307 11291 mov AL, strict byte 055h ; b0 55 11308 mov dx, 00 342h ; ba 42 0311292 mov dx, 00436h ; ba 36 04 11309 11293 out DX, AL ; ee 11310 11294 in AL, DX ; ec … … 11312 11296 ; sub ah, ah ; 2a e4 11313 11297 cmp AL, strict byte 055h ; 3c 55 11314 jne short 07a b9h ; 75 0c11298 jne short 07aa4h ; 75 0c 11315 11299 xor al, al ; 30 c0 11316 mov dx, 00 343h ; ba 43 0311317 out DX, AL ; ee 11318 mov ax, 00 340h ; b8 40 0311319 call 07 757h ; e8 9efc11300 mov dx, 00437h ; ba 37 04 11301 out DX, AL ; ee 11302 mov ax, 00434h ; b8 34 04 11303 call 076eeh ; e8 4a fc 11320 11304 mov AL, strict byte 055h ; b0 55 11321 mov dx, 00 352h ; ba 52 0311305 mov dx, 0043ah ; ba 3a 04 11322 11306 out DX, AL ; ee 11323 11307 in AL, DX ; ec … … 11325 11309 ; sub ah, ah ; 2a e4 11326 11310 cmp AL, strict byte 055h ; 3c 55 11327 jne short 07a d2h ; 75 0c11311 jne short 07abdh ; 75 0c 11328 11312 xor al, al ; 30 c0 11329 mov dx, 00 353h ; ba 53 0311330 out DX, AL ; ee 11331 mov ax, 00 350h ; b8 50 0311332 call 07 757h ; e8 85fc11313 mov dx, 0043bh ; ba 3b 04 11314 out DX, AL ; ee 11315 mov ax, 00438h ; b8 38 04 11316 call 076eeh ; e8 31 fc 11333 11317 pop bp ; 5d 11334 11318 retn ; c3 11335 high_bits_save_: ; 0xf7a d4LB 0x1411319 high_bits_save_: ; 0xf7abf LB 0x14 11336 11320 push bx ; 53 11337 11321 push bp ; 55 … … 11344 11328 pop bx ; 5b 11345 11329 retn ; c3 11346 high_bits_restore_: ; 0xf7a e8LB 0x1411330 high_bits_restore_: ; 0xf7ad3 LB 0x14 11347 11331 push bx ; 53 11348 11332 push bp ; 55 … … 11355 11339 pop bx ; 5b 11356 11340 retn ; c3 11357 ahci_ctrl_set_bits_: ; 0xf7a fcLB 0x4011341 ahci_ctrl_set_bits_: ; 0xf7ae7 LB 0x40 11358 11342 push si ; 56 11359 11343 push di ; 57 … … 11390 11374 pop si ; 5e 11391 11375 retn ; c3 11392 ahci_ctrl_clear_bits_: ; 0xf7b 3cLB 0x4411376 ahci_ctrl_clear_bits_: ; 0xf7b27 LB 0x44 11393 11377 push si ; 56 11394 11378 push di ; 57 … … 11427 11411 pop si ; 5e 11428 11412 retn ; c3 11429 ahci_ctrl_is_bit_set_: ; 0xf7b 80LB 0x3611413 ahci_ctrl_is_bit_set_: ; 0xf7b6b LB 0x36 11430 11414 push si ; 56 11431 11415 push di ; 57 … … 11449 11433 xchg dx, ax ; 92 11450 11434 test dx, di ; 85 fa 11451 jne short 07b ach ; 75 0411435 jne short 07b97h ; 75 04 11452 11436 test ax, bx ; 85 d8 11453 je short 07b b0h ; 74 0411437 je short 07b9bh ; 74 04 11454 11438 mov AL, strict byte 001h ; b0 01 11455 jmp short 07b b2h ; eb 0211439 jmp short 07b9dh ; eb 02 11456 11440 xor al, al ; 30 c0 11457 11441 pop bp ; 5d … … 11459 11443 pop si ; 5e 11460 11444 retn ; c3 11461 ahci_ctrl_extract_bits_: ; 0xf7b b6LB 0x1b11445 ahci_ctrl_extract_bits_: ; 0xf7ba1 LB 0x1b 11462 11446 push si ; 56 11463 11447 push bp ; 55 … … 11467 11451 and dx, cx ; 21 ca 11468 11452 movzx cx, byte [bp+006h] ; 0f b6 4e 06 11469 jcxz 07b cch ; e3 0611453 jcxz 07bb7h ; e3 06 11470 11454 shr dx, 1 ; d1 ea 11471 11455 rcr ax, 1 ; d1 d8 11472 loop 07b c6h ; e2 fa11456 loop 07bb1h ; e2 fa 11473 11457 pop bp ; 5d 11474 11458 pop si ; 5e 11475 11459 retn 00002h ; c2 02 00 11476 ahci_addr_to_phys_: ; 0xf7b d1LB 0x1e11460 ahci_addr_to_phys_: ; 0xf7bbc LB 0x1e 11477 11461 push bx ; 53 11478 11462 push cx ; 51 … … 11485 11469 sal ax, 1 ; d1 e0 11486 11470 rcl dx, 1 ; d1 d2 11487 loop 07b dfh ; e2 fa11471 loop 07bcah ; e2 fa 11488 11472 xor cx, cx ; 31 c9 11489 11473 add ax, bx ; 01 d8 … … 11493 11477 pop bx ; 5b 11494 11478 retn ; c3 11495 ahci_port_cmd_sync_: ; 0xf7b efLB 0xd011479 ahci_port_cmd_sync_: ; 0xf7bda LB 0xd0 11496 11480 push cx ; 51 11497 11481 push si ; 56 … … 11505 11489 mov di, word [es:si+00260h] ; 26 8b bc 60 02 11506 11490 cmp AL, strict byte 0ffh ; 3c ff 11507 je near 07c bah ; 0f 84 aa 0011491 je near 07ca5h ; 0f 84 aa 00 11508 11492 movzx cx, byte [es:si+00263h] ; 26 0f b6 8c 63 02 11509 11493 xor dx, dx ; 31 d2 … … 11517 11501 lea ax, [si+00080h] ; 8d 84 80 00 11518 11502 mov dx, es ; 8c c2 11519 call 07b d1h ; e8 98 ff11503 call 07bbch ; e8 98 ff 11520 11504 mov es, [bp-004h] ; 8e 46 fc 11521 11505 mov word [es:si+008h], ax ; 26 89 44 08 … … 11527 11511 xor cx, cx ; 31 c9 11528 11512 mov ax, di ; 89 f8 11529 call 07a fch ; e8 a3 fe11513 call 07ae7h ; e8 a3 fe 11530 11514 lea ax, [si+00138h] ; 8d 84 38 01 11531 11515 cwd ; 99 … … 11554 11538 mov dx, si ; 89 f2 11555 11539 mov ax, di ; 89 f8 11556 call 07b 80h ; e8 e7 fe11540 call 07b6bh ; e8 e7 fe 11557 11541 test al, al ; 84 c0 11558 je short 07c 7ch ; 74 df11542 je short 07c67h ; 74 df 11559 11543 mov bx, strict word 00001h ; bb 01 00 11560 11544 xor cx, cx ; 31 c9 11561 11545 mov dx, si ; 89 f2 11562 11546 mov ax, di ; 89 f8 11563 call 07a fch ; e8 53 fe11547 call 07ae7h ; e8 53 fe 11564 11548 mov dx, word [bp-006h] ; 8b 56 fa 11565 11549 add dx, 00118h ; 81 c2 18 01 … … 11567 11551 xor cx, cx ; 31 c9 11568 11552 mov ax, di ; 89 f8 11569 call 07b 3ch ; e8 82 fe11553 call 07b27h ; e8 82 fe 11570 11554 leave ; c9 11571 11555 pop di ; 5f … … 11573 11557 pop cx ; 59 11574 11558 retn ; c3 11575 ahci_cmd_data_: ; 0xf7c bfLB 0x1c511559 ahci_cmd_data_: ; 0xf7caa LB 0x1c5 11576 11560 push cx ; 51 11577 11561 push si ; 56 … … 11595 11579 mov ax, 00080h ; b8 80 00 11596 11580 mov dx, word [bp-004h] ; 8b 56 fc 11597 call 090 2ah ; e8 2e1311581 call 0901ah ; e8 33 13 11598 11582 mov es, [bp-004h] ; 8e 46 fc 11599 11583 mov word [es:si+00080h], 08027h ; 26 c7 84 80 00 27 80 … … 11611 11595 shr bx, 1 ; d1 eb 11612 11596 rcr ax, 1 ; d1 d8 11613 loop 07d 2fh ; e2 fa11597 loop 07d1ah ; e2 fa 11614 11598 mov es, [bp-004h] ; 8e 46 fc 11615 11599 mov byte [es:si+00085h], al ; 26 88 84 85 00 … … 11636 11620 mov bx, word [bp-010h] ; 8b 5e f0 11637 11621 xor cx, cx ; 31 c9 11638 call 08f f9h ; e8 611211622 call 08fe9h ; e8 66 12 11639 11623 push dx ; 52 11640 11624 push ax ; 50 … … 11644 11628 mov ax, 0026ah ; b8 6a 02 11645 11629 mov dx, word [bp-004h] ; 8b 56 fc 11646 call 08 f14h ; e8 66 1111630 call 08effh ; e8 66 11 11647 11631 mov es, [bp-004h] ; 8e 46 fc 11648 11632 movzx ax, byte [es:si+00263h] ; 26 0f b6 84 63 02 … … 11664 11648 mov es, [bp-00ch] ; 8e 46 f4 11665 11649 cmp word [es:di+01ch], strict byte 00000h ; 26 83 7d 1c 00 11666 je short 07e 27h ; 74 2c11650 je short 07e12h ; 74 2c 11667 11651 mov dx, word [es:di+01ch] ; 26 8b 55 1c 11668 11652 dec dx ; 4a … … 11683 11667 movzx dx, byte [es:bx+00263h] ; 26 0f b6 97 63 02 11684 11668 cmp ax, dx ; 39 d0 11685 jnc short 07e 41h ; 73 0311669 jnc short 07e2ch ; 73 03 11686 11670 inc ax ; 40 11687 jmp short 07e 31h ; eb f011671 jmp short 07e1ch ; eb f0 11688 11672 mov al, byte [bp-002h] ; 8a 46 fe 11689 11673 cmp AL, strict byte 035h ; 3c 35 11690 jne short 07e 4eh ; 75 0611674 jne short 07e39h ; 75 06 11691 11675 mov byte [bp-002h], 040h ; c6 46 fe 40 11692 jmp short 07e 62h ; eb 1411676 jmp short 07e4dh ; eb 14 11693 11677 cmp AL, strict byte 0a0h ; 3c a0 11694 jne short 07e 5eh ; 75 0c11678 jne short 07e49h ; 75 0c 11695 11679 or byte [bp-002h], 020h ; 80 4e fe 20 11696 11680 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 11697 jmp short 07e 62h ; eb 0411681 jmp short 07e4dh ; eb 04 11698 11682 mov byte [bp-002h], 000h ; c6 46 fe 00 11699 11683 or byte [bp-002h], 005h ; 80 4e fe 05 … … 11701 11685 mov ax, word [bp-008h] ; 8b 46 f8 11702 11686 mov dx, word [bp-006h] ; 8b 56 fa 11703 call 07b efh ; e8 7c fd11687 call 07bdah ; e8 7c fd 11704 11688 mov ax, word [bp-008h] ; 8b 46 f8 11705 11689 add ax, 0026ah ; 05 6a 02 11706 11690 mov dx, word [bp-006h] ; 8b 56 fa 11707 call 08f 8ah ; e8 0b 1111691 call 08f75h ; e8 0b 11 11708 11692 leave ; c9 11709 11693 pop di ; 5f … … 11711 11695 pop cx ; 59 11712 11696 retn ; c3 11713 ahci_port_deinit_current_: ; 0xf7e 84LB 0x13f11697 ahci_port_deinit_current_: ; 0xf7e6f LB 0x13f 11714 11698 push bx ; 53 11715 11699 push cx ; 51 … … 11724 11708 mov byte [bp-002h], al ; 88 46 fe 11725 11709 cmp AL, strict byte 0ffh ; 3c ff 11726 je near 07f bdh ; 0f 84 17 0111710 je near 07fa8h ; 0f 84 17 01 11727 11711 movzx dx, al ; 0f b6 d0 11728 11712 sal dx, 007h ; c1 e2 07 … … 11731 11715 xor cx, cx ; 31 c9 11732 11716 mov ax, si ; 89 f0 11733 call 07b 3ch ; e8 82 fc11717 call 07b27h ; e8 82 fc 11734 11718 movzx ax, byte [bp-002h] ; 0f b6 46 fe 11735 11719 sal ax, 007h ; c1 e0 07 … … 11740 11724 xor cx, cx ; 31 c9 11741 11725 mov ax, si ; 89 f0 11742 call 07b 80h ; e8 ac fc11726 call 07b6bh ; e8 ac fc 11743 11727 cmp AL, strict byte 001h ; 3c 01 11744 je short 07e bah ; 74 e211728 je short 07ea5h ; 74 e2 11745 11729 mov cx, strict word 00020h ; b9 20 00 11746 11730 xor bx, bx ; 31 db 11747 11731 mov ax, di ; 89 f8 11748 11732 mov dx, word [bp-004h] ; 8b 56 fc 11749 call 090 2ah ; e8 451111733 call 0901ah ; e8 4a 11 11750 11734 lea ax, [di+00080h] ; 8d 85 80 00 11751 11735 mov cx, strict word 00040h ; b9 40 00 11752 11736 xor bx, bx ; 31 db 11753 11737 mov dx, word [bp-004h] ; 8b 56 fc 11754 call 090 2ah ; e8 361111738 call 0901ah ; e8 3b 11 11755 11739 lea ax, [di+00200h] ; 8d 85 00 02 11756 11740 mov cx, strict word 00060h ; b9 60 00 11757 11741 xor bx, bx ; 31 db 11758 11742 mov dx, word [bp-004h] ; 8b 56 fc 11759 call 090 2ah ; e8 271111743 call 0901ah ; e8 2c 11 11760 11744 mov ax, word [bp-006h] ; 8b 46 fa 11761 11745 add ax, 00108h ; 05 08 01 … … 11858 11842 pop bx ; 5b 11859 11843 retn ; c3 11860 ahci_port_init_: ; 0xf7f c3LB 0x20111844 ahci_port_init_: ; 0xf7fae LB 0x201 11861 11845 push cx ; 51 11862 11846 push si ; 56 … … 11866 11850 mov word [bp-004h], dx ; 89 56 fc 11867 11851 mov byte [bp-002h], bl ; 88 5e fe 11868 call 07e 84h ; e8 af fe11852 call 07e6fh ; e8 af fe 11869 11853 movzx dx, bl ; 0f b6 d3 11870 11854 sal dx, 007h ; c1 e2 07 … … 11874 11858 mov bx, strict word 00011h ; bb 11 00 11875 11859 xor cx, cx ; 31 c9 11876 call 07b 3ch ; e8 4d fb11860 call 07b27h ; e8 4d fb 11877 11861 movzx di, byte [bp-002h] ; 0f b6 7e fe 11878 11862 sal di, 007h ; c1 e7 07 … … 11882 11866 mov bx, 0c011h ; bb 11 c0 11883 11867 xor cx, cx ; 31 c9 11884 call 07b 80h ; e8 76 fb11868 call 07b6bh ; e8 76 fb 11885 11869 cmp AL, strict byte 001h ; 3c 01 11886 je short 07f efh ; 74 e111870 je short 07fdah ; 74 e1 11887 11871 mov cx, strict word 00020h ; b9 20 00 11888 11872 xor bx, bx ; 31 db 11889 11873 mov ax, si ; 89 f0 11890 11874 mov dx, word [bp-004h] ; 8b 56 fc 11891 call 090 2ah ; e8 0f1011875 call 0901ah ; e8 14 10 11892 11876 lea ax, [si+00080h] ; 8d 84 80 00 11893 11877 mov cx, strict word 00040h ; b9 40 00 11894 11878 xor bx, bx ; 31 db 11895 11879 mov dx, word [bp-004h] ; 8b 56 fc 11896 call 090 2ah ; e8 001011880 call 0901ah ; e8 05 10 11897 11881 mov ax, si ; 89 f0 11898 11882 add ah, 002h ; 80 c4 02 … … 11901 11885 xor bx, bx ; 31 db 11902 11886 mov dx, word [bp-004h] ; 8b 56 fc 11903 call 090 2ah ; e8 ed0f11887 call 0901ah ; e8 f2 0f 11904 11888 lea ax, [di+00108h] ; 8d 85 08 01 11905 11889 cwd ; 99 … … 11915 11899 mov ax, word [bp-006h] ; 8b 46 fa 11916 11900 mov dx, word [bp-004h] ; 8b 56 fc 11917 call 07b d1h ; e8 71 fb11901 call 07bbch ; e8 71 fb 11918 11902 mov es, [bp-004h] ; 8e 46 fc 11919 11903 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 … … 11960 11944 mov ax, si ; 89 f0 11961 11945 mov dx, word [bp-004h] ; 8b 56 fc 11962 call 07b d1h ; e8 05 fb11946 call 07bbch ; e8 05 fb 11963 11947 mov es, [bp-004h] ; 8e 46 fc 11964 11948 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 … … 12064 12048 pop cx ; 59 12065 12049 retn ; c3 12066 @ahci_read_sectors: ; 0xf81 c4LB 0x9112050 @ahci_read_sectors: ; 0xf81af LB 0x91 12067 12051 push si ; 56 12068 12052 push di ; 57 … … 12073 12057 sub di, strict byte 0000ch ; 83 ef 0c 12074 12058 cmp di, strict byte 00004h ; 83 ff 04 12075 jbe short 081 e8h ; 76 0f12059 jbe short 081d3h ; 76 0f 12076 12060 push di ; 57 12077 push 00b b0h ; 68 b00b12078 push 00 bc2h ; 68 c2 0b12061 push 00bf6h ; 68 f6 0b 12062 push 00c08h ; 68 08 0c 12079 12063 push strict byte 00007h ; 6a 07 12080 call 018e9h ; e8 049712064 call 018e9h ; e8 19 97 12081 12065 add sp, strict byte 00008h ; 83 c4 08 12082 12066 les bx, [bp+008h] ; c4 5e 08 12083 12067 mov dx, word [es:bx+001eeh] ; 26 8b 97 ee 01 12084 12068 xor ax, ax ; 31 c0 12085 call 07a d4h ; e8 df f812069 call 07abfh ; e8 df f8 12086 12070 mov es, [bp+00ah] ; 8e 46 0a 12087 12071 add di, bx ; 01 df … … 12090 12074 mov dx, word [es:di+001eeh] ; 26 8b 95 ee 01 12091 12075 xor ax, ax ; 31 c0 12092 call 07f c3h ; e8 b6 fd12076 call 07faeh ; e8 b6 fd 12093 12077 mov bx, strict word 00025h ; bb 25 00 12094 12078 mov ax, di ; 89 f8 12095 12079 mov dx, word [bp+00ah] ; 8b 56 0a 12096 call 07c bfh ; e8 a7 fa12080 call 07caah ; e8 a7 fa 12097 12081 mov es, [bp+00ah] ; 8e 46 0a 12098 12082 mov bx, di ; 89 fb … … 12114 12098 mov dx, word [es:bx+001eeh] ; 26 8b 97 ee 01 12115 12099 xor ax, ax ; 31 c0 12116 call 07a e8h ; e8 9b f812100 call 07ad3h ; e8 9b f8 12117 12101 xor ax, ax ; 31 c0 12118 12102 pop bp ; 5d … … 12120 12104 pop si ; 5e 12121 12105 retn 00004h ; c2 04 00 12122 @ahci_write_sectors: ; 0xf82 55LB 0x6d12106 @ahci_write_sectors: ; 0xf8240 LB 0x6d 12123 12107 push si ; 56 12124 12108 push bp ; 55 … … 12130 12114 sub bx, strict byte 0000ch ; 83 eb 0c 12131 12115 cmp bx, strict byte 00004h ; 83 fb 04 12132 jbe short 082 7dh ; 76 0f12116 jbe short 08268h ; 76 0f 12133 12117 push bx ; 53 12134 push 00 be1h ; 68 e1 0b12135 push 00 bc2h ; 68 c2 0b12118 push 00c27h ; 68 27 0c 12119 push 00c08h ; 68 08 0c 12136 12120 push strict byte 00007h ; 6a 07 12137 call 018e9h ; e8 6f9612121 call 018e9h ; e8 84 96 12138 12122 add sp, strict byte 00008h ; 83 c4 08 12139 12123 mov es, cx ; 8e c1 12140 12124 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12141 12125 xor ax, ax ; 31 c0 12142 call 07a d4h ; e8 4b f812126 call 07abfh ; e8 4b f8 12143 12127 mov es, cx ; 8e c1 12144 12128 add bx, si ; 01 f3 … … 12146 12130 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12147 12131 xor ax, ax ; 31 c0 12148 call 07f c3h ; e8 26 fd12132 call 07faeh ; e8 26 fd 12149 12133 mov bx, strict word 00035h ; bb 35 00 12150 12134 mov ax, si ; 89 f0 12151 12135 mov dx, cx ; 89 ca 12152 call 07c bfh ; e8 18 fa12136 call 07caah ; e8 18 fa 12153 12137 mov es, cx ; 8e c1 12154 12138 mov dx, word [es:si+00ah] ; 26 8b 54 0a … … 12156 12140 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12157 12141 xor ax, ax ; 31 c0 12158 call 07a e8h ; e8 2d f812142 call 07ad3h ; e8 2d f8 12159 12143 xor ax, ax ; 31 c0 12160 12144 pop bp ; 5d 12161 12145 pop si ; 5e 12162 12146 retn 00004h ; c2 04 00 12163 ahci_cmd_packet_: ; 0xf82 c2LB 0x16e12147 ahci_cmd_packet_: ; 0xf82ad LB 0x16e 12164 12148 push si ; 56 12165 12149 push di ; 57 … … 12171 12155 mov dx, strict word 0000eh ; ba 0e 00 12172 12156 mov ax, strict word 00040h ; b8 40 00 12173 call 0161ch ; e8 419312157 call 0161ch ; e8 56 93 12174 12158 mov si, 00122h ; be 22 01 12175 12159 mov word [bp-004h], ax ; 89 46 fc 12176 12160 cmp byte [bp+00eh], 002h ; 80 7e 0e 02 12177 jne short 08 306h ; 75 1f12178 mov bx, 00 cech ; bb ec 0c12161 jne short 082f1h ; 75 1f 12162 mov bx, 00d32h ; bb 32 0d 12179 12163 mov cx, ds ; 8c d9 12180 12164 mov ax, strict word 00004h ; b8 04 00 12181 call 018aeh ; e8 bc9512182 push 00 bf4h ; 68 f4 0b12183 push 00c 04h ; 68 040c12165 call 018aeh ; e8 d1 95 12166 push 00c3ah ; 68 3a 0c 12167 push 00c4ah ; 68 4a 0c 12184 12168 push strict byte 00004h ; 6a 04 12185 call 018e9h ; e8 ec 9512169 call 018e9h ; e8 01 96 12186 12170 add sp, strict byte 00006h ; 83 c4 06 12187 12171 mov ax, strict word 00001h ; b8 01 00 12188 jmp near 084 2ah ; e9 24 0112172 jmp near 08415h ; e9 24 01 12189 12173 test byte [bp+008h], 001h ; f6 46 08 01 12190 jne short 08 300h ; 75 f412174 jne short 082ebh ; 75 f4 12191 12175 mov ax, word [bp+00ah] ; 8b 46 0a 12192 12176 mov dx, word [bp+00ch] ; 8b 56 0c … … 12194 12178 sal ax, 1 ; d1 e0 12195 12179 rcl dx, 1 ; d1 d2 12196 loop 083 15h ; e2 fa12180 loop 08300h ; e2 fa 12197 12181 mov es, [bp-004h] ; 8e 46 fc 12198 12182 mov word [es:si], ax ; 26 89 04 … … 12206 12190 mov dx, word [bp+00ch] ; 8b 56 0c 12207 12191 xor cx, cx ; 31 c9 12208 call 08f c0h ; e8 7e0c12192 call 08fb0h ; e8 83 0c 12209 12193 mov word [es:si+00ah], ax ; 26 89 44 0a 12210 12194 xor di, di ; 31 ff … … 12216 12200 xor ax, ax ; 31 c0 12217 12201 mov dx, word [bp-006h] ; 8b 56 fa 12218 call 07a d4h ; e8 72 f712202 call 07abfh ; e8 72 f7 12219 12203 mov es, [bp-004h] ; 8e 46 fc 12220 12204 mov bx, word [bp-010h] ; 8b 5e f0 … … 12223 12207 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12224 12208 xor ax, ax ; 31 c0 12225 call 07f c3h ; e8 49 fc12209 call 07faeh ; e8 49 fc 12226 12210 movzx ax, byte [bp-002h] ; 0f b6 46 fe 12227 12211 push ax ; 50 … … 12230 12214 mov ax, 000c0h ; b8 c0 00 12231 12215 mov dx, word [bp-006h] ; 8b 56 fa 12232 call 090 37h ; e8 a90c12216 call 09027h ; e8 ae 0c 12233 12217 mov es, [bp-004h] ; 8e 46 fc 12234 12218 mov word [es:si+014h], di ; 26 89 7c 14 … … 12237 12221 mov ax, word [es:si+01ah] ; 26 8b 44 1a 12238 12222 test ax, ax ; 85 c0 12239 je short 083 cch ; 74 2712223 je short 083b7h ; 74 27 12240 12224 dec ax ; 48 12241 12225 mov es, [bp-006h] ; 8e 46 fa … … 12250 12234 mov ax, si ; 89 f0 12251 12235 mov dx, word [bp-004h] ; 8b 56 fc 12252 call 07c bfh ; e8 e8 f812236 call 07caah ; e8 e8 f8 12253 12237 les bx, [bp-00ah] ; c4 5e f6 12254 12238 mov ax, word [es:bx+004h] ; 26 8b 47 04 … … 12273 12257 mov ax, word [bp-00ah] ; 8b 46 f6 12274 12258 mov dx, word [bp-008h] ; 8b 56 f8 12275 call 07a e8h ; e8 d2 f612259 call 07ad3h ; e8 d2 f6 12276 12260 les bx, [bp-00ah] ; c4 5e f6 12277 12261 mov ax, word [es:bx+006h] ; 26 8b 47 06 12278 12262 or ax, word [es:bx+004h] ; 26 0b 47 04 12279 jne short 084 28h ; 75 0512263 jne short 08413h ; 75 05 12280 12264 mov ax, strict word 00004h ; b8 04 00 12281 jmp short 084 2ah ; eb 0212265 jmp short 08415h ; eb 02 12282 12266 xor ax, ax ; 31 c0 12283 12267 leave ; c9 … … 12285 12269 pop si ; 5e 12286 12270 retn 0000ch ; c2 0c 00 12287 ahci_port_detect_device_: ; 0xf84 30LB 0x3cb12271 ahci_port_detect_device_: ; 0xf841b LB 0x3cb 12288 12272 push cx ; 51 12289 12273 push si ; 56 … … 12295 12279 movzx cx, bl ; 0f b6 cb 12296 12280 mov bx, cx ; 89 cb 12297 call 07f c3h ; e8 7c fb12281 call 07faeh ; e8 7c fb 12298 12282 mov dx, strict word 0000eh ; ba 0e 00 12299 12283 mov ax, strict word 00040h ; b8 40 00 12300 call 0161ch ; e8 cc9112284 call 0161ch ; e8 e1 91 12301 12285 mov word [bp-01ah], ax ; 89 46 e6 12302 12286 mov si, 00122h ; be 22 01 … … 12371 12355 mov bx, strict word 0000fh ; bb 0f 00 12372 12356 xor cx, cx ; 31 c9 12373 call 07b b6h ; e8 b2 f612357 call 07ba1h ; e8 b2 f6 12374 12358 cmp ax, strict word 00003h ; 3d 03 00 12375 jne near 087 f6h ; 0f 85 eb 0212359 jne near 087e1h ; 0f 85 eb 02 12376 12360 mov es, [bp-008h] ; 8e 46 f8 12377 12361 mov al, byte [es:si+001edh] ; 26 8a 84 ed 01 12378 12362 mov byte [bp-004h], al ; 88 46 fc 12379 12363 cmp AL, strict byte 004h ; 3c 04 12380 jnc near 087 f6h ; 0f 83 da 0212364 jnc near 087e1h ; 0f 83 da 02 12381 12365 mov dx, word [bp-016h] ; 8b 56 ea 12382 12366 add dx, 00118h ; 81 c2 18 01 … … 12385 12369 mov bx, strict word 00010h ; bb 10 00 12386 12370 xor cx, cx ; 31 c9 12387 call 07a fch ; e8 c9 f512371 call 07ae7h ; e8 c9 f5 12388 12372 mov ax, word [bp-016h] ; 8b 46 ea 12389 12373 add ax, 00124h ; 05 24 01 … … 12411 12395 add cl, 00ch ; 80 c1 0c 12412 12396 test dx, dx ; 85 d2 12413 jne near 087 48h ; 0f 85 d5 0112397 jne near 08733h ; 0f 85 d5 01 12414 12398 cmp bx, 00101h ; 81 fb 01 01 12415 jne near 087 48h ; 0f 85 cd 0112399 jne near 08733h ; 0f 85 cd 01 12416 12400 mov es, [bp-008h] ; 8e 46 f8 12417 12401 db 066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h … … 12425 12409 mov ax, si ; 89 f0 12426 12410 mov dx, word [bp-01ah] ; 8b 56 e6 12427 call 07c bfh ; e8 19 f712411 call 07caah ; e8 19 f7 12428 12412 mov byte [bp-006h], cl ; 88 4e fa 12429 12413 test byte [bp-00222h], 080h ; f6 86 de fd 80 … … 12441 12425 mov word [bp-00eh], dx ; 89 56 f2 12442 12426 cmp dx, 00fffh ; 81 fa ff 0f 12443 jne short 085 e9h ; 75 1012427 jne short 085d4h ; 75 10 12444 12428 cmp di, strict byte 0ffffh ; 83 ff ff 12445 jne short 085 e9h ; 75 0b12429 jne short 085d4h ; 75 0b 12446 12430 mov di, word [bp-0015ah] ; 8b be a6 fe 12447 12431 mov dx, word [bp-00158h] ; 8b 96 a8 fe … … 12472 12456 mov al, byte [bp-004h] ; 8a 46 fc 12473 12457 cmp AL, strict byte 001h ; 3c 01 12474 jc short 086 54h ; 72 0c12475 jbe short 086 5ch ; 76 1212458 jc short 0863fh ; 72 0c 12459 jbe short 08647h ; 76 12 12476 12460 cmp AL, strict byte 003h ; 3c 03 12477 je short 086 64h ; 74 1612461 je short 0864fh ; 74 16 12478 12462 cmp AL, strict byte 002h ; 3c 02 12479 je short 086 60h ; 74 0e12480 jmp short 086 adh ; eb 5912463 je short 0864bh ; 74 0e 12464 jmp short 08698h ; eb 59 12481 12465 test al, al ; 84 c0 12482 jne short 086 adh ; 75 5512466 jne short 08698h ; 75 55 12483 12467 mov DL, strict byte 040h ; b2 40 12484 jmp short 086 66h ; eb 0a12468 jmp short 08651h ; eb 0a 12485 12469 mov DL, strict byte 048h ; b2 48 12486 jmp short 086 66h ; eb 0612470 jmp short 08651h ; eb 06 12487 12471 mov DL, strict byte 050h ; b2 50 12488 jmp short 086 66h ; eb 0212472 jmp short 08651h ; eb 02 12489 12473 mov DL, strict byte 058h ; b2 58 12490 12474 mov al, dl ; 88 d0 … … 12492 12476 movzx bx, al ; 0f b6 d8 12493 12477 mov ax, bx ; 89 d8 12494 call 0165ch ; e8 ea8f12478 call 0165ch ; e8 ff 8f 12495 12479 test al, al ; 84 c0 12496 je short 086 adh ; 74 3712480 je short 08698h ; 74 37 12497 12481 mov al, dl ; 88 d0 12498 12482 db 0feh, 0c0h 12499 12483 ; inc al ; fe c0 12500 12484 xor ah, ah ; 30 e4 12501 call 0165ch ; e8 dd8f12485 call 0165ch ; e8 f2 8f 12502 12486 xor ah, ah ; 30 e4 12503 12487 mov cx, ax ; 89 c1 12504 12488 sal cx, 008h ; c1 e1 08 12505 12489 movzx ax, dl ; 0f b6 c2 12506 call 0165ch ; e8 d08f12490 call 0165ch ; e8 e5 8f 12507 12491 xor ah, ah ; 30 e4 12508 12492 add ax, cx ; 01 c8 … … 12511 12495 add AL, strict byte 002h ; 04 02 12512 12496 xor ah, ah ; 30 e4 12513 call 0165ch ; e8 c08f12497 call 0165ch ; e8 d5 8f 12514 12498 xor ah, ah ; 30 e4 12515 12499 mov word [bp-022h], ax ; 89 46 de 12516 12500 mov ax, bx ; 89 d8 12517 call 0165ch ; e8 b68f12501 call 0165ch ; e8 cb 8f 12518 12502 xor ah, ah ; 30 e4 12519 12503 mov word [bp-01eh], ax ; 89 46 e2 12520 jmp short 086 bah ; eb 0d12504 jmp short 086a5h ; eb 0d 12521 12505 mov bx, di ; 89 fb 12522 12506 mov cx, word [bp-00eh] ; 8b 4e f2 12523 12507 mov dx, ss ; 8c d2 12524 12508 lea ax, [bp-022h] ; 8d 46 de 12525 call 05 33dh ; e8 83 cc12526 mov bx, 00 cech ; bb ec 0c12509 call 052a4h ; e8 ff cb 12510 mov bx, 00d32h ; bb 32 0d 12527 12511 mov cx, ds ; 8c d9 12528 12512 mov ax, strict word 00004h ; b8 04 00 12529 call 018aeh ; e8 e99112513 call 018aeh ; e8 fe 91 12530 12514 push word [bp-00eh] ; ff 76 f2 12531 12515 push di ; 57 … … 12542 12526 movzx ax, byte [bp-004h] ; 0f b6 46 fc 12543 12527 push ax ; 50 12544 push 00c 24h ; 68 240c12528 push 00c6ah ; 68 6a 0c 12545 12529 push strict byte 00004h ; 6a 04 12546 call 018e9h ; e8 fb 9112530 call 018e9h ; e8 10 92 12547 12531 add sp, strict byte 00018h ; 83 c4 18 12548 12532 movzx di, byte [bp-006h] ; 0f b6 7e fa … … 12572 12556 mov dx, strict word 00075h ; ba 75 00 12573 12557 mov ax, strict word 00040h ; b8 40 00 12574 call 01600h ; e8 c98e12558 call 01600h ; e8 de 8e 12575 12559 db 0feh, 0c0h 12576 12560 ; inc al ; fe c0 … … 12578 12562 mov dx, strict word 00075h ; ba 75 00 12579 12563 mov ax, strict word 00040h ; b8 40 00 12580 call 0160eh ; e8 c98e12581 jmp near 087 e5h ; e9 9d 0012564 call 0160eh ; e8 de 8e 12565 jmp near 087d0h ; e9 9d 00 12582 12566 cmp dx, 0eb14h ; 81 fa 14 eb 12583 jne near 087 e5h ; 0f 85 95 0012567 jne near 087d0h ; 0f 85 95 00 12584 12568 cmp bx, 00101h ; 81 fb 01 01 12585 jne near 087 e5h ; 0f 85 8d 0012569 jne near 087d0h ; 0f 85 8d 00 12586 12570 mov es, [bp-008h] ; 8e 46 f8 12587 12571 db 066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h … … 12595 12579 mov ax, si ; 89 f0 12596 12580 mov dx, word [bp-01ah] ; 8b 56 e6 12597 call 07c bfh ; e8 3c f512581 call 07caah ; e8 3c f5 12598 12582 test byte [bp-00222h], 080h ; f6 86 de fd 80 12599 12583 db 00fh, 095h, 0c0h … … 12635 12619 pop cx ; 59 12636 12620 retn ; c3 12637 ahci_mem_alloc_: ; 0xf87 fbLB 0x4012621 ahci_mem_alloc_: ; 0xf87e6 LB 0x40 12638 12622 push bx ; 53 12639 12623 push cx ; 51 … … 12645 12629 mov dx, 00413h ; ba 13 04 12646 12630 xor ax, ax ; 31 c0 12647 call 0161ch ; e8 118e12631 call 0161ch ; e8 26 8e 12648 12632 test ax, ax ; 85 c0 12649 je short 088 34h ; 74 2512633 je short 0881fh ; 74 25 12650 12634 dec ax ; 48 12651 12635 mov bx, ax ; 89 c3 … … 12654 12638 sal ax, 1 ; d1 e0 12655 12639 rcl dx, 1 ; d1 d2 12656 loop 088 17h ; e2 fa12640 loop 08802h ; e2 fa 12657 12641 mov si, ax ; 89 c6 12658 12642 mov di, dx ; 89 d7 … … 12660 12644 shr di, 1 ; d1 ef 12661 12645 rcr si, 1 ; d1 de 12662 loop 088 24h ; e2 fa12646 loop 0880fh ; e2 fa 12663 12647 mov dx, 00413h ; ba 13 04 12664 12648 xor ax, ax ; 31 c0 12665 call 0162ah ; e8 f8 8d12649 call 0162ah ; e8 0d 8e 12666 12650 mov ax, si ; 89 f0 12667 12651 pop bp ; 5d … … 12672 12656 pop bx ; 5b 12673 12657 retn ; c3 12674 ahci_hba_init_: ; 0xf88 3bLB 0x12012658 ahci_hba_init_: ; 0xf8826 LB 0x120 12675 12659 push bx ; 53 12676 12660 push cx ; 51 … … 12682 12666 mov dx, strict word 0000eh ; ba 0e 00 12683 12667 mov ax, strict word 00040h ; b8 40 00 12684 call 0161ch ; e8 cd8d12668 call 0161ch ; e8 e2 8d 12685 12669 mov bx, 00122h ; bb 22 01 12686 12670 mov word [bp-006h], ax ; 89 46 fa … … 12699 12683 shr eax, 010h ; 66 c1 e8 10 12700 12684 xchg dx, ax ; 92 12701 call 087 fbh ; e8 87 ff12685 call 087e6h ; e8 87 ff 12702 12686 mov di, ax ; 89 c7 12703 12687 test ax, ax ; 85 c0 12704 je near 089 3dh ; 0f 84 c1 0012688 je near 08928h ; 0f 84 c1 00 12705 12689 mov es, [bp-006h] ; 8e 46 fa 12706 12690 mov word [es:bx+001eeh], di ; 26 89 bf ee 01 … … 12716 12700 mov dx, strict word 00004h ; ba 04 00 12717 12701 mov ax, si ; 89 f0 12718 call 07a fch ; e8 4c f212702 call 07ae7h ; e8 4c f2 12719 12703 mov ax, strict word 00004h ; b8 04 00 12720 12704 xor cx, cx ; 31 c9 … … 12733 12717 xchg dx, ax ; 92 12734 12718 test AL, strict byte 001h ; a8 01 12735 jne short 088 b0h ; 75 de12719 jne short 0889bh ; 75 de 12736 12720 xor ax, ax ; 31 c0 12737 12721 xor cx, cx ; 31 c9 … … 12751 12735 mov bx, strict word 0001fh ; bb 1f 00 12752 12736 xor cx, cx ; 31 c9 12753 call 07b b6h ; e8 c0 f212737 call 07ba1h ; e8 c0 f2 12754 12738 db 0feh, 0c0h 12755 12739 ; inc al ; fe c0 12756 12740 mov byte [bp-004h], al ; 88 46 fc 12757 12741 mov byte [bp-002h], 000h ; c6 46 fe 00 12758 jmp short 08 90ah ; eb 0912742 jmp short 088f5h ; eb 09 12759 12743 inc byte [bp-002h] ; fe 46 fe 12760 12744 cmp byte [bp-002h], 020h ; 80 7e fe 20 12761 jnc short 089 3bh ; 73 3112745 jnc short 08926h ; 73 31 12762 12746 movzx cx, byte [bp-002h] ; 0f b6 4e fe 12763 12747 mov ax, strict word 00001h ; b8 01 00 12764 12748 xor dx, dx ; 31 d2 12765 jcxz 089 1bh ; e3 0612749 jcxz 08906h ; e3 06 12766 12750 sal ax, 1 ; d1 e0 12767 12751 rcl dx, 1 ; d1 d2 12768 loop 089 15h ; e2 fa12752 loop 08900h ; e2 fa 12769 12753 mov bx, ax ; 89 c3 12770 12754 mov cx, dx ; 89 d1 12771 12755 mov dx, strict word 0000ch ; ba 0c 00 12772 12756 mov ax, si ; 89 f0 12773 call 07b 80h ; e8 59 f212757 call 07b6bh ; e8 59 f2 12774 12758 test al, al ; 84 c0 12775 je short 08 901h ; 74 d612759 je short 088ech ; 74 d6 12776 12760 movzx bx, byte [bp-002h] ; 0f b6 5e fe 12777 12761 xor ax, ax ; 31 c0 12778 12762 mov dx, di ; 89 fa 12779 call 084 30h ; e8 fa fa12763 call 0841bh ; e8 fa fa 12780 12764 dec byte [bp-004h] ; fe 4e fc 12781 jne short 08 901h ; 75 c612765 jne short 088ech ; 75 c6 12782 12766 xor ax, ax ; 31 c0 12783 12767 leave ; c9 … … 12788 12772 pop bx ; 5b 12789 12773 retn ; c3 12790 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 28h, 08ah, 006h, 08ah, 00ch, 08ah, 012h, 08ah, 018h12791 db 08ah, 0 1eh, 08ah, 024h, 08ah, 028h, 08ah12792 _ahci_init: ; 0xf89 5bLB 0xf912774 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 013h, 08ah, 0f1h, 089h, 0f7h, 089h, 0fdh, 089h, 003h 12775 db 08ah, 009h, 08ah, 00fh, 08ah, 013h, 08ah 12776 _ahci_init: ; 0xf8946 LB 0xf9 12793 12777 push si ; 56 12794 12778 push di ; 57 … … 12796 12780 mov ax, 00601h ; b8 01 06 12797 12781 mov dx, strict word 00001h ; ba 01 00 12798 call 08e 4dh ; e8 e3 0412782 call 08e38h ; e8 e3 04 12799 12783 mov dx, ax ; 89 c2 12800 12784 cmp ax, strict word 0ffffh ; 3d ff ff 12801 je near 08a 50h ; 0f 84 dd 0012785 je near 08a3bh ; 0f 84 dd 00 12802 12786 xor al, al ; 30 c0 12803 12787 shr ax, 008h ; c1 e8 08 … … 12807 12791 xor ah, ah ; 30 e4 12808 12792 mov bx, strict word 00034h ; bb 34 00 12809 call 08e 75h ; e8 ed 0412793 call 08e60h ; e8 ed 04 12810 12794 mov cl, al ; 88 c1 12811 12795 test cl, cl ; 84 c9 12812 je short 089 b1h ; 74 2312796 je short 0899ch ; 74 23 12813 12797 movzx bx, cl ; 0f b6 d9 12814 12798 movzx di, byte [bp-004h] ; 0f b6 7e fc … … 12816 12800 mov dx, di ; 89 fa 12817 12801 mov ax, si ; 89 f0 12818 call 08e 75h ; e8 d5 0412802 call 08e60h ; e8 d5 04 12819 12803 cmp AL, strict byte 012h ; 3c 12 12820 je short 089 b1h ; 74 0d12804 je short 0899ch ; 74 0d 12821 12805 mov al, cl ; 88 c8 12822 12806 db 0feh, 0c0h … … 12825 12809 mov dx, di ; 89 fa 12826 12810 mov ax, si ; 89 f0 12827 jmp short 089 85h ; eb d412811 jmp short 08970h ; eb d4 12828 12812 test cl, cl ; 84 c9 12829 je near 08a 50h ; 0f 84 99 0012813 je near 08a3bh ; 0f 84 99 00 12830 12814 add cl, 002h ; 80 c1 02 12831 12815 movzx bx, cl ; 0f b6 d9 … … 12834 12818 mov dx, di ; 89 fa 12835 12819 mov ax, si ; 89 f0 12836 call 08e 75h ; e8 a9 0412820 call 08e60h ; e8 a9 04 12837 12821 cmp AL, strict byte 010h ; 3c 10 12838 jne near 08a 50h ; 0f 85 7e 0012822 jne near 08a3bh ; 0f 85 7e 00 12839 12823 mov byte [bp-002h], 000h ; c6 46 fe 00 12840 12824 mov al, cl ; 88 c8 … … 12843 12827 mov dx, di ; 89 fa 12844 12828 mov ax, si ; 89 f0 12845 call 08e 96h ; e8 b2 0412829 call 08e81h ; e8 b2 04 12846 12830 mov dx, ax ; 89 c2 12847 12831 and ax, strict word 0000fh ; 25 0f 00 12848 12832 sub ax, strict word 00004h ; 2d 04 00 12849 12833 cmp ax, strict word 0000bh ; 3d 0b 00 12850 jnbe short 08a 28h ; 77 3712834 jnbe short 08a13h ; 77 37 12851 12835 push CS ; 0e 12852 12836 pop ES ; 07 12853 12837 mov cx, strict word 00008h ; b9 08 00 12854 mov di, 089 44h ; bf 448912838 mov di, 0892fh ; bf 2f 89 12855 12839 repne scasb ; f2 ae 12856 12840 sal cx, 1 ; d1 e1 12857 12841 mov di, cx ; 89 cf 12858 mov ax, word [cs:di-076 b5h] ; 2e 8b 85 4b8912842 mov ax, word [cs:di-076cah] ; 2e 8b 85 36 89 12859 12843 jmp ax ; ff e0 12860 12844 mov byte [bp-002h], 010h ; c6 46 fe 10 12861 jmp short 08a 28h ; eb 1c12845 jmp short 08a13h ; eb 1c 12862 12846 mov byte [bp-002h], 014h ; c6 46 fe 14 12863 jmp short 08a 28h ; eb 1612847 jmp short 08a13h ; eb 16 12864 12848 mov byte [bp-002h], 018h ; c6 46 fe 18 12865 jmp short 08a 28h ; eb 1012849 jmp short 08a13h ; eb 10 12866 12850 mov byte [bp-002h], 01ch ; c6 46 fe 1c 12867 jmp short 08a 28h ; eb 0a12851 jmp short 08a13h ; eb 0a 12868 12852 mov byte [bp-002h], 020h ; c6 46 fe 20 12869 jmp short 08a 28h ; eb 0412853 jmp short 08a13h ; eb 04 12870 12854 mov byte [bp-002h], 024h ; c6 46 fe 24 12871 12855 mov si, dx ; 89 d6 … … 12874 12858 mov al, byte [bp-002h] ; 8a 46 fe 12875 12859 test al, al ; 84 c0 12876 je short 08a 50h ; 74 1912860 je short 08a3bh ; 74 19 12877 12861 movzx bx, al ; 0f b6 d8 12878 12862 movzx dx, byte [bp-004h] ; 0f b6 56 fc 12879 12863 movzx ax, byte [bp-006h] ; 0f b6 46 fa 12880 call 08e b5h ; e8 70 0412864 call 08ea0h ; e8 70 04 12881 12865 test AL, strict byte 001h ; a8 01 12882 je short 08a 50h ; 74 0712866 je short 08a3bh ; 74 07 12883 12867 and AL, strict byte 0f0h ; 24 f0 12884 12868 add ax, si ; 01 f0 12885 call 088 3bh ; e8 eb fd12869 call 08826h ; e8 eb fd 12886 12870 leave ; c9 12887 12871 pop di ; 5f 12888 12872 pop si ; 5e 12889 12873 retn ; c3 12890 apm_out_str_: ; 0xf8a 54LB 0x3612874 apm_out_str_: ; 0xf8a3f LB 0x36 12891 12875 push bx ; 53 12892 12876 push bp ; 55 … … 12894 12878 mov bx, ax ; 89 c3 12895 12879 cmp byte [bx], 000h ; 80 3f 00 12896 je short 08a 69h ; 74 0a12880 je short 08a54h ; 74 0a 12897 12881 mov al, byte [bx] ; 8a 07 12898 12882 out DX, AL ; ee … … 12901 12885 db 00ah, 0c0h 12902 12886 ; or al, al ; 0a c0 12903 jne short 08a 61h ; 75 f812887 jne short 08a4ch ; 75 f8 12904 12888 pop bp ; 5d 12905 12889 pop bx ; 5b 12906 12890 retn ; c3 12907 lodsw ; ad 12908 mov bh, byte [si-075h] ; 8a 7c 8b 12909 mov di, 0da8ah ; bf 8a da 12910 mov bh, byte [si-075h] ; 8a 7c 8b 12911 add ax, 07c8bh ; 05 8b 7c 12912 mov cx, word [bp+si] ; 8b 0a 12913 mov dx, word [bx+di-075h] ; 8b 51 8b 12914 push cx ; 51 12915 mov dx, word [bx+di-075h] ; 8b 51 8b 12916 dec sp ; 4c 12917 mov dx, word [bx+di-075h] ; 8b 51 8b 12918 push cx ; 51 12919 mov ax, word [si-075h] ; 8b 44 8b 12920 _apm_function: ; 0xf8a8a LB 0xf5 12891 db 098h, 08ah, 067h, 08bh, 0aah, 08ah, 0c5h, 08ah, 067h, 08bh, 0f0h, 08ah, 067h, 08bh, 0f5h, 08ah 12892 db 03ch, 08bh, 03ch, 08bh, 03ch, 08bh, 037h, 08bh, 03ch, 08bh, 03ch, 08bh, 02fh, 08bh 12893 _apm_function: ; 0xf8a75 LB 0xf5 12921 12894 push si ; 56 12922 12895 push bp ; 55 … … 12926 12899 xor ah, ah ; 30 e4 12927 12900 cmp ax, strict word 0000eh ; 3d 0e 00 12928 jnbe near 08b 51h ; 0f 87 b3 0012901 jnbe near 08b3ch ; 0f 87 b3 00 12929 12902 mov bx, ax ; 89 c3 12930 12903 add bx, ax ; 01 c3 12931 12904 mov dx, word [bp+01ah] ; 8b 56 1a 12932 12905 or dl, 001h ; 80 ca 01 12933 jmp word [cs:bx-075 94h] ; 2e ff a7 6c8a12906 jmp word [cs:bx-075a9h] ; 2e ff a7 57 8a 12934 12907 mov word [bp+014h], 00102h ; c7 46 14 02 01 12935 12908 mov word [bp+00eh], 0504dh ; c7 46 0e 4d 50 … … 12939 12912 retn ; c3 12940 12913 mov word [bp+014h], 0f000h ; c7 46 14 00 f0 12941 mov word [bp+00eh], 090 a4h ; c7 46 0e a4 9012914 mov word [bp+00eh], 09094h ; c7 46 0e 94 90 12942 12915 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 12943 12916 mov ax, strict word 0fff0h ; b8 f0 ff … … 12968 12941 retn ; c3 12969 12942 cmp word [bp+012h], strict byte 00003h ; 83 7e 12 03 12970 je short 08b 30h ; 74 2012943 je short 08b1bh ; 74 20 12971 12944 cmp word [bp+012h], strict byte 00002h ; 83 7e 12 02 12972 je short 08b 28h ; 74 1212945 je short 08b13h ; 74 12 12973 12946 cmp word [bp+012h], strict byte 00001h ; 83 7e 12 01 12974 jne short 08b 38h ; 75 1c12947 jne short 08b23h ; 75 1c 12975 12948 mov dx, 08900h ; ba 00 89 12976 mov ax, 00c 5ch ; b8 5c0c12977 call 08a 54h ; e8 2f ff12949 mov ax, 00ca2h ; b8 a2 0c 12950 call 08a3fh ; e8 2f ff 12978 12951 pop bp ; 5d 12979 12952 pop si ; 5e 12980 12953 retn ; c3 12981 12954 mov dx, 08900h ; ba 00 89 12982 mov ax, 00c 64h ; b8 640c12983 jmp short 08b 22h ; eb f212955 mov ax, 00caah ; b8 aa 0c 12956 jmp short 08b0dh ; eb f2 12984 12957 mov dx, 08900h ; ba 00 89 12985 mov ax, 00c 6ch ; b8 6c0c12986 jmp short 08b 22h ; eb ea12958 mov ax, 00cb2h ; b8 b2 0c 12959 jmp short 08b0dh ; eb ea 12987 12960 or ah, 00ah ; 80 cc 0a 12988 12961 mov word [bp+014h], ax ; 89 46 14 … … 12996 12969 retn ; c3 12997 12970 or ah, 080h ; 80 cc 80 12998 jmp short 08b 3bh ; eb ea12999 mov bx, 00 cech ; bb ec 0c12971 jmp short 08b26h ; eb ea 12972 mov bx, 00d32h ; bb 32 0d 13000 12973 mov cx, ds ; 8c d9 13001 12974 mov ax, strict word 00004h ; b8 04 00 13002 call 018aeh ; e8 528d12975 call 018aeh ; e8 67 8d 13003 12976 push word [bp+00eh] ; ff 76 0e 13004 12977 push word [bp+014h] ; ff 76 14 13005 push 00c 75h ; 68 750c12978 push 00cbbh ; 68 bb 0c 13006 12979 push strict byte 00004h ; 6a 04 13007 call 018e9h ; e8 7f8d12980 call 018e9h ; e8 94 8d 13008 12981 add sp, strict byte 00008h ; 83 c4 08 13009 12982 mov ax, word [bp+014h] ; 8b 46 14 … … 13015 12988 pop si ; 5e 13016 12989 retn ; c3 13017 pci16_select_reg_: ; 0xf8b 7fLB 0x2112990 pci16_select_reg_: ; 0xf8b6a LB 0x21 13018 12991 push bx ; 53 13019 12992 push bp ; 55 … … 13031 13004 pop bx ; 5b 13032 13005 retn ; c3 13033 pci16_find_device_: ; 0xf8b a0LB 0xf213006 pci16_find_device_: ; 0xf8b8b LB 0xf2 13034 13007 push si ; 56 13035 13008 push di ; 57 … … 13043 13016 mov byte [bp-004h], 000h ; c6 46 fc 00 13044 13017 test bl, 007h ; f6 c3 07 13045 jne short 08b e6h ; 75 2d13018 jne short 08bd1h ; 75 2d 13046 13019 mov dx, strict word 0000eh ; ba 0e 00 13047 13020 mov ax, bx ; 89 d8 13048 call 08b 7fh ; e8 be ff13021 call 08b6ah ; e8 be ff 13049 13022 mov dx, 00cfeh ; ba fe 0c 13050 13023 in AL, DX ; ec … … 13053 13026 mov byte [bp-002h], al ; 88 46 fe 13054 13027 cmp AL, strict byte 0ffh ; 3c ff 13055 jne short 08b d4h ; 75 0613028 jne short 08bbfh ; 75 06 13056 13029 add bx, strict byte 00008h ; 83 c3 08 13057 jmp near 08c 67h ; e9 93 0013030 jmp near 08c52h ; e9 93 00 13058 13031 test byte [bp-002h], 080h ; f6 46 fe 80 13059 je short 08b e1h ; 74 0713032 je short 08bcch ; 74 07 13060 13033 mov word [bp-006h], strict word 00001h ; c7 46 fa 01 00 13061 jmp short 08b e6h ; eb 0513034 jmp short 08bd1h ; eb 05 13062 13035 mov word [bp-006h], strict word 00008h ; c7 46 fa 08 00 13063 13036 mov al, byte [bp-002h] ; 8a 46 fe 13064 13037 and AL, strict byte 007h ; 24 07 13065 13038 cmp AL, strict byte 001h ; 3c 01 13066 jne short 08 c0eh ; 75 1f13039 jne short 08bf9h ; 75 1f 13067 13040 mov ax, bx ; 89 d8 13068 13041 shr ax, 008h ; c1 e8 08 13069 13042 test ax, ax ; 85 c0 13070 jne short 08 c0eh ; 75 1613043 jne short 08bf9h ; 75 16 13071 13044 mov dx, strict word 0001ah ; ba 1a 00 13072 13045 mov ax, bx ; 89 d8 13073 call 08b 7fh ; e8 7f ff13046 call 08b6ah ; e8 7f ff 13074 13047 mov dx, 00cfeh ; ba fe 0c 13075 13048 in AL, DX ; ec … … 13077 13050 ; sub ah, ah ; 2a e4 13078 13051 cmp al, byte [bp-004h] ; 3a 46 fc 13079 jbe short 08 c0eh ; 76 0313052 jbe short 08bf9h ; 76 03 13080 13053 mov byte [bp-004h], al ; 88 46 fc 13081 13054 test di, di ; 85 ff 13082 je short 08c 17h ; 74 0513055 je short 08c02h ; 74 05 13083 13056 mov dx, strict word 00008h ; ba 08 00 13084 jmp short 08c 19h ; eb 0213057 jmp short 08c04h ; eb 02 13085 13058 xor dx, dx ; 31 d2 13086 13059 mov ax, bx ; 89 d8 13087 call 08b 7fh ; e8 61 ff13060 call 08b6ah ; e8 61 ff 13088 13061 mov dx, 00cfch ; ba fc 0c 13089 13062 in eax, DX ; 66 ed … … 13096 13069 mov word [bp-00ch], strict word 00000h ; c7 46 f4 00 00 13097 13070 test di, di ; 85 ff 13098 je short 08c 48h ; 74 0f13071 je short 08c33h ; 74 0f 13099 13072 mov cx, strict word 00008h ; b9 08 00 13100 13073 shr dx, 1 ; d1 ea 13101 13074 rcr ax, 1 ; d1 d8 13102 loop 08c 3ch ; e2 fa13075 loop 08c27h ; e2 fa 13103 13076 mov word [bp-00ah], ax ; 89 46 f6 13104 13077 mov word [bp-008h], dx ; 89 56 f8 13105 13078 mov ax, word [bp-008h] ; 8b 46 f8 13106 13079 cmp ax, word [bp-010h] ; 3b 46 f0 13107 jne short 08c 58h ; 75 0813080 jne short 08c43h ; 75 08 13108 13081 mov ax, word [bp-00ah] ; 8b 46 f6 13109 13082 cmp ax, word [bp-00eh] ; 3b 46 f2 13110 je short 08c 5eh ; 74 0613083 je short 08c49h ; 74 06 13111 13084 cmp word [bp-00ch], strict byte 00000h ; 83 7e f4 00 13112 je short 08c 64h ; 74 0613085 je short 08c4fh ; 74 06 13113 13086 dec si ; 4e 13114 13087 cmp si, strict byte 0ffffh ; 83 fe ff 13115 je short 08c 76h ; 74 1213088 je short 08c61h ; 74 12 13116 13089 add bx, word [bp-006h] ; 03 5e fa 13117 13090 mov dx, bx ; 89 da … … 13119 13092 movzx ax, byte [bp-004h] ; 0f b6 46 fc 13120 13093 cmp dx, ax ; 39 c2 13121 jbe near 08b b4h ; 0f 86 3e ff13094 jbe near 08b9fh ; 0f 86 3e ff 13122 13095 cmp si, strict byte 0ffffh ; 83 fe ff 13123 jne short 08c 7fh ; 75 0413096 jne short 08c6ah ; 75 04 13124 13097 mov ax, bx ; 89 d8 13125 jmp short 08c 82h ; eb 0313098 jmp short 08c6dh ; eb 03 13126 13099 mov ax, strict word 0ffffh ; b8 ff ff 13127 13100 leave ; c9 … … 13129 13102 pop si ; 5e 13130 13103 retn ; c3 13131 db 072h, 08dh, 08ch, 08dh, 09fh, 08dh, 0b4h, 08dh, 0c7h, 08dh, 0d9h, 08dh 13132 _pci16_function: ; 0xf8c92 LB 0x1bb 13104 pop bp ; 5d 13105 lea si, [bx-073h] ; 8d 77 8d 13106 mov cl, byte [di-07261h] ; 8a 8d 9f 8d 13107 mov DL, strict byte 08dh ; b2 8d 13108 db 0c4h 13109 db 08dh 13110 _pci16_function: ; 0xf8c7d LB 0x1bb 13133 13111 push si ; 56 13134 13112 push di ; 57 … … 13142 13120 xor ah, ah ; 30 e4 13143 13121 cmp bx, strict byte 00003h ; 83 fb 03 13144 jc short 08c c9h ; 72 1a13145 jbe short 08d 21h ; 76 7013122 jc short 08cb4h ; 72 1a 13123 jbe short 08d0ch ; 76 70 13146 13124 cmp bx, strict byte 0000eh ; 83 fb 0e 13147 je near 08d edh ; 0f 84 35 0113125 je near 08dd8h ; 0f 84 35 01 13148 13126 cmp bx, strict byte 00008h ; 83 fb 08 13149 jc near 08e 1ch ; 0f 82 5d 0113127 jc near 08e07h ; 0f 82 5d 01 13150 13128 cmp bx, strict byte 0000dh ; 83 fb 0d 13151 jbe near 08d 46h ; 0f 86 80 0013152 jmp near 08e 1ch ; e9 53 0113129 jbe near 08d31h ; 0f 86 80 00 13130 jmp near 08e07h ; e9 53 01 13153 13131 cmp bx, strict byte 00002h ; 83 fb 02 13154 je short 08c f1h ; 74 2313132 je short 08cdch ; 74 23 13155 13133 cmp bx, strict byte 00001h ; 83 fb 01 13156 jne near 08e 1ch ; 0f 85 47 0113134 jne near 08e07h ; 0f 85 47 01 13157 13135 mov word [bp+024h], strict word 00001h ; c7 46 24 01 00 13158 13136 mov word [bp+018h], 00210h ; c7 46 18 10 02 … … 13160 13138 mov word [bp+01ch], 04350h ; c7 46 1c 50 43 13161 13139 mov word [bp+01eh], 02049h ; c7 46 1e 49 20 13162 jmp near 08e 49h ; e9 58 0113140 jmp near 08e34h ; e9 58 01 13163 13141 cmp word [bp+01ch], strict byte 0ffffh ; 83 7e 1c ff 13164 jne short 08c fdh ; 75 0613142 jne short 08ce8h ; 75 06 13165 13143 or ah, 083h ; 80 cc 83 13166 jmp near 08e 42h ; e9 45 0113144 jmp near 08e2dh ; e9 45 01 13167 13145 mov bx, word [bp+00ch] ; 8b 5e 0c 13168 13146 mov dx, word [bp+020h] ; 8b 56 20 13169 13147 mov ax, word [bp+01ch] ; 8b 46 1c 13170 13148 xor cx, cx ; 31 c9 13171 call 08b a0h ; e8 95 fe13149 call 08b8bh ; e8 95 fe 13172 13150 cmp ax, strict word 0ffffh ; 3d ff ff 13173 jne short 08d 1bh ; 75 0b13151 jne short 08d06h ; 75 0b 13174 13152 mov ax, word [bp+024h] ; 8b 46 24 13175 13153 xor ah, ah ; 30 e4 13176 13154 or ah, 086h ; 80 cc 86 13177 jmp near 08e 42h ; e9 27 0113155 jmp near 08e2dh ; e9 27 01 13178 13156 mov word [bp+018h], ax ; 89 46 18 13179 jmp near 08e 49h ; e9 28 0113157 jmp near 08e34h ; e9 28 01 13180 13158 mov bx, word [bp+00ch] ; 8b 5e 0c 13181 13159 mov ax, word [bp+020h] ; 8b 46 20 13182 13160 mov dx, word [bp+022h] ; 8b 56 22 13183 13161 mov cx, strict word 00001h ; b9 01 00 13184 call 08b a0h ; e8 70 fe13162 call 08b8bh ; e8 70 fe 13185 13163 cmp ax, strict word 0ffffh ; 3d ff ff 13186 jne short 08d 40h ; 75 0b13164 jne short 08d2bh ; 75 0b 13187 13165 mov ax, word [bp+024h] ; 8b 46 24 13188 13166 xor ah, ah ; 30 e4 13189 13167 or ah, 086h ; 80 cc 86 13190 jmp near 08e 42h ; e9 02 0113168 jmp near 08e2dh ; e9 02 01 13191 13169 mov word [bp+018h], ax ; 89 46 18 13192 jmp near 08e 49h ; e9 03 0113170 jmp near 08e34h ; e9 03 01 13193 13171 cmp word [bp+008h], 00100h ; 81 7e 08 00 01 13194 jc short 08d 53h ; 72 0613172 jc short 08d3eh ; 72 06 13195 13173 or ah, 087h ; 80 cc 87 13196 jmp near 08e 42h ; e9 ef 0013174 jmp near 08e2dh ; e9 ef 00 13197 13175 mov dx, word [bp+008h] ; 8b 56 08 13198 13176 mov ax, word [bp+018h] ; 8b 46 18 13199 call 08b 7fh ; e8 23 fe13177 call 08b6ah ; e8 23 fe 13200 13178 mov bx, word [bp+024h] ; 8b 5e 24 13201 13179 xor bh, bh ; 30 ff 13202 13180 sub bx, strict byte 00008h ; 83 eb 08 13203 13181 cmp bx, strict byte 00005h ; 83 fb 05 13204 jnbe near 08e 49h ; 0f 87 de 0013182 jnbe near 08e34h ; 0f 87 de 00 13205 13183 add bx, bx ; 01 db 13206 jmp word [cs:bx-073 7ah] ; 2e ff a7 868c13184 jmp word [cs:bx-0738fh] ; 2e ff a7 71 8c 13207 13185 mov bx, word [bp+020h] ; 8b 5e 20 13208 13186 xor bl, bl ; 30 db … … 13215 13193 or bx, ax ; 09 c3 13216 13194 mov word [bp+020h], bx ; 89 5e 20 13217 jmp near 08e 49h ; e9 bd 0013195 jmp near 08e34h ; e9 bd 00 13218 13196 mov dx, word [bp+008h] ; 8b 56 08 13219 13197 xor dh, dh ; 30 f6 … … 13222 13200 in ax, DX ; ed 13223 13201 mov word [bp+020h], ax ; 89 46 20 13224 jmp near 08e 49h ; e9 aa 0013202 jmp near 08e34h ; e9 aa 00 13225 13203 mov dx, 00cfch ; ba fc 0c 13226 13204 in eax, DX ; 66 ed … … 13231 13209 mov word [bp+020h], ax ; 89 46 20 13232 13210 mov word [bp+022h], dx ; 89 56 22 13233 jmp near 08e 49h ; e9 95 0013211 jmp near 08e34h ; e9 95 00 13234 13212 mov ax, word [bp+020h] ; 8b 46 20 13235 13213 mov dx, word [bp+008h] ; 8b 56 08 … … 13238 13216 add dx, 00cfch ; 81 c2 fc 0c 13239 13217 out DX, AL ; ee 13240 jmp near 08e 49h ; e9 82 0013218 jmp near 08e34h ; e9 82 00 13241 13219 mov ax, word [bp+020h] ; 8b 46 20 13242 13220 mov dx, word [bp+008h] ; 8b 56 08 … … 13245 13223 add dx, 00cfch ; 81 c2 fc 0c 13246 13224 out DX, ax ; ef 13247 jmp short 08e 49h ; eb 7013225 jmp short 08e34h ; eb 70 13248 13226 mov ax, word [bp+020h] ; 8b 46 20 13249 13227 mov cx, word [bp+022h] ; 8b 4e 22 … … 13254 13232 ; mov ax, cx ; 8b c1 13255 13233 out DX, eax ; 66 ef 13256 jmp short 08e 49h ; eb 5c13234 jmp short 08e34h ; eb 5c 13257 13235 mov bx, word [bp+008h] ; 8b 5e 08 13258 13236 mov es, [bp+028h] ; 8e 46 28 13259 13237 mov cx, word [word 00000h] ; 8b 0e 00 00 13260 13238 cmp cx, word [es:bx] ; 26 3b 0f 13261 jbe short 08 e06h ; 76 0a13239 jbe short 08df1h ; 76 0a 13262 13240 mov ax, word [bp+024h] ; 8b 46 24 13263 13241 xor ah, ah ; 30 e4 13264 13242 or ah, 089h ; 80 cc 89 13265 jmp short 08e 42h ; eb 3c13243 jmp short 08e2dh ; eb 3c 13266 13244 les di, [es:bx+002h] ; 26 c4 7f 02 13267 13245 mov si, 0f2c0h ; be c0 f2 … … 13272 13250 pop DS ; 1f 13273 13251 mov word [bp+018h], 00a00h ; c7 46 18 00 0a 13274 jmp short 08e 49h ; eb 2d13275 mov bx, 00 cech ; bb ec 0c13252 jmp short 08e34h ; eb 2d 13253 mov bx, 00d32h ; bb 32 0d 13276 13254 mov cx, ds ; 8c d9 13277 13255 mov ax, strict word 00004h ; b8 04 00 13278 call 018aeh ; e8 878a13256 call 018aeh ; e8 9c 8a 13279 13257 mov ax, word [bp+018h] ; 8b 46 18 13280 13258 push ax ; 50 13281 13259 mov ax, word [bp+024h] ; 8b 46 24 13282 13260 push ax ; 50 13283 push 00c a8h ; 68 a80c13261 push 00ceeh ; 68 ee 0c 13284 13262 push strict byte 00004h ; 6a 04 13285 call 018e9h ; e8 b28a13263 call 018e9h ; e8 c7 8a 13286 13264 add sp, strict byte 00008h ; 83 c4 08 13287 13265 mov ax, word [bp+024h] ; 8b 46 24 … … 13294 13272 pop si ; 5e 13295 13273 retn ; c3 13296 pci_find_classcode_: ; 0xf8e 4dLB 0x2813274 pci_find_classcode_: ; 0xf8e38 LB 0x28 13297 13275 push bx ; 53 13298 13276 push cx ; 51 … … 13309 13287 int 01ah ; cd 1a 13310 13288 cmp ah, 000h ; 80 fc 00 13311 je near 08e 6eh ; 0f 84 03 0013289 je near 08e59h ; 0f 84 03 00 13312 13290 mov bx, strict word 0ffffh ; bb ff ff 13313 13291 mov ax, bx ; 89 d8 … … 13317 13295 pop bx ; 5b 13318 13296 retn ; c3 13319 pci_read_config_byte_: ; 0xf8e 75LB 0x2113297 pci_read_config_byte_: ; 0xf8e60 LB 0x21 13320 13298 push cx ; 51 13321 13299 push di ; 57 … … 13335 13313 pop cx ; 59 13336 13314 retn ; c3 13337 pci_read_config_word_: ; 0xf8e 96LB 0x1f13315 pci_read_config_word_: ; 0xf8e81 LB 0x1f 13338 13316 push cx ; 51 13339 13317 push di ; 57 … … 13353 13331 pop cx ; 59 13354 13332 retn ; c3 13355 pci_read_config_dword_: ; 0xf8e b5LB 0x2413333 pci_read_config_dword_: ; 0xf8ea0 LB 0x24 13356 13334 push cx ; 51 13357 13335 push di ; 57 … … 13373 13351 pop cx ; 59 13374 13352 retn ; c3 13375 vds_is_present_: ; 0xf8e d9LB 0x1d13353 vds_is_present_: ; 0xf8ec4 LB 0x1d 13376 13354 push bx ; 53 13377 13355 push bp ; 55 … … 13381 13359 mov es, ax ; 8e c0 13382 13360 test byte [es:bx], 020h ; 26 f6 07 20 13383 je short 08e f1h ; 74 0613361 je short 08edch ; 74 06 13384 13362 mov ax, strict word 00001h ; b8 01 00 13385 13363 pop bp ; 5d … … 13390 13368 pop bx ; 5b 13391 13369 retn ; c3 13392 vds_real_to_lin_: ; 0xf8e f6LB 0x1e13370 vds_real_to_lin_: ; 0xf8ee1 LB 0x1e 13393 13371 push bx ; 53 13394 13372 push cx ; 51 … … 13401 13379 sal ax, 1 ; d1 e0 13402 13380 rcl dx, 1 ; d1 d2 13403 loop 08 f04h ; e2 fa13381 loop 08eefh ; e2 fa 13404 13382 xor cx, cx ; 31 c9 13405 13383 add ax, bx ; 01 d8 … … 13409 13387 pop bx ; 5b 13410 13388 retn ; c3 13411 vds_build_sg_list_: ; 0xf8 f14LB 0x7613389 vds_build_sg_list_: ; 0xf8eff LB 0x76 13412 13390 push si ; 56 13413 13391 push di ; 57 … … 13423 13401 mov bx, word [bp+00ah] ; 8b 5e 0a 13424 13402 mov word [es:di+002h], bx ; 26 89 5d 02 13425 call 08e f6h ; e8 c3 ff13403 call 08ee1h ; e8 c3 ff 13426 13404 mov es, si ; 8e c6 13427 13405 mov word [es:di+004h], ax ; 26 89 45 04 13428 13406 mov word [es:di+006h], dx ; 26 89 55 06 13429 13407 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 13430 call 08e d9h ; e8 93 ff13408 call 08ec4h ; e8 93 ff 13431 13409 test ax, ax ; 85 c0 13432 je short 08f 5dh ; 74 1313410 je short 08f48h ; 74 13 13433 13411 mov es, si ; 8e c6 13434 13412 mov ax, 08105h ; b8 05 81 13435 13413 mov dx, strict word 00000h ; ba 00 00 13436 13414 int 04bh ; cd 4b 13437 jc near 08f 5ah ; 0f 82 02 0013415 jc near 08f45h ; 0f 82 02 00 13438 13416 db 032h, 0c0h 13439 13417 ; xor al, al ; 32 c0 13440 13418 cbw ; 98 13441 jmp short 08f 84h ; eb 2713419 jmp short 08f6fh ; eb 27 13442 13420 mov es, si ; 8e c6 13443 13421 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 13455 13433 pop si ; 5e 13456 13434 retn 00004h ; c2 04 00 13457 vds_free_sg_list_: ; 0xf8f 8a LB 0x3613435 vds_free_sg_list_: ; 0xf8f75 LB 0x3b 13458 13436 push bx ; 53 13459 13437 push di ; 57 … … 13461 13439 mov bp, sp ; 89 e5 13462 13440 mov bx, ax ; 89 c3 13463 call 08e d9h ; e8 45 ff13441 call 08ec4h ; e8 45 ff 13464 13442 test ax, ax ; 85 c0 13465 je short 08f abh ; 74 1313443 je short 08f96h ; 74 13 13466 13444 mov di, bx ; 89 df 13467 13445 mov es, dx ; 8e c2 … … 13469 13447 mov dx, strict word 00000h ; ba 00 00 13470 13448 int 04bh ; cd 4b 13471 jc near 08f aah ; 0f 82 02 0013449 jc near 08f95h ; 0f 82 02 00 13472 13450 db 032h, 0c0h 13473 13451 ; xor al, al ; 32 c0 … … 13479 13457 pop bx ; 5b 13480 13458 retn ; c3 13481 times 0x 9db 013482 __U4D: ; 0xf8f c0 LB 0x3913459 times 0xe db 0 13460 __U4D: ; 0xf8fb0 LB 0x39 13483 13461 pushfw ; 9c 13484 13462 push eax ; 66 50 … … 13510 13488 popfw ; 9d 13511 13489 retn ; c3 13512 __U4M: ; 0xf8f f9 LB 0x3113490 __U4M: ; 0xf8fe9 LB 0x31 13513 13491 pushfw ; 9c 13514 13492 push eax ; 66 50 … … 13535 13513 popfw ; 9d 13536 13514 retn ; c3 13537 _fmemset_: ; 0xf90 2a LB 0xd13515 _fmemset_: ; 0xf901a LB 0xd 13538 13516 push di ; 57 13539 13517 mov es, dx ; 8e c2 … … 13545 13523 pop di ; 5f 13546 13524 retn ; c3 13547 _fmemcpy_: ; 0xf90 37 LB 0x3313525 _fmemcpy_: ; 0xf9027 LB 0x33 13548 13526 push bp ; 55 13549 13527 db 08bh, 0ech … … 13565 13543 leave ; c9 13566 13544 retn ; c3 13567 add byte [bx+si-07d70h], al ; 00 80 90 82 13545 add byte [bx+si-070h], dh ; 00 70 90 13546 jc short 08fd4h ; 72 90 13547 jbe short 08fd6h ; 76 90 13548 jbe short 08fd8h ; 76 90 13549 jbe short 08fdah ; 76 90 13550 js short 08fdch ; 78 90 13551 js short 08fdeh ; 78 90 13552 jp short 08fe0h ; 7a 90 13553 jle short 08fe2h ; 7e 90 13554 jle short 08fe4h ; 7e 90 13555 adc byte [bx+si-06f7bh], 087h ; 80 90 85 90 87 13568 13556 nop ; 90 13569 xchg byte [bx+si-06f7ah], dl ; 86 90 86 90 13570 xchg byte [bx+si-06f78h], dl ; 86 90 88 90 13571 mov byte [bx+si-06f76h], dl ; 88 90 8a 90 13572 mov ss, [bx+si-06f72h] ; 8e 90 8e 90 13573 nop ; 90 13574 nop ; 90 13575 xchg bp, ax ; 95 13576 nop ; 90 13577 xchg di, ax ; 97 13578 nop ; 90 13579 apm_worker: ; 0xf906a LB 0x3a 13557 apm_worker: ; 0xf905a LB 0x3a 13580 13558 sti ; fb 13581 13559 push ax ; 50 … … 13589 13567 pop ax ; 58 13590 13568 mov AH, strict byte 053h ; b4 53 13591 jnc short 090 a0h ; 73 2513592 jmp word [cs:bp-06f b0h] ; 2e ff a6 50 9013593 jmp short 090 9eh ; eb 1c13569 jnc short 09090h ; 73 25 13570 jmp word [cs:bp-06fc0h] ; 2e ff a6 40 90 13571 jmp short 0908eh ; eb 1c 13594 13572 sti ; fb 13595 13573 hlt ; f4 13596 jmp short 090 9eh ; eb 1813597 jmp short 090 9eh ; eb 1613598 jmp short 090 a0h ; eb 1613574 jmp short 0908eh ; eb 18 13575 jmp short 0908eh ; eb 16 13576 jmp short 09090h ; eb 16 13599 13577 mov AH, strict byte 080h ; b4 80 13600 jmp short 090 a2h ; eb 1413601 jmp short 090 a0h ; eb 1013578 jmp short 09092h ; eb 14 13579 jmp short 09090h ; eb 10 13602 13580 mov ax, 00102h ; b8 02 01 13603 jmp short 090 9eh ; eb 0913604 jmp short 090 9eh ; eb 0713581 jmp short 0908eh ; eb 09 13582 jmp short 0908eh ; eb 07 13605 13583 mov BL, strict byte 000h ; b3 00 13606 13584 mov cx, strict word 00000h ; b9 00 00 13607 jmp short 090 9eh ; eb 0013585 jmp short 0908eh ; eb 00 13608 13586 clc ; f8 13609 13587 retn ; c3 … … 13611 13589 stc ; f9 13612 13590 retn ; c3 13613 apm_pm16_entry: ; 0xf90 a4 LB 0x1113591 apm_pm16_entry: ; 0xf9094 LB 0x11 13614 13592 mov AH, strict byte 002h ; b4 02 13615 13593 push DS ; 1e … … 13619 13597 add bp, strict byte 00008h ; 83 c5 08 13620 13598 mov ds, bp ; 8e dd 13621 call 090 6ah ; e8 b8 ff13599 call 0905ah ; e8 b8 ff 13622 13600 pop bp ; 5d 13623 13601 pop DS ; 1f 13624 13602 retf ; cb 13625 13603 13626 ; Padding 0x49 4b bytes at 0xf90b513627 times 187 63db 013604 ; Padding 0x495b bytes at 0xf90a5 13605 times 18779 db 0 13628 13606 13629 13607 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3aa class=CODE group=AUTO … … 13672 13650 add bp, strict byte 00008h ; 83 c5 08 13673 13651 push ebp ; 66 55 13674 mov bp, 090 a6h ; bd a6 9013652 mov bp, 09096h ; bd 96 90 13675 13653 add byte [bx+si], al ; 00 00 13676 13654 push ebp ; 66 55 … … 14099 14077 mov AL, strict byte 020h ; b0 20 14100 14078 out strict byte 0a0h, AL ; e6 a0 14101 eoi_master_pic: ; 0xfe03f LB 0x 1c14079 eoi_master_pic: ; 0xfe03f LB 0x5 14102 14080 mov AL, strict byte 020h ; b0 20 14103 14081 out strict byte 020h, AL ; e6 20 14104 14082 retn ; c3 14105 times 0x15 db 0 14083 set_int_vects: ; 0xfe044 LB 0x17 14084 mov word [bx], ax ; 89 07 14085 mov word [bx+002h], dx ; 89 57 02 14086 add bx, strict byte 00004h ; 83 c3 04 14087 loop 0e044h ; e2 f6 14088 retn ; c3 14089 times 0xa db 0 14106 14090 db 'XM' 14107 post: ; 0xfe05b LB 0x32 14091 post: ; 0xfe05b LB 0x3f 14092 cli ; fa 14093 smsw ax ; 0f 01 e0 14094 test ax, strict word 00001h ; a9 01 00 14095 je short 0e068h ; 74 04 14096 out strict byte 092h, AL ; e6 92 14097 jmp short 0e066h ; eb fe 14108 14098 db 033h, 0c0h 14109 14099 ; xor ax, ax ; 33 c0 … … 14126 14116 ; mov al, bl ; 8a c3 14127 14117 cmp AL, strict byte 000h ; 3c 00 14128 je short 0e09 8h ; 74 1914118 je short 0e09ah ; 74 0e 14129 14119 cmp AL, strict byte 00dh ; 3c 0d 14130 jnc short 0e09 8h ; 73 1514120 jnc short 0e09ah ; 73 0a 14131 14121 cmp AL, strict byte 009h ; 3c 09 14132 je short 0e09 8h ; 74 1114122 je short 0e09ah ; 74 06 14133 14123 cmp AL, strict byte 005h ; 3c 05 14134 je short 0e030h ; 74 a5 14135 jmp short 0e098h ; eb 0b 14136 set_int_vects: ; 0xfe08d LB 0xb 14137 mov word [bx], ax ; 89 07 14138 mov word [bx+002h], dx ; 89 57 02 14139 add bx, strict byte 00004h ; 83 c3 04 14140 loop 0e08dh ; e2 f6 14141 retn ; c3 14142 normal_post: ; 0xfe098 LB 0x22b 14143 cli ; fa 14124 je short 0e030h ; 74 98 14125 jmp short 0e09ah ; eb 00 14126 normal_post: ; 0xfe09a LB 0x229 14144 14127 mov ax, 07800h ; b8 00 78 14145 14128 db 08bh, 0e0h … … 14163 14146 add bx, 01000h ; 81 c3 00 10 14164 14147 cmp bx, 09000h ; 81 fb 00 90 14165 jnc short 0e0c ch ; 73 0b14148 jnc short 0e0cdh ; 73 0b 14166 14149 mov es, bx ; 8e c3 14167 14150 db 033h, 0ffh … … 14169 14152 mov cx, 08000h ; b9 00 80 14170 14153 rep stosw ; f3 ab 14171 jmp short 0e0b 7h ; eb eb14154 jmp short 0e0b8h ; eb eb 14172 14155 mov es, bx ; 8e c3 14173 14156 db 033h, 0ffh … … 14180 14163 pop DS ; 1f 14181 14164 cld ; fc 14182 call 01707h ; e8 2 a3614183 call 0e8e0h ; e8 00 0814165 call 01707h ; e8 29 36 14166 call 0e8e0h ; e8 ff 07 14184 14167 db 033h, 0dbh 14185 14168 ; xor bx, bx ; 33 db … … 14188 14171 mov ax, 0ff53h ; b8 53 ff 14189 14172 mov dx, 0f000h ; ba 00 f0 14190 call 0e0 8dh ; e8 9dff14173 call 0e044h ; e8 53 ff 14191 14174 mov bx, 001a0h ; bb a0 01 14192 14175 mov cx, strict word 00010h ; b9 10 00 14193 call 0e0 8dh ; e8 94ff14176 call 0e044h ; e8 4a ff 14194 14177 mov ax, 0027fh ; b8 7f 02 14195 14178 mov word [00413h], ax ; a3 13 04 … … 14206 14189 mov ax, 0f000h ; b8 00 f0 14207 14190 mov word [00056h], ax ; a3 56 00 14208 mov ax, 0efd 2h ; b8 d2ef14191 mov ax, 0efd4h ; b8 d4 ef 14209 14192 mov word [0005ch], ax ; a3 5c 00 14210 14193 mov ax, 0f000h ; b8 00 f0 … … 14218 14201 mov ax, 0f000h ; b8 00 f0 14219 14202 mov word [00066h], ax ; a3 66 00 14220 mov ax, 0efe bh ; b8 ebef14203 mov ax, 0efedh ; b8 ed ef 14221 14204 mov word [00070h], ax ; a3 70 00 14222 14205 mov ax, 0f000h ; b8 00 f0 14223 14206 mov word [00072h], ax ; a3 72 00 14224 call 0e7c0h ; e8 6 a0614207 call 0e7c0h ; e8 69 06 14225 14208 mov ax, 0fea5h ; b8 a5 fe 14226 14209 mov word [00020h], ax ; a3 20 00 … … 14260 14243 pop DS ; 1f 14261 14244 cld ; fc 14262 call 04 969h ; e8 b06714245 call 048d0h ; e8 16 67 14263 14246 pop DS ; 1f 14264 14247 mov AL, strict byte 014h ; b0 14 … … 14277 14260 mov CL, strict byte 014h ; b1 14 14278 14261 mov dx, 00378h ; ba 78 03 14279 call 0ecedh ; e8 100b14262 call 0ecedh ; e8 0f 0b 14280 14263 mov dx, 00278h ; ba 78 02 14281 call 0ecedh ; e8 0 a0b14264 call 0ecedh ; e8 09 0b 14282 14265 sal bx, 00eh ; c1 e3 0e 14283 14266 mov ax, word [00410h] ; a1 10 04 … … 14302 14285 mov CL, strict byte 00ah ; b1 0a 14303 14286 mov dx, 003f8h ; ba f8 03 14304 call 0ed0bh ; e8 e c0a14287 call 0ed0bh ; e8 eb 0a 14305 14288 mov dx, 002f8h ; ba f8 02 14306 call 0ed0bh ; e8 e 60a14289 call 0ed0bh ; e8 e5 0a 14307 14290 mov dx, 003e8h ; ba e8 03 14308 call 0ed0bh ; e8 e00a14291 call 0ed0bh ; e8 df 0a 14309 14292 mov dx, 002e8h ; ba e8 02 14310 call 0ed0bh ; e8 d a0a14293 call 0ed0bh ; e8 d9 0a 14311 14294 sal bx, 009h ; c1 e3 09 14312 14295 mov ax, word [00410h] ; a1 10 04 … … 14327 14310 mov ax, 0f000h ; b8 00 f0 14328 14311 mov word [001c2h], ax ; a3 c2 01 14329 call 0edbfh ; e8 5 90b14312 call 0edbfh ; e8 58 0b 14330 14313 mov ax, 0f8a4h ; b8 a4 f8 14331 14314 mov word [001d0h], ax ; a3 d0 01 … … 14340 14323 mov ax, 0f000h ; b8 00 f0 14341 14324 mov word [00042h], ax ; a3 42 00 14342 call 0e79bh ; e8 0 e0514343 call 0f13ch ; e8 a c0e14344 call 0f1c1h ; e8 2 e0f14345 call 0e758h ; e8 c 20414325 call 0e79bh ; e8 0d 05 14326 call 0f13ch ; e8 ab 0e 14327 call 0f1c1h ; e8 2d 0f 14328 call 0e758h ; e8 c1 04 14346 14329 push CS ; 0e 14347 14330 pop DS ; 1f 14348 14331 cld ; fc 14349 call 01b25h ; e8 8 93814350 call 01f13h ; e8 7 43c14351 call 089 5bh ; e8 b9a614352 call 07a 70h ; e8 cb9714353 call 0ed2fh ; e8 8 70a14354 call 0e2d2h ; e8 2 70014332 call 01b25h ; e8 88 38 14333 call 01f13h ; e8 73 3c 14334 call 08946h ; e8 a3 a6 14335 call 07a5bh ; e8 b5 97 14336 call 0ed2fh ; e8 86 0a 14337 call 0e2d2h ; e8 26 00 14355 14338 push CS ; 0e 14356 14339 pop DS ; 1f 14357 14340 cld ; fc 14358 call 01725h ; e8 7 43414359 call 035 6dh ; e8 b9 5214341 call 01725h ; e8 73 34 14342 call 035e0h ; e8 2b 53 14360 14343 sti ; fb 14361 14344 int 019h ; cd 19 14362 14345 sti ; fb 14363 14346 hlt ; f4 14364 jmp short 0e2b 8h ; eb fd14347 jmp short 0e2b9h ; eb fd 14365 14348 cli ; fa 14366 14349 hlt ; f4 14367 14350 add byte [bx+si], al ; 00 00 14368 add byte [bx+si], al ; 00 00 14369 pop ax ; 58 14370 dec bp ; 4d 14351 add byte [bx+si+04dh], bl ; 00 58 4d 14371 14352 nmi: ; 0xfe2c3 LB 0x7 14372 14353 push CS ; 0e … … 14381 14362 iret ; cf 14382 14363 hard_drive_post: ; 0xfe2d2 LB 0x12c 14383 mov AL, strict byte 00ah ; b0 0a14384 mov dx, 003f6h ; ba f6 0314385 out DX, AL ; ee14386 14364 db 033h, 0c0h 14387 14365 ; xor ax, ax ; 33 c0 … … 14411 14389 mov word [0011ah], ax ; a3 1a 01 14412 14390 retn ; c3 14413 times 0x dbdb 014391 times 0xe1 db 0 14414 14392 db 'XM' 14415 14393 int13_handler: ; 0xfe3fe LB 0x3 … … 14482 14460 pop DS ; 1f 14483 14461 cld ; fc 14484 call 05c dfh ; e8 9d7514462 call 05c46h ; e8 04 75 14485 14463 popaw ; 61 14486 14464 pop ES ; 07 … … 14598 14576 pop DS ; 1f 14599 14577 cld ; fc 14600 call 0 505bh ; e8 19 6814578 call 04fc2h ; e8 80 67 14601 14579 popaw ; 61 14602 14580 pop DS ; 1f … … 14615 14593 pop DS ; 1f 14616 14594 cld ; fc 14617 call 0 505bh ; e8 fb6714595 call 04fc2h ; e8 62 67 14618 14596 popaw ; 61 14619 14597 pop DS ; 1f … … 14714 14692 pop DS ; 1f 14715 14693 cld ; fc 14716 call 04 c73h ; e8 a46214694 call 04bdah ; e8 0b 62 14717 14695 pop ES ; 07 14718 14696 popaw ; 61 … … 14740 14718 cld ; fc 14741 14719 push 0ece9h ; 68 e9 ec 14742 jmp near 03 5abh ; e9 3a4914720 jmp near 0361eh ; e9 ad 49 14743 14721 push ES ; 06 14744 14722 push ax ; 50 … … 14746 14724 push cx ; 51 14747 14725 push dx ; 52 14748 call 035 83h ; e8 0a4914726 call 035f6h ; e8 7d 49 14749 14727 cmp AL, strict byte 000h ; 3c 00 14750 14728 je short 0ecabh ; 74 2e 14751 call 03 597h ; e8 174914729 call 0360ah ; e8 8a 49 14752 14730 pop dx ; 5a 14753 14731 push dx ; 52 … … 14767 14745 cld ; fc 14768 14746 push 0ece9h ; 68 e9 ec 14769 jmp near 03 c06h ; e9 6f 4f14747 jmp near 03be6h ; e9 4f 4f 14770 14748 and dl, 0e0h ; 80 e2 e0 14771 14749 db 03ah, 0c2h … … 14807 14785 jne short 0ecc8h ; 75 06 14808 14786 push 0ece9h ; 68 e9 ec 14809 jmp near 02 dd4h ; e9 0c4114787 jmp near 02e51h ; e9 89 41 14810 14788 int13_notfloppy: ; 0xfecc8 LB 0x14 14811 14789 cmp dl, 0e0h ; 80 fa e0 … … 14813 14791 shr ebx, 010h ; 66 c1 eb 10 14814 14792 push bx ; 53 14815 call 040 53h ; e8 7e5314793 call 04015h ; e8 40 53 14816 14794 pop bx ; 5b 14817 14795 sal ebx, 010h ; 66 c1 e3 10 … … 14820 14798 cmp ah, 040h ; 80 fc 40 14821 14799 jnbe short 0ece6h ; 77 05 14822 call 053 dbh ; e8 f76614800 call 05342h ; e8 5e 66 14823 14801 jmp short 0ece9h ; eb 03 14824 call 05 817h ; e8 2e 6b14802 call 0577eh ; e8 95 6a 14825 14803 int13_out: ; 0xfece9 LB 0x4 14826 14804 pop DS ; 1f … … 15018 14996 times 0x33 db 0 15019 14997 db 'XM' 15020 _diskette_param_table: ; 0xfefc7 LB 0x b14998 _diskette_param_table: ; 0xfefc7 LB 0xd 15021 14999 scasw ; af 15022 15000 add ah, byte [di] ; 02 25 … … 15027 15005 db 0f6h 15028 15006 invd ; 0f 08 15029 int17_handler: ; 0xfefd2 LB 0xd 15007 jmp short 0efd4h ; eb 00 15008 int17_handler: ; 0xfefd4 LB 0xd 15030 15009 push DS ; 1e 15031 15010 push ES ; 06 … … 15034 15013 pop DS ; 1f 15035 15014 cld ; fc 15036 call 06 e5dh ; e8 82 7e15015 call 06dc4h ; e8 e7 7d 15037 15016 popaw ; 61 15038 15017 pop ES ; 07 15039 15018 pop DS ; 1f 15040 15019 iret ; cf 15041 _pmode_IDT: ; 0xfef dfLB 0x615020 _pmode_IDT: ; 0xfefe1 LB 0x6 15042 15021 db 000h, 000h, 000h, 000h, 00fh, 000h 15043 _rmode_IDT: ; 0xfefe 5LB 0x615022 _rmode_IDT: ; 0xfefe7 LB 0x6 15044 15023 db 0ffh, 003h, 000h, 000h, 000h, 000h 15045 int1c_handler: ; 0xfefe b LB 0x7a15024 int1c_handler: ; 0xfefed LB 0x78 15046 15025 iret ; cf 15047 times 0x5 7db 015026 times 0x55 db 0 15048 15027 pop ax ; 58 15049 15028 dec bp ; 4d … … 15082 15061 mov ax, strict word 00001h ; b8 01 00 15083 15062 push ax ; 50 15084 call 04 707h ; e8 37 5615063 call 0466eh ; e8 9e 55 15085 15064 inc sp ; 44 15086 15065 inc sp ; 44 … … 15089 15068 mov ax, strict word 00002h ; b8 02 00 15090 15069 push ax ; 50 15091 call 04 707h ; e8 2a 5615070 call 0466eh ; e8 91 55 15092 15071 inc sp ; 44 15093 15072 inc sp ; 44 … … 15096 15075 mov ax, strict word 00003h ; b8 03 00 15097 15076 push strict byte 00003h ; 6a 03 15098 call 04 707h ; e8 1c 5615077 call 0466eh ; e8 83 55 15099 15078 inc sp ; 44 15100 15079 inc sp ; 44 … … 15103 15082 mov ax, strict word 00004h ; b8 04 00 15104 15083 push ax ; 50 15105 call 04 707h ; e8 0f 5615084 call 0466eh ; e8 76 55 15106 15085 inc sp ; 44 15107 15086 inc sp ; 44 … … 15122 15101 iret ; cf 15123 15102 or cx, word [bp+si] ; 0b 0a 15124 or word [ di], ax ; 09 0515103 or word [bp+di], cx ; 09 0b 15125 15104 push eax ; 66 50 15126 15105 mov eax, strict dword 000800000h ; 66 b8 00 00 80 00 … … 15447 15426 cmp ah, 0c2h ; 80 fc c2 15448 15427 je short 0f882h ; 74 0e 15449 call 05e e8h ; e8 71 6615428 call 05e4fh ; e8 d8 65 15450 15429 popaw ; 61 15451 15430 pop ES ; 07 … … 15453 15432 popfw ; 9d 15454 15433 jmp short 0f890h ; eb 13 15455 call 08a 8ah ; e8 0a 9215434 call 08a75h ; e8 f5 91 15456 15435 jmp short 0f877h ; eb f5 15457 15436 int15_handler_mouse: ; 0xff882 LB 0x5 15458 call 06a d7h ; e8 52 7215437 call 06a3eh ; e8 b9 71 15459 15438 jmp short 0f877h ; eb f0 15460 15439 int15_handler32: ; 0xff887 LB 0x9 15461 15440 pushad ; 66 60 15462 call 063 b1h ; e8 25 6b15441 call 06318h ; e8 8c 6a 15463 15442 popad ; 66 61 15464 15443 jmp short 0f878h ; eb e8 … … 15490 15469 pop DS ; 1f 15491 15470 cld ; fc 15492 call 06 a11h ; e8 59 7115471 call 06978h ; e8 c0 70 15493 15472 pop cx ; 59 15494 15473 jcxz 0f8c7h ; e3 0c … … 15582 15561 db 018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h 15583 15562 db 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h 15584 db 080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 0 15h, 08eh, 066h15585 db 061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 0 2eh, 069h, 061h, 01fh, 007h15563 db 080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 000h, 08eh, 066h 15564 db 061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 095h, 068h, 061h, 01fh, 007h 15586 15565 db 0cfh 15587 15566 int70_handler: ; 0xffe8f LB 0x16 … … 15592 15571 pop DS ; 1f 15593 15572 cld ; fc 15594 call 066 feh ; e8 66 6815573 call 06665h ; e8 cd 67 15595 15574 popaw ; 61 15596 15575 pop DS ; 1f … … 15679 15658 dec cx ; 49 15680 15659 pop di ; 5f 15681 mov di, 00160h ; bf 60 01 15682 add byte [bx+si], dl ; 00 10 15683 push CS ; 0e 15684 add byte [di], al ; 00 05 15660 sbb AL, strict byte 000h ; 1c 00 15661 add byte [bx+si], al ; 00 00 15662 adc byte [00900h], cl ; 10 0e 00 09 15685 15663 add byte [di], ah ; 00 25 15686 15664 times 0x6f db 0 … … 15688 15666 cpu_reset: ; 0xffff0 LB 0x10 15689 15667 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 15690 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 03 bh15668 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 039h -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.md5sum
r43630 r44751 1 0c14a3e4d7b29dba2a7e66be9479e668*VBoxPcBios.rom1 672b75ae8ab89eb41cf55264d313f4c1 *VBoxPcBios.rom
Note:
See TracChangeset
for help on using the changeset viewer.