Changeset 61092 in vbox for trunk/src/VBox/Devices/PC/BIOS
- Timestamp:
- May 20, 2016 11:12:27 AM (9 years ago)
- svn:sync-xref-src-repo-rev:
- 107362
- Location:
- trunk/src/VBox/Devices/PC/BIOS
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm
r60443 r61092 728 728 729 729 ; 730 ; Source file: support.asm 730 ; Source file: __U4M.asm 731 ; 732 ; $Id$ 733 ; Compiler support routines. 734 ; 735 ; 736 ; 737 ; Copyright (C) 2012-2015 Oracle Corporation 738 ; 739 ; This file is part of VirtualBox Open Source Edition (OSE), as 740 ; available from http://www.virtualbox.org. This file is free software; 741 ; you can redistribute it and/or modify it under the terms of the GNU 742 ; General Public License (GPL) as published by the Free Software 743 ; Foundation, in version 2 as it comes in the "COPYING" file of the 744 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 745 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 746 ; 747 748 ; 749 ; Source file: __U4D.asm 750 ; 751 ; $Id$ 752 ; Compiler support routines. 753 ; 754 ; 755 ; 756 ; Copyright (C) 2012-2016 Oracle Corporation 757 ; 758 ; This file is part of VirtualBox Open Source Edition (OSE), as 759 ; available from http://www.virtualbox.org. This file is free software; 760 ; you can redistribute it and/or modify it under the terms of the GNU 761 ; General Public License (GPL) as published by the Free Software 762 ; Foundation, in version 2 as it comes in the "COPYING" file of the 763 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 764 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 765 ; 766 767 ; 768 ; Source file: __U8RS.asm 769 ; 770 ; $Id$ 771 ; Compiler support routines. 772 ; 773 ; 774 ; 775 ; Copyright (C) 2012-2015 Oracle Corporation 776 ; 777 ; This file is part of VirtualBox Open Source Edition (OSE), as 778 ; available from http://www.virtualbox.org. This file is free software; 779 ; you can redistribute it and/or modify it under the terms of the GNU 780 ; General Public License (GPL) as published by the Free Software 781 ; Foundation, in version 2 as it comes in the "COPYING" file of the 782 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 783 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 784 ; 785 786 ; 787 ; Source file: __U8LS.asm 788 ; 789 ; $Id$ 790 ; Compiler support routines. 791 ; 792 ; 793 ; 794 ; Copyright (C) 2012-2015 Oracle Corporation 795 ; 796 ; This file is part of VirtualBox Open Source Edition (OSE), as 797 ; available from http://www.virtualbox.org. This file is free software; 798 ; you can redistribute it and/or modify it under the terms of the GNU 799 ; General Public License (GPL) as published by the Free Software 800 ; Foundation, in version 2 as it comes in the "COPYING" file of the 801 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 802 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 803 ; 804 805 ; 806 ; Source file: fmemset.asm 807 ; 808 ; $Id$ 809 ; Compiler support routines. 810 ; 811 ; 812 ; 813 ; Copyright (C) 2012-2015 Oracle Corporation 814 ; 815 ; This file is part of VirtualBox Open Source Edition (OSE), as 816 ; available from http://www.virtualbox.org. This file is free software; 817 ; you can redistribute it and/or modify it under the terms of the GNU 818 ; General Public License (GPL) as published by the Free Software 819 ; Foundation, in version 2 as it comes in the "COPYING" file of the 820 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 821 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 822 ; 823 824 ; 825 ; Source file: fmemcpy.asm 731 826 ; 732 827 ; $Id$ … … 822 917 ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 823 918 ; 919 ; 920 921 ; 922 ; Source file: DoUInt32Div.c 923 ; 924 ; $Id$ 925 ; AHCI host adapter driver to boot from SATA disks. 926 ; 927 ; 928 ; 929 ; Copyright (C) 2011-2015 Oracle Corporation 930 ; 931 ; This file is part of VirtualBox Open Source Edition (OSE), as 932 ; available from http://www.virtualbox.org. This file is free software; 933 ; you can redistribute it and/or modify it under the terms of the GNU 934 ; General Public License (GPL) as published by the Free Software 935 ; Foundation, in version 2 as it comes in the "COPYING" file of the 936 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 937 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 938 939 ; 940 ; Source file: ASMBitLastSetU16.asm 941 ; 942 ; $Id$ 943 ; BiosCommonCode - ASMBitLastSetU16() - borrowed from IPRT. 944 ; 945 ; 946 ; 947 ; Copyright (C) 2006-2016 Oracle Corporation 948 ; 949 ; This file is part of VirtualBox Open Source Edition (OSE), as 950 ; available from http://www.virtualbox.org. This file is free software; 951 ; you can redistribute it and/or modify it under the terms of the GNU 952 ; General Public License (GPL) as published by the Free Software 953 ; Foundation, in version 2 as it comes in the "COPYING" file of the 954 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 955 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 824 956 ; 825 957 … … 856 988 db 001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h 857 989 _pktacc: ; 0xf006a LB 0xc 858 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 0e 5h, 080h, 04bh, 090h990 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 0e1h, 080h, 047h, 090h 859 991 _softrst: ; 0xf0076 LB 0xc 860 992 db 000h, 000h, 000h, 000h, 000h, 000h, 089h, 02dh, 0c8h, 03ah, 0c8h, 03ah 861 993 _dskacc: ; 0xf0082 LB 0x2e 862 994 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f0h, 029h, 0a5h, 02ah, 000h, 000h, 000h, 000h 863 db 02 5h, 07fh, 005h, 080h, 01dh, 08fh, 0c5h, 08fh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h995 db 021h, 07fh, 001h, 080h, 019h, 08fh, 0c1h, 08fh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h 864 996 db 032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h 865 997 … … 1058 1190 times 1144 db 0 1059 1191 1060 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8 a45class=CODE group=AUTO1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8cb8 class=CODE group=AUTO 1061 1193 rom_scan_: ; 0xf1600 LB 0x50 1062 1194 push bp ; 55 … … 1308 1440 int 010h ; cd 10 1309 1441 jmp short 017b7h ; eb 03 1310 call 07ae ah ; e8 33631442 call 07ae6h ; e8 2f 63 1311 1443 mov sp, bp ; 89 ec 1312 1444 pop bp ; 5d … … 1453 1585 mov bx, strict word 0000ah ; bb 0a 00 1454 1586 xor cx, cx ; 31 c9 1455 call 09f 30h ; e8 63 861587 call 09f50h ; e8 83 86 1456 1588 mov word [bp-008h], ax ; 89 46 f8 1457 1589 mov cx, dx ; 89 d1 … … 1683 1815 mov dx, word [bp-026h] ; 8b 56 da 1684 1816 mov si, word [bp-01eh] ; 8b 76 e2 1685 call 09f aah ; e8 ad841817 call 09f80h ; e8 83 84 1686 1818 mov ax, dx ; 89 d0 1687 1819 xor ah, dh ; 30 f4 … … 2122 2254 mov dx, word [es:si] ; 26 8b 14 2123 2255 mov si, strict word 00018h ; be 18 00 2124 call 09f aah ; e8 5a802256 call 09f80h ; e8 30 80 2125 2257 xor dh, dh ; 30 f6 2126 2258 mov word [bp-014h], dx ; 89 56 ec … … 2132 2264 mov dx, word [es:si] ; 26 8b 14 2133 2265 mov si, strict word 00020h ; be 20 00 2134 call 09f aah ; e8 3a802266 call 09f80h ; e8 10 80 2135 2267 mov bx, dx ; 89 d3 2136 2268 mov ax, word [bp-01ch] ; 8b 46 e4 … … 2163 2295 mov dx, word [es:si] ; 26 8b 14 2164 2296 mov si, strict word 00008h ; be 08 00 2165 call 09f aah ; e8 e97f2297 call 09f80h ; e8 bf 7f 2166 2298 mov word [bp-012h], dx ; 89 56 ee 2167 2299 mov bx, word [bp-016h] ; 8b 5e ea … … 2172 2304 mov dx, word [es:si] ; 26 8b 14 2173 2305 mov si, strict word 00018h ; be 18 00 2174 call 09f aah ; e8 cb7f2306 call 09f80h ; e8 a1 7f 2175 2307 mov ah, dl ; 88 d4 2176 2308 and ah, 00fh ; 80 e4 0f … … 2729 2861 mov dx, word [es:di+036h] ; 26 8b 55 36 2730 2862 mov si, strict word 0000bh ; be 0b 00 2731 call 09f aah ; e8 23 7a2863 call 09f80h ; e8 f9 79 2732 2864 mov word [bp-024h], dx ; 89 56 dc 2733 2865 mov word [bp-032h], cx ; 89 4e ce … … 3005 3137 mov dx, word [bp-024h] ; 8b 56 dc 3006 3138 mov si, strict word 00018h ; be 18 00 3007 call 09f aah ; e8 61773139 call 09f80h ; e8 37 77 3008 3140 xor dh, dh ; 30 f6 3009 3141 mov word [bp-014h], dx ; 89 56 ec … … 3013 3145 mov dx, word [bp-024h] ; 8b 56 dc 3014 3146 mov si, strict word 00020h ; be 20 00 3015 call 09f aah ; e8 4a773147 call 09f80h ; e8 20 77 3016 3148 mov bx, dx ; 89 d3 3017 3149 mov ax, word [bp-022h] ; 8b 46 de … … 3047 3179 mov dx, word [bp-024h] ; 8b 56 dc 3048 3180 mov si, strict word 00008h ; be 08 00 3049 call 09f aah ; e8 f6763181 call 09f80h ; e8 cc 76 3050 3182 mov word [bp-00ch], ax ; 89 46 f4 3051 3183 mov word [bp-00eh], bx ; 89 5e f2 … … 3054 3186 mov word [bp-018h], dx ; 89 56 e8 3055 3187 mov si, strict word 00010h ; be 10 00 3056 call 09f aah ; e8 e1763188 call 09f80h ; e8 b7 76 3057 3189 mov word [bp-024h], dx ; 89 56 dc 3058 3190 mov ax, dx ; 89 d0 … … 5290 5422 mov dx, ss ; 8c d2 5291 5423 lea ax, [bp-026h] ; 8d 46 da 5292 call 09f bah ; e8 88625424 call 09fa0h ; e8 6e 62 5293 5425 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 5294 5426 mov ax, strict word 00011h ; b8 11 00 … … 5763 5895 xor dl, dl ; 30 d2 5764 5896 xor cx, cx ; 31 c9 5765 call 09f 69h ; e8 d25c5897 call 09f30h ; e8 99 5c 5766 5898 xor bx, bx ; 31 db 5767 5899 add ax, si ; 01 f0 … … 5769 5901 mov bx, di ; 89 fb 5770 5902 xor cx, cx ; 31 c9 5771 call 09f 69h ; e8 c55c5903 call 09f30h ; e8 8c 5c 5772 5904 mov bx, ax ; 89 c3 5773 5905 mov ax, word [bp-010h] ; 8b 46 f0 … … 5804 5936 mov dx, ss ; 8c d2 5805 5937 lea ax, [bp-02eh] ; 8d 46 d2 5806 call 09f bah ; e8 bf5c5938 call 09fa0h ; e8 a5 5c 5807 5939 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 5808 5940 mov ax, word [bp-014h] ; 8b 46 ec … … 6143 6275 mov dx, ss ; 8c d2 6144 6276 lea ax, [bp-030h] ; 8d 46 d0 6145 call 09f bah ; e8 e2586277 call 09fa0h ; e8 c8 58 6146 6278 mov word [bp-030h], strict word 00028h ; c7 46 d0 28 00 6147 6279 mov ax, word [bp-00eh] ; 8b 46 f2 … … 6650 6782 xor ah, ah ; 30 e4 6651 6783 sar ax, 004h ; c1 f8 04 6652 call 07d 10h ; e8 cb306784 call 07d0ch ; e8 c7 30 6653 6785 cmp byte [bp+004h], 002h ; 80 7e 04 02 6654 6786 jne short 04c4eh ; 75 03 … … 7165 7297 out DX, AL ; ee 7166 7298 xor ax, ax ; 31 c0 7167 call 065 13h ; e8 56147299 call 06556h ; e8 99 14 7168 7300 mov sp, bp ; 89 ec 7169 7301 pop bp ; 5d … … 8102 8234 mov dx, word [bp+00ch] ; 8b 56 0c 8103 8235 mov si, strict word 00020h ; be 20 00 8104 call 09f aah ; e8 06 468236 call 09f80h ; e8 dc 45 8105 8237 test ax, ax ; 85 c0 8106 8238 jne short 059b4h ; 75 0c … … 8140 8272 mov bx, strict word 0003fh ; bb 3f 00 8141 8273 xor cx, cx ; 31 c9 8142 call 09f 69h ; e8 6c458274 call 09f30h ; e8 33 45 8143 8275 mov bx, ax ; 89 c3 8144 8276 mov cx, dx ; 89 d1 8145 8277 mov ax, word [bp-004h] ; 8b 46 fc 8146 8278 mov dx, si ; 89 f2 8147 call 09f 30h ; e8 27 458279 call 09f50h ; e8 47 45 8148 8280 mov word [es:di+002h], ax ; 26 89 45 02 8149 8281 cmp ax, 00400h ; 3d 00 04 … … 8371 8503 mov bx, cx ; 89 cb 8372 8504 xor cx, cx ; 31 c9 8373 call 09f 69h ; e8 45438505 call 09f30h ; e8 0c 43 8374 8506 xor bx, bx ; 31 db 8375 8507 add ax, word [bp-008h] ; 03 46 f8 … … 8377 8509 mov bx, word [bp-00ah] ; 8b 5e f6 8378 8510 xor cx, cx ; 31 c9 8379 call 09f 69h ; e8 36 438511 call 09f30h ; e8 fd 42 8380 8512 xor bx, bx ; 31 db 8381 8513 add ax, word [bp-006h] ; 03 46 fa … … 8545 8677 mov bx, word [bp-008h] ; 8b 5e f8 8546 8678 xor cx, cx ; 31 c9 8547 call 09f 69h ; e8 5f418679 call 09f30h ; e8 26 41 8548 8680 mov bx, word [bp-006h] ; 8b 5e fa 8549 8681 xor cx, cx ; 31 c9 8550 call 09f 69h ; e8 57418682 call 09f30h ; e8 1e 41 8551 8683 mov word [bp-010h], ax ; 89 46 f0 8552 8684 mov word [bp-00ch], dx ; 89 56 f4 … … 8706 8838 xor bx, bx ; 31 db 8707 8839 mov si, strict word 00020h ; be 20 00 8708 call 09f9 ah ; e8 eb3f8840 call 09f90h ; e8 e1 3f 8709 8841 mov si, ax ; 89 c6 8710 8842 mov word [bp-00ch], bx ; 89 5e f4 … … 8863 8995 mov bx, word [bp-00ch] ; 8b 5e f4 8864 8996 mov si, strict word 00020h ; be 20 00 8865 call 09f aah ; e8 17 3e8997 call 09f80h ; e8 ed 3d 8866 8998 mov bx, di ; 89 fb 8867 8999 mov word [es:bx+014h], dx ; 26 89 57 14 … … 9208 9340 pop bp ; 5d 9209 9341 retn ; c3 9210 set_enable_a20_: ; 0xf6513 LB 0x30 9342 timer_wait_: ; 0xf6513 LB 0x43 9343 push bp ; 55 9344 mov bp, sp ; 89 e5 9345 push bx ; 53 9346 push cx ; 51 9347 push ax ; 50 9348 mov bx, strict word 0000fh ; bb 0f 00 9349 xor cx, cx ; 31 c9 9350 call 09f50h ; e8 2f 3a 9351 mov cx, ax ; 89 c1 9352 mov bx, dx ; 89 d3 9353 mov dx, strict word 00061h ; ba 61 00 9354 in AL, DX ; ec 9355 db 02ah, 0e4h 9356 ; sub ah, ah ; 2a e4 9357 and AL, strict byte 010h ; 24 10 9358 mov byte [bp-006h], al ; 88 46 fa 9359 add cx, strict byte 0ffffh ; 83 c1 ff 9360 adc bx, strict byte 0ffffh ; 83 d3 ff 9361 cmp bx, strict byte 0ffffh ; 83 fb ff 9362 jne short 06540h ; 75 05 9363 cmp cx, strict byte 0ffffh ; 83 f9 ff 9364 je short 0654fh ; 74 0f 9365 mov dx, strict word 00061h ; ba 61 00 9366 in AL, DX ; ec 9367 db 02ah, 0e4h 9368 ; sub ah, ah ; 2a e4 9369 and AL, strict byte 010h ; 24 10 9370 cmp al, byte [bp-006h] ; 3a 46 fa 9371 jne short 06540h ; 75 f3 9372 jmp short 06530h ; eb e1 9373 lea sp, [bp-004h] ; 8d 66 fc 9374 pop cx ; 59 9375 pop bx ; 5b 9376 pop bp ; 5d 9377 retn ; c3 9378 set_enable_a20_: ; 0xf6556 LB 0x30 9211 9379 push bp ; 55 9212 9380 mov bp, sp ; 89 e5 … … 9221 9389 mov cl, al ; 88 c1 9222 9390 test bx, bx ; 85 db 9223 je short 065 2ch ; 74 059391 je short 0656fh ; 74 05 9224 9392 or AL, strict byte 002h ; 0c 02 9225 9393 out DX, AL ; ee 9226 jmp short 065 2fh ; eb 039394 jmp short 06572h ; eb 03 9227 9395 and AL, strict byte 0fdh ; 24 fd 9228 9396 out DX, AL ; ee 9229 9397 test cl, 002h ; f6 c1 02 9230 je short 065 39h ; 74 059398 je short 0657ch ; 74 05 9231 9399 mov ax, strict word 00001h ; b8 01 00 9232 jmp short 065 3bh ; eb 029400 jmp short 0657eh ; eb 02 9233 9401 xor ax, ax ; 31 c0 9234 9402 lea sp, [bp-006h] ; 8d 66 fa … … 9238 9406 pop bp ; 5d 9239 9407 retn ; c3 9240 set_e820_range_: ; 0xf65 43 LB 0x8b9408 set_e820_range_: ; 0xf6586 LB 0x88 9241 9409 push si ; 56 9242 9410 push bp ; 55 … … 9267 9435 pop si ; 5e 9268 9436 retn 0000ah ; c2 0a 00 9269 db 0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 08 7h, 083h, 052h, 04fh, 041h, 024h9270 db 0 00h, 074h, 06ah, 00bh, 066h, 01fh, 066h, 0b4h, 066h, 0bah, 066h, 0bfh, 066h, 0c4h, 066h, 06ch9271 db 0 67h, 00bh, 069h, 031h, 069h, 0adh, 066h, 0adh, 066h, 0feh, 069h, 026h, 06ah, 039h, 06ah, 048h9272 db 0 6ah, 0b4h, 066h, 04fh, 06ah9273 _int15_function: ; 0xf6 5ce LB 0x4d89437 db 0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h 9438 db 018h, 069h, 049h, 066h, 05dh, 066h, 0f2h, 066h, 0f8h, 066h, 0fdh, 066h, 002h, 067h, 0aah, 067h 9439 db 0d5h, 067h, 0ebh, 066h, 0ebh, 066h, 0a2h, 068h, 0cah, 068h, 0ddh, 068h, 0ech, 068h, 0f2h, 066h 9440 db 0f3h, 068h 9441 _int15_function: ; 0xf660e LB 0x33c 9274 9442 push bp ; 55 9275 9443 mov bp, sp ; 89 e5 9276 9444 push si ; 56 9277 9445 push di ; 57 9278 push ax ; 509279 push ax ; 509280 9446 mov ax, word [bp+012h] ; 8b 46 12 9281 9447 shr ax, 008h ; c1 e8 08 9282 9448 cmp ax, 000ech ; 3d ec 00 9283 jnbe short 066 15h ; 77 359449 jnbe short 06653h ; 77 35 9284 9450 push CS ; 0e 9285 9451 pop ES ; 07 9286 mov cx, strict word 0001 2h ; b9 12009287 mov di, 065 99h ; bf 99659452 mov cx, strict word 00011h ; b9 11 00 9453 mov di, 065dch ; bf dc 65 9288 9454 repne scasb ; f2 ae 9289 9455 sal cx, 1 ; d1 e1 9290 9456 mov di, cx ; 89 cf 9291 mov si, word [cs:di+065 aah] ; 2e 8b b5 aa659457 mov si, word [cs:di+065ech] ; 2e 8b b5 ec 65 9292 9458 mov ax, word [bp+012h] ; 8b 46 12 9293 9459 xor ah, ah ; 30 e4 … … 9302 9468 xor ah, ah ; 30 e4 9303 9469 cmp ax, 000c0h ; 3d c0 00 9304 je short 066 18h ; 74 039305 jmp near 06 a74h ; e9 5c 049470 je short 06656h ; 74 03 9471 jmp near 06918h ; e9 c2 02 9306 9472 or byte [bp+018h], 001h ; 80 4e 18 01 9307 jmp near 06 a1dh ; e9 fe 039473 jmp near 068c1h ; e9 64 02 9308 9474 mov dx, ax ; 89 c2 9309 9475 cmp ax, strict word 00001h ; 3d 01 00 9310 jc short 066 34h ; 72 0e9311 jbe short 066 48h ; 76 209476 jc short 06672h ; 72 0e 9477 jbe short 06686h ; 76 20 9312 9478 cmp ax, strict word 00003h ; 3d 03 00 9313 je short 066 75h ; 74 489479 je short 066b3h ; 74 48 9314 9480 cmp ax, strict word 00002h ; 3d 02 00 9315 je short 066 58h ; 74 269316 jmp short 066 82h ; eb 4e9481 je short 06696h ; 74 26 9482 jmp short 066c0h ; eb 4e 9317 9483 test ax, ax ; 85 c0 9318 jne short 066 82h ; 75 4a9484 jne short 066c0h ; 75 4a 9319 9485 xor ax, ax ; 31 c0 9320 call 065 13h ; e8 d6fe9486 call 06556h ; e8 db fe 9321 9487 and byte [bp+018h], 0feh ; 80 66 18 fe 9322 9488 mov byte [bp+013h], 000h ; c6 46 13 00 9323 jmp near 066 adh ; e9 65 009489 jmp near 066ebh ; e9 65 00 9324 9490 mov ax, strict word 00001h ; b8 01 00 9325 call 065 13h ; e8 c5fe9491 call 06556h ; e8 ca fe 9326 9492 and byte [bp+018h], 0feh ; 80 66 18 fe 9327 9493 mov byte [bp+013h], dh ; 88 76 13 9328 jmp near 066 adh ; e9 55 009494 jmp near 066ebh ; e9 55 00 9329 9495 mov dx, 00092h ; ba 92 00 9330 9496 in AL, DX ; ec … … 9338 9504 and byte [bp+018h], 0feh ; 80 66 18 fe 9339 9505 mov byte [bp+013h], ah ; 88 66 13 9340 jmp near 066 adh ; e9 38 009506 jmp near 066ebh ; e9 38 00 9341 9507 and byte [bp+018h], 0feh ; 80 66 18 fe 9342 9508 mov byte [bp+013h], ah ; 88 66 13 9343 9509 mov word [bp+00ch], ax ; 89 46 0c 9344 jmp near 066 adh ; e9 2b 009510 jmp near 066ebh ; e9 2b 00 9345 9511 mov bx, 00da0h ; bb a0 0d 9346 9512 mov cx, ds ; 8c d9 9347 9513 mov ax, strict word 00004h ; b8 04 00 9348 call 01923h ; e8 96b29514 call 01923h ; e8 58 b2 9349 9515 mov ax, word [bp+012h] ; 8b 46 12 9350 9516 xor ah, ah ; 30 e4 … … 9352 9518 push 0082eh ; 68 2e 08 9353 9519 push strict byte 00004h ; 6a 04 9354 call 01966h ; e8 cbb29520 call 01966h ; e8 8d b2 9355 9521 add sp, strict byte 00006h ; 83 c4 06 9356 9522 or byte [bp+018h], 001h ; 80 4e 18 01 … … 9365 9531 retn ; c3 9366 9532 mov word [bp+018h], dx ; 89 56 18 9367 jmp near 067 66h ; e9 ac 009533 jmp near 067a4h ; e9 ac 00 9368 9534 mov word [bp+018h], dx ; 89 56 18 9369 jmp short 066 adh ; eb ee9535 jmp short 066ebh ; eb ee 9370 9536 mov word [bp+018h], cx ; 89 4e 18 9371 jmp short 066 aah ; eb e69537 jmp short 066e8h ; eb e6 9372 9538 test byte [bp+012h], 0ffh ; f6 46 12 ff 9373 jne short 067 39h ; 75 6f9539 jne short 06777h ; 75 6f 9374 9540 mov dx, 000a0h ; ba a0 00 9375 9541 mov ax, strict word 00040h ; b8 40 00 9376 call 01650h ; e8 7daf9542 call 01650h ; e8 3f af 9377 9543 test AL, strict byte 001h ; a8 01 9378 jne short 067 36h ; 75 5f9544 jne short 06774h ; 75 5f 9379 9545 mov bx, strict word 00001h ; bb 01 00 9380 9546 mov dx, 000a0h ; ba a0 00 9381 9547 mov ax, strict word 00040h ; b8 40 00 9382 call 0165eh ; e8 7baf9548 call 0165eh ; e8 3d af 9383 9549 mov bx, word [bp+014h] ; 8b 5e 14 9384 9550 mov dx, 00098h ; ba 98 00 9385 9551 mov ax, strict word 00040h ; b8 40 00 9386 call 0167ah ; e8 8baf9552 call 0167ah ; e8 4d af 9387 9553 mov bx, word [bp+00ch] ; 8b 5e 0c 9388 9554 mov dx, 0009ah ; ba 9a 00 9389 9555 mov ax, strict word 00040h ; b8 40 00 9390 call 0167ah ; e8 7faf9556 call 0167ah ; e8 41 af 9391 9557 mov bx, word [bp+00eh] ; 8b 5e 0e 9392 9558 mov dx, 0009ch ; ba 9c 00 9393 9559 mov ax, strict word 00040h ; b8 40 00 9394 call 0167ah ; e8 73af9560 call 0167ah ; e8 35 af 9395 9561 mov bx, word [bp+010h] ; 8b 5e 10 9396 9562 mov dx, 0009eh ; ba 9e 00 9397 9563 mov ax, strict word 00040h ; b8 40 00 9398 call 0167ah ; e8 67af9564 call 0167ah ; e8 29 af 9399 9565 and byte [bp+018h], 0feh ; 80 66 18 fe 9400 9566 mov dx, 000a1h ; ba a1 00 … … 9405 9571 out DX, AL ; ee 9406 9572 mov ax, strict word 0000bh ; b8 0b 00 9407 call 016ach ; e8 86af9573 call 016ach ; e8 48 af 9408 9574 mov dl, al ; 88 c2 9409 9575 or dl, 040h ; 80 ca 40 9410 9576 xor dh, dh ; 30 f6 9411 9577 mov ax, strict word 0000bh ; b8 0b 00 9412 call 016c7h ; e8 94af9413 jmp near 066 adh ; e9 77 ff9414 jmp near 06 a14h ; e9 db 029578 call 016c7h ; e8 56 af 9579 jmp near 066ebh ; e9 77 ff 9580 jmp near 068b8h ; e9 41 01 9415 9581 cmp ax, strict word 00001h ; 3d 01 00 9416 jne short 067 5ah ; 75 1c9582 jne short 06798h ; 75 1c 9417 9583 xor bx, bx ; 31 db 9418 9584 mov dx, 000a0h ; ba a0 00 9419 9585 mov ax, strict word 00040h ; b8 40 00 9420 call 0165eh ; e8 15 af9586 call 0165eh ; e8 d7 ae 9421 9587 and byte [bp+018h], 0feh ; 80 66 18 fe 9422 9588 mov ax, strict word 0000bh ; b8 0b 00 9423 call 016ach ; e8 59af9589 call 016ach ; e8 1b af 9424 9590 mov dl, al ; 88 c2 9425 9591 and dl, 0bfh ; 80 e2 bf 9426 jmp short 067 2bh ; eb d19592 jmp short 06769h ; eb d1 9427 9593 mov word [bp+018h], dx ; 89 56 18 9428 9594 mov ax, bx ; 89 d8 … … 9432 9598 or bx, ax ; 09 c3 9433 9599 mov word [bp+012h], bx ; 89 5e 12 9434 jmp near 066adh ; e9 41 ff 9435 cli ; fa 9436 mov ax, strict word 00001h ; b8 01 00 9437 call 06513h ; e8 a0 fd 9438 mov di, ax ; 89 c7 9439 mov ax, word [bp+014h] ; 8b 46 14 9440 sal ax, 004h ; c1 e0 04 9441 mov cx, word [bp+006h] ; 8b 4e 06 9442 add cx, ax ; 01 c1 9443 mov dx, word [bp+014h] ; 8b 56 14 9444 shr dx, 00ch ; c1 ea 0c 9445 mov byte [bp-006h], dl ; 88 56 fa 9446 cmp cx, ax ; 39 c1 9447 jnc short 06792h ; 73 05 9448 db 0feh, 0c2h 9449 ; inc dl ; fe c2 9450 mov byte [bp-006h], dl ; 88 56 fa 9451 mov dx, word [bp+006h] ; 8b 56 06 9452 add dx, strict byte 00008h ; 83 c2 08 9453 mov ax, word [bp+014h] ; 8b 46 14 9454 mov bx, strict word 0002fh ; bb 2f 00 9455 call 0167ah ; e8 d9 ae 9456 mov dx, word [bp+006h] ; 8b 56 06 9457 add dx, strict byte 0000ah ; 83 c2 0a 9458 mov ax, word [bp+014h] ; 8b 46 14 9459 mov bx, cx ; 89 cb 9460 call 0167ah ; e8 cb ae 9461 mov bl, byte [bp-006h] ; 8a 5e fa 9462 xor bh, bh ; 30 ff 9463 mov dx, word [bp+006h] ; 8b 56 06 9464 add dx, strict byte 0000ch ; 83 c2 0c 9465 mov ax, word [bp+014h] ; 8b 46 14 9466 call 0165eh ; e8 9e ae 9467 mov dx, word [bp+006h] ; 8b 56 06 9468 add dx, strict byte 0000dh ; 83 c2 0d 9469 mov ax, word [bp+014h] ; 8b 46 14 9470 mov bx, 00093h ; bb 93 00 9471 call 0165eh ; e8 8f ae 9472 mov dx, word [bp+006h] ; 8b 56 06 9473 add dx, strict byte 0000eh ; 83 c2 0e 9474 mov ax, word [bp+014h] ; 8b 46 14 9475 xor bx, bx ; 31 db 9476 call 0167ah ; e8 9d ae 9477 mov dx, word [bp+006h] ; 8b 56 06 9478 add dx, strict byte 00020h ; 83 c2 20 9479 mov ax, word [bp+014h] ; 8b 46 14 9480 mov bx, strict word 0ffffh ; bb ff ff 9481 call 0167ah ; e8 8e ae 9482 mov dx, word [bp+006h] ; 8b 56 06 9483 add dx, strict byte 00022h ; 83 c2 22 9484 mov ax, word [bp+014h] ; 8b 46 14 9485 xor bx, bx ; 31 db 9486 call 0167ah ; e8 80 ae 9487 mov dx, word [bp+006h] ; 8b 56 06 9488 add dx, strict byte 00024h ; 83 c2 24 9489 mov ax, word [bp+014h] ; 8b 46 14 9490 mov bx, strict word 0000fh ; bb 0f 00 9491 call 0165eh ; e8 55 ae 9492 mov dx, word [bp+006h] ; 8b 56 06 9493 add dx, strict byte 00025h ; 83 c2 25 9494 mov ax, word [bp+014h] ; 8b 46 14 9495 mov bx, 0009bh ; bb 9b 00 9496 call 0165eh ; e8 46 ae 9497 mov dx, word [bp+006h] ; 8b 56 06 9498 add dx, strict byte 00026h ; 83 c2 26 9499 mov ax, word [bp+014h] ; 8b 46 14 9500 xor bx, bx ; 31 db 9501 call 0167ah ; e8 54 ae 9502 mov ax, ss ; 8c d0 9503 mov cx, ax ; 89 c1 9504 sal cx, 004h ; c1 e1 04 9505 shr ax, 00ch ; c1 e8 0c 9506 mov word [bp-008h], ax ; 89 46 f8 9507 mov dx, word [bp+006h] ; 8b 56 06 9508 add dx, strict byte 00028h ; 83 c2 28 9509 mov ax, word [bp+014h] ; 8b 46 14 9510 mov bx, strict word 0ffffh ; bb ff ff 9511 call 0167ah ; e8 38 ae 9512 mov dx, word [bp+006h] ; 8b 56 06 9513 add dx, strict byte 0002ah ; 83 c2 2a 9514 mov ax, word [bp+014h] ; 8b 46 14 9515 mov bx, cx ; 89 cb 9516 call 0167ah ; e8 2a ae 9517 mov bl, byte [bp-008h] ; 8a 5e f8 9518 xor bh, bh ; 30 ff 9519 mov dx, word [bp+006h] ; 8b 56 06 9520 add dx, strict byte 0002ch ; 83 c2 2c 9521 mov ax, word [bp+014h] ; 8b 46 14 9522 call 0165eh ; e8 fd ad 9523 mov dx, word [bp+006h] ; 8b 56 06 9524 add dx, strict byte 0002dh ; 83 c2 2d 9525 mov ax, word [bp+014h] ; 8b 46 14 9526 mov bx, 00093h ; bb 93 00 9527 call 0165eh ; e8 ee ad 9528 mov dx, word [bp+006h] ; 8b 56 06 9529 add dx, strict byte 0002eh ; 83 c2 2e 9530 mov ax, word [bp+014h] ; 8b 46 14 9531 xor bx, bx ; 31 db 9532 call 0167ah ; e8 fc ad 9533 mov si, word [bp+006h] ; 8b 76 06 9534 mov es, [bp+014h] ; 8e 46 14 9535 mov cx, word [bp+010h] ; 8b 4e 10 9536 push DS ; 1e 9537 push eax ; 66 50 9538 db 066h, 033h, 0c0h 9539 ; xor eax, eax ; 66 33 c0 9540 mov ds, ax ; 8e d8 9541 mov word [00467h], sp ; 89 26 67 04 9542 mov [00469h], ss ; 8c 16 69 04 9543 call 0689ah ; e8 00 00 9544 pop di ; 5f 9545 add di, strict byte 0001bh ; 83 c7 1b 9546 push strict byte 00020h ; 6a 20 9547 push di ; 57 9548 lgdt [es:si+008h] ; 26 0f 01 54 08 9549 lidt [cs:0efe1h] ; 2e 0f 01 1e e1 ef 9550 mov eax, cr0 ; 0f 20 c0 9551 or AL, strict byte 001h ; 0c 01 9552 mov cr0, eax ; 0f 22 c0 9553 retf ; cb 9554 mov ax, strict word 00028h ; b8 28 00 9555 mov ss, ax ; 8e d0 9556 mov ax, strict word 00010h ; b8 10 00 9557 mov ds, ax ; 8e d8 9558 mov ax, strict word 00018h ; b8 18 00 9559 mov es, ax ; 8e c0 9560 db 033h, 0f6h 9561 ; xor si, si ; 33 f6 9562 db 033h, 0ffh 9563 ; xor di, di ; 33 ff 9564 cld ; fc 9565 rep movsw ; f3 a5 9566 call 068ceh ; e8 00 00 9567 pop ax ; 58 9568 push 0f000h ; 68 00 f0 9569 add ax, strict byte 00018h ; 83 c0 18 9570 push ax ; 50 9571 mov ax, strict word 00028h ; b8 28 00 9572 mov ds, ax ; 8e d8 9573 mov es, ax ; 8e c0 9574 mov eax, cr0 ; 0f 20 c0 9575 and AL, strict byte 0feh ; 24 fe 9576 mov cr0, eax ; 0f 22 c0 9577 retf ; cb 9578 lidt [cs:0efe7h] ; 2e 0f 01 1e e7 ef 9579 db 033h, 0c0h 9580 ; xor ax, ax ; 33 c0 9581 mov ds, ax ; 8e d8 9582 mov es, ax ; 8e c0 9583 lss sp, [00467h] ; 0f b2 26 67 04 9584 pop eax ; 66 58 9585 pop DS ; 1f 9586 mov ax, di ; 89 f8 9587 call 06513h ; e8 14 fc 9588 sti ; fb 9589 mov byte [bp+013h], 000h ; c6 46 13 00 9590 and byte [bp+018h], 0feh ; 80 66 18 fe 9591 jmp near 066adh ; e9 a2 fd 9600 jmp near 066ebh ; e9 41 ff 9592 9601 mov ax, strict word 00031h ; b8 31 00 9593 call 016ach ; e8 9b ad9602 call 016ach ; e8 fc ae 9594 9603 xor ah, ah ; 30 e4 9595 9604 mov dx, ax ; 89 c2 9596 9605 sal dx, 008h ; c1 e2 08 9597 9606 mov ax, strict word 00030h ; b8 30 00 9598 call 016ach ; e8 8e ad9607 call 016ach ; e8 ef ae 9599 9608 xor ah, ah ; 30 e4 9600 9609 or dx, ax ; 09 c2 9601 9610 mov word [bp+012h], dx ; 89 56 12 9602 9611 cmp dx, strict byte 0ffc0h ; 83 fa c0 9603 jbe short 06 904h ; 76 da9612 jbe short 067ceh ; 76 05 9604 9613 mov word [bp+012h], strict word 0ffc0h ; c7 46 12 c0 ff 9605 jmp short 06904h ; eb d3 9614 and byte [bp+018h], 0feh ; 80 66 18 fe 9615 jmp near 066ebh ; e9 16 ff 9606 9616 cli ; fa 9607 9617 mov ax, strict word 00001h ; b8 01 00 9608 call 065 13h ; e8 db fb9618 call 06556h ; e8 7a fd 9609 9619 mov dx, word [bp+006h] ; 8b 56 06 9610 9620 add dx, strict byte 00038h ; 83 c2 38 9611 9621 mov ax, word [bp+014h] ; 8b 46 14 9612 9622 mov bx, strict word 0ffffh ; bb ff ff 9613 call 0167ah ; e8 33 ad9623 call 0167ah ; e8 8f ae 9614 9624 mov dx, word [bp+006h] ; 8b 56 06 9615 9625 add dx, strict byte 0003ah ; 83 c2 3a 9616 9626 mov ax, word [bp+014h] ; 8b 46 14 9617 9627 xor bx, bx ; 31 db 9618 call 0167ah ; e8 25 ad9628 call 0167ah ; e8 81 ae 9619 9629 mov dx, word [bp+006h] ; 8b 56 06 9620 9630 add dx, strict byte 0003ch ; 83 c2 3c 9621 9631 mov ax, word [bp+014h] ; 8b 46 14 9622 9632 mov bx, strict word 0000fh ; bb 0f 00 9623 call 0165eh ; e8 fa ac9633 call 0165eh ; e8 56 ae 9624 9634 mov dx, word [bp+006h] ; 8b 56 06 9625 9635 add dx, strict byte 0003dh ; 83 c2 3d 9626 9636 mov ax, word [bp+014h] ; 8b 46 14 9627 9637 mov bx, 0009bh ; bb 9b 00 9628 call 0165eh ; e8 eb ac9638 call 0165eh ; e8 47 ae 9629 9639 mov dx, word [bp+006h] ; 8b 56 06 9630 9640 add dx, strict byte 0003eh ; 83 c2 3e 9631 9641 mov ax, word [bp+014h] ; 8b 46 14 9632 9642 xor bx, bx ; 31 db 9633 call 0167ah ; e8 f9 ac9643 call 0167ah ; e8 55 ae 9634 9644 mov AL, strict byte 011h ; b0 11 9635 9645 mov dx, strict word 00020h ; ba 20 00 … … 9661 9671 out DX, AL ; ee 9662 9672 mov si, word [bp+006h] ; 8b 76 06 9663 call 06 9c2h ; e8 00 009673 call 06866h ; e8 00 00 9664 9674 pop di ; 5f 9665 9675 add di, strict byte 00018h ; 83 c7 18 … … 9689 9699 push cx ; 51 9690 9700 retf ; cb 9691 jmp near 066 adh ; e9 af fc9701 jmp near 066ebh ; e9 49 fe 9692 9702 mov bx, 00da0h ; bb a0 0d 9693 9703 mov cx, ds ; 8c d9 9694 9704 mov ax, strict word 00004h ; b8 04 00 9695 call 01923h ; e8 1a af9705 call 01923h ; e8 76 b0 9696 9706 push 0086eh ; 68 6e 08 9697 9707 push strict byte 00004h ; 6a 04 9698 call 01966h ; e8 55 af9708 call 01966h ; e8 b1 b0 9699 9709 add sp, strict byte 00004h ; 83 c4 04 9700 9710 or byte [bp+018h], 001h ; 80 4e 18 01 … … 9703 9713 or ah, 086h ; 80 cc 86 9704 9714 mov word [bp+012h], ax ; 89 46 12 9705 jmp near 066 adh ; e9 87 fc9715 jmp near 066ebh ; e9 21 fe 9706 9716 mov word [bp+018h], cx ; 89 4e 18 9707 9717 mov word [bp+012h], ax ; 89 46 12 9708 9718 mov word [bp+00ch], 0e6f5h ; c7 46 0c f5 e6 9709 9719 mov word [bp+014h], 0f000h ; c7 46 14 00 f0 9710 jmp near 066 adh ; e9 74 fc9720 jmp near 066ebh ; e9 0e fe 9711 9721 mov dx, strict word 0000eh ; ba 0e 00 9712 9722 mov ax, strict word 00040h ; b8 40 00 9713 call 0166ch ; e8 2a ac9723 call 0166ch ; e8 86 ad 9714 9724 mov word [bp+014h], ax ; 89 46 14 9715 jmp near 06 904h ; e9 bcfe9725 jmp near 067ceh ; e9 e2 fe 9716 9726 push 0089dh ; 68 9d 08 9717 9727 push strict byte 00008h ; 6a 08 9718 jmp short 06 a0eh ; eb bf9728 jmp short 068b2h ; eb bf 9719 9729 test byte [bp+012h], 0ffh ; f6 46 12 ff 9720 jne short 06 a74h ; 75 1f9730 jne short 06918h ; 75 1f 9721 9731 mov word [bp+012h], ax ; 89 46 12 9722 9732 mov ax, word [bp+00ch] ; 8b 46 0c 9723 9733 xor ah, ah ; 30 e4 9724 9734 cmp ax, strict word 00001h ; 3d 01 00 9725 jc short 06 a6dh ; 72 0b9735 jc short 06911h ; 72 0b 9726 9736 cmp ax, strict word 00003h ; 3d 03 00 9727 jnbe short 06 a6dh ; 77 069737 jnbe short 06911h ; 77 06 9728 9738 mov word [bp+018h], cx ; 89 4e 18 9729 jmp near 066 adh ; e9 40 fc9739 jmp near 066ebh ; e9 da fd 9730 9740 or byte [bp+018h], 001h ; 80 4e 18 01 9731 jmp near 066 adh ; e9 39 fc9741 jmp near 066ebh ; e9 d3 fd 9732 9742 mov bx, 00da0h ; bb a0 0d 9733 9743 mov cx, ds ; 8c d9 9734 9744 mov ax, strict word 00004h ; b8 04 00 9735 call 01923h ; e8 a4 ae9745 call 01923h ; e8 00 b0 9736 9746 push word [bp+00ch] ; ff 76 0c 9737 9747 push word [bp+012h] ; ff 76 12 9738 9748 push 008b4h ; 68 b4 08 9739 9749 push strict byte 00004h ; 6a 04 9740 call 01966h ; e8 d9 ae9750 call 01966h ; e8 35 b0 9741 9751 add sp, strict byte 00008h ; 83 c4 08 9742 jmp short 06a14h ; eb 82 9743 inc dx ; 42 9752 jmp short 068b8h ; eb 82 9753 mov AH, strict byte 06ah ; b4 6a 9754 fldcw [bp+si-007h] ; d9 6a f9 9755 push strict byte 00048h ; 6a 48 9756 imul sp, word [bp+06bh], strict byte 0ff83h ; 6b 66 6b 83 9757 imul sp, word [di-03895h], strict byte 0006bh ; 6b a5 6b c7 6b 9758 add AL, strict byte 06ch ; 04 6c 9759 db 038h 9744 9760 insb ; 6c 9745 a32 insb ; 67 6c 9746 xchg word [si-02ah], bp ; 87 6c d6 9747 insb ; 6c 9748 hlt ; f4 9749 insb ; 6c 9750 adc word [di+033h], bp ; 11 6d 33 9751 insw ; 6d 9752 push bp ; 55 9753 insw ; 6d 9754 xchg dx, ax ; 92 9755 insw ; 6d 9756 db 0c6h 9757 insw ; 6d 9758 _int15_function32: ; 0xf6aa6 LB 0x3bc 9761 _int15_function32: ; 0xf694a LB 0x38a 9759 9762 push bp ; 55 9760 9763 mov bp, sp ; 89 e5 9761 9764 push si ; 56 9762 9765 sub sp, strict byte 00008h ; 83 ec 08 9763 mov dx, word [bp+020h] ; 8b 56 209764 shr dx, 008h ; c1 ea089766 mov ax, word [bp+020h] ; 8b 46 20 9767 shr ax, 008h ; c1 e8 08 9765 9768 mov bx, word [bp+028h] ; 8b 5e 28 9766 9769 and bl, 0feh ; 80 e3 fe 9767 mov ax, word [bp+020h] ; 8b 46 209768 xor ah, ah ; 30 e49769 cmp dx, 000e8h ; 81 fae8 009770 je short 06 b11h ; 74 4d9771 cmp dx, 000d0h ; 81 fad0 009772 je short 06 b0ah ; 74 409773 cmp dx, 00086h ; 81 fa86 009774 jne short 06 b2fh ; 75 5f9770 mov dx, word [bp+020h] ; 8b 56 20 9771 xor dh, dh ; 30 f6 9772 cmp ax, 000e8h ; 3d e8 00 9773 je short 069b1h ; 74 4a 9774 cmp ax, 000d0h ; 3d d0 00 9775 je short 0697eh ; 74 12 9776 cmp ax, 00086h ; 3d 86 00 9777 jne short 069afh ; 75 3e 9775 9778 sti ; fb 9776 mov ax, word [bp+01ch] ; 8b 46 1c 9777 mov dx, word [bp+018h] ; 8b 56 18 9778 sal eax, 010h ; 66 c1 e0 10 9779 db 08bh, 0c2h 9780 ; mov ax, dx ; 8b c2 9781 mov ebx, strict dword 00000000fh ; 66 bb 0f 00 00 00 9782 db 066h, 033h, 0d2h 9783 ; xor edx, edx ; 66 33 d2 9784 div ebx ; 66 f7 f3 9785 db 066h, 08bh, 0c8h 9786 ; mov ecx, eax ; 66 8b c8 9787 in AL, strict byte 061h ; e4 61 9788 and AL, strict byte 010h ; 24 10 9789 db 08ah, 0e0h 9790 ; mov ah, al ; 8a e0 9791 db 066h, 00bh, 0c9h 9792 ; or ecx, ecx ; 66 0b c9 9793 je near 06b07h ; 0f 84 0e 00 9794 in AL, strict byte 061h ; e4 61 9795 and AL, strict byte 010h ; 24 10 9796 db 03ah, 0c4h 9797 ; cmp al, ah ; 3a c4 9798 je short 06af9h ; 74 f8 9799 db 08ah, 0e0h 9800 ; mov ah, al ; 8a e0 9801 dec ecx ; 66 49 9802 jne short 06af9h ; 75 f2 9803 jmp near 06cd0h ; e9 c6 01 9804 cmp ax, strict word 0004fh ; 3d 4f 00 9805 je short 06b13h ; 74 04 9806 jmp short 06b2fh ; eb 1e 9807 jmp short 06b69h ; eb 56 9779 mov dx, word [bp+01ch] ; 8b 56 1c 9780 mov ax, word [bp+018h] ; 8b 46 18 9781 call 06513h ; e8 98 fb 9782 jmp near 06b42h ; e9 c4 01 9783 cmp dx, strict byte 0004fh ; 83 fa 4f 9784 jne short 069afh ; 75 2c 9808 9785 cmp word [bp+016h], 05052h ; 81 7e 16 52 50 9809 jne short 06 b73h ; 75 599786 jne short 069e5h ; 75 5b 9810 9787 cmp word [bp+014h], 04f43h ; 81 7e 14 43 4f 9811 jne short 06 b73h ; 75 529788 jne short 069e5h ; 75 54 9812 9789 cmp word [bp+01eh], 04d4fh ; 81 7e 1e 4f 4d 9813 jne short 06 b73h ; 75 4b9790 jne short 069e5h ; 75 4d 9814 9791 cmp word [bp+01ch], 04445h ; 81 7e 1c 45 44 9815 je short 06b31h ; 74 02 9816 jmp short 06b73h ; eb 42 9792 jne short 069e5h ; 75 46 9817 9793 mov ax, word [bp+00ah] ; 8b 46 0a 9818 9794 or ax, word [bp+008h] ; 0b 46 08 9819 jne short 06 b73h ; 75 3a9795 jne short 069e5h ; 75 3e 9820 9796 mov ax, word [bp+006h] ; 8b 46 06 9821 9797 or ax, word [bp+004h] ; 0b 46 04 9822 jne short 06b73h ; 75 32 9798 je short 069b3h ; 74 04 9799 jmp short 069e5h ; eb 34 9800 jmp short 069dbh ; eb 28 9823 9801 mov word [bp+028h], bx ; 89 5e 28 9824 9802 mov ax, word [bp+014h] ; 8b 46 14 … … 9832 9810 mov word [bp+020h], 03332h ; c7 46 20 32 33 9833 9811 mov word [bp+022h], 04941h ; c7 46 22 41 49 9834 jmp near 06 cd0h ; e9 67 019835 cmp ax, strict word 00020h ; 3d 20 009836 je short 06 b79h ; 74 0b9837 cmp ax, strict word 00001h ; 3d 01 009838 je short 06 b76h ; 74 039839 jmp near 06 ca6h ; e9 30 019840 jmp near 06 e14h ; e9 9b 029812 jmp near 06b42h ; e9 67 01 9813 cmp dx, strict byte 00020h ; 83 fa 20 9814 je short 069ebh ; 74 0b 9815 cmp dx, strict byte 00001h ; 83 fa 01 9816 je short 069e8h ; 74 03 9817 jmp near 06b18h ; e9 30 01 9818 jmp near 06c86h ; e9 9b 02 9841 9819 cmp word [bp+01ah], 0534dh ; 81 7e 1a 4d 53 9842 jne short 06 b73h ; 75 f39820 jne short 069e5h ; 75 f3 9843 9821 cmp word [bp+018h], 04150h ; 81 7e 18 50 41 9844 jne short 06 b73h ; 75 ec9822 jne short 069e5h ; 75 ec 9845 9823 mov ax, strict word 00035h ; b8 35 00 9846 call 016ach ; e8 1f ab9824 call 016ach ; e8 ad ac 9847 9825 mov bl, al ; 88 c3 9848 9826 xor bh, bh ; 30 ff … … 9851 9829 sal bx, 1 ; d1 e3 9852 9830 rcl dx, 1 ; d1 d2 9853 loop 06 b96h ; e2 fa9831 loop 06a08h ; e2 fa 9854 9832 mov ax, strict word 00034h ; b8 34 00 9855 call 016ach ; e8 0a ab9833 call 016ach ; e8 98 ac 9856 9834 xor ah, ah ; 30 e4 9857 9835 mov dx, bx ; 89 da … … 9861 9839 adc dx, 00100h ; 81 d2 00 01 9862 9840 cmp dx, 00100h ; 81 fa 00 01 9863 jc short 06 bbch ; 72 069864 jne short 06 beah ; 75 329841 jc short 06a2eh ; 72 06 9842 jne short 06a5ch ; 75 32 9865 9843 test bx, bx ; 85 db 9866 jnbe short 06 beah ; 77 2e9844 jnbe short 06a5ch ; 77 2e 9867 9845 mov ax, strict word 00031h ; b8 31 00 9868 call 016ach ; e8 ea aa9846 call 016ach ; e8 78 ac 9869 9847 mov bl, al ; 88 c3 9870 9848 xor bh, bh ; 30 ff … … 9873 9851 sal bx, 1 ; d1 e3 9874 9852 rcl dx, 1 ; d1 d2 9875 loop 06 bcbh ; e2 fa9853 loop 06a3dh ; e2 fa 9876 9854 mov ax, strict word 00030h ; b8 30 00 9877 call 016ach ; e8 d5 aa9855 call 016ach ; e8 63 ac 9878 9856 xor ah, ah ; 30 e4 9879 9857 or bx, ax ; 09 c3 … … 9881 9859 sal bx, 1 ; d1 e3 9882 9860 rcl dx, 1 ; d1 d2 9883 loop 06 bdeh ; e2 fa9861 loop 06a50h ; e2 fa 9884 9862 add bx, strict byte 00000h ; 83 c3 00 9885 9863 adc dx, strict byte 00010h ; 83 d2 10 9886 9864 mov ax, strict word 00062h ; b8 62 00 9887 call 016ach ; e8 bc aa9865 call 016ach ; e8 4a ac 9888 9866 xor ah, ah ; 30 e4 9889 9867 mov word [bp-00ah], ax ; 89 46 f6 … … 9893 9871 sal word [bp-00ah], 1 ; d1 66 f6 9894 9872 rcl word [bp-008h], 1 ; d1 56 f8 9895 loop 06 bfdh ; e2 f89873 loop 06a6fh ; e2 f8 9896 9874 mov ax, strict word 00061h ; b8 61 00 9897 call 016ach ; e8 a1 aa9875 call 016ach ; e8 2f ac 9898 9876 xor ah, ah ; 30 e4 9899 9877 or word [bp-00ah], ax ; 09 46 f6 … … 9902 9880 mov word [bp-00ah], strict word 00000h ; c7 46 f6 00 00 9903 9881 mov ax, strict word 00063h ; b8 63 00 9904 call 016ach ; e8 8b aa 9882 call 016ach ; e8 19 ac 9883 mov byte [bp-004h], al ; 88 46 fc 9905 9884 mov byte [bp-006h], al ; 88 46 fa 9906 mov byte [bp-004h], al ; 88 46 fc9907 9885 mov ax, word [bp+014h] ; 8b 46 14 9908 9886 cmp ax, strict word 00009h ; 3d 09 00 9909 jnbe short 06 ca6h ; 77 779887 jnbe short 06b18h ; 77 77 9910 9888 mov si, ax ; 89 c6 9911 9889 add si, ax ; 01 c6 … … 9914 9892 mov cx, dx ; 89 d1 9915 9893 adc cx, strict byte 0ffffh ; 83 d1 ff 9916 jmp word [cs:si+06 a92h] ; 2e ff a4 92 6a9894 jmp word [cs:si+06936h] ; 2e ff a4 36 69 9917 9895 push strict byte 00001h ; 6a 01 9918 9896 push strict byte 00000h ; 6a 00 … … 9924 9902 xor bx, bx ; 31 db 9925 9903 xor cx, cx ; 31 c9 9926 call 065 43h ; e8 e9 f89904 call 06586h ; e8 ba fa 9927 9905 mov word [bp+014h], strict word 00001h ; c7 46 14 01 00 9928 9906 mov word [bp+016h], strict word 00000h ; c7 46 16 00 00 9929 jmp near 06 df9h ; e9 92 019907 jmp near 06c6bh ; e9 92 01 9930 9908 push strict byte 00002h ; 6a 02 9931 9909 push strict byte 00000h ; 6a 00 … … 9937 9915 mov bx, 0fc00h ; bb 00 fc 9938 9916 mov cx, strict word 00009h ; b9 09 00 9939 call 065 43h ; e8 c3 f89917 call 06586h ; e8 94 fa 9940 9918 mov word [bp+014h], strict word 00002h ; c7 46 14 02 00 9941 jmp short 06 c5fh ; eb d89919 jmp short 06ad1h ; eb d8 9942 9920 push strict byte 00002h ; 6a 02 9943 9921 push strict byte 00000h ; 6a 00 … … 9949 9927 xor bx, bx ; 31 db 9950 9928 mov cx, strict word 0000fh ; b9 0f 00 9951 call 065 43h ; e8 a4 f89929 call 06586h ; e8 75 fa 9952 9930 mov word [bp+014h], strict word 00003h ; c7 46 14 03 00 9953 jmp short 06 c5fh ; eb b99931 jmp short 06ad1h ; eb b9 9954 9932 mov bx, 00da0h ; bb a0 0d 9955 9933 mov cx, ds ; 8c d9 9956 9934 mov ax, strict word 00004h ; b8 04 00 9957 call 01923h ; e8 72 ac9935 call 01923h ; e8 00 ae 9958 9936 push word [bp+014h] ; ff 76 14 9959 9937 push word [bp+020h] ; ff 76 20 9960 9938 push 008b4h ; 68 b4 08 9961 9939 push strict byte 00004h ; 6a 04 9962 call 01966h ; e8 a7 ac9940 call 01966h ; e8 35 ae 9963 9941 add sp, strict byte 00008h ; 83 c4 08 9964 9942 or byte [bp+028h], 001h ; 80 4e 28 01 … … 9980 9958 xor bx, bx ; 31 db 9981 9959 mov cx, strict word 00010h ; b9 10 00 9982 call 065 43h ; e8 57 f89960 call 06586h ; e8 28 fa 9983 9961 mov word [bp+014h], strict word 00004h ; c7 46 14 04 00 9984 jmp near 06 c5fh ; e9 6b ff9962 jmp near 06ad1h ; e9 6b ff 9985 9963 push strict byte 00003h ; 6a 03 9986 9964 push strict byte 00000h ; 6a 00 … … 9992 9970 mov bx, ax ; 89 c3 9993 9971 mov ax, si ; 89 f0 9994 call 065 43h ; e8 3a f89972 call 06586h ; e8 0b fa 9995 9973 mov word [bp+014h], strict word 00005h ; c7 46 14 05 00 9996 jmp near 06 c5fh ; e9 4e ff9974 jmp near 06ad1h ; e9 4e ff 9997 9975 push strict byte 00002h ; 6a 02 9998 9976 push strict byte 00000h ; 6a 00 … … 10004 9982 xor bx, bx ; 31 db 10005 9983 mov cx, 0fec0h ; b9 c0 fe 10006 call 065 43h ; e8 18 f89984 call 06586h ; e8 e9 f9 10007 9985 mov word [bp+014h], strict word 00006h ; c7 46 14 06 00 10008 jmp near 06 c5fh ; e9 2c ff9986 jmp near 06ad1h ; e9 2c ff 10009 9987 push strict byte 00002h ; 6a 02 10010 9988 push strict byte 00000h ; 6a 00 … … 10016 9994 xor bx, bx ; 31 db 10017 9995 mov cx, 0fee0h ; b9 e0 fe 10018 call 065 43h ; e8 f6 f79996 call 06586h ; e8 c7 f9 10019 9997 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 10020 jmp near 06 c5fh ; e9 0a ff9998 jmp near 06ad1h ; e9 0a ff 10021 9999 push strict byte 00002h ; 6a 02 10022 10000 push strict byte 00000h ; 6a 00 … … 10028 10006 xor bx, bx ; 31 db 10029 10007 mov cx, strict word 0fffch ; b9 fc ff 10030 call 065 43h ; e8 d6 f710031 cmp byte [bp-00 6h], 000h ; 80 7e fa0010032 jne short 06 d7ah ; 75 0710008 call 06586h ; e8 a7 f9 10009 cmp byte [bp-004h], 000h ; 80 7e fc 00 10010 jne short 06bech ; 75 07 10033 10011 mov ax, word [bp-008h] ; 8b 46 f8 10034 10012 test ax, ax ; 85 c0 10035 je short 06 d8ah ; 74 1010013 je short 06bfch ; 74 10 10036 10014 mov word [bp+014h], strict word 00009h ; c7 46 14 09 00 10037 jmp near 06 c5fh ; e9 dd fe10015 jmp near 06ad1h ; e9 dd fe 10038 10016 mov word [bp+014h], strict word 00008h ; c7 46 14 08 00 10039 jmp near 06 c5fh ; e9 d5 fe10017 jmp near 06ad1h ; e9 d5 fe 10040 10018 mov word [bp+014h], ax ; 89 46 14 10041 10019 mov word [bp+016h], ax ; 89 46 16 10042 jmp short 06 df9h ; eb 6710020 jmp short 06c6bh ; eb 67 10043 10021 push strict byte 00002h ; 6a 02 10044 10022 push strict byte 00000h ; 6a 00 … … 10050 10028 xor bx, bx ; 31 db 10051 10029 xor cx, cx ; 31 c9 10052 call 065 43h ; e8 9a f710053 cmp byte [bp-00 6h], 000h ; 80 7e fa0010054 jne short 06 db6h ; 75 0710030 call 06586h ; e8 6b f9 10031 cmp byte [bp-004h], 000h ; 80 7e fc 00 10032 jne short 06c28h ; 75 07 10055 10033 mov ax, word [bp-008h] ; 8b 46 f8 10056 10034 test ax, ax ; 85 c0 10057 je short 06 dbeh ; 74 0810035 je short 06c30h ; 74 08 10058 10036 mov word [bp+014h], strict word 00009h ; c7 46 14 09 00 10059 jmp near 06 c5fh ; e9 a1 fe10037 jmp near 06ad1h ; e9 a1 fe 10060 10038 mov word [bp+014h], ax ; 89 46 14 10061 10039 mov word [bp+016h], ax ; 89 46 16 10062 jmp short 06 df9h ; eb 3310063 cmp byte [bp-00 6h], 000h ; 80 7e fa0010064 jne short 06 dd2h ; 75 0610040 jmp short 06c6bh ; eb 33 10041 cmp byte [bp-004h], 000h ; 80 7e fc 00 10042 jne short 06c44h ; 75 06 10065 10043 cmp word [bp-008h], strict byte 00000h ; 83 7e f8 00 10066 je short 06 df9h ; 74 2710044 je short 06c6bh ; 74 27 10067 10045 push strict byte 00001h ; 6a 01 10068 mov al, byte [bp-00 4h] ; 8a 46 fc10046 mov al, byte [bp-006h] ; 8a 46 fa 10069 10047 db 0feh, 0c0h 10070 10048 ; inc al ; fe c0 … … 10078 10056 xor bx, bx ; 31 db 10079 10057 xor cx, cx ; 31 c9 10080 call 065 43h ; e8 52 f710058 call 06586h ; e8 23 f9 10081 10059 xor ax, ax ; 31 c0 10082 10060 mov word [bp+014h], ax ; 89 46 14 … … 10087 10065 mov word [bp+01eh], strict word 00000h ; c7 46 1e 00 00 10088 10066 and byte [bp+028h], 0feh ; 80 66 28 fe 10089 jmp near 06 cd0h ; e9 bc fe10067 jmp near 06b42h ; e9 bc fe 10090 10068 mov word [bp+028h], bx ; 89 5e 28 10091 10069 mov ax, strict word 00031h ; b8 31 00 10092 call 016ach ; e8 8f a810070 call 016ach ; e8 1d aa 10093 10071 xor ah, ah ; 30 e4 10094 10072 mov dx, ax ; 89 c2 10095 10073 sal dx, 008h ; c1 e2 08 10096 10074 mov ax, strict word 00030h ; b8 30 00 10097 call 016ach ; e8 82 a810075 call 016ach ; e8 10 aa 10098 10076 xor ah, ah ; 30 e4 10099 10077 or dx, ax ; 09 c2 10100 10078 mov word [bp+01ch], dx ; 89 56 1c 10101 10079 cmp dx, 03c00h ; 81 fa 00 3c 10102 jbe short 06 e3ch ; 76 0510080 jbe short 06caeh ; 76 05 10103 10081 mov word [bp+01ch], 03c00h ; c7 46 1c 00 3c 10104 10082 mov ax, strict word 00035h ; b8 35 00 10105 call 016ach ; e8 6a a810083 call 016ach ; e8 f8 a9 10106 10084 xor ah, ah ; 30 e4 10107 10085 mov dx, ax ; 89 c2 10108 10086 sal dx, 008h ; c1 e2 08 10109 10087 mov ax, strict word 00034h ; b8 34 00 10110 call 016ach ; e8 5d a810088 call 016ach ; e8 eb a9 10111 10089 xor ah, ah ; 30 e4 10112 10090 or dx, ax ; 09 c2 … … 10115 10093 mov word [bp+020h], ax ; 89 46 20 10116 10094 mov word [bp+014h], dx ; 89 56 14 10117 jmp near 06cd0h ; e9 6e fe 10118 _inv_op_handler: ; 0xf6e62 LB 0x19b 10095 jmp near 06b42h ; e9 6e fe 10096 _int15_blkmove: ; 0xf6cd4 LB 0x18a 10097 push bp ; 55 10098 mov bp, sp ; 89 e5 10099 push si ; 56 10100 push di ; 57 10101 push ax ; 50 10102 push ax ; 50 10103 cli ; fa 10104 mov ax, strict word 00001h ; b8 01 00 10105 call 06556h ; e8 74 f8 10106 mov di, ax ; 89 c7 10107 mov ax, word [bp+006h] ; 8b 46 06 10108 sal ax, 004h ; c1 e0 04 10109 mov cx, word [bp+00ah] ; 8b 4e 0a 10110 add cx, ax ; 01 c1 10111 mov dx, word [bp+006h] ; 8b 56 06 10112 shr dx, 00ch ; c1 ea 0c 10113 mov byte [bp-006h], dl ; 88 56 fa 10114 cmp cx, ax ; 39 c1 10115 jnc short 06d01h ; 73 05 10116 db 0feh, 0c2h 10117 ; inc dl ; fe c2 10118 mov byte [bp-006h], dl ; 88 56 fa 10119 mov dx, word [bp+00ah] ; 8b 56 0a 10120 add dx, strict byte 00008h ; 83 c2 08 10121 mov ax, word [bp+006h] ; 8b 46 06 10122 mov bx, strict word 0002fh ; bb 2f 00 10123 call 0167ah ; e8 6a a9 10124 mov dx, word [bp+00ah] ; 8b 56 0a 10125 add dx, strict byte 0000ah ; 83 c2 0a 10126 mov ax, word [bp+006h] ; 8b 46 06 10127 mov bx, cx ; 89 cb 10128 call 0167ah ; e8 5c a9 10129 mov bl, byte [bp-006h] ; 8a 5e fa 10130 xor bh, bh ; 30 ff 10131 mov dx, word [bp+00ah] ; 8b 56 0a 10132 add dx, strict byte 0000ch ; 83 c2 0c 10133 mov ax, word [bp+006h] ; 8b 46 06 10134 call 0165eh ; e8 2f a9 10135 mov dx, word [bp+00ah] ; 8b 56 0a 10136 add dx, strict byte 0000dh ; 83 c2 0d 10137 mov ax, word [bp+006h] ; 8b 46 06 10138 mov bx, 00093h ; bb 93 00 10139 call 0165eh ; e8 20 a9 10140 mov dx, word [bp+00ah] ; 8b 56 0a 10141 add dx, strict byte 0000eh ; 83 c2 0e 10142 mov ax, word [bp+006h] ; 8b 46 06 10143 xor bx, bx ; 31 db 10144 call 0167ah ; e8 2e a9 10145 mov dx, word [bp+00ah] ; 8b 56 0a 10146 add dx, strict byte 00020h ; 83 c2 20 10147 mov ax, word [bp+006h] ; 8b 46 06 10148 mov bx, strict word 0ffffh ; bb ff ff 10149 call 0167ah ; e8 1f a9 10150 mov dx, word [bp+00ah] ; 8b 56 0a 10151 add dx, strict byte 00022h ; 83 c2 22 10152 mov ax, word [bp+006h] ; 8b 46 06 10153 xor bx, bx ; 31 db 10154 call 0167ah ; e8 11 a9 10155 mov dx, word [bp+00ah] ; 8b 56 0a 10156 add dx, strict byte 00024h ; 83 c2 24 10157 mov ax, word [bp+006h] ; 8b 46 06 10158 mov bx, strict word 0000fh ; bb 0f 00 10159 call 0165eh ; e8 e6 a8 10160 mov dx, word [bp+00ah] ; 8b 56 0a 10161 add dx, strict byte 00025h ; 83 c2 25 10162 mov ax, word [bp+006h] ; 8b 46 06 10163 mov bx, 0009bh ; bb 9b 00 10164 call 0165eh ; e8 d7 a8 10165 mov dx, word [bp+00ah] ; 8b 56 0a 10166 add dx, strict byte 00026h ; 83 c2 26 10167 mov ax, word [bp+006h] ; 8b 46 06 10168 xor bx, bx ; 31 db 10169 call 0167ah ; e8 e5 a8 10170 mov ax, ss ; 8c d0 10171 mov cx, ax ; 89 c1 10172 sal cx, 004h ; c1 e1 04 10173 shr ax, 00ch ; c1 e8 0c 10174 mov word [bp-008h], ax ; 89 46 f8 10175 mov dx, word [bp+00ah] ; 8b 56 0a 10176 add dx, strict byte 00028h ; 83 c2 28 10177 mov ax, word [bp+006h] ; 8b 46 06 10178 mov bx, strict word 0ffffh ; bb ff ff 10179 call 0167ah ; e8 c9 a8 10180 mov dx, word [bp+00ah] ; 8b 56 0a 10181 add dx, strict byte 0002ah ; 83 c2 2a 10182 mov ax, word [bp+006h] ; 8b 46 06 10183 mov bx, cx ; 89 cb 10184 call 0167ah ; e8 bb a8 10185 mov bl, byte [bp-008h] ; 8a 5e f8 10186 xor bh, bh ; 30 ff 10187 mov dx, word [bp+00ah] ; 8b 56 0a 10188 add dx, strict byte 0002ch ; 83 c2 2c 10189 mov ax, word [bp+006h] ; 8b 46 06 10190 call 0165eh ; e8 8e a8 10191 mov dx, word [bp+00ah] ; 8b 56 0a 10192 add dx, strict byte 0002dh ; 83 c2 2d 10193 mov ax, word [bp+006h] ; 8b 46 06 10194 mov bx, 00093h ; bb 93 00 10195 call 0165eh ; e8 7f a8 10196 mov dx, word [bp+00ah] ; 8b 56 0a 10197 add dx, strict byte 0002eh ; 83 c2 2e 10198 mov ax, word [bp+006h] ; 8b 46 06 10199 xor bx, bx ; 31 db 10200 call 0167ah ; e8 8d a8 10201 lea bx, [bp+004h] ; 8d 5e 04 10202 mov si, word [bp+00ah] ; 8b 76 0a 10203 mov es, [bp+006h] ; 8e 46 06 10204 mov cx, word [bp+014h] ; 8b 4e 14 10205 db 033h, 0c0h 10206 ; xor ax, ax ; 33 c0 10207 mov ds, ax ; 8e d8 10208 mov word [00467h], bx ; 89 1e 67 04 10209 mov [00469h], ss ; 8c 16 69 04 10210 call 06e08h ; e8 00 00 10211 pop di ; 5f 10212 add di, strict byte 00018h ; 83 c7 18 10213 push strict byte 00020h ; 6a 20 10214 push di ; 57 10215 lgdt [es:si+008h] ; 26 0f 01 54 08 10216 lidt [cs:0efe1h] ; 2e 0f 01 1e e1 ef 10217 or AL, strict byte 001h ; 0c 01 10218 lmsw ax ; 0f 01 f0 10219 retf ; cb 10220 mov ax, strict word 00028h ; b8 28 00 10221 mov ss, ax ; 8e d0 10222 mov ax, strict word 00010h ; b8 10 00 10223 mov ds, ax ; 8e d8 10224 mov ax, strict word 00018h ; b8 18 00 10225 mov es, ax ; 8e c0 10226 db 033h, 0f6h 10227 ; xor si, si ; 33 f6 10228 db 033h, 0ffh 10229 ; xor di, di ; 33 ff 10230 cld ; fc 10231 rep movsw ; f3 a5 10232 db 033h, 0c0h 10233 ; xor ax, ax ; 33 c0 10234 out strict byte 080h, AL ; e6 80 10235 mov AL, strict byte 00fh ; b0 0f 10236 out strict byte 070h, AL ; e6 70 10237 mov AL, strict byte 009h ; b0 09 10238 out strict byte 071h, AL ; e6 71 10239 lidt [cs:0efe1h] ; 2e 0f 01 1e e1 ef 10240 int3 ; cc 10241 mov ax, di ; 89 f8 10242 call 06556h ; e8 08 f7 10243 sti ; fb 10244 mov byte [bp+017h], 000h ; c6 46 17 00 10245 and byte [bp+01ch], 0feh ; 80 66 1c fe 10246 lea sp, [bp-004h] ; 8d 66 fc 10247 pop di ; 5f 10248 pop si ; 5e 10249 pop bp ; 5d 10250 retn ; c3 10251 _inv_op_handler: ; 0xf6e5e LB 0x19b 10119 10252 push bp ; 55 10120 10253 mov bp, sp ; 89 e5 … … 10125 10258 les bx, [bp+018h] ; c4 5e 18 10126 10259 cmp byte [es:bx], 0f0h ; 26 80 3f f0 10127 jne short 06e7 8h ; 75 0610260 jne short 06e74h ; 75 06 10128 10261 inc word [bp+018h] ; ff 46 18 10129 jmp near 06ff 6h ; e9 7e 0110262 jmp near 06ff2h ; e9 7e 01 10130 10263 cmp word [es:bx], 0050fh ; 26 81 3f 0f 05 10131 je short 06e 82h ; 74 0310132 jmp near 06f f2h ; e9 70 0110264 je short 06e7eh ; 74 03 10265 jmp near 06feeh ; e9 70 01 10133 10266 mov si, 00800h ; be 00 08 10134 10267 xor ax, ax ; 31 c0 … … 10159 10292 sal ax, 1 ; d1 e0 10160 10293 rcl dx, 1 ; d1 d2 10161 loop 06e d3h ; e2 fa10294 loop 06ecfh ; e2 fa 10162 10295 cmp bx, dx ; 39 d3 10163 jne short 06e e1h ; 75 0410296 jne short 06eddh ; 75 04 10164 10297 cmp di, ax ; 39 c7 10165 je short 06ee 6h ; 74 0510298 je short 06ee2h ; 74 05 10166 10299 mov word [bp-008h], strict word 00001h ; c7 46 f8 01 00 10167 10300 mov es, [bp-006h] ; 8e 46 fa … … 10174 10307 sal ax, 1 ; d1 e0 10175 10308 rcl dx, 1 ; d1 d2 10176 loop 06ef ch ; e2 fa10309 loop 06ef8h ; e2 fa 10177 10310 cmp bx, dx ; 39 d3 10178 jne short 06f0 ah ; 75 0410311 jne short 06f06h ; 75 04 10179 10312 cmp di, ax ; 39 c7 10180 je short 06f0 eh ; 74 0410313 je short 06f0ah ; 74 04 10181 10314 or byte [bp-008h], 002h ; 80 4e f8 02 10182 10315 push strict byte 00000h ; 6a 00 … … 10232 10365 mov ax, strict word 00008h ; b8 08 00 10233 10366 test cx, strict word 00001h ; f7 c1 01 00 10234 je near 06fa fh ; 0f 84 02 0010367 je near 06fabh ; 0f 84 02 00 10235 10368 mov es, ax ; 8e c0 10236 10369 test cx, strict word 00002h ; f7 c1 02 00 10237 je near 06fd 7h ; 0f 84 20 0010370 je near 06fd3h ; 0f 84 20 00 10238 10371 mov bx, word [word ss:00000h] ; 36 8b 1e 00 00 10239 10372 mov word [word ss:00008h], bx ; 36 89 1e 08 00 … … 10252 10385 mov ss, [word ss:00020h] ; 36 8e 16 20 00 10253 10386 iret ; cf 10254 jmp short 06ff 6h ; eb 0410387 jmp short 06ff2h ; eb 04 10255 10388 sti ; fb 10256 10389 hlt ; f4 10257 jmp short 06f f3h ; eb fd10390 jmp short 06fefh ; eb fd 10258 10391 lea sp, [bp-004h] ; 8d 66 fc 10259 10392 pop di ; 5f … … 10261 10394 pop bp ; 5d 10262 10395 retn ; c3 10263 init_rtc_: ; 0xf6ff dLB 0x2810396 init_rtc_: ; 0xf6ff9 LB 0x28 10264 10397 push bp ; 55 10265 10398 mov bp, sp ; 89 e5 … … 10267 10400 mov dx, strict word 00026h ; ba 26 00 10268 10401 mov ax, strict word 0000ah ; b8 0a 00 10269 call 016c7h ; e8 bda610402 call 016c7h ; e8 c1 a6 10270 10403 mov dx, strict word 00002h ; ba 02 00 10271 10404 mov ax, strict word 0000bh ; b8 0b 00 10272 call 016c7h ; e8 b 4a610405 call 016c7h ; e8 b8 a6 10273 10406 mov ax, strict word 0000ch ; b8 0c 00 10274 call 016ach ; e8 9 3a610407 call 016ach ; e8 97 a6 10275 10408 mov ax, strict word 0000dh ; b8 0d 00 10276 call 016ach ; e8 8da610409 call 016ach ; e8 91 a6 10277 10410 lea sp, [bp-002h] ; 8d 66 fe 10278 10411 pop dx ; 5a 10279 10412 pop bp ; 5d 10280 10413 retn ; c3 10281 rtc_updating_: ; 0xf702 5LB 0x2110414 rtc_updating_: ; 0xf7021 LB 0x21 10282 10415 push bp ; 55 10283 10416 mov bp, sp ; 89 e5 … … 10285 10418 mov dx, 061a8h ; ba a8 61 10286 10419 dec dx ; 4a 10287 je short 0703 dh ; 74 0e10420 je short 07039h ; 74 0e 10288 10421 mov ax, strict word 0000ah ; b8 0a 00 10289 call 016ach ; e8 7 7a610422 call 016ach ; e8 7b a6 10290 10423 test AL, strict byte 080h ; a8 80 10291 jne short 0702 ch ; 75 f310424 jne short 07028h ; 75 f3 10292 10425 xor ax, ax ; 31 c0 10293 jmp short 070 40h ; eb 0310426 jmp short 0703ch ; eb 03 10294 10427 mov ax, strict word 00001h ; b8 01 00 10295 10428 lea sp, [bp-002h] ; 8d 66 fe … … 10297 10430 pop bp ; 5d 10298 10431 retn ; c3 10299 _int70_function: ; 0xf704 6LB 0xbf10432 _int70_function: ; 0xf7042 LB 0xbf 10300 10433 push bp ; 55 10301 10434 mov bp, sp ; 89 e5 … … 10303 10436 push ax ; 50 10304 10437 mov ax, strict word 0000bh ; b8 0b 00 10305 call 016ach ; e8 5 ba610438 call 016ach ; e8 5f a6 10306 10439 mov bl, al ; 88 c3 10307 10440 mov byte [bp-004h], al ; 88 46 fc 10308 10441 mov ax, strict word 0000ch ; b8 0c 00 10309 call 016ach ; e8 5 0a610442 call 016ach ; e8 54 a6 10310 10443 mov dl, al ; 88 c2 10311 10444 test bl, 060h ; f6 c3 60 10312 jne short 0706 6h ; 75 0310313 jmp near 070e ch ; e9 86 0010445 jne short 07062h ; 75 03 10446 jmp near 070e8h ; e9 86 00 10314 10447 test AL, strict byte 020h ; a8 20 10315 je short 0706 eh ; 74 0410448 je short 0706ah ; 74 04 10316 10449 sti ; fb 10317 10450 int 04ah ; cd 4a 10318 10451 cli ; fa 10319 10452 test dl, 040h ; f6 c2 40 10320 je short 070d 6h ; 74 6310453 je short 070d2h ; 74 63 10321 10454 mov dx, 000a0h ; ba a0 00 10322 10455 mov ax, strict word 00040h ; b8 40 00 10323 call 01650h ; e8 d 4a510456 call 01650h ; e8 d8 a5 10324 10457 test al, al ; 84 c0 10325 je short 070e ch ; 74 6c10458 je short 070e8h ; 74 6c 10326 10459 mov dx, 0009ch ; ba 9c 00 10327 10460 mov ax, strict word 00040h ; b8 40 00 10328 call 01688h ; e8 ff a510461 call 01688h ; e8 03 a6 10329 10462 test dx, dx ; 85 d2 10330 jne short 070d 8h ; 75 4b10463 jne short 070d4h ; 75 4b 10331 10464 cmp ax, 003d1h ; 3d d1 03 10332 jnc short 070d 8h ; 73 4610465 jnc short 070d4h ; 73 46 10333 10466 mov dx, 00098h ; ba 98 00 10334 10467 mov ax, strict word 00040h ; b8 40 00 10335 call 0166ch ; e8 d 1a510468 call 0166ch ; e8 d5 a5 10336 10469 mov si, ax ; 89 c6 10337 10470 mov dx, 0009ah ; ba 9a 00 10338 10471 mov ax, strict word 00040h ; b8 40 00 10339 call 0166ch ; e8 c 6a510472 call 0166ch ; e8 ca a5 10340 10473 mov cx, ax ; 89 c1 10341 10474 xor bx, bx ; 31 db 10342 10475 mov dx, 000a0h ; ba a0 00 10343 10476 mov ax, strict word 00040h ; b8 40 00 10344 call 0165eh ; e8 a ba510477 call 0165eh ; e8 af a5 10345 10478 mov dl, byte [bp-004h] ; 8a 56 fc 10346 10479 and dl, 037h ; 80 e2 37 10347 10480 xor dh, dh ; 30 f6 10348 10481 mov ax, strict word 0000bh ; b8 0b 00 10349 call 016c7h ; e8 0 6a610482 call 016c7h ; e8 0a a6 10350 10483 mov dx, cx ; 89 ca 10351 10484 mov ax, si ; 89 f0 10352 call 01650h ; e8 8 8a510485 call 01650h ; e8 8c a5 10353 10486 mov bl, al ; 88 c3 10354 10487 or bl, 080h ; 80 cb 80 … … 10356 10489 mov dx, cx ; 89 ca 10357 10490 mov ax, si ; 89 f0 10358 call 0165eh ; e8 8 8a510359 jmp short 070e ch ; eb 1410491 call 0165eh ; e8 8c a5 10492 jmp short 070e8h ; eb 14 10360 10493 mov bx, ax ; 89 c3 10361 10494 add bx, 0fc2fh ; 81 c3 2f fc … … 10364 10497 mov dx, 0009ch ; ba 9c 00 10365 10498 mov ax, strict word 00040h ; b8 40 00 10366 call 0169ah ; e8 aea510367 call 0e030h ; e8 4 16f10499 call 0169ah ; e8 b2 a5 10500 call 0e030h ; e8 45 6f 10368 10501 lea sp, [bp-002h] ; 8d 66 fe 10369 10502 pop si ; 5e 10370 10503 pop bp ; 5d 10371 10504 retn ; c3 10372 sbb si, word [bx+di+042h] ; 1b 71 42 10373 jno short 07161h ; 71 67 10374 jno short 0709fh ; 71 a3 10375 jno short 070f3h ; 71 f5 10376 jno short 0712ch ; 71 2c 10377 jc short 07175h ; 72 73 10378 jc short 070d2h ; 72 ce 10505 pop SS ; 17 10506 jno short 07132h ; 71 3e 10507 jno short 07159h ; 71 63 10508 jno short 07097h ; 71 9f 10509 jno short 070ebh ; 71 f1 10510 jno short 07124h ; 71 28 10511 jc short 0716dh ; 72 6f 10512 jc short 070cah ; 72 ca 10379 10513 db 072h 10380 _int1a_function: ; 0xf710 5LB 0x1d910514 _int1a_function: ; 0xf7101 LB 0x1d9 10381 10515 push bp ; 55 10382 10516 mov bp, sp ; 89 e5 … … 10384 10518 mov al, byte [bp+013h] ; 8a 46 13 10385 10519 cmp AL, strict byte 007h ; 3c 07 10386 jnbe short 0716 eh ; 77 5e10520 jnbe short 0716ah ; 77 5e 10387 10521 mov bl, al ; 88 c3 10388 10522 xor bh, bh ; 30 ff 10389 10523 add bx, bx ; 01 db 10390 jmp word [cs:bx+070f 5h] ; 2e ff a7 f57010524 jmp word [cs:bx+070f1h] ; 2e ff a7 f1 70 10391 10525 cli ; fa 10392 10526 mov bx, 0046eh ; bb 6e 04 … … 10403 10537 mov byte [es:bx], 000h ; 26 c6 07 00 10404 10538 sti ; fb 10405 jmp short 0716 eh ; eb 2c10539 jmp short 0716ah ; eb 2c 10406 10540 cli ; fa 10407 10541 mov bx, 0046eh ; bb 6e 04 … … 10417 10551 sti ; fb 10418 10552 mov byte [bp+013h], 000h ; c6 46 13 00 10419 jmp short 0716 eh ; eb 0710420 call 0702 5h ; e8 bb fe10553 jmp short 0716ah ; eb 07 10554 call 07021h ; e8 bb fe 10421 10555 test ax, ax ; 85 c0 10422 je short 071 71h ; 74 0310423 jmp near 0719 fh ; e9 2e 0010556 je short 0716dh ; 74 03 10557 jmp near 0719bh ; e9 2e 00 10424 10558 xor ax, ax ; 31 c0 10425 call 016ach ; e8 3 6a510559 call 016ach ; e8 3a a5 10426 10560 mov byte [bp+00fh], al ; 88 46 0f 10427 10561 mov ax, strict word 00002h ; b8 02 00 10428 call 016ach ; e8 2da510562 call 016ach ; e8 31 a5 10429 10563 mov byte [bp+010h], al ; 88 46 10 10430 10564 mov ax, strict word 00004h ; b8 04 00 10431 call 016ach ; e8 2 4a510565 call 016ach ; e8 28 a5 10432 10566 mov dl, al ; 88 c2 10433 10567 mov byte [bp+011h], al ; 88 46 11 10434 10568 mov ax, strict word 0000bh ; b8 0b 00 10435 call 016ach ; e8 1 9a510569 call 016ach ; e8 1d a5 10436 10570 and AL, strict byte 001h ; 24 01 10437 10571 mov byte [bp+00eh], al ; 88 46 0e … … 10441 10575 pop bp ; 5d 10442 10576 retn ; c3 10443 call 0702 5h ; e8 7f fe10577 call 07021h ; e8 7f fe 10444 10578 test ax, ax ; 85 c0 10445 je short 071a dh ; 74 0310446 call 06ff dh ; e8 50 fe10579 je short 071a9h ; 74 03 10580 call 06ff9h ; e8 50 fe 10447 10581 mov dl, byte [bp+00fh] ; 8a 56 0f 10448 10582 xor dh, dh ; 30 f6 10449 10583 xor ax, ax ; 31 c0 10450 call 016c7h ; e8 1 0a510584 call 016c7h ; e8 14 a5 10451 10585 mov dl, byte [bp+010h] ; 8a 56 10 10452 10586 xor dh, dh ; 30 f6 10453 10587 mov ax, strict word 00002h ; b8 02 00 10454 call 016c7h ; e8 0 5a510588 call 016c7h ; e8 09 a5 10455 10589 mov dl, byte [bp+011h] ; 8a 56 11 10456 10590 xor dh, dh ; 30 f6 10457 10591 mov ax, strict word 00004h ; b8 04 00 10458 call 016c7h ; e8 f aa410592 call 016c7h ; e8 fe a4 10459 10593 mov ax, strict word 0000bh ; b8 0b 00 10460 call 016ach ; e8 d 9a410594 call 016ach ; e8 dd a4 10461 10595 mov bl, al ; 88 c3 10462 10596 and bl, 060h ; 80 e3 60 … … 10468 10602 xor dh, dh ; 30 f6 10469 10603 mov ax, strict word 0000bh ; b8 0b 00 10470 call 016c7h ; e8 d ba410604 call 016c7h ; e8 df a4 10471 10605 mov byte [bp+013h], 000h ; c6 46 13 00 10472 10606 mov byte [bp+012h], bl ; 88 5e 12 10473 jmp short 0719 fh ; eb aa10607 jmp short 0719bh ; eb aa 10474 10608 mov byte [bp+013h], 000h ; c6 46 13 00 10475 call 0702 5h ; e8 29 fe10609 call 07021h ; e8 29 fe 10476 10610 test ax, ax ; 85 c0 10477 je short 07 202h ; 74 0210478 jmp short 0719 fh ; eb 9d10611 je short 071feh ; 74 02 10612 jmp short 0719bh ; eb 9d 10479 10613 mov ax, strict word 00009h ; b8 09 00 10480 call 016ach ; e8 a 4a410614 call 016ach ; e8 a8 a4 10481 10615 mov byte [bp+010h], al ; 88 46 10 10482 10616 mov ax, strict word 00008h ; b8 08 00 10483 call 016ach ; e8 9 ba410617 call 016ach ; e8 9f a4 10484 10618 mov byte [bp+00fh], al ; 88 46 0f 10485 10619 mov ax, strict word 00007h ; b8 07 00 10486 call 016ach ; e8 9 2a410620 call 016ach ; e8 96 a4 10487 10621 mov byte [bp+00eh], al ; 88 46 0e 10488 10622 mov ax, strict word 00032h ; b8 32 00 10489 call 016ach ; e8 8 9a410623 call 016ach ; e8 8d a4 10490 10624 mov byte [bp+011h], al ; 88 46 11 10491 10625 mov byte [bp+012h], al ; 88 46 12 10492 jmp near 0719 fh ; e9 73 ff10493 call 0702 5h ; e8 f6 fd10626 jmp near 0719bh ; e9 73 ff 10627 call 07021h ; e8 f6 fd 10494 10628 test ax, ax ; 85 c0 10495 je short 0723 9h ; 74 0610496 call 06ff dh ; e8 c7 fd10497 jmp near 0719 fh ; e9 66 ff10629 je short 07235h ; 74 06 10630 call 06ff9h ; e8 c7 fd 10631 jmp near 0719bh ; e9 66 ff 10498 10632 mov dl, byte [bp+010h] ; 8a 56 10 10499 10633 xor dh, dh ; 30 f6 10500 10634 mov ax, strict word 00009h ; b8 09 00 10501 call 016c7h ; e8 8 3a410635 call 016c7h ; e8 87 a4 10502 10636 mov dl, byte [bp+00fh] ; 8a 56 0f 10503 10637 xor dh, dh ; 30 f6 10504 10638 mov ax, strict word 00008h ; b8 08 00 10505 call 016c7h ; e8 7 8a410639 call 016c7h ; e8 7c a4 10506 10640 mov dl, byte [bp+00eh] ; 8a 56 0e 10507 10641 xor dh, dh ; 30 f6 10508 10642 mov ax, strict word 00007h ; b8 07 00 10509 call 016c7h ; e8 6da410643 call 016c7h ; e8 71 a4 10510 10644 mov dl, byte [bp+011h] ; 8a 56 11 10511 10645 xor dh, dh ; 30 f6 10512 10646 mov ax, strict word 00032h ; b8 32 00 10513 call 016c7h ; e8 6 2a410647 call 016c7h ; e8 66 a4 10514 10648 mov ax, strict word 0000bh ; b8 0b 00 10515 call 016ach ; e8 4 1a410649 call 016ach ; e8 45 a4 10516 10650 mov bl, al ; 88 c3 10517 10651 and bl, 07fh ; 80 e3 7f 10518 jmp near 071 e2h ; e9 6f ff10652 jmp near 071deh ; e9 6f ff 10519 10653 mov ax, strict word 0000bh ; b8 0b 00 10520 call 016ach ; e8 3 3a410654 call 016ach ; e8 37 a4 10521 10655 mov bl, al ; 88 c3 10522 10656 mov word [bp+012h], strict word 00000h ; c7 46 12 00 00 10523 10657 test AL, strict byte 020h ; a8 20 10524 je short 0728 7h ; 74 0310525 jmp near 0719 fh ; e9 18 ff10526 call 0702 5h ; e8 9b fd10658 je short 07283h ; 74 03 10659 jmp near 0719bh ; e9 18 ff 10660 call 07021h ; e8 9b fd 10527 10661 test ax, ax ; 85 c0 10528 je short 072 91h ; 74 0310529 call 06ff dh ; e8 6c fd10662 je short 0728dh ; 74 03 10663 call 06ff9h ; e8 6c fd 10530 10664 mov dl, byte [bp+00fh] ; 8a 56 0f 10531 10665 xor dh, dh ; 30 f6 10532 10666 mov ax, strict word 00001h ; b8 01 00 10533 call 016c7h ; e8 2 ba410667 call 016c7h ; e8 2f a4 10534 10668 mov dl, byte [bp+010h] ; 8a 56 10 10535 10669 xor dh, dh ; 30 f6 10536 10670 mov ax, strict word 00003h ; b8 03 00 10537 call 016c7h ; e8 2 0a410671 call 016c7h ; e8 24 a4 10538 10672 mov dl, byte [bp+011h] ; 8a 56 11 10539 10673 xor dh, dh ; 30 f6 10540 10674 mov ax, strict word 00005h ; b8 05 00 10541 call 016c7h ; e8 1 5a410675 call 016c7h ; e8 19 a4 10542 10676 mov dx, 000a1h ; ba a1 00 10543 10677 in AL, DX ; ec … … 10551 10685 xor dh, dh ; 30 f6 10552 10686 mov ax, strict word 0000bh ; b8 0b 00 10553 call 016c7h ; e8 fc a310554 jmp near 0719 fh ; e9 d1 fe10687 call 016c7h ; e8 00 a4 10688 jmp near 0719bh ; e9 d1 fe 10555 10689 mov ax, strict word 0000bh ; b8 0b 00 10556 call 016ach ; e8 d 8a310690 call 016ach ; e8 dc a3 10557 10691 mov bl, al ; 88 c3 10558 10692 mov dl, al ; 88 c2 10559 10693 and dl, 057h ; 80 e2 57 10560 jmp near 071e 4h ; e9 06 ff10561 send_to_mouse_ctrl_: ; 0xf72d eLB 0x3410694 jmp near 071e0h ; e9 06 ff 10695 send_to_mouse_ctrl_: ; 0xf72da LB 0x34 10562 10696 push bp ; 55 10563 10697 mov bp, sp ; 89 e5 … … 10570 10704 ; sub ah, ah ; 2a e4 10571 10705 test AL, strict byte 002h ; a8 02 10572 je short 072f dh ; 74 0e10706 je short 072f9h ; 74 0e 10573 10707 push 008eeh ; 68 ee 08 10574 10708 push 01168h ; 68 68 11 10575 10709 push strict byte 00007h ; 6a 07 10576 call 01966h ; e8 6ca610710 call 01966h ; e8 70 a6 10577 10711 add sp, strict byte 00006h ; 83 c4 06 10578 10712 mov AL, strict byte 0d4h ; b0 d4 … … 10588 10722 pop bp ; 5d 10589 10723 retn ; c3 10590 get_mouse_data_: ; 0xf73 12LB 0x5d10724 get_mouse_data_: ; 0xf730e LB 0x5d 10591 10725 push bp ; 55 10592 10726 mov bp, sp ; 89 e5 … … 10603 10737 and ax, strict word 00021h ; 25 21 00 10604 10738 cmp ax, strict word 00021h ; 3d 21 00 10605 je short 0735 5h ; 74 2810739 je short 07351h ; 74 28 10606 10740 test cx, cx ; 85 c9 10607 je short 0735 5h ; 74 2410741 je short 07351h ; 74 24 10608 10742 mov dx, strict word 00061h ; ba 61 00 10609 10743 in AL, DX ; ec … … 10622 10756 xor ah, ah ; 30 e4 10623 10757 cmp dx, ax ; 39 c2 10624 je short 0733 ch ; 74 ea10758 je short 07338h ; 74 ea 10625 10759 dec cx ; 49 10626 jmp short 0731 fh ; eb ca10760 jmp short 0731bh ; eb ca 10627 10761 test cx, cx ; 85 c9 10628 jne short 0735 dh ; 75 0410762 jne short 07359h ; 75 04 10629 10763 mov AL, strict byte 001h ; b0 01 10630 jmp short 0736 8h ; eb 0b10764 jmp short 07364h ; eb 0b 10631 10765 mov dx, strict word 00060h ; ba 60 00 10632 10766 in AL, DX ; ec … … 10640 10774 pop bp ; 5d 10641 10775 retn ; c3 10642 set_kbd_command_byte_: ; 0xf736 fLB 0x3210776 set_kbd_command_byte_: ; 0xf736b LB 0x32 10643 10777 push bp ; 55 10644 10778 mov bp, sp ; 89 e5 … … 10651 10785 ; sub ah, ah ; 2a e4 10652 10786 test AL, strict byte 002h ; a8 02 10653 je short 0738 eh ; 74 0e10787 je short 0738ah ; 74 0e 10654 10788 push 008f8h ; 68 f8 08 10655 10789 push 01168h ; 68 68 11 10656 10790 push strict byte 00007h ; 6a 07 10657 call 01966h ; e8 d ba510791 call 01966h ; e8 df a5 10658 10792 add sp, strict byte 00006h ; 83 c4 06 10659 10793 mov AL, strict byte 060h ; b0 60 … … 10668 10802 pop bp ; 5d 10669 10803 retn ; c3 10670 _int74_function: ; 0xf73 a1LB 0xd210804 _int74_function: ; 0xf739d LB 0xd2 10671 10805 push bp ; 55 10672 10806 mov bp, sp ; 89 e5 … … 10674 10808 mov dx, strict word 0000eh ; ba 0e 00 10675 10809 mov ax, strict word 00040h ; b8 40 00 10676 call 0166ch ; e8 bca210810 call 0166ch ; e8 c0 a2 10677 10811 mov cx, ax ; 89 c1 10678 10812 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 10683 10817 and AL, strict byte 021h ; 24 21 10684 10818 cmp AL, strict byte 021h ; 3c 21 10685 jne short 073e 5h ; 75 2210819 jne short 073e1h ; 75 22 10686 10820 mov dx, strict word 00060h ; ba 60 00 10687 10821 in AL, DX ; ec … … 10691 10825 mov dx, strict word 00026h ; ba 26 00 10692 10826 mov ax, cx ; 89 c8 10693 call 01650h ; e8 7da210827 call 01650h ; e8 81 a2 10694 10828 mov byte [bp-002h], al ; 88 46 fe 10695 10829 mov dx, strict word 00027h ; ba 27 00 10696 10830 mov ax, cx ; 89 c8 10697 call 01650h ; e8 7 2a210831 call 01650h ; e8 76 a2 10698 10832 mov byte [bp-006h], al ; 88 46 fa 10699 10833 test AL, strict byte 080h ; a8 80 10700 jne short 073e 8h ; 75 0310701 jmp near 0745 fh ; e9 77 0010834 jne short 073e4h ; 75 03 10835 jmp near 0745bh ; e9 77 00 10702 10836 mov al, byte [bp-006h] ; 8a 46 fa 10703 10837 and AL, strict byte 007h ; 24 07 … … 10713 10847 add dx, strict byte 00028h ; 83 c2 28 10714 10848 mov ax, cx ; 89 c8 10715 call 0165eh ; e8 5 3a210849 call 0165eh ; e8 57 a2 10716 10850 mov al, byte [bp-008h] ; 8a 46 f8 10717 10851 cmp al, byte [bp-004h] ; 3a 46 fc 10718 jc short 0744 fh ; 72 3c10852 jc short 0744bh ; 72 3c 10719 10853 mov dx, strict word 00028h ; ba 28 00 10720 10854 mov ax, cx ; 89 c8 10721 call 01650h ; e8 3 5a210855 call 01650h ; e8 39 a2 10722 10856 xor ah, ah ; 30 e4 10723 10857 mov word [bp+00ch], ax ; 89 46 0c 10724 10858 mov dx, strict word 00029h ; ba 29 00 10725 10859 mov ax, cx ; 89 c8 10726 call 01650h ; e8 2 8a210860 call 01650h ; e8 2c a2 10727 10861 xor ah, ah ; 30 e4 10728 10862 mov word [bp+00ah], ax ; 89 46 0a 10729 10863 mov dx, strict word 0002ah ; ba 2a 00 10730 10864 mov ax, cx ; 89 c8 10731 call 01650h ; e8 1 ba210865 call 01650h ; e8 1f a2 10732 10866 xor ah, ah ; 30 e4 10733 10867 mov word [bp+008h], ax ; 89 46 08 … … 10736 10870 mov byte [bp-002h], ah ; 88 66 fe 10737 10871 test byte [bp-006h], 080h ; f6 46 fa 80 10738 je short 074 52h ; 74 0a10872 je short 0744eh ; 74 0a 10739 10873 mov word [bp+004h], strict word 00001h ; c7 46 04 01 00 10740 jmp short 074 52h ; eb 0310874 jmp short 0744eh ; eb 03 10741 10875 inc byte [bp-002h] ; fe 46 fe 10742 10876 mov bl, byte [bp-002h] ; 8a 5e fe … … 10744 10878 mov dx, strict word 00026h ; ba 26 00 10745 10879 mov ax, cx ; 89 c8 10746 call 0165eh ; e8 ff a110880 call 0165eh ; e8 03 a2 10747 10881 mov sp, bp ; 89 ec 10748 10882 pop bp ; 5d 10749 10883 retn ; c3 10750 mov DH, strict byte 074h ; b6 74 10751 xor dh, byte [di-051h] ; 32 75 af 10752 jne short 074aeh ; 75 44 10753 jbe short 0741ch ; 76 b0 10754 jbe short 0746bh ; 76 fd 10755 je short 07448h ; 74 d8 10756 jbe short 0740fh ; 76 9d 10884 mov DL, strict byte 074h ; b2 74 10885 db 02eh, 075h, 0abh 10886 ; cs jne short 0740fh ; 2e 75 ab 10887 jne short 074a6h ; 75 40 10888 jbe short 07414h ; 76 ac 10889 jbe short 07463h ; 76 f9 10890 je short 07440h ; 74 d4 10891 jbe short 07407h ; 76 99 10757 10892 db 077h 10758 _int15_function_mouse: ; 0xf74 73LB 0x38d10893 _int15_function_mouse: ; 0xf746f LB 0x38d 10759 10894 push bp ; 55 10760 10895 mov bp, sp ; 89 e5 … … 10763 10898 mov dx, strict word 0000eh ; ba 0e 00 10764 10899 mov ax, strict word 00040h ; b8 40 00 10765 call 0166ch ; e8 e 9a110900 call 0166ch ; e8 ed a1 10766 10901 mov cx, ax ; 89 c1 10767 10902 cmp byte [bp+012h], 007h ; 80 7e 12 07 10768 jbe short 0749 6h ; 76 0b10903 jbe short 07492h ; 76 0b 10769 10904 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10770 10905 mov byte [bp+013h], 001h ; c6 46 13 01 10771 jmp near 077f ah ; e9 64 0310906 jmp near 077f6h ; e9 64 03 10772 10907 mov ax, strict word 00065h ; b8 65 00 10773 call 0736 fh ; e8 d3 fe10908 call 0736bh ; e8 d3 fe 10774 10909 and word [bp+018h], strict byte 0fffeh ; 83 66 18 fe 10775 10910 mov byte [bp+013h], 000h ; c6 46 13 00 10776 10911 mov al, byte [bp+012h] ; 8a 46 12 10777 10912 cmp AL, strict byte 007h ; 3c 07 10778 jnbe short 0750 bh ; 77 6010913 jnbe short 07507h ; 77 60 10779 10914 xor ah, ah ; 30 e4 10780 10915 mov si, ax ; 89 c6 10781 10916 add si, ax ; 01 c6 10782 jmp word [cs:si+074 63h] ; 2e ff a4 637410917 jmp word [cs:si+0745fh] ; 2e ff a4 5f 74 10783 10918 cmp byte [bp+00dh], 001h ; 80 7e 0d 01 10784 jnbe short 0750 eh ; 77 5210919 jnbe short 0750ah ; 77 52 10785 10920 mov dx, strict word 00027h ; ba 27 00 10786 10921 mov ax, cx ; 89 c8 10787 call 01650h ; e8 8ca110922 call 01650h ; e8 90 a1 10788 10923 test AL, strict byte 080h ; a8 80 10789 jne short 074 d3h ; 75 0b10924 jne short 074cfh ; 75 0b 10790 10925 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10791 10926 mov byte [bp+013h], 005h ; c6 46 13 05 10792 jmp near 077f 4h ; e9 21 0310927 jmp near 077f0h ; e9 21 03 10793 10928 cmp byte [bp+00dh], 000h ; 80 7e 0d 00 10794 jne short 074d dh ; 75 0410929 jne short 074d9h ; 75 04 10795 10930 mov AL, strict byte 0f5h ; b0 f5 10796 jmp short 074d fh ; eb 0210931 jmp short 074dbh ; eb 02 10797 10932 mov AL, strict byte 0f4h ; b0 f4 10798 10933 xor ah, ah ; 30 e4 10799 call 072d eh ; e8 fa fd10934 call 072dah ; e8 fa fd 10800 10935 test al, al ; 84 c0 10801 jne short 075 11h ; 75 2910936 jne short 0750dh ; 75 29 10802 10937 mov dx, ss ; 8c d2 10803 10938 lea ax, [bp-008h] ; 8d 46 f8 10804 call 073 12h ; e8 22 fe10939 call 0730eh ; e8 22 fe 10805 10940 test al, al ; 84 c0 10806 je short 074f ah ; 74 0610941 je short 074f6h ; 74 06 10807 10942 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10808 jne short 075 11h ; 75 1710809 jmp near 077f 4h ; e9 f7 0210943 jne short 0750dh ; 75 17 10944 jmp near 077f0h ; e9 f7 02 10810 10945 mov al, byte [bp+00dh] ; 8a 46 0d 10811 10946 cmp AL, strict byte 001h ; 3c 01 10812 jc short 0750 8h ; 72 0410947 jc short 07504h ; 72 04 10813 10948 cmp AL, strict byte 008h ; 3c 08 10814 jbe short 0751 4h ; 76 0c10815 jmp near 076a 6h ; e9 9b 0110816 jmp near 077 e1h ; e9 d3 0210817 jmp near 077e ch ; e9 db 0210818 jmp near 0777 8h ; e9 64 0210949 jbe short 07510h ; 76 0c 10950 jmp near 076a2h ; e9 9b 01 10951 jmp near 077ddh ; e9 d3 02 10952 jmp near 077e8h ; e9 db 02 10953 jmp near 07774h ; e9 64 02 10819 10954 mov dx, strict word 00027h ; ba 27 00 10820 10955 mov ax, cx ; 89 c8 10821 call 01650h ; e8 3 4a110956 call 01650h ; e8 38 a1 10822 10957 mov ah, byte [bp+00dh] ; 8a 66 0d 10823 10958 db 0feh, 0cch … … 10829 10964 mov dx, strict word 00027h ; ba 27 00 10830 10965 mov ax, cx ; 89 c8 10831 call 0165eh ; e8 2ca110966 call 0165eh ; e8 30 a1 10832 10967 mov dx, strict word 00026h ; ba 26 00 10833 10968 mov ax, cx ; 89 c8 10834 call 01650h ; e8 1 6a110969 call 01650h ; e8 1a a1 10835 10970 mov bl, al ; 88 c3 10836 10971 and bl, 0f8h ; 80 e3 f8 … … 10838 10973 mov dx, strict word 00026h ; ba 26 00 10839 10974 mov ax, cx ; 89 c8 10840 call 0165eh ; e8 1 5a110975 call 0165eh ; e8 19 a1 10841 10976 mov ax, 000ffh ; b8 ff 00 10842 call 072d eh ; e8 8f fd10977 call 072dah ; e8 8f fd 10843 10978 test al, al ; 84 c0 10844 jne short 075 11h ; 75 be10979 jne short 0750dh ; 75 be 10845 10980 mov dx, ss ; 8c d2 10846 10981 lea ax, [bp-004h] ; 8d 46 fc 10847 call 073 12h ; e8 b7 fd10982 call 0730eh ; e8 b7 fd 10848 10983 mov cl, al ; 88 c1 10849 10984 cmp byte [bp-004h], 0feh ; 80 7e fc fe 10850 jne short 0756 dh ; 75 0a10985 jne short 07569h ; 75 0a 10851 10986 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10852 10987 mov byte [bp+013h], 004h ; c6 46 13 04 10853 jmp short 074f ah ; eb 8d10988 jmp short 074f6h ; eb 8d 10854 10989 cmp byte [bp-004h], 0fah ; 80 7e fc fa 10855 je short 0758 4h ; 74 1110990 je short 07580h ; 74 11 10856 10991 mov al, byte [bp-004h] ; 8a 46 fc 10857 10992 xor ah, ah ; 30 e4 … … 10859 10994 push 00903h ; 68 03 09 10860 10995 push strict byte 00007h ; 6a 07 10861 call 01966h ; e8 e 5a310996 call 01966h ; e8 e9 a3 10862 10997 add sp, strict byte 00006h ; 83 c4 06 10863 10998 test cl, cl ; 84 c9 10864 jne short 075 11h ; 75 8910999 jne short 0750dh ; 75 89 10865 11000 mov dx, ss ; 8c d2 10866 11001 lea ax, [bp-008h] ; 8d 46 f8 10867 call 073 12h ; e8 82 fd11002 call 0730eh ; e8 82 fd 10868 11003 test al, al ; 84 c0 10869 jne short 075e ah ; 75 5611004 jne short 075e6h ; 75 56 10870 11005 mov dx, ss ; 8c d2 10871 11006 lea ax, [bp-006h] ; 8d 46 fa 10872 call 073 12h ; e8 76 fd11007 call 0730eh ; e8 76 fd 10873 11008 test al, al ; 84 c0 10874 jne short 075e ah ; 75 4a11009 jne short 075e6h ; 75 4a 10875 11010 mov al, byte [bp-008h] ; 8a 46 f8 10876 11011 mov byte [bp+00ch], al ; 88 46 0c 10877 11012 mov al, byte [bp-006h] ; 8a 46 fa 10878 11013 mov byte [bp+00dh], al ; 88 46 0d 10879 jmp near 077f 4h ; e9 45 0211014 jmp near 077f0h ; e9 45 02 10880 11015 mov al, byte [bp+00dh] ; 8a 46 0d 10881 11016 cmp AL, strict byte 003h ; 3c 03 10882 jc short 075c 6h ; 72 1010883 jbe short 075e 4h ; 76 2c11017 jc short 075c2h ; 72 10 11018 jbe short 075e0h ; 76 2c 10884 11019 cmp AL, strict byte 006h ; 3c 06 10885 je short 075f 9h ; 74 3d11020 je short 075f5h ; 74 3d 10886 11021 cmp AL, strict byte 005h ; 3c 05 10887 je short 075 f3h ; 74 3311022 je short 075efh ; 74 33 10888 11023 cmp AL, strict byte 004h ; 3c 04 10889 je short 075e dh ; 74 2910890 jmp short 075f fh ; eb 3911024 je short 075e9h ; 74 29 11025 jmp short 075fbh ; eb 39 10891 11026 cmp AL, strict byte 002h ; 3c 02 10892 je short 075d eh ; 74 1411027 je short 075dah ; 74 14 10893 11028 cmp AL, strict byte 001h ; 3c 01 10894 je short 075d 8h ; 74 0a11029 je short 075d4h ; 74 0a 10895 11030 test al, al ; 84 c0 10896 jne short 075f fh ; 75 2d11031 jne short 075fbh ; 75 2d 10897 11032 mov byte [bp-008h], 00ah ; c6 46 f8 0a 10898 jmp short 07 603h ; eb 2b11033 jmp short 075ffh ; eb 2b 10899 11034 mov byte [bp-008h], 014h ; c6 46 f8 14 10900 jmp short 07 603h ; eb 2511035 jmp short 075ffh ; eb 25 10901 11036 mov byte [bp-008h], 028h ; c6 46 f8 28 10902 jmp short 07 603h ; eb 1f11037 jmp short 075ffh ; eb 1f 10903 11038 mov byte [bp-008h], 03ch ; c6 46 f8 3c 10904 jmp short 07 603h ; eb 1910905 jmp near 0777 8h ; e9 8b 0111039 jmp short 075ffh ; eb 19 11040 jmp near 07774h ; e9 8b 01 10906 11041 mov byte [bp-008h], 050h ; c6 46 f8 50 10907 jmp short 07 603h ; eb 1011042 jmp short 075ffh ; eb 10 10908 11043 mov byte [bp-008h], 064h ; c6 46 f8 64 10909 jmp short 07 603h ; eb 0a11044 jmp short 075ffh ; eb 0a 10910 11045 mov byte [bp-008h], 0c8h ; c6 46 f8 c8 10911 jmp short 07 603h ; eb 0411046 jmp short 075ffh ; eb 04 10912 11047 mov byte [bp-008h], 000h ; c6 46 f8 00 10913 11048 cmp byte [bp-008h], 000h ; 80 7e f8 00 10914 jbe short 0763 9h ; 76 3011049 jbe short 07635h ; 76 30 10915 11050 mov ax, 000f3h ; b8 f3 00 10916 call 072d eh ; e8 cf fc11051 call 072dah ; e8 cf fc 10917 11052 test al, al ; 84 c0 10918 jne short 0762 eh ; 75 1b11053 jne short 0762ah ; 75 1b 10919 11054 mov dx, ss ; 8c d2 10920 11055 lea ax, [bp-006h] ; 8d 46 fa 10921 call 073 12h ; e8 f7 fc11056 call 0730eh ; e8 f7 fc 10922 11057 mov al, byte [bp-008h] ; 8a 46 f8 10923 11058 xor ah, ah ; 30 e4 10924 call 072d eh ; e8 bb fc11059 call 072dah ; e8 bb fc 10925 11060 mov dx, ss ; 8c d2 10926 11061 lea ax, [bp-006h] ; 8d 46 fa 10927 call 073 12h ; e8 e7 fc10928 jmp near 077f 4h ; e9 c6 0111062 call 0730eh ; e8 e7 fc 11063 jmp near 077f0h ; e9 c6 01 10929 11064 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10930 11065 mov byte [bp+013h], 003h ; c6 46 13 03 10931 jmp near 077f 4h ; e9 bb 0111066 jmp near 077f0h ; e9 bb 01 10932 11067 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10933 11068 mov byte [bp+013h], 002h ; c6 46 13 02 10934 jmp near 077f 4h ; e9 b0 0111069 jmp near 077f0h ; e9 b0 01 10935 11070 cmp byte [bp+00dh], 004h ; 80 7e 0d 04 10936 jnc short 076a 6h ; 73 5c11071 jnc short 076a2h ; 73 5c 10937 11072 mov ax, 000e8h ; b8 e8 00 10938 call 072d eh ; e8 8e fc11073 call 072dah ; e8 8e fc 10939 11074 test al, al ; 84 c0 10940 jne short 0769 ch ; 75 4811075 jne short 07698h ; 75 48 10941 11076 mov dx, ss ; 8c d2 10942 11077 lea ax, [bp-008h] ; 8d 46 f8 10943 call 073 12h ; e8 b6 fc11078 call 0730eh ; e8 b6 fc 10944 11079 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10945 je short 076 73h ; 74 1111080 je short 0766fh ; 74 11 10946 11081 mov al, byte [bp-008h] ; 8a 46 f8 10947 11082 xor ah, ah ; 30 e4 … … 10949 11084 push 0092eh ; 68 2e 09 10950 11085 push strict byte 00007h ; 6a 07 10951 call 01966h ; e8 f 6a211086 call 01966h ; e8 fa a2 10952 11087 add sp, strict byte 00006h ; 83 c4 06 10953 11088 mov al, byte [bp+00dh] ; 8a 46 0d 10954 11089 xor ah, ah ; 30 e4 10955 call 072d eh ; e8 63 fc11090 call 072dah ; e8 63 fc 10956 11091 mov dx, ss ; 8c d2 10957 11092 lea ax, [bp-008h] ; 8d 46 f8 10958 call 073 12h ; e8 8f fc11093 call 0730eh ; e8 8f fc 10959 11094 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10960 je short 076d 5h ; 74 4c11095 je short 076d1h ; 74 4c 10961 11096 mov al, byte [bp-008h] ; 8a 46 f8 10962 11097 xor ah, ah ; 30 e4 … … 10964 11099 push 0092eh ; 68 2e 09 10965 11100 push strict byte 00007h ; 6a 07 10966 call 01966h ; e8 cfa211101 call 01966h ; e8 d3 a2 10967 11102 add sp, strict byte 00006h ; 83 c4 06 10968 jmp short 076d 5h ; eb 3911103 jmp short 076d1h ; eb 39 10969 11104 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10970 11105 mov byte [bp+013h], 003h ; c6 46 13 03 10971 jmp short 076d 5h ; eb 2f11106 jmp short 076d1h ; eb 2f 10972 11107 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10973 11108 mov byte [bp+013h], 002h ; c6 46 13 02 10974 jmp short 076d 5h ; eb 2511109 jmp short 076d1h ; eb 25 10975 11110 mov ax, 000f2h ; b8 f2 00 10976 call 072d eh ; e8 28 fc11111 call 072dah ; e8 28 fc 10977 11112 test al, al ; 84 c0 10978 jne short 076c dh ; 75 1311113 jne short 076c9h ; 75 13 10979 11114 mov dx, ss ; 8c d2 10980 11115 lea ax, [bp-008h] ; 8d 46 f8 10981 call 073 12h ; e8 50 fc11116 call 0730eh ; e8 50 fc 10982 11117 mov dx, ss ; 8c d2 10983 11118 lea ax, [bp-006h] ; 8d 46 fa 10984 call 073 12h ; e8 48 fc10985 jmp near 075a 6h ; e9 d9 fe11119 call 0730eh ; e8 48 fc 11120 jmp near 075a2h ; e9 d9 fe 10986 11121 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10987 11122 mov byte [bp+013h], 003h ; c6 46 13 03 10988 jmp near 077f 4h ; e9 1c 0111123 jmp near 077f0h ; e9 1c 01 10989 11124 mov al, byte [bp+00dh] ; 8a 46 0d 10990 11125 test al, al ; 84 c0 10991 jbe short 076e 6h ; 76 0711126 jbe short 076e2h ; 76 07 10992 11127 cmp AL, strict byte 002h ; 3c 02 10993 jbe short 0774 dh ; 76 6a10994 jmp near 077 82h ; e9 9c 0011128 jbe short 07749h ; 76 6a 11129 jmp near 0777eh ; e9 9c 00 10995 11130 mov ax, 000e9h ; b8 e9 00 10996 call 072d eh ; e8 f2 fb11131 call 072dah ; e8 f2 fb 10997 11132 test al, al ; 84 c0 10998 jne short 0775 6h ; 75 6611133 jne short 07752h ; 75 66 10999 11134 mov dx, ss ; 8c d2 11000 11135 lea ax, [bp-008h] ; 8d 46 f8 11001 call 073 12h ; e8 1a fc11136 call 0730eh ; e8 1a fc 11002 11137 mov cl, al ; 88 c1 11003 11138 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 11004 je short 077 11h ; 74 1111139 je short 0770dh ; 74 11 11005 11140 mov al, byte [bp-008h] ; 8a 46 f8 11006 11141 xor ah, ah ; 30 e4 … … 11008 11143 push 0092eh ; 68 2e 09 11009 11144 push strict byte 00007h ; 6a 07 11010 call 01966h ; e8 5 8a211145 call 01966h ; e8 5c a2 11011 11146 add sp, strict byte 00006h ; 83 c4 06 11012 11147 test cl, cl ; 84 c9 11013 jne short 0777 8h ; 75 6311148 jne short 07774h ; 75 63 11014 11149 mov dx, ss ; 8c d2 11015 11150 lea ax, [bp-008h] ; 8d 46 f8 11016 call 073 12h ; e8 f5 fb11151 call 0730eh ; e8 f5 fb 11017 11152 test al, al ; 84 c0 11018 jne short 0777 8h ; 75 5711153 jne short 07774h ; 75 57 11019 11154 mov dx, ss ; 8c d2 11020 11155 lea ax, [bp-006h] ; 8d 46 fa 11021 call 073 12h ; e8 e9 fb11156 call 0730eh ; e8 e9 fb 11022 11157 test al, al ; 84 c0 11023 jne short 0777 8h ; 75 4b11158 jne short 07774h ; 75 4b 11024 11159 mov dx, ss ; 8c d2 11025 11160 lea ax, [bp-004h] ; 8d 46 fc 11026 call 073 12h ; e8 dd fb11161 call 0730eh ; e8 dd fb 11027 11162 test al, al ; 84 c0 11028 jne short 0777 8h ; 75 3f11163 jne short 07774h ; 75 3f 11029 11164 mov al, byte [bp-008h] ; 8a 46 f8 11030 11165 mov byte [bp+00ch], al ; 88 46 0c … … 11033 11168 mov al, byte [bp-004h] ; 8a 46 fc 11034 11169 mov byte [bp+00eh], al ; 88 46 0e 11035 jmp short 076d 5h ; eb 8811170 jmp short 076d1h ; eb 88 11036 11171 cmp AL, strict byte 001h ; 3c 01 11037 jne short 0775 8h ; 75 0711172 jne short 07754h ; 75 07 11038 11173 mov ax, 000e6h ; b8 e6 00 11039 jmp short 0775 bh ; eb 0511040 jmp short 0777 8h ; eb 2011174 jmp short 07757h ; eb 05 11175 jmp short 07774h ; eb 20 11041 11176 mov ax, 000e7h ; b8 e7 00 11042 call 072d eh ; e8 80 fb11177 call 072dah ; e8 80 fb 11043 11178 mov cl, al ; 88 c1 11044 11179 test cl, cl ; 84 c9 11045 jne short 0777 4h ; 75 1011180 jne short 07770h ; 75 10 11046 11181 mov dx, ss ; 8c d2 11047 11182 lea ax, [bp-008h] ; 8d 46 f8 11048 call 073 12h ; e8 a6 fb11183 call 0730eh ; e8 a6 fb 11049 11184 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 11050 je short 0777 4h ; 74 0211185 je short 07770h ; 74 02 11051 11186 mov CL, strict byte 001h ; b1 01 11052 11187 test cl, cl ; 84 c9 11053 je short 077d fh ; 74 6711188 je short 077dbh ; 74 67 11054 11189 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11055 11190 mov byte [bp+013h], 003h ; c6 46 13 03 11056 jmp short 077d fh ; eb 5d11191 jmp short 077dbh ; eb 5d 11057 11192 mov al, byte [bp+00dh] ; 8a 46 0d 11058 11193 xor ah, ah ; 30 e4 … … 11060 11195 push 0095ah ; 68 5a 09 11061 11196 push strict byte 00007h ; 6a 07 11062 call 01966h ; e8 d 6a111197 call 01966h ; e8 da a1 11063 11198 add sp, strict byte 00006h ; 83 c4 06 11064 11199 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11065 11200 mov byte [bp+013h], 001h ; c6 46 13 01 11066 jmp short 077f 4h ; eb 5711201 jmp short 077f0h ; eb 57 11067 11202 mov si, word [bp+00ch] ; 8b 76 0c 11068 11203 mov bx, si ; 89 f3 11069 11204 mov dx, strict word 00022h ; ba 22 00 11070 11205 mov ax, cx ; 89 c8 11071 call 0167ah ; e8 d 09e11206 call 0167ah ; e8 d4 9e 11072 11207 mov bx, word [bp+014h] ; 8b 5e 14 11073 11208 mov dx, strict word 00024h ; ba 24 00 11074 11209 mov ax, cx ; 89 c8 11075 call 0167ah ; e8 c 59e11210 call 0167ah ; e8 c9 9e 11076 11211 mov dx, strict word 00027h ; ba 27 00 11077 11212 mov ax, cx ; 89 c8 11078 call 01650h ; e8 9 39e11213 call 01650h ; e8 97 9e 11079 11214 mov ah, al ; 88 c4 11080 11215 test si, si ; 85 f6 11081 jne short 077 d1h ; 75 0e11216 jne short 077cdh ; 75 0e 11082 11217 cmp word [bp+014h], strict byte 00000h ; 83 7e 14 00 11083 jne short 077 d1h ; 75 0811218 jne short 077cdh ; 75 08 11084 11219 test AL, strict byte 080h ; a8 80 11085 je short 077 d3h ; 74 0611220 je short 077cfh ; 74 06 11086 11221 and AL, strict byte 07fh ; 24 7f 11087 jmp short 077 d3h ; eb 0211222 jmp short 077cfh ; eb 02 11088 11223 or AL, strict byte 080h ; 0c 80 11089 11224 mov bl, al ; 88 c3 … … 11091 11226 mov dx, strict word 00027h ; ba 27 00 11092 11227 mov ax, cx ; 89 c8 11093 call 0165eh ; e8 7f9e11094 jmp short 077f 4h ; eb 1311228 call 0165eh ; e8 83 9e 11229 jmp short 077f0h ; eb 13 11095 11230 push 00974h ; 68 74 09 11096 11231 push strict byte 00007h ; 6a 07 11097 call 01966h ; e8 7da111232 call 01966h ; e8 81 a1 11098 11233 add sp, strict byte 00004h ; 83 c4 04 11099 11234 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11100 11235 mov byte [bp+013h], 001h ; c6 46 13 01 11101 11236 mov ax, strict word 00047h ; b8 47 00 11102 call 0736 fh ; e8 75 fb11237 call 0736bh ; e8 75 fb 11103 11238 lea sp, [bp-002h] ; 8d 66 fe 11104 11239 pop si ; 5e 11105 11240 pop bp ; 5d 11106 11241 retn ; c3 11107 _int17_function: ; 0xf7 800LB 0xaf11242 _int17_function: ; 0xf77fc LB 0xaf 11108 11243 push bp ; 55 11109 11244 mov bp, sp ; 89 e5 … … 11115 11250 add dx, strict byte 00008h ; 83 c2 08 11116 11251 mov ax, strict word 00040h ; b8 40 00 11117 call 0166ch ; e8 5 89e11252 call 0166ch ; e8 5c 9e 11118 11253 mov bx, ax ; 89 c3 11119 11254 mov si, ax ; 89 c6 11120 11255 cmp byte [bp+013h], 003h ; 80 7e 13 03 11121 jnc short 0782 ah ; 73 0c11256 jnc short 07826h ; 73 0c 11122 11257 mov ax, word [bp+00eh] ; 8b 46 0e 11123 11258 cmp ax, strict word 00003h ; 3d 03 00 11124 jnc short 0782 ah ; 73 0411259 jnc short 07826h ; 73 04 11125 11260 test bx, bx ; 85 db 11126 jnbe short 0782 dh ; 77 0311127 jmp near 078a 5h ; e9 78 0011261 jnbe short 07829h ; 77 03 11262 jmp near 078a1h ; e9 78 00 11128 11263 mov dx, ax ; 89 c2 11129 11264 add dx, strict byte 00078h ; 83 c2 78 11130 11265 mov ax, strict word 00040h ; b8 40 00 11131 call 01650h ; e8 1 89e11266 call 01650h ; e8 1c 9e 11132 11267 xor ah, ah ; 30 e4 11133 11268 mov cx, ax ; 89 c1 11134 11269 sal cx, 008h ; c1 e1 08 11135 11270 cmp byte [bp+013h], 000h ; 80 7e 13 00 11136 jne short 078 71h ; 75 2c11271 jne short 0786dh ; 75 2c 11137 11272 mov al, byte [bp+012h] ; 8a 46 12 11138 11273 mov dx, bx ; 89 da … … 11154 11289 ; sub ah, ah ; 2a e4 11155 11290 test AL, strict byte 040h ; a8 40 11156 je short 078 71h ; 74 0711291 je short 0786dh ; 74 07 11157 11292 test cx, cx ; 85 c9 11158 je short 078 71h ; 74 0311293 je short 0786dh ; 74 03 11159 11294 dec cx ; 49 11160 jmp short 078 60h ; eb ef11295 jmp short 0785ch ; eb ef 11161 11296 cmp byte [bp+013h], 001h ; 80 7e 13 01 11162 jne short 0788 ch ; 75 1511297 jne short 07888h ; 75 15 11163 11298 lea dx, [si+002h] ; 8d 54 02 11164 11299 in AL, DX ; ec … … 11179 11314 mov byte [bp+013h], al ; 88 46 13 11180 11315 test cx, cx ; 85 c9 11181 jne short 0789 fh ; 75 0411316 jne short 0789bh ; 75 04 11182 11317 or byte [bp+013h], 001h ; 80 4e 13 01 11183 11318 and byte [bp+01ch], 0feh ; 80 66 1c fe 11184 jmp short 078a 9h ; eb 0411319 jmp short 078a5h ; eb 04 11185 11320 or byte [bp+01ch], 001h ; 80 4e 1c 01 11186 11321 lea sp, [bp-002h] ; 8d 66 fe … … 11188 11323 pop bp ; 5d 11189 11324 retn ; c3 11190 wait_: ; 0xf78a fLB 0xaf11325 wait_: ; 0xf78ab LB 0xaf 11191 11326 push bp ; 55 11192 11327 mov bp, sp ; 89 e5 … … 11206 11341 mov dx, 0046ch ; ba 6c 04 11207 11342 xor ax, ax ; 31 c0 11208 call 01688h ; e8 b 69d11343 call 01688h ; e8 ba 9d 11209 11344 mov word [bp-010h], ax ; 89 46 f0 11210 11345 mov bx, dx ; 89 d3 … … 11212 11347 mov dx, 0046ch ; ba 6c 04 11213 11348 xor ax, ax ; 31 c0 11214 call 01688h ; e8 a 89d11349 call 01688h ; e8 ac 9d 11215 11350 mov word [bp-012h], ax ; 89 46 ee 11216 11351 mov di, dx ; 89 d7 11217 11352 cmp dx, bx ; 39 da 11218 jnbe short 078 f0h ; 77 0711219 jne short 078f 7h ; 75 0c11353 jnbe short 078ech ; 77 07 11354 jne short 078f3h ; 75 0c 11220 11355 cmp ax, word [bp-010h] ; 3b 46 f0 11221 jbe short 078f 7h ; 76 0711356 jbe short 078f3h ; 76 07 11222 11357 sub ax, word [bp-010h] ; 2b 46 f0 11223 11358 sbb dx, bx ; 19 da 11224 jmp short 07 902h ; eb 0b11359 jmp short 078feh ; eb 0b 11225 11360 cmp dx, bx ; 39 da 11226 jc short 07 902h ; 72 0711227 jne short 0790 6h ; 75 0911361 jc short 078feh ; 72 07 11362 jne short 07902h ; 75 09 11228 11363 cmp ax, word [bp-010h] ; 3b 46 f0 11229 jnc short 0790 6h ; 73 0411364 jnc short 07902h ; 73 04 11230 11365 sub si, ax ; 29 c6 11231 11366 sbb cx, dx ; 19 d1 … … 11235 11370 mov ax, 00100h ; b8 00 01 11236 11371 int 016h ; cd 16 11237 je short 0791 ah ; 74 0511372 je short 07916h ; 74 05 11238 11373 mov AL, strict byte 001h ; b0 01 11239 jmp near 0791 ch ; e9 02 0011374 jmp near 07918h ; e9 02 00 11240 11375 db 032h, 0c0h 11241 11376 ; xor al, al ; 32 c0 11242 11377 test al, al ; 84 c0 11243 je short 079 43h ; 74 2311378 je short 0793fh ; 74 23 11244 11379 db 033h, 0c0h 11245 11380 ; xor ax, ax ; 33 c0 … … 11252 11387 push 00996h ; 68 96 09 11253 11388 push strict byte 00004h ; 6a 04 11254 call 01966h ; e8 3 0a011389 call 01966h ; e8 34 a0 11255 11390 add sp, strict byte 00006h ; 83 c4 06 11256 11391 cmp byte [bp-00ah], 000h ; 80 7e f6 00 11257 je short 079 43h ; 74 0411392 je short 0793fh ; 74 04 11258 11393 mov al, dl ; 88 d0 11259 jmp short 0795 5h ; eb 1211394 jmp short 07951h ; eb 12 11260 11395 test cx, cx ; 85 c9 11261 jnle short 078d 7h ; 7f 9011262 jne short 0794 dh ; 75 0411396 jnle short 078d3h ; 7f 90 11397 jne short 07949h ; 75 04 11263 11398 test si, si ; 85 f6 11264 jnbe short 078d 7h ; 77 8a11399 jnbe short 078d3h ; 77 8a 11265 11400 mov ax, word [bp-00eh] ; 8b 46 f2 11266 11401 push ax ; 50 … … 11274 11409 pop bp ; 5d 11275 11410 retn ; c3 11276 read_logo_byte_: ; 0xf795 eLB 0x1611411 read_logo_byte_: ; 0xf795a LB 0x16 11277 11412 push bp ; 55 11278 11413 mov bp, sp ; 89 e5 … … 11289 11424 pop bp ; 5d 11290 11425 retn ; c3 11291 read_logo_word_: ; 0xf797 4LB 0x1411426 read_logo_word_: ; 0xf7970 LB 0x14 11292 11427 push bp ; 55 11293 11428 mov bp, sp ; 89 e5 … … 11302 11437 pop bp ; 5d 11303 11438 retn ; c3 11304 print_detected_harddisks_: ; 0xf798 8LB 0x13a11439 print_detected_harddisks_: ; 0xf7984 LB 0x13a 11305 11440 push bp ; 55 11306 11441 mov bp, sp ; 89 e5 … … 11314 11449 mov dx, strict word 0000eh ; ba 0e 00 11315 11450 mov ax, strict word 00040h ; b8 40 00 11316 call 0166ch ; e8 d 19c11451 call 0166ch ; e8 d5 9c 11317 11452 mov si, ax ; 89 c6 11318 11453 mov byte [bp-00eh], 000h ; c6 46 f2 00 … … 11320 11455 xor ch, ch ; 30 ed 11321 11456 mov dx, 00304h ; ba 04 03 11322 call 01650h ; e8 a 59c11457 call 01650h ; e8 a9 9c 11323 11458 mov byte [bp-00ch], al ; 88 46 f4 11324 11459 xor bl, bl ; 30 db 11325 11460 cmp bl, byte [bp-00ch] ; 3a 5e f4 11326 jnc short 07a 12h ; 73 5d11461 jnc short 07a0eh ; 73 5d 11327 11462 mov al, bl ; 88 d8 11328 11463 xor ah, ah ; 30 e4 … … 11330 11465 add dx, 00305h ; 81 c2 05 03 11331 11466 mov ax, si ; 89 f0 11332 call 01650h ; e8 8c9c11467 call 01650h ; e8 90 9c 11333 11468 mov bh, al ; 88 c7 11334 11469 cmp AL, strict byte 00ch ; 3c 0c 11335 jc short 079e fh ; 72 2511470 jc short 079ebh ; 72 25 11336 11471 test cl, cl ; 84 c9 11337 jne short 079d bh ; 75 0d11472 jne short 079d7h ; 75 0d 11338 11473 push 009a7h ; 68 a7 09 11339 11474 push strict byte 00002h ; 6a 02 11340 call 01966h ; e8 9 09f11475 call 01966h ; e8 94 9f 11341 11476 add sp, strict byte 00004h ; 83 c4 04 11342 11477 mov CL, strict byte 001h ; b1 01 … … 11347 11482 push 009bch ; 68 bc 09 11348 11483 push strict byte 00002h ; 6a 02 11349 call 01966h ; e8 7d9f11484 call 01966h ; e8 81 9f 11350 11485 add sp, strict byte 00006h ; 83 c4 06 11351 jmp near 07a8 fh ; e9 a0 0011486 jmp near 07a8bh ; e9 a0 00 11352 11487 cmp AL, strict byte 008h ; 3c 08 11353 jc short 07a0 6h ; 72 1311488 jc short 07a02h ; 72 13 11354 11489 test ch, ch ; 84 ed 11355 jne short 07a0 4h ; 75 0d11490 jne short 07a00h ; 75 0d 11356 11491 push 009cfh ; 68 cf 09 11357 11492 push strict byte 00002h ; 6a 02 11358 call 01966h ; e8 6 79f11493 call 01966h ; e8 6b 9f 11359 11494 add sp, strict byte 00004h ; 83 c4 04 11360 11495 mov CH, strict byte 001h ; b5 01 11361 jmp short 079d bh ; eb d511496 jmp short 079d7h ; eb d5 11362 11497 cmp AL, strict byte 004h ; 3c 04 11363 jnc short 07a2 6h ; 73 1c11498 jnc short 07a22h ; 73 1c 11364 11499 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11365 je short 07a1 5h ; 74 0511366 jmp short 07a2 6h ; eb 1411367 jmp near 07a9 4h ; e9 7f 0011500 je short 07a11h ; 74 05 11501 jmp short 07a22h ; eb 14 11502 jmp near 07a90h ; e9 7f 00 11368 11503 push 009e4h ; 68 e4 09 11369 11504 push strict byte 00002h ; 6a 02 11370 call 01966h ; e8 4 99f11505 call 01966h ; e8 4d 9f 11371 11506 add sp, strict byte 00004h ; 83 c4 04 11372 11507 mov byte [bp-00eh], 001h ; c6 46 f2 01 11373 jmp short 07a3 ch ; eb 1611508 jmp short 07a38h ; eb 16 11374 11509 cmp bh, 004h ; 80 ff 04 11375 jc short 07a3 ch ; 72 1111510 jc short 07a38h ; 72 11 11376 11511 test cl, cl ; 84 c9 11377 jne short 07a3 ch ; 75 0d11512 jne short 07a38h ; 75 0d 11378 11513 push 009f6h ; 68 f6 09 11379 11514 push strict byte 00002h ; 6a 02 11380 call 01966h ; e8 2f9f11515 call 01966h ; e8 33 9f 11381 11516 add sp, strict byte 00004h ; 83 c4 04 11382 11517 mov CL, strict byte 001h ; b1 01 … … 11387 11522 push 00a0ah ; 68 0a 0a 11388 11523 push strict byte 00002h ; 6a 02 11389 call 01966h ; e8 1c9f11524 call 01966h ; e8 20 9f 11390 11525 add sp, strict byte 00006h ; 83 c4 06 11391 11526 cmp bh, 004h ; 80 ff 04 11392 jc short 07a5 5h ; 72 0311527 jc short 07a51h ; 72 03 11393 11528 sub bh, 004h ; 80 ef 04 11394 11529 mov al, bh ; 88 f8 … … 11399 11534 sar ax, 1 ; d1 f8 11400 11535 test ax, ax ; 85 c0 11401 je short 07a6 7h ; 74 0511536 je short 07a63h ; 74 05 11402 11537 push 00a14h ; 68 14 0a 11403 jmp short 07a6 ah ; eb 0311538 jmp short 07a66h ; eb 03 11404 11539 push 00a1fh ; 68 1f 0a 11405 11540 push strict byte 00002h ; 6a 02 11406 call 01966h ; e8 f 79e11541 call 01966h ; e8 fb 9e 11407 11542 add sp, strict byte 00004h ; 83 c4 04 11408 11543 mov al, bh ; 88 f8 … … 11412 11547 idiv di ; f7 ff 11413 11548 test dx, dx ; 85 d2 11414 je short 07a8 5h ; 74 0511549 je short 07a81h ; 74 05 11415 11550 push 00a28h ; 68 28 0a 11416 jmp short 07a8 8h ; eb 0311551 jmp short 07a84h ; eb 03 11417 11552 push 00a2eh ; 68 2e 0a 11418 11553 push di ; 57 11419 call 01966h ; e8 d a9e11554 call 01966h ; e8 de 9e 11420 11555 add sp, strict byte 00004h ; 83 c4 04 11421 11556 db 0feh, 0c3h 11422 11557 ; inc bl ; fe c3 11423 jmp near 079 b0h ; e9 1c ff11558 jmp near 079ach ; e9 1c ff 11424 11559 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11425 jne short 07aa dh ; 75 1311560 jne short 07aa9h ; 75 13 11426 11561 test cl, cl ; 84 c9 11427 jne short 07aa dh ; 75 0f11562 jne short 07aa9h ; 75 0f 11428 11563 test ch, ch ; 84 ed 11429 jne short 07aa dh ; 75 0b11564 jne short 07aa9h ; 75 0b 11430 11565 push 00a35h ; 68 35 0a 11431 11566 push strict byte 00002h ; 6a 02 11432 call 01966h ; e8 bc9e11567 call 01966h ; e8 c0 9e 11433 11568 add sp, strict byte 00004h ; 83 c4 04 11434 11569 push 00a49h ; 68 49 0a 11435 11570 push strict byte 00002h ; 6a 02 11436 call 01966h ; e8 b 19e11571 call 01966h ; e8 b5 9e 11437 11572 add sp, strict byte 00004h ; 83 c4 04 11438 11573 lea sp, [bp-00ah] ; 8d 66 f6 … … 11444 11579 pop bp ; 5d 11445 11580 retn ; c3 11446 get_boot_drive_: ; 0xf7a c2LB 0x2811581 get_boot_drive_: ; 0xf7abe LB 0x28 11447 11582 push bp ; 55 11448 11583 mov bp, sp ; 89 e5 … … 11452 11587 mov dx, strict word 0000eh ; ba 0e 00 11453 11588 mov ax, strict word 00040h ; b8 40 00 11454 call 0166ch ; e8 9 a9b11589 call 0166ch ; e8 9e 9b 11455 11590 mov dx, 00304h ; ba 04 03 11456 call 01650h ; e8 7 89b11591 call 01650h ; e8 7c 9b 11457 11592 sub bl, 002h ; 80 eb 02 11458 11593 cmp bl, al ; 38 c3 11459 jc short 07a e1h ; 72 0211594 jc short 07addh ; 72 02 11460 11595 mov BL, strict byte 0ffh ; b3 ff 11461 11596 mov al, bl ; 88 d8 … … 11465 11600 pop bp ; 5d 11466 11601 retn ; c3 11467 show_logo_: ; 0xf7ae aLB 0x22611602 show_logo_: ; 0xf7ae6 LB 0x226 11468 11603 push bp ; 55 11469 11604 mov bp, sp ; 89 e5 … … 11476 11611 mov dx, strict word 0000eh ; ba 0e 00 11477 11612 mov ax, strict word 00040h ; b8 40 00 11478 call 0166ch ; e8 6e9b11613 call 0166ch ; e8 72 9b 11479 11614 mov si, ax ; 89 c6 11480 11615 xor cl, cl ; 30 c9 … … 11488 11623 mov al, dl ; 88 d0 11489 11624 xor ah, ah ; 30 e4 11490 call 0797 4h ; e8 5d fe11625 call 07970h ; e8 5d fe 11491 11626 cmp ax, 066bbh ; 3d bb 66 11492 jne short 07b2 eh ; 75 1211627 jne short 07b2ah ; 75 12 11493 11628 push SS ; 16 11494 11629 pop ES ; 07 … … 11498 11633 mov word [es:di], bx ; 26 89 1d 11499 11634 cmp ax, strict word 0004fh ; 3d 4f 00 11500 je short 07b 31h ; 74 0311501 jmp near 07be eh ; e9 bd 0011635 je short 07b2dh ; 74 03 11636 jmp near 07beah ; e9 bd 00 11502 11637 mov al, dl ; 88 d0 11503 11638 add AL, strict byte 004h ; 04 04 11504 11639 xor ah, ah ; 30 e4 11505 call 0795 eh ; e8 24 fe11640 call 0795ah ; e8 24 fe 11506 11641 mov ch, al ; 88 c5 11507 11642 mov byte [bp-012h], al ; 88 46 ee … … 11509 11644 add AL, strict byte 005h ; 04 05 11510 11645 xor ah, ah ; 30 e4 11511 call 0795 eh ; e8 16 fe11646 call 0795ah ; e8 16 fe 11512 11647 mov dh, al ; 88 c6 11513 11648 mov byte [bp-010h], al ; 88 46 f0 … … 11515 11650 add AL, strict byte 002h ; 04 02 11516 11651 xor ah, ah ; 30 e4 11517 call 0797 4h ; e8 1e fe11652 call 07970h ; e8 1e fe 11518 11653 mov bx, ax ; 89 c3 11519 11654 mov word [bp-014h], ax ; 89 46 ec … … 11521 11656 add AL, strict byte 006h ; 04 06 11522 11657 xor ah, ah ; 30 e4 11523 call 0795 eh ; e8 fa fd11658 call 0795ah ; e8 fa fd 11524 11659 mov byte [bp-00eh], al ; 88 46 f2 11525 11660 test ch, ch ; 84 ed 11526 jne short 07b 73h ; 75 0811661 jne short 07b6fh ; 75 08 11527 11662 test dh, dh ; 84 f6 11528 jne short 07b 73h ; 75 0411663 jne short 07b6fh ; 75 04 11529 11664 test bx, bx ; 85 db 11530 je short 07bc bh ; 74 5811665 je short 07bc7h ; 74 58 11531 11666 mov bx, 00142h ; bb 42 01 11532 11667 mov ax, 04f02h ; b8 02 4f 11533 11668 int 010h ; cd 10 11534 11669 cmp byte [bp-012h], 000h ; 80 7e ee 00 11535 je short 07ba 4h ; 74 2311670 je short 07ba0h ; 74 23 11536 11671 xor bx, bx ; 31 db 11537 jmp short 07b8 bh ; eb 0611672 jmp short 07b87h ; eb 06 11538 11673 inc bx ; 43 11539 11674 cmp bx, strict byte 00010h ; 83 fb 10 11540 jnbe short 07ba bh ; 77 2011675 jnbe short 07ba7h ; 77 20 11541 11676 mov ax, bx ; 89 d8 11542 11677 or ah, 002h ; 80 cc 02 … … 11545 11680 xor dx, dx ; 31 d2 11546 11681 mov ax, strict word 00001h ; b8 01 00 11547 call 078a fh ; e8 13 fd11682 call 078abh ; e8 13 fd 11548 11683 cmp AL, strict byte 086h ; 3c 86 11549 jne short 07b8 5h ; 75 e511684 jne short 07b81h ; 75 e5 11550 11685 mov CL, strict byte 001h ; b1 01 11551 jmp short 07ba bh ; eb 0711686 jmp short 07ba7h ; eb 07 11552 11687 mov ax, 00210h ; b8 10 02 11553 11688 mov dx, 003b8h ; ba b8 03 11554 11689 out DX, ax ; ef 11555 11690 test cl, cl ; 84 c9 11556 jne short 07b c1h ; 75 1211691 jne short 07bbdh ; 75 12 11557 11692 mov ax, word [bp-014h] ; 8b 46 ec 11558 11693 shr ax, 004h ; c1 e8 04 11559 11694 mov dx, strict word 00001h ; ba 01 00 11560 call 078a fh ; e8 f4 fc11695 call 078abh ; e8 f4 fc 11561 11696 cmp AL, strict byte 086h ; 3c 86 11562 jne short 07b c1h ; 75 0211697 jne short 07bbdh ; 75 02 11563 11698 mov CL, strict byte 001h ; b1 01 11564 11699 cmp byte [bp-010h], 000h ; 80 7e f0 00 11565 je short 07be eh ; 74 2711700 je short 07beah ; 74 27 11566 11701 test cl, cl ; 84 c9 11567 je short 07bc dh ; 74 0211568 jmp short 07be eh ; eb 2111702 je short 07bc9h ; 74 02 11703 jmp short 07beah ; eb 21 11569 11704 mov bx, strict word 00010h ; bb 10 00 11570 jmp short 07bd 7h ; eb 0511705 jmp short 07bd3h ; eb 05 11571 11706 dec bx ; 4b 11572 11707 test bx, bx ; 85 db 11573 jbe short 07be eh ; 76 1711708 jbe short 07beah ; 76 17 11574 11709 mov ax, bx ; 89 d8 11575 11710 or ah, 002h ; 80 cc 02 … … 11578 11713 xor dx, dx ; 31 d2 11579 11714 mov ax, strict word 00001h ; b8 01 00 11580 call 078a fh ; e8 c7 fc11715 call 078abh ; e8 c7 fc 11581 11716 cmp AL, strict byte 086h ; 3c 86 11582 jne short 07b d2h ; 75 e611717 jne short 07bceh ; 75 e6 11583 11718 mov CL, strict byte 001h ; b1 01 11584 11719 xor bx, bx ; 31 db 11585 11720 mov dx, 0037dh ; ba 7d 03 11586 11721 mov ax, si ; 89 f0 11587 call 0165eh ; e8 6 69a11722 call 0165eh ; e8 6a 9a 11588 11723 mov AL, strict byte 003h ; b0 03 11589 11724 mov AH, strict byte 000h ; b4 00 11590 11725 int 010h ; cd 10 11591 11726 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11592 je short 07c1 8h ; 74 1411727 je short 07c14h ; 74 14 11593 11728 cmp byte [bp-012h], 000h ; 80 7e ee 00 11594 jne short 07c3 fh ; 75 3511729 jne short 07c3bh ; 75 35 11595 11730 cmp byte [bp-010h], 000h ; 80 7e f0 00 11596 jne short 07c3 fh ; 75 2f11731 jne short 07c3bh ; 75 2f 11597 11732 cmp word [bp-014h], strict byte 00000h ; 83 7e ec 00 11598 je short 07c1 bh ; 74 0511599 jmp short 07c3 fh ; eb 2711600 jmp near 07c f3h ; e9 d8 0011733 je short 07c17h ; 74 05 11734 jmp short 07c3bh ; eb 27 11735 jmp near 07cefh ; e9 d8 00 11601 11736 cmp byte [bp-00eh], 002h ; 80 7e f2 02 11602 jne short 07c2 ch ; 75 0b11737 jne short 07c28h ; 75 0b 11603 11738 push 00a4bh ; 68 4b 0a 11604 11739 push strict byte 00002h ; 6a 02 11605 call 01966h ; e8 3d9d11740 call 01966h ; e8 41 9d 11606 11741 add sp, strict byte 00004h ; 83 c4 04 11607 11742 test cl, cl ; 84 c9 11608 jne short 07c3 fh ; 75 0f11743 jne short 07c3bh ; 75 0f 11609 11744 mov dx, strict word 00001h ; ba 01 00 11610 11745 mov ax, 000c0h ; b8 c0 00 11611 call 078a fh ; e8 76 fc11746 call 078abh ; e8 76 fc 11612 11747 cmp AL, strict byte 086h ; 3c 86 11613 jne short 07c3 fh ; 75 0211748 jne short 07c3bh ; 75 02 11614 11749 mov CL, strict byte 001h ; b1 01 11615 11750 test cl, cl ; 84 c9 11616 je short 07c1 8h ; 74 d511751 je short 07c14h ; 74 d5 11617 11752 mov byte [bp-00ch], 000h ; c6 46 f4 00 11618 11753 mov ax, 00100h ; b8 00 01 … … 11633 11768 push 00a6dh ; 68 6d 0a 11634 11769 push strict byte 00002h ; 6a 02 11635 call 01966h ; e8 f a9c11770 call 01966h ; e8 fe 9c 11636 11771 add sp, strict byte 00004h ; 83 c4 04 11637 call 0798 8h ; e8 16 fd11772 call 07984h ; e8 16 fd 11638 11773 push 00ab1h ; 68 b1 0a 11639 11774 push strict byte 00002h ; 6a 02 11640 call 01966h ; e8 ec9c11775 call 01966h ; e8 f0 9c 11641 11776 add sp, strict byte 00004h ; 83 c4 04 11642 11777 mov dx, strict word 00001h ; ba 01 00 11643 11778 mov ax, strict word 00040h ; b8 40 00 11644 call 078a fh ; e8 29 fc11779 call 078abh ; e8 29 fc 11645 11780 mov bl, al ; 88 c3 11646 11781 test al, al ; 84 c0 11647 je short 07c7 dh ; 74 f111782 je short 07c79h ; 74 f1 11648 11783 cmp AL, strict byte 030h ; 3c 30 11649 je short 07c e0h ; 74 5011784 je short 07cdch ; 74 50 11650 11785 cmp bl, 002h ; 80 fb 02 11651 jc short 07cb 9h ; 72 2411786 jc short 07cb5h ; 72 24 11652 11787 cmp bl, 009h ; 80 fb 09 11653 jnbe short 07cb 9h ; 77 1f11788 jnbe short 07cb5h ; 77 1f 11654 11789 mov al, bl ; 88 d8 11655 11790 xor ah, ah ; 30 e4 11656 call 07a c2h ; e8 21 fe11791 call 07abeh ; e8 21 fe 11657 11792 cmp AL, strict byte 0ffh ; 3c ff 11658 jne short 07ca 7h ; 75 0211659 jmp short 07c7 dh ; eb d611793 jne short 07ca3h ; 75 02 11794 jmp short 07c79h ; eb d6 11660 11795 mov bl, al ; 88 c3 11661 11796 xor bh, bh ; 30 ff 11662 11797 mov dx, 0037ch ; ba 7c 03 11663 11798 mov ax, si ; 89 f0 11664 call 0165eh ; e8 a b9911799 call 0165eh ; e8 af 99 11665 11800 mov byte [bp-00ch], 002h ; c6 46 f4 02 11666 jmp short 07c e0h ; eb 2711801 jmp short 07cdch ; eb 27 11667 11802 cmp bl, 02eh ; 80 fb 2e 11668 je short 07cc eh ; 74 1011803 je short 07ccah ; 74 10 11669 11804 cmp bl, 026h ; 80 fb 26 11670 je short 07cd 4h ; 74 1111805 je short 07cd0h ; 74 11 11671 11806 cmp bl, 021h ; 80 fb 21 11672 jne short 07cd ah ; 75 1211807 jne short 07cd6h ; 75 12 11673 11808 mov byte [bp-00ch], 001h ; c6 46 f4 01 11674 jmp short 07c e0h ; eb 1211809 jmp short 07cdch ; eb 12 11675 11810 mov byte [bp-00ch], 003h ; c6 46 f4 03 11676 jmp short 07c e0h ; eb 0c11811 jmp short 07cdch ; eb 0c 11677 11812 mov byte [bp-00ch], 004h ; c6 46 f4 04 11678 jmp short 07c e0h ; eb 0611813 jmp short 07cdch ; eb 06 11679 11814 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11680 je short 07c7 dh ; 74 9d11815 je short 07c79h ; 74 9d 11681 11816 mov bl, byte [bp-00ch] ; 8a 5e f4 11682 11817 xor bh, bh ; 30 ff 11683 11818 mov dx, 0037dh ; ba 7d 03 11684 11819 mov ax, si ; 89 f0 11685 call 0165eh ; e8 7 19911820 call 0165eh ; e8 75 99 11686 11821 mov AL, strict byte 003h ; b0 03 11687 11822 mov AH, strict byte 000h ; b4 00 … … 11696 11831 push DS ; 1e 11697 11832 mov ds, ax ; 8e d8 11698 call 0edbfh ; e8 b b7011833 call 0edbfh ; e8 bf 70 11699 11834 pop DS ; 1f 11700 11835 pop bp ; 5d … … 11707 11842 pop bp ; 5d 11708 11843 retn ; c3 11709 delay_boot_: ; 0xf7d 10LB 0x6b11844 delay_boot_: ; 0xf7d0c LB 0x6b 11710 11845 push bp ; 55 11711 11846 mov bp, sp ; 89 e5 … … 11717 11852 mov dx, ax ; 89 c2 11718 11853 test ax, ax ; 85 c0 11719 je short 07d 71h ; 74 5311854 je short 07d6dh ; 74 53 11720 11855 mov AL, strict byte 034h ; b0 34 11721 11856 out strict byte 043h, AL ; e6 43 … … 11727 11862 push 00afbh ; 68 fb 0a 11728 11863 push strict byte 00002h ; 6a 02 11729 call 01966h ; e8 3 39c11864 call 01966h ; e8 37 9c 11730 11865 add sp, strict byte 00006h ; 83 c4 06 11731 11866 mov bx, dx ; 89 d3 11732 11867 test bx, bx ; 85 db 11733 jbe short 07d 53h ; 76 1711868 jbe short 07d4fh ; 76 17 11734 11869 push bx ; 53 11735 11870 push 00b19h ; 68 19 0b 11736 11871 push strict byte 00002h ; 6a 02 11737 call 01966h ; e8 2 19c11872 call 01966h ; e8 25 9c 11738 11873 add sp, strict byte 00006h ; 83 c4 06 11739 11874 xor dx, dx ; 31 d2 11740 11875 mov ax, strict word 00040h ; b8 40 00 11741 call 078a fh ; e8 5f fb11876 call 078abh ; e8 5f fb 11742 11877 dec bx ; 4b 11743 jmp short 07d3 8h ; eb e511878 jmp short 07d34h ; eb e5 11744 11879 push 00a49h ; 68 49 0a 11745 11880 push strict byte 00002h ; 6a 02 11746 call 01966h ; e8 0 b9c11881 call 01966h ; e8 0f 9c 11747 11882 add sp, strict byte 00004h ; 83 c4 04 11748 11883 mov AL, strict byte 034h ; b0 34 … … 11755 11890 push DS ; 1e 11756 11891 mov ds, ax ; 8e d8 11757 call 0edbfh ; e8 5 07011892 call 0edbfh ; e8 54 70 11758 11893 pop DS ; 1f 11759 11894 pop bp ; 5d … … 11766 11901 pop bp ; 5d 11767 11902 retn ; c3 11768 scsi_cmd_data_in_: ; 0xf7d7 bLB 0xd511903 scsi_cmd_data_in_: ; 0xf7d77 LB 0xd5 11769 11904 push bp ; 55 11770 11905 mov bp, sp ; 89 e5 … … 11782 11917 ; sub ah, ah ; 2a e4 11783 11918 test AL, strict byte 001h ; a8 01 11784 jne short 07d 91h ; 75 f711919 jne short 07d8dh ; 75 f7 11785 11920 mov al, byte [bp+004h] ; 8a 46 04 11786 11921 cmp AL, strict byte 010h ; 3c 10 11787 jne short 07da 5h ; 75 0411922 jne short 07da1h ; 75 04 11788 11923 xor ax, ax ; 31 c0 11789 jmp short 07da 7h ; eb 0211924 jmp short 07da3h ; eb 02 11790 11925 xor ah, ah ; 30 e4 11791 11926 mov di, ax ; 89 c7 … … 11795 11930 shr dx, 1 ; d1 ea 11796 11931 rcr ax, 1 ; d1 d8 11797 loop 07d b1h ; e2 fa11932 loop 07dadh ; e2 fa 11798 11933 mov cx, ax ; 89 c1 11799 11934 and cx, 000f0h ; 81 e1 f0 00 … … 11813 11948 shr dx, 1 ; d1 ea 11814 11949 rcr ax, 1 ; d1 d8 11815 loop 07dd 6h ; e2 fa11950 loop 07dd2h ; e2 fa 11816 11951 mov dx, si ; 89 f2 11817 11952 out DX, AL ; ee … … 11820 11955 xor ah, ah ; 30 e4 11821 11956 cmp cx, ax ; 39 c1 11822 jnc short 07df 8h ; 73 0e11957 jnc short 07df4h ; 73 0e 11823 11958 les di, [bp-00ah] ; c4 7e f6 11824 11959 add di, cx ; 01 cf … … 11827 11962 out DX, AL ; ee 11828 11963 inc cx ; 41 11829 jmp short 07d e1h ; eb e911964 jmp short 07dddh ; eb e9 11830 11965 mov dx, si ; 89 f2 11831 11966 in AL, DX ; ec … … 11833 11968 ; sub ah, ah ; 2a e4 11834 11969 test AL, strict byte 001h ; a8 01 11835 jne short 07df 8h ; 75 f711970 jne short 07df4h ; 75 f7 11836 11971 test AL, strict byte 002h ; a8 02 11837 je short 07e 13h ; 74 0e11972 je short 07e0fh ; 74 0e 11838 11973 lea dx, [si+003h] ; 8d 54 03 11839 11974 xor al, al ; 30 c0 … … 11843 11978 ; sub ah, ah ; 2a e4 11844 11979 mov di, strict word 00004h ; bf 04 00 11845 jmp short 07e4 5h ; eb 3211980 jmp short 07e41h ; eb 32 11846 11981 lea dx, [si+001h] ; 8d 54 01 11847 11982 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 11848 jne short 07e 22h ; 75 0611983 jne short 07e1eh ; 75 06 11849 11984 cmp bx, 08000h ; 81 fb 00 80 11850 jbe short 07e3 ch ; 76 1a11985 jbe short 07e38h ; 76 1a 11851 11986 mov cx, 08000h ; b9 00 80 11852 11987 les di, [bp+006h] ; c4 7e 06 … … 11857 11992 add ax, 00800h ; 05 00 08 11858 11993 mov word [bp+008h], ax ; 89 46 08 11859 jmp short 07e 13h ; eb d711994 jmp short 07e0fh ; eb d7 11860 11995 mov cx, bx ; 89 d9 11861 11996 les di, [bp+006h] ; c4 7e 06 … … 11868 12003 pop bp ; 5d 11869 12004 retn 0000ah ; c2 0a 00 11870 scsi_cmd_data_out_: ; 0xf7e 50LB 0xd512005 scsi_cmd_data_out_: ; 0xf7e4c LB 0xd5 11871 12006 push bp ; 55 11872 12007 mov bp, sp ; 89 e5 … … 11884 12019 ; sub ah, ah ; 2a e4 11885 12020 test AL, strict byte 001h ; a8 01 11886 jne short 07e6 6h ; 75 f712021 jne short 07e62h ; 75 f7 11887 12022 mov al, byte [bp+004h] ; 8a 46 04 11888 12023 cmp AL, strict byte 010h ; 3c 10 11889 jne short 07e7 ah ; 75 0412024 jne short 07e76h ; 75 04 11890 12025 xor ax, ax ; 31 c0 11891 jmp short 07e7 ch ; eb 0212026 jmp short 07e78h ; eb 02 11892 12027 xor ah, ah ; 30 e4 11893 12028 mov si, ax ; 89 c6 … … 11897 12032 shr dx, 1 ; d1 ea 11898 12033 rcr ax, 1 ; d1 d8 11899 loop 07e8 6h ; e2 fa12034 loop 07e82h ; e2 fa 11900 12035 mov cx, ax ; 89 c1 11901 12036 and cx, 000f0h ; 81 e1 f0 00 … … 11915 12050 shr dx, 1 ; d1 ea 11916 12051 rcr ax, 1 ; d1 d8 11917 loop 07ea bh ; e2 fa12052 loop 07ea7h ; e2 fa 11918 12053 mov dx, di ; 89 fa 11919 12054 out DX, AL ; ee … … 11922 12057 xor ah, ah ; 30 e4 11923 12058 cmp cx, ax ; 39 c1 11924 jnc short 07ec dh ; 73 0e12059 jnc short 07ec9h ; 73 0e 11925 12060 les si, [bp-00ah] ; c4 76 f6 11926 12061 add si, cx ; 01 ce … … 11929 12064 out DX, AL ; ee 11930 12065 inc cx ; 41 11931 jmp short 07eb 6h ; eb e912066 jmp short 07eb2h ; eb e9 11932 12067 lea dx, [di+001h] ; 8d 55 01 11933 12068 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 11934 jne short 07ed ch ; 75 0612069 jne short 07ed8h ; 75 06 11935 12070 cmp bx, 08000h ; 81 fb 00 80 11936 jbe short 07ef 7h ; 76 1b12071 jbe short 07ef3h ; 76 1b 11937 12072 mov cx, 08000h ; b9 00 80 11938 12073 les si, [bp+006h] ; c4 76 06 … … 11944 12079 add ax, 00800h ; 05 00 08 11945 12080 mov word [bp+008h], ax ; 89 46 08 11946 jmp short 07ec dh ; eb d612081 jmp short 07ec9h ; eb d6 11947 12082 mov cx, bx ; 89 d9 11948 12083 les si, [bp+006h] ; c4 76 06 … … 11954 12089 ; sub ah, ah ; 2a e4 11955 12090 test AL, strict byte 001h ; a8 01 11956 jne short 07ef fh ; 75 f712091 jne short 07efbh ; 75 f7 11957 12092 test AL, strict byte 002h ; a8 02 11958 je short 07f1 ah ; 74 0e12093 je short 07f16h ; 74 0e 11959 12094 lea dx, [di+003h] ; 8d 55 03 11960 12095 xor al, al ; 30 c0 … … 11964 12099 ; sub ah, ah ; 2a e4 11965 12100 mov ax, strict word 00004h ; b8 04 00 11966 jmp short 07f1 ch ; eb 0212101 jmp short 07f18h ; eb 02 11967 12102 xor ax, ax ; 31 c0 11968 12103 lea sp, [bp-004h] ; 8d 66 fc … … 11971 12106 pop bp ; 5d 11972 12107 retn 0000ah ; c2 0a 00 11973 @scsi_read_sectors: ; 0xf7f2 5LB 0xe012108 @scsi_read_sectors: ; 0xf7f21 LB 0xe0 11974 12109 push bp ; 55 11975 12110 mov bp, sp ; 89 e5 … … 11983 12118 mov byte [bp-006h], al ; 88 46 fa 11984 12119 cmp AL, strict byte 004h ; 3c 04 11985 jbe short 07f 51h ; 76 1112120 jbe short 07f4dh ; 76 11 11986 12121 xor ah, ah ; 30 e4 11987 12122 push ax ; 50 … … 11989 12124 push 00b30h ; 68 30 0b 11990 12125 push strict byte 00007h ; 6a 07 11991 call 01966h ; e8 1 89a12126 call 01966h ; e8 1c 9a 11992 12127 add sp, strict byte 00008h ; 83 c4 08 11993 12128 mov es, [bp+006h] ; 8e 46 06 … … 12029 12164 sal word [bp-00ah], 1 ; d1 66 f6 12030 12165 rcl word [bp-008h], 1 ; d1 56 f8 12031 loop 07fb bh ; e2 f812166 loop 07fb7h ; e2 f8 12032 12167 push word [bp-008h] ; ff 76 f8 12033 12168 push word [bp-00ah] ; ff 76 f6 … … 12038 12173 mov cx, ss ; 8c d1 12039 12174 lea bx, [bp-01ah] ; 8d 5e e6 12040 call 07d7 bh ; e8 9e fd12175 call 07d77h ; e8 9e fd 12041 12176 mov ah, al ; 88 c4 12042 12177 test al, al ; 84 c0 12043 jne short 07ff 8h ; 75 1512178 jne short 07ff4h ; 75 15 12044 12179 mov es, [bp+006h] ; 8e 46 06 12045 12180 mov word [es:si+018h], di ; 26 89 7c 18 … … 12055 12190 pop bp ; 5d 12056 12191 retn 00004h ; c2 04 00 12057 @scsi_write_sectors: ; 0xf800 5LB 0xe012192 @scsi_write_sectors: ; 0xf8001 LB 0xe0 12058 12193 push bp ; 55 12059 12194 mov bp, sp ; 89 e5 … … 12067 12202 mov byte [bp-006h], al ; 88 46 fa 12068 12203 cmp AL, strict byte 004h ; 3c 04 12069 jbe short 080 31h ; 76 1112204 jbe short 0802dh ; 76 11 12070 12205 xor ah, ah ; 30 e4 12071 12206 push ax ; 50 … … 12073 12208 push 00b30h ; 68 30 0b 12074 12209 push strict byte 00007h ; 6a 07 12075 call 01966h ; e8 3 89912210 call 01966h ; e8 3c 99 12076 12211 add sp, strict byte 00008h ; 83 c4 08 12077 12212 mov es, [bp+006h] ; 8e 46 06 … … 12113 12248 sal word [bp-00ah], 1 ; d1 66 f6 12114 12249 rcl word [bp-008h], 1 ; d1 56 f8 12115 loop 0809 bh ; e2 f812250 loop 08097h ; e2 f8 12116 12251 push word [bp-008h] ; ff 76 f8 12117 12252 push word [bp-00ah] ; ff 76 f6 … … 12122 12257 mov cx, ss ; 8c d1 12123 12258 lea bx, [bp-01ah] ; 8d 5e e6 12124 call 07e 50h ; e8 93 fd12259 call 07e4ch ; e8 93 fd 12125 12260 mov ah, al ; 88 c4 12126 12261 test al, al ; 84 c0 12127 jne short 080d 8h ; 75 1512262 jne short 080d4h ; 75 15 12128 12263 mov es, [bp+006h] ; 8e 46 06 12129 12264 mov word [es:si+018h], di ; 26 89 7c 18 … … 12139 12274 pop bp ; 5d 12140 12275 retn 00004h ; c2 04 00 12141 scsi_cmd_packet_: ; 0xf80e 5LB 0x16812276 scsi_cmd_packet_: ; 0xf80e1 LB 0x168 12142 12277 push bp ; 55 12143 12278 mov bp, sp ; 89 e5 … … 12151 12286 mov dx, strict word 0000eh ; ba 0e 00 12152 12287 mov ax, strict word 00040h ; b8 40 00 12153 call 0166ch ; e8 6 b9512288 call 0166ch ; e8 6f 95 12154 12289 mov si, 00122h ; be 22 01 12155 12290 mov word [bp-00ah], ax ; 89 46 f6 12156 12291 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 12157 jne short 0812 ch ; 75 1f12292 jne short 08128h ; 75 1f 12158 12293 mov bx, 00da0h ; bb a0 0d 12159 12294 mov cx, ds ; 8c d9 12160 12295 mov ax, strict word 00004h ; b8 04 00 12161 call 01923h ; e8 0 b9812296 call 01923h ; e8 0f 98 12162 12297 push 00b62h ; 68 62 0b 12163 12298 push 00b72h ; 68 72 0b 12164 12299 push strict byte 00004h ; 6a 04 12165 call 01966h ; e8 4 39812300 call 01966h ; e8 47 98 12166 12301 add sp, strict byte 00006h ; 83 c4 06 12167 12302 mov dx, strict word 00001h ; ba 01 00 12168 jmp near 082 42h ; e9 16 0112303 jmp near 0823eh ; e9 16 01 12169 12304 sub di, strict byte 00008h ; 83 ef 08 12170 12305 sal di, 002h ; c1 e7 02 … … 12180 12315 ; sub ah, ah ; 2a e4 12181 12316 test AL, strict byte 001h ; a8 01 12182 jne short 0814 8h ; 75 f712317 jne short 08144h ; 75 f7 12183 12318 xor ax, ax ; 31 c0 12184 12319 mov dx, word [bp+006h] ; 8b 56 06 … … 12196 12331 shr dx, 1 ; d1 ea 12197 12332 rcr ax, 1 ; d1 d8 12198 loop 081 73h ; e2 fa12333 loop 0816fh ; e2 fa 12199 12334 and ax, 000f0h ; 25 f0 00 12200 12335 mov cl, byte [bp-006h] ; 8a 4e fa … … 12215 12350 shr dx, 1 ; d1 ea 12216 12351 rcr ax, 1 ; d1 d8 12217 loop 0819 bh ; e2 fa12352 loop 08197h ; e2 fa 12218 12353 mov dx, bx ; 89 da 12219 12354 out DX, AL ; ee … … 12222 12357 xor ah, ah ; 30 e4 12223 12358 cmp cx, ax ; 39 c1 12224 jnc short 081b dh ; 73 0e12359 jnc short 081b9h ; 73 0e 12225 12360 les di, [bp-00eh] ; c4 7e f2 12226 12361 add di, cx ; 01 cf … … 12229 12364 out DX, AL ; ee 12230 12365 inc cx ; 41 12231 jmp short 081a 6h ; eb e912366 jmp short 081a2h ; eb e9 12232 12367 mov dx, bx ; 89 da 12233 12368 in AL, DX ; ec … … 12235 12370 ; sub ah, ah ; 2a e4 12236 12371 test AL, strict byte 001h ; a8 01 12237 jne short 081b dh ; 75 f712372 jne short 081b9h ; 75 f7 12238 12373 test AL, strict byte 002h ; a8 02 12239 je short 081d 8h ; 74 0e12374 je short 081d4h ; 74 0e 12240 12375 lea dx, [bx+003h] ; 8d 57 03 12241 12376 xor al, al ; 30 c0 … … 12245 12380 ; sub ah, ah ; 2a e4 12246 12381 mov dx, strict word 00003h ; ba 03 00 12247 jmp short 082 42h ; eb 6a12382 jmp short 0823eh ; eb 6a 12248 12383 mov ax, word [bp+004h] ; 8b 46 04 12249 12384 test ax, ax ; 85 c0 12250 je short 081e 7h ; 74 0812385 je short 081e3h ; 74 08 12251 12386 lea dx, [bx+001h] ; 8d 57 01 12252 12387 mov cx, ax ; 89 c1 12253 12388 in AL, DX ; ec 12254 loop 081e 4h ; e2 fd12389 loop 081e0h ; e2 fd 12255 12390 mov ax, word [bp+006h] ; 8b 46 06 12256 12391 mov es, [bp-00ah] ; 8e 46 f6 … … 12260 12395 lea ax, [bx+001h] ; 8d 47 01 12261 12396 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 12262 jne short 0820 8h ; 75 0712397 jne short 08204h ; 75 07 12263 12398 cmp word [bp+006h], 08000h ; 81 7e 06 00 80 12264 jbe short 0822 5h ; 76 1d12399 jbe short 08221h ; 76 1d 12265 12400 mov dx, ax ; 89 c2 12266 12401 mov cx, 08000h ; b9 00 80 … … 12272 12407 add ax, 00800h ; 05 00 08 12273 12408 mov word [bp+00eh], ax ; 89 46 0e 12274 jmp short 081f 8h ; eb d312409 jmp short 081f4h ; eb d3 12275 12410 mov dx, ax ; 89 c2 12276 12411 mov cx, word [bp+006h] ; 8b 4e 06 … … 12279 12414 mov es, [bp-00ah] ; 8e 46 f6 12280 12415 cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00 12281 je short 082 40h ; 74 0712416 je short 0823ch ; 74 07 12282 12417 mov cx, word [es:si+020h] ; 26 8b 4c 20 12283 12418 in AL, DX ; ec 12284 loop 0823 dh ; e2 fd12419 loop 08239h ; e2 fd 12285 12420 xor dx, dx ; 31 d2 12286 12421 mov ax, dx ; 89 d0 … … 12290 12425 pop bp ; 5d 12291 12426 retn 0000ch ; c2 0c 00 12292 scsi_enumerate_attached_devices_: ; 0xf824 dLB 0x4a612427 scsi_enumerate_attached_devices_: ; 0xf8249 LB 0x4a6 12293 12428 push bp ; 55 12294 12429 mov bp, sp ; 89 e5 … … 12302 12437 mov dx, strict word 0000eh ; ba 0e 00 12303 12438 mov ax, strict word 00040h ; b8 40 00 12304 call 0166ch ; e8 0 99412439 call 0166ch ; e8 0d 94 12305 12440 mov di, 00122h ; bf 22 01 12306 12441 mov word [bp-020h], ax ; 89 46 e0 12307 12442 mov word [bp-022h], strict word 00000h ; c7 46 de 00 00 12308 jmp near 086 71h ; e9 00 0412443 jmp near 0866dh ; e9 00 04 12309 12444 cmp AL, strict byte 004h ; 3c 04 12310 jc short 0827 8h ; 72 0312311 jmp near 086e 9h ; e9 71 0412445 jc short 08274h ; 72 03 12446 jmp near 086e5h ; e9 71 04 12312 12447 mov cx, strict word 00010h ; b9 10 00 12313 12448 xor bx, bx ; 31 db 12314 12449 mov dx, ss ; 8c d2 12315 12450 lea ax, [bp-046h] ; 8d 46 ba 12316 call 09f bah ; e8 351d12451 call 09fa0h ; e8 1f 1d 12317 12452 mov byte [bp-046h], 09eh ; c6 46 ba 9e 12318 12453 mov byte [bp-045h], 010h ; c6 46 bb 10 … … 12329 12464 lea bx, [bp-046h] ; 8d 5e ba 12330 12465 mov ax, word [bp-00248h] ; 8b 86 b8 fd 12331 call 07d7 bh ; e8 cd fa12466 call 07d77h ; e8 cd fa 12332 12467 test al, al ; 84 c0 12333 je short 082 c0h ; 74 0e12468 je short 082bch ; 74 0e 12334 12469 push 00b92h ; 68 92 0b 12335 12470 push 00bcbh ; 68 cb 0b 12336 12471 push strict byte 00007h ; 6a 07 12337 call 01966h ; e8 a 99612472 call 01966h ; e8 ad 96 12338 12473 add sp, strict byte 00006h ; 83 c4 06 12339 12474 mov ax, word [bp-00240h] ; 8b 86 c0 fd … … 12367 12502 sal ax, 1 ; d1 e0 12368 12503 rcl dx, 1 ; d1 d2 12369 loop 0830 fh ; e2 fa12504 loop 0830bh ; e2 fa 12370 12505 or bx, ax ; 09 c3 12371 12506 or dx, si ; 09 f2 … … 12375 12510 mov word [bp-028h], bx ; 89 5e d8 12376 12511 test dx, dx ; 85 d2 12377 jne short 0832 eh ; 75 0612512 jne short 0832ah ; 75 06 12378 12513 cmp bx, 00200h ; 81 fb 00 02 12379 je short 0834 eh ; 74 2012514 je short 0834ah ; 74 20 12380 12515 mov bx, 00da0h ; bb a0 0d 12381 12516 mov cx, ds ; 8c d9 12382 12517 mov ax, strict word 00004h ; b8 04 00 12383 call 01923h ; e8 e a9512518 call 01923h ; e8 ee 95 12384 12519 push dx ; 52 12385 12520 push word [bp-028h] ; ff 76 d8 … … 12387 12522 push 00beah ; 68 ea 0b 12388 12523 push strict byte 00004h ; 6a 04 12389 call 01966h ; e8 1e9612524 call 01966h ; e8 22 96 12390 12525 add sp, strict byte 0000ah ; 83 c4 0a 12391 jmp near 0866 5h ; e9 17 0312526 jmp near 08661h ; e9 17 03 12392 12527 mov al, byte [bp-00ch] ; 8a 46 f4 12393 12528 cmp AL, strict byte 001h ; 3c 01 12394 jc short 083 61h ; 72 0c12395 jbe short 0836 9h ; 76 1212529 jc short 0835dh ; 72 0c 12530 jbe short 08365h ; 76 12 12396 12531 cmp AL, strict byte 003h ; 3c 03 12397 je short 083 71h ; 74 1612532 je short 0836dh ; 74 16 12398 12533 cmp AL, strict byte 002h ; 3c 02 12399 je short 0836 dh ; 74 0e12400 jmp short 083b ah ; eb 5912534 je short 08369h ; 74 0e 12535 jmp short 083b6h ; eb 59 12401 12536 test al, al ; 84 c0 12402 jne short 083b ah ; 75 5512537 jne short 083b6h ; 75 55 12403 12538 mov BL, strict byte 090h ; b3 90 12404 jmp short 083 73h ; eb 0a12539 jmp short 0836fh ; eb 0a 12405 12540 mov BL, strict byte 098h ; b3 98 12406 jmp short 083 73h ; eb 0612541 jmp short 0836fh ; eb 06 12407 12542 mov BL, strict byte 0a0h ; b3 a0 12408 jmp short 083 73h ; eb 0212543 jmp short 0836fh ; eb 02 12409 12544 mov BL, strict byte 0a8h ; b3 a8 12410 12545 mov cl, bl ; 88 d9 … … 12412 12547 xor ch, ch ; 30 ed 12413 12548 mov ax, cx ; 89 c8 12414 call 016ach ; e8 2d9312549 call 016ach ; e8 31 93 12415 12550 test al, al ; 84 c0 12416 je short 083b ah ; 74 3712551 je short 083b6h ; 74 37 12417 12552 mov al, bl ; 88 d8 12418 12553 db 0feh, 0c0h 12419 12554 ; inc al ; fe c0 12420 12555 xor ah, ah ; 30 e4 12421 call 016ach ; e8 2 09312556 call 016ach ; e8 24 93 12422 12557 xor ah, ah ; 30 e4 12423 12558 mov dx, ax ; 89 c2 12424 12559 sal dx, 008h ; c1 e2 08 12425 12560 mov al, bl ; 88 d8 12426 call 016ach ; e8 1 49312561 call 016ach ; e8 18 93 12427 12562 xor ah, ah ; 30 e4 12428 12563 add ax, dx ; 01 d0 … … 12432 12567 add AL, strict byte 002h ; 04 02 12433 12568 xor ah, ah ; 30 e4 12434 call 016ach ; e8 0 49312569 call 016ach ; e8 08 93 12435 12570 xor ah, ah ; 30 e4 12436 12571 mov word [bp-018h], ax ; 89 46 e8 12437 12572 mov ax, cx ; 89 c8 12438 call 016ach ; e8 f a9212573 call 016ach ; e8 fe 92 12439 12574 xor ah, ah ; 30 e4 12440 12575 mov word [bp-026h], ax ; 89 46 da 12441 jmp near 084a 8h ; e9 ee 0012576 jmp near 084a4h ; e9 ee 00 12442 12577 mov ax, word [bp-012h] ; 8b 46 ee 12443 12578 mov bx, word [bp-010h] ; 8b 5e f0 … … 12445 12580 mov dx, word [bp-014h] ; 8b 56 ec 12446 12581 mov si, strict word 0000ch ; be 0c 00 12447 call 09f aah ; e8 de1b12582 call 09f80h ; e8 b8 1b 12448 12583 mov word [bp-02ah], ax ; 89 46 d6 12449 12584 mov word [bp-016h], bx ; 89 5e ea … … 12452 12587 mov ax, word [bp-012h] ; 8b 46 ee 12453 12588 test ax, ax ; 85 c0 12454 jnbe short 083f 4h ; 77 1512455 je short 083e 4h ; 74 0312456 jmp near 0846 9h ; e9 85 0012589 jnbe short 083f0h ; 77 15 12590 je short 083e0h ; 74 03 12591 jmp near 08465h ; e9 85 00 12457 12592 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 12458 jnbe short 083f 4h ; 77 0a12459 jne short 083 e1h ; 75 f512593 jnbe short 083f0h ; 77 0a 12594 jne short 083ddh ; 75 f5 12460 12595 cmp word [bp-01ch], strict byte 00040h ; 83 7e e4 40 12461 jnbe short 083f 4h ; 77 0212462 jne short 0846 9h ; 75 7512596 jnbe short 083f0h ; 77 02 12597 jne short 08465h ; 75 75 12463 12598 mov word [bp-018h], 000ffh ; c7 46 e8 ff 00 12464 12599 mov word [bp-026h], strict word 0003fh ; c7 46 da 3f 00 … … 12467 12602 mov dx, word [bp-014h] ; 8b 56 ec 12468 12603 mov si, strict word 00006h ; be 06 00 12469 call 09f aah ; e8 9d1b12604 call 09f80h ; e8 77 1b 12470 12605 mov si, word [bp-01eh] ; 8b 76 e2 12471 12606 add si, dx ; 01 d6 … … 12485 12620 mov dx, si ; 89 f2 12486 12621 mov si, strict word 00008h ; be 08 00 12487 call 09f aah ; e8 6d1b12622 call 09f80h ; e8 47 1b 12488 12623 mov word [bp-02eh], bx ; 89 5e d2 12489 12624 mov word [bp-030h], cx ; 89 4e d0 … … 12494 12629 mov dx, word [bp-036h] ; 8b 56 ca 12495 12630 mov si, strict word 00010h ; be 10 00 12496 call 09f aah ; e8 521b12631 call 09f80h ; e8 2c 1b 12497 12632 mov si, word [bp-032h] ; 8b 76 ce 12498 12633 add si, dx ; 01 d6 … … 12501 12636 mov ax, word [bp-02eh] ; 8b 46 d2 12502 12637 adc ax, bx ; 11 d8 12503 jmp short 084a 8h ; eb 3f12638 jmp short 084a4h ; eb 3f 12504 12639 test ax, ax ; 85 c0 12505 jnbe short 0847 fh ; 77 1212506 jne short 0848 bh ; 75 1c12640 jnbe short 0847bh ; 77 12 12641 jne short 08487h ; 75 1c 12507 12642 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 12508 jnbe short 0847 fh ; 77 0a12509 jne short 0848 bh ; 75 1412643 jnbe short 0847bh ; 77 0a 12644 jne short 08487h ; 75 14 12510 12645 cmp word [bp-01ch], strict byte 00020h ; 83 7e e4 20 12511 jnbe short 0847 fh ; 77 0212512 jne short 0848 bh ; 75 0c12646 jnbe short 0847bh ; 77 02 12647 jne short 08487h ; 75 0c 12513 12648 mov word [bp-018h], 00080h ; c7 46 e8 80 00 12514 12649 mov word [bp-026h], strict word 00020h ; c7 46 da 20 00 12515 jmp short 084a 4h ; eb 1912650 jmp short 084a0h ; eb 19 12516 12651 mov word [bp-018h], strict word 00040h ; c7 46 e8 40 00 12517 12652 mov word [bp-026h], strict word 00020h ; c7 46 da 20 00 … … 12520 12655 mov dx, word [bp-014h] ; 8b 56 ec 12521 12656 mov si, strict word 0000bh ; be 0b 00 12522 call 09f aah ; e8 06 1b12657 call 09f80h ; e8 e0 1a 12523 12658 mov si, dx ; 89 d6 12524 12659 mov dx, cx ; 89 ca … … 12555 12690 mov word [es:bx+034h], ax ; 26 89 47 34 12556 12691 test dx, dx ; 85 d2 12557 jne short 0851 ah ; 75 0612692 jne short 08516h ; 75 06 12558 12693 cmp si, 00400h ; 81 fe 00 04 12559 jbe short 0852 8h ; 76 0e12694 jbe short 08524h ; 76 0e 12560 12695 mov word [es:bx+02ch], 00400h ; 26 c7 47 2c 00 04 12561 12696 mov word [es:bx+032h], 00400h ; 26 c7 47 32 00 04 12562 jmp short 085 30h ; eb 0812697 jmp short 0852ch ; eb 08 12563 12698 mov word [es:bx+02ch], si ; 26 89 77 2c 12564 12699 mov word [es:bx+032h], si ; 26 89 77 32 … … 12566 12701 mov cx, ds ; 8c d9 12567 12702 mov ax, strict word 00004h ; b8 04 00 12568 call 01923h ; e8 e 89312703 call 01923h ; e8 ec 93 12569 12704 push word [bp-012h] ; ff 76 ee 12570 12705 push word [bp-010h] ; ff 76 f0 … … 12581 12716 push 00c18h ; 68 18 0c 12582 12717 push strict byte 00004h ; 6a 04 12583 call 01966h ; e8 0 69412718 call 01966h ; e8 0a 94 12584 12719 add sp, strict byte 00018h ; 83 c4 18 12585 12720 mov al, byte [bp-00eh] ; 8a 46 f2 … … 12609 12744 mov dx, strict word 00075h ; ba 75 00 12610 12745 mov ax, strict word 00040h ; b8 40 00 12611 call 01650h ; e8 9c9012746 call 01650h ; e8 a0 90 12612 12747 mov bl, al ; 88 c3 12613 12748 db 0feh, 0c3h … … 12616 12751 mov dx, strict word 00075h ; ba 75 00 12617 12752 mov ax, strict word 00040h ; b8 40 00 12618 call 0165eh ; e8 9 b9012753 call 0165eh ; e8 9f 90 12619 12754 inc byte [bp-00ch] ; fe 46 f4 12620 jmp near 0865 ah ; e9 91 0012755 jmp near 08656h ; e9 91 00 12621 12756 mov bx, 00da0h ; bb a0 0d 12622 12757 mov cx, ds ; 8c d9 12623 12758 mov ax, strict word 00004h ; b8 04 00 12624 call 01923h ; e8 4f9312759 call 01923h ; e8 53 93 12625 12760 push word [bp-022h] ; ff 76 de 12626 12761 mov al, byte [bp-00ch] ; 8a 46 f4 … … 12629 12764 push 00c46h ; 68 46 0c 12630 12765 push strict byte 00004h ; 6a 04 12631 call 01966h ; e8 8 19312766 call 01966h ; e8 85 93 12632 12767 add sp, strict byte 00008h ; 83 c4 08 12633 12768 mov al, byte [bp-00ch] ; 8a 46 f4 … … 12635 12770 mov byte [bp-00eh], al ; 88 46 f2 12636 12771 test byte [bp-00245h], 080h ; f6 86 bb fd 80 12637 je short 085f ch ; 74 0512772 je short 085f8h ; 74 05 12638 12773 mov dx, strict word 00001h ; ba 01 00 12639 jmp short 085f eh ; eb 0212774 jmp short 085fah ; eb 02 12640 12775 xor dx, dx ; 31 d2 12641 12776 mov al, byte [bp-00ch] ; 8a 46 f4 … … 12673 12808 inc word [bp-022h] ; ff 46 de 12674 12809 cmp word [bp-022h], strict byte 00010h ; 83 7e de 10 12675 jl short 086 71h ; 7c 0312676 jmp near 086e 9h ; e9 78 0012810 jl short 0866dh ; 7c 03 12811 jmp near 086e5h ; e9 78 00 12677 12812 mov byte [bp-046h], 012h ; c6 46 ba 12 12678 12813 xor al, al ; 30 c0 … … 12693 12828 lea bx, [bp-046h] ; 8d 5e ba 12694 12829 mov ax, word [bp-00248h] ; 8b 86 b8 fd 12695 call 07d7 bh ; e8 d7 f612830 call 07d77h ; e8 d7 f6 12696 12831 test al, al ; 84 c0 12697 je short 086b 6h ; 74 0e12832 je short 086b2h ; 74 0e 12698 12833 push 00b92h ; 68 92 0b 12699 12834 push 00bb2h ; 68 b2 0b 12700 12835 push strict byte 00007h ; 6a 07 12701 call 01966h ; e8 b 39212836 call 01966h ; e8 b7 92 12702 12837 add sp, strict byte 00006h ; 83 c4 06 12703 12838 mov es, [bp-020h] ; 8e 46 e0 … … 12705 12840 mov byte [bp-00ch], al ; 88 46 f4 12706 12841 test byte [bp-00246h], 0e0h ; f6 86 ba fd e0 12707 jne short 086 d2h ; 75 0a12842 jne short 086ceh ; 75 0a 12708 12843 test byte [bp-00246h], 01fh ; f6 86 ba fd 1f 12709 jne short 086 d2h ; 75 0312710 jmp near 082 71h ; e9 9f fb12844 jne short 086ceh ; 75 03 12845 jmp near 0826dh ; e9 9f fb 12711 12846 test byte [bp-00246h], 0e0h ; f6 86 ba fd e0 12712 jne short 0865 ah ; 75 8112847 jne short 08656h ; 75 81 12713 12848 mov al, byte [bp-00246h] ; 8a 86 ba fd 12714 12849 and AL, strict byte 01fh ; 24 1f 12715 12850 cmp AL, strict byte 005h ; 3c 05 12716 jne short 086e 6h ; 75 0312717 jmp near 085c 9h ; e9 e3 fe12718 jmp near 0865 ah ; e9 71 ff12851 jne short 086e2h ; 75 03 12852 jmp near 085c5h ; e9 e3 fe 12853 jmp near 08656h ; e9 71 ff 12719 12854 lea sp, [bp-00ah] ; 8d 66 f6 12720 12855 pop di ; 5f … … 12725 12860 pop bp ; 5d 12726 12861 retn ; c3 12727 _scsi_init: ; 0xf86 f3LB 0x6612862 _scsi_init: ; 0xf86ef LB 0x66 12728 12863 push bp ; 55 12729 12864 mov bp, sp ; 89 e5 12730 12865 mov dx, strict word 0000eh ; ba 0e 00 12731 12866 mov ax, strict word 00040h ; b8 40 00 12732 call 0166ch ; e8 6d8f12867 call 0166ch ; e8 71 8f 12733 12868 mov bx, 00122h ; bb 22 01 12734 12869 mov es, ax ; 8e c0 … … 12741 12876 ; sub ah, ah ; 2a e4 12742 12877 cmp AL, strict byte 055h ; 3c 55 12743 jne short 087 23h ; 75 0c12878 jne short 0871fh ; 75 0c 12744 12879 xor al, al ; 30 c0 12745 12880 mov dx, 00433h ; ba 33 04 12746 12881 out DX, AL ; ee 12747 12882 mov ax, 00430h ; b8 30 04 12748 call 0824 dh ; e8 2a fb12883 call 08249h ; e8 2a fb 12749 12884 mov AL, strict byte 055h ; b0 55 12750 12885 mov dx, 00436h ; ba 36 04 … … 12754 12889 ; sub ah, ah ; 2a e4 12755 12890 cmp AL, strict byte 055h ; 3c 55 12756 jne short 0873 ch ; 75 0c12891 jne short 08738h ; 75 0c 12757 12892 xor al, al ; 30 c0 12758 12893 mov dx, 00437h ; ba 37 04 12759 12894 out DX, AL ; ee 12760 12895 mov ax, 00434h ; b8 34 04 12761 call 0824 dh ; e8 11 fb12896 call 08249h ; e8 11 fb 12762 12897 mov AL, strict byte 055h ; b0 55 12763 12898 mov dx, 0043ah ; ba 3a 04 … … 12767 12902 ; sub ah, ah ; 2a e4 12768 12903 cmp AL, strict byte 055h ; 3c 55 12769 jne short 0875 5h ; 75 0c12904 jne short 08751h ; 75 0c 12770 12905 xor al, al ; 30 c0 12771 12906 mov dx, 0043bh ; ba 3b 04 12772 12907 out DX, AL ; ee 12773 12908 mov ax, 00438h ; b8 38 04 12774 call 0824 dh ; e8 f8 fa12909 call 08249h ; e8 f8 fa 12775 12910 mov sp, bp ; 89 ec 12776 12911 pop bp ; 5d 12777 12912 retn ; c3 12778 ahci_ctrl_extract_bits_: ; 0xf875 9LB 0x1c12913 ahci_ctrl_extract_bits_: ; 0xf8755 LB 0x1c 12779 12914 push si ; 56 12780 12915 push bp ; 55 … … 12785 12920 mov cl, byte [bp+006h] ; 8a 4e 06 12786 12921 xor ch, ch ; 30 ed 12787 jcxz 087 70h ; e3 0612922 jcxz 0876ch ; e3 06 12788 12923 shr dx, 1 ; d1 ea 12789 12924 rcr ax, 1 ; d1 d8 12790 loop 0876 ah ; e2 fa12925 loop 08766h ; e2 fa 12791 12926 pop bp ; 5d 12792 12927 pop si ; 5e 12793 12928 retn 00002h ; c2 02 00 12794 ahci_addr_to_phys_: ; 0xf877 5LB 0x1e12929 ahci_addr_to_phys_: ; 0xf8771 LB 0x1e 12795 12930 push bx ; 53 12796 12931 push cx ; 51 … … 12803 12938 sal ax, 1 ; d1 e0 12804 12939 rcl dx, 1 ; d1 d2 12805 loop 087 83h ; e2 fa12940 loop 0877fh ; e2 fa 12806 12941 xor cx, cx ; 31 c9 12807 12942 add ax, bx ; 01 d8 … … 12811 12946 pop bx ; 5b 12812 12947 retn ; c3 12813 ahci_port_cmd_sync_: ; 0xf87 93LB 0x15612948 ahci_port_cmd_sync_: ; 0xf878f LB 0x156 12814 12949 push bp ; 55 12815 12950 mov bp, sp ; 89 e5 … … 12826 12961 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 12827 12962 cmp AL, strict byte 0ffh ; 3c ff 12828 jne short 087b 6h ; 75 0312829 jmp near 088 e1h ; e9 2b 0112963 jne short 087b2h ; 75 03 12964 jmp near 088ddh ; e9 2b 01 12830 12965 mov al, byte [es:si+00263h] ; 26 8a 84 63 02 12831 12966 xor ah, ah ; 30 e4 … … 12840 12975 lea ax, [si+00080h] ; 8d 84 80 00 12841 12976 mov dx, cx ; 89 ca 12842 call 0877 5h ; e8 92 ff12977 call 08771h ; e8 92 ff 12843 12978 mov es, cx ; 8e c1 12844 12979 mov word [es:si+008h], ax ; 26 89 44 08 … … 12906 13041 xchg dx, ax ; 92 12907 13042 test dh, 040h ; f6 c6 40 12908 jne short 0887 4h ; 75 0413043 jne short 08870h ; 75 04 12909 13044 test AL, strict byte 001h ; a8 01 12910 je short 0887 8h ; 74 0413045 je short 08874h ; 74 04 12911 13046 mov AL, strict byte 001h ; b0 01 12912 jmp short 0887 ah ; eb 0213047 jmp short 08876h ; eb 02 12913 13048 xor al, al ; 30 c0 12914 13049 test al, al ; 84 c0 12915 je short 0884 7h ; 74 c913050 je short 08843h ; 74 c9 12916 13051 mov al, byte [bp-008h] ; 8a 46 f8 12917 13052 xor ah, ah ; 30 e4 … … 12969 13104 pop bp ; 5d 12970 13105 retn ; c3 12971 ahci_cmd_data_: ; 0xf88e 9LB 0x26713106 ahci_cmd_data_: ; 0xf88e5 LB 0x267 12972 13107 push bp ; 55 12973 13108 mov bp, sp ; 89 e5 … … 12994 13129 mov ax, 00080h ; b8 80 00 12995 13130 mov dx, word [bp-00ah] ; 8b 56 f6 12996 call 09f bah ; e8 931613131 call 09fa0h ; e8 7d 16 12997 13132 mov es, [bp-00ah] ; 8e 46 f6 12998 13133 mov word [es:di+00080h], 08027h ; 26 c7 85 80 00 27 80 … … 13012 13147 mov dx, word [es:si] ; 26 8b 14 13013 13148 mov si, strict word 00008h ; be 08 00 13014 call 09f aah ; e8 3f1613149 call 09f80h ; e8 19 16 13015 13150 mov es, [bp-00ah] ; 8e 46 f6 13016 13151 mov byte [es:di+00085h], dl ; 26 88 95 85 00 … … 13023 13158 mov dx, word [es:si] ; 26 8b 14 13024 13159 mov si, strict word 00010h ; be 10 00 13025 call 09f aah ; e8 19 1613160 call 09f80h ; e8 f3 15 13026 13161 mov es, [bp-00ah] ; 8e 46 f6 13027 13162 mov byte [es:di+00086h], dl ; 26 88 95 86 00 … … 13035 13170 mov dx, word [es:si] ; 26 8b 14 13036 13171 mov si, strict word 00018h ; be 18 00 13037 call 09f aah ; e8 ed1513172 call 09f80h ; e8 c7 15 13038 13173 mov es, [bp-00ah] ; 8e 46 f6 13039 13174 mov byte [es:di+00088h], dl ; 26 88 95 88 00 … … 13046 13181 mov dx, word [es:si] ; 26 8b 14 13047 13182 mov si, strict word 00020h ; be 20 00 13048 call 09f aah ; e8 c71513183 call 09f80h ; e8 a1 15 13049 13184 mov es, [bp-00ah] ; 8e 46 f6 13050 13185 mov byte [es:di+00089h], dl ; 26 88 95 89 00 … … 13057 13192 mov dx, word [es:si] ; 26 8b 14 13058 13193 mov si, strict word 00028h ; be 28 00 13059 call 09f aah ; e8 a11513194 call 09f80h ; e8 7b 15 13060 13195 mov es, [bp-00ah] ; 8e 46 f6 13061 13196 mov byte [es:di+0008ah], dl ; 26 88 95 8a 00 … … 13071 13206 mov bx, word [bp-010h] ; 8b 5e f0 13072 13207 xor cx, cx ; 31 c9 13073 call 09f 69h ; e8 2b 1513208 call 09f30h ; e8 f6 14 13074 13209 push dx ; 52 13075 13210 push ax ; 50 … … 13081 13216 mov ax, 0026ah ; b8 6a 02 13082 13217 mov dx, word [bp-00ah] ; 8b 56 f6 13083 call 09e8 5h ; e8 2b 1413218 call 09e81h ; e8 2b 14 13084 13219 mov es, [bp-00ah] ; 8e 46 f6 13085 13220 mov dx, word [es:di+0027eh] ; 26 8b 95 7e 02 … … 13104 13239 mov ax, word [es:bx+020h] ; 26 8b 47 20 13105 13240 test ax, ax ; 85 c0 13106 je short 08ae ch ; 74 3b13241 je short 08ae8h ; 74 3b 13107 13242 dec ax ; 48 13108 13243 mov es, [bp-00ah] ; 8e 46 f6 … … 13122 13257 mov al, byte [bp-008h] ; 8a 46 f8 13123 13258 cmp AL, strict byte 035h ; 3c 35 13124 jne short 08af 9h ; 75 0613259 jne short 08af5h ; 75 06 13125 13260 mov byte [bp-008h], 040h ; c6 46 f8 40 13126 jmp short 08b 10h ; eb 1713261 jmp short 08b0ch ; eb 17 13127 13262 cmp AL, strict byte 0a0h ; 3c a0 13128 jne short 08b0 ch ; 75 0f13263 jne short 08b08h ; 75 0f 13129 13264 or byte [bp-008h], 020h ; 80 4e f8 20 13130 13265 les bx, [bp-00eh] ; c4 5e f2 13131 13266 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 13132 jmp short 08b 10h ; eb 0413267 jmp short 08b0ch ; eb 04 13133 13268 mov byte [bp-008h], 000h ; c6 46 f8 00 13134 13269 or byte [bp-008h], 005h ; 80 4e f8 05 … … 13137 13272 mov ax, word [bp-00eh] ; 8b 46 f2 13138 13273 mov dx, word [bp-00ch] ; 8b 56 f4 13139 call 087 93h ; e8 71 fc13274 call 0878fh ; e8 71 fc 13140 13275 mov cx, word [bp-00ch] ; 8b 4e f4 13141 13276 mov bx, word [bp-00eh] ; 8b 5e f2 … … 13144 13279 add ax, 0026ah ; 05 6a 02 13145 13280 mov dx, cx ; 89 ca 13146 call 09ef ch ; e8 c5 1313281 call 09ef8h ; e8 c5 13 13147 13282 mov es, cx ; 8e c1 13148 13283 mov al, byte [es:bx+003h] ; 26 8a 47 03 13149 13284 test al, al ; 84 c0 13150 je short 08b4 6h ; 74 0513285 je short 08b42h ; 74 05 13151 13286 mov ax, strict word 00004h ; b8 04 00 13152 jmp short 08b4 8h ; eb 0213287 jmp short 08b44h ; eb 02 13153 13288 xor ah, ah ; 30 e4 13154 13289 lea sp, [bp-006h] ; 8d 66 fa … … 13158 13293 pop bp ; 5d 13159 13294 retn ; c3 13160 ahci_port_deinit_current_: ; 0xf8b 50LB 0x18013295 ahci_port_deinit_current_: ; 0xf8b4c LB 0x180 13161 13296 push bp ; 55 13162 13297 mov bp, sp ; 89 e5 … … 13173 13308 mov byte [bp-00ah], al ; 88 46 f6 13174 13309 cmp AL, strict byte 0ffh ; 3c ff 13175 je short 08b d1h ; 74 5f13310 je short 08bcdh ; 74 5f 13176 13311 xor ah, ah ; 30 e4 13177 13312 sal ax, 007h ; c1 e0 07 … … 13217 13352 xchg dx, ax ; 92 13218 13353 test ax, 0c011h ; a9 11 c0 13219 je short 08bd 4h ; 74 0713354 je short 08bd0h ; 74 07 13220 13355 mov AL, strict byte 001h ; b0 01 13221 jmp short 08bd 6h ; eb 0513222 jmp near 08cc 7h ; e9 f3 0013356 jmp short 08bd2h ; eb 05 13357 jmp near 08cc3h ; e9 f3 00 13223 13358 xor al, al ; 30 c0 13224 13359 cmp AL, strict byte 001h ; 3c 01 13225 je short 08ba 4h ; 74 ca13360 je short 08ba0h ; 74 ca 13226 13361 mov cx, strict word 00020h ; b9 20 00 13227 13362 xor bx, bx ; 31 db 13228 13363 mov ax, di ; 89 f8 13229 13364 mov dx, word [bp-00eh] ; 8b 56 f2 13230 call 09f bah ; e8 d31313365 call 09fa0h ; e8 bd 13 13231 13366 lea ax, [di+00080h] ; 8d 85 80 00 13232 13367 mov cx, strict word 00040h ; b9 40 00 13233 13368 xor bx, bx ; 31 db 13234 13369 mov dx, word [bp-00eh] ; 8b 56 f2 13235 call 09f bah ; e8 c41313370 call 09fa0h ; e8 ae 13 13236 13371 lea ax, [di+00200h] ; 8d 85 00 02 13237 13372 mov cx, strict word 00060h ; b9 60 00 13238 13373 xor bx, bx ; 31 db 13239 13374 mov dx, word [bp-00eh] ; 8b 56 f2 13240 call 09f bah ; e8 b51313375 call 09fa0h ; e8 9f 13 13241 13376 mov al, byte [bp-00ah] ; 8a 46 f6 13242 13377 xor ah, ah ; 30 e4 … … 13343 13478 pop bp ; 5d 13344 13479 retn ; c3 13345 ahci_port_init_: ; 0xf8c d0LB 0x24d13480 ahci_port_init_: ; 0xf8ccc LB 0x24d 13346 13481 push bp ; 55 13347 13482 mov bp, sp ; 89 e5 … … 13353 13488 mov word [bp-00ah], dx ; 89 56 f6 13354 13489 mov byte [bp-008h], bl ; 88 5e f8 13355 call 08b 50h ; e8 6c fe13490 call 08b4ch ; e8 6c fe 13356 13491 mov al, bl ; 88 d8 13357 13492 xor ah, ah ; 30 e4 … … 13402 13537 xchg dx, ax ; 92 13403 13538 test ax, 0c011h ; a9 11 c0 13404 je short 08d5 5h ; 74 0413539 je short 08d51h ; 74 04 13405 13540 mov AL, strict byte 001h ; b0 01 13406 jmp short 08d5 7h ; eb 0213541 jmp short 08d53h ; eb 02 13407 13542 xor al, al ; 30 c0 13408 13543 cmp AL, strict byte 001h ; 3c 01 13409 je short 08d 20h ; 74 c513544 je short 08d1ch ; 74 c5 13410 13545 mov cx, strict word 00020h ; b9 20 00 13411 13546 xor bx, bx ; 31 db 13412 13547 mov ax, si ; 89 f0 13413 13548 mov dx, word [bp-00ah] ; 8b 56 f6 13414 call 09f bah ; e8 521213549 call 09fa0h ; e8 3c 12 13415 13550 lea ax, [si+00080h] ; 8d 84 80 00 13416 13551 mov cx, strict word 00040h ; b9 40 00 13417 13552 xor bx, bx ; 31 db 13418 13553 mov dx, word [bp-00ah] ; 8b 56 f6 13419 call 09f bah ; e8 431213554 call 09fa0h ; e8 2d 12 13420 13555 lea di, [si+00200h] ; 8d bc 00 02 13421 13556 mov cx, strict word 00060h ; b9 60 00 … … 13423 13558 mov ax, di ; 89 f8 13424 13559 mov dx, word [bp-00ah] ; 8b 56 f6 13425 call 09f bah ; e8 321213560 call 09fa0h ; e8 1c 12 13426 13561 mov bl, byte [bp-008h] ; 8a 5e f8 13427 13562 xor bh, bh ; 30 ff … … 13441 13576 mov ax, di ; 89 f8 13442 13577 mov dx, word [bp-00ah] ; 8b 56 f6 13443 call 0877 5h ; e8 bf f913578 call 08771h ; e8 bf f9 13444 13579 mov es, [bp-00ah] ; 8e 46 f6 13445 13580 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13486 13621 mov ax, si ; 89 f0 13487 13622 mov dx, word [bp-00ah] ; 8b 56 f6 13488 call 0877 5h ; e8 53 f913623 call 08771h ; e8 53 f9 13489 13624 mov es, [bp-00ah] ; 8e 46 f6 13490 13625 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13591 13726 pop bp ; 5d 13592 13727 retn ; c3 13593 @ahci_read_sectors: ; 0xf8f1 dLB 0xa813728 @ahci_read_sectors: ; 0xf8f19 LB 0xa8 13594 13729 push bp ; 55 13595 13730 mov bp, sp ; 89 e5 … … 13602 13737 sub bx, strict byte 0000ch ; 83 eb 0c 13603 13738 cmp bx, strict byte 00004h ; 83 fb 04 13604 jbe short 08f 43h ; 76 0f13739 jbe short 08f3fh ; 76 0f 13605 13740 push bx ; 53 13606 13741 push 00c62h ; 68 62 0c 13607 13742 push 00c74h ; 68 74 0c 13608 13743 push strict byte 00007h ; 6a 07 13609 call 01966h ; e8 2 68a13744 call 01966h ; e8 2a 8a 13610 13745 add sp, strict byte 00008h ; 83 c4 08 13611 13746 xor di, di ; 31 ff … … 13622 13757 mov dx, word [es:di+00232h] ; 26 8b 95 32 02 13623 13758 xor ax, ax ; 31 c0 13624 call 08c d0h ; e8 60 fd13759 call 08ccch ; e8 60 fd 13625 13760 mov bx, strict word 00025h ; bb 25 00 13626 13761 mov ax, si ; 89 f0 13627 13762 mov dx, word [bp+006h] ; 8b 56 06 13628 call 088e 9h ; e8 6e f913763 call 088e5h ; e8 6e f9 13629 13764 mov word [bp-006h], ax ; 89 46 fa 13630 13765 mov es, [bp+006h] ; 8e 46 06 … … 13655 13790 pop bp ; 5d 13656 13791 retn 00004h ; c2 04 00 13657 @ahci_write_sectors: ; 0xf8fc 5LB 0x8613792 @ahci_write_sectors: ; 0xf8fc1 LB 0x86 13658 13793 push bp ; 55 13659 13794 mov bp, sp ; 89 e5 … … 13667 13802 sub dx, strict byte 0000ch ; 83 ea 0c 13668 13803 cmp dx, strict byte 00004h ; 83 fa 04 13669 jbe short 08fe fh ; 76 0f13804 jbe short 08febh ; 76 0f 13670 13805 push dx ; 52 13671 13806 push 00c93h ; 68 93 0c 13672 13807 push 00c74h ; 68 74 0c 13673 13808 push strict byte 00007h ; 6a 07 13674 call 01966h ; e8 7 a8913809 call 01966h ; e8 7e 89 13675 13810 add sp, strict byte 00008h ; 83 c4 08 13676 13811 xor bx, bx ; 31 db … … 13687 13822 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 13688 13823 xor ax, ax ; 31 c0 13689 call 08c d0h ; e8 b6 fc13824 call 08ccch ; e8 b6 fc 13690 13825 mov bx, strict word 00035h ; bb 35 00 13691 13826 mov ax, si ; 89 f0 13692 13827 mov dx, cx ; 89 ca 13693 call 088e 9h ; e8 c5 f813828 call 088e5h ; e8 c5 f8 13694 13829 mov dx, ax ; 89 c2 13695 13830 mov es, cx ; 8e c1 … … 13706 13841 pop bp ; 5d 13707 13842 retn 00004h ; c2 04 00 13708 ahci_cmd_packet_: ; 0xf904 bLB 0x18a13843 ahci_cmd_packet_: ; 0xf9047 LB 0x18a 13709 13844 push bp ; 55 13710 13845 mov bp, sp ; 89 e5 … … 13718 13853 mov dx, strict word 0000eh ; ba 0e 00 13719 13854 mov ax, strict word 00040h ; b8 40 00 13720 call 0166ch ; e8 0 68613855 call 0166ch ; e8 0a 86 13721 13856 mov si, 00122h ; be 22 01 13722 13857 mov word [bp-008h], ax ; 89 46 f8 13723 13858 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 13724 jne short 090 91h ; 75 1f13859 jne short 0908dh ; 75 1f 13725 13860 mov bx, 00da0h ; bb a0 0d 13726 13861 mov cx, ds ; 8c d9 13727 13862 mov ax, strict word 00004h ; b8 04 00 13728 call 01923h ; e8 a 68813863 call 01923h ; e8 aa 88 13729 13864 push 00ca6h ; 68 a6 0c 13730 13865 push 00cb6h ; 68 b6 0c 13731 13866 push strict byte 00004h ; 6a 04 13732 call 01966h ; e8 de8813867 call 01966h ; e8 e2 88 13733 13868 add sp, strict byte 00006h ; 83 c4 06 13734 13869 mov ax, strict word 00001h ; b8 01 00 13735 jmp near 091c ch ; e9 3b 0113870 jmp near 091c8h ; e9 3b 01 13736 13871 test byte [bp+004h], 001h ; f6 46 04 01 13737 jne short 0908 bh ; 75 f413872 jne short 09087h ; 75 f4 13738 13873 mov ax, word [bp+006h] ; 8b 46 06 13739 13874 mov dx, word [bp+008h] ; 8b 56 08 … … 13741 13876 sal ax, 1 ; d1 e0 13742 13877 rcl dx, 1 ; d1 d2 13743 loop 090 a0h ; e2 fa13878 loop 0909ch ; e2 fa 13744 13879 mov es, [bp-008h] ; 8e 46 f8 13745 13880 mov word [es:si], ax ; 26 89 04 … … 13755 13890 mov dx, word [bp+008h] ; 8b 56 08 13756 13891 xor cx, cx ; 31 c9 13757 call 09f 30h ; e8 570e13892 call 09f50h ; e8 7b 0e 13758 13893 mov word [es:si+00eh], ax ; 26 89 44 0e 13759 13894 xor di, di ; 31 ff … … 13774 13909 mov bx, ax ; 89 c3 13775 13910 xor al, al ; 30 c0 13776 call 08c d0h ; e8 b8 fb13911 call 08ccch ; e8 b8 fb 13777 13912 mov al, byte [bp-006h] ; 8a 46 fa 13778 13913 xor ah, ah ; 30 e4 … … 13782 13917 mov ax, 000c0h ; b8 c0 00 13783 13918 mov dx, word [bp-00ah] ; 8b 56 f6 13784 call 09f c7h ; e8 9a0e13919 call 09fb0h ; e8 87 0e 13785 13920 mov es, [bp-008h] ; 8e 46 f8 13786 13921 mov word [es:si+018h], di ; 26 89 7c 18 … … 13789 13924 mov ax, word [es:si+01eh] ; 26 8b 44 1e 13790 13925 test ax, ax ; 85 c0 13791 je short 0916 bh ; 74 2713926 je short 09167h ; 74 27 13792 13927 dec ax ; 48 13793 13928 mov es, [bp-00ah] ; 8e 46 f6 … … 13802 13937 mov ax, si ; 89 f0 13803 13938 mov dx, word [bp-008h] ; 8b 56 f8 13804 call 088e 9h ; e8 73 f713939 call 088e5h ; e8 73 f7 13805 13940 les bx, [bp-00eh] ; c4 5e f2 13806 13941 mov dx, word [es:bx+004h] ; 26 8b 57 04 … … 13829 13964 mov ax, word [es:bx+006h] ; 26 8b 47 06 13830 13965 or ax, word [es:bx+004h] ; 26 0b 47 04 13831 jne short 091c ah ; 75 0513966 jne short 091c6h ; 75 05 13832 13967 mov ax, strict word 00004h ; b8 04 00 13833 jmp short 091c ch ; eb 0213968 jmp short 091c8h ; eb 02 13834 13969 xor ax, ax ; 31 c0 13835 13970 lea sp, [bp-004h] ; 8d 66 fc … … 13838 13973 pop bp ; 5d 13839 13974 retn 0000ch ; c2 0c 00 13840 ahci_port_detect_device_: ; 0xf91d 5LB 0x4e313975 ahci_port_detect_device_: ; 0xf91d1 LB 0x4e3 13841 13976 push bp ; 55 13842 13977 mov bp, sp ; 89 e5 … … 13851 13986 xor ch, ch ; 30 ed 13852 13987 mov bx, cx ; 89 cb 13853 call 08c d0h ; e8 e0 fa13988 call 08ccch ; e8 e0 fa 13854 13989 mov dx, strict word 0000eh ; ba 0e 00 13855 13990 mov ax, strict word 00040h ; b8 40 00 13856 call 0166ch ; e8 7 38413991 call 0166ch ; e8 77 84 13857 13992 mov word [bp-00eh], 00122h ; c7 46 f2 22 01 13858 13993 mov word [bp-016h], ax ; 89 46 ea … … 13924 14059 mov bx, strict word 0000fh ; bb 0f 00 13925 14060 xor cx, cx ; 31 c9 13926 call 0875 9h ; e8 b5 f414061 call 08755h ; e8 b5 f4 13927 14062 test ax, ax ; 85 c0 13928 jne short 092a bh ; 75 0313929 jmp near 096 b0h ; e9 05 0414063 jne short 092a7h ; 75 03 14064 jmp near 096ach ; e9 05 04 13930 14065 mov al, byte [bp-00ch] ; 8a 46 f4 13931 14066 xor ah, ah ; 30 e4 … … 13956 14091 mov bx, strict word 0000fh ; bb 0f 00 13957 14092 xor cx, cx ; 31 c9 13958 call 0875 9h ; e8 67 f414093 call 08755h ; e8 67 f4 13959 14094 cmp ax, strict word 00001h ; 3d 01 00 13960 je short 092a bh ; 74 b414095 je short 092a7h ; 74 b4 13961 14096 push strict byte 00000h ; 6a 00 13962 14097 mov bx, strict word 0000fh ; bb 0f 00 … … 13964 14099 mov ax, word [bp-01ah] ; 8b 46 e6 13965 14100 mov dx, di ; 89 fa 13966 call 0875 9h ; e8 53 f414101 call 08755h ; e8 53 f4 13967 14102 cmp ax, strict word 00003h ; 3d 03 00 13968 jne short 092a 8h ; 75 9d14103 jne short 092a4h ; 75 9d 13969 14104 mov ax, word [bp-01ch] ; 8b 46 e4 13970 14105 add ax, 00130h ; 05 30 01 … … 13994 14129 mov byte [bp-008h], al ; 88 46 f8 13995 14130 cmp AL, strict byte 004h ; 3c 04 13996 jc short 0935 5h ; 72 0313997 jmp near 096 b0h ; e9 5b 0314131 jc short 09351h ; 72 03 14132 jmp near 096ach ; e9 5b 03 13998 14133 mov ax, word [bp-01ch] ; 8b 46 e4 13999 14134 add ax, 00118h ; 05 18 01 … … 14045 14180 add cl, 00ch ; 80 c1 0c 14046 14181 test dx, dx ; 85 d2 14047 jne short 0941 bh ; 75 5414182 jne short 09417h ; 75 54 14048 14183 cmp ax, 00101h ; 3d 01 01 14049 jne short 0941 bh ; 75 4f14184 jne short 09417h ; 75 4f 14050 14185 mov es, [bp-016h] ; 8e 46 ea 14051 14186 mov bx, word [bp-00eh] ; 8b 5e f2 … … 14062 14197 mov ax, word [bp-00eh] ; 8b 46 f2 14063 14198 mov dx, es ; 8c c2 14064 call 088e 9h ; e8 dd f414199 call 088e5h ; e8 dd f4 14065 14200 mov byte [bp-00ah], cl ; 88 4e f6 14066 14201 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14067 je short 0941 eh ; 74 0814202 je short 0941ah ; 74 08 14068 14203 mov ax, strict word 00001h ; b8 01 00 14069 jmp short 094 20h ; eb 0514070 jmp near 095e eh ; e9 d0 0114204 jmp short 0941ch ; eb 05 14205 jmp near 095eah ; e9 d0 01 14071 14206 xor ax, ax ; 31 c0 14072 14207 mov dl, al ; 88 c2 … … 14084 14219 mov word [bp-01eh], ax ; 89 46 e2 14085 14220 cmp word [bp-014h], 00fffh ; 81 7e ec ff 0f 14086 jne short 0946 fh ; 75 1e14221 jne short 0946bh ; 75 1e 14087 14222 cmp di, strict byte 0ffffh ; 83 ff ff 14088 jne short 0946 fh ; 75 1914223 jne short 0946bh ; 75 19 14089 14224 mov ax, word [bp-0015ch] ; 8b 86 a4 fe 14090 14225 mov word [bp-01eh], ax ; 89 46 e2 … … 14125 14260 mov al, byte [bp-008h] ; 8a 46 f8 14126 14261 cmp AL, strict byte 001h ; 3c 01 14127 jc short 094e ah ; 72 0c14128 jbe short 094 f2h ; 76 1214262 jc short 094e6h ; 72 0c 14263 jbe short 094eeh ; 76 12 14129 14264 cmp AL, strict byte 003h ; 3c 03 14130 je short 094f ah ; 74 1614265 je short 094f6h ; 74 16 14131 14266 cmp AL, strict byte 002h ; 3c 02 14132 je short 094f 6h ; 74 0e14133 jmp short 095 42h ; eb 5814267 je short 094f2h ; 74 0e 14268 jmp short 0953eh ; eb 58 14134 14269 test al, al ; 84 c0 14135 jne short 095 42h ; 75 5414270 jne short 0953eh ; 75 54 14136 14271 mov DL, strict byte 040h ; b2 40 14137 jmp short 094f ch ; eb 0a14272 jmp short 094f8h ; eb 0a 14138 14273 mov DL, strict byte 048h ; b2 48 14139 jmp short 094f ch ; eb 0614274 jmp short 094f8h ; eb 06 14140 14275 mov DL, strict byte 050h ; b2 50 14141 jmp short 094f ch ; eb 0214276 jmp short 094f8h ; eb 02 14142 14277 mov DL, strict byte 058h ; b2 58 14143 14278 mov bl, dl ; 88 d3 … … 14145 14280 xor bh, bh ; 30 ff 14146 14281 mov ax, bx ; 89 d8 14147 call 016ach ; e8 a 48114282 call 016ach ; e8 a8 81 14148 14283 test al, al ; 84 c0 14149 je short 095 42h ; 74 3614284 je short 0953eh ; 74 36 14150 14285 mov al, dl ; 88 d0 14151 14286 db 0feh, 0c0h 14152 14287 ; inc al ; fe c0 14153 14288 xor ah, ah ; 30 e4 14154 call 016ach ; e8 9 78114289 call 016ach ; e8 9b 81 14155 14290 xor ah, ah ; 30 e4 14156 14291 mov cx, ax ; 89 c1 14157 14292 sal cx, 008h ; c1 e1 08 14158 14293 mov al, dl ; 88 d0 14159 call 016ach ; e8 8 b8114294 call 016ach ; e8 8f 81 14160 14295 xor ah, ah ; 30 e4 14161 14296 add ax, cx ; 01 c8 … … 14164 14299 add AL, strict byte 002h ; 04 02 14165 14300 xor ah, ah ; 30 e4 14166 call 016ach ; e8 7 b8114301 call 016ach ; e8 7f 81 14167 14302 xor ah, ah ; 30 e4 14168 14303 mov word [bp-02ah], ax ; 89 46 d6 14169 14304 mov ax, bx ; 89 d8 14170 call 016ach ; e8 7 18114305 call 016ach ; e8 75 81 14171 14306 xor ah, ah ; 30 e4 14172 14307 mov word [bp-026h], ax ; 89 46 da 14173 jmp short 0955 4h ; eb 1214308 jmp short 09550h ; eb 12 14174 14309 push word [bp-01eh] ; ff 76 e2 14175 14310 push word [bp-012h] ; ff 76 ee … … 14178 14313 mov dx, ss ; 8c d2 14179 14314 lea ax, [bp-02ah] ; 8d 46 d6 14180 call 05977h ; e8 2 3c414315 call 05977h ; e8 27 c4 14181 14316 mov bx, 00da0h ; bb a0 0d 14182 14317 mov cx, ds ; 8c d9 14183 14318 mov ax, strict word 00004h ; b8 04 00 14184 call 01923h ; e8 c 48314319 call 01923h ; e8 c8 83 14185 14320 push word [bp-01eh] ; ff 76 e2 14186 14321 push word [bp-012h] ; ff 76 ee … … 14203 14338 push 00cd6h ; 68 d6 0c 14204 14339 push strict byte 00004h ; 6a 04 14205 call 01966h ; e8 d 68314340 call 01966h ; e8 da 83 14206 14341 add sp, strict byte 0001ch ; 83 c4 1c 14207 14342 mov al, byte [bp-00ah] ; 8a 46 f6 … … 14234 14369 mov dx, strict word 00075h ; ba 75 00 14235 14370 mov ax, strict word 00040h ; b8 40 00 14236 call 01650h ; e8 7 48014371 call 01650h ; e8 78 80 14237 14372 mov bl, al ; 88 c3 14238 14373 db 0feh, 0c3h … … 14241 14376 mov dx, strict word 00075h ; ba 75 00 14242 14377 mov ax, strict word 00040h ; b8 40 00 14243 call 0165eh ; e8 7 38014244 jmp near 0969 fh ; e9 b1 0014378 call 0165eh ; e8 77 80 14379 jmp near 0969bh ; e9 b1 00 14245 14380 cmp dx, 0eb14h ; 81 fa 14 eb 14246 jne short 0964 8h ; 75 5414381 jne short 09644h ; 75 54 14247 14382 cmp ax, 00101h ; 3d 01 01 14248 jne short 0964 8h ; 75 4f14383 jne short 09644h ; 75 4f 14249 14384 mov es, [bp-016h] ; 8e 46 ea 14250 14385 mov bx, word [bp-00eh] ; 8b 5e f2 … … 14261 14396 mov ax, word [bp-00eh] ; 8b 46 f2 14262 14397 mov dx, es ; 8c c2 14263 call 088e 9h ; e8 b0 f214398 call 088e5h ; e8 b0 f2 14264 14399 mov byte [bp-00ah], cl ; 88 4e f6 14265 14400 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14266 je short 0964 ah ; 74 0714401 je short 09646h ; 74 07 14267 14402 mov dx, strict word 00001h ; ba 01 00 14268 jmp short 0964 ch ; eb 0414269 jmp short 0969 fh ; eb 5514403 jmp short 09648h ; eb 04 14404 jmp short 0969bh ; eb 55 14270 14405 xor dx, dx ; 31 d2 14271 14406 mov bl, byte [bp-008h] ; 8a 5e f8 … … 14306 14441 pop bp ; 5d 14307 14442 retn ; c3 14308 ahci_mem_alloc_: ; 0xf96b 8LB 0x4314443 ahci_mem_alloc_: ; 0xf96b4 LB 0x43 14309 14444 push bp ; 55 14310 14445 mov bp, sp ; 89 e5 … … 14316 14451 mov dx, 00413h ; ba 13 04 14317 14452 xor ax, ax ; 31 c0 14318 call 0166ch ; e8 a 47f14453 call 0166ch ; e8 a8 7f 14319 14454 test ax, ax ; 85 c0 14320 je short 096 f1h ; 74 2514455 je short 096edh ; 74 25 14321 14456 dec ax ; 48 14322 14457 mov bx, ax ; 89 c3 … … 14325 14460 sal ax, 1 ; d1 e0 14326 14461 rcl dx, 1 ; d1 d2 14327 loop 096d 4h ; e2 fa14462 loop 096d0h ; e2 fa 14328 14463 mov si, ax ; 89 c6 14329 14464 mov di, dx ; 89 d7 … … 14331 14466 shr di, 1 ; d1 ef 14332 14467 rcr si, 1 ; d1 de 14333 loop 096 e1h ; e2 fa14468 loop 096ddh ; e2 fa 14334 14469 mov dx, 00413h ; ba 13 04 14335 14470 xor ax, ax ; 31 c0 14336 call 0167ah ; e8 8 b7f14471 call 0167ah ; e8 8f 7f 14337 14472 mov ax, si ; 89 f0 14338 14473 lea sp, [bp-00ah] ; 8d 66 f6 … … 14344 14479 pop bp ; 5d 14345 14480 retn ; c3 14346 ahci_hba_init_: ; 0xf96f bLB 0x16d14481 ahci_hba_init_: ; 0xf96f7 LB 0x16d 14347 14482 push bp ; 55 14348 14483 mov bp, sp ; 89 e5 … … 14356 14491 mov dx, strict word 0000eh ; ba 0e 00 14357 14492 mov ax, strict word 00040h ; b8 40 00 14358 call 0166ch ; e8 5 b7f14493 call 0166ch ; e8 5f 7f 14359 14494 mov bx, 00122h ; bb 22 01 14360 14495 mov di, ax ; 89 c7 … … 14373 14508 shr eax, 010h ; 66 c1 e8 10 14374 14509 xchg dx, ax ; 92 14375 call 096b 8h ; e8 83 ff14510 call 096b4h ; e8 83 ff 14376 14511 mov word [bp-010h], ax ; 89 46 f0 14377 14512 test ax, ax ; 85 c0 14378 jne short 0973 fh ; 75 0314379 jmp near 0984 7h ; e9 08 0114513 jne short 0973bh ; 75 03 14514 jmp near 09843h ; e9 08 01 14380 14515 mov ax, word [bp-010h] ; 8b 46 f0 14381 14516 mov es, di ; 8e c7 … … 14427 14562 xchg dx, ax ; 92 14428 14563 test AL, strict byte 001h ; a8 01 14429 jne short 0979 9h ; 75 de14564 jne short 09795h ; 75 de 14430 14565 xor ax, ax ; 31 c0 14431 14566 xor cx, cx ; 31 c9 … … 14445 14580 mov bx, strict word 0001fh ; bb 1f 00 14446 14581 xor cx, cx ; 31 c9 14447 call 0875 9h ; e8 7a ef14582 call 08755h ; e8 7a ef 14448 14583 db 0feh, 0c0h 14449 14584 ; inc al ; fe c0 14450 14585 mov byte [bp-00ch], al ; 88 46 f4 14451 14586 mov byte [bp-00eh], 000h ; c6 46 f2 00 14452 jmp short 0980 bh ; eb 2114587 jmp short 09807h ; eb 21 14453 14588 xor al, al ; 30 c0 14454 14589 test al, al ; 84 c0 14455 je short 09 802h ; 74 1214590 je short 097feh ; 74 12 14456 14591 mov bl, byte [bp-00eh] ; 8a 5e f2 14457 14592 xor bh, bh ; 30 ff 14458 14593 xor ax, ax ; 31 c0 14459 14594 mov dx, word [bp-010h] ; 8b 56 f0 14460 call 091d 5h ; e8 d8 f914595 call 091d1h ; e8 d8 f9 14461 14596 dec byte [bp-00ch] ; fe 4e f4 14462 je short 0984 5h ; 74 4314597 je short 09841h ; 74 43 14463 14598 inc byte [bp-00eh] ; fe 46 f2 14464 14599 cmp byte [bp-00eh], 020h ; 80 7e f2 20 14465 jnc short 0984 5h ; 73 3a14600 jnc short 09841h ; 73 3a 14466 14601 mov cl, byte [bp-00eh] ; 8a 4e f2 14467 14602 xor ch, ch ; 30 ed 14468 14603 mov bx, strict word 00001h ; bb 01 00 14469 14604 xor di, di ; 31 ff 14470 jcxz 0981 dh ; e3 0614605 jcxz 09819h ; e3 06 14471 14606 sal bx, 1 ; d1 e3 14472 14607 rcl di, 1 ; d1 d7 14473 loop 0981 7h ; e2 fa14608 loop 09813h ; e2 fa 14474 14609 mov ax, strict word 0000ch ; b8 0c 00 14475 14610 xor cx, cx ; 31 c9 … … 14487 14622 xchg dx, ax ; 92 14488 14623 test dx, di ; 85 fa 14489 jne short 098 41h ; 75 0414624 jne short 0983dh ; 75 04 14490 14625 test ax, bx ; 85 d8 14491 je short 097e ah ; 74 a914626 je short 097e6h ; 74 a9 14492 14627 mov AL, strict byte 001h ; b0 01 14493 jmp short 097e ch ; eb a714628 jmp short 097e8h ; eb a7 14494 14629 xor ax, ax ; 31 c0 14495 14630 lea sp, [bp-00ah] ; 8d 66 f6 … … 14501 14636 pop bp ; 5d 14502 14637 retn ; c3 14503 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 50h, 099h, 02eh, 099h, 034h, 099h, 03ah, 099h, 040h14504 db 099h, 04 6h, 099h, 04ch, 099h, 050h, 099h14505 _ahci_init: ; 0xf986 8LB 0x11914638 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 04ch, 099h, 02ah, 099h, 030h, 099h, 036h, 099h, 03ch 14639 db 099h, 042h, 099h, 048h, 099h, 04ch, 099h 14640 _ahci_init: ; 0xf9864 LB 0x119 14506 14641 push bp ; 55 14507 14642 mov bp, sp ; 89 e5 … … 14510 14645 mov ax, 00601h ; b8 01 06 14511 14646 mov dx, strict word 00001h ; ba 01 00 14512 call 09d9 ch ; e8 24 0514647 call 09d98h ; e8 24 05 14513 14648 mov dx, ax ; 89 c2 14514 14649 cmp ax, strict word 0ffffh ; 3d ff ff 14515 je short 098c bh ; 74 4c14650 je short 098c7h ; 74 4c 14516 14651 xor al, al ; 30 c0 14517 14652 shr ax, 008h ; c1 e8 08 … … 14521 14656 xor ah, ah ; 30 e4 14522 14657 mov bx, strict word 00034h ; bb 34 00 14523 call 09da 4h ; e8 10 0514658 call 09da0h ; e8 10 05 14524 14659 mov cl, al ; 88 c1 14525 14660 test cl, cl ; 84 c9 14526 je short 098c eh ; 74 3414661 je short 098cah ; 74 34 14527 14662 mov bl, cl ; 88 cb 14528 14663 xor bh, bh ; 30 ff … … 14535 14670 mov dx, word [bp-010h] ; 8b 56 f0 14536 14671 mov ax, word [bp-00ch] ; 8b 46 f4 14537 call 09da 4h ; e8 eb 0414672 call 09da0h ; e8 eb 04 14538 14673 cmp AL, strict byte 012h ; 3c 12 14539 je short 098c eh ; 74 1114674 je short 098cah ; 74 11 14540 14675 mov bl, cl ; 88 cb 14541 14676 db 0feh, 0c3h … … 14544 14679 mov dx, word [bp-010h] ; 8b 56 f0 14545 14680 mov ax, word [bp-00ch] ; 8b 46 f4 14546 jmp short 098 91h ; eb c614547 jmp near 0997 bh ; e9 ad 0014681 jmp short 0988dh ; eb c6 14682 jmp near 09977h ; e9 ad 00 14548 14683 test cl, cl ; 84 c9 14549 je short 098c bh ; 74 f914684 je short 098c7h ; 74 f9 14550 14685 add cl, 002h ; 80 c1 02 14551 14686 mov bl, cl ; 88 cb … … 14559 14694 mov dx, word [bp-00eh] ; 8b 56 f2 14560 14695 mov ax, word [bp-00ah] ; 8b 46 f6 14561 call 09da 4h ; e8 b0 0414696 call 09da0h ; e8 b0 04 14562 14697 cmp AL, strict byte 010h ; 3c 10 14563 jne short 098c bh ; 75 d314698 jne short 098c7h ; 75 d3 14564 14699 mov byte [bp-004h], 000h ; c6 46 fc 00 14565 14700 mov bl, cl ; 88 cb … … 14568 14703 mov dx, word [bp-00eh] ; 8b 56 f2 14569 14704 mov ax, word [bp-00ah] ; 8b 46 f6 14570 call 09d d2h ; e8 c6 0414705 call 09dceh ; e8 c6 04 14571 14706 mov dx, ax ; 89 c2 14572 14707 and ax, strict word 0000fh ; 25 0f 00 14573 14708 sub ax, strict word 00004h ; 2d 04 00 14574 14709 cmp ax, strict word 0000bh ; 3d 0b 00 14575 jnbe short 099 50h ; 77 3714710 jnbe short 0994ch ; 77 37 14576 14711 push CS ; 0e 14577 14712 pop ES ; 07 14578 14713 mov cx, strict word 00008h ; b9 08 00 14579 mov di, 098 51h ; bf 519814714 mov di, 0984dh ; bf 4d 98 14580 14715 repne scasb ; f2 ae 14581 14716 sal cx, 1 ; d1 e1 14582 14717 mov di, cx ; 89 cf 14583 mov ax, word [cs:di-067a 8h] ; 2e 8b 85 589814718 mov ax, word [cs:di-067ach] ; 2e 8b 85 54 98 14584 14719 jmp ax ; ff e0 14585 14720 mov byte [bp-004h], 010h ; c6 46 fc 10 14586 jmp short 099 50h ; eb 1c14721 jmp short 0994ch ; eb 1c 14587 14722 mov byte [bp-004h], 014h ; c6 46 fc 14 14588 jmp short 099 50h ; eb 1614723 jmp short 0994ch ; eb 16 14589 14724 mov byte [bp-004h], 018h ; c6 46 fc 18 14590 jmp short 099 50h ; eb 1014725 jmp short 0994ch ; eb 10 14591 14726 mov byte [bp-004h], 01ch ; c6 46 fc 1c 14592 jmp short 099 50h ; eb 0a14727 jmp short 0994ch ; eb 0a 14593 14728 mov byte [bp-004h], 020h ; c6 46 fc 20 14594 jmp short 099 50h ; eb 0414729 jmp short 0994ch ; eb 04 14595 14730 mov byte [bp-004h], 024h ; c6 46 fc 24 14596 14731 mov cx, dx ; 89 d1 … … 14599 14734 mov al, byte [bp-004h] ; 8a 46 fc 14600 14735 test al, al ; 84 c0 14601 je short 0997 bh ; 74 1c14736 je short 09977h ; 74 1c 14602 14737 mov bl, al ; 88 c3 14603 14738 xor bh, bh ; 30 ff … … 14606 14741 mov al, byte [bp-008h] ; 8a 46 f8 14607 14742 xor ah, ah ; 30 e4 14608 call 09df ch ; e8 8c 0414743 call 09df8h ; e8 8c 04 14609 14744 test AL, strict byte 001h ; a8 01 14610 je short 0997 bh ; 74 0714745 je short 09977h ; 74 07 14611 14746 and AL, strict byte 0f0h ; 24 f0 14612 14747 add ax, cx ; 01 c8 14613 call 096f bh ; e8 80 fd14748 call 096f7h ; e8 80 fd 14614 14749 lea sp, [bp-002h] ; 8d 66 fe 14615 14750 pop di ; 5f 14616 14751 pop bp ; 5d 14617 14752 retn ; c3 14618 apm_out_str_: ; 0xf99 81LB 0x3914753 apm_out_str_: ; 0xf997d LB 0x39 14619 14754 push bp ; 55 14620 14755 mov bp, sp ; 89 e5 … … 14622 14757 mov bx, ax ; 89 c3 14623 14758 cmp byte [bx], 000h ; 80 3f 00 14624 je short 0999 6h ; 74 0a14759 je short 09992h ; 74 0a 14625 14760 mov al, byte [bx] ; 8a 07 14626 14761 out DX, AL ; ee … … 14629 14764 db 00ah, 0c0h 14630 14765 ; or al, al ; 0a c0 14631 jne short 0998 eh ; 75 f814766 jne short 0998ah ; 75 f8 14632 14767 lea sp, [bp-002h] ; 8d 66 fe 14633 14768 pop bx ; 5b 14634 14769 pop bp ; 5d 14635 14770 retn ; c3 14636 fistp dword [bx+di-0659dh] ; db 99 63 9a 14637 in ax, DX ; ed 14771 xlatb ; d7 14638 14772 cwd ; 99 14639 or byte [bp+si-0659dh], bl ; 08 9a 63 9a 14640 xor bx, word [bp+si-0659dh] ; 33 9a 63 9a 14641 imul bx, word [bp+si-065c8h], 09a38h ; 69 9a 38 9a 38 9a 14642 cmp byte [bp+si-06558h], bl ; 38 9a a8 9a 14643 cmp byte [bp+si-065c8h], bl ; 38 9a 38 9a 14644 db 0a1h 14773 pop di ; 5f 14774 call far 09a04h:099e9h ; 9a e9 99 04 9a 14775 pop di ; 5f 14776 call far 09a5fh:09a2fh ; 9a 2f 9a 5f 9a 14777 db 065h, 09ah, 034h, 09ah, 034h, 09ah 14778 ; gs call far gs:09a34h:09a34h ; 65 9a 34 9a 34 9a 14779 xor AL, strict byte 09ah ; 34 9a 14780 movsb ; a4 14781 call far 09a34h:09a34h ; 9a 34 9a 34 9a 14782 popfw ; 9d 14645 14783 db 09ah 14646 _apm_function: ; 0xf99b aLB 0xf314784 _apm_function: ; 0xf99b6 LB 0xf3 14647 14785 push bp ; 55 14648 14786 mov bp, sp ; 89 e5 … … 14652 14790 xor ah, ah ; 30 e4 14653 14791 cmp ax, strict word 0000eh ; 3d 0e 00 14654 jnbe short 09a3 8h ; 77 6c14792 jnbe short 09a34h ; 77 6c 14655 14793 mov bx, ax ; 89 c3 14656 14794 add bx, ax ; 01 c3 14657 14795 mov dx, word [bp+018h] ; 8b 56 18 14658 14796 or dl, 001h ; 80 ca 01 14659 jmp word [cs:bx-0666 4h] ; 2e ff a7 9c9914797 jmp word [cs:bx-06668h] ; 2e ff a7 98 99 14660 14798 mov word [bp+012h], 00102h ; c7 46 12 02 01 14661 14799 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 14662 14800 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 14663 jmp near 09a 63h ; e9 76 0014801 jmp near 09a5fh ; e9 76 00 14664 14802 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14665 mov word [bp+00ch], 0a0 34h ; c7 46 0c 34 a014803 mov word [bp+00ch], 0a024h ; c7 46 0c 24 a0 14666 14804 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 14667 14805 mov ax, strict word 0fff0h ; b8 f0 ff 14668 14806 mov word [bp+006h], ax ; 89 46 06 14669 14807 mov word [bp+004h], ax ; 89 46 04 14670 jmp near 09a 63h ; e9 5b 0014808 jmp near 09a5fh ; e9 5b 00 14671 14809 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14672 14810 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 14681 14819 mov si, ax ; 89 c6 14682 14820 sal esi, 010h ; 66 c1 e6 10 14683 jmp near 09a 63h ; e9 30 0014821 jmp near 09a5fh ; e9 30 00 14684 14822 sti ; fb 14685 14823 hlt ; f4 14686 jmp near 09a 63h ; e9 2b 0014824 jmp near 09a5fh ; e9 2b 00 14687 14825 mov bx, 00da0h ; bb a0 0d 14688 14826 mov cx, ds ; 8c d9 14689 14827 mov ax, strict word 00004h ; b8 04 00 14690 call 01923h ; e8 e 07e14828 call 01923h ; e8 e4 7e 14691 14829 push word [bp+00ch] ; ff 76 0c 14692 14830 push word [bp+012h] ; ff 76 12 14693 14831 push 00d29h ; 68 29 0d 14694 14832 push strict byte 00004h ; 6a 04 14695 call 01966h ; e8 1 57f14833 call 01966h ; e8 19 7f 14696 14834 add sp, strict byte 00008h ; 83 c4 08 14697 14835 mov ax, word [bp+012h] ; 8b 46 12 … … 14705 14843 retn ; c3 14706 14844 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 14707 je short 09a8 eh ; 74 1f14845 je short 09a8ah ; 74 1f 14708 14846 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 14709 je short 09a8 6h ; 74 1114847 je short 09a82h ; 74 11 14710 14848 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 14711 jne short 09a9 6h ; 75 1b14849 jne short 09a92h ; 75 1b 14712 14850 mov dx, 08900h ; ba 00 89 14713 14851 mov ax, 00d10h ; b8 10 0d 14714 call 099 81h ; e8 fd fe14715 jmp short 09a 63h ; eb dd14852 call 0997dh ; e8 fd fe 14853 jmp short 09a5fh ; eb dd 14716 14854 mov dx, 08900h ; ba 00 89 14717 14855 mov ax, 00d18h ; b8 18 0d 14718 jmp short 09a 81h ; eb f314856 jmp short 09a7dh ; eb f3 14719 14857 mov dx, 08900h ; ba 00 89 14720 14858 mov ax, 00d20h ; b8 20 0d 14721 jmp short 09a 81h ; eb eb14859 jmp short 09a7dh ; eb eb 14722 14860 or ah, 00ah ; 80 cc 0a 14723 14861 mov word [bp+012h], ax ; 89 46 12 14724 14862 mov word [bp+018h], dx ; 89 56 18 14725 jmp short 09a 63h ; eb c214863 jmp short 09a5fh ; eb c2 14726 14864 mov word [bp+012h], 00102h ; c7 46 12 02 01 14727 jmp short 09a 63h ; eb bb14865 jmp short 09a5fh ; eb bb 14728 14866 or ah, 080h ; 80 cc 80 14729 jmp short 09a9 9h ; eb ec14730 pci16_select_reg_: ; 0xf9aa dLB 0x2414867 jmp short 09a95h ; eb ec 14868 pci16_select_reg_: ; 0xf9aa9 LB 0x24 14731 14869 push bp ; 55 14732 14870 mov bp, sp ; 89 e5 … … 14745 14883 pop bp ; 5d 14746 14884 retn ; c3 14747 pci16_find_device_: ; 0xf9a d1LB 0xf914885 pci16_find_device_: ; 0xf9acd LB 0xf9 14748 14886 push bp ; 55 14749 14887 mov bp, sp ; 89 e5 … … 14759 14897 mov byte [bp-008h], 000h ; c6 46 f8 00 14760 14898 test bl, 007h ; f6 c3 07 14761 jne short 09b1 9h ; 75 2d14899 jne short 09b15h ; 75 2d 14762 14900 mov dx, strict word 0000eh ; ba 0e 00 14763 14901 mov ax, bx ; 89 d8 14764 call 09aa dh ; e8 b9 ff14902 call 09aa9h ; e8 b9 ff 14765 14903 mov dx, 00cfeh ; ba fe 0c 14766 14904 in AL, DX ; ec … … 14769 14907 mov byte [bp-006h], al ; 88 46 fa 14770 14908 cmp AL, strict byte 0ffh ; 3c ff 14771 jne short 09b0 7h ; 75 0614909 jne short 09b03h ; 75 06 14772 14910 add bx, strict byte 00008h ; 83 c3 08 14773 jmp near 09b9 ah ; e9 93 0014911 jmp near 09b96h ; e9 93 00 14774 14912 test byte [bp-006h], 080h ; f6 46 fa 80 14775 je short 09b1 4h ; 74 0714913 je short 09b10h ; 74 07 14776 14914 mov word [bp-010h], strict word 00001h ; c7 46 f0 01 00 14777 jmp short 09b1 9h ; eb 0514915 jmp short 09b15h ; eb 05 14778 14916 mov word [bp-010h], strict word 00008h ; c7 46 f0 08 00 14779 14917 mov al, byte [bp-006h] ; 8a 46 fa 14780 14918 and AL, strict byte 007h ; 24 07 14781 14919 cmp AL, strict byte 001h ; 3c 01 14782 jne short 09b 41h ; 75 1f14920 jne short 09b3dh ; 75 1f 14783 14921 mov ax, bx ; 89 d8 14784 14922 shr ax, 008h ; c1 e8 08 14785 14923 test ax, ax ; 85 c0 14786 jne short 09b 41h ; 75 1614924 jne short 09b3dh ; 75 16 14787 14925 mov dx, strict word 0001ah ; ba 1a 00 14788 14926 mov ax, bx ; 89 d8 14789 call 09aa dh ; e8 7a ff14927 call 09aa9h ; e8 7a ff 14790 14928 mov dx, 00cfeh ; ba fe 0c 14791 14929 in AL, DX ; ec … … 14793 14931 ; sub ah, ah ; 2a e4 14794 14932 cmp al, byte [bp-008h] ; 3a 46 f8 14795 jbe short 09b 41h ; 76 0314933 jbe short 09b3dh ; 76 03 14796 14934 mov byte [bp-008h], al ; 88 46 f8 14797 14935 test di, di ; 85 ff 14798 je short 09b4 ah ; 74 0514936 je short 09b46h ; 74 05 14799 14937 mov dx, strict word 00008h ; ba 08 00 14800 jmp short 09b4 ch ; eb 0214938 jmp short 09b48h ; eb 02 14801 14939 xor dx, dx ; 31 d2 14802 14940 mov ax, bx ; 89 d8 14803 call 09aa dh ; e8 5c ff14941 call 09aa9h ; e8 5c ff 14804 14942 mov dx, 00cfch ; ba fc 0c 14805 14943 in eax, DX ; 66 ed … … 14812 14950 mov word [bp-00eh], strict word 00000h ; c7 46 f2 00 00 14813 14951 test di, di ; 85 ff 14814 je short 09b7 bh ; 74 0f14952 je short 09b77h ; 74 0f 14815 14953 mov cx, strict word 00008h ; b9 08 00 14816 14954 shr dx, 1 ; d1 ea 14817 14955 rcr ax, 1 ; d1 d8 14818 loop 09b6 fh ; e2 fa14956 loop 09b6bh ; e2 fa 14819 14957 mov word [bp-00ah], ax ; 89 46 f6 14820 14958 mov word [bp-00ch], dx ; 89 56 f4 14821 14959 mov ax, word [bp-00ch] ; 8b 46 f4 14822 14960 cmp ax, word [bp-014h] ; 3b 46 ec 14823 jne short 09b8 bh ; 75 0814961 jne short 09b87h ; 75 08 14824 14962 mov ax, word [bp-00ah] ; 8b 46 f6 14825 14963 cmp ax, word [bp-012h] ; 3b 46 ee 14826 je short 09b 91h ; 74 0614964 je short 09b8dh ; 74 06 14827 14965 cmp word [bp-00eh], strict byte 00000h ; 83 7e f2 00 14828 je short 09b9 7h ; 74 0614966 je short 09b93h ; 74 06 14829 14967 dec si ; 4e 14830 14968 cmp si, strict byte 0ffffh ; 83 fe ff 14831 je short 09ba bh ; 74 1414969 je short 09ba7h ; 74 14 14832 14970 add bx, word [bp-010h] ; 03 5e f0 14833 14971 mov dx, bx ; 89 da … … 14836 14974 xor ah, ah ; 30 e4 14837 14975 cmp dx, ax ; 39 c2 14838 jnbe short 09ba bh ; 77 0314839 jmp near 09ae 7h ; e9 3c ff14976 jnbe short 09ba7h ; 77 03 14977 jmp near 09ae3h ; e9 3c ff 14840 14978 cmp si, strict byte 0ffffh ; 83 fe ff 14841 jne short 09bb 4h ; 75 0414979 jne short 09bb0h ; 75 04 14842 14980 mov ax, bx ; 89 d8 14843 jmp short 09bb 7h ; eb 0314981 jmp short 09bb3h ; eb 03 14844 14982 mov ax, strict word 0ffffh ; b8 ff ff 14845 14983 lea sp, [bp-004h] ; 8d 66 fc … … 14848 14986 pop bp ; 5d 14849 14987 retn ; c3 14850 stosw ; ab14988 cmpsw ; a7 14851 14989 pushfw ; 9c 14852 les bx, [si-0632ah] ; c4 9c d6 9c 14853 jmp far 00f9ch:0fc9ch ; ea 9c fc 9c 0f 14990 rcr byte [si-0632eh], 0e6h ; c0 9c d2 9c e6 14991 pushfw ; 9c 14992 clc ; f8 14993 pushfw ; 9c 14994 db 00bh 14854 14995 popfw ; 9d 14855 _pci16_function: ; 0xf9bc aLB 0x1d214996 _pci16_function: ; 0xf9bc6 LB 0x1d2 14856 14997 push bp ; 55 14857 14998 mov bp, sp ; 89 e5 … … 14867 15008 xor ah, ah ; 30 e4 14868 15009 cmp bx, strict byte 00003h ; 83 fb 03 14869 jc short 09bf ch ; 72 1314870 jbe short 09c4 fh ; 76 6415010 jc short 09bf8h ; 72 13 15011 jbe short 09c4bh ; 76 64 14871 15012 cmp bx, strict byte 0000eh ; 83 fb 0e 14872 je short 09c5 7h ; 74 6715013 je short 09c53h ; 74 67 14873 15014 cmp bx, strict byte 00008h ; 83 fb 08 14874 jc short 09c0 6h ; 72 1115015 jc short 09c02h ; 72 11 14875 15016 cmp bx, strict byte 0000dh ; 83 fb 0d 14876 jbe short 09c5 ah ; 76 6014877 jmp short 09c0 6h ; eb 0a15017 jbe short 09c56h ; 76 60 15018 jmp short 09c02h ; eb 0a 14878 15019 cmp bx, strict byte 00002h ; 83 fb 02 14879 je short 09c2 5h ; 74 2415020 je short 09c21h ; 74 24 14880 15021 cmp bx, strict byte 00001h ; 83 fb 01 14881 je short 09c0 9h ; 74 0314882 jmp near 09d6 8h ; e9 5f 0115022 je short 09c05h ; 74 03 15023 jmp near 09d64h ; e9 5f 01 14883 15024 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 14884 15025 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 14886 15027 mov word [bp+018h], 04350h ; c7 46 18 50 43 14887 15028 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 14888 jmp near 09d9 5h ; e9 70 0115029 jmp near 09d91h ; e9 70 01 14889 15030 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 14890 jne short 09c 31h ; 75 0615031 jne short 09c2dh ; 75 06 14891 15032 or ah, 083h ; 80 cc 83 14892 jmp near 09d8 eh ; e9 5d 0115033 jmp near 09d8ah ; e9 5d 01 14893 15034 mov bx, word [bp+008h] ; 8b 5e 08 14894 15035 mov dx, word [bp+01ch] ; 8b 56 1c 14895 15036 mov ax, word [bp+018h] ; 8b 46 18 14896 15037 xor cx, cx ; 31 c9 14897 call 09a d1h ; e8 92 fe15038 call 09acdh ; e8 92 fe 14898 15039 cmp ax, strict word 0ffffh ; 3d ff ff 14899 jne short 09c 51h ; 75 0d15040 jne short 09c4dh ; 75 0d 14900 15041 mov ax, word [bp+020h] ; 8b 46 20 14901 15042 xor ah, ah ; 30 e4 14902 15043 or ah, 086h ; 80 cc 86 14903 jmp near 09d8 eh ; e9 3f 0114904 jmp short 09c5 ch ; eb 0b15044 jmp near 09d8ah ; e9 3f 01 15045 jmp short 09c58h ; eb 0b 14905 15046 mov word [bp+014h], ax ; 89 46 14 14906 jmp near 09d9 5h ; e9 3e 0114907 jmp near 09d 23h ; e9 c9 0014908 jmp short 09c 81h ; eb 2515047 jmp near 09d91h ; e9 3e 01 15048 jmp near 09d1fh ; e9 c9 00 15049 jmp short 09c7dh ; eb 25 14909 15050 mov bx, word [bp+008h] ; 8b 5e 08 14910 15051 mov ax, word [bp+01ch] ; 8b 46 1c 14911 15052 mov dx, word [bp+01eh] ; 8b 56 1e 14912 15053 mov cx, strict word 00001h ; b9 01 00 14913 call 09a d1h ; e8 66 fe15054 call 09acdh ; e8 66 fe 14914 15055 cmp ax, strict word 0ffffh ; 3d ff ff 14915 jne short 09c7 bh ; 75 0b15056 jne short 09c77h ; 75 0b 14916 15057 mov ax, word [bp+020h] ; 8b 46 20 14917 15058 xor ah, ah ; 30 e4 14918 15059 or ah, 086h ; 80 cc 86 14919 jmp near 09d8 eh ; e9 13 0115060 jmp near 09d8ah ; e9 13 01 14920 15061 mov word [bp+014h], ax ; 89 46 14 14921 jmp near 09d9 5h ; e9 14 0115062 jmp near 09d91h ; e9 14 01 14922 15063 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 14923 jc short 09c8 eh ; 72 0615064 jc short 09c8ah ; 72 06 14924 15065 or ah, 087h ; 80 cc 87 14925 jmp near 09d8 eh ; e9 00 0115066 jmp near 09d8ah ; e9 00 01 14926 15067 mov dx, word [bp+004h] ; 8b 56 04 14927 15068 mov ax, word [bp+014h] ; 8b 46 14 14928 call 09aa dh ; e8 16 fe15069 call 09aa9h ; e8 16 fe 14929 15070 mov bx, word [bp+020h] ; 8b 5e 20 14930 15071 xor bh, bh ; 30 ff 14931 15072 sub bx, strict byte 00008h ; 83 eb 08 14932 15073 cmp bx, strict byte 00005h ; 83 fb 05 14933 jnbe short 09d0 ch ; 77 6815074 jnbe short 09d08h ; 77 68 14934 15075 add bx, bx ; 01 db 14935 jmp word [cs:bx-0644 2h] ; 2e ff a7 be9b15076 jmp word [cs:bx-06446h] ; 2e ff a7 ba 9b 14936 15077 mov bx, word [bp+01ch] ; 8b 5e 1c 14937 15078 xor bl, bl ; 30 db … … 14944 15085 or bx, ax ; 09 c3 14945 15086 mov word [bp+01ch], bx ; 89 5e 1c 14946 jmp short 09d0 ch ; eb 4815087 jmp short 09d08h ; eb 48 14947 15088 mov dx, word [bp+004h] ; 8b 56 04 14948 15089 xor dh, dh ; 30 f6 … … 14951 15092 in ax, DX ; ed 14952 15093 mov word [bp+01ch], ax ; 89 46 1c 14953 jmp short 09d0 ch ; eb 3615094 jmp short 09d08h ; eb 36 14954 15095 mov dx, 00cfch ; ba fc 0c 14955 15096 in eax, DX ; 66 ed … … 14960 15101 mov word [bp+01ch], ax ; 89 46 1c 14961 15102 mov word [bp+01eh], dx ; 89 56 1e 14962 jmp short 09d0 ch ; eb 2215103 jmp short 09d08h ; eb 22 14963 15104 mov ax, word [bp+01ch] ; 8b 46 1c 14964 15105 mov dx, word [bp+004h] ; 8b 56 04 … … 14967 15108 add dx, 00cfch ; 81 c2 fc 0c 14968 15109 out DX, AL ; ee 14969 jmp short 09d0 ch ; eb 1015110 jmp short 09d08h ; eb 10 14970 15111 mov ax, word [bp+01ch] ; 8b 46 1c 14971 15112 mov dx, word [bp+004h] ; 8b 56 04 … … 14974 15115 add dx, 00cfch ; 81 c2 fc 0c 14975 15116 out DX, ax ; ef 14976 jmp near 09d9 5h ; e9 86 0015117 jmp near 09d91h ; e9 86 00 14977 15118 mov ax, word [bp+01ch] ; 8b 46 1c 14978 15119 mov cx, word [bp+01eh] ; 8b 4e 1e … … 14983 15124 ; mov ax, cx ; 8b c1 14984 15125 out DX, eax ; 66 ef 14985 jmp short 09d9 5h ; eb 7215126 jmp short 09d91h ; eb 72 14986 15127 mov bx, word [bp+004h] ; 8b 5e 04 14987 15128 mov es, [bp+026h] ; 8e 46 26 … … 14990 15131 mov cx, word [0f4a0h] ; 8b 0e a0 f4 14991 15132 cmp cx, word [es:bx] ; 26 3b 0f 14992 jbe short 09d4 9h ; 76 1115133 jbe short 09d45h ; 76 11 14993 15134 mov ax, word [bp+020h] ; 8b 46 20 14994 15135 xor ah, ah ; 30 e4 … … 14996 15137 mov word [bp+020h], ax ; 89 46 20 14997 15138 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 14998 jmp short 09d5 dh ; eb 1415139 jmp short 09d59h ; eb 14 14999 15140 les di, [es:bx+002h] ; 26 c4 7f 02 15000 15141 mov si, 0f2c0h ; be c0 f2 … … 15008 15149 les bx, [bp-008h] ; c4 5e f8 15009 15150 mov word [es:bx], ax ; 26 89 07 15010 jmp short 09d9 5h ; eb 2d15151 jmp short 09d91h ; eb 2d 15011 15152 mov bx, 00da0h ; bb a0 0d 15012 15153 mov cx, ds ; 8c d9 15013 15154 mov ax, strict word 00004h ; b8 04 00 15014 call 01923h ; e8 b 07b15155 call 01923h ; e8 b4 7b 15015 15156 mov ax, word [bp+014h] ; 8b 46 14 15016 15157 push ax ; 50 … … 15019 15160 push 00d5ch ; 68 5c 0d 15020 15161 push strict byte 00004h ; 6a 04 15021 call 01966h ; e8 e 37b15162 call 01966h ; e8 e7 7b 15022 15163 add sp, strict byte 00008h ; 83 c4 08 15023 15164 mov ax, word [bp+020h] ; 8b 46 20 … … 15031 15172 pop bp ; 5d 15032 15173 retn ; c3 15033 pci_find_classcode_: ; 0xf9d9 cLB 0x815174 pci_find_classcode_: ; 0xf9d98 LB 0x8 15034 15175 push bp ; 55 15035 15176 mov bp, sp ; 89 e5 … … 15037 15178 pop bp ; 5d 15038 15179 retn ; c3 15039 pci_read_config_byte_: ; 0xf9da 4LB 0x2e15180 pci_read_config_byte_: ; 0xf9da0 LB 0x2e 15040 15181 push bp ; 55 15041 15182 mov bp, sp ; 89 e5 … … 15063 15204 pop bp ; 5d 15064 15205 retn ; c3 15065 pci_read_config_word_: ; 0xf9d d2LB 0x2a15206 pci_read_config_word_: ; 0xf9dce LB 0x2a 15066 15207 push bp ; 55 15067 15208 mov bp, sp ; 89 e5 … … 15087 15228 pop bp ; 5d 15088 15229 retn ; c3 15089 pci_read_config_dword_: ; 0xf9df cLB 0x4e15230 pci_read_config_dword_: ; 0xf9df8 LB 0x4e 15090 15231 push bp ; 55 15091 15232 mov bp, sp ; 89 e5 … … 15109 15250 int 01ah ; cd 1a 15110 15251 test cx, cx ; 85 c9 15111 jne short 09e3 bh ; 75 1415252 jne short 09e37h ; 75 14 15112 15253 mov al, byte [bp-006h] ; 8a 46 fa 15113 15254 xor ah, ah ; 30 e4 … … 15119 15260 int 01ah ; cd 1a 15120 15261 test cx, cx ; 85 c9 15121 je short 09e 40h ; 74 0515262 je short 09e3ch ; 74 05 15122 15263 mov ax, strict word 00001h ; b8 01 00 15123 jmp short 09e 42h ; eb 0215264 jmp short 09e3eh ; eb 02 15124 15265 xor ax, ax ; 31 c0 15125 15266 cwd ; 99 … … 15129 15270 pop bp ; 5d 15130 15271 retn ; c3 15131 vds_is_present_: ; 0xf9e4 aLB 0x1d15272 vds_is_present_: ; 0xf9e46 LB 0x1d 15132 15273 push bx ; 53 15133 15274 push bp ; 55 … … 15137 15278 mov es, ax ; 8e c0 15138 15279 test byte [es:bx], 020h ; 26 f6 07 20 15139 je short 09e 62h ; 74 0615280 je short 09e5eh ; 74 06 15140 15281 mov ax, strict word 00001h ; b8 01 00 15141 15282 pop bp ; 5d … … 15146 15287 pop bx ; 5b 15147 15288 retn ; c3 15148 vds_real_to_lin_: ; 0xf9e6 7LB 0x1e15289 vds_real_to_lin_: ; 0xf9e63 LB 0x1e 15149 15290 push bx ; 53 15150 15291 push cx ; 51 … … 15157 15298 sal ax, 1 ; d1 e0 15158 15299 rcl dx, 1 ; d1 d2 15159 loop 09e7 5h ; e2 fa15300 loop 09e71h ; e2 fa 15160 15301 xor cx, cx ; 31 c9 15161 15302 add ax, bx ; 01 d8 … … 15165 15306 pop bx ; 5b 15166 15307 retn ; c3 15167 vds_build_sg_list_: ; 0xf9e8 5LB 0x7715308 vds_build_sg_list_: ; 0xf9e81 LB 0x77 15168 15309 push bp ; 55 15169 15310 mov bp, sp ; 89 e5 … … 15179 15320 mov bx, word [bp+006h] ; 8b 5e 06 15180 15321 mov word [es:di+002h], bx ; 26 89 5d 02 15181 call 09e6 7h ; e8 c3 ff15322 call 09e63h ; e8 c3 ff 15182 15323 mov es, si ; 8e c6 15183 15324 mov word [es:di+004h], ax ; 26 89 45 04 15184 15325 mov word [es:di+006h], dx ; 26 89 55 06 15185 15326 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 15186 call 09e4 ah ; e8 93 ff15327 call 09e46h ; e8 93 ff 15187 15328 test ax, ax ; 85 c0 15188 je short 09ec ch ; 74 1115329 je short 09ec8h ; 74 11 15189 15330 mov es, si ; 8e c6 15190 15331 mov ax, 08105h ; b8 05 81 15191 15332 mov dx, strict word 00000h ; ba 00 00 15192 15333 int 04bh ; cd 4b 15193 jc short 09ec 9h ; 72 0215334 jc short 09ec5h ; 72 02 15194 15335 db 032h, 0c0h 15195 15336 ; xor al, al ; 32 c0 15196 15337 cbw ; 98 15197 jmp short 09e f3h ; eb 2715338 jmp short 09eefh ; eb 27 15198 15339 mov es, si ; 8e c6 15199 15340 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 15212 15353 pop bp ; 5d 15213 15354 retn 00004h ; c2 04 00 15214 vds_free_sg_list_: ; 0xf9ef c LB 0x3415355 vds_free_sg_list_: ; 0xf9ef8 LB 0x38 15215 15356 push bp ; 55 15216 15357 mov bp, sp ; 89 e5 … … 15218 15359 push di ; 57 15219 15360 mov bx, ax ; 89 c3 15220 call 09e4 ah ; e8 44 ff15361 call 09e46h ; e8 44 ff 15221 15362 test ax, ax ; 85 c0 15222 je short 09f1 bh ; 74 1115363 je short 09f17h ; 74 11 15223 15364 mov di, bx ; 89 df 15224 15365 mov es, dx ; 8e c2 … … 15226 15367 mov dx, strict word 00000h ; ba 00 00 15227 15368 int 04bh ; cd 4b 15228 jc short 09f1 ah ; 72 0215369 jc short 09f16h ; 72 02 15229 15370 db 032h, 0c0h 15230 15371 ; xor al, al ; 32 c0 … … 15237 15378 pop bp ; 5d 15238 15379 retn ; c3 15239 times 0x 6db 015240 __U4 D: ; 0xf9f30 LB 0x3915380 times 0xa db 0 15381 __U4M: ; 0xf9f30 LB 0x20 15241 15382 pushfw ; 9c 15242 push eax ; 66 50 15243 push edx ; 66 52 15244 push ecx ; 66 51 15245 rol eax, 010h ; 66 c1 c0 10 15246 db 08bh, 0c2h 15247 ; mov ax, dx ; 8b c2 15248 ror eax, 010h ; 66 c1 c8 10 15249 db 066h, 033h, 0d2h 15250 ; xor edx, edx ; 66 33 d2 15251 shr ecx, 010h ; 66 c1 e9 10 15252 db 08bh, 0cbh 15253 ; mov cx, bx ; 8b cb 15254 div ecx ; 66 f7 f1 15255 db 08bh, 0dah 15256 ; mov bx, dx ; 8b da 15257 pop ecx ; 66 59 15258 shr edx, 010h ; 66 c1 ea 10 15259 db 08bh, 0cah 15260 ; mov cx, dx ; 8b ca 15261 pop edx ; 66 5a 15262 ror eax, 010h ; 66 c1 c8 10 15263 db 08bh, 0d0h 15264 ; mov dx, ax ; 8b d0 15265 add sp, strict byte 00002h ; 83 c4 02 15383 push si ; 56 15384 push di ; 57 15385 push ax ; 50 15386 db 08bh, 0fah 15387 ; mov di, dx ; 8b fa 15388 mul bx ; f7 e3 15389 db 08bh, 0f2h 15390 ; mov si, dx ; 8b f2 15391 xchg di, ax ; 97 15392 mul bx ; f7 e3 15393 db 003h, 0f0h 15394 ; add si, ax ; 03 f0 15266 15395 pop ax ; 58 15267 rol eax, 010h ; 66 c1 c0 10 15396 mul cx ; f7 e1 15397 db 003h, 0f0h 15398 ; add si, ax ; 03 f0 15399 db 08bh, 0d6h 15400 ; mov dx, si ; 8b d6 15401 db 08bh, 0c7h 15402 ; mov ax, di ; 8b c7 15403 pop di ; 5f 15404 pop si ; 5e 15268 15405 popfw ; 9d 15269 15406 retn ; c3 15270 __U4M: ; 0xf9f69 LB 0x31 15407 times 0x4 db 0 15408 __U4D: ; 0xf9f50 LB 0x30 15271 15409 pushfw ; 9c 15272 push eax ; 66 5015273 push edx ; 66 5215274 push ecx ; 66 5115275 rol eax, 010h ; 66 c1 c0 1015276 db 08bh, 0 c2h15277 ; mov ax, dx ; 8b c215278 ror eax, 010h ; 66 c1 c8 1015279 db 066h, 033h, 0d2h15280 ; xor edx, edx ; 66 33 d215281 shr ecx, 010h ; 66 c1 e9 1015282 db 08bh, 0cbh15283 ; mov cx, bx ; 8b cb15284 mul ecx ; 66 f7 e115285 pop ecx ; 66 5915286 pop edx ; 66 5a15287 ror eax, 010h ; 66 c1 c8 1015288 db 08bh, 0 d0h15289 ; mov dx, ax ; 8b d015290 add sp, strict byte 00002h ; 83 c4 0215291 pop ax ; 5815292 rol eax, 010h ; 66 c1 c0 1015410 push DS ; 1e 15411 push ES ; 06 15412 push bp ; 55 15413 sub sp, strict byte 00004h ; 83 ec 04 15414 db 08bh, 0ech 15415 ; mov bp, sp ; 8b ec 15416 push SS ; 16 15417 push bp ; 55 15418 add bp, strict byte 00004h ; 83 c5 04 15419 push cx ; 51 15420 push bx ; 53 15421 push dx ; 52 15422 push ax ; 50 15423 call 0a035h ; e8 d0 00 15424 mov cx, word [bp-002h] ; 8b 4e fe 15425 mov bx, word [bp-004h] ; 8b 5e fc 15426 db 08bh, 0e5h 15427 ; mov sp, bp ; 8b e5 15428 pop bp ; 5d 15429 pop ES ; 07 15430 pop DS ; 1f 15293 15431 popfw ; 9d 15294 15432 retn ; c3 15295 __U8LS: ; 0xf9f9a LB 0x10 15433 times 0xe db 0 15434 __U8RS: ; 0xf9f80 LB 0x10 15296 15435 test si, si ; 85 f6 15297 je short 09fa9h ; 74 0b 15436 je short 09f8fh ; 74 0b 15437 shr ax, 1 ; d1 e8 15438 rcr bx, 1 ; d1 db 15439 rcr cx, 1 ; d1 d9 15440 rcr dx, 1 ; d1 da 15441 dec si ; 4e 15442 jne short 09f84h ; 75 f5 15443 retn ; c3 15444 __U8LS: ; 0xf9f90 LB 0x10 15445 test si, si ; 85 f6 15446 je short 09f9fh ; 74 0b 15298 15447 sal dx, 1 ; d1 e2 15299 15448 rcl cx, 1 ; d1 d1 … … 15301 15450 rcl ax, 1 ; d1 d0 15302 15451 dec si ; 4e 15303 jne short 09f9 eh ; 75 f515452 jne short 09f94h ; 75 f5 15304 15453 retn ; c3 15305 __U8RS: ; 0xf9faa LB 0x10 15306 test si, si ; 85 f6 15307 je short 09fb9h ; 74 0b 15308 shr ax, 1 ; d1 e8 15309 rcr bx, 1 ; d1 db 15310 rcr cx, 1 ; d1 d9 15311 rcr dx, 1 ; d1 da 15312 dec si ; 4e 15313 jne short 09faeh ; 75 f5 15314 retn ; c3 15315 _fmemset_: ; 0xf9fba LB 0xd 15454 _fmemset_: ; 0xf9fa0 LB 0x10 15316 15455 push di ; 57 15317 15456 mov es, dx ; 8e c2 … … 15323 15462 pop di ; 5f 15324 15463 retn ; c3 15325 _fmemcpy_: ; 0xf9fc7 LB 0x33 15464 times 0x3 db 0 15465 _fmemcpy_: ; 0xf9fb0 LB 0x3a 15326 15466 push bp ; 55 15327 15467 db 08bh, 0ech … … 15341 15481 pop DS ; 1f 15342 15482 pop di ; 5f 15343 leave ; c9 15483 db 08bh, 0e5h 15484 ; mov sp, bp ; 8b e5 15485 pop bp ; 5d 15344 15486 retn ; c3 15345 add byte [bx+si], dl ; 00 10 15346 mov AL, byte [0a012h] ; a0 12 a0 15347 push SS ; 16 15348 mov AL, byte [0a016h] ; a0 16 a0 15349 push SS ; 16 15350 mov AL, byte [0a018h] ; a0 18 a0 15351 sbb byte [bx+si-05fe6h], ah ; 18 a0 1a a0 15352 push DS ; 1e 15353 mov AL, byte [0a01eh] ; a0 1e a0 15354 and byte [bx+si-05fdbh], ah ; 20 a0 25 a0 15355 daa ; 27 15487 add byte [bx+si], al ; 00 00 15488 add byte [bx+si], al ; 00 00 15489 add byte [bx+si], al ; 00 00 15490 add byte [bx+si-05ffeh], ah ; 00 a0 02 a0 15491 push ES ; 06 15492 mov AL, byte [0a006h] ; a0 06 a0 15493 push ES ; 06 15494 mov AL, byte [0a008h] ; a0 08 a0 15495 or byte [bx+si-05ff6h], ah ; 08 a0 0a a0 15496 push CS ; 0e 15497 mov AL, byte [0a00eh] ; a0 0e a0 15498 adc byte [bx+si-05febh], ah ; 10 a0 15 a0 15499 pop SS ; 17 15356 15500 db 0a0h 15357 apm_worker: ; 0xf9f fa LB 0x3a15501 apm_worker: ; 0xf9fea LB 0x3a 15358 15502 sti ; fb 15359 15503 push ax ; 50 … … 15367 15511 pop ax ; 58 15368 15512 mov AH, strict byte 053h ; b4 53 15369 jnc short 0a0 30h ; 73 2515370 jmp word [cs:bp-060 20h] ; 2e ff a6 e0 9f15371 jmp short 0a0 2eh ; eb 1c15513 jnc short 0a020h ; 73 25 15514 jmp word [cs:bp-06030h] ; 2e ff a6 d0 9f 15515 jmp short 0a01eh ; eb 1c 15372 15516 sti ; fb 15373 15517 hlt ; f4 15374 jmp short 0a0 2eh ; eb 1815375 jmp short 0a0 2eh ; eb 1615376 jmp short 0a0 30h ; eb 1615518 jmp short 0a01eh ; eb 18 15519 jmp short 0a01eh ; eb 16 15520 jmp short 0a020h ; eb 16 15377 15521 mov AH, strict byte 080h ; b4 80 15378 jmp short 0a0 32h ; eb 1415379 jmp short 0a0 30h ; eb 1015522 jmp short 0a022h ; eb 14 15523 jmp short 0a020h ; eb 10 15380 15524 mov ax, 00102h ; b8 02 01 15381 jmp short 0a0 2eh ; eb 0915382 jmp short 0a0 2eh ; eb 0715525 jmp short 0a01eh ; eb 09 15526 jmp short 0a01eh ; eb 07 15383 15527 mov BL, strict byte 000h ; b3 00 15384 15528 mov cx, strict word 00000h ; b9 00 00 15385 jmp short 0a0 2eh ; eb 0015529 jmp short 0a01eh ; eb 00 15386 15530 clc ; f8 15387 15531 retn ; c3 … … 15389 15533 stc ; f9 15390 15534 retn ; c3 15391 apm_pm16_entry: ; 0xfa0 34 LB 0x1115535 apm_pm16_entry: ; 0xfa024 LB 0x11 15392 15536 mov AH, strict byte 002h ; b4 02 15393 15537 push DS ; 1e … … 15397 15541 add bp, strict byte 00008h ; 83 c5 08 15398 15542 mov ds, bp ; 8e dd 15399 call 09f fah ; e8 b8 ff15543 call 09feah ; e8 b8 ff 15400 15544 pop bp ; 5d 15401 15545 pop DS ; 1f 15402 15546 retf ; cb 15547 _DoUInt32Div: ; 0xfa035 LB 0x26b 15548 push bp ; 55 15549 mov bp, sp ; 89 e5 15550 push si ; 56 15551 push di ; 57 15552 sub sp, strict byte 00018h ; 83 ec 18 15553 lds bx, [bp+00ch] ; c5 5e 0c 15554 lea si, [bp+004h] ; 8d 76 04 15555 mov word [bp-010h], si ; 89 76 f0 15556 mov [bp-00eh], ss ; 8c 56 f2 15557 lea di, [bp+008h] ; 8d 7e 08 15558 mov [bp-008h], ss ; 8c 56 f8 15559 lea si, [bp-01ch] ; 8d 76 e4 15560 mov word [bp-00ch], si ; 89 76 f4 15561 mov [bp-00ah], ss ; 8c 56 f6 15562 mov si, bx ; 89 de 15563 mov [bp-006h], ds ; 8c 5e fa 15564 cmp word [bx+002h], strict byte 00000h ; 83 7f 02 00 15565 jne short 0a085h ; 75 22 15566 mov ax, word [bx] ; 8b 07 15567 test ax, ax ; 85 c0 15568 je short 0a082h ; 74 19 15569 cmp ax, strict word 00001h ; 3d 01 00 15570 jne short 0a085h ; 75 17 15571 xor ax, ax ; 31 c0 15572 mov word [bp+00ah], ax ; 89 46 0a 15573 mov word [bp+008h], ax ; 89 46 08 15574 mov ax, word [bp-01ch] ; 8b 46 e4 15575 mov word [bp+004h], ax ; 89 46 04 15576 mov ax, word [bp-01ah] ; 8b 46 e6 15577 mov word [bp+006h], ax ; 89 46 06 15578 jmp near 0a28dh ; e9 08 02 15579 lds bx, [bp-00ch] ; c5 5e f4 15580 mov ax, word [bx+002h] ; 8b 47 02 15581 mov ds, [bp-006h] ; 8e 5e fa 15582 cmp ax, word [si+002h] ; 3b 44 02 15583 je short 0a0abh ; 74 18 15584 mov ds, [bp-00ah] ; 8e 5e f6 15585 mov ax, word [bx+002h] ; 8b 47 02 15586 mov ds, [bp-006h] ; 8e 5e fa 15587 cmp ax, word [si+002h] ; 3b 44 02 15588 jbe short 0a0a6h ; 76 05 15589 mov ax, strict word 00001h ; b8 01 00 15590 jmp short 0a0cch ; eb 26 15591 mov ax, strict word 0ffffh ; b8 ff ff 15592 jmp short 0a0cch ; eb 21 15593 mov ds, [bp-00ah] ; 8e 5e f6 15594 mov ax, word [bx] ; 8b 07 15595 mov ds, [bp-006h] ; 8e 5e fa 15596 cmp ax, word [si] ; 3b 04 15597 je short 0a0cah ; 74 13 15598 mov ds, [bp-00ah] ; 8e 5e f6 15599 mov ax, word [bx] ; 8b 07 15600 mov ds, [bp-006h] ; 8e 5e fa 15601 cmp ax, word [si] ; 3b 04 15602 jbe short 0a0c5h ; 76 02 15603 jmp short 0a0a1h ; eb dc 15604 mov ax, strict word 0ffffh ; b8 ff ff 15605 jmp short 0a0cch ; eb 02 15606 xor ax, ax ; 31 c0 15607 test ax, ax ; 85 c0 15608 jnl short 0a0eeh ; 7d 1e 15609 lds bx, [bp-00ch] ; c5 5e f4 15610 mov ax, word [bx] ; 8b 07 15611 mov dx, word [bx+002h] ; 8b 57 02 15612 mov ds, [bp-008h] ; 8e 5e f8 15613 mov word [di], ax ; 89 05 15614 mov word [di+002h], dx ; 89 55 02 15615 lds bx, [bp-010h] ; c5 5e f0 15616 mov word [bx+002h], strict word 00000h ; c7 47 02 00 00 15617 mov word [bx], strict word 00000h ; c7 07 00 00 15618 jmp short 0a082h ; eb 94 15619 jne short 0a105h ; 75 15 15620 mov ds, [bp-008h] ; 8e 5e f8 15621 mov word [di+002h], ax ; 89 45 02 15622 mov word [di], ax ; 89 05 15623 lds bx, [bp-010h] ; c5 5e f0 15624 mov word [bx], strict word 00001h ; c7 07 01 00 15625 mov word [bx+002h], ax ; 89 47 02 15626 jmp near 0a28dh ; e9 88 01 15627 lds bx, [bp-00ch] ; c5 5e f4 15628 mov ax, word [bx+002h] ; 8b 47 02 15629 test ax, ax ; 85 c0 15630 je short 0a120h ; 74 11 15631 push ax ; 50 15632 mov ax, 0f000h ; b8 00 f0 15633 mov ds, ax ; 8e d8 15634 call 0a2a0h ; e8 88 01 15635 add sp, strict byte 00002h ; 83 c4 02 15636 add ax, strict word 00010h ; 05 10 00 15637 jmp short 0a12dh ; eb 0d 15638 push word [bx] ; ff 37 15639 mov ax, 0f000h ; b8 00 f0 15640 mov ds, ax ; 8e d8 15641 call 0a2a0h ; e8 76 01 15642 add sp, strict byte 00002h ; 83 c4 02 15643 mov word [bp-014h], ax ; 89 46 ec 15644 mov ds, [bp-006h] ; 8e 5e fa 15645 mov ax, word [si+002h] ; 8b 44 02 15646 test ax, ax ; 85 c0 15647 je short 0a14bh ; 74 11 15648 push ax ; 50 15649 mov ax, 0f000h ; b8 00 f0 15650 mov ds, ax ; 8e d8 15651 call 0a2a0h ; e8 5d 01 15652 add sp, strict byte 00002h ; 83 c4 02 15653 add ax, strict word 00010h ; 05 10 00 15654 jmp short 0a158h ; eb 0d 15655 push word [si] ; ff 34 15656 mov ax, 0f000h ; b8 00 f0 15657 mov ds, ax ; 8e d8 15658 call 0a2a0h ; e8 4b 01 15659 add sp, strict byte 00002h ; 83 c4 02 15660 mov dx, word [bp-014h] ; 8b 56 ec 15661 sub dx, ax ; 29 c2 15662 mov word [bp-012h], dx ; 89 56 ee 15663 mov ds, [bp-006h] ; 8e 5e fa 15664 mov ax, word [si] ; 8b 04 15665 mov word [bp-018h], ax ; 89 46 e8 15666 mov ax, word [si+002h] ; 8b 44 02 15667 mov word [bp-016h], ax ; 89 46 ea 15668 test dx, dx ; 85 d2 15669 je short 0a1c8h ; 74 56 15670 mov cx, dx ; 89 d1 15671 xor ch, dh ; 30 f5 15672 and cl, 01fh ; 80 e1 1f 15673 mov ax, word [si] ; 8b 04 15674 mov dx, word [si+002h] ; 8b 54 02 15675 jcxz 0a186h ; e3 06 15676 sal ax, 1 ; d1 e0 15677 rcl dx, 1 ; d1 d2 15678 loop 0a180h ; e2 fa 15679 mov word [bp-018h], ax ; 89 46 e8 15680 mov word [bp-016h], dx ; 89 56 ea 15681 mov ax, word [bp-016h] ; 8b 46 ea 15682 lds bx, [bp-00ch] ; c5 5e f4 15683 cmp ax, word [bx+002h] ; 3b 47 02 15684 jnbe short 0a1a6h ; 77 0f 15685 mov ax, word [bp-016h] ; 8b 46 ea 15686 cmp ax, word [bx+002h] ; 3b 47 02 15687 jne short 0a1aah ; 75 0b 15688 mov ax, word [bp-018h] ; 8b 46 e8 15689 cmp ax, word [bx] ; 3b 07 15690 jbe short 0a1aah ; 76 04 15691 mov AL, strict byte 001h ; b0 01 15692 jmp short 0a1ach ; eb 02 15693 xor al, al ; 30 c0 15694 test al, al ; 84 c0 15695 je short 0a1d3h ; 74 23 15696 shr word [bp-016h], 1 ; d1 6e ea 15697 rcr word [bp-018h], 1 ; d1 5e e8 15698 dec word [bp-012h] ; ff 4e ee 15699 jmp short 0a1d3h ; eb 18 15700 mov cx, strict word 0001fh ; b9 1f 00 15701 sal word [bp-018h], 1 ; d1 66 e8 15702 rcl word [bp-016h], 1 ; d1 56 ea 15703 loop 0a1beh ; e2 f8 15704 jmp short 0a1b6h ; eb ee 15705 mov ax, word [si] ; 8b 04 15706 mov word [bp-018h], ax ; 89 46 e8 15707 mov ax, word [si+002h] ; 8b 44 02 15708 mov word [bp-016h], ax ; 89 46 ea 15709 lds bx, [bp-010h] ; c5 5e f0 15710 mov word [bx+002h], strict word 00000h ; c7 47 02 00 00 15711 mov word [bx], strict word 00000h ; c7 07 00 00 15712 lds bx, [bp-00ch] ; c5 5e f4 15713 mov dx, word [bx] ; 8b 17 15714 mov ax, word [bx+002h] ; 8b 47 02 15715 mov ds, [bp-008h] ; 8e 5e f8 15716 mov word [di], dx ; 89 15 15717 mov word [di+002h], ax ; 89 45 02 15718 mov dx, word [di] ; 8b 15 15719 mov ds, [bp-006h] ; 8e 5e fa 15720 cmp ax, word [si+002h] ; 3b 44 02 15721 jnbe short 0a1ffh ; 77 06 15722 jne short 0a203h ; 75 08 15723 cmp dx, word [si] ; 3b 14 15724 jc short 0a203h ; 72 04 15725 mov AL, strict byte 001h ; b0 01 15726 jmp short 0a205h ; eb 02 15727 xor al, al ; 30 c0 15728 test al, al ; 84 c0 15729 je short 0a26ah ; 74 61 15730 mov ds, [bp-008h] ; 8e 5e f8 15731 mov ax, word [di+002h] ; 8b 45 02 15732 cmp ax, word [bp-016h] ; 3b 46 ea 15733 jnbe short 0a220h ; 77 0c 15734 cmp ax, word [bp-016h] ; 3b 46 ea 15735 jne short 0a224h ; 75 0b 15736 mov ax, word [di] ; 8b 05 15737 cmp ax, word [bp-018h] ; 3b 46 e8 15738 jc short 0a224h ; 72 04 15739 mov AL, strict byte 001h ; b0 01 15740 jmp short 0a226h ; eb 02 15741 xor al, al ; 30 c0 15742 test al, al ; 84 c0 15743 je short 0a250h ; 74 26 15744 mov ax, word [bp-018h] ; 8b 46 e8 15745 mov ds, [bp-008h] ; 8e 5e f8 15746 sub word [di], ax ; 29 05 15747 mov ax, word [bp-016h] ; 8b 46 ea 15748 sbb word [di+002h], ax ; 19 45 02 15749 mov ax, strict word 00001h ; b8 01 00 15750 xor dx, dx ; 31 d2 15751 mov cx, word [bp-012h] ; 8b 4e ee 15752 jcxz 0a248h ; e3 06 15753 sal ax, 1 ; d1 e0 15754 rcl dx, 1 ; d1 d2 15755 loop 0a242h ; e2 fa 15756 lds bx, [bp-010h] ; c5 5e f0 15757 or word [bx], ax ; 09 07 15758 or word [bx+002h], dx ; 09 57 02 15759 mov ds, [bp-008h] ; 8e 5e f8 15760 mov dx, word [di] ; 8b 15 15761 mov ax, word [di+002h] ; 8b 45 02 15762 mov ds, [bp-006h] ; 8e 5e fa 15763 cmp ax, word [si+002h] ; 3b 44 02 15764 jc short 0a266h ; 72 06 15765 jne short 0a26ch ; 75 0a 15766 cmp dx, word [si] ; 3b 14 15767 jnc short 0a26ch ; 73 06 15768 mov AL, strict byte 001h ; b0 01 15769 jmp short 0a26eh ; eb 04 15770 jmp short 0a28dh ; eb 21 15771 xor al, al ; 30 c0 15772 test al, al ; 84 c0 15773 je short 0a281h ; 74 0f 15774 jmp short 0a28dh ; eb 19 15775 mov cx, strict word 0001fh ; b9 1f 00 15776 sal word [bp-018h], 1 ; d1 66 e8 15777 rcl word [bp-016h], 1 ; d1 56 ea 15778 loop 0a277h ; e2 f8 15779 jmp short 0a287h ; eb 06 15780 shr word [bp-016h], 1 ; d1 6e ea 15781 rcr word [bp-018h], 1 ; d1 5e e8 15782 dec word [bp-012h] ; ff 4e ee 15783 jmp near 0a209h ; e9 7c ff 15784 mov ax, word [bp-01ch] ; 8b 46 e4 15785 mov dx, word [bp-01ah] ; 8b 56 e6 15786 lea sp, [bp-004h] ; 8d 66 fc 15787 pop di ; 5f 15788 pop si ; 5e 15789 pop bp ; 5d 15790 retn ; c3 15791 times 0x6 db 0 15792 _ASMBitLastSetU16: ; 0xfa2a0 LB 0x18 15793 push bp ; 55 15794 db 08bh, 0ech 15795 ; mov bp, sp ; 8b ec 15796 mov cx, word [bp+004h] ; 8b 4e 04 15797 test cx, cx ; 85 c9 15798 je short 0a2b4h ; 74 0a 15799 mov ax, strict word 00010h ; b8 10 00 15800 sal cx, 1 ; d1 e1 15801 jc short 0a2b6h ; 72 05 15802 dec ax ; 48 15803 jmp short 0a2adh ; eb f9 15804 db 033h, 0c0h 15805 ; xor ax, ax ; 33 c0 15806 pop bp ; 5d 15807 retn ; c3 15403 15808 15404 ; Padding 0x3 9bb bytes at 0xfa04515405 times 14 779db 015809 ; Padding 0x3748 bytes at 0xfa2b8 15810 times 14152 db 0 15406 15811 15407 15812 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 15450 15855 add bp, strict byte 00008h ; 83 c5 08 15451 15856 push ebp ; 66 55 15452 mov bp, 0a0 36h ; bd 36 a015857 mov bp, 0a026h ; bd 26 a0 15453 15858 add byte [bx+si], al ; 00 00 15454 15859 push ebp ; 66 55 … … 16114 16519 mov ax, 0f000h ; b8 00 f0 16115 16520 mov word [0012ah], ax ; a3 2a 01 16116 mov ax, 0f8 e4h ; b8 e4f816521 mov ax, 0f8f6h ; b8 f6 f8 16117 16522 mov word [001c0h], ax ; a3 c0 01 16118 16523 mov ax, 0f000h ; b8 00 f0 … … 16149 16554 mov ax, 0f000h ; b8 00 f0 16150 16555 mov word [0004eh], ax ; a3 4e 00 16151 mov ax, 0f8 d2h ; b8 d2f816556 mov ax, 0f8e4h ; b8 e4 f8 16152 16557 mov word [001d8h], ax ; a3 d8 01 16153 16558 mov ax, 0f000h ; b8 00 f0 … … 16162 16567 mov word [0011ah], ax ; a3 1a 01 16163 16568 retn ; c3 16164 mov ax, 0f8 a7h ; b8 a7f816569 mov ax, 0f8b9h ; b8 b9 f8 16165 16570 mov word [001d0h], ax ; a3 d0 01 16166 16571 mov ax, 0f000h ; b8 00 f0 … … 16176 16581 call 01c9fh ; e8 63 39 16177 16582 call 02118h ; e8 d9 3d 16178 call 0986 8h ; e8 26b516179 call 086 f3h ; e8 aea316583 call 09864h ; e8 22 b5 16584 call 086efh ; e8 aa a3 16180 16585 call 0ed2fh ; e8 e7 09 16181 16586 call 0e2d2h ; e8 87 ff … … 16443 16848 pop DS ; 1f 16444 16849 cld ; fc 16445 call 06e 62h ; e8 838416850 call 06e5eh ; e8 7f 84 16446 16851 pop DS ; 1f 16447 16852 pop ES ; 07 … … 16761 17166 pop DS ; 1f 16762 17167 cld ; fc 16763 call 07 800h ; e8 238817168 call 077fch ; e8 1f 88 16764 17169 popaw ; 61 16765 17170 pop ES ; 07 … … 17108 17513 pop DS ; 1f 17109 17514 iret ; cf 17110 int15_handler: ; 0xff859 LB 0x2e 17515 int15_handler: ; 0xff859 LB 0x40 17516 cmp ah, 087h ; 80 fc 87 17517 jne short 0f86bh ; 75 0d 17518 pushaw ; 60 17519 push ES ; 06 17520 push DS ; 1e 17521 push CS ; 0e 17522 pop DS ; 1f 17523 cld ; fc 17524 call 06cd4h ; e8 6d 74 17525 pop DS ; 1f 17526 pop ES ; 07 17527 popaw ; 61 17528 iret ; cf 17111 17529 pushfw ; 9c 17112 17530 push DS ; 1e … … 17116 17534 cld ; fc 17117 17535 cmp ah, 086h ; 80 fc 86 17118 je short 0f8 8ch ; 74 2817536 je short 0f89eh ; 74 28 17119 17537 cmp ah, 0e8h ; 80 fc e8 17120 je short 0f8 8ch ; 74 2317538 je short 0f89eh ; 74 23 17121 17539 cmp ah, 0d0h ; 80 fc d0 17122 je short 0f8 8ch ; 74 1e17540 je short 0f89eh ; 74 1e 17123 17541 pushaw ; 60 17124 17542 cmp ah, 053h ; 80 fc 53 17125 je short 0f8 82h ; 74 0e17543 je short 0f894h ; 74 0e 17126 17544 cmp ah, 0c2h ; 80 fc c2 17127 je short 0f8 87h ; 74 0e17128 call 06 5ceh ; e8 526d17545 je short 0f899h ; 74 0e 17546 call 0660eh ; e8 80 6d 17129 17547 popaw ; 61 17130 17548 pop ES ; 07 17131 17549 pop DS ; 1f 17132 17550 popfw ; 9d 17133 jmp short 0f8 93h ; eb 1117134 call 099b ah ; e8 35a117135 jmp short 0f8 7ch ; eb f517136 int15_handler_mouse: ; 0xff8 87LB 0x517137 call 074 73h ; e8 e97b17138 jmp short 0f8 7ch ; eb f017139 int15_handler32: ; 0xff8 8cLB 0x717551 jmp short 0f8a5h ; eb 11 17552 call 099b6h ; e8 1f a1 17553 jmp short 0f88eh ; eb f5 17554 int15_handler_mouse: ; 0xff899 LB 0x5 17555 call 0746fh ; e8 d3 7b 17556 jmp short 0f88eh ; eb f0 17557 int15_handler32: ; 0xff89e LB 0x7 17140 17558 pushaw ; 60 17141 call 06 aa6h ; e8 16 7217559 call 0694ah ; e8 a8 70 17142 17560 popaw ; 61 17143 jmp short 0f8 7dh ; eb ea17144 iret_modify_cf: ; 0xff8 93LB 0x1417145 jc short 0f8 9eh ; 72 0917561 jmp short 0f88fh ; eb ea 17562 iret_modify_cf: ; 0xff8a5 LB 0x14 17563 jc short 0f8b0h ; 72 09 17146 17564 push bp ; 55 17147 17565 db 08bh, 0ech … … 17156 17574 pop bp ; 5d 17157 17575 iret ; cf 17158 int74_handler: ; 0xff8 a7LB 0x2b17576 int74_handler: ; 0xff8b9 LB 0x2b 17159 17577 sti ; fb 17160 17578 pushaw ; 60 … … 17171 17589 pop DS ; 1f 17172 17590 cld ; fc 17173 call 073 a1h ; e8 e97a17591 call 0739dh ; e8 d3 7a 17174 17592 pop cx ; 59 17175 jcxz 0f8 c7h ; e3 0c17593 jcxz 0f8d9h ; e3 0c 17176 17594 push strict byte 00000h ; 6a 00 17177 17595 pop DS ; 1f … … 17180 17598 call far [word 00022h] ; ff 1e 22 00 17181 17599 cli ; fa 17182 call 0e030h ; e8 65e717600 call 0e030h ; e8 53 e7 17183 17601 add sp, strict byte 00008h ; 83 c4 08 17184 17602 pop DS ; 1f … … 17186 17604 popaw ; 61 17187 17605 iret ; cf 17188 int76_handler: ; 0xff8 d2LB 0x1217606 int76_handler: ; 0xff8e4 LB 0x12 17189 17607 push ax ; 50 17190 17608 push DS ; 1e … … 17192 17610 mov ds, ax ; 8e d8 17193 17611 mov byte [0008eh], 0ffh ; c6 06 8e 00 ff 17194 call 0e030h ; e8 4fe717612 call 0e030h ; e8 3d e7 17195 17613 pop DS ; 1f 17196 17614 pop ax ; 58 17197 17615 iret ; cf 17198 int70_handler: ; 0xff8 e4LB 0x1f17616 int70_handler: ; 0xff8f6 LB 0x1f 17199 17617 push ES ; 06 17200 17618 push DS ; 1e … … 17203 17621 pop DS ; 1f 17204 17622 cld ; fc 17205 call 0704 6h ; e8 597717623 call 07042h ; e8 43 77 17206 17624 popaw ; 61 17207 17625 pop DS ; 1f 17208 17626 pop ES ; 07 17209 17627 iret ; cf 17210 jnbe short 0f 8f8h ; 77 0517628 jnbe short 0f90ah ; 77 05 17211 17629 cmp ax, 000b0h ; 3d b0 00 17212 jc short 0f9 00h ; 72 0817630 jc short 0f912h ; 72 08 17213 17631 db 033h, 0d2h 17214 17632 ; xor dx, dx ; 33 d2 … … 17216 17634 ; xor ax, ax ; 33 c0 17217 17635 inc byte [word 00070h] ; fe 06 70 00 17218 jmp near 0fec1h ; e9 be0517219 biosorg_check_before_or_at_0FA6Ch: ; 0xff9 03 LB 0x16b17220 times 0x1 69db 017636 jmp near 0fec1h ; e9 ac 05 17637 biosorg_check_before_or_at_0FA6Ch: ; 0xff915 LB 0x159 17638 times 0x157 db 0 17221 17639 db 'XM' 17222 17640 font8x8: ; 0xffa6e LB 0x400 … … 17292 17710 pop DS ; 1f 17293 17711 cld ; fc 17294 call 0710 5h ; e8 8e7217712 call 07101h ; e8 8a 72 17295 17713 popaw ; 61 17296 17714 pop DS ; 1f … … 17314 17732 cmp dx, strict byte 00018h ; 83 fa 18 17315 17733 jc short 0fec1h ; 72 03 17316 jmp near 0f 8f1h ; e9 30fa17734 jmp near 0f903h ; e9 42 fa 17317 17735 mov word [0006ch], ax ; a3 6c 00 17318 17736 mov word [word 0006eh], dx ; 89 16 6e 00 … … 17397 17815 cpu_reset: ; 0xffff0 LB 0x10 17398 17816 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 17399 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 ffh17817 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0c5h -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum
r60443 r61092 1 72bd720065b63f96ad5945490ffeef78*VBoxPcBios286.rom1 bd4b581d97fc0ab7f96208d4e848e2d3 *VBoxPcBios286.rom -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm
r60443 r61092 728 728 729 729 ; 730 ; Source file: support.asm 730 ; Source file: __U4M.asm 731 ; 732 ; $Id$ 733 ; Compiler support routines. 734 ; 735 ; 736 ; 737 ; Copyright (C) 2012-2015 Oracle Corporation 738 ; 739 ; This file is part of VirtualBox Open Source Edition (OSE), as 740 ; available from http://www.virtualbox.org. This file is free software; 741 ; you can redistribute it and/or modify it under the terms of the GNU 742 ; General Public License (GPL) as published by the Free Software 743 ; Foundation, in version 2 as it comes in the "COPYING" file of the 744 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 745 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 746 ; 747 748 ; 749 ; Source file: __U4D.asm 750 ; 751 ; $Id$ 752 ; Compiler support routines. 753 ; 754 ; 755 ; 756 ; Copyright (C) 2012-2016 Oracle Corporation 757 ; 758 ; This file is part of VirtualBox Open Source Edition (OSE), as 759 ; available from http://www.virtualbox.org. This file is free software; 760 ; you can redistribute it and/or modify it under the terms of the GNU 761 ; General Public License (GPL) as published by the Free Software 762 ; Foundation, in version 2 as it comes in the "COPYING" file of the 763 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 764 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 765 ; 766 767 ; 768 ; Source file: __U8RS.asm 769 ; 770 ; $Id$ 771 ; Compiler support routines. 772 ; 773 ; 774 ; 775 ; Copyright (C) 2012-2015 Oracle Corporation 776 ; 777 ; This file is part of VirtualBox Open Source Edition (OSE), as 778 ; available from http://www.virtualbox.org. This file is free software; 779 ; you can redistribute it and/or modify it under the terms of the GNU 780 ; General Public License (GPL) as published by the Free Software 781 ; Foundation, in version 2 as it comes in the "COPYING" file of the 782 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 783 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 784 ; 785 786 ; 787 ; Source file: __U8LS.asm 788 ; 789 ; $Id$ 790 ; Compiler support routines. 791 ; 792 ; 793 ; 794 ; Copyright (C) 2012-2015 Oracle Corporation 795 ; 796 ; This file is part of VirtualBox Open Source Edition (OSE), as 797 ; available from http://www.virtualbox.org. This file is free software; 798 ; you can redistribute it and/or modify it under the terms of the GNU 799 ; General Public License (GPL) as published by the Free Software 800 ; Foundation, in version 2 as it comes in the "COPYING" file of the 801 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 802 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 803 ; 804 805 ; 806 ; Source file: fmemset.asm 807 ; 808 ; $Id$ 809 ; Compiler support routines. 810 ; 811 ; 812 ; 813 ; Copyright (C) 2012-2015 Oracle Corporation 814 ; 815 ; This file is part of VirtualBox Open Source Edition (OSE), as 816 ; available from http://www.virtualbox.org. This file is free software; 817 ; you can redistribute it and/or modify it under the terms of the GNU 818 ; General Public License (GPL) as published by the Free Software 819 ; Foundation, in version 2 as it comes in the "COPYING" file of the 820 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 821 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 822 ; 823 824 ; 825 ; Source file: fmemcpy.asm 731 826 ; 732 827 ; $Id$ … … 856 951 db 001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h 857 952 _pktacc: ; 0xf006a LB 0xc 858 db 000h, 000h, 000h, 000h, 000h, 000h, 0 64h, 02bh, 04eh, 080h, 075h, 08fh953 db 000h, 000h, 000h, 000h, 000h, 000h, 0cch, 02bh, 0dah, 080h, 001h, 090h 859 954 _softrst: ; 0xf0076 LB 0xc 860 db 000h, 000h, 000h, 000h, 000h, 000h, 0 4ch, 02eh, 029h, 03bh, 029h, 03bh955 db 000h, 000h, 000h, 000h, 000h, 000h, 0b4h, 02eh, 091h, 03bh, 091h, 03bh 861 956 _dskacc: ; 0xf0082 LB 0x2e 862 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0 54h, 02ah, 009h, 02bh, 000h, 000h, 000h, 000h863 db 0 98h, 07eh, 073h, 07fh, 04bh, 08eh, 0f1h, 08eh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h957 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0bch, 02ah, 071h, 02bh, 000h, 000h, 000h, 000h 958 db 024h, 07fh, 0ffh, 07fh, 0d7h, 08eh, 07dh, 08fh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h 864 959 db 032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h 865 960 … … 1058 1153 times 1144 db 0 1059 1154 1060 section _TEXT progbits vstart=0x1600 align=1 ; size=0x89 05 class=CODE group=AUTO1155 section _TEXT progbits vstart=0x1600 align=1 ; size=0x89b5 class=CODE group=AUTO 1061 1156 rom_scan_: ; 0xf1600 LB 0x50 1062 1157 push bp ; 55 … … 1100 1195 pop bp ; 5d 1101 1196 retn ; c3 1102 read_byte_: ; 0xf1650 LB 0xe 1197 _apic_setup: ; 0xf1650 LB 0x68 1198 push bp ; 55 1199 mov bp, sp ; 89 e5 1200 push si ; 56 1201 push di ; 57 1202 mov ax, strict word 00078h ; b8 78 00 1203 call 01714h ; e8 b9 00 1204 cmp AL, strict byte 002h ; 3c 02 1205 jne short 01664h ; 75 05 1206 mov si, 00400h ; be 00 04 1207 jmp short 01673h ; eb 0f 1208 test al, al ; 84 c0 1209 jne short 0166dh ; 75 05 1210 mov si, 00800h ; be 00 08 1211 jmp short 0166fh ; eb 02 1212 xor si, si ; 31 f6 1213 test si, si ; 85 f6 1214 je short 016b1h ; 74 3e 1215 mov ax, strict word 0001bh ; b8 1b 00 1216 xor cx, cx ; 31 c9 1217 sal ecx, 010h ; 66 c1 e1 10 1218 db 08bh, 0c8h 1219 ; mov cx, ax ; 8b c8 1220 rdmsr ; 0f 32 1221 xchg edx, eax ; 66 92 1222 db 08bh, 0d8h 1223 ; mov bx, ax ; 8b d8 1224 shr eax, 010h ; 66 c1 e8 10 1225 db 08bh, 0cah 1226 ; mov cx, dx ; 8b ca 1227 shr edx, 010h ; 66 c1 ea 10 1228 xchg dx, cx ; 87 ca 1229 or dx, si ; 09 f2 1230 mov si, strict word 0001bh ; be 1b 00 1231 xor di, di ; 31 ff 1232 sal eax, 010h ; 66 c1 e0 10 1233 db 08bh, 0c3h 1234 ; mov ax, bx ; 8b c3 1235 xchg dx, cx ; 87 ca 1236 sal edx, 010h ; 66 c1 e2 10 1237 db 08bh, 0d1h 1238 ; mov dx, cx ; 8b d1 1239 xchg edx, eax ; 66 92 1240 db 08bh, 0cfh 1241 ; mov cx, di ; 8b cf 1242 sal ecx, 010h ; 66 c1 e1 10 1243 db 08bh, 0ceh 1244 ; mov cx, si ; 8b ce 1245 wrmsr ; 0f 30 1246 lea sp, [bp-004h] ; 8d 66 fc 1247 pop di ; 5f 1248 pop si ; 5e 1249 pop bp ; 5d 1250 retn ; c3 1251 read_byte_: ; 0xf16b8 LB 0xe 1103 1252 push bx ; 53 1104 1253 push bp ; 55 … … 1110 1259 pop bx ; 5b 1111 1260 retn ; c3 1112 write_byte_: ; 0xf16 5eLB 0xe1261 write_byte_: ; 0xf16c6 LB 0xe 1113 1262 push si ; 56 1114 1263 push bp ; 55 … … 1120 1269 pop si ; 5e 1121 1270 retn ; c3 1122 read_word_: ; 0xf16 6cLB 0xe1271 read_word_: ; 0xf16d4 LB 0xe 1123 1272 push bx ; 53 1124 1273 push bp ; 55 … … 1130 1279 pop bx ; 5b 1131 1280 retn ; c3 1132 write_word_: ; 0xf16 7aLB 0xe1281 write_word_: ; 0xf16e2 LB 0xe 1133 1282 push si ; 56 1134 1283 push bp ; 55 … … 1140 1289 pop si ; 5e 1141 1290 retn ; c3 1142 read_dword_: ; 0xf16 88LB 0x121291 read_dword_: ; 0xf16f0 LB 0x12 1143 1292 push bx ; 53 1144 1293 push bp ; 55 … … 1151 1300 pop bx ; 5b 1152 1301 retn ; c3 1153 write_dword_: ; 0xf1 69aLB 0x121302 write_dword_: ; 0xf1702 LB 0x12 1154 1303 push si ; 56 1155 1304 push bp ; 55 … … 1162 1311 pop si ; 5e 1163 1312 retn ; c3 1164 inb_cmos_: ; 0xf1 6acLB 0x1d1313 inb_cmos_: ; 0xf1714 LB 0x1d 1165 1314 push bp ; 55 1166 1315 mov bp, sp ; 89 e5 … … 1168 1317 mov AH, strict byte 070h ; b4 70 1169 1318 cmp AL, strict byte 080h ; 3c 80 1170 jc short 01 6b8h ; 72 021319 jc short 01720h ; 72 02 1171 1320 mov AH, strict byte 072h ; b4 72 1172 1321 movzx dx, ah ; 0f b6 d4 … … 1181 1330 pop bp ; 5d 1182 1331 retn ; c3 1183 outb_cmos_: ; 0xf1 6c9LB 0x1f1332 outb_cmos_: ; 0xf1731 LB 0x1f 1184 1333 push bp ; 55 1185 1334 mov bp, sp ; 89 e5 … … 1188 1337 mov BL, strict byte 070h ; b3 70 1189 1338 cmp AL, strict byte 080h ; 3c 80 1190 jc short 01 6d7h ; 72 021339 jc short 0173fh ; 72 02 1191 1340 mov BL, strict byte 072h ; b3 72 1192 1341 movzx dx, bl ; 0f b6 d3 … … 1200 1349 pop bp ; 5d 1201 1350 retn ; c3 1202 _dummy_isr_function: ; 0xf1 6e8LB 0x6b1351 _dummy_isr_function: ; 0xf1750 LB 0x6b 1203 1352 push bp ; 55 1204 1353 mov bp, sp ; 89 e5 … … 1214 1363 mov byte [bp-002h], al ; 88 46 fe 1215 1364 test al, al ; 84 c0 1216 je short 017 43h ; 74 431365 je short 017abh ; 74 43 1217 1366 mov AL, strict byte 00bh ; b0 0b 1218 1367 mov dx, 000a0h ; ba a0 00 … … 1223 1372 mov cx, ax ; 89 c1 1224 1373 test al, al ; 84 c0 1225 je short 017 25h ; 74 161374 je short 0178dh ; 74 16 1226 1375 mov dx, 000a1h ; ba a1 00 1227 1376 in AL, DX ; ec … … 1235 1384 mov dx, 000a0h ; ba a0 00 1236 1385 out DX, AL ; ee 1237 jmp short 017 3ah ; eb 151386 jmp short 017a2h ; eb 15 1238 1387 mov dx, strict word 00021h ; ba 21 00 1239 1388 in AL, DX ; ec … … 1253 1402 mov dx, strict word 0006bh ; ba 6b 00 1254 1403 mov ax, strict word 00040h ; b8 40 00 1255 call 016 5eh ; e8 0f ff1404 call 016c6h ; e8 0f ff 1256 1405 mov sp, bp ; 89 ec 1257 1406 pop bp ; 5d 1258 1407 retn ; c3 1259 _nmi_handler_msg: ; 0xf17 53LB 0x121408 _nmi_handler_msg: ; 0xf17bb LB 0x12 1260 1409 push bp ; 55 1261 1410 mov bp, sp ; 89 e5 1262 1411 push 000b0h ; 68 b0 00 1263 1412 push strict byte 00007h ; 6a 07 1264 call 019 72h ; e8 14 021413 call 019dah ; e8 14 02 1265 1414 add sp, strict byte 00004h ; 83 c4 04 1266 1415 mov sp, bp ; 89 ec 1267 1416 pop bp ; 5d 1268 1417 retn ; c3 1269 _int18_panic_msg: ; 0xf17 65LB 0x121418 _int18_panic_msg: ; 0xf17cd LB 0x12 1270 1419 push bp ; 55 1271 1420 mov bp, sp ; 89 e5 1272 1421 push 000c4h ; 68 c4 00 1273 1422 push strict byte 00007h ; 6a 07 1274 call 019 72h ; e8 02 021423 call 019dah ; e8 02 02 1275 1424 add sp, strict byte 00004h ; 83 c4 04 1276 1425 mov sp, bp ; 89 ec 1277 1426 pop bp ; 5d 1278 1427 retn ; c3 1279 _log_bios_start: ; 0xf17 77LB 0x201428 _log_bios_start: ; 0xf17df LB 0x20 1280 1429 push bp ; 55 1281 1430 mov bp, sp ; 89 e5 … … 1283 1432 mov cx, ds ; 8c d9 1284 1433 mov ax, strict word 00004h ; b8 04 00 1285 call 019 31h ; e8 ac 011434 call 01999h ; e8 ac 01 1286 1435 push 00d8eh ; 68 8e 0d 1287 1436 push 000d9h ; 68 d9 00 1288 1437 push strict byte 00004h ; 6a 04 1289 call 019 72h ; e8 e2 011438 call 019dah ; e8 e2 01 1290 1439 add sp, strict byte 00006h ; 83 c4 06 1291 1440 mov sp, bp ; 89 ec 1292 1441 pop bp ; 5d 1293 1442 retn ; c3 1294 _print_bios_banner: ; 0xf17 97LB 0x2e1443 _print_bios_banner: ; 0xf17ff LB 0x2e 1295 1444 push bp ; 55 1296 1445 mov bp, sp ; 89 e5 1297 1446 mov dx, strict word 00072h ; ba 72 00 1298 1447 mov ax, strict word 00040h ; b8 40 00 1299 call 016 6ch ; e8 c9 fe1448 call 016d4h ; e8 c9 fe 1300 1449 mov cx, ax ; 89 c1 1301 1450 xor bx, bx ; 31 db 1302 1451 mov dx, strict word 00072h ; ba 72 00 1303 1452 mov ax, strict word 00040h ; b8 40 00 1304 call 016 7ah ; e8 ca fe1453 call 016e2h ; e8 ca fe 1305 1454 cmp cx, 01234h ; 81 f9 34 12 1306 jne short 01 7beh ; 75 081455 jne short 01826h ; 75 08 1307 1456 mov AL, strict byte 003h ; b0 03 1308 1457 mov AH, strict byte 000h ; b4 00 1309 1458 int 010h ; cd 10 1310 jmp short 01 7c1h ; eb 031311 call 07a 63h ; e8 a2621459 jmp short 01829h ; eb 03 1460 call 07aefh ; e8 c6 62 1312 1461 mov sp, bp ; 89 ec 1313 1462 pop bp ; 5d 1314 1463 retn ; c3 1315 send_: ; 0xf1 7c5LB 0x3b1464 send_: ; 0xf182d LB 0x3b 1316 1465 push bp ; 55 1317 1466 mov bp, sp ; 89 e5 … … 1321 1470 mov cl, dl ; 88 d1 1322 1471 test AL, strict byte 008h ; a8 08 1323 je short 01 7d8h ; 74 061472 je short 01840h ; 74 06 1324 1473 mov al, dl ; 88 d0 1325 1474 mov dx, 00403h ; ba 03 04 1326 1475 out DX, AL ; ee 1327 1476 test bl, 004h ; f6 c3 04 1328 je short 01 7e3h ; 74 061477 je short 0184bh ; 74 06 1329 1478 mov al, cl ; 88 c8 1330 1479 mov dx, 00504h ; ba 04 05 1331 1480 out DX, AL ; ee 1332 1481 test bl, 002h ; f6 c3 02 1333 je short 01 7f9h ; 74 111482 je short 01861h ; 74 11 1334 1483 cmp cl, 00ah ; 80 f9 0a 1335 jne short 01 7f3h ; 75 061484 jne short 0185bh ; 75 06 1336 1485 mov AL, strict byte 00dh ; b0 0d 1337 1486 mov AH, strict byte 00eh ; b4 0e … … 1345 1494 pop bp ; 5d 1346 1495 retn ; c3 1347 put_int_: ; 0xf18 00LB 0x5f1496 put_int_: ; 0xf1868 LB 0x5f 1348 1497 push bp ; 55 1349 1498 mov bp, sp ; 89 e5 … … 1360 1509 mov word [bp-006h], ax ; 89 46 fa 1361 1510 test ax, ax ; 85 c0 1362 je short 018 25h ; 74 0a1511 je short 0188dh ; 74 0a 1363 1512 dec bx ; 4b 1364 1513 mov dx, ax ; 89 c2 1365 1514 mov ax, si ; 89 f0 1366 call 018 00h ; e8 dd ff1367 jmp short 018 40h ; eb 1b1515 call 01868h ; e8 dd ff 1516 jmp short 018a8h ; eb 1b 1368 1517 dec bx ; 4b 1369 1518 test bx, bx ; 85 db 1370 jle short 018 34h ; 7e 0a1519 jle short 0189ch ; 7e 0a 1371 1520 mov dx, strict word 00020h ; ba 20 00 1372 1521 mov ax, si ; 89 f0 1373 call 01 7c5h ; e8 93 ff1374 jmp short 018 25h ; eb f11522 call 0182dh ; e8 93 ff 1523 jmp short 0188dh ; eb f1 1375 1524 test cx, cx ; 85 c9 1376 je short 018 40h ; 74 081525 je short 018a8h ; 74 08 1377 1526 mov dx, strict word 0002dh ; ba 2d 00 1378 1527 mov ax, si ; 89 f0 1379 call 01 7c5h ; e8 85 ff1528 call 0182dh ; e8 85 ff 1380 1529 mov al, byte [bp-006h] ; 8a 46 fa 1381 1530 mov DL, strict byte 00ah ; b2 0a … … 1387 1536 movzx dx, al ; 0f b6 d0 1388 1537 mov ax, si ; 89 f0 1389 call 01 7c5h ; e8 6d ff1538 call 0182dh ; e8 6d ff 1390 1539 lea sp, [bp-004h] ; 8d 66 fc 1391 1540 pop di ; 5f … … 1393 1542 pop bp ; 5d 1394 1543 retn ; c3 1395 put_uint_: ; 0xf18 5fLB 0x601544 put_uint_: ; 0xf18c7 LB 0x60 1396 1545 push bp ; 55 1397 1546 mov bp, sp ; 89 e5 … … 1408 1557 mov word [bp-006h], ax ; 89 46 fa 1409 1558 test ax, ax ; 85 c0 1410 je short 018 85h ; 74 0a1559 je short 018edh ; 74 0a 1411 1560 dec bx ; 4b 1412 1561 mov dx, ax ; 89 c2 1413 1562 mov ax, si ; 89 f0 1414 call 018 5fh ; e8 dc ff1415 jmp short 01 8a0h ; eb 1b1563 call 018c7h ; e8 dc ff 1564 jmp short 01908h ; eb 1b 1416 1565 dec bx ; 4b 1417 1566 test bx, bx ; 85 db 1418 jle short 018 94h ; 7e 0a1567 jle short 018fch ; 7e 0a 1419 1568 mov dx, strict word 00020h ; ba 20 00 1420 1569 mov ax, si ; 89 f0 1421 call 01 7c5h ; e8 33 ff1422 jmp short 018 85h ; eb f11570 call 0182dh ; e8 33 ff 1571 jmp short 018edh ; eb f1 1423 1572 test cx, cx ; 85 c9 1424 je short 01 8a0h ; 74 081573 je short 01908h ; 74 08 1425 1574 mov dx, strict word 0002dh ; ba 2d 00 1426 1575 mov ax, si ; 89 f0 1427 call 01 7c5h ; e8 25 ff1576 call 0182dh ; e8 25 ff 1428 1577 mov al, byte [bp-006h] ; 8a 46 fa 1429 1578 mov DL, strict byte 00ah ; b2 0a … … 1435 1584 movzx dx, al ; 0f b6 d0 1436 1585 mov ax, si ; 89 f0 1437 call 01 7c5h ; e8 0d ff1586 call 0182dh ; e8 0d ff 1438 1587 lea sp, [bp-004h] ; 8d 66 fc 1439 1588 pop di ; 5f … … 1441 1590 pop bp ; 5d 1442 1591 retn ; c3 1443 put_luint_: ; 0xf1 8bfLB 0x721592 put_luint_: ; 0xf1927 LB 0x72 1444 1593 push bp ; 55 1445 1594 mov bp, sp ; 89 e5 … … 1455 1604 mov bx, strict word 0000ah ; bb 0a 00 1456 1605 xor cx, cx ; 31 c9 1457 call 09 df0h ; e8 17851606 call 09ec0h ; e8 7f 85 1458 1607 mov word [bp-008h], ax ; 89 46 f8 1459 1608 mov cx, dx ; 89 d1 1460 1609 mov dx, ax ; 89 c2 1461 1610 or dx, cx ; 09 ca 1462 je short 01 8f3h ; 74 0f1611 je short 0195bh ; 74 0f 1463 1612 push word [bp+004h] ; ff 76 04 1464 1613 lea dx, [di-001h] ; 8d 55 ff 1465 1614 mov bx, ax ; 89 c3 1466 1615 mov ax, si ; 89 f0 1467 call 01 8bfh ; e8 ce ff1468 jmp short 019 10h ; eb 1d1616 call 01927h ; e8 ce ff 1617 jmp short 01978h ; eb 1d 1469 1618 dec di ; 4f 1470 1619 test di, di ; 85 ff 1471 jle short 019 02h ; 7e 0a1620 jle short 0196ah ; 7e 0a 1472 1621 mov dx, strict word 00020h ; ba 20 00 1473 1622 mov ax, si ; 89 f0 1474 call 01 7c5h ; e8 c5 fe1475 jmp short 01 8f3h ; eb f11623 call 0182dh ; e8 c5 fe 1624 jmp short 0195bh ; eb f1 1476 1625 cmp word [bp+004h], strict byte 00000h ; 83 7e 04 00 1477 je short 019 10h ; 74 081626 je short 01978h ; 74 08 1478 1627 mov dx, strict word 0002dh ; ba 2d 00 1479 1628 mov ax, si ; 89 f0 1480 call 01 7c5h ; e8 b5 fe1629 call 0182dh ; e8 b5 fe 1481 1630 mov al, byte [bp-008h] ; 8a 46 f8 1482 1631 mov DL, strict byte 00ah ; b2 0a … … 1488 1637 movzx dx, al ; 0f b6 d0 1489 1638 mov ax, si ; 89 f0 1490 call 01 7c5h ; e8 9d fe1639 call 0182dh ; e8 9d fe 1491 1640 lea sp, [bp-004h] ; 8d 66 fc 1492 1641 pop di ; 5f … … 1494 1643 pop bp ; 5d 1495 1644 retn 00002h ; c2 02 00 1496 put_str_: ; 0xf19 31LB 0x211645 put_str_: ; 0xf1999 LB 0x21 1497 1646 push bp ; 55 1498 1647 mov bp, sp ; 89 e5 … … 1503 1652 mov dl, byte [es:bx] ; 26 8a 17 1504 1653 test dl, dl ; 84 d2 1505 je short 019 4bh ; 74 0a1654 je short 019b3h ; 74 0a 1506 1655 xor dh, dh ; 30 f6 1507 1656 mov ax, si ; 89 f0 1508 call 01 7c5h ; e8 7d fe1657 call 0182dh ; e8 7d fe 1509 1658 inc bx ; 43 1510 jmp short 019 38h ; eb ed1659 jmp short 019a0h ; eb ed 1511 1660 lea sp, [bp-004h] ; 8d 66 fc 1512 1661 pop si ; 5e … … 1514 1663 pop bp ; 5d 1515 1664 retn ; c3 1516 put_str_near_: ; 0xf19 52LB 0x201665 put_str_near_: ; 0xf19ba LB 0x20 1517 1666 push bp ; 55 1518 1667 mov bp, sp ; 89 e5 … … 1523 1672 mov dl, byte [bx] ; 8a 17 1524 1673 test dl, dl ; 84 d2 1525 je short 019 6bh ; 74 0a1674 je short 019d3h ; 74 0a 1526 1675 xor dh, dh ; 30 f6 1527 1676 mov ax, cx ; 89 c8 1528 call 01 7c5h ; e8 5d fe1677 call 0182dh ; e8 5d fe 1529 1678 inc bx ; 43 1530 jmp short 019 5bh ; eb f01679 jmp short 019c3h ; eb f0 1531 1680 lea sp, [bp-004h] ; 8d 66 fc 1532 1681 pop cx ; 59 … … 1534 1683 pop bp ; 5d 1535 1684 retn ; c3 1536 bios_printf_: ; 0xf19 72LB 0x33d1685 bios_printf_: ; 0xf19da LB 0x33d 1537 1686 push bp ; 55 1538 1687 mov bp, sp ; 89 e5 … … 1551 1700 and ax, strict word 00007h ; 25 07 00 1552 1701 cmp ax, strict word 00007h ; 3d 07 00 1553 jne short 01 9a0h ; 75 0b1702 jne short 01a08h ; 75 0b 1554 1703 push 000deh ; 68 de 00 1555 1704 push strict byte 00002h ; 6a 02 1556 call 019 72h ; e8 d5 ff1705 call 019dah ; e8 d5 ff 1557 1706 add sp, strict byte 00004h ; 83 c4 04 1558 1707 mov si, word [bp+006h] ; 8b 76 06 1559 1708 mov dl, byte [si] ; 8a 14 1560 1709 test dl, dl ; 84 d2 1561 je near 01c 93h ; 0f 84 e8 021710 je near 01cfbh ; 0f 84 e8 02 1562 1711 cmp dl, 025h ; 80 fa 25 1563 jne short 01 9b8h ; 75 081712 jne short 01a20h ; 75 08 1564 1713 mov bx, strict word 00001h ; bb 01 00 1565 1714 xor di, di ; 31 ff 1566 jmp near 01c 8dh ; e9 d5 021715 jmp near 01cf5h ; e9 d5 02 1567 1716 test bx, bx ; 85 db 1568 je near 01c 85h ; 0f 84 c7 021717 je near 01cedh ; 0f 84 c7 02 1569 1718 cmp dl, 030h ; 80 fa 30 1570 jc short 01 9d6h ; 72 131719 jc short 01a3eh ; 72 13 1571 1720 cmp dl, 039h ; 80 fa 39 1572 jnbe short 01 9d6h ; 77 0e1721 jnbe short 01a3eh ; 77 0e 1573 1722 movzx ax, dl ; 0f b6 c2 1574 1723 imul di, di, strict byte 0000ah ; 6b ff 0a 1575 1724 sub ax, strict word 00030h ; 2d 30 00 1576 1725 add di, ax ; 01 c7 1577 jmp near 01c 8dh ; e9 b7 021726 jmp near 01cf5h ; e9 b7 02 1578 1727 mov ax, word [bp-014h] ; 8b 46 ec 1579 1728 mov word [bp-014h], ax ; 89 46 ec … … 1583 1732 mov word [bp-012h], ax ; 89 46 ee 1584 1733 cmp dl, 078h ; 80 fa 78 1585 je short 01 9f4h ; 74 051734 je short 01a5ch ; 74 05 1586 1735 cmp dl, 058h ; 80 fa 58 1587 jne short 01a 4ah ; 75 561736 jne short 01ab2h ; 75 56 1588 1737 test di, di ; 85 ff 1589 jne short 01 9fbh ; 75 031738 jne short 01a63h ; 75 03 1590 1739 mov di, strict word 00004h ; bf 04 00 1591 1740 cmp dl, 078h ; 80 fa 78 1592 jne short 01a 07h ; 75 071741 jne short 01a6fh ; 75 07 1593 1742 mov word [bp-00eh], strict word 00061h ; c7 46 f2 61 00 1594 jmp short 01a 0ch ; eb 051743 jmp short 01a74h ; eb 05 1595 1744 mov word [bp-00eh], strict word 00041h ; c7 46 f2 41 00 1596 1745 lea ax, [di-001h] ; 8d 45 ff … … 1598 1747 mov ax, word [bp-00ch] ; 8b 46 f4 1599 1748 test ax, ax ; 85 c0 1600 jl near 01c 81h ; 0f 8c 66 021749 jl near 01ce9h ; 0f 8c 66 02 1601 1750 mov cx, ax ; 89 c1 1602 1751 sal cx, 002h ; c1 e1 02 … … 1606 1755 and AL, strict byte 00fh ; 24 0f 1607 1756 cmp ax, strict word 00009h ; 3d 09 00 1608 jnbe short 01a 35h ; 77 071757 jnbe short 01a9dh ; 77 07 1609 1758 mov dx, ax ; 89 c2 1610 1759 add dx, strict byte 00030h ; 83 c2 30 1611 jmp short 01a 3dh ; eb 081760 jmp short 01aa5h ; eb 08 1612 1761 sub ax, strict word 0000ah ; 2d 0a 00 1613 1762 mov dx, word [bp-00eh] ; 8b 56 f2 … … 1615 1764 xor dh, dh ; 30 f6 1616 1765 mov ax, word [bp+004h] ; 8b 46 04 1617 call 01 7c5h ; e8 80 fd1766 call 0182dh ; e8 80 fd 1618 1767 dec word [bp-00ch] ; ff 4e f4 1619 jmp short 01a 12h ; eb c81768 jmp short 01a7ah ; eb c8 1620 1769 cmp dl, 075h ; 80 fa 75 1621 jne short 01a 5eh ; 75 0f1770 jne short 01ac6h ; 75 0f 1622 1771 xor cx, cx ; 31 c9 1623 1772 mov bx, di ; 89 fb 1624 1773 mov dx, ax ; 89 c2 1625 1774 mov ax, word [bp+004h] ; 8b 46 04 1626 call 018 5fh ; e8 04 fe1627 jmp near 01c 81h ; e9 23 021775 call 018c7h ; e8 04 fe 1776 jmp near 01ce9h ; e9 23 02 1628 1777 cmp dl, 06ch ; 80 fa 6c 1629 jne near 01b 40h ; 0f 85 db 001778 jne near 01ba8h ; 0f 85 db 00 1630 1779 mov bx, word [bp+006h] ; 8b 5e 06 1631 1780 cmp dl, byte [bx+001h] ; 3a 57 01 1632 jne near 01b 40h ; 0f 85 d1 001781 jne near 01ba8h ; 0f 85 d1 00 1633 1782 add word [bp+006h], strict byte 00002h ; 83 46 06 02 1634 1783 mov bx, word [bp+006h] ; 8b 5e 06 … … 1654 1803 mov word [bp-020h], ax ; 89 46 e0 1655 1804 cmp dl, 078h ; 80 fa 78 1656 je short 01 ac1h ; 74 051805 je short 01b29h ; 74 05 1657 1806 cmp dl, 058h ; 80 fa 58 1658 jne short 01b 32h ; 75 711807 jne short 01b9ah ; 75 71 1659 1808 test di, di ; 85 ff 1660 jne short 01 ac8h ; 75 031809 jne short 01b30h ; 75 03 1661 1810 mov di, strict word 00010h ; bf 10 00 1662 1811 cmp dl, 078h ; 80 fa 78 1663 jne short 01 ad4h ; 75 071812 jne short 01b3ch ; 75 07 1664 1813 mov word [bp-00eh], strict word 00061h ; c7 46 f2 61 00 1665 jmp short 01 ad9h ; eb 051814 jmp short 01b41h ; eb 05 1666 1815 mov word [bp-00eh], strict word 00041h ; c7 46 f2 41 00 1667 1816 lea ax, [di-001h] ; 8d 45 ff … … 1669 1818 mov ax, word [bp-00ch] ; 8b 46 f4 1670 1819 test ax, ax ; 85 c0 1671 jl near 01c 81h ; 0f 8c 99 011820 jl near 01ce9h ; 0f 8c 99 01 1672 1821 sal ax, 002h ; c1 e0 02 1673 1822 mov word [bp-01eh], ax ; 89 46 e2 … … 1681 1830 mov dx, word [bp-026h] ; 8b 56 da 1682 1831 mov si, word [bp-01eh] ; 8b 76 e2 1683 call 09 e6ah ; e8 5f831832 call 09f00h ; e8 8d 83 1684 1833 mov ax, dx ; 89 d0 1685 1834 xor ah, dh ; 30 f4 1686 1835 and AL, strict byte 00fh ; 24 0f 1687 1836 cmp ax, strict word 00009h ; 3d 09 00 1688 jnbe short 01b 1dh ; 77 071837 jnbe short 01b85h ; 77 07 1689 1838 mov dx, ax ; 89 c2 1690 1839 add dx, strict byte 00030h ; 83 c2 30 1691 jmp short 01b 25h ; eb 081840 jmp short 01b8dh ; eb 08 1692 1841 sub ax, strict word 0000ah ; 2d 0a 00 1693 1842 mov dx, word [bp-00eh] ; 8b 56 f2 … … 1695 1844 xor dh, dh ; 30 f6 1696 1845 mov ax, word [bp+004h] ; 8b 46 04 1697 call 01 7c5h ; e8 98 fc1846 call 0182dh ; e8 98 fc 1698 1847 dec word [bp-00ch] ; ff 4e f4 1699 jmp short 01 adfh ; eb ad1848 jmp short 01b47h ; eb ad 1700 1849 push 000e6h ; 68 e6 00 1701 1850 push strict byte 00007h ; 6a 07 1702 call 019 72h ; e8 38 fe1851 call 019dah ; e8 38 fe 1703 1852 add sp, strict byte 00004h ; 83 c4 04 1704 jmp near 01c 81h ; e9 41 011853 jmp near 01ce9h ; e9 41 01 1705 1854 lea bx, [di-001h] ; 8d 5d ff 1706 1855 cmp dl, 06ch ; 80 fa 6c 1707 jne near 01c 09h ; 0f 85 bf 001856 jne near 01c71h ; 0f 85 bf 00 1708 1857 inc word [bp+006h] ; ff 46 06 1709 1858 mov si, word [bp+006h] ; 8b 76 06 … … 1716 1865 mov word [bp-010h], ax ; 89 46 f0 1717 1866 cmp dl, 064h ; 80 fa 64 1718 jne short 01 b98h ; 75 2d1867 jne short 01c00h ; 75 2d 1719 1868 test byte [bp-00fh], 080h ; f6 46 f1 80 1720 je short 01b 86h ; 74 151869 je short 01beeh ; 74 15 1721 1870 push strict byte 00001h ; 6a 01 1722 1871 mov ax, word [bp-012h] ; 8b 46 ee … … 1727 1876 mov dx, bx ; 89 da 1728 1877 mov bx, ax ; 89 c3 1729 jmp short 01b 8fh ; eb 091878 jmp short 01bf7h ; eb 09 1730 1879 push strict byte 00000h ; 6a 00 1731 1880 mov bx, word [bp-012h] ; 8b 5e ee … … 1733 1882 mov cx, ax ; 89 c1 1734 1883 mov ax, word [bp+004h] ; 8b 46 04 1735 call 01 8bfh ; e8 2a fd1736 jmp near 01c 81h ; e9 e9 001884 call 01927h ; e8 2a fd 1885 jmp near 01ce9h ; e9 e9 00 1737 1886 cmp dl, 075h ; 80 fa 75 1738 jne short 01 b9fh ; 75 021739 jmp short 01b 86h ; eb e71887 jne short 01c07h ; 75 02 1888 jmp short 01beeh ; eb e7 1740 1889 cmp dl, 078h ; 80 fa 78 1741 je short 01 babh ; 74 071890 je short 01c13h ; 74 07 1742 1891 cmp dl, 058h ; 80 fa 58 1743 jne near 01c 81h ; 0f 85 d6 001892 jne near 01ce9h ; 0f 85 d6 00 1744 1893 test di, di ; 85 ff 1745 jne short 01 bb2h ; 75 031894 jne short 01c1ah ; 75 03 1746 1895 mov di, strict word 00008h ; bf 08 00 1747 1896 cmp dl, 078h ; 80 fa 78 1748 jne short 01 bbeh ; 75 071897 jne short 01c26h ; 75 07 1749 1898 mov word [bp-00eh], strict word 00061h ; c7 46 f2 61 00 1750 jmp short 01 bc3h ; eb 051899 jmp short 01c2bh ; eb 05 1751 1900 mov word [bp-00eh], strict word 00041h ; c7 46 f2 41 00 1752 1901 lea ax, [di-001h] ; 8d 45 ff 1753 1902 mov word [bp-00ch], ax ; 89 46 f4 1754 1903 cmp word [bp-00ch], strict byte 00000h ; 83 7e f4 00 1755 jl near 01c 81h ; 0f 8c b0 001904 jl near 01ce9h ; 0f 8c b0 00 1756 1905 mov ax, word [bp-012h] ; 8b 46 ee 1757 1906 mov cx, word [bp-00ch] ; 8b 4e f4 1758 1907 sal cx, 002h ; c1 e1 02 1759 1908 mov dx, word [bp-010h] ; 8b 56 f0 1760 jcxz 01 be5h ; e3 061909 jcxz 01c4dh ; e3 06 1761 1910 shr dx, 1 ; d1 ea 1762 1911 rcr ax, 1 ; d1 d8 1763 loop 01 bdfh ; e2 fa1912 loop 01c47h ; e2 fa 1764 1913 and ax, strict word 0000fh ; 25 0f 00 1765 1914 cmp ax, strict word 00009h ; 3d 09 00 1766 jnbe short 01 bf4h ; 77 071915 jnbe short 01c5ch ; 77 07 1767 1916 mov dx, ax ; 89 c2 1768 1917 add dx, strict byte 00030h ; 83 c2 30 1769 jmp short 01 bfch ; eb 081918 jmp short 01c64h ; eb 08 1770 1919 sub ax, strict word 0000ah ; 2d 0a 00 1771 1920 mov dx, word [bp-00eh] ; 8b 56 f2 … … 1773 1922 xor dh, dh ; 30 f6 1774 1923 mov ax, word [bp+004h] ; 8b 46 04 1775 call 01 7c5h ; e8 c1 fb1924 call 0182dh ; e8 c1 fb 1776 1925 dec word [bp-00ch] ; ff 4e f4 1777 jmp short 01 bc9h ; eb c01926 jmp short 01c31h ; eb c0 1778 1927 cmp dl, 064h ; 80 fa 64 1779 jne short 01c 2dh ; 75 1f1928 jne short 01c95h ; 75 1f 1780 1929 test byte [bp-011h], 080h ; f6 46 ef 80 1781 je short 01c 1eh ; 74 0a1930 je short 01c86h ; 74 0a 1782 1931 mov dx, word [bp-012h] ; 8b 56 ee 1783 1932 neg dx ; f7 da 1784 1933 mov cx, strict word 00001h ; b9 01 00 1785 jmp short 01c 25h ; eb 071934 jmp short 01c8dh ; eb 07 1786 1935 xor cx, cx ; 31 c9 1787 1936 mov bx, di ; 89 fb 1788 1937 mov dx, word [bp-012h] ; 8b 56 ee 1789 1938 mov ax, word [bp+004h] ; 8b 46 04 1790 call 018 00h ; e8 d5 fb1791 jmp short 01c 81h ; eb 541939 call 01868h ; e8 d5 fb 1940 jmp short 01ce9h ; eb 54 1792 1941 cmp dl, 073h ; 80 fa 73 1793 jne short 01c 3fh ; 75 0d1942 jne short 01ca7h ; 75 0d 1794 1943 mov cx, ds ; 8c d9 1795 1944 mov bx, word [bp-012h] ; 8b 5e ee 1796 1945 mov ax, word [bp+004h] ; 8b 46 04 1797 call 019 31h ; e8 f4 fc1798 jmp short 01c 81h ; eb 421946 call 01999h ; e8 f4 fc 1947 jmp short 01ce9h ; eb 42 1799 1948 cmp dl, 053h ; 80 fa 53 1800 jne short 01c 65h ; 75 211949 jne short 01ccdh ; 75 21 1801 1950 mov ax, word [bp-012h] ; 8b 46 ee 1802 1951 mov word [bp-010h], ax ; 89 46 f0 … … 1809 1958 mov bx, ax ; 89 c3 1810 1959 mov cx, word [bp-010h] ; 8b 4e f0 1811 jmp short 01c 37h ; eb d21960 jmp short 01c9fh ; eb d2 1812 1961 cmp dl, 063h ; 80 fa 63 1813 jne short 01c 76h ; 75 0c1962 jne short 01cdeh ; 75 0c 1814 1963 movzx dx, byte [bp-012h] ; 0f b6 56 ee 1815 1964 mov ax, word [bp+004h] ; 8b 46 04 1816 call 01 7c5h ; e8 51 fb1817 jmp short 01c 81h ; eb 0b1965 call 0182dh ; e8 51 fb 1966 jmp short 01ce9h ; eb 0b 1818 1967 push 00107h ; 68 07 01 1819 1968 push strict byte 00007h ; 6a 07 1820 call 019 72h ; e8 f4 fc1969 call 019dah ; e8 f4 fc 1821 1970 add sp, strict byte 00004h ; 83 c4 04 1822 1971 xor bx, bx ; 31 db 1823 jmp short 01c 8dh ; eb 081972 jmp short 01cf5h ; eb 08 1824 1973 xor dh, dh ; 30 f6 1825 1974 mov ax, word [bp+004h] ; 8b 46 04 1826 call 01 7c5h ; e8 38 fb1975 call 0182dh ; e8 38 fb 1827 1976 inc word [bp+006h] ; ff 46 06 1828 jmp near 01 9a0h ; e9 0d fd1977 jmp near 01a08h ; e9 0d fd 1829 1978 xor ax, ax ; 31 c0 1830 1979 mov word [bp-016h], ax ; 89 46 ea 1831 1980 mov word [bp-014h], ax ; 89 46 ec 1832 1981 test byte [bp+004h], 001h ; f6 46 04 01 1833 je short 01 ca5h ; 74 041982 je short 01d0dh ; 74 04 1834 1983 cli ; fa 1835 1984 hlt ; f4 1836 jmp short 01 ca2h ; eb fd1985 jmp short 01d0ah ; eb fd 1837 1986 lea sp, [bp-00ah] ; 8d 66 f6 1838 1987 pop di ; 5f … … 1843 1992 pop bp ; 5d 1844 1993 retn ; c3 1845 _ata_init: ; 0xf1 cafLB 0xcd1994 _ata_init: ; 0xf1d17 LB 0xcd 1846 1995 push bp ; 55 1847 1996 mov bp, sp ; 89 e5 … … 1849 1998 mov dx, strict word 0000eh ; ba 0e 00 1850 1999 mov ax, strict word 00040h ; b8 40 00 1851 call 016 6ch ; e8 b0 f92000 call 016d4h ; e8 b0 f9 1852 2001 mov si, 00122h ; be 22 01 1853 2002 mov dx, ax ; 89 c2 1854 2003 xor al, al ; 30 c0 1855 jmp short 01 cc9h ; eb 042004 jmp short 01d31h ; eb 04 1856 2005 cmp AL, strict byte 004h ; 3c 04 1857 jnc short 01 cedh ; 73 242006 jnc short 01d55h ; 73 24 1858 2007 movzx bx, al ; 0f b6 d8 1859 2008 imul bx, bx, strict byte 00006h ; 6b db 06 … … 1866 2015 db 0feh, 0c0h 1867 2016 ; inc al ; fe c0 1868 jmp short 01 cc5h ; eb d82017 jmp short 01d2dh ; eb d8 1869 2018 xor al, al ; 30 c0 1870 jmp short 01 cf5h ; eb 042019 jmp short 01d5dh ; eb 04 1871 2020 cmp AL, strict byte 008h ; 3c 08 1872 jnc short 01d 49h ; 73 542021 jnc short 01db1h ; 73 54 1873 2022 movzx bx, al ; 0f b6 d8 1874 2023 imul bx, bx, strict byte 0001ch ; 6b db 1c … … 1892 2041 db 0feh, 0c0h 1893 2042 ; inc al ; fe c0 1894 jmp short 01 cf1h ; eb a82043 jmp short 01d59h ; eb a8 1895 2044 xor al, al ; 30 c0 1896 jmp short 01d 51h ; eb 042045 jmp short 01db9h ; eb 04 1897 2046 cmp AL, strict byte 010h ; 3c 10 1898 jnc short 01d 68h ; 73 172047 jnc short 01dd0h ; 73 17 1899 2048 movzx bx, al ; 0f b6 d8 1900 2049 mov es, dx ; 8e c2 … … 1904 2053 db 0feh, 0c0h 1905 2054 ; inc al ; fe c0 1906 jmp short 01d 4dh ; eb e52055 jmp short 01db5h ; eb e5 1907 2056 mov es, dx ; 8e c2 1908 2057 mov byte [es:si+001e2h], 000h ; 26 c6 84 e2 01 00 … … 1912 2061 pop bp ; 5d 1913 2062 retn ; c3 1914 ata_reset_: ; 0xf1d 7cLB 0xde2063 ata_reset_: ; 0xf1de4 LB 0xde 1915 2064 push bp ; 55 1916 2065 mov bp, sp ; 89 e5 … … 1925 2074 mov dx, strict word 0000eh ; ba 0e 00 1926 2075 mov ax, strict word 00040h ; b8 40 00 1927 call 016 6ch ; e8 dc f82076 call 016d4h ; e8 dc f8 1928 2077 mov word [bp-00eh], 00122h ; c7 46 f2 22 01 1929 2078 mov di, ax ; 89 c7 … … 1945 2094 dec bx ; 4b 1946 2095 test bx, bx ; 85 db 1947 jbe short 01 dd4h ; 76 0c2096 jbe short 01e3ch ; 76 0c 1948 2097 mov dx, cx ; 89 ca 1949 2098 add dx, strict byte 00007h ; 83 c2 07 … … 1952 2101 ; sub ah, ah ; 2a e4 1953 2102 test AL, strict byte 080h ; a8 80 1954 je short 01 dc3h ; 74 ef2103 je short 01e2bh ; 74 ef 1955 2104 lea dx, [si+006h] ; 8d 54 06 1956 2105 mov AL, strict byte 00ah ; b0 0a … … 1960 2109 add bx, word [bp-00eh] ; 03 5e f2 1961 2110 cmp byte [es:bx+022h], 000h ; 26 80 7f 22 00 1962 je short 01e 36h ; 74 4c2111 je short 01e9eh ; 74 4c 1963 2112 cmp byte [bp-00ch], 000h ; 80 7e f4 00 1964 je short 01 df5h ; 74 052113 je short 01e5dh ; 74 05 1965 2114 mov ax, 000b0h ; b8 b0 00 1966 jmp short 01 df8h ; eb 032115 jmp short 01e60h ; eb 03 1967 2116 mov ax, 000a0h ; b8 a0 00 1968 2117 mov dx, cx ; 89 ca … … 1982 2131 ; sub ah, ah ; 2a e4 1983 2132 cmp bl, 001h ; 80 fb 01 1984 jne short 01e 36h ; 75 222133 jne short 01e9eh ; 75 22 1985 2134 cmp al, bl ; 38 d8 1986 jne short 01e 36h ; 75 1e2135 jne short 01e9eh ; 75 1e 1987 2136 mov bx, strict word 0ffffh ; bb ff ff 1988 2137 dec bx ; 4b 1989 2138 test bx, bx ; 85 db 1990 jbe short 01e 36h ; 76 162139 jbe short 01e9eh ; 76 16 1991 2140 mov dx, cx ; 89 ca 1992 2141 add dx, strict byte 00007h ; 83 c2 07 … … 1995 2144 ; sub ah, ah ; 2a e4 1996 2145 test AL, strict byte 080h ; a8 80 1997 je short 01e 36h ; 74 0a2146 je short 01e9eh ; 74 0a 1998 2147 mov ax, strict word 0ffffh ; b8 ff ff 1999 2148 dec ax ; 48 2000 2149 test ax, ax ; 85 c0 2001 jnbe short 01e 2fh ; 77 fb2002 jmp short 01e 1bh ; eb e52150 jnbe short 01e97h ; 77 fb 2151 jmp short 01e83h ; eb e5 2003 2152 mov bx, strict word 00010h ; bb 10 00 2004 2153 dec bx ; 4b 2005 2154 test bx, bx ; 85 db 2006 jbe short 01e 4ah ; 76 0c2155 jbe short 01eb2h ; 76 0c 2007 2156 mov dx, cx ; 89 ca 2008 2157 add dx, strict byte 00007h ; 83 c2 07 … … 2011 2160 ; sub ah, ah ; 2a e4 2012 2161 test AL, strict byte 040h ; a8 40 2013 je short 01e 39h ; 74 ef2162 je short 01ea1h ; 74 ef 2014 2163 lea dx, [si+006h] ; 8d 54 06 2015 2164 mov AL, strict byte 008h ; b0 08 … … 2023 2172 pop bp ; 5d 2024 2173 retn ; c3 2025 ata_cmd_data_in_: ; 0xf1e 5aLB 0x2e22174 ata_cmd_data_in_: ; 0xf1ec2 LB 0x2e2 2026 2175 push bp ; 55 2027 2176 mov bp, sp ; 89 e5 … … 2058 2207 mov word [bp-00eh], ax ; 89 46 f2 2059 2208 test ax, ax ; 85 c0 2060 jne short 01 ec1h ; 75 142209 jne short 01f29h ; 75 14 2061 2210 cmp byte [bp-008h], 001h ; 80 7e f8 01 2062 jne short 01 ebah ; 75 072211 jne short 01f22h ; 75 07 2063 2212 mov word [bp-00eh], 04000h ; c7 46 f2 00 40 2064 jmp short 01 ed0h ; eb 162213 jmp short 01f38h ; eb 16 2065 2214 mov word [bp-00eh], 08000h ; c7 46 f2 00 80 2066 jmp short 01 ed0h ; eb 0f2215 jmp short 01f38h ; eb 0f 2067 2216 cmp byte [bp-008h], 001h ; 80 7e f8 01 2068 jne short 01 ecdh ; 75 062217 jne short 01f35h ; 75 06 2069 2218 shr word [bp-00eh], 002h ; c1 6e f2 02 2070 jmp short 01 ed0h ; eb 032219 jmp short 01f38h ; eb 03 2071 2220 shr word [bp-00eh], 1 ; d1 6e f2 2072 2221 mov dx, word [bp-00ch] ; 8b 56 f4 … … 2076 2225 ; sub ah, ah ; 2a e4 2077 2226 test AL, strict byte 080h ; a8 80 2078 je short 01 eech ; 74 0f2227 je short 01f54h ; 74 0f 2079 2228 mov dx, word [bp-010h] ; 8b 56 f0 2080 2229 add dx, strict byte 00006h ; 83 c2 06 … … 2082 2231 out DX, AL ; ee 2083 2232 mov dx, strict word 00001h ; ba 01 00 2084 jmp near 021 33h ; e9 47 022233 jmp near 0219bh ; e9 47 02 2085 2234 mov es, [bp-01ah] ; 8e 46 e6 2086 2235 mov di, word [bp-018h] ; 8b 7e e8 … … 2096 2245 mov al, byte [bp-006h] ; 8a 46 fa 2097 2246 test al, al ; 84 c0 2098 jne near 0 1ffeh ; 0f 85 e3 002247 jne near 02066h ; 0f 85 e3 00 2099 2248 xor bx, bx ; 31 db 2100 2249 xor dx, dx ; 31 d2 … … 2109 2258 adc ax, word [bp-016h] ; 13 46 ea 2110 2259 test ax, ax ; 85 c0 2111 jnbe short 01f 50h ; 77 102112 jne short 0 1fb4h ; 75 722260 jnbe short 01fb8h ; 77 10 2261 jne short 0201ch ; 75 72 2113 2262 test dx, dx ; 85 d2 2114 jnbe short 01f 50h ; 77 0a2115 jne short 0 1fb4h ; 75 6c2263 jnbe short 01fb8h ; 77 0a 2264 jne short 0201ch ; 75 6c 2116 2265 cmp bx, 01000h ; 81 fb 00 10 2117 jnbe short 01f 50h ; 77 022118 jne short 0 1fb4h ; 75 642266 jnbe short 01fb8h ; 77 02 2267 jne short 0201ch ; 75 64 2119 2268 mov bx, si ; 89 f3 2120 2269 mov ax, word [es:bx+006h] ; 26 8b 47 06 … … 2123 2272 mov dx, word [es:si] ; 26 8b 14 2124 2273 mov si, strict word 00018h ; be 18 00 2125 call 09 e6ah ; e8 037f2274 call 09f00h ; e8 31 7f 2126 2275 xor dh, dh ; 30 f6 2127 2276 mov word [bp-016h], dx ; 89 56 ea … … 2133 2282 mov dx, word [es:si] ; 26 8b 14 2134 2283 mov si, strict word 00020h ; be 20 00 2135 call 09 e6ah ; e8 e3 7e2284 call 09f00h ; e8 11 7f 2136 2285 mov bx, dx ; 89 d3 2137 2286 mov ax, word [bp-01eh] ; 8b 46 e2 … … 2164 2313 mov dx, word [es:si] ; 26 8b 14 2165 2314 mov si, strict word 00008h ; be 08 00 2166 call 09 e6ah ; e8 927e2315 call 09f00h ; e8 c0 7e 2167 2316 mov word [bp-014h], dx ; 89 56 ec 2168 2317 mov bx, word [bp-018h] ; 8b 5e e8 … … 2173 2322 mov dx, word [es:si] ; 26 8b 14 2174 2323 mov si, strict word 00018h ; be 18 00 2175 call 09 e6ah ; e8 747e2324 call 09f00h ; e8 a2 7e 2176 2325 and dx, strict byte 0000fh ; 83 e2 0f 2177 2326 or dl, 040h ; 80 ca 40 … … 2203 2352 out DX, AL ; ee 2204 2353 test byte [bp-00ah], 001h ; f6 46 f6 01 2205 je short 020 40h ; 74 052354 je short 020a8h ; 74 05 2206 2355 mov ax, 000b0h ; b8 b0 00 2207 jmp short 020 43h ; eb 032356 jmp short 020abh ; eb 03 2208 2357 mov ax, 000a0h ; b8 a0 00 2209 2358 movzx dx, bl ; 0f b6 d3 … … 2218 2367 mov ax, word [bp-01ch] ; 8b 46 e4 2219 2368 cmp ax, 000c4h ; 3d c4 00 2220 je short 020 66h ; 74 052369 je short 020ceh ; 74 05 2221 2370 cmp ax, strict word 00029h ; 3d 29 00 2222 jne short 020 70h ; 75 0a2371 jne short 020d8h ; 75 0a 2223 2372 mov bx, word [bp-01eh] ; 8b 5e e2 2224 2373 mov word [bp-01eh], strict word 00001h ; c7 46 e2 01 00 2225 jmp short 020 73h ; eb 032374 jmp short 020dbh ; eb 03 2226 2375 mov bx, strict word 00001h ; bb 01 00 2227 2376 mov dx, word [bp-00ch] ; 8b 56 f4 … … 2232 2381 mov dl, al ; 88 c2 2233 2382 test AL, strict byte 080h ; a8 80 2234 jne short 020 73h ; 75 f12383 jne short 020dbh ; 75 f1 2235 2384 test AL, strict byte 001h ; a8 01 2236 je short 020 95h ; 74 0f2385 je short 020fdh ; 74 0f 2237 2386 mov dx, word [bp-010h] ; 8b 56 f0 2238 2387 add dx, strict byte 00006h ; 83 c2 06 … … 2240 2389 out DX, AL ; ee 2241 2390 mov dx, strict word 00002h ; ba 02 00 2242 jmp near 021 33h ; e9 9e 002391 jmp near 0219bh ; e9 9e 00 2243 2392 test dl, 008h ; f6 c2 08 2244 jne short 02 0a9h ; 75 0f2393 jne short 02111h ; 75 0f 2245 2394 mov dx, word [bp-010h] ; 8b 56 f0 2246 2395 add dx, strict byte 00006h ; 83 c2 06 … … 2248 2397 out DX, AL ; ee 2249 2398 mov dx, strict word 00003h ; ba 03 00 2250 jmp near 021 33h ; e9 8a 002399 jmp near 0219bh ; e9 8a 00 2251 2400 sti ; fb 2252 2401 cmp di, 0f800h ; 81 ff 00 f8 2253 jc short 02 0bdh ; 72 0d2402 jc short 02125h ; 72 0d 2254 2403 sub di, 00800h ; 81 ef 00 08 2255 2404 mov ax, word [bp-012h] ; 8b 46 ee … … 2257 2406 mov word [bp-012h], ax ; 89 46 ee 2258 2407 cmp byte [bp-008h], 001h ; 80 7e f8 01 2259 jne short 02 0d1h ; 75 0e2408 jne short 02139h ; 75 0e 2260 2409 mov dx, word [bp-00ch] ; 8b 56 f4 2261 2410 mov cx, word [bp-00eh] ; 8b 4e f2 … … 2263 2412 db 0f3h, 066h, 06dh 2264 2413 ; rep insd ; f3 66 6d 2265 jmp short 02 0dch ; eb 0b2414 jmp short 02144h ; eb 0b 2266 2415 mov dx, word [bp-00ch] ; 8b 56 f4 2267 2416 mov cx, word [bp-00eh] ; 8b 4e f2 … … 2279 2428 mov dl, al ; 88 c2 2280 2429 test AL, strict byte 080h ; a8 80 2281 jne short 02 0e9h ; 75 f12430 jne short 02151h ; 75 f1 2282 2431 cmp word [bp-01eh], strict byte 00000h ; 83 7e e2 00 2283 jne short 021 12h ; 75 142432 jne short 0217ah ; 75 14 2284 2433 and AL, strict byte 0c9h ; 24 c9 2285 2434 cmp AL, strict byte 040h ; 3c 40 2286 je short 021 28h ; 74 242435 je short 02190h ; 74 24 2287 2436 mov dx, word [bp-010h] ; 8b 56 f0 2288 2437 add dx, strict byte 00006h ; 83 c2 06 … … 2290 2439 out DX, AL ; ee 2291 2440 mov dx, strict word 00004h ; ba 04 00 2292 jmp short 021 33h ; eb 212441 jmp short 0219bh ; eb 21 2293 2442 mov al, dl ; 88 d0 2294 2443 and AL, strict byte 0c9h ; 24 c9 2295 2444 cmp AL, strict byte 048h ; 3c 48 2296 je short 02 0aah ; 74 902445 je short 02112h ; 74 90 2297 2446 mov dx, word [bp-010h] ; 8b 56 f0 2298 2447 add dx, strict byte 00006h ; 83 c2 06 … … 2300 2449 out DX, AL ; ee 2301 2450 mov dx, strict word 00005h ; ba 05 00 2302 jmp short 021 33h ; eb 0b2451 jmp short 0219bh ; eb 0b 2303 2452 mov dx, word [bp-010h] ; 8b 56 f0 2304 2453 add dx, strict byte 00006h ; 83 c2 06 … … 2312 2461 pop bp ; 5d 2313 2462 retn ; c3 2314 _ata_detect: ; 0xf21 3cLB 0x65c2463 _ata_detect: ; 0xf21a4 LB 0x65c 2315 2464 push bp ; 55 2316 2465 mov bp, sp ; 89 e5 … … 2320 2469 mov dx, strict word 0000eh ; ba 0e 00 2321 2470 mov ax, strict word 00040h ; b8 40 00 2322 call 016 6ch ; e8 1e f52471 call 016d4h ; e8 1e f5 2323 2472 mov word [bp-020h], ax ; 89 46 e0 2324 2473 mov di, 00122h ; bf 22 01 … … 2338 2487 mov byte [bp-010h], al ; 88 46 f0 2339 2488 mov byte [bp-016h], al ; 88 46 ea 2340 jmp near 027 1ch ; e9 86 052489 jmp near 02784h ; e9 86 05 2341 2490 mov ax, 000a0h ; b8 a0 00 2342 2491 lea dx, [si+006h] ; 8d 54 06 … … 2370 2519 ; sub ah, ah ; 2a e4 2371 2520 cmp cl, 055h ; 80 f9 55 2372 jne near 02 29ah ; 0f 85 ca 002521 jne near 02302h ; 0f 85 ca 00 2373 2522 cmp AL, strict byte 0aah ; 3c aa 2374 jne near 02 29ah ; 0f 85 c4 002523 jne near 02302h ; 0f 85 c4 00 2375 2524 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2376 2525 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 2380 2529 mov byte [es:bx+022h], 001h ; 26 c6 47 22 01 2381 2530 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2382 call 01d 7ch ; e8 8b fb2531 call 01de4h ; e8 8b fb 2383 2532 cmp byte [bp-00eh], 000h ; 80 7e f2 00 2384 je short 02 1fch ; 74 052533 je short 02264h ; 74 05 2385 2534 mov ax, 000b0h ; b8 b0 00 2386 jmp short 02 1ffh ; eb 032535 jmp short 02267h ; eb 03 2387 2536 mov ax, 000a0h ; b8 a0 00 2388 2537 lea dx, [si+006h] ; 8d 54 06 … … 2398 2547 ; sub ah, ah ; 2a e4 2399 2548 cmp bl, 001h ; 80 fb 01 2400 jne near 02 29ah ; 0f 85 82 002549 jne near 02302h ; 0f 85 82 00 2401 2550 cmp al, bl ; 38 d8 2402 jne near 02 29ah ; 0f 85 7c 002551 jne near 02302h ; 0f 85 7c 00 2403 2552 lea dx, [si+004h] ; 8d 54 04 2404 2553 in AL, DX ; ec … … 2418 2567 ; sub ah, ah ; 2a e4 2419 2568 cmp bl, 014h ; 80 fb 14 2420 jne short 022 59h ; 75 1b2569 jne short 022c1h ; 75 1b 2421 2570 cmp cl, 0ebh ; 80 f9 eb 2422 jne short 022 59h ; 75 162571 jne short 022c1h ; 75 16 2423 2572 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2424 2573 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 2427 2576 add bx, ax ; 01 c3 2428 2577 mov byte [es:bx+022h], 003h ; 26 c6 47 22 03 2429 jmp short 02 29ah ; eb 412578 jmp short 02302h ; eb 41 2430 2579 cmp byte [bp-018h], 000h ; 80 7e e8 00 2431 jne short 022 7bh ; 75 1c2580 jne short 022e3h ; 75 1c 2432 2581 test bh, bh ; 84 ff 2433 jne short 022 7bh ; 75 182582 jne short 022e3h ; 75 18 2434 2583 test al, al ; 84 c0 2435 je short 022 7bh ; 74 142584 je short 022e3h ; 74 14 2436 2585 movzx bx, byte [bp-016h] ; 0f b6 5e ea 2437 2586 imul bx, bx, strict byte 0001ch ; 6b db 1c … … 2439 2588 add bx, word [bp-022h] ; 03 5e de 2440 2589 mov byte [es:bx+022h], 002h ; 26 c6 47 22 02 2441 jmp short 02 29ah ; eb 1f2590 jmp short 02302h ; eb 1f 2442 2591 mov al, byte [bp-018h] ; 8a 46 e8 2443 2592 cmp AL, strict byte 0ffh ; 3c ff 2444 jne short 02 29ah ; 75 182593 jne short 02302h ; 75 18 2445 2594 cmp bh, al ; 38 c7 2446 jne short 02 29ah ; 75 142595 jne short 02302h ; 75 14 2447 2596 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2448 2597 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 2462 2611 mov byte [bp-00ah], al ; 88 46 f6 2463 2612 cmp AL, strict byte 002h ; 3c 02 2464 jne near 02 4e9h ; 0f 85 2c 022613 jne near 02551h ; 0f 85 2c 02 2465 2614 mov byte [es:si+023h], 0ffh ; 26 c6 44 23 ff 2466 2615 mov byte [es:si+026h], 000h ; 26 c6 44 26 00 … … 2475 2624 mov ax, word [bp-022h] ; 8b 46 de 2476 2625 mov dx, es ; 8c c2 2477 call 01e 5ah ; e8 6f fb2626 call 01ec2h ; e8 6f fb 2478 2627 test ax, ax ; 85 c0 2479 je short 02 2fah ; 74 0b2628 je short 02362h ; 74 0b 2480 2629 push 00124h ; 68 24 01 2481 2630 push strict byte 00007h ; 6a 07 2482 call 019 72h ; e8 7b f62631 call 019dah ; e8 7b f6 2483 2632 add sp, strict byte 00004h ; 83 c4 04 2484 2633 test byte [bp-00264h], 080h ; f6 86 9c fd 80 … … 2506 2655 mov word [bp-01eh], ax ; 89 46 e2 2507 2656 cmp word [bp-02ch], 00fffh ; 81 7e d4 ff 0f 2508 jne short 023 66h ; 75 1e2657 jne short 023ceh ; 75 1e 2509 2658 cmp si, strict byte 0ffffh ; 83 fe ff 2510 jne short 023 66h ; 75 192659 jne short 023ceh ; 75 19 2511 2660 mov ax, word [bp-00196h] ; 8b 86 6a fe 2512 2661 mov word [bp-01eh], ax ; 89 46 e2 … … 2518 2667 mov al, byte [bp-016h] ; 8a 46 ea 2519 2668 cmp AL, strict byte 001h ; 3c 01 2520 jc short 023 79h ; 72 0c2521 jbe short 023 81h ; 76 122669 jc short 023e1h ; 72 0c 2670 jbe short 023e9h ; 76 12 2522 2671 cmp AL, strict byte 003h ; 3c 03 2523 je short 023 89h ; 74 162672 je short 023f1h ; 74 16 2524 2673 cmp AL, strict byte 002h ; 3c 02 2525 je short 023 85h ; 74 0e2526 jmp short 02 3c6h ; eb 4d2674 je short 023edh ; 74 0e 2675 jmp short 0242eh ; eb 4d 2527 2676 test al, al ; 84 c0 2528 jne short 02 3c6h ; 75 492677 jne short 0242eh ; 75 49 2529 2678 mov BL, strict byte 01eh ; b3 1e 2530 jmp short 023 8bh ; eb 0a2679 jmp short 023f3h ; eb 0a 2531 2680 mov BL, strict byte 026h ; b3 26 2532 jmp short 023 8bh ; eb 062681 jmp short 023f3h ; eb 06 2533 2682 mov BL, strict byte 067h ; b3 67 2534 jmp short 023 8bh ; eb 022683 jmp short 023f3h ; eb 02 2535 2684 mov BL, strict byte 070h ; b3 70 2536 2685 mov al, bl ; 88 d8 … … 2538 2687 ; inc al ; fe c0 2539 2688 xor ah, ah ; 30 e4 2540 call 01 6ach ; e8 18 f32689 call 01714h ; e8 18 f3 2541 2690 xor ah, ah ; 30 e4 2542 2691 mov dx, ax ; 89 c2 2543 2692 sal dx, 008h ; c1 e2 08 2544 2693 movzx ax, bl ; 0f b6 c3 2545 call 01 6ach ; e8 0b f32694 call 01714h ; e8 0b f3 2546 2695 xor ah, ah ; 30 e4 2547 2696 add ax, dx ; 01 d0 … … 2550 2699 add AL, strict byte 002h ; 04 02 2551 2700 xor ah, ah ; 30 e4 2552 call 01 6ach ; e8 fb f22701 call 01714h ; e8 fb f2 2553 2702 xor ah, ah ; 30 e4 2554 2703 mov word [bp-03ah], ax ; 89 46 c6 … … 2556 2705 add AL, strict byte 007h ; 04 07 2557 2706 xor ah, ah ; 30 e4 2558 call 01 6ach ; e8 ed f22707 call 01714h ; e8 ed f2 2559 2708 xor ah, ah ; 30 e4 2560 2709 mov word [bp-036h], ax ; 89 46 ca 2561 jmp short 02 3d8h ; eb 122710 jmp short 02440h ; eb 12 2562 2711 push word [bp-01eh] ; ff 76 e2 2563 2712 push word [bp-028h] ; ff 76 d8 … … 2566 2715 mov dx, ss ; 8c d2 2567 2716 lea ax, [bp-03ah] ; 8d 46 c6 2568 call 059 3eh ; e8 66 352717 call 059a6h ; e8 66 35 2569 2718 mov bx, 00da0h ; bb a0 0d 2570 2719 mov cx, ds ; 8c d9 2571 2720 mov ax, strict word 00004h ; b8 04 00 2572 call 019 31h ; e8 4e f52721 call 01999h ; e8 4e f5 2573 2722 mov ax, word [bp-036h] ; 8b 46 ca 2574 2723 push ax ; 50 … … 2585 2734 push 0014dh ; 68 4d 01 2586 2735 push strict byte 00004h ; 6a 04 2587 call 019 72h ; e8 6a f52736 call 019dah ; e8 6a f5 2588 2737 add sp, strict byte 00014h ; 83 c4 14 2589 2738 movzx di, byte [bp-016h] ; 0f b6 7e ea … … 2622 2771 mov al, byte [bp-016h] ; 8a 46 ea 2623 2772 cmp AL, strict byte 002h ; 3c 02 2624 jnc short 02 4d4h ; 73 602773 jnc short 0253ch ; 73 60 2625 2774 test al, al ; 84 c0 2626 jne short 024 7dh ; 75 052775 jne short 024e5h ; 75 05 2627 2776 mov di, strict word 0003dh ; bf 3d 00 2628 jmp short 024 80h ; eb 032777 jmp short 024e8h ; eb 03 2629 2778 mov di, strict word 0004dh ; bf 4d 00 2630 2779 mov dx, word [bp-020h] ; 8b 56 e0 … … 2645 2794 xor al, al ; 30 c0 2646 2795 xor ah, ah ; 30 e4 2647 jmp short 02 4beh ; eb 052796 jmp short 02526h ; eb 05 2648 2797 cmp ah, 00fh ; 80 fc 0f 2649 jnc short 02 4cch ; 73 0e2798 jnc short 02534h ; 73 0e 2650 2799 movzx bx, ah ; 0f b6 dc 2651 2800 mov es, dx ; 8e c2 … … 2654 2803 db 0feh, 0c4h 2655 2804 ; inc ah ; fe c4 2656 jmp short 02 4b9h ; eb ed2805 jmp short 02521h ; eb ed 2657 2806 neg al ; f6 d8 2658 2807 mov es, dx ; 8e c2 … … 2665 2814 inc byte [bp-010h] ; fe 46 f0 2666 2815 cmp byte [bp-00ah], 003h ; 80 7e f6 03 2667 jne near 025 8ch ; 0f 85 9b 002816 jne near 025f4h ; 0f 85 9b 00 2668 2817 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2669 2818 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 2683 2832 mov ax, word [bp-022h] ; 8b 46 de 2684 2833 mov dx, es ; 8c c2 2685 call 01e 5ah ; e8 2c f92834 call 01ec2h ; e8 2c f9 2686 2835 test ax, ax ; 85 c0 2687 je short 025 3dh ; 74 0b2836 je short 025a5h ; 74 0b 2688 2837 push 00174h ; 68 74 01 2689 2838 push strict byte 00007h ; 6a 07 2690 call 019 72h ; e8 38 f42839 call 019dah ; e8 38 f4 2691 2840 add sp, strict byte 00004h ; 83 c4 04 2692 2841 mov dl, byte [bp-00263h] ; 8a 96 9d fd … … 2716 2865 mov al, byte [bp-00ah] ; 8a 46 f6 2717 2866 cmp AL, strict byte 003h ; 3c 03 2718 je short 02 5c4h ; 74 312867 je short 0262ch ; 74 31 2719 2868 cmp AL, strict byte 002h ; 3c 02 2720 jne near 026 27h ; 0f 85 8e 002869 jne near 0268fh ; 0f 85 8e 00 2721 2870 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2722 2871 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 2729 2878 mov dx, word [es:si+036h] ; 26 8b 54 36 2730 2879 mov si, strict word 0000bh ; be 0b 00 2731 call 09 e6ah ; e8 ac782880 call 09f00h ; e8 da 78 2732 2881 mov word [bp-030h], dx ; 89 56 d0 2733 2882 mov word [bp-02eh], cx ; 89 4e d2 … … 2737 2886 or dx, ax ; 09 c2 2738 2887 mov byte [bp-00ch], 00fh ; c6 46 f4 0f 2739 jmp short 02 5e2h ; eb 092888 jmp short 0264ah ; eb 09 2740 2889 dec byte [bp-00ch] ; fe 4e f4 2741 2890 cmp byte [bp-00ch], 000h ; 80 7e f4 00 2742 jbe short 02 5efh ; 76 0d2891 jbe short 02657h ; 76 0d 2743 2892 movzx cx, byte [bp-00ch] ; 0f b6 4e f4 2744 2893 mov ax, strict word 00001h ; b8 01 00 2745 2894 sal ax, CL ; d3 e0 2746 2895 test dx, ax ; 85 c2 2747 je short 02 5d9h ; 74 ea2896 je short 02641h ; 74 ea 2748 2897 xor di, di ; 31 ff 2749 jmp short 02 5f8h ; eb 052898 jmp short 02660h ; eb 05 2750 2899 cmp di, strict byte 00014h ; 83 ff 14 2751 jnl short 026 0dh ; 7d 152900 jnl short 02675h ; 7d 15 2752 2901 mov si, di ; 89 fe 2753 2902 add si, di ; 01 fe … … 2757 2906 mov byte [bp+si-063h], al ; 88 42 9d 2758 2907 inc di ; 47 2759 jmp short 02 5f3h ; eb e62908 jmp short 0265bh ; eb e6 2760 2909 mov byte [bp-03ch], 000h ; c6 46 c4 00 2761 2910 mov di, strict word 00027h ; bf 27 00 2762 jmp short 026 1bh ; eb 052911 jmp short 02683h ; eb 05 2763 2912 dec di ; 4f 2764 2913 test di, di ; 85 ff 2765 jle short 026 27h ; 7e 0c2914 jle short 0268fh ; 7e 0c 2766 2915 cmp byte [bp+di-064h], 020h ; 80 7b 9c 20 2767 jne short 026 27h ; 75 062916 jne short 0268fh ; 75 06 2768 2917 mov byte [bp+di-064h], 000h ; c6 43 9c 00 2769 jmp short 026 16h ; eb ef2918 jmp short 0267eh ; eb ef 2770 2919 mov al, byte [bp-00ah] ; 8a 46 f6 2771 2920 cmp AL, strict byte 003h ; 3c 03 2772 je short 026 8ah ; 74 5c2921 je short 026f2h ; 74 5c 2773 2922 cmp AL, strict byte 002h ; 3c 02 2774 je short 026 3bh ; 74 092923 je short 026a3h ; 74 09 2775 2924 cmp AL, strict byte 001h ; 3c 01 2776 je near 02 6f4h ; 0f 84 bc 002777 jmp near 027 13h ; e9 d8 002925 je near 0275ch ; 0f 84 bc 00 2926 jmp near 0277bh ; e9 d8 00 2778 2927 cmp byte [bp-00eh], 000h ; 80 7e f2 00 2779 je short 026 46h ; 74 052928 je short 026aeh ; 74 05 2780 2929 mov ax, 0019fh ; b8 9f 01 2781 jmp short 026 49h ; eb 032930 jmp short 026b1h ; eb 03 2782 2931 mov ax, 001a6h ; b8 a6 01 2783 2932 push ax ; 50 … … 2786 2935 push 001adh ; 68 ad 01 2787 2936 push strict byte 00002h ; 6a 02 2788 call 019 72h ; e8 1b f32937 call 019dah ; e8 1b f3 2789 2938 add sp, strict byte 00008h ; 83 c4 08 2790 2939 xor di, di ; 31 ff … … 2792 2941 inc di ; 47 2793 2942 test ax, ax ; 85 c0 2794 je short 026 73h ; 74 0e2943 je short 026dbh ; 74 0e 2795 2944 push ax ; 50 2796 2945 push 001b8h ; 68 b8 01 2797 2946 push strict byte 00002h ; 6a 02 2798 call 019 72h ; e8 04 f32947 call 019dah ; e8 04 f3 2799 2948 add sp, strict byte 00006h ; 83 c4 06 2800 jmp short 026 5ch ; eb e92949 jmp short 026c4h ; eb e9 2801 2950 push dword [bp-030h] ; 66 ff 76 d0 2802 2951 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 … … 2804 2953 push 001bbh ; 68 bb 01 2805 2954 push strict byte 00002h ; 6a 02 2806 call 019 72h ; e8 ee f22955 call 019dah ; e8 ee f2 2807 2956 add sp, strict byte 0000ah ; 83 c4 0a 2808 jmp near 027 13h ; e9 89 002957 jmp near 0277bh ; e9 89 00 2809 2958 cmp byte [bp-00eh], 000h ; 80 7e f2 00 2810 je short 026 95h ; 74 052959 je short 026fdh ; 74 05 2811 2960 mov ax, 0019fh ; b8 9f 01 2812 jmp short 02 698h ; eb 032961 jmp short 02700h ; eb 03 2813 2962 mov ax, 001a6h ; b8 a6 01 2814 2963 push ax ; 50 … … 2817 2966 push 001adh ; 68 ad 01 2818 2967 push strict byte 00002h ; 6a 02 2819 call 019 72h ; e8 cc f22968 call 019dah ; e8 cc f2 2820 2969 add sp, strict byte 00008h ; 83 c4 08 2821 2970 xor di, di ; 31 ff … … 2823 2972 inc di ; 47 2824 2973 test ax, ax ; 85 c0 2825 je short 02 6c2h ; 74 0e2974 je short 0272ah ; 74 0e 2826 2975 push ax ; 50 2827 2976 push 001b8h ; 68 b8 01 2828 2977 push strict byte 00002h ; 6a 02 2829 call 019 72h ; e8 b5 f22978 call 019dah ; e8 b5 f2 2830 2979 add sp, strict byte 00006h ; 83 c4 06 2831 jmp short 02 6abh ; eb e92980 jmp short 02713h ; eb e9 2832 2981 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2833 2982 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 2836 2985 add bx, ax ; 01 c3 2837 2986 cmp byte [es:bx+023h], 005h ; 26 80 7f 23 05 2838 jne short 02 6e2h ; 75 0a2987 jne short 0274ah ; 75 0a 2839 2988 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 2840 2989 push ax ; 50 2841 2990 push 001dbh ; 68 db 01 2842 jmp short 02 6eah ; eb 082991 jmp short 02752h ; eb 08 2843 2992 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 2844 2993 push ax ; 50 2845 2994 push 001f5h ; 68 f5 01 2846 2995 push strict byte 00002h ; 6a 02 2847 call 019 72h ; e8 83 f22996 call 019dah ; e8 83 f2 2848 2997 add sp, strict byte 00006h ; 83 c4 06 2849 jmp short 027 13h ; eb 1f2998 jmp short 0277bh ; eb 1f 2850 2999 cmp byte [bp-00eh], 000h ; 80 7e f2 00 2851 je short 02 6ffh ; 74 053000 je short 02767h ; 74 05 2852 3001 mov ax, 0019fh ; b8 9f 01 2853 jmp short 027 02h ; eb 033002 jmp short 0276ah ; eb 03 2854 3003 mov ax, 001a6h ; b8 a6 01 2855 3004 push ax ; 50 … … 2858 3007 push 00207h ; 68 07 02 2859 3008 push strict byte 00002h ; 6a 02 2860 call 019 72h ; e8 62 f23009 call 019dah ; e8 62 f2 2861 3010 add sp, strict byte 00008h ; 83 c4 08 2862 3011 inc byte [bp-016h] ; fe 46 ea 2863 3012 cmp byte [bp-016h], 008h ; 80 7e ea 08 2864 jnc short 027 6eh ; 73 523013 jnc short 027d6h ; 73 52 2865 3014 movzx bx, byte [bp-016h] ; 0f b6 5e ea 2866 3015 mov ax, bx ; 89 d8 … … 2891 3040 out DX, AL ; ee 2892 3041 cmp byte [bp-032h], 000h ; 80 7e ce 00 2893 je near 021 96h ; 0f 84 2e fa3042 je near 021feh ; 0f 84 2e fa 2894 3043 mov ax, 000b0h ; b8 b0 00 2895 jmp near 02 199h ; e9 2b fa3044 jmp near 02201h ; e9 2b fa 2896 3045 mov al, byte [bp-010h] ; 8a 46 f0 2897 3046 mov es, [bp-034h] ; 8e 46 cc … … 2903 3052 mov dx, strict word 00075h ; ba 75 00 2904 3053 mov ax, strict word 00040h ; b8 40 00 2905 call 016 5eh ; e8 cd ee3054 call 016c6h ; e8 cd ee 2906 3055 lea sp, [bp-004h] ; 8d 66 fc 2907 3056 pop di ; 5f … … 2909 3058 pop bp ; 5d 2910 3059 retn ; c3 2911 ata_cmd_data_out_: ; 0xf2 798LB 0x2bc3060 ata_cmd_data_out_: ; 0xf2800 LB 0x2bc 2912 3061 push bp ; 55 2913 3062 mov bp, sp ; 89 e5 … … 2940 3089 mov byte [bp-008h], al ; 88 46 f8 2941 3090 cmp AL, strict byte 001h ; 3c 01 2942 jne short 02 7f0h ; 75 073091 jne short 02858h ; 75 07 2943 3092 mov word [bp-020h], 00080h ; c7 46 e0 80 00 2944 jmp short 02 7f5h ; eb 053093 jmp short 0285dh ; eb 05 2945 3094 mov word [bp-020h], 00100h ; c7 46 e0 00 01 2946 3095 mov dx, word [bp-00ah] ; 8b 56 f6 … … 2950 3099 ; sub ah, ah ; 2a e4 2951 3100 test AL, strict byte 080h ; a8 80 2952 je short 028 11h ; 74 0f3101 je short 02879h ; 74 0f 2953 3102 mov dx, word [bp-012h] ; 8b 56 ee 2954 3103 add dx, strict byte 00006h ; 83 c2 06 … … 2956 3105 out DX, AL ; ee 2957 3106 mov dx, strict word 00001h ; ba 01 00 2958 jmp near 02a 4bh ; e9 3a 023107 jmp near 02ab3h ; e9 3a 02 2959 3108 mov es, [bp-00ch] ; 8e 46 f4 2960 3109 mov ax, word [es:di+006h] ; 26 8b 45 06 … … 2978 3127 mov ax, word [bp-01ch] ; 8b 46 e4 2979 3128 test ax, ax ; 85 c0 2980 jne near 029 22h ; 0f 85 c7 003129 jne near 0298ah ; 0f 85 c7 00 2981 3130 xor dx, dx ; 31 d2 2982 3131 xor bx, bx ; 31 db … … 2987 3136 adc ax, word [bp-010h] ; 13 46 f0 2988 3137 test ax, ax ; 85 c0 2989 jnbe short 028 82h ; 77 102990 jne short 02 8e5h ; 75 713138 jnbe short 028eah ; 77 10 3139 jne short 0294dh ; 75 71 2991 3140 test bx, bx ; 85 db 2992 jnbe short 028 82h ; 77 0a2993 jne short 02 8e5h ; 75 6b3141 jnbe short 028eah ; 77 0a 3142 jne short 0294dh ; 75 6b 2994 3143 cmp dx, 01000h ; 81 fa 00 10 2995 jnbe short 028 82h ; 77 022996 jne short 02 8e5h ; 75 633144 jnbe short 028eah ; 77 02 3145 jne short 0294dh ; 75 63 2997 3146 mov ax, word [bp-010h] ; 8b 46 f0 2998 3147 mov bx, word [bp-014h] ; 8b 5e ec … … 3000 3149 mov dx, word [bp-01eh] ; 8b 56 e2 3001 3150 mov si, strict word 00018h ; be 18 00 3002 call 09 e6ah ; e8 d6 753151 call 09f00h ; e8 04 76 3003 3152 xor dh, dh ; 30 f6 3004 3153 mov word [bp-01ch], dx ; 89 56 e4 … … 3008 3157 mov dx, word [bp-01eh] ; 8b 56 e2 3009 3158 mov si, strict word 00020h ; be 20 00 3010 call 09 e6ah ; e8 bf753159 call 09f00h ; e8 ed 75 3011 3160 mov bx, dx ; 89 d3 3012 3161 mov ax, word [bp-01ah] ; 8b 46 e6 … … 3042 3191 mov dx, word [bp-01eh] ; 8b 56 e2 3043 3192 mov si, strict word 00008h ; be 08 00 3044 call 09 e6ah ; e8 6b753193 call 09f00h ; e8 99 75 3045 3194 mov word [bp-010h], ax ; 89 46 f0 3046 3195 mov word [bp-014h], bx ; 89 5e ec … … 3049 3198 mov word [bp-026h], dx ; 89 56 da 3050 3199 mov si, strict word 00010h ; be 10 00 3051 call 09 e6ah ; e8 56753200 call 09f00h ; e8 84 75 3052 3201 mov word [bp-01eh], dx ; 89 56 e2 3053 3202 mov ax, dx ; 89 d0 … … 3082 3231 out DX, AL ; ee 3083 3232 cmp byte [bp-006h], 000h ; 80 7e fa 00 3084 je short 029 64h ; 74 053233 je short 029cch ; 74 05 3085 3234 mov ax, 000b0h ; b8 b0 00 3086 jmp short 029 67h ; eb 033235 jmp short 029cfh ; eb 03 3087 3236 mov ax, 000a0h ; b8 a0 00 3088 3237 movzx dx, byte [bp-022h] ; 0f b6 56 de … … 3102 3251 mov dl, al ; 88 c2 3103 3252 test AL, strict byte 080h ; a8 80 3104 jne short 029 7eh ; 75 f13253 jne short 029e6h ; 75 f1 3105 3254 test AL, strict byte 001h ; a8 01 3106 je short 02 9a0h ; 74 0f3255 je short 02a08h ; 74 0f 3107 3256 mov dx, word [bp-012h] ; 8b 56 ee 3108 3257 add dx, strict byte 00006h ; 83 c2 06 … … 3110 3259 out DX, AL ; ee 3111 3260 mov dx, strict word 00002h ; ba 02 00 3112 jmp near 02a 4bh ; e9 ab 003261 jmp near 02ab3h ; e9 ab 00 3113 3262 test dl, 008h ; f6 c2 08 3114 jne short 02 9b4h ; 75 0f3263 jne short 02a1ch ; 75 0f 3115 3264 mov dx, word [bp-012h] ; 8b 56 ee 3116 3265 add dx, strict byte 00006h ; 83 c2 06 … … 3118 3267 out DX, AL ; ee 3119 3268 mov dx, strict word 00003h ; ba 03 00 3120 jmp near 02a 4bh ; e9 97 003269 jmp near 02ab3h ; e9 97 00 3121 3270 sti ; fb 3122 3271 mov ax, word [bp-00eh] ; 8b 46 f2 3123 3272 cmp ax, 0f800h ; 3d 00 f8 3124 jc short 02 9cdh ; 72 103273 jc short 02a35h ; 72 10 3125 3274 sub ax, 00800h ; 2d 00 08 3126 3275 mov dx, word [bp-018h] ; 8b 56 e8 … … 3129 3278 mov word [bp-018h], dx ; 89 56 e8 3130 3279 cmp byte [bp-008h], 001h ; 80 7e f8 01 3131 jne short 02 9e5h ; 75 123280 jne short 02a4dh ; 75 12 3132 3281 mov dx, word [bp-00ah] ; 8b 56 f6 3133 3282 mov cx, word [bp-020h] ; 8b 4e e0 … … 3136 3285 db 0f3h, 066h, 026h, 06fh 3137 3286 ; rep es outsd ; f3 66 26 6f 3138 jmp short 02 9f4h ; eb 0f3287 jmp short 02a5ch ; eb 0f 3139 3288 mov dx, word [bp-00ah] ; 8b 56 f6 3140 3289 mov cx, word [bp-020h] ; 8b 4e e0 … … 3154 3303 mov dl, al ; 88 c2 3155 3304 test AL, strict byte 080h ; a8 80 3156 jne short 02a 01h ; 75 f13305 jne short 02a69h ; 75 f1 3157 3306 cmp word [bp-01ah], strict byte 00000h ; 83 7e e6 00 3158 jne short 02a 2ah ; 75 143307 jne short 02a92h ; 75 14 3159 3308 and AL, strict byte 0e9h ; 24 e9 3160 3309 cmp AL, strict byte 040h ; 3c 40 3161 je short 02a 40h ; 74 243310 je short 02aa8h ; 74 24 3162 3311 mov dx, word [bp-012h] ; 8b 56 ee 3163 3312 add dx, strict byte 00006h ; 83 c2 06 … … 3165 3314 out DX, AL ; ee 3166 3315 mov dx, strict word 00006h ; ba 06 00 3167 jmp short 02a 4bh ; eb 213316 jmp short 02ab3h ; eb 21 3168 3317 mov al, dl ; 88 d0 3169 3318 and AL, strict byte 0c9h ; 24 c9 3170 3319 cmp AL, strict byte 048h ; 3c 48 3171 je short 02 9b5h ; 74 833320 je short 02a1dh ; 74 83 3172 3321 mov dx, word [bp-012h] ; 8b 56 ee 3173 3322 add dx, strict byte 00006h ; 83 c2 06 … … 3175 3324 out DX, AL ; ee 3176 3325 mov dx, strict word 00007h ; ba 07 00 3177 jmp short 02a 4bh ; eb 0b3326 jmp short 02ab3h ; eb 0b 3178 3327 mov dx, word [bp-012h] ; 8b 56 ee 3179 3328 add dx, strict byte 00006h ; 83 c2 06 … … 3187 3336 pop bp ; 5d 3188 3337 retn ; c3 3189 @ata_read_sectors: ; 0xf2a 54LB 0xb53338 @ata_read_sectors: ; 0xf2abc LB 0xb5 3190 3339 push bp ; 55 3191 3340 mov bp, sp ; 89 e5 … … 3200 3349 sal dx, 009h ; c1 e2 09 3201 3350 cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00 3202 je short 02a 95h ; 74 1f3351 je short 02afdh ; 74 1f 3203 3352 xor ah, ah ; 30 e4 3204 3353 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 3210 3359 mov ax, si ; 89 f0 3211 3360 mov dx, es ; 8c c2 3212 call 01e 5ah ; e8 ca f33361 call 01ec2h ; e8 ca f3 3213 3362 mov es, [bp-00ah] ; 8e 46 f6 3214 jmp short 02 afah ; eb 653363 jmp short 02b62h ; eb 65 3215 3364 xor bx, bx ; 31 db 3216 3365 mov word [bp-00ah], bx ; 89 5e f6 … … 3227 3376 adc di, word [bp-00ch] ; 13 7e f4 3228 3377 test di, di ; 85 ff 3229 jnbe short 02 ad1h ; 77 113230 jne short 02 addh ; 75 1b3378 jnbe short 02b39h ; 77 11 3379 jne short 02b45h ; 75 1b 3231 3380 test bx, bx ; 85 db 3232 jnbe short 02 ad1h ; 77 0b3233 jne short 02 addh ; 75 153381 jnbe short 02b39h ; 77 0b 3382 jne short 02b45h ; 75 15 3234 3383 cmp word [bp-006h], 01000h ; 81 7e fa 00 10 3235 jnbe short 02 ad1h ; 77 023236 jne short 02 addh ; 75 0c3384 jnbe short 02b39h ; 77 02 3385 jne short 02b45h ; 75 0c 3237 3386 mov bx, strict word 00024h ; bb 24 00 3238 3387 mov ax, si ; 89 f0 3239 3388 mov dx, es ; 8c c2 3240 call 01e 5ah ; e8 7f f33241 jmp short 02b 00h ; eb 233389 call 01ec2h ; e8 7f f3 3390 jmp short 02b68h ; eb 23 3242 3391 xor ah, ah ; 30 e4 3243 3392 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 3249 3398 mov ax, si ; 89 f0 3250 3399 mov dx, es ; 8c c2 3251 call 01e 5ah ; e8 63 f33400 call 01ec2h ; e8 63 f3 3252 3401 mov es, [bp-006h] ; 8e 46 fa 3253 3402 mov word [es:di+028h], 00200h ; 26 c7 45 28 00 02 … … 3257 3406 pop bp ; 5d 3258 3407 retn 00004h ; c2 04 00 3259 @ata_write_sectors: ; 0xf2b 09LB 0x5b3408 @ata_write_sectors: ; 0xf2b71 LB 0x5b 3260 3409 push bp ; 55 3261 3410 mov bp, sp ; 89 e5 … … 3266 3415 mov cx, word [es:si+00eh] ; 26 8b 4c 0e 3267 3416 cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00 3268 je short 02b 29h ; 74 0c3417 je short 02b91h ; 74 0c 3269 3418 mov bx, strict word 00030h ; bb 30 00 3270 3419 mov ax, si ; 89 f0 3271 3420 mov dx, es ; 8c c2 3272 call 02 798h ; e8 71 fc3273 jmp short 02b 5bh ; eb 323421 call 02800h ; e8 71 fc 3422 jmp short 02bc3h ; eb 32 3274 3423 xor ax, ax ; 31 c0 3275 3424 xor bx, bx ; 31 db … … 3282 3431 adc dx, word [es:si+006h] ; 26 13 54 06 3283 3432 test dx, dx ; 85 d2 3284 jnbe short 02b 56h ; 77 0f3285 jne short 02b 1dh ; 75 d43433 jnbe short 02bbeh ; 77 0f 3434 jne short 02b85h ; 75 d4 3286 3435 test bx, bx ; 85 db 3287 jnbe short 02b 56h ; 77 093288 jne short 02b 1dh ; 75 ce3436 jnbe short 02bbeh ; 77 09 3437 jne short 02b85h ; 75 ce 3289 3438 cmp ax, 01000h ; 3d 00 10 3290 jnbe short 02b 56h ; 77 023291 jne short 02b 1dh ; 75 c73439 jnbe short 02bbeh ; 77 02 3440 jne short 02b85h ; 75 c7 3292 3441 mov bx, strict word 00034h ; bb 34 00 3293 jmp short 02b 20h ; eb c53442 jmp short 02b88h ; eb c5 3294 3443 lea sp, [bp-004h] ; 8d 66 fc 3295 3444 pop di ; 5f … … 3297 3446 pop bp ; 5d 3298 3447 retn 00004h ; c2 04 00 3299 ata_cmd_packet_: ; 0xf2b 64LB 0x2e83448 ata_cmd_packet_: ; 0xf2bcc LB 0x2e8 3300 3449 push bp ; 55 3301 3450 mov bp, sp ; 89 e5 … … 3308 3457 mov dx, strict word 0000eh ; ba 0e 00 3309 3458 mov ax, strict word 00040h ; b8 40 00 3310 call 016 6ch ; e8 f1 ea3459 call 016d4h ; e8 f1 ea 3311 3460 mov word [bp-012h], 00122h ; c7 46 ee 22 01 3312 3461 mov word [bp-00eh], ax ; 89 46 f2 … … 3317 3466 mov byte [bp-006h], ah ; 88 66 fa 3318 3467 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 3319 jne short 02 bb6h ; 75 1f3468 jne short 02c1eh ; 75 1f 3320 3469 mov bx, 00da0h ; bb a0 0d 3321 3470 mov cx, ds ; 8c d9 3322 3471 mov ax, strict word 00004h ; b8 04 00 3323 call 019 31h ; e8 8f ed3472 call 01999h ; e8 8f ed 3324 3473 push 00221h ; 68 21 02 3325 3474 push 00230h ; 68 30 02 3326 3475 push strict byte 00004h ; 6a 04 3327 call 019 72h ; e8 c5 ed3476 call 019dah ; e8 c5 ed 3328 3477 add sp, strict byte 00006h ; 83 c4 06 3329 3478 mov dx, strict word 00001h ; ba 01 00 3330 jmp near 02e 41h ; e9 8b 023479 jmp near 02ea9h ; e9 8b 02 3331 3480 test byte [bp+004h], 001h ; f6 46 04 01 3332 jne short 02 bb0h ; 75 f43481 jne short 02c18h ; 75 f4 3333 3482 xor ah, ah ; 30 e4 3334 3483 imul ax, ax, strict byte 00006h ; 6b c0 06 … … 3348 3497 mov al, byte [bp-008h] ; 8a 46 f8 3349 3498 cmp AL, strict byte 00ch ; 3c 0c 3350 jnc short 02 bf9h ; 73 063499 jnc short 02c61h ; 73 06 3351 3500 mov byte [bp-008h], 00ch ; c6 46 f8 0c 3352 jmp short 02 bffh ; eb 063353 jbe short 02 bffh ; 76 043501 jmp short 02c67h ; eb 06 3502 jbe short 02c67h ; 76 04 3354 3503 mov byte [bp-008h], 010h ; c6 46 f8 10 3355 3504 shr byte [bp-008h], 1 ; d0 6e f8 … … 3364 3513 ; sub ah, ah ; 2a e4 3365 3514 test AL, strict byte 080h ; a8 80 3366 je short 02c 27h ; 74 063515 je short 02c8fh ; 74 06 3367 3516 mov dx, strict word 00002h ; ba 02 00 3368 jmp near 02e 41h ; e9 1a 023517 jmp near 02ea9h ; e9 1a 02 3369 3518 mov dx, word [bp-010h] ; 8b 56 f0 3370 3519 add dx, strict byte 00006h ; 83 c2 06 … … 3378 3527 out DX, AL ; ee 3379 3528 cmp byte [bp-006h], 000h ; 80 7e fa 00 3380 je short 02c 47h ; 74 053529 je short 02cafh ; 74 05 3381 3530 mov ax, 000b0h ; b8 b0 00 3382 jmp short 02c 4ah ; eb 033531 jmp short 02cb2h ; eb 03 3383 3532 mov ax, 000a0h ; b8 a0 00 3384 3533 lea dx, [bx+006h] ; 8d 57 06 … … 3393 3542 mov dl, al ; 88 c2 3394 3543 test AL, strict byte 080h ; a8 80 3395 jne short 02c 54h ; 75 f43544 jne short 02cbch ; 75 f4 3396 3545 test AL, strict byte 001h ; a8 01 3397 je short 02c 73h ; 74 0f3546 je short 02cdbh ; 74 0f 3398 3547 mov dx, word [bp-010h] ; 8b 56 f0 3399 3548 add dx, strict byte 00006h ; 83 c2 06 … … 3401 3550 out DX, AL ; ee 3402 3551 mov dx, strict word 00003h ; ba 03 00 3403 jmp near 02e 41h ; e9 ce 013552 jmp near 02ea9h ; e9 ce 01 3404 3553 test dl, 008h ; f6 c2 08 3405 jne short 02c 87h ; 75 0f3554 jne short 02cefh ; 75 0f 3406 3555 mov dx, word [bp-010h] ; 8b 56 f0 3407 3556 add dx, strict byte 00006h ; 83 c2 06 … … 3409 3558 out DX, AL ; ee 3410 3559 mov dx, strict word 00004h ; ba 04 00 3411 jmp near 02e 41h ; e9 ba 013560 jmp near 02ea9h ; e9 ba 01 3412 3561 sti ; fb 3413 3562 mov ax, di ; 89 f8 … … 3422 3571 ; rep es outsw ; f3 26 6f 3423 3572 cmp byte [bp+00ah], 000h ; 80 7e 0a 00 3424 jne short 02 cb0h ; 75 0b3573 jne short 02d18h ; 75 0b 3425 3574 lea dx, [bx+007h] ; 8d 57 07 3426 3575 in AL, DX ; ec … … 3428 3577 ; sub ah, ah ; 2a e4 3429 3578 mov dl, al ; 88 c2 3430 jmp near 02e 22h ; e9 72 013579 jmp near 02e8ah ; e9 72 01 3431 3580 lea dx, [bx+007h] ; 8d 57 07 3432 3581 in AL, DX ; ec … … 3435 3584 mov dl, al ; 88 c2 3436 3585 test AL, strict byte 080h ; a8 80 3437 jne short 02 cb0h ; 75 f43586 jne short 02d18h ; 75 f4 3438 3587 test AL, strict byte 088h ; a8 88 3439 je near 02e 22h ; 0f 84 60 013588 je near 02e8ah ; 0f 84 60 01 3440 3589 test AL, strict byte 001h ; a8 01 3441 je short 02 cd1h ; 74 0b3590 je short 02d39h ; 74 0b 3442 3591 mov dx, word [bp-010h] ; 8b 56 f0 3443 3592 add dx, strict byte 00006h ; 83 c2 06 3444 3593 mov AL, strict byte 008h ; b0 08 3445 3594 out DX, AL ; ee 3446 jmp short 02c 6dh ; eb 9c3595 jmp short 02cd5h ; eb 9c 3447 3596 mov al, dl ; 88 d0 3448 3597 and AL, strict byte 0c9h ; 24 c9 3449 3598 cmp AL, strict byte 048h ; 3c 48 3450 je short 02 ce4h ; 74 0b3599 je short 02d4ch ; 74 0b 3451 3600 mov dx, word [bp-010h] ; 8b 56 f0 3452 3601 add dx, strict byte 00006h ; 83 c2 06 3453 3602 mov AL, strict byte 008h ; b0 08 3454 3603 out DX, AL ; ee 3455 jmp short 02c 81h ; eb 9d3604 jmp short 02ce9h ; eb 9d 3456 3605 mov ax, word [bp+00ch] ; 8b 46 0c 3457 3606 shr ax, 004h ; c1 e8 04 … … 3476 3625 mov ax, word [bp+004h] ; 8b 46 04 3477 3626 cmp ax, cx ; 39 c8 3478 jbe short 02d 24h ; 76 0c3627 jbe short 02d8ch ; 76 0c 3479 3628 mov ax, cx ; 89 c8 3480 3629 sub word [bp+004h], cx ; 29 4e 04 3481 3630 xor ax, cx ; 31 c8 3482 3631 mov word [bp-014h], ax ; 89 46 ec 3483 jmp short 02d 2eh ; eb 0a3632 jmp short 02d96h ; eb 0a 3484 3633 mov cx, ax ; 89 c1 3485 3634 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 3487 3636 xor ax, ax ; 31 c0 3488 3637 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 3489 jne short 02d 57h ; 75 213638 jne short 02dbfh ; 75 21 3490 3639 mov dx, word [bp-014h] ; 8b 56 ec 3491 3640 cmp dx, word [bp+006h] ; 3b 56 06 3492 jbe short 02d 57h ; 76 193641 jbe short 02dbfh ; 76 19 3493 3642 mov ax, word [bp-014h] ; 8b 46 ec 3494 3643 sub ax, word [bp+006h] ; 2b 46 06 … … 3499 3648 mov word [bp+006h], ax ; 89 46 06 3500 3649 mov word [bp+008h], ax ; 89 46 08 3501 jmp short 02d 63h ; eb 0c3650 jmp short 02dcbh ; eb 0c 3502 3651 mov word [bp-00ch], ax ; 89 46 f4 3503 3652 mov dx, word [bp-014h] ; 8b 56 ec … … 3507 3656 mov al, byte [bp-00ah] ; 8a 46 f6 3508 3657 test cl, 003h ; f6 c1 03 3509 je short 02d 70h ; 74 023658 je short 02dd8h ; 74 02 3510 3659 xor al, al ; 30 c0 3511 3660 test byte [bp-014h], 003h ; f6 46 ec 03 3512 je short 02d 78h ; 74 023661 je short 02de0h ; 74 02 3513 3662 xor al, al ; 30 c0 3514 3663 test byte [bp-00ch], 003h ; f6 46 f4 03 3515 je short 02d 80h ; 74 023664 je short 02de8h ; 74 02 3516 3665 xor al, al ; 30 c0 3517 3666 test byte [bp-014h], 001h ; f6 46 ec 01 3518 je short 02 d98h ; 74 123667 je short 02e00h ; 74 12 3519 3668 inc word [bp-014h] ; ff 46 ec 3520 3669 cmp word [bp-00ch], strict byte 00000h ; 83 7e f4 00 3521 jbe short 02 d98h ; 76 093670 jbe short 02e00h ; 76 09 3522 3671 test byte [bp-00ch], 001h ; f6 46 f4 01 3523 je short 02 d98h ; 74 033672 je short 02e00h ; 74 03 3524 3673 dec word [bp-00ch] ; ff 4e f4 3525 3674 cmp AL, strict byte 001h ; 3c 01 3526 jne short 02 da9h ; 75 0d3675 jne short 02e11h ; 75 0d 3527 3676 shr word [bp-014h], 002h ; c1 6e ec 02 3528 3677 shr cx, 002h ; c1 e9 02 3529 3678 shr word [bp-00ch], 002h ; c1 6e f4 02 3530 jmp short 02 db1h ; eb 083679 jmp short 02e19h ; eb 08 3531 3680 shr word [bp-014h], 1 ; d1 6e ec 3532 3681 shr cx, 1 ; d1 e9 3533 3682 shr word [bp-00ch], 1 ; d1 6e f4 3534 3683 cmp AL, strict byte 001h ; 3c 01 3535 jne short 02 de1h ; 75 2c3684 jne short 02e49h ; 75 2c 3536 3685 test cx, cx ; 85 c9 3537 je short 02 dc3h ; 74 0a3686 je short 02e2bh ; 74 0a 3538 3687 mov dx, bx ; 89 da 3539 3688 push eax ; 66 50 3540 3689 in eax, DX ; 66 ed 3541 loop 02 dbdh ; e2 fc3690 loop 02e25h ; e2 fc 3542 3691 pop eax ; 66 58 3543 3692 mov dx, bx ; 89 da … … 3548 3697 mov ax, word [bp-00ch] ; 8b 46 f4 3549 3698 test ax, ax ; 85 c0 3550 je short 02e 00h ; 74 2b3699 je short 02e68h ; 74 2b 3551 3700 mov cx, ax ; 89 c1 3552 3701 push eax ; 66 50 3553 3702 in eax, DX ; 66 ed 3554 loop 02 dd9h ; e2 fc3703 loop 02e41h ; e2 fc 3555 3704 pop eax ; 66 58 3556 jmp short 02e 00h ; eb 1f3705 jmp short 02e68h ; eb 1f 3557 3706 test cx, cx ; 85 c9 3558 je short 02 deah ; 74 053707 je short 02e52h ; 74 05 3559 3708 mov dx, bx ; 89 da 3560 3709 in ax, DX ; ed 3561 loop 02 de7h ; e2 fd3710 loop 02e4fh ; e2 fd 3562 3711 mov dx, bx ; 89 da 3563 3712 mov cx, word [bp-014h] ; 8b 4e ec … … 3566 3715 mov ax, word [bp-00ch] ; 8b 46 f4 3567 3716 test ax, ax ; 85 c0 3568 je short 02e 00h ; 74 053717 je short 02e68h ; 74 05 3569 3718 mov cx, ax ; 89 c1 3570 3719 in ax, DX ; ed 3571 loop 02 dfdh ; e2 fd3720 loop 02e65h ; e2 fd 3572 3721 add word [bp+00ch], si ; 01 76 0c 3573 3722 xor ax, ax ; 31 c0 … … 3580 3729 mov ax, word [bp-016h] ; 8b 46 ea 3581 3730 mov word [es:si+01ch], ax ; 26 89 44 1c 3582 jmp near 02 cb0h ; e9 8e fe3731 jmp near 02d18h ; e9 8e fe 3583 3732 mov al, dl ; 88 d0 3584 3733 and AL, strict byte 0e9h ; 24 e9 3585 3734 cmp AL, strict byte 040h ; 3c 40 3586 je short 02e 36h ; 74 0c3735 je short 02e9eh ; 74 0c 3587 3736 mov dx, word [bp-010h] ; 8b 56 f0 3588 3737 add dx, strict byte 00006h ; 83 c2 06 3589 3738 mov AL, strict byte 008h ; b0 08 3590 3739 out DX, AL ; ee 3591 jmp near 02c 81h ; e9 4b fe3740 jmp near 02ce9h ; e9 4b fe 3592 3741 mov dx, word [bp-010h] ; 8b 56 f0 3593 3742 add dx, strict byte 00006h ; 83 c2 06 … … 3601 3750 pop bp ; 5d 3602 3751 retn 0000ch ; c2 0c 00 3603 ata_soft_reset_: ; 0xf2e 4cLB 0x803752 ata_soft_reset_: ; 0xf2eb4 LB 0x80 3604 3753 push bp ; 55 3605 3754 mov bp, sp ; 89 e5 … … 3611 3760 mov dx, strict word 0000eh ; ba 0e 00 3612 3761 mov ax, strict word 00040h ; b8 40 00 3613 call 016 6ch ; e8 0e e83762 call 016d4h ; e8 0e e8 3614 3763 mov dx, bx ; 89 da 3615 3764 shr dx, 1 ; d1 ea … … 3626 3775 out DX, AL ; ee 3627 3776 cmp byte [bp-008h], 000h ; 80 7e f8 00 3628 je short 02e 8eh ; 74 053777 je short 02ef6h ; 74 05 3629 3778 mov ax, 000b0h ; b8 b0 00 3630 jmp short 02e 91h ; eb 033779 jmp short 02ef9h ; eb 03 3631 3780 mov ax, 000a0h ; b8 a0 00 3632 3781 mov dx, cx ; 89 ca … … 3643 3792 ; sub ah, ah ; 2a e4 3644 3793 test AL, strict byte 080h ; a8 80 3645 jne short 02 e9fh ; 75 f43794 jne short 02f07h ; 75 f4 3646 3795 and AL, strict byte 0e9h ; 24 e9 3647 3796 cmp AL, strict byte 040h ; 3c 40 3648 je short 02 ebch ; 74 0b3797 je short 02f24h ; 74 0b 3649 3798 lea dx, [bx+006h] ; 8d 57 06 3650 3799 mov AL, strict byte 008h ; b0 08 3651 3800 out DX, AL ; ee 3652 3801 mov ax, strict word 00001h ; b8 01 00 3653 jmp short 02 ec4h ; eb 083802 jmp short 02f2ch ; eb 08 3654 3803 lea dx, [bx+006h] ; 8d 57 06 3655 3804 mov AL, strict byte 008h ; b0 08 … … 3662 3811 pop bp ; 5d 3663 3812 retn ; c3 3664 set_diskette_ret_status_: ; 0xf2 eccLB 0x183813 set_diskette_ret_status_: ; 0xf2f34 LB 0x18 3665 3814 push bp ; 55 3666 3815 mov bp, sp ; 89 e5 … … 3670 3819 mov dx, strict word 00041h ; ba 41 00 3671 3820 mov ax, strict word 00040h ; b8 40 00 3672 call 016 5eh ; e8 81 e73821 call 016c6h ; e8 81 e7 3673 3822 lea sp, [bp-004h] ; 8d 66 fc 3674 3823 pop dx ; 5a … … 3676 3825 pop bp ; 5d 3677 3826 retn ; c3 3678 set_diskette_current_cyl_: ; 0xf2 ee4LB 0x2d3827 set_diskette_current_cyl_: ; 0xf2f4c LB 0x2d 3679 3828 push bp ; 55 3680 3829 mov bp, sp ; 89 e5 … … 3682 3831 mov bl, al ; 88 c3 3683 3832 cmp AL, strict byte 001h ; 3c 01 3684 jbe short 02 ef9h ; 76 0b3833 jbe short 02f61h ; 76 0b 3685 3834 push 00250h ; 68 50 02 3686 3835 push strict byte 00007h ; 6a 07 3687 call 019 72h ; e8 7c ea3836 call 019dah ; e8 7c ea 3688 3837 add sp, strict byte 00004h ; 83 c4 04 3689 3838 movzx ax, dl ; 0f b6 c2 … … 3692 3841 mov bx, ax ; 89 c3 3693 3842 mov ax, strict word 00040h ; b8 40 00 3694 call 016 5eh ; e8 53 e73843 call 016c6h ; e8 53 e7 3695 3844 lea sp, [bp-002h] ; 8d 66 fe 3696 3845 pop bx ; 5b 3697 3846 pop bp ; 5d 3698 3847 retn ; c3 3699 floppy_wait_for_interrupt_: ; 0xf2f 11LB 0x213848 floppy_wait_for_interrupt_: ; 0xf2f79 LB 0x21 3700 3849 push bp ; 55 3701 3850 mov bp, sp ; 89 e5 … … 3704 3853 mov dx, strict word 0003eh ; ba 3e 00 3705 3854 mov ax, strict word 00040h ; b8 40 00 3706 call 016 50h ; e8 31 e73855 call 016b8h ; e8 31 e7 3707 3856 test AL, strict byte 080h ; a8 80 3708 je short 02f 27h ; 74 043857 je short 02f8fh ; 74 04 3709 3858 and AL, strict byte 080h ; 24 80 3710 jmp short 02f 2ch ; eb 053859 jmp short 02f94h ; eb 05 3711 3860 sti ; fb 3712 3861 hlt ; f4 3713 3862 cli ; fa 3714 jmp short 02f 16h ; eb ea3863 jmp short 02f7eh ; eb ea 3715 3864 lea sp, [bp-002h] ; 8d 66 fe 3716 3865 pop dx ; 5a 3717 3866 pop bp ; 5d 3718 3867 retn ; c3 3719 floppy_wait_for_interrupt_or_timeout_: ; 0xf2f 32LB 0x463868 floppy_wait_for_interrupt_or_timeout_: ; 0xf2f9a LB 0x46 3720 3869 push bp ; 55 3721 3870 mov bp, sp ; 89 e5 … … 3726 3875 mov dx, strict word 00040h ; ba 40 00 3727 3876 mov ax, dx ; 89 d0 3728 call 016 50h ; e8 0f e73877 call 016b8h ; e8 0f e7 3729 3878 test al, al ; 84 c0 3730 jne short 02f 4ah ; 75 053879 jne short 02fb2h ; 75 05 3731 3880 sti ; fb 3732 3881 xor cl, cl ; 30 c9 3733 jmp short 02f 6eh ; eb 243882 jmp short 02fd6h ; eb 24 3734 3883 mov dx, strict word 0003eh ; ba 3e 00 3735 3884 mov ax, strict word 00040h ; b8 40 00 3736 call 016 50h ; e8 fd e63885 call 016b8h ; e8 fd e6 3737 3886 mov cl, al ; 88 c1 3738 3887 test AL, strict byte 080h ; a8 80 3739 je short 02f 69h ; 74 103888 je short 02fd1h ; 74 10 3740 3889 and AL, strict byte 07fh ; 24 7f 3741 3890 movzx bx, al ; 0f b6 d8 3742 3891 mov dx, strict word 0003eh ; ba 3e 00 3743 3892 mov ax, strict word 00040h ; b8 40 00 3744 call 016 5eh ; e8 f7 e63745 jmp short 02f 6eh ; eb 053893 call 016c6h ; e8 f7 e6 3894 jmp short 02fd6h ; eb 05 3746 3895 sti ; fb 3747 3896 hlt ; f4 3748 3897 cli ; fa 3749 jmp short 02f 39h ; eb cb3898 jmp short 02fa1h ; eb cb 3750 3899 mov al, cl ; 88 c8 3751 3900 lea sp, [bp-006h] ; 8d 66 fa … … 3755 3904 pop bp ; 5d 3756 3905 retn ; c3 3757 floppy_reset_controller_: ; 0xf2f 78LB 0x2b3906 floppy_reset_controller_: ; 0xf2fe0 LB 0x2b 3758 3907 push bp ; 55 3759 3908 mov bp, sp ; 89 e5 … … 3777 3926 and AL, strict byte 0c0h ; 24 c0 3778 3927 cmp AL, strict byte 080h ; 3c 80 3779 jne short 02f 90h ; 75 f43928 jne short 02ff8h ; 75 f4 3780 3929 lea sp, [bp-004h] ; 8d 66 fc 3781 3930 pop dx ; 5a … … 3783 3932 pop bp ; 5d 3784 3933 retn ; c3 3785 floppy_prepare_controller_: ; 0xf 2fa3LB 0x813934 floppy_prepare_controller_: ; 0xf300b LB 0x81 3786 3935 push bp ; 55 3787 3936 mov bp, sp ; 89 e5 … … 3793 3942 mov dx, strict word 0003eh ; ba 3e 00 3794 3943 mov ax, strict word 00040h ; b8 40 00 3795 call 016 50h ; e8 9b e63944 call 016b8h ; e8 9b e6 3796 3945 and AL, strict byte 07fh ; 24 7f 3797 3946 movzx bx, al ; 0f b6 d8 3798 3947 mov dx, strict word 0003eh ; ba 3e 00 3799 3948 mov ax, strict word 00040h ; b8 40 00 3800 call 016 5eh ; e8 9b e63949 call 016c6h ; e8 9b e6 3801 3950 mov dx, 003f2h ; ba f2 03 3802 3951 in AL, DX ; ec … … 3806 3955 mov byte [bp-008h], al ; 88 46 f8 3807 3956 test cx, cx ; 85 c9 3808 je short 0 2fd6h ; 74 043957 je short 0303eh ; 74 04 3809 3958 mov AL, strict byte 020h ; b0 20 3810 jmp short 0 2fd8h ; eb 023959 jmp short 03040h ; eb 02 3811 3960 mov AL, strict byte 010h ; b0 10 3812 3961 or AL, strict byte 00ch ; 0c 0c … … 3817 3966 mov dx, strict word 00040h ; ba 40 00 3818 3967 mov ax, dx ; 89 d0 3819 call 016 5eh ; e8 73 e63968 call 016c6h ; e8 73 e6 3820 3969 mov dx, 0008bh ; ba 8b 00 3821 3970 mov ax, strict word 00040h ; b8 40 00 3822 call 016 50h ; e8 5c e63971 call 016b8h ; e8 5c e6 3823 3972 shr al, 006h ; c0 e8 06 3824 3973 mov dx, 003f7h ; ba f7 03 … … 3830 3979 and AL, strict byte 0c0h ; 24 c0 3831 3980 cmp AL, strict byte 080h ; 3c 80 3832 jne short 0 2ffbh ; 75 f43981 jne short 03063h ; 75 f4 3833 3982 cmp byte [bp-008h], 000h ; 80 7e f8 00 3834 jne short 030 1ch ; 75 0f3835 call 02f 11h ; e8 01 ff3983 jne short 03084h ; 75 0f 3984 call 02f79h ; e8 01 ff 3836 3985 movzx bx, al ; 0f b6 d8 3837 3986 mov dx, strict word 0003eh ; ba 3e 00 3838 3987 mov ax, strict word 00040h ; b8 40 00 3839 call 016 5eh ; e8 42 e63988 call 016c6h ; e8 42 e6 3840 3989 lea sp, [bp-006h] ; 8d 66 fa 3841 3990 pop dx ; 5a … … 3844 3993 pop bp ; 5d 3845 3994 retn ; c3 3846 floppy_media_known_: ; 0xf30 24LB 0x433995 floppy_media_known_: ; 0xf308c LB 0x43 3847 3996 push bp ; 55 3848 3997 mov bp, sp ; 89 e5 … … 3852 4001 mov dx, strict word 0003eh ; ba 3e 00 3853 4002 mov ax, strict word 00040h ; b8 40 00 3854 call 016 50h ; e8 1c e64003 call 016b8h ; e8 1c e6 3855 4004 mov ah, al ; 88 c4 3856 4005 test bx, bx ; 85 db 3857 je short 030 3ch ; 74 024006 je short 030a4h ; 74 02 3858 4007 shr al, 1 ; d0 e8 3859 4008 and AL, strict byte 001h ; 24 01 3860 jne short 030 44h ; 75 044009 jne short 030ach ; 75 04 3861 4010 xor ah, ah ; 30 e4 3862 jmp short 030 60h ; eb 1c4011 jmp short 030c8h ; eb 1c 3863 4012 mov dx, 00090h ; ba 90 00 3864 4013 test bx, bx ; 85 db 3865 je short 030 4eh ; 74 034014 je short 030b6h ; 74 03 3866 4015 mov dx, 00091h ; ba 91 00 3867 4016 mov ax, strict word 00040h ; b8 40 00 3868 call 016 50h ; e8 fc e54017 call 016b8h ; e8 fc e5 3869 4018 xor ah, ah ; 30 e4 3870 4019 sar ax, 004h ; c1 f8 04 3871 4020 and AL, strict byte 001h ; 24 01 3872 je short 030 40h ; 74 e34021 je short 030a8h ; 74 e3 3873 4022 mov ax, strict word 00001h ; b8 01 00 3874 4023 lea sp, [bp-004h] ; 8d 66 fc … … 3877 4026 pop bp ; 5d 3878 4027 retn ; c3 3879 floppy_read_id_: ; 0xf30 67LB 0x404028 floppy_read_id_: ; 0xf30cf LB 0x40 3880 4029 push bp ; 55 3881 4030 mov bp, sp ; 89 e5 … … 3885 4034 sub sp, strict byte 00008h ; 83 ec 08 3886 4035 mov bx, ax ; 89 c3 3887 call 0 2fa3h ; e8 2e ff4036 call 0300bh ; e8 2e ff 3888 4037 mov AL, strict byte 04ah ; b0 4a 3889 4038 mov dx, 003f5h ; ba f5 03 … … 3891 4040 mov al, bl ; 88 d8 3892 4041 out DX, AL ; ee 3893 call 02f 11h ; e8 90 fe4042 call 02f79h ; e8 90 fe 3894 4043 xor si, si ; 31 f6 3895 jmp short 030 8ah ; eb 054044 jmp short 030f2h ; eb 05 3896 4045 cmp si, strict byte 00007h ; 83 fe 07 3897 jnl short 030 96h ; 7d 0c4046 jnl short 030feh ; 7d 0c 3898 4047 mov dx, 003f5h ; ba f5 03 3899 4048 in AL, DX ; ec … … 3902 4051 mov byte [bp+si-00eh], al ; 88 42 f2 3903 4052 inc si ; 46 3904 jmp short 030 85h ; eb ef4053 jmp short 030edh ; eb ef 3905 4054 test byte [bp-00eh], 0c0h ; f6 46 f2 c0 3906 4055 db 00fh, 094h, 0c0h … … 3913 4062 pop bp ; 5d 3914 4063 retn ; c3 3915 floppy_drive_recal_: ; 0xf3 0a7LB 0x484064 floppy_drive_recal_: ; 0xf310f LB 0x48 3916 4065 push bp ; 55 3917 4066 mov bp, sp ; 89 e5 … … 3920 4069 push dx ; 52 3921 4070 mov bx, ax ; 89 c3 3922 call 0 2fa3h ; e8 f1 fe4071 call 0300bh ; e8 f1 fe 3923 4072 mov AL, strict byte 007h ; b0 07 3924 4073 mov dx, 003f5h ; ba f5 03 … … 3926 4075 mov al, bl ; 88 d8 3927 4076 out DX, AL ; ee 3928 call 02f 11h ; e8 53 fe4077 call 02f79h ; e8 53 fe 3929 4078 test bx, bx ; 85 db 3930 je short 03 0c9h ; 74 074079 je short 03131h ; 74 07 3931 4080 or AL, strict byte 002h ; 0c 02 3932 4081 mov cx, 00095h ; b9 95 00 3933 jmp short 03 0ceh ; eb 054082 jmp short 03136h ; eb 05 3934 4083 or AL, strict byte 001h ; 0c 01 3935 4084 mov cx, 00094h ; b9 94 00 … … 3937 4086 mov dx, strict word 0003eh ; ba 3e 00 3938 4087 mov ax, strict word 00040h ; b8 40 00 3939 call 016 5eh ; e8 84 e54088 call 016c6h ; e8 84 e5 3940 4089 xor bx, bx ; 31 db 3941 4090 mov dx, cx ; 89 ca 3942 4091 mov ax, strict word 00040h ; b8 40 00 3943 call 016 5eh ; e8 7a e54092 call 016c6h ; e8 7a e5 3944 4093 mov ax, strict word 00001h ; b8 01 00 3945 4094 lea sp, [bp-006h] ; 8d 66 fa … … 3949 4098 pop bp ; 5d 3950 4099 retn ; c3 3951 floppy_media_sense_: ; 0xf3 0efLB 0xf04100 floppy_media_sense_: ; 0xf3157 LB 0xf0 3952 4101 push bp ; 55 3953 4102 mov bp, sp ; 89 e5 … … 3958 4107 push di ; 57 3959 4108 mov di, ax ; 89 c7 3960 call 03 0a7h ; e8 ab ff4109 call 0310fh ; e8 ab ff 3961 4110 test ax, ax ; 85 c0 3962 jne short 031 05h ; 75 054111 jne short 0316dh ; 75 05 3963 4112 xor cx, cx ; 31 c9 3964 jmp near 03 1d3h ; e9 ce 004113 jmp near 0323bh ; e9 ce 00 3965 4114 mov ax, strict word 00010h ; b8 10 00 3966 call 01 6ach ; e8 a1 e54115 call 01714h ; e8 a1 e5 3967 4116 test di, di ; 85 ff 3968 jne short 031 16h ; 75 074117 jne short 0317eh ; 75 07 3969 4118 mov cl, al ; 88 c1 3970 4119 shr cl, 004h ; c0 e9 04 3971 jmp short 031 1bh ; eb 054120 jmp short 03183h ; eb 05 3972 4121 mov cl, al ; 88 c1 3973 4122 and cl, 00fh ; 80 e1 0f 3974 4123 cmp cl, 001h ; 80 f9 01 3975 jne short 031 29h ; 75 094124 jne short 03191h ; 75 09 3976 4125 xor cl, cl ; 30 c9 3977 4126 mov CH, strict byte 015h ; b5 15 3978 4127 mov si, strict word 00001h ; be 01 00 3979 jmp short 031 67h ; eb 3e4128 jmp short 031cfh ; eb 3e 3980 4129 cmp cl, 002h ; 80 f9 02 3981 jne short 031 34h ; 75 064130 jne short 0319ch ; 75 06 3982 4131 xor cl, cl ; 30 c9 3983 4132 mov CH, strict byte 035h ; b5 35 3984 jmp short 031 24h ; eb f04133 jmp short 0318ch ; eb f0 3985 4134 cmp cl, 003h ; 80 f9 03 3986 jne short 031 3fh ; 75 064135 jne short 031a7h ; 75 06 3987 4136 xor cl, cl ; 30 c9 3988 4137 mov CH, strict byte 017h ; b5 17 3989 jmp short 031 24h ; eb e54138 jmp short 0318ch ; eb e5 3990 4139 cmp cl, 004h ; 80 f9 04 3991 jne short 031 4ah ; 75 064140 jne short 031b2h ; 75 06 3992 4141 xor cl, cl ; 30 c9 3993 4142 mov CH, strict byte 017h ; b5 17 3994 jmp short 031 24h ; eb da4143 jmp short 0318ch ; eb da 3995 4144 cmp cl, 005h ; 80 f9 05 3996 jne short 031 55h ; 75 064145 jne short 031bdh ; 75 06 3997 4146 mov CL, strict byte 0cch ; b1 cc 3998 4147 mov CH, strict byte 0d7h ; b5 d7 3999 jmp short 031 24h ; eb cf4148 jmp short 0318ch ; eb cf 4000 4149 cmp cl, 00eh ; 80 f9 0e 4001 je short 031 5fh ; 74 054150 je short 031c7h ; 74 05 4002 4151 cmp cl, 00fh ; 80 f9 0f 4003 jne short 031 61h ; 75 024004 jmp short 031 4fh ; eb ee4152 jne short 031c9h ; 75 02 4153 jmp short 031b7h ; eb ee 4005 4154 xor cl, cl ; 30 c9 4006 4155 xor ch, ch ; 30 ed … … 4009 4158 mov dx, 0008bh ; ba 8b 00 4010 4159 mov ax, strict word 00040h ; b8 40 00 4011 call 016 5eh ; e8 eb e44160 call 016c6h ; e8 eb e4 4012 4161 mov ax, di ; 89 f8 4013 call 030 67h ; e8 ef fe4162 call 030cfh ; e8 ef fe 4014 4163 test ax, ax ; 85 c0 4015 jne short 03 1aeh ; 75 324164 jne short 03216h ; 75 32 4016 4165 mov al, cl ; 88 c8 4017 4166 and AL, strict byte 0c0h ; 24 c0 4018 4167 cmp AL, strict byte 080h ; 3c 80 4019 je short 03 1aeh ; 74 2a4168 je short 03216h ; 74 2a 4020 4169 mov al, cl ; 88 c8 4021 4170 and AL, strict byte 0c0h ; 24 c0 4022 4171 cmp AL, strict byte 0c0h ; 3c c0 4023 je short 03 19bh ; 74 0f4172 je short 03203h ; 74 0f 4024 4173 mov ah, cl ; 88 cc 4025 4174 and ah, 03fh ; 80 e4 3f 4026 4175 cmp AL, strict byte 040h ; 3c 40 4027 je short 03 1a7h ; 74 124176 je short 0320fh ; 74 12 4028 4177 test al, al ; 84 c0 4029 je short 03 1a0h ; 74 074030 jmp short 031 67h ; eb cc4178 je short 03208h ; 74 07 4179 jmp short 031cfh ; eb cc 4031 4180 and cl, 03fh ; 80 e1 3f 4032 jmp short 031 67h ; eb c74181 jmp short 031cfh ; eb c7 4033 4182 mov cl, ah ; 88 e1 4034 4183 or cl, 040h ; 80 c9 40 4035 jmp short 031 67h ; eb c04184 jmp short 031cfh ; eb c0 4036 4185 mov cl, ah ; 88 e1 4037 4186 or cl, 080h ; 80 c9 80 4038 jmp short 031 67h ; eb b94187 jmp short 031cfh ; eb b9 4039 4188 test di, di ; 85 ff 4040 4189 db 00fh, 095h, 0c0h … … 4045 4194 mov dx, 0008bh ; ba 8b 00 4046 4195 mov ax, strict word 00040h ; b8 40 00 4047 call 016 5eh ; e8 98 e44196 call 016c6h ; e8 98 e4 4048 4197 movzx bx, ch ; 0f b6 dd 4049 4198 mov dx, di ; 89 fa 4050 4199 mov ax, strict word 00040h ; b8 40 00 4051 call 016 5eh ; e8 8d e44200 call 016c6h ; e8 8d e4 4052 4201 mov cx, si ; 89 f1 4053 4202 mov ax, cx ; 89 c8 … … 4060 4209 pop bp ; 5d 4061 4210 retn ; c3 4062 floppy_drive_exists_: ; 0xf3 1dfLB 0x244211 floppy_drive_exists_: ; 0xf3247 LB 0x24 4063 4212 push bp ; 55 4064 4213 mov bp, sp ; 89 e5 … … 4066 4215 mov dx, ax ; 89 c2 4067 4216 mov ax, strict word 00010h ; b8 10 00 4068 call 01 6ach ; e8 c1 e44217 call 01714h ; e8 c1 e4 4069 4218 test dx, dx ; 85 d2 4070 jne short 03 1f4h ; 75 054219 jne short 0325ch ; 75 05 4071 4220 shr al, 004h ; c0 e8 04 4072 jmp short 03 1f6h ; eb 024221 jmp short 0325eh ; eb 02 4073 4222 and AL, strict byte 00fh ; 24 0f 4074 4223 test al, al ; 84 c0 … … 4080 4229 pop bp ; 5d 4081 4230 retn ; c3 4082 _int13_diskette_function: ; 0xf32 03LB 0x8f74231 _int13_diskette_function: ; 0xf326b LB 0x8f7 4083 4232 push bp ; 55 4084 4233 mov bp, sp ; 89 e5 … … 4098 4247 mov word [bp-010h], dx ; 89 56 f0 4099 4248 cmp bl, 008h ; 80 fb 08 4100 jc short 032 6ah ; 72 384249 jc short 032d2h ; 72 38 4101 4250 mov dx, word [bp+01ch] ; 8b 56 1c 4102 4251 or dl, 001h ; 80 ca 01 4103 4252 cmp bl, 008h ; 80 fb 08 4104 jbe near 03 7c0h ; 0f 86 81 054253 jbe near 03828h ; 0f 86 81 05 4105 4254 cmp bl, 016h ; 80 fb 16 4106 jc short 032 60h ; 72 1c4255 jc short 032c8h ; 72 1c 4107 4256 or si, 00100h ; 81 ce 00 01 4108 4257 cmp bl, 016h ; 80 fb 16 4109 jbe near 03 8f4h ; 0f 86 a5 064258 jbe near 0395ch ; 0f 86 a5 06 4110 4259 cmp bl, 018h ; 80 fb 18 4111 je near 039 8ah ; 0f 84 34 074260 je near 039f2h ; 0f 84 34 07 4112 4261 cmp bl, 017h ; 80 fb 17 4113 je near 039 18h ; 0f 84 bb 064114 jmp near 03 ad7h ; e9 77 084262 je near 03980h ; 0f 84 bb 06 4263 jmp near 03b3fh ; e9 77 08 4115 4264 cmp bl, 015h ; 80 fb 15 4116 je near 03 8b0h ; 0f 84 49 064117 jmp near 03 ad7h ; e9 6d 084265 je near 03918h ; 0f 84 49 06 4266 jmp near 03b3fh ; e9 6d 08 4118 4267 cmp bl, 001h ; 80 fb 01 4119 jc short 032 84h ; 72 154120 jbe near 03 2fdh ; 0f 86 8a 004268 jc short 032ech ; 72 15 4269 jbe near 03365h ; 0f 86 8a 00 4121 4270 cmp bl, 005h ; 80 fb 05 4122 je near 036 3ah ; 0f 84 c0 034271 je near 036a2h ; 0f 84 c0 03 4123 4272 cmp bl, 004h ; 80 fb 04 4124 jbe near 033 1bh ; 0f 86 9a 004125 jmp near 03 ad7h ; e9 53 084273 jbe near 03383h ; 0f 86 9a 00 4274 jmp near 03b3fh ; e9 53 08 4126 4275 test bl, bl ; 84 db 4127 jne near 03 ad7h ; 0f 85 4d 084276 jne near 03b3fh ; 0f 85 4d 08 4128 4277 mov al, byte [bp+00eh] ; 8a 46 0e 4129 4278 mov byte [bp-008h], al ; 88 46 f8 4130 4279 cmp AL, strict byte 001h ; 3c 01 4131 jbe short 03 2a8h ; 76 144280 jbe short 03310h ; 76 14 4132 4281 mov ax, word [bp+016h] ; 8b 46 16 4133 4282 xor ah, ah ; 30 e4 … … 4135 4284 mov word [bp+016h], ax ; 89 46 16 4136 4285 mov ax, strict word 00001h ; b8 01 00 4137 call 02 ecch ; e8 27 fc4138 jmp near 036 16h ; e9 6e 034286 call 02f34h ; e8 27 fc 4287 jmp near 0367eh ; e9 6e 03 4139 4288 mov ax, strict word 00010h ; b8 10 00 4140 call 01 6ach ; e8 fe e34289 call 01714h ; e8 fe e3 4141 4290 cmp byte [bp-008h], 000h ; 80 7e f8 00 4142 jne short 03 2bbh ; 75 074291 jne short 03323h ; 75 07 4143 4292 mov cl, al ; 88 c1 4144 4293 shr cl, 004h ; c0 e9 04 4145 jmp short 03 2c0h ; eb 054294 jmp short 03328h ; eb 05 4146 4295 mov cl, al ; 88 c1 4147 4296 and cl, 00fh ; 80 e1 0f 4148 4297 test cl, cl ; 84 c9 4149 jne short 03 2d4h ; 75 104298 jne short 0333ch ; 75 10 4150 4299 mov ax, word [bp+016h] ; 8b 46 16 4151 4300 xor ah, ah ; 30 e4 … … 4153 4302 mov word [bp+016h], ax ; 89 46 16 4154 4303 mov ax, 00080h ; b8 80 00 4155 jmp short 03 2a2h ; eb ce4304 jmp short 0330ah ; eb ce 4156 4305 xor bx, bx ; 31 db 4157 4306 mov dx, strict word 0003eh ; ba 3e 00 4158 4307 mov ax, strict word 00040h ; b8 40 00 4159 call 016 5eh ; e8 7f e34308 call 016c6h ; e8 7f e3 4160 4309 xor al, al ; 30 c0 4161 4310 mov byte [bp+017h], al ; 88 46 17 4162 4311 xor ah, ah ; 30 e4 4163 call 02 ecch ; e8 e3 fb4312 call 02f34h ; e8 e3 fb 4164 4313 and byte [bp+01ch], 0feh ; 80 66 1c fe 4165 4314 movzx ax, byte [bp-008h] ; 0f b6 46 f8 4166 4315 xor dx, dx ; 31 d2 4167 call 02 ee4h ; e8 ee fb4316 call 02f4ch ; e8 ee fb 4168 4317 lea sp, [bp-004h] ; 8d 66 fc 4169 4318 pop di ; 5f … … 4174 4323 mov dx, 00441h ; ba 41 04 4175 4324 xor ax, ax ; 31 c0 4176 call 016 50h ; e8 47 e34325 call 016b8h ; e8 47 e3 4177 4326 movzx dx, al ; 0f b6 d0 4178 4327 sal dx, 008h ; c1 e2 08 … … 4180 4329 mov word [bp+016h], si ; 89 76 16 4181 4330 test al, al ; 84 c0 4182 je short 03 2f6h ; 74 de4183 jmp near 036 16h ; e9 fb 024331 je short 0335eh ; 74 de 4332 jmp near 0367eh ; e9 fb 02 4184 4333 mov ch, cl ; 88 cd 4185 4334 mov dl, byte [bp-010h] ; 8a 56 f0 … … 4191 4340 mov byte [bp-008h], al ; 88 46 f8 4192 4341 cmp AL, strict byte 001h ; 3c 01 4193 jnbe short 033 44h ; 77 0e4342 jnbe short 033ach ; 77 0e 4194 4343 cmp dl, 001h ; 80 fa 01 4195 jnbe short 033 44h ; 77 094344 jnbe short 033ach ; 77 09 4196 4345 test cl, cl ; 84 c9 4197 je short 033 44h ; 74 054346 je short 033ach ; 74 05 4198 4347 cmp cl, 048h ; 80 f9 48 4199 jbe short 033 6eh ; 76 2a4348 jbe short 033d6h ; 76 2a 4200 4349 mov bx, 00da0h ; bb a0 0d 4201 4350 mov cx, ds ; 8c d9 4202 4351 mov ax, strict word 00004h ; b8 04 00 4203 call 019 31h ; e8 e2 e54352 call 01999h ; e8 e2 e5 4204 4353 push 00275h ; 68 75 02 4205 4354 push 0028dh ; 68 8d 02 4206 4355 push strict byte 00004h ; 6a 04 4207 call 019 72h ; e8 18 e64356 call 019dah ; e8 18 e6 4208 4357 add sp, strict byte 00006h ; 83 c4 06 4209 4358 mov ax, word [bp+016h] ; 8b 46 16 … … 4212 4361 mov word [bp+016h], ax ; 89 46 16 4213 4362 mov ax, strict word 00001h ; b8 01 00 4214 jmp near 03 3e4h ; e9 76 004363 jmp near 0344ch ; e9 76 00 4215 4364 movzx ax, byte [bp-008h] ; 0f b6 46 f8 4216 call 03 1dfh ; e8 6a fe4365 call 03247h ; e8 6a fe 4217 4366 test ax, ax ; 85 c0 4218 je near 034 77h ; 0f 84 fc 004367 je near 034dfh ; 0f 84 fc 00 4219 4368 movzx dx, byte [bp-008h] ; 0f b6 56 f8 4220 4369 mov ax, dx ; 89 d0 4221 call 030 24h ; e8 a0 fc4370 call 0308ch ; e8 a0 fc 4222 4371 test ax, ax ; 85 c0 4223 jne short 03 3a1h ; 75 194372 jne short 03409h ; 75 19 4224 4373 mov ax, dx ; 89 d0 4225 call 03 0efh ; e8 62 fd4374 call 03157h ; e8 62 fd 4226 4375 test ax, ax ; 85 c0 4227 jne short 03 3a1h ; 75 104376 jne short 03409h ; 75 10 4228 4377 mov ax, word [bp+016h] ; 8b 46 16 4229 4378 xor ah, ah ; 30 e4 … … 4231 4380 mov word [bp+016h], ax ; 89 46 16 4232 4381 mov ax, strict word 0000ch ; b8 0c 00 4233 jmp short 03 3e4h ; eb 434382 jmp short 0344ch ; eb 43 4234 4383 cmp byte [bp-006h], 002h ; 80 7e fa 02 4235 jne near 035 09h ; 0f 85 60 014384 jne near 03571h ; 0f 85 60 01 4236 4385 mov ax, word [bp+006h] ; 8b 46 06 4237 4386 shr ax, 00ch ; c1 e8 0c … … 4243 4392 mov word [bp-012h], bx ; 89 5e ee 4244 4393 cmp dx, bx ; 39 da 4245 jbe short 03 3c5h ; 76 024394 jbe short 0342dh ; 76 02 4246 4395 db 0feh, 0c1h 4247 4396 ; inc cl ; fe c1 … … 4252 4401 add ax, bx ; 01 d8 4253 4402 cmp ax, word [bp-012h] ; 3b 46 ee 4254 jnc short 03 3eeh ; 73 184403 jnc short 03456h ; 73 18 4255 4404 mov ax, word [bp+016h] ; 8b 46 16 4256 4405 xor ah, ah ; 30 e4 … … 4258 4407 mov word [bp+016h], ax ; 89 46 16 4259 4408 mov ax, strict word 00009h ; b8 09 00 4260 call 02 ecch ; e8 e5 fa4409 call 02f34h ; e8 e5 fa 4261 4410 mov byte [bp+016h], 000h ; c6 46 16 00 4262 jmp near 036 16h ; e9 28 024411 jmp near 0367eh ; e9 28 02 4263 4412 mov AL, strict byte 006h ; b0 06 4264 4413 mov dx, strict word 0000ah ; ba 0a 00 … … 4292 4441 out DX, AL ; ee 4293 4442 movzx ax, byte [bp-008h] ; 0f b6 46 f8 4294 call 0 2fa3h ; e8 70 fb4443 call 0300bh ; e8 70 fb 4295 4444 mov AL, strict byte 0e6h ; b0 e6 4296 4445 mov dx, 003f5h ; ba f5 03 … … 4320 4469 mov AL, strict byte 0ffh ; b0 ff 4321 4470 out DX, AL ; ee 4322 call 02f 32h ; e8 c2 fa4471 call 02f9ah ; e8 c2 fa 4323 4472 test al, al ; 84 c0 4324 jne short 034 88h ; 75 144325 call 02f 78h ; e8 01 fb4473 jne short 034f0h ; 75 14 4474 call 02fe0h ; e8 01 fb 4326 4475 mov ax, word [bp+016h] ; 8b 46 16 4327 4476 xor ah, ah ; 30 e4 … … 4329 4478 mov word [bp+016h], ax ; 89 46 16 4330 4479 mov ax, 00080h ; b8 80 00 4331 jmp near 03 3e4h ; e9 5c ff4480 jmp near 0344ch ; e9 5c ff 4332 4481 mov dx, 003f4h ; ba f4 03 4333 4482 in AL, DX ; ec … … 4336 4485 and AL, strict byte 0c0h ; 24 c0 4337 4486 cmp AL, strict byte 0c0h ; 3c c0 4338 je short 03 4a2h ; 74 0e4487 je short 0350ah ; 74 0e 4339 4488 push 00275h ; 68 75 02 4340 4489 push 002a8h ; 68 a8 02 4341 4490 push strict byte 00007h ; 6a 07 4342 call 019 72h ; e8 d3 e44491 call 019dah ; e8 d3 e4 4343 4492 add sp, strict byte 00006h ; 83 c4 06 4344 4493 xor si, si ; 31 f6 4345 jmp short 03 4abh ; eb 054494 jmp short 03513h ; eb 05 4346 4495 cmp si, strict byte 00007h ; 83 fe 07 4347 jnl short 03 4c3h ; 7d 184496 jnl short 0352bh ; 7d 18 4348 4497 mov dx, 003f5h ; ba f5 03 4349 4498 in AL, DX ; ec … … 4354 4503 lea dx, [si+042h] ; 8d 54 42 4355 4504 mov ax, strict word 00040h ; b8 40 00 4356 call 016 5eh ; e8 9e e14505 call 016c6h ; e8 9e e1 4357 4506 inc si ; 46 4358 jmp short 03 4a6h ; eb e34507 jmp short 0350eh ; eb e3 4359 4508 test byte [bp-01ah], 0c0h ; f6 46 e6 c0 4360 je short 03 4dah ; 74 114509 je short 03542h ; 74 11 4361 4510 mov ax, word [bp+016h] ; 8b 46 16 4362 4511 xor ah, ah ; 30 e4 … … 4364 4513 mov word [bp+016h], ax ; 89 46 16 4365 4514 mov ax, strict word 00020h ; b8 20 00 4366 jmp near 03 3e4h ; e9 0a ff4515 jmp near 0344ch ; e9 0a ff 4367 4516 movzx ax, ch ; 0f b6 c5 4368 4517 sal ax, 009h ; c1 e0 09 … … 4382 4531 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 4383 4532 movzx ax, byte [bp-008h] ; 0f b6 46 f8 4384 call 02 ee4h ; e8 e2 f94533 call 02f4ch ; e8 e2 f9 4385 4534 mov byte [bp+017h], 000h ; c6 46 17 00 4386 jmp near 039 83h ; e9 7a 044535 jmp near 039ebh ; e9 7a 04 4387 4536 cmp byte [bp-006h], 003h ; 80 7e fa 03 4388 jne near 036 24h ; 0f 85 13 014537 jne near 0368ch ; 0f 85 13 01 4389 4538 mov ax, word [bp+006h] ; 8b 46 06 4390 4539 shr ax, 00ch ; c1 e8 0c … … 4396 4545 mov word [bp-012h], bx ; 89 5e ee 4397 4546 cmp dx, bx ; 39 da 4398 jbe short 035 2dh ; 76 024547 jbe short 03595h ; 76 02 4399 4548 db 0feh, 0c1h 4400 4549 ; inc cl ; fe c1 … … 4405 4554 add ax, bx ; 01 d8 4406 4555 cmp ax, word [bp-012h] ; 3b 46 ee 4407 jc near 03 3d6h ; 0f 82 96 fe4556 jc near 0343eh ; 0f 82 96 fe 4408 4557 mov AL, strict byte 006h ; b0 06 4409 4558 mov dx, strict word 0000ah ; ba 0a 00 … … 4437 4586 out DX, AL ; ee 4438 4587 movzx ax, byte [bp-008h] ; 0f b6 46 f8 4439 call 0 2fa3h ; e8 1e fa4588 call 0300bh ; e8 1e fa 4440 4589 mov AL, strict byte 0c5h ; b0 c5 4441 4590 mov dx, 003f5h ; ba f5 03 … … 4465 4614 mov AL, strict byte 0ffh ; b0 ff 4466 4615 out DX, AL ; ee 4467 call 02f 32h ; e8 70 f94616 call 02f9ah ; e8 70 f9 4468 4617 test al, al ; 84 c0 4469 je near 034 74h ; 0f 84 ac fe4618 je near 034dch ; 0f 84 ac fe 4470 4619 mov dx, 003f4h ; ba f4 03 4471 4620 in AL, DX ; ec … … 4474 4623 and AL, strict byte 0c0h ; 24 c0 4475 4624 cmp AL, strict byte 0c0h ; 3c c0 4476 je short 03 5e2h ; 74 0e4625 je short 0364ah ; 74 0e 4477 4626 push 00275h ; 68 75 02 4478 4627 push 002a8h ; 68 a8 02 4479 4628 push strict byte 00007h ; 6a 07 4480 call 019 72h ; e8 93 e34629 call 019dah ; e8 93 e3 4481 4630 add sp, strict byte 00006h ; 83 c4 06 4482 4631 xor si, si ; 31 f6 4483 jmp short 03 5ebh ; eb 054632 jmp short 03653h ; eb 05 4484 4633 cmp si, strict byte 00007h ; 83 fe 07 4485 jnl short 036 03h ; 7d 184634 jnl short 0366bh ; 7d 18 4486 4635 mov dx, 003f5h ; ba f5 03 4487 4636 in AL, DX ; ec … … 4492 4641 lea dx, [si+042h] ; 8d 54 42 4493 4642 mov ax, strict word 00040h ; b8 40 00 4494 call 016 5eh ; e8 5e e04643 call 016c6h ; e8 5e e0 4495 4644 inc si ; 46 4496 jmp short 03 5e6h ; eb e34645 jmp short 0364eh ; eb e3 4497 4646 test byte [bp-01ah], 0c0h ; f6 46 e6 c0 4498 je near 03 4f7h ; 0f 84 ec fe4647 je near 0355fh ; 0f 84 ec fe 4499 4648 test byte [bp-019h], 002h ; f6 46 e7 02 4500 je short 036 1dh ; 74 0c4649 je short 03685h ; 74 0c 4501 4650 mov word [bp+016h], 00300h ; c7 46 16 00 03 4502 4651 or byte [bp+01ch], 001h ; 80 4e 1c 01 4503 jmp near 03 2f6h ; e9 d9 fc4652 jmp near 0335eh ; e9 d9 fc 4504 4653 mov word [bp+016h], 00100h ; c7 46 16 00 01 4505 jmp short 036 16h ; eb f24654 jmp short 0367eh ; eb f2 4506 4655 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 4507 4656 movzx ax, byte [bp-008h] ; 0f b6 46 f8 4508 call 02 ee4h ; e8 b5 f84657 call 02f4ch ; e8 b5 f8 4509 4658 and byte [bp+01ch], 0feh ; 80 66 1c fe 4510 4659 mov byte [bp+017h], 000h ; c6 46 17 00 4511 jmp near 03 2f6h ; e9 bc fc4660 jmp near 0335eh ; e9 bc fc 4512 4661 mov ch, byte [bp+016h] ; 8a 6e 16 4513 4662 mov ax, word [bp+014h] ; 8b 46 14 … … 4520 4669 mov byte [bp-008h], bl ; 88 5e f8 4521 4670 cmp bl, 001h ; 80 fb 01 4522 jnbe short 036 6ch ; 77 124671 jnbe short 036d4h ; 77 12 4523 4672 cmp dl, 001h ; 80 fa 01 4524 jnbe short 036 6ch ; 77 0d4673 jnbe short 036d4h ; 77 0d 4525 4674 cmp AL, strict byte 04fh ; 3c 4f 4526 jnbe short 036 6ch ; 77 094675 jnbe short 036d4h ; 77 09 4527 4676 test ch, ch ; 84 ed 4528 je short 036 6ch ; 74 054677 je short 036d4h ; 74 05 4529 4678 cmp ch, 012h ; 80 fd 12 4530 jbe short 036 81h ; 76 154679 jbe short 036e9h ; 76 15 4531 4680 mov ax, word [bp+016h] ; 8b 46 16 4532 4681 xor ah, ah ; 30 e4 … … 4534 4683 mov word [bp+016h], ax ; 89 46 16 4535 4684 mov ax, strict word 00001h ; b8 01 00 4536 call 02 ecch ; e8 4f f84685 call 02f34h ; e8 4f f8 4537 4686 or byte [bp+01ch], 001h ; 80 4e 1c 01 4538 4687 movzx ax, byte [bp-008h] ; 0f b6 46 f8 4539 call 03 1dfh ; e8 57 fb4688 call 03247h ; e8 57 fb 4540 4689 test ax, ax ; 85 c0 4541 je near 03 2c4h ; 0f 84 36 fc4690 je near 0332ch ; 0f 84 36 fc 4542 4691 movzx dx, byte [bp-008h] ; 0f b6 56 f8 4543 4692 mov ax, dx ; 89 d0 4544 call 030 24h ; e8 8d f94693 call 0308ch ; e8 8d f9 4545 4694 test ax, ax ; 85 c0 4546 jne short 03 6a6h ; 75 0b4695 jne short 0370eh ; 75 0b 4547 4696 mov ax, dx ; 89 d0 4548 call 03 0efh ; e8 4f fa4697 call 03157h ; e8 4f fa 4549 4698 test ax, ax ; 85 c0 4550 je near 033 91h ; 0f 84 eb fc4699 je near 033f9h ; 0f 84 eb fc 4551 4700 mov ax, word [bp+006h] ; 8b 46 06 4552 4701 shr ax, 00ch ; c1 e8 0c … … 4558 4707 mov word [bp-012h], bx ; 89 5e ee 4559 4708 cmp dx, bx ; 39 da 4560 jbe short 03 6c2h ; 76 024709 jbe short 0372ah ; 76 02 4561 4710 db 0feh, 0c1h 4562 4711 ; inc cl ; fe c1 … … 4567 4716 add ax, bx ; 01 d8 4568 4717 cmp ax, word [bp-012h] ; 3b 46 ee 4569 jc near 03 3d6h ; 0f 82 01 fd4718 jc near 0343eh ; 0f 82 01 fd 4570 4719 mov AL, strict byte 006h ; b0 06 4571 4720 mov dx, strict word 0000ah ; ba 0a 00 … … 4599 4748 out DX, AL ; ee 4600 4749 movzx ax, byte [bp-008h] ; 0f b6 46 f8 4601 call 0 2fa3h ; e8 89 f84750 call 0300bh ; e8 89 f8 4602 4751 mov AL, strict byte 00fh ; b0 0f 4603 4752 mov dx, 003f5h ; ba f5 03 … … 4623 4772 mov AL, strict byte 0f6h ; b0 f6 4624 4773 out DX, AL ; ee 4625 call 02f 32h ; e8 e9 f74774 call 02f9ah ; e8 e9 f7 4626 4775 test al, al ; 84 c0 4627 jne short 037 53h ; 75 064628 call 02f 78h ; e8 28 f84629 jmp near 03 2c4h ; e9 71 fb4776 jne short 037bbh ; 75 06 4777 call 02fe0h ; e8 28 f8 4778 jmp near 0332ch ; e9 71 fb 4630 4779 mov dx, 003f4h ; ba f4 03 4631 4780 in AL, DX ; ec … … 4634 4783 and AL, strict byte 0c0h ; 24 c0 4635 4784 cmp AL, strict byte 0c0h ; 3c c0 4636 je short 037 6dh ; 74 0e4785 je short 037d5h ; 74 0e 4637 4786 push 00275h ; 68 75 02 4638 4787 push 002a8h ; 68 a8 02 4639 4788 push strict byte 00007h ; 6a 07 4640 call 019 72h ; e8 08 e24789 call 019dah ; e8 08 e2 4641 4790 add sp, strict byte 00006h ; 83 c4 06 4642 4791 xor si, si ; 31 f6 4643 jmp short 037 76h ; eb 054792 jmp short 037deh ; eb 05 4644 4793 cmp si, strict byte 00007h ; 83 fe 07 4645 jnl short 037 8eh ; 7d 184794 jnl short 037f6h ; 7d 18 4646 4795 mov dx, 003f5h ; ba f5 03 4647 4796 in AL, DX ; ec … … 4652 4801 lea dx, [si+042h] ; 8d 54 42 4653 4802 mov ax, strict word 00040h ; b8 40 00 4654 call 016 5eh ; e8 d3 de4803 call 016c6h ; e8 d3 de 4655 4804 inc si ; 46 4656 jmp short 037 71h ; eb e34805 jmp short 037d9h ; eb e3 4657 4806 test byte [bp-01ah], 0c0h ; f6 46 e6 c0 4658 je short 03 7aah ; 74 164807 je short 03812h ; 74 16 4659 4808 test byte [bp-019h], 002h ; f6 46 e7 02 4660 jne near 036 11h ; 0f 85 75 fe4809 jne near 03679h ; 0f 85 75 fe 4661 4810 push 00275h ; 68 75 02 4662 4811 push 002bch ; 68 bc 02 4663 4812 push strict byte 00007h ; 6a 07 4664 call 019 72h ; e8 cb e14813 call 019dah ; e8 cb e1 4665 4814 add sp, strict byte 00006h ; 83 c4 06 4666 4815 xor al, al ; 30 c0 4667 4816 mov byte [bp+017h], al ; 88 46 17 4668 4817 xor ah, ah ; 30 e4 4669 call 02 ecch ; e8 18 f74818 call 02f34h ; e8 18 f7 4670 4819 movzx ax, byte [bp-008h] ; 0f b6 46 f8 4671 4820 xor dx, dx ; 31 d2 4672 call 02 ee4h ; e8 27 f74673 jmp near 039 83h ; e9 c3 014821 call 02f4ch ; e8 27 f7 4822 jmp near 039ebh ; e9 c3 01 4674 4823 mov byte [bp-008h], al ; 88 46 f8 4675 4824 cmp AL, strict byte 001h ; 3c 01 4676 jbe short 03 7e4h ; 76 1d4825 jbe short 0384ch ; 76 1d 4677 4826 xor ax, ax ; 31 c0 4678 4827 mov word [bp+016h], ax ; 89 46 16 … … 4684 4833 movzx ax, ch ; 0f b6 c5 4685 4834 mov word [bp+012h], ax ; 89 46 12 4686 jmp near 039 01h ; e9 1d 014835 jmp near 03969h ; e9 1d 01 4687 4836 mov ax, strict word 00010h ; b8 10 00 4688 call 01 6ach ; e8 c2 de4837 call 01714h ; e8 c2 de 4689 4838 mov cl, al ; 88 c1 4690 4839 xor ch, ch ; 30 ed 4691 4840 test AL, strict byte 0f0h ; a8 f0 4692 je short 03 7f4h ; 74 024841 je short 0385ch ; 74 02 4693 4842 mov CH, strict byte 001h ; b5 01 4694 4843 test cl, 00fh ; f6 c1 0f 4695 je short 03 7fbh ; 74 024844 je short 03863h ; 74 02 4696 4845 db 0feh, 0c5h 4697 4846 ; inc ch ; fe c5 4698 4847 cmp byte [bp-008h], 000h ; 80 7e f8 00 4699 jne short 038 06h ; 75 054848 jne short 0386eh ; 75 05 4700 4849 shr cl, 004h ; c0 e9 04 4701 jmp short 038 09h ; eb 034850 jmp short 03871h ; eb 03 4702 4851 and cl, 00fh ; 80 e1 0f 4703 4852 mov byte [bp+011h], 000h ; c6 46 11 00 … … 4714 4863 mov word [bp+012h], ax ; 89 46 12 4715 4864 cmp cl, 003h ; 80 f9 03 4716 jc short 038 47h ; 72 154717 jbe short 038 6eh ; 76 3a4865 jc short 038afh ; 72 15 4866 jbe short 038d6h ; 76 3a 4718 4867 cmp cl, 005h ; 80 f9 05 4719 jc short 038 75h ; 72 3c4720 jbe short 038 7ch ; 76 414868 jc short 038ddh ; 72 3c 4869 jbe short 038e4h ; 76 41 4721 4870 cmp cl, 00fh ; 80 f9 0f 4722 je short 038 8ah ; 74 4a4871 je short 038f2h ; 74 4a 4723 4872 cmp cl, 00eh ; 80 f9 0e 4724 je short 038 83h ; 74 3e4725 jmp short 038 91h ; eb 4a4873 je short 038ebh ; 74 3e 4874 jmp short 038f9h ; eb 4a 4726 4875 cmp cl, 002h ; 80 f9 02 4727 je short 038 67h ; 74 1b4876 je short 038cfh ; 74 1b 4728 4877 cmp cl, 001h ; 80 f9 01 4729 je short 038 60h ; 74 0f4878 je short 038c8h ; 74 0f 4730 4879 test cl, cl ; 84 c9 4731 jne short 038 91h ; 75 3c4880 jne short 038f9h ; 75 3c 4732 4881 mov word [bp+014h], strict word 00000h ; c7 46 14 00 00 4733 4882 mov byte [bp+013h], 000h ; c6 46 13 00 4734 jmp short 03 89fh ; eb 3f4883 jmp short 03907h ; eb 3f 4735 4884 mov word [bp+014h], 02709h ; c7 46 14 09 27 4736 jmp short 03 89fh ; eb 384885 jmp short 03907h ; eb 38 4737 4886 mov word [bp+014h], 04f0fh ; c7 46 14 0f 4f 4738 jmp short 03 89fh ; eb 314887 jmp short 03907h ; eb 31 4739 4888 mov word [bp+014h], 04f09h ; c7 46 14 09 4f 4740 jmp short 03 89fh ; eb 2a4889 jmp short 03907h ; eb 2a 4741 4890 mov word [bp+014h], 04f12h ; c7 46 14 12 4f 4742 jmp short 03 89fh ; eb 234891 jmp short 03907h ; eb 23 4743 4892 mov word [bp+014h], 04f24h ; c7 46 14 24 4f 4744 jmp short 03 89fh ; eb 1c4893 jmp short 03907h ; eb 1c 4745 4894 mov word [bp+014h], 0fe3fh ; c7 46 14 3f fe 4746 jmp short 03 89fh ; eb 154895 jmp short 03907h ; eb 15 4747 4896 mov word [bp+014h], 0feffh ; c7 46 14 ff fe 4748 jmp short 03 89fh ; eb 0e4897 jmp short 03907h ; eb 0e 4749 4898 push 00275h ; 68 75 02 4750 4899 push 002cdh ; 68 cd 02 4751 4900 push strict byte 00007h ; 6a 07 4752 call 019 72h ; e8 d6 e04901 call 019dah ; e8 d6 e0 4753 4902 add sp, strict byte 00006h ; 83 c4 06 4754 4903 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 4755 4904 movzx ax, cl ; 0f b6 c1 4756 call 03 afah ; e8 50 024905 call 03b62h ; e8 50 02 4757 4906 mov word [bp+008h], ax ; 89 46 08 4758 jmp near 039 83h ; e9 d3 004907 jmp near 039ebh ; e9 d3 00 4759 4908 mov byte [bp-008h], al ; 88 46 f8 4760 4909 cmp AL, strict byte 001h ; 3c 01 4761 jbe short 03 8bch ; 76 054910 jbe short 03924h ; 76 05 4762 4911 mov word [bp+016h], si ; 89 76 16 4763 jmp short 039 01h ; eb 454912 jmp short 03969h ; eb 45 4764 4913 mov ax, strict word 00010h ; b8 10 00 4765 call 01 6ach ; e8 ea dd4914 call 01714h ; e8 ea dd 4766 4915 cmp byte [bp-008h], 000h ; 80 7e f8 00 4767 jne short 03 8cfh ; 75 074916 jne short 03937h ; 75 07 4768 4917 mov cl, al ; 88 c1 4769 4918 shr cl, 004h ; c0 e9 04 4770 jmp short 03 8d4h ; eb 054919 jmp short 0393ch ; eb 05 4771 4920 mov cl, al ; 88 c1 4772 4921 and cl, 00fh ; 80 e1 0f … … 4775 4924 xor dh, dh ; 30 f6 4776 4925 test cl, cl ; 84 c9 4777 je short 03 8eeh ; 74 0d4926 je short 03956h ; 74 0d 4778 4927 cmp cl, 001h ; 80 f9 01 4779 jbe short 03 8ebh ; 76 054928 jbe short 03953h ; 76 05 4780 4929 or dh, 002h ; 80 ce 02 4781 jmp short 03 8eeh ; eb 034930 jmp short 03956h ; eb 03 4782 4931 or dh, 001h ; 80 ce 01 4783 4932 mov word [bp+016h], dx ; 89 56 16 4784 jmp near 03 2f6h ; e9 02 fa4933 jmp near 0335eh ; e9 02 fa 4785 4934 cmp AL, strict byte 001h ; 3c 01 4786 jbe short 039 07h ; 76 0f4935 jbe short 0396fh ; 76 0f 4787 4936 mov word [bp+016h], si ; 89 76 16 4788 4937 mov ax, strict word 00001h ; b8 01 00 4789 call 02 ecch ; e8 cb f54938 call 02f34h ; e8 cb f5 4790 4939 mov word [bp+01ch], dx ; 89 56 1c 4791 jmp near 03 2f6h ; e9 ef f94940 jmp near 0335eh ; e9 ef f9 4792 4941 mov ax, word [bp+016h] ; 8b 46 16 4793 4942 xor ah, ah ; 30 e4 … … 4795 4944 mov word [bp+016h], ax ; 89 46 16 4796 4945 mov ax, strict word 00006h ; b8 06 00 4797 jmp near 03 2a2h ; e9 8a f94946 jmp near 0330ah ; e9 8a f9 4798 4947 mov byte [bp-008h], al ; 88 46 f8 4799 4948 mov bl, cl ; 88 cb 4800 4949 cmp AL, strict byte 001h ; 3c 01 4801 jnbe short 03 8f8h ; 77 d74950 jnbe short 03960h ; 77 d7 4802 4951 movzx ax, byte [bp-008h] ; 0f b6 46 f8 4803 call 03 1dfh ; e8 b7 f84952 call 03247h ; e8 b7 f8 4804 4953 test ax, ax ; 85 c0 4805 je near 03 2c4h ; 0f 84 96 f94954 je near 0332ch ; 0f 84 96 f9 4806 4955 cmp byte [bp-008h], 000h ; 80 7e f8 00 4807 4956 db 00fh, 095h, 0c0h … … 4811 4960 mov word [bp-012h], dx ; 89 56 ee 4812 4961 mov ax, strict word 00040h ; b8 40 00 4813 call 016 50h ; e8 0b dd4962 call 016b8h ; e8 0b dd 4814 4963 and AL, strict byte 00fh ; 24 0f 4815 4964 cmp bl, 002h ; 80 fb 02 4816 jc short 039 5bh ; 72 0f4817 jbe short 039 67h ; 76 194965 jc short 039c3h ; 72 0f 4966 jbe short 039cfh ; 76 19 4818 4967 cmp bl, 004h ; 80 fb 04 4819 je short 039 63h ; 74 104968 je short 039cbh ; 74 10 4820 4969 cmp bl, 003h ; 80 fb 03 4821 je short 039 6bh ; 74 134822 jmp near 032 94h ; e9 39 f94970 je short 039d3h ; 74 13 4971 jmp near 032fch ; e9 39 f9 4823 4972 cmp bl, 001h ; 80 fb 01 4824 je short 039 63h ; 74 034825 jmp near 032 94h ; e9 31 f94973 je short 039cbh ; 74 03 4974 jmp near 032fch ; e9 31 f9 4826 4975 or AL, strict byte 090h ; 0c 90 4827 jmp short 039 6dh ; eb 064976 jmp short 039d5h ; eb 06 4828 4977 or AL, strict byte 070h ; 0c 70 4829 jmp short 039 6dh ; eb 024978 jmp short 039d5h ; eb 02 4830 4979 or AL, strict byte 010h ; 0c 10 4831 4980 movzx bx, al ; 0f b6 d8 4832 4981 mov dx, word [bp-012h] ; 8b 56 ee 4833 4982 mov ax, strict word 00040h ; b8 40 00 4834 call 016 5eh ; e8 e5 dc4983 call 016c6h ; e8 e5 dc 4835 4984 xor al, al ; 30 c0 4836 4985 mov byte [bp+017h], al ; 88 46 17 4837 4986 xor ah, ah ; 30 e4 4838 call 02 ecch ; e8 49 f54987 call 02f34h ; e8 49 f5 4839 4988 and byte [bp+01ch], 0feh ; 80 66 1c fe 4840 jmp near 03 2f6h ; e9 6c f94989 jmp near 0335eh ; e9 6c f9 4841 4990 mov byte [bp-008h], al ; 88 46 f8 4842 4991 mov ch, ah ; 88 e5 … … 4848 4997 mov byte [bp-00ch], bl ; 88 5e f4 4849 4998 cmp AL, strict byte 001h ; 3c 01 4850 jnbe near 03 8f8h ; 0f 87 51 ff4999 jnbe near 03960h ; 0f 87 51 ff 4851 5000 movzx ax, byte [bp-008h] ; 0f b6 46 f8 4852 call 03 1dfh ; e8 31 f85001 call 03247h ; e8 31 f8 4853 5002 test ax, ax ; 85 c0 4854 je near 03 2c4h ; 0f 84 10 f95003 je near 0332ch ; 0f 84 10 f9 4855 5004 movzx dx, byte [bp-008h] ; 0f b6 56 f8 4856 5005 mov ax, dx ; 89 d0 4857 call 030 24h ; e8 67 f65006 call 0308ch ; e8 67 f6 4858 5007 test ax, ax ; 85 c0 4859 jne short 03 9dbh ; 75 1a5008 jne short 03a43h ; 75 1a 4860 5009 mov ax, dx ; 89 d0 4861 call 03 0efh ; e8 29 f75010 call 03157h ; e8 29 f7 4862 5011 test ax, ax ; 85 c0 4863 jne short 03 9dbh ; 75 115012 jne short 03a43h ; 75 11 4864 5013 mov ax, word [bp+016h] ; 8b 46 16 4865 5014 xor ah, ah ; 30 e4 … … 4867 5016 mov word [bp+016h], ax ; 89 46 16 4868 5017 mov ax, strict word 0000ch ; b8 0c 00 4869 jmp near 03 2a2h ; e9 c7 f85018 jmp near 0330ah ; e9 c7 f8 4870 5019 mov ax, strict word 00010h ; b8 10 00 4871 call 01 6ach ; e8 cb dc5020 call 01714h ; e8 cb dc 4872 5021 cmp byte [bp-008h], 000h ; 80 7e f8 00 4873 jne short 03 9eeh ; 75 075022 jne short 03a56h ; 75 07 4874 5023 mov cl, al ; 88 c1 4875 5024 shr cl, 004h ; c0 e9 04 4876 jmp short 03 9f3h ; eb 055025 jmp short 03a5bh ; eb 05 4877 5026 mov cl, al ; 88 c1 4878 5027 and cl, 00fh ; 80 e1 0f … … 4884 5033 mov word [bp-012h], dx ; 89 56 ee 4885 5034 mov ax, strict word 00040h ; b8 40 00 4886 call 016 50h ; e8 46 dc5035 call 016b8h ; e8 46 dc 4887 5036 and AL, strict byte 00fh ; 24 0f 4888 5037 cmp cl, 003h ; 80 f9 03 4889 jc short 03a 2fh ; 72 1e5038 jc short 03a97h ; 72 1e 4890 5039 mov dl, al ; 88 c2 4891 5040 or dl, 090h ; 80 ca 90 4892 5041 cmp cl, 003h ; 80 f9 03 4893 jbe short 03a 6dh ; 76 525042 jbe short 03ad5h ; 76 52 4894 5043 mov ah, al ; 88 c4 4895 5044 or ah, 010h ; 80 cc 10 4896 5045 cmp cl, 005h ; 80 f9 05 4897 je near 03a 92h ; 0f 84 6b 005046 je near 03afah ; 0f 84 6b 00 4898 5047 cmp cl, 004h ; 80 f9 04 4899 je short 03a 7ch ; 74 504900 jmp near 03 aadh ; e9 7e 005048 je short 03ae4h ; 74 50 5049 jmp near 03b15h ; e9 7e 00 4901 5050 cmp cl, 002h ; 80 f9 02 4902 je short 03a 4fh ; 74 1b5051 je short 03ab7h ; 74 1b 4903 5052 cmp cl, 001h ; 80 f9 01 4904 jne near 03 aadh ; 0f 85 72 005053 jne near 03b15h ; 0f 85 72 00 4905 5054 cmp byte [bp-00ch], 027h ; 80 7e f4 27 4906 jne near 03 aadh ; 0f 85 6a 005055 jne near 03b15h ; 0f 85 6a 00 4907 5056 cmp ch, 009h ; 80 fd 09 4908 jne near 03 aadh ; 0f 85 63 005057 jne near 03b15h ; 0f 85 63 00 4909 5058 or AL, strict byte 090h ; 0c 90 4910 jmp near 03 aadh ; e9 5e 005059 jmp near 03b15h ; e9 5e 00 4911 5060 cmp byte [bp-00ch], 027h ; 80 7e f4 27 4912 jne short 03a 5eh ; 75 095061 jne short 03ac6h ; 75 09 4913 5062 cmp ch, 009h ; 80 fd 09 4914 jne short 03a 5eh ; 75 045063 jne short 03ac6h ; 75 04 4915 5064 or AL, strict byte 070h ; 0c 70 4916 jmp short 03 aadh ; eb 4f5065 jmp short 03b15h ; eb 4f 4917 5066 cmp byte [bp-00ch], 04fh ; 80 7e f4 4f 4918 jne short 03 aadh ; 75 495067 jne short 03b15h ; 75 49 4919 5068 cmp ch, 00fh ; 80 fd 0f 4920 jne short 03 aadh ; 75 445069 jne short 03b15h ; 75 44 4921 5070 or AL, strict byte 010h ; 0c 10 4922 jmp short 03 aadh ; eb 405071 jmp short 03b15h ; eb 40 4923 5072 cmp byte [bp-00ch], 04fh ; 80 7e f4 4f 4924 jne short 03 aadh ; 75 3a5073 jne short 03b15h ; 75 3a 4925 5074 cmp ch, 009h ; 80 fd 09 4926 jne short 03 aadh ; 75 355075 jne short 03b15h ; 75 35 4927 5076 mov al, dl ; 88 d0 4928 jmp short 03 aadh ; eb 315077 jmp short 03b15h ; eb 31 4929 5078 cmp byte [bp-00ch], 04fh ; 80 7e f4 4f 4930 jne short 03 aadh ; 75 2b5079 jne short 03b15h ; 75 2b 4931 5080 cmp ch, 009h ; 80 fd 09 4932 jne short 03a 89h ; 75 024933 jmp short 03a 78h ; eb ef5081 jne short 03af1h ; 75 02 5082 jmp short 03ae0h ; eb ef 4934 5083 cmp ch, 012h ; 80 fd 12 4935 jne short 03 aadh ; 75 1f5084 jne short 03b15h ; 75 1f 4936 5085 mov al, ah ; 88 e0 4937 jmp short 03 aadh ; eb 1b5086 jmp short 03b15h ; eb 1b 4938 5087 cmp byte [bp-00ch], 04fh ; 80 7e f4 4f 4939 jne short 03 aadh ; 75 155088 jne short 03b15h ; 75 15 4940 5089 cmp ch, 009h ; 80 fd 09 4941 jne short 03 a9fh ; 75 024942 jmp short 03a 78h ; eb d95090 jne short 03b07h ; 75 02 5091 jmp short 03ae0h ; eb d9 4943 5092 cmp ch, 012h ; 80 fd 12 4944 jne short 03 aa6h ; 75 024945 jmp short 03a 8eh ; eb e85093 jne short 03b0eh ; 75 02 5094 jmp short 03af6h ; eb e8 4946 5095 cmp ch, 024h ; 80 fd 24 4947 jne short 03 aadh ; 75 025096 jne short 03b15h ; 75 02 4948 5097 or AL, strict byte 0d0h ; 0c d0 4949 5098 movzx dx, al ; 0f b6 d0 4950 5099 sar dx, 004h ; c1 fa 04 4951 5100 test dl, 001h ; f6 c2 01 4952 je near 03 9cah ; 0f 84 10 ff5101 je near 03a32h ; 0f 84 10 ff 4953 5102 movzx bx, al ; 0f b6 d8 4954 5103 mov dx, word [bp-012h] ; 8b 56 ee 4955 5104 mov ax, strict word 00040h ; b8 40 00 4956 call 016 5eh ; e8 98 db5105 call 016c6h ; e8 98 db 4957 5106 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 4958 5107 movzx ax, cl ; 0f b6 c1 4959 call 03 afah ; e8 29 005108 call 03b62h ; e8 29 00 4960 5109 mov word [bp+008h], ax ; 89 46 08 4961 jmp near 039 79h ; e9 a2 fe5110 jmp near 039e1h ; e9 a2 fe 4962 5111 mov bx, 00da0h ; bb a0 0d 4963 5112 mov cx, ds ; 8c d9 4964 5113 mov ax, strict word 00004h ; b8 04 00 4965 call 019 31h ; e8 4f de5114 call 01999h ; e8 4f de 4966 5115 mov ax, word [bp+016h] ; 8b 46 16 4967 5116 shr ax, 008h ; c1 e8 08 … … 4970 5119 push 002e2h ; 68 e2 02 4971 5120 push strict byte 00004h ; 6a 04 4972 call 019 72h ; e8 7e de5121 call 019dah ; e8 7e de 4973 5122 add sp, strict byte 00008h ; 83 c4 08 4974 jmp near 032 94h ; e9 9a f74975 get_floppy_dpt_: ; 0xf3 afaLB 0x2f5123 jmp near 032fch ; e9 9a f7 5124 get_floppy_dpt_: ; 0xf3b62 LB 0x2f 4976 5125 push bx ; 53 4977 5126 push dx ; 52 … … 4980 5129 mov dl, al ; 88 c2 4981 5130 xor ax, ax ; 31 c0 4982 jmp short 03b 0bh ; eb 065131 jmp short 03b73h ; eb 06 4983 5132 inc ax ; 40 4984 5133 cmp ax, strict word 00007h ; 3d 07 00 4985 jnc short 03b 22h ; 73 175134 jnc short 03b8ah ; 73 17 4986 5135 mov bx, ax ; 89 c3 4987 5136 add bx, ax ; 01 c3 4988 5137 cmp dl, byte [word bx+0005bh] ; 3a 97 5b 00 4989 jne short 03b 05h ; 75 f05138 jne short 03b6dh ; 75 f0 4990 5139 movzx ax, byte [word bx+0005ch] ; 0f b6 87 5c 00 4991 5140 imul ax, ax, strict byte 0000dh ; 6b c0 0d 4992 5141 add ax, strict word 00000h ; 05 00 00 4993 jmp short 03b 25h ; eb 035142 jmp short 03b8dh ; eb 03 4994 5143 mov ax, strict word 00041h ; b8 41 00 4995 5144 pop bp ; 5d … … 4997 5146 pop bx ; 5b 4998 5147 retn ; c3 4999 dummy_soft_reset_: ; 0xf3b 29LB 0x75148 dummy_soft_reset_: ; 0xf3b91 LB 0x7 5000 5149 push bp ; 55 5001 5150 mov bp, sp ; 89 e5 … … 5003 5152 pop bp ; 5d 5004 5153 retn ; c3 5005 _cdemu_init: ; 0xf3b 30LB 0x185154 _cdemu_init: ; 0xf3b98 LB 0x18 5006 5155 push bp ; 55 5007 5156 mov bp, sp ; 89 e5 5008 5157 mov dx, strict word 0000eh ; ba 0e 00 5009 5158 mov ax, strict word 00040h ; b8 40 00 5010 call 016 6ch ; e8 30 db5159 call 016d4h ; e8 30 db 5011 5160 xor bx, bx ; 31 db 5012 5161 mov dx, 00366h ; ba 66 03 5013 call 016 5eh ; e8 1a db5162 call 016c6h ; e8 1a db 5014 5163 mov sp, bp ; 89 ec 5015 5164 pop bp ; 5d 5016 5165 retn ; c3 5017 _cdemu_isactive: ; 0xf3b 48LB 0x165166 _cdemu_isactive: ; 0xf3bb0 LB 0x16 5018 5167 push bp ; 55 5019 5168 mov bp, sp ; 89 e5 5020 5169 mov dx, strict word 0000eh ; ba 0e 00 5021 5170 mov ax, strict word 00040h ; b8 40 00 5022 call 016 6ch ; e8 18 db5171 call 016d4h ; e8 18 db 5023 5172 mov dx, 00366h ; ba 66 03 5024 call 016 50h ; e8 f6 da5173 call 016b8h ; e8 f6 da 5025 5174 mov sp, bp ; 89 ec 5026 5175 pop bp ; 5d 5027 5176 retn ; c3 5028 _cdemu_emulated_drive: ; 0xf3b 5eLB 0x165177 _cdemu_emulated_drive: ; 0xf3bc6 LB 0x16 5029 5178 push bp ; 55 5030 5179 mov bp, sp ; 89 e5 5031 5180 mov dx, strict word 0000eh ; ba 0e 00 5032 5181 mov ax, strict word 00040h ; b8 40 00 5033 call 016 6ch ; e8 02 db5182 call 016d4h ; e8 02 db 5034 5183 mov dx, 00368h ; ba 68 03 5035 call 016 50h ; e8 e0 da5184 call 016b8h ; e8 e0 da 5036 5185 mov sp, bp ; 89 ec 5037 5186 pop bp ; 5d 5038 5187 retn ; c3 5039 _int13_eltorito: ; 0xf3b 74LB 0x1895188 _int13_eltorito: ; 0xf3bdc LB 0x189 5040 5189 push bp ; 55 5041 5190 mov bp, sp ; 89 e5 … … 5044 5193 mov dx, strict word 0000eh ; ba 0e 00 5045 5194 mov ax, strict word 00040h ; b8 40 00 5046 call 016 6ch ; e8 ea da5195 call 016d4h ; e8 ea da 5047 5196 mov si, 00366h ; be 66 03 5048 5197 mov di, ax ; 89 c7 … … 5050 5199 shr ax, 008h ; c1 e8 08 5051 5200 cmp ax, strict word 0004bh ; 3d 4b 00 5052 jc short 03 b9ch ; 72 0a5053 jbe short 03 bc2h ; 76 2e5201 jc short 03c04h ; 72 0a 5202 jbe short 03c2ah ; 76 2e 5054 5203 cmp ax, strict word 0004dh ; 3d 4d 00 5055 jbe short 03 ba3h ; 76 0a5056 jmp near 03 cc1h ; e9 25 015204 jbe short 03c0bh ; 76 0a 5205 jmp near 03d29h ; e9 25 01 5057 5206 cmp ax, strict word 0004ah ; 3d 4a 00 5058 jne near 03 cc1h ; 0f 85 1e 015207 jne near 03d29h ; 0f 85 1e 01 5059 5208 mov bx, 00da0h ; bb a0 0d 5060 5209 mov cx, ds ; 8c d9 5061 5210 mov ax, strict word 00004h ; b8 04 00 5062 call 019 31h ; e8 83 dd5211 call 01999h ; e8 83 dd 5063 5212 push word [bp+016h] ; ff 76 16 5064 5213 push 002fch ; 68 fc 02 5065 5214 push 0030bh ; 68 0b 03 5066 5215 push strict byte 00004h ; 6a 04 5067 call 019 72h ; e8 b6 dd5216 call 019dah ; e8 b6 dd 5068 5217 add sp, strict byte 00008h ; 83 c4 08 5069 jmp near 03 cdch ; e9 1a 015218 jmp near 03d44h ; e9 1a 01 5070 5219 mov dx, word [bp+00ah] ; 8b 56 0a 5071 5220 mov ax, word [bp+004h] ; 8b 46 04 5072 5221 mov bx, strict word 00013h ; bb 13 00 5073 call 016 5eh ; e8 90 da5222 call 016c6h ; e8 90 da 5074 5223 mov es, di ; 8e c7 5075 5224 movzx bx, byte [es:si+001h] ; 26 0f b6 5c 01 … … 5077 5226 inc dx ; 42 5078 5227 mov ax, word [bp+004h] ; 8b 46 04 5079 call 016 5eh ; e8 7f da5228 call 016c6h ; e8 7f da 5080 5229 mov es, di ; 8e c7 5081 5230 movzx bx, byte [es:si+002h] ; 26 0f b6 5c 02 … … 5084 5233 inc dx ; 42 5085 5234 mov ax, word [bp+004h] ; 8b 46 04 5086 call 016 5eh ; e8 6d da5235 call 016c6h ; e8 6d da 5087 5236 mov es, di ; 8e c7 5088 5237 movzx bx, byte [es:si+003h] ; 26 0f b6 5c 03 … … 5090 5239 add dx, strict byte 00003h ; 83 c2 03 5091 5240 mov ax, word [bp+004h] ; 8b 46 04 5092 call 016 5eh ; e8 5a da5241 call 016c6h ; e8 5a da 5093 5242 mov es, di ; 8e c7 5094 5243 mov bx, word [es:si+008h] ; 26 8b 5c 08 … … 5097 5246 add dx, strict byte 00004h ; 83 c2 04 5098 5247 mov ax, word [bp+004h] ; 8b 46 04 5099 call 01 69ah ; e8 80 da5248 call 01702h ; e8 80 da 5100 5249 mov es, di ; 8e c7 5101 5250 mov bx, word [es:si+004h] ; 26 8b 5c 04 … … 5103 5252 add dx, strict byte 00008h ; 83 c2 08 5104 5253 mov ax, word [bp+004h] ; 8b 46 04 5105 call 016 7ah ; e8 4e da5254 call 016e2h ; e8 4e da 5106 5255 mov es, di ; 8e c7 5107 5256 mov bx, word [es:si+006h] ; 26 8b 5c 06 … … 5109 5258 add dx, strict byte 0000ah ; 83 c2 0a 5110 5259 mov ax, word [bp+004h] ; 8b 46 04 5111 call 016 7ah ; e8 3c da5260 call 016e2h ; e8 3c da 5112 5261 mov es, di ; 8e c7 5113 5262 mov bx, word [es:si+00ch] ; 26 8b 5c 0c … … 5115 5264 add dx, strict byte 0000ch ; 83 c2 0c 5116 5265 mov ax, word [bp+004h] ; 8b 46 04 5117 call 016 7ah ; e8 2a da5266 call 016e2h ; e8 2a da 5118 5267 mov es, di ; 8e c7 5119 5268 mov bx, word [es:si+00eh] ; 26 8b 5c 0e … … 5121 5270 add dx, strict byte 0000eh ; 83 c2 0e 5122 5271 mov ax, word [bp+004h] ; 8b 46 04 5123 call 016 7ah ; e8 18 da5272 call 016e2h ; e8 18 da 5124 5273 mov es, di ; 8e c7 5125 5274 movzx bx, byte [es:si+012h] ; 26 0f b6 5c 12 … … 5127 5276 add dx, strict byte 00010h ; 83 c2 10 5128 5277 mov ax, word [bp+004h] ; 8b 46 04 5129 call 016 5eh ; e8 e9 d95278 call 016c6h ; e8 e9 d9 5130 5279 mov es, di ; 8e c7 5131 5280 movzx bx, byte [es:si+014h] ; 26 0f b6 5c 14 … … 5133 5282 add dx, strict byte 00011h ; 83 c2 11 5134 5283 mov ax, word [bp+004h] ; 8b 46 04 5135 call 016 5eh ; e8 d6 d95284 call 016c6h ; e8 d6 d9 5136 5285 mov es, di ; 8e c7 5137 5286 movzx bx, byte [es:si+010h] ; 26 0f b6 5c 10 … … 5139 5288 add dx, strict byte 00012h ; 83 c2 12 5140 5289 mov ax, word [bp+004h] ; 8b 46 04 5141 call 016 5eh ; e8 c3 d95290 call 016c6h ; e8 c3 d9 5142 5291 test byte [bp+016h], 0ffh ; f6 46 16 ff 5143 jne short 03 ca7h ; 75 065292 jne short 03d0fh ; 75 06 5144 5293 mov es, di ; 8e c7 5145 5294 mov byte [es:si], 000h ; 26 c6 04 00 … … 5148 5297 mov dx, strict word 00074h ; ba 74 00 5149 5298 mov ax, strict word 00040h ; b8 40 00 5150 call 016 5eh ; e8 a8 d95299 call 016c6h ; e8 a8 d9 5151 5300 and byte [bp+01ch], 0feh ; 80 66 1c fe 5152 5301 lea sp, [bp-004h] ; 8d 66 fc … … 5158 5307 mov cx, ds ; 8c d9 5159 5308 mov ax, strict word 00004h ; b8 04 00 5160 call 019 31h ; e8 65 dc5309 call 01999h ; e8 65 dc 5161 5310 mov ax, word [bp+016h] ; 8b 46 16 5162 5311 shr ax, 008h ; c1 e8 08 … … 5164 5313 push 002fch ; 68 fc 02 5165 5314 push 00333h ; 68 33 03 5166 jmp near 03 bb7h ; e9 db fe5315 jmp near 03c1fh ; e9 db fe 5167 5316 mov ax, word [bp+016h] ; 8b 46 16 5168 5317 xor ah, ah ; 30 e4 … … 5174 5323 mov dx, strict word 00074h ; ba 74 00 5175 5324 mov ax, strict word 00040h ; b8 40 00 5176 call 016 5eh ; e8 67 d95325 call 016c6h ; e8 67 d9 5177 5326 or byte [bp+01ch], 001h ; 80 4e 1c 01 5178 jmp short 03 cbah ; eb bd5179 device_is_cdrom_: ; 0xf3 cfdLB 0x355327 jmp short 03d22h ; eb bd 5328 device_is_cdrom_: ; 0xf3d65 LB 0x35 5180 5329 push bp ; 55 5181 5330 mov bp, sp ; 89 e5 … … 5185 5334 mov dx, strict word 0000eh ; ba 0e 00 5186 5335 mov ax, strict word 00040h ; b8 40 00 5187 call 016 6ch ; e8 5f d95336 call 016d4h ; e8 5f d9 5188 5337 cmp bl, 010h ; 80 fb 10 5189 jc short 03d 16h ; 72 045338 jc short 03d7eh ; 72 04 5190 5339 xor ax, ax ; 31 c0 5191 jmp short 03d 2bh ; eb 155340 jmp short 03d93h ; eb 15 5192 5341 xor bh, bh ; 30 ff 5193 5342 imul bx, bx, strict byte 0001ch ; 6b db 1c … … 5195 5344 add bx, 00122h ; 81 c3 22 01 5196 5345 cmp byte [es:bx+023h], 005h ; 26 80 7f 23 05 5197 jne short 03d 12h ; 75 ea5346 jne short 03d7ah ; 75 ea 5198 5347 mov ax, strict word 00001h ; b8 01 00 5199 5348 lea sp, [bp-004h] ; 8d 66 fc … … 5202 5351 pop bp ; 5d 5203 5352 retn ; c3 5204 cdrom_boot_: ; 0xf3d 32LB 0x4165353 cdrom_boot_: ; 0xf3d9a LB 0x416 5205 5354 push bp ; 55 5206 5355 mov bp, sp ; 89 e5 … … 5213 5362 mov dx, strict word 0000eh ; ba 0e 00 5214 5363 mov ax, strict word 00040h ; b8 40 00 5215 call 016 6ch ; e8 25 d95364 call 016d4h ; e8 25 d9 5216 5365 mov word [bp-018h], ax ; 89 46 e8 5217 5366 mov si, 00366h ; be 66 03 … … 5220 5369 mov word [bp-012h], ax ; 89 46 ee 5221 5370 mov byte [bp-00ch], 000h ; c6 46 f4 00 5222 jmp short 03d 67h ; eb 095371 jmp short 03dcfh ; eb 09 5223 5372 inc byte [bp-00ch] ; fe 46 f4 5224 5373 cmp byte [bp-00ch], 010h ; 80 7e f4 10 5225 jnc short 03d 72h ; 73 0b5374 jnc short 03ddah ; 73 0b 5226 5375 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 5227 call 03 cfdh ; e8 8f ff5376 call 03d65h ; e8 8f ff 5228 5377 test ax, ax ; 85 c0 5229 je short 03d 5eh ; 74 ec5378 je short 03dc6h ; 74 ec 5230 5379 cmp byte [bp-00ch], 010h ; 80 7e f4 10 5231 jc short 03d 7eh ; 72 065380 jc short 03de6h ; 72 06 5232 5381 mov ax, strict word 00002h ; b8 02 00 5233 jmp near 04 0e5h ; e9 67 035382 jmp near 0414dh ; e9 67 03 5234 5383 mov cx, strict word 0000ch ; b9 0c 00 5235 5384 xor bx, bx ; 31 db 5236 5385 mov dx, ss ; 8c d2 5237 5386 lea ax, [bp-026h] ; 8d 46 da 5238 call 09 e7ah ; e8 ef 605387 call 09f20h ; e8 2d 61 5239 5388 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 5240 5389 mov ax, strict word 00011h ; b8 11 00 … … 5252 5401 ; mov dword [es:bx+00eh], strict dword 008000001h ; 66 26 c7 47 0e 01 00 00 08 5253 5402 mov byte [bp-00eh], 000h ; c6 46 f2 00 5254 jmp short 03 dc3h ; eb 095403 jmp short 03e2bh ; eb 09 5255 5404 inc byte [bp-00eh] ; fe 46 f2 5256 5405 cmp byte [bp-00eh], 004h ; 80 7e f2 04 5257 jnbe short 03 dfah ; 77 375406 jnbe short 03e62h ; 77 37 5258 5407 movzx di, byte [bp-00ch] ; 0f b6 7e f4 5259 5408 imul di, di, strict byte 0001ch ; 6b ff 1c … … 5275 5424 call word [word di+0006ah] ; ff 95 6a 00 5276 5425 test ax, ax ; 85 c0 5277 jne short 03 dbah ; 75 c05426 jne short 03e22h ; 75 c0 5278 5427 test ax, ax ; 85 c0 5279 je short 03e 04h ; 74 065428 je short 03e6ch ; 74 06 5280 5429 mov ax, strict word 00003h ; b8 03 00 5281 jmp near 04 0e5h ; e9 e1 025430 jmp near 0414dh ; e9 e1 02 5282 5431 cmp byte [bp-00826h], 000h ; 80 be da f7 00 5283 je short 03e 11h ; 74 065432 je short 03e79h ; 74 06 5284 5433 mov ax, strict word 00004h ; b8 04 00 5285 jmp near 04 0e5h ; e9 d4 025434 jmp near 0414dh ; e9 d4 02 5286 5435 xor di, di ; 31 ff 5287 jmp short 03e 1bh ; eb 065436 jmp short 03e83h ; eb 06 5288 5437 inc di ; 47 5289 5438 cmp di, strict byte 00005h ; 83 ff 05 5290 jnc short 03e 2bh ; 73 105439 jnc short 03e93h ; 73 10 5291 5440 mov al, byte [bp+di-00825h] ; 8a 83 db f7 5292 5441 cmp al, byte [di+00da8h] ; 3a 85 a8 0d 5293 je short 03e 15h ; 74 f05442 je short 03e7dh ; 74 f0 5294 5443 mov ax, strict word 00005h ; b8 05 00 5295 jmp near 04 0e5h ; e9 ba 025444 jmp near 0414dh ; e9 ba 02 5296 5445 xor di, di ; 31 ff 5297 jmp short 03e 35h ; eb 065446 jmp short 03e9dh ; eb 06 5298 5447 inc di ; 47 5299 5448 cmp di, strict byte 00017h ; 83 ff 17 5300 jnc short 03e 45h ; 73 105449 jnc short 03eadh ; 73 10 5301 5450 mov al, byte [bp+di-0081fh] ; 8a 83 e1 f7 5302 5451 cmp al, byte [di+00daeh] ; 3a 85 ae 0d 5303 je short 03e 2fh ; 74 f05452 je short 03e97h ; 74 f0 5304 5453 mov ax, strict word 00006h ; b8 06 00 5305 jmp near 04 0e5h ; e9 a0 025454 jmp near 0414dh ; e9 a0 02 5306 5455 mov ax, word [bp-007dfh] ; 8b 86 21 f8 5307 5456 mov dx, word [bp-007ddh] ; 8b 96 23 f8 … … 5334 5483 call word [word di+0006ah] ; ff 95 6a 00 5335 5484 test ax, ax ; 85 c0 5336 je short 03 ea2h ; 74 065485 je short 03f0ah ; 74 06 5337 5486 mov ax, strict word 00007h ; b8 07 00 5338 jmp near 04 0e5h ; e9 43 025487 jmp near 0414dh ; e9 43 02 5339 5488 cmp byte [bp-00826h], 001h ; 80 be da f7 01 5340 je short 03 eafh ; 74 065489 je short 03f17h ; 74 06 5341 5490 mov ax, strict word 00008h ; b8 08 00 5342 jmp near 04 0e5h ; e9 36 025491 jmp near 0414dh ; e9 36 02 5343 5492 cmp byte [bp-00825h], 000h ; 80 be db f7 00 5344 je short 03 ebch ; 74 065493 je short 03f24h ; 74 06 5345 5494 mov ax, strict word 00009h ; b8 09 00 5346 jmp near 04 0e5h ; e9 29 025495 jmp near 0414dh ; e9 29 02 5347 5496 cmp byte [bp-00808h], 055h ; 80 be f8 f7 55 5348 je short 03 ec9h ; 74 065497 je short 03f31h ; 74 06 5349 5498 mov ax, strict word 0000ah ; b8 0a 00 5350 jmp near 04 0e5h ; e9 1c 025499 jmp near 0414dh ; e9 1c 02 5351 5500 cmp byte [bp-00807h], 0aah ; 80 be f9 f7 aa 5352 jne short 03 ec3h ; 75 f35501 jne short 03f2bh ; 75 f3 5353 5502 cmp byte [bp-00806h], 088h ; 80 be fa f7 88 5354 je short 03 eddh ; 74 065503 je short 03f45h ; 74 06 5355 5504 mov ax, strict word 0000bh ; b8 0b 00 5356 jmp near 04 0e5h ; e9 08 025505 jmp near 0414dh ; e9 08 02 5357 5506 mov al, byte [bp-00805h] ; 8a 86 fb f7 5358 5507 mov es, [bp-010h] ; 8e 46 f0 5359 5508 mov byte [es:si+001h], al ; 26 88 44 01 5360 5509 cmp byte [bp-00805h], 000h ; 80 be fb f7 00 5361 jne short 03 ef6h ; 75 075510 jne short 03f5eh ; 75 07 5362 5511 mov byte [es:si+002h], 0e0h ; 26 c6 44 02 e0 5363 jmp short 03f 09h ; eb 135512 jmp short 03f71h ; eb 13 5364 5513 cmp byte [bp-00805h], 004h ; 80 be fb f7 04 5365 jnc short 03f 04h ; 73 075514 jnc short 03f6ch ; 73 07 5366 5515 mov byte [es:si+002h], 000h ; 26 c6 44 02 00 5367 jmp short 03f 09h ; eb 055516 jmp short 03f71h ; eb 05 5368 5517 mov byte [es:si+002h], 080h ; 26 c6 44 02 80 5369 5518 movzx di, byte [bp-00ch] ; 0f b6 7e f4 … … 5383 5532 mov word [bp-016h], ax ; 89 46 ea 5384 5533 test ax, ax ; 85 c0 5385 jne short 03f 37h ; 75 055534 jne short 03f9fh ; 75 05 5386 5535 mov word [bp-016h], 007c0h ; c7 46 ea c0 07 5387 5536 mov ax, word [bp-016h] ; 8b 46 ea … … 5392 5541 mov word [es:si+00eh], di ; 26 89 7c 0e 5393 5542 test di, di ; 85 ff 5394 je short 03f 59h ; 74 065543 je short 03fc1h ; 74 06 5395 5544 cmp di, 00400h ; 81 ff 00 04 5396 jbe short 03f 5fh ; 76 065545 jbe short 03fc7h ; 76 06 5397 5546 mov ax, strict word 0000ch ; b8 0c 00 5398 jmp near 04 0e5h ; e9 86 015547 jmp near 0414dh ; e9 86 01 5399 5548 mov ax, word [bp-007feh] ; 8b 86 02 f8 5400 5549 mov dx, word [bp-007fch] ; 8b 96 04 f8 … … 5436 5585 sal ax, 1 ; d1 e0 5437 5586 rcl di, 1 ; d1 d7 5438 loop 0 3fcdh ; e2 fa5587 loop 04035h ; e2 fa 5439 5588 push di ; 57 5440 5589 push ax ; 50 … … 5449 5598 mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00 5450 5599 test ax, ax ; 85 c0 5451 je short 0 3ffdh ; 74 065600 je short 04065h ; 74 06 5452 5601 mov ax, strict word 0000dh ; b8 0d 00 5453 jmp near 04 0e5h ; e9 e8 005602 jmp near 0414dh ; e9 e8 00 5454 5603 mov es, [bp-010h] ; 8e 46 f0 5455 5604 mov al, byte [es:si+001h] ; 26 8a 44 01 5456 5605 cmp AL, strict byte 002h ; 3c 02 5457 jc short 040 15h ; 72 0d5458 jbe short 040 2dh ; 76 235606 jc short 0407dh ; 72 0d 5607 jbe short 04095h ; 76 23 5459 5608 cmp AL, strict byte 004h ; 3c 04 5460 je short 040 43h ; 74 355609 je short 040abh ; 74 35 5461 5610 cmp AL, strict byte 003h ; 3c 03 5462 je short 040 38h ; 74 265463 jmp near 040 8eh ; e9 79 005611 je short 040a0h ; 74 26 5612 jmp near 040f6h ; e9 79 00 5464 5613 cmp AL, strict byte 001h ; 3c 01 5465 jne short 040 8eh ; 75 755614 jne short 040f6h ; 75 75 5466 5615 mov es, [bp-010h] ; 8e 46 f0 5467 5616 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h 5468 5617 ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00 5469 5618 mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00 5470 jmp short 040 8eh ; eb 615619 jmp short 040f6h ; eb 61 5471 5620 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h 5472 5621 ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00 5473 jmp short 040 25h ; eb ed5622 jmp short 0408dh ; eb ed 5474 5623 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h 5475 5624 ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00 5476 jmp short 040 25h ; eb e25625 jmp short 0408dh ; eb e2 5477 5626 mov dx, 001c4h ; ba c4 01 5478 5627 mov ax, word [bp-016h] ; 8b 46 ea 5479 call 016 50h ; e8 04 d65628 call 016b8h ; e8 04 d6 5480 5629 and AL, strict byte 03fh ; 24 3f 5481 5630 xor ah, ah ; 30 e4 … … 5484 5633 mov dx, 001c4h ; ba c4 01 5485 5634 mov ax, word [bp-016h] ; 8b 46 ea 5486 call 016 50h ; e8 f0 d55635 call 016b8h ; e8 f0 d5 5487 5636 movzx bx, al ; 0f b6 d8 5488 5637 sal bx, 002h ; c1 e3 02 5489 5638 mov dx, 001c5h ; ba c5 01 5490 5639 mov ax, word [bp-016h] ; 8b 46 ea 5491 call 016 50h ; e8 e1 d55640 call 016b8h ; e8 e1 d5 5492 5641 xor ah, ah ; 30 e4 5493 5642 add ax, bx ; 01 d8 … … 5497 5646 mov dx, 001c3h ; ba c3 01 5498 5647 mov ax, word [bp-016h] ; 8b 46 ea 5499 call 016 50h ; e8 cc d55648 call 016b8h ; e8 cc d5 5500 5649 xor ah, ah ; 30 e4 5501 5650 inc ax ; 40 … … 5504 5653 mov es, [bp-010h] ; 8e 46 f0 5505 5654 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 5506 je short 04 0cch ; 74 345655 je short 04134h ; 74 34 5507 5656 cmp byte [es:si+002h], 000h ; 26 80 7c 02 00 5508 jne short 04 0b5h ; 75 165657 jne short 0411dh ; 75 16 5509 5658 mov dx, strict word 00010h ; ba 10 00 5510 5659 mov ax, strict word 00040h ; b8 40 00 5511 call 016 50h ; e8 a8 d55660 call 016b8h ; e8 a8 d5 5512 5661 or AL, strict byte 041h ; 0c 41 5513 5662 movzx bx, al ; 0f b6 d8 5514 5663 mov dx, strict word 00010h ; ba 10 00 5515 5664 mov ax, strict word 00040h ; b8 40 00 5516 jmp short 04 0c9h ; eb 145665 jmp short 04131h ; eb 14 5517 5666 mov dx, 00304h ; ba 04 03 5518 5667 mov ax, word [bp-018h] ; 8b 46 e8 5519 call 016 50h ; e8 92 d55668 call 016b8h ; e8 92 d5 5520 5669 db 0feh, 0c0h 5521 5670 ; inc al ; fe c0 … … 5523 5672 mov dx, 00304h ; ba 04 03 5524 5673 mov ax, word [bp-018h] ; 8b 46 e8 5525 call 016 5eh ; e8 92 d55674 call 016c6h ; e8 92 d5 5526 5675 mov es, [bp-010h] ; 8e 46 f0 5527 5676 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 5528 je short 04 0dah ; 74 045677 je short 04142h ; 74 04 5529 5678 mov byte [es:si], 001h ; 26 c6 04 01 5530 5679 mov es, [bp-010h] ; 8e 46 f0 … … 5540 5689 retn ; c3 5541 5690 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 5542 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0 e0h, 044h, 0eeh5543 db 04 1h, 038h, 042h, 060h, 042h, 02dh, 042h, 060h, 042h, 02dh, 042h, 036h, 044h, 013h, 042h, 0e0h5544 db 04 4h, 0e0h, 044h, 013h, 042h, 013h, 042h, 013h, 042h, 013h, 042h, 013h, 042h, 0d7h, 044h, 013h5545 db 042h, 0 e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h5546 db 04 4h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h, 0e0h, 044h5547 _int13_cdemu: ; 0xf41 48LB 0x4345691 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 048h, 045h, 056h 5692 db 042h, 0a0h, 042h, 0c8h, 042h, 095h, 042h, 0c8h, 042h, 095h, 042h, 09eh, 044h, 07bh, 042h, 048h 5693 db 045h, 048h, 045h, 07bh, 042h, 07bh, 042h, 07bh, 042h, 07bh, 042h, 07bh, 042h, 03fh, 045h, 07bh 5694 db 042h, 048h, 045h, 048h, 045h, 048h, 045h, 048h, 045h, 048h, 045h, 048h, 045h, 048h, 045h, 048h 5695 db 045h, 048h, 045h, 048h, 045h, 048h, 045h, 048h, 045h 5696 _int13_cdemu: ; 0xf41b0 LB 0x434 5548 5697 push bp ; 55 5549 5698 mov bp, sp ; 89 e5 … … 5553 5702 mov dx, strict word 0000eh ; ba 0e 00 5554 5703 mov ax, strict word 00040h ; b8 40 00 5555 call 016 6ch ; e8 13 d55704 call 016d4h ; e8 13 d5 5556 5705 mov di, 00366h ; bf 66 03 5557 5706 mov cx, ax ; 89 c1 … … 5569 5718 mov dx, strict word 00074h ; ba 74 00 5570 5719 mov ax, strict word 00040h ; b8 40 00 5571 call 016 5eh ; e8 d6 d45720 call 016c6h ; e8 d6 d4 5572 5721 mov es, cx ; 8e c1 5573 5722 cmp byte [es:di], 000h ; 26 80 3d 00 5574 je short 04 19eh ; 74 0e5723 je short 04206h ; 74 0e 5575 5724 movzx dx, byte [es:di+002h] ; 26 0f b6 55 02 5576 5725 mov ax, word [bp+012h] ; 8b 46 12 5577 5726 xor ah, ah ; 30 e4 5578 5727 cmp dx, ax ; 39 c2 5579 je short 04 1c7h ; 74 295728 je short 0422fh ; 74 29 5580 5729 mov bx, 00da0h ; bb a0 0d 5581 5730 mov cx, ds ; 8c d9 5582 5731 mov ax, strict word 00004h ; b8 04 00 5583 call 019 31h ; e8 88 d75732 call 01999h ; e8 88 d7 5584 5733 mov ax, word [bp+012h] ; 8b 46 12 5585 5734 xor ah, ah ; 30 e4 … … 5591 5740 push 00358h ; 68 58 03 5592 5741 push strict byte 00004h ; 6a 04 5593 call 019 72h ; e8 b1 d75742 call 019dah ; e8 b1 d7 5594 5743 add sp, strict byte 0000ah ; 83 c4 0a 5595 jmp near 045 00h ; e9 39 035744 jmp near 04568h ; e9 39 03 5596 5745 mov ax, word [bp+016h] ; 8b 46 16 5597 5746 shr ax, 008h ; c1 e8 08 5598 5747 cmp ax, strict word 00050h ; 3d 50 00 5599 jnbe near 04 4e0h ; 0f 87 0c 035748 jnbe near 04548h ; 0f 87 0c 03 5600 5749 push CS ; 0e 5601 5750 pop ES ; 07 5602 5751 mov cx, strict word 0001eh ; b9 1e 00 5603 mov di, 04 0efh ; bf ef 405752 mov di, 04157h ; bf 57 41 5604 5753 repne scasb ; f2 ae 5605 5754 sal cx, 1 ; d1 e1 5606 5755 mov di, cx ; 89 cf 5607 mov ax, word [cs:di+041 0ch] ; 2e 8b 85 0c415756 mov ax, word [cs:di+04174h] ; 2e 8b 85 74 41 5608 5757 mov bx, word [bp+016h] ; 8b 5e 16 5609 5758 xor bh, bh ; 30 ff … … 5616 5765 add bx, bx ; 01 db 5617 5766 cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00 5618 je near 042 13h ; 0f 84 08 005767 je near 0427bh ; 0f 84 08 00 5619 5768 movzx ax, byte [bp-006h] ; 0f b6 46 fa 5620 5769 call word [word bx+00076h] ; ff 97 76 00 … … 5623 5772 mov dx, strict word 00074h ; ba 74 00 5624 5773 mov ax, strict word 00040h ; b8 40 00 5625 call 016 5eh ; e8 3c d45774 call 016c6h ; e8 3c d4 5626 5775 and byte [bp+01ch], 0feh ; 80 66 1c fe 5627 5776 lea sp, [bp-004h] ; 8d 66 fc … … 5633 5782 xor ah, ah ; 30 e4 5634 5783 or ah, 003h ; 80 cc 03 5635 jmp near 045 08h ; e9 d0 025784 jmp near 04570h ; e9 d0 02 5636 5785 mov dx, strict word 00074h ; ba 74 00 5637 5786 mov ax, strict word 00040h ; b8 40 00 5638 call 016 50h ; e8 0f d45787 call 016b8h ; e8 0f d4 5639 5788 mov cl, al ; 88 c1 5640 5789 movzx ax, cl ; 0f b6 c1 … … 5645 5794 mov dx, strict word 00074h ; ba 74 00 5646 5795 mov ax, strict word 00040h ; b8 40 00 5647 call 016 5eh ; e8 05 d45796 call 016c6h ; e8 05 d4 5648 5797 test cl, cl ; 84 c9 5649 je short 042 17h ; 74 ba5650 jmp near 045 1ch ; e9 bc 025798 je short 0427fh ; 74 ba 5799 jmp near 04584h ; e9 bc 02 5651 5800 mov es, [bp-008h] ; 8e 46 f8 5652 5801 mov di, word [es:si+014h] ; 26 8b 7c 14 … … 5672 5821 mov word [bp-00ah], cx ; 89 4e f6 5673 5822 test cx, cx ; 85 c9 5674 jne short 04 2adh ; 75 035675 jmp near 042 13h ; e9 66 ff5823 jne short 04315h ; 75 03 5824 jmp near 0427bh ; e9 66 ff 5676 5825 cmp di, word [bp-010h] ; 3b 7e f0 5677 jc near 045 00h ; 0f 82 4c 025826 jc near 04568h ; 0f 82 4c 02 5678 5827 cmp ax, dx ; 39 d0 5679 jnc near 045 00h ; 0f 83 46 025828 jnc near 04568h ; 0f 83 46 02 5680 5829 cmp si, bx ; 39 de 5681 jnc near 045 00h ; 0f 83 40 025830 jnc near 04568h ; 0f 83 40 02 5682 5831 mov dx, word [bp+016h] ; 8b 56 16 5683 5832 shr dx, 008h ; c1 ea 08 5684 5833 cmp dx, strict byte 00004h ; 83 fa 04 5685 jne short 04 2ceh ; 75 035686 jmp near 042 13h ; e9 45 ff5834 jne short 04336h ; 75 03 5835 jmp near 0427bh ; e9 45 ff 5687 5836 mov dx, word [bp+010h] ; 8b 56 10 5688 5837 shr dx, 004h ; c1 ea 04 … … 5695 5844 xor dl, dl ; 30 d2 5696 5845 xor cx, cx ; 31 c9 5697 call 09e 29h ; e8 3d5b5846 call 09e80h ; e8 2c 5b 5698 5847 xor bx, bx ; 31 db 5699 5848 add ax, si ; 01 f0 … … 5701 5850 mov bx, di ; 89 fb 5702 5851 xor cx, cx ; 31 c9 5703 call 09e 29h ; e8 305b5852 call 09e80h ; e8 1f 5b 5704 5853 mov bx, ax ; 89 c3 5705 5854 mov ax, word [bp-010h] ; 8b 46 f0 … … 5736 5885 mov dx, ss ; 8c d2 5737 5886 lea ax, [bp-02eh] ; 8d 46 d2 5738 call 09 e7ah ; e8 2a5b5887 call 09f20h ; e8 68 5b 5739 5888 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 5740 5889 mov ax, word [bp-014h] ; 8b 46 ec … … 5784 5933 sal si, 1 ; d1 e6 5785 5934 rcl di, 1 ; d1 d7 5786 loop 04 3d0h ; e2 fa5935 loop 04438h ; e2 fa 5787 5936 push di ; 57 5788 5937 push si ; 56 … … 5799 5948 ; mov dword [es:bx+01eh], strict dword 000000000h ; 66 26 c7 47 1e 00 00 00 00 5800 5949 test al, al ; 84 c0 5801 je near 042 13h ; 0f 84 13 fe5950 je near 0427bh ; 0f 84 13 fe 5802 5951 mov bx, 00da0h ; bb a0 0d 5803 5952 mov cx, ds ; 8c d9 5804 5953 mov ax, strict word 00004h ; b8 04 00 5805 call 019 31h ; e8 26 d55954 call 01999h ; e8 26 d5 5806 5955 movzx ax, dl ; 0f b6 c2 5807 5956 push ax ; 50 … … 5812 5961 push 0038eh ; 68 8e 03 5813 5962 push strict byte 00004h ; 6a 04 5814 call 019 72h ; e8 51 d55963 call 019dah ; e8 51 d5 5815 5964 add sp, strict byte 0000ah ; 83 c4 0a 5816 5965 mov ax, word [bp+016h] ; 8b 46 16 … … 5819 5968 mov word [bp+016h], ax ; 89 46 16 5820 5969 mov byte [bp+016h], 000h ; c6 46 16 00 5821 jmp near 045 0bh ; e9 d5 005970 jmp near 04573h ; e9 d5 00 5822 5971 mov es, [bp-008h] ; 8e 46 f8 5823 5972 mov di, word [es:si+014h] ; 26 8b 7c 14 … … 5858 6007 mov word [bp+010h], ax ; 89 46 10 5859 6008 cmp dl, 003h ; 80 fa 03 5860 je short 04 4bah ; 74 1a6009 je short 04522h ; 74 1a 5861 6010 cmp dl, 002h ; 80 fa 02 5862 je short 04 4b6h ; 74 116011 je short 0451eh ; 74 11 5863 6012 cmp dl, 001h ; 80 fa 01 5864 jne short 04 4beh ; 75 146013 jne short 04526h ; 75 14 5865 6014 mov ax, word [bp+010h] ; 8b 46 10 5866 6015 xor al, al ; 30 c0 5867 6016 or AL, strict byte 002h ; 0c 02 5868 6017 mov word [bp+010h], ax ; 89 46 10 5869 jmp short 04 4beh ; eb 086018 jmp short 04526h ; eb 08 5870 6019 or AL, strict byte 004h ; 0c 04 5871 jmp short 04 4b1h ; eb f76020 jmp short 04519h ; eb f7 5872 6021 or AL, strict byte 005h ; 0c 05 5873 jmp short 04 4b1h ; eb f36022 jmp short 04519h ; eb f3 5874 6023 mov es, [bp-008h] ; 8e 46 f8 5875 6024 cmp byte [es:si+001h], 004h ; 26 80 7c 01 04 5876 jnc near 042 13h ; 0f 83 49 fd6025 jnc near 0427bh ; 0f 83 49 fd 5877 6026 mov word [bp+008h], 0efc7h ; c7 46 08 c7 ef 5878 6027 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 5879 jmp near 042 13h ; e9 3c fd6028 jmp near 0427bh ; e9 3c fd 5880 6029 or bh, 003h ; 80 cf 03 5881 6030 mov word [bp+016h], bx ; 89 5e 16 5882 jmp near 042 17h ; e9 37 fd6031 jmp near 0427fh ; e9 37 fd 5883 6032 mov bx, 00da0h ; bb a0 0d 5884 6033 mov cx, ds ; 8c d9 5885 6034 mov ax, strict word 00004h ; b8 04 00 5886 call 019 31h ; e8 46 d46035 call 01999h ; e8 46 d4 5887 6036 mov ax, word [bp+016h] ; 8b 46 16 5888 6037 shr ax, 008h ; c1 e8 08 … … 5891 6040 push 003afh ; 68 af 03 5892 6041 push strict byte 00004h ; 6a 04 5893 call 019 72h ; e8 75 d46042 call 019dah ; e8 75 d4 5894 6043 add sp, strict byte 00008h ; 83 c4 08 5895 6044 mov ax, word [bp+016h] ; 8b 46 16 … … 5902 6051 mov dx, strict word 00074h ; ba 74 00 5903 6052 mov ax, strict word 00040h ; b8 40 00 5904 call 016 5eh ; e8 42 d16053 call 016c6h ; e8 42 d1 5905 6054 or byte [bp+01ch], 001h ; 80 4e 1c 01 5906 jmp near 042 26h ; e9 03 fd6055 jmp near 0428eh ; e9 03 fd 5907 6056 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 5908 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0 c1h, 04ah, 03dh5909 db 048h, 0 29h, 046h, 0c1h, 04ah, 01eh, 046h, 0c1h, 04ah, 01eh, 046h, 0c1h, 04ah, 03dh, 048h, 0c1h5910 db 04 ah, 0c1h, 04ah, 03dh, 048h, 03dh, 048h, 03dh, 048h, 03dh, 048h, 03dh, 048h, 053h, 046h, 03dh5911 db 048h, 0 c1h, 04ah, 05ch, 046h, 06fh, 046h, 01eh, 046h, 06fh, 046h, 09dh, 047h, 057h, 048h, 06fh5912 db 046h, 0 7eh, 048h, 07ah, 04ah, 082h, 04ah, 0c1h, 04ah5913 _int13_cdrom: ; 0xf45 7cLB 0x5626057 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 029h, 04bh, 0a5h 6058 db 048h, 091h, 046h, 029h, 04bh, 086h, 046h, 029h, 04bh, 086h, 046h, 029h, 04bh, 0a5h, 048h, 029h 6059 db 04bh, 029h, 04bh, 0a5h, 048h, 0a5h, 048h, 0a5h, 048h, 0a5h, 048h, 0a5h, 048h, 0bbh, 046h, 0a5h 6060 db 048h, 029h, 04bh, 0c4h, 046h, 0d7h, 046h, 086h, 046h, 0d7h, 046h, 005h, 048h, 0bfh, 048h, 0d7h 6061 db 046h, 0e6h, 048h, 0e2h, 04ah, 0eah, 04ah, 029h, 04bh 6062 _int13_cdrom: ; 0xf45e4 LB 0x562 5914 6063 push bp ; 55 5915 6064 mov bp, sp ; 89 e5 … … 5919 6068 mov dx, strict word 0000eh ; ba 0e 00 5920 6069 mov ax, strict word 00040h ; b8 40 00 5921 call 016 6ch ; e8 df d06070 call 016d4h ; e8 df d0 5922 6071 mov word [bp-01ah], ax ; 89 46 e6 5923 6072 mov si, 00122h ; be 22 01 … … 5926 6075 mov dx, strict word 00074h ; ba 74 00 5927 6076 mov ax, strict word 00040h ; b8 40 00 5928 call 016 5eh ; e8 bd d06077 call 016c6h ; e8 bd d0 5929 6078 mov ax, word [bp+010h] ; 8b 46 10 5930 6079 xor ah, ah ; 30 e4 5931 6080 cmp ax, 000e0h ; 3d e0 00 5932 jc short 04 5b0h ; 72 056081 jc short 04618h ; 72 05 5933 6082 cmp ax, 000f0h ; 3d f0 00 5934 jc short 04 5ceh ; 72 1e6083 jc short 04636h ; 72 1e 5935 6084 mov ax, word [bp+010h] ; 8b 46 10 5936 6085 xor ah, ah ; 30 e4 … … 5942 6091 push 003ebh ; 68 eb 03 5943 6092 push strict byte 00004h ; 6a 04 5944 call 019 72h ; e8 aa d36093 call 019dah ; e8 aa d3 5945 6094 add sp, strict byte 0000ah ; 83 c4 0a 5946 jmp near 04 a9eh ; e9 d0 046095 jmp near 04b06h ; e9 d0 04 5947 6096 mov ax, word [bp+010h] ; 8b 46 10 5948 6097 xor ah, ah ; 30 e4 … … 5953 6102 mov byte [bp-008h], dl ; 88 56 f8 5954 6103 cmp dl, 010h ; 80 fa 10 5955 jc short 04 5f7h ; 72 106104 jc short 0465fh ; 72 10 5956 6105 push ax ; 50 5957 6106 mov ax, word [bp+018h] ; 8b 46 18 … … 5960 6109 push 003dfh ; 68 df 03 5961 6110 push 00416h ; 68 16 04 5962 jmp short 04 5c3h ; eb cc6111 jmp short 0462bh ; eb cc 5963 6112 mov ax, word [bp+018h] ; 8b 46 18 5964 6113 shr ax, 008h ; c1 e8 08 5965 6114 cmp ax, strict word 00050h ; 3d 50 00 5966 jnbe near 04 ac1h ; 0f 87 bd 046115 jnbe near 04b29h ; 0f 87 bd 04 5967 6116 push CS ; 0e 5968 6117 pop ES ; 07 5969 6118 mov cx, strict word 0001eh ; b9 1e 00 5970 mov di, 045 23h ; bf 23456119 mov di, 0458bh ; bf 8b 45 5971 6120 repne scasb ; f2 ae 5972 6121 sal cx, 1 ; d1 e1 5973 6122 mov di, cx ; 89 cf 5974 mov ax, word [cs:di+045 40h] ; 2e 8b 85 40456123 mov ax, word [cs:di+045a8h] ; 2e 8b 85 a8 45 5975 6124 mov bx, word [bp+018h] ; 8b 5e 18 5976 6125 xor bh, bh ; 30 ff … … 5979 6128 xor ah, ah ; 30 e4 5980 6129 or ah, 003h ; 80 cc 03 5981 jmp near 04 aa6h ; e9 7d 046130 jmp near 04b0eh ; e9 7d 04 5982 6131 mov dx, strict word 00074h ; ba 74 00 5983 6132 mov ax, strict word 00040h ; b8 40 00 5984 call 016 50h ; e8 1e d06133 call 016b8h ; e8 1e d0 5985 6134 mov cl, al ; 88 c1 5986 6135 movzx ax, cl ; 0f b6 c1 … … 5991 6140 mov dx, strict word 00074h ; ba 74 00 5992 6141 mov ax, strict word 00040h ; b8 40 00 5993 call 016 5eh ; e8 14 d06142 call 016c6h ; e8 14 d0 5994 6143 test cl, cl ; 84 c9 5995 je near 048 41h ; 0f 84 f1 015996 jmp near 04 abah ; e9 67 046144 je near 048a9h ; 0f 84 f1 01 6145 jmp near 04b22h ; e9 67 04 5997 6146 or bh, 002h ; 80 cf 02 5998 6147 mov word [bp+018h], bx ; 89 5e 18 5999 jmp near 04 aa9h ; e9 4d 046148 jmp near 04b11h ; e9 4d 04 6000 6149 mov word [bp+012h], 0aa55h ; c7 46 12 55 aa 6001 6150 or bh, 030h ; 80 cf 30 6002 6151 mov word [bp+018h], bx ; 89 5e 18 6003 6152 mov word [bp+016h], strict word 00007h ; c7 46 16 07 00 6004 jmp near 048 41h ; e9 d2 016153 jmp near 048a9h ; e9 d2 01 6005 6154 mov bx, word [bp+00ch] ; 8b 5e 0c 6006 6155 mov es, [bp+006h] ; 8e 46 06 … … 6017 6166 mov di, word [es:bx+00eh] ; 26 8b 7f 0e 6018 6167 or di, ax ; 09 c7 6019 je short 04 6b7h ; 74 186168 je short 0471fh ; 74 18 6020 6169 mov ax, word [bp+018h] ; 8b 46 18 6021 6170 shr ax, 008h ; c1 e8 08 … … 6024 6173 push 00448h ; 68 48 04 6025 6174 push strict byte 00007h ; 6a 07 6026 call 019 72h ; e8 c1 d26175 call 019dah ; e8 c1 d2 6027 6176 add sp, strict byte 00008h ; 83 c4 08 6028 jmp near 04 a9eh ; e9 e7 036177 jmp near 04b06h ; e9 e7 03 6029 6178 les bx, [bp-014h] ; c4 5e ec 6030 6179 mov ax, word [es:bx+008h] ; 26 8b 47 08 … … 6036 6185 mov word [bp-016h], ax ; 89 46 ea 6037 6186 cmp ax, strict word 00044h ; 3d 44 00 6038 je near 048 3dh ; 0f 84 66 016187 je near 048a5h ; 0f 84 66 01 6039 6188 cmp ax, strict word 00047h ; 3d 47 00 6040 je near 048 3dh ; 0f 84 5f 016189 je near 048a5h ; 0f 84 5f 01 6041 6190 mov cx, strict word 0000ch ; b9 0c 00 6042 6191 xor bx, bx ; 31 db 6043 6192 mov dx, ss ; 8c d2 6044 6193 lea ax, [bp-02ch] ; 8d 46 d4 6045 call 09 e7ah ; e8 8f576194 call 09f20h ; e8 cd 57 6046 6195 mov word [bp-02ch], strict word 00028h ; c7 46 d4 28 00 6047 6196 mov ax, word [bp-018h] ; 8b 46 e8 … … 6071 6220 sal ax, 1 ; d1 e0 6072 6221 rcl bx, 1 ; d1 d3 6073 loop 047 35h ; e2 fa6222 loop 0479dh ; e2 fa 6074 6223 push bx ; 53 6075 6224 push ax ; 50 … … 6087 6236 shr di, 1 ; d1 ef 6088 6237 rcr ax, 1 ; d1 d8 6089 loop 047 5fh ; e2 fa6238 loop 047c7h ; e2 fa 6090 6239 les bx, [bp-014h] ; c4 5e ec 6091 6240 mov word [es:bx+002h], ax ; 26 89 47 02 6092 6241 test dl, dl ; 84 d2 6093 je near 048 3dh ; 0f 84 cb 006242 je near 048a5h ; 0f 84 cb 00 6094 6243 mov bx, 00da0h ; bb a0 0d 6095 6244 mov cx, ds ; 8c d9 6096 6245 mov ax, strict word 00004h ; b8 04 00 6097 call 019 31h ; e8 b4 d16246 call 01999h ; e8 b4 d1 6098 6247 movzx ax, dl ; 0f b6 c2 6099 6248 push ax ; 50 … … 6102 6251 push 00471h ; 68 71 04 6103 6252 push strict byte 00004h ; 6a 04 6104 call 019 72h ; e8 e3 d16253 call 019dah ; e8 e3 d1 6105 6254 add sp, strict byte 0000ah ; 83 c4 0a 6106 6255 mov ax, word [bp+018h] ; 8b 46 18 6107 6256 xor ah, ah ; 30 e4 6108 6257 or ah, 00ch ; 80 cc 0c 6109 jmp near 04 aa6h ; e9 09 036258 jmp near 04b0eh ; e9 09 03 6110 6259 cmp bx, strict byte 00002h ; 83 fb 02 6111 jnbe near 04 a9eh ; 0f 87 fa 026260 jnbe near 04b06h ; 0f 87 fa 02 6112 6261 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6113 6262 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 6117 6266 mov al, byte [es:di+025h] ; 26 8a 45 25 6118 6267 cmp bx, strict byte 00002h ; 83 fb 02 6119 je short 048 2eh ; 74 736268 je short 04896h ; 74 73 6120 6269 cmp bx, strict byte 00001h ; 83 fb 01 6121 je short 04 7fbh ; 74 3b6270 je short 04863h ; 74 3b 6122 6271 test bx, bx ; 85 db 6123 jne near 048 3dh ; 0f 85 77 006272 jne near 048a5h ; 0f 85 77 00 6124 6273 cmp AL, strict byte 0ffh ; 3c ff 6125 jne short 04 7dch ; 75 126274 jne short 04844h ; 75 12 6126 6275 mov ax, word [bp+018h] ; 8b 46 18 6127 6276 xor ah, ah ; 30 e4 … … 6130 6279 xor al, al ; 30 c0 6131 6280 or AL, strict byte 001h ; 0c 01 6132 jmp near 04 aa6h ; e9 ca 026281 jmp near 04b0eh ; e9 ca 02 6133 6282 movzx dx, byte [bp-008h] ; 0f b6 56 f8 6134 6283 imul dx, dx, strict byte 0001ch ; 6b d2 1c … … 6142 6291 or AL, strict byte 001h ; 0c 01 6143 6292 mov word [bp+018h], ax ; 89 46 18 6144 jmp near 048 3dh ; e9 42 006293 jmp near 048a5h ; e9 42 00 6145 6294 test al, al ; 84 c0 6146 jne short 048 0bh ; 75 0c6295 jne short 04873h ; 75 0c 6147 6296 or bh, 0b0h ; 80 cf b0 6148 6297 mov word [bp+018h], bx ; 89 5e 18 6149 6298 mov byte [bp+018h], al ; 88 46 18 6150 jmp near 04 aa9h ; e9 9e 026299 jmp near 04b11h ; e9 9e 02 6151 6300 movzx dx, byte [bp-008h] ; 0f b6 56 f8 6152 6301 imul dx, dx, strict byte 0001ch ; 6b d2 1c … … 6163 6312 xor al, al ; 30 c0 6164 6313 or ax, dx ; 09 d0 6165 jmp short 04 7f5h ; eb c76314 jmp short 0485dh ; eb c7 6166 6315 test al, al ; 84 c0 6167 6316 db 00fh, 095h, 0c0h … … 6175 6324 mov dx, strict word 00074h ; ba 74 00 6176 6325 mov ax, strict word 00040h ; b8 40 00 6177 call 016 5eh ; e8 12 ce6326 call 016c6h ; e8 12 ce 6178 6327 and byte [bp+01eh], 0feh ; 80 66 1e fe 6179 6328 lea sp, [bp-004h] ; 8d 66 fc … … 6188 6337 mov al, byte [es:si+025h] ; 26 8a 44 25 6189 6338 test al, al ; 84 c0 6190 je short 048 71h ; 74 066339 je short 048d9h ; 74 06 6191 6340 or bh, 0b1h ; 80 cf b1 6192 jmp near 046 56h ; e9 e5 fd6193 je short 048 3dh ; 74 ca6341 jmp near 046beh ; e9 e5 fd 6342 je short 048a5h ; 74 ca 6194 6343 mov ax, word [bp+018h] ; 8b 46 18 6195 6344 xor ah, ah ; 30 e4 6196 6345 or ah, 0b1h ; 80 cc b1 6197 jmp near 04 aa6h ; e9 28 026346 jmp near 04b0eh ; e9 28 02 6198 6347 mov dx, word [bp+00ch] ; 8b 56 0c 6199 6348 mov cx, word [bp+006h] ; 8b 4e 06 … … 6205 6354 mov word [bp-00eh], ax ; 89 46 f2 6206 6355 cmp ax, strict word 0001ah ; 3d 1a 00 6207 jc near 04 a9eh ; 0f 82 04 026208 jc short 04 8ebh ; 72 4f6356 jc near 04b06h ; 0f 82 04 02 6357 jc short 04953h ; 72 4f 6209 6358 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6210 6359 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 6229 6378 ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff 6230 6379 cmp word [bp-00eh], strict byte 0001eh ; 83 7e f2 1e 6231 jc near 04 9c2h ; 0f 82 cf 006380 jc near 04a2ah ; 0f 82 cf 00 6232 6381 mov es, [bp-00ah] ; 8e 46 f6 6233 6382 mov word [es:bx], strict word 0001eh ; 26 c7 07 1e 00 … … 6281 6430 xor cl, cl ; 30 c9 6282 6431 xor ch, ch ; 30 ed 6283 jmp short 04 9a5h ; eb 056432 jmp short 04a0dh ; eb 05 6284 6433 cmp ch, 00fh ; 80 fd 0f 6285 jnc short 04 9b8h ; 73 136434 jnc short 04a20h ; 73 13 6286 6435 movzx dx, ch ; 0f b6 d5 6287 6436 add dx, 00356h ; 81 c2 56 03 6288 6437 mov ax, word [bp-01ah] ; 8b 46 e6 6289 call 016 50h ; e8 9e cc6438 call 016b8h ; e8 9e cc 6290 6439 add cl, al ; 00 c1 6291 6440 db 0feh, 0c5h 6292 6441 ; inc ch ; fe c5 6293 jmp short 04 9a0h ; eb e86442 jmp short 04a08h ; eb e8 6294 6443 neg cl ; f6 d9 6295 6444 mov es, [bp-00ch] ; 8e 46 f4 6296 6445 mov byte [es:si+00243h], cl ; 26 88 8c 43 02 6297 6446 cmp word [bp-00eh], strict byte 00042h ; 83 7e f2 42 6298 jc near 048 3dh ; 0f 82 73 fe6447 jc near 048a5h ; 0f 82 73 fe 6299 6448 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6300 6449 cwd ; 99 … … 6314 6463 mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00 6315 6464 test al, al ; 84 c0 6316 jne short 04a 0bh ; 75 096465 jne short 04a73h ; 75 09 6317 6466 db 066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h 6318 6467 ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20 … … 6323 6472 ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20 6324 6473 test al, al ; 84 c0 6325 jne short 04a 37h ; 75 136474 jne short 04a9fh ; 75 13 6326 6475 mov word [es:bx+030h], dx ; 26 89 57 30 6327 6476 db 066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h … … 6338 6487 xor al, al ; 30 c0 6339 6488 mov AH, strict byte 01eh ; b4 1e 6340 jmp short 04a 5fh ; eb 056489 jmp short 04ac7h ; eb 05 6341 6490 cmp ah, 040h ; 80 fc 40 6342 jnc short 04a 6eh ; 73 0f6491 jnc short 04ad6h ; 73 0f 6343 6492 movzx si, ah ; 0f b6 f4 6344 6493 mov es, [bp-00ah] ; 8e 46 f6 … … 6347 6496 db 0feh, 0c4h 6348 6497 ; inc ah ; fe c4 6349 jmp short 04a 5ah ; eb ec6498 jmp short 04ac2h ; eb ec 6350 6499 neg al ; f6 d8 6351 6500 mov es, [bp-00ah] ; 8e 46 f6 6352 6501 mov byte [es:bx+041h], al ; 26 88 47 41 6353 jmp near 048 3dh ; e9 c3 fd6502 jmp near 048a5h ; e9 c3 fd 6354 6503 or bh, 006h ; 80 cf 06 6355 6504 mov word [bp+018h], bx ; 89 5e 18 6356 jmp short 04 abah ; eb 386505 jmp short 04b22h ; eb 38 6357 6506 cmp bx, strict byte 00006h ; 83 fb 06 6358 je near 048 3dh ; 0f 84 b4 fd6507 je near 048a5h ; 0f 84 b4 fd 6359 6508 cmp bx, strict byte 00001h ; 83 fb 01 6360 jc short 04 a9eh ; 72 106361 jbe near 048 3dh ; 0f 86 ab fd6509 jc short 04b06h ; 72 10 6510 jbe near 048a5h ; 0f 86 ab fd 6362 6511 cmp bx, strict byte 00003h ; 83 fb 03 6363 jc short 04 a9eh ; 72 076512 jc short 04b06h ; 72 07 6364 6513 cmp bx, strict byte 00004h ; 83 fb 04 6365 jbe near 048 3dh ; 0f 86 9f fd6514 jbe near 048a5h ; 0f 86 9f fd 6366 6515 mov ax, word [bp+018h] ; 8b 46 18 6367 6516 xor ah, ah ; 30 e4 … … 6373 6522 mov dx, strict word 00074h ; ba 74 00 6374 6523 mov ax, strict word 00040h ; b8 40 00 6375 call 016 5eh ; e8 a4 cb6524 call 016c6h ; e8 a4 cb 6376 6525 or byte [bp+01eh], 001h ; 80 4e 1e 01 6377 jmp near 048 50h ; e9 8f fd6526 jmp near 048b8h ; e9 8f fd 6378 6527 mov bx, 00da0h ; bb a0 0d 6379 6528 mov cx, ds ; 8c d9 6380 6529 mov ax, strict word 00004h ; b8 04 00 6381 call 019 31h ; e8 65 ce6530 call 01999h ; e8 65 ce 6382 6531 mov ax, word [bp+018h] ; 8b 46 18 6383 6532 shr ax, 008h ; c1 e8 08 … … 6386 6535 push 00333h ; 68 33 03 6387 6536 push strict byte 00004h ; 6a 04 6388 jmp near 04 6aeh ; e9 d0 fb6389 print_boot_device_: ; 0xf4 adeLB 0x4b6537 jmp near 04716h ; e9 d0 fb 6538 print_boot_device_: ; 0xf4b46 LB 0x4b 6390 6539 push bp ; 55 6391 6540 mov bp, sp ; 89 e5 6392 6541 push cx ; 51 6393 6542 test al, al ; 84 c0 6394 je short 04 aebh ; 74 056543 je short 04b53h ; 74 05 6395 6544 mov dx, strict word 00002h ; ba 02 00 6396 jmp short 04b 05h ; eb 1a6545 jmp short 04b6dh ; eb 1a 6397 6546 test dl, dl ; 84 d2 6398 je short 04 af4h ; 74 056547 je short 04b5ch ; 74 05 6399 6548 mov dx, strict word 00003h ; ba 03 00 6400 jmp short 04b 05h ; eb 116549 jmp short 04b6dh ; eb 11 6401 6550 test bl, 080h ; f6 c3 80 6402 jne short 04 afdh ; 75 046551 jne short 04b65h ; 75 04 6403 6552 xor dh, dh ; 30 f6 6404 jmp short 04b 05h ; eb 086553 jmp short 04b6dh ; eb 08 6405 6554 test bl, 080h ; f6 c3 80 6406 je short 04b 23h ; 74 216555 je short 04b8bh ; 74 21 6407 6556 mov dx, strict word 00001h ; ba 01 00 6408 6557 mov bx, 00da0h ; bb a0 0d 6409 6558 mov cx, ds ; 8c d9 6410 6559 mov ax, strict word 00004h ; b8 04 00 6411 call 019 31h ; e8 21 ce6560 call 01999h ; e8 21 ce 6412 6561 imul dx, dx, strict byte 0000ah ; 6b d2 0a 6413 6562 add dx, 00dc6h ; 81 c2 c6 0d … … 6415 6564 push 00494h ; 68 94 04 6416 6565 push strict byte 00004h ; 6a 04 6417 call 019 72h ; e8 52 ce6566 call 019dah ; e8 52 ce 6418 6567 add sp, strict byte 00006h ; 83 c4 06 6419 6568 lea sp, [bp-002h] ; 8d 66 fe … … 6421 6570 pop bp ; 5d 6422 6571 retn ; c3 6423 print_boot_failure_: ; 0xf4b 29LB 0x936572 print_boot_failure_: ; 0xf4b91 LB 0x93 6424 6573 push bp ; 55 6425 6574 mov bp, sp ; 89 e5 … … 6430 6579 movzx si, ah ; 0f b6 f4 6431 6580 test al, al ; 84 c0 6432 je short 04b 56h ; 74 1b6581 je short 04bbeh ; 74 1b 6433 6582 mov bx, 00da0h ; bb a0 0d 6434 6583 mov cx, ds ; 8c d9 6435 6584 mov ax, strict word 00004h ; b8 04 00 6436 call 019 31h ; e8 eb cd6585 call 01999h ; e8 eb cd 6437 6586 push 00ddah ; 68 da 0d 6438 6587 push 004a8h ; 68 a8 04 6439 6588 push strict byte 00004h ; 6a 04 6440 call 019 72h ; e8 21 ce6589 call 019dah ; e8 21 ce 6441 6590 add sp, strict byte 00006h ; 83 c4 06 6442 jmp short 04 b9ah ; eb 446591 jmp short 04c02h ; eb 44 6443 6592 test dl, dl ; 84 d2 6444 je short 04b 6ah ; 74 106593 je short 04bd2h ; 74 10 6445 6594 mov bx, 00da0h ; bb a0 0d 6446 6595 mov cx, ds ; 8c d9 6447 6596 mov ax, strict word 00004h ; b8 04 00 6448 call 019 31h ; e8 cc cd6597 call 01999h ; e8 cc cd 6449 6598 push 00de4h ; 68 e4 0d 6450 jmp short 04b 49h ; eb df6599 jmp short 04bb1h ; eb df 6451 6600 test bl, 080h ; f6 c3 80 6452 je short 04b 80h ; 74 116601 je short 04be8h ; 74 11 6453 6602 mov bx, 00da0h ; bb a0 0d 6454 6603 mov cx, ds ; 8c d9 6455 6604 mov ax, strict word 00004h ; b8 04 00 6456 call 019 31h ; e8 b7 cd6605 call 01999h ; e8 b7 cd 6457 6606 push si ; 56 6458 6607 push 00dd0h ; 68 d0 0d 6459 jmp short 04b 8fh ; eb 0f6608 jmp short 04bf7h ; eb 0f 6460 6609 mov bx, 00da0h ; bb a0 0d 6461 6610 mov cx, ds ; 8c d9 6462 6611 mov ax, strict word 00004h ; b8 04 00 6463 call 019 31h ; e8 a6 cd6612 call 01999h ; e8 a6 cd 6464 6613 push si ; 56 6465 6614 push 00dc6h ; 68 c6 0d 6466 6615 push 004bdh ; 68 bd 04 6467 6616 push strict byte 00004h ; 6a 04 6468 call 019 72h ; e8 db cd6617 call 019dah ; e8 db cd 6469 6618 add sp, strict byte 00008h ; 83 c4 08 6470 6619 cmp byte [bp+004h], 001h ; 80 7e 04 01 6471 jne short 04 bb4h ; 75 146620 jne short 04c1ch ; 75 14 6472 6621 test dh, dh ; 84 f6 6473 jne short 04 ba9h ; 75 056622 jne short 04c11h ; 75 05 6474 6623 push 004d5h ; 68 d5 04 6475 jmp short 04 bach ; eb 036624 jmp short 04c14h ; eb 03 6476 6625 push 004ffh ; 68 ff 04 6477 6626 push strict byte 00007h ; 6a 07 6478 call 019 72h ; e8 c1 cd6627 call 019dah ; e8 c1 cd 6479 6628 add sp, strict byte 00004h ; 83 c4 04 6480 6629 lea sp, [bp-002h] ; 8d 66 fe … … 6482 6631 pop bp ; 5d 6483 6632 retn 00002h ; c2 02 00 6484 print_cdromboot_failure_: ; 0xf4 bbcLB 0x276633 print_cdromboot_failure_: ; 0xf4c24 LB 0x27 6485 6634 push bp ; 55 6486 6635 mov bp, sp ; 89 e5 … … 6492 6641 mov cx, ds ; 8c d9 6493 6642 mov ax, strict word 00004h ; b8 04 00 6494 call 019 31h ; e8 62 cd6643 call 01999h ; e8 62 cd 6495 6644 push dx ; 52 6496 6645 push 00534h ; 68 34 05 6497 6646 push strict byte 00004h ; 6a 04 6498 call 019 72h ; e8 9a cd6647 call 019dah ; e8 9a cd 6499 6648 add sp, strict byte 00006h ; 83 c4 06 6500 6649 lea sp, [bp-006h] ; 8d 66 fa … … 6504 6653 pop bp ; 5d 6505 6654 retn ; c3 6506 _int19_function: ; 0xf4 be3LB 0x2566655 _int19_function: ; 0xf4c4b LB 0x256 6507 6656 push bp ; 55 6508 6657 mov bp, sp ; 89 e5 … … 6512 6661 mov dx, strict word 0000eh ; ba 0e 00 6513 6662 mov ax, strict word 00040h ; b8 40 00 6514 call 016 6ch ; e8 78 ca6663 call 016d4h ; e8 78 ca 6515 6664 mov bx, ax ; 89 c3 6516 6665 mov word [bp-00eh], ax ; 89 46 f2 6517 6666 mov byte [bp-008h], 000h ; c6 46 f8 00 6518 6667 mov ax, strict word 0003dh ; b8 3d 00 6519 call 01 6ach ; e8 a9 ca6668 call 01714h ; e8 a9 ca 6520 6669 movzx si, al ; 0f b6 f0 6521 6670 mov ax, strict word 00038h ; b8 38 00 6522 call 01 6ach ; e8 a0 ca6671 call 01714h ; e8 a0 ca 6523 6672 and AL, strict byte 0f0h ; 24 f0 6524 6673 xor ah, ah ; 30 e4 … … 6526 6675 or si, ax ; 09 c6 6527 6676 mov ax, strict word 0003ch ; b8 3c 00 6528 call 01 6ach ; e8 91 ca6677 call 01714h ; e8 91 ca 6529 6678 and AL, strict byte 00fh ; 24 0f 6530 6679 xor ah, ah ; 30 e4 … … 6533 6682 mov dx, 0037dh ; ba 7d 03 6534 6683 mov ax, bx ; 89 d8 6535 call 016 50h ; e8 24 ca6684 call 016b8h ; e8 24 ca 6536 6685 test al, al ; 84 c0 6537 je short 04c 3bh ; 74 0b6686 je short 04ca3h ; 74 0b 6538 6687 mov dx, 0037dh ; ba 7d 03 6539 6688 mov ax, bx ; 89 d8 6540 call 016 50h ; e8 18 ca6689 call 016b8h ; e8 18 ca 6541 6690 movzx si, al ; 0f b6 f0 6542 6691 cmp byte [bp+004h], 001h ; 80 7e 04 01 6543 jne short 04c 51h ; 75 106692 jne short 04cb9h ; 75 10 6544 6693 mov ax, strict word 0003ch ; b8 3c 00 6545 call 01 6ach ; e8 65 ca6694 call 01714h ; e8 65 ca 6546 6695 and AL, strict byte 0f0h ; 24 f0 6547 6696 xor ah, ah ; 30 e4 6548 6697 sar ax, 004h ; c1 f8 04 6549 call 07 c87h ; e8 36306698 call 07d13h ; e8 5a 30 6550 6699 cmp byte [bp+004h], 002h ; 80 7e 04 02 6551 jne short 04c 5ah ; 75 036700 jne short 04cc2h ; 75 03 6552 6701 shr si, 004h ; c1 ee 04 6553 6702 cmp byte [bp+004h], 003h ; 80 7e 04 03 6554 jne short 04c 63h ; 75 036703 jne short 04ccbh ; 75 03 6555 6704 shr si, 008h ; c1 ee 08 6556 6705 cmp byte [bp+004h], 004h ; 80 7e 04 04 6557 jne short 04c 6ch ; 75 036706 jne short 04cd4h ; 75 03 6558 6707 shr si, 00ch ; c1 ee 0c 6559 6708 cmp si, strict byte 00010h ; 83 fe 10 6560 jnc short 04c 75h ; 73 046709 jnc short 04cddh ; 73 04 6561 6710 mov byte [bp-008h], 001h ; c6 46 f8 01 6562 6711 xor al, al ; 30 c0 … … 6567 6716 mov cx, ds ; 8c d9 6568 6717 mov ax, strict word 00004h ; b8 04 00 6569 call 019 31h ; e8 a6 cc6718 call 01999h ; e8 a6 cc 6570 6719 push si ; 56 6571 6720 movzx ax, byte [bp+004h] ; 0f b6 46 04 … … 6573 6722 push 00554h ; 68 54 05 6574 6723 push strict byte 00004h ; 6a 04 6575 call 019 72h ; e8 d9 cc6724 call 019dah ; e8 d9 cc 6576 6725 add sp, strict byte 00008h ; 83 c4 08 6577 6726 and si, strict byte 0000fh ; 83 e6 0f 6578 6727 cmp si, strict byte 00002h ; 83 fe 02 6579 jc short 04 cb2h ; 72 0e6580 jbe short 04 cc1h ; 76 1b6728 jc short 04d1ah ; 72 0e 6729 jbe short 04d29h ; 76 1b 6581 6730 cmp si, strict byte 00004h ; 83 fe 04 6582 je short 04 cdfh ; 74 346731 je short 04d47h ; 74 34 6583 6732 cmp si, strict byte 00003h ; 83 fe 03 6584 je short 04 cd5h ; 74 256585 jmp short 04d 0ch ; eb 5a6733 je short 04d3dh ; 74 25 6734 jmp short 04d74h ; eb 5a 6586 6735 cmp si, strict byte 00001h ; 83 fe 01 6587 jne short 04d 0ch ; 75 556736 jne short 04d74h ; 75 55 6588 6737 xor al, al ; 30 c0 6589 6738 mov byte [bp-006h], al ; 88 46 fa 6590 6739 mov byte [bp-00ah], al ; 88 46 f6 6591 jmp short 04d 24h ; eb 636740 jmp short 04d8ch ; eb 63 6592 6741 mov dx, 0037ch ; ba 7c 03 6593 6742 mov ax, word [bp-00eh] ; 8b 46 f2 6594 call 016 50h ; e8 86 c96743 call 016b8h ; e8 86 c9 6595 6744 add AL, strict byte 080h ; 04 80 6596 6745 mov byte [bp-006h], al ; 88 46 fa 6597 6746 mov byte [bp-00ah], 000h ; c6 46 f6 00 6598 jmp short 04d 24h ; eb 4f6747 jmp short 04d8ch ; eb 4f 6599 6748 mov byte [bp-006h], 000h ; c6 46 fa 00 6600 6749 mov byte [bp-00ah], 001h ; c6 46 f6 01 6601 jmp short 04 ce9h ; eb 0a6750 jmp short 04d51h ; eb 0a 6602 6751 mov byte [bp-00ch], 001h ; c6 46 f4 01 6603 6752 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6604 je short 04d 24h ; 74 3b6605 call 03d 32h ; e8 46 f06753 je short 04d8ch ; 74 3b 6754 call 03d9ah ; e8 46 f0 6606 6755 mov bx, ax ; 89 c3 6607 6756 test AL, strict byte 0ffh ; a8 ff 6608 je short 04d 13h ; 74 216609 call 04 bbch ; e8 c7 fe6757 je short 04d7bh ; 74 21 6758 call 04c24h ; e8 c7 fe 6610 6759 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6611 6760 push ax ; 50 … … 6614 6763 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6615 6764 mov cx, strict word 00001h ; b9 01 00 6616 call 04b 29h ; e8 1d fe6765 call 04b91h ; e8 1d fe 6617 6766 xor ax, ax ; 31 c0 6618 6767 xor dx, dx ; 31 d2 6619 jmp near 04e 32h ; e9 1f 016768 jmp near 04e9ah ; e9 1f 01 6620 6769 mov dx, 00372h ; ba 72 03 6621 6770 mov ax, word [bp-00eh] ; 8b 46 f2 6622 call 016 6ch ; e8 50 c96771 call 016d4h ; e8 50 c9 6623 6772 mov di, ax ; 89 c7 6624 6773 shr bx, 008h ; c1 eb 08 6625 6774 mov byte [bp-006h], bl ; 88 5e fa 6626 6775 cmp byte [bp-00ch], 001h ; 80 7e f4 01 6627 jne near 04 da0h ; 0f 85 74 006776 jne near 04e08h ; 0f 85 74 00 6628 6777 xor si, si ; 31 f6 6629 6778 mov ax, 0e200h ; b8 00 e2 6630 6779 mov es, ax ; 8e c0 6631 6780 cmp word [es:si], 0aa55h ; 26 81 3c 55 aa 6632 jne short 04 cf5h ; 75 bb6781 jne short 04d5dh ; 75 bb 6633 6782 mov cx, ax ; 89 c1 6634 6783 mov si, word [es:si+01ah] ; 26 8b 74 1a 6635 6784 cmp word [es:si+002h], 0506eh ; 26 81 7c 02 6e 50 6636 jne short 04 cf5h ; 75 ad6785 jne short 04d5dh ; 75 ad 6637 6786 cmp word [es:si], 05024h ; 26 81 3c 24 50 6638 jne short 04 cf5h ; 75 a66787 jne short 04d5dh ; 75 a6 6639 6788 mov di, word [es:si+00eh] ; 26 8b 7c 0e 6640 6789 mov dx, word [es:di] ; 26 8b 15 6641 6790 mov ax, word [es:di+002h] ; 26 8b 45 02 6642 6791 cmp ax, 06568h ; 3d 68 65 6643 jne short 04d 7eh ; 75 1f6792 jne short 04de6h ; 75 1f 6644 6793 cmp dx, 07445h ; 81 fa 45 74 6645 jne short 04d 7eh ; 75 196794 jne short 04de6h ; 75 19 6646 6795 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6647 6796 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 6648 6797 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6649 call 04 adeh ; e8 6a fd6798 call 04b46h ; e8 6a fd 6650 6799 mov word [bp-012h], strict word 00006h ; c7 46 ee 06 00 6651 6800 mov word [bp-010h], cx ; 89 4e f0 6652 jmp short 04 d9ah ; eb 1c6801 jmp short 04e02h ; eb 1c 6653 6802 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6654 6803 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 6655 6804 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6656 call 04 adeh ; e8 51 fd6805 call 04b46h ; e8 51 fd 6657 6806 sti ; fb 6658 6807 mov word [bp-010h], cx ; 89 4e f0 … … 6661 6810 mov word [bp-012h], ax ; 89 46 ee 6662 6811 call far [bp-012h] ; ff 5e ee 6663 jmp near 04 cf5h ; e9 55 ff6812 jmp near 04d5dh ; e9 55 ff 6664 6813 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6665 jne short 04 dcch ; 75 266814 jne short 04e34h ; 75 26 6666 6815 cmp byte [bp-00ch], 000h ; 80 7e f4 00 6667 jne short 04 dcch ; 75 206816 jne short 04e34h ; 75 20 6668 6817 mov di, 007c0h ; bf c0 07 6669 6818 mov es, di ; 8e c7 … … 6678 6827 sbb ax, strict byte 00000h ; 83 d8 00 6679 6828 test ax, ax ; 85 c0 6680 jne near 04 cf5h ; 0f 85 29 ff6829 jne near 04d5dh ; 0f 85 29 ff 6681 6830 cmp byte [bp-006h], 000h ; 80 7e fa 00 6682 6831 db 00fh, 094h, 0c1h 6683 6832 ; sete cl ; 0f 94 c1 6684 6833 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6685 je short 04 ddbh ; 74 026834 je short 04e43h ; 74 02 6686 6835 mov CL, strict byte 001h ; b1 01 6687 6836 xor dx, dx ; 31 d2 6688 6837 mov ax, di ; 89 f8 6689 call 016 6ch ; e8 8a c86838 call 016d4h ; e8 8a c8 6690 6839 mov bx, ax ; 89 c3 6691 6840 mov dx, strict word 00002h ; ba 02 00 6692 6841 mov ax, di ; 89 f8 6693 call 016 6ch ; e8 80 c86842 call 016d4h ; e8 80 c8 6694 6843 cmp bx, ax ; 39 c3 6695 je short 04e 01h ; 74 116844 je short 04e69h ; 74 11 6696 6845 test cl, cl ; 84 c9 6697 jne short 04e 17h ; 75 236846 jne short 04e7fh ; 75 23 6698 6847 mov dx, 001feh ; ba fe 01 6699 6848 mov ax, di ; 89 f8 6700 call 016 6ch ; e8 70 c86849 call 016d4h ; e8 70 c8 6701 6850 cmp ax, 0aa55h ; 3d 55 aa 6702 je short 04e 17h ; 74 166851 je short 04e7fh ; 74 16 6703 6852 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6704 6853 push ax ; 50 … … 6707 6856 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6708 6857 xor cx, cx ; 31 c9 6709 jmp near 04d 09h ; e9 f2 fe6858 jmp near 04d71h ; e9 f2 fe 6710 6859 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6711 6860 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 6712 6861 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6713 call 04 adeh ; e8 b8 fc6862 call 04b46h ; e8 b8 fc 6714 6863 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6715 6864 xor dx, dx ; 31 d2 … … 6722 6871 pop bp ; 5d 6723 6872 retn ; c3 6724 keyboard_panic_: ; 0xf4e 39LB 0x136873 keyboard_panic_: ; 0xf4ea1 LB 0x13 6725 6874 push bp ; 55 6726 6875 mov bp, sp ; 89 e5 … … 6728 6877 push 00574h ; 68 74 05 6729 6878 push strict byte 00007h ; 6a 07 6730 call 019 72h ; e8 2d cb6879 call 019dah ; e8 2d cb 6731 6880 add sp, strict byte 00006h ; 83 c4 06 6732 6881 mov sp, bp ; 89 ec 6733 6882 pop bp ; 5d 6734 6883 retn ; c3 6735 _keyboard_init: ; 0xf4e 4cLB 0x26a6884 _keyboard_init: ; 0xf4eb4 LB 0x26a 6736 6885 push bp ; 55 6737 6886 mov bp, sp ; 89 e5 … … 6745 6894 ; sub ah, ah ; 2a e4 6746 6895 test AL, strict byte 002h ; a8 02 6747 je short 04e 6fh ; 74 0d6896 je short 04ed7h ; 74 0d 6748 6897 dec bx ; 4b 6749 6898 test bx, bx ; 85 db 6750 jbe short 04e 6fh ; 76 086899 jbe short 04ed7h ; 76 08 6751 6900 xor al, al ; 30 c0 6752 6901 mov dx, 00080h ; ba 80 00 6753 6902 out DX, AL ; ee 6754 jmp short 04e 58h ; eb e96903 jmp short 04ec0h ; eb e9 6755 6904 test bx, bx ; 85 db 6756 jne short 04e 78h ; 75 056905 jne short 04ee0h ; 75 05 6757 6906 xor ax, ax ; 31 c0 6758 call 04e 39h ; e8 c1 ff6907 call 04ea1h ; e8 c1 ff 6759 6908 mov bx, strict word 0ffffh ; bb ff ff 6760 6909 mov dx, strict word 00064h ; ba 64 00 … … 6763 6912 ; sub ah, ah ; 2a e4 6764 6913 test AL, strict byte 001h ; a8 01 6765 jne short 04e 92h ; 75 0d6914 jne short 04efah ; 75 0d 6766 6915 dec bx ; 4b 6767 6916 test bx, bx ; 85 db 6768 jbe short 04e 92h ; 76 086917 jbe short 04efah ; 76 08 6769 6918 mov AL, strict byte 001h ; b0 01 6770 6919 mov dx, 00080h ; ba 80 00 6771 6920 out DX, AL ; ee 6772 jmp short 04e 7bh ; eb e96921 jmp short 04ee3h ; eb e9 6773 6922 test bx, bx ; 85 db 6774 jne short 04 e9ch ; 75 066923 jne short 04f04h ; 75 06 6775 6924 mov ax, strict word 00001h ; b8 01 00 6776 call 04e 39h ; e8 9d ff6925 call 04ea1h ; e8 9d ff 6777 6926 mov dx, strict word 00060h ; ba 60 00 6778 6927 in AL, DX ; ec … … 6780 6929 ; sub ah, ah ; 2a e4 6781 6930 cmp ax, strict word 00055h ; 3d 55 00 6782 je short 04 eadh ; 74 066931 je short 04f15h ; 74 06 6783 6932 mov ax, 003dfh ; b8 df 03 6784 call 04e 39h ; e8 8c ff6933 call 04ea1h ; e8 8c ff 6785 6934 mov AL, strict byte 0abh ; b0 ab 6786 6935 mov dx, strict word 00064h ; ba 64 00 … … 6792 6941 ; sub ah, ah ; 2a e4 6793 6942 test AL, strict byte 002h ; a8 02 6794 je short 04 ecdh ; 74 0d6943 je short 04f35h ; 74 0d 6795 6944 dec bx ; 4b 6796 6945 test bx, bx ; 85 db 6797 jbe short 04 ecdh ; 76 086946 jbe short 04f35h ; 76 08 6798 6947 mov AL, strict byte 010h ; b0 10 6799 6948 mov dx, 00080h ; ba 80 00 6800 6949 out DX, AL ; ee 6801 jmp short 04 eb6h ; eb e96950 jmp short 04f1eh ; eb e9 6802 6951 test bx, bx ; 85 db 6803 jne short 04 ed7h ; 75 066952 jne short 04f3fh ; 75 06 6804 6953 mov ax, strict word 0000ah ; b8 0a 00 6805 call 04e 39h ; e8 62 ff6954 call 04ea1h ; e8 62 ff 6806 6955 mov bx, strict word 0ffffh ; bb ff ff 6807 6956 mov dx, strict word 00064h ; ba 64 00 … … 6810 6959 ; sub ah, ah ; 2a e4 6811 6960 test AL, strict byte 001h ; a8 01 6812 jne short 04 ef1h ; 75 0d6961 jne short 04f59h ; 75 0d 6813 6962 dec bx ; 4b 6814 6963 test bx, bx ; 85 db 6815 jbe short 04 ef1h ; 76 086964 jbe short 04f59h ; 76 08 6816 6965 mov AL, strict byte 011h ; b0 11 6817 6966 mov dx, 00080h ; ba 80 00 6818 6967 out DX, AL ; ee 6819 jmp short 04 edah ; eb e96968 jmp short 04f42h ; eb e9 6820 6969 test bx, bx ; 85 db 6821 jne short 04 efbh ; 75 066970 jne short 04f63h ; 75 06 6822 6971 mov ax, strict word 0000bh ; b8 0b 00 6823 call 04e 39h ; e8 3e ff6972 call 04ea1h ; e8 3e ff 6824 6973 mov dx, strict word 00060h ; ba 60 00 6825 6974 in AL, DX ; ec … … 6827 6976 ; sub ah, ah ; 2a e4 6828 6977 test ax, ax ; 85 c0 6829 je short 04f 0bh ; 74 066978 je short 04f73h ; 74 06 6830 6979 mov ax, 003e0h ; b8 e0 03 6831 call 04e 39h ; e8 2e ff6980 call 04ea1h ; e8 2e ff 6832 6981 mov AL, strict byte 0ffh ; b0 ff 6833 6982 mov dx, strict word 00060h ; ba 60 00 … … 6839 6988 ; sub ah, ah ; 2a e4 6840 6989 test AL, strict byte 002h ; a8 02 6841 je short 04f 2bh ; 74 0d6990 je short 04f93h ; 74 0d 6842 6991 dec bx ; 4b 6843 6992 test bx, bx ; 85 db 6844 jbe short 04f 2bh ; 76 086993 jbe short 04f93h ; 76 08 6845 6994 mov AL, strict byte 020h ; b0 20 6846 6995 mov dx, 00080h ; ba 80 00 6847 6996 out DX, AL ; ee 6848 jmp short 04f 14h ; eb e96997 jmp short 04f7ch ; eb e9 6849 6998 test bx, bx ; 85 db 6850 jne short 04f 35h ; 75 066999 jne short 04f9dh ; 75 06 6851 7000 mov ax, strict word 00014h ; b8 14 00 6852 call 04e 39h ; e8 04 ff7001 call 04ea1h ; e8 04 ff 6853 7002 mov bx, strict word 0ffffh ; bb ff ff 6854 7003 mov dx, strict word 00064h ; ba 64 00 … … 6857 7006 ; sub ah, ah ; 2a e4 6858 7007 test AL, strict byte 001h ; a8 01 6859 jne short 04f 4fh ; 75 0d7008 jne short 04fb7h ; 75 0d 6860 7009 dec bx ; 4b 6861 7010 test bx, bx ; 85 db 6862 jbe short 04f 4fh ; 76 087011 jbe short 04fb7h ; 76 08 6863 7012 mov AL, strict byte 021h ; b0 21 6864 7013 mov dx, 00080h ; ba 80 00 6865 7014 out DX, AL ; ee 6866 jmp short 04f 38h ; eb e97015 jmp short 04fa0h ; eb e9 6867 7016 test bx, bx ; 85 db 6868 jne short 04f 59h ; 75 067017 jne short 04fc1h ; 75 06 6869 7018 mov ax, strict word 00015h ; b8 15 00 6870 call 04e 39h ; e8 e0 fe7019 call 04ea1h ; e8 e0 fe 6871 7020 mov dx, strict word 00060h ; ba 60 00 6872 7021 in AL, DX ; ec … … 6874 7023 ; sub ah, ah ; 2a e4 6875 7024 cmp ax, 000fah ; 3d fa 00 6876 je short 04f 6ah ; 74 067025 je short 04fd2h ; 74 06 6877 7026 mov ax, 003e1h ; b8 e1 03 6878 call 04e 39h ; e8 cf fe7027 call 04ea1h ; e8 cf fe 6879 7028 mov dx, strict word 00064h ; ba 64 00 6880 7029 in AL, DX ; ec … … 6882 7031 ; sub ah, ah ; 2a e4 6883 7032 test AL, strict byte 001h ; a8 01 6884 jne short 04f 7ch ; 75 087033 jne short 04fe4h ; 75 08 6885 7034 mov AL, strict byte 031h ; b0 31 6886 7035 mov dx, 00080h ; ba 80 00 6887 7036 out DX, AL ; ee 6888 jmp short 04f 6ah ; eb ee7037 jmp short 04fd2h ; eb ee 6889 7038 mov dx, strict word 00060h ; ba 60 00 6890 7039 in AL, DX ; ec … … 6892 7041 ; sub ah, ah ; 2a e4 6893 7042 cmp ax, 000aah ; 3d aa 00 6894 je short 04f 95h ; 74 0e7043 je short 04ffdh ; 74 0e 6895 7044 in AL, DX ; ec 6896 7045 db 02ah, 0e4h 6897 7046 ; sub ah, ah ; 2a e4 6898 7047 cmp ax, 000aah ; 3d aa 00 6899 je short 04f 95h ; 74 067048 je short 04ffdh ; 74 06 6900 7049 mov ax, 003e2h ; b8 e2 03 6901 call 04e 39h ; e8 a4 fe7050 call 04ea1h ; e8 a4 fe 6902 7051 mov AL, strict byte 0f5h ; b0 f5 6903 7052 mov dx, strict word 00060h ; ba 60 00 … … 6909 7058 ; sub ah, ah ; 2a e4 6910 7059 test AL, strict byte 002h ; a8 02 6911 je short 0 4fb5h ; 74 0d7060 je short 0501dh ; 74 0d 6912 7061 dec bx ; 4b 6913 7062 test bx, bx ; 85 db 6914 jbe short 0 4fb5h ; 76 087063 jbe short 0501dh ; 76 08 6915 7064 mov AL, strict byte 040h ; b0 40 6916 7065 mov dx, 00080h ; ba 80 00 6917 7066 out DX, AL ; ee 6918 jmp short 0 4f9eh ; eb e97067 jmp short 05006h ; eb e9 6919 7068 test bx, bx ; 85 db 6920 jne short 0 4fbfh ; 75 067069 jne short 05027h ; 75 06 6921 7070 mov ax, strict word 00028h ; b8 28 00 6922 call 04e 39h ; e8 7a fe7071 call 04ea1h ; e8 7a fe 6923 7072 mov bx, strict word 0ffffh ; bb ff ff 6924 7073 mov dx, strict word 00064h ; ba 64 00 … … 6927 7076 ; sub ah, ah ; 2a e4 6928 7077 test AL, strict byte 001h ; a8 01 6929 jne short 0 4fd9h ; 75 0d7078 jne short 05041h ; 75 0d 6930 7079 dec bx ; 4b 6931 7080 test bx, bx ; 85 db 6932 jbe short 0 4fd9h ; 76 087081 jbe short 05041h ; 76 08 6933 7082 mov AL, strict byte 041h ; b0 41 6934 7083 mov dx, 00080h ; ba 80 00 6935 7084 out DX, AL ; ee 6936 jmp short 0 4fc2h ; eb e97085 jmp short 0502ah ; eb e9 6937 7086 test bx, bx ; 85 db 6938 jne short 0 4fe3h ; 75 067087 jne short 0504bh ; 75 06 6939 7088 mov ax, strict word 00029h ; b8 29 00 6940 call 04e 39h ; e8 56 fe7089 call 04ea1h ; e8 56 fe 6941 7090 mov dx, strict word 00060h ; ba 60 00 6942 7091 in AL, DX ; ec … … 6944 7093 ; sub ah, ah ; 2a e4 6945 7094 cmp ax, 000fah ; 3d fa 00 6946 je short 0 4ff4h ; 74 067095 je short 0505ch ; 74 06 6947 7096 mov ax, 003e3h ; b8 e3 03 6948 call 04e 39h ; e8 45 fe7097 call 04ea1h ; e8 45 fe 6949 7098 mov AL, strict byte 060h ; b0 60 6950 7099 mov dx, strict word 00064h ; ba 64 00 … … 6956 7105 ; sub ah, ah ; 2a e4 6957 7106 test AL, strict byte 002h ; a8 02 6958 je short 050 14h ; 74 0d7107 je short 0507ch ; 74 0d 6959 7108 dec bx ; 4b 6960 7109 test bx, bx ; 85 db 6961 jbe short 050 14h ; 76 087110 jbe short 0507ch ; 76 08 6962 7111 mov AL, strict byte 050h ; b0 50 6963 7112 mov dx, 00080h ; ba 80 00 6964 7113 out DX, AL ; ee 6965 jmp short 0 4ffdh ; eb e97114 jmp short 05065h ; eb e9 6966 7115 test bx, bx ; 85 db 6967 jne short 050 1eh ; 75 067116 jne short 05086h ; 75 06 6968 7117 mov ax, strict word 00032h ; b8 32 00 6969 call 04e 39h ; e8 1b fe7118 call 04ea1h ; e8 1b fe 6970 7119 mov AL, strict byte 065h ; b0 65 6971 7120 mov dx, strict word 00060h ; ba 60 00 … … 6977 7126 ; sub ah, ah ; 2a e4 6978 7127 test AL, strict byte 002h ; a8 02 6979 je short 050 3eh ; 74 0d7128 je short 050a6h ; 74 0d 6980 7129 dec bx ; 4b 6981 7130 test bx, bx ; 85 db 6982 jbe short 050 3eh ; 76 087131 jbe short 050a6h ; 76 08 6983 7132 mov AL, strict byte 060h ; b0 60 6984 7133 mov dx, 00080h ; ba 80 00 6985 7134 out DX, AL ; ee 6986 jmp short 050 27h ; eb e97135 jmp short 0508fh ; eb e9 6987 7136 test bx, bx ; 85 db 6988 jne short 050 48h ; 75 067137 jne short 050b0h ; 75 06 6989 7138 mov ax, strict word 0003ch ; b8 3c 00 6990 call 04e 39h ; e8 f1 fd7139 call 04ea1h ; e8 f1 fd 6991 7140 mov AL, strict byte 0f4h ; b0 f4 6992 7141 mov dx, strict word 00060h ; ba 60 00 … … 6998 7147 ; sub ah, ah ; 2a e4 6999 7148 test AL, strict byte 002h ; a8 02 7000 je short 050 68h ; 74 0d7149 je short 050d0h ; 74 0d 7001 7150 dec bx ; 4b 7002 7151 test bx, bx ; 85 db 7003 jbe short 050 68h ; 76 087152 jbe short 050d0h ; 76 08 7004 7153 mov AL, strict byte 070h ; b0 70 7005 7154 mov dx, 00080h ; ba 80 00 7006 7155 out DX, AL ; ee 7007 jmp short 050 51h ; eb e97156 jmp short 050b9h ; eb e9 7008 7157 test bx, bx ; 85 db 7009 jne short 050 72h ; 75 067158 jne short 050dah ; 75 06 7010 7159 mov ax, strict word 00046h ; b8 46 00 7011 call 04e 39h ; e8 c7 fd7160 call 04ea1h ; e8 c7 fd 7012 7161 mov bx, strict word 0ffffh ; bb ff ff 7013 7162 mov dx, strict word 00064h ; ba 64 00 … … 7016 7165 ; sub ah, ah ; 2a e4 7017 7166 test AL, strict byte 001h ; a8 01 7018 jne short 050 8ch ; 75 0d7167 jne short 050f4h ; 75 0d 7019 7168 dec bx ; 4b 7020 7169 test bx, bx ; 85 db 7021 jbe short 050 8ch ; 76 087170 jbe short 050f4h ; 76 08 7022 7171 mov AL, strict byte 071h ; b0 71 7023 7172 mov dx, 00080h ; ba 80 00 7024 7173 out DX, AL ; ee 7025 jmp short 050 75h ; eb e97174 jmp short 050ddh ; eb e9 7026 7175 test bx, bx ; 85 db 7027 jne short 050 96h ; 75 067176 jne short 050feh ; 75 06 7028 7177 mov ax, strict word 00046h ; b8 46 00 7029 call 04e 39h ; e8 a3 fd7178 call 04ea1h ; e8 a3 fd 7030 7179 mov dx, strict word 00060h ; ba 60 00 7031 7180 in AL, DX ; ec … … 7033 7182 ; sub ah, ah ; 2a e4 7034 7183 cmp ax, 000fah ; 3d fa 00 7035 je short 05 0a7h ; 74 067184 je short 0510fh ; 74 06 7036 7185 mov ax, 003e4h ; b8 e4 03 7037 call 04e 39h ; e8 92 fd7186 call 04ea1h ; e8 92 fd 7038 7187 mov AL, strict byte 0a8h ; b0 a8 7039 7188 mov dx, strict word 00064h ; ba 64 00 7040 7189 out DX, AL ; ee 7041 7190 xor ax, ax ; 31 c0 7042 call 06 4b6h ; e8 04147191 call 06561h ; e8 47 14 7043 7192 mov sp, bp ; 89 ec 7044 7193 pop bp ; 5d 7045 7194 retn ; c3 7046 enqueue_key_: ; 0xf5 0b6LB 0x997195 enqueue_key_: ; 0xf511e LB 0x99 7047 7196 push bp ; 55 7048 7197 mov bp, sp ; 89 e5 … … 7056 7205 mov dx, strict word 0001ah ; ba 1a 00 7057 7206 mov ax, strict word 00040h ; b8 40 00 7058 call 016 6ch ; e8 a0 c57207 call 016d4h ; e8 a0 c5 7059 7208 mov di, ax ; 89 c7 7060 7209 mov dx, strict word 0001ch ; ba 1c 00 7061 7210 mov ax, strict word 00040h ; b8 40 00 7062 call 016 6ch ; e8 95 c57211 call 016d4h ; e8 95 c5 7063 7212 mov si, ax ; 89 c6 7064 7213 lea cx, [si+002h] ; 8d 4c 02 7065 7214 cmp cx, strict byte 0003eh ; 83 f9 3e 7066 jc short 05 0e4h ; 72 037215 jc short 0514ch ; 72 03 7067 7216 mov cx, strict word 0001eh ; b9 1e 00 7068 7217 cmp cx, di ; 39 f9 7069 jne short 05 0ech ; 75 047218 jne short 05154h ; 75 04 7070 7219 xor ax, ax ; 31 c0 7071 jmp short 051 11h ; eb 257220 jmp short 05179h ; eb 25 7072 7221 xor bh, bh ; 30 ff 7073 7222 mov dx, si ; 89 f2 7074 7223 mov ax, strict word 00040h ; b8 40 00 7075 call 016 5eh ; e8 68 c57224 call 016c6h ; e8 68 c5 7076 7225 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 7077 7226 lea dx, [si+001h] ; 8d 54 01 7078 7227 mov ax, strict word 00040h ; b8 40 00 7079 call 016 5eh ; e8 5b c57228 call 016c6h ; e8 5b c5 7080 7229 mov bx, cx ; 89 cb 7081 7230 mov dx, strict word 0001ch ; ba 1c 00 7082 7231 mov ax, strict word 00040h ; b8 40 00 7083 call 016 7ah ; e8 6c c57232 call 016e2h ; e8 6c c5 7084 7233 mov ax, strict word 00001h ; b8 01 00 7085 7234 lea sp, [bp-008h] ; 8d 66 f8 … … 7100 7249 cmp bh, byte [bx+si] ; 3a 38 7101 7250 sub bl, byte [ss:di] ; 36 2a 1d 7102 jnbe short 05181h ; 77 54 7103 inc ax ; 40 7251 fist word [si-058h] ; df 54 a8 7104 7252 push dx ; 52 7105 call 03983h ; e8 51 e8 7106 push cx ; 51 7107 leave ; c9 7253 push ax ; 50 7108 7254 push dx ; 52 7109 mov si, 04751h ; be 51 47 7255 push ax ; 50 7256 push dx ; 52 7257 xor word [bp+di+026h], dx ; 31 53 26 7258 push dx ; 52 7259 scasw ; af 7110 7260 push bx ; 53 7111 mov CH, strict byte 053h ; b5 53 7112 pop bp ; 5d 7261 sbb ax, 0c554h ; 1d 54 c5 7113 7262 push sp ; 54 7114 cmp word [si-07ch], dx ; 39 54 847263 mov ax, word [0ec54h] ; a1 54 ec 7115 7264 push dx ; 52 7116 call 03995h ; e8 51 e8 7117 push cx ; 51 7118 or byte [bp+di-026h], dl ; 08 53 da 7119 push cx ; 51 7120 xchg si, ax ; 96 7265 push ax ; 50 7266 push dx ; 52 7267 push ax ; 50 7268 push dx ; 52 7269 jo short 05202h ; 70 53 7270 inc dx ; 42 7271 push dx ; 52 7272 db 0feh 7121 7273 push bx ; 53 7122 sbb dl, byte [si+056h] ; 1a 54 567123 push sp ;547124 _int09_function: ; 0xf51 4fLB 0x4747274 db 082h, 054h, 0beh, 054h 7275 ; adc byte [si-042h], 054h ; 82 54 be 54 7276 _int09_function: ; 0xf51b7 LB 0x474 7125 7277 push bp ; 55 7126 7278 mov bp, sp ; 89 e5 … … 7130 7282 mov byte [bp-00ch], al ; 88 46 f4 7131 7283 test al, al ; 84 c0 7132 jne short 051 79h ; 75 197284 jne short 051e1h ; 75 19 7133 7285 mov bx, 00da0h ; bb a0 0d 7134 7286 mov cx, ds ; 8c d9 7135 7287 mov ax, strict word 00004h ; b8 04 00 7136 call 019 31h ; e8 c6 c77288 call 01999h ; e8 c6 c7 7137 7289 push 00587h ; 68 87 05 7138 7290 push strict byte 00004h ; 6a 04 7139 call 019 72h ; e8 ff c77291 call 019dah ; e8 ff c7 7140 7292 add sp, strict byte 00004h ; 83 c4 04 7141 jmp near 052 3ah ; e9 c1 007293 jmp near 052a2h ; e9 c1 00 7142 7294 mov dx, strict word 00018h ; ba 18 00 7143 7295 mov ax, strict word 00040h ; b8 40 00 7144 call 016 50h ; e8 ce c47296 call 016b8h ; e8 ce c4 7145 7297 mov byte [bp-006h], al ; 88 46 fa 7146 7298 mov byte [bp-00ah], al ; 88 46 f6 7147 7299 mov dx, 00096h ; ba 96 00 7148 7300 mov ax, strict word 00040h ; b8 40 00 7149 call 016 50h ; e8 bf c47301 call 016b8h ; e8 bf c4 7150 7302 mov byte [bp-00eh], al ; 88 46 f2 7151 7303 mov byte [bp-004h], al ; 88 46 fc 7152 7304 mov dx, strict word 00017h ; ba 17 00 7153 7305 mov ax, strict word 00040h ; b8 40 00 7154 call 016 50h ; e8 b0 c47306 call 016b8h ; e8 b0 c4 7155 7307 mov byte [bp-010h], al ; 88 46 f0 7156 7308 mov byte [bp-008h], al ; 88 46 f8 … … 7159 7311 pop ES ; 07 7160 7312 mov cx, strict word 00012h ; b9 12 00 7161 mov di, 051 1ah ; bf 1a517313 mov di, 05182h ; bf 82 51 7162 7314 repne scasb ; f2 ae 7163 7315 sal cx, 1 ; d1 e1 7164 7316 mov di, cx ; 89 cf 7165 mov ax, word [cs:di+051 2bh] ; 2e 8b 85 2b517317 mov ax, word [cs:di+05193h] ; 2e 8b 85 93 51 7166 7318 jmp ax ; ff e0 7167 7319 xor byte [bp-008h], 040h ; 80 76 f8 40 … … 7169 7321 mov dx, strict word 00017h ; ba 17 00 7170 7322 mov ax, strict word 00040h ; b8 40 00 7171 call 016 5eh ; e8 8f c47323 call 016c6h ; e8 8f c4 7172 7324 or byte [bp-00ah], 040h ; 80 4e f6 40 7173 7325 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 7174 jmp near 054 4ah ; e9 70 027326 jmp near 054b2h ; e9 70 02 7175 7327 mov al, byte [bp-006h] ; 8a 46 fa 7176 7328 and AL, strict byte 0bfh ; 24 bf 7177 7329 mov byte [bp-00ah], al ; 88 46 f6 7178 7330 movzx bx, al ; 0f b6 d8 7179 jmp near 054 4ah ; e9 62 027331 jmp near 054b2h ; e9 62 02 7180 7332 test byte [bp-004h], 002h ; f6 46 fc 02 7181 jne near 052 1ch ; 0f 85 2c 007333 jne near 05284h ; 0f 85 2c 00 7182 7334 mov al, byte [bp-00ch] ; 8a 46 f4 7183 7335 and AL, strict byte 07fh ; 24 7f … … 7189 7341 mov dl, al ; 88 c2 7190 7342 test byte [bp-00ch], 080h ; f6 46 f4 80 7191 je short 052 0ch ; 74 077343 je short 05274h ; 74 07 7192 7344 not al ; f6 d0 7193 7345 and byte [bp-008h], al ; 20 46 f8 7194 jmp short 052 0fh ; eb 037346 jmp short 05277h ; eb 03 7195 7347 or byte [bp-008h], al ; 08 46 f8 7196 7348 movzx bx, byte [bp-008h] ; 0f b6 5e f8 7197 7349 mov dx, strict word 00017h ; ba 17 00 7198 7350 mov ax, strict word 00040h ; b8 40 00 7199 call 016 5eh ; e8 42 c47351 call 016c6h ; e8 42 c4 7200 7352 mov al, byte [bp-00ch] ; 8a 46 f4 7201 7353 and AL, strict byte 07fh ; 24 7f 7202 7354 cmp AL, strict byte 01dh ; 3c 1d 7203 je short 052 29h ; 74 047355 je short 05291h ; 74 04 7204 7356 and byte [bp-004h], 0feh ; 80 66 fc fe 7205 7357 and byte [bp-004h], 0fdh ; 80 66 fc fd … … 7207 7359 mov dx, 00096h ; ba 96 00 7208 7360 mov ax, strict word 00040h ; b8 40 00 7209 call 016 5eh ; e8 24 c47361 call 016c6h ; e8 24 c4 7210 7362 lea sp, [bp-002h] ; 8d 66 fe 7211 7363 pop di ; 5f … … 7213 7365 retn ; c3 7214 7366 test byte [bp-00eh], 001h ; f6 46 f2 01 7215 jne short 052 1ch ; 75 d67367 jne short 05284h ; 75 d6 7216 7368 mov al, byte [bp-010h] ; 8a 46 f0 7217 7369 or AL, strict byte 004h ; 0c 04 … … 7220 7372 mov dx, strict word 00017h ; ba 17 00 7221 7373 mov ax, strict word 00040h ; b8 40 00 7222 call 016 5eh ; e8 04 c47374 call 016c6h ; e8 04 c4 7223 7375 mov al, byte [bp-00eh] ; 8a 46 f2 7224 7376 test AL, strict byte 002h ; a8 02 7225 je short 052 6eh ; 74 0d7377 je short 052d6h ; 74 0d 7226 7378 or AL, strict byte 004h ; 0c 04 7227 7379 mov byte [bp-004h], al ; 88 46 fc 7228 7380 movzx bx, al ; 0f b6 d8 7229 7381 mov dx, 00096h ; ba 96 00 7230 jmp short 052 7ch ; eb 0e7382 jmp short 052e4h ; eb 0e 7231 7383 mov al, byte [bp-006h] ; 8a 46 fa 7232 7384 or AL, strict byte 001h ; 0c 01 … … 7235 7387 mov dx, strict word 00018h ; ba 18 00 7236 7388 mov ax, strict word 00040h ; b8 40 00 7237 call 016 5eh ; e8 dc c37238 jmp short 052 1ch ; eb 987389 call 016c6h ; e8 dc c3 7390 jmp short 05284h ; eb 98 7239 7391 test byte [bp-00eh], 001h ; f6 46 f2 01 7240 jne short 052 1ch ; 75 927392 jne short 05284h ; 75 92 7241 7393 mov al, byte [bp-010h] ; 8a 46 f0 7242 7394 and AL, strict byte 0fbh ; 24 fb … … 7245 7397 mov dx, strict word 00017h ; ba 17 00 7246 7398 mov ax, strict word 00040h ; b8 40 00 7247 call 016 5eh ; e8 c0 c37399 call 016c6h ; e8 c0 c3 7248 7400 mov al, byte [bp-00eh] ; 8a 46 f2 7249 7401 test AL, strict byte 002h ; a8 02 7250 je short 05 2b2h ; 74 0d7402 je short 0531ah ; 74 0d 7251 7403 and AL, strict byte 0fbh ; 24 fb 7252 7404 mov byte [bp-004h], al ; 88 46 fc 7253 7405 movzx bx, al ; 0f b6 d8 7254 7406 mov dx, 00096h ; ba 96 00 7255 jmp short 05 2c0h ; eb 0e7407 jmp short 05328h ; eb 0e 7256 7408 mov al, byte [bp-006h] ; 8a 46 fa 7257 7409 and AL, strict byte 0feh ; 24 fe … … 7260 7412 mov dx, strict word 00018h ; ba 18 00 7261 7413 mov ax, strict word 00040h ; b8 40 00 7262 call 016 5eh ; e8 98 c37263 jmp near 052 1ch ; e9 53 ff7414 call 016c6h ; e8 98 c3 7415 jmp near 05284h ; e9 53 ff 7264 7416 mov al, byte [bp-010h] ; 8a 46 f0 7265 7417 or AL, strict byte 008h ; 0c 08 … … 7268 7420 mov dx, strict word 00017h ; ba 17 00 7269 7421 mov ax, strict word 00040h ; b8 40 00 7270 call 016 5eh ; e8 81 c37422 call 016c6h ; e8 81 c3 7271 7423 mov al, byte [bp-00eh] ; 8a 46 f2 7272 7424 test AL, strict byte 002h ; a8 02 7273 je short 05 2f1h ; 74 0d7425 je short 05359h ; 74 0d 7274 7426 or AL, strict byte 008h ; 0c 08 7275 7427 mov byte [bp-004h], al ; 88 46 fc 7276 7428 movzx bx, al ; 0f b6 d8 7277 7429 mov dx, 00096h ; ba 96 00 7278 jmp short 05 2ffh ; eb 0e7430 jmp short 05367h ; eb 0e 7279 7431 mov al, byte [bp-006h] ; 8a 46 fa 7280 7432 or AL, strict byte 002h ; 0c 02 … … 7283 7435 mov dx, strict word 00018h ; ba 18 00 7284 7436 mov ax, strict word 00040h ; b8 40 00 7285 call 016 5eh ; e8 59 c37286 jmp near 052 1ch ; e9 14 ff7437 call 016c6h ; e8 59 c3 7438 jmp near 05284h ; e9 14 ff 7287 7439 mov al, byte [bp-010h] ; 8a 46 f0 7288 7440 and AL, strict byte 0f7h ; 24 f7 … … 7291 7443 mov dx, strict word 00017h ; ba 17 00 7292 7444 mov ax, strict word 00040h ; b8 40 00 7293 call 016 5eh ; e8 42 c37445 call 016c6h ; e8 42 c3 7294 7446 mov al, byte [bp-00eh] ; 8a 46 f2 7295 7447 test AL, strict byte 002h ; a8 02 7296 je short 053 30h ; 74 0d7448 je short 05398h ; 74 0d 7297 7449 and AL, strict byte 0f7h ; 24 f7 7298 7450 mov byte [bp-004h], al ; 88 46 fc 7299 7451 movzx bx, al ; 0f b6 d8 7300 7452 mov dx, 00096h ; ba 96 00 7301 jmp short 053 3eh ; eb 0e7453 jmp short 053a6h ; eb 0e 7302 7454 mov al, byte [bp-006h] ; 8a 46 fa 7303 7455 and AL, strict byte 0fdh ; 24 fd … … 7306 7458 mov dx, strict word 00018h ; ba 18 00 7307 7459 mov ax, strict word 00040h ; b8 40 00 7308 call 016 5eh ; e8 1a c37309 jmp near 052 1ch ; e9 d5 fe7460 call 016c6h ; e8 1a c3 7461 jmp near 05284h ; e9 d5 fe 7310 7462 test byte [bp-00eh], 003h ; f6 46 f2 03 7311 jne short 053 69h ; 75 1c7463 jne short 053d1h ; 75 1c 7312 7464 mov al, byte [bp-006h] ; 8a 46 fa 7313 7465 or AL, strict byte 020h ; 0c 20 … … 7316 7468 mov dx, strict word 00018h ; ba 18 00 7317 7469 mov ax, strict word 00040h ; b8 40 00 7318 call 016 5eh ; e8 fd c27470 call 016c6h ; e8 fd c2 7319 7471 mov al, byte [bp-010h] ; 8a 46 f0 7320 7472 xor AL, strict byte 020h ; 34 20 7321 jmp near 054 08h ; e9 9f 007473 jmp near 05470h ; e9 9f 00 7322 7474 mov al, byte [bp-006h] ; 8a 46 fa 7323 7475 or AL, strict byte 008h ; 0c 08 … … 7326 7478 mov dx, strict word 00018h ; ba 18 00 7327 7479 mov ax, strict word 00040h ; b8 40 00 7328 call 016 5eh ; e8 e1 c27480 call 016c6h ; e8 e1 c2 7329 7481 mov AL, strict byte 0aeh ; b0 ae 7330 7482 mov dx, strict word 00064h ; ba 64 00 7331 7483 out DX, AL ; ee 7332 call 0e034h ; e8 ae8c7484 call 0e034h ; e8 46 8c 7333 7485 mov dx, strict word 00018h ; ba 18 00 7334 7486 mov ax, strict word 00040h ; b8 40 00 7335 call 016 50h ; e8 c1 c27487 call 016b8h ; e8 c1 c2 7336 7488 test AL, strict byte 008h ; a8 08 7337 jne short 053 86h ; 75 f37338 jmp near 052 1ch ; e9 86 fe7489 jne short 053eeh ; 75 f3 7490 jmp near 05284h ; e9 86 fe 7339 7491 test byte [bp-00eh], 003h ; f6 46 f2 03 7340 jne near 052 1ch ; 0f 85 7e fe7492 jne near 05284h ; 0f 85 7e fe 7341 7493 mov al, byte [bp-006h] ; 8a 46 fa 7342 7494 and AL, strict byte 0dfh ; 24 df … … 7345 7497 mov dx, strict word 00018h ; ba 18 00 7346 7498 mov ax, strict word 00040h ; b8 40 00 7347 call 016 5eh ; e8 ac c27348 jmp near 052 1ch ; e9 67 fe7499 call 016c6h ; e8 ac c2 7500 jmp near 05284h ; e9 67 fe 7349 7501 test byte [bp-00eh], 002h ; f6 46 f2 02 7350 je short 05 3efh ; 74 347502 je short 05457h ; 74 34 7351 7503 mov dx, strict word 0001ah ; ba 1a 00 7352 7504 mov ax, strict word 00040h ; b8 40 00 7353 call 016 6ch ; e8 a8 c27505 call 016d4h ; e8 a8 c2 7354 7506 mov bx, ax ; 89 c3 7355 7507 mov dx, strict word 0001ch ; ba 1c 00 7356 7508 mov ax, strict word 00040h ; b8 40 00 7357 call 016 7ah ; e8 ab c27509 call 016e2h ; e8 ab c2 7358 7510 mov bx, 00080h ; bb 80 00 7359 7511 mov dx, strict word 00071h ; ba 71 00 7360 7512 mov ax, strict word 00040h ; b8 40 00 7361 call 016 5eh ; e8 83 c27513 call 016c6h ; e8 83 c2 7362 7514 mov AL, strict byte 0aeh ; b0 ae 7363 7515 mov dx, strict word 00064h ; ba 64 00 … … 7368 7520 xor dx, dx ; 31 d2 7369 7521 xor ax, ax ; 31 c0 7370 call 05 0b6h ; e8 ca fc7371 jmp near 052 1ch ; e9 2d fe7522 call 0511eh ; e8 ca fc 7523 jmp near 05284h ; e9 2d fe 7372 7524 mov al, byte [bp-006h] ; 8a 46 fa 7373 7525 or AL, strict byte 010h ; 0c 10 … … 7376 7528 mov dx, strict word 00018h ; ba 18 00 7377 7529 mov ax, strict word 00040h ; b8 40 00 7378 call 016 5eh ; e8 5b c27530 call 016c6h ; e8 5b c2 7379 7531 mov al, byte [bp-010h] ; 8a 46 f0 7380 7532 xor AL, strict byte 010h ; 34 10 … … 7383 7535 mov dx, strict word 00017h ; ba 17 00 7384 7536 mov ax, strict word 00040h ; b8 40 00 7385 call 016 5eh ; e8 47 c27386 jmp near 052 1ch ; e9 02 fe7537 call 016c6h ; e8 47 c2 7538 jmp near 05284h ; e9 02 fe 7387 7539 test byte [bp-00eh], 002h ; f6 46 f2 02 7388 jne near 052 1ch ; 0f 85 fa fd7540 jne near 05284h ; 0f 85 fa fd 7389 7541 mov al, byte [bp-006h] ; 8a 46 fa 7390 7542 and AL, strict byte 0efh ; 24 ef … … 7393 7545 mov dx, strict word 00018h ; ba 18 00 7394 7546 mov ax, strict word 00040h ; b8 40 00 7395 call 016 5eh ; e8 28 c27396 jmp near 052 1ch ; e9 e3 fd7547 call 016c6h ; e8 28 c2 7548 jmp near 05284h ; e9 e3 fd 7397 7549 mov al, byte [bp-006h] ; 8a 46 fa 7398 7550 test AL, strict byte 004h ; a8 04 7399 jne near 052 1ch ; 0f 85 da fd7551 jne near 05284h ; 0f 85 da fd 7400 7552 or AL, strict byte 004h ; 0c 04 7401 7553 mov byte [bp-00ah], al ; 88 46 f6 … … 7403 7555 mov dx, strict word 00018h ; ba 18 00 7404 7556 mov ax, strict word 00040h ; b8 40 00 7405 call 016 5eh ; e8 0b c27406 jmp near 052 1ch ; e9 c6 fd7557 call 016c6h ; e8 0b c2 7558 jmp near 05284h ; e9 c6 fd 7407 7559 mov al, byte [bp-006h] ; 8a 46 fa 7408 7560 and AL, strict byte 0fbh ; 24 fb 7409 jmp short 054 44h ; eb e77561 jmp short 054ach ; eb e7 7410 7562 mov al, byte [bp-010h] ; 8a 46 f0 7411 7563 and AL, strict byte 00ch ; 24 0c 7412 7564 cmp AL, strict byte 00ch ; 3c 0c 7413 jne short 054 77h ; 75 117565 jne short 054dfh ; 75 11 7414 7566 mov bx, 01234h ; bb 34 12 7415 7567 mov dx, strict word 00072h ; ba 72 00 7416 7568 mov ax, strict word 00040h ; b8 40 00 7417 call 016 7ah ; e8 08 c27569 call 016e2h ; e8 08 c2 7418 7570 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 7419 7571 test byte [bp-00ah], 008h ; f6 46 f6 08 7420 je short 054 8bh ; 74 0e7572 je short 054f3h ; 74 0e 7421 7573 and byte [bp-00ah], 0f7h ; 80 66 f6 f7 7422 7574 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 7423 7575 mov dx, strict word 00018h ; ba 18 00 7424 jmp near 052 34h ; e9 a9 fd7576 jmp near 0529ch ; e9 a9 fd 7425 7577 mov al, byte [bp-00ch] ; 8a 46 f4 7426 7578 test AL, strict byte 080h ; a8 80 7427 je short 05 4c9h ; 74 377579 je short 05531h ; 74 37 7428 7580 cmp AL, strict byte 0fah ; 3c fa 7429 jne short 05 4a6h ; 75 107581 jne short 0550eh ; 75 10 7430 7582 mov dx, 00097h ; ba 97 00 7431 7583 mov ax, strict word 00040h ; b8 40 00 7432 call 016 50h ; e8 b1 c17584 call 016b8h ; e8 b1 c1 7433 7585 mov dl, al ; 88 c2 7434 7586 or dl, 010h ; 80 ca 10 7435 jmp short 05 4bah ; eb 147587 jmp short 05522h ; eb 14 7436 7588 cmp AL, strict byte 0feh ; 3c fe 7437 jne near 052 1ch ; 0f 85 70 fd7589 jne near 05284h ; 0f 85 70 fd 7438 7590 mov dx, 00097h ; ba 97 00 7439 7591 mov ax, strict word 00040h ; b8 40 00 7440 call 016 50h ; e8 9b c17592 call 016b8h ; e8 9b c1 7441 7593 mov dl, al ; 88 c2 7442 7594 or dl, 020h ; 80 ca 20 … … 7444 7596 mov dx, 00097h ; ba 97 00 7445 7597 mov ax, strict word 00040h ; b8 40 00 7446 call 016 5eh ; e8 98 c17447 jmp near 052 1ch ; e9 53 fd7598 call 016c6h ; e8 98 c1 7599 jmp near 05284h ; e9 53 fd 7448 7600 cmp byte [bp-00ch], 058h ; 80 7e f4 58 7449 jbe short 05 4edh ; 76 1e7601 jbe short 05555h ; 76 1e 7450 7602 mov bx, 00da0h ; bb a0 0d 7451 7603 mov cx, ds ; 8c d9 7452 7604 mov ax, strict word 00004h ; b8 04 00 7453 call 019 31h ; e8 57 c47605 call 01999h ; e8 57 c4 7454 7606 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 7455 7607 push ax ; 50 7456 7608 push 005a1h ; 68 a1 05 7457 7609 push strict byte 00004h ; 6a 04 7458 call 019 72h ; e8 8b c47610 call 019dah ; e8 8b c4 7459 7611 add sp, strict byte 00006h ; 83 c4 06 7460 jmp near 052 3ah ; e9 4d fd7612 jmp near 052a2h ; e9 4d fd 7461 7613 mov al, byte [bp-008h] ; 8a 46 f8 7462 7614 test AL, strict byte 008h ; a8 08 7463 je short 055 06h ; 74 127615 je short 0556eh ; 74 12 7464 7616 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 7465 7617 imul bx, bx, strict byte 0000ah ; 6b db 0a 7466 7618 mov dl, byte [bx+00df4h] ; 8a 97 f4 0d 7467 7619 mov ax, word [bx+00df4h] ; 8b 87 f4 0d 7468 jmp near 055 94h ; e9 8e 007620 jmp near 055fch ; e9 8e 00 7469 7621 test AL, strict byte 004h ; a8 04 7470 je short 055 1ch ; 74 127622 je short 05584h ; 74 12 7471 7623 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 7472 7624 imul bx, bx, strict byte 0000ah ; 6b db 0a 7473 7625 mov dl, byte [bx+00df2h] ; 8a 97 f2 0d 7474 7626 mov ax, word [bx+00df2h] ; 8b 87 f2 0d 7475 jmp near 055 94h ; e9 78 007627 jmp near 055fch ; e9 78 00 7476 7628 mov al, byte [bp-004h] ; 8a 46 fc 7477 7629 and AL, strict byte 002h ; 24 02 7478 7630 test al, al ; 84 c0 7479 jbe short 055 3ah ; 76 157631 jbe short 055a2h ; 76 15 7480 7632 mov al, byte [bp-00ch] ; 8a 46 f4 7481 7633 cmp AL, strict byte 047h ; 3c 47 7482 jc short 055 3ah ; 72 0e7634 jc short 055a2h ; 72 0e 7483 7635 cmp AL, strict byte 053h ; 3c 53 7484 jnbe short 055 3ah ; 77 0a7636 jnbe short 055a2h ; 77 0a 7485 7637 mov DL, strict byte 0e0h ; b2 e0 7486 7638 movzx bx, al ; 0f b6 d8 7487 7639 imul bx, bx, strict byte 0000ah ; 6b db 0a 7488 jmp short 055 90h ; eb 567640 jmp short 055f8h ; eb 56 7489 7641 test byte [bp-008h], 003h ; f6 46 f8 03 7490 je short 055 6eh ; 74 2e7642 je short 055d6h ; 74 2e 7491 7643 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 7492 7644 imul bx, bx, strict byte 0000ah ; 6b db 0a … … 7494 7646 movzx dx, byte [bp-008h] ; 0f b6 56 f8 7495 7647 test dx, ax ; 85 c2 7496 je short 055 5eh ; 74 0a7648 je short 055c6h ; 74 0a 7497 7649 mov dl, byte [bx+00deeh] ; 8a 97 ee 0d 7498 7650 mov ax, word [bx+00deeh] ; 8b 87 ee 0d 7499 jmp short 055 66h ; eb 087651 jmp short 055ceh ; eb 08 7500 7652 mov dl, byte [bx+00df0h] ; 8a 97 f0 0d 7501 7653 mov ax, word [bx+00df0h] ; 8b 87 f0 0d 7502 7654 shr ax, 008h ; c1 e8 08 7503 7655 mov byte [bp-00ch], al ; 88 46 f4 7504 jmp short 05 59ah ; eb 2c7656 jmp short 05602h ; eb 2c 7505 7657 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 7506 7658 imul bx, bx, strict byte 0000ah ; 6b db 0a … … 7508 7660 movzx dx, byte [bp-008h] ; 0f b6 56 f8 7509 7661 test dx, ax ; 85 c2 7510 je short 055 8ch ; 74 0a7662 je short 055f4h ; 74 0a 7511 7663 mov dl, byte [bx+00df0h] ; 8a 97 f0 0d 7512 7664 mov ax, word [bx+00df0h] ; 8b 87 f0 0d 7513 jmp short 055 94h ; eb 087665 jmp short 055fch ; eb 08 7514 7666 mov dl, byte [bx+00deeh] ; 8a 97 ee 0d 7515 7667 mov ax, word [bx+00deeh] ; 8b 87 ee 0d … … 7517 7669 mov byte [bp-00ch], al ; 88 46 f4 7518 7670 cmp byte [bp-00ch], 000h ; 80 7e f4 00 7519 jne short 05 5bah ; 75 1a7671 jne short 05622h ; 75 1a 7520 7672 test dl, dl ; 84 d2 7521 jne short 05 5bah ; 75 167673 jne short 05622h ; 75 16 7522 7674 mov bx, 00da0h ; bb a0 0d 7523 7675 mov cx, ds ; 8c d9 7524 7676 mov ax, strict word 00004h ; b8 04 00 7525 call 019 31h ; e8 82 c37677 call 01999h ; e8 82 c3 7526 7678 push 005d8h ; 68 d8 05 7527 7679 push strict byte 00004h ; 6a 04 7528 call 019 72h ; e8 bb c37680 call 019dah ; e8 bb c3 7529 7681 add sp, strict byte 00004h ; 83 c4 04 7530 7682 xor dh, dh ; 30 f6 7531 7683 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 7532 jmp near 05 3e9h ; e9 26 fe7533 dequeue_key_: ; 0xf5 5c3LB 0x947684 jmp near 05451h ; e9 26 fe 7685 dequeue_key_: ; 0xf562b LB 0x94 7534 7686 push bp ; 55 7535 7687 mov bp, sp ; 89 e5 … … 7544 7696 mov dx, strict word 0001ah ; ba 1a 00 7545 7697 mov ax, strict word 00040h ; b8 40 00 7546 call 016 6ch ; e8 8f c07698 call 016d4h ; e8 8f c0 7547 7699 mov bx, ax ; 89 c3 7548 7700 mov dx, strict word 0001ch ; ba 1c 00 7549 7701 mov ax, strict word 00040h ; b8 40 00 7550 call 016 6ch ; e8 84 c07702 call 016d4h ; e8 84 c0 7551 7703 cmp bx, ax ; 39 c3 7552 je short 056 29h ; 74 3d7704 je short 05691h ; 74 3d 7553 7705 mov dx, bx ; 89 da 7554 7706 mov ax, strict word 00040h ; b8 40 00 7555 call 016 50h ; e8 5c c07707 call 016b8h ; e8 5c c0 7556 7708 mov cl, al ; 88 c1 7557 7709 lea dx, [bx+001h] ; 8d 57 01 7558 7710 mov ax, strict word 00040h ; b8 40 00 7559 call 016 50h ; e8 51 c07711 call 016b8h ; e8 51 c0 7560 7712 mov es, [bp-008h] ; 8e 46 f8 7561 7713 mov byte [es:si], cl ; 26 88 0c … … 7563 7715 mov byte [es:di], al ; 26 88 05 7564 7716 cmp word [bp+004h], strict byte 00000h ; 83 7e 04 00 7565 je short 056 24h ; 74 137717 je short 0568ch ; 74 13 7566 7718 inc bx ; 43 7567 7719 inc bx ; 43 7568 7720 cmp bx, strict byte 0003eh ; 83 fb 3e 7569 jc short 056 1bh ; 72 037721 jc short 05683h ; 72 03 7570 7722 mov bx, strict word 0001eh ; bb 1e 00 7571 7723 mov dx, strict word 0001ah ; ba 1a 00 7572 7724 mov ax, strict word 00040h ; b8 40 00 7573 call 016 7ah ; e8 56 c07725 call 016e2h ; e8 56 c0 7574 7726 mov ax, strict word 00001h ; b8 01 00 7575 jmp short 056 2bh ; eb 027727 jmp short 05693h ; eb 02 7576 7728 xor ax, ax ; 31 c0 7577 7729 lea sp, [bp-004h] ; 8d 66 fc … … 7584 7736 or cl, byte [bx+di] ; 0a 09 7585 7737 add ax, 00102h ; 05 02 01 7586 add ch, dh ; 00 f5 7738 add byte [di+059h], bl ; 00 5d 59 7739 jnc short 05702h ; 73 57 7740 mov dx, 00657h ; ba 57 06 7587 7741 pop ax ; 58 7588 or dx, word [bx+052h] ; 0b 57 52 7589 push di ; 57 7590 sahf ; 9e 7591 push di ; 57 7592 scasb ; ae 7593 push di ; 57 7594 fcom dword [bx-01fh] ; d8 57 e1 7595 push di ; 57 7596 push dx ; 52 7742 push SS ; 16 7597 7743 pop ax ; 58 7598 sbb word [bx+si-050h], strict byte 00058h ; 83 58 b0 58 7599 db 0eah 7744 inc ax ; 40 7600 7745 pop ax ; 58 7601 db 038h 7746 dec cx ; 49 7747 pop ax ; 58 7748 mov dx, 0eb58h ; ba 58 eb 7749 pop ax ; 58 7750 sbb byte [bx+di+052h], bl ; 18 59 52 7602 7751 pop cx ; 59 7603 _int16_function: ; 0xf5657 LB 0x2e7 7752 db 0a0h 7753 pop cx ; 59 7754 _int16_function: ; 0xf56bf LB 0x2e7 7604 7755 push bp ; 55 7605 7756 mov bp, sp ; 89 e5 … … 7608 7759 mov dx, strict word 00017h ; ba 17 00 7609 7760 mov ax, strict word 00040h ; b8 40 00 7610 call 016 50h ; e8 e9 bf7761 call 016b8h ; e8 e9 bf 7611 7762 mov cl, al ; 88 c1 7612 7763 mov bh, al ; 88 c7 7613 7764 mov dx, 00097h ; ba 97 00 7614 7765 mov ax, strict word 00040h ; b8 40 00 7615 call 016 50h ; e8 dc bf7766 call 016b8h ; e8 dc bf 7616 7767 mov bl, al ; 88 c3 7617 7768 movzx dx, cl ; 0f b6 d1 … … 7622 7773 xor al, dl ; 30 d0 7623 7774 test ax, ax ; 85 c0 7624 je short 05 6e9h ; 74 607775 je short 05751h ; 74 60 7625 7776 cli ; fa 7626 7777 mov AL, strict byte 0edh ; b0 ed … … 7632 7783 ; sub ah, ah ; 2a e4 7633 7784 test AL, strict byte 001h ; a8 01 7634 jne short 05 6a2h ; 75 087785 jne short 0570ah ; 75 08 7635 7786 mov AL, strict byte 021h ; b0 21 7636 7787 mov dx, 00080h ; ba 80 00 7637 7788 out DX, AL ; ee 7638 jmp short 056 90h ; eb ee7789 jmp short 056f8h ; eb ee 7639 7790 mov dx, strict word 00060h ; ba 60 00 7640 7791 in AL, DX ; ec … … 7642 7793 ; sub ah, ah ; 2a e4 7643 7794 cmp ax, 000fah ; 3d fa 00 7644 jne short 05 6e8h ; 75 3b7795 jne short 05750h ; 75 3b 7645 7796 and bl, 0c8h ; 80 e3 c8 7646 7797 movzx ax, bh ; 0f b6 c7 … … 7658 7809 ; sub ah, ah ; 2a e4 7659 7810 test AL, strict byte 001h ; a8 01 7660 jne short 05 6d7h ; 75 087811 jne short 0573fh ; 75 08 7661 7812 mov AL, strict byte 021h ; b0 21 7662 7813 mov dx, 00080h ; ba 80 00 7663 7814 out DX, AL ; ee 7664 jmp short 05 6c5h ; eb ee7815 jmp short 0572dh ; eb ee 7665 7816 mov dx, strict word 00060h ; ba 60 00 7666 7817 in AL, DX ; ec … … 7670 7821 mov dx, 00097h ; ba 97 00 7671 7822 mov ax, strict word 00040h ; b8 40 00 7672 call 016 5eh ; e8 76 bf7823 call 016c6h ; e8 76 bf 7673 7824 sti ; fb 7674 7825 mov ax, word [bp+012h] ; 8b 46 12 7675 7826 shr ax, 008h ; c1 e8 08 7676 7827 cmp ax, 000a2h ; 3d a2 00 7677 jnbe near 05 8f5h ; 0f 87 ff 017828 jnbe near 0595dh ; 0f 87 ff 01 7678 7829 push CS ; 0e 7679 7830 pop ES ; 07 7680 7831 mov cx, strict word 0000ch ; b9 0c 00 7681 mov di, 056 34h ; bf 34567832 mov di, 0569ch ; bf 9c 56 7682 7833 repne scasb ; f2 ae 7683 7834 sal cx, 1 ; d1 e1 7684 7835 mov di, cx ; 89 cf 7685 mov ax, word [cs:di+056 3fh] ; 2e 8b 85 3f567836 mov ax, word [cs:di+056a7h] ; 2e 8b 85 a7 56 7686 7837 jmp ax ; ff e0 7687 7838 push strict byte 00001h ; 6a 01 … … 7690 7841 mov dx, ss ; 8c d2 7691 7842 lea ax, [bp-006h] ; 8d 46 fa 7692 call 05 5c3h ; e8 a9 fe7843 call 0562bh ; e8 a9 fe 7693 7844 test ax, ax ; 85 c0 7694 jne short 057 29h ; 75 0b7845 jne short 05791h ; 75 0b 7695 7846 push 0060fh ; 68 0f 06 7696 7847 push strict byte 00007h ; 6a 07 7697 call 019 72h ; e8 4c c27848 call 019dah ; e8 4c c2 7698 7849 add sp, strict byte 00004h ; 83 c4 04 7699 7850 cmp byte [bp-006h], 000h ; 80 7e fa 00 7700 je short 057 35h ; 74 067851 je short 0579dh ; 74 06 7701 7852 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7702 je short 057 3bh ; 74 067853 je short 057a3h ; 74 06 7703 7854 cmp byte [bp-008h], 0e0h ; 80 7e f8 e0 7704 jne short 057 3fh ; 75 047855 jne short 057a7h ; 75 04 7705 7856 mov byte [bp-008h], 000h ; c6 46 f8 00 7706 7857 movzx dx, byte [bp-006h] ; 0f b6 56 fa … … 7709 7860 or dx, ax ; 09 c2 7710 7861 mov word [bp+012h], dx ; 89 56 12 7711 jmp near 059 38h ; e9 e6 017862 jmp near 059a0h ; e9 e6 01 7712 7863 or word [bp+01ch], 00200h ; 81 4e 1c 00 02 7713 7864 push strict byte 00000h ; 6a 00 … … 7716 7867 mov dx, ss ; 8c d2 7717 7868 lea ax, [bp-006h] ; 8d 46 fa 7718 call 05 5c3h ; e8 5d fe7869 call 0562bh ; e8 5d fe 7719 7870 test ax, ax ; 85 c0 7720 jne short 057 71h ; 75 077871 jne short 057d9h ; 75 07 7721 7872 or word [bp+01ch], strict byte 00040h ; 83 4e 1c 40 7722 jmp near 059 38h ; e9 c7 017873 jmp near 059a0h ; e9 c7 01 7723 7874 cmp byte [bp-006h], 000h ; 80 7e fa 00 7724 je short 057 7dh ; 74 067875 je short 057e5h ; 74 06 7725 7876 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7726 je short 057 83h ; 74 067877 je short 057ebh ; 74 06 7727 7878 cmp byte [bp-008h], 0e0h ; 80 7e f8 e0 7728 jne short 057 87h ; 75 047879 jne short 057efh ; 75 04 7729 7880 mov byte [bp-008h], 000h ; c6 46 f8 00 7730 7881 movzx dx, byte [bp-006h] ; 0f b6 56 fa … … 7734 7885 mov word [bp+012h], dx ; 89 56 12 7735 7886 and word [bp+01ch], strict byte 0ffbfh ; 83 66 1c bf 7736 jmp near 059 38h ; e9 9a 017887 jmp near 059a0h ; e9 9a 01 7737 7888 mov dx, strict word 00017h ; ba 17 00 7738 7889 mov ax, strict word 00040h ; b8 40 00 7739 call 016 50h ; e8 a9 be7890 call 016b8h ; e8 a9 be 7740 7891 mov dx, word [bp+012h] ; 8b 56 12 7741 7892 mov dl, al ; 88 c2 7742 jmp short 057 4ch ; eb 9e7893 jmp short 057b4h ; eb 9e 7743 7894 mov al, byte [bp+010h] ; 8a 46 10 7744 7895 movzx dx, al ; 0f b6 d0 … … 7746 7897 shr ax, 008h ; c1 e8 08 7747 7898 xor ah, ah ; 30 e4 7748 call 05 0b6h ; e8 f7 f87899 call 0511eh ; e8 f7 f8 7749 7900 test ax, ax ; 85 c0 7750 jne short 05 7d0h ; 75 0d7901 jne short 05838h ; 75 0d 7751 7902 mov ax, word [bp+012h] ; 8b 46 12 7752 7903 xor al, al ; 30 c0 7753 7904 or AL, strict byte 001h ; 0c 01 7754 7905 mov word [bp+012h], ax ; 89 46 12 7755 jmp near 059 38h ; e9 68 017906 jmp near 059a0h ; e9 68 01 7756 7907 and word [bp+012h], 0ff00h ; 81 66 12 00 ff 7757 jmp near 059 38h ; e9 60 017908 jmp near 059a0h ; e9 60 01 7758 7909 mov ax, word [bp+012h] ; 8b 46 12 7759 7910 xor al, al ; 30 c0 7760 7911 or AL, strict byte 030h ; 0c 30 7761 jmp short 05 7cah ; eb e97912 jmp short 05832h ; eb e9 7762 7913 mov byte [bp-004h], 002h ; c6 46 fc 02 7763 7914 xor cx, cx ; 31 c9 … … 7772 7923 ; sub ah, ah ; 2a e4 7773 7924 test AL, strict byte 001h ; a8 01 7774 jne short 058 08h ; 75 0d7925 jne short 05870h ; 75 0d 7775 7926 dec bx ; 4b 7776 7927 test bx, bx ; 85 db 7777 jbe short 058 08h ; 76 087928 jbe short 05870h ; 76 08 7778 7929 mov dx, 00080h ; ba 80 00 7779 7930 in AL, DX ; ec 7780 7931 db 02ah, 0e4h 7781 7932 ; sub ah, ah ; 2a e4 7782 jmp short 05 7f1h ; eb e97933 jmp short 05859h ; eb e9 7783 7934 test bx, bx ; 85 db 7784 jbe short 058 4ch ; 76 407935 jbe short 058b4h ; 76 40 7785 7936 mov dx, strict word 00060h ; ba 60 00 7786 7937 in AL, DX ; ec … … 7788 7939 ; sub ah, ah ; 2a e4 7789 7940 cmp ax, 000fah ; 3d fa 00 7790 jne short 058 4ch ; 75 357941 jne short 058b4h ; 75 35 7791 7942 mov bx, strict word 0ffffh ; bb ff ff 7792 7943 mov dx, strict word 00064h ; ba 64 00 … … 7795 7946 ; sub ah, ah ; 2a e4 7796 7947 test AL, strict byte 001h ; a8 01 7797 jne short 058 31h ; 75 0d7948 jne short 05899h ; 75 0d 7798 7949 dec bx ; 4b 7799 7950 test bx, bx ; 85 db 7800 jbe short 058 31h ; 76 087951 jbe short 05899h ; 76 08 7801 7952 mov dx, 00080h ; ba 80 00 7802 7953 in AL, DX ; ec 7803 7954 db 02ah, 0e4h 7804 7955 ; sub ah, ah ; 2a e4 7805 jmp short 058 1ah ; eb e97956 jmp short 05882h ; eb e9 7806 7957 test bx, bx ; 85 db 7807 jbe short 058 43h ; 76 0e7958 jbe short 058abh ; 76 0e 7808 7959 shr cx, 008h ; c1 e9 08 7809 7960 mov dx, strict word 00060h ; ba 60 00 … … 7815 7966 dec byte [bp-004h] ; fe 4e fc 7816 7967 cmp byte [bp-004h], 000h ; 80 7e fc 00 7817 jnbe short 058 17h ; 77 cb7968 jnbe short 0587fh ; 77 cb 7818 7969 mov word [bp+00ch], cx ; 89 4e 0c 7819 jmp near 059 38h ; e9 e6 007970 jmp near 059a0h ; e9 e6 00 7820 7971 push strict byte 00001h ; 6a 01 7821 7972 mov cx, ss ; 8c d1 … … 7823 7974 mov dx, ss ; 8c d2 7824 7975 lea ax, [bp-006h] ; 8d 46 fa 7825 call 05 5c3h ; e8 62 fd7976 call 0562bh ; e8 62 fd 7826 7977 test ax, ax ; 85 c0 7827 jne short 058 70h ; 75 0b7978 jne short 058d8h ; 75 0b 7828 7979 push 0060fh ; 68 0f 06 7829 7980 push strict byte 00007h ; 6a 07 7830 call 019 72h ; e8 05 c17981 call 019dah ; e8 05 c1 7831 7982 add sp, strict byte 00004h ; 83 c4 04 7832 7983 cmp byte [bp-006h], 000h ; 80 7e fa 00 7833 je near 057 3fh ; 0f 84 c7 fe7984 je near 057a7h ; 0f 84 c7 fe 7834 7985 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7835 je near 057 3bh ; 0f 84 bb fe7836 jmp near 057 3fh ; e9 bc fe7986 je near 057a3h ; 0f 84 bb fe 7987 jmp near 057a7h ; e9 bc fe 7837 7988 or word [bp+01ch], 00200h ; 81 4e 1c 00 02 7838 7989 push strict byte 00000h ; 6a 00 … … 7841 7992 mov dx, ss ; 8c d2 7842 7993 lea ax, [bp-006h] ; 8d 46 fa 7843 call 05 5c3h ; e8 2c fd7994 call 0562bh ; e8 2c fd 7844 7995 test ax, ax ; 85 c0 7845 je near 057 6ah ; 0f 84 cd fe7996 je near 057d2h ; 0f 84 cd fe 7846 7997 cmp byte [bp-006h], 000h ; 80 7e fa 00 7847 je near 057 87h ; 0f 84 e2 fe7998 je near 057efh ; 0f 84 e2 fe 7848 7999 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7849 je near 057 83h ; 0f 84 d6 fe7850 jmp near 057 87h ; e9 d7 fe8000 je near 057ebh ; 0f 84 d6 fe 8001 jmp near 057efh ; e9 d7 fe 7851 8002 mov dx, strict word 00017h ; ba 17 00 7852 8003 mov ax, strict word 00040h ; b8 40 00 7853 call 016 50h ; e8 97 bd8004 call 016b8h ; e8 97 bd 7854 8005 mov dx, word [bp+012h] ; 8b 56 12 7855 8006 mov dl, al ; 88 c2 … … 7857 8008 mov dx, strict word 00018h ; ba 18 00 7858 8009 mov ax, strict word 00040h ; b8 40 00 7859 call 016 50h ; e8 86 bd8010 call 016b8h ; e8 86 bd 7860 8011 mov bh, al ; 88 c7 7861 8012 and bh, 073h ; 80 e7 73 7862 8013 mov dx, 00096h ; ba 96 00 7863 8014 mov ax, strict word 00040h ; b8 40 00 7864 call 016 50h ; e8 78 bd8015 call 016b8h ; e8 78 bd 7865 8016 and AL, strict byte 00ch ; 24 0c 7866 8017 or bh, al ; 08 c7 … … 7869 8020 movzx ax, bh ; 0f b6 c7 7870 8021 sal ax, 008h ; c1 e0 08 7871 jmp near 057 4ah ; e9 60 fe8022 jmp near 057b2h ; e9 60 fe 7872 8023 mov ax, word [bp+012h] ; 8b 46 12 7873 8024 xor ah, ah ; 30 e4 7874 8025 or ah, 080h ; 80 cc 80 7875 jmp near 05 7cah ; e9 d5 fe8026 jmp near 05832h ; e9 d5 fe 7876 8027 mov bx, 00da0h ; bb a0 0d 7877 8028 mov cx, ds ; 8c d9 7878 8029 mov ax, strict word 00004h ; b8 04 00 7879 call 019 31h ; e8 31 c08030 call 01999h ; e8 31 c0 7880 8031 mov ax, word [bp+012h] ; 8b 46 12 7881 8032 shr ax, 008h ; c1 e8 08 … … 7883 8034 push 00633h ; 68 33 06 7884 8035 push strict byte 00004h ; 6a 04 7885 call 019 72h ; e8 63 c08036 call 019dah ; e8 63 c0 7886 8037 add sp, strict byte 00006h ; 83 c4 06 7887 8038 mov bx, 00da0h ; bb a0 0d 7888 8039 mov cx, ds ; 8c d9 7889 8040 mov ax, strict word 00004h ; b8 04 00 7890 call 019 31h ; e8 14 c08041 call 01999h ; e8 14 c0 7891 8042 mov ax, word [bp+00eh] ; 8b 46 0e 7892 8043 push ax ; 50 … … 7899 8050 push 0065bh ; 68 5b 06 7900 8051 push strict byte 00004h ; 6a 04 7901 call 019 72h ; e8 3d c08052 call 019dah ; e8 3d c0 7902 8053 add sp, strict byte 0000ch ; 83 c4 0c 7903 8054 lea sp, [bp-002h] ; 8d 66 fe … … 7905 8056 pop bp ; 5d 7906 8057 retn ; c3 7907 set_geom_lba_: ; 0xf59 3eLB 0xe58058 set_geom_lba_: ; 0xf59a6 LB 0xe5 7908 8059 push bx ; 53 7909 8060 push cx ; 51 … … 7920 8071 mov dx, word [bp+00ch] ; 8b 56 0c 7921 8072 mov si, strict word 00020h ; be 20 00 7922 call 09 e6ah ; e8 01458073 call 09f00h ; e8 2f 45 7923 8074 test ax, ax ; 85 c0 7924 jne short 059 79h ; 75 0c8075 jne short 059e1h ; 75 0c 7925 8076 test bx, bx ; 85 db 7926 jne short 059 79h ; 75 088077 jne short 059e1h ; 75 08 7927 8078 test cx, cx ; 85 c9 7928 jne short 059 79h ; 75 048079 jne short 059e1h ; 75 04 7929 8080 test dx, dx ; 85 d2 7930 je short 059 80h ; 74 078081 je short 059e8h ; 74 07 7931 8082 mov bx, strict word 0ffffh ; bb ff ff 7932 8083 mov si, bx ; 89 de 7933 jmp short 059 86h ; eb 068084 jmp short 059eeh ; eb 06 7934 8085 mov bx, word [bp+00ch] ; 8b 5e 0c 7935 8086 mov si, word [bp+00eh] ; 8b 76 0e 7936 8087 mov word [bp-004h], bx ; 89 5e fc 7937 8088 xor bx, bx ; 31 db 7938 jmp short 059 92h ; eb 058089 jmp short 059fah ; eb 05 7939 8090 cmp bx, strict byte 00004h ; 83 fb 04 7940 jnl short 05 9b5h ; 7d 238091 jnl short 05a1dh ; 7d 23 7941 8092 mov ax, word [bp-006h] ; 8b 46 fa 7942 8093 cmp si, ax ; 39 c6 7943 jc short 05 9a3h ; 72 0a7944 jne short 05 9ach ; 75 118094 jc short 05a0bh ; 72 0a 8095 jne short 05a14h ; 75 11 7945 8096 mov ax, word [bp-004h] ; 8b 46 fc 7946 8097 cmp ax, word [bp-008h] ; 3b 46 f8 7947 jnbe short 05 9ach ; 77 098098 jnbe short 05a14h ; 77 09 7948 8099 mov ax, word [bp-002h] ; 8b 46 fe 7949 8100 inc ax ; 40 … … 7953 8104 rcr word [bp-008h], 1 ; d1 5e f8 7954 8105 inc bx ; 43 7955 jmp short 059 8dh ; eb d88106 jmp short 059f5h ; eb d8 7956 8107 mov ax, word [bp-002h] ; 8b 46 fe 7957 8108 xor dx, dx ; 31 d2 7958 8109 mov bx, strict word 0003fh ; bb 3f 00 7959 8110 xor cx, cx ; 31 c9 7960 call 09e 29h ; e8 67448111 call 09e80h ; e8 56 44 7961 8112 mov bx, ax ; 89 c3 7962 8113 mov cx, dx ; 89 d1 7963 8114 mov ax, word [bp-004h] ; 8b 46 fc 7964 8115 mov dx, si ; 89 f2 7965 call 09 df0h ; e8 22448116 call 09ec0h ; e8 8a 44 7966 8117 mov word [es:di+002h], ax ; 26 89 45 02 7967 8118 cmp ax, 00400h ; 3d 00 04 7968 jbe short 05 9ddh ; 76 068119 jbe short 05a45h ; 76 06 7969 8120 mov word [es:di+002h], 00400h ; 26 c7 45 02 00 04 7970 8121 mov ax, word [bp-002h] ; 8b 46 fe … … 7977 8128 pop bx ; 5b 7978 8129 retn 00008h ; c2 08 00 7979 lodsw ; ad 7980 pop dx ; 5a 7981 rcr word [byte bp+si+000h], CL ; d3 5a 00 8130 adc ax, 03b5bh ; 15 5b 3b 7982 8131 pop bx ; 5b 7983 add byte [byte bp+di+000h], bl ; 00 5b 008132 push 0685bh ; 68 5b 68 7984 8133 pop bx ; 5b 7985 loope 05a59h ; e1 5c 7986 divps xmm1, oword [bx] ; 0f 5e 0f 8134 push 0495bh ; 68 5b 49 8135 pop bp ; 5d 8136 jnbe short 05ac5h ; 77 5e 8137 jnbe short 05ac7h ; 77 5e 8138 bound bx, [di+054h] ; 62 5d 54 7987 8139 pop si ; 5e 7988 cli ; fa 7989 pop sp ; 5c 7990 in AL, DX ; ec 7991 pop bp ; 5d 7992 divps xmm1, oword [bx] ; 0f 5e 0f 8140 jnbe short 05acdh ; 77 5e 8141 jnbe short 05acfh ; 77 5e 8142 push sp ; 54 7993 8143 pop si ; 5e 7994 in AL, DX ; ec 7995 pop bp ; 5d 7996 in AL, DX ; ec 7997 pop bp ; 5d 7998 divps xmm1, oword [bx] ; 0f 5e 0f 8144 push sp ; 54 7999 8145 pop si ; 5e 8000 jo short 05a70h ; 70 5d 8001 in AL, DX ; ec 8002 pop bp ; 5d 8003 divps xmm1, oword [bx] ; 0f 5e 0f 8146 jnbe short 05ad5h ; 77 5e 8147 jnbe short 05ad7h ; 77 5e 8148 fcomp dword [di+054h] ; d8 5d 54 8004 8149 pop si ; 5e 8005 in AL, DX ; ec8006 pop bp ; 5d8007 mov AL, byte [00f5dh] ; a0 5d 0f8150 jnbe short 05addh ; 77 5e 8151 jnbe short 05adfh ; 77 5e 8152 push sp ; 54 8008 8153 pop si ; 5e 8009 divps xmm1, oword [bx] ; 0f 5e 0f8154 or byte [bp+077h], bl ; 08 5e 77 8010 8155 pop si ; 5e 8011 _int13_harddisk: ; 0xf5a23 LB 0x44a 8156 jnbe short 05ae7h ; 77 5e 8157 jnbe short 05ae9h ; 77 5e 8158 _int13_harddisk: ; 0xf5a8b LB 0x44a 8012 8159 push bp ; 55 8013 8160 mov bp, sp ; 89 e5 … … 8015 8162 mov dx, strict word 0000eh ; ba 0e 00 8016 8163 mov ax, strict word 00040h ; b8 40 00 8017 call 016 6ch ; e8 3a bc8164 call 016d4h ; e8 3a bc 8018 8165 mov si, 00122h ; be 22 01 8019 8166 mov word [bp-004h], ax ; 89 46 fc … … 8021 8168 mov dx, 0008eh ; ba 8e 00 8022 8169 mov ax, strict word 00040h ; b8 40 00 8023 call 016 5eh ; e8 1b bc8170 call 016c6h ; e8 1b bc 8024 8171 mov ax, word [bp+00eh] ; 8b 46 0e 8025 8172 xor ah, ah ; 30 e4 8026 8173 cmp ax, 00080h ; 3d 80 00 8027 jc short 05a 52h ; 72 058174 jc short 05abah ; 72 05 8028 8175 cmp ax, 00090h ; 3d 90 00 8029 jc short 05a 70h ; 72 1e8176 jc short 05ad8h ; 72 1e 8030 8177 mov ax, word [bp+00eh] ; 8b 46 0e 8031 8178 xor ah, ah ; 30 e4 … … 8037 8184 push 0068dh ; 68 8d 06 8038 8185 push strict byte 00004h ; 6a 04 8039 call 019 72h ; e8 08 bf8186 call 019dah ; e8 08 bf 8040 8187 add sp, strict byte 0000ah ; 83 c4 0a 8041 jmp near 05e 2ah ; e9 ba 038188 jmp near 05e92h ; e9 ba 03 8042 8189 mov ax, word [bp+00eh] ; 8b 46 0e 8043 8190 xor ah, ah ; 30 e4 … … 8048 8195 mov byte [bp-002h], dl ; 88 56 fe 8049 8196 cmp dl, 010h ; 80 fa 10 8050 jc short 05 a99h ; 72 108197 jc short 05b01h ; 72 10 8051 8198 push ax ; 50 8052 8199 mov ax, word [bp+016h] ; 8b 46 16 … … 8055 8202 push 0067eh ; 68 7e 06 8056 8203 push 006b8h ; 68 b8 06 8057 jmp short 05a 65h ; eb cc8204 jmp short 05acdh ; eb cc 8058 8205 mov bx, word [bp+016h] ; 8b 5e 16 8059 8206 shr bx, 008h ; c1 eb 08 8060 8207 cmp bx, strict byte 00018h ; 83 fb 18 8061 jnbe near 05e 0fh ; 0f 87 69 038208 jnbe near 05e77h ; 0f 87 69 03 8062 8209 add bx, bx ; 01 db 8063 jmp word [cs:bx+05 9f1h] ; 2e ff a7 f1 598210 jmp word [cs:bx+05a59h] ; 2e ff a7 59 5a 8064 8211 cmp byte [bp-002h], 008h ; 80 7e fe 08 8065 jnc near 05 abch ; 0f 83 07 008212 jnc near 05b24h ; 0f 83 07 00 8066 8213 movzx ax, byte [bp-002h] ; 0f b6 46 fe 8067 call 01d 7ch ; e8 c0 c28214 call 01de4h ; e8 c0 c2 8068 8215 mov byte [bp+017h], 000h ; c6 46 17 00 8069 8216 xor bx, bx ; 31 db 8070 8217 mov dx, strict word 00074h ; ba 74 00 8071 8218 mov ax, strict word 00040h ; b8 40 00 8072 call 016 5eh ; e8 93 bb8219 call 016c6h ; e8 93 bb 8073 8220 and byte [bp+01ch], 0feh ; 80 66 1c fe 8074 8221 mov sp, bp ; 89 ec … … 8077 8224 mov dx, strict word 00074h ; ba 74 00 8078 8225 mov ax, strict word 00040h ; b8 40 00 8079 call 016 50h ; e8 74 bb8226 call 016b8h ; e8 74 bb 8080 8227 mov cl, al ; 88 c1 8081 8228 mov dx, word [bp+016h] ; 8b 56 16 … … 8088 8235 mov dx, strict word 00074h ; ba 74 00 8089 8236 mov ax, strict word 00040h ; b8 40 00 8090 call 016 5eh ; e8 65 bb8237 call 016c6h ; e8 65 bb 8091 8238 test cl, cl ; 84 c9 8092 je short 05 ac0h ; 74 c38093 jmp near 05e 46h ; e9 46 038239 je short 05b28h ; 74 c3 8240 jmp near 05eaeh ; e9 46 03 8094 8241 mov ax, word [bp+016h] ; 8b 46 16 8095 8242 xor ah, ah ; 30 e4 … … 8111 8258 mov ax, word [bp-00ch] ; 8b 46 f4 8112 8259 cmp ax, 00080h ; 3d 80 00 8113 jnbe short 05b 3bh ; 77 048260 jnbe short 05ba3h ; 77 04 8114 8261 test ax, ax ; 85 c0 8115 jne short 05b 5eh ; 75 238262 jne short 05bc6h ; 75 23 8116 8263 mov bx, 00da0h ; bb a0 0d 8117 8264 mov cx, ds ; 8c d9 8118 8265 mov ax, strict word 00004h ; b8 04 00 8119 call 019 31h ; e8 eb bd8266 call 01999h ; e8 eb bd 8120 8267 mov ax, word [bp+016h] ; 8b 46 16 8121 8268 shr ax, 008h ; c1 e8 08 … … 8124 8271 push 006eah ; 68 ea 06 8125 8272 push strict byte 00004h ; 6a 04 8126 call 019 72h ; e8 1a be8273 call 019dah ; e8 1a be 8127 8274 add sp, strict byte 00008h ; 83 c4 08 8128 jmp near 05e 2ah ; e9 cc 028275 jmp near 05e92h ; e9 cc 02 8129 8276 movzx ax, byte [bp-002h] ; 0f b6 46 fe 8130 8277 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 8137 8284 mov word [bp-00ah], dx ; 89 56 f6 8138 8285 cmp di, ax ; 39 c7 8139 jnc short 05b 8bh ; 73 0c8286 jnc short 05bf3h ; 73 0c 8140 8287 cmp cx, word [bp-008h] ; 3b 4e f8 8141 jbe short 05b 8bh ; 76 078288 jbe short 05bf3h ; 76 07 8142 8289 mov ax, word [bp-006h] ; 8b 46 fa 8143 8290 cmp ax, dx ; 39 d0 8144 jbe short 05 bb9h ; 76 2e8291 jbe short 05c21h ; 76 2e 8145 8292 mov bx, 00da0h ; bb a0 0d 8146 8293 mov cx, ds ; 8c d9 8147 8294 mov ax, strict word 00004h ; b8 04 00 8148 call 019 31h ; e8 9b bd8295 call 01999h ; e8 9b bd 8149 8296 push dword [bp-008h] ; 66 ff 76 f8 8150 8297 push di ; 57 … … 8158 8305 push 00712h ; 68 12 07 8159 8306 push strict byte 00004h ; 6a 04 8160 call 019 72h ; e8 bf bd8307 call 019dah ; e8 bf bd 8161 8308 add sp, strict byte 00010h ; 83 c4 10 8162 jmp near 05e 2ah ; e9 71 028309 jmp near 05e92h ; e9 71 02 8163 8310 mov ax, word [bp+016h] ; 8b 46 16 8164 8311 shr ax, 008h ; c1 e8 08 8165 8312 cmp ax, strict word 00004h ; 3d 04 00 8166 jne short 05 bc7h ; 75 038167 jmp near 05 abch ; e9 f5 fe8313 jne short 05c2fh ; 75 03 8314 jmp near 05b24h ; e9 f5 fe 8168 8315 movzx bx, byte [bp-002h] ; 0f b6 5e fe 8169 8316 imul bx, bx, strict byte 0001ch ; 6b db 1c … … 8171 8318 add bx, si ; 01 f3 8172 8319 cmp cx, word [es:bx+030h] ; 26 3b 4f 30 8173 jne short 05 be8h ; 75 0f8320 jne short 05c50h ; 75 0f 8174 8321 mov ax, word [es:bx+034h] ; 26 8b 47 34 8175 8322 cmp ax, word [bp-00ah] ; 3b 46 f6 8176 jne short 05 be8h ; 75 068323 jne short 05c50h ; 75 06 8177 8324 cmp byte [bp-002h], 008h ; 80 7e fe 08 8178 jc short 05c 18h ; 72 308325 jc short 05c80h ; 72 30 8179 8326 mov ax, di ; 89 f8 8180 8327 xor dx, dx ; 31 d2 8181 8328 mov bx, cx ; 89 cb 8182 8329 xor cx, cx ; 31 c9 8183 call 09e 29h ; e8 36428330 call 09e80h ; e8 25 42 8184 8331 xor bx, bx ; 31 db 8185 8332 add ax, word [bp-008h] ; 03 46 f8 … … 8187 8334 mov bx, word [bp-00ah] ; 8b 5e f6 8188 8335 xor cx, cx ; 31 c9 8189 call 09e 29h ; e8 27428336 call 09e80h ; e8 16 42 8190 8337 xor bx, bx ; 31 db 8191 8338 add ax, word [bp-006h] ; 03 46 fa … … 8242 8389 mov word [bp+016h], bx ; 89 5e 16 8243 8390 test dl, dl ; 84 d2 8244 je near 05 abch ; 0f 84 0a fe8391 je near 05b24h ; 0f 84 0a fe 8245 8392 mov bx, 00da0h ; bb a0 0d 8246 8393 mov cx, ds ; 8c d9 8247 8394 mov ax, strict word 00004h ; b8 04 00 8248 call 019 31h ; e8 74 bc8395 call 01999h ; e8 74 bc 8249 8396 movzx ax, dl ; 0f b6 c2 8250 8397 push ax ; 50 … … 8255 8402 push 00759h ; 68 59 07 8256 8403 push strict byte 00004h ; 6a 04 8257 call 019 72h ; e8 9f bc8404 call 019dah ; e8 9f bc 8258 8405 add sp, strict byte 0000ah ; 83 c4 0a 8259 8406 mov ax, word [bp+016h] ; 8b 46 16 8260 8407 xor ah, ah ; 30 e4 8261 8408 or ah, 00ch ; 80 cc 0c 8262 jmp near 05e 32h ; e9 51 018409 jmp near 05e9ah ; e9 51 01 8263 8410 mov bx, 00da0h ; bb a0 0d 8264 8411 mov cx, ds ; 8c d9 8265 8412 mov ax, strict word 00004h ; b8 04 00 8266 call 019 31h ; e8 45 bc8413 call 01999h ; e8 45 bc 8267 8414 push 0077ah ; 68 7a 07 8268 8415 push strict byte 00004h ; 6a 04 8269 call 019 72h ; e8 7e bc8416 call 019dah ; e8 7e bc 8270 8417 add sp, strict byte 00004h ; 83 c4 04 8271 jmp near 05 abch ; e9 c2 fd8418 jmp near 05b24h ; e9 c2 fd 8272 8419 movzx ax, byte [bp-002h] ; 0f b6 46 fe 8273 8420 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 8312 8459 or dx, ax ; 09 c2 8313 8460 mov word [bp+012h], dx ; 89 56 12 8314 jmp near 05 abch ; e9 4c fd8461 jmp near 05b24h ; e9 4c fd 8315 8462 movzx ax, byte [bp-002h] ; 0f b6 46 fe 8316 8463 cwd ; 99 … … 8328 8475 and AL, strict byte 0c0h ; 24 c0 8329 8476 cmp AL, strict byte 040h ; 3c 40 8330 jne short 05d 95h ; 75 038331 jmp near 05 abch ; e9 27 fd8477 jne short 05dfdh ; 75 03 8478 jmp near 05b24h ; e9 27 fd 8332 8479 mov ax, word [bp+016h] ; 8b 46 16 8333 8480 xor ah, ah ; 30 e4 8334 8481 or ah, 0aah ; 80 cc aa 8335 jmp near 05e 32h ; e9 92 008482 jmp near 05e9ah ; e9 92 00 8336 8483 movzx ax, byte [bp-002h] ; 0f b6 46 fe 8337 8484 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 8347 8494 mov bx, word [bp-008h] ; 8b 5e f8 8348 8495 xor cx, cx ; 31 c9 8349 call 09e 29h ; e8 5f408496 call 09e80h ; e8 4e 40 8350 8497 mov bx, word [bp-006h] ; 8b 5e fa 8351 8498 xor cx, cx ; 31 c9 8352 call 09e 29h ; e8 57408499 call 09e80h ; e8 46 40 8353 8500 mov word [bp-010h], ax ; 89 46 f0 8354 8501 mov word [bp-00eh], dx ; 89 56 f2 … … 8359 8506 or ah, 003h ; 80 cc 03 8360 8507 mov word [bp+016h], ax ; 89 46 16 8361 jmp near 05 ac0h ; e9 d4 fc8508 jmp near 05b28h ; e9 d4 fc 8362 8509 mov bx, 00da0h ; bb a0 0d 8363 8510 mov cx, ds ; 8c d9 8364 8511 mov ax, strict word 00004h ; b8 04 00 8365 call 019 31h ; e8 3a bb8512 call 01999h ; e8 3a bb 8366 8513 mov ax, word [bp+016h] ; 8b 46 16 8367 8514 shr ax, 008h ; c1 e8 08 … … 8370 8517 push 00794h ; 68 94 07 8371 8518 push strict byte 00004h ; 6a 04 8372 call 019 72h ; e8 69 bb8519 call 019dah ; e8 69 bb 8373 8520 add sp, strict byte 00008h ; 83 c4 08 8374 jmp near 05 abch ; e9 ad fc8521 jmp near 05b24h ; e9 ad fc 8375 8522 mov bx, 00da0h ; bb a0 0d 8376 8523 mov cx, ds ; 8c d9 8377 8524 mov ax, strict word 00004h ; b8 04 00 8378 call 019 31h ; e8 17 bb8525 call 01999h ; e8 17 bb 8379 8526 mov ax, word [bp+016h] ; 8b 46 16 8380 8527 shr ax, 008h ; c1 e8 08 … … 8382 8529 push 0067eh ; 68 7e 06 8383 8530 push 007c7h ; 68 c7 07 8384 jmp near 05b 53h ; e9 29 fd8531 jmp near 05bbbh ; e9 29 fd 8385 8532 mov ax, word [bp+016h] ; 8b 46 16 8386 8533 xor ah, ah ; 30 e4 … … 8392 8539 mov dx, strict word 00074h ; ba 74 00 8393 8540 mov ax, strict word 00040h ; b8 40 00 8394 call 016 5eh ; e8 18 b88541 call 016c6h ; e8 18 b8 8395 8542 or byte [bp+01ch], 001h ; 80 4e 1c 01 8396 jmp near 05acfh ; e9 82 fc 8397 or bx, word [bx+023h] ; 0b 5f 23 8543 jmp near 05b37h ; e9 82 fc 8544 jnc short 05f16h ; 73 5f 8545 mov bx, word [bx-075h] ; 8b 5f 8b 8398 8546 pop di ; 5f 8399 and bx, word [bx+023h] ; 23 5f 23 8547 mov bx, word [bx+05fh] ; 8b 5f 5f 8548 arpl ax, sp ; 63 e0 8549 pushaw ; 60 8550 mov bx, word [bx-01ah] ; 8b 5f e6 8551 pushaw ; 60 8400 8552 pop di ; 5f 8401 mul word [bp+si+078h] ; f7 62 78 8402 pushaw ; 60 8403 and bx, word [bx+07eh] ; 23 5f 7e 8404 pushaw ; 60 8405 mul word [bp+si+046h] ; f7 62 46 8406 arpl [bp+063h], ax ; 63 46 63 8407 inc si ; 46 8408 arpl [bp+063h], ax ; 63 46 63 8409 push CS ; 0e 8410 arpl [bp+063h], ax ; 63 46 63 8411 inc si ; 46 8553 arpl [bp-0519dh], bp ; 63 ae 63 ae 8554 arpl [bp-0519dh], bp ; 63 ae 63 ae 8555 arpl [bp+063h], si ; 63 76 63 8556 scasb ; ae 8412 8557 db 063h 8413 _int13_harddisk_ext: ; 0xf5e6d LB 0x4f4 8558 scasb ; ae 8559 db 063h 8560 _int13_harddisk_ext: ; 0xf5ed5 LB 0x4f4 8414 8561 push bp ; 55 8415 8562 mov bp, sp ; 89 e5 … … 8417 8564 mov dx, strict word 0000eh ; ba 0e 00 8418 8565 mov ax, strict word 00040h ; b8 40 00 8419 call 016 6ch ; e8 f0 b78566 call 016d4h ; e8 f0 b7 8420 8567 mov word [bp-014h], ax ; 89 46 ec 8421 8568 mov dx, strict word 0000eh ; ba 0e 00 8422 8569 mov ax, strict word 00040h ; b8 40 00 8423 call 016 6ch ; e8 e4 b78570 call 016d4h ; e8 e4 b7 8424 8571 mov word [bp-008h], 00122h ; c7 46 f8 22 01 8425 8572 mov word [bp-006h], ax ; 89 46 fa … … 8427 8574 mov dx, 0008eh ; ba 8e 00 8428 8575 mov ax, strict word 00040h ; b8 40 00 8429 call 016 5eh ; e8 c3 b78576 call 016c6h ; e8 c3 b7 8430 8577 mov ax, word [bp+00eh] ; 8b 46 0e 8431 8578 xor ah, ah ; 30 e4 8432 8579 cmp ax, 00080h ; 3d 80 00 8433 jc short 05 eaah ; 72 058580 jc short 05f12h ; 72 05 8434 8581 cmp ax, 00090h ; 3d 90 00 8435 jc short 05 ec8h ; 72 1e8582 jc short 05f30h ; 72 1e 8436 8583 mov ax, word [bp+00eh] ; 8b 46 0e 8437 8584 xor ah, ah ; 30 e4 … … 8443 8590 push 0068dh ; 68 8d 06 8444 8591 push strict byte 00004h ; 6a 04 8445 call 019 72h ; e8 b0 ba8592 call 019dah ; e8 b0 ba 8446 8593 add sp, strict byte 0000ah ; 83 c4 0a 8447 jmp near 063 24h ; e9 5c 048594 jmp near 0638ch ; e9 5c 04 8448 8595 mov ax, word [bp+00eh] ; 8b 46 0e 8449 8596 xor ah, ah ; 30 e4 … … 8453 8600 mov byte [bp-004h], dl ; 88 56 fc 8454 8601 cmp dl, 010h ; 80 fa 10 8455 jc short 05 eefh ; 72 108602 jc short 05f57h ; 72 10 8456 8603 push ax ; 50 8457 8604 mov ax, word [bp+016h] ; 8b 46 16 … … 8460 8607 push 007f5h ; 68 f5 07 8461 8608 push 006b8h ; 68 b8 06 8462 jmp short 05 ebdh ; eb ce8609 jmp short 05f25h ; eb ce 8463 8610 mov bx, word [bp+016h] ; 8b 5e 16 8464 8611 shr bx, 008h ; c1 eb 08 8465 8612 sub bx, strict byte 00041h ; 83 eb 41 8466 8613 cmp bx, strict byte 0000fh ; 83 fb 0f 8467 jnbe near 063 46h ; 0f 87 47 048614 jnbe near 063aeh ; 0f 87 47 04 8468 8615 add bx, bx ; 01 db 8469 8616 mov ax, word [bp+016h] ; 8b 46 16 8470 8617 xor ah, ah ; 30 e4 8471 jmp word [cs:bx+05e 4dh] ; 2e ff a7 4d5e8618 jmp word [cs:bx+05eb5h] ; 2e ff a7 b5 5e 8472 8619 mov word [bp+010h], 0aa55h ; c7 46 10 55 aa 8473 8620 mov ax, word [bp+016h] ; 8b 46 16 … … 8476 8623 mov word [bp+016h], ax ; 89 46 16 8477 8624 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 8478 jmp near 06 2fbh ; e9 d8 038625 jmp near 06363h ; e9 d8 03 8479 8626 mov di, word [bp+00ah] ; 8b 7e 0a 8480 8627 mov es, [bp+004h] ; 8e 46 04 … … 8492 8639 xor bx, bx ; 31 db 8493 8640 mov si, strict word 00020h ; be 20 00 8494 call 09 e5ah ; e8 043f8641 call 09f10h ; e8 52 3f 8495 8642 mov word [bp-00eh], bx ; 89 5e f2 8496 8643 mov bx, word [es:di+008h] ; 26 8b 5d 08 … … 8504 8651 mov bl, byte [es:di+022h] ; 26 8a 5d 22 8505 8652 cmp ax, word [es:di+03ch] ; 26 3b 45 3c 8506 jnbe short 0 5f9dh ; 77 228507 jne short 0 5fc0h ; 75 438653 jnbe short 06005h ; 77 22 8654 jne short 06028h ; 75 43 8508 8655 mov si, word [bp-00eh] ; 8b 76 f2 8509 8656 cmp si, word [es:di+03ah] ; 26 3b 75 3a 8510 jnbe short 0 5f9dh ; 77 178657 jnbe short 06005h ; 77 17 8511 8658 mov si, word [bp-00eh] ; 8b 76 f2 8512 8659 cmp si, word [es:di+03ah] ; 26 3b 75 3a 8513 jne short 0 5fc0h ; 75 318660 jne short 06028h ; 75 31 8514 8661 cmp cx, word [es:di+038h] ; 26 3b 4d 38 8515 jnbe short 0 5f9dh ; 77 088516 jne short 0 5fc0h ; 75 298662 jnbe short 06005h ; 77 08 8663 jne short 06028h ; 75 29 8517 8664 cmp dx, word [es:di+036h] ; 26 3b 55 36 8518 jc short 0 5fc0h ; 72 238665 jc short 06028h ; 72 23 8519 8666 mov bx, 00da0h ; bb a0 0d 8520 8667 mov cx, ds ; 8c d9 8521 8668 mov ax, strict word 00004h ; b8 04 00 8522 call 019 31h ; e8 89 b98669 call 01999h ; e8 89 b9 8523 8670 mov ax, word [bp+016h] ; 8b 46 16 8524 8671 shr ax, 008h ; c1 e8 08 … … 8527 8674 push 00808h ; 68 08 08 8528 8675 push strict byte 00004h ; 6a 04 8529 call 019 72h ; e8 b8 b98676 call 019dah ; e8 b8 b9 8530 8677 add sp, strict byte 00008h ; 83 c4 08 8531 jmp near 063 24h ; e9 64 038678 jmp near 0638ch ; e9 64 03 8532 8679 mov di, word [bp+016h] ; 8b 7e 16 8533 8680 shr di, 008h ; c1 ef 08 8534 8681 cmp di, strict byte 00044h ; 83 ff 44 8535 je near 06 2f7h ; 0f 84 2a 038682 je near 0635fh ; 0f 84 2a 03 8536 8683 cmp di, strict byte 00047h ; 83 ff 47 8537 je near 06 2f7h ; 0f 84 23 038684 je near 0635fh ; 0f 84 23 03 8538 8685 les si, [bp-008h] ; c4 76 f8 8539 8686 db 066h, 026h, 0c7h, 044h, 018h, 000h, 000h, 000h, 000h … … 8572 8719 mov word [es:bx+002h], ax ; 26 89 47 02 8573 8720 test dl, dl ; 84 d2 8574 je near 06 2f7h ; 0f 84 a8 028721 je near 0635fh ; 0f 84 a8 02 8575 8722 mov bx, 00da0h ; bb a0 0d 8576 8723 mov cx, ds ; 8c d9 8577 8724 mov ax, strict word 00004h ; b8 04 00 8578 call 019 31h ; e8 d7 b88725 call 01999h ; e8 d7 b8 8579 8726 movzx ax, dl ; 0f b6 c2 8580 8727 push ax ; 50 … … 8583 8730 push 00759h ; 68 59 07 8584 8731 push strict byte 00004h ; 6a 04 8585 call 019 72h ; e8 08 b98732 call 019dah ; e8 08 b9 8586 8733 add sp, strict byte 0000ah ; 83 c4 0a 8587 8734 mov ax, word [bp+016h] ; 8b 46 16 8588 8735 xor ah, ah ; 30 e4 8589 8736 or ah, 00ch ; 80 cc 0c 8590 jmp near 063 2ch ; e9 b4 028737 jmp near 06394h ; e9 b4 02 8591 8738 or ah, 0b2h ; 80 cc b2 8592 jmp near 063 2ch ; e9 ae 028739 jmp near 06394h ; e9 ae 02 8593 8740 mov bx, word [bp+00ah] ; 8b 5e 0a 8594 8741 mov ax, word [bp+004h] ; 8b 46 04 … … 8600 8747 mov word [bp-010h], ax ; 89 46 f0 8601 8748 cmp ax, strict word 0001ah ; 3d 1a 00 8602 jc near 063 24h ; 0f 82 89 028603 jc near 061 3ah ; 0f 82 9b 008749 jc near 0638ch ; 0f 82 89 02 8750 jc near 061a2h ; 0f 82 9b 00 8604 8751 movzx ax, byte [bp-004h] ; 0f b6 46 fc 8605 8752 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 8643 8790 mov bx, word [bp-00eh] ; 8b 5e f2 8644 8791 mov si, strict word 00020h ; be 20 00 8645 call 09 e6ah ; e8 3a3d8792 call 09f00h ; e8 68 3d 8646 8793 mov bx, di ; 89 fb 8647 8794 mov word [es:bx+014h], dx ; 26 89 57 14 8648 8795 mov word [es:bx+016h], cx ; 26 89 4f 16 8649 8796 cmp word [bp-010h], strict byte 0001eh ; 83 7e f0 1e 8650 jc near 062 3fh ; 0f 82 fd 008797 jc near 062a7h ; 0f 82 fd 00 8651 8798 mov es, [bp-00ah] ; 8e 46 f6 8652 8799 mov word [es:di], strict word 0001eh ; 26 c7 05 1e 00 … … 8674 8821 mov al, byte [es:bx+027h] ; 26 8a 47 27 8675 8822 test al, al ; 84 c0 8676 jne short 06 199h ; 75 048823 jne short 06201h ; 75 04 8677 8824 xor bx, bx ; 31 db 8678 jmp short 06 19ch ; eb 038825 jmp short 06204h ; eb 03 8679 8826 mov bx, strict word 00008h ; bb 08 00 8680 8827 or bl, 010h ; 80 cb 10 … … 8690 8837 or bx, cx ; 09 cb 8691 8838 cmp AL, strict byte 003h ; 3c 03 8692 jne short 06 1bdh ; 75 058839 jne short 06225h ; 75 05 8693 8840 mov ax, strict word 00003h ; b8 03 00 8694 jmp short 06 1bfh ; eb 028841 jmp short 06227h ; eb 02 8695 8842 xor ax, ax ; 31 c0 8696 8843 or bx, ax ; 09 c3 … … 8718 8865 xor bl, bl ; 30 db 8719 8866 xor bh, bh ; 30 ff 8720 jmp short 062 22h ; eb 058867 jmp short 0628ah ; eb 05 8721 8868 cmp bh, 00fh ; 80 ff 0f 8722 jnc short 062 35h ; 73 138869 jnc short 0629dh ; 73 13 8723 8870 movzx dx, bh ; 0f b6 d7 8724 8871 add dx, 00356h ; 81 c2 56 03 8725 8872 mov ax, word [bp-014h] ; 8b 46 ec 8726 call 016 50h ; e8 21 b48873 call 016b8h ; e8 21 b4 8727 8874 add bl, al ; 00 c3 8728 8875 db 0feh, 0c7h 8729 8876 ; inc bh ; fe c7 8730 jmp short 062 1dh ; eb e88877 jmp short 06285h ; eb e8 8731 8878 neg bl ; f6 db 8732 8879 les si, [bp-008h] ; c4 76 f8 8733 8880 mov byte [es:si+00243h], bl ; 26 88 9c 43 02 8734 8881 cmp word [bp-010h], strict byte 00042h ; 83 7e f0 42 8735 jc near 06 2f7h ; 0f 82 b0 008882 jc near 0635fh ; 0f 82 b0 00 8736 8883 movzx ax, byte [bp-004h] ; 0f b6 46 fc 8737 8884 cwd ; 99 … … 8751 8898 mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00 8752 8899 test al, al ; 84 c0 8753 jne short 062 88h ; 75 098900 jne short 062f0h ; 75 09 8754 8901 db 066h, 026h, 0c7h, 045h, 024h, 049h, 053h, 041h, 020h 8755 8902 ; mov dword [es:di+024h], strict dword 020415349h ; 66 26 c7 45 24 49 53 41 20 … … 8760 8907 ; mov dword [es:di+02ch], strict dword 020202020h ; 66 26 c7 45 2c 20 20 20 20 8761 8908 test al, al ; 84 c0 8762 jne short 06 2b4h ; 75 138909 jne short 0631ch ; 75 13 8763 8910 mov word [es:di+030h], dx ; 26 89 55 30 8764 8911 db 066h, 026h, 0c7h, 045h, 032h, 000h, 000h, 000h, 000h … … 8775 8922 xor bl, bl ; 30 db 8776 8923 mov BH, strict byte 01eh ; b7 1e 8777 jmp short 06 2dch ; eb 058924 jmp short 06344h ; eb 05 8778 8925 cmp bh, 040h ; 80 ff 40 8779 jnc short 06 2eeh ; 73 128926 jnc short 06356h ; 73 12 8780 8927 movzx dx, bh ; 0f b6 d7 8781 8928 add dx, word [bp+00ah] ; 03 56 0a 8782 8929 mov ax, word [bp+004h] ; 8b 46 04 8783 call 016 50h ; e8 68 b38930 call 016b8h ; e8 68 b3 8784 8931 add bl, al ; 00 c3 8785 8932 db 0feh, 0c7h 8786 8933 ; inc bh ; fe c7 8787 jmp short 06 2d7h ; eb e98934 jmp short 0633fh ; eb e9 8788 8935 neg bl ; f6 db 8789 8936 mov es, [bp-00ah] ; 8e 46 f6 … … 8793 8940 mov dx, strict word 00074h ; ba 74 00 8794 8941 mov ax, strict word 00040h ; b8 40 00 8795 call 016 5eh ; e8 58 b38942 call 016c6h ; e8 58 b3 8796 8943 and byte [bp+01ch], 0feh ; 80 66 1c fe 8797 8944 mov sp, bp ; 89 ec … … 8799 8946 retn ; c3 8800 8947 cmp ax, strict word 00006h ; 3d 06 00 8801 je short 06 2f7h ; 74 e48948 je short 0635fh ; 74 e4 8802 8949 cmp ax, strict word 00001h ; 3d 01 00 8803 jc short 063 24h ; 72 0c8804 jbe short 06 2f7h ; 76 dd8950 jc short 0638ch ; 72 0c 8951 jbe short 0635fh ; 76 dd 8805 8952 cmp ax, strict word 00003h ; 3d 03 00 8806 jc short 063 24h ; 72 058953 jc short 0638ch ; 72 05 8807 8954 cmp ax, strict word 00004h ; 3d 04 00 8808 jbe short 06 2f7h ; 76 d38955 jbe short 0635fh ; 76 d3 8809 8956 mov ax, word [bp+016h] ; 8b 46 16 8810 8957 xor ah, ah ; 30 e4 … … 8816 8963 mov dx, strict word 00074h ; ba 74 00 8817 8964 mov ax, strict word 00040h ; b8 40 00 8818 call 016 5eh ; e8 1e b38965 call 016c6h ; e8 1e b3 8819 8966 or byte [bp+01ch], 001h ; 80 4e 1c 01 8820 jmp short 063 0ah ; eb c48967 jmp short 06372h ; eb c4 8821 8968 mov bx, 00da0h ; bb a0 0d 8822 8969 mov cx, ds ; 8c d9 8823 8970 mov ax, strict word 00004h ; b8 04 00 8824 call 019 31h ; e8 e0 b58971 call 01999h ; e8 e0 b5 8825 8972 mov ax, word [bp+016h] ; 8b 46 16 8826 8973 shr ax, 008h ; c1 e8 08 … … 8828 8975 push 007f5h ; 68 f5 07 8829 8976 push 007c7h ; 68 c7 07 8830 jmp near 0 5fb5h ; e9 54 fc8831 _int14_function: ; 0xf63 61LB 0x1558977 jmp near 0601dh ; e9 54 fc 8978 _int14_function: ; 0xf63c9 LB 0x155 8832 8979 push bp ; 55 8833 8980 mov bp, sp ; 89 e5 … … 8837 8984 add dx, dx ; 01 d2 8838 8985 mov ax, strict word 00040h ; b8 40 00 8839 call 016 6ch ; e8 fb b28986 call 016d4h ; e8 fb b2 8840 8987 mov si, ax ; 89 c6 8841 8988 mov bx, ax ; 89 c3 … … 8843 8990 add dx, strict byte 0007ch ; 83 c2 7c 8844 8991 mov ax, strict word 00040h ; b8 40 00 8845 call 016 50h ; e8 cf b28992 call 016b8h ; e8 cf b2 8846 8993 mov cl, al ; 88 c1 8847 8994 cmp word [bp+00eh], strict byte 00004h ; 83 7e 0e 04 8848 jnc near 06 4ach ; 0f 83 21 018995 jnc near 06514h ; 0f 83 21 01 8849 8996 test si, si ; 85 f6 8850 jbe near 06 4ach ; 0f 86 1b 018997 jbe near 06514h ; 0f 86 1b 01 8851 8998 mov al, byte [bp+013h] ; 8a 46 13 8852 8999 cmp AL, strict byte 001h ; 3c 01 8853 jc short 06 3a9h ; 72 118854 jbe short 06 3fdh ; 76 639000 jc short 06411h ; 72 11 9001 jbe short 06465h ; 76 63 8855 9002 cmp AL, strict byte 003h ; 3c 03 8856 je near 064 95h ; 0f 84 f5 009003 je near 064fdh ; 0f 84 f5 00 8857 9004 cmp AL, strict byte 002h ; 3c 02 8858 je near 064 4bh ; 0f 84 a5 008859 jmp near 06 4a6h ; e9 fd 009005 je near 064b3h ; 0f 84 a5 00 9006 jmp near 0650eh ; e9 fd 00 8860 9007 test al, al ; 84 c0 8861 jne near 06 4a6h ; 0f 85 f7 009008 jne near 0650eh ; 0f 85 f7 00 8862 9009 lea dx, [bx+003h] ; 8d 57 03 8863 9010 in AL, DX ; ec … … 8891 9038 ; sub ah, ah ; 2a e4 8892 9039 mov byte [bp+012h], al ; 88 46 12 8893 jmp near 064 87h ; e9 97 009040 jmp near 064efh ; e9 97 00 8894 9041 mov AL, strict byte 017h ; b0 17 8895 9042 mov dx, bx ; 89 da … … 8898 9045 mov AL, strict byte 004h ; b0 04 8899 9046 out DX, AL ; ee 8900 jmp short 06 3d2h ; eb d59047 jmp short 0643ah ; eb d5 8901 9048 mov dx, strict word 0006ch ; ba 6c 00 8902 9049 mov ax, strict word 00040h ; b8 40 00 8903 call 016 6ch ; e8 66 b29050 call 016d4h ; e8 66 b2 8904 9051 mov si, ax ; 89 c6 8905 9052 lea dx, [bx+005h] ; 8d 57 05 … … 8909 9056 and ax, strict word 00060h ; 25 60 00 8910 9057 cmp ax, strict word 00060h ; 3d 60 00 8911 je short 064 2dh ; 74 179058 je short 06495h ; 74 17 8912 9059 test cl, cl ; 84 c9 8913 je short 064 2dh ; 74 139060 je short 06495h ; 74 13 8914 9061 mov dx, strict word 0006ch ; ba 6c 00 8915 9062 mov ax, strict word 00040h ; b8 40 00 8916 call 016 6ch ; e8 49 b29063 call 016d4h ; e8 49 b2 8917 9064 cmp ax, si ; 39 f0 8918 je short 064 08h ; 74 e19065 je short 06470h ; 74 e1 8919 9066 mov si, ax ; 89 c6 8920 9067 db 0feh, 0c9h 8921 9068 ; dec cl ; fe c9 8922 jmp short 064 08h ; eb db9069 jmp short 06470h ; eb db 8923 9070 test cl, cl ; 84 c9 8924 je short 064 37h ; 74 069071 je short 0649fh ; 74 06 8925 9072 mov al, byte [bp+012h] ; 8a 46 12 8926 9073 mov dx, bx ; 89 da … … 8932 9079 mov byte [bp+013h], al ; 88 46 13 8933 9080 test cl, cl ; 84 c9 8934 jne short 064 87h ; 75 439081 jne short 064efh ; 75 43 8935 9082 or AL, strict byte 080h ; 0c 80 8936 9083 mov byte [bp+013h], al ; 88 46 13 8937 jmp short 064 87h ; eb 3c9084 jmp short 064efh ; eb 3c 8938 9085 mov dx, strict word 0006ch ; ba 6c 00 8939 9086 mov ax, strict word 00040h ; b8 40 00 8940 call 016 6ch ; e8 18 b29087 call 016d4h ; e8 18 b2 8941 9088 mov si, ax ; 89 c6 8942 9089 lea dx, [bx+005h] ; 8d 57 05 … … 8945 9092 ; sub ah, ah ; 2a e4 8946 9093 test AL, strict byte 001h ; a8 01 8947 jne short 064 77h ; 75 179094 jne short 064dfh ; 75 17 8948 9095 test cl, cl ; 84 c9 8949 je short 064 77h ; 74 139096 je short 064dfh ; 74 13 8950 9097 mov dx, strict word 0006ch ; ba 6c 00 8951 9098 mov ax, strict word 00040h ; b8 40 00 8952 call 016 6ch ; e8 ff b19099 call 016d4h ; e8 ff b1 8953 9100 cmp ax, si ; 39 f0 8954 je short 064 56h ; 74 e59101 je short 064beh ; 74 e5 8955 9102 mov si, ax ; 89 c6 8956 9103 db 0feh, 0c9h 8957 9104 ; dec cl ; fe c9 8958 jmp short 064 56h ; eb df9105 jmp short 064beh ; eb df 8959 9106 test cl, cl ; 84 c9 8960 je short 064 8dh ; 74 129107 je short 064f5h ; 74 12 8961 9108 mov byte [bp+013h], 000h ; c6 46 13 00 8962 9109 mov dx, bx ; 89 da … … 8966 9113 mov byte [bp+012h], al ; 88 46 12 8967 9114 and byte [bp+01ch], 0feh ; 80 66 1c fe 8968 jmp short 06 4b0h ; eb 239115 jmp short 06518h ; eb 23 8969 9116 lea dx, [bx+005h] ; 8d 57 05 8970 9117 in AL, DX ; ec 8971 9118 db 02ah, 0e4h 8972 9119 ; sub ah, ah ; 2a e4 8973 jmp short 064 46h ; eb b19120 jmp short 064aeh ; eb b1 8974 9121 lea dx, [si+005h] ; 8d 54 05 8975 9122 in AL, DX ; ec … … 8981 9128 db 02ah, 0e4h 8982 9129 ; sub ah, ah ; 2a e4 8983 jmp short 064 84h ; eb de9130 jmp short 064ech ; eb de 8984 9131 or byte [bp+01ch], 001h ; 80 4e 1c 01 8985 jmp short 06 4b0h ; eb 049132 jmp short 06518h ; eb 04 8986 9133 or byte [bp+01ch], 001h ; 80 4e 1c 01 8987 9134 lea sp, [bp-002h] ; 8d 66 fe … … 8989 9136 pop bp ; 5d 8990 9137 retn ; c3 8991 set_enable_a20_: ; 0xf64b6 LB 0x2c 9138 timer_wait_: ; 0xf651e LB 0x43 9139 push bp ; 55 9140 mov bp, sp ; 89 e5 9141 push bx ; 53 9142 push cx ; 51 9143 push ax ; 50 9144 mov bx, strict word 0000fh ; bb 0f 00 9145 xor cx, cx ; 31 c9 9146 call 09ec0h ; e8 94 39 9147 mov cx, ax ; 89 c1 9148 mov bx, dx ; 89 d3 9149 mov dx, strict word 00061h ; ba 61 00 9150 in AL, DX ; ec 9151 db 02ah, 0e4h 9152 ; sub ah, ah ; 2a e4 9153 and AL, strict byte 010h ; 24 10 9154 mov byte [bp-006h], al ; 88 46 fa 9155 add cx, strict byte 0ffffh ; 83 c1 ff 9156 adc bx, strict byte 0ffffh ; 83 d3 ff 9157 cmp bx, strict byte 0ffffh ; 83 fb ff 9158 jne short 0654bh ; 75 05 9159 cmp cx, strict byte 0ffffh ; 83 f9 ff 9160 je short 0655ah ; 74 0f 9161 mov dx, strict word 00061h ; ba 61 00 9162 in AL, DX ; ec 9163 db 02ah, 0e4h 9164 ; sub ah, ah ; 2a e4 9165 and AL, strict byte 010h ; 24 10 9166 cmp al, byte [bp-006h] ; 3a 46 fa 9167 jne short 0654bh ; 75 f3 9168 jmp short 0653bh ; eb e1 9169 lea sp, [bp-004h] ; 8d 66 fc 9170 pop cx ; 59 9171 pop bx ; 5b 9172 pop bp ; 5d 9173 retn ; c3 9174 set_enable_a20_: ; 0xf6561 LB 0x2c 8992 9175 push bp ; 55 8993 9176 mov bp, sp ; 89 e5 … … 9002 9185 mov cl, al ; 88 c1 9003 9186 test bx, bx ; 85 db 9004 je short 06 4cfh ; 74 059187 je short 0657ah ; 74 05 9005 9188 or AL, strict byte 002h ; 0c 02 9006 9189 out DX, AL ; ee 9007 jmp short 06 4d2h ; eb 039190 jmp short 0657dh ; eb 03 9008 9191 and AL, strict byte 0fdh ; 24 fd 9009 9192 out DX, AL ; ee … … 9018 9201 pop bp ; 5d 9019 9202 retn ; c3 9020 set_e820_range_: ; 0xf6 4e2 LB 0x8c9203 set_e820_range_: ; 0xf658d LB 0x89 9021 9204 push si ; 56 9022 9205 push bp ; 55 … … 9046 9229 pop si ; 5e 9047 9230 retn 0000ah ; c2 0a 00 9048 db 0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 08 7h, 083h, 052h, 04fh, 041h, 024h9049 db 0 00h, 00dh, 06ah, 0adh, 065h, 0c0h, 065h, 055h, 066h, 05bh, 066h, 060h, 066h, 065h, 066h, 007h9050 db 0 67h, 0a4h, 068h, 0cah, 068h, 04eh, 066h, 04eh, 066h, 097h, 069h, 0bfh, 069h, 0d2h, 069h, 0e1h9051 db 0 69h, 055h, 066h, 0e8h, 069h9052 _int15_function: ; 0xf6 56e LB 0x4d19231 db 0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h 9232 db 01ah, 069h, 053h, 066h, 066h, 066h, 0fbh, 066h, 001h, 067h, 006h, 067h, 00bh, 067h, 0adh, 067h 9233 db 0d7h, 067h, 0f4h, 066h, 0f4h, 066h, 0a4h, 068h, 0cch, 068h, 0dfh, 068h, 0eeh, 068h, 0fbh, 066h 9234 db 0f5h, 068h 9235 _int15_function: ; 0xf6616 LB 0x336 9053 9236 push bp ; 55 9054 9237 mov bp, sp ; 89 e5 9055 9238 push si ; 56 9056 9239 push di ; 57 9057 push ax ; 509058 push ax ; 509059 9240 mov ax, word [bp+012h] ; 8b 46 12 9060 9241 shr ax, 008h ; c1 e8 08 9061 9242 cmp ax, 000ech ; 3d ec 00 9062 jnbe near 06 a0dh ; 0f 87 8b 049243 jnbe near 0691ah ; 0f 87 f2 02 9063 9244 push CS ; 0e 9064 9245 pop ES ; 07 9065 mov cx, strict word 0001 2h ; b9 12009066 mov di, 065 39h ; bf 39659246 mov cx, strict word 00011h ; b9 11 00 9247 mov di, 065e4h ; bf e4 65 9067 9248 repne scasb ; f2 ae 9068 9249 sal cx, 1 ; d1 e1 9069 9250 mov di, cx ; 89 cf 9070 mov si, word [cs:di+065 4ah] ; 2e 8b b5 4a659251 mov si, word [cs:di+065f4h] ; 2e 8b b5 f4 65 9071 9252 mov ax, word [bp+012h] ; 8b 46 12 9072 9253 xor ah, ah ; 30 e4 … … 9081 9262 xor ah, ah ; 30 e4 9082 9263 cmp ax, 000c0h ; 3d c0 00 9083 jne near 06 a0dh ; 0f 85 54 049264 jne near 0691ah ; 0f 85 bb 02 9084 9265 or byte [bp+018h], 001h ; 80 4e 18 01 9085 jmp near 06 9b6h ; e9 f6 039266 jmp near 068c3h ; e9 5d 02 9086 9267 mov dx, ax ; 89 c2 9087 9268 cmp ax, strict word 00001h ; 3d 01 00 9088 jc short 06 5d5h ; 72 0e9089 jbe short 06 5e9h ; 76 209269 jc short 0667bh ; 72 0e 9270 jbe short 0668fh ; 76 20 9090 9271 cmp ax, strict word 00003h ; 3d 03 00 9091 je short 066 16h ; 74 489272 je short 066bch ; 74 48 9092 9273 cmp ax, strict word 00002h ; 3d 02 00 9093 je short 06 5f9h ; 74 269094 jmp short 066 23h ; eb 4e9274 je short 0669fh ; 74 26 9275 jmp short 066c9h ; eb 4e 9095 9276 test ax, ax ; 85 c0 9096 jne short 066 23h ; 75 4a9277 jne short 066c9h ; 75 4a 9097 9278 xor ax, ax ; 31 c0 9098 call 06 4b6h ; e8 d8fe9279 call 06561h ; e8 dd fe 9099 9280 and byte [bp+018h], 0feh ; 80 66 18 fe 9100 9281 mov byte [bp+013h], 000h ; c6 46 13 00 9101 jmp near 066 4eh ; e9 65 009282 jmp near 066f4h ; e9 65 00 9102 9283 mov ax, strict word 00001h ; b8 01 00 9103 call 06 4b6h ; e8 c7fe9284 call 06561h ; e8 cc fe 9104 9285 and byte [bp+018h], 0feh ; 80 66 18 fe 9105 9286 mov byte [bp+013h], dh ; 88 76 13 9106 jmp near 066 4eh ; e9 55 009287 jmp near 066f4h ; e9 55 00 9107 9288 mov dx, 00092h ; ba 92 00 9108 9289 in AL, DX ; ec … … 9116 9297 and byte [bp+018h], 0feh ; 80 66 18 fe 9117 9298 mov byte [bp+013h], ah ; 88 66 13 9118 jmp near 066 4eh ; e9 38 009299 jmp near 066f4h ; e9 38 00 9119 9300 and byte [bp+018h], 0feh ; 80 66 18 fe 9120 9301 mov byte [bp+013h], ah ; 88 66 13 9121 9302 mov word [bp+00ch], ax ; 89 46 0c 9122 jmp near 066 4eh ; e9 2b 009303 jmp near 066f4h ; e9 2b 00 9123 9304 mov bx, 00da0h ; bb a0 0d 9124 9305 mov cx, ds ; 8c d9 9125 9306 mov ax, strict word 00004h ; b8 04 00 9126 call 019 31h ; e8 03 b39307 call 01999h ; e8 c5 b2 9127 9308 mov ax, word [bp+012h] ; 8b 46 12 9128 9309 xor ah, ah ; 30 e4 … … 9130 9311 push 0082eh ; 68 2e 08 9131 9312 push strict byte 00004h ; 6a 04 9132 call 019 72h ; e8 36 b39313 call 019dah ; e8 f8 b2 9133 9314 add sp, strict byte 00006h ; 83 c4 06 9134 9315 or byte [bp+018h], 001h ; 80 4e 18 01 … … 9143 9324 retn ; c3 9144 9325 mov word [bp+018h], bx ; 89 5e 18 9145 jmp near 067 01h ; e9 a6 009326 jmp near 067a7h ; e9 a6 00 9146 9327 mov word [bp+018h], bx ; 89 5e 18 9147 jmp short 066 4eh ; eb ee9328 jmp short 066f4h ; eb ee 9148 9329 mov word [bp+018h], cx ; 89 4e 18 9149 jmp short 066 4bh ; eb e69330 jmp short 066f1h ; eb e6 9150 9331 test byte [bp+012h], 0ffh ; f6 46 12 ff 9151 jne short 06 6d7h ; 75 6c9332 jne short 0677dh ; 75 6c 9152 9333 mov dx, 000a0h ; ba a0 00 9153 9334 mov ax, strict word 00040h ; b8 40 00 9154 call 016 50h ; e8 dcaf9335 call 016b8h ; e8 9e af 9155 9336 test AL, strict byte 001h ; a8 01 9156 jne near 06 9adh ; 0f 85 33 039337 jne near 068bah ; 0f 85 9a 01 9157 9338 mov bx, strict word 00001h ; bb 01 00 9158 9339 mov dx, 000a0h ; ba a0 00 9159 9340 mov ax, strict word 00040h ; b8 40 00 9160 call 016 5eh ; e8 d8af9341 call 016c6h ; e8 9a af 9161 9342 mov bx, word [bp+014h] ; 8b 5e 14 9162 9343 mov dx, 00098h ; ba 98 00 9163 9344 mov ax, strict word 00040h ; b8 40 00 9164 call 016 7ah ; e8 e8af9345 call 016e2h ; e8 aa af 9165 9346 mov bx, word [bp+00ch] ; 8b 5e 0c 9166 9347 mov dx, 0009ah ; ba 9a 00 9167 9348 mov ax, strict word 00040h ; b8 40 00 9168 call 016 7ah ; e8 dcaf9349 call 016e2h ; e8 9e af 9169 9350 mov bx, word [bp+00eh] ; 8b 5e 0e 9170 9351 mov dx, 0009ch ; ba 9c 00 9171 9352 mov ax, strict word 00040h ; b8 40 00 9172 call 016 7ah ; e8 d0af9353 call 016e2h ; e8 92 af 9173 9354 mov bx, word [bp+010h] ; 8b 5e 10 9174 9355 mov dx, 0009eh ; ba 9e 00 9175 9356 mov ax, strict word 00040h ; b8 40 00 9176 call 016 7ah ; e8 c4af9357 call 016e2h ; e8 86 af 9177 9358 and byte [bp+018h], 0feh ; 80 66 18 fe 9178 9359 mov dx, 000a1h ; ba a1 00 … … 9183 9364 out DX, AL ; ee 9184 9365 mov ax, strict word 0000bh ; b8 0b 00 9185 call 01 6ach ; e8 e3af9366 call 01714h ; e8 a5 af 9186 9367 or AL, strict byte 040h ; 0c 40 9187 9368 movzx dx, al ; 0f b6 d0 9188 9369 mov ax, strict word 0000bh ; b8 0b 00 9189 call 01 6c9h ; e8 f5af9190 jmp near 066 4eh ; e9 77 ff9370 call 01731h ; e8 b7 af 9371 jmp near 066f4h ; e9 77 ff 9191 9372 cmp ax, strict word 00001h ; 3d 01 00 9192 jne short 06 6f5h ; 75 199373 jne short 0679bh ; 75 19 9193 9374 xor bx, bx ; 31 db 9194 9375 mov dx, 000a0h ; ba a0 00 9195 9376 mov ax, strict word 00040h ; b8 40 00 9196 call 016 5eh ; e8 77af9377 call 016c6h ; e8 39 af 9197 9378 and byte [bp+018h], 0feh ; 80 66 18 fe 9198 9379 mov ax, strict word 0000bh ; b8 0b 00 9199 call 01 6ach ; e8 bbaf9380 call 01714h ; e8 7d af 9200 9381 and AL, strict byte 0bfh ; 24 bf 9201 jmp short 06 6cbh ; eb d69382 jmp short 06771h ; eb d6 9202 9383 mov word [bp+018h], bx ; 89 5e 18 9203 9384 mov ax, dx ; 89 d0 … … 9207 9388 or dx, ax ; 09 c2 9208 9389 mov word [bp+012h], dx ; 89 56 12 9209 jmp near 0664eh ; e9 47 ff 9210 cli ; fa 9211 mov ax, strict word 00001h ; b8 01 00 9212 call 064b6h ; e8 a8 fd 9213 mov di, ax ; 89 c7 9214 mov ax, word [bp+014h] ; 8b 46 14 9215 sal ax, 004h ; c1 e0 04 9216 mov cx, word [bp+006h] ; 8b 4e 06 9217 add cx, ax ; 01 c1 9218 mov dx, word [bp+014h] ; 8b 56 14 9219 shr dx, 00ch ; c1 ea 0c 9220 mov byte [bp-006h], dl ; 88 56 fa 9221 cmp cx, ax ; 39 c1 9222 jnc short 0672dh ; 73 05 9223 db 0feh, 0c2h 9224 ; inc dl ; fe c2 9225 mov byte [bp-006h], dl ; 88 56 fa 9226 mov dx, word [bp+006h] ; 8b 56 06 9227 add dx, strict byte 00008h ; 83 c2 08 9228 mov ax, word [bp+014h] ; 8b 46 14 9229 mov bx, strict word 0002fh ; bb 2f 00 9230 call 0167ah ; e8 3e af 9231 mov dx, word [bp+006h] ; 8b 56 06 9232 add dx, strict byte 0000ah ; 83 c2 0a 9233 mov ax, word [bp+014h] ; 8b 46 14 9234 mov bx, cx ; 89 cb 9235 call 0167ah ; e8 30 af 9236 movzx bx, byte [bp-006h] ; 0f b6 5e fa 9237 mov dx, word [bp+006h] ; 8b 56 06 9238 add dx, strict byte 0000ch ; 83 c2 0c 9239 mov ax, word [bp+014h] ; 8b 46 14 9240 call 0165eh ; e8 04 af 9241 mov dx, word [bp+006h] ; 8b 56 06 9242 add dx, strict byte 0000dh ; 83 c2 0d 9243 mov ax, word [bp+014h] ; 8b 46 14 9244 mov bx, 00093h ; bb 93 00 9245 call 0165eh ; e8 f5 ae 9246 mov dx, word [bp+006h] ; 8b 56 06 9247 add dx, strict byte 0000eh ; 83 c2 0e 9248 mov ax, word [bp+014h] ; 8b 46 14 9249 xor bx, bx ; 31 db 9250 call 0167ah ; e8 03 af 9251 mov dx, word [bp+006h] ; 8b 56 06 9252 add dx, strict byte 00020h ; 83 c2 20 9253 mov ax, word [bp+014h] ; 8b 46 14 9254 mov bx, strict word 0ffffh ; bb ff ff 9255 call 0167ah ; e8 f4 ae 9256 mov dx, word [bp+006h] ; 8b 56 06 9257 add dx, strict byte 00022h ; 83 c2 22 9258 mov ax, word [bp+014h] ; 8b 46 14 9259 xor bx, bx ; 31 db 9260 call 0167ah ; e8 e6 ae 9261 mov dx, word [bp+006h] ; 8b 56 06 9262 add dx, strict byte 00024h ; 83 c2 24 9263 mov ax, word [bp+014h] ; 8b 46 14 9264 mov bx, strict word 0000fh ; bb 0f 00 9265 call 0165eh ; e8 bb ae 9266 mov dx, word [bp+006h] ; 8b 56 06 9267 add dx, strict byte 00025h ; 83 c2 25 9268 mov ax, word [bp+014h] ; 8b 46 14 9269 mov bx, 0009bh ; bb 9b 00 9270 call 0165eh ; e8 ac ae 9271 mov dx, word [bp+006h] ; 8b 56 06 9272 add dx, strict byte 00026h ; 83 c2 26 9273 mov ax, word [bp+014h] ; 8b 46 14 9274 xor bx, bx ; 31 db 9275 call 0167ah ; e8 ba ae 9276 mov ax, ss ; 8c d0 9277 mov cx, ax ; 89 c1 9278 sal cx, 004h ; c1 e1 04 9279 shr ax, 00ch ; c1 e8 0c 9280 mov word [bp-008h], ax ; 89 46 f8 9281 mov dx, word [bp+006h] ; 8b 56 06 9282 add dx, strict byte 00028h ; 83 c2 28 9283 mov ax, word [bp+014h] ; 8b 46 14 9284 mov bx, strict word 0ffffh ; bb ff ff 9285 call 0167ah ; e8 9e ae 9286 mov dx, word [bp+006h] ; 8b 56 06 9287 add dx, strict byte 0002ah ; 83 c2 2a 9288 mov ax, word [bp+014h] ; 8b 46 14 9289 mov bx, cx ; 89 cb 9290 call 0167ah ; e8 90 ae 9291 movzx bx, byte [bp-008h] ; 0f b6 5e f8 9292 mov dx, word [bp+006h] ; 8b 56 06 9293 add dx, strict byte 0002ch ; 83 c2 2c 9294 mov ax, word [bp+014h] ; 8b 46 14 9295 call 0165eh ; e8 64 ae 9296 mov dx, word [bp+006h] ; 8b 56 06 9297 add dx, strict byte 0002dh ; 83 c2 2d 9298 mov ax, word [bp+014h] ; 8b 46 14 9299 mov bx, 00093h ; bb 93 00 9300 call 0165eh ; e8 55 ae 9301 mov dx, word [bp+006h] ; 8b 56 06 9302 add dx, strict byte 0002eh ; 83 c2 2e 9303 mov ax, word [bp+014h] ; 8b 46 14 9304 xor bx, bx ; 31 db 9305 call 0167ah ; e8 63 ae 9306 mov si, word [bp+006h] ; 8b 76 06 9307 mov es, [bp+014h] ; 8e 46 14 9308 mov cx, word [bp+010h] ; 8b 4e 10 9309 push DS ; 1e 9310 push eax ; 66 50 9311 db 066h, 033h, 0c0h 9312 ; xor eax, eax ; 66 33 c0 9313 mov ds, ax ; 8e d8 9314 mov word [00467h], sp ; 89 26 67 04 9315 mov [00469h], ss ; 8c 16 69 04 9316 call 06833h ; e8 00 00 9317 pop di ; 5f 9318 add di, strict byte 0001bh ; 83 c7 1b 9319 push strict byte 00020h ; 6a 20 9320 push di ; 57 9321 lgdt [es:si+008h] ; 26 0f 01 54 08 9322 lidt [cs:0efe1h] ; 2e 0f 01 1e e1 ef 9323 mov eax, cr0 ; 0f 20 c0 9324 or AL, strict byte 001h ; 0c 01 9325 mov cr0, eax ; 0f 22 c0 9326 retf ; cb 9327 mov ax, strict word 00028h ; b8 28 00 9328 mov ss, ax ; 8e d0 9329 mov ax, strict word 00010h ; b8 10 00 9330 mov ds, ax ; 8e d8 9331 mov ax, strict word 00018h ; b8 18 00 9332 mov es, ax ; 8e c0 9333 db 033h, 0f6h 9334 ; xor si, si ; 33 f6 9335 db 033h, 0ffh 9336 ; xor di, di ; 33 ff 9337 cld ; fc 9338 rep movsw ; f3 a5 9339 call 06867h ; e8 00 00 9340 pop ax ; 58 9341 push 0f000h ; 68 00 f0 9342 add ax, strict byte 00018h ; 83 c0 18 9343 push ax ; 50 9344 mov ax, strict word 00028h ; b8 28 00 9345 mov ds, ax ; 8e d8 9346 mov es, ax ; 8e c0 9347 mov eax, cr0 ; 0f 20 c0 9348 and AL, strict byte 0feh ; 24 fe 9349 mov cr0, eax ; 0f 22 c0 9350 retf ; cb 9351 lidt [cs:0efe7h] ; 2e 0f 01 1e e7 ef 9352 db 033h, 0c0h 9353 ; xor ax, ax ; 33 c0 9354 mov ds, ax ; 8e d8 9355 mov es, ax ; 8e c0 9356 lss sp, [00467h] ; 0f b2 26 67 04 9357 pop eax ; 66 58 9358 pop DS ; 1f 9359 mov ax, di ; 89 f8 9360 call 064b6h ; e8 1e fc 9361 sti ; fb 9362 mov byte [bp+013h], 000h ; c6 46 13 00 9363 and byte [bp+018h], 0feh ; 80 66 18 fe 9364 jmp near 0664eh ; e9 aa fd 9390 jmp near 066f4h ; e9 47 ff 9365 9391 mov ax, strict word 00031h ; b8 31 00 9366 call 016ach ; e8 02 ae 9367 xor ah, ah ; 30 e4 9368 mov dx, ax ; 89 c2 9392 call 01714h ; e8 61 af 9393 movzx dx, al ; 0f b6 d0 9369 9394 sal dx, 008h ; c1 e2 08 9370 9395 mov ax, strict word 00030h ; b8 30 00 9371 call 01 6ach ; e8 f5 ad9396 call 01714h ; e8 55 af 9372 9397 xor ah, ah ; 30 e4 9373 9398 or dx, ax ; 09 c2 9374 9399 mov word [bp+012h], dx ; 89 56 12 9375 9400 cmp dx, strict byte 0ffc0h ; 83 fa c0 9376 jbe short 06 89dh ; 76 da9401 jbe short 067d0h ; 76 05 9377 9402 mov word [bp+012h], strict word 0ffc0h ; c7 46 12 c0 ff 9378 jmp short 0689dh ; eb d3 9403 and byte [bp+018h], 0feh ; 80 66 18 fe 9404 jmp near 066f4h ; e9 1d ff 9379 9405 cli ; fa 9380 9406 mov ax, strict word 00001h ; b8 01 00 9381 call 06 4b6h ; e8 e5 fb9407 call 06561h ; e8 83 fd 9382 9408 mov dx, word [bp+006h] ; 8b 56 06 9383 9409 add dx, strict byte 00038h ; 83 c2 38 9384 9410 mov ax, word [bp+014h] ; 8b 46 14 9385 9411 mov bx, strict word 0ffffh ; bb ff ff 9386 call 016 7ah ; e8 9a ad9412 call 016e2h ; e8 f5 ae 9387 9413 mov dx, word [bp+006h] ; 8b 56 06 9388 9414 add dx, strict byte 0003ah ; 83 c2 3a 9389 9415 mov ax, word [bp+014h] ; 8b 46 14 9390 9416 xor bx, bx ; 31 db 9391 call 016 7ah ; e8 8c ad9417 call 016e2h ; e8 e7 ae 9392 9418 mov dx, word [bp+006h] ; 8b 56 06 9393 9419 add dx, strict byte 0003ch ; 83 c2 3c 9394 9420 mov ax, word [bp+014h] ; 8b 46 14 9395 9421 mov bx, strict word 0000fh ; bb 0f 00 9396 call 016 5eh ; e8 61 ad9422 call 016c6h ; e8 bc ae 9397 9423 mov dx, word [bp+006h] ; 8b 56 06 9398 9424 add dx, strict byte 0003dh ; 83 c2 3d 9399 9425 mov ax, word [bp+014h] ; 8b 46 14 9400 9426 mov bx, 0009bh ; bb 9b 00 9401 call 016 5eh ; e8 52 ad9427 call 016c6h ; e8 ad ae 9402 9428 mov dx, word [bp+006h] ; 8b 56 06 9403 9429 add dx, strict byte 0003eh ; 83 c2 3e 9404 9430 mov ax, word [bp+014h] ; 8b 46 14 9405 9431 xor bx, bx ; 31 db 9406 call 016 7ah ; e8 60 ad9432 call 016e2h ; e8 bb ae 9407 9433 mov AL, strict byte 011h ; b0 11 9408 9434 mov dx, strict word 00020h ; ba 20 00 … … 9434 9460 out DX, AL ; ee 9435 9461 mov si, word [bp+006h] ; 8b 76 06 9436 call 06 95bh ; e8 00 009462 call 06868h ; e8 00 00 9437 9463 pop di ; 5f 9438 9464 add di, strict byte 00018h ; 83 c7 18 … … 9462 9488 push cx ; 51 9463 9489 retf ; cb 9464 jmp near 066 4eh ; e9 b7 fc9490 jmp near 066f4h ; e9 50 fe 9465 9491 mov bx, 00da0h ; bb a0 0d 9466 9492 mov cx, ds ; 8c d9 9467 9493 mov ax, strict word 00004h ; b8 04 00 9468 call 019 31h ; e8 8f af9494 call 01999h ; e8 ea b0 9469 9495 push 0086eh ; 68 6e 08 9470 9496 push strict byte 00004h ; 6a 04 9471 call 019 72h ; e8 c8 af9497 call 019dah ; e8 23 b1 9472 9498 add sp, strict byte 00004h ; 83 c4 04 9473 9499 or byte [bp+018h], 001h ; 80 4e 18 01 … … 9476 9502 or ah, 086h ; 80 cc 86 9477 9503 mov word [bp+012h], ax ; 89 46 12 9478 jmp near 066 4eh ; e9 8f fc9504 jmp near 066f4h ; e9 28 fe 9479 9505 mov word [bp+018h], cx ; 89 4e 18 9480 9506 mov word [bp+012h], ax ; 89 46 12 9481 9507 mov word [bp+00ch], 0e6f5h ; c7 46 0c f5 e6 9482 9508 mov word [bp+014h], 0f000h ; c7 46 14 00 f0 9483 jmp near 066 4eh ; e9 7c fc9509 jmp near 066f4h ; e9 15 fe 9484 9510 mov dx, strict word 0000eh ; ba 0e 00 9485 9511 mov ax, strict word 00040h ; b8 40 00 9486 call 016 6ch ; e8 91 ac9512 call 016d4h ; e8 ec ad 9487 9513 mov word [bp+014h], ax ; 89 46 14 9488 jmp near 06 89dh ; e9 bcfe9514 jmp near 067d0h ; e9 e2 fe 9489 9515 push 0089dh ; 68 9d 08 9490 9516 push strict byte 00008h ; 6a 08 9491 jmp short 06 9a7h ; eb bf9517 jmp short 068b4h ; eb bf 9492 9518 test byte [bp+012h], 0ffh ; f6 46 12 ff 9493 jne short 06 a0dh ; 75 1f9519 jne short 0691ah ; 75 1f 9494 9520 mov word [bp+012h], ax ; 89 46 12 9495 9521 mov ax, word [bp+00ch] ; 8b 46 0c 9496 9522 xor ah, ah ; 30 e4 9497 9523 cmp ax, strict word 00001h ; 3d 01 00 9498 jc short 06 a06h ; 72 0b9524 jc short 06913h ; 72 0b 9499 9525 cmp ax, strict word 00003h ; 3d 03 00 9500 jnbe short 06 a06h ; 77 069526 jnbe short 06913h ; 77 06 9501 9527 mov word [bp+018h], cx ; 89 4e 18 9502 jmp near 066 4eh ; e9 48 fc9528 jmp near 066f4h ; e9 e1 fd 9503 9529 or byte [bp+018h], 001h ; 80 4e 18 01 9504 jmp near 066 4eh ; e9 41 fc9530 jmp near 066f4h ; e9 da fd 9505 9531 mov bx, 00da0h ; bb a0 0d 9506 9532 mov cx, ds ; 8c d9 9507 9533 mov ax, strict word 00004h ; b8 04 00 9508 call 019 31h ; e8 19 af9534 call 01999h ; e8 74 b0 9509 9535 push word [bp+00ch] ; ff 76 0c 9510 9536 push word [bp+012h] ; ff 76 12 9511 9537 push 008b4h ; 68 b4 08 9512 9538 push strict byte 00004h ; 6a 04 9513 call 019 72h ; e8 4c af9539 call 019dah ; e8 a7 b0 9514 9540 add sp, strict byte 00008h ; 83 c4 08 9515 jmp short 069adh ; eb 82 9516 in ax, 06bh ; e5 6b 9517 pop ES ; 07 9541 jmp short 068bah ; eb 82 9542 lds bp, [bp+si-019h] ; c5 6a e7 9543 push strict byte 0000ah ; 6a 0a 9544 imul bp, word [si], strict byte 0006bh ; 6b 2c 6b 9545 dec sp ; 4c 9546 imul bp, word [bp+di+06bh], strict byte 0ff8fh ; 6b 6b 6b 8f 9547 imul si, word [bp+di-00d95h], strict byte 0006bh ; 6b b3 6b f2 6b 9548 push DS ; 1e 9518 9549 insb ; 6c 9519 sub ch, byte [si+04ch] ; 2a 6c 4c 9520 insb ; 6c 9521 insb ; 6c 9522 insb ; 6c 9523 mov bp, word [si-051h] ; 8b 6c af 9524 insb ; 6c 9525 shr word [si+012h], CL ; d3 6c 12 9526 insw ; 6d 9527 db 03eh, 06dh 9528 ; ds insw ; 3e 6d 9529 _int15_function32: ; 0xf6a3f LB 0x3c2 9550 _int15_function32: ; 0xf694c LB 0x396 9530 9551 push bp ; 55 9531 9552 mov bp, sp ; 89 e5 … … 9539 9560 xor dh, dh ; 30 f6 9540 9561 cmp ax, 000e8h ; 3d e8 00 9541 je near 06 b09h ; 0f 84 ab009562 je near 069e9h ; 0f 84 7e 00 9542 9563 cmp ax, 000d0h ; 3d d0 00 9543 je short 06 aa4h ; 74 419564 je short 06984h ; 74 14 9544 9565 cmp ax, 00086h ; 3d 86 00 9545 jne near 06 dd1h ; 0f 85 67039566 jne near 06cb2h ; 0f 85 3b 03 9546 9567 sti ; fb 9547 mov ax, word [bp+01ch] ; 8b 46 1c 9548 mov dx, word [bp+018h] ; 8b 56 18 9549 sal eax, 010h ; 66 c1 e0 10 9550 db 08bh, 0c2h 9551 ; mov ax, dx ; 8b c2 9552 mov ebx, strict dword 00000000fh ; 66 bb 0f 00 00 00 9553 db 066h, 033h, 0d2h 9554 ; xor edx, edx ; 66 33 d2 9555 div ebx ; 66 f7 f3 9556 db 066h, 08bh, 0c8h 9557 ; mov ecx, eax ; 66 8b c8 9558 in AL, strict byte 061h ; e4 61 9559 and AL, strict byte 010h ; 24 10 9560 db 08ah, 0e0h 9561 ; mov ah, al ; 8a e0 9562 db 066h, 00bh, 0c9h 9563 ; or ecx, ecx ; 66 0b c9 9564 je near 06aa1h ; 0f 84 0e 00 9565 in AL, strict byte 061h ; e4 61 9566 and AL, strict byte 010h ; 24 10 9567 db 03ah, 0c4h 9568 ; cmp al, ah ; 3a c4 9569 je short 06a93h ; 74 f8 9570 db 08ah, 0e0h 9571 ; mov ah, al ; 8a e0 9572 dec ecx ; 66 49 9573 jne short 06a93h ; 75 f2 9574 jmp near 06dfbh ; e9 57 03 9568 mov dx, word [bp+01ch] ; 8b 56 1c 9569 mov ax, word [bp+018h] ; 8b 46 18 9570 call 0651eh ; e8 9d fb 9571 jmp near 06cdch ; e9 58 03 9575 9572 cmp dx, strict byte 0004fh ; 83 fa 4f 9576 jne near 06 dd1h ; 0f 85 26039573 jne near 06cb2h ; 0f 85 27 03 9577 9574 cmp word [bp+016h], 05052h ; 81 7e 16 52 50 9578 jne near 06 dd1h ; 0f 85 1d039575 jne near 06cb2h ; 0f 85 1e 03 9579 9576 cmp word [bp+014h], 04f43h ; 81 7e 14 43 4f 9580 jne near 06 dd1h ; 0f 85 14039577 jne near 06cb2h ; 0f 85 15 03 9581 9578 cmp word [bp+01eh], 04d4fh ; 81 7e 1e 4f 4d 9582 jne near 06 dd1h ; 0f 85 0b039579 jne near 06cb2h ; 0f 85 0c 03 9583 9580 cmp word [bp+01ch], 04445h ; 81 7e 1c 45 44 9584 jne near 06 dd1h ; 0f 85 02039581 jne near 06cb2h ; 0f 85 03 03 9585 9582 mov ax, word [bp+00ah] ; 8b 46 0a 9586 9583 or ax, word [bp+008h] ; 0b 46 08 9587 jne near 06 dd1h ; 0f 85 f8029584 jne near 06cb2h ; 0f 85 f9 02 9588 9585 mov ax, word [bp+006h] ; 8b 46 06 9589 9586 or ax, word [bp+004h] ; 0b 46 04 9590 jne near 06 dd1h ; 0f 85 ee029587 jne near 06cb2h ; 0f 85 ef 02 9591 9588 mov word [bp+028h], bx ; 89 5e 28 9592 9589 mov ax, word [bp+014h] ; 8b 46 14 … … 9599 9596 mov word [bp+006h], ax ; 89 46 06 9600 9597 mov dword [bp+020h], strict dword 049413332h ; 66 c7 46 20 32 33 41 49 9601 jmp near 06 dfbh ; e9 f2029598 jmp near 06cdch ; e9 f3 02 9602 9599 cmp dx, strict byte 00020h ; 83 fa 20 9603 je short 06 b18h ; 74 0a9600 je short 069f8h ; 74 0a 9604 9601 cmp dx, strict byte 00001h ; 83 fa 01 9605 je near 06 d85h ; 0f 84 70 029606 jmp near 06 dd1h ; e9 b9029602 je near 06c65h ; 0f 84 70 02 9603 jmp near 06cb2h ; e9 ba 02 9607 9604 cmp word [bp+01ah], 0534dh ; 81 7e 1a 4d 53 9608 jne near 06 dd1h ; 0f 85 b0029605 jne near 06cb2h ; 0f 85 b1 02 9609 9606 cmp word [bp+018h], 04150h ; 81 7e 18 50 41 9610 jne near 06 dd1h ; 0f 85 a7029607 jne near 06cb2h ; 0f 85 a8 02 9611 9608 mov ax, strict word 00035h ; b8 35 00 9612 call 01 6ach ; e8 7c ab9609 call 01714h ; e8 04 ad 9613 9610 movzx bx, al ; 0f b6 d8 9614 9611 xor dx, dx ; 31 d2 … … 9616 9613 sal bx, 1 ; d1 e3 9617 9614 rcl dx, 1 ; d1 d2 9618 loop 06 b38h ; e2 fa9615 loop 06a18h ; e2 fa 9619 9616 mov ax, strict word 00034h ; b8 34 00 9620 call 01 6ach ; e8 68 ab9617 call 01714h ; e8 f0 ac 9621 9618 xor ah, ah ; 30 e4 9622 9619 mov dx, bx ; 89 da … … 9626 9623 adc dx, 00100h ; 81 d2 00 01 9627 9624 cmp dx, 00100h ; 81 fa 00 01 9628 jc short 06 b5eh ; 72 069629 jne short 06 b8bh ; 75 319625 jc short 06a3eh ; 72 06 9626 jne short 06a6bh ; 75 31 9630 9627 test bx, bx ; 85 db 9631 jnbe short 06 b8bh ; 77 2d9628 jnbe short 06a6bh ; 77 2d 9632 9629 mov ax, strict word 00031h ; b8 31 00 9633 call 01 6ach ; e8 48 ab9630 call 01714h ; e8 d0 ac 9634 9631 movzx bx, al ; 0f b6 d8 9635 9632 xor dx, dx ; 31 d2 … … 9637 9634 sal bx, 1 ; d1 e3 9638 9635 rcl dx, 1 ; d1 d2 9639 loop 06 b6ch ; e2 fa9636 loop 06a4ch ; e2 fa 9640 9637 mov ax, strict word 00030h ; b8 30 00 9641 call 01 6ach ; e8 34 ab9638 call 01714h ; e8 bc ac 9642 9639 xor ah, ah ; 30 e4 9643 9640 or bx, ax ; 09 c3 … … 9645 9642 sal bx, 1 ; d1 e3 9646 9643 rcl dx, 1 ; d1 d2 9647 loop 06 b7fh ; e2 fa9644 loop 06a5fh ; e2 fa 9648 9645 add bx, strict byte 00000h ; 83 c3 00 9649 9646 adc dx, strict byte 00010h ; 83 d2 10 9650 9647 mov ax, strict word 00062h ; b8 62 00 9651 call 01 6ach ; e8 1b ab9648 call 01714h ; e8 a3 ac 9652 9649 xor ah, ah ; 30 e4 9653 9650 mov word [bp-00ah], ax ; 89 46 f6 … … 9657 9654 sal word [bp-00ah], 1 ; d1 66 f6 9658 9655 rcl word [bp-008h], 1 ; d1 56 f8 9659 loop 06 b9eh ; e2 f89656 loop 06a7eh ; e2 f8 9660 9657 mov ax, strict word 00061h ; b8 61 00 9661 call 01 6ach ; e8 00 ab9658 call 01714h ; e8 88 ac 9662 9659 xor ah, ah ; 30 e4 9663 9660 or word [bp-00ah], ax ; 09 46 f6 … … 9666 9663 mov word [bp-00ah], strict word 00000h ; c7 46 f6 00 00 9667 9664 mov ax, strict word 00063h ; b8 63 00 9668 call 01 6ach ; e8 ea aa9665 call 01714h ; e8 72 ac 9669 9666 mov byte [bp-004h], al ; 88 46 fc 9670 9667 mov byte [bp-006h], al ; 88 46 fa 9671 9668 mov ax, word [bp+014h] ; 8b 46 14 9672 9669 cmp ax, strict word 00009h ; 3d 09 00 9673 jnbe near 06 dd1h ; 0f 87 ff 019670 jnbe near 06cb2h ; 0f 87 00 02 9674 9671 mov si, ax ; 89 c6 9675 9672 add si, ax ; 01 c6 … … 9678 9675 mov cx, dx ; 89 d1 9679 9676 adc cx, strict byte 0ffffh ; 83 d1 ff 9680 jmp word [cs:si+06 a2bh] ; 2e ff a4 2b 6a9677 jmp word [cs:si+06938h] ; 2e ff a4 38 69 9681 9678 push strict byte 00001h ; 6a 01 9682 9679 push dword 000000000h ; 66 6a 00 … … 9687 9684 xor bx, bx ; 31 db 9688 9685 xor cx, cx ; 31 c9 9689 call 06 4e2h ; e8 e6 f89686 call 0658dh ; e8 b1 fa 9690 9687 mov dword [bp+014h], strict dword 000000001h ; 66 c7 46 14 01 00 00 00 9691 jmp near 06 d6fh ; e9 68 019688 jmp near 06c4fh ; e9 68 01 9692 9689 push strict byte 00002h ; 6a 02 9693 9690 push dword 000000000h ; 66 6a 00 … … 9698 9695 mov bx, 0fc00h ; bb 00 fc 9699 9696 mov cx, strict word 00009h ; b9 09 00 9700 call 06 4e2h ; e8 c3 f89697 call 0658dh ; e8 8e fa 9701 9698 mov dword [bp+014h], strict dword 000000002h ; 66 c7 46 14 02 00 00 00 9702 jmp near 06 d6fh ; e9 45 019699 jmp near 06c4fh ; e9 45 01 9703 9700 push strict byte 00002h ; 6a 02 9704 9701 push dword 000000000h ; 66 6a 00 … … 9709 9706 xor bx, bx ; 31 db 9710 9707 mov cx, strict word 0000fh ; b9 0f 00 9711 call 06 4e2h ; e8 a1 f89708 call 0658dh ; e8 6c fa 9712 9709 mov dword [bp+014h], strict dword 000000003h ; 66 c7 46 14 03 00 00 00 9713 jmp near 06 d6fh ; e9 23 019710 jmp near 06c4fh ; e9 23 01 9714 9711 push strict byte 00001h ; 6a 01 9715 9712 push dword 000000000h ; 66 6a 00 … … 9720 9717 xor bx, bx ; 31 db 9721 9718 mov cx, strict word 00010h ; b9 10 00 9722 call 06 4e2h ; e8 81 f89719 call 0658dh ; e8 4c fa 9723 9720 mov dword [bp+014h], strict dword 000000004h ; 66 c7 46 14 04 00 00 00 9724 jmp near 06 d6fh ; e9 03 019721 jmp near 06c4fh ; e9 03 01 9725 9722 push strict byte 00003h ; 6a 03 9726 9723 push dword 000000000h ; 66 6a 00 … … 9731 9728 mov bx, ax ; 89 c3 9732 9729 mov ax, si ; 89 f0 9733 call 06 4e2h ; e8 62 f89730 call 0658dh ; e8 2d fa 9734 9731 mov dword [bp+014h], strict dword 000000005h ; 66 c7 46 14 05 00 00 00 9735 jmp near 06 d6fh ; e9 e4 009732 jmp near 06c4fh ; e9 e4 00 9736 9733 push strict byte 00002h ; 6a 02 9737 9734 push dword 000000000h ; 66 6a 00 … … 9742 9739 xor bx, bx ; 31 db 9743 9740 mov cx, 0fec0h ; b9 c0 fe 9744 call 06 4e2h ; e8 3e f89741 call 0658dh ; e8 09 fa 9745 9742 mov dword [bp+014h], strict dword 000000006h ; 66 c7 46 14 06 00 00 00 9746 jmp near 06 d6fh ; e9 c0 009743 jmp near 06c4fh ; e9 c0 00 9747 9744 push strict byte 00002h ; 6a 02 9748 9745 push dword 000000000h ; 66 6a 00 … … 9753 9750 xor bx, bx ; 31 db 9754 9751 mov cx, 0fee0h ; b9 e0 fe 9755 call 06 4e2h ; e8 1a f89752 call 0658dh ; e8 e5 f9 9756 9753 mov dword [bp+014h], strict dword 000000007h ; 66 c7 46 14 07 00 00 00 9757 jmp near 06 d6fh ; e9 9c 009754 jmp near 06c4fh ; e9 9c 00 9758 9755 push strict byte 00002h ; 6a 02 9759 9756 push dword 000000000h ; 66 6a 00 … … 9763 9760 xor bx, bx ; 31 db 9764 9761 mov cx, strict word 0fffch ; b9 fc ff 9765 call 06 4e2h ; e8 f9 f79762 call 0658dh ; e8 c4 f9 9766 9763 cmp byte [bp-004h], 000h ; 80 7e fc 00 9767 jne short 06 cf6h ; 75 079764 jne short 06bd6h ; 75 07 9768 9765 mov ax, word [bp-008h] ; 8b 46 f8 9769 9766 test ax, ax ; 85 c0 9770 je short 06 d0ah ; 74 149767 je short 06beah ; 74 14 9771 9768 mov dword [bp+014h], strict dword 000000009h ; 66 c7 46 14 09 00 00 00 9772 jmp short 06 d6fh ; eb 6f9769 jmp short 06c4fh ; eb 6f 9773 9770 mov dword [bp+014h], strict dword 000000008h ; 66 c7 46 14 08 00 00 00 9774 jmp short 06 d6fh ; eb 659771 jmp short 06c4fh ; eb 65 9775 9772 mov word [bp+014h], ax ; 89 46 14 9776 9773 mov word [bp+016h], ax ; 89 46 16 9777 jmp short 06 d6fh ; eb 5d9774 jmp short 06c4fh ; eb 5d 9778 9775 push strict byte 00002h ; 6a 02 9779 9776 push dword 000000000h ; 66 6a 00 … … 9783 9780 xor bx, bx ; 31 db 9784 9781 xor cx, cx ; 31 c9 9785 call 06 4e2h ; e8 bb f79782 call 0658dh ; e8 86 f9 9786 9783 cmp byte [bp-004h], 000h ; 80 7e fc 00 9787 jne short 06 d34h ; 75 079784 jne short 06c14h ; 75 07 9788 9785 mov ax, word [bp-008h] ; 8b 46 f8 9789 9786 test ax, ax ; 85 c0 9790 je short 06 d36h ; 74 029791 jmp short 06 cf6h ; eb c09787 je short 06c16h ; 74 02 9788 jmp short 06bd6h ; eb c0 9792 9789 mov word [bp+014h], ax ; 89 46 14 9793 9790 mov word [bp+016h], ax ; 89 46 16 9794 jmp short 06 d6fh ; eb 319791 jmp short 06c4fh ; eb 31 9795 9792 cmp byte [bp-004h], 000h ; 80 7e fc 00 9796 jne short 06 d4ah ; 75 069793 jne short 06c2ah ; 75 06 9797 9794 cmp word [bp-008h], strict byte 00000h ; 83 7e f8 00 9798 je short 06 d6fh ; 74 259795 je short 06c4fh ; 74 25 9799 9796 push strict byte 00001h ; 6a 01 9800 9797 mov al, byte [bp-006h] ; 8a 46 fa … … 9809 9806 xor bx, bx ; 31 db 9810 9807 xor cx, cx ; 31 c9 9811 call 06 4e2h ; e8 7b f79808 call 0658dh ; e8 46 f9 9812 9809 xor ax, ax ; 31 c0 9813 9810 mov word [bp+014h], ax ; 89 46 14 … … 9816 9813 mov dword [bp+01ch], strict dword 000000014h ; 66 c7 46 1c 14 00 00 00 9817 9814 and byte [bp+028h], 0feh ; 80 66 28 fe 9818 jmp short 06 dfbh ; eb 769815 jmp short 06cdch ; eb 77 9819 9816 mov word [bp+028h], bx ; 89 5e 28 9820 9817 mov ax, strict word 00031h ; b8 31 00 9821 call 016ach ; e8 1e a9 9822 movzx dx, al ; 0f b6 d0 9818 call 01714h ; e8 a6 aa 9819 xor ah, ah ; 30 e4 9820 mov dx, ax ; 89 c2 9823 9821 sal dx, 008h ; c1 e2 08 9824 9822 mov ax, strict word 00030h ; b8 30 00 9825 call 01 6ach ; e8 12 a99823 call 01714h ; e8 99 aa 9826 9824 xor ah, ah ; 30 e4 9827 9825 or dx, ax ; 09 c2 9828 9826 mov word [bp+01ch], dx ; 89 56 1c 9829 9827 cmp dx, 03c00h ; 81 fa 00 3c 9830 jbe short 06 dach ; 76 059828 jbe short 06c8dh ; 76 05 9831 9829 mov word [bp+01ch], 03c00h ; c7 46 1c 00 3c 9832 9830 mov ax, strict word 00035h ; b8 35 00 9833 call 01 6ach ; e8 fa a89831 call 01714h ; e8 81 aa 9834 9832 xor ah, ah ; 30 e4 9835 9833 mov dx, ax ; 89 c2 9836 9834 sal dx, 008h ; c1 e2 08 9837 9835 mov ax, strict word 00034h ; b8 34 00 9838 call 01 6ach ; e8 ed a89836 call 01714h ; e8 74 aa 9839 9837 xor ah, ah ; 30 e4 9840 9838 or dx, ax ; 09 c2 … … 9843 9841 mov word [bp+020h], ax ; 89 46 20 9844 9842 mov word [bp+014h], dx ; 89 56 14 9845 jmp short 06 dfbh ; eb 2a9843 jmp short 06cdch ; eb 2a 9846 9844 mov bx, 00da0h ; bb a0 0d 9847 9845 mov cx, ds ; 8c d9 9848 9846 mov ax, strict word 00004h ; b8 04 00 9849 call 019 31h ; e8 55 ab9847 call 01999h ; e8 dc ac 9850 9848 push word [bp+014h] ; ff 76 14 9851 9849 push word [bp+020h] ; ff 76 20 9852 9850 push 008b4h ; 68 b4 08 9853 9851 push strict byte 00004h ; 6a 04 9854 call 019 72h ; e8 88 ab9852 call 019dah ; e8 0f ad 9855 9853 add sp, strict byte 00008h ; 83 c4 08 9856 9854 or byte [bp+028h], 001h ; 80 4e 28 01 … … 9863 9861 pop bp ; 5d 9864 9862 retn ; c3 9865 _inv_op_handler: ; 0xf6e01 LB 0x195 9863 _int15_blkmove: ; 0xf6ce2 LB 0x1ab 9864 push bp ; 55 9865 mov bp, sp ; 89 e5 9866 push si ; 56 9867 push di ; 57 9868 push ax ; 50 9869 push ax ; 50 9870 cli ; fa 9871 mov ax, strict word 00001h ; b8 01 00 9872 call 06561h ; e8 71 f8 9873 mov di, ax ; 89 c7 9874 mov ax, word [bp+006h] ; 8b 46 06 9875 sal ax, 004h ; c1 e0 04 9876 mov cx, word [bp+00ah] ; 8b 4e 0a 9877 add cx, ax ; 01 c1 9878 mov dx, word [bp+006h] ; 8b 56 06 9879 shr dx, 00ch ; c1 ea 0c 9880 mov byte [bp-006h], dl ; 88 56 fa 9881 cmp cx, ax ; 39 c1 9882 jnc short 06d0fh ; 73 05 9883 db 0feh, 0c2h 9884 ; inc dl ; fe c2 9885 mov byte [bp-006h], dl ; 88 56 fa 9886 mov dx, word [bp+00ah] ; 8b 56 0a 9887 add dx, strict byte 00008h ; 83 c2 08 9888 mov ax, word [bp+006h] ; 8b 46 06 9889 mov bx, strict word 0002fh ; bb 2f 00 9890 call 016e2h ; e8 c4 a9 9891 mov dx, word [bp+00ah] ; 8b 56 0a 9892 add dx, strict byte 0000ah ; 83 c2 0a 9893 mov ax, word [bp+006h] ; 8b 46 06 9894 mov bx, cx ; 89 cb 9895 call 016e2h ; e8 b6 a9 9896 movzx bx, byte [bp-006h] ; 0f b6 5e fa 9897 mov dx, word [bp+00ah] ; 8b 56 0a 9898 add dx, strict byte 0000ch ; 83 c2 0c 9899 mov ax, word [bp+006h] ; 8b 46 06 9900 call 016c6h ; e8 8a a9 9901 mov dx, word [bp+00ah] ; 8b 56 0a 9902 add dx, strict byte 0000dh ; 83 c2 0d 9903 mov ax, word [bp+006h] ; 8b 46 06 9904 mov bx, 00093h ; bb 93 00 9905 call 016c6h ; e8 7b a9 9906 mov dx, word [bp+00ah] ; 8b 56 0a 9907 add dx, strict byte 0000eh ; 83 c2 0e 9908 mov ax, word [bp+006h] ; 8b 46 06 9909 xor bx, bx ; 31 db 9910 call 016e2h ; e8 89 a9 9911 mov dx, word [bp+00ah] ; 8b 56 0a 9912 add dx, strict byte 00020h ; 83 c2 20 9913 mov ax, word [bp+006h] ; 8b 46 06 9914 mov bx, strict word 0ffffh ; bb ff ff 9915 call 016e2h ; e8 7a a9 9916 mov dx, word [bp+00ah] ; 8b 56 0a 9917 add dx, strict byte 00022h ; 83 c2 22 9918 mov ax, word [bp+006h] ; 8b 46 06 9919 xor bx, bx ; 31 db 9920 call 016e2h ; e8 6c a9 9921 mov dx, word [bp+00ah] ; 8b 56 0a 9922 add dx, strict byte 00024h ; 83 c2 24 9923 mov ax, word [bp+006h] ; 8b 46 06 9924 mov bx, strict word 0000fh ; bb 0f 00 9925 call 016c6h ; e8 41 a9 9926 mov dx, word [bp+00ah] ; 8b 56 0a 9927 add dx, strict byte 00025h ; 83 c2 25 9928 mov ax, word [bp+006h] ; 8b 46 06 9929 mov bx, 0009bh ; bb 9b 00 9930 call 016c6h ; e8 32 a9 9931 mov dx, word [bp+00ah] ; 8b 56 0a 9932 add dx, strict byte 00026h ; 83 c2 26 9933 mov ax, word [bp+006h] ; 8b 46 06 9934 xor bx, bx ; 31 db 9935 call 016e2h ; e8 40 a9 9936 mov ax, ss ; 8c d0 9937 mov cx, ax ; 89 c1 9938 sal cx, 004h ; c1 e1 04 9939 shr ax, 00ch ; c1 e8 0c 9940 mov word [bp-008h], ax ; 89 46 f8 9941 mov dx, word [bp+00ah] ; 8b 56 0a 9942 add dx, strict byte 00028h ; 83 c2 28 9943 mov ax, word [bp+006h] ; 8b 46 06 9944 mov bx, strict word 0ffffh ; bb ff ff 9945 call 016e2h ; e8 24 a9 9946 mov dx, word [bp+00ah] ; 8b 56 0a 9947 add dx, strict byte 0002ah ; 83 c2 2a 9948 mov ax, word [bp+006h] ; 8b 46 06 9949 mov bx, cx ; 89 cb 9950 call 016e2h ; e8 16 a9 9951 movzx bx, byte [bp-008h] ; 0f b6 5e f8 9952 mov dx, word [bp+00ah] ; 8b 56 0a 9953 add dx, strict byte 0002ch ; 83 c2 2c 9954 mov ax, word [bp+006h] ; 8b 46 06 9955 call 016c6h ; e8 ea a8 9956 mov dx, word [bp+00ah] ; 8b 56 0a 9957 add dx, strict byte 0002dh ; 83 c2 2d 9958 mov ax, word [bp+006h] ; 8b 46 06 9959 mov bx, 00093h ; bb 93 00 9960 call 016c6h ; e8 db a8 9961 mov dx, word [bp+00ah] ; 8b 56 0a 9962 add dx, strict byte 0002eh ; 83 c2 2e 9963 mov ax, word [bp+006h] ; 8b 46 06 9964 xor bx, bx ; 31 db 9965 call 016e2h ; e8 e9 a8 9966 lea ax, [bp+004h] ; 8d 46 04 9967 mov si, word [bp+00ah] ; 8b 76 0a 9968 mov es, [bp+006h] ; 8e 46 06 9969 mov cx, word [bp+014h] ; 8b 4e 14 9970 push DS ; 1e 9971 push eax ; 66 50 9972 db 066h, 033h, 0c0h 9973 ; xor eax, eax ; 66 33 c0 9974 mov ds, ax ; 8e d8 9975 mov word [00467h], sp ; 89 26 67 04 9976 mov [00469h], ss ; 8c 16 69 04 9977 call 06e18h ; e8 00 00 9978 pop di ; 5f 9979 add di, strict byte 0001bh ; 83 c7 1b 9980 push strict byte 00020h ; 6a 20 9981 push di ; 57 9982 lgdt [es:si+008h] ; 26 0f 01 54 08 9983 lidt [cs:0efe1h] ; 2e 0f 01 1e e1 ef 9984 mov eax, cr0 ; 0f 20 c0 9985 or AL, strict byte 001h ; 0c 01 9986 mov cr0, eax ; 0f 22 c0 9987 retf ; cb 9988 mov ax, strict word 00028h ; b8 28 00 9989 mov ss, ax ; 8e d0 9990 mov ax, strict word 00010h ; b8 10 00 9991 mov ds, ax ; 8e d8 9992 mov ax, strict word 00018h ; b8 18 00 9993 mov es, ax ; 8e c0 9994 db 033h, 0f6h 9995 ; xor si, si ; 33 f6 9996 db 033h, 0ffh 9997 ; xor di, di ; 33 ff 9998 cld ; fc 9999 rep movsw ; f3 a5 10000 call 06e4ch ; e8 00 00 10001 pop ax ; 58 10002 push 0f000h ; 68 00 f0 10003 add ax, strict byte 00018h ; 83 c0 18 10004 push ax ; 50 10005 mov ax, strict word 00028h ; b8 28 00 10006 mov ds, ax ; 8e d8 10007 mov es, ax ; 8e c0 10008 mov eax, cr0 ; 0f 20 c0 10009 and AL, strict byte 0feh ; 24 fe 10010 mov cr0, eax ; 0f 22 c0 10011 retf ; cb 10012 lidt [cs:0efe7h] ; 2e 0f 01 1e e7 ef 10013 db 033h, 0c0h 10014 ; xor ax, ax ; 33 c0 10015 mov ds, ax ; 8e d8 10016 mov es, ax ; 8e c0 10017 lss sp, [00467h] ; 0f b2 26 67 04 10018 pop eax ; 66 58 10019 pop DS ; 1f 10020 mov ax, di ; 89 f8 10021 call 06561h ; e8 e4 f6 10022 sti ; fb 10023 mov byte [bp+017h], 000h ; c6 46 17 00 10024 and byte [bp+01ch], 0feh ; 80 66 1c fe 10025 lea sp, [bp-004h] ; 8d 66 fc 10026 pop di ; 5f 10027 pop si ; 5e 10028 pop bp ; 5d 10029 retn ; c3 10030 _inv_op_handler: ; 0xf6e8d LB 0x195 9866 10031 push bp ; 55 9867 10032 mov bp, sp ; 89 e5 … … 9872 10037 les bx, [bp+018h] ; c4 5e 18 9873 10038 cmp byte [es:bx], 0f0h ; 26 80 3f f0 9874 jne short 06e 17h ; 75 0610039 jne short 06ea3h ; 75 06 9875 10040 inc word [bp+018h] ; ff 46 18 9876 jmp near 0 6f8fh ; e9 78 0110041 jmp near 0701bh ; e9 78 01 9877 10042 cmp word [es:bx], 0050fh ; 26 81 3f 0f 05 9878 jne near 0 6f8bh ; 0f 85 6b 0110043 jne near 07017h ; 0f 85 6b 01 9879 10044 mov si, 00800h ; be 00 08 9880 10045 xor ax, ax ; 31 c0 … … 9904 10069 sal ax, 1 ; d1 e0 9905 10070 rcl dx, 1 ; d1 d2 9906 loop 06e 70h ; e2 fa10071 loop 06efch ; e2 fa 9907 10072 cmp bx, dx ; 39 d3 9908 jne short 06 e7eh ; 75 0410073 jne short 06f0ah ; 75 04 9909 10074 cmp di, ax ; 39 c7 9910 je short 06 e83h ; 74 0510075 je short 06f0fh ; 74 05 9911 10076 mov word [bp-008h], strict word 00001h ; c7 46 f8 01 00 9912 10077 mov es, [bp-006h] ; 8e 46 fa … … 9918 10083 sal ax, 1 ; d1 e0 9919 10084 rcl dx, 1 ; d1 d2 9920 loop 06 e98h ; e2 fa10085 loop 06f24h ; e2 fa 9921 10086 cmp di, dx ; 39 d7 9922 jne short 06 ea6h ; 75 0410087 jne short 06f32h ; 75 04 9923 10088 cmp bx, ax ; 39 c3 9924 je short 06 eaah ; 74 0410089 je short 06f36h ; 74 04 9925 10090 or byte [bp-008h], 002h ; 80 4e f8 02 9926 10091 push strict byte 00000h ; 6a 00 … … 9972 10137 mov ax, strict word 00008h ; b8 08 00 9973 10138 test cx, strict word 00001h ; f7 c1 01 00 9974 je near 06f 48h ; 0f 84 02 0010139 je near 06fd4h ; 0f 84 02 00 9975 10140 mov es, ax ; 8e c0 9976 10141 test cx, strict word 00002h ; f7 c1 02 00 9977 je near 06f 70h ; 0f 84 20 0010142 je near 06ffch ; 0f 84 20 00 9978 10143 mov bx, word [word ss:00000h] ; 36 8b 1e 00 00 9979 10144 mov word [word ss:00008h], bx ; 36 89 1e 08 00 … … 9992 10157 mov ss, [word ss:00020h] ; 36 8e 16 20 00 9993 10158 iret ; cf 9994 jmp short 0 6f8fh ; eb 0410159 jmp short 0701bh ; eb 04 9995 10160 sti ; fb 9996 10161 hlt ; f4 9997 jmp short 0 6f8ch ; eb fd10162 jmp short 07018h ; eb fd 9998 10163 lea sp, [bp-004h] ; 8d 66 fc 9999 10164 pop di ; 5f … … 10001 10166 pop bp ; 5d 10002 10167 retn ; c3 10003 init_rtc_: ; 0xf 6f96LB 0x2810168 init_rtc_: ; 0xf7022 LB 0x28 10004 10169 push bp ; 55 10005 10170 mov bp, sp ; 89 e5 … … 10007 10172 mov dx, strict word 00026h ; ba 26 00 10008 10173 mov ax, strict word 0000ah ; b8 0a 00 10009 call 01 6c9h ; e8 26a710174 call 01731h ; e8 02 a7 10010 10175 mov dx, strict word 00002h ; ba 02 00 10011 10176 mov ax, strict word 0000bh ; b8 0b 00 10012 call 01 6c9h ; e8 1d a710177 call 01731h ; e8 f9 a6 10013 10178 mov ax, strict word 0000ch ; b8 0c 00 10014 call 01 6ach ; e8 faa610179 call 01714h ; e8 d6 a6 10015 10180 mov ax, strict word 0000dh ; b8 0d 00 10016 call 01 6ach ; e8 f4a610181 call 01714h ; e8 d0 a6 10017 10182 lea sp, [bp-002h] ; 8d 66 fe 10018 10183 pop dx ; 5a 10019 10184 pop bp ; 5d 10020 10185 retn ; c3 10021 rtc_updating_: ; 0xf 6fbeLB 0x2110186 rtc_updating_: ; 0xf704a LB 0x21 10022 10187 push bp ; 55 10023 10188 mov bp, sp ; 89 e5 … … 10025 10190 mov dx, 061a8h ; ba a8 61 10026 10191 dec dx ; 4a 10027 je short 0 6fd6h ; 74 0e10192 je short 07062h ; 74 0e 10028 10193 mov ax, strict word 0000ah ; b8 0a 00 10029 call 01 6ach ; e8 dea610194 call 01714h ; e8 ba a6 10030 10195 test AL, strict byte 080h ; a8 80 10031 jne short 0 6fc5h ; 75 f310196 jne short 07051h ; 75 f3 10032 10197 xor ax, ax ; 31 c0 10033 jmp short 0 6fd9h ; eb 0310198 jmp short 07065h ; eb 03 10034 10199 mov ax, strict word 00001h ; b8 01 00 10035 10200 lea sp, [bp-002h] ; 8d 66 fe … … 10037 10202 pop bp ; 5d 10038 10203 retn ; c3 10039 _int70_function: ; 0xf 6fdfLB 0xbe10204 _int70_function: ; 0xf706b LB 0xbe 10040 10205 push bp ; 55 10041 10206 mov bp, sp ; 89 e5 … … 10043 10208 push ax ; 50 10044 10209 mov ax, strict word 0000bh ; b8 0b 00 10045 call 01 6ach ; e8 c2a610210 call 01714h ; e8 9e a6 10046 10211 mov dl, al ; 88 c2 10047 10212 mov byte [bp-004h], al ; 88 46 fc 10048 10213 mov ax, strict word 0000ch ; b8 0c 00 10049 call 01 6ach ; e8 b7a610214 call 01714h ; e8 93 a6 10050 10215 mov dh, al ; 88 c6 10051 10216 test dl, 060h ; f6 c2 60 10052 je near 07 084h ; 0f 84 86 0010217 je near 07110h ; 0f 84 86 00 10053 10218 test AL, strict byte 020h ; a8 20 10054 je short 070 06h ; 74 0410219 je short 07092h ; 74 04 10055 10220 sti ; fb 10056 10221 int 04ah ; cd 4a 10057 10222 cli ; fa 10058 10223 test dh, 040h ; f6 c6 40 10059 je near 07 084h ; 0f 84 77 0010224 je near 07110h ; 0f 84 77 00 10060 10225 mov dx, 000a0h ; ba a0 00 10061 10226 mov ax, strict word 00040h ; b8 40 00 10062 call 016 50h ; e8 3aa610227 call 016b8h ; e8 16 a6 10063 10228 test al, al ; 84 c0 10064 je short 07 084h ; 74 6a10229 je short 07110h ; 74 6a 10065 10230 mov dx, 0009ch ; ba 9c 00 10066 10231 mov ax, strict word 00040h ; b8 40 00 10067 call 016 88h ; e8 65a610232 call 016f0h ; e8 41 a6 10068 10233 test dx, dx ; 85 d2 10069 jne short 070 70h ; 75 4910234 jne short 070fch ; 75 49 10070 10235 cmp ax, 003d1h ; 3d d1 03 10071 jnc short 070 70h ; 73 4410236 jnc short 070fch ; 73 44 10072 10237 mov dx, 00098h ; ba 98 00 10073 10238 mov ax, strict word 00040h ; b8 40 00 10074 call 016 6ch ; e8 37a610239 call 016d4h ; e8 13 a6 10075 10240 mov si, ax ; 89 c6 10076 10241 mov dx, 0009ah ; ba 9a 00 10077 10242 mov ax, strict word 00040h ; b8 40 00 10078 call 016 6ch ; e8 2ca610243 call 016d4h ; e8 08 a6 10079 10244 mov cx, ax ; 89 c1 10080 10245 xor bx, bx ; 31 db 10081 10246 mov dx, 000a0h ; ba a0 00 10082 10247 mov ax, strict word 00040h ; b8 40 00 10083 call 016 5eh ; e8 11 a610248 call 016c6h ; e8 ed a5 10084 10249 mov al, byte [bp-004h] ; 8a 46 fc 10085 10250 and AL, strict byte 037h ; 24 37 10086 10251 movzx dx, al ; 0f b6 d0 10087 10252 mov ax, strict word 0000bh ; b8 0b 00 10088 call 01 6c9h ; e8 6ea610253 call 01731h ; e8 4a a6 10089 10254 mov dx, cx ; 89 ca 10090 10255 mov ax, si ; 89 f0 10091 call 016 50h ; e8 eea510256 call 016b8h ; e8 ca a5 10092 10257 or AL, strict byte 080h ; 0c 80 10093 10258 movzx bx, al ; 0f b6 d8 10094 10259 mov dx, cx ; 89 ca 10095 10260 mov ax, si ; 89 f0 10096 call 016 5eh ; e8 f0a510097 jmp short 07 084h ; eb 1410261 call 016c6h ; e8 cc a5 10262 jmp short 07110h ; eb 14 10098 10263 mov bx, ax ; 89 c3 10099 10264 add bx, 0fc2fh ; 81 c3 2f fc … … 10102 10267 mov dx, 0009ch ; ba 9c 00 10103 10268 mov ax, strict word 00040h ; b8 40 00 10104 call 01 69ah ; e8 16 a610105 call 0e030h ; e8 a96f10269 call 01702h ; e8 f2 a5 10270 call 0e030h ; e8 1d 6f 10106 10271 lea sp, [bp-002h] ; 8d 66 fe 10107 10272 pop si ; 5e 10108 10273 pop bp ; 5d 10109 10274 retn ; c3 10110 mov AH, strict byte 070h ; b4 70 10111 fnsave [bx+si+002h] ; dd 70 02 10112 jno short 070c8h ; 71 34 10113 jno short 07019h ; 71 83 10114 jno short 07053h ; 71 bb 10115 jno short 07098h ; 71 fe 10116 jno short 070f1h ; 71 55 10275 inc ax ; 40 10276 jno short 07185h ; 71 69 10277 jno short 070ach ; 71 8e 10278 jno short 070e0h ; 71 c0 10279 jno short 07131h ; 71 0f 10280 jc short 0716bh ; 72 47 10281 jc short 070b0h ; 72 8a 10282 jc short 07109h ; 72 e1 10117 10283 db 072h 10118 _int1a_function: ; 0xf7 09dLB 0x1c810284 _int1a_function: ; 0xf7129 LB 0x1c8 10119 10285 push bp ; 55 10120 10286 mov bp, sp ; 89 e5 … … 10122 10288 mov al, byte [bp+013h] ; 8a 46 13 10123 10289 cmp AL, strict byte 007h ; 3c 07 10124 jnbe near 07 0d9h ; 0f 87 2f 0010290 jnbe near 07165h ; 0f 87 2f 00 10125 10291 movzx bx, al ; 0f b6 d8 10126 10292 add bx, bx ; 01 db 10127 jmp word [cs:bx+07 08dh] ; 2e ff a7 8d 7010293 jmp word [cs:bx+07119h] ; 2e ff a7 19 71 10128 10294 cli ; fa 10129 10295 mov bx, 0046eh ; bb 6e 04 … … 10156 10322 sti ; fb 10157 10323 mov byte [bp+013h], 000h ; c6 46 13 00 10158 jmp short 07 0d9h ; eb d710159 call 0 6fbeh ; e8 b9 fe10324 jmp short 07165h ; eb d7 10325 call 0704ah ; e8 b9 fe 10160 10326 test ax, ax ; 85 c0 10161 je short 071 0bh ; 74 0210162 jmp short 07 0d9h ; eb ce10327 je short 07197h ; 74 02 10328 jmp short 07165h ; eb ce 10163 10329 xor ax, ax ; 31 c0 10164 call 01 6ach ; e8 9ca510330 call 01714h ; e8 78 a5 10165 10331 mov byte [bp+00fh], al ; 88 46 0f 10166 10332 mov ax, strict word 00002h ; b8 02 00 10167 call 01 6ach ; e8 93a510333 call 01714h ; e8 6f a5 10168 10334 mov byte [bp+010h], al ; 88 46 10 10169 10335 mov ax, strict word 00004h ; b8 04 00 10170 call 01 6ach ; e8 8aa510336 call 01714h ; e8 66 a5 10171 10337 mov bl, al ; 88 c3 10172 10338 mov byte [bp+011h], al ; 88 46 11 10173 10339 mov ax, strict word 0000bh ; b8 0b 00 10174 call 01 6ach ; e8 7fa510340 call 01714h ; e8 5b a5 10175 10341 and AL, strict byte 001h ; 24 01 10176 10342 mov byte [bp+00eh], al ; 88 46 0e 10177 jmp short 07 179h ; eb 4510178 call 0 6fbeh ; e8 87 fe10343 jmp short 07205h ; eb 45 10344 call 0704ah ; e8 87 fe 10179 10345 test ax, ax ; 85 c0 10180 je short 071 3eh ; 74 0310181 call 0 6f96h ; e8 58 fe10346 je short 071cah ; 74 03 10347 call 07022h ; e8 58 fe 10182 10348 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 10183 10349 xor ax, ax ; 31 c0 10184 call 01 6c9h ; e8 82a510350 call 01731h ; e8 5e a5 10185 10351 movzx dx, byte [bp+010h] ; 0f b6 56 10 10186 10352 mov ax, strict word 00002h ; b8 02 00 10187 call 01 6c9h ; e8 78a510353 call 01731h ; e8 54 a5 10188 10354 movzx dx, byte [bp+011h] ; 0f b6 56 11 10189 10355 mov ax, strict word 00004h ; b8 04 00 10190 call 01 6c9h ; e8 6ea510356 call 01731h ; e8 4a a5 10191 10357 mov ax, strict word 0000bh ; b8 0b 00 10192 call 01 6ach ; e8 4ba510358 call 01714h ; e8 27 a5 10193 10359 mov bl, al ; 88 c3 10194 10360 and bl, 060h ; 80 e3 60 … … 10199 10365 movzx dx, bl ; 0f b6 d3 10200 10366 mov ax, strict word 0000bh ; b8 0b 00 10201 call 01 6c9h ; e8 50a510367 call 01731h ; e8 2c a5 10202 10368 mov byte [bp+013h], 000h ; c6 46 13 00 10203 10369 mov byte [bp+012h], bl ; 88 5e 12 10204 jmp near 07 0d9h ; e9 56 ff10370 jmp near 07165h ; e9 56 ff 10205 10371 mov byte [bp+013h], 000h ; c6 46 13 00 10206 call 0 6fbeh ; e8 34 fe10372 call 0704ah ; e8 34 fe 10207 10373 test ax, ax ; 85 c0 10208 je short 07 191h ; 74 0310209 jmp near 07 0d9h ; e9 48 ff10374 je short 0721dh ; 74 03 10375 jmp near 07165h ; e9 48 ff 10210 10376 mov ax, strict word 00009h ; b8 09 00 10211 call 01 6ach ; e8 15 a510377 call 01714h ; e8 f1 a4 10212 10378 mov byte [bp+010h], al ; 88 46 10 10213 10379 mov ax, strict word 00008h ; b8 08 00 10214 call 01 6ach ; e8 0c a510380 call 01714h ; e8 e8 a4 10215 10381 mov byte [bp+00fh], al ; 88 46 0f 10216 10382 mov ax, strict word 00007h ; b8 07 00 10217 call 01 6ach ; e8 03 a510383 call 01714h ; e8 df a4 10218 10384 mov byte [bp+00eh], al ; 88 46 0e 10219 10385 mov ax, strict word 00032h ; b8 32 00 10220 call 01 6ach ; e8 faa410386 call 01714h ; e8 d6 a4 10221 10387 mov byte [bp+011h], al ; 88 46 11 10222 10388 mov byte [bp+012h], al ; 88 46 12 10223 jmp near 07 0d9h ; e9 1e ff10224 call 0 6fbeh ; e8 00 fe10389 jmp near 07165h ; e9 1e ff 10390 call 0704ah ; e8 00 fe 10225 10391 test ax, ax ; 85 c0 10226 je short 07 1c8h ; 74 0610227 call 0 6f96h ; e8 d1 fd10228 jmp near 07 0d9h ; e9 11 ff10392 je short 07254h ; 74 06 10393 call 07022h ; e8 d1 fd 10394 jmp near 07165h ; e9 11 ff 10229 10395 movzx dx, byte [bp+010h] ; 0f b6 56 10 10230 10396 mov ax, strict word 00009h ; b8 09 00 10231 call 01 6c9h ; e8 f7a410397 call 01731h ; e8 d3 a4 10232 10398 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 10233 10399 mov ax, strict word 00008h ; b8 08 00 10234 call 01 6c9h ; e8 eda410400 call 01731h ; e8 c9 a4 10235 10401 movzx dx, byte [bp+00eh] ; 0f b6 56 0e 10236 10402 mov ax, strict word 00007h ; b8 07 00 10237 call 01 6c9h ; e8 e3a410403 call 01731h ; e8 bf a4 10238 10404 movzx dx, byte [bp+011h] ; 0f b6 56 11 10239 10405 mov ax, strict word 00032h ; b8 32 00 10240 call 01 6c9h ; e8 d9a410406 call 01731h ; e8 b5 a4 10241 10407 mov ax, strict word 0000bh ; b8 0b 00 10242 call 01 6ach ; e8 b6a410408 call 01714h ; e8 92 a4 10243 10409 mov bl, al ; 88 c3 10244 10410 and bl, 07fh ; 80 e3 7f 10245 jmp near 071 70h ; e9 72 ff10411 jmp near 071fch ; e9 72 ff 10246 10412 mov ax, strict word 0000bh ; b8 0b 00 10247 call 01 6ach ; e8 a8a410413 call 01714h ; e8 84 a4 10248 10414 mov bl, al ; 88 c3 10249 10415 mov word [bp+012h], strict word 00000h ; c7 46 12 00 00 10250 10416 test AL, strict byte 020h ; a8 20 10251 je short 072 12h ; 74 0310252 jmp near 07 0d9h ; e9 c7 fe10253 call 0 6fbeh ; e8 a9 fd10417 je short 0729eh ; 74 03 10418 jmp near 07165h ; e9 c7 fe 10419 call 0704ah ; e8 a9 fd 10254 10420 test ax, ax ; 85 c0 10255 je short 072 1ch ; 74 0310256 call 0 6f96h ; e8 7a fd10421 je short 072a8h ; 74 03 10422 call 07022h ; e8 7a fd 10257 10423 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 10258 10424 mov ax, strict word 00001h ; b8 01 00 10259 call 01 6c9h ; e8 a3a410425 call 01731h ; e8 7f a4 10260 10426 movzx dx, byte [bp+010h] ; 0f b6 56 10 10261 10427 mov ax, strict word 00003h ; b8 03 00 10262 call 01 6c9h ; e8 99a410428 call 01731h ; e8 75 a4 10263 10429 movzx dx, byte [bp+011h] ; 0f b6 56 11 10264 10430 mov ax, strict word 00005h ; b8 05 00 10265 call 01 6c9h ; e8 8fa410431 call 01731h ; e8 6b a4 10266 10432 mov dx, 000a1h ; ba a1 00 10267 10433 in AL, DX ; ec … … 10275 10441 movzx dx, al ; 0f b6 d0 10276 10442 mov ax, strict word 0000bh ; b8 0b 00 10277 call 01 6c9h ; e8 77a410278 jmp near 07 0d9h ; e9 84 fe10443 call 01731h ; e8 53 a4 10444 jmp near 07165h ; e9 84 fe 10279 10445 mov ax, strict word 0000bh ; b8 0b 00 10280 call 01 6ach ; e8 51a410446 call 01714h ; e8 2d a4 10281 10447 mov bl, al ; 88 c3 10282 10448 and AL, strict byte 057h ; 24 57 10283 10449 movzx dx, al ; 0f b6 d0 10284 jmp near 071 73h ; e9 0e ff10285 send_to_mouse_ctrl_: ; 0xf72 65LB 0x3410450 jmp near 071ffh ; e9 0e ff 10451 send_to_mouse_ctrl_: ; 0xf72f1 LB 0x34 10286 10452 push bp ; 55 10287 10453 mov bp, sp ; 89 e5 … … 10294 10460 ; sub ah, ah ; 2a e4 10295 10461 test AL, strict byte 002h ; a8 02 10296 je short 07 284h ; 74 0e10462 je short 07310h ; 74 0e 10297 10463 push 008eeh ; 68 ee 08 10298 10464 push 01168h ; 68 68 11 10299 10465 push strict byte 00007h ; 6a 07 10300 call 019 72h ; e8 f1a610466 call 019dah ; e8 cd a6 10301 10467 add sp, strict byte 00006h ; 83 c4 06 10302 10468 mov AL, strict byte 0d4h ; b0 d4 … … 10312 10478 pop bp ; 5d 10313 10479 retn ; c3 10314 get_mouse_data_: ; 0xf7 299LB 0x5c10480 get_mouse_data_: ; 0xf7325 LB 0x5c 10315 10481 push bp ; 55 10316 10482 mov bp, sp ; 89 e5 … … 10327 10493 and ax, strict word 00021h ; 25 21 00 10328 10494 cmp ax, strict word 00021h ; 3d 21 00 10329 je short 07 2dbh ; 74 2710495 je short 07367h ; 74 27 10330 10496 test cx, cx ; 85 c9 10331 je short 07 2dbh ; 74 2310497 je short 07367h ; 74 23 10332 10498 mov dx, strict word 00061h ; ba 61 00 10333 10499 in AL, DX ; ec … … 10345 10511 movzx ax, byte [bp-006h] ; 0f b6 46 fa 10346 10512 cmp dx, ax ; 39 c2 10347 je short 07 2c3h ; 74 eb10513 je short 0734fh ; 74 eb 10348 10514 dec cx ; 49 10349 jmp short 07 2a6h ; eb cb10515 jmp short 07332h ; eb cb 10350 10516 test cx, cx ; 85 c9 10351 jne short 07 2e3h ; 75 0410517 jne short 0736fh ; 75 04 10352 10518 mov AL, strict byte 001h ; b0 01 10353 jmp short 07 2eeh ; eb 0b10519 jmp short 0737ah ; eb 0b 10354 10520 mov dx, strict word 00060h ; ba 60 00 10355 10521 in AL, DX ; ec … … 10363 10529 pop bp ; 5d 10364 10530 retn ; c3 10365 set_kbd_command_byte_: ; 0xf7 2f5LB 0x3210531 set_kbd_command_byte_: ; 0xf7381 LB 0x32 10366 10532 push bp ; 55 10367 10533 mov bp, sp ; 89 e5 … … 10374 10540 ; sub ah, ah ; 2a e4 10375 10541 test AL, strict byte 002h ; a8 02 10376 je short 073 14h ; 74 0e10542 je short 073a0h ; 74 0e 10377 10543 push 008f8h ; 68 f8 08 10378 10544 push 01168h ; 68 68 11 10379 10545 push strict byte 00007h ; 6a 07 10380 call 019 72h ; e8 61a610546 call 019dah ; e8 3d a6 10381 10547 add sp, strict byte 00006h ; 83 c4 06 10382 10548 mov AL, strict byte 060h ; b0 60 … … 10391 10557 pop bp ; 5d 10392 10558 retn ; c3 10393 _int74_function: ; 0xf73 27LB 0xca10559 _int74_function: ; 0xf73b3 LB 0xca 10394 10560 push bp ; 55 10395 10561 mov bp, sp ; 89 e5 … … 10397 10563 mov dx, strict word 0000eh ; ba 0e 00 10398 10564 mov ax, strict word 00040h ; b8 40 00 10399 call 016 6ch ; e8 36a310565 call 016d4h ; e8 12 a3 10400 10566 mov cx, ax ; 89 c1 10401 10567 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 10406 10572 and AL, strict byte 021h ; 24 21 10407 10573 cmp AL, strict byte 021h ; 3c 21 10408 jne near 07 3ddh ; 0f 85 92 0010574 jne near 07469h ; 0f 85 92 00 10409 10575 mov dx, strict word 00060h ; ba 60 00 10410 10576 in AL, DX ; ec … … 10414 10580 mov dx, strict word 00026h ; ba 26 00 10415 10581 mov ax, cx ; 89 c8 10416 call 016 50h ; e8 f5a210582 call 016b8h ; e8 d1 a2 10417 10583 mov byte [bp-006h], al ; 88 46 fa 10418 10584 mov dx, strict word 00027h ; ba 27 00 10419 10585 mov ax, cx ; 89 c8 10420 call 016 50h ; e8 eaa210586 call 016b8h ; e8 c6 a2 10421 10587 mov byte [bp-008h], al ; 88 46 f8 10422 10588 test AL, strict byte 080h ; a8 80 10423 je short 07 3ddh ; 74 7010589 je short 07469h ; 74 70 10424 10590 mov al, byte [bp-008h] ; 8a 46 f8 10425 10591 and AL, strict byte 007h ; 24 07 … … 10432 10598 add dx, strict byte 00028h ; 83 c2 28 10433 10599 mov ax, cx ; 89 c8 10434 call 016 5eh ; e8 d4a210600 call 016c6h ; e8 b0 a2 10435 10601 mov al, byte [bp-004h] ; 8a 46 fc 10436 10602 cmp al, byte [bp-002h] ; 3a 46 fe 10437 jc short 07 3ceh ; 72 3c10603 jc short 0745ah ; 72 3c 10438 10604 mov dx, strict word 00028h ; ba 28 00 10439 10605 mov ax, cx ; 89 c8 10440 call 016 50h ; e8 b6a210606 call 016b8h ; e8 92 a2 10441 10607 xor ah, ah ; 30 e4 10442 10608 mov word [bp+00ch], ax ; 89 46 0c 10443 10609 mov dx, strict word 00029h ; ba 29 00 10444 10610 mov ax, cx ; 89 c8 10445 call 016 50h ; e8 a9a210611 call 016b8h ; e8 85 a2 10446 10612 xor ah, ah ; 30 e4 10447 10613 mov word [bp+00ah], ax ; 89 46 0a 10448 10614 mov dx, strict word 0002ah ; ba 2a 00 10449 10615 mov ax, cx ; 89 c8 10450 call 016 50h ; e8 9ca210616 call 016b8h ; e8 78 a2 10451 10617 xor ah, ah ; 30 e4 10452 10618 mov word [bp+008h], ax ; 89 46 08 … … 10455 10621 mov byte [bp-006h], ah ; 88 66 fa 10456 10622 test byte [bp-008h], 080h ; f6 46 f8 80 10457 je short 07 3d1h ; 74 0a10623 je short 0745dh ; 74 0a 10458 10624 mov word [bp+004h], strict word 00001h ; c7 46 04 01 00 10459 jmp short 07 3d1h ; eb 0310625 jmp short 0745dh ; eb 03 10460 10626 inc byte [bp-006h] ; fe 46 fa 10461 10627 movzx bx, byte [bp-006h] ; 0f b6 5e fa 10462 10628 mov dx, strict word 00026h ; ba 26 00 10463 10629 mov ax, cx ; 89 c8 10464 call 016 5eh ; e8 81a210630 call 016c6h ; e8 5d a2 10465 10631 mov sp, bp ; 89 ec 10466 10632 pop bp ; 5d 10467 10633 retn ; c3 10468 xor ax, 0ab74h ; 35 74 ab10469 je short 07414h ; 74 2e10470 jne short 073a7h ; 75 bf10471 j ne short 07417h ; 75 2d10472 jbe short 07 36dh ; 76 8110473 j e short 07443h ; 74 5510474 jbe short 074 0ah ; 76 1a10634 db 0c1h, 074h, 037h, 075h 10635 ; sal word [si+037h], 075h ; c1 74 37 75 10636 mov dx, 04b75h ; ba 75 4b 10637 jbe short 0742fh ; 76 b9 10638 jbe short 07485h ; 76 0d 10639 jne short 0745bh ; 75 e1 10640 jbe short 07422h ; 76 a6 10475 10641 db 077h 10476 _int15_function_mouse: ; 0xf7 3f1LB 0x38b10642 _int15_function_mouse: ; 0xf747d LB 0x38b 10477 10643 push bp ; 55 10478 10644 mov bp, sp ; 89 e5 … … 10481 10647 mov dx, strict word 0000eh ; ba 0e 00 10482 10648 mov ax, strict word 00040h ; b8 40 00 10483 call 016 6ch ; e8 6ba210649 call 016d4h ; e8 47 a2 10484 10650 mov cx, ax ; 89 c1 10485 10651 cmp byte [bp+012h], 007h ; 80 7e 12 07 10486 jbe short 074 14h ; 76 0b10652 jbe short 074a0h ; 76 0b 10487 10653 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10488 10654 mov byte [bp+013h], 001h ; c6 46 13 01 10489 jmp near 07 776h ; e9 62 0310655 jmp near 07802h ; e9 62 03 10490 10656 mov ax, strict word 00065h ; b8 65 00 10491 call 07 2f5h ; e8 db fe10657 call 07381h ; e8 db fe 10492 10658 and word [bp+018h], strict byte 0fffeh ; 83 66 18 fe 10493 10659 mov byte [bp+013h], 000h ; c6 46 13 00 10494 10660 mov al, byte [bp+012h] ; 8a 46 12 10495 10661 cmp AL, strict byte 007h ; 3c 07 10496 jnbe near 077 5dh ; 0f 87 32 0310662 jnbe near 077e9h ; 0f 87 32 03 10497 10663 movzx si, al ; 0f b6 f0 10498 10664 add si, si ; 01 f6 10499 jmp word [cs:si+07 3e1h] ; 2e ff a4 e1 7310665 jmp word [cs:si+0746dh] ; 2e ff a4 6d 74 10500 10666 cmp byte [bp+00dh], 001h ; 80 7e 0d 01 10501 jnbe near 077 68h ; 0f 87 2b 0310667 jnbe near 077f4h ; 0f 87 2b 03 10502 10668 mov dx, strict word 00027h ; ba 27 00 10503 10669 mov ax, cx ; 89 c8 10504 call 016 50h ; e8 0b a210670 call 016b8h ; e8 e7 a1 10505 10671 test AL, strict byte 080h ; a8 80 10506 jne short 074 54h ; 75 0b10672 jne short 074e0h ; 75 0b 10507 10673 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10508 10674 mov byte [bp+013h], 005h ; c6 46 13 05 10509 jmp near 077 70h ; e9 1c 0310675 jmp near 077fch ; e9 1c 03 10510 10676 cmp byte [bp+00dh], 000h ; 80 7e 0d 00 10511 10677 db 00fh, 094h, 0c0h … … 10513 10679 add AL, strict byte 0f4h ; 04 f4 10514 10680 xor ah, ah ; 30 e4 10515 call 072 65h ; e8 03 fe10681 call 072f1h ; e8 03 fe 10516 10682 test al, al ; 84 c0 10517 jne near 07 6f6h ; 0f 85 8e 0210683 jne near 07782h ; 0f 85 8e 02 10518 10684 mov dx, ss ; 8c d2 10519 10685 lea ax, [bp-008h] ; 8d 46 f8 10520 call 07 299h ; e8 29 fe10686 call 07325h ; e8 29 fe 10521 10687 test al, al ; 84 c0 10522 je near 077 70h ; 0f 84 fa 0210688 je near 077fch ; 0f 84 fa 02 10523 10689 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10524 jne near 07 6f6h ; 0f 85 78 0210525 jmp near 077 70h ; e9 ef 0210690 jne near 07782h ; 0f 85 78 02 10691 jmp near 077fch ; e9 ef 02 10526 10692 mov al, byte [bp+00dh] ; 8a 46 0d 10527 10693 cmp AL, strict byte 001h ; 3c 01 10528 jc short 07 48ch ; 72 0410694 jc short 07518h ; 72 04 10529 10695 cmp AL, strict byte 008h ; 3c 08 10530 jbe short 07 48fh ; 76 0310531 jmp near 076 22h ; e9 93 0110696 jbe short 0751bh ; 76 03 10697 jmp near 076aeh ; e9 93 01 10532 10698 mov dx, strict word 00027h ; ba 27 00 10533 10699 mov ax, cx ; 89 c8 10534 call 016 50h ; e8 b9a110700 call 016b8h ; e8 95 a1 10535 10701 mov ah, byte [bp+00dh] ; 8a 66 0d 10536 10702 db 0feh, 0cch … … 10541 10707 mov dx, strict word 00027h ; ba 27 00 10542 10708 mov ax, cx ; 89 c8 10543 call 016 5eh ; e8 b3a110709 call 016c6h ; e8 8f a1 10544 10710 mov dx, strict word 00026h ; ba 26 00 10545 10711 mov ax, cx ; 89 c8 10546 call 016 50h ; e8 9da110712 call 016b8h ; e8 79 a1 10547 10713 and AL, strict byte 0f8h ; 24 f8 10548 10714 movzx bx, al ; 0f b6 d8 10549 10715 mov dx, strict word 00026h ; ba 26 00 10550 10716 mov ax, cx ; 89 c8 10551 call 016 5eh ; e8 9ea110717 call 016c6h ; e8 7a a1 10552 10718 mov ax, 000ffh ; b8 ff 00 10553 call 072 65h ; e8 9f fd10719 call 072f1h ; e8 9f fd 10554 10720 test al, al ; 84 c0 10555 jne near 07 6f6h ; 0f 85 2a 0210721 jne near 07782h ; 0f 85 2a 02 10556 10722 mov dx, ss ; 8c d2 10557 10723 lea ax, [bp-004h] ; 8d 46 fc 10558 call 07 299h ; e8 c5 fd10724 call 07325h ; e8 c5 fd 10559 10725 mov cl, al ; 88 c1 10560 10726 cmp byte [bp-004h], 0feh ; 80 7e fc fe 10561 jne short 07 4e7h ; 75 0b10727 jne short 07573h ; 75 0b 10562 10728 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10563 10729 mov byte [bp+013h], 004h ; c6 46 13 04 10564 jmp near 077 70h ; e9 89 0210730 jmp near 077fch ; e9 89 02 10565 10731 cmp byte [bp-004h], 0fah ; 80 7e fc fa 10566 je short 07 4fdh ; 74 1010732 je short 07589h ; 74 10 10567 10733 movzx ax, byte [bp-004h] ; 0f b6 46 fc 10568 10734 push ax ; 50 10569 10735 push 00903h ; 68 03 09 10570 10736 push strict byte 00007h ; 6a 07 10571 call 019 72h ; e8 78a410737 call 019dah ; e8 54 a4 10572 10738 add sp, strict byte 00006h ; 83 c4 06 10573 10739 test cl, cl ; 84 c9 10574 jne near 07 6f6h ; 0f 85 f3 0110740 jne near 07782h ; 0f 85 f3 01 10575 10741 mov dx, ss ; 8c d2 10576 10742 lea ax, [bp-008h] ; 8d 46 f8 10577 call 07 299h ; e8 8e fd10743 call 07325h ; e8 8e fd 10578 10744 test al, al ; 84 c0 10579 jne near 07 6f6h ; 0f 85 e5 0110745 jne near 07782h ; 0f 85 e5 01 10580 10746 mov dx, ss ; 8c d2 10581 10747 lea ax, [bp-006h] ; 8d 46 fa 10582 call 07 299h ; e8 80 fd10748 call 07325h ; e8 80 fd 10583 10749 test al, al ; 84 c0 10584 jne near 07 6f6h ; 0f 85 d7 0110750 jne near 07782h ; 0f 85 d7 01 10585 10751 mov al, byte [bp-008h] ; 8a 46 f8 10586 10752 mov byte [bp+00ch], al ; 88 46 0c 10587 10753 mov al, byte [bp-006h] ; 8a 46 fa 10588 10754 mov byte [bp+00dh], al ; 88 46 0d 10589 jmp near 077 70h ; e9 42 0210755 jmp near 077fch ; e9 42 02 10590 10756 mov al, byte [bp+00dh] ; 8a 46 0d 10591 10757 cmp AL, strict byte 003h ; 3c 03 10592 jc short 075 45h ; 72 1010593 jbe short 075 63h ; 76 2c10758 jc short 075d1h ; 72 10 10759 jbe short 075efh ; 76 2c 10594 10760 cmp AL, strict byte 006h ; 3c 06 10595 je short 07 575h ; 74 3a10761 je short 07601h ; 74 3a 10596 10762 cmp AL, strict byte 005h ; 3c 05 10597 je short 075 6fh ; 74 3010763 je short 075fbh ; 74 30 10598 10764 cmp AL, strict byte 004h ; 3c 04 10599 je short 075 69h ; 74 2610600 jmp short 07 57bh ; eb 3610765 je short 075f5h ; 74 26 10766 jmp short 07607h ; eb 36 10601 10767 cmp AL, strict byte 002h ; 3c 02 10602 je short 075 5dh ; 74 1410768 je short 075e9h ; 74 14 10603 10769 cmp AL, strict byte 001h ; 3c 01 10604 je short 075 57h ; 74 0a10770 je short 075e3h ; 74 0a 10605 10771 test al, al ; 84 c0 10606 jne short 07 57bh ; 75 2a10772 jne short 07607h ; 75 2a 10607 10773 mov byte [bp-008h], 00ah ; c6 46 f8 0a 10608 jmp short 07 57fh ; eb 2810774 jmp short 0760bh ; eb 28 10609 10775 mov byte [bp-008h], 014h ; c6 46 f8 14 10610 jmp short 07 57fh ; eb 2210776 jmp short 0760bh ; eb 22 10611 10777 mov byte [bp-008h], 028h ; c6 46 f8 28 10612 jmp short 07 57fh ; eb 1c10778 jmp short 0760bh ; eb 1c 10613 10779 mov byte [bp-008h], 03ch ; c6 46 f8 3c 10614 jmp short 07 57fh ; eb 1610780 jmp short 0760bh ; eb 16 10615 10781 mov byte [bp-008h], 050h ; c6 46 f8 50 10616 jmp short 07 57fh ; eb 1010782 jmp short 0760bh ; eb 10 10617 10783 mov byte [bp-008h], 064h ; c6 46 f8 64 10618 jmp short 07 57fh ; eb 0a10784 jmp short 0760bh ; eb 0a 10619 10785 mov byte [bp-008h], 0c8h ; c6 46 f8 c8 10620 jmp short 07 57fh ; eb 0410786 jmp short 0760bh ; eb 04 10621 10787 mov byte [bp-008h], 000h ; c6 46 f8 00 10622 10788 cmp byte [bp-008h], 000h ; 80 7e f8 00 10623 jbe short 07 5b4h ; 76 2f10789 jbe short 07640h ; 76 2f 10624 10790 mov ax, 000f3h ; b8 f3 00 10625 call 072 65h ; e8 da fc10791 call 072f1h ; e8 da fc 10626 10792 test al, al ; 84 c0 10627 jne short 07 5a9h ; 75 1a10793 jne short 07635h ; 75 1a 10628 10794 mov dx, ss ; 8c d2 10629 10795 lea ax, [bp-006h] ; 8d 46 fa 10630 call 07 299h ; e8 02 fd10796 call 07325h ; e8 02 fd 10631 10797 movzx ax, byte [bp-008h] ; 0f b6 46 f8 10632 call 072 65h ; e8 c7 fc10798 call 072f1h ; e8 c7 fc 10633 10799 mov dx, ss ; 8c d2 10634 10800 lea ax, [bp-006h] ; 8d 46 fa 10635 call 07 299h ; e8 f3 fc10636 jmp near 077 70h ; e9 c7 0110801 call 07325h ; e8 f3 fc 10802 jmp near 077fch ; e9 c7 01 10637 10803 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10638 10804 mov byte [bp+013h], 003h ; c6 46 13 03 10639 jmp near 077 70h ; e9 bc 0110805 jmp near 077fch ; e9 bc 01 10640 10806 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10641 10807 mov byte [bp+013h], 002h ; c6 46 13 02 10642 jmp near 077 70h ; e9 b1 0110808 jmp near 077fch ; e9 b1 01 10643 10809 cmp byte [bp+00dh], 004h ; 80 7e 0d 04 10644 jnc short 076 22h ; 73 5d10810 jnc short 076aeh ; 73 5d 10645 10811 mov ax, 000e8h ; b8 e8 00 10646 call 072 65h ; e8 9a fc10812 call 072f1h ; e8 9a fc 10647 10813 test al, al ; 84 c0 10648 jne short 076 17h ; 75 4810814 jne short 076a3h ; 75 48 10649 10815 mov dx, ss ; 8c d2 10650 10816 lea ax, [bp-008h] ; 8d 46 f8 10651 call 07 299h ; e8 c2 fc10817 call 07325h ; e8 c2 fc 10652 10818 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10653 je short 07 5edh ; 74 1010819 je short 07679h ; 74 10 10654 10820 movzx ax, byte [bp-008h] ; 0f b6 46 f8 10655 10821 push ax ; 50 10656 10822 push 0092eh ; 68 2e 09 10657 10823 push strict byte 00007h ; 6a 07 10658 call 019 72h ; e8 88a310824 call 019dah ; e8 64 a3 10659 10825 add sp, strict byte 00006h ; 83 c4 06 10660 10826 movzx ax, byte [bp+00dh] ; 0f b6 46 0d 10661 call 072 65h ; e8 71 fc10827 call 072f1h ; e8 71 fc 10662 10828 mov dx, ss ; 8c d2 10663 10829 lea ax, [bp-008h] ; 8d 46 f8 10664 call 07 299h ; e8 9d fc10830 call 07325h ; e8 9d fc 10665 10831 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10666 je near 077 70h ; 0f 84 6c 0110832 je near 077fch ; 0f 84 6c 01 10667 10833 movzx ax, byte [bp-008h] ; 0f b6 46 f8 10668 10834 push ax ; 50 10669 10835 push 0092eh ; 68 2e 09 10670 10836 push strict byte 00007h ; 6a 07 10671 call 019 72h ; e8 61a310837 call 019dah ; e8 3d a3 10672 10838 add sp, strict byte 00006h ; 83 c4 06 10673 jmp near 077 70h ; e9 59 0110839 jmp near 077fch ; e9 59 01 10674 10840 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10675 10841 mov byte [bp+013h], 003h ; c6 46 13 03 10676 jmp near 077 70h ; e9 4e 0110842 jmp near 077fch ; e9 4e 01 10677 10843 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10678 10844 mov byte [bp+013h], 002h ; c6 46 13 02 10679 jmp near 077 70h ; e9 43 0110845 jmp near 077fch ; e9 43 01 10680 10846 mov ax, 000f2h ; b8 f2 00 10681 call 072 65h ; e8 32 fc10847 call 072f1h ; e8 32 fc 10682 10848 test al, al ; 84 c0 10683 jne short 076 4ah ; 75 1310849 jne short 076d6h ; 75 13 10684 10850 mov dx, ss ; 8c d2 10685 10851 lea ax, [bp-008h] ; 8d 46 f8 10686 call 07 299h ; e8 5a fc10852 call 07325h ; e8 5a fc 10687 10853 mov dx, ss ; 8c d2 10688 10854 lea ax, [bp-006h] ; 8d 46 fa 10689 call 07 299h ; e8 52 fc10690 jmp near 075 25h ; e9 db fe10855 call 07325h ; e8 52 fc 10856 jmp near 075b1h ; e9 db fe 10691 10857 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10692 10858 mov byte [bp+013h], 003h ; c6 46 13 03 10693 jmp near 077 70h ; e9 1b 0110859 jmp near 077fch ; e9 1b 01 10694 10860 mov al, byte [bp+00dh] ; 8a 46 0d 10695 10861 test al, al ; 84 c0 10696 jbe short 076 63h ; 76 0710862 jbe short 076efh ; 76 07 10697 10863 cmp AL, strict byte 002h ; 3c 02 10698 jbe short 07 6cch ; 76 6c10699 jmp near 077 00h ; e9 9d 0010864 jbe short 07758h ; 76 6c 10865 jmp near 0778ch ; e9 9d 00 10700 10866 mov ax, 000e9h ; b8 e9 00 10701 call 072 65h ; e8 fc fb10867 call 072f1h ; e8 fc fb 10702 10868 test al, al ; 84 c0 10703 jne near 07 6f6h ; 0f 85 87 0010869 jne near 07782h ; 0f 85 87 00 10704 10870 mov dx, ss ; 8c d2 10705 10871 lea ax, [bp-008h] ; 8d 46 f8 10706 call 07 299h ; e8 22 fc10872 call 07325h ; e8 22 fc 10707 10873 mov cl, al ; 88 c1 10708 10874 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10709 je short 07 68fh ; 74 1010875 je short 0771bh ; 74 10 10710 10876 movzx ax, byte [bp-008h] ; 0f b6 46 f8 10711 10877 push ax ; 50 10712 10878 push 0092eh ; 68 2e 09 10713 10879 push strict byte 00007h ; 6a 07 10714 call 019 72h ; e8 e6a210880 call 019dah ; e8 c2 a2 10715 10881 add sp, strict byte 00006h ; 83 c4 06 10716 10882 test cl, cl ; 84 c9 10717 jne short 07 6f6h ; 75 6310883 jne short 07782h ; 75 63 10718 10884 mov dx, ss ; 8c d2 10719 10885 lea ax, [bp-008h] ; 8d 46 f8 10720 call 07 299h ; e8 fe fb10886 call 07325h ; e8 fe fb 10721 10887 test al, al ; 84 c0 10722 jne short 07 6f6h ; 75 5710888 jne short 07782h ; 75 57 10723 10889 mov dx, ss ; 8c d2 10724 10890 lea ax, [bp-006h] ; 8d 46 fa 10725 call 07 299h ; e8 f2 fb10891 call 07325h ; e8 f2 fb 10726 10892 test al, al ; 84 c0 10727 jne short 07 6f6h ; 75 4b10893 jne short 07782h ; 75 4b 10728 10894 mov dx, ss ; 8c d2 10729 10895 lea ax, [bp-004h] ; 8d 46 fc 10730 call 07 299h ; e8 e6 fb10896 call 07325h ; e8 e6 fb 10731 10897 test al, al ; 84 c0 10732 jne short 07 6f6h ; 75 3f10898 jne short 07782h ; 75 3f 10733 10899 mov al, byte [bp-008h] ; 8a 46 f8 10734 10900 mov byte [bp+00ch], al ; 88 46 0c … … 10737 10903 mov al, byte [bp-004h] ; 8a 46 fc 10738 10904 mov byte [bp+00eh], al ; 88 46 0e 10739 jmp near 077 70h ; e9 a4 0010905 jmp near 077fch ; e9 a4 00 10740 10906 cmp AL, strict byte 001h ; 3c 01 10741 jne short 07 6d5h ; 75 0510907 jne short 07761h ; 75 05 10742 10908 mov ax, 000e6h ; b8 e6 00 10743 jmp short 07 6d8h ; eb 0310909 jmp short 07764h ; eb 03 10744 10910 mov ax, 000e7h ; b8 e7 00 10745 call 072 65h ; e8 8a fb10911 call 072f1h ; e8 8a fb 10746 10912 mov cl, al ; 88 c1 10747 10913 test cl, cl ; 84 c9 10748 jne short 07 6f0h ; 75 0f10914 jne short 0777ch ; 75 0f 10749 10915 mov dx, ss ; 8c d2 10750 10916 lea ax, [bp-008h] ; 8d 46 f8 10751 call 07 299h ; e8 b0 fb10917 call 07325h ; e8 b0 fb 10752 10918 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10753 10919 db 00fh, 095h, 0c1h 10754 10920 ; setne cl ; 0f 95 c1 10755 10921 test cl, cl ; 84 c9 10756 je near 077 70h ; 0f 84 7a 0010922 je near 077fch ; 0f 84 7a 00 10757 10923 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10758 10924 mov byte [bp+013h], 003h ; c6 46 13 03 10759 jmp short 077 70h ; eb 7010925 jmp short 077fch ; eb 70 10760 10926 movzx ax, byte [bp+00dh] ; 0f b6 46 0d 10761 10927 push ax ; 50 10762 10928 push 0095ah ; 68 5a 09 10763 10929 push strict byte 00007h ; 6a 07 10764 call 019 72h ; e8 65a210930 call 019dah ; e8 41 a2 10765 10931 add sp, strict byte 00006h ; 83 c4 06 10766 10932 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10767 10933 mov byte [bp+013h], 001h ; c6 46 13 01 10768 jmp short 077 70h ; eb 5610934 jmp short 077fch ; eb 56 10769 10935 mov si, word [bp+00ch] ; 8b 76 0c 10770 10936 mov bx, si ; 89 f3 10771 10937 mov dx, strict word 00022h ; ba 22 00 10772 10938 mov ax, cx ; 89 c8 10773 call 016 7ah ; e8 539f10939 call 016e2h ; e8 2f 9f 10774 10940 mov bx, word [bp+014h] ; 8b 5e 14 10775 10941 mov dx, strict word 00024h ; ba 24 00 10776 10942 mov ax, cx ; 89 c8 10777 call 016 7ah ; e8 489f10943 call 016e2h ; e8 24 9f 10778 10944 mov dx, strict word 00027h ; ba 27 00 10779 10945 mov ax, cx ; 89 c8 10780 call 016 50h ; e8 16 9f10946 call 016b8h ; e8 f2 9e 10781 10947 mov ah, al ; 88 c4 10782 10948 test si, si ; 85 f6 10783 jne short 077 4eh ; 75 0e10949 jne short 077dah ; 75 0e 10784 10950 cmp word [bp+014h], strict byte 00000h ; 83 7e 14 00 10785 jne short 077 4eh ; 75 0810951 jne short 077dah ; 75 08 10786 10952 test AL, strict byte 080h ; a8 80 10787 je short 077 50h ; 74 0610953 je short 077dch ; 74 06 10788 10954 and AL, strict byte 07fh ; 24 7f 10789 jmp short 077 50h ; eb 0210955 jmp short 077dch ; eb 02 10790 10956 or AL, strict byte 080h ; 0c 80 10791 10957 movzx bx, al ; 0f b6 d8 10792 10958 mov dx, strict word 00027h ; ba 27 00 10793 10959 mov ax, cx ; 89 c8 10794 call 016 5eh ; e8 03 9f10795 jmp short 077 70h ; eb 1310960 call 016c6h ; e8 df 9e 10961 jmp short 077fch ; eb 13 10796 10962 push 00974h ; 68 74 09 10797 10963 push strict byte 00007h ; 6a 07 10798 call 019 72h ; e8 0d a210964 call 019dah ; e8 e9 a1 10799 10965 add sp, strict byte 00004h ; 83 c4 04 10800 10966 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10801 10967 mov byte [bp+013h], 001h ; c6 46 13 01 10802 10968 mov ax, strict word 00047h ; b8 47 00 10803 call 07 2f5h ; e8 7f fb10969 call 07381h ; e8 7f fb 10804 10970 lea sp, [bp-002h] ; 8d 66 fe 10805 10971 pop si ; 5e 10806 10972 pop bp ; 5d 10807 10973 retn ; c3 10808 _int17_function: ; 0xf7 77cLB 0xb310974 _int17_function: ; 0xf7808 LB 0xb3 10809 10975 push bp ; 55 10810 10976 mov bp, sp ; 89 e5 … … 10816 10982 add dx, strict byte 00008h ; 83 c2 08 10817 10983 mov ax, strict word 00040h ; b8 40 00 10818 call 016 6ch ; e8 dc9e10984 call 016d4h ; e8 b8 9e 10819 10985 mov bx, ax ; 89 c3 10820 10986 mov si, ax ; 89 c6 10821 10987 cmp byte [bp+013h], 003h ; 80 7e 13 03 10822 jnc near 078 25h ; 0f 83 89 0010988 jnc near 078b1h ; 0f 83 89 00 10823 10989 mov ax, word [bp+00eh] ; 8b 46 0e 10824 10990 cmp ax, strict word 00003h ; 3d 03 00 10825 jnc near 078 25h ; 0f 83 7f 0010991 jnc near 078b1h ; 0f 83 7f 00 10826 10992 test bx, bx ; 85 db 10827 jbe near 078 25h ; 0f 86 79 0010993 jbe near 078b1h ; 0f 86 79 00 10828 10994 mov dx, ax ; 89 c2 10829 10995 add dx, strict byte 00078h ; 83 c2 78 10830 10996 mov ax, strict word 00040h ; b8 40 00 10831 call 016 50h ; e8 999e10997 call 016b8h ; e8 75 9e 10832 10998 movzx cx, al ; 0f b6 c8 10833 10999 sal cx, 008h ; c1 e1 08 10834 11000 cmp byte [bp+013h], 000h ; 80 7e 13 00 10835 jne short 07 7f0h ; 75 2d11001 jne short 0787ch ; 75 2d 10836 11002 mov al, byte [bp+012h] ; 8a 46 12 10837 11003 mov dx, bx ; 89 da … … 10853 11019 ; sub ah, ah ; 2a e4 10854 11020 test AL, strict byte 040h ; a8 40 10855 je short 07 7f0h ; 74 0711021 je short 0787ch ; 74 07 10856 11022 test cx, cx ; 85 c9 10857 je short 07 7f0h ; 74 0311023 je short 0787ch ; 74 03 10858 11024 dec cx ; 49 10859 jmp short 07 7dfh ; eb ef11025 jmp short 0786bh ; eb ef 10860 11026 cmp byte [bp+013h], 001h ; 80 7e 13 01 10861 jne short 078 0ch ; 75 1611027 jne short 07898h ; 75 16 10862 11028 lea dx, [si+002h] ; 8d 54 02 10863 11029 in AL, DX ; ec … … 10878 11044 mov byte [bp+013h], al ; 88 46 13 10879 11045 test cx, cx ; 85 c9 10880 jne short 078 1fh ; 75 0411046 jne short 078abh ; 75 04 10881 11047 or byte [bp+013h], 001h ; 80 4e 13 01 10882 11048 and byte [bp+01ch], 0feh ; 80 66 1c fe 10883 jmp short 078 29h ; eb 0411049 jmp short 078b5h ; eb 04 10884 11050 or byte [bp+01ch], 001h ; 80 4e 1c 01 10885 11051 lea sp, [bp-002h] ; 8d 66 fe … … 10887 11053 pop bp ; 5d 10888 11054 retn ; c3 10889 wait_: ; 0xf78 2fLB 0xb211055 wait_: ; 0xf78bb LB 0xb2 10890 11056 push bp ; 55 10891 11057 mov bp, sp ; 89 e5 … … 10905 11071 mov dx, 0046ch ; ba 6c 04 10906 11072 xor ax, ax ; 31 c0 10907 call 016 88h ; e8 369e11073 call 016f0h ; e8 12 9e 10908 11074 mov word [bp-00eh], ax ; 89 46 f2 10909 11075 mov bx, dx ; 89 d3 … … 10911 11077 mov dx, 0046ch ; ba 6c 04 10912 11078 xor ax, ax ; 31 c0 10913 call 016 88h ; e8 289e11079 call 016f0h ; e8 04 9e 10914 11080 mov word [bp-012h], ax ; 89 46 ee 10915 11081 mov di, dx ; 89 d7 10916 11082 cmp dx, bx ; 39 da 10917 jnbe short 078 70h ; 77 0710918 jne short 07 877h ; 75 0c11083 jnbe short 078fch ; 77 07 11084 jne short 07903h ; 75 0c 10919 11085 cmp ax, word [bp-00eh] ; 3b 46 f2 10920 jbe short 07 877h ; 76 0711086 jbe short 07903h ; 76 07 10921 11087 sub ax, word [bp-00eh] ; 2b 46 f2 10922 11088 sbb dx, bx ; 19 da 10923 jmp short 07 882h ; eb 0b11089 jmp short 0790eh ; eb 0b 10924 11090 cmp dx, bx ; 39 da 10925 jc short 07 882h ; 72 0710926 jne short 07 886h ; 75 0911091 jc short 0790eh ; 72 07 11092 jne short 07912h ; 75 09 10927 11093 cmp ax, word [bp-00eh] ; 3b 46 f2 10928 jnc short 07 886h ; 73 0411094 jnc short 07912h ; 73 04 10929 11095 sub si, ax ; 29 c6 10930 11096 sbb cx, dx ; 19 d1 … … 10934 11100 mov ax, 00100h ; b8 00 01 10935 11101 int 016h ; cd 16 10936 je near 07 89ch ; 0f 84 05 0011102 je near 07928h ; 0f 84 05 00 10937 11103 mov AL, strict byte 001h ; b0 01 10938 jmp near 07 89eh ; e9 02 0011104 jmp near 0792ah ; e9 02 00 10939 11105 db 032h, 0c0h 10940 11106 ; xor al, al ; 32 c0 10941 11107 test al, al ; 84 c0 10942 je short 07 8c6h ; 74 2411108 je short 07952h ; 74 24 10943 11109 db 033h, 0c0h 10944 11110 ; xor ax, ax ; 33 c0 … … 10951 11117 push 00996h ; 68 96 09 10952 11118 push strict byte 00004h ; 6a 04 10953 call 019 72h ; e8 b9a011119 call 019dah ; e8 95 a0 10954 11120 add sp, strict byte 00006h ; 83 c4 06 10955 11121 cmp byte [bp-00ch], 000h ; 80 7e f4 00 10956 je short 07 8c6h ; 74 0411122 je short 07952h ; 74 04 10957 11123 mov al, dl ; 88 d0 10958 jmp short 07 8d8h ; eb 1211124 jmp short 07964h ; eb 12 10959 11125 test cx, cx ; 85 c9 10960 jnle short 078 57h ; 7f 8d10961 jne short 07 8d0h ; 75 0411126 jnle short 078e3h ; 7f 8d 11127 jne short 0795ch ; 75 04 10962 11128 test si, si ; 85 f6 10963 jnbe short 078 57h ; 77 8711129 jnbe short 078e3h ; 77 87 10964 11130 mov ax, word [bp-010h] ; 8b 46 f0 10965 11131 push ax ; 50 … … 10973 11139 pop bp ; 5d 10974 11140 retn ; c3 10975 read_logo_byte_: ; 0xf7 8e1LB 0x1611141 read_logo_byte_: ; 0xf796d LB 0x16 10976 11142 push bp ; 55 10977 11143 mov bp, sp ; 89 e5 … … 10988 11154 pop bp ; 5d 10989 11155 retn ; c3 10990 read_logo_word_: ; 0xf7 8f7LB 0x1411156 read_logo_word_: ; 0xf7983 LB 0x14 10991 11157 push bp ; 55 10992 11158 mov bp, sp ; 89 e5 … … 11001 11167 pop bp ; 5d 11002 11168 retn ; c3 11003 print_detected_harddisks_: ; 0xf79 0bLB 0x13011169 print_detected_harddisks_: ; 0xf7997 LB 0x130 11004 11170 push bp ; 55 11005 11171 mov bp, sp ; 89 e5 … … 11013 11179 mov dx, strict word 0000eh ; ba 0e 00 11014 11180 mov ax, strict word 00040h ; b8 40 00 11015 call 016 6ch ; e8 4e9d11181 call 016d4h ; e8 2a 9d 11016 11182 mov si, ax ; 89 c6 11017 11183 mov byte [bp-00ch], 000h ; c6 46 f4 00 … … 11019 11185 xor ch, ch ; 30 ed 11020 11186 mov dx, 00304h ; ba 04 03 11021 call 016 50h ; e8 22 9d11187 call 016b8h ; e8 fe 9c 11022 11188 mov byte [bp-00eh], al ; 88 46 f2 11023 11189 xor bl, bl ; 30 db 11024 11190 cmp bl, byte [bp-00eh] ; 3a 5e f2 11025 jnc near 07a 0dh ; 0f 83 d3 0011191 jnc near 07a99h ; 0f 83 d3 00 11026 11192 movzx dx, bl ; 0f b6 d3 11027 11193 add dx, 00305h ; 81 c2 05 03 11028 11194 mov ax, si ; 89 f0 11029 call 016 50h ; e8 0a 9d11195 call 016b8h ; e8 e6 9c 11030 11196 mov bh, al ; 88 c7 11031 11197 cmp AL, strict byte 00ch ; 3c 0c 11032 jc short 079 70h ; 72 2411198 jc short 079fch ; 72 24 11033 11199 test cl, cl ; 84 c9 11034 jne short 079 5dh ; 75 0d11200 jne short 079e9h ; 75 0d 11035 11201 push 009a7h ; 68 a7 09 11036 11202 push strict byte 00002h ; 6a 02 11037 call 019 72h ; e8 1a a011203 call 019dah ; e8 f6 9f 11038 11204 add sp, strict byte 00004h ; 83 c4 04 11039 11205 mov CL, strict byte 001h ; b1 01 … … 11043 11209 push 009bch ; 68 bc 09 11044 11210 push strict byte 00002h ; 6a 02 11045 call 019 72h ; e8 08 a011211 call 019dah ; e8 e4 9f 11046 11212 add sp, strict byte 00006h ; 83 c4 06 11047 jmp near 07a 08h ; e9 98 0011213 jmp near 07a94h ; e9 98 00 11048 11214 cmp AL, strict byte 008h ; 3c 08 11049 jc short 07 987h ; 72 1311215 jc short 07a13h ; 72 13 11050 11216 test ch, ch ; 84 ed 11051 jne short 07 985h ; 75 0d11217 jne short 07a11h ; 75 0d 11052 11218 push 009cfh ; 68 cf 09 11053 11219 push strict byte 00002h ; 6a 02 11054 call 019 72h ; e8 f29f11220 call 019dah ; e8 ce 9f 11055 11221 add sp, strict byte 00004h ; 83 c4 04 11056 11222 mov CH, strict byte 001h ; b5 01 11057 jmp short 079 5dh ; eb d611223 jmp short 079e9h ; eb d6 11058 11224 cmp AL, strict byte 004h ; 3c 04 11059 jnc short 07 9a2h ; 73 1711225 jnc short 07a2eh ; 73 17 11060 11226 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11061 jne short 07 9a2h ; 75 1111227 jne short 07a2eh ; 75 11 11062 11228 push 009e4h ; 68 e4 09 11063 11229 push strict byte 00002h ; 6a 02 11064 call 019 72h ; e8 d99f11230 call 019dah ; e8 b5 9f 11065 11231 add sp, strict byte 00004h ; 83 c4 04 11066 11232 mov byte [bp-00ch], 001h ; c6 46 f4 01 11067 jmp short 07 9b8h ; eb 1611233 jmp short 07a44h ; eb 16 11068 11234 cmp bh, 004h ; 80 ff 04 11069 jc short 07 9b8h ; 72 1111235 jc short 07a44h ; 72 11 11070 11236 test cl, cl ; 84 c9 11071 jne short 07 9b8h ; 75 0d11237 jne short 07a44h ; 75 0d 11072 11238 push 009f6h ; 68 f6 09 11073 11239 push strict byte 00002h ; 6a 02 11074 call 019 72h ; e8 bf9f11240 call 019dah ; e8 9b 9f 11075 11241 add sp, strict byte 00004h ; 83 c4 04 11076 11242 mov CL, strict byte 001h ; b1 01 … … 11080 11246 push 00a0ah ; 68 0a 0a 11081 11247 push strict byte 00002h ; 6a 02 11082 call 019 72h ; e8 ad9f11248 call 019dah ; e8 89 9f 11083 11249 add sp, strict byte 00006h ; 83 c4 06 11084 11250 cmp bh, 004h ; 80 ff 04 11085 jc short 07 9d0h ; 72 0311251 jc short 07a5ch ; 72 03 11086 11252 sub bh, 004h ; 80 ef 04 11087 11253 movzx ax, bh ; 0f b6 c7 … … 11091 11257 sar ax, 1 ; d1 f8 11092 11258 test ax, ax ; 85 c0 11093 je short 07 9e1h ; 74 0511259 je short 07a6dh ; 74 05 11094 11260 push 00a14h ; 68 14 0a 11095 jmp short 07 9e4h ; eb 0311261 jmp short 07a70h ; eb 03 11096 11262 push 00a1fh ; 68 1f 0a 11097 11263 push strict byte 00002h ; 6a 02 11098 call 019 72h ; e8 899f11264 call 019dah ; e8 65 9f 11099 11265 add sp, strict byte 00004h ; 83 c4 04 11100 11266 movzx ax, bh ; 0f b6 c7 … … 11103 11269 idiv di ; f7 ff 11104 11270 test dx, dx ; 85 d2 11105 je short 07 9feh ; 74 0511271 je short 07a8ah ; 74 05 11106 11272 push 00a28h ; 68 28 0a 11107 jmp short 07a 01h ; eb 0311273 jmp short 07a8dh ; eb 03 11108 11274 push 00a2eh ; 68 2e 0a 11109 11275 push di ; 57 11110 call 019 72h ; e8 6d9f11276 call 019dah ; e8 49 9f 11111 11277 add sp, strict byte 00004h ; 83 c4 04 11112 11278 db 0feh, 0c3h 11113 11279 ; inc bl ; fe c3 11114 jmp near 079 33h ; e9 26 ff11280 jmp near 079bfh ; e9 26 ff 11115 11281 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11116 jne short 07a 26h ; 75 1311282 jne short 07ab2h ; 75 13 11117 11283 test cl, cl ; 84 c9 11118 jne short 07a 26h ; 75 0f11284 jne short 07ab2h ; 75 0f 11119 11285 test ch, ch ; 84 ed 11120 jne short 07a 26h ; 75 0b11286 jne short 07ab2h ; 75 0b 11121 11287 push 00a35h ; 68 35 0a 11122 11288 push strict byte 00002h ; 6a 02 11123 call 019 72h ; e8 4f9f11289 call 019dah ; e8 2b 9f 11124 11290 add sp, strict byte 00004h ; 83 c4 04 11125 11291 push 00a49h ; 68 49 0a 11126 11292 push strict byte 00002h ; 6a 02 11127 call 019 72h ; e8 449f11293 call 019dah ; e8 20 9f 11128 11294 add sp, strict byte 00004h ; 83 c4 04 11129 11295 lea sp, [bp-00ah] ; 8d 66 f6 … … 11135 11301 pop bp ; 5d 11136 11302 retn ; c3 11137 get_boot_drive_: ; 0xf7a 3bLB 0x2811303 get_boot_drive_: ; 0xf7ac7 LB 0x28 11138 11304 push bp ; 55 11139 11305 mov bp, sp ; 89 e5 … … 11143 11309 mov dx, strict word 0000eh ; ba 0e 00 11144 11310 mov ax, strict word 00040h ; b8 40 00 11145 call 016 6ch ; e8 21 9c11311 call 016d4h ; e8 fd 9b 11146 11312 mov dx, 00304h ; ba 04 03 11147 call 016 50h ; e8 ff9b11313 call 016b8h ; e8 db 9b 11148 11314 sub bl, 002h ; 80 eb 02 11149 11315 cmp bl, al ; 38 c3 11150 jc short 07a 5ah ; 72 0211316 jc short 07ae6h ; 72 02 11151 11317 mov BL, strict byte 0ffh ; b3 ff 11152 11318 mov al, bl ; 88 d8 … … 11156 11322 pop bp ; 5d 11157 11323 retn ; c3 11158 show_logo_: ; 0xf7a 63LB 0x22411324 show_logo_: ; 0xf7aef LB 0x224 11159 11325 push bp ; 55 11160 11326 mov bp, sp ; 89 e5 … … 11167 11333 mov dx, strict word 0000eh ; ba 0e 00 11168 11334 mov ax, strict word 00040h ; b8 40 00 11169 call 016 6ch ; e8 f59b11335 call 016d4h ; e8 d1 9b 11170 11336 mov si, ax ; 89 c6 11171 11337 xor cl, cl ; 30 c9 … … 11178 11344 out strict byte 040h, AL ; e6 40 11179 11345 movzx ax, dl ; 0f b6 c2 11180 call 07 8f7h ; e8 68 fe11346 call 07983h ; e8 68 fe 11181 11347 cmp ax, 066bbh ; 3d bb 66 11182 jne near 07b 67h ; 0f 85 d1 0011348 jne near 07bf3h ; 0f 85 d1 00 11183 11349 push SS ; 16 11184 11350 pop ES ; 07 … … 11188 11354 mov word [es:di], bx ; 26 89 1d 11189 11355 cmp ax, strict word 0004fh ; 3d 4f 00 11190 jne near 07b 67h ; 0f 85 bd 0011356 jne near 07bf3h ; 0f 85 bd 00 11191 11357 mov al, dl ; 88 d0 11192 11358 add AL, strict byte 004h ; 04 04 11193 11359 xor ah, ah ; 30 e4 11194 call 07 8e1h ; e8 2e fe11360 call 0796dh ; e8 2e fe 11195 11361 mov ch, al ; 88 c5 11196 11362 mov byte [bp-00ch], al ; 88 46 f4 … … 11198 11364 add AL, strict byte 005h ; 04 05 11199 11365 xor ah, ah ; 30 e4 11200 call 07 8e1h ; e8 20 fe11366 call 0796dh ; e8 20 fe 11201 11367 mov dh, al ; 88 c6 11202 11368 mov byte [bp-010h], al ; 88 46 f0 … … 11204 11370 add AL, strict byte 002h ; 04 02 11205 11371 xor ah, ah ; 30 e4 11206 call 07 8f7h ; e8 28 fe11372 call 07983h ; e8 28 fe 11207 11373 mov bx, ax ; 89 c3 11208 11374 mov word [bp-014h], ax ; 89 46 ec … … 11210 11376 add AL, strict byte 006h ; 04 06 11211 11377 xor ah, ah ; 30 e4 11212 call 07 8e1h ; e8 04 fe11378 call 0796dh ; e8 04 fe 11213 11379 mov byte [bp-012h], al ; 88 46 ee 11214 11380 test ch, ch ; 84 ed 11215 jne short 07 aeeh ; 75 0a11381 jne short 07b7ah ; 75 0a 11216 11382 test dh, dh ; 84 f6 11217 jne short 07 aeeh ; 75 0611383 jne short 07b7ah ; 75 06 11218 11384 test bx, bx ; 85 db 11219 je near 07b 67h ; 0f 84 79 0011385 je near 07bf3h ; 0f 84 79 00 11220 11386 mov bx, 00142h ; bb 42 01 11221 11387 mov ax, 04f02h ; b8 02 4f 11222 11388 int 010h ; cd 10 11223 11389 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11224 je short 07b 1fh ; 74 2311390 je short 07babh ; 74 23 11225 11391 xor bx, bx ; 31 db 11226 jmp short 07b 06h ; eb 0611392 jmp short 07b92h ; eb 06 11227 11393 inc bx ; 43 11228 11394 cmp bx, strict byte 00010h ; 83 fb 10 11229 jnbe short 07b 26h ; 77 2011395 jnbe short 07bb2h ; 77 20 11230 11396 mov ax, bx ; 89 d8 11231 11397 or ah, 002h ; 80 cc 02 … … 11234 11400 xor dx, dx ; 31 d2 11235 11401 mov ax, strict word 00001h ; b8 01 00 11236 call 078 2fh ; e8 18 fd11402 call 078bbh ; e8 18 fd 11237 11403 cmp AL, strict byte 086h ; 3c 86 11238 jne short 07b 00h ; 75 e511404 jne short 07b8ch ; 75 e5 11239 11405 mov CL, strict byte 001h ; b1 01 11240 jmp short 07b 26h ; eb 0711406 jmp short 07bb2h ; eb 07 11241 11407 mov ax, 00210h ; b8 10 02 11242 11408 mov dx, 003b8h ; ba b8 03 11243 11409 out DX, ax ; ef 11244 11410 test cl, cl ; 84 c9 11245 jne short 07b 3ch ; 75 1211411 jne short 07bc8h ; 75 12 11246 11412 mov ax, word [bp-014h] ; 8b 46 ec 11247 11413 shr ax, 004h ; c1 e8 04 11248 11414 mov dx, strict word 00001h ; ba 01 00 11249 call 078 2fh ; e8 f9 fc11415 call 078bbh ; e8 f9 fc 11250 11416 cmp AL, strict byte 086h ; 3c 86 11251 jne short 07b 3ch ; 75 0211417 jne short 07bc8h ; 75 02 11252 11418 mov CL, strict byte 001h ; b1 01 11253 11419 cmp byte [bp-010h], 000h ; 80 7e f0 00 11254 je short 07b 67h ; 74 2511420 je short 07bf3h ; 74 25 11255 11421 test cl, cl ; 84 c9 11256 jne short 07b 67h ; 75 2111422 jne short 07bf3h ; 75 21 11257 11423 mov bx, strict word 00010h ; bb 10 00 11258 jmp short 07b 50h ; eb 0511424 jmp short 07bdch ; eb 05 11259 11425 dec bx ; 4b 11260 11426 test bx, bx ; 85 db 11261 jbe short 07b 67h ; 76 1711427 jbe short 07bf3h ; 76 17 11262 11428 mov ax, bx ; 89 d8 11263 11429 or ah, 002h ; 80 cc 02 … … 11266 11432 xor dx, dx ; 31 d2 11267 11433 mov ax, strict word 00001h ; b8 01 00 11268 call 078 2fh ; e8 ce fc11434 call 078bbh ; e8 ce fc 11269 11435 cmp AL, strict byte 086h ; 3c 86 11270 jne short 07b 4bh ; 75 e611436 jne short 07bd7h ; 75 e6 11271 11437 mov CL, strict byte 001h ; b1 01 11272 11438 xor bx, bx ; 31 db 11273 11439 mov dx, 0037dh ; ba 7d 03 11274 11440 mov ax, si ; 89 f0 11275 call 016 5eh ; e8 ed9a11441 call 016c6h ; e8 c9 9a 11276 11442 mov AL, strict byte 003h ; b0 03 11277 11443 mov AH, strict byte 000h ; b4 00 11278 11444 int 010h ; cd 10 11279 11445 cmp byte [bp-012h], 000h ; 80 7e ee 00 11280 je near 07c 68h ; 0f 84 e9 0011446 je near 07cf4h ; 0f 84 e9 00 11281 11447 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11282 jne short 07 bb5h ; 75 3011448 jne short 07c41h ; 75 30 11283 11449 cmp byte [bp-010h], 000h ; 80 7e f0 00 11284 jne short 07 bb5h ; 75 2a11450 jne short 07c41h ; 75 2a 11285 11451 cmp word [bp-014h], strict byte 00000h ; 83 7e ec 00 11286 jne short 07 bb5h ; 75 2411452 jne short 07c41h ; 75 24 11287 11453 cmp byte [bp-012h], 002h ; 80 7e ee 02 11288 jne short 07 ba2h ; 75 0b11454 jne short 07c2eh ; 75 0b 11289 11455 push 00a4bh ; 68 4b 0a 11290 11456 push strict byte 00002h ; 6a 02 11291 call 019 72h ; e8 d39d11457 call 019dah ; e8 af 9d 11292 11458 add sp, strict byte 00004h ; 83 c4 04 11293 11459 test cl, cl ; 84 c9 11294 jne short 07 bb5h ; 75 0f11460 jne short 07c41h ; 75 0f 11295 11461 mov dx, strict word 00001h ; ba 01 00 11296 11462 mov ax, 000c0h ; b8 c0 00 11297 call 078 2fh ; e8 80 fc11463 call 078bbh ; e8 80 fc 11298 11464 cmp AL, strict byte 086h ; 3c 86 11299 jne short 07 bb5h ; 75 0211465 jne short 07c41h ; 75 02 11300 11466 mov CL, strict byte 001h ; b1 01 11301 11467 test cl, cl ; 84 c9 11302 je near 07c 68h ; 0f 84 ad 0011468 je near 07cf4h ; 0f 84 ad 00 11303 11469 mov byte [bp-00eh], 000h ; c6 46 f2 00 11304 11470 mov ax, 00100h ; b8 00 01 … … 11319 11485 push 00a6dh ; 68 6d 0a 11320 11486 push strict byte 00002h ; 6a 02 11321 call 019 72h ; e8 8e9d11487 call 019dah ; e8 6a 9d 11322 11488 add sp, strict byte 00004h ; 83 c4 04 11323 call 079 0bh ; e8 21 fd11489 call 07997h ; e8 21 fd 11324 11490 push 00ab1h ; 68 b1 0a 11325 11491 push strict byte 00002h ; 6a 02 11326 call 019 72h ; e8 809d11492 call 019dah ; e8 5c 9d 11327 11493 add sp, strict byte 00004h ; 83 c4 04 11328 11494 mov dx, strict word 00001h ; ba 01 00 11329 11495 mov ax, strict word 00040h ; b8 40 00 11330 call 078 2fh ; e8 31 fc11496 call 078bbh ; e8 31 fc 11331 11497 mov bl, al ; 88 c3 11332 11498 test al, al ; 84 c0 11333 je short 07 bf5h ; 74 f111499 je short 07c81h ; 74 f1 11334 11500 cmp AL, strict byte 030h ; 3c 30 11335 je short 07c 56h ; 74 4e11501 je short 07ce2h ; 74 4e 11336 11502 cmp bl, 002h ; 80 fb 02 11337 jc short 07c 2fh ; 72 2211503 jc short 07cbbh ; 72 22 11338 11504 cmp bl, 009h ; 80 fb 09 11339 jnbe short 07c 2fh ; 77 1d11505 jnbe short 07cbbh ; 77 1d 11340 11506 movzx ax, bl ; 0f b6 c3 11341 call 07a 3bh ; e8 23 fe11507 call 07ac7h ; e8 23 fe 11342 11508 cmp AL, strict byte 0ffh ; 3c ff 11343 jne short 07c 1eh ; 75 0211344 jmp short 07 bf5h ; eb d711509 jne short 07caah ; 75 02 11510 jmp short 07c81h ; eb d7 11345 11511 movzx bx, al ; 0f b6 d8 11346 11512 mov dx, 0037ch ; ba 7c 03 11347 11513 mov ax, si ; 89 f0 11348 call 016 5eh ; e8 359a11514 call 016c6h ; e8 11 9a 11349 11515 mov byte [bp-00eh], 002h ; c6 46 f2 02 11350 jmp short 07c 56h ; eb 2711516 jmp short 07ce2h ; eb 27 11351 11517 cmp bl, 02eh ; 80 fb 2e 11352 je short 07c 44h ; 74 1011518 je short 07cd0h ; 74 10 11353 11519 cmp bl, 026h ; 80 fb 26 11354 je short 07c 4ah ; 74 1111520 je short 07cd6h ; 74 11 11355 11521 cmp bl, 021h ; 80 fb 21 11356 jne short 07c 50h ; 75 1211522 jne short 07cdch ; 75 12 11357 11523 mov byte [bp-00eh], 001h ; c6 46 f2 01 11358 jmp short 07c 56h ; eb 1211524 jmp short 07ce2h ; eb 12 11359 11525 mov byte [bp-00eh], 003h ; c6 46 f2 03 11360 jmp short 07c 56h ; eb 0c11526 jmp short 07ce2h ; eb 0c 11361 11527 mov byte [bp-00eh], 004h ; c6 46 f2 04 11362 jmp short 07c 56h ; eb 0611528 jmp short 07ce2h ; eb 06 11363 11529 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11364 je short 07 bf5h ; 74 9f11530 je short 07c81h ; 74 9f 11365 11531 movzx bx, byte [bp-00eh] ; 0f b6 5e f2 11366 11532 mov dx, 0037dh ; ba 7d 03 11367 11533 mov ax, si ; 89 f0 11368 call 016 5eh ; e8 fc9911534 call 016c6h ; e8 d8 99 11369 11535 mov AL, strict byte 003h ; b0 03 11370 11536 mov AH, strict byte 000h ; b4 00 … … 11379 11545 push DS ; 1e 11380 11546 mov ds, ax ; 8e d8 11381 call 0edbfh ; e8 45 7111547 call 0edbfh ; e8 b9 70 11382 11548 pop DS ; 1f 11383 11549 popad ; 66 61 … … 11390 11556 pop bp ; 5d 11391 11557 retn ; c3 11392 delay_boot_: ; 0xf7 c87LB 0x6711558 delay_boot_: ; 0xf7d13 LB 0x67 11393 11559 push bp ; 55 11394 11560 mov bp, sp ; 89 e5 … … 11397 11563 mov dx, ax ; 89 c2 11398 11564 test ax, ax ; 85 c0 11399 je short 07 ce7h ; 74 5511565 je short 07d73h ; 74 55 11400 11566 mov AL, strict byte 034h ; b0 34 11401 11567 out strict byte 043h, AL ; e6 43 … … 11407 11573 push 00afbh ; 68 fb 0a 11408 11574 push strict byte 00002h ; 6a 02 11409 call 019 72h ; e8 cb9c11575 call 019dah ; e8 a7 9c 11410 11576 add sp, strict byte 00006h ; 83 c4 06 11411 11577 mov bx, dx ; 89 d3 11412 11578 test bx, bx ; 85 db 11413 jbe short 07 cc7h ; 76 1711579 jbe short 07d53h ; 76 17 11414 11580 push bx ; 53 11415 11581 push 00b19h ; 68 19 0b 11416 11582 push strict byte 00002h ; 6a 02 11417 call 019 72h ; e8 b99c11583 call 019dah ; e8 95 9c 11418 11584 add sp, strict byte 00006h ; 83 c4 06 11419 11585 xor dx, dx ; 31 d2 11420 11586 mov ax, strict word 00040h ; b8 40 00 11421 call 078 2fh ; e8 6b fb11587 call 078bbh ; e8 6b fb 11422 11588 dec bx ; 4b 11423 jmp short 07 cach ; eb e511589 jmp short 07d38h ; eb e5 11424 11590 push 00a49h ; 68 49 0a 11425 11591 push strict byte 00002h ; 6a 02 11426 call 019 72h ; e8 a39c11592 call 019dah ; e8 7f 9c 11427 11593 add sp, strict byte 00004h ; 83 c4 04 11428 11594 mov AL, strict byte 034h ; b0 34 … … 11435 11601 push DS ; 1e 11436 11602 mov ds, ax ; 8e d8 11437 call 0edbfh ; e8 db7011603 call 0edbfh ; e8 4f 70 11438 11604 pop DS ; 1f 11439 11605 popad ; 66 61 … … 11443 11609 pop bp ; 5d 11444 11610 retn ; c3 11445 scsi_cmd_data_in_: ; 0xf7 ceeLB 0xd511611 scsi_cmd_data_in_: ; 0xf7d7a LB 0xd5 11446 11612 push bp ; 55 11447 11613 mov bp, sp ; 89 e5 … … 11459 11625 ; sub ah, ah ; 2a e4 11460 11626 test AL, strict byte 001h ; a8 01 11461 jne short 07d 04h ; 75 f711627 jne short 07d90h ; 75 f7 11462 11628 cmp byte [bp+004h], 010h ; 80 7e 04 10 11463 jne short 07d 17h ; 75 0411629 jne short 07da3h ; 75 04 11464 11630 xor ax, ax ; 31 c0 11465 jmp short 07d 1bh ; eb 0411631 jmp short 07da7h ; eb 04 11466 11632 movzx ax, byte [bp+004h] ; 0f b6 46 04 11467 11633 mov di, ax ; 89 c7 … … 11471 11637 shr dx, 1 ; d1 ea 11472 11638 rcr ax, 1 ; d1 d8 11473 loop 07d 25h ; e2 fa11639 loop 07db1h ; e2 fa 11474 11640 mov cx, ax ; 89 c1 11475 11641 and cx, 000f0h ; 81 e1 f0 00 … … 11489 11655 shr dx, 1 ; d1 ea 11490 11656 rcr ax, 1 ; d1 d8 11491 loop 07d 4ah ; e2 fa11657 loop 07dd6h ; e2 fa 11492 11658 mov dx, si ; 89 f2 11493 11659 out DX, AL ; ee … … 11495 11661 movzx ax, byte [bp+004h] ; 0f b6 46 04 11496 11662 cmp cx, ax ; 39 c1 11497 jnc short 07d 6bh ; 73 0e11663 jnc short 07df7h ; 73 0e 11498 11664 les di, [bp-00ah] ; c4 7e f6 11499 11665 add di, cx ; 01 cf … … 11502 11668 out DX, AL ; ee 11503 11669 inc cx ; 41 11504 jmp short 07d 55h ; eb ea11670 jmp short 07de1h ; eb ea 11505 11671 mov dx, si ; 89 f2 11506 11672 in AL, DX ; ec … … 11508 11674 ; sub ah, ah ; 2a e4 11509 11675 test AL, strict byte 001h ; a8 01 11510 jne short 07d 6bh ; 75 f711676 jne short 07df7h ; 75 f7 11511 11677 test AL, strict byte 002h ; a8 02 11512 je short 07 d86h ; 74 0e11678 je short 07e12h ; 74 0e 11513 11679 lea dx, [si+003h] ; 8d 54 03 11514 11680 xor al, al ; 30 c0 … … 11518 11684 ; sub ah, ah ; 2a e4 11519 11685 mov di, strict word 00004h ; bf 04 00 11520 jmp short 07 db8h ; eb 3211686 jmp short 07e44h ; eb 32 11521 11687 lea dx, [si+001h] ; 8d 54 01 11522 11688 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 11523 jne short 07 d95h ; 75 0611689 jne short 07e21h ; 75 06 11524 11690 cmp bx, 08000h ; 81 fb 00 80 11525 jbe short 07 dafh ; 76 1a11691 jbe short 07e3bh ; 76 1a 11526 11692 mov cx, 08000h ; b9 00 80 11527 11693 les di, [bp+006h] ; c4 7e 06 … … 11532 11698 add ax, 00800h ; 05 00 08 11533 11699 mov word [bp+008h], ax ; 89 46 08 11534 jmp short 07 d86h ; eb d711700 jmp short 07e12h ; eb d7 11535 11701 mov cx, bx ; 89 d9 11536 11702 les di, [bp+006h] ; c4 7e 06 … … 11543 11709 pop bp ; 5d 11544 11710 retn 0000ah ; c2 0a 00 11545 scsi_cmd_data_out_: ; 0xf7 dc3LB 0xd511711 scsi_cmd_data_out_: ; 0xf7e4f LB 0xd5 11546 11712 push bp ; 55 11547 11713 mov bp, sp ; 89 e5 … … 11559 11725 ; sub ah, ah ; 2a e4 11560 11726 test AL, strict byte 001h ; a8 01 11561 jne short 07 dd9h ; 75 f711727 jne short 07e65h ; 75 f7 11562 11728 cmp byte [bp+004h], 010h ; 80 7e 04 10 11563 jne short 07 dech ; 75 0411729 jne short 07e78h ; 75 04 11564 11730 xor ax, ax ; 31 c0 11565 jmp short 07 df0h ; eb 0411731 jmp short 07e7ch ; eb 04 11566 11732 movzx ax, byte [bp+004h] ; 0f b6 46 04 11567 11733 mov si, ax ; 89 c6 … … 11571 11737 shr dx, 1 ; d1 ea 11572 11738 rcr ax, 1 ; d1 d8 11573 loop 07 dfah ; e2 fa11739 loop 07e86h ; e2 fa 11574 11740 mov cx, ax ; 89 c1 11575 11741 and cx, 000f0h ; 81 e1 f0 00 … … 11589 11755 shr dx, 1 ; d1 ea 11590 11756 rcr ax, 1 ; d1 d8 11591 loop 07e 1fh ; e2 fa11757 loop 07eabh ; e2 fa 11592 11758 mov dx, di ; 89 fa 11593 11759 out DX, AL ; ee … … 11595 11761 movzx ax, byte [bp+004h] ; 0f b6 46 04 11596 11762 cmp cx, ax ; 39 c1 11597 jnc short 07e 40h ; 73 0e11763 jnc short 07ecch ; 73 0e 11598 11764 les si, [bp-00ah] ; c4 76 f6 11599 11765 add si, cx ; 01 ce … … 11602 11768 out DX, AL ; ee 11603 11769 inc cx ; 41 11604 jmp short 07e 2ah ; eb ea11770 jmp short 07eb6h ; eb ea 11605 11771 lea dx, [di+001h] ; 8d 55 01 11606 11772 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 11607 jne short 07e 4fh ; 75 0611773 jne short 07edbh ; 75 06 11608 11774 cmp bx, 08000h ; 81 fb 00 80 11609 jbe short 07e 6ah ; 76 1b11775 jbe short 07ef6h ; 76 1b 11610 11776 mov cx, 08000h ; b9 00 80 11611 11777 les si, [bp+006h] ; c4 76 06 … … 11617 11783 add ax, 00800h ; 05 00 08 11618 11784 mov word [bp+008h], ax ; 89 46 08 11619 jmp short 07e 40h ; eb d611785 jmp short 07ecch ; eb d6 11620 11786 mov cx, bx ; 89 d9 11621 11787 les si, [bp+006h] ; c4 76 06 … … 11627 11793 ; sub ah, ah ; 2a e4 11628 11794 test AL, strict byte 001h ; a8 01 11629 jne short 07e 72h ; 75 f711795 jne short 07efeh ; 75 f7 11630 11796 test AL, strict byte 002h ; a8 02 11631 je short 07 e8dh ; 74 0e11797 je short 07f19h ; 74 0e 11632 11798 lea dx, [di+003h] ; 8d 55 03 11633 11799 xor al, al ; 30 c0 … … 11637 11803 ; sub ah, ah ; 2a e4 11638 11804 mov ax, strict word 00004h ; b8 04 00 11639 jmp short 07 e8fh ; eb 0211805 jmp short 07f1bh ; eb 02 11640 11806 xor ax, ax ; 31 c0 11641 11807 lea sp, [bp-004h] ; 8d 66 fc … … 11644 11810 pop bp ; 5d 11645 11811 retn 0000ah ; c2 0a 00 11646 @scsi_read_sectors: ; 0xf7 e98LB 0xdb11812 @scsi_read_sectors: ; 0xf7f24 LB 0xdb 11647 11813 push bp ; 55 11648 11814 mov bp, sp ; 89 e5 … … 11656 11822 mov byte [bp-006h], al ; 88 46 fa 11657 11823 cmp AL, strict byte 004h ; 3c 04 11658 jbe short 07 ec6h ; 76 1311824 jbe short 07f52h ; 76 13 11659 11825 movzx ax, byte [bp-006h] ; 0f b6 46 fa 11660 11826 push ax ; 50 … … 11662 11828 push 00b30h ; 68 30 0b 11663 11829 push strict byte 00007h ; 6a 07 11664 call 019 72h ; e8 af9a11830 call 019dah ; e8 8b 9a 11665 11831 add sp, strict byte 00008h ; 83 c4 08 11666 11832 mov es, [bp+006h] ; 8e 46 06 … … 11701 11867 sal word [bp-00ah], 1 ; d1 66 f6 11702 11868 rcl word [bp-008h], 1 ; d1 56 f8 11703 loop 07f 2fh ; e2 f811869 loop 07fbbh ; e2 f8 11704 11870 push dword [bp-00ah] ; 66 ff 76 f6 11705 11871 db 066h, 026h, 0ffh, 074h, 008h … … 11709 11875 mov cx, ss ; 8c d1 11710 11876 lea bx, [bp-01ah] ; 8d 5e e6 11711 call 07 ceeh ; e8 a2 fd11877 call 07d7ah ; e8 a2 fd 11712 11878 mov ah, al ; 88 c4 11713 11879 test al, al ; 84 c0 11714 jne short 07f 67h ; 75 1511880 jne short 07ff3h ; 75 15 11715 11881 mov es, [bp+006h] ; 8e 46 06 11716 11882 mov word [es:si+018h], di ; 26 89 7c 18 … … 11725 11891 pop bp ; 5d 11726 11892 retn 00004h ; c2 04 00 11727 @scsi_write_sectors: ; 0xf7f 73LB 0xdb11893 @scsi_write_sectors: ; 0xf7fff LB 0xdb 11728 11894 push bp ; 55 11729 11895 mov bp, sp ; 89 e5 … … 11737 11903 mov byte [bp-006h], al ; 88 46 fa 11738 11904 cmp AL, strict byte 004h ; 3c 04 11739 jbe short 0 7fa1h ; 76 1311905 jbe short 0802dh ; 76 13 11740 11906 movzx ax, byte [bp-006h] ; 0f b6 46 fa 11741 11907 push ax ; 50 … … 11743 11909 push 00b30h ; 68 30 0b 11744 11910 push strict byte 00007h ; 6a 07 11745 call 019 72h ; e8 d49911911 call 019dah ; e8 b0 99 11746 11912 add sp, strict byte 00008h ; 83 c4 08 11747 11913 mov es, [bp+006h] ; 8e 46 06 … … 11782 11948 sal word [bp-00ah], 1 ; d1 66 f6 11783 11949 rcl word [bp-008h], 1 ; d1 56 f8 11784 loop 080 0ah ; e2 f811950 loop 08096h ; e2 f8 11785 11951 push dword [bp-00ah] ; 66 ff 76 f6 11786 11952 db 066h, 026h, 0ffh, 074h, 008h … … 11790 11956 mov cx, ss ; 8c d1 11791 11957 lea bx, [bp-01ah] ; 8d 5e e6 11792 call 07 dc3h ; e8 9c fd11958 call 07e4fh ; e8 9c fd 11793 11959 mov ah, al ; 88 c4 11794 11960 test al, al ; 84 c0 11795 jne short 080 42h ; 75 1511961 jne short 080ceh ; 75 15 11796 11962 mov es, [bp+006h] ; 8e 46 06 11797 11963 mov word [es:si+018h], di ; 26 89 7c 18 … … 11806 11972 pop bp ; 5d 11807 11973 retn 00004h ; c2 04 00 11808 scsi_cmd_packet_: ; 0xf80 4eLB 0x16611974 scsi_cmd_packet_: ; 0xf80da LB 0x166 11809 11975 push bp ; 55 11810 11976 mov bp, sp ; 89 e5 … … 11818 11984 mov dx, strict word 0000eh ; ba 0e 00 11819 11985 mov ax, strict word 00040h ; b8 40 00 11820 call 016 6ch ; e8 02 9611986 call 016d4h ; e8 de 95 11821 11987 mov si, 00122h ; be 22 01 11822 11988 mov word [bp-00eh], ax ; 89 46 f2 11823 11989 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 11824 jne short 08 095h ; 75 1f11990 jne short 08121h ; 75 1f 11825 11991 mov bx, 00da0h ; bb a0 0d 11826 11992 mov cx, ds ; 8c d9 11827 11993 mov ax, strict word 00004h ; b8 04 00 11828 call 019 31h ; e8 b09811994 call 01999h ; e8 8c 98 11829 11995 push 00b62h ; 68 62 0b 11830 11996 push 00b72h ; 68 72 0b 11831 11997 push strict byte 00004h ; 6a 04 11832 call 019 72h ; e8 e69811998 call 019dah ; e8 c2 98 11833 11999 add sp, strict byte 00006h ; 83 c4 06 11834 12000 mov dx, strict word 00001h ; ba 01 00 11835 jmp near 08 1a9h ; e9 14 0112001 jmp near 08235h ; e9 14 01 11836 12002 sub di, strict byte 00008h ; 83 ef 08 11837 12003 sal di, 002h ; c1 e7 02 … … 11847 12013 ; sub ah, ah ; 2a e4 11848 12014 test AL, strict byte 001h ; a8 01 11849 jne short 08 0b1h ; 75 f712015 jne short 0813dh ; 75 f7 11850 12016 xor ax, ax ; 31 c0 11851 12017 mov dx, word [bp+006h] ; 8b 56 06 … … 11863 12029 shr dx, 1 ; d1 ea 11864 12030 rcr ax, 1 ; d1 d8 11865 loop 08 0dch ; e2 fa12031 loop 08168h ; e2 fa 11866 12032 and ax, 000f0h ; 25 f0 00 11867 12033 movzx cx, byte [bp-006h] ; 0f b6 4e fa … … 11881 12047 shr dx, 1 ; d1 ea 11882 12048 rcr ax, 1 ; d1 d8 11883 loop 081 03h ; e2 fa12049 loop 0818fh ; e2 fa 11884 12050 mov dx, bx ; 89 da 11885 12051 out DX, AL ; ee … … 11887 12053 movzx ax, byte [bp-006h] ; 0f b6 46 fa 11888 12054 cmp cx, ax ; 39 c1 11889 jnc short 081 24h ; 73 0e12055 jnc short 081b0h ; 73 0e 11890 12056 les di, [bp-00ch] ; c4 7e f4 11891 12057 add di, cx ; 01 cf … … 11894 12060 out DX, AL ; ee 11895 12061 inc cx ; 41 11896 jmp short 081 0eh ; eb ea12062 jmp short 0819ah ; eb ea 11897 12063 mov dx, bx ; 89 da 11898 12064 in AL, DX ; ec … … 11900 12066 ; sub ah, ah ; 2a e4 11901 12067 test AL, strict byte 001h ; a8 01 11902 jne short 081 24h ; 75 f712068 jne short 081b0h ; 75 f7 11903 12069 test AL, strict byte 002h ; a8 02 11904 je short 081 3fh ; 74 0e12070 je short 081cbh ; 74 0e 11905 12071 lea dx, [bx+003h] ; 8d 57 03 11906 12072 xor al, al ; 30 c0 … … 11910 12076 ; sub ah, ah ; 2a e4 11911 12077 mov dx, strict word 00003h ; ba 03 00 11912 jmp short 08 1a9h ; eb 6a12078 jmp short 08235h ; eb 6a 11913 12079 mov ax, word [bp+004h] ; 8b 46 04 11914 12080 test ax, ax ; 85 c0 11915 je short 081 4eh ; 74 0812081 je short 081dah ; 74 08 11916 12082 lea dx, [bx+001h] ; 8d 57 01 11917 12083 mov cx, ax ; 89 c1 11918 12084 in AL, DX ; ec 11919 loop 081 4bh ; e2 fd12085 loop 081d7h ; e2 fd 11920 12086 mov ax, word [bp+006h] ; 8b 46 06 11921 12087 mov es, [bp-00eh] ; 8e 46 f2 … … 11925 12091 lea ax, [bx+001h] ; 8d 47 01 11926 12092 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 11927 jne short 081 6fh ; 75 0712093 jne short 081fbh ; 75 07 11928 12094 cmp word [bp+006h], 08000h ; 81 7e 06 00 80 11929 jbe short 08 18ch ; 76 1d12095 jbe short 08218h ; 76 1d 11930 12096 mov dx, ax ; 89 c2 11931 12097 mov cx, 08000h ; b9 00 80 … … 11937 12103 add ax, 00800h ; 05 00 08 11938 12104 mov word [bp+00eh], ax ; 89 46 0e 11939 jmp short 081 5fh ; eb d312105 jmp short 081ebh ; eb d3 11940 12106 mov dx, ax ; 89 c2 11941 12107 mov cx, word [bp+006h] ; 8b 4e 06 … … 11944 12110 mov es, [bp-00eh] ; 8e 46 f2 11945 12111 cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00 11946 je short 08 1a7h ; 74 0712112 je short 08233h ; 74 07 11947 12113 mov cx, word [es:si+020h] ; 26 8b 4c 20 11948 12114 in AL, DX ; ec 11949 loop 08 1a4h ; e2 fd12115 loop 08230h ; e2 fd 11950 12116 xor dx, dx ; 31 d2 11951 12117 mov ax, dx ; 89 d0 … … 11955 12121 pop bp ; 5d 11956 12122 retn 0000ch ; c2 0c 00 11957 scsi_enumerate_attached_devices_: ; 0xf8 1b4LB 0x48212123 scsi_enumerate_attached_devices_: ; 0xf8240 LB 0x482 11958 12124 push bp ; 55 11959 12125 mov bp, sp ; 89 e5 … … 11967 12133 mov dx, strict word 0000eh ; ba 0e 00 11968 12134 mov ax, strict word 00040h ; b8 40 00 11969 call 016 6ch ; e8 a29412135 call 016d4h ; e8 7e 94 11970 12136 mov di, 00122h ; bf 22 01 11971 12137 mov word [bp-02eh], ax ; 89 46 d2 11972 12138 mov word [bp-01eh], strict word 00000h ; c7 46 e2 00 00 11973 jmp near 08 5b8h ; e9 e0 0312139 jmp near 08644h ; e9 e0 03 11974 12140 cmp AL, strict byte 004h ; 3c 04 11975 jnc near 086 2ch ; 0f 83 4e 0412141 jnc near 086b8h ; 0f 83 4e 04 11976 12142 mov cx, strict word 00010h ; b9 10 00 11977 12143 xor bx, bx ; 31 db 11978 12144 mov dx, ss ; 8c d2 11979 12145 lea ax, [bp-046h] ; 8d 46 ba 11980 call 09 e7ah ; e8 8f1c12146 call 09f20h ; e8 a9 1c 11981 12147 mov byte [bp-046h], 09eh ; c6 46 ba 9e 11982 12148 mov byte [bp-045h], 010h ; c6 46 bb 10 … … 11991 12157 lea bx, [bp-046h] ; 8d 5e ba 11992 12158 mov ax, word [bp-00248h] ; 8b 86 b8 fd 11993 call 07 ceeh ; e8 dc fa12159 call 07d7ah ; e8 dc fa 11994 12160 test al, al ; 84 c0 11995 je short 082 24h ; 74 0e12161 je short 082b0h ; 74 0e 11996 12162 push 00b92h ; 68 92 0b 11997 12163 push 00bcbh ; 68 cb 0b 11998 12164 push strict byte 00007h ; 6a 07 11999 call 019 72h ; e8 519712165 call 019dah ; e8 2d 97 12000 12166 add sp, strict byte 00006h ; 83 c4 06 12001 12167 mov ax, word [bp-00240h] ; 8b 86 c0 fd … … 12027 12193 sal ax, 1 ; d1 e0 12028 12194 rcl dx, 1 ; d1 d2 12029 loop 082 72h ; e2 fa12195 loop 082feh ; e2 fa 12030 12196 or bx, ax ; 09 c3 12031 12197 or dx, si ; 09 f2 … … 12034 12200 mov word [bp-024h], bx ; 89 5e dc 12035 12201 test dx, dx ; 85 d2 12036 jne short 08 290h ; 75 0612202 jne short 0831ch ; 75 06 12037 12203 cmp bx, 00200h ; 81 fb 00 02 12038 je short 08 2b0h ; 74 2012204 je short 0833ch ; 74 20 12039 12205 mov bx, 00da0h ; bb a0 0d 12040 12206 mov cx, ds ; 8c d9 12041 12207 mov ax, strict word 00004h ; b8 04 00 12042 call 019 31h ; e8 969612208 call 01999h ; e8 72 96 12043 12209 push dx ; 52 12044 12210 push word [bp-024h] ; ff 76 dc … … 12046 12212 push 00beah ; 68 ea 0b 12047 12213 push strict byte 00004h ; 6a 04 12048 call 019 72h ; e8 c89612214 call 019dah ; e8 a4 96 12049 12215 add sp, strict byte 0000ah ; 83 c4 0a 12050 jmp near 08 5afh ; e9 ff 0212216 jmp near 0863bh ; e9 ff 02 12051 12217 mov al, byte [bp-00ch] ; 8a 46 f4 12052 12218 cmp AL, strict byte 001h ; 3c 01 12053 jc short 08 2c3h ; 72 0c12054 jbe short 08 2cbh ; 76 1212219 jc short 0834fh ; 72 0c 12220 jbe short 08357h ; 76 12 12055 12221 cmp AL, strict byte 003h ; 3c 03 12056 je short 08 2d3h ; 74 1612222 je short 0835fh ; 74 16 12057 12223 cmp AL, strict byte 002h ; 3c 02 12058 je short 08 2cfh ; 74 0e12059 jmp short 083 1ch ; eb 5912224 je short 0835bh ; 74 0e 12225 jmp short 083a8h ; eb 59 12060 12226 test al, al ; 84 c0 12061 jne short 083 1ch ; 75 5512227 jne short 083a8h ; 75 55 12062 12228 mov BL, strict byte 090h ; b3 90 12063 jmp short 08 2d5h ; eb 0a12229 jmp short 08361h ; eb 0a 12064 12230 mov BL, strict byte 098h ; b3 98 12065 jmp short 08 2d5h ; eb 0612231 jmp short 08361h ; eb 06 12066 12232 mov BL, strict byte 0a0h ; b3 a0 12067 jmp short 08 2d5h ; eb 0212233 jmp short 08361h ; eb 02 12068 12234 mov BL, strict byte 0a8h ; b3 a8 12069 12235 mov al, bl ; 88 d8 … … 12071 12237 movzx cx, al ; 0f b6 c8 12072 12238 mov ax, cx ; 89 c8 12073 call 01 6ach ; e8 cb9312239 call 01714h ; e8 a7 93 12074 12240 test al, al ; 84 c0 12075 je short 083 1ch ; 74 3712241 je short 083a8h ; 74 37 12076 12242 mov al, bl ; 88 d8 12077 12243 db 0feh, 0c0h 12078 12244 ; inc al ; fe c0 12079 12245 xor ah, ah ; 30 e4 12080 call 01 6ach ; e8 be9312246 call 01714h ; e8 9a 93 12081 12247 movzx dx, al ; 0f b6 d0 12082 12248 sal dx, 008h ; c1 e2 08 12083 12249 movzx ax, bl ; 0f b6 c3 12084 call 01 6ach ; e8 b29312250 call 01714h ; e8 8e 93 12085 12251 xor ah, ah ; 30 e4 12086 12252 add ax, dx ; 01 d0 … … 12090 12256 add AL, strict byte 002h ; 04 02 12091 12257 xor ah, ah ; 30 e4 12092 call 01 6ach ; e8 a29312258 call 01714h ; e8 7e 93 12093 12259 xor ah, ah ; 30 e4 12094 12260 mov word [bp-034h], ax ; 89 46 cc 12095 12261 mov ax, cx ; 89 c8 12096 call 01 6ach ; e8 989312262 call 01714h ; e8 74 93 12097 12263 xor ah, ah ; 30 e4 12098 12264 mov word [bp-032h], ax ; 89 46 ce 12099 jmp near 084 05h ; e9 e9 0012265 jmp near 08491h ; e9 e9 00 12100 12266 mov ax, word [bp-010h] ; 8b 46 f0 12101 12267 mov bx, word [bp-030h] ; 8b 5e d0 … … 12103 12269 mov dx, word [bp-016h] ; 8b 56 ea 12104 12270 mov si, strict word 0000ch ; be 0c 00 12105 call 09 e6ah ; e8 3c1b12271 call 09f00h ; e8 46 1b 12106 12272 mov word [bp-018h], ax ; 89 46 e8 12107 12273 mov word [bp-014h], bx ; 89 5e ec … … 12110 12276 mov ax, word [bp-010h] ; 8b 46 f0 12111 12277 test ax, ax ; 85 c0 12112 jnbe short 083 57h ; 77 1612113 jne near 08 3cah ; 0f 85 85 0012278 jnbe short 083e3h ; 77 16 12279 jne near 08456h ; 0f 85 85 00 12114 12280 cmp word [bp-030h], strict byte 00000h ; 83 7e d0 00 12115 jnbe short 083 57h ; 77 0c12116 jne near 08 3cah ; 0f 85 7b 0012281 jnbe short 083e3h ; 77 0c 12282 jne near 08456h ; 0f 85 7b 00 12117 12283 cmp word [bp-012h], strict byte 00040h ; 83 7e ee 40 12118 jnbe short 083 57h ; 77 0212119 jne short 08 3cah ; 75 7312284 jnbe short 083e3h ; 77 02 12285 jne short 08456h ; 75 73 12120 12286 mov dword [bp-034h], strict dword 0003f00ffh ; 66 c7 46 cc ff 00 3f 00 12121 12287 mov bx, word [bp-030h] ; 8b 5e d0 … … 12123 12289 mov dx, word [bp-016h] ; 8b 56 ea 12124 12290 mov si, strict word 00006h ; be 06 00 12125 call 09 e6ah ; e8 fc 1a12291 call 09f00h ; e8 06 1b 12126 12292 mov si, word [bp-020h] ; 8b 76 e0 12127 12293 add si, dx ; 01 d6 … … 12141 12307 mov dx, si ; 89 f2 12142 12308 mov si, strict word 00008h ; be 08 00 12143 call 09 e6ah ; e8 cc1a12309 call 09f00h ; e8 d6 1a 12144 12310 mov word [bp-022h], bx ; 89 5e de 12145 12311 mov word [bp-02ch], cx ; 89 4e d4 … … 12150 12316 mov dx, word [bp-02ah] ; 8b 56 d6 12151 12317 mov si, strict word 00010h ; be 10 00 12152 call 09 e6ah ; e8 b11a12318 call 09f00h ; e8 bb 1a 12153 12319 mov si, word [bp-01ah] ; 8b 76 e6 12154 12320 add si, dx ; 01 d6 … … 12157 12323 mov ax, word [bp-022h] ; 8b 46 de 12158 12324 adc ax, bx ; 11 d8 12159 jmp short 084 05h ; eb 3b12325 jmp short 08491h ; eb 3b 12160 12326 test ax, ax ; 85 c0 12161 jnbe short 08 3e0h ; 77 1212162 jne short 08 3eah ; 75 1a12327 jnbe short 0846ch ; 77 12 12328 jne short 08476h ; 75 1a 12163 12329 cmp word [bp-030h], strict byte 00000h ; 83 7e d0 00 12164 jnbe short 08 3e0h ; 77 0a12165 jne short 08 3eah ; 75 1212330 jnbe short 0846ch ; 77 0a 12331 jne short 08476h ; 75 12 12166 12332 cmp word [bp-012h], strict byte 00020h ; 83 7e ee 20 12167 jnbe short 08 3e0h ; 77 0212168 jne short 08 3eah ; 75 0a12333 jnbe short 0846ch ; 77 02 12334 jne short 08476h ; 75 0a 12169 12335 mov dword [bp-034h], strict dword 000200080h ; 66 c7 46 cc 80 00 20 00 12170 jmp short 084 01h ; eb 1712336 jmp short 0848dh ; eb 17 12171 12337 mov dword [bp-034h], strict dword 000200040h ; 66 c7 46 cc 40 00 20 00 12172 12338 mov bx, word [bp-030h] ; 8b 5e d0 … … 12174 12340 mov dx, word [bp-016h] ; 8b 56 ea 12175 12341 mov si, strict word 0000bh ; be 0b 00 12176 call 09 e6ah ; e8 691a12342 call 09f00h ; e8 73 1a 12177 12343 mov si, dx ; 89 d6 12178 12344 mov dx, cx ; 89 ca … … 12207 12373 mov word [es:bx+034h], ax ; 26 89 47 34 12208 12374 test dx, dx ; 85 d2 12209 jne short 084 72h ; 75 0612375 jne short 084feh ; 75 06 12210 12376 cmp si, 00400h ; 81 fe 00 04 12211 jbe short 08 480h ; 76 0e12377 jbe short 0850ch ; 76 0e 12212 12378 mov word [es:bx+02ch], 00400h ; 26 c7 47 2c 00 04 12213 12379 mov word [es:bx+032h], 00400h ; 26 c7 47 32 00 04 12214 jmp short 08 488h ; eb 0812380 jmp short 08514h ; eb 08 12215 12381 mov word [es:bx+02ch], si ; 26 89 77 2c 12216 12382 mov word [es:bx+032h], si ; 26 89 77 32 … … 12218 12384 mov cx, ds ; 8c d9 12219 12385 mov ax, strict word 00004h ; b8 04 00 12220 call 019 31h ; e8 9e9412386 call 01999h ; e8 7a 94 12221 12387 push word [bp-010h] ; ff 76 f0 12222 12388 push word [bp-030h] ; ff 76 d0 … … 12231 12397 push 00c18h ; 68 18 0c 12232 12398 push strict byte 00004h ; 6a 04 12233 call 019 72h ; e8 bd9412399 call 019dah ; e8 99 94 12234 12400 add sp, strict byte 00018h ; 83 c4 18 12235 12401 movzx bx, byte [bp-00eh] ; 0f b6 5e f2 … … 12256 12422 mov dx, strict word 00075h ; ba 75 00 12257 12423 mov ax, strict word 00040h ; b8 40 00 12258 call 016 50h ; e8 4b9112424 call 016b8h ; e8 27 91 12259 12425 db 0feh, 0c0h 12260 12426 ; inc al ; fe c0 … … 12262 12428 mov dx, strict word 00075h ; ba 75 00 12263 12429 mov ax, strict word 00040h ; b8 40 00 12264 call 016 5eh ; e8 4b9112430 call 016c6h ; e8 27 91 12265 12431 inc byte [bp-00ch] ; fe 46 f4 12266 jmp near 08 5a4h ; e9 8b 0012432 jmp near 08630h ; e9 8b 00 12267 12433 mov bx, 00da0h ; bb a0 0d 12268 12434 mov cx, ds ; 8c d9 12269 12435 mov ax, strict word 00004h ; b8 04 00 12270 call 019 31h ; e8 0d 9412436 call 01999h ; e8 e9 93 12271 12437 push word [bp-01eh] ; ff 76 e2 12272 12438 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 … … 12274 12440 push 00c46h ; 68 46 0c 12275 12441 push strict byte 00004h ; 6a 04 12276 call 019 72h ; e8 3e9412442 call 019dah ; e8 1a 94 12277 12443 add sp, strict byte 00008h ; 83 c4 08 12278 12444 mov al, byte [bp-00ch] ; 8a 46 f4 … … 12315 12481 inc word [bp-01eh] ; ff 46 e2 12316 12482 cmp word [bp-01eh], strict byte 00010h ; 83 7e e2 10 12317 jnl short 086 2ch ; 7d 7412483 jnl short 086b8h ; 7d 74 12318 12484 mov byte [bp-046h], 012h ; c6 46 ba 12 12319 12485 xor al, al ; 30 c0 … … 12332 12498 lea bx, [bp-046h] ; 8d 5e ba 12333 12499 mov ax, word [bp-00248h] ; 8b 86 b8 fd 12334 call 07 ceeh ; e8 05 f712500 call 07d7ah ; e8 05 f7 12335 12501 test al, al ; 84 c0 12336 je short 08 5fbh ; 74 0e12502 je short 08687h ; 74 0e 12337 12503 push 00b92h ; 68 92 0b 12338 12504 push 00bb2h ; 68 b2 0b 12339 12505 push strict byte 00007h ; 6a 07 12340 call 019 72h ; e8 7a9312506 call 019dah ; e8 56 93 12341 12507 add sp, strict byte 00006h ; 83 c4 06 12342 12508 mov es, [bp-02eh] ; 8e 46 d2 … … 12344 12510 mov byte [bp-00ch], al ; 88 46 f4 12345 12511 test byte [bp-00246h], 0e0h ; f6 86 ba fd e0 12346 jne short 086 16h ; 75 0912512 jne short 086a2h ; 75 09 12347 12513 test byte [bp-00246h], 01fh ; f6 86 ba fd 1f 12348 je near 08 1d8h ; 0f 84 c2 fb12514 je near 08264h ; 0f 84 c2 fb 12349 12515 test byte [bp-00246h], 0e0h ; f6 86 ba fd e0 12350 jne short 08 5a4h ; 75 8712516 jne short 08630h ; 75 87 12351 12517 mov al, byte [bp-00246h] ; 8a 86 ba fd 12352 12518 and AL, strict byte 01fh ; 24 1f 12353 12519 cmp AL, strict byte 005h ; 3c 05 12354 je near 085 19h ; 0f 84 f0 fe12355 jmp near 08 5a4h ; e9 78 ff12520 je near 085a5h ; 0f 84 f0 fe 12521 jmp near 08630h ; e9 78 ff 12356 12522 lea sp, [bp-00ah] ; 8d 66 f6 12357 12523 pop di ; 5f … … 12362 12528 pop bp ; 5d 12363 12529 retn ; c3 12364 _scsi_init: ; 0xf86 36LB 0x6612530 _scsi_init: ; 0xf86c2 LB 0x66 12365 12531 push bp ; 55 12366 12532 mov bp, sp ; 89 e5 12367 12533 mov dx, strict word 0000eh ; ba 0e 00 12368 12534 mov ax, strict word 00040h ; b8 40 00 12369 call 016 6ch ; e8 2a9012535 call 016d4h ; e8 06 90 12370 12536 mov bx, 00122h ; bb 22 01 12371 12537 mov es, ax ; 8e c0 … … 12378 12544 ; sub ah, ah ; 2a e4 12379 12545 cmp AL, strict byte 055h ; 3c 55 12380 jne short 086 66h ; 75 0c12546 jne short 086f2h ; 75 0c 12381 12547 xor al, al ; 30 c0 12382 12548 mov dx, 00433h ; ba 33 04 12383 12549 out DX, AL ; ee 12384 12550 mov ax, 00430h ; b8 30 04 12385 call 08 1b4h ; e8 4e fb12551 call 08240h ; e8 4e fb 12386 12552 mov AL, strict byte 055h ; b0 55 12387 12553 mov dx, 00436h ; ba 36 04 … … 12391 12557 ; sub ah, ah ; 2a e4 12392 12558 cmp AL, strict byte 055h ; 3c 55 12393 jne short 08 67fh ; 75 0c12559 jne short 0870bh ; 75 0c 12394 12560 xor al, al ; 30 c0 12395 12561 mov dx, 00437h ; ba 37 04 12396 12562 out DX, AL ; ee 12397 12563 mov ax, 00434h ; b8 34 04 12398 call 08 1b4h ; e8 35 fb12564 call 08240h ; e8 35 fb 12399 12565 mov AL, strict byte 055h ; b0 55 12400 12566 mov dx, 0043ah ; ba 3a 04 … … 12404 12570 ; sub ah, ah ; 2a e4 12405 12571 cmp AL, strict byte 055h ; 3c 55 12406 jne short 08 698h ; 75 0c12572 jne short 08724h ; 75 0c 12407 12573 xor al, al ; 30 c0 12408 12574 mov dx, 0043bh ; ba 3b 04 12409 12575 out DX, AL ; ee 12410 12576 mov ax, 00438h ; b8 38 04 12411 call 08 1b4h ; e8 1c fb12577 call 08240h ; e8 1c fb 12412 12578 mov sp, bp ; 89 ec 12413 12579 pop bp ; 5d 12414 12580 retn ; c3 12415 ahci_ctrl_extract_bits_: ; 0xf8 69cLB 0x1b12581 ahci_ctrl_extract_bits_: ; 0xf8728 LB 0x1b 12416 12582 push si ; 56 12417 12583 push bp ; 55 … … 12421 12587 and dx, cx ; 21 ca 12422 12588 movzx cx, byte [bp+006h] ; 0f b6 4e 06 12423 jcxz 08 6b2h ; e3 0612589 jcxz 0873eh ; e3 06 12424 12590 shr dx, 1 ; d1 ea 12425 12591 rcr ax, 1 ; d1 d8 12426 loop 08 6ach ; e2 fa12592 loop 08738h ; e2 fa 12427 12593 pop bp ; 5d 12428 12594 pop si ; 5e 12429 12595 retn 00002h ; c2 02 00 12430 ahci_addr_to_phys_: ; 0xf8 6b7LB 0x1e12596 ahci_addr_to_phys_: ; 0xf8743 LB 0x1e 12431 12597 push bx ; 53 12432 12598 push cx ; 51 … … 12439 12605 sal ax, 1 ; d1 e0 12440 12606 rcl dx, 1 ; d1 d2 12441 loop 08 6c5h ; e2 fa12607 loop 08751h ; e2 fa 12442 12608 xor cx, cx ; 31 c9 12443 12609 add ax, bx ; 01 d8 … … 12447 12613 pop bx ; 5b 12448 12614 retn ; c3 12449 ahci_port_cmd_sync_: ; 0xf8 6d5LB 0x14b12615 ahci_port_cmd_sync_: ; 0xf8761 LB 0x14b 12450 12616 push bp ; 55 12451 12617 mov bp, sp ; 89 e5 … … 12462 12628 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 12463 12629 cmp ah, 0ffh ; 80 fc ff 12464 je near 088 18h ; 0f 84 20 0112630 je near 088a4h ; 0f 84 20 01 12465 12631 movzx dx, byte [es:si+00263h] ; 26 0f b6 94 63 02 12466 12632 xor di, di ; 31 ff … … 12474 12640 lea ax, [si+00080h] ; 8d 84 80 00 12475 12641 mov dx, cx ; 89 ca 12476 call 08 6b7h ; e8 96 ff12642 call 08743h ; e8 96 ff 12477 12643 mov es, cx ; 8e c1 12478 12644 mov word [es:si+008h], ax ; 26 89 44 08 … … 12537 12703 xchg dx, ax ; 92 12538 12704 test dh, 040h ; f6 c6 40 12539 jne short 08 7aeh ; 75 0412705 jne short 0883ah ; 75 04 12540 12706 test AL, strict byte 001h ; a8 01 12541 je short 08 7b2h ; 74 0412707 je short 0883eh ; 74 04 12542 12708 mov AL, strict byte 001h ; b0 01 12543 jmp short 08 7b4h ; eb 0212709 jmp short 08840h ; eb 02 12544 12710 xor al, al ; 30 c0 12545 12711 test al, al ; 84 c0 12546 je short 08 782h ; 74 ca12712 je short 0880eh ; 74 ca 12547 12713 movzx di, byte [bp-008h] ; 0f b6 7e f8 12548 12714 sal di, 007h ; c1 e7 07 … … 12598 12764 pop bp ; 5d 12599 12765 retn ; c3 12600 ahci_cmd_data_: ; 0xf88 20LB 0x26212766 ahci_cmd_data_: ; 0xf88ac LB 0x262 12601 12767 push bp ; 55 12602 12768 mov bp, sp ; 89 e5 … … 12623 12789 mov ax, 00080h ; b8 80 00 12624 12790 mov dx, word [bp-00ah] ; 8b 56 f6 12625 call 09 e7ah ; e8 1c1612791 call 09f20h ; e8 36 16 12626 12792 mov es, [bp-00ah] ; 8e 46 f6 12627 12793 mov word [es:di+00080h], 08027h ; 26 c7 85 80 00 27 80 … … 12641 12807 mov dx, word [es:si] ; 26 8b 14 12642 12808 mov si, strict word 00008h ; be 08 00 12643 call 09 e6ah ; e8 c81512809 call 09f00h ; e8 d2 15 12644 12810 mov es, [bp-00ah] ; 8e 46 f6 12645 12811 mov byte [es:di+00085h], dl ; 26 88 95 85 00 … … 12652 12818 mov dx, word [es:si] ; 26 8b 14 12653 12819 mov si, strict word 00010h ; be 10 00 12654 call 09 e6ah ; e8 a21512820 call 09f00h ; e8 ac 15 12655 12821 mov es, [bp-00ah] ; 8e 46 f6 12656 12822 mov byte [es:di+00086h], dl ; 26 88 95 86 00 … … 12664 12830 mov dx, word [es:si] ; 26 8b 14 12665 12831 mov si, strict word 00018h ; be 18 00 12666 call 09 e6ah ; e8 761512832 call 09f00h ; e8 80 15 12667 12833 mov es, [bp-00ah] ; 8e 46 f6 12668 12834 mov byte [es:di+00088h], dl ; 26 88 95 88 00 … … 12675 12841 mov dx, word [es:si] ; 26 8b 14 12676 12842 mov si, strict word 00020h ; be 20 00 12677 call 09 e6ah ; e8 501512843 call 09f00h ; e8 5a 15 12678 12844 mov es, [bp-00ah] ; 8e 46 f6 12679 12845 mov byte [es:di+00089h], dl ; 26 88 95 89 00 … … 12686 12852 mov dx, word [es:si] ; 26 8b 14 12687 12853 mov si, strict word 00028h ; be 28 00 12688 call 09 e6ah ; e8 2a1512854 call 09f00h ; e8 34 15 12689 12855 mov es, [bp-00ah] ; 8e 46 f6 12690 12856 mov byte [es:di+0008ah], dl ; 26 88 95 8a 00 … … 12700 12866 mov bx, word [bp-010h] ; 8b 5e f0 12701 12867 xor cx, cx ; 31 c9 12702 call 09e 29h ; e8 b41412868 call 09e80h ; e8 7f 14 12703 12869 push dx ; 52 12704 12870 push ax ; 50 … … 12710 12876 mov ax, 0026ah ; b8 6a 02 12711 12877 mov dx, word [bp-00ah] ; 8b 56 f6 12712 call 09d 43h ; e8 b2 1312878 call 09dcfh ; e8 b2 13 12713 12879 mov es, [bp-00ah] ; 8e 46 f6 12714 12880 mov ax, word [es:di+0027eh] ; 26 8b 85 7e 02 … … 12731 12897 mov ax, word [es:bx+020h] ; 26 8b 47 20 12732 12898 test ax, ax ; 85 c0 12733 je short 08a 1fh ; 74 3912899 je short 08aabh ; 74 39 12734 12900 dec ax ; 48 12735 12901 mov es, [bp-00ah] ; 8e 46 f6 … … 12747 12913 mov al, byte [bp-008h] ; 8a 46 f8 12748 12914 cmp AL, strict byte 035h ; 3c 35 12749 jne short 08a 2ch ; 75 0612915 jne short 08ab8h ; 75 06 12750 12916 mov byte [bp-008h], 040h ; c6 46 f8 40 12751 jmp short 08a 43h ; eb 1712917 jmp short 08acfh ; eb 17 12752 12918 cmp AL, strict byte 0a0h ; 3c a0 12753 jne short 08a 3fh ; 75 0f12919 jne short 08acbh ; 75 0f 12754 12920 or byte [bp-008h], 020h ; 80 4e f8 20 12755 12921 les bx, [bp-00eh] ; c4 5e f2 12756 12922 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 12757 jmp short 08a 43h ; eb 0412923 jmp short 08acfh ; eb 04 12758 12924 mov byte [bp-008h], 000h ; c6 46 f8 00 12759 12925 or byte [bp-008h], 005h ; 80 4e f8 05 … … 12761 12927 mov ax, word [bp-00eh] ; 8b 46 f2 12762 12928 mov dx, word [bp-00ch] ; 8b 56 f4 12763 call 08 6d5h ; e8 81 fc12929 call 08761h ; e8 81 fc 12764 12930 mov cx, word [bp-00ch] ; 8b 4e f4 12765 12931 mov bx, word [bp-00eh] ; 8b 5e f2 … … 12768 12934 add ax, 0026ah ; 05 6a 02 12769 12935 mov dx, cx ; 89 ca 12770 call 09 dbch ; e8 53 1312936 call 09e48h ; e8 53 13 12771 12937 mov es, cx ; 8e c1 12772 12938 mov al, byte [es:bx+003h] ; 26 8a 47 03 12773 12939 test al, al ; 84 c0 12774 je short 08 a78h ; 74 0512940 je short 08b04h ; 74 05 12775 12941 mov ax, strict word 00004h ; b8 04 00 12776 jmp short 08 a7ah ; eb 0212942 jmp short 08b06h ; eb 02 12777 12943 xor ah, ah ; 30 e4 12778 12944 lea sp, [bp-006h] ; 8d 66 fa … … 12782 12948 pop bp ; 5d 12783 12949 retn ; c3 12784 ahci_port_deinit_current_: ; 0xf8 a82LB 0x17f12950 ahci_port_deinit_current_: ; 0xf8b0e LB 0x17f 12785 12951 push bp ; 55 12786 12952 mov bp, sp ; 89 e5 … … 12797 12963 mov byte [bp-00ah], al ; 88 46 f6 12798 12964 cmp AL, strict byte 0ffh ; 3c ff 12799 je near 08 bf8h ; 0f 84 52 0112965 je near 08c84h ; 0f 84 52 01 12800 12966 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 12801 12967 sal ax, 007h ; c1 e0 07 … … 12840 13006 xchg dx, ax ; 92 12841 13007 test ax, 0c011h ; a9 11 c0 12842 je short 08b 06h ; 74 0413008 je short 08b92h ; 74 04 12843 13009 mov AL, strict byte 001h ; b0 01 12844 jmp short 08b 08h ; eb 0213010 jmp short 08b94h ; eb 02 12845 13011 xor al, al ; 30 c0 12846 13012 cmp AL, strict byte 001h ; 3c 01 12847 je short 08 adah ; 74 ce13013 je short 08b66h ; 74 ce 12848 13014 mov cx, strict word 00020h ; b9 20 00 12849 13015 xor bx, bx ; 31 db 12850 13016 mov ax, di ; 89 f8 12851 13017 mov dx, word [bp-00ch] ; 8b 56 f4 12852 call 09 e7ah ; e8 611313018 call 09f20h ; e8 7b 13 12853 13019 lea ax, [di+00080h] ; 8d 85 80 00 12854 13020 mov cx, strict word 00040h ; b9 40 00 12855 13021 xor bx, bx ; 31 db 12856 13022 mov dx, word [bp-00ch] ; 8b 56 f4 12857 call 09 e7ah ; e8 521313023 call 09f20h ; e8 6c 13 12858 13024 lea ax, [di+00200h] ; 8d 85 00 02 12859 13025 mov cx, strict word 00060h ; b9 60 00 12860 13026 xor bx, bx ; 31 db 12861 13027 mov dx, word [bp-00ch] ; 8b 56 f4 12862 call 09 e7ah ; e8 431313028 call 09f20h ; e8 5d 13 12863 13029 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 12864 13030 sal ax, 007h ; c1 e0 07 … … 12964 13130 pop bp ; 5d 12965 13131 retn ; c3 12966 ahci_port_init_: ; 0xf8c 01LB 0x24a13132 ahci_port_init_: ; 0xf8c8d LB 0x24a 12967 13133 push bp ; 55 12968 13134 mov bp, sp ; 89 e5 … … 12974 13140 mov word [bp-00ah], dx ; 89 56 f6 12975 13141 mov byte [bp-008h], bl ; 88 5e f8 12976 call 08 a82h ; e8 6d fe13142 call 08b0eh ; e8 6d fe 12977 13143 movzx ax, bl ; 0f b6 c3 12978 13144 sal ax, 007h ; c1 e0 07 … … 13021 13187 xchg dx, ax ; 92 13022 13188 test ax, 0c011h ; a9 11 c0 13023 je short 08 c84h ; 74 0413189 je short 08d10h ; 74 04 13024 13190 mov AL, strict byte 001h ; b0 01 13025 jmp short 08 c86h ; eb 0213191 jmp short 08d12h ; eb 02 13026 13192 xor al, al ; 30 c0 13027 13193 cmp AL, strict byte 001h ; 3c 01 13028 je short 08c 50h ; 74 c613194 je short 08cdch ; 74 c6 13029 13195 mov cx, strict word 00020h ; b9 20 00 13030 13196 xor bx, bx ; 31 db 13031 13197 mov ax, si ; 89 f0 13032 13198 mov dx, word [bp-00ah] ; 8b 56 f6 13033 call 09 e7ah ; e8 e31113199 call 09f20h ; e8 fd 11 13034 13200 lea ax, [si+00080h] ; 8d 84 80 00 13035 13201 mov cx, strict word 00040h ; b9 40 00 13036 13202 xor bx, bx ; 31 db 13037 13203 mov dx, word [bp-00ah] ; 8b 56 f6 13038 call 09 e7ah ; e8 d41113204 call 09f20h ; e8 ee 11 13039 13205 lea di, [si+00200h] ; 8d bc 00 02 13040 13206 mov cx, strict word 00060h ; b9 60 00 … … 13042 13208 mov ax, di ; 89 f8 13043 13209 mov dx, word [bp-00ah] ; 8b 56 f6 13044 call 09 e7ah ; e8 c31113210 call 09f20h ; e8 dd 11 13045 13211 movzx bx, byte [bp-008h] ; 0f b6 5e f8 13046 13212 sal bx, 007h ; c1 e3 07 … … 13059 13225 mov ax, di ; 89 f8 13060 13226 mov dx, word [bp-00ah] ; 8b 56 f6 13061 call 08 6b7h ; e8 d3 f913227 call 08743h ; e8 d3 f9 13062 13228 mov es, [bp-00ah] ; 8e 46 f6 13063 13229 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13104 13270 mov ax, si ; 89 f0 13105 13271 mov dx, word [bp-00ah] ; 8b 56 f6 13106 call 08 6b7h ; e8 67 f913272 call 08743h ; e8 67 f9 13107 13273 mov es, [bp-00ah] ; 8e 46 f6 13108 13274 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13209 13375 pop bp ; 5d 13210 13376 retn ; c3 13211 @ahci_read_sectors: ; 0xf8e 4bLB 0xa613377 @ahci_read_sectors: ; 0xf8ed7 LB 0xa6 13212 13378 push bp ; 55 13213 13379 mov bp, sp ; 89 e5 … … 13219 13385 sub di, strict byte 0000ch ; 83 ef 0c 13220 13386 cmp di, strict byte 00004h ; 83 ff 04 13221 jbe short 08e 70h ; 76 0f13387 jbe short 08efch ; 76 0f 13222 13388 push di ; 57 13223 13389 push 00c62h ; 68 62 0c 13224 13390 push 00c74h ; 68 74 0c 13225 13391 push strict byte 00007h ; 6a 07 13226 call 019 72h ; e8 05 8b13392 call 019dah ; e8 e1 8a 13227 13393 add sp, strict byte 00008h ; 83 c4 08 13228 13394 xor bx, bx ; 31 db … … 13238 13404 mov dx, word [es:di+00232h] ; 26 8b 95 32 02 13239 13405 xor ax, ax ; 31 c0 13240 call 08c 01h ; e8 65 fd13406 call 08c8dh ; e8 65 fd 13241 13407 mov bx, strict word 00025h ; bb 25 00 13242 13408 mov ax, si ; 89 f0 13243 13409 mov dx, word [bp+006h] ; 8b 56 06 13244 call 088 20h ; e8 79 f913410 call 088ach ; e8 79 f9 13245 13411 mov word [bp-006h], ax ; 89 46 fa 13246 13412 mov es, [bp+006h] ; 8e 46 06 … … 13271 13437 pop bp ; 5d 13272 13438 retn 00004h ; c2 04 00 13273 @ahci_write_sectors: ; 0xf8 ef1LB 0x8413439 @ahci_write_sectors: ; 0xf8f7d LB 0x84 13274 13440 push bp ; 55 13275 13441 mov bp, sp ; 89 e5 … … 13282 13448 sub dx, strict byte 0000ch ; 83 ea 0c 13283 13449 cmp dx, strict byte 00004h ; 83 fa 04 13284 jbe short 08f 1ah ; 76 0f13450 jbe short 08fa6h ; 76 0f 13285 13451 push dx ; 52 13286 13452 push 00c93h ; 68 93 0c 13287 13453 push 00c74h ; 68 74 0c 13288 13454 push strict byte 00007h ; 6a 07 13289 call 019 72h ; e8 5b8a13455 call 019dah ; e8 37 8a 13290 13456 add sp, strict byte 00008h ; 83 c4 08 13291 13457 xor bx, bx ; 31 db … … 13301 13467 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 13302 13468 xor ax, ax ; 31 c0 13303 call 08c 01h ; e8 bd fc13469 call 08c8dh ; e8 bd fc 13304 13470 mov bx, strict word 00035h ; bb 35 00 13305 13471 mov ax, si ; 89 f0 13306 13472 mov dx, cx ; 89 ca 13307 call 088 20h ; e8 d2 f813473 call 088ach ; e8 d2 f8 13308 13474 mov dx, ax ; 89 c2 13309 13475 mov es, cx ; 8e c1 … … 13320 13486 pop bp ; 5d 13321 13487 retn 00004h ; c2 04 00 13322 ahci_cmd_packet_: ; 0xf 8f75LB 0x18313488 ahci_cmd_packet_: ; 0xf9001 LB 0x183 13323 13489 push bp ; 55 13324 13490 mov bp, sp ; 89 e5 … … 13332 13498 mov dx, strict word 0000eh ; ba 0e 00 13333 13499 mov ax, strict word 00040h ; b8 40 00 13334 call 016 6ch ; e8 dc8613500 call 016d4h ; e8 b8 86 13335 13501 mov si, 00122h ; be 22 01 13336 13502 mov word [bp-008h], ax ; 89 46 f8 13337 13503 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 13338 jne short 0 8fbbh ; 75 1f13504 jne short 09047h ; 75 1f 13339 13505 mov bx, 00da0h ; bb a0 0d 13340 13506 mov cx, ds ; 8c d9 13341 13507 mov ax, strict word 00004h ; b8 04 00 13342 call 019 31h ; e8 8a8913508 call 01999h ; e8 66 89 13343 13509 push 00ca6h ; 68 a6 0c 13344 13510 push 00cb6h ; 68 b6 0c 13345 13511 push strict byte 00004h ; 6a 04 13346 call 019 72h ; e8 c08913512 call 019dah ; e8 9c 89 13347 13513 add sp, strict byte 00006h ; 83 c4 06 13348 13514 mov ax, strict word 00001h ; b8 01 00 13349 jmp near 09 0efh ; e9 34 0113515 jmp near 0917bh ; e9 34 01 13350 13516 test byte [bp+004h], 001h ; f6 46 04 01 13351 jne short 0 8fb5h ; 75 f413517 jne short 09041h ; 75 f4 13352 13518 mov ax, word [bp+006h] ; 8b 46 06 13353 13519 mov dx, word [bp+008h] ; 8b 56 08 … … 13355 13521 sal ax, 1 ; d1 e0 13356 13522 rcl dx, 1 ; d1 d2 13357 loop 0 8fcah ; e2 fa13523 loop 09056h ; e2 fa 13358 13524 mov es, [bp-008h] ; 8e 46 f8 13359 13525 mov word [es:si], ax ; 26 89 04 … … 13369 13535 mov dx, word [bp+008h] ; 8b 56 08 13370 13536 xor cx, cx ; 31 c9 13371 call 09 df0h ; e8 f0 0d13537 call 09ec0h ; e8 34 0e 13372 13538 mov word [es:si+00eh], ax ; 26 89 44 0e 13373 13539 xor di, di ; 31 ff … … 13386 13552 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 13387 13553 xor ax, ax ; 31 c0 13388 call 08c 01h ; e8 c5 fb13554 call 08c8dh ; e8 c5 fb 13389 13555 movzx ax, byte [bp-006h] ; 0f b6 46 fa 13390 13556 push ax ; 50 … … 13393 13559 mov ax, 000c0h ; b8 c0 00 13394 13560 mov dx, word [bp-00ah] ; 8b 56 f6 13395 call 09 e87h ; e8 370e13561 call 09f30h ; e8 54 0e 13396 13562 mov es, [bp-008h] ; 8e 46 f8 13397 13563 mov word [es:si+018h], di ; 26 89 7c 18 … … 13400 13566 mov ax, word [es:si+01eh] ; 26 8b 44 1e 13401 13567 test ax, ax ; 85 c0 13402 je short 09 08eh ; 74 2713568 je short 0911ah ; 74 27 13403 13569 dec ax ; 48 13404 13570 mov es, [bp-00ah] ; 8e 46 f6 … … 13413 13579 mov ax, si ; 89 f0 13414 13580 mov dx, word [bp-008h] ; 8b 56 f8 13415 call 088 20h ; e8 87 f713581 call 088ach ; e8 87 f7 13416 13582 les bx, [bp-00eh] ; c4 5e f2 13417 13583 mov ax, word [es:bx+004h] ; 26 8b 47 04 … … 13440 13606 mov ax, word [es:bx+006h] ; 26 8b 47 06 13441 13607 or ax, word [es:bx+004h] ; 26 0b 47 04 13442 jne short 09 0edh ; 75 0513608 jne short 09179h ; 75 05 13443 13609 mov ax, strict word 00004h ; b8 04 00 13444 jmp short 09 0efh ; eb 0213610 jmp short 0917bh ; eb 02 13445 13611 xor ax, ax ; 31 c0 13446 13612 lea sp, [bp-004h] ; 8d 66 fc … … 13449 13615 pop bp ; 5d 13450 13616 retn 0000ch ; c2 0c 00 13451 ahci_port_detect_device_: ; 0xf9 0f8LB 0x4b113617 ahci_port_detect_device_: ; 0xf9184 LB 0x4b1 13452 13618 push bp ; 55 13453 13619 mov bp, sp ; 89 e5 … … 13461 13627 movzx di, bl ; 0f b6 fb 13462 13628 mov bx, di ; 89 fb 13463 call 08c 01h ; e8 ef fa13629 call 08c8dh ; e8 ef fa 13464 13630 mov dx, strict word 0000eh ; ba 0e 00 13465 13631 mov ax, strict word 00040h ; b8 40 00 13466 call 016 6ch ; e8 518513632 call 016d4h ; e8 2d 85 13467 13633 mov word [bp-010h], 00122h ; c7 46 f0 22 01 13468 13634 mov word [bp-00eh], ax ; 89 46 f2 … … 13533 13699 mov bx, strict word 0000fh ; bb 0f 00 13534 13700 xor cx, cx ; 31 c9 13535 call 08 69ch ; e8 d7 f413701 call 08728h ; e8 d7 f4 13536 13702 test ax, ax ; 85 c0 13537 je near 09 5a1h ; 0f 84 d6 0313703 je near 0962dh ; 0f 84 d6 03 13538 13704 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 13539 13705 sal ax, 007h ; c1 e0 07 … … 13563 13729 mov bx, strict word 0000fh ; bb 0f 00 13564 13730 xor cx, cx ; 31 c9 13565 call 08 69ch ; e8 8b f413731 call 08728h ; e8 8b f4 13566 13732 cmp ax, strict word 00001h ; 3d 01 00 13567 je short 09 1cbh ; 74 b513733 je short 09257h ; 74 b5 13568 13734 push strict byte 00000h ; 6a 00 13569 13735 mov bx, strict word 0000fh ; bb 0f 00 … … 13571 13737 mov ax, di ; 89 f8 13572 13738 mov dx, word [bp-022h] ; 8b 56 de 13573 call 08 69ch ; e8 77 f413739 call 08728h ; e8 77 f4 13574 13740 cmp ax, strict word 00003h ; 3d 03 00 13575 jne near 09 5a1h ; 0f 85 75 0313741 jne near 0962dh ; 0f 85 75 03 13576 13742 mov ax, word [bp-018h] ; 8b 46 e8 13577 13743 add ax, 00130h ; 05 30 01 … … 13600 13766 mov byte [bp-008h], al ; 88 46 f8 13601 13767 cmp AL, strict byte 004h ; 3c 04 13602 jnc near 09 5a1h ; 0f 83 2f 0313768 jnc near 0962dh ; 0f 83 2f 03 13603 13769 mov ax, word [bp-018h] ; 8b 46 e8 13604 13770 add ax, 00118h ; 05 18 01 … … 13652 13818 add cl, 00ch ; 80 c1 0c 13653 13819 test dx, dx ; 85 d2 13654 jne near 09 4f7h ; 0f 85 0d 0213820 jne near 09583h ; 0f 85 0d 02 13655 13821 cmp di, 00101h ; 81 ff 01 01 13656 jne near 09 4f7h ; 0f 85 05 0213822 jne near 09583h ; 0f 85 05 02 13657 13823 les bx, [bp-010h] ; c4 5e f0 13658 13824 db 066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h … … 13668 13834 mov ax, word [bp-010h] ; 8b 46 f0 13669 13835 mov dx, es ; 8c c2 13670 call 088 20h ; e8 fa f413836 call 088ach ; e8 fa f4 13671 13837 mov byte [bp-00ch], cl ; 88 4e f4 13672 13838 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 … … 13685 13851 mov dword [bp-016h], strict dword 000000000h ; 66 c7 46 ea 00 00 00 00 13686 13852 cmp di, 00fffh ; 81 ff ff 0f 13687 jne short 09 37fh ; 75 1e13853 jne short 0940bh ; 75 1e 13688 13854 cmp dx, strict byte 0ffffh ; 83 fa ff 13689 jne short 09 37fh ; 75 1913855 jne short 0940bh ; 75 19 13690 13856 mov dx, word [bp-0015ch] ; 8b 96 a4 fe 13691 13857 mov word [bp-014h], dx ; 89 56 ec … … 13724 13890 mov al, byte [bp-008h] ; 8a 46 f8 13725 13891 cmp AL, strict byte 001h ; 3c 01 13726 jc short 09 3f8h ; 72 0c13727 jbe short 094 00h ; 76 1213892 jc short 09484h ; 72 0c 13893 jbe short 0948ch ; 76 12 13728 13894 cmp AL, strict byte 003h ; 3c 03 13729 je short 094 08h ; 74 1613895 je short 09494h ; 74 16 13730 13896 cmp AL, strict byte 002h ; 3c 02 13731 je short 094 04h ; 74 0e13732 jmp short 094 51h ; eb 5913897 je short 09490h ; 74 0e 13898 jmp short 094ddh ; eb 59 13733 13899 test al, al ; 84 c0 13734 jne short 094 51h ; 75 5513900 jne short 094ddh ; 75 55 13735 13901 mov DL, strict byte 040h ; b2 40 13736 jmp short 094 0ah ; eb 0a13902 jmp short 09496h ; eb 0a 13737 13903 mov DL, strict byte 048h ; b2 48 13738 jmp short 094 0ah ; eb 0613904 jmp short 09496h ; eb 06 13739 13905 mov DL, strict byte 050h ; b2 50 13740 jmp short 094 0ah ; eb 0213906 jmp short 09496h ; eb 02 13741 13907 mov DL, strict byte 058h ; b2 58 13742 13908 mov al, dl ; 88 d0 … … 13744 13910 movzx bx, al ; 0f b6 d8 13745 13911 mov ax, bx ; 89 d8 13746 call 01 6ach ; e8 968213912 call 01714h ; e8 72 82 13747 13913 test al, al ; 84 c0 13748 je short 094 51h ; 74 3713914 je short 094ddh ; 74 37 13749 13915 mov al, dl ; 88 d0 13750 13916 db 0feh, 0c0h 13751 13917 ; inc al ; fe c0 13752 13918 xor ah, ah ; 30 e4 13753 call 01 6ach ; e8 898213919 call 01714h ; e8 65 82 13754 13920 xor ah, ah ; 30 e4 13755 13921 mov si, ax ; 89 c6 13756 13922 sal si, 008h ; c1 e6 08 13757 13923 movzx ax, dl ; 0f b6 c2 13758 call 01 6ach ; e8 7c8213924 call 01714h ; e8 58 82 13759 13925 xor ah, ah ; 30 e4 13760 13926 add ax, si ; 01 f0 … … 13763 13929 add AL, strict byte 002h ; 04 02 13764 13930 xor ah, ah ; 30 e4 13765 call 01 6ach ; e8 6c8213931 call 01714h ; e8 48 82 13766 13932 xor ah, ah ; 30 e4 13767 13933 mov word [bp-02ah], ax ; 89 46 d6 13768 13934 mov ax, bx ; 89 d8 13769 call 01 6ach ; e8 628213935 call 01714h ; e8 3e 82 13770 13936 xor ah, ah ; 30 e4 13771 13937 mov word [bp-026h], ax ; 89 46 da 13772 jmp short 094 61h ; eb 1013938 jmp short 094edh ; eb 10 13773 13939 push dword [bp-016h] ; 66 ff 76 ea 13774 13940 push di ; 57 … … 13776 13942 mov dx, ss ; 8c d2 13777 13943 lea ax, [bp-02ah] ; 8d 46 d6 13778 call 059 3eh ; e8 ddc413944 call 059a6h ; e8 b9 c4 13779 13945 mov bx, 00da0h ; bb a0 0d 13780 13946 mov cx, ds ; 8c d9 13781 13947 mov ax, strict word 00004h ; b8 04 00 13782 call 019 31h ; e8 c58413948 call 01999h ; e8 a1 84 13783 13949 push dword [bp-016h] ; 66 ff 76 ea 13784 13950 push di ; 57 … … 13799 13965 push 00cd6h ; 68 d6 0c 13800 13966 push strict byte 00004h ; 6a 04 13801 call 019 72h ; e8 d78413967 call 019dah ; e8 b3 84 13802 13968 add sp, strict byte 0001ch ; 83 c4 1c 13803 13969 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 … … 13828 13994 mov dx, strict word 00075h ; ba 75 00 13829 13995 mov ax, strict word 00040h ; b8 40 00 13830 call 016 50h ; e8 6a8113996 call 016b8h ; e8 46 81 13831 13997 db 0feh, 0c0h 13832 13998 ; inc al ; fe c0 … … 13834 14000 mov dx, strict word 00075h ; ba 75 00 13835 14001 mov ax, strict word 00040h ; b8 40 00 13836 call 016 5eh ; e8 6a8113837 jmp near 09 593h ; e9 9c 0014002 call 016c6h ; e8 46 81 14003 jmp near 0961fh ; e9 9c 00 13838 14004 cmp dx, 0eb14h ; 81 fa 14 eb 13839 jne near 09 593h ; 0f 85 94 0014005 jne near 0961fh ; 0f 85 94 00 13840 14006 cmp di, 00101h ; 81 ff 01 01 13841 jne near 09 593h ; 0f 85 8c 0014007 jne near 0961fh ; 0f 85 8c 00 13842 14008 les bx, [bp-010h] ; c4 5e f0 13843 14009 db 066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h … … 13853 14019 mov ax, word [bp-010h] ; 8b 46 f0 13854 14020 mov dx, es ; 8c c2 13855 call 088 20h ; e8 e5 f214021 call 088ach ; e8 e5 f2 13856 14022 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 13857 14023 db 00fh, 095h, 0c0h … … 13890 14056 pop bp ; 5d 13891 14057 retn ; c3 13892 ahci_mem_alloc_: ; 0xf9 5a9LB 0x4314058 ahci_mem_alloc_: ; 0xf9635 LB 0x43 13893 14059 push bp ; 55 13894 14060 mov bp, sp ; 89 e5 … … 13900 14066 mov dx, 00413h ; ba 13 04 13901 14067 xor ax, ax ; 31 c0 13902 call 016 6ch ; e8 b38014068 call 016d4h ; e8 8f 80 13903 14069 test ax, ax ; 85 c0 13904 je short 09 5e2h ; 74 2514070 je short 0966eh ; 74 25 13905 14071 dec ax ; 48 13906 14072 mov bx, ax ; 89 c3 … … 13909 14075 sal ax, 1 ; d1 e0 13910 14076 rcl dx, 1 ; d1 d2 13911 loop 09 5c5h ; e2 fa14077 loop 09651h ; e2 fa 13912 14078 mov si, ax ; 89 c6 13913 14079 mov di, dx ; 89 d7 … … 13915 14081 shr di, 1 ; d1 ef 13916 14082 rcr si, 1 ; d1 de 13917 loop 09 5d2h ; e2 fa14083 loop 0965eh ; e2 fa 13918 14084 mov dx, 00413h ; ba 13 04 13919 14085 xor ax, ax ; 31 c0 13920 call 016 7ah ; e8 9a8014086 call 016e2h ; e8 76 80 13921 14087 mov ax, si ; 89 f0 13922 14088 lea sp, [bp-00ah] ; 8d 66 f6 … … 13928 14094 pop bp ; 5d 13929 14095 retn ; c3 13930 ahci_hba_init_: ; 0xf9 5ecLB 0x16614096 ahci_hba_init_: ; 0xf9678 LB 0x166 13931 14097 push bp ; 55 13932 14098 mov bp, sp ; 89 e5 … … 13940 14106 mov dx, strict word 0000eh ; ba 0e 00 13941 14107 mov ax, strict word 00040h ; b8 40 00 13942 call 016 6ch ; e8 6a8014108 call 016d4h ; e8 46 80 13943 14109 mov bx, 00122h ; bb 22 01 13944 14110 mov di, ax ; 89 c7 … … 13957 14123 shr eax, 010h ; 66 c1 e8 10 13958 14124 xchg dx, ax ; 92 13959 call 09 5a9h ; e8 83 ff14125 call 09635h ; e8 83 ff 13960 14126 mov word [bp-010h], ax ; 89 46 f0 13961 14127 test ax, ax ; 85 c0 13962 je near 097 31h ; 0f 84 02 0114128 je near 097bdh ; 0f 84 02 01 13963 14129 mov ax, word [bp-010h] ; 8b 46 f0 13964 14130 mov es, di ; 8e c7 … … 14010 14176 xchg dx, ax ; 92 14011 14177 test AL, strict byte 001h ; a8 01 14012 jne short 09 685h ; 75 de14178 jne short 09711h ; 75 de 14013 14179 xor ax, ax ; 31 c0 14014 14180 xor cx, cx ; 31 c9 … … 14028 14194 mov bx, strict word 0001fh ; bb 1f 00 14029 14195 xor cx, cx ; 31 c9 14030 call 08 69ch ; e8 d1 ef14196 call 08728h ; e8 d1 ef 14031 14197 db 0feh, 0c0h 14032 14198 ; inc al ; fe c0 14033 14199 mov byte [bp-00eh], al ; 88 46 f2 14034 14200 mov byte [bp-00ch], 000h ; c6 46 f4 00 14035 jmp short 09 6f6h ; eb 2014201 jmp short 09782h ; eb 20 14036 14202 xor al, al ; 30 c0 14037 14203 test al, al ; 84 c0 14038 je short 09 6edh ; 74 1114204 je short 09779h ; 74 11 14039 14205 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 14040 14206 xor ax, ax ; 31 c0 14041 14207 mov dx, word [bp-010h] ; 8b 56 f0 14042 call 09 0f8h ; e8 10 fa14208 call 09184h ; e8 10 fa 14043 14209 dec byte [bp-00eh] ; fe 4e f2 14044 je short 097 2fh ; 74 4214210 je short 097bbh ; 74 42 14045 14211 inc byte [bp-00ch] ; fe 46 f4 14046 14212 cmp byte [bp-00ch], 020h ; 80 7e f4 20 14047 jnc short 097 2fh ; 73 3914213 jnc short 097bbh ; 73 39 14048 14214 movzx cx, byte [bp-00ch] ; 0f b6 4e f4 14049 14215 mov bx, strict word 00001h ; bb 01 00 14050 14216 xor di, di ; 31 ff 14051 jcxz 097 07h ; e3 0614217 jcxz 09793h ; e3 06 14052 14218 sal bx, 1 ; d1 e3 14053 14219 rcl di, 1 ; d1 d7 14054 loop 097 01h ; e2 fa14220 loop 0978dh ; e2 fa 14055 14221 mov ax, strict word 0000ch ; b8 0c 00 14056 14222 xor cx, cx ; 31 c9 … … 14068 14234 xchg dx, ax ; 92 14069 14235 test dx, di ; 85 fa 14070 jne short 097 2bh ; 75 0414236 jne short 097b7h ; 75 04 14071 14237 test ax, bx ; 85 d8 14072 je short 09 6d6h ; 74 ab14238 je short 09762h ; 74 ab 14073 14239 mov AL, strict byte 001h ; b0 01 14074 jmp short 09 6d8h ; eb a914240 jmp short 09764h ; eb a9 14075 14241 xor ax, ax ; 31 c0 14076 14242 lea sp, [bp-00ah] ; 8d 66 f6 … … 14082 14248 pop bp ; 5d 14083 14249 retn ; c3 14084 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 21h, 098h, 0ffh, 097h, 005h, 098h, 00bh, 098h, 011h14085 db 098h, 0 17h, 098h, 01dh, 098h, 021h, 098h14086 _ahci_init: ; 0xf97 52LB 0xfe14250 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0adh, 098h, 08bh, 098h, 091h, 098h, 097h, 098h, 09dh 14251 db 098h, 0a3h, 098h, 0a9h, 098h, 0adh, 098h 14252 _ahci_init: ; 0xf97de LB 0xfe 14087 14253 push bp ; 55 14088 14254 mov bp, sp ; 89 e5 … … 14092 14258 mov ax, 00601h ; b8 01 06 14093 14259 mov dx, strict word 00001h ; ba 01 00 14094 call 09c 70h ; e8 0d 0514260 call 09cfch ; e8 0d 05 14095 14261 mov dx, ax ; 89 c2 14096 14262 cmp ax, strict word 0ffffh ; 3d ff ff 14097 je near 098 49h ; 0f 84 dd 0014263 je near 098d5h ; 0f 84 dd 00 14098 14264 xor al, al ; 30 c0 14099 14265 shr ax, 008h ; c1 e8 08 … … 14103 14269 xor ah, ah ; 30 e4 14104 14270 mov bx, strict word 00034h ; bb 34 00 14105 call 09 c9bh ; e8 1a 0514271 call 09d27h ; e8 1a 05 14106 14272 mov cl, al ; 88 c1 14107 14273 test cl, cl ; 84 c9 14108 je short 09 7aah ; 74 2314274 je short 09836h ; 74 23 14109 14275 movzx bx, cl ; 0f b6 d9 14110 14276 movzx di, byte [bp-008h] ; 0f b6 7e f8 … … 14112 14278 mov dx, di ; 89 fa 14113 14279 mov ax, si ; 89 f0 14114 call 09 c9bh ; e8 02 0514280 call 09d27h ; e8 02 05 14115 14281 cmp AL, strict byte 012h ; 3c 12 14116 je short 09 7aah ; 74 0d14282 je short 09836h ; 74 0d 14117 14283 mov al, cl ; 88 c8 14118 14284 db 0feh, 0c0h … … 14121 14287 mov dx, di ; 89 fa 14122 14288 mov ax, si ; 89 f0 14123 jmp short 09 77eh ; eb d414289 jmp short 0980ah ; eb d4 14124 14290 test cl, cl ; 84 c9 14125 je near 098 49h ; 0f 84 99 0014291 je near 098d5h ; 0f 84 99 00 14126 14292 add cl, 002h ; 80 c1 02 14127 14293 movzx bx, cl ; 0f b6 d9 … … 14130 14296 mov dx, di ; 89 fa 14131 14297 mov ax, si ; 89 f0 14132 call 09 c9bh ; e8 d6 0414298 call 09d27h ; e8 d6 04 14133 14299 cmp AL, strict byte 010h ; 3c 10 14134 jne near 098 49h ; 0f 85 7e 0014300 jne near 098d5h ; 0f 85 7e 00 14135 14301 mov byte [bp-006h], 000h ; c6 46 fa 00 14136 14302 mov al, cl ; 88 c8 … … 14139 14305 mov dx, di ; 89 fa 14140 14306 mov ax, si ; 89 f0 14141 call 09 cbfh ; e8 e2 0414307 call 09d4bh ; e8 e2 04 14142 14308 mov dx, ax ; 89 c2 14143 14309 and ax, strict word 0000fh ; 25 0f 00 14144 14310 sub ax, strict word 00004h ; 2d 04 00 14145 14311 cmp ax, strict word 0000bh ; 3d 0b 00 14146 jnbe short 098 21h ; 77 3714312 jnbe short 098adh ; 77 37 14147 14313 push CS ; 0e 14148 14314 pop ES ; 07 14149 14315 mov cx, strict word 00008h ; b9 08 00 14150 mov di, 097 3bh ; bf 3b9714316 mov di, 097c7h ; bf c7 97 14151 14317 repne scasb ; f2 ae 14152 14318 sal cx, 1 ; d1 e1 14153 14319 mov di, cx ; 89 cf 14154 mov ax, word [cs:di-068 beh] ; 2e 8b 85 429714320 mov ax, word [cs:di-06832h] ; 2e 8b 85 ce 97 14155 14321 jmp ax ; ff e0 14156 14322 mov byte [bp-006h], 010h ; c6 46 fa 10 14157 jmp short 098 21h ; eb 1c14323 jmp short 098adh ; eb 1c 14158 14324 mov byte [bp-006h], 014h ; c6 46 fa 14 14159 jmp short 098 21h ; eb 1614325 jmp short 098adh ; eb 16 14160 14326 mov byte [bp-006h], 018h ; c6 46 fa 18 14161 jmp short 098 21h ; eb 1014327 jmp short 098adh ; eb 10 14162 14328 mov byte [bp-006h], 01ch ; c6 46 fa 1c 14163 jmp short 098 21h ; eb 0a14329 jmp short 098adh ; eb 0a 14164 14330 mov byte [bp-006h], 020h ; c6 46 fa 20 14165 jmp short 098 21h ; eb 0414331 jmp short 098adh ; eb 04 14166 14332 mov byte [bp-006h], 024h ; c6 46 fa 24 14167 14333 mov si, dx ; 89 d6 … … 14170 14336 mov al, byte [bp-006h] ; 8a 46 fa 14171 14337 test al, al ; 84 c0 14172 je short 098 49h ; 74 1914338 je short 098d5h ; 74 19 14173 14339 movzx bx, al ; 0f b6 d8 14174 14340 movzx dx, byte [bp-008h] ; 0f b6 56 f8 14175 14341 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 14176 call 09 ce1h ; e8 a3 0414342 call 09d6dh ; e8 a3 04 14177 14343 test AL, strict byte 001h ; a8 01 14178 je short 098 49h ; 74 0714344 je short 098d5h ; 74 07 14179 14345 and AL, strict byte 0f0h ; 24 f0 14180 14346 add ax, si ; 01 f0 14181 call 09 5ech ; e8 a3 fd14347 call 09678h ; e8 a3 fd 14182 14348 lea sp, [bp-004h] ; 8d 66 fc 14183 14349 pop di ; 5f … … 14185 14351 pop bp ; 5d 14186 14352 retn ; c3 14187 apm_out_str_: ; 0xf98 50LB 0x3914353 apm_out_str_: ; 0xf98dc LB 0x39 14188 14354 push bp ; 55 14189 14355 mov bp, sp ; 89 e5 … … 14191 14357 mov bx, ax ; 89 c3 14192 14358 cmp byte [bx], 000h ; 80 3f 00 14193 je short 098 65h ; 74 0a14359 je short 098f1h ; 74 0a 14194 14360 mov al, byte [bx] ; 8a 07 14195 14361 out DX, AL ; ee … … 14198 14364 db 00ah, 0c0h 14199 14365 ; or al, al ; 0a c0 14200 jne short 098 5dh ; 75 f814366 jne short 098e9h ; 75 f8 14201 14367 lea sp, [bp-002h] ; 8d 66 fe 14202 14368 pop bx ; 5b 14203 14369 pop bp ; 5d 14204 14370 retn ; c3 14205 lodsb ; ac 14206 cbw ; 98 14207 js short 09808h ; 78 99 14208 mov si, 0d998h ; be 98 d9 14209 cbw ; 98 14210 js short 0980eh ; 78 99 14211 add AL, strict byte 099h ; 04 99 14212 js short 09812h ; 78 99 14213 or word [bx+di-066b3h], bx ; 09 99 4d 99 14214 dec bp ; 4d 14371 cmp byte [bx+di-065fch], bl ; 38 99 04 9a 14372 dec dx ; 4a 14215 14373 cwd ; 99 14216 dec bp ; 4d 14374 db 065h, 099h 14375 ; gs cwd ; 65 99 14376 add AL, strict byte 09ah ; 04 9a 14377 nop ; 90 14217 14378 cwd ; 99 14218 dec ax ; 48 14379 add AL, strict byte 09ah ; 04 9a 14380 xchg bp, ax ; 95 14219 14381 cwd ; 99 14220 dec bp ; 4d 14221 cwd ; 99 14222 dec bp ; 4d 14223 cwd ; 99 14224 inc cx ; 41 14225 cwd ; 99 14226 _apm_function: ; 0xf9889 LB 0xf5 14382 fstp dword [bx+di-06627h] ; d9 99 d9 99 14383 fstp dword [bx+di-0662ch] ; d9 99 d4 99 14384 fstp dword [bx+di-06627h] ; d9 99 d9 99 14385 int 099h ; cd 99 14386 _apm_function: ; 0xf9915 LB 0xf5 14227 14387 push bp ; 55 14228 14388 mov bp, sp ; 89 e5 … … 14232 14392 xor ah, ah ; 30 e4 14233 14393 cmp ax, strict word 0000eh ; 3d 0e 00 14234 jnbe near 099 4dh ; 0f 87 b0 0014394 jnbe near 099d9h ; 0f 87 b0 00 14235 14395 mov bx, ax ; 89 c3 14236 14396 add bx, ax ; 01 c3 14237 14397 mov dx, word [bp+018h] ; 8b 56 18 14238 14398 or dl, 001h ; 80 ca 01 14239 jmp word [cs:bx-067 95h] ; 2e ff a7 6b9814399 jmp word [cs:bx-06709h] ; 2e ff a7 f7 98 14240 14400 mov word [bp+012h], 00102h ; c7 46 12 02 01 14241 14401 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 14242 14402 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 14243 jmp near 09 978h ; e9 ba 0014403 jmp near 09a04h ; e9 ba 00 14244 14404 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14245 mov word [bp+00ch], 09 ef4h ; c7 46 0c f4 9e14405 mov word [bp+00ch], 09fa4h ; c7 46 0c a4 9f 14246 14406 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 14247 14407 mov ax, strict word 0fff0h ; b8 f0 ff 14248 14408 mov word [bp+006h], ax ; 89 46 06 14249 14409 mov word [bp+004h], ax ; 89 46 04 14250 jmp near 09 978h ; e9 9f 0014410 jmp near 09a04h ; e9 9f 00 14251 14411 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14252 14412 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 14261 14421 mov si, ax ; 89 c6 14262 14422 sal esi, 010h ; 66 c1 e6 10 14263 jmp near 09 978h ; e9 74 0014423 jmp near 09a04h ; e9 74 00 14264 14424 sti ; fb 14265 14425 hlt ; f4 14266 jmp near 09 978h ; e9 6f 0014426 jmp near 09a04h ; e9 6f 00 14267 14427 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 14268 je short 099 2eh ; 74 1f14428 je short 099bah ; 74 1f 14269 14429 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 14270 je short 099 26h ; 74 1114430 je short 099b2h ; 74 11 14271 14431 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 14272 jne short 099 36h ; 75 1b14432 jne short 099c2h ; 75 1b 14273 14433 mov dx, 08900h ; ba 00 89 14274 14434 mov ax, 00d10h ; b8 10 0d 14275 call 098 50h ; e8 2c ff14276 jmp short 09 978h ; eb 5214435 call 098dch ; e8 2c ff 14436 jmp short 09a04h ; eb 52 14277 14437 mov dx, 08900h ; ba 00 89 14278 14438 mov ax, 00d18h ; b8 18 0d 14279 jmp short 099 21h ; eb f314439 jmp short 099adh ; eb f3 14280 14440 mov dx, 08900h ; ba 00 89 14281 14441 mov ax, 00d20h ; b8 20 0d 14282 jmp short 099 21h ; eb eb14442 jmp short 099adh ; eb eb 14283 14443 or ah, 00ah ; 80 cc 0a 14284 14444 mov word [bp+012h], ax ; 89 46 12 14285 14445 mov word [bp+018h], dx ; 89 56 18 14286 jmp short 09 978h ; eb 3714446 jmp short 09a04h ; eb 37 14287 14447 mov word [bp+012h], 00102h ; c7 46 12 02 01 14288 jmp short 09 978h ; eb 3014448 jmp short 09a04h ; eb 30 14289 14449 or ah, 080h ; 80 cc 80 14290 jmp short 099 39h ; eb ec14450 jmp short 099c5h ; eb ec 14291 14451 mov bx, 00da0h ; bb a0 0d 14292 14452 mov cx, ds ; 8c d9 14293 14453 mov ax, strict word 00004h ; b8 04 00 14294 call 019 31h ; e8 d97f14454 call 01999h ; e8 b5 7f 14295 14455 push word [bp+00ch] ; ff 76 0c 14296 14456 push word [bp+012h] ; ff 76 12 14297 14457 push 00d29h ; 68 29 0d 14298 14458 push strict byte 00004h ; 6a 04 14299 call 019 72h ; e8 0c 8014459 call 019dah ; e8 e8 7f 14300 14460 add sp, strict byte 00008h ; 83 c4 08 14301 14461 mov ax, word [bp+012h] ; 8b 46 12 … … 14308 14468 pop bp ; 5d 14309 14469 retn ; c3 14310 pci16_select_reg_: ; 0xf9 97eLB 0x2414470 pci16_select_reg_: ; 0xf9a0a LB 0x24 14311 14471 push bp ; 55 14312 14472 mov bp, sp ; 89 e5 … … 14325 14485 pop bp ; 5d 14326 14486 retn ; c3 14327 pci16_find_device_: ; 0xf9 9a2LB 0xf714487 pci16_find_device_: ; 0xf9a2e LB 0xf7 14328 14488 push bp ; 55 14329 14489 mov bp, sp ; 89 e5 … … 14339 14499 mov byte [bp-008h], 000h ; c6 46 f8 00 14340 14500 test bl, 007h ; f6 c3 07 14341 jne short 09 9eah ; 75 2d14501 jne short 09a76h ; 75 2d 14342 14502 mov dx, strict word 0000eh ; ba 0e 00 14343 14503 mov ax, bx ; 89 d8 14344 call 09 97eh ; e8 b9 ff14504 call 09a0ah ; e8 b9 ff 14345 14505 mov dx, 00cfeh ; ba fe 0c 14346 14506 in AL, DX ; ec … … 14349 14509 mov byte [bp-006h], al ; 88 46 fa 14350 14510 cmp AL, strict byte 0ffh ; 3c ff 14351 jne short 09 9d8h ; 75 0614511 jne short 09a64h ; 75 06 14352 14512 add bx, strict byte 00008h ; 83 c3 08 14353 jmp near 09a 6bh ; e9 93 0014513 jmp near 09af7h ; e9 93 00 14354 14514 test byte [bp-006h], 080h ; f6 46 fa 80 14355 je short 09 9e5h ; 74 0714515 je short 09a71h ; 74 07 14356 14516 mov word [bp-00ah], strict word 00001h ; c7 46 f6 01 00 14357 jmp short 09 9eah ; eb 0514517 jmp short 09a76h ; eb 05 14358 14518 mov word [bp-00ah], strict word 00008h ; c7 46 f6 08 00 14359 14519 mov al, byte [bp-006h] ; 8a 46 fa 14360 14520 and AL, strict byte 007h ; 24 07 14361 14521 cmp AL, strict byte 001h ; 3c 01 14362 jne short 09a 12h ; 75 1f14522 jne short 09a9eh ; 75 1f 14363 14523 mov ax, bx ; 89 d8 14364 14524 shr ax, 008h ; c1 e8 08 14365 14525 test ax, ax ; 85 c0 14366 jne short 09a 12h ; 75 1614526 jne short 09a9eh ; 75 16 14367 14527 mov dx, strict word 0001ah ; ba 1a 00 14368 14528 mov ax, bx ; 89 d8 14369 call 09 97eh ; e8 7a ff14529 call 09a0ah ; e8 7a ff 14370 14530 mov dx, 00cfeh ; ba fe 0c 14371 14531 in AL, DX ; ec … … 14373 14533 ; sub ah, ah ; 2a e4 14374 14534 cmp al, byte [bp-008h] ; 3a 46 f8 14375 jbe short 09a 12h ; 76 0314535 jbe short 09a9eh ; 76 03 14376 14536 mov byte [bp-008h], al ; 88 46 f8 14377 14537 test di, di ; 85 ff 14378 je short 09a 1bh ; 74 0514538 je short 09aa7h ; 74 05 14379 14539 mov dx, strict word 00008h ; ba 08 00 14380 jmp short 09a 1dh ; eb 0214540 jmp short 09aa9h ; eb 02 14381 14541 xor dx, dx ; 31 d2 14382 14542 mov ax, bx ; 89 d8 14383 call 09 97eh ; e8 5c ff14543 call 09a0ah ; e8 5c ff 14384 14544 mov dx, 00cfch ; ba fc 0c 14385 14545 in eax, DX ; 66 ed … … 14392 14552 mov word [bp-010h], strict word 00000h ; c7 46 f0 00 00 14393 14553 test di, di ; 85 ff 14394 je short 09a 4ch ; 74 0f14554 je short 09ad8h ; 74 0f 14395 14555 mov cx, strict word 00008h ; b9 08 00 14396 14556 shr dx, 1 ; d1 ea 14397 14557 rcr ax, 1 ; d1 d8 14398 loop 09a 40h ; e2 fa14558 loop 09acch ; e2 fa 14399 14559 mov word [bp-00eh], ax ; 89 46 f2 14400 14560 mov word [bp-00ch], dx ; 89 56 f4 14401 14561 mov ax, word [bp-00ch] ; 8b 46 f4 14402 14562 cmp ax, word [bp-014h] ; 3b 46 ec 14403 jne short 09a 5ch ; 75 0814563 jne short 09ae8h ; 75 08 14404 14564 mov ax, word [bp-00eh] ; 8b 46 f2 14405 14565 cmp ax, word [bp-012h] ; 3b 46 ee 14406 je short 09a 62h ; 74 0614566 je short 09aeeh ; 74 06 14407 14567 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 14408 je short 09a 68h ; 74 0614568 je short 09af4h ; 74 06 14409 14569 dec si ; 4e 14410 14570 cmp si, strict byte 0ffffh ; 83 fe ff 14411 je short 09 a7ah ; 74 1214571 je short 09b06h ; 74 12 14412 14572 add bx, word [bp-00ah] ; 03 5e f6 14413 14573 mov dx, bx ; 89 da … … 14415 14575 movzx ax, byte [bp-008h] ; 0f b6 46 f8 14416 14576 cmp dx, ax ; 39 c2 14417 jbe near 09 9b8h ; 0f 86 3e ff14577 jbe near 09a44h ; 0f 86 3e ff 14418 14578 cmp si, strict byte 0ffffh ; 83 fe ff 14419 jne short 09 a83h ; 75 0414579 jne short 09b0fh ; 75 04 14420 14580 mov ax, bx ; 89 d8 14421 jmp short 09 a86h ; eb 0314581 jmp short 09b12h ; eb 03 14422 14582 mov ax, strict word 0ffffh ; b8 ff ff 14423 14583 lea sp, [bp-004h] ; 8d 66 fc … … 14426 14586 pop bp ; 5d 14427 14587 retn ; c3 14428 jnp short 09a2ah ; 7b 9b 14429 xchg bp, ax ; 95 14430 wait ; 9b 14431 test AL, strict byte 09bh ; a8 9b 14432 mov bp, 0d09bh ; bd 9b d0 14433 wait ; 9b 14434 jcxz 09a34h ; e3 9b 14435 _pci16_function: ; 0xf9a99 LB 0x1d7 14588 pop ES ; 07 14589 pushfw ; 9c 14590 and word [si-063cch], bx ; 21 9c 34 9c 14591 dec cx ; 49 14592 pushfw ; 9c 14593 pop sp ; 5c 14594 pushfw ; 9c 14595 outsw ; 6f 14596 pushfw ; 9c 14597 _pci16_function: ; 0xf9b25 LB 0x1d7 14436 14598 push bp ; 55 14437 14599 mov bp, sp ; 89 e5 … … 14447 14609 xor ah, ah ; 30 e4 14448 14610 cmp bx, strict byte 00003h ; 83 fb 03 14449 jc short 09 ad2h ; 72 1a14450 jbe short 09b 2ah ; 76 7014611 jc short 09b5eh ; 72 1a 14612 jbe short 09bb6h ; 76 70 14451 14613 cmp bx, strict byte 0000eh ; 83 fb 0e 14452 je near 09 bf7h ; 0f 84 36 0114614 je near 09c83h ; 0f 84 36 01 14453 14615 cmp bx, strict byte 00008h ; 83 fb 08 14454 jc near 09c 3ch ; 0f 82 74 0114616 jc near 09cc8h ; 0f 82 74 01 14455 14617 cmp bx, strict byte 0000dh ; 83 fb 0d 14456 jbe near 09b 4fh ; 0f 86 80 0014457 jmp near 09c 3ch ; e9 6a 0114618 jbe near 09bdbh ; 0f 86 80 00 14619 jmp near 09cc8h ; e9 6a 01 14458 14620 cmp bx, strict byte 00002h ; 83 fb 02 14459 je short 09 afah ; 74 2314621 je short 09b86h ; 74 23 14460 14622 cmp bx, strict byte 00001h ; 83 fb 01 14461 jne near 09c 3ch ; 0f 85 5e 0114623 jne near 09cc8h ; 0f 85 5e 01 14462 14624 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 14463 14625 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 14465 14627 mov word [bp+018h], 04350h ; c7 46 18 50 43 14466 14628 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 14467 jmp near 09c 69h ; e9 6f 0114629 jmp near 09cf5h ; e9 6f 01 14468 14630 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 14469 jne short 09b 06h ; 75 0614631 jne short 09b92h ; 75 06 14470 14632 or ah, 083h ; 80 cc 83 14471 jmp near 09c 62h ; e9 5c 0114633 jmp near 09ceeh ; e9 5c 01 14472 14634 mov bx, word [bp+008h] ; 8b 5e 08 14473 14635 mov dx, word [bp+01ch] ; 8b 56 1c 14474 14636 mov ax, word [bp+018h] ; 8b 46 18 14475 14637 xor cx, cx ; 31 c9 14476 call 09 9a2h ; e8 8e fe14638 call 09a2eh ; e8 8e fe 14477 14639 cmp ax, strict word 0ffffh ; 3d ff ff 14478 jne short 09b 24h ; 75 0b14640 jne short 09bb0h ; 75 0b 14479 14641 mov ax, word [bp+020h] ; 8b 46 20 14480 14642 xor ah, ah ; 30 e4 14481 14643 or ah, 086h ; 80 cc 86 14482 jmp near 09c 62h ; e9 3e 0114644 jmp near 09ceeh ; e9 3e 01 14483 14645 mov word [bp+014h], ax ; 89 46 14 14484 jmp near 09c 69h ; e9 3f 0114646 jmp near 09cf5h ; e9 3f 01 14485 14647 mov bx, word [bp+008h] ; 8b 5e 08 14486 14648 mov ax, word [bp+01ch] ; 8b 46 1c 14487 14649 mov dx, word [bp+01eh] ; 8b 56 1e 14488 14650 mov cx, strict word 00001h ; b9 01 00 14489 call 09 9a2h ; e8 69 fe14651 call 09a2eh ; e8 69 fe 14490 14652 cmp ax, strict word 0ffffh ; 3d ff ff 14491 jne short 09b 49h ; 75 0b14653 jne short 09bd5h ; 75 0b 14492 14654 mov ax, word [bp+020h] ; 8b 46 20 14493 14655 xor ah, ah ; 30 e4 14494 14656 or ah, 086h ; 80 cc 86 14495 jmp near 09c 62h ; e9 19 0114657 jmp near 09ceeh ; e9 19 01 14496 14658 mov word [bp+014h], ax ; 89 46 14 14497 jmp near 09c 69h ; e9 1a 0114659 jmp near 09cf5h ; e9 1a 01 14498 14660 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 14499 jc short 09b 5ch ; 72 0614661 jc short 09be8h ; 72 06 14500 14662 or ah, 087h ; 80 cc 87 14501 jmp near 09c 62h ; e9 06 0114663 jmp near 09ceeh ; e9 06 01 14502 14664 mov dx, word [bp+004h] ; 8b 56 04 14503 14665 mov ax, word [bp+014h] ; 8b 46 14 14504 call 09 97eh ; e8 19 fe14666 call 09a0ah ; e8 19 fe 14505 14667 mov bx, word [bp+020h] ; 8b 5e 20 14506 14668 xor bh, bh ; 30 ff 14507 14669 sub bx, strict byte 00008h ; 83 eb 08 14508 14670 cmp bx, strict byte 00005h ; 83 fb 05 14509 jnbe near 09c 69h ; 0f 87 f5 0014671 jnbe near 09cf5h ; 0f 87 f5 00 14510 14672 add bx, bx ; 01 db 14511 jmp word [cs:bx-06 573h] ; 2e ff a7 8d 9a14673 jmp word [cs:bx-064e7h] ; 2e ff a7 19 9b 14512 14674 mov bx, word [bp+01ch] ; 8b 5e 1c 14513 14675 xor bl, bl ; 30 db … … 14520 14682 or bx, ax ; 09 c3 14521 14683 mov word [bp+01ch], bx ; 89 5e 1c 14522 jmp near 09c 69h ; e9 d4 0014684 jmp near 09cf5h ; e9 d4 00 14523 14685 mov dx, word [bp+004h] ; 8b 56 04 14524 14686 xor dh, dh ; 30 f6 … … 14527 14689 in ax, DX ; ed 14528 14690 mov word [bp+01ch], ax ; 89 46 1c 14529 jmp near 09c 69h ; e9 c1 0014691 jmp near 09cf5h ; e9 c1 00 14530 14692 mov dx, 00cfch ; ba fc 0c 14531 14693 in eax, DX ; 66 ed … … 14536 14698 mov word [bp+01ch], ax ; 89 46 1c 14537 14699 mov word [bp+01eh], dx ; 89 56 1e 14538 jmp near 09c 69h ; e9 ac 0014700 jmp near 09cf5h ; e9 ac 00 14539 14701 mov ax, word [bp+01ch] ; 8b 46 1c 14540 14702 mov dx, word [bp+004h] ; 8b 56 04 … … 14543 14705 add dx, 00cfch ; 81 c2 fc 0c 14544 14706 out DX, AL ; ee 14545 jmp near 09c 69h ; e9 99 0014707 jmp near 09cf5h ; e9 99 00 14546 14708 mov ax, word [bp+01ch] ; 8b 46 1c 14547 14709 mov dx, word [bp+004h] ; 8b 56 04 … … 14550 14712 add dx, 00cfch ; 81 c2 fc 0c 14551 14713 out DX, ax ; ef 14552 jmp near 09c 69h ; e9 86 0014714 jmp near 09cf5h ; e9 86 00 14553 14715 mov ax, word [bp+01ch] ; 8b 46 1c 14554 14716 mov cx, word [bp+01eh] ; 8b 4e 1e … … 14559 14721 ; mov ax, cx ; 8b c1 14560 14722 out DX, eax ; 66 ef 14561 jmp short 09c 69h ; eb 7214723 jmp short 09cf5h ; eb 72 14562 14724 mov bx, word [bp+004h] ; 8b 5e 04 14563 14725 mov es, [bp+026h] ; 8e 46 26 … … 14566 14728 mov cx, word [0f4a0h] ; 8b 0e a0 f4 14567 14729 cmp cx, word [es:bx] ; 26 3b 0f 14568 jbe short 09c 1dh ; 76 1114730 jbe short 09ca9h ; 76 11 14569 14731 mov ax, word [bp+020h] ; 8b 46 20 14570 14732 xor ah, ah ; 30 e4 … … 14572 14734 mov word [bp+020h], ax ; 89 46 20 14573 14735 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 14574 jmp short 09c 31h ; eb 1414736 jmp short 09cbdh ; eb 14 14575 14737 les di, [es:bx+002h] ; 26 c4 7f 02 14576 14738 mov si, 0f2c0h ; be c0 f2 … … 14584 14746 les bx, [bp-008h] ; c4 5e f8 14585 14747 mov word [es:bx], ax ; 26 89 07 14586 jmp short 09c 69h ; eb 2d14748 jmp short 09cf5h ; eb 2d 14587 14749 mov bx, 00da0h ; bb a0 0d 14588 14750 mov cx, ds ; 8c d9 14589 14751 mov ax, strict word 00004h ; b8 04 00 14590 call 019 31h ; e8 ea7c14752 call 01999h ; e8 c6 7c 14591 14753 mov ax, word [bp+014h] ; 8b 46 14 14592 14754 push ax ; 50 … … 14595 14757 push 00d5ch ; 68 5c 0d 14596 14758 push strict byte 00004h ; 6a 04 14597 call 019 72h ; e8 1b 7d14759 call 019dah ; e8 f7 7c 14598 14760 add sp, strict byte 00008h ; 83 c4 08 14599 14761 mov ax, word [bp+020h] ; 8b 46 20 … … 14607 14769 pop bp ; 5d 14608 14770 retn ; c3 14609 pci_find_classcode_: ; 0xf9c 70LB 0x2b14771 pci_find_classcode_: ; 0xf9cfc LB 0x2b 14610 14772 push bp ; 55 14611 14773 mov bp, sp ; 89 e5 … … 14622 14784 int 01ah ; cd 1a 14623 14785 cmp ah, 000h ; 80 fc 00 14624 je near 09 c91h ; 0f 84 03 0014786 je near 09d1dh ; 0f 84 03 00 14625 14787 mov bx, strict word 0ffffh ; bb ff ff 14626 14788 mov ax, bx ; 89 d8 … … 14631 14793 pop bp ; 5d 14632 14794 retn ; c3 14633 pci_read_config_byte_: ; 0xf9 c9bLB 0x2414795 pci_read_config_byte_: ; 0xf9d27 LB 0x24 14634 14796 push bp ; 55 14635 14797 mov bp, sp ; 89 e5 … … 14650 14812 pop bp ; 5d 14651 14813 retn ; c3 14652 pci_read_config_word_: ; 0xf9 cbfLB 0x2214814 pci_read_config_word_: ; 0xf9d4b LB 0x22 14653 14815 push bp ; 55 14654 14816 mov bp, sp ; 89 e5 … … 14669 14831 pop bp ; 5d 14670 14832 retn ; c3 14671 pci_read_config_dword_: ; 0xf9 ce1LB 0x2714833 pci_read_config_dword_: ; 0xf9d6d LB 0x27 14672 14834 push bp ; 55 14673 14835 mov bp, sp ; 89 e5 … … 14690 14852 pop bp ; 5d 14691 14853 retn ; c3 14692 vds_is_present_: ; 0xf9d 08LB 0x1d14854 vds_is_present_: ; 0xf9d94 LB 0x1d 14693 14855 push bx ; 53 14694 14856 push bp ; 55 … … 14698 14860 mov es, ax ; 8e c0 14699 14861 test byte [es:bx], 020h ; 26 f6 07 20 14700 je short 09d 20h ; 74 0614862 je short 09dach ; 74 06 14701 14863 mov ax, strict word 00001h ; b8 01 00 14702 14864 pop bp ; 5d … … 14707 14869 pop bx ; 5b 14708 14870 retn ; c3 14709 vds_real_to_lin_: ; 0xf9d 25LB 0x1e14871 vds_real_to_lin_: ; 0xf9db1 LB 0x1e 14710 14872 push bx ; 53 14711 14873 push cx ; 51 … … 14718 14880 sal ax, 1 ; d1 e0 14719 14881 rcl dx, 1 ; d1 d2 14720 loop 09d 33h ; e2 fa14882 loop 09dbfh ; e2 fa 14721 14883 xor cx, cx ; 31 c9 14722 14884 add ax, bx ; 01 d8 … … 14726 14888 pop bx ; 5b 14727 14889 retn ; c3 14728 vds_build_sg_list_: ; 0xf9d 43LB 0x7914890 vds_build_sg_list_: ; 0xf9dcf LB 0x79 14729 14891 push bp ; 55 14730 14892 mov bp, sp ; 89 e5 … … 14740 14902 mov bx, word [bp+006h] ; 8b 5e 06 14741 14903 mov word [es:di+002h], bx ; 26 89 5d 02 14742 call 09d 25h ; e8 c3 ff14904 call 09db1h ; e8 c3 ff 14743 14905 mov es, si ; 8e c6 14744 14906 mov word [es:di+004h], ax ; 26 89 45 04 14745 14907 mov word [es:di+006h], dx ; 26 89 55 06 14746 14908 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 14747 call 09d 08h ; e8 93 ff14909 call 09d94h ; e8 93 ff 14748 14910 test ax, ax ; 85 c0 14749 je short 09 d8ch ; 74 1314911 je short 09e18h ; 74 13 14750 14912 mov es, si ; 8e c6 14751 14913 mov ax, 08105h ; b8 05 81 14752 14914 mov dx, strict word 00000h ; ba 00 00 14753 14915 int 04bh ; cd 4b 14754 jc near 09 d89h ; 0f 82 02 0014916 jc near 09e15h ; 0f 82 02 00 14755 14917 db 032h, 0c0h 14756 14918 ; xor al, al ; 32 c0 14757 14919 cbw ; 98 14758 jmp short 09 db3h ; eb 2714920 jmp short 09e3fh ; eb 27 14759 14921 mov es, si ; 8e c6 14760 14922 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 14773 14935 pop bp ; 5d 14774 14936 retn 00004h ; c2 04 00 14775 vds_free_sg_list_: ; 0xf9 dbc LB 0x3414937 vds_free_sg_list_: ; 0xf9e48 LB 0x38 14776 14938 push bp ; 55 14777 14939 mov bp, sp ; 89 e5 … … 14779 14941 push di ; 57 14780 14942 mov bx, ax ; 89 c3 14781 call 09d 08h ; e8 42 ff14943 call 09d94h ; e8 42 ff 14782 14944 test ax, ax ; 85 c0 14783 je short 09 dddh ; 74 1314945 je short 09e69h ; 74 13 14784 14946 mov di, bx ; 89 df 14785 14947 mov es, dx ; 8e c2 … … 14787 14949 mov dx, strict word 00000h ; ba 00 00 14788 14950 int 04bh ; cd 4b 14789 jc near 09 ddch ; 0f 82 02 0014951 jc near 09e68h ; 0f 82 02 00 14790 14952 db 032h, 0c0h 14791 14953 ; xor al, al ; 32 c0 … … 14798 14960 pop bp ; 5d 14799 14961 retn ; c3 14800 times 0x4 db 0 14801 __U4D: ; 0xf9df0 LB 0x39 14962 times 0x8 db 0 14963 __U4M: ; 0xf9e80 LB 0x40 14964 pushfw ; 9c 14965 push eax ; 66 50 14966 push edx ; 66 52 14967 push ecx ; 66 51 14968 rol eax, 010h ; 66 c1 c0 10 14969 db 08bh, 0c2h 14970 ; mov ax, dx ; 8b c2 14971 ror eax, 010h ; 66 c1 c8 10 14972 db 066h, 033h, 0d2h 14973 ; xor edx, edx ; 66 33 d2 14974 shr ecx, 010h ; 66 c1 e9 10 14975 db 08bh, 0cbh 14976 ; mov cx, bx ; 8b cb 14977 mul ecx ; 66 f7 e1 14978 pop ecx ; 66 59 14979 pop edx ; 66 5a 14980 ror eax, 010h ; 66 c1 c8 10 14981 db 08bh, 0d0h 14982 ; mov dx, ax ; 8b d0 14983 add sp, strict byte 00002h ; 83 c4 02 14984 pop ax ; 58 14985 rol eax, 010h ; 66 c1 c0 10 14986 popfw ; 9d 14987 retn ; c3 14988 times 0xf db 0 14989 __U4D: ; 0xf9ec0 LB 0x40 14802 14990 pushfw ; 9c 14803 14991 push eax ; 66 50 … … 14829 15017 popfw ; 9d 14830 15018 retn ; c3 14831 __U4M: ; 0xf9e29 LB 0x31 14832 pushfw ; 9c 14833 push eax ; 66 50 14834 push edx ; 66 52 14835 push ecx ; 66 51 14836 rol eax, 010h ; 66 c1 c0 10 14837 db 08bh, 0c2h 14838 ; mov ax, dx ; 8b c2 14839 ror eax, 010h ; 66 c1 c8 10 14840 db 066h, 033h, 0d2h 14841 ; xor edx, edx ; 66 33 d2 14842 shr ecx, 010h ; 66 c1 e9 10 14843 db 08bh, 0cbh 14844 ; mov cx, bx ; 8b cb 14845 mul ecx ; 66 f7 e1 14846 pop ecx ; 66 59 14847 pop edx ; 66 5a 14848 ror eax, 010h ; 66 c1 c8 10 14849 db 08bh, 0d0h 14850 ; mov dx, ax ; 8b d0 14851 add sp, strict byte 00002h ; 83 c4 02 14852 pop ax ; 58 14853 rol eax, 010h ; 66 c1 c0 10 14854 popfw ; 9d 15019 times 0x7 db 0 15020 __U8RS: ; 0xf9f00 LB 0x10 15021 test si, si ; 85 f6 15022 je short 09f0fh ; 74 0b 15023 shr ax, 1 ; d1 e8 15024 rcr bx, 1 ; d1 db 15025 rcr cx, 1 ; d1 d9 15026 rcr dx, 1 ; d1 da 15027 dec si ; 4e 15028 jne short 09f04h ; 75 f5 14855 15029 retn ; c3 14856 __U8LS: ; 0xf9 e5aLB 0x1015030 __U8LS: ; 0xf9f10 LB 0x10 14857 15031 test si, si ; 85 f6 14858 je short 09 e69h ; 74 0b15032 je short 09f1fh ; 74 0b 14859 15033 sal dx, 1 ; d1 e2 14860 15034 rcl cx, 1 ; d1 d1 … … 14862 15036 rcl ax, 1 ; d1 d0 14863 15037 dec si ; 4e 14864 jne short 09 e5eh ; 75 f515038 jne short 09f14h ; 75 f5 14865 15039 retn ; c3 14866 __U8RS: ; 0xf9e6a LB 0x10 14867 test si, si ; 85 f6 14868 je short 09e79h ; 74 0b 14869 shr ax, 1 ; d1 e8 14870 rcr bx, 1 ; d1 db 14871 rcr cx, 1 ; d1 d9 14872 rcr dx, 1 ; d1 da 14873 dec si ; 4e 14874 jne short 09e6eh ; 75 f5 14875 retn ; c3 14876 _fmemset_: ; 0xf9e7a LB 0xd 15040 _fmemset_: ; 0xf9f20 LB 0x10 14877 15041 push di ; 57 14878 15042 mov es, dx ; 8e c2 … … 14884 15048 pop di ; 5f 14885 15049 retn ; c3 14886 _fmemcpy_: ; 0xf9e87 LB 0x33 15050 times 0x3 db 0 15051 _fmemcpy_: ; 0xf9f30 LB 0x3a 14887 15052 push bp ; 55 14888 15053 db 08bh, 0ech … … 14902 15067 pop DS ; 1f 14903 15068 pop di ; 5f 14904 leave ; c9 15069 db 08bh, 0e5h 15070 ; mov sp, bp ; 8b e5 15071 pop bp ; 5d 14905 15072 retn ; c3 14906 add al, dl ; 00 d0 14907 sahf ; 9e 14908 rcr byte [bp-0612ah], CL ; d2 9e d6 9e 14909 db 0d6h 14910 sahf ; 9e 14911 db 0d6h 14912 sahf ; 9e 14913 fcomp dword [bp-06128h] ; d8 9e d8 9e 14914 ficomp dword [bp-06122h] ; da 9e de 9e 14915 ficomp word [bp-06120h] ; de 9e e0 9e 14916 in ax, 09eh ; e5 9e 14917 out 09eh, ax ; e7 9e 14918 apm_worker: ; 0xf9eba LB 0x3a 15073 add byte [bx+si], al ; 00 00 15074 add byte [bx+si], al ; 00 00 15075 add byte [bx+si], al ; 00 00 15076 sbb byte [bx-0607eh], 086h ; 80 9f 82 9f 86 15077 lahf ; 9f 15078 xchg byte [bx-0607ah], bl ; 86 9f 86 9f 15079 mov byte [bx-06078h], bl ; 88 9f 88 9f 15080 mov bl, byte [bx-06072h] ; 8a 9f 8e 9f 15081 mov ds, [bx-06070h] ; 8e 9f 90 9f 15082 xchg bp, ax ; 95 15083 lahf ; 9f 15084 xchg di, ax ; 97 15085 lahf ; 9f 15086 apm_worker: ; 0xf9f6a LB 0x3a 14919 15087 sti ; fb 14920 15088 push ax ; 50 … … 14928 15096 pop ax ; 58 14929 15097 mov AH, strict byte 053h ; b4 53 14930 jnc short 09 ef0h ; 73 2514931 jmp word [cs:bp-06 160h] ; 2e ff a6 a0 9e14932 jmp short 09 eeeh ; eb 1c15098 jnc short 09fa0h ; 73 25 15099 jmp word [cs:bp-060b0h] ; 2e ff a6 50 9f 15100 jmp short 09f9eh ; eb 1c 14933 15101 sti ; fb 14934 15102 hlt ; f4 14935 jmp short 09 eeeh ; eb 1814936 jmp short 09 eeeh ; eb 1614937 jmp short 09 ef0h ; eb 1615103 jmp short 09f9eh ; eb 18 15104 jmp short 09f9eh ; eb 16 15105 jmp short 09fa0h ; eb 16 14938 15106 mov AH, strict byte 080h ; b4 80 14939 jmp short 09 ef2h ; eb 1414940 jmp short 09 ef0h ; eb 1015107 jmp short 09fa2h ; eb 14 15108 jmp short 09fa0h ; eb 10 14941 15109 mov ax, 00102h ; b8 02 01 14942 jmp short 09 eeeh ; eb 0914943 jmp short 09 eeeh ; eb 0715110 jmp short 09f9eh ; eb 09 15111 jmp short 09f9eh ; eb 07 14944 15112 mov BL, strict byte 000h ; b3 00 14945 15113 mov cx, strict word 00000h ; b9 00 00 14946 jmp short 09 eeeh ; eb 0015114 jmp short 09f9eh ; eb 00 14947 15115 clc ; f8 14948 15116 retn ; c3 … … 14950 15118 stc ; f9 14951 15119 retn ; c3 14952 apm_pm16_entry: ; 0xf9 ef4 LB 0x1115120 apm_pm16_entry: ; 0xf9fa4 LB 0x11 14953 15121 mov AH, strict byte 002h ; b4 02 14954 15122 push DS ; 1e … … 14958 15126 add bp, strict byte 00008h ; 83 c5 08 14959 15127 mov ds, bp ; 8e dd 14960 call 09 ebah ; e8 b8 ff15128 call 09f6ah ; e8 b8 ff 14961 15129 pop bp ; 5d 14962 15130 pop DS ; 1f 14963 15131 retf ; cb 14964 15132 14965 ; Padding 0x3a fb bytes at 0xf9f0514966 times 1 5099db 015133 ; Padding 0x3a4b bytes at 0xf9fb5 15134 times 14923 db 0 14967 15135 14968 15136 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 15011 15179 add bp, strict byte 00008h ; 83 c5 08 15012 15180 push ebp ; 66 55 15013 mov bp, 09 ef6h ; bd f6 9e15181 mov bp, 09fa6h ; bd a6 9f 15014 15182 add byte [bx+si], al ; 00 00 15015 15183 push ebp ; 66 55 … … 15477 15645 cmp AL, strict byte 009h ; 3c 09 15478 15646 jne short 0e0bch ; 75 03 15479 jmp near 0e36 6h ; e9 aa0215647 jmp near 0e36dh ; e9 b1 02 15480 15648 cmp AL, strict byte 005h ; 3c 05 15481 15649 je short 0e044h ; 74 84 … … 15522 15690 pop DS ; 1f 15523 15691 cld ; fc 15524 call 017 77h ; e8 6d3615692 call 017dfh ; e8 d5 36 15525 15693 call 0e8e0h ; e8 d3 07 15526 15694 db 033h, 0dbh … … 15623 15791 mov dx, 0c800h ; ba 00 c8 15624 15792 call 01600h ; e8 e1 33 15625 call 04e 4ch ; e8 2a6c15793 call 04eb4h ; e8 92 6c 15626 15794 pop DS ; 1f 15627 15795 mov ax, 0ff53h ; b8 53 ff … … 15678 15846 mov ax, 0f000h ; b8 00 f0 15679 15847 mov word [0012ah], ax ; a3 2a 01 15680 mov ax, 0f8 e6h ; b8 e6f815848 mov ax, 0f8f8h ; b8 f8 f8 15681 15849 mov word [001c0h], ax ; a3 c0 01 15682 15850 mov ax, 0f000h ; b8 00 f0 … … 15692 15860 pop DS ; 1f 15693 15861 cld ; fc 15694 call 017 53h ; e8 8a3415862 call 017bbh ; e8 f2 34 15695 15863 iret ; cf 15696 15864 int75_handler: ; 0xfe2ca LB 0x8 … … 15699 15867 int 002h ; cd 02 15700 15868 iret ; cf 15701 hard_drive_post: ; 0xfe2d2 LB 0x bd15869 hard_drive_post: ; 0xfe2d2 LB 0xc4 15702 15870 db 033h, 0c0h 15703 15871 ; xor ax, ax ; 33 c0 … … 15714 15882 mov ax, 0f000h ; b8 00 f0 15715 15883 mov word [0004eh], ax ; a3 4e 00 15716 mov ax, 0f8 d4h ; b8 d4f815884 mov ax, 0f8e6h ; b8 e6 f8 15717 15885 mov word [001d8h], ax ; a3 d8 01 15718 15886 mov ax, 0f000h ; b8 00 f0 … … 15727 15895 mov word [0011ah], ax ; a3 1a 01 15728 15896 retn ; c3 15729 mov ax, 0f8 a9h ; b8 a9f815897 mov ax, 0f8bbh ; b8 bb f8 15730 15898 mov word [001d0h], ax ; a3 d0 01 15731 15899 mov ax, 0f000h ; b8 00 f0 … … 15739 15907 pop DS ; 1f 15740 15908 cld ; fc 15741 call 01cafh ; e8 73 39 15742 call 0213ch ; e8 fd 3d 15743 call 09752h ; e8 10 b4 15744 call 08636h ; e8 f1 a2 15745 call 0ed2fh ; e8 e7 09 15746 call 0e2d2h ; e8 87 ff 15909 pushad ; 66 60 15910 call 01650h ; e8 12 33 15911 popad ; 66 61 15912 call 01d17h ; e8 d4 39 15913 call 021a4h ; e8 5e 3e 15914 call 097deh ; e8 95 b4 15915 call 086c2h ; e8 76 a3 15916 call 0ed2fh ; e8 e0 09 15917 call 0e2d2h ; e8 80 ff 15747 15918 push CS ; 0e 15748 15919 pop DS ; 1f … … 15750 15921 mov ax, 0c800h ; b8 00 c8 15751 15922 mov dx, 0f000h ; ba 00 f0 15752 call 01600h ; e8 a 93215753 call 017 97h ; e8 3d3415754 call 03b 30h ; e8 d3 5715923 call 01600h ; e8 a2 32 15924 call 017ffh ; e8 9e 34 15925 call 03b98h ; e8 34 58 15755 15926 sti ; fb 15756 15927 int 019h ; cd 19 15757 15928 sti ; fb 15758 15929 hlt ; f4 15759 jmp short 0e36 1h ; eb fd15930 jmp short 0e368h ; eb fd 15760 15931 cli ; fa 15761 15932 hlt ; f4 … … 15779 15950 sti ; fb 15780 15951 retf 00002h ; ca 02 00 15781 biosorg_check_before_or_at_0E3FCh: ; 0xfe3 8f LB 0x6f15782 times 0x6 ddb 015952 biosorg_check_before_or_at_0E3FCh: ; 0xfe396 LB 0x68 15953 times 0x66 db 0 15783 15954 db 'XM' 15784 15955 int13_handler: ; 0xfe3fe LB 0x3 … … 15854 16025 pop DS ; 1f 15855 16026 cld ; fc 15856 call 063 61h ; e8 1f7c16027 call 063c9h ; e8 87 7c 15857 16028 popaw ; 61 15858 16029 pop ES ; 07 … … 15865 16036 pop DS ; 1f 15866 16037 cld ; fc 15867 call 01 6e8h ; e8 99 2f16038 call 01750h ; e8 01 30 15868 16039 popaw ; 61 15869 16040 pop ES ; 07 … … 15930 16101 pop DS ; 1f 15931 16102 cld ; fc 15932 call 056 57h ; e8 156e16103 call 056bfh ; e8 7d 6e 15933 16104 popaw ; 61 15934 16105 pop DS ; 1f … … 15947 16118 pop DS ; 1f 15948 16119 cld ; fc 15949 call 056 57h ; e8 f7 6d16120 call 056bfh ; e8 5f 6e 15950 16121 popaw ; 61 15951 16122 pop DS ; 1f … … 16046 16217 pop DS ; 1f 16047 16218 cld ; fc 16048 call 051 4fh ; e8 866716219 call 051b7h ; e8 ee 67 16049 16220 pop ES ; 07 16050 16221 popaw ; 61 … … 16062 16233 pop DS ; 1f 16063 16234 cld ; fc 16064 call 06e 01h ; e8 228416235 call 06e8dh ; e8 ae 84 16065 16236 pop DS ; 1f 16066 16237 pop ES ; 07 … … 16084 16255 cld ; fc 16085 16256 push 0ece9h ; 68 e9 ec 16086 jmp near 03b 74h ; e9 034f16257 jmp near 03bdch ; e9 6b 4f 16087 16258 push ES ; 06 16088 16259 push ax ; 50 … … 16090 16261 push cx ; 51 16091 16262 push dx ; 52 16092 call 03b 48h ; e8 cf 4e16263 call 03bb0h ; e8 37 4f 16093 16264 cmp AL, strict byte 000h ; 3c 00 16094 16265 je short 0ecabh ; 74 2e 16095 call 03b 5eh ; e8 de 4e16266 call 03bc6h ; e8 46 4f 16096 16267 pop dx ; 5a 16097 16268 push dx ; 52 … … 16111 16282 cld ; fc 16112 16283 push 0ece9h ; 68 e9 ec 16113 jmp near 041 48h ; e9 b1 5416284 jmp near 041b0h ; e9 19 55 16114 16285 and dl, 0e0h ; 80 e2 e0 16115 16286 db 03ah, 0c2h … … 16151 16322 jne short 0ecc8h ; 75 06 16152 16323 push 0ece9h ; 68 e9 ec 16153 jmp near 032 03h ; e9 3b4516324 jmp near 0326bh ; e9 a3 45 16154 16325 int13_notfloppy: ; 0xfecc8 LB 0x14 16155 16326 cmp dl, 0e0h ; 80 fa e0 … … 16157 16328 shr ebx, 010h ; 66 c1 eb 10 16158 16329 push bx ; 53 16159 call 045 7ch ; e8 a7 5816330 call 045e4h ; e8 0f 59 16160 16331 pop bx ; 5b 16161 16332 sal ebx, 010h ; 66 c1 e3 10 … … 16164 16335 cmp ah, 040h ; 80 fc 40 16165 16336 jnbe short 0ece6h ; 77 05 16166 call 05a 23h ; e8 3f6d16337 call 05a8bh ; e8 a7 6d 16167 16338 jmp short 0ece9h ; eb 03 16168 call 05e 6dh ; e8 847116339 call 05ed5h ; e8 ec 71 16169 16340 int13_out: ; 0xfece9 LB 0x4 16170 16341 pop DS ; 1f … … 16382 16553 pop DS ; 1f 16383 16554 cld ; fc 16384 call 07 77ch ; e8 9f 8716555 call 07808h ; e8 2b 88 16385 16556 popaw ; 61 16386 16557 pop ES ; 07 … … 16410 16581 pop DS ; 1f 16411 16582 cld ; fc 16412 call 017 65h ; e8 bb 2616583 call 017cdh ; e8 23 27 16413 16584 hlt ; f4 16414 16585 iret ; cf … … 16433 16604 mov ax, strict word 00001h ; b8 01 00 16434 16605 push ax ; 50 16435 call 04 be3h ; e8 135b16606 call 04c4bh ; e8 7b 5b 16436 16607 inc sp ; 44 16437 16608 inc sp ; 44 … … 16440 16611 mov ax, strict word 00002h ; b8 02 00 16441 16612 push ax ; 50 16442 call 04 be3h ; e8 065b16613 call 04c4bh ; e8 6e 5b 16443 16614 inc sp ; 44 16444 16615 inc sp ; 44 … … 16447 16618 mov ax, strict word 00003h ; b8 03 00 16448 16619 push ax ; 50 16449 call 04 be3h ; e8 f9 5a16620 call 04c4bh ; e8 61 5b 16450 16621 inc sp ; 44 16451 16622 inc sp ; 44 … … 16454 16625 mov ax, strict word 00004h ; b8 04 00 16455 16626 push ax ; 50 16456 call 04 be3h ; e8 ec 5a16627 call 04c4bh ; e8 54 5b 16457 16628 inc sp ; 44 16458 16629 inc sp ; 44 … … 16728 16899 pop DS ; 1f 16729 16900 iret ; cf 16730 int15_handler: ; 0xff859 LB 0x2e 16901 int15_handler: ; 0xff859 LB 0x40 16902 cmp ah, 087h ; 80 fc 87 16903 jne short 0f86bh ; 75 0d 16904 pushaw ; 60 16905 push ES ; 06 16906 push DS ; 1e 16907 push CS ; 0e 16908 pop DS ; 1f 16909 cld ; fc 16910 call 06ce2h ; e8 7b 74 16911 pop DS ; 1f 16912 pop ES ; 07 16913 popaw ; 61 16914 iret ; cf 16731 16915 pushfw ; 9c 16732 16916 push DS ; 1e … … 16736 16920 cld ; fc 16737 16921 cmp ah, 086h ; 80 fc 86 16738 je short 0f8 8ch ; 74 2816922 je short 0f89eh ; 74 28 16739 16923 cmp ah, 0e8h ; 80 fc e8 16740 je short 0f8 8ch ; 74 2316924 je short 0f89eh ; 74 23 16741 16925 cmp ah, 0d0h ; 80 fc d0 16742 je short 0f8 8ch ; 74 1e16926 je short 0f89eh ; 74 1e 16743 16927 pushaw ; 60 16744 16928 cmp ah, 053h ; 80 fc 53 16745 je short 0f8 82h ; 74 0e16929 je short 0f894h ; 74 0e 16746 16930 cmp ah, 0c2h ; 80 fc c2 16747 je short 0f8 87h ; 74 0e16748 call 06 56eh ; e8 f2 6c16931 je short 0f899h ; 74 0e 16932 call 06616h ; e8 88 6d 16749 16933 popaw ; 61 16750 16934 pop ES ; 07 16751 16935 pop DS ; 1f 16752 16936 popfw ; 9d 16753 jmp short 0f8 95h ; eb 1316754 call 09 889h ; e8 04a016755 jmp short 0f8 7ch ; eb f516756 int15_handler_mouse: ; 0xff8 87LB 0x516757 call 07 3f1h ; e8 677b16758 jmp short 0f8 7ch ; eb f016759 int15_handler32: ; 0xff8 8cLB 0x916937 jmp short 0f8a7h ; eb 13 16938 call 09915h ; e8 7e a0 16939 jmp short 0f88eh ; eb f5 16940 int15_handler_mouse: ; 0xff899 LB 0x5 16941 call 0747dh ; e8 e1 7b 16942 jmp short 0f88eh ; eb f0 16943 int15_handler32: ; 0xff89e LB 0x9 16760 16944 pushad ; 66 60 16761 call 06 a3fh ; e8 ae 7116945 call 0694ch ; e8 a9 70 16762 16946 popad ; 66 61 16763 jmp short 0f8 7dh ; eb e816764 iret_modify_cf: ; 0xff8 95LB 0x1416765 jc short 0f8 a0h ; 72 0916947 jmp short 0f88fh ; eb e8 16948 iret_modify_cf: ; 0xff8a7 LB 0x14 16949 jc short 0f8b2h ; 72 09 16766 16950 push bp ; 55 16767 16951 db 08bh, 0ech … … 16776 16960 pop bp ; 5d 16777 16961 iret ; cf 16778 int74_handler: ; 0xff8 a9LB 0x2b16962 int74_handler: ; 0xff8bb LB 0x2b 16779 16963 sti ; fb 16780 16964 pushaw ; 60 … … 16791 16975 pop DS ; 1f 16792 16976 cld ; fc 16793 call 073 27h ; e8 6d7a16977 call 073b3h ; e8 e7 7a 16794 16978 pop cx ; 59 16795 jcxz 0f8 c9h ; e3 0c16979 jcxz 0f8dbh ; e3 0c 16796 16980 push strict byte 00000h ; 6a 00 16797 16981 pop DS ; 1f … … 16800 16984 call far [word 00022h] ; ff 1e 22 00 16801 16985 cli ; fa 16802 call 0e030h ; e8 63e716986 call 0e030h ; e8 51 e7 16803 16987 add sp, strict byte 00008h ; 83 c4 08 16804 16988 pop DS ; 1f … … 16806 16990 popaw ; 61 16807 16991 iret ; cf 16808 int76_handler: ; 0xff8 d4LB 0x1216992 int76_handler: ; 0xff8e6 LB 0x12 16809 16993 push ax ; 50 16810 16994 push DS ; 1e … … 16812 16996 mov ds, ax ; 8e d8 16813 16997 mov byte [0008eh], 0ffh ; c6 06 8e 00 ff 16814 call 0e030h ; e8 4de716998 call 0e030h ; e8 3b e7 16815 16999 pop DS ; 1f 16816 17000 pop ax ; 58 16817 17001 iret ; cf 16818 int70_handler: ; 0xff8 e6LB 0xd17002 int70_handler: ; 0xff8f8 LB 0xd 16819 17003 push ES ; 06 16820 17004 push DS ; 1e … … 16823 17007 pop DS ; 1f 16824 17008 cld ; fc 16825 call 0 6fdfh ; e8 f0 7617009 call 0706bh ; e8 6a 77 16826 17010 popaw ; 61 16827 17011 pop DS ; 1f 16828 17012 pop ES ; 07 16829 17013 iret ; cf 16830 biosorg_check_before_or_at_0FA6Ch: ; 0xff 8f3 LB 0x17b16831 times 0x1 79db 017014 biosorg_check_before_or_at_0FA6Ch: ; 0xff905 LB 0x169 17015 times 0x167 db 0 16832 17016 db 'XM' 16833 17017 font8x8: ; 0xffa6e LB 0x400 … … 16905 17089 cld ; fc 16906 17090 pushad ; 66 60 16907 call 09 a99h ; e8 1c9c17091 call 09b25h ; e8 a8 9c 16908 17092 popad ; 66 61 16909 17093 pop DS ; 1f … … 16916 17100 pop DS ; 1f 16917 17101 cld ; fc 16918 call 07 09dh ; e8 127217102 call 07129h ; e8 9e 72 16919 17103 popaw ; 61 16920 17104 pop DS ; 1f … … 17019 17203 cpu_reset: ; 0xffff0 LB 0x10 17020 17204 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 17021 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 a1h17205 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 032h -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum
r60443 r61092 1 a2f3015e93a5e62e47b783abd626ce9b*VBoxPcBios386.rom1 3e8bbb1e27adc9a37ae1a2ce74342f9d *VBoxPcBios386.rom -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm
r60443 r61092 728 728 729 729 ; 730 ; Source file: support.asm 730 ; Source file: __U4M.asm 731 ; 732 ; $Id$ 733 ; Compiler support routines. 734 ; 735 ; 736 ; 737 ; Copyright (C) 2012-2015 Oracle Corporation 738 ; 739 ; This file is part of VirtualBox Open Source Edition (OSE), as 740 ; available from http://www.virtualbox.org. This file is free software; 741 ; you can redistribute it and/or modify it under the terms of the GNU 742 ; General Public License (GPL) as published by the Free Software 743 ; Foundation, in version 2 as it comes in the "COPYING" file of the 744 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 745 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 746 ; 747 748 ; 749 ; Source file: __U4D.asm 750 ; 751 ; $Id$ 752 ; Compiler support routines. 753 ; 754 ; 755 ; 756 ; Copyright (C) 2012-2016 Oracle Corporation 757 ; 758 ; This file is part of VirtualBox Open Source Edition (OSE), as 759 ; available from http://www.virtualbox.org. This file is free software; 760 ; you can redistribute it and/or modify it under the terms of the GNU 761 ; General Public License (GPL) as published by the Free Software 762 ; Foundation, in version 2 as it comes in the "COPYING" file of the 763 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 764 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 765 ; 766 767 ; 768 ; Source file: __U8RS.asm 769 ; 770 ; $Id$ 771 ; Compiler support routines. 772 ; 773 ; 774 ; 775 ; Copyright (C) 2012-2015 Oracle Corporation 776 ; 777 ; This file is part of VirtualBox Open Source Edition (OSE), as 778 ; available from http://www.virtualbox.org. This file is free software; 779 ; you can redistribute it and/or modify it under the terms of the GNU 780 ; General Public License (GPL) as published by the Free Software 781 ; Foundation, in version 2 as it comes in the "COPYING" file of the 782 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 783 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 784 ; 785 786 ; 787 ; Source file: __U8LS.asm 788 ; 789 ; $Id$ 790 ; Compiler support routines. 791 ; 792 ; 793 ; 794 ; Copyright (C) 2012-2015 Oracle Corporation 795 ; 796 ; This file is part of VirtualBox Open Source Edition (OSE), as 797 ; available from http://www.virtualbox.org. This file is free software; 798 ; you can redistribute it and/or modify it under the terms of the GNU 799 ; General Public License (GPL) as published by the Free Software 800 ; Foundation, in version 2 as it comes in the "COPYING" file of the 801 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 802 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 803 ; 804 805 ; 806 ; Source file: fmemset.asm 807 ; 808 ; $Id$ 809 ; Compiler support routines. 810 ; 811 ; 812 ; 813 ; Copyright (C) 2012-2015 Oracle Corporation 814 ; 815 ; This file is part of VirtualBox Open Source Edition (OSE), as 816 ; available from http://www.virtualbox.org. This file is free software; 817 ; you can redistribute it and/or modify it under the terms of the GNU 818 ; General Public License (GPL) as published by the Free Software 819 ; Foundation, in version 2 as it comes in the "COPYING" file of the 820 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 821 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 822 ; 823 824 ; 825 ; Source file: fmemcpy.asm 731 826 ; 732 827 ; $Id$ … … 822 917 ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 823 918 ; 919 ; 920 921 ; 922 ; Source file: DoUInt32Div.c 923 ; 924 ; $Id$ 925 ; AHCI host adapter driver to boot from SATA disks. 926 ; 927 ; 928 ; 929 ; Copyright (C) 2011-2015 Oracle Corporation 930 ; 931 ; This file is part of VirtualBox Open Source Edition (OSE), as 932 ; available from http://www.virtualbox.org. This file is free software; 933 ; you can redistribute it and/or modify it under the terms of the GNU 934 ; General Public License (GPL) as published by the Free Software 935 ; Foundation, in version 2 as it comes in the "COPYING" file of the 936 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 937 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 938 939 ; 940 ; Source file: ASMBitLastSetU16.asm 941 ; 942 ; $Id$ 943 ; BiosCommonCode - ASMBitLastSetU16() - borrowed from IPRT. 944 ; 945 ; 946 ; 947 ; Copyright (C) 2006-2016 Oracle Corporation 948 ; 949 ; This file is part of VirtualBox Open Source Edition (OSE), as 950 ; available from http://www.virtualbox.org. This file is free software; 951 ; you can redistribute it and/or modify it under the terms of the GNU 952 ; General Public License (GPL) as published by the Free Software 953 ; Foundation, in version 2 as it comes in the "COPYING" file of the 954 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 955 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 824 956 ; 825 957 … … 856 988 db 001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h 857 989 _pktacc: ; 0xf006a LB 0xc 858 db 000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 0 01h, 083h, 09ch, 092h990 db 000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 07dh, 081h, 018h, 091h 859 991 _softrst: ; 0xf0076 LB 0xc 860 992 db 000h, 000h, 000h, 000h, 000h, 000h, 02ch, 02eh, 0bdh, 03bh, 0bdh, 03bh 861 993 _dskacc: ; 0xf0082 LB 0x2e 862 994 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 02ah, 046h, 02bh, 000h, 000h, 000h, 000h 863 db 0 2fh, 081h, 018h, 082h, 06ah, 091h, 014h, 092h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h995 db 0abh, 07fh, 094h, 080h, 0e6h, 08fh, 090h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h 864 996 db 032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h 865 997 … … 1058 1190 times 1144 db 0 1059 1191 1060 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8 ca5class=CODE group=AUTO1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8d88 class=CODE group=AUTO 1061 1193 rom_scan_: ; 0xf1600 LB 0x52 1062 1194 push bp ; 55 … … 1318 1450 int 010h ; cd 10 1319 1451 jmp short 017c3h ; eb 03 1320 call 07 cd3h ; e8 10 651452 call 07b4fh ; e8 8c 63 1321 1453 mov sp, bp ; 89 ec 1322 1454 pop bp ; 5d … … 1464 1596 mov bx, strict word 0000ah ; bb 0a 00 1465 1597 xor cx, cx ; 31 c9 1466 call 0a 190h ; e8 b3 881598 call 0a020h ; e8 43 87 1467 1599 mov word [bp-008h], ax ; 89 46 f8 1468 1600 mov cx, dx ; 89 d1 … … 1701 1833 mov dx, word [bp-026h] ; 8b 56 da 1702 1834 mov si, word [bp-01eh] ; 8b 76 e2 1703 call 0a 20ah ; e8 f2 861835 call 0a050h ; e8 38 85 1704 1836 mov ax, dx ; 89 d0 1705 1837 xor ah, dh ; 30 f4 … … 2162 2294 mov dx, word [es:si] ; 26 8b 14 2163 2295 mov si, strict word 00018h ; be 18 00 2164 call 0a 20ah ; e8 78 822296 call 0a050h ; e8 be 80 2165 2297 xor dh, dh ; 30 f6 2166 2298 mov word [bp-014h], dx ; 89 56 ec … … 2172 2304 mov dx, word [es:si] ; 26 8b 14 2173 2305 mov si, strict word 00020h ; be 20 00 2174 call 0a 20ah ; e8 58 822306 call 0a050h ; e8 9e 80 2175 2307 mov bx, dx ; 89 d3 2176 2308 mov word [bp-010h], dx ; 89 56 f0 … … 2204 2336 mov dx, word [es:si] ; 26 8b 14 2205 2337 mov si, strict word 00008h ; be 08 00 2206 call 0a 20ah ; e8 05 822338 call 0a050h ; e8 4b 80 2207 2339 mov word [bp-010h], dx ; 89 56 f0 2208 2340 mov bx, word [bp-016h] ; 8b 5e ea … … 2213 2345 mov dx, word [es:si] ; 26 8b 14 2214 2346 mov si, strict word 00018h ; be 18 00 2215 call 0a 20ah ; e8 e7 812347 call 0a050h ; e8 2d 80 2216 2348 mov bl, dl ; 88 d3 2217 2349 and bl, 00fh ; 80 e3 0f … … 2791 2923 mov dx, word [es:di+036h] ; 26 8b 55 36 2792 2924 mov si, strict word 0000bh ; be 0b 00 2793 call 0a 20ah ; e8 0b 7c2925 call 0a050h ; e8 51 7a 2794 2926 mov word [bp-02ah], dx ; 89 56 d6 2795 2927 mov word [bp-026h], cx ; 89 4e da … … 3083 3215 mov dx, word [bp-022h] ; 8b 56 de 3084 3216 mov si, strict word 00018h ; be 18 00 3085 call 0a 20ah ; e8 2e 793217 call 0a050h ; e8 74 77 3086 3218 xor dh, dh ; 30 f6 3087 3219 mov word [bp-014h], dx ; 89 56 ec … … 3091 3223 mov dx, word [bp-022h] ; 8b 56 de 3092 3224 mov si, strict word 00020h ; be 20 00 3093 call 0a 20ah ; e8 17 793225 call 0a050h ; e8 5d 77 3094 3226 mov bx, dx ; 89 d3 3095 3227 mov word [bp-024h], dx ; 89 56 dc … … 3125 3257 mov dx, word [bp-022h] ; 8b 56 de 3126 3258 mov si, strict word 00008h ; be 08 00 3127 call 0a 20ah ; e8 c3 783259 call 0a050h ; e8 09 77 3128 3260 mov word [bp-00ch], ax ; 89 46 f4 3129 3261 mov word [bp-020h], bx ; 89 5e e0 … … 3132 3264 mov word [bp-024h], dx ; 89 56 dc 3133 3265 mov si, strict word 00010h ; be 10 00 3134 call 0a 20ah ; e8 ae 783266 call 0a050h ; e8 f4 76 3135 3267 mov word [bp-022h], dx ; 89 56 de 3136 3268 mov ax, dx ; 89 d0 … … 5442 5574 mov dx, ss ; 8c d2 5443 5575 lea ax, [bp-026h] ; 8d 46 da 5444 call 0a 21ah ; e8 e8 635576 call 0a070h ; e8 3e 62 5445 5577 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 5446 5578 mov ax, strict word 00011h ; b8 11 00 … … 5934 6066 xor dl, dl ; 30 d2 5935 6067 xor cx, cx ; 31 c9 5936 call 0a 1c9h ; e8 23 5e6068 call 0a000h ; e8 5a 5c 5937 6069 xor bx, bx ; 31 db 5938 6070 add ax, si ; 01 f0 … … 5940 6072 mov bx, di ; 89 fb 5941 6073 xor cx, cx ; 31 c9 5942 call 0a 1c9h ; e8 16 5e6074 call 0a000h ; e8 4d 5c 5943 6075 mov bx, ax ; 89 c3 5944 6076 mov ax, word [bp-00ah] ; 8b 46 f6 … … 5975 6107 mov dx, ss ; 8c d2 5976 6108 lea ax, [bp-030h] ; 8d 46 d0 5977 call 0a 21ah ; e8 10 5e6109 call 0a070h ; e8 66 5c 5978 6110 mov word [bp-030h], strict word 00028h ; c7 46 d0 28 00 5979 6111 mov ax, word [bp-00eh] ; 8b 46 f2 … … 6329 6461 mov dx, ss ; 8c d2 6330 6462 lea ax, [bp-02eh] ; 8d 46 d2 6331 call 0a 21ah ; e8 28 5a6463 call 0a070h ; e8 7e 58 6332 6464 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 6333 6465 mov ax, word [bp-014h] ; 8b 46 ec … … 6861 6993 mov CL, strict byte 004h ; b1 04 6862 6994 sar ax, CL ; d3 f8 6863 call 07 f13h ; e8 8b 316995 call 07d8fh ; e8 07 30 6864 6996 cmp byte [bp+004h], 002h ; 80 7e 04 02 6865 6997 jne short 04d93h ; 75 05 … … 7384 7516 out DX, AL ; ee 7385 7517 xor ax, ax ; 31 c0 7386 call 066 bch ; e8 ac147518 call 066ffh ; e8 ef 14 7387 7519 mov sp, bp ; 89 ec 7388 7520 pop bp ; 5d … … 8363 8495 mov dx, word [bp+00ch] ; 8b 56 0c 8364 8496 mov si, strict word 00020h ; be 20 00 8365 call 0a 20ah ; e8 d2 468497 call 0a050h ; e8 18 45 8366 8498 test ax, ax ; 85 c0 8367 8499 jne short 05b48h ; 75 0c … … 8401 8533 mov bx, strict word 0003fh ; bb 3f 00 8402 8534 xor cx, cx ; 31 c9 8403 call 0a 1c9h ; e8 38 468535 call 0a000h ; e8 6f 44 8404 8536 mov bx, ax ; 89 c3 8405 8537 mov cx, dx ; 89 d1 8406 8538 mov ax, word [bp-004h] ; 8b 46 fc 8407 8539 mov dx, si ; 89 f2 8408 call 0a 190h ; e8 f3 458540 call 0a020h ; e8 83 44 8409 8541 mov word [es:di+002h], ax ; 26 89 45 02 8410 8542 cmp ax, 00400h ; 3d 00 04 … … 8623 8755 mov bx, cx ; 89 cb 8624 8756 xor cx, cx ; 31 c9 8625 call 0a 1c9h ; e8 17 448757 call 0a000h ; e8 4e 42 8626 8758 xor bx, bx ; 31 db 8627 8759 add ax, word [bp-00ch] ; 03 46 f4 … … 8629 8761 mov bx, word [bp-010h] ; 8b 5e f0 8630 8762 xor cx, cx ; 31 c9 8631 call 0a 1c9h ; e8 08 448763 call 0a000h ; e8 3f 42 8632 8764 xor bx, bx ; 31 db 8633 8765 add ax, di ; 01 f8 … … 8803 8935 mov bx, word [bp-00ch] ; 8b 5e f4 8804 8936 xor cx, cx ; 31 c9 8805 call 0a 1c9h ; e8 31 428937 call 0a000h ; e8 68 40 8806 8938 mov bx, di ; 89 fb 8807 8939 xor cx, cx ; 31 c9 8808 call 0a 1c9h ; e8 2a 428940 call 0a000h ; e8 61 40 8809 8941 mov word [bp-008h], ax ; 89 46 f8 8810 8942 mov word [bp-006h], dx ; 89 56 fa … … 8972 9104 xor bx, bx ; 31 db 8973 9105 mov si, strict word 00020h ; be 20 00 8974 call 0a 1fah ; e8 c0 409106 call 0a060h ; e8 26 3f 8975 9107 mov word [bp-00eh], ax ; 89 46 f2 8976 9108 mov word [bp-010h], bx ; 89 5e f0 … … 9137 9269 mov dx, si ; 89 f2 9138 9270 mov si, strict word 00020h ; be 20 00 9139 call 0a 20ah ; e8 d9 3e9271 call 0a050h ; e8 1f 3d 9140 9272 mov bx, di ; 89 fb 9141 9273 mov word [es:bx+014h], dx ; 26 89 57 14 … … 9490 9622 pop bp ; 5d 9491 9623 retn ; c3 9492 set_enable_a20_: ; 0xf66bc LB 0x30 9624 timer_wait_: ; 0xf66bc LB 0x43 9625 push bp ; 55 9626 mov bp, sp ; 89 e5 9627 push bx ; 53 9628 push cx ; 51 9629 push ax ; 50 9630 mov bx, strict word 0000fh ; bb 0f 00 9631 xor cx, cx ; 31 c9 9632 call 0a020h ; e8 56 39 9633 mov cx, ax ; 89 c1 9634 mov bx, dx ; 89 d3 9635 mov dx, strict word 00061h ; ba 61 00 9636 in AL, DX ; ec 9637 db 02ah, 0e4h 9638 ; sub ah, ah ; 2a e4 9639 and AL, strict byte 010h ; 24 10 9640 mov byte [bp-006h], al ; 88 46 fa 9641 add cx, strict byte 0ffffh ; 83 c1 ff 9642 adc bx, strict byte 0ffffh ; 83 d3 ff 9643 cmp bx, strict byte 0ffffh ; 83 fb ff 9644 jne short 066e9h ; 75 05 9645 cmp cx, strict byte 0ffffh ; 83 f9 ff 9646 je short 066f8h ; 74 0f 9647 mov dx, strict word 00061h ; ba 61 00 9648 in AL, DX ; ec 9649 db 02ah, 0e4h 9650 ; sub ah, ah ; 2a e4 9651 and AL, strict byte 010h ; 24 10 9652 cmp al, byte [bp-006h] ; 3a 46 fa 9653 jne short 066e9h ; 75 f3 9654 jmp short 066d9h ; eb e1 9655 lea sp, [bp-004h] ; 8d 66 fc 9656 pop cx ; 59 9657 pop bx ; 5b 9658 pop bp ; 5d 9659 retn ; c3 9660 set_enable_a20_: ; 0xf66ff LB 0x30 9493 9661 push bp ; 55 9494 9662 mov bp, sp ; 89 e5 … … 9503 9671 mov cl, al ; 88 c1 9504 9672 test bx, bx ; 85 db 9505 je short 06 6d5h ; 74 059673 je short 06718h ; 74 05 9506 9674 or AL, strict byte 002h ; 0c 02 9507 9675 out DX, AL ; ee 9508 jmp short 06 6d8h ; eb 039676 jmp short 0671bh ; eb 03 9509 9677 and AL, strict byte 0fdh ; 24 fd 9510 9678 out DX, AL ; ee 9511 9679 test cl, 002h ; f6 c1 02 9512 je short 06 6e2h ; 74 059680 je short 06725h ; 74 05 9513 9681 mov ax, strict word 00001h ; b8 01 00 9514 jmp short 06 6e4h ; eb 029682 jmp short 06727h ; eb 02 9515 9683 xor ax, ax ; 31 c0 9516 9684 lea sp, [bp-006h] ; 8d 66 fa … … 9520 9688 pop bp ; 5d 9521 9689 retn ; c3 9522 set_e820_range_: ; 0xf6 6ec LB 0x8b9690 set_e820_range_: ; 0xf672f LB 0x88 9523 9691 push si ; 56 9524 9692 push bp ; 55 … … 9549 9717 pop si ; 5e 9550 9718 retn 0000ah ; c2 0a 00 9551 db 0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 08 7h, 083h, 052h, 04fh, 041h, 024h9552 db 0 00h, 017h, 06ch, 0b3h, 067h, 0c7h, 067h, 05fh, 068h, 065h, 068h, 06ah, 068h, 06fh, 068h, 017h9553 db 0 69h, 0b3h, 06ah, 0d2h, 06ah, 058h, 068h, 058h, 068h, 09ch, 06bh, 0c7h, 06bh, 0dah, 06bh, 0e9h9554 db 0 6bh, 05fh, 068h, 0f2h, 06bh9555 _int15_function: ; 0xf67 77 LB 0x4d69719 db 0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h 9720 db 0c4h, 06ah, 0f3h, 067h, 007h, 068h, 0a3h, 068h, 0a9h, 068h, 0aeh, 068h, 0b3h, 068h, 05bh, 069h 9721 db 07fh, 069h, 09ch, 068h, 09ch, 068h, 049h, 06ah, 074h, 06ah, 087h, 06ah, 096h, 06ah, 0a3h, 068h 9722 db 09fh, 06ah 9723 _int15_function: ; 0xf67b7 LB 0x343 9556 9724 push bp ; 55 9557 9725 mov bp, sp ; 89 e5 … … 9562 9730 mov dx, ax ; 89 c2 9563 9731 cmp ax, 000ech ; 3d ec 00 9564 jnbe short 067 bdh ; 77 359732 jnbe short 067fdh ; 77 35 9565 9733 push CS ; 0e 9566 9734 pop ES ; 07 9567 mov cx, strict word 0001 2h ; b9 12009568 mov di, 067 42h ; bf 42679735 mov cx, strict word 00011h ; b9 11 00 9736 mov di, 06785h ; bf 85 67 9569 9737 repne scasb ; f2 ae 9570 9738 sal cx, 1 ; d1 e1 9571 9739 mov di, cx ; 89 cf 9572 mov si, word [cs:di+067 53h] ; 2e 8b b5 53679740 mov si, word [cs:di+06795h] ; 2e 8b b5 95 67 9573 9741 mov ax, word [bp+012h] ; 8b 46 12 9574 9742 xor ah, ah ; 30 e4 9575 9743 mov cx, word [bp+018h] ; 8b 4e 18 9576 9744 and cl, 0feh ; 80 e1 fe 9577 mov bx, word [bp+018h] ; 8b 5e189578 or bl, 001h ; 80 cb019579 mov dx, ax ; 89 c29580 or dh, 086h ; 80 ce869745 mov dx, word [bp+018h] ; 8b 56 18 9746 or dl, 001h ; 80 ca 01 9747 mov bx, ax ; 89 c3 9748 or bh, 086h ; 80 cf 86 9581 9749 jmp si ; ff e6 9582 9750 mov ax, word [bp+012h] ; 8b 46 12 9583 9751 xor ah, ah ; 30 e4 9584 9752 cmp ax, 000c0h ; 3d c0 00 9585 je short 06 7c0h ; 74 039586 jmp near 06 c17h ; e9 57 049753 je short 06800h ; 74 03 9754 jmp near 06ac4h ; e9 c4 02 9587 9755 or byte [bp+018h], 001h ; 80 4e 18 01 9588 jmp near 06 bbeh ; e9 f7 039756 jmp near 06a6bh ; e9 64 02 9589 9757 mov dx, ax ; 89 c2 9590 9758 cmp ax, strict word 00001h ; 3d 01 00 9591 jc short 06 7dch ; 72 0e9592 jbe short 06 7f0h ; 76 209759 jc short 0681ch ; 72 0e 9760 jbe short 06830h ; 76 20 9593 9761 cmp ax, strict word 00003h ; 3d 03 00 9594 je short 068 1dh ; 74 489762 je short 06861h ; 74 4c 9595 9763 cmp ax, strict word 00002h ; 3d 02 00 9596 je short 068 00h ; 74 269597 jmp short 068 2ah ; eb 4e9764 je short 06840h ; 74 26 9765 jmp short 0686eh ; eb 52 9598 9766 test ax, ax ; 85 c0 9599 jne short 068 2ah ; 75 4a9767 jne short 0686eh ; 75 4e 9600 9768 xor ax, ax ; 31 c0 9601 call 066 bch ; e8 d7fe9769 call 066ffh ; e8 da fe 9602 9770 and byte [bp+018h], 0feh ; 80 66 18 fe 9603 9771 mov byte [bp+013h], 000h ; c6 46 13 00 9604 jmp near 068 58h ; e9 68009772 jmp near 0689ch ; e9 6c 00 9605 9773 mov ax, strict word 00001h ; b8 01 00 9606 call 066 bch ; e8 c6fe9774 call 066ffh ; e8 c9 fe 9607 9775 and byte [bp+018h], 0feh ; 80 66 18 fe 9608 9776 mov byte [bp+013h], dh ; 88 76 13 9609 jmp near 068 58h ; e9 58009777 jmp near 0689ch ; e9 5c 00 9610 9778 mov dx, 00092h ; ba 92 00 9611 9779 in AL, DX ; ec 9612 9780 db 02ah, 0e4h 9613 9781 ; sub ah, ah ; 2a e4 9614 shr ax, 1 ; d1 e8 9615 and ax, strict word 00001h ; 25 01 00 9616 mov dx, word [bp+012h] ; 8b 56 12 9617 mov dl, al ; 88 c2 9618 mov word [bp+012h], dx ; 89 56 12 9782 mov dx, ax ; 89 c2 9783 shr dx, 1 ; d1 ea 9784 and dl, 001h ; 80 e2 01 9785 mov ax, word [bp+012h] ; 8b 46 12 9786 mov al, dl ; 88 d0 9787 mov word [bp+012h], ax ; 89 46 12 9619 9788 and byte [bp+018h], 0feh ; 80 66 18 fe 9620 mov byte [bp+013h], ah ; 88 66 13 9621 jmp near 06858h ; e9 3b 00 9789 xor al, dl ; 30 d0 9790 mov byte [bp+013h], al ; 88 46 13 9791 jmp near 0689ch ; e9 3b 00 9622 9792 and byte [bp+018h], 0feh ; 80 66 18 fe 9623 9793 mov byte [bp+013h], ah ; 88 66 13 9624 9794 mov word [bp+00ch], ax ; 89 46 0c 9625 jmp near 068 58h ; e9 2e 009795 jmp near 0689ch ; e9 2e 00 9626 9796 mov bx, 00da0h ; bb a0 0d 9627 9797 mov cx, ds ; 8c d9 9628 9798 mov ax, strict word 00004h ; b8 04 00 9629 call 01933h ; e8 feb09799 call 01933h ; e8 ba b0 9630 9800 mov ax, word [bp+012h] ; 8b 46 12 9631 9801 xor ah, ah ; 30 e4 … … 9635 9805 mov ax, strict word 00004h ; b8 04 00 9636 9806 push ax ; 50 9637 call 01976h ; e8 30 b19807 call 01976h ; e8 ec b0 9638 9808 add sp, strict byte 00006h ; 83 c4 06 9639 9809 or byte [bp+018h], 001h ; 80 4e 18 01 … … 9647 9817 pop bp ; 5d 9648 9818 retn ; c3 9649 mov word [bp+018h], bx ; 89 5e189650 jmp near 069 11h ; e9 ac 009651 mov word [bp+018h], bx ; 89 5e189652 jmp short 068 58h ; eb ee9819 mov word [bp+018h], dx ; 89 56 18 9820 jmp near 06955h ; e9 ac 00 9821 mov word [bp+018h], dx ; 89 56 18 9822 jmp short 0689ch ; eb ee 9653 9823 mov word [bp+018h], cx ; 89 4e 18 9654 jmp short 068 55h ; eb e69824 jmp short 06899h ; eb e6 9655 9825 test byte [bp+012h], 0ffh ; f6 46 12 ff 9656 jne short 06 8e4h ; 75 6f9826 jne short 06928h ; 75 6f 9657 9827 mov dx, 000a0h ; ba a0 00 9658 9828 mov ax, strict word 00040h ; b8 40 00 9659 call 01652h ; e8 d4ad9829 call 01652h ; e8 90 ad 9660 9830 test AL, strict byte 001h ; a8 01 9661 jne short 06 8e1h ; 75 5f9831 jne short 06925h ; 75 5f 9662 9832 mov bx, strict word 00001h ; bb 01 00 9663 9833 mov dx, 000a0h ; ba a0 00 9664 9834 mov ax, strict word 00040h ; b8 40 00 9665 call 01660h ; e8 d2ad9835 call 01660h ; e8 8e ad 9666 9836 mov bx, word [bp+014h] ; 8b 5e 14 9667 9837 mov dx, 00098h ; ba 98 00 9668 9838 mov ax, strict word 00040h ; b8 40 00 9669 call 0167ch ; e8 e2ad9839 call 0167ch ; e8 9e ad 9670 9840 mov bx, word [bp+00ch] ; 8b 5e 0c 9671 9841 mov dx, 0009ah ; ba 9a 00 9672 9842 mov ax, strict word 00040h ; b8 40 00 9673 call 0167ch ; e8 d6ad9843 call 0167ch ; e8 92 ad 9674 9844 mov bx, word [bp+00eh] ; 8b 5e 0e 9675 9845 mov dx, 0009ch ; ba 9c 00 9676 9846 mov ax, strict word 00040h ; b8 40 00 9677 call 0167ch ; e8 caad9847 call 0167ch ; e8 86 ad 9678 9848 mov bx, word [bp+010h] ; 8b 5e 10 9679 9849 mov dx, 0009eh ; ba 9e 00 9680 9850 mov ax, strict word 00040h ; b8 40 00 9681 call 0167ch ; e8 bead9851 call 0167ch ; e8 7a ad 9682 9852 and byte [bp+018h], 0feh ; 80 66 18 fe 9683 9853 mov dx, 000a1h ; ba a1 00 … … 9688 9858 out DX, AL ; ee 9689 9859 mov ax, strict word 0000bh ; b8 0b 00 9690 call 016aeh ; e8 ddad9860 call 016aeh ; e8 99 ad 9691 9861 mov dl, al ; 88 c2 9692 9862 or dl, 040h ; 80 ca 40 9693 9863 xor dh, dh ; 30 f6 9694 9864 mov ax, strict word 0000bh ; b8 0b 00 9695 call 016c9h ; e8 ebad9696 jmp near 068 58h ; e9 77 ff9697 jmp near 06 bb5h ; e9 d1 029865 call 016c9h ; e8 a7 ad 9866 jmp near 0689ch ; e9 77 ff 9867 jmp near 06a62h ; e9 3a 01 9698 9868 cmp ax, strict word 00001h ; 3d 01 00 9699 jne short 069 05h ; 75 1c9869 jne short 06949h ; 75 1c 9700 9870 xor bx, bx ; 31 db 9701 9871 mov dx, 000a0h ; ba a0 00 9702 9872 mov ax, strict word 00040h ; b8 40 00 9703 call 01660h ; e8 6cad9873 call 01660h ; e8 28 ad 9704 9874 and byte [bp+018h], 0feh ; 80 66 18 fe 9705 9875 mov ax, strict word 0000bh ; b8 0b 00 9706 call 016aeh ; e8 b0ad9876 call 016aeh ; e8 6c ad 9707 9877 mov dl, al ; 88 c2 9708 9878 and dl, 0bfh ; 80 e2 bf 9709 jmp short 06 8d6h ; eb d19710 mov word [bp+018h], bx ; 89 5e189711 mov ax, dx ; 89 d09712 xor ah, dh ; 30 f49713 xor dl, dl ; 30 d29879 jmp short 0691ah ; eb d1 9880 mov word [bp+018h], dx ; 89 56 18 9881 mov ax, bx ; 89 d8 9882 xor ah, bh ; 30 fc 9883 xor bl, bl ; 30 db 9714 9884 dec ax ; 48 9715 or dx, ax ; 09 c2 9716 mov word [bp+012h], dx ; 89 56 12 9717 jmp near 06858h ; e9 41 ff 9718 cli ; fa 9719 mov ax, strict word 00001h ; b8 01 00 9720 call 066bch ; e8 9e fd 9721 mov di, ax ; 89 c7 9722 mov CL, strict byte 004h ; b1 04 9723 mov dx, word [bp+014h] ; 8b 56 14 9724 sal dx, CL ; d3 e2 9725 mov si, word [bp+006h] ; 8b 76 06 9726 add si, dx ; 01 d6 9727 mov CL, strict byte 00ch ; b1 0c 9728 mov ax, word [bp+014h] ; 8b 46 14 9729 shr ax, CL ; d3 e8 9730 mov cl, al ; 88 c1 9731 cmp si, dx ; 39 d6 9732 jnc short 0693bh ; 73 02 9733 db 0feh, 0c1h 9734 ; inc cl ; fe c1 9735 mov dx, word [bp+006h] ; 8b 56 06 9736 add dx, strict byte 00008h ; 83 c2 08 9737 mov ax, word [bp+014h] ; 8b 46 14 9738 mov bx, strict word 0002fh ; bb 2f 00 9739 call 0167ch ; e8 32 ad 9740 mov dx, word [bp+006h] ; 8b 56 06 9741 add dx, strict byte 0000ah ; 83 c2 0a 9742 mov ax, word [bp+014h] ; 8b 46 14 9743 mov bx, si ; 89 f3 9744 call 0167ch ; e8 24 ad 9745 mov bl, cl ; 88 cb 9746 xor bh, bh ; 30 ff 9747 mov dx, word [bp+006h] ; 8b 56 06 9748 add dx, strict byte 0000ch ; 83 c2 0c 9749 mov ax, word [bp+014h] ; 8b 46 14 9750 call 01660h ; e8 f8 ac 9751 mov dx, word [bp+006h] ; 8b 56 06 9752 add dx, strict byte 0000dh ; 83 c2 0d 9753 mov ax, word [bp+014h] ; 8b 46 14 9754 mov bx, 00093h ; bb 93 00 9755 call 01660h ; e8 e9 ac 9756 mov dx, word [bp+006h] ; 8b 56 06 9757 add dx, strict byte 0000eh ; 83 c2 0e 9758 mov ax, word [bp+014h] ; 8b 46 14 9759 xor bx, bx ; 31 db 9760 call 0167ch ; e8 f7 ac 9761 mov dx, word [bp+006h] ; 8b 56 06 9762 add dx, strict byte 00020h ; 83 c2 20 9763 mov ax, word [bp+014h] ; 8b 46 14 9764 mov bx, strict word 0ffffh ; bb ff ff 9765 call 0167ch ; e8 e8 ac 9766 mov dx, word [bp+006h] ; 8b 56 06 9767 add dx, strict byte 00022h ; 83 c2 22 9768 mov ax, word [bp+014h] ; 8b 46 14 9769 xor bx, bx ; 31 db 9770 call 0167ch ; e8 da ac 9771 mov dx, word [bp+006h] ; 8b 56 06 9772 add dx, strict byte 00024h ; 83 c2 24 9773 mov ax, word [bp+014h] ; 8b 46 14 9774 mov bx, strict word 0000fh ; bb 0f 00 9775 call 01660h ; e8 af ac 9776 mov dx, word [bp+006h] ; 8b 56 06 9777 add dx, strict byte 00025h ; 83 c2 25 9778 mov ax, word [bp+014h] ; 8b 46 14 9779 mov bx, 0009bh ; bb 9b 00 9780 call 01660h ; e8 a0 ac 9781 mov dx, word [bp+006h] ; 8b 56 06 9782 add dx, strict byte 00026h ; 83 c2 26 9783 mov ax, word [bp+014h] ; 8b 46 14 9784 xor bx, bx ; 31 db 9785 call 0167ch ; e8 ae ac 9786 mov ax, ss ; 8c d0 9787 mov CL, strict byte 004h ; b1 04 9788 mov si, ax ; 89 c6 9789 sal si, CL ; d3 e6 9790 mov CL, strict byte 00ch ; b1 0c 9791 shr ax, CL ; d3 e8 9792 mov cx, ax ; 89 c1 9793 mov dx, word [bp+006h] ; 8b 56 06 9794 add dx, strict byte 00028h ; 83 c2 28 9795 mov ax, word [bp+014h] ; 8b 46 14 9796 mov bx, strict word 0ffffh ; bb ff ff 9797 call 0167ch ; e8 91 ac 9798 mov dx, word [bp+006h] ; 8b 56 06 9799 add dx, strict byte 0002ah ; 83 c2 2a 9800 mov ax, word [bp+014h] ; 8b 46 14 9801 mov bx, si ; 89 f3 9802 call 0167ch ; e8 83 ac 9803 mov bl, cl ; 88 cb 9804 xor bh, bh ; 30 ff 9805 mov dx, word [bp+006h] ; 8b 56 06 9806 add dx, strict byte 0002ch ; 83 c2 2c 9807 mov ax, word [bp+014h] ; 8b 46 14 9808 call 01660h ; e8 57 ac 9809 mov dx, word [bp+006h] ; 8b 56 06 9810 add dx, strict byte 0002dh ; 83 c2 2d 9811 mov ax, word [bp+014h] ; 8b 46 14 9812 mov bx, 00093h ; bb 93 00 9813 call 01660h ; e8 48 ac 9814 mov dx, word [bp+006h] ; 8b 56 06 9815 add dx, strict byte 0002eh ; 83 c2 2e 9816 mov ax, word [bp+014h] ; 8b 46 14 9817 xor bx, bx ; 31 db 9818 call 0167ch ; e8 56 ac 9819 mov si, word [bp+006h] ; 8b 76 06 9820 mov es, [bp+014h] ; 8e 46 14 9821 mov cx, word [bp+010h] ; 8b 4e 10 9822 push DS ; 1e 9823 push eax ; 66 50 9824 db 066h, 033h, 0c0h 9825 ; xor eax, eax ; 66 33 c0 9826 mov ds, ax ; 8e d8 9827 mov word [00467h], sp ; 89 26 67 04 9828 mov [00469h], ss ; 8c 16 69 04 9829 call 06a42h ; e8 00 00 9830 pop di ; 5f 9831 add di, strict byte 0001bh ; 83 c7 1b 9832 push strict byte 00020h ; 6a 20 9833 push di ; 57 9834 lgdt [es:si+008h] ; 26 0f 01 54 08 9835 lidt [cs:0efefh] ; 2e 0f 01 1e ef ef 9836 mov eax, cr0 ; 0f 20 c0 9837 or AL, strict byte 001h ; 0c 01 9838 mov cr0, eax ; 0f 22 c0 9839 retf ; cb 9840 mov ax, strict word 00028h ; b8 28 00 9841 mov ss, ax ; 8e d0 9842 mov ax, strict word 00010h ; b8 10 00 9843 mov ds, ax ; 8e d8 9844 mov ax, strict word 00018h ; b8 18 00 9845 mov es, ax ; 8e c0 9846 db 033h, 0f6h 9847 ; xor si, si ; 33 f6 9848 db 033h, 0ffh 9849 ; xor di, di ; 33 ff 9850 cld ; fc 9851 rep movsw ; f3 a5 9852 call 06a76h ; e8 00 00 9853 pop ax ; 58 9854 push 0f000h ; 68 00 f0 9855 add ax, strict byte 00018h ; 83 c0 18 9856 push ax ; 50 9857 mov ax, strict word 00028h ; b8 28 00 9858 mov ds, ax ; 8e d8 9859 mov es, ax ; 8e c0 9860 mov eax, cr0 ; 0f 20 c0 9861 and AL, strict byte 0feh ; 24 fe 9862 mov cr0, eax ; 0f 22 c0 9863 retf ; cb 9864 lidt [cs:0eff5h] ; 2e 0f 01 1e f5 ef 9865 db 033h, 0c0h 9866 ; xor ax, ax ; 33 c0 9867 mov ds, ax ; 8e d8 9868 mov es, ax ; 8e c0 9869 lss sp, [00467h] ; 0f b2 26 67 04 9870 pop eax ; 66 58 9871 pop DS ; 1f 9872 mov ax, di ; 89 f8 9873 call 066bch ; e8 15 fc 9874 sti ; fb 9875 mov byte [bp+013h], 000h ; c6 46 13 00 9876 and byte [bp+018h], 0feh ; 80 66 18 fe 9877 jmp near 06858h ; e9 a5 fd 9885 or bx, ax ; 09 c3 9886 mov word [bp+012h], bx ; 89 5e 12 9887 jmp near 0689ch ; e9 41 ff 9878 9888 mov ax, strict word 00031h ; b8 31 00 9879 call 016aeh ; e8 f5 ab9889 call 016aeh ; e8 4d ad 9880 9890 mov dh, al ; 88 c6 9881 9891 mov ax, strict word 00030h ; b8 30 00 9882 call 016aeh ; e8 ed ab9892 call 016aeh ; e8 45 ad 9883 9893 mov dl, al ; 88 c2 9884 9894 mov word [bp+012h], dx ; 89 56 12 9885 9895 cmp dx, strict byte 0ffc0h ; 83 fa c0 9886 jbe short 06 aach ; 76 e19896 jbe short 06978h ; 76 05 9887 9897 mov word [bp+012h], strict word 0ffc0h ; c7 46 12 c0 ff 9888 jmp short 06aach ; eb da 9898 and byte [bp+018h], 0feh ; 80 66 18 fe 9899 jmp near 0689ch ; e9 1d ff 9889 9900 cli ; fa 9890 9901 mov ax, strict word 00001h ; b8 01 00 9891 call 066 bch ; e8 e3 fb9902 call 066ffh ; e8 79 fd 9892 9903 mov dx, word [bp+006h] ; 8b 56 06 9893 9904 add dx, strict byte 00038h ; 83 c2 38 9894 9905 mov ax, word [bp+014h] ; 8b 46 14 9895 9906 mov bx, strict word 0ffffh ; bb ff ff 9896 call 0167ch ; e8 94 ab9907 call 0167ch ; e8 e7 ac 9897 9908 mov dx, word [bp+006h] ; 8b 56 06 9898 9909 add dx, strict byte 0003ah ; 83 c2 3a 9899 9910 mov ax, word [bp+014h] ; 8b 46 14 9900 9911 xor bx, bx ; 31 db 9901 call 0167ch ; e8 86 ab9912 call 0167ch ; e8 d9 ac 9902 9913 mov dx, word [bp+006h] ; 8b 56 06 9903 9914 add dx, strict byte 0003ch ; 83 c2 3c 9904 9915 mov ax, word [bp+014h] ; 8b 46 14 9905 9916 mov bx, strict word 0000fh ; bb 0f 00 9906 call 01660h ; e8 5b ab9917 call 01660h ; e8 ae ac 9907 9918 mov dx, word [bp+006h] ; 8b 56 06 9908 9919 add dx, strict byte 0003dh ; 83 c2 3d 9909 9920 mov ax, word [bp+014h] ; 8b 46 14 9910 9921 mov bx, 0009bh ; bb 9b 00 9911 call 01660h ; e8 4c ab9922 call 01660h ; e8 9f ac 9912 9923 mov dx, word [bp+006h] ; 8b 56 06 9913 9924 add dx, strict byte 0003eh ; 83 c2 3e 9914 9925 mov ax, word [bp+014h] ; 8b 46 14 9915 9926 xor bx, bx ; 31 db 9916 call 0167ch ; e8 5a ab9927 call 0167ch ; e8 ad ac 9917 9928 mov AL, strict byte 011h ; b0 11 9918 9929 mov dx, strict word 00020h ; ba 20 00 … … 9943 9954 out DX, AL ; ee 9944 9955 mov si, word [bp+006h] ; 8b 76 06 9945 call 06 b60h ; e8 00 009956 call 06a0dh ; e8 00 00 9946 9957 pop di ; 5f 9947 9958 add di, strict byte 00018h ; 83 c7 18 … … 9971 9982 push cx ; 51 9972 9983 retf ; cb 9973 jmp near 068 58h ; e9 bc fc9984 jmp near 0689ch ; e9 53 fe 9974 9985 mov bx, 00da0h ; bb a0 0d 9975 9986 mov cx, ds ; 8c d9 9976 9987 mov ax, strict word 00004h ; b8 04 00 9977 call 01933h ; e8 8c ad9988 call 01933h ; e8 df ae 9978 9989 mov ax, 0086eh ; b8 6e 08 9979 9990 push ax ; 50 9980 9991 mov ax, strict word 00004h ; b8 04 00 9981 9992 push ax ; 50 9982 call 01976h ; e8 c4 ad9993 call 01976h ; e8 17 af 9983 9994 add sp, strict byte 00004h ; 83 c4 04 9984 9995 or byte [bp+018h], 001h ; 80 4e 18 01 … … 9987 9998 or ah, 086h ; 80 cc 86 9988 9999 mov word [bp+012h], ax ; 89 46 12 9989 jmp near 068 58h ; e9 91 fc10000 jmp near 0689ch ; e9 28 fe 9990 10001 mov word [bp+018h], cx ; 89 4e 18 9991 10002 mov word [bp+012h], ax ; 89 46 12 9992 10003 mov word [bp+00ch], 0e6f5h ; c7 46 0c f5 e6 9993 10004 mov word [bp+014h], 0f000h ; c7 46 14 00 f0 9994 jmp near 068 58h ; e9 7e fc10005 jmp near 0689ch ; e9 15 fe 9995 10006 mov dx, strict word 0000eh ; ba 0e 00 9996 10007 mov ax, strict word 00040h ; b8 40 00 9997 call 0166eh ; e8 8b aa10008 call 0166eh ; e8 de ab 9998 10009 mov word [bp+014h], ax ; 89 46 14 9999 jmp near 06 aach ; e9 c3fe10010 jmp near 06978h ; e9 e2 fe 10000 10011 mov ax, 0089dh ; b8 9d 08 10001 10012 push ax ; 50 10002 10013 mov ax, strict word 00008h ; b8 08 00 10003 jmp short 06 baeh ; eb bc10014 jmp short 06a5bh ; eb bc 10004 10015 test byte [bp+012h], 0ffh ; f6 46 12 ff 10005 jne short 06 c17h ; 75 1f10016 jne short 06ac4h ; 75 1f 10006 10017 mov word [bp+012h], ax ; 89 46 12 10007 10018 mov ax, word [bp+00ch] ; 8b 46 0c 10008 10019 xor ah, ah ; 30 e4 10009 10020 cmp ax, strict word 00001h ; 3d 01 00 10010 jc short 06 c10h ; 72 0b10021 jc short 06abdh ; 72 0b 10011 10022 cmp ax, strict word 00003h ; 3d 03 00 10012 jnbe short 06 c10h ; 77 0610023 jnbe short 06abdh ; 77 06 10013 10024 mov word [bp+018h], cx ; 89 4e 18 10014 jmp near 068 58h ; e9 48 fc10025 jmp near 0689ch ; e9 df fd 10015 10026 or byte [bp+018h], 001h ; 80 4e 18 01 10016 jmp near 068 58h ; e9 41 fc10027 jmp near 0689ch ; e9 d8 fd 10017 10028 mov bx, 00da0h ; bb a0 0d 10018 10029 mov cx, ds ; 8c d9 10019 10030 mov ax, strict word 00004h ; b8 04 00 10020 call 01933h ; e8 11 ad10031 call 01933h ; e8 64 ae 10021 10032 push word [bp+00ch] ; ff 76 0c 10022 10033 push word [bp+012h] ; ff 76 12 … … 10025 10036 mov ax, strict word 00004h ; b8 04 00 10026 10037 push ax ; 50 10027 call 01976h ; e8 43 ad10038 call 01976h ; e8 96 ae 10028 10039 add sp, strict byte 00008h ; 83 c4 08 10029 jmp near 06bb5h ; e9 7c ff 10030 in ax, 06dh ; e5 6d 10031 movd mm4, [bx+06eh] ; 0f 6e 67 6e 10032 mov [bp-054h], gs ; 8c 6e ac 10040 jmp near 06a62h ; e9 7c ff 10041 arpl [si-073h], bp ; 63 6c 8d 10042 insb ; 6c 10043 in ax, 06ch ; e5 6c 10044 or ch, byte [di+02ah] ; 0a 6d 2a 10045 insw ; 6d 10046 dec cx ; 49 10047 insw ; 6d 10048 outsw ; 6f 10049 insw ; 6d 10050 xchg bp, ax ; 95 10051 insw ; 6d 10052 shr byte [di+006h], CL ; d2 6d 06 10033 10053 outsb ; 6e 10034 int 06eh ; cd 6e 10035 rep outsb ; f3 6e 10036 sbb word [bx+056h], bp ; 19 6f 56 10037 outsw ; 6f 10038 db 08ah 10039 outsw ; 6f 10040 _int15_function32: ; 0xf6c4d LB 0x3cf 10054 _int15_function32: ; 0xf6afa LB 0x39e 10041 10055 push bp ; 55 10042 10056 mov bp, sp ; 89 e5 … … 10050 10064 xor dh, dh ; 30 f6 10051 10065 cmp ax, 000e8h ; 3d e8 00 10052 je short 06 cb4h ; 74 4b10066 je short 06b60h ; 74 4a 10053 10067 cmp ax, 000d0h ; 3d d0 00 10054 je short 06 cadh ; 74 3f10068 je short 06b2dh ; 74 12 10055 10069 cmp ax, 00086h ; 3d 86 00 10056 jne short 06 cd2h ; 75 5f10070 jne short 06b5eh ; 75 3e 10057 10071 sti ; fb 10058 mov ax, word [bp+01ch] ; 8b 46 1c 10059 mov dx, word [bp+018h] ; 8b 56 18 10060 sal eax, 010h ; 66 c1 e0 10 10061 db 08bh, 0c2h 10062 ; mov ax, dx ; 8b c2 10063 mov ebx, strict dword 00000000fh ; 66 bb 0f 00 00 00 10064 db 066h, 033h, 0d2h 10065 ; xor edx, edx ; 66 33 d2 10066 div ebx ; 66 f7 f3 10067 db 066h, 08bh, 0c8h 10068 ; mov ecx, eax ; 66 8b c8 10069 in AL, strict byte 061h ; e4 61 10070 and AL, strict byte 010h ; 24 10 10071 db 08ah, 0e0h 10072 ; mov ah, al ; 8a e0 10073 db 066h, 00bh, 0c9h 10074 ; or ecx, ecx ; 66 0b c9 10075 je near 06caah ; 0f 84 0e 00 10076 in AL, strict byte 061h ; e4 61 10077 and AL, strict byte 010h ; 24 10 10078 db 03ah, 0c4h 10079 ; cmp al, ah ; 3a c4 10080 je short 06c9ch ; 74 f8 10081 db 08ah, 0e0h 10082 ; mov ah, al ; 8a e0 10083 dec ecx ; 66 49 10084 jne short 06c9ch ; 75 f2 10085 jmp near 06e61h ; e9 b4 01 10072 mov dx, word [bp+01ch] ; 8b 56 1c 10073 mov ax, word [bp+018h] ; 8b 46 18 10074 call 066bch ; e8 92 fb 10075 jmp near 06cdfh ; e9 b2 01 10086 10076 cmp dx, strict byte 0004fh ; 83 fa 4f 10087 je short 06cb6h ; 74 04 10088 jmp short 06cd2h ; eb 1e 10089 jmp short 06d0ch ; eb 56 10077 jne short 06b5eh ; 75 2c 10090 10078 cmp word [bp+016h], 05052h ; 81 7e 16 52 50 10091 jne short 06 d16h ; 75 5910079 jne short 06b94h ; 75 5b 10092 10080 cmp word [bp+014h], 04f43h ; 81 7e 14 43 4f 10093 jne short 06 d16h ; 75 5210081 jne short 06b94h ; 75 54 10094 10082 cmp word [bp+01eh], 04d4fh ; 81 7e 1e 4f 4d 10095 jne short 06 d16h ; 75 4b10083 jne short 06b94h ; 75 4d 10096 10084 cmp word [bp+01ch], 04445h ; 81 7e 1c 45 44 10097 je short 06cd4h ; 74 02 10098 jmp short 06d16h ; eb 42 10085 jne short 06b94h ; 75 46 10099 10086 mov ax, word [bp+00ah] ; 8b 46 0a 10100 10087 or ax, word [bp+008h] ; 0b 46 08 10101 jne short 06 d16h ; 75 3a10088 jne short 06b94h ; 75 3e 10102 10089 mov ax, word [bp+006h] ; 8b 46 06 10103 10090 or ax, word [bp+004h] ; 0b 46 04 10104 jne short 06d16h ; 75 32 10091 je short 06b62h ; 74 04 10092 jmp short 06b94h ; eb 34 10093 jmp short 06b8ah ; eb 28 10105 10094 mov word [bp+028h], bx ; 89 5e 28 10106 10095 mov ax, word [bp+014h] ; 8b 46 14 … … 10114 10103 mov word [bp+020h], 03332h ; c7 46 20 32 33 10115 10104 mov word [bp+022h], 04941h ; c7 46 22 41 49 10116 jmp near 06 e61h ; e9 55 0110105 jmp near 06cdfh ; e9 55 01 10117 10106 cmp dx, strict byte 00020h ; 83 fa 20 10118 je short 06 d1ch ; 74 0b10107 je short 06b9ah ; 74 0b 10119 10108 cmp dx, strict byte 00001h ; 83 fa 01 10120 je short 06 d19h ; 74 0310121 jmp near 06 e34h ; e9 1b 0110122 jmp near 06 fdch ; e9 c00210109 je short 06b97h ; 74 03 10110 jmp near 06cb2h ; e9 1b 01 10111 jmp near 06e58h ; e9 be 02 10123 10112 cmp word [bp+01ah], 0534dh ; 81 7e 1a 4d 53 10124 jne short 06 d16h ; 75 f310113 jne short 06b94h ; 75 f3 10125 10114 cmp word [bp+018h], 04150h ; 81 7e 18 50 41 10126 jne short 06 d16h ; 75 ec10115 jne short 06b94h ; 75 ec 10127 10116 mov ax, strict word 00035h ; b8 35 00 10128 call 016aeh ; e8 7e a910117 call 016aeh ; e8 00 ab 10129 10118 mov bl, al ; 88 c3 10130 10119 xor bh, bh ; 30 ff … … 10133 10122 sal bx, 1 ; d1 e3 10134 10123 rcl dx, 1 ; d1 d2 10135 loop 06 d39h ; e2 fa10124 loop 06bb7h ; e2 fa 10136 10125 mov ax, strict word 00034h ; b8 34 00 10137 call 016aeh ; e8 69 a910126 call 016aeh ; e8 eb aa 10138 10127 xor ah, ah ; 30 e4 10139 10128 mov dx, bx ; 89 da … … 10143 10132 adc dx, 00100h ; 81 d2 00 01 10144 10133 cmp dx, 00100h ; 81 fa 00 01 10145 jc short 06 d5fh ; 72 0610146 jne short 06 d8dh ; 75 3210134 jc short 06bddh ; 72 06 10135 jne short 06c0bh ; 75 32 10147 10136 test bx, bx ; 85 db 10148 jnbe short 06 d8dh ; 77 2e10137 jnbe short 06c0bh ; 77 2e 10149 10138 mov ax, strict word 00031h ; b8 31 00 10150 call 016aeh ; e8 49 a910139 call 016aeh ; e8 cb aa 10151 10140 mov bl, al ; 88 c3 10152 10141 xor bh, bh ; 30 ff … … 10155 10144 sal bx, 1 ; d1 e3 10156 10145 rcl dx, 1 ; d1 d2 10157 loop 06 d6eh ; e2 fa10146 loop 06bech ; e2 fa 10158 10147 mov ax, strict word 00030h ; b8 30 00 10159 call 016aeh ; e8 34 a910148 call 016aeh ; e8 b6 aa 10160 10149 xor ah, ah ; 30 e4 10161 10150 or bx, ax ; 09 c3 … … 10163 10152 sal bx, 1 ; d1 e3 10164 10153 rcl dx, 1 ; d1 d2 10165 loop 06 d81h ; e2 fa10154 loop 06bffh ; e2 fa 10166 10155 add bx, strict byte 00000h ; 83 c3 00 10167 10156 adc dx, strict byte 00010h ; 83 d2 10 10168 10157 mov ax, strict word 00062h ; b8 62 00 10169 call 016aeh ; e8 1b a910158 call 016aeh ; e8 9d aa 10170 10159 xor ah, ah ; 30 e4 10171 10160 mov word [bp-00ah], ax ; 89 46 f6 … … 10175 10164 sal word [bp-00ah], 1 ; d1 66 f6 10176 10165 rcl word [bp-008h], 1 ; d1 56 f8 10177 loop 06 da0h ; e2 f810166 loop 06c1eh ; e2 f8 10178 10167 mov ax, strict word 00061h ; b8 61 00 10179 call 016aeh ; e8 00 a910168 call 016aeh ; e8 82 aa 10180 10169 xor ah, ah ; 30 e4 10181 10170 or word [bp-00ah], ax ; 09 46 f6 … … 10184 10173 mov word [bp-00ah], strict word 00000h ; c7 46 f6 00 00 10185 10174 mov ax, strict word 00063h ; b8 63 00 10186 call 016aeh ; e8 ea a8 10175 call 016aeh ; e8 6c aa 10176 mov byte [bp-004h], al ; 88 46 fc 10187 10177 mov byte [bp-006h], al ; 88 46 fa 10188 mov byte [bp-004h], al ; 88 46 fc10189 10178 mov ax, word [bp+014h] ; 8b 46 14 10190 10179 cmp ax, strict word 00009h ; 3d 09 00 10191 jnbe short 06 e34h ; 77 6210180 jnbe short 06cb2h ; 77 62 10192 10181 mov si, ax ; 89 c6 10193 10182 sal si, 1 ; d1 e6 10194 mov cx, bx ; 89 d910195 add cx, strict byte 00000h ; 83 c10010196 mov ax, dx ; 89 d010197 adc ax, strict word 0ffffh ; 15 ffff10198 jmp word [cs:si+06 c39h] ; 2e ff a4 39 6c10183 mov ax, bx ; 89 d8 10184 add ax, strict word 00000h ; 05 00 00 10185 mov cx, dx ; 89 d1 10186 adc cx, strict byte 0ffffh ; 83 d1 ff 10187 jmp word [cs:si+06ae6h] ; 2e ff a4 e6 6a 10199 10188 mov ax, strict word 00001h ; b8 01 00 10200 10189 push ax ; 50 … … 10210 10199 xor bx, bx ; 31 db 10211 10200 xor cx, cx ; 31 c9 10212 call 06 6ech ; e8 ea f810201 call 0672fh ; e8 af fa 10213 10202 mov word [bp+014h], strict word 00001h ; c7 46 14 01 00 10214 10203 mov word [bp+016h], strict word 00000h ; c7 46 16 00 00 10215 jmp near 06 fc1h ; e9 b20110204 jmp near 06e3dh ; e9 b0 01 10216 10205 mov ax, strict word 00002h ; b8 02 00 10217 10206 push ax ; 50 … … 10227 10216 mov bx, 0fc00h ; bb 00 fc 10228 10217 mov cx, strict word 00009h ; b9 09 00 10229 call 06 6ech ; e8 bf f810218 call 0672fh ; e8 84 fa 10230 10219 mov word [bp+014h], strict word 00002h ; c7 46 14 02 00 10231 jmp short 06 e07h ; eb d310220 jmp short 06c85h ; eb d3 10232 10221 mov bx, 00da0h ; bb a0 0d 10233 10222 mov cx, ds ; 8c d9 10234 10223 mov ax, strict word 00004h ; b8 04 00 10235 call 01933h ; e8 f4 aa10224 call 01933h ; e8 76 ac 10236 10225 push word [bp+014h] ; ff 76 14 10237 10226 push word [bp+020h] ; ff 76 20 … … 10240 10229 mov ax, strict word 00004h ; b8 04 00 10241 10230 push ax ; 50 10242 call 01976h ; e8 26 ab10231 call 01976h ; e8 a8 ac 10243 10232 add sp, strict byte 00008h ; 83 c4 08 10244 10233 or byte [bp+028h], 001h ; 80 4e 28 01 … … 10264 10253 xor bx, bx ; 31 db 10265 10254 mov cx, strict word 0000fh ; b9 0f 00 10266 call 06 6ech ; e8 68 f810255 call 0672fh ; e8 2d fa 10267 10256 mov word [bp+014h], strict word 00003h ; c7 46 14 03 00 10268 jmp near 06 e07h ; e9 7b ff10257 jmp near 06c85h ; e9 7b ff 10269 10258 mov dx, strict word 00001h ; ba 01 00 10270 10259 push dx ; 52 … … 10272 10261 push dx ; 52 10273 10262 push dx ; 52 10274 push ax ; 5010275 10263 push cx ; 51 10264 push ax ; 50 10276 10265 mov dx, word [bp+004h] ; 8b 56 04 10277 10266 mov ax, word [bp+024h] ; 8b 46 24 10278 10267 xor bx, bx ; 31 db 10279 10268 mov cx, strict word 00010h ; b9 10 00 10280 call 06 6ech ; e8 48 f810269 call 0672fh ; e8 0d fa 10281 10270 mov word [bp+014h], strict word 00004h ; c7 46 14 04 00 10282 jmp near 06 e07h ; e9 5b ff10271 jmp near 06c85h ; e9 5b ff 10283 10272 mov si, strict word 00003h ; be 03 00 10284 10273 push si ; 56 … … 10290 10279 mov dx, word [bp+004h] ; 8b 56 04 10291 10280 mov si, word [bp+024h] ; 8b 76 24 10292 mov bx, cx ; 89 cb 10293 mov cx, ax ; 89 c1 10281 mov bx, ax ; 89 c3 10294 10282 mov ax, si ; 89 f0 10295 call 06 6ech ; e8 27 f810283 call 0672fh ; e8 ee f9 10296 10284 mov word [bp+014h], strict word 00005h ; c7 46 14 05 00 10297 jmp near 06 e07h ; e9 3aff10285 jmp near 06c85h ; e9 3c ff 10298 10286 mov ax, strict word 00002h ; b8 02 00 10299 10287 push ax ; 50 … … 10309 10297 xor bx, bx ; 31 db 10310 10298 mov cx, 0fec0h ; b9 c0 fe 10311 call 06 6ech ; e8 01 f810299 call 0672fh ; e8 c8 f9 10312 10300 mov word [bp+014h], strict word 00006h ; c7 46 14 06 00 10313 jmp near 06 e07h ; e9 14ff10301 jmp near 06c85h ; e9 16 ff 10314 10302 mov ax, strict word 00002h ; b8 02 00 10315 10303 push ax ; 50 … … 10325 10313 xor bx, bx ; 31 db 10326 10314 mov cx, 0fee0h ; b9 e0 fe 10327 call 06 6ech ; e8 db f710315 call 0672fh ; e8 a2 f9 10328 10316 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 10329 jmp near 06 e07h ; e9 eefe10317 jmp near 06c85h ; e9 f0 fe 10330 10318 mov ax, strict word 00002h ; b8 02 00 10331 10319 push ax ; 50 … … 10339 10327 xor bx, bx ; 31 db 10340 10328 mov cx, strict word 0fffch ; b9 fc ff 10341 call 06 6ech ; e8 bb f710342 cmp byte [bp-00 6h], 000h ; 80 7e fa0010343 jne short 06 f3eh ; 75 0710329 call 0672fh ; e8 82 f9 10330 cmp byte [bp-004h], 000h ; 80 7e fc 00 10331 jne short 06dbah ; 75 07 10344 10332 mov ax, word [bp-008h] ; 8b 46 f8 10345 10333 test ax, ax ; 85 c0 10346 je short 06 f4eh ; 74 1010334 je short 06dcah ; 74 10 10347 10335 mov word [bp+014h], strict word 00009h ; c7 46 14 09 00 10348 jmp near 06 e07h ; e9 c1fe10336 jmp near 06c85h ; e9 c3 fe 10349 10337 mov word [bp+014h], strict word 00008h ; c7 46 14 08 00 10350 jmp near 06 e07h ; e9 b9fe10338 jmp near 06c85h ; e9 bb fe 10351 10339 mov word [bp+014h], ax ; 89 46 14 10352 10340 mov word [bp+016h], ax ; 89 46 16 10353 jmp short 06 fc1h ; eb 6b10341 jmp short 06e3dh ; eb 6b 10354 10342 mov ax, strict word 00002h ; b8 02 00 10355 10343 push ax ; 50 … … 10363 10351 xor bx, bx ; 31 db 10364 10352 xor cx, cx ; 31 c9 10365 call 06 6ech ; e8 7f f710366 cmp byte [bp-00 6h], 000h ; 80 7e fa0010367 jne short 06 f7ah ; 75 0710353 call 0672fh ; e8 46 f9 10354 cmp byte [bp-004h], 000h ; 80 7e fc 00 10355 jne short 06df6h ; 75 07 10368 10356 mov ax, word [bp-008h] ; 8b 46 f8 10369 10357 test ax, ax ; 85 c0 10370 je short 06 f82h ; 74 0810358 je short 06dfeh ; 74 08 10371 10359 mov word [bp+014h], strict word 00009h ; c7 46 14 09 00 10372 jmp near 06 e07h ; e9 85fe10360 jmp near 06c85h ; e9 87 fe 10373 10361 mov word [bp+014h], ax ; 89 46 14 10374 10362 mov word [bp+016h], ax ; 89 46 16 10375 jmp short 06 fc1h ; eb 3710376 cmp byte [bp-00 6h], 000h ; 80 7e fa0010377 jne short 06 f96h ; 75 0610363 jmp short 06e3dh ; eb 37 10364 cmp byte [bp-004h], 000h ; 80 7e fc 00 10365 jne short 06e12h ; 75 06 10378 10366 cmp word [bp-008h], strict byte 00000h ; 83 7e f8 00 10379 je short 06 fc1h ; 74 2b10367 je short 06e3dh ; 74 2b 10380 10368 mov ax, strict word 00001h ; b8 01 00 10381 10369 push ax ; 50 10382 mov al, byte [bp-00 4h] ; 8a 46 fc10370 mov al, byte [bp-006h] ; 8a 46 fa 10383 10371 db 0feh, 0c0h 10384 10372 ; inc al ; fe c0 … … 10393 10381 xor bx, bx ; 31 db 10394 10382 xor cx, cx ; 31 c9 10395 call 06 6ech ; e8 33 f710383 call 0672fh ; e8 fa f8 10396 10384 xor ax, ax ; 31 c0 10397 10385 mov word [bp+014h], ax ; 89 46 14 … … 10402 10390 mov word [bp+01eh], strict word 00000h ; c7 46 1e 00 00 10403 10391 and byte [bp+028h], 0feh ; 80 66 28 fe 10404 jmp near 06 e61h ; e9 85fe10392 jmp near 06cdfh ; e9 87 fe 10405 10393 mov word [bp+028h], bx ; 89 5e 28 10406 10394 mov ax, strict word 00031h ; b8 31 00 10407 call 016aeh ; e8 c9 a610395 call 016aeh ; e8 4d a8 10408 10396 mov dh, al ; 88 c6 10409 10397 mov ax, strict word 00030h ; b8 30 00 10410 call 016aeh ; e8 c1 a610398 call 016aeh ; e8 45 a8 10411 10399 mov dl, al ; 88 c2 10412 10400 mov word [bp+01ch], dx ; 89 56 1c 10413 10401 cmp dx, 03c00h ; 81 fa 00 3c 10414 jbe short 06 ffdh ; 76 0510402 jbe short 06e79h ; 76 05 10415 10403 mov word [bp+01ch], 03c00h ; c7 46 1c 00 3c 10416 10404 mov ax, strict word 00035h ; b8 35 00 10417 call 016aeh ; e8 ab a610405 call 016aeh ; e8 2f a8 10418 10406 mov dh, al ; 88 c6 10419 10407 mov ax, strict word 00034h ; b8 34 00 10420 call 016aeh ; e8 a3 a610408 call 016aeh ; e8 27 a8 10421 10409 mov dl, al ; 88 c2 10422 10410 mov word [bp+018h], dx ; 89 56 18 … … 10424 10412 mov word [bp+020h], ax ; 89 46 20 10425 10413 mov word [bp+014h], dx ; 89 56 14 10426 jmp near 06 e61h ; e9 45fe10427 _inv_op_handler: ; 0xf 701cLB 0x18f10414 jmp near 06cdfh ; e9 47 fe 10415 _inv_op_handler: ; 0xf6e98 LB 0x18f 10428 10416 push bp ; 55 10429 10417 mov bp, sp ; 89 e5 … … 10434 10422 les bx, [bp+018h] ; c4 5e 18 10435 10423 cmp byte [es:bx], 0f0h ; 26 80 3f f0 10436 jne short 0 7032h ; 75 0610424 jne short 06eaeh ; 75 06 10437 10425 inc word [bp+018h] ; ff 46 18 10438 jmp near 07 1a4h ; e9 72 0110426 jmp near 07020h ; e9 72 01 10439 10427 cmp word [es:bx], 0050fh ; 26 81 3f 0f 05 10440 je short 0 703ch ; 74 0310441 jmp near 07 1a0h ; e9 64 0110428 je short 06eb8h ; 74 03 10429 jmp near 0701ch ; e9 64 01 10442 10430 mov si, 00800h ; be 00 08 10443 10431 xor ax, ax ; 31 c0 … … 10468 10456 sal ax, 1 ; d1 e0 10469 10457 rcl dx, 1 ; d1 d2 10470 loop 0 708dh ; e2 fa10458 loop 06f09h ; e2 fa 10471 10459 cmp bx, dx ; 39 d3 10472 jne short 0 709bh ; 75 0410460 jne short 06f17h ; 75 04 10473 10461 cmp di, ax ; 39 c7 10474 je short 0 70a0h ; 74 0510462 je short 06f1ch ; 74 05 10475 10463 mov word [bp-006h], strict word 00001h ; c7 46 fa 01 00 10476 10464 mov es, [bp-008h] ; 8e 46 f8 … … 10483 10471 sal ax, 1 ; d1 e0 10484 10472 rcl dx, 1 ; d1 d2 10485 loop 0 70b6h ; e2 fa10473 loop 06f32h ; e2 fa 10486 10474 cmp bx, dx ; 39 d3 10487 jne short 0 70c4h ; 75 0410475 jne short 06f40h ; 75 04 10488 10476 cmp di, ax ; 39 c7 10489 je short 0 70c8h ; 74 0410477 je short 06f44h ; 74 04 10490 10478 or byte [bp-006h], 002h ; 80 4e fa 02 10491 10479 xor ax, ax ; 31 c0 … … 10537 10525 mov ax, strict word 00008h ; b8 08 00 10538 10526 test cx, strict word 00001h ; f7 c1 01 00 10539 je near 0 715dh ; 0f 84 02 0010527 je near 06fd9h ; 0f 84 02 00 10540 10528 mov es, ax ; 8e c0 10541 10529 test cx, strict word 00002h ; f7 c1 02 00 10542 je near 07 185h ; 0f 84 20 0010530 je near 07001h ; 0f 84 20 00 10543 10531 mov bx, word [word ss:00000h] ; 36 8b 1e 00 00 10544 10532 mov word [word ss:00008h], bx ; 36 89 1e 08 00 … … 10557 10545 mov ss, [word ss:00020h] ; 36 8e 16 20 00 10558 10546 iret ; cf 10559 jmp short 07 1a4h ; eb 0410547 jmp short 07020h ; eb 04 10560 10548 sti ; fb 10561 10549 hlt ; f4 10562 jmp short 07 1a1h ; eb fd10550 jmp short 0701dh ; eb fd 10563 10551 lea sp, [bp-004h] ; 8d 66 fc 10564 10552 pop di ; 5f … … 10566 10554 pop bp ; 5d 10567 10555 retn ; c3 10568 init_rtc_: ; 0xf7 1abLB 0x2810556 init_rtc_: ; 0xf7027 LB 0x28 10569 10557 push bp ; 55 10570 10558 mov bp, sp ; 89 e5 … … 10572 10560 mov dx, strict word 00026h ; ba 26 00 10573 10561 mov ax, strict word 0000ah ; b8 0a 00 10574 call 016c9h ; e8 11 a510562 call 016c9h ; e8 95 a6 10575 10563 mov dx, strict word 00002h ; ba 02 00 10576 10564 mov ax, strict word 0000bh ; b8 0b 00 10577 call 016c9h ; e8 08 a510565 call 016c9h ; e8 8c a6 10578 10566 mov ax, strict word 0000ch ; b8 0c 00 10579 call 016aeh ; e8 e7 a410567 call 016aeh ; e8 6b a6 10580 10568 mov ax, strict word 0000dh ; b8 0d 00 10581 call 016aeh ; e8 e1 a410569 call 016aeh ; e8 65 a6 10582 10570 lea sp, [bp-002h] ; 8d 66 fe 10583 10571 pop dx ; 5a 10584 10572 pop bp ; 5d 10585 10573 retn ; c3 10586 rtc_updating_: ; 0xf7 1d3LB 0x2110574 rtc_updating_: ; 0xf704f LB 0x21 10587 10575 push bp ; 55 10588 10576 mov bp, sp ; 89 e5 … … 10590 10578 mov dx, 061a8h ; ba a8 61 10591 10579 dec dx ; 4a 10592 je short 07 1ebh ; 74 0e10580 je short 07067h ; 74 0e 10593 10581 mov ax, strict word 0000ah ; b8 0a 00 10594 call 016aeh ; e8 cb a410582 call 016aeh ; e8 4f a6 10595 10583 test AL, strict byte 080h ; a8 80 10596 jne short 07 1dah ; 75 f310584 jne short 07056h ; 75 f3 10597 10585 xor ax, ax ; 31 c0 10598 jmp short 07 1eeh ; eb 0310586 jmp short 0706ah ; eb 03 10599 10587 mov ax, strict word 00001h ; b8 01 00 10600 10588 lea sp, [bp-002h] ; 8d 66 fe … … 10602 10590 pop bp ; 5d 10603 10591 retn ; c3 10604 _int70_function: ; 0xf7 1f4LB 0xbf10592 _int70_function: ; 0xf7070 LB 0xbf 10605 10593 push bp ; 55 10606 10594 mov bp, sp ; 89 e5 … … 10608 10596 push ax ; 50 10609 10597 mov ax, strict word 0000bh ; b8 0b 00 10610 call 016aeh ; e8 af a410598 call 016aeh ; e8 33 a6 10611 10599 mov bl, al ; 88 c3 10612 10600 mov byte [bp-004h], al ; 88 46 fc 10613 10601 mov ax, strict word 0000ch ; b8 0c 00 10614 call 016aeh ; e8 a4 a410602 call 016aeh ; e8 28 a6 10615 10603 mov dl, al ; 88 c2 10616 10604 test bl, 060h ; f6 c3 60 10617 jne short 07 214h ; 75 0310618 jmp near 07 29ah ; e9 86 0010605 jne short 07090h ; 75 03 10606 jmp near 07116h ; e9 86 00 10619 10607 test AL, strict byte 020h ; a8 20 10620 je short 07 21ch ; 74 0410608 je short 07098h ; 74 04 10621 10609 sti ; fb 10622 10610 int 04ah ; cd 4a 10623 10611 cli ; fa 10624 10612 test dl, 040h ; f6 c2 40 10625 je short 07 284h ; 74 6310613 je short 07100h ; 74 63 10626 10614 mov dx, 000a0h ; ba a0 00 10627 10615 mov ax, strict word 00040h ; b8 40 00 10628 call 01652h ; e8 28 a410616 call 01652h ; e8 ac a5 10629 10617 test al, al ; 84 c0 10630 je short 07 29ah ; 74 6c10618 je short 07116h ; 74 6c 10631 10619 mov dx, 0009ch ; ba 9c 00 10632 10620 mov ax, strict word 00040h ; b8 40 00 10633 call 0168ah ; e8 53 a410621 call 0168ah ; e8 d7 a5 10634 10622 test dx, dx ; 85 d2 10635 jne short 07 286h ; 75 4b10623 jne short 07102h ; 75 4b 10636 10624 cmp ax, 003d1h ; 3d d1 03 10637 jnc short 07 286h ; 73 4610625 jnc short 07102h ; 73 46 10638 10626 mov dx, 00098h ; ba 98 00 10639 10627 mov ax, strict word 00040h ; b8 40 00 10640 call 0166eh ; e8 25 a410628 call 0166eh ; e8 a9 a5 10641 10629 mov si, ax ; 89 c6 10642 10630 mov dx, 0009ah ; ba 9a 00 10643 10631 mov ax, strict word 00040h ; b8 40 00 10644 call 0166eh ; e8 1a a410632 call 0166eh ; e8 9e a5 10645 10633 mov cx, ax ; 89 c1 10646 10634 xor bx, bx ; 31 db 10647 10635 mov dx, 000a0h ; ba a0 00 10648 10636 mov ax, strict word 00040h ; b8 40 00 10649 call 01660h ; e8 ff a310637 call 01660h ; e8 83 a5 10650 10638 mov dl, byte [bp-004h] ; 8a 56 fc 10651 10639 and dl, 037h ; 80 e2 37 10652 10640 xor dh, dh ; 30 f6 10653 10641 mov ax, strict word 0000bh ; b8 0b 00 10654 call 016c9h ; e8 5a a410642 call 016c9h ; e8 de a5 10655 10643 mov dx, cx ; 89 ca 10656 10644 mov ax, si ; 89 f0 10657 call 01652h ; e8 dc a310645 call 01652h ; e8 60 a5 10658 10646 mov bl, al ; 88 c3 10659 10647 or bl, 080h ; 80 cb 80 … … 10661 10649 mov dx, cx ; 89 ca 10662 10650 mov ax, si ; 89 f0 10663 call 01660h ; e8 dc a310664 jmp short 07 29ah ; eb 1410651 call 01660h ; e8 60 a5 10652 jmp short 07116h ; eb 14 10665 10653 mov bx, ax ; 89 c3 10666 10654 add bx, 0fc2fh ; 81 c3 2f fc … … 10669 10657 mov dx, 0009ch ; ba 9c 00 10670 10658 mov ax, strict word 00040h ; b8 40 00 10671 call 0169ch ; e8 02 a410672 call 0e030h ; e8 93 6d10659 call 0169ch ; e8 86 a5 10660 call 0e030h ; e8 17 6f 10673 10661 lea sp, [bp-002h] ; 8d 66 fe 10674 10662 pop si ; 5e 10675 10663 pop bp ; 5d 10676 10664 retn ; c3 10677 leave ; c910678 j c short 07296h ; 72 f010679 j c short 072bdh ; 72 1510680 jn c short 072fbh ; 73 5110681 jn c short 0724fh ; 73 a310682 j nc short 07288h ; 73 da10683 j nc short 072d1h ; 73 2110684 j e short 0732eh ; 74 7c10685 db 07 4h10686 _int1a_function: ; 0xf7 2b3LB 0x1d910665 inc bp ; 45 10666 jno short 0718eh ; 71 6c 10667 jno short 070b5h ; 71 91 10668 jno short 070f3h ; 71 cd 10669 jno short 07147h ; 71 1f 10670 jc short 07180h ; 72 56 10671 jc short 070c9h ; 72 9d 10672 jc short 07126h ; 72 f8 10673 db 072h 10674 _int1a_function: ; 0xf712f LB 0x1d9 10687 10675 push bp ; 55 10688 10676 mov bp, sp ; 89 e5 … … 10690 10678 mov al, byte [bp+013h] ; 8a 46 13 10691 10679 cmp AL, strict byte 007h ; 3c 07 10692 jnbe short 07 31ch ; 77 5e10680 jnbe short 07198h ; 77 5e 10693 10681 mov bl, al ; 88 c3 10694 10682 xor bh, bh ; 30 ff 10695 10683 sal bx, 1 ; d1 e3 10696 jmp word [cs:bx+07 2a3h] ; 2e ff a7 a3 7210684 jmp word [cs:bx+0711fh] ; 2e ff a7 1f 71 10697 10685 cli ; fa 10698 10686 mov bx, 0046eh ; bb 6e 04 … … 10709 10697 mov byte [es:bx], 000h ; 26 c6 07 00 10710 10698 sti ; fb 10711 jmp short 07 31ch ; eb 2c10699 jmp short 07198h ; eb 2c 10712 10700 cli ; fa 10713 10701 mov bx, 0046eh ; bb 6e 04 … … 10723 10711 sti ; fb 10724 10712 mov byte [bp+013h], 000h ; c6 46 13 00 10725 jmp short 07 31ch ; eb 0710726 call 07 1d3h ; e8 bb fe10713 jmp short 07198h ; eb 07 10714 call 0704fh ; e8 bb fe 10727 10715 test ax, ax ; 85 c0 10728 je short 07 31fh ; 74 0310729 jmp near 07 34dh ; e9 2e 0010716 je short 0719bh ; 74 03 10717 jmp near 071c9h ; e9 2e 00 10730 10718 xor ax, ax ; 31 c0 10731 call 016aeh ; e8 8a a310719 call 016aeh ; e8 0e a5 10732 10720 mov byte [bp+00fh], al ; 88 46 0f 10733 10721 mov ax, strict word 00002h ; b8 02 00 10734 call 016aeh ; e8 81 a310722 call 016aeh ; e8 05 a5 10735 10723 mov byte [bp+010h], al ; 88 46 10 10736 10724 mov ax, strict word 00004h ; b8 04 00 10737 call 016aeh ; e8 78 a310725 call 016aeh ; e8 fc a4 10738 10726 mov dl, al ; 88 c2 10739 10727 mov byte [bp+011h], al ; 88 46 11 10740 10728 mov ax, strict word 0000bh ; b8 0b 00 10741 call 016aeh ; e8 6d a310729 call 016aeh ; e8 f1 a4 10742 10730 and AL, strict byte 001h ; 24 01 10743 10731 mov byte [bp+00eh], al ; 88 46 0e … … 10747 10735 pop bp ; 5d 10748 10736 retn ; c3 10749 call 07 1d3h ; e8 7f fe10737 call 0704fh ; e8 7f fe 10750 10738 test ax, ax ; 85 c0 10751 je short 07 35bh ; 74 0310752 call 07 1abh ; e8 50 fe10739 je short 071d7h ; 74 03 10740 call 07027h ; e8 50 fe 10753 10741 mov dl, byte [bp+00fh] ; 8a 56 0f 10754 10742 xor dh, dh ; 30 f6 10755 10743 xor ax, ax ; 31 c0 10756 call 016c9h ; e8 64 a310744 call 016c9h ; e8 e8 a4 10757 10745 mov dl, byte [bp+010h] ; 8a 56 10 10758 10746 xor dh, dh ; 30 f6 10759 10747 mov ax, strict word 00002h ; b8 02 00 10760 call 016c9h ; e8 59 a310748 call 016c9h ; e8 dd a4 10761 10749 mov dl, byte [bp+011h] ; 8a 56 11 10762 10750 xor dh, dh ; 30 f6 10763 10751 mov ax, strict word 00004h ; b8 04 00 10764 call 016c9h ; e8 4e a310752 call 016c9h ; e8 d2 a4 10765 10753 mov ax, strict word 0000bh ; b8 0b 00 10766 call 016aeh ; e8 2d a310754 call 016aeh ; e8 b1 a4 10767 10755 mov bl, al ; 88 c3 10768 10756 and bl, 060h ; 80 e3 60 … … 10774 10762 xor dh, dh ; 30 f6 10775 10763 mov ax, strict word 0000bh ; b8 0b 00 10776 call 016c9h ; e8 2f a310764 call 016c9h ; e8 b3 a4 10777 10765 mov byte [bp+013h], 000h ; c6 46 13 00 10778 10766 mov byte [bp+012h], bl ; 88 5e 12 10779 jmp short 07 34dh ; eb aa10767 jmp short 071c9h ; eb aa 10780 10768 mov byte [bp+013h], 000h ; c6 46 13 00 10781 call 07 1d3h ; e8 29 fe10769 call 0704fh ; e8 29 fe 10782 10770 test ax, ax ; 85 c0 10783 je short 07 3b0h ; 74 0210784 jmp short 07 34dh ; eb 9d10771 je short 0722ch ; 74 02 10772 jmp short 071c9h ; eb 9d 10785 10773 mov ax, strict word 00009h ; b8 09 00 10786 call 016aeh ; e8 f8 a210774 call 016aeh ; e8 7c a4 10787 10775 mov byte [bp+010h], al ; 88 46 10 10788 10776 mov ax, strict word 00008h ; b8 08 00 10789 call 016aeh ; e8 ef a210777 call 016aeh ; e8 73 a4 10790 10778 mov byte [bp+00fh], al ; 88 46 0f 10791 10779 mov ax, strict word 00007h ; b8 07 00 10792 call 016aeh ; e8 e6 a210780 call 016aeh ; e8 6a a4 10793 10781 mov byte [bp+00eh], al ; 88 46 0e 10794 10782 mov ax, strict word 00032h ; b8 32 00 10795 call 016aeh ; e8 dd a210783 call 016aeh ; e8 61 a4 10796 10784 mov byte [bp+011h], al ; 88 46 11 10797 10785 mov byte [bp+012h], al ; 88 46 12 10798 jmp near 07 34dh ; e9 73 ff10799 call 07 1d3h ; e8 f6 fd10786 jmp near 071c9h ; e9 73 ff 10787 call 0704fh ; e8 f6 fd 10800 10788 test ax, ax ; 85 c0 10801 je short 07 3e7h ; 74 0610802 call 07 1abh ; e8 c7 fd10803 jmp near 07 34dh ; e9 66 ff10789 je short 07263h ; 74 06 10790 call 07027h ; e8 c7 fd 10791 jmp near 071c9h ; e9 66 ff 10804 10792 mov dl, byte [bp+010h] ; 8a 56 10 10805 10793 xor dh, dh ; 30 f6 10806 10794 mov ax, strict word 00009h ; b8 09 00 10807 call 016c9h ; e8 d7 a210795 call 016c9h ; e8 5b a4 10808 10796 mov dl, byte [bp+00fh] ; 8a 56 0f 10809 10797 xor dh, dh ; 30 f6 10810 10798 mov ax, strict word 00008h ; b8 08 00 10811 call 016c9h ; e8 cc a210799 call 016c9h ; e8 50 a4 10812 10800 mov dl, byte [bp+00eh] ; 8a 56 0e 10813 10801 xor dh, dh ; 30 f6 10814 10802 mov ax, strict word 00007h ; b8 07 00 10815 call 016c9h ; e8 c1 a210803 call 016c9h ; e8 45 a4 10816 10804 mov dl, byte [bp+011h] ; 8a 56 11 10817 10805 xor dh, dh ; 30 f6 10818 10806 mov ax, strict word 00032h ; b8 32 00 10819 call 016c9h ; e8 b6 a210807 call 016c9h ; e8 3a a4 10820 10808 mov ax, strict word 0000bh ; b8 0b 00 10821 call 016aeh ; e8 95 a210809 call 016aeh ; e8 19 a4 10822 10810 mov bl, al ; 88 c3 10823 10811 and bl, 07fh ; 80 e3 7f 10824 jmp near 07 390h ; e9 6f ff10812 jmp near 0720ch ; e9 6f ff 10825 10813 mov ax, strict word 0000bh ; b8 0b 00 10826 call 016aeh ; e8 87 a210814 call 016aeh ; e8 0b a4 10827 10815 mov bl, al ; 88 c3 10828 10816 mov word [bp+012h], strict word 00000h ; c7 46 12 00 00 10829 10817 test AL, strict byte 020h ; a8 20 10830 je short 07 435h ; 74 0310831 jmp near 07 34dh ; e9 18 ff10832 call 07 1d3h ; e8 9b fd10818 je short 072b1h ; 74 03 10819 jmp near 071c9h ; e9 18 ff 10820 call 0704fh ; e8 9b fd 10833 10821 test ax, ax ; 85 c0 10834 je short 07 43fh ; 74 0310835 call 07 1abh ; e8 6c fd10822 je short 072bbh ; 74 03 10823 call 07027h ; e8 6c fd 10836 10824 mov dl, byte [bp+00fh] ; 8a 56 0f 10837 10825 xor dh, dh ; 30 f6 10838 10826 mov ax, strict word 00001h ; b8 01 00 10839 call 016c9h ; e8 7f a210827 call 016c9h ; e8 03 a4 10840 10828 mov dl, byte [bp+010h] ; 8a 56 10 10841 10829 xor dh, dh ; 30 f6 10842 10830 mov ax, strict word 00003h ; b8 03 00 10843 call 016c9h ; e8 74 a210831 call 016c9h ; e8 f8 a3 10844 10832 mov dl, byte [bp+011h] ; 8a 56 11 10845 10833 xor dh, dh ; 30 f6 10846 10834 mov ax, strict word 00005h ; b8 05 00 10847 call 016c9h ; e8 69 a210835 call 016c9h ; e8 ed a3 10848 10836 mov dx, 000a1h ; ba a1 00 10849 10837 in AL, DX ; ec … … 10857 10845 xor dh, dh ; 30 f6 10858 10846 mov ax, strict word 0000bh ; b8 0b 00 10859 call 016c9h ; e8 50 a210860 jmp near 07 34dh ; e9 d1 fe10847 call 016c9h ; e8 d4 a3 10848 jmp near 071c9h ; e9 d1 fe 10861 10849 mov ax, strict word 0000bh ; b8 0b 00 10862 call 016aeh ; e8 2c a210850 call 016aeh ; e8 b0 a3 10863 10851 mov bl, al ; 88 c3 10864 10852 mov dl, al ; 88 c2 10865 10853 and dl, 057h ; 80 e2 57 10866 jmp near 07 392h ; e9 06 ff10867 send_to_mouse_ctrl_: ; 0xf7 48cLB 0x3810854 jmp near 0720eh ; e9 06 ff 10855 send_to_mouse_ctrl_: ; 0xf7308 LB 0x38 10868 10856 push bp ; 55 10869 10857 mov bp, sp ; 89 e5 … … 10876 10864 ; sub ah, ah ; 2a e4 10877 10865 test AL, strict byte 002h ; a8 02 10878 je short 07 4afh ; 74 1210866 je short 0732bh ; 74 12 10879 10867 mov ax, 008eeh ; b8 ee 08 10880 10868 push ax ; 50 … … 10883 10871 mov ax, strict word 00007h ; b8 07 00 10884 10872 push ax ; 50 10885 call 01976h ; e8 ca a410873 call 01976h ; e8 4e a6 10886 10874 add sp, strict byte 00006h ; 83 c4 06 10887 10875 mov AL, strict byte 0d4h ; b0 d4 … … 10897 10885 pop bp ; 5d 10898 10886 retn ; c3 10899 get_mouse_data_: ; 0xf7 4c4LB 0x5d10887 get_mouse_data_: ; 0xf7340 LB 0x5d 10900 10888 push bp ; 55 10901 10889 mov bp, sp ; 89 e5 … … 10912 10900 and ax, strict word 00021h ; 25 21 00 10913 10901 cmp ax, strict word 00021h ; 3d 21 00 10914 je short 07 507h ; 74 2810902 je short 07383h ; 74 28 10915 10903 test cx, cx ; 85 c9 10916 je short 07 507h ; 74 2410904 je short 07383h ; 74 24 10917 10905 mov dx, strict word 00061h ; ba 61 00 10918 10906 in AL, DX ; ec … … 10931 10919 xor ah, ah ; 30 e4 10932 10920 cmp dx, ax ; 39 c2 10933 je short 07 4eeh ; 74 ea10921 je short 0736ah ; 74 ea 10934 10922 dec cx ; 49 10935 jmp short 07 4d1h ; eb ca10923 jmp short 0734dh ; eb ca 10936 10924 test cx, cx ; 85 c9 10937 jne short 07 50fh ; 75 0410925 jne short 0738bh ; 75 04 10938 10926 mov AL, strict byte 001h ; b0 01 10939 jmp short 07 51ah ; eb 0b10927 jmp short 07396h ; eb 0b 10940 10928 mov dx, strict word 00060h ; ba 60 00 10941 10929 in AL, DX ; ec … … 10949 10937 pop bp ; 5d 10950 10938 retn ; c3 10951 set_kbd_command_byte_: ; 0xf7 521LB 0x3610939 set_kbd_command_byte_: ; 0xf739d LB 0x36 10952 10940 push bp ; 55 10953 10941 mov bp, sp ; 89 e5 … … 10960 10948 ; sub ah, ah ; 2a e4 10961 10949 test AL, strict byte 002h ; a8 02 10962 je short 07 544h ; 74 1210950 je short 073c0h ; 74 12 10963 10951 mov ax, 008f8h ; b8 f8 08 10964 10952 push ax ; 50 … … 10967 10955 mov ax, strict word 00007h ; b8 07 00 10968 10956 push ax ; 50 10969 call 01976h ; e8 35 a410957 call 01976h ; e8 b9 a5 10970 10958 add sp, strict byte 00006h ; 83 c4 06 10971 10959 mov AL, strict byte 060h ; b0 60 … … 10980 10968 pop bp ; 5d 10981 10969 retn ; c3 10982 _int74_function: ; 0xf7 557LB 0xd210970 _int74_function: ; 0xf73d3 LB 0xd2 10983 10971 push bp ; 55 10984 10972 mov bp, sp ; 89 e5 … … 10986 10974 mov dx, strict word 0000eh ; ba 0e 00 10987 10975 mov ax, strict word 00040h ; b8 40 00 10988 call 0166eh ; e8 08 a110976 call 0166eh ; e8 8c a2 10989 10977 mov cx, ax ; 89 c1 10990 10978 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 10995 10983 and AL, strict byte 021h ; 24 21 10996 10984 cmp AL, strict byte 021h ; 3c 21 10997 jne short 07 59bh ; 75 2210985 jne short 07417h ; 75 22 10998 10986 mov dx, strict word 00060h ; ba 60 00 10999 10987 in AL, DX ; ec … … 11003 10991 mov dx, strict word 00026h ; ba 26 00 11004 10992 mov ax, cx ; 89 c8 11005 call 01652h ; e8 c9 a010993 call 01652h ; e8 4d a2 11006 10994 mov byte [bp-002h], al ; 88 46 fe 11007 10995 mov dx, strict word 00027h ; ba 27 00 11008 10996 mov ax, cx ; 89 c8 11009 call 01652h ; e8 be a010997 call 01652h ; e8 42 a2 11010 10998 mov byte [bp-006h], al ; 88 46 fa 11011 10999 test AL, strict byte 080h ; a8 80 11012 jne short 07 59eh ; 75 0311013 jmp near 07 615h ; e9 77 0011000 jne short 0741ah ; 75 03 11001 jmp near 07491h ; e9 77 00 11014 11002 mov al, byte [bp-006h] ; 8a 46 fa 11015 11003 and AL, strict byte 007h ; 24 07 … … 11025 11013 add dx, strict byte 00028h ; 83 c2 28 11026 11014 mov ax, cx ; 89 c8 11027 call 01660h ; e8 9f a011015 call 01660h ; e8 23 a2 11028 11016 mov al, byte [bp-008h] ; 8a 46 f8 11029 11017 cmp al, byte [bp-004h] ; 3a 46 fc 11030 jc short 07 605h ; 72 3c11018 jc short 07481h ; 72 3c 11031 11019 mov dx, strict word 00028h ; ba 28 00 11032 11020 mov ax, cx ; 89 c8 11033 call 01652h ; e8 81 a011021 call 01652h ; e8 05 a2 11034 11022 xor ah, ah ; 30 e4 11035 11023 mov word [bp+00ch], ax ; 89 46 0c 11036 11024 mov dx, strict word 00029h ; ba 29 00 11037 11025 mov ax, cx ; 89 c8 11038 call 01652h ; e8 74 a011026 call 01652h ; e8 f8 a1 11039 11027 xor ah, ah ; 30 e4 11040 11028 mov word [bp+00ah], ax ; 89 46 0a 11041 11029 mov dx, strict word 0002ah ; ba 2a 00 11042 11030 mov ax, cx ; 89 c8 11043 call 01652h ; e8 67 a011031 call 01652h ; e8 eb a1 11044 11032 xor ah, ah ; 30 e4 11045 11033 mov word [bp+008h], ax ; 89 46 08 … … 11048 11036 mov byte [bp-002h], ah ; 88 66 fe 11049 11037 test byte [bp-006h], 080h ; f6 46 fa 80 11050 je short 07 608h ; 74 0a11038 je short 07484h ; 74 0a 11051 11039 mov word [bp+004h], strict word 00001h ; c7 46 04 01 00 11052 jmp short 07 608h ; eb 0311040 jmp short 07484h ; eb 03 11053 11041 inc byte [bp-002h] ; fe 46 fe 11054 11042 mov bl, byte [bp-002h] ; 8a 5e fe … … 11056 11044 mov dx, strict word 00026h ; ba 26 00 11057 11045 mov ax, cx ; 89 c8 11058 call 01660h ; e8 4b a011046 call 01660h ; e8 cf a1 11059 11047 mov sp, bp ; 89 ec 11060 11048 pop bp ; 5d 11061 11049 retn ; c3 11062 imul si, word [bp-019h], strict byte 00076h ; 6b 76 e7 7611063 db 067h, 077h, 0fch11064 ; jnbe short 0761ch ; 67 77 fc11065 j nbe short 07690h ; 77 6e11066 j s short 075d6h ; 78 b211067 j be short 075bch ; 76 9611068 j s short 0768bh ; 78 6311069 db 07 9h11070 _int15_function_mouse: ; 0xf7 629LB 0x3a011050 out 074h, ax ; e7 74 11051 arpl [di-01dh], si ; 63 75 e3 11052 jne short 07514h ; 75 78 11053 jbe short 07488h ; 76 ea 11054 jbe short 074ceh ; 76 2e 11055 jne short 074b4h ; 75 12 11056 jnbe short 07483h ; 77 df 11057 db 077h 11058 _int15_function_mouse: ; 0xf74a5 LB 0x3a0 11071 11059 push bp ; 55 11072 11060 mov bp, sp ; 89 e5 … … 11075 11063 mov dx, strict word 0000eh ; ba 0e 00 11076 11064 mov ax, strict word 00040h ; b8 40 00 11077 call 0166eh ; e8 35 a011065 call 0166eh ; e8 b9 a1 11078 11066 mov cx, ax ; 89 c1 11079 11067 cmp byte [bp+012h], 007h ; 80 7e 12 07 11080 jbe short 07 64ch ; 76 0b11068 jbe short 074c8h ; 76 0b 11081 11069 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11082 11070 mov byte [bp+013h], 001h ; c6 46 13 01 11083 jmp near 07 9c3h ; e9 77 0311071 jmp near 0783fh ; e9 77 03 11084 11072 mov ax, strict word 00065h ; b8 65 00 11085 call 07 521h ; e8 cf fe11073 call 0739dh ; e8 cf fe 11086 11074 and word [bp+018h], strict byte 0fffeh ; 83 66 18 fe 11087 11075 mov byte [bp+013h], 000h ; c6 46 13 00 11088 11076 mov bl, byte [bp+012h] ; 8a 5e 12 11089 11077 cmp bl, 007h ; 80 fb 07 11090 jnbe short 07 6c0h ; 77 5e11078 jnbe short 0753ch ; 77 5e 11091 11079 xor bh, bh ; 30 ff 11092 11080 sal bx, 1 ; d1 e3 11093 jmp word [cs:bx+07 619h] ; 2e ff a7 19 7611081 jmp word [cs:bx+07495h] ; 2e ff a7 95 74 11094 11082 cmp byte [bp+00dh], 001h ; 80 7e 0d 01 11095 jnbe short 07 6c3h ; 77 5211083 jnbe short 0753fh ; 77 52 11096 11084 mov dx, strict word 00027h ; ba 27 00 11097 11085 mov ax, cx ; 89 c8 11098 call 01652h ; e8 d9 9f11086 call 01652h ; e8 5d a1 11099 11087 test AL, strict byte 080h ; a8 80 11100 jne short 07 688h ; 75 0b11088 jne short 07504h ; 75 0b 11101 11089 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11102 11090 mov byte [bp+013h], 005h ; c6 46 13 05 11103 jmp near 07 9bdh ; e9 35 0311091 jmp near 07839h ; e9 35 03 11104 11092 cmp byte [bp+00dh], 000h ; 80 7e 0d 00 11105 jne short 07 692h ; 75 0411093 jne short 0750eh ; 75 04 11106 11094 mov AL, strict byte 0f5h ; b0 f5 11107 jmp short 07 694h ; eb 0211095 jmp short 07510h ; eb 02 11108 11096 mov AL, strict byte 0f4h ; b0 f4 11109 11097 xor ah, ah ; 30 e4 11110 call 07 48ch ; e8 f3 fd11098 call 07308h ; e8 f3 fd 11111 11099 test al, al ; 84 c0 11112 jne short 07 6c6h ; 75 2911100 jne short 07542h ; 75 29 11113 11101 mov dx, ss ; 8c d2 11114 11102 lea ax, [bp-006h] ; 8d 46 fa 11115 call 07 4c4h ; e8 1f fe11103 call 07340h ; e8 1f fe 11116 11104 test al, al ; 84 c0 11117 je short 07 6afh ; 74 0611105 je short 0752bh ; 74 06 11118 11106 cmp byte [bp-006h], 0fah ; 80 7e fa fa 11119 jne short 07 6c6h ; 75 1711120 jmp near 07 9bdh ; e9 0b 0311107 jne short 07542h ; 75 17 11108 jmp near 07839h ; e9 0b 03 11121 11109 mov al, byte [bp+00dh] ; 8a 46 0d 11122 11110 cmp AL, strict byte 001h ; 3c 01 11123 jc short 07 6bdh ; 72 0411111 jc short 07539h ; 72 04 11124 11112 cmp AL, strict byte 008h ; 3c 08 11125 jbe short 07 6c9h ; 76 0c11126 jmp near 07 864h ; e9 a4 0111127 jmp near 07 9a7h ; e9 e4 0211128 jmp near 07 9b5h ; e9 ef 0211129 jmp near 07 93bh ; e9 72 0211113 jbe short 07545h ; 76 0c 11114 jmp near 076e0h ; e9 a4 01 11115 jmp near 07823h ; e9 e4 02 11116 jmp near 07831h ; e9 ef 02 11117 jmp near 077b7h ; e9 72 02 11130 11118 mov dx, strict word 00027h ; ba 27 00 11131 11119 mov ax, cx ; 89 c8 11132 call 01652h ; e8 81 9f11120 call 01652h ; e8 05 a1 11133 11121 mov ah, byte [bp+00dh] ; 8a 66 0d 11134 11122 db 0feh, 0cch … … 11140 11128 mov dx, strict word 00027h ; ba 27 00 11141 11129 mov ax, cx ; 89 c8 11142 call 01660h ; e8 79 9f11130 call 01660h ; e8 fd a0 11143 11131 mov dx, strict word 00026h ; ba 26 00 11144 11132 mov ax, cx ; 89 c8 11145 call 01652h ; e8 63 9f11133 call 01652h ; e8 e7 a0 11146 11134 mov bl, al ; 88 c3 11147 11135 and bl, 0f8h ; 80 e3 f8 … … 11149 11137 mov dx, strict word 00026h ; ba 26 00 11150 11138 mov ax, cx ; 89 c8 11151 call 01660h ; e8 62 9f11139 call 01660h ; e8 e6 a0 11152 11140 mov ax, 000ffh ; b8 ff 00 11153 call 07 48ch ; e8 88 fd11141 call 07308h ; e8 88 fd 11154 11142 test al, al ; 84 c0 11155 jne short 07 6c6h ; 75 be11143 jne short 07542h ; 75 be 11156 11144 mov dx, ss ; 8c d2 11157 11145 lea ax, [bp-008h] ; 8d 46 f8 11158 call 07 4c4h ; e8 b4 fd11146 call 07340h ; e8 b4 fd 11159 11147 mov cl, al ; 88 c1 11160 11148 cmp byte [bp-008h], 0feh ; 80 7e f8 fe 11161 jne short 07 722h ; 75 0a11149 jne short 0759eh ; 75 0a 11162 11150 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11163 11151 mov byte [bp+013h], 004h ; c6 46 13 04 11164 jmp short 07 6afh ; eb 8d11152 jmp short 0752bh ; eb 8d 11165 11153 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 11166 je short 07 73ch ; 74 1411154 je short 075b8h ; 74 14 11167 11155 mov al, byte [bp-008h] ; 8a 46 f8 11168 11156 xor ah, ah ; 30 e4 … … 11172 11160 mov ax, strict word 00007h ; b8 07 00 11173 11161 push ax ; 50 11174 call 01976h ; e8 3d a211162 call 01976h ; e8 c1 a3 11175 11163 add sp, strict byte 00006h ; 83 c4 06 11176 11164 test cl, cl ; 84 c9 11177 jne short 07 6c6h ; 75 8611165 jne short 07542h ; 75 86 11178 11166 mov dx, ss ; 8c d2 11179 11167 lea ax, [bp-006h] ; 8d 46 fa 11180 call 07 4c4h ; e8 7c fd11168 call 07340h ; e8 7c fd 11181 11169 test al, al ; 84 c0 11182 jne short 07 7a2h ; 75 5611170 jne short 0761eh ; 75 56 11183 11171 mov dx, ss ; 8c d2 11184 11172 lea ax, [bp-004h] ; 8d 46 fc 11185 call 07 4c4h ; e8 70 fd11173 call 07340h ; e8 70 fd 11186 11174 test al, al ; 84 c0 11187 jne short 07 7a2h ; 75 4a11175 jne short 0761eh ; 75 4a 11188 11176 mov al, byte [bp-006h] ; 8a 46 fa 11189 11177 mov byte [bp+00ch], al ; 88 46 0c 11190 11178 mov al, byte [bp-004h] ; 8a 46 fc 11191 11179 mov byte [bp+00dh], al ; 88 46 0d 11192 jmp near 07 9bdh ; e9 56 0211180 jmp near 07839h ; e9 56 02 11193 11181 mov al, byte [bp+00dh] ; 8a 46 0d 11194 11182 cmp AL, strict byte 003h ; 3c 03 11195 jc short 07 77eh ; 72 1011196 jbe short 07 79ch ; 76 2c11183 jc short 075fah ; 72 10 11184 jbe short 07618h ; 76 2c 11197 11185 cmp AL, strict byte 006h ; 3c 06 11198 je short 07 7b1h ; 74 3d11186 je short 0762dh ; 74 3d 11199 11187 cmp AL, strict byte 005h ; 3c 05 11200 je short 07 7abh ; 74 3311188 je short 07627h ; 74 33 11201 11189 cmp AL, strict byte 004h ; 3c 04 11202 je short 07 7a5h ; 74 2911203 jmp short 07 7b7h ; eb 3911190 je short 07621h ; 74 29 11191 jmp short 07633h ; eb 39 11204 11192 cmp AL, strict byte 002h ; 3c 02 11205 je short 07 796h ; 74 1411193 je short 07612h ; 74 14 11206 11194 cmp AL, strict byte 001h ; 3c 01 11207 je short 07 790h ; 74 0a11195 je short 0760ch ; 74 0a 11208 11196 test al, al ; 84 c0 11209 jne short 07 7b7h ; 75 2d11197 jne short 07633h ; 75 2d 11210 11198 mov byte [bp-006h], 00ah ; c6 46 fa 0a 11211 jmp short 07 7bbh ; eb 2b11199 jmp short 07637h ; eb 2b 11212 11200 mov byte [bp-006h], 014h ; c6 46 fa 14 11213 jmp short 07 7bbh ; eb 2511201 jmp short 07637h ; eb 25 11214 11202 mov byte [bp-006h], 028h ; c6 46 fa 28 11215 jmp short 07 7bbh ; eb 1f11203 jmp short 07637h ; eb 1f 11216 11204 mov byte [bp-006h], 03ch ; c6 46 fa 3c 11217 jmp short 07 7bbh ; eb 1911218 jmp near 07 93bh ; e9 96 0111205 jmp short 07637h ; eb 19 11206 jmp near 077b7h ; e9 96 01 11219 11207 mov byte [bp-006h], 050h ; c6 46 fa 50 11220 jmp short 07 7bbh ; eb 1011208 jmp short 07637h ; eb 10 11221 11209 mov byte [bp-006h], 064h ; c6 46 fa 64 11222 jmp short 07 7bbh ; eb 0a11210 jmp short 07637h ; eb 0a 11223 11211 mov byte [bp-006h], 0c8h ; c6 46 fa c8 11224 jmp short 07 7bbh ; eb 0411212 jmp short 07637h ; eb 04 11225 11213 mov byte [bp-006h], 000h ; c6 46 fa 00 11226 11214 cmp byte [bp-006h], 000h ; 80 7e fa 00 11227 jbe short 07 7f1h ; 76 3011215 jbe short 0766dh ; 76 30 11228 11216 mov ax, 000f3h ; b8 f3 00 11229 call 07 48ch ; e8 c5 fc11217 call 07308h ; e8 c5 fc 11230 11218 test al, al ; 84 c0 11231 jne short 07 7e6h ; 75 1b11219 jne short 07662h ; 75 1b 11232 11220 mov dx, ss ; 8c d2 11233 11221 lea ax, [bp-004h] ; 8d 46 fc 11234 call 07 4c4h ; e8 f1 fc11222 call 07340h ; e8 f1 fc 11235 11223 mov al, byte [bp-006h] ; 8a 46 fa 11236 11224 xor ah, ah ; 30 e4 11237 call 07 48ch ; e8 b1 fc11225 call 07308h ; e8 b1 fc 11238 11226 mov dx, ss ; 8c d2 11239 11227 lea ax, [bp-004h] ; 8d 46 fc 11240 call 07 4c4h ; e8 e1 fc11241 jmp near 07 9bdh ; e9 d7 0111228 call 07340h ; e8 e1 fc 11229 jmp near 07839h ; e9 d7 01 11242 11230 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11243 11231 mov byte [bp+013h], 003h ; c6 46 13 03 11244 jmp near 07 9bdh ; e9 cc 0111232 jmp near 07839h ; e9 cc 01 11245 11233 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11246 11234 mov byte [bp+013h], 002h ; c6 46 13 02 11247 jmp near 07 9bdh ; e9 c1 0111235 jmp near 07839h ; e9 c1 01 11248 11236 cmp byte [bp+00dh], 004h ; 80 7e 0d 04 11249 jnc short 07 864h ; 73 6211237 jnc short 076e0h ; 73 62 11250 11238 mov ax, 000e8h ; b8 e8 00 11251 call 07 48ch ; e8 84 fc11239 call 07308h ; e8 84 fc 11252 11240 test al, al ; 84 c0 11253 jne short 07 85ah ; 75 4e11241 jne short 076d6h ; 75 4e 11254 11242 mov dx, ss ; 8c d2 11255 11243 lea ax, [bp-006h] ; 8d 46 fa 11256 call 07 4c4h ; e8 b0 fc11244 call 07340h ; e8 b0 fc 11257 11245 cmp byte [bp-006h], 0fah ; 80 7e fa fa 11258 je short 07 82eh ; 74 1411246 je short 076aah ; 74 14 11259 11247 mov al, byte [bp-006h] ; 8a 46 fa 11260 11248 xor ah, ah ; 30 e4 … … 11264 11252 mov ax, strict word 00007h ; b8 07 00 11265 11253 push ax ; 50 11266 call 01976h ; e8 4b a111254 call 01976h ; e8 cf a2 11267 11255 add sp, strict byte 00006h ; 83 c4 06 11268 11256 mov al, byte [bp+00dh] ; 8a 46 0d 11269 11257 xor ah, ah ; 30 e4 11270 call 07 48ch ; e8 56 fc11258 call 07308h ; e8 56 fc 11271 11259 mov dx, ss ; 8c d2 11272 11260 lea ax, [bp-006h] ; 8d 46 fa 11273 call 07 4c4h ; e8 86 fc11261 call 07340h ; e8 86 fc 11274 11262 cmp byte [bp-006h], 0fah ; 80 7e fa fa 11275 je short 07 893h ; 74 4f11263 je short 0770fh ; 74 4f 11276 11264 mov al, byte [bp-006h] ; 8a 46 fa 11277 11265 xor ah, ah ; 30 e4 … … 11281 11269 mov ax, strict word 00007h ; b8 07 00 11282 11270 push ax ; 50 11283 call 01976h ; e8 21 a111271 call 01976h ; e8 a5 a2 11284 11272 add sp, strict byte 00006h ; 83 c4 06 11285 jmp short 07 893h ; eb 3911273 jmp short 0770fh ; eb 39 11286 11274 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11287 11275 mov byte [bp+013h], 003h ; c6 46 13 03 11288 jmp short 07 893h ; eb 2f11276 jmp short 0770fh ; eb 2f 11289 11277 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11290 11278 mov byte [bp+013h], 002h ; c6 46 13 02 11291 jmp short 07 893h ; eb 2511279 jmp short 0770fh ; eb 25 11292 11280 mov ax, 000f2h ; b8 f2 00 11293 call 07 48ch ; e8 18 fc11281 call 07308h ; e8 18 fc 11294 11282 test al, al ; 84 c0 11295 jne short 07 88bh ; 75 1311283 jne short 07707h ; 75 13 11296 11284 mov dx, ss ; 8c d2 11297 11285 lea ax, [bp-006h] ; 8d 46 fa 11298 call 07 4c4h ; e8 44 fc11286 call 07340h ; e8 44 fc 11299 11287 mov dx, ss ; 8c d2 11300 11288 lea ax, [bp-004h] ; 8d 46 fc 11301 call 07 4c4h ; e8 3c fc11302 jmp near 07 75eh ; e9 d3 fe11289 call 07340h ; e8 3c fc 11290 jmp near 075dah ; e9 d3 fe 11303 11291 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11304 11292 mov byte [bp+013h], 003h ; c6 46 13 03 11305 jmp near 07 9bdh ; e9 27 0111293 jmp near 07839h ; e9 27 01 11306 11294 mov al, byte [bp+00dh] ; 8a 46 0d 11307 11295 test al, al ; 84 c0 11308 jbe short 07 8a6h ; 76 0911296 jbe short 07722h ; 76 09 11309 11297 cmp AL, strict byte 002h ; 3c 02 11310 jbe short 07 8a4h ; 76 0311311 jmp near 07 945h ; e9 a1 0011312 jmp short 07 910h ; eb 6a11298 jbe short 07720h ; 76 03 11299 jmp near 077c1h ; e9 a1 00 11300 jmp short 0778ch ; eb 6a 11313 11301 mov ax, 000e9h ; b8 e9 00 11314 call 07 48ch ; e8 e0 fb11302 call 07308h ; e8 e0 fb 11315 11303 test al, al ; 84 c0 11316 jne short 07 919h ; 75 6911304 jne short 07795h ; 75 69 11317 11305 mov dx, ss ; 8c d2 11318 11306 lea ax, [bp-006h] ; 8d 46 fa 11319 call 07 4c4h ; e8 0c fc11307 call 07340h ; e8 0c fc 11320 11308 mov cl, al ; 88 c1 11321 11309 cmp byte [bp-006h], 0fah ; 80 7e fa fa 11322 je short 07 8d4h ; 74 1411310 je short 07750h ; 74 14 11323 11311 mov al, byte [bp-006h] ; 8a 46 fa 11324 11312 xor ah, ah ; 30 e4 … … 11328 11316 mov ax, strict word 00007h ; b8 07 00 11329 11317 push ax ; 50 11330 call 01976h ; e8 a5 a011318 call 01976h ; e8 29 a2 11331 11319 add sp, strict byte 00006h ; 83 c4 06 11332 11320 test cl, cl ; 84 c9 11333 jne short 07 93bh ; 75 6311321 jne short 077b7h ; 75 63 11334 11322 mov dx, ss ; 8c d2 11335 11323 lea ax, [bp-006h] ; 8d 46 fa 11336 call 07 4c4h ; e8 e4 fb11324 call 07340h ; e8 e4 fb 11337 11325 test al, al ; 84 c0 11338 jne short 07 93bh ; 75 5711326 jne short 077b7h ; 75 57 11339 11327 mov dx, ss ; 8c d2 11340 11328 lea ax, [bp-004h] ; 8d 46 fc 11341 call 07 4c4h ; e8 d8 fb11329 call 07340h ; e8 d8 fb 11342 11330 test al, al ; 84 c0 11343 jne short 07 93bh ; 75 4b11331 jne short 077b7h ; 75 4b 11344 11332 mov dx, ss ; 8c d2 11345 11333 lea ax, [bp-008h] ; 8d 46 f8 11346 call 07 4c4h ; e8 cc fb11334 call 07340h ; e8 cc fb 11347 11335 test al, al ; 84 c0 11348 jne short 07 93bh ; 75 3f11336 jne short 077b7h ; 75 3f 11349 11337 mov al, byte [bp-006h] ; 8a 46 fa 11350 11338 mov byte [bp+00ch], al ; 88 46 0c … … 11353 11341 mov al, byte [bp-008h] ; 8a 46 f8 11354 11342 mov byte [bp+00eh], al ; 88 46 0e 11355 jmp short 07 893h ; eb 8311343 jmp short 0770fh ; eb 83 11356 11344 cmp AL, strict byte 001h ; 3c 01 11357 jne short 07 91bh ; 75 0711345 jne short 07797h ; 75 07 11358 11346 mov ax, 000e6h ; b8 e6 00 11359 jmp short 07 91eh ; eb 0511360 jmp short 07 93bh ; eb 2011347 jmp short 0779ah ; eb 05 11348 jmp short 077b7h ; eb 20 11361 11349 mov ax, 000e7h ; b8 e7 00 11362 call 07 48ch ; e8 6b fb11350 call 07308h ; e8 6b fb 11363 11351 mov cl, al ; 88 c1 11364 11352 test cl, cl ; 84 c9 11365 jne short 07 937h ; 75 1011353 jne short 077b3h ; 75 10 11366 11354 mov dx, ss ; 8c d2 11367 11355 lea ax, [bp-006h] ; 8d 46 fa 11368 call 07 4c4h ; e8 95 fb11356 call 07340h ; e8 95 fb 11369 11357 cmp byte [bp-006h], 0fah ; 80 7e fa fa 11370 je short 07 937h ; 74 0211358 je short 077b3h ; 74 02 11371 11359 mov CL, strict byte 001h ; b1 01 11372 11360 test cl, cl ; 84 c9 11373 je short 07 9a5h ; 74 6a11361 je short 07821h ; 74 6a 11374 11362 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11375 11363 mov byte [bp+013h], 003h ; c6 46 13 03 11376 jmp short 07 9a5h ; eb 6011364 jmp short 07821h ; eb 60 11377 11365 mov al, byte [bp+00dh] ; 8a 46 0d 11378 11366 xor ah, ah ; 30 e4 … … 11382 11370 mov ax, strict word 00007h ; b8 07 00 11383 11371 push ax ; 50 11384 call 01976h ; e8 20 a011372 call 01976h ; e8 a4 a1 11385 11373 add sp, strict byte 00006h ; 83 c4 06 11386 11374 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11387 11375 mov byte [bp+013h], 001h ; c6 46 13 01 11388 jmp short 07 9bdh ; eb 5a11376 jmp short 07839h ; eb 5a 11389 11377 mov si, word [bp+00ch] ; 8b 76 0c 11390 11378 mov bx, si ; 89 f3 11391 11379 mov dx, strict word 00022h ; ba 22 00 11392 11380 mov ax, cx ; 89 c8 11393 call 0167ch ; e8 0c 9d11381 call 0167ch ; e8 90 9e 11394 11382 mov bx, word [bp+014h] ; 8b 5e 14 11395 11383 mov dx, strict word 00024h ; ba 24 00 11396 11384 mov ax, cx ; 89 c8 11397 call 0167ch ; e8 01 9d11385 call 0167ch ; e8 85 9e 11398 11386 mov dx, strict word 00027h ; ba 27 00 11399 11387 mov ax, cx ; 89 c8 11400 call 01652h ; e8 cf 9c11388 call 01652h ; e8 53 9e 11401 11389 mov ah, al ; 88 c4 11402 11390 test si, si ; 85 f6 11403 jne short 07 997h ; 75 0e11391 jne short 07813h ; 75 0e 11404 11392 cmp word [bp+014h], strict byte 00000h ; 83 7e 14 00 11405 jne short 07 997h ; 75 0811393 jne short 07813h ; 75 08 11406 11394 test AL, strict byte 080h ; a8 80 11407 je short 07 999h ; 74 0611395 je short 07815h ; 74 06 11408 11396 and AL, strict byte 07fh ; 24 7f 11409 jmp short 07 999h ; eb 0211397 jmp short 07815h ; eb 02 11410 11398 or AL, strict byte 080h ; 0c 80 11411 11399 mov bl, al ; 88 c3 … … 11413 11401 mov dx, strict word 00027h ; ba 27 00 11414 11402 mov ax, cx ; 89 c8 11415 call 01660h ; e8 bb 9c11416 jmp short 07 9bdh ; eb 1611403 call 01660h ; e8 3f 9e 11404 jmp short 07839h ; eb 16 11417 11405 mov ax, 00974h ; b8 74 09 11418 11406 push ax ; 50 11419 11407 mov ax, strict word 00007h ; b8 07 00 11420 11408 push ax ; 50 11421 call 01976h ; e8 c4 9f11409 call 01976h ; e8 48 a1 11422 11410 add sp, strict byte 00004h ; 83 c4 04 11423 11411 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11424 11412 mov byte [bp+013h], 001h ; c6 46 13 01 11425 11413 mov ax, strict word 00047h ; b8 47 00 11426 call 07 521h ; e8 5e fb11414 call 0739dh ; e8 5e fb 11427 11415 lea sp, [bp-002h] ; 8d 66 fe 11428 11416 pop si ; 5e 11429 11417 pop bp ; 5d 11430 11418 retn ; c3 11431 _int17_function: ; 0xf7 9c9LB 0xac11419 _int17_function: ; 0xf7845 LB 0xac 11432 11420 push bp ; 55 11433 11421 mov bp, sp ; 89 e5 … … 11439 11427 add dx, strict byte 00008h ; 83 c2 08 11440 11428 mov ax, strict word 00040h ; b8 40 00 11441 call 0166eh ; e8 91 9c11429 call 0166eh ; e8 15 9e 11442 11430 mov bx, ax ; 89 c3 11443 11431 mov si, ax ; 89 c6 11444 11432 cmp byte [bp+013h], 003h ; 80 7e 13 03 11445 jnc short 07 9f3h ; 73 0c11433 jnc short 0786fh ; 73 0c 11446 11434 mov ax, word [bp+00eh] ; 8b 46 0e 11447 11435 cmp ax, strict word 00003h ; 3d 03 00 11448 jnc short 07 9f3h ; 73 0411436 jnc short 0786fh ; 73 04 11449 11437 test bx, bx ; 85 db 11450 jnbe short 07 9f6h ; 77 0311451 jmp near 07 a6bh ; e9 75 0011438 jnbe short 07872h ; 77 03 11439 jmp near 078e7h ; e9 75 00 11452 11440 mov dx, ax ; 89 c2 11453 11441 add dx, strict byte 00078h ; 83 c2 78 11454 11442 mov ax, strict word 00040h ; b8 40 00 11455 call 01652h ; e8 51 9c11443 call 01652h ; e8 d5 9d 11456 11444 mov ch, al ; 88 c5 11457 11445 xor cl, cl ; 30 c9 11458 11446 cmp byte [bp+013h], 000h ; 80 7e 13 00 11459 jne short 07 a37h ; 75 2c11447 jne short 078b3h ; 75 2c 11460 11448 mov al, byte [bp+012h] ; 8a 46 12 11461 11449 mov dx, bx ; 89 da … … 11477 11465 ; sub ah, ah ; 2a e4 11478 11466 test AL, strict byte 040h ; a8 40 11479 je short 07 a37h ; 74 0711467 je short 078b3h ; 74 07 11480 11468 test cx, cx ; 85 c9 11481 je short 07 a37h ; 74 0311469 je short 078b3h ; 74 03 11482 11470 dec cx ; 49 11483 jmp short 07 a26h ; eb ef11471 jmp short 078a2h ; eb ef 11484 11472 cmp byte [bp+013h], 001h ; 80 7e 13 01 11485 jne short 07 a52h ; 75 1511473 jne short 078ceh ; 75 15 11486 11474 lea dx, [si+002h] ; 8d 54 02 11487 11475 in AL, DX ; ec … … 11502 11490 mov byte [bp+013h], al ; 88 46 13 11503 11491 test cx, cx ; 85 c9 11504 jne short 07 a65h ; 75 0411492 jne short 078e1h ; 75 04 11505 11493 or byte [bp+013h], 001h ; 80 4e 13 01 11506 11494 and byte [bp+01ch], 0feh ; 80 66 1c fe 11507 jmp short 07 a6fh ; eb 0411495 jmp short 078ebh ; eb 04 11508 11496 or byte [bp+01ch], 001h ; 80 4e 1c 01 11509 11497 lea sp, [bp-002h] ; 8d 66 fe … … 11511 11499 pop bp ; 5d 11512 11500 retn ; c3 11513 wait_: ; 0xf7 a75LB 0xb211501 wait_: ; 0xf78f1 LB 0xb2 11514 11502 push bp ; 55 11515 11503 mov bp, sp ; 89 e5 … … 11529 11517 mov dx, 0046ch ; ba 6c 04 11530 11518 xor ax, ax ; 31 c0 11531 call 0168ah ; e8 f2 9b11519 call 0168ah ; e8 76 9d 11532 11520 mov word [bp-00eh], ax ; 89 46 f2 11533 11521 mov bx, dx ; 89 d3 … … 11535 11523 mov dx, 0046ch ; ba 6c 04 11536 11524 xor ax, ax ; 31 c0 11537 call 0168ah ; e8 e4 9b11525 call 0168ah ; e8 68 9d 11538 11526 mov word [bp-012h], ax ; 89 46 ee 11539 11527 mov di, dx ; 89 d7 11540 11528 cmp dx, bx ; 39 da 11541 jnbe short 07 ab6h ; 77 0711542 jne short 07 abdh ; 75 0c11529 jnbe short 07932h ; 77 07 11530 jne short 07939h ; 75 0c 11543 11531 cmp ax, word [bp-00eh] ; 3b 46 f2 11544 jbe short 07 abdh ; 76 0711532 jbe short 07939h ; 76 07 11545 11533 sub ax, word [bp-00eh] ; 2b 46 f2 11546 11534 sbb dx, bx ; 19 da 11547 jmp short 07 ac8h ; eb 0b11535 jmp short 07944h ; eb 0b 11548 11536 cmp dx, bx ; 39 da 11549 jc short 07 ac8h ; 72 0711550 jne short 07 acch ; 75 0911537 jc short 07944h ; 72 07 11538 jne short 07948h ; 75 09 11551 11539 cmp ax, word [bp-00eh] ; 3b 46 f2 11552 jnc short 07 acch ; 73 0411540 jnc short 07948h ; 73 04 11553 11541 sub si, ax ; 29 c6 11554 11542 sbb cx, dx ; 19 d1 … … 11558 11546 mov ax, 00100h ; b8 00 01 11559 11547 int 016h ; cd 16 11560 je short 07 ae0h ; 74 0511548 je short 0795ch ; 74 05 11561 11549 mov AL, strict byte 001h ; b0 01 11562 jmp near 07 ae2h ; e9 02 0011550 jmp near 0795eh ; e9 02 00 11563 11551 db 032h, 0c0h 11564 11552 ; xor al, al ; 32 c0 11565 11553 test al, al ; 84 c0 11566 je short 07 b0ch ; 74 2611554 je short 07988h ; 74 26 11567 11555 db 033h, 0c0h 11568 11556 ; xor ax, ax ; 33 c0 … … 11577 11565 mov ax, strict word 00004h ; b8 04 00 11578 11566 push ax ; 50 11579 call 01976h ; e8 77 9e11567 call 01976h ; e8 fb 9f 11580 11568 add sp, strict byte 00006h ; 83 c4 06 11581 11569 cmp byte [bp-00ah], 000h ; 80 7e f6 00 11582 je short 07 b0ch ; 74 0411570 je short 07988h ; 74 04 11583 11571 mov al, dl ; 88 d0 11584 jmp short 07 b1eh ; eb 1211572 jmp short 0799ah ; eb 12 11585 11573 test cx, cx ; 85 c9 11586 jnle short 07 a9dh ; 7f 8d11587 jne short 07 b16h ; 75 0411574 jnle short 07919h ; 7f 8d 11575 jne short 07992h ; 75 04 11588 11576 test si, si ; 85 f6 11589 jnbe short 07 a9dh ; 77 8711577 jnbe short 07919h ; 77 87 11590 11578 mov ax, word [bp-010h] ; 8b 46 f0 11591 11579 push ax ; 50 … … 11599 11587 pop bp ; 5d 11600 11588 retn ; c3 11601 read_logo_byte_: ; 0xf7 b27LB 0x1611589 read_logo_byte_: ; 0xf79a3 LB 0x16 11602 11590 push bp ; 55 11603 11591 mov bp, sp ; 89 e5 … … 11614 11602 pop bp ; 5d 11615 11603 retn ; c3 11616 read_logo_word_: ; 0xf7 b3dLB 0x1411604 read_logo_word_: ; 0xf79b9 LB 0x14 11617 11605 push bp ; 55 11618 11606 mov bp, sp ; 89 e5 … … 11627 11615 pop bp ; 5d 11628 11616 retn ; c3 11629 print_detected_harddisks_: ; 0xf7 b51LB 0x15a11617 print_detected_harddisks_: ; 0xf79cd LB 0x15a 11630 11618 push bp ; 55 11631 11619 mov bp, sp ; 89 e5 … … 11637 11625 mov dx, strict word 0000eh ; ba 0e 00 11638 11626 mov ax, strict word 00040h ; b8 40 00 11639 call 0166eh ; e8 0a 9b11627 call 0166eh ; e8 8e 9c 11640 11628 mov si, ax ; 89 c6 11641 11629 mov byte [bp-00eh], 000h ; c6 46 f2 00 … … 11643 11631 mov byte [bp-00ch], ch ; 88 6e f4 11644 11632 mov dx, 00304h ; ba 04 03 11645 call 01652h ; e8 dd 9a11633 call 01652h ; e8 61 9c 11646 11634 mov byte [bp-00ah], al ; 88 46 f6 11647 11635 xor cl, cl ; 30 c9 11648 11636 cmp cl, byte [bp-00ah] ; 3a 4e f6 11649 jnc short 07 bddh ; 73 5e11637 jnc short 07a59h ; 73 5e 11650 11638 mov al, cl ; 88 c8 11651 11639 xor ah, ah ; 30 e4 … … 11653 11641 add dx, 00305h ; 81 c2 05 03 11654 11642 mov ax, si ; 89 f0 11655 call 01652h ; e8 c4 9a11643 call 01652h ; e8 48 9c 11656 11644 mov bl, al ; 88 c3 11657 11645 cmp AL, strict byte 00ch ; 3c 0c 11658 jc short 07 bbfh ; 72 2b11646 jc short 07a3bh ; 72 2b 11659 11647 test ch, ch ; 84 ed 11660 jne short 07 ba8h ; 75 1011648 jne short 07a24h ; 75 10 11661 11649 mov ax, 009a7h ; b8 a7 09 11662 11650 push ax ; 50 11663 11651 mov ax, strict word 00002h ; b8 02 00 11664 11652 push ax ; 50 11665 call 01976h ; e8 d3 9d11653 call 01976h ; e8 57 9f 11666 11654 add sp, strict byte 00004h ; 83 c4 04 11667 11655 mov CH, strict byte 001h ; b5 01 … … 11674 11662 mov ax, strict word 00002h ; b8 02 00 11675 11663 push ax ; 50 11676 call 01976h ; e8 bd 9d11664 call 01976h ; e8 41 9f 11677 11665 add sp, strict byte 00006h ; 83 c4 06 11678 jmp near 07 c71h ; e9 b2 0011666 jmp near 07aedh ; e9 b2 00 11679 11667 cmp AL, strict byte 008h ; 3c 08 11680 jc short 07 be0h ; 72 1d11668 jc short 07a5ch ; 72 1d 11681 11669 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11682 jne short 07 bdbh ; 75 1211670 jne short 07a57h ; 75 12 11683 11671 mov ax, 009cfh ; b8 cf 09 11684 11672 push ax ; 50 11685 11673 mov ax, strict word 00002h ; b8 02 00 11686 11674 push ax ; 50 11687 call 01976h ; e8 a2 9d11675 call 01976h ; e8 26 9f 11688 11676 add sp, strict byte 00004h ; 83 c4 04 11689 11677 mov byte [bp-00ch], 001h ; c6 46 f4 01 11690 jmp short 07 ba8h ; eb cb11691 jmp near 07 c76h ; e9 96 0011678 jmp short 07a24h ; eb cb 11679 jmp near 07af2h ; e9 96 00 11692 11680 cmp AL, strict byte 004h ; 3c 04 11693 jnc short 07 bfeh ; 73 1a11681 jnc short 07a7ah ; 73 1a 11694 11682 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11695 jne short 07 bfeh ; 75 1411683 jne short 07a7ah ; 75 14 11696 11684 mov ax, 009e4h ; b8 e4 09 11697 11685 push ax ; 50 11698 11686 mov ax, strict word 00002h ; b8 02 00 11699 11687 push ax ; 50 11700 call 01976h ; e8 81 9d11688 call 01976h ; e8 05 9f 11701 11689 add sp, strict byte 00004h ; 83 c4 04 11702 11690 mov byte [bp-00eh], 001h ; c6 46 f2 01 11703 jmp short 07 c17h ; eb 1911691 jmp short 07a93h ; eb 19 11704 11692 cmp bl, 004h ; 80 fb 04 11705 jc short 07 c17h ; 72 1411693 jc short 07a93h ; 72 14 11706 11694 test ch, ch ; 84 ed 11707 jne short 07 c17h ; 75 1011695 jne short 07a93h ; 75 10 11708 11696 mov ax, 009f6h ; b8 f6 09 11709 11697 push ax ; 50 11710 11698 mov ax, strict word 00002h ; b8 02 00 11711 11699 push ax ; 50 11712 call 01976h ; e8 64 9d11700 call 01976h ; e8 e8 9e 11713 11701 add sp, strict byte 00004h ; 83 c4 04 11714 11702 mov CH, strict byte 001h ; b5 01 … … 11721 11709 mov ax, strict word 00002h ; b8 02 00 11722 11710 push ax ; 50 11723 call 01976h ; e8 4e 9d11711 call 01976h ; e8 d2 9e 11724 11712 add sp, strict byte 00006h ; 83 c4 06 11725 11713 cmp bl, 004h ; 80 fb 04 11726 jc short 07 c33h ; 72 0311714 jc short 07aafh ; 72 03 11727 11715 sub bl, 004h ; 80 eb 04 11728 11716 mov al, bl ; 88 d8 … … 11733 11721 sar ax, 1 ; d1 f8 11734 11722 test ax, ax ; 85 c0 11735 je short 07 c45h ; 74 0511723 je short 07ac1h ; 74 05 11736 11724 mov ax, 00a14h ; b8 14 0a 11737 jmp short 07 c48h ; eb 0311725 jmp short 07ac4h ; eb 03 11738 11726 mov ax, 00a1fh ; b8 1f 0a 11739 11727 push ax ; 50 11740 11728 mov ax, strict word 00002h ; b8 02 00 11741 11729 push ax ; 50 11742 call 01976h ; e8 26 9d11730 call 01976h ; e8 aa 9e 11743 11731 add sp, strict byte 00004h ; 83 c4 04 11744 11732 mov al, bl ; 88 d8 … … 11748 11736 idiv bx ; f7 fb 11749 11737 test dx, dx ; 85 d2 11750 je short 07 c66h ; 74 0511738 je short 07ae2h ; 74 05 11751 11739 mov ax, 00a28h ; b8 28 0a 11752 jmp short 07 c69h ; eb 0311740 jmp short 07ae5h ; eb 03 11753 11741 mov ax, 00a2eh ; b8 2e 0a 11754 11742 push ax ; 50 11755 11743 push bx ; 53 11756 call 01976h ; e8 08 9d11744 call 01976h ; e8 8c 9e 11757 11745 add sp, strict byte 00004h ; 83 c4 04 11758 11746 db 0feh, 0c1h 11759 11747 ; inc cl ; fe c1 11760 jmp near 07 b7ah ; e9 04 ff11748 jmp near 079f6h ; e9 04 ff 11761 11749 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11762 jne short 07 c94h ; 75 1811750 jne short 07b10h ; 75 18 11763 11751 test ch, ch ; 84 ed 11764 jne short 07 c94h ; 75 1411752 jne short 07b10h ; 75 14 11765 11753 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11766 jne short 07 c94h ; 75 0e11754 jne short 07b10h ; 75 0e 11767 11755 mov ax, 00a35h ; b8 35 0a 11768 11756 push ax ; 50 11769 11757 mov ax, strict word 00002h ; b8 02 00 11770 11758 push ax ; 50 11771 call 01976h ; e8 e5 9c11759 call 01976h ; e8 69 9e 11772 11760 add sp, strict byte 00004h ; 83 c4 04 11773 11761 mov ax, 00a49h ; b8 49 0a … … 11775 11763 mov ax, strict word 00002h ; b8 02 00 11776 11764 push ax ; 50 11777 call 01976h ; e8 d7 9c11765 call 01976h ; e8 5b 9e 11778 11766 add sp, strict byte 00004h ; 83 c4 04 11779 11767 lea sp, [bp-008h] ; 8d 66 f8 … … 11784 11772 pop bp ; 5d 11785 11773 retn ; c3 11786 get_boot_drive_: ; 0xf7 cabLB 0x2811774 get_boot_drive_: ; 0xf7b27 LB 0x28 11787 11775 push bp ; 55 11788 11776 mov bp, sp ; 89 e5 … … 11792 11780 mov dx, strict word 0000eh ; ba 0e 00 11793 11781 mov ax, strict word 00040h ; b8 40 00 11794 call 0166eh ; e8 b3 9911782 call 0166eh ; e8 37 9b 11795 11783 mov dx, 00304h ; ba 04 03 11796 call 01652h ; e8 91 9911784 call 01652h ; e8 15 9b 11797 11785 sub bl, 002h ; 80 eb 02 11798 11786 cmp bl, al ; 38 c3 11799 jc short 07 ccah ; 72 0211787 jc short 07b46h ; 72 02 11800 11788 mov BL, strict byte 0ffh ; b3 ff 11801 11789 mov al, bl ; 88 d8 … … 11805 11793 pop bp ; 5d 11806 11794 retn ; c3 11807 show_logo_: ; 0xf7 cd3LB 0x24011795 show_logo_: ; 0xf7b4f LB 0x240 11808 11796 push bp ; 55 11809 11797 mov bp, sp ; 89 e5 … … 11816 11804 mov dx, strict word 0000eh ; ba 0e 00 11817 11805 mov ax, strict word 00040h ; b8 40 00 11818 call 0166eh ; e8 87 9911806 call 0166eh ; e8 0b 9b 11819 11807 mov si, ax ; 89 c6 11820 11808 mov byte [bp-00ch], 000h ; c6 46 f4 00 … … 11828 11816 mov al, cl ; 88 c8 11829 11817 xor ah, ah ; 30 e4 11830 call 07 b3dh ; e8 3b fe11818 call 079b9h ; e8 3b fe 11831 11819 cmp ax, 066bbh ; 3d bb 66 11832 jne short 07 d19h ; 75 1211820 jne short 07b95h ; 75 12 11833 11821 push SS ; 16 11834 11822 pop ES ; 07 … … 11838 11826 mov word [es:di], bx ; 26 89 1d 11839 11827 cmp ax, strict word 0004fh ; 3d 4f 00 11840 je short 07 d1ch ; 74 0311841 jmp near 07 de2h ; e9 c6 0011828 je short 07b98h ; 74 03 11829 jmp near 07c5eh ; e9 c6 00 11842 11830 mov al, cl ; 88 c8 11843 11831 add AL, strict byte 004h ; 04 04 11844 11832 xor ah, ah ; 30 e4 11845 call 07 b27h ; e8 02 fe11833 call 079a3h ; e8 02 fe 11846 11834 mov bl, al ; 88 c3 11847 11835 mov byte [bp-014h], al ; 88 46 ec … … 11849 11837 add AL, strict byte 005h ; 04 05 11850 11838 xor ah, ah ; 30 e4 11851 call 07 b27h ; e8 f4 fd11839 call 079a3h ; e8 f4 fd 11852 11840 mov bh, al ; 88 c7 11853 11841 mov byte [bp-012h], al ; 88 46 ee … … 11855 11843 add AL, strict byte 002h ; 04 02 11856 11844 xor ah, ah ; 30 e4 11857 call 07 b3dh ; e8 fc fd11845 call 079b9h ; e8 fc fd 11858 11846 mov dx, ax ; 89 c2 11859 11847 mov word [bp-016h], ax ; 89 46 ea … … 11861 11849 add AL, strict byte 006h ; 04 06 11862 11850 xor ah, ah ; 30 e4 11863 call 07 b27h ; e8 d8 fd11851 call 079a3h ; e8 d8 fd 11864 11852 mov byte [bp-010h], al ; 88 46 f0 11865 11853 test bl, bl ; 84 db 11866 jne short 07 d5eh ; 75 0811854 jne short 07bdah ; 75 08 11867 11855 test bh, bh ; 84 ff 11868 jne short 07 d5eh ; 75 0411856 jne short 07bdah ; 75 04 11869 11857 test dx, dx ; 85 d2 11870 je short 07 d19h ; 74 bb11858 je short 07b95h ; 74 bb 11871 11859 mov bx, 00142h ; bb 42 01 11872 11860 mov ax, 04f02h ; b8 02 4f 11873 11861 int 010h ; cd 10 11874 11862 cmp byte [bp-014h], 000h ; 80 7e ec 00 11875 je short 07 d91h ; 74 2511863 je short 07c0dh ; 74 25 11876 11864 xor cx, cx ; 31 c9 11877 jmp short 07 d76h ; eb 0611865 jmp short 07bf2h ; eb 06 11878 11866 inc cx ; 41 11879 11867 cmp cx, strict byte 00010h ; 83 f9 10 11880 jnbe short 07 d98h ; 77 2211868 jnbe short 07c14h ; 77 22 11881 11869 mov ax, cx ; 89 c8 11882 11870 or ah, 002h ; 80 cc 02 … … 11885 11873 xor dx, dx ; 31 d2 11886 11874 mov ax, strict word 00001h ; b8 01 00 11887 call 07 a75h ; e8 ee fc11875 call 078f1h ; e8 ee fc 11888 11876 cmp AL, strict byte 086h ; 3c 86 11889 jne short 07 d70h ; 75 e511877 jne short 07bech ; 75 e5 11890 11878 mov byte [bp-00ch], 001h ; c6 46 f4 01 11891 jmp short 07 d98h ; eb 0711879 jmp short 07c14h ; eb 07 11892 11880 mov ax, 00210h ; b8 10 02 11893 11881 mov dx, 003b8h ; ba b8 03 11894 11882 out DX, ax ; ef 11895 11883 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11896 jne short 07 db3h ; 75 1511884 jne short 07c2fh ; 75 15 11897 11885 mov CL, strict byte 004h ; b1 04 11898 11886 mov ax, word [bp-016h] ; 8b 46 ea 11899 11887 shr ax, CL ; d3 e8 11900 11888 mov dx, strict word 00001h ; ba 01 00 11901 call 07 a75h ; e8 ca fc11889 call 078f1h ; e8 ca fc 11902 11890 cmp AL, strict byte 086h ; 3c 86 11903 jne short 07 db3h ; 75 0411891 jne short 07c2fh ; 75 04 11904 11892 mov byte [bp-00ch], 001h ; c6 46 f4 01 11905 11893 cmp byte [bp-012h], 000h ; 80 7e ee 00 11906 je short 07 de2h ; 74 2911894 je short 07c5eh ; 74 29 11907 11895 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11908 jne short 07 de2h ; 75 2311896 jne short 07c5eh ; 75 23 11909 11897 mov cx, strict word 00010h ; b9 10 00 11910 jmp short 07 dc9h ; eb 0511898 jmp short 07c45h ; eb 05 11911 11899 dec cx ; 49 11912 11900 test cx, cx ; 85 c9 11913 jbe short 07 de2h ; 76 1911901 jbe short 07c5eh ; 76 19 11914 11902 mov ax, cx ; 89 c8 11915 11903 or ah, 002h ; 80 cc 02 … … 11918 11906 xor dx, dx ; 31 d2 11919 11907 mov ax, strict word 00001h ; b8 01 00 11920 call 07 a75h ; e8 9b fc11908 call 078f1h ; e8 9b fc 11921 11909 cmp AL, strict byte 086h ; 3c 86 11922 jne short 07 dc4h ; 75 e611910 jne short 07c40h ; 75 e6 11923 11911 mov byte [bp-00ch], 001h ; c6 46 f4 01 11924 11912 xor bx, bx ; 31 db 11925 11913 mov dx, 0037dh ; ba 7d 03 11926 11914 mov ax, si ; 89 f0 11927 call 01660h ; e8 74 9811915 call 01660h ; e8 f8 99 11928 11916 mov AL, strict byte 003h ; b0 03 11929 11917 mov AH, strict byte 000h ; b4 00 11930 11918 int 010h ; cd 10 11931 11919 cmp byte [bp-010h], 000h ; 80 7e f0 00 11932 je short 07 e0ch ; 74 1411920 je short 07c88h ; 74 14 11933 11921 cmp byte [bp-014h], 000h ; 80 7e ec 00 11934 jne short 07 e3ah ; 75 3c11922 jne short 07cb6h ; 75 3c 11935 11923 cmp byte [bp-012h], 000h ; 80 7e ee 00 11936 jne short 07 e3ah ; 75 3611924 jne short 07cb6h ; 75 36 11937 11925 cmp word [bp-016h], strict byte 00000h ; 83 7e ea 00 11938 je short 07 e0fh ; 74 0511939 jmp short 07 e3ah ; eb 2e11940 jmp near 07 ef6h ; e9 e7 0011926 je short 07c8bh ; 74 05 11927 jmp short 07cb6h ; eb 2e 11928 jmp near 07d72h ; e9 e7 00 11941 11929 cmp byte [bp-010h], 002h ; 80 7e f0 02 11942 jne short 07 e23h ; 75 0e11930 jne short 07c9fh ; 75 0e 11943 11931 mov ax, 00a4bh ; b8 4b 0a 11944 11932 push ax ; 50 11945 11933 mov ax, strict word 00002h ; b8 02 00 11946 11934 push ax ; 50 11947 call 01976h ; e8 56 9b11935 call 01976h ; e8 da 9c 11948 11936 add sp, strict byte 00004h ; 83 c4 04 11949 11937 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11950 jne short 07 e3ah ; 75 1111938 jne short 07cb6h ; 75 11 11951 11939 mov dx, strict word 00001h ; ba 01 00 11952 11940 mov ax, 000c0h ; b8 c0 00 11953 call 07 a75h ; e8 43 fc11941 call 078f1h ; e8 43 fc 11954 11942 cmp AL, strict byte 086h ; 3c 86 11955 jne short 07 e3ah ; 75 0411943 jne short 07cb6h ; 75 04 11956 11944 mov byte [bp-00ch], 001h ; c6 46 f4 01 11957 11945 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11958 je short 07 e0ch ; 74 cc11946 je short 07c88h ; 74 cc 11959 11947 mov byte [bp-00eh], 000h ; c6 46 f2 00 11960 11948 mov ax, 00100h ; b8 00 01 … … 11977 11965 mov ax, strict word 00002h ; b8 02 00 11978 11966 push ax ; 50 11979 call 01976h ; e8 0a 9b11967 call 01976h ; e8 8e 9c 11980 11968 add sp, strict byte 00004h ; 83 c4 04 11981 call 07 b51h ; e8 df fc11969 call 079cdh ; e8 df fc 11982 11970 mov ax, 00ab1h ; b8 b1 0a 11983 11971 push ax ; 50 11984 11972 mov ax, strict word 00002h ; b8 02 00 11985 11973 push ax ; 50 11986 call 01976h ; e8 f9 9a11974 call 01976h ; e8 7d 9c 11987 11975 add sp, strict byte 00004h ; 83 c4 04 11988 11976 mov dx, strict word 00001h ; ba 01 00 11989 11977 mov ax, strict word 00040h ; b8 40 00 11990 call 07 a75h ; e8 ec fb11978 call 078f1h ; e8 ec fb 11991 11979 mov cl, al ; 88 c1 11992 11980 test al, al ; 84 c0 11993 je short 07 e80h ; 74 f111981 je short 07cfch ; 74 f1 11994 11982 cmp AL, strict byte 030h ; 3c 30 11995 je short 07 ee3h ; 74 5011983 je short 07d5fh ; 74 50 11996 11984 cmp cl, 002h ; 80 f9 02 11997 jc short 07 ebch ; 72 2411985 jc short 07d38h ; 72 24 11998 11986 cmp cl, 009h ; 80 f9 09 11999 jnbe short 07 ebch ; 77 1f11987 jnbe short 07d38h ; 77 1f 12000 11988 mov al, cl ; 88 c8 12001 11989 xor ah, ah ; 30 e4 12002 call 07 cabh ; e8 07 fe11990 call 07b27h ; e8 07 fe 12003 11991 cmp AL, strict byte 0ffh ; 3c ff 12004 jne short 07 eaah ; 75 0212005 jmp short 07 e80h ; eb d611992 jne short 07d26h ; 75 02 11993 jmp short 07cfch ; eb d6 12006 11994 mov bl, al ; 88 c3 12007 11995 xor bh, bh ; 30 ff 12008 11996 mov dx, 0037ch ; ba 7c 03 12009 11997 mov ax, si ; 89 f0 12010 call 01660h ; e8 aa 9711998 call 01660h ; e8 2e 99 12011 11999 mov byte [bp-00eh], 002h ; c6 46 f2 02 12012 jmp short 07 ee3h ; eb 2712000 jmp short 07d5fh ; eb 27 12013 12001 cmp cl, 02eh ; 80 f9 2e 12014 je short 07 ed1h ; 74 1012002 je short 07d4dh ; 74 10 12015 12003 cmp cl, 026h ; 80 f9 26 12016 je short 07 ed7h ; 74 1112004 je short 07d53h ; 74 11 12017 12005 cmp cl, 021h ; 80 f9 21 12018 jne short 07 eddh ; 75 1212006 jne short 07d59h ; 75 12 12019 12007 mov byte [bp-00eh], 001h ; c6 46 f2 01 12020 jmp short 07 ee3h ; eb 1212008 jmp short 07d5fh ; eb 12 12021 12009 mov byte [bp-00eh], 003h ; c6 46 f2 03 12022 jmp short 07 ee3h ; eb 0c12010 jmp short 07d5fh ; eb 0c 12023 12011 mov byte [bp-00eh], 004h ; c6 46 f2 04 12024 jmp short 07 ee3h ; eb 0612012 jmp short 07d5fh ; eb 06 12025 12013 cmp byte [bp-00eh], 000h ; 80 7e f2 00 12026 je short 07 e80h ; 74 9d12014 je short 07cfch ; 74 9d 12027 12015 mov bl, byte [bp-00eh] ; 8a 5e f2 12028 12016 xor bh, bh ; 30 ff 12029 12017 mov dx, 0037dh ; ba 7d 03 12030 12018 mov ax, si ; 89 f0 12031 call 01660h ; e8 70 9712019 call 01660h ; e8 f4 98 12032 12020 mov AL, strict byte 003h ; b0 03 12033 12021 mov AH, strict byte 000h ; b4 00 … … 12042 12030 push DS ; 1e 12043 12031 mov ds, ax ; 8e d8 12044 call 0ede3h ; e8 dc 6e12032 call 0ede3h ; e8 60 70 12045 12033 pop DS ; 1f 12046 12034 pop bp ; 5d … … 12053 12041 pop bp ; 5d 12054 12042 retn ; c3 12055 delay_boot_: ; 0xf7 f13LB 0x7212043 delay_boot_: ; 0xf7d8f LB 0x72 12056 12044 push bp ; 55 12057 12045 mov bp, sp ; 89 e5 … … 12063 12051 mov bx, ax ; 89 c3 12064 12052 test ax, ax ; 85 c0 12065 je short 07 f7bh ; 74 5a12053 je short 07df7h ; 74 5a 12066 12054 mov AL, strict byte 034h ; b0 34 12067 12055 out strict byte 043h, AL ; e6 43 … … 12075 12063 mov ax, strict word 00002h ; b8 02 00 12076 12064 push ax ; 50 12077 call 01976h ; e8 3d 9a12065 call 01976h ; e8 c1 9b 12078 12066 add sp, strict byte 00006h ; 83 c4 06 12079 12067 test bx, bx ; 85 db 12080 jbe short 07 f5ah ; 76 1a12068 jbe short 07dd6h ; 76 1a 12081 12069 push bx ; 53 12082 12070 mov ax, 00b19h ; b8 19 0b … … 12084 12072 mov ax, strict word 00002h ; b8 02 00 12085 12073 push ax ; 50 12086 call 01976h ; e8 2a 9a12074 call 01976h ; e8 ae 9b 12087 12075 add sp, strict byte 00006h ; 83 c4 06 12088 12076 xor dx, dx ; 31 d2 12089 12077 mov ax, strict word 00040h ; b8 40 00 12090 call 07 a75h ; e8 1e fb12078 call 078f1h ; e8 1e fb 12091 12079 dec bx ; 4b 12092 jmp short 07 f3ch ; eb e212080 jmp short 07db8h ; eb e2 12093 12081 mov bx, 00a49h ; bb 49 0a 12094 12082 push bx ; 53 12095 12083 mov bx, strict word 00002h ; bb 02 00 12096 12084 push bx ; 53 12097 call 01976h ; e8 11 9a12085 call 01976h ; e8 95 9b 12098 12086 add sp, strict byte 00004h ; 83 c4 04 12099 12087 mov AL, strict byte 034h ; b0 34 … … 12106 12094 push DS ; 1e 12107 12095 mov ds, ax ; 8e d8 12108 call 0ede3h ; e8 6a 6e12096 call 0ede3h ; e8 ee 6f 12109 12097 pop DS ; 1f 12110 12098 pop bp ; 5d … … 12117 12105 pop bp ; 5d 12118 12106 retn ; c3 12119 scsi_cmd_data_in_: ; 0xf7 f85LB 0xd512107 scsi_cmd_data_in_: ; 0xf7e01 LB 0xd5 12120 12108 push bp ; 55 12121 12109 mov bp, sp ; 89 e5 … … 12133 12121 ; sub ah, ah ; 2a e4 12134 12122 test AL, strict byte 001h ; a8 01 12135 jne short 07 f9bh ; 75 f712123 jne short 07e17h ; 75 f7 12136 12124 mov al, byte [bp+004h] ; 8a 46 04 12137 12125 cmp AL, strict byte 010h ; 3c 10 12138 jne short 07 fafh ; 75 0412126 jne short 07e2bh ; 75 04 12139 12127 xor ax, ax ; 31 c0 12140 jmp short 07 fb1h ; eb 0212128 jmp short 07e2dh ; eb 02 12141 12129 xor ah, ah ; 30 e4 12142 12130 mov di, ax ; 89 c7 … … 12146 12134 shr dx, 1 ; d1 ea 12147 12135 rcr ax, 1 ; d1 d8 12148 loop 07 fbbh ; e2 fa12136 loop 07e37h ; e2 fa 12149 12137 mov cx, ax ; 89 c1 12150 12138 and cx, 000f0h ; 81 e1 f0 00 … … 12164 12152 shr dx, 1 ; d1 ea 12165 12153 rcr ax, 1 ; d1 d8 12166 loop 07 fe0h ; e2 fa12154 loop 07e5ch ; e2 fa 12167 12155 mov dx, si ; 89 f2 12168 12156 out DX, AL ; ee … … 12171 12159 xor ah, ah ; 30 e4 12172 12160 cmp cx, ax ; 39 c1 12173 jnc short 0 8002h ; 73 0e12161 jnc short 07e7eh ; 73 0e 12174 12162 les di, [bp-00ah] ; c4 7e f6 12175 12163 add di, cx ; 01 cf … … 12178 12166 out DX, AL ; ee 12179 12167 inc cx ; 41 12180 jmp short 07 febh ; eb e912168 jmp short 07e67h ; eb e9 12181 12169 mov dx, si ; 89 f2 12182 12170 in AL, DX ; ec … … 12184 12172 ; sub ah, ah ; 2a e4 12185 12173 test AL, strict byte 001h ; a8 01 12186 jne short 0 8002h ; 75 f712174 jne short 07e7eh ; 75 f7 12187 12175 test AL, strict byte 002h ; a8 02 12188 je short 0 801dh ; 74 0e12176 je short 07e99h ; 74 0e 12189 12177 lea dx, [si+003h] ; 8d 54 03 12190 12178 xor al, al ; 30 c0 … … 12194 12182 ; sub ah, ah ; 2a e4 12195 12183 mov di, strict word 00004h ; bf 04 00 12196 jmp short 0 804fh ; eb 3212184 jmp short 07ecbh ; eb 32 12197 12185 lea dx, [si+001h] ; 8d 54 01 12198 12186 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 12199 jne short 0 802ch ; 75 0612187 jne short 07ea8h ; 75 06 12200 12188 cmp bx, 08000h ; 81 fb 00 80 12201 jbe short 0 8046h ; 76 1a12189 jbe short 07ec2h ; 76 1a 12202 12190 mov cx, 08000h ; b9 00 80 12203 12191 les di, [bp+006h] ; c4 7e 06 … … 12208 12196 add ax, 00800h ; 05 00 08 12209 12197 mov word [bp+008h], ax ; 89 46 08 12210 jmp short 0 801dh ; eb d712198 jmp short 07e99h ; eb d7 12211 12199 mov cx, bx ; 89 d9 12212 12200 les di, [bp+006h] ; c4 7e 06 … … 12219 12207 pop bp ; 5d 12220 12208 retn 0000ah ; c2 0a 00 12221 scsi_cmd_data_out_: ; 0xf 805aLB 0xd512209 scsi_cmd_data_out_: ; 0xf7ed6 LB 0xd5 12222 12210 push bp ; 55 12223 12211 mov bp, sp ; 89 e5 … … 12235 12223 ; sub ah, ah ; 2a e4 12236 12224 test AL, strict byte 001h ; a8 01 12237 jne short 0 8070h ; 75 f712225 jne short 07eech ; 75 f7 12238 12226 mov al, byte [bp+004h] ; 8a 46 04 12239 12227 cmp AL, strict byte 010h ; 3c 10 12240 jne short 0 8084h ; 75 0412228 jne short 07f00h ; 75 04 12241 12229 xor ax, ax ; 31 c0 12242 jmp short 0 8086h ; eb 0212230 jmp short 07f02h ; eb 02 12243 12231 xor ah, ah ; 30 e4 12244 12232 mov si, ax ; 89 c6 … … 12248 12236 shr dx, 1 ; d1 ea 12249 12237 rcr ax, 1 ; d1 d8 12250 loop 0 8090h ; e2 fa12238 loop 07f0ch ; e2 fa 12251 12239 mov cx, ax ; 89 c1 12252 12240 and cx, 000f0h ; 81 e1 f0 00 … … 12266 12254 shr dx, 1 ; d1 ea 12267 12255 rcr ax, 1 ; d1 d8 12268 loop 0 80b5h ; e2 fa12256 loop 07f31h ; e2 fa 12269 12257 mov dx, di ; 89 fa 12270 12258 out DX, AL ; ee … … 12273 12261 xor ah, ah ; 30 e4 12274 12262 cmp cx, ax ; 39 c1 12275 jnc short 0 80d7h ; 73 0e12263 jnc short 07f53h ; 73 0e 12276 12264 les si, [bp-00ah] ; c4 76 f6 12277 12265 add si, cx ; 01 ce … … 12280 12268 out DX, AL ; ee 12281 12269 inc cx ; 41 12282 jmp short 0 80c0h ; eb e912270 jmp short 07f3ch ; eb e9 12283 12271 lea dx, [di+001h] ; 8d 55 01 12284 12272 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 12285 jne short 0 80e6h ; 75 0612273 jne short 07f62h ; 75 06 12286 12274 cmp bx, 08000h ; 81 fb 00 80 12287 jbe short 0 8101h ; 76 1b12275 jbe short 07f7dh ; 76 1b 12288 12276 mov cx, 08000h ; b9 00 80 12289 12277 les si, [bp+006h] ; c4 76 06 … … 12295 12283 add ax, 00800h ; 05 00 08 12296 12284 mov word [bp+008h], ax ; 89 46 08 12297 jmp short 0 80d7h ; eb d612285 jmp short 07f53h ; eb d6 12298 12286 mov cx, bx ; 89 d9 12299 12287 les si, [bp+006h] ; c4 76 06 … … 12305 12293 ; sub ah, ah ; 2a e4 12306 12294 test AL, strict byte 001h ; a8 01 12307 jne short 0 8109h ; 75 f712295 jne short 07f85h ; 75 f7 12308 12296 test AL, strict byte 002h ; a8 02 12309 je short 0 8124h ; 74 0e12297 je short 07fa0h ; 74 0e 12310 12298 lea dx, [di+003h] ; 8d 55 03 12311 12299 xor al, al ; 30 c0 … … 12315 12303 ; sub ah, ah ; 2a e4 12316 12304 mov ax, strict word 00004h ; b8 04 00 12317 jmp short 0 8126h ; eb 0212305 jmp short 07fa2h ; eb 02 12318 12306 xor ax, ax ; 31 c0 12319 12307 lea sp, [bp-004h] ; 8d 66 fc … … 12322 12310 pop bp ; 5d 12323 12311 retn 0000ah ; c2 0a 00 12324 @scsi_read_sectors: ; 0xf 812fLB 0xe912312 @scsi_read_sectors: ; 0xf7fab LB 0xe9 12325 12313 push bp ; 55 12326 12314 mov bp, sp ; 89 e5 … … 12334 12322 mov byte [bp-006h], al ; 88 46 fa 12335 12323 cmp AL, strict byte 004h ; 3c 04 12336 jbe short 0 815fh ; 76 1512324 jbe short 07fdbh ; 76 15 12337 12325 xor ah, ah ; 30 e4 12338 12326 push ax ; 50 … … 12343 12331 mov ax, strict word 00007h ; b8 07 00 12344 12332 push ax ; 50 12345 call 01976h ; e8 1a 9812333 call 01976h ; e8 9e 99 12346 12334 add sp, strict byte 00008h ; 83 c4 08 12347 12335 mov es, [bp+006h] ; 8e 46 06 … … 12384 12372 sal word [bp-00ah], 1 ; d1 66 f6 12385 12373 rcl word [bp-008h], 1 ; d1 56 f8 12386 loop 08 1cah ; e2 f812374 loop 08046h ; e2 f8 12387 12375 push word [bp-008h] ; ff 76 f8 12388 12376 push word [bp-00ah] ; ff 76 f6 … … 12395 12383 mov cx, ss ; 8c d1 12396 12384 lea bx, [bp-01ah] ; 8d 5e e6 12397 call 07 f85h ; e8 95 fd12385 call 07e01h ; e8 95 fd 12398 12386 mov ah, al ; 88 c4 12399 12387 test al, al ; 84 c0 12400 jne short 08 20bh ; 75 1512388 jne short 08087h ; 75 15 12401 12389 mov es, [bp+006h] ; 8e 46 06 12402 12390 mov word [es:si+018h], di ; 26 89 7c 18 … … 12412 12400 pop bp ; 5d 12413 12401 retn 00004h ; c2 04 00 12414 @scsi_write_sectors: ; 0xf8 218LB 0xe912402 @scsi_write_sectors: ; 0xf8094 LB 0xe9 12415 12403 push bp ; 55 12416 12404 mov bp, sp ; 89 e5 … … 12424 12412 mov byte [bp-006h], al ; 88 46 fa 12425 12413 cmp AL, strict byte 004h ; 3c 04 12426 jbe short 08 248h ; 76 1512414 jbe short 080c4h ; 76 15 12427 12415 xor ah, ah ; 30 e4 12428 12416 push ax ; 50 … … 12433 12421 mov ax, strict word 00007h ; b8 07 00 12434 12422 push ax ; 50 12435 call 01976h ; e8 31 9712423 call 01976h ; e8 b5 98 12436 12424 add sp, strict byte 00008h ; 83 c4 08 12437 12425 mov es, [bp+006h] ; 8e 46 06 … … 12474 12462 sal word [bp-00ah], 1 ; d1 66 f6 12475 12463 rcl word [bp-008h], 1 ; d1 56 f8 12476 loop 08 2b3h ; e2 f812464 loop 0812fh ; e2 f8 12477 12465 push word [bp-008h] ; ff 76 f8 12478 12466 push word [bp-00ah] ; ff 76 f6 … … 12485 12473 mov cx, ss ; 8c d1 12486 12474 lea bx, [bp-01ah] ; 8d 5e e6 12487 call 0 805ah ; e8 81 fd12475 call 07ed6h ; e8 81 fd 12488 12476 mov ah, al ; 88 c4 12489 12477 test al, al ; 84 c0 12490 jne short 08 2f4h ; 75 1512478 jne short 08170h ; 75 15 12491 12479 mov es, [bp+006h] ; 8e 46 06 12492 12480 mov word [es:si+018h], di ; 26 89 7c 18 … … 12502 12490 pop bp ; 5d 12503 12491 retn 00004h ; c2 04 00 12504 scsi_cmd_packet_: ; 0xf8 301LB 0x17012492 scsi_cmd_packet_: ; 0xf817d LB 0x170 12505 12493 push bp ; 55 12506 12494 mov bp, sp ; 89 e5 … … 12514 12502 mov dx, strict word 0000eh ; ba 0e 00 12515 12503 mov ax, strict word 00040h ; b8 40 00 12516 call 0166eh ; e8 51 9312504 call 0166eh ; e8 d5 94 12517 12505 mov si, 00122h ; be 22 01 12518 12506 mov word [bp-00ch], ax ; 89 46 f4 12519 12507 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 12520 jne short 08 34ch ; 75 2312508 jne short 081c8h ; 75 23 12521 12509 mov bx, 00da0h ; bb a0 0d 12522 12510 mov cx, ds ; 8c d9 12523 12511 mov ax, strict word 00004h ; b8 04 00 12524 call 01933h ; e8 ff 9512512 call 01933h ; e8 83 97 12525 12513 mov ax, 00b62h ; b8 62 0b 12526 12514 push ax ; 50 … … 12529 12517 mov ax, strict word 00004h ; b8 04 00 12530 12518 push ax ; 50 12531 call 01976h ; e8 33 9612519 call 01976h ; e8 b7 97 12532 12520 add sp, strict byte 00006h ; 83 c4 06 12533 12521 mov dx, strict word 00001h ; ba 01 00 12534 jmp near 08 466h ; e9 1a 0112522 jmp near 082e2h ; e9 1a 01 12535 12523 sub di, strict byte 00008h ; 83 ef 08 12536 12524 sal di, 1 ; d1 e7 … … 12547 12535 ; sub ah, ah ; 2a e4 12548 12536 test AL, strict byte 001h ; a8 01 12549 jne short 08 369h ; 75 f712537 jne short 081e5h ; 75 f7 12550 12538 xor dx, bx ; 31 da 12551 12539 mov ax, word [bp+006h] ; 8b 46 06 … … 12563 12551 shr dx, 1 ; d1 ea 12564 12552 rcr ax, 1 ; d1 d8 12565 loop 08 394h ; e2 fa12553 loop 08210h ; e2 fa 12566 12554 and ax, 000f0h ; 25 f0 00 12567 12555 mov cl, byte [bp-006h] ; 8a 4e fa … … 12582 12570 shr dx, 1 ; d1 ea 12583 12571 rcr ax, 1 ; d1 d8 12584 loop 08 3bch ; e2 fa12572 loop 08238h ; e2 fa 12585 12573 mov dx, bx ; 89 da 12586 12574 out DX, AL ; ee … … 12589 12577 xor ah, ah ; 30 e4 12590 12578 cmp cx, ax ; 39 c1 12591 jnc short 08 3e1h ; 73 1112579 jnc short 0825dh ; 73 11 12592 12580 mov es, [bp-00ah] ; 8e 46 f6 12593 12581 mov di, word [bp-00eh] ; 8b 7e f2 … … 12597 12585 out DX, AL ; ee 12598 12586 inc cx ; 41 12599 jmp short 08 3c7h ; eb e612587 jmp short 08243h ; eb e6 12600 12588 mov dx, bx ; 89 da 12601 12589 in AL, DX ; ec … … 12603 12591 ; sub ah, ah ; 2a e4 12604 12592 test AL, strict byte 001h ; a8 01 12605 jne short 08 3e1h ; 75 f712593 jne short 0825dh ; 75 f7 12606 12594 test AL, strict byte 002h ; a8 02 12607 je short 08 3fch ; 74 0e12595 je short 08278h ; 74 0e 12608 12596 lea dx, [bx+003h] ; 8d 57 03 12609 12597 xor al, al ; 30 c0 … … 12613 12601 ; sub ah, ah ; 2a e4 12614 12602 mov dx, strict word 00003h ; ba 03 00 12615 jmp short 08 466h ; eb 6a12603 jmp short 082e2h ; eb 6a 12616 12604 mov ax, word [bp+004h] ; 8b 46 04 12617 12605 test ax, ax ; 85 c0 12618 je short 08 40bh ; 74 0812606 je short 08287h ; 74 08 12619 12607 lea dx, [bx+001h] ; 8d 57 01 12620 12608 mov cx, ax ; 89 c1 12621 12609 in AL, DX ; ec 12622 loop 08 408h ; e2 fd12610 loop 08284h ; e2 fd 12623 12611 mov ax, word [bp+006h] ; 8b 46 06 12624 12612 mov es, [bp-00ch] ; 8e 46 f4 … … 12628 12616 lea ax, [bx+001h] ; 8d 47 01 12629 12617 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 12630 jne short 08 42ch ; 75 0712618 jne short 082a8h ; 75 07 12631 12619 cmp word [bp+006h], 08000h ; 81 7e 06 00 80 12632 jbe short 08 449h ; 76 1d12620 jbe short 082c5h ; 76 1d 12633 12621 mov dx, ax ; 89 c2 12634 12622 mov cx, 08000h ; b9 00 80 … … 12640 12628 add ax, 00800h ; 05 00 08 12641 12629 mov word [bp+00eh], ax ; 89 46 0e 12642 jmp short 08 41ch ; eb d312630 jmp short 08298h ; eb d3 12643 12631 mov dx, ax ; 89 c2 12644 12632 mov cx, word [bp+006h] ; 8b 4e 06 … … 12647 12635 mov es, [bp-00ch] ; 8e 46 f4 12648 12636 cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00 12649 je short 08 464h ; 74 0712637 je short 082e0h ; 74 07 12650 12638 mov cx, word [es:si+020h] ; 26 8b 4c 20 12651 12639 in AL, DX ; ec 12652 loop 08 461h ; e2 fd12640 loop 082ddh ; e2 fd 12653 12641 xor dx, dx ; 31 d2 12654 12642 mov ax, dx ; 89 d0 … … 12658 12646 pop bp ; 5d 12659 12647 retn 0000ch ; c2 0c 00 12660 scsi_enumerate_attached_devices_: ; 0xf8 471LB 0x4cb12648 scsi_enumerate_attached_devices_: ; 0xf82ed LB 0x4cb 12661 12649 push bp ; 55 12662 12650 mov bp, sp ; 89 e5 … … 12670 12658 mov dx, strict word 0000eh ; ba 0e 00 12671 12659 mov ax, strict word 00040h ; b8 40 00 12672 call 0166eh ; e8 e7 9112660 call 0166eh ; e8 6b 93 12673 12661 mov di, 00122h ; bf 22 01 12674 12662 mov word [bp-016h], ax ; 89 46 ea 12675 12663 mov word [bp-014h], strict word 00000h ; c7 46 ec 00 00 12676 jmp near 08 8afh ; e9 1a 0412664 jmp near 0872bh ; e9 1a 04 12677 12665 cmp AL, strict byte 004h ; 3c 04 12678 jc short 08 49ch ; 72 0312679 jmp near 08 932h ; e9 96 0412666 jc short 08318h ; 72 03 12667 jmp near 087aeh ; e9 96 04 12680 12668 mov cx, strict word 00010h ; b9 10 00 12681 12669 xor bx, bx ; 31 db 12682 12670 mov dx, ss ; 8c d2 12683 12671 lea ax, [bp-048h] ; 8d 46 b8 12684 call 0a 21ah ; e8 711d12672 call 0a070h ; e8 4b 1d 12685 12673 mov byte [bp-048h], 09eh ; c6 46 b8 9e 12686 12674 mov byte [bp-047h], 010h ; c6 46 b9 10 … … 12700 12688 lea bx, [bp-048h] ; 8d 5e b8 12701 12689 mov ax, word [bp-0024ah] ; 8b 86 b6 fd 12702 call 07 f85h ; e8 ae fa12690 call 07e01h ; e8 ae fa 12703 12691 test al, al ; 84 c0 12704 je short 08 4edh ; 74 1212692 je short 08369h ; 74 12 12705 12693 mov ax, 00b92h ; b8 92 0b 12706 12694 push ax ; 50 … … 12709 12697 mov ax, strict word 00007h ; b8 07 00 12710 12698 push ax ; 50 12711 call 01976h ; e8 8c 9412699 call 01976h ; e8 10 96 12712 12700 add sp, strict byte 00006h ; 83 c4 06 12713 12701 mov ax, word [bp-00242h] ; 8b 86 be fd … … 12741 12729 sal ax, 1 ; d1 e0 12742 12730 rcl dx, 1 ; d1 d2 12743 loop 08 53bh ; e2 fa12731 loop 083b7h ; e2 fa 12744 12732 or bx, ax ; 09 c3 12745 12733 or dx, si ; 09 f2 … … 12749 12737 mov word [bp-01ch], bx ; 89 5e e4 12750 12738 test dx, dx ; 85 d2 12751 jne short 08 55ah ; 75 0612739 jne short 083d6h ; 75 06 12752 12740 cmp bx, 00200h ; 81 fb 00 02 12753 je short 08 57dh ; 74 2312741 je short 083f9h ; 74 23 12754 12742 mov bx, 00da0h ; bb a0 0d 12755 12743 mov cx, ds ; 8c d9 12756 12744 mov ax, strict word 00004h ; b8 04 00 12757 call 01933h ; e8 ce 9312745 call 01933h ; e8 52 95 12758 12746 push dx ; 52 12759 12747 push word [bp-01ch] ; ff 76 e4 … … 12763 12751 mov ax, strict word 00004h ; b8 04 00 12764 12752 push ax ; 50 12765 call 01976h ; e8 ff 9312753 call 01976h ; e8 83 95 12766 12754 add sp, strict byte 0000ah ; 83 c4 0a 12767 jmp near 08 8a3h ; e9 26 0312755 jmp near 0871fh ; e9 26 03 12768 12756 mov al, byte [bp-00ch] ; 8a 46 f4 12769 12757 cmp AL, strict byte 001h ; 3c 01 12770 jc short 08 590h ; 72 0c12771 jbe short 08 598h ; 76 1212758 jc short 0840ch ; 72 0c 12759 jbe short 08414h ; 76 12 12772 12760 cmp AL, strict byte 003h ; 3c 03 12773 je short 08 5a0h ; 74 1612761 je short 0841ch ; 74 16 12774 12762 cmp AL, strict byte 002h ; 3c 02 12775 je short 08 59ch ; 74 0e12776 jmp short 08 5e7h ; eb 5712763 je short 08418h ; 74 0e 12764 jmp short 08463h ; eb 57 12777 12765 test al, al ; 84 c0 12778 jne short 08 5e7h ; 75 5312766 jne short 08463h ; 75 53 12779 12767 mov BL, strict byte 090h ; b3 90 12780 jmp short 08 5a2h ; eb 0a12768 jmp short 0841eh ; eb 0a 12781 12769 mov BL, strict byte 098h ; b3 98 12782 jmp short 08 5a2h ; eb 0612770 jmp short 0841eh ; eb 06 12783 12771 mov BL, strict byte 0a0h ; b3 a0 12784 jmp short 08 5a2h ; eb 0212772 jmp short 0841eh ; eb 02 12785 12773 mov BL, strict byte 0a8h ; b3 a8 12786 12774 mov cl, bl ; 88 d9 … … 12788 12776 xor ch, ch ; 30 ed 12789 12777 mov ax, cx ; 89 c8 12790 call 016aeh ; e8 00 9112778 call 016aeh ; e8 84 92 12791 12779 test al, al ; 84 c0 12792 je short 08 5e7h ; 74 3512780 je short 08463h ; 74 35 12793 12781 mov al, bl ; 88 d8 12794 12782 db 0feh, 0c0h 12795 12783 ; inc al ; fe c0 12796 12784 xor ah, ah ; 30 e4 12797 call 016aeh ; e8 f3 9012785 call 016aeh ; e8 77 92 12798 12786 mov dh, al ; 88 c6 12799 12787 mov al, bl ; 88 d8 12800 12788 xor ah, ah ; 30 e4 12801 call 016aeh ; e8 ea 9012789 call 016aeh ; e8 6e 92 12802 12790 mov ah, dh ; 88 f4 12803 12791 cwd ; 99 … … 12807 12795 add AL, strict byte 002h ; 04 02 12808 12796 xor ah, ah ; 30 e4 12809 call 016aeh ; e8 d9 9012797 call 016aeh ; e8 5d 92 12810 12798 xor ah, ah ; 30 e4 12811 12799 mov word [bp-028h], ax ; 89 46 d8 12812 12800 mov ax, cx ; 89 c8 12813 call 016aeh ; e8 cf 9012801 call 016aeh ; e8 53 92 12814 12802 xor ah, ah ; 30 e4 12815 12803 mov word [bp-01ah], ax ; 89 46 e6 12816 jmp near 08 6d4h ; e9 ed 0012804 jmp near 08550h ; e9 ed 00 12817 12805 mov ax, word [bp-020h] ; 8b 46 e0 12818 12806 mov bx, word [bp-022h] ; 8b 5e de … … 12820 12808 mov dx, word [bp-024h] ; 8b 56 dc 12821 12809 mov si, strict word 0000ch ; be 0c 00 12822 call 0a 20ah ; e8 11 1c12810 call 0a050h ; e8 db 1b 12823 12811 mov word [bp-02ah], ax ; 89 46 d6 12824 12812 mov word [bp-02ch], bx ; 89 5e d4 … … 12827 12815 mov ax, word [bp-020h] ; 8b 46 e0 12828 12816 test ax, ax ; 85 c0 12829 jnbe short 08 621h ; 77 1512830 je short 08 611h ; 74 0312831 jmp near 08 694h ; e9 83 0012817 jnbe short 0849dh ; 77 15 12818 je short 0848dh ; 74 03 12819 jmp near 08510h ; e9 83 00 12832 12820 cmp word [bp-022h], strict byte 00000h ; 83 7e de 00 12833 jnbe short 08 621h ; 77 0a12834 jne short 08 60eh ; 75 f512821 jnbe short 0849dh ; 77 0a 12822 jne short 0848ah ; 75 f5 12835 12823 cmp word [bp-012h], strict byte 00040h ; 83 7e ee 40 12836 jnbe short 08 621h ; 77 0212837 jne short 08 694h ; 75 7312824 jnbe short 0849dh ; 77 02 12825 jne short 08510h ; 75 73 12838 12826 mov word [bp-028h], 000ffh ; c7 46 d8 ff 00 12839 12827 mov word [bp-01ah], strict word 0003fh ; c7 46 e6 3f 00 … … 12842 12830 mov dx, word [bp-024h] ; 8b 56 dc 12843 12831 mov si, strict word 00006h ; be 06 00 12844 call 0a 20ah ; e8 d01b12832 call 0a050h ; e8 9a 1b 12845 12833 mov si, word [bp-018h] ; 8b 76 e8 12846 12834 add si, dx ; 01 d6 … … 12860 12848 mov dx, si ; 89 f2 12861 12849 mov si, strict word 00008h ; be 08 00 12862 call 0a 20ah ; e8 a01b12850 call 0a050h ; e8 6a 1b 12863 12851 mov word [bp-02eh], bx ; 89 5e d2 12864 12852 mov word [bp-030h], cx ; 89 4e d0 … … 12869 12857 mov dx, word [bp-01eh] ; 8b 56 e2 12870 12858 mov si, strict word 00010h ; be 10 00 12871 call 0a 20ah ; e8 851b12859 call 0a050h ; e8 4f 1b 12872 12860 mov si, word [bp-032h] ; 8b 76 ce 12873 12861 add si, dx ; 01 d6 … … 12875 12863 mov ax, word [bp-02eh] ; 8b 46 d2 12876 12864 adc ax, bx ; 11 d8 12877 jmp short 08 6d1h ; eb 3d12865 jmp short 0854dh ; eb 3d 12878 12866 test ax, ax ; 85 c0 12879 jnbe short 08 6aah ; 77 1212880 jne short 08 6b6h ; 75 1c12867 jnbe short 08526h ; 77 12 12868 jne short 08532h ; 75 1c 12881 12869 cmp word [bp-022h], strict byte 00000h ; 83 7e de 00 12882 jnbe short 08 6aah ; 77 0a12883 jne short 08 6b6h ; 75 1412870 jnbe short 08526h ; 77 0a 12871 jne short 08532h ; 75 14 12884 12872 cmp word [bp-012h], strict byte 00020h ; 83 7e ee 20 12885 jnbe short 08 6aah ; 77 0212886 jne short 08 6b6h ; 75 0c12873 jnbe short 08526h ; 77 02 12874 jne short 08532h ; 75 0c 12887 12875 mov word [bp-028h], 00080h ; c7 46 d8 80 00 12888 12876 mov word [bp-01ah], strict word 00020h ; c7 46 e6 20 00 12889 jmp short 08 6cfh ; eb 1912877 jmp short 0854bh ; eb 19 12890 12878 mov word [bp-028h], strict word 00040h ; c7 46 d8 40 00 12891 12879 mov word [bp-01ah], strict word 00020h ; c7 46 e6 20 00 … … 12894 12882 mov dx, word [bp-024h] ; 8b 56 dc 12895 12883 mov si, strict word 0000bh ; be 0b 00 12896 call 0a 20ah ; e8 3b1b12884 call 0a050h ; e8 05 1b 12897 12885 mov si, dx ; 89 d6 12898 12886 mov word [bp-026h], cx ; 89 4e da … … 12931 12919 mov word [es:bx+034h], ax ; 26 89 47 34 12932 12920 cmp word [bp-026h], strict byte 00000h ; 83 7e da 00 12933 jne short 08 74bh ; 75 0612921 jne short 085c7h ; 75 06 12934 12922 cmp si, 00400h ; 81 fe 00 04 12935 jbe short 08 759h ; 76 0e12923 jbe short 085d5h ; 76 0e 12936 12924 mov word [es:bx+02ch], 00400h ; 26 c7 47 2c 00 04 12937 12925 mov word [es:bx+032h], 00400h ; 26 c7 47 32 00 04 12938 jmp short 08 761h ; eb 0812926 jmp short 085ddh ; eb 08 12939 12927 mov word [es:bx+02ch], si ; 26 89 77 2c 12940 12928 mov word [es:bx+032h], si ; 26 89 77 32 … … 12942 12930 mov cx, ds ; 8c d9 12943 12931 mov ax, strict word 00004h ; b8 04 00 12944 call 01933h ; e8 c7 9112932 call 01933h ; e8 4b 93 12945 12933 push word [bp-020h] ; ff 76 e0 12946 12934 push word [bp-022h] ; ff 76 de … … 12959 12947 mov ax, strict word 00004h ; b8 04 00 12960 12948 push ax ; 50 12961 call 01976h ; e8 e0 9112949 call 01976h ; e8 64 93 12962 12950 add sp, strict byte 00018h ; 83 c4 18 12963 12951 mov al, byte [bp-00eh] ; 8a 46 f2 … … 12988 12976 mov dx, strict word 00075h ; ba 75 00 12989 12977 mov ax, strict word 00040h ; b8 40 00 12990 call 01652h ; e8 66 8e12978 call 01652h ; e8 ea 8f 12991 12979 mov bl, al ; 88 c3 12992 12980 db 0feh, 0c3h … … 12995 12983 mov dx, strict word 00075h ; ba 75 00 12996 12984 mov ax, strict word 00040h ; b8 40 00 12997 call 01660h ; e8 65 8e12985 call 01660h ; e8 e9 8f 12998 12986 inc byte [bp-00ch] ; fe 46 f4 12999 jmp near 08 898h ; e9 97 0012987 jmp near 08714h ; e9 97 00 13000 12988 mov bx, 00da0h ; bb a0 0d 13001 12989 mov cx, ds ; 8c d9 13002 12990 mov ax, strict word 00004h ; b8 04 00 13003 call 01933h ; e8 27 9112991 call 01933h ; e8 ab 92 13004 12992 push word [bp-014h] ; ff 76 ec 13005 12993 mov al, byte [bp-00ch] ; 8a 46 f4 … … 13010 12998 mov ax, strict word 00004h ; b8 04 00 13011 12999 push ax ; 50 13012 call 01976h ; e8 56 9113000 call 01976h ; e8 da 92 13013 13001 add sp, strict byte 00008h ; 83 c4 08 13014 13002 mov al, byte [bp-00ch] ; 8a 46 f4 … … 13016 13004 mov byte [bp-00eh], al ; 88 46 f2 13017 13005 test byte [bp-00247h], 080h ; f6 86 b9 fd 80 13018 je short 08 837h ; 74 0513006 je short 086b3h ; 74 05 13019 13007 mov cx, strict word 00001h ; b9 01 00 13020 jmp short 08 839h ; eb 0213008 jmp short 086b5h ; eb 02 13021 13009 xor cx, cx ; 31 c9 13022 13010 mov al, byte [bp-00ch] ; 8a 46 f4 … … 13056 13044 inc word [bp-014h] ; ff 46 ec 13057 13045 cmp word [bp-014h], strict byte 00010h ; 83 7e ec 10 13058 jl short 08 8afh ; 7c 0313059 jmp near 08 932h ; e9 83 0013046 jl short 0872bh ; 7c 03 13047 jmp near 087aeh ; e9 83 00 13060 13048 mov byte [bp-048h], 012h ; c6 46 b8 12 13061 13049 xor al, al ; 30 c0 … … 13079 13067 lea bx, [bp-048h] ; 8d 5e b8 13080 13068 mov ax, word [bp-0024ah] ; 8b 86 b6 fd 13081 call 07 f85h ; e8 9e f613069 call 07e01h ; e8 9e f6 13082 13070 test al, al ; 84 c0 13083 je short 08 8fdh ; 74 1213071 je short 08779h ; 74 12 13084 13072 mov ax, 00b92h ; b8 92 0b 13085 13073 push ax ; 50 … … 13088 13076 mov ax, strict word 00007h ; b8 07 00 13089 13077 push ax ; 50 13090 call 01976h ; e8 7c 9013078 call 01976h ; e8 00 92 13091 13079 add sp, strict byte 00006h ; 83 c4 06 13092 13080 mov es, [bp-016h] ; 8e 46 ea … … 13094 13082 mov byte [bp-00ch], al ; 88 46 f4 13095 13083 test byte [bp-00248h], 0e0h ; f6 86 b8 fd e0 13096 jne short 08 919h ; 75 0a13084 jne short 08795h ; 75 0a 13097 13085 test byte [bp-00248h], 01fh ; f6 86 b8 fd 1f 13098 jne short 08 919h ; 75 0313099 jmp near 08 495h ; e9 7c fb13086 jne short 08795h ; 75 03 13087 jmp near 08311h ; e9 7c fb 13100 13088 test byte [bp-00248h], 0e0h ; f6 86 b8 fd e0 13101 je short 08 923h ; 74 0313102 jmp near 08 898h ; e9 75 ff13089 je short 0879fh ; 74 03 13090 jmp near 08714h ; e9 75 ff 13103 13091 mov al, byte [bp-00248h] ; 8a 86 b8 fd 13104 13092 and AL, strict byte 01fh ; 24 1f 13105 13093 cmp AL, strict byte 005h ; 3c 05 13106 jne short 08 930h ; 75 0313107 jmp near 08 801h ; e9 d1 fe13108 jmp short 08 920h ; eb ee13094 jne short 087ach ; 75 03 13095 jmp near 0867dh ; e9 d1 fe 13096 jmp short 0879ch ; eb ee 13109 13097 lea sp, [bp-00ah] ; 8d 66 f6 13110 13098 pop di ; 5f … … 13115 13103 pop bp ; 5d 13116 13104 retn ; c3 13117 _scsi_init: ; 0xf8 93cLB 0x6613105 _scsi_init: ; 0xf87b8 LB 0x66 13118 13106 push bp ; 55 13119 13107 mov bp, sp ; 89 e5 13120 13108 mov dx, strict word 0000eh ; ba 0e 00 13121 13109 mov ax, strict word 00040h ; b8 40 00 13122 call 0166eh ; e8 26 8d13110 call 0166eh ; e8 aa 8e 13123 13111 mov bx, 00122h ; bb 22 01 13124 13112 mov es, ax ; 8e c0 … … 13131 13119 ; sub ah, ah ; 2a e4 13132 13120 cmp AL, strict byte 055h ; 3c 55 13133 jne short 08 96ch ; 75 0c13121 jne short 087e8h ; 75 0c 13134 13122 xor al, al ; 30 c0 13135 13123 mov dx, 00433h ; ba 33 04 13136 13124 out DX, AL ; ee 13137 13125 mov ax, 00430h ; b8 30 04 13138 call 08 471h ; e8 05 fb13126 call 082edh ; e8 05 fb 13139 13127 mov AL, strict byte 055h ; b0 55 13140 13128 mov dx, 00436h ; ba 36 04 … … 13144 13132 ; sub ah, ah ; 2a e4 13145 13133 cmp AL, strict byte 055h ; 3c 55 13146 jne short 08 985h ; 75 0c13134 jne short 08801h ; 75 0c 13147 13135 xor al, al ; 30 c0 13148 13136 mov dx, 00437h ; ba 37 04 13149 13137 out DX, AL ; ee 13150 13138 mov ax, 00434h ; b8 34 04 13151 call 08 471h ; e8 ec fa13139 call 082edh ; e8 ec fa 13152 13140 mov AL, strict byte 055h ; b0 55 13153 13141 mov dx, 0043ah ; ba 3a 04 … … 13157 13145 ; sub ah, ah ; 2a e4 13158 13146 cmp AL, strict byte 055h ; 3c 55 13159 jne short 08 99eh ; 75 0c13147 jne short 0881ah ; 75 0c 13160 13148 xor al, al ; 30 c0 13161 13149 mov dx, 0043bh ; ba 3b 04 13162 13150 out DX, AL ; ee 13163 13151 mov ax, 00438h ; b8 38 04 13164 call 08 471h ; e8 d3 fa13152 call 082edh ; e8 d3 fa 13165 13153 mov sp, bp ; 89 ec 13166 13154 pop bp ; 5d 13167 13155 retn ; c3 13168 ahci_ctrl_extract_bits_: ; 0xf8 9a2LB 0x1c13156 ahci_ctrl_extract_bits_: ; 0xf881e LB 0x1c 13169 13157 push si ; 56 13170 13158 push bp ; 55 … … 13175 13163 mov cl, byte [bp+006h] ; 8a 4e 06 13176 13164 xor ch, ch ; 30 ed 13177 jcxz 08 9b9h ; e3 0613165 jcxz 08835h ; e3 06 13178 13166 shr dx, 1 ; d1 ea 13179 13167 rcr ax, 1 ; d1 d8 13180 loop 08 9b3h ; e2 fa13168 loop 0882fh ; e2 fa 13181 13169 pop bp ; 5d 13182 13170 pop si ; 5e 13183 13171 retn 00002h ; c2 02 00 13184 ahci_addr_to_phys_: ; 0xf8 9beLB 0x1e13172 ahci_addr_to_phys_: ; 0xf883a LB 0x1e 13185 13173 push bx ; 53 13186 13174 push cx ; 51 … … 13193 13181 sal ax, 1 ; d1 e0 13194 13182 rcl dx, 1 ; d1 d2 13195 loop 08 9cch ; e2 fa13183 loop 08848h ; e2 fa 13196 13184 xor cx, cx ; 31 c9 13197 13185 add ax, bx ; 01 d8 … … 13201 13189 pop bx ; 5b 13202 13190 retn ; c3 13203 ahci_port_cmd_sync_: ; 0xf8 9dcLB 0x15913191 ahci_port_cmd_sync_: ; 0xf8858 LB 0x159 13204 13192 push bp ; 55 13205 13193 mov bp, sp ; 89 e5 … … 13216 13204 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 13217 13205 cmp AL, strict byte 0ffh ; 3c ff 13218 jne short 08 9ffh ; 75 0313219 jmp near 08 b2dh ; e9 2e 0113206 jne short 0887bh ; 75 03 13207 jmp near 089a9h ; e9 2e 01 13220 13208 mov al, byte [es:si+00263h] ; 26 8a 84 63 02 13221 13209 xor ah, ah ; 30 e4 … … 13230 13218 lea ax, [si+00080h] ; 8d 84 80 00 13231 13219 mov dx, cx ; 89 ca 13232 call 08 9beh ; e8 92 ff13220 call 0883ah ; e8 92 ff 13233 13221 mov es, cx ; 8e c1 13234 13222 mov word [es:si+008h], ax ; 26 89 44 08 … … 13298 13286 xchg dx, ax ; 92 13299 13287 test dh, 040h ; f6 c6 40 13300 jne short 08 abfh ; 75 0413288 jne short 0893bh ; 75 04 13301 13289 test AL, strict byte 001h ; a8 01 13302 je short 08 ac3h ; 74 0413290 je short 0893fh ; 74 04 13303 13291 mov AL, strict byte 001h ; b0 01 13304 jmp short 08 ac5h ; eb 0213292 jmp short 08941h ; eb 02 13305 13293 xor al, al ; 30 c0 13306 13294 test al, al ; 84 c0 13307 je short 08 a91h ; 74 c813295 je short 0890dh ; 74 c8 13308 13296 mov al, byte [bp-008h] ; 8a 46 f8 13309 13297 xor ah, ah ; 30 e4 … … 13362 13350 pop bp ; 5d 13363 13351 retn ; c3 13364 ahci_cmd_data_: ; 0xf8 b35LB 0x26213352 ahci_cmd_data_: ; 0xf89b1 LB 0x262 13365 13353 push bp ; 55 13366 13354 mov bp, sp ; 89 e5 … … 13387 13375 mov ax, 00080h ; b8 80 00 13388 13376 mov dx, word [bp-00ah] ; 8b 56 f6 13389 call 0a 21ah ; e8 a71613377 call 0a070h ; e8 81 16 13390 13378 mov es, [bp-00ah] ; 8e 46 f6 13391 13379 mov word [es:di+00080h], 08027h ; 26 c7 85 80 00 27 80 … … 13405 13393 mov dx, word [es:si] ; 26 8b 14 13406 13394 mov si, strict word 00008h ; be 08 00 13407 call 0a 20ah ; e8 531613395 call 0a050h ; e8 1d 16 13408 13396 mov es, [bp-00ah] ; 8e 46 f6 13409 13397 mov byte [es:di+00085h], dl ; 26 88 95 85 00 … … 13416 13404 mov dx, word [es:si] ; 26 8b 14 13417 13405 mov si, strict word 00010h ; be 10 00 13418 call 0a 20ah ; e8 2d 1613406 call 0a050h ; e8 f7 15 13419 13407 mov es, [bp-00ah] ; 8e 46 f6 13420 13408 mov byte [es:di+00086h], dl ; 26 88 95 86 00 … … 13428 13416 mov dx, word [es:si] ; 26 8b 14 13429 13417 mov si, strict word 00018h ; be 18 00 13430 call 0a 20ah ; e8 01 1613418 call 0a050h ; e8 cb 15 13431 13419 mov es, [bp-00ah] ; 8e 46 f6 13432 13420 mov byte [es:di+00088h], dl ; 26 88 95 88 00 … … 13439 13427 mov dx, word [es:si] ; 26 8b 14 13440 13428 mov si, strict word 00020h ; be 20 00 13441 call 0a 20ah ; e8 db1513429 call 0a050h ; e8 a5 15 13442 13430 mov es, [bp-00ah] ; 8e 46 f6 13443 13431 mov byte [es:di+00089h], dl ; 26 88 95 89 00 … … 13450 13438 mov dx, word [es:si] ; 26 8b 14 13451 13439 mov si, strict word 00028h ; be 28 00 13452 call 0a 20ah ; e8 b51513440 call 0a050h ; e8 7f 15 13453 13441 mov es, [bp-00ah] ; 8e 46 f6 13454 13442 mov byte [es:di+0008ah], dl ; 26 88 95 8a 00 … … 13463 13451 mov bx, word [bp-012h] ; 8b 5e ee 13464 13452 xor cx, cx ; 31 c9 13465 call 0a 1c9h ; e8 42 1513453 call 0a000h ; e8 fd 14 13466 13454 push dx ; 52 13467 13455 push ax ; 50 … … 13473 13461 mov ax, 0026ah ; b8 6a 02 13474 13462 mov dx, word [bp-00ah] ; 8b 56 f6 13475 call 0 a0deh ; e8 3b 1413463 call 09f5ah ; e8 3b 14 13476 13464 mov es, [bp-00ah] ; 8e 46 f6 13477 13465 mov dx, word [es:di+0027eh] ; 26 8b 95 7e 02 … … 13497 13485 mov ax, word [es:bx+020h] ; 26 8b 47 20 13498 13486 test ax, ax ; 85 c0 13499 je short 08 d33h ; 74 3913487 je short 08bafh ; 74 39 13500 13488 dec ax ; 48 13501 13489 mov es, [bp-00ah] ; 8e 46 f6 … … 13515 13503 mov al, byte [bp-008h] ; 8a 46 f8 13516 13504 cmp AL, strict byte 035h ; 3c 35 13517 jne short 08 d40h ; 75 0613505 jne short 08bbch ; 75 06 13518 13506 mov byte [bp-008h], 040h ; c6 46 f8 40 13519 jmp short 08 d57h ; eb 1713507 jmp short 08bd3h ; eb 17 13520 13508 cmp AL, strict byte 0a0h ; 3c a0 13521 jne short 08 d53h ; 75 0f13509 jne short 08bcfh ; 75 0f 13522 13510 or byte [bp-008h], 020h ; 80 4e f8 20 13523 13511 les bx, [bp-00eh] ; c4 5e f2 13524 13512 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 13525 jmp short 08 d57h ; eb 0413513 jmp short 08bd3h ; eb 04 13526 13514 mov byte [bp-008h], 000h ; c6 46 f8 00 13527 13515 or byte [bp-008h], 005h ; 80 4e f8 05 … … 13530 13518 mov ax, word [bp-00eh] ; 8b 46 f2 13531 13519 mov dx, word [bp-00ch] ; 8b 56 f4 13532 call 08 9dch ; e8 73 fc13520 call 08858h ; e8 73 fc 13533 13521 mov cx, word [bp-00ch] ; 8b 4e f4 13534 13522 mov bx, word [bp-00eh] ; 8b 5e f2 … … 13537 13525 add ax, 0026ah ; 05 6a 02 13538 13526 mov dx, cx ; 89 ca 13539 call 0 a155h ; e8 d7 1313527 call 09fd1h ; e8 d7 13 13540 13528 mov es, cx ; 8e c1 13541 13529 mov al, byte [es:bx+003h] ; 26 8a 47 03 13542 13530 test al, al ; 84 c0 13543 je short 08 d8dh ; 74 0513531 je short 08c09h ; 74 05 13544 13532 mov ax, strict word 00004h ; b8 04 00 13545 jmp short 08 d8fh ; eb 0213533 jmp short 08c0bh ; eb 02 13546 13534 xor ah, ah ; 30 e4 13547 13535 lea sp, [bp-006h] ; 8d 66 fa … … 13551 13539 pop bp ; 5d 13552 13540 retn ; c3 13553 ahci_port_deinit_current_: ; 0xf8 d97LB 0x18313541 ahci_port_deinit_current_: ; 0xf8c13 LB 0x183 13554 13542 push bp ; 55 13555 13543 mov bp, sp ; 89 e5 … … 13566 13554 mov byte [bp-00ah], al ; 88 46 f6 13567 13555 cmp AL, strict byte 0ffh ; 3c ff 13568 je short 08 e1ah ; 74 6113556 je short 08c96h ; 74 61 13569 13557 xor ah, ah ; 30 e4 13570 13558 mov CL, strict byte 007h ; b1 07 … … 13612 13600 xchg dx, ax ; 92 13613 13601 test ax, 0c011h ; a9 11 c0 13614 je short 08 e1dh ; 74 0713602 je short 08c99h ; 74 07 13615 13603 mov AL, strict byte 001h ; b0 01 13616 jmp short 08 e1fh ; eb 0513617 jmp near 08 f11h ; e9 f4 0013604 jmp short 08c9bh ; eb 05 13605 jmp near 08d8dh ; e9 f4 00 13618 13606 xor al, al ; 30 c0 13619 13607 cmp AL, strict byte 001h ; 3c 01 13620 je short 08 dech ; 74 c913608 je short 08c68h ; 74 c9 13621 13609 mov cx, strict word 00020h ; b9 20 00 13622 13610 xor bx, bx ; 31 db 13623 13611 mov ax, di ; 89 f8 13624 13612 mov dx, word [bp-00eh] ; 8b 56 f2 13625 call 0a 21ah ; e8 ea1313613 call 0a070h ; e8 c4 13 13626 13614 lea ax, [di+00080h] ; 8d 85 80 00 13627 13615 mov cx, strict word 00040h ; b9 40 00 13628 13616 xor bx, bx ; 31 db 13629 13617 mov dx, word [bp-00eh] ; 8b 56 f2 13630 call 0a 21ah ; e8 db1313618 call 0a070h ; e8 b5 13 13631 13619 lea ax, [di+00200h] ; 8d 85 00 02 13632 13620 mov cx, strict word 00060h ; b9 60 00 13633 13621 xor bx, bx ; 31 db 13634 13622 mov dx, word [bp-00eh] ; 8b 56 f2 13635 call 0a 21ah ; e8 cc1313623 call 0a070h ; e8 a6 13 13636 13624 mov al, byte [bp-00ah] ; 8a 46 f6 13637 13625 xor ah, ah ; 30 e4 … … 13739 13727 pop bp ; 5d 13740 13728 retn ; c3 13741 ahci_port_init_: ; 0xf8 f1aLB 0x25013729 ahci_port_init_: ; 0xf8d96 LB 0x250 13742 13730 push bp ; 55 13743 13731 mov bp, sp ; 89 e5 … … 13749 13737 mov word [bp-00ah], dx ; 89 56 f6 13750 13738 mov byte [bp-008h], bl ; 88 5e f8 13751 call 08 d97h ; e8 69 fe13739 call 08c13h ; e8 69 fe 13752 13740 mov al, bl ; 88 d8 13753 13741 xor ah, ah ; 30 e4 … … 13800 13788 xchg dx, ax ; 92 13801 13789 test ax, 0c011h ; a9 11 c0 13802 je short 08 fa1h ; 74 0413790 je short 08e1dh ; 74 04 13803 13791 mov AL, strict byte 001h ; b0 01 13804 jmp short 08 fa3h ; eb 0213792 jmp short 08e1fh ; eb 02 13805 13793 xor al, al ; 30 c0 13806 13794 cmp AL, strict byte 001h ; 3c 01 13807 je short 08 f6bh ; 74 c413795 je short 08de7h ; 74 c4 13808 13796 mov cx, strict word 00020h ; b9 20 00 13809 13797 xor bx, bx ; 31 db 13810 13798 mov ax, si ; 89 f0 13811 13799 mov dx, word [bp-00ah] ; 8b 56 f6 13812 call 0a 21ah ; e8 661213800 call 0a070h ; e8 40 12 13813 13801 lea ax, [si+00080h] ; 8d 84 80 00 13814 13802 mov cx, strict word 00040h ; b9 40 00 13815 13803 xor bx, bx ; 31 db 13816 13804 mov dx, word [bp-00ah] ; 8b 56 f6 13817 call 0a 21ah ; e8 571213805 call 0a070h ; e8 31 12 13818 13806 lea di, [si+00200h] ; 8d bc 00 02 13819 13807 mov cx, strict word 00060h ; b9 60 00 … … 13821 13809 mov ax, di ; 89 f8 13822 13810 mov dx, word [bp-00ah] ; 8b 56 f6 13823 call 0a 21ah ; e8 461213811 call 0a070h ; e8 20 12 13824 13812 mov bl, byte [bp-008h] ; 8a 5e f8 13825 13813 xor bh, bh ; 30 ff … … 13840 13828 mov ax, di ; 89 f8 13841 13829 mov dx, word [bp-00ah] ; 8b 56 f6 13842 call 08 9beh ; e8 bb f913830 call 0883ah ; e8 bb f9 13843 13831 mov es, [bp-00ah] ; 8e 46 f6 13844 13832 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13885 13873 mov ax, si ; 89 f0 13886 13874 mov dx, word [bp-00ah] ; 8b 56 f6 13887 call 08 9beh ; e8 4f f913875 call 0883ah ; e8 4f f9 13888 13876 mov es, [bp-00ah] ; 8e 46 f6 13889 13877 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13990 13978 pop bp ; 5d 13991 13979 retn ; c3 13992 @ahci_read_sectors: ; 0xf 916aLB 0xaa13980 @ahci_read_sectors: ; 0xf8fe6 LB 0xaa 13993 13981 push bp ; 55 13994 13982 mov bp, sp ; 89 e5 … … 14001 13989 sub di, strict byte 0000ch ; 83 ef 0c 14002 13990 cmp di, strict byte 00004h ; 83 ff 04 14003 jbe short 09 195h ; 76 1313991 jbe short 09011h ; 76 13 14004 13992 push di ; 57 14005 13993 mov ax, 00c62h ; b8 62 0c … … 14009 13997 mov ax, strict word 00007h ; b8 07 00 14010 13998 push ax ; 50 14011 call 01976h ; e8 e4 8713999 call 01976h ; e8 68 89 14012 14000 add sp, strict byte 00008h ; 83 c4 08 14013 14001 xor bx, bx ; 31 db … … 14023 14011 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 14024 14012 xor ax, ax ; 31 c0 14025 call 08 f1ah ; e8 5a fd14013 call 08d96h ; e8 5a fd 14026 14014 mov bx, strict word 00025h ; bb 25 00 14027 14015 mov ax, si ; 89 f0 14028 14016 mov dx, word [bp+006h] ; 8b 56 06 14029 call 08 b35h ; e8 6a f914017 call 089b1h ; e8 6a f9 14030 14018 mov bx, ax ; 89 c3 14031 14019 mov es, [bp+006h] ; 8e 46 06 … … 14057 14045 pop bp ; 5d 14058 14046 retn 00004h ; c2 04 00 14059 @ahci_write_sectors: ; 0xf9 214LB 0x8814047 @ahci_write_sectors: ; 0xf9090 LB 0x88 14060 14048 push bp ; 55 14061 14049 mov bp, sp ; 89 e5 … … 14069 14057 sub bx, strict byte 0000ch ; 83 eb 0c 14070 14058 cmp bx, strict byte 00004h ; 83 fb 04 14071 jbe short 09 242h ; 76 1314059 jbe short 090beh ; 76 13 14072 14060 push bx ; 53 14073 14061 mov ax, 00c93h ; b8 93 0c … … 14077 14065 mov ax, strict word 00007h ; b8 07 00 14078 14066 push ax ; 50 14079 call 01976h ; e8 37 8714067 call 01976h ; e8 bb 88 14080 14068 add sp, strict byte 00008h ; 83 c4 08 14081 14069 xor di, di ; 31 ff … … 14091 14079 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 14092 14080 xor ax, ax ; 31 c0 14093 call 08 f1ah ; e8 af fc14081 call 08d96h ; e8 af fc 14094 14082 mov bx, strict word 00035h ; bb 35 00 14095 14083 mov ax, si ; 89 f0 14096 14084 mov dx, cx ; 89 ca 14097 call 08 b35h ; e8 c0 f814085 call 089b1h ; e8 c0 f8 14098 14086 mov dx, ax ; 89 c2 14099 14087 mov es, cx ; 8e c1 … … 14110 14098 pop bp ; 5d 14111 14099 retn 00004h ; c2 04 00 14112 ahci_cmd_packet_: ; 0xf9 29cLB 0x18c14100 ahci_cmd_packet_: ; 0xf9118 LB 0x18c 14113 14101 push bp ; 55 14114 14102 mov bp, sp ; 89 e5 … … 14122 14110 mov dx, strict word 0000eh ; ba 0e 00 14123 14111 mov ax, strict word 00040h ; b8 40 00 14124 call 0166eh ; e8 b7 8314112 call 0166eh ; e8 3b 85 14125 14113 mov si, 00122h ; be 22 01 14126 14114 mov word [bp-008h], ax ; 89 46 f8 14127 14115 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 14128 jne short 09 2e6h ; 75 2314116 jne short 09162h ; 75 23 14129 14117 mov bx, 00da0h ; bb a0 0d 14130 14118 mov cx, ds ; 8c d9 14131 14119 mov ax, strict word 00004h ; b8 04 00 14132 call 01933h ; e8 65 8614120 call 01933h ; e8 e9 87 14133 14121 mov ax, 00ca6h ; b8 a6 0c 14134 14122 push ax ; 50 … … 14137 14125 mov ax, strict word 00004h ; b8 04 00 14138 14126 push ax ; 50 14139 call 01976h ; e8 99 8614127 call 01976h ; e8 1d 88 14140 14128 add sp, strict byte 00006h ; 83 c4 06 14141 14129 mov ax, strict word 00001h ; b8 01 00 14142 jmp near 09 41fh ; e9 39 0114130 jmp near 0929bh ; e9 39 01 14143 14131 test byte [bp+004h], 001h ; f6 46 04 01 14144 jne short 09 2e0h ; 75 f414132 jne short 0915ch ; 75 f4 14145 14133 mov bx, word [bp+006h] ; 8b 5e 06 14146 14134 mov di, word [bp+008h] ; 8b 7e 08 … … 14148 14136 sal bx, 1 ; d1 e3 14149 14137 rcl di, 1 ; d1 d7 14150 loop 09 2f5h ; e2 fa14138 loop 09171h ; e2 fa 14151 14139 mov es, [bp-008h] ; 8e 46 f8 14152 14140 mov word [es:si], bx ; 26 89 1c … … 14162 14150 mov dx, word [bp+008h] ; 8b 56 08 14163 14151 xor cx, cx ; 31 c9 14164 call 0a 190h ; e8 620e14152 call 0a020h ; e8 76 0e 14165 14153 mov word [es:si+00eh], ax ; 26 89 44 0e 14166 14154 xor di, di ; 31 ff … … 14180 14168 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 14181 14169 xor ax, ax ; 31 c0 14182 call 08 f1ah ; e8 af fb14170 call 08d96h ; e8 af fb 14183 14171 mov al, byte [bp-006h] ; 8a 46 fa 14184 14172 xor ah, ah ; 30 e4 … … 14188 14176 mov ax, 000c0h ; b8 c0 00 14189 14177 mov dx, word [bp-00ah] ; 8b 56 f6 14190 call 0a 227h ; e8 a70e14178 call 0a080h ; e8 84 0e 14191 14179 mov es, [bp-008h] ; 8e 46 f8 14192 14180 mov word [es:si+018h], di ; 26 89 7c 18 … … 14195 14183 mov ax, word [es:si+01eh] ; 26 8b 44 1e 14196 14184 test ax, ax ; 85 c0 14197 je short 09 3beh ; 74 2714185 je short 0923ah ; 74 27 14198 14186 dec ax ; 48 14199 14187 mov es, [bp-00ah] ; 8e 46 f6 … … 14208 14196 mov ax, si ; 89 f0 14209 14197 mov dx, word [bp-008h] ; 8b 56 f8 14210 call 08 b35h ; e8 6c f714198 call 089b1h ; e8 6c f7 14211 14199 les bx, [bp-00eh] ; c4 5e f2 14212 14200 mov dx, word [es:bx+004h] ; 26 8b 57 04 … … 14235 14223 mov ax, word [es:bx+006h] ; 26 8b 47 06 14236 14224 or ax, word [es:bx+004h] ; 26 0b 47 04 14237 jne short 09 41dh ; 75 0514225 jne short 09299h ; 75 05 14238 14226 mov ax, strict word 00004h ; b8 04 00 14239 jmp short 09 41fh ; eb 0214227 jmp short 0929bh ; eb 02 14240 14228 xor ax, ax ; 31 c0 14241 14229 lea sp, [bp-004h] ; 8d 66 fc … … 14244 14232 pop bp ; 5d 14245 14233 retn 0000ch ; c2 0c 00 14246 ahci_port_detect_device_: ; 0xf9 428LB 0x4fe14234 ahci_port_detect_device_: ; 0xf92a4 LB 0x4fe 14247 14235 push bp ; 55 14248 14236 mov bp, sp ; 89 e5 … … 14260 14248 mov bx, word [bp-020h] ; 8b 5e e0 14261 14249 mov ax, si ; 89 f0 14262 call 08 f1ah ; e8 ce fa14250 call 08d96h ; e8 ce fa 14263 14251 mov dx, strict word 0000eh ; ba 0e 00 14264 14252 mov ax, strict word 00040h ; b8 40 00 14265 call 0166eh ; e8 19 8214253 call 0166eh ; e8 9d 83 14266 14254 mov word [bp-01ah], 00122h ; c7 46 e6 22 01 14267 14255 mov word [bp-00eh], ax ; 89 46 f2 … … 14335 14323 mov bx, strict word 0000fh ; bb 0f 00 14336 14324 xor cx, cx ; 31 c9 14337 call 08 9a2h ; e8 9f f414325 call 0881eh ; e8 9f f4 14338 14326 test ax, ax ; 85 c0 14339 jne short 09 50ah ; 75 0314340 jmp near 09 91eh ; e9 14 0414327 jne short 09386h ; 75 03 14328 jmp near 0979ah ; e9 14 04 14341 14329 mov al, byte [bp-008h] ; 8a 46 f8 14342 14330 xor ah, ah ; 30 e4 … … 14370 14358 xor cx, cx ; 31 c9 14371 14359 mov ax, di ; 89 f8 14372 call 08 9a2h ; e8 4d f414360 call 0881eh ; e8 4d f4 14373 14361 cmp ax, strict word 00001h ; 3d 01 00 14374 je short 09 50ah ; 74 b014362 je short 09386h ; 74 b0 14375 14363 xor ax, ax ; 31 c0 14376 14364 push ax ; 50 … … 14379 14367 mov ax, di ; 89 f8 14380 14368 mov dx, word [bp-01ch] ; 8b 56 e4 14381 call 08 9a2h ; e8 38 f414369 call 0881eh ; e8 38 f4 14382 14370 cmp ax, strict word 00003h ; 3d 03 00 14383 jne short 09 507h ; 75 9814371 jne short 09383h ; 75 98 14384 14372 mov ax, word [bp-016h] ; 8b 46 ea 14385 14373 add ax, 00130h ; 05 30 01 … … 14409 14397 mov byte [bp-00ch], al ; 88 46 f4 14410 14398 cmp AL, strict byte 004h ; 3c 04 14411 jc short 09 5b9h ; 72 0314412 jmp near 09 91eh ; e9 65 0314399 jc short 09435h ; 72 03 14400 jmp near 0979ah ; e9 65 03 14413 14401 mov ax, word [bp-016h] ; 8b 46 ea 14414 14402 add ax, 00118h ; 05 18 01 … … 14462 14450 add cl, 00ch ; 80 c1 0c 14463 14451 test dx, dx ; 85 d2 14464 jne short 09 684h ; 75 5514452 jne short 09500h ; 75 55 14465 14453 cmp bx, 00101h ; 81 fb 01 01 14466 jne short 09 684h ; 75 4f14454 jne short 09500h ; 75 4f 14467 14455 mov es, [bp-00eh] ; 8e 46 f2 14468 14456 mov bx, word [bp-01ah] ; 8b 5e e6 … … 14479 14467 mov ax, word [bp-01ah] ; 8b 46 e6 14480 14468 mov dx, es ; 8c c2 14481 call 08 b35h ; e8 c0 f414469 call 089b1h ; e8 c0 f4 14482 14470 mov byte [bp-00ah], cl ; 88 4e f6 14483 14471 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14484 je short 09 687h ; 74 0814472 je short 09503h ; 74 08 14485 14473 mov ax, strict word 00001h ; b8 01 00 14486 jmp short 09 689h ; eb 0514487 jmp near 09 859h ; e9 d2 0114474 jmp short 09505h ; eb 05 14475 jmp near 096d5h ; e9 d2 01 14488 14476 xor ax, ax ; 31 c0 14489 14477 mov cl, al ; 88 c1 … … 14501 14489 mov word [bp-012h], ax ; 89 46 ee 14502 14490 cmp di, 00fffh ; 81 ff ff 0f 14503 jne short 09 6d8h ; 75 1f14491 jne short 09554h ; 75 1f 14504 14492 cmp word [bp-014h], strict byte 0ffffh ; 83 7e ec ff 14505 jne short 09 6d8h ; 75 1914493 jne short 09554h ; 75 19 14506 14494 mov ax, word [bp-0015ch] ; 8b 86 a4 fe 14507 14495 mov word [bp-012h], ax ; 89 46 ee … … 14543 14531 mov al, byte [bp-00ch] ; 8a 46 f4 14544 14532 cmp AL, strict byte 001h ; 3c 01 14545 jc short 09 755h ; 72 0c14546 jbe short 09 75dh ; 76 1214533 jc short 095d1h ; 72 0c 14534 jbe short 095d9h ; 76 12 14547 14535 cmp AL, strict byte 003h ; 3c 03 14548 je short 09 765h ; 74 1614536 je short 095e1h ; 74 16 14549 14537 cmp AL, strict byte 002h ; 3c 02 14550 je short 09 761h ; 74 0e14551 jmp short 09 7a8h ; eb 5314538 je short 095ddh ; 74 0e 14539 jmp short 09624h ; eb 53 14552 14540 test al, al ; 84 c0 14553 jne short 09 7a8h ; 75 4f14541 jne short 09624h ; 75 4f 14554 14542 mov DL, strict byte 040h ; b2 40 14555 jmp short 09 767h ; eb 0a14543 jmp short 095e3h ; eb 0a 14556 14544 mov DL, strict byte 048h ; b2 48 14557 jmp short 09 767h ; eb 0614545 jmp short 095e3h ; eb 06 14558 14546 mov DL, strict byte 050h ; b2 50 14559 jmp short 09 767h ; eb 0214547 jmp short 095e3h ; eb 02 14560 14548 mov DL, strict byte 058h ; b2 58 14561 14549 mov bl, dl ; 88 d3 … … 14563 14551 xor bh, bh ; 30 ff 14564 14552 mov ax, bx ; 89 d8 14565 call 016aeh ; e8 3b 7f14553 call 016aeh ; e8 bf 80 14566 14554 test al, al ; 84 c0 14567 je short 09 7a8h ; 74 3114555 je short 09624h ; 74 31 14568 14556 mov al, dl ; 88 d0 14569 14557 db 0feh, 0c0h 14570 14558 ; inc al ; fe c0 14571 14559 xor ah, ah ; 30 e4 14572 call 016aeh ; e8 2e 7f14560 call 016aeh ; e8 b2 80 14573 14561 mov ch, al ; 88 c5 14574 14562 mov al, dl ; 88 d0 14575 14563 xor ah, ah ; 30 e4 14576 call 016aeh ; e8 25 7f14564 call 016aeh ; e8 a9 80 14577 14565 mov ah, ch ; 88 ec 14578 14566 mov word [bp-028h], ax ; 89 46 d8 … … 14580 14568 add AL, strict byte 002h ; 04 02 14581 14569 xor ah, ah ; 30 e4 14582 call 016aeh ; e8 17 7f14570 call 016aeh ; e8 9b 80 14583 14571 xor ah, ah ; 30 e4 14584 14572 mov word [bp-02ah], ax ; 89 46 d6 14585 14573 mov ax, bx ; 89 d8 14586 call 016aeh ; e8 0d 7f14574 call 016aeh ; e8 91 80 14587 14575 xor ah, ah ; 30 e4 14588 14576 mov word [bp-026h], ax ; 89 46 da 14589 jmp short 09 7bah ; eb 1214577 jmp short 09636h ; eb 12 14590 14578 push word [bp-012h] ; ff 76 ee 14591 14579 push word [bp-01eh] ; ff 76 e2 … … 14594 14582 mov dx, ss ; 8c d2 14595 14583 lea ax, [bp-02ah] ; 8d 46 d6 14596 call 05b09h ; e8 4f c314584 call 05b09h ; e8 d3 c4 14597 14585 mov bx, 00da0h ; bb a0 0d 14598 14586 mov cx, ds ; 8c d9 14599 14587 mov ax, strict word 00004h ; b8 04 00 14600 call 01933h ; e8 6e 8114588 call 01933h ; e8 f2 82 14601 14589 push word [bp-012h] ; ff 76 ee 14602 14590 push word [bp-01eh] ; ff 76 e2 … … 14621 14609 mov ax, strict word 00004h ; b8 04 00 14622 14610 push ax ; 50 14623 call 01976h ; e8 7d 8114611 call 01976h ; e8 01 83 14624 14612 add sp, strict byte 0001ch ; 83 c4 1c 14625 14613 mov al, byte [bp-00ah] ; 8a 46 f6 … … 14653 14641 mov dx, strict word 00075h ; ba 75 00 14654 14642 mov ax, strict word 00040h ; b8 40 00 14655 call 01652h ; e8 0b 7e14643 call 01652h ; e8 8f 7f 14656 14644 mov bl, al ; 88 c3 14657 14645 db 0feh, 0c3h … … 14660 14648 mov dx, strict word 00075h ; ba 75 00 14661 14649 mov ax, strict word 00040h ; b8 40 00 14662 call 01660h ; e8 0a 7e14663 jmp near 09 90dh ; e9 b4 0014650 call 01660h ; e8 8e 7f 14651 jmp near 09789h ; e9 b4 00 14664 14652 cmp dx, 0eb14h ; 81 fa 14 eb 14665 jne short 09 8b4h ; 75 5514653 jne short 09730h ; 75 55 14666 14654 cmp bx, 00101h ; 81 fb 01 01 14667 jne short 09 8b4h ; 75 4f14655 jne short 09730h ; 75 4f 14668 14656 mov es, [bp-00eh] ; 8e 46 f2 14669 14657 mov bx, word [bp-01ah] ; 8b 5e e6 … … 14680 14668 mov ax, word [bp-01ah] ; 8b 46 e6 14681 14669 mov dx, es ; 8c c2 14682 call 08 b35h ; e8 90 f214670 call 089b1h ; e8 90 f2 14683 14671 mov byte [bp-00ah], cl ; 88 4e f6 14684 14672 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14685 je short 09 8b6h ; 74 0714673 je short 09732h ; 74 07 14686 14674 mov cx, strict word 00001h ; b9 01 00 14687 jmp short 09 8b8h ; eb 0414688 jmp short 09 90dh ; eb 5714675 jmp short 09734h ; eb 04 14676 jmp short 09789h ; eb 57 14689 14677 xor cx, cx ; 31 c9 14690 14678 mov bl, byte [bp-00ch] ; 8a 5e f4 … … 14726 14714 pop bp ; 5d 14727 14715 retn ; c3 14728 ahci_mem_alloc_: ; 0xf9 926LB 0x4314716 ahci_mem_alloc_: ; 0xf97a2 LB 0x43 14729 14717 push bp ; 55 14730 14718 mov bp, sp ; 89 e5 … … 14736 14724 mov dx, 00413h ; ba 13 04 14737 14725 xor ax, ax ; 31 c0 14738 call 0166eh ; e8 38 7d14726 call 0166eh ; e8 bc 7e 14739 14727 test ax, ax ; 85 c0 14740 je short 09 95fh ; 74 2514728 je short 097dbh ; 74 25 14741 14729 dec ax ; 48 14742 14730 mov bx, ax ; 89 c3 … … 14745 14733 sal ax, 1 ; d1 e0 14746 14734 rcl dx, 1 ; d1 d2 14747 loop 09 942h ; e2 fa14735 loop 097beh ; e2 fa 14748 14736 mov si, ax ; 89 c6 14749 14737 mov di, dx ; 89 d7 … … 14751 14739 shr di, 1 ; d1 ef 14752 14740 rcr si, 1 ; d1 de 14753 loop 09 94fh ; e2 fa14741 loop 097cbh ; e2 fa 14754 14742 mov dx, 00413h ; ba 13 04 14755 14743 xor ax, ax ; 31 c0 14756 call 0167ch ; e8 1f 7d14744 call 0167ch ; e8 a3 7e 14757 14745 mov ax, si ; 89 f0 14758 14746 lea sp, [bp-00ah] ; 8d 66 f6 … … 14764 14752 pop bp ; 5d 14765 14753 retn ; c3 14766 ahci_hba_init_: ; 0xf9 969LB 0x16e14754 ahci_hba_init_: ; 0xf97e5 LB 0x16e 14767 14755 push bp ; 55 14768 14756 mov bp, sp ; 89 e5 … … 14776 14764 mov dx, strict word 0000eh ; ba 0e 00 14777 14765 mov ax, strict word 00040h ; b8 40 00 14778 call 0166eh ; e8 ef 7c14766 call 0166eh ; e8 73 7e 14779 14767 mov bx, 00122h ; bb 22 01 14780 14768 mov di, ax ; 89 c7 … … 14793 14781 shr eax, 010h ; 66 c1 e8 10 14794 14782 xchg dx, ax ; 92 14795 call 09 926h ; e8 83 ff14783 call 097a2h ; e8 83 ff 14796 14784 mov word [bp-010h], ax ; 89 46 f0 14797 14785 test ax, ax ; 85 c0 14798 jne short 09 9adh ; 75 0314799 jmp near 09 ab6h ; e9 09 0114786 jne short 09829h ; 75 03 14787 jmp near 09932h ; e9 09 01 14800 14788 mov ax, word [bp-010h] ; 8b 46 f0 14801 14789 mov es, di ; 8e c7 … … 14847 14835 xchg dx, ax ; 92 14848 14836 test AL, strict byte 001h ; a8 01 14849 jne short 09 a07h ; 75 de14837 jne short 09883h ; 75 de 14850 14838 xor ax, ax ; 31 c0 14851 14839 xor cx, cx ; 31 c9 … … 14866 14854 mov bx, strict word 0001fh ; bb 1f 00 14867 14855 xor cx, cx ; 31 c9 14868 call 08 9a2h ; e8 54 ef14856 call 0881eh ; e8 54 ef 14869 14857 db 0feh, 0c0h 14870 14858 ; inc al ; fe c0 14871 14859 mov byte [bp-00eh], al ; 88 46 f2 14872 14860 mov byte [bp-00ch], 000h ; c6 46 f4 00 14873 jmp short 09 a7ah ; eb 2114861 jmp short 098f6h ; eb 21 14874 14862 xor al, al ; 30 c0 14875 14863 test al, al ; 84 c0 14876 je short 09 a71h ; 74 1214864 je short 098edh ; 74 12 14877 14865 mov bl, byte [bp-00ch] ; 8a 5e f4 14878 14866 xor bh, bh ; 30 ff 14879 14867 xor ax, ax ; 31 c0 14880 14868 mov dx, word [bp-010h] ; 8b 56 f0 14881 call 09 428h ; e8 bc f914869 call 092a4h ; e8 bc f9 14882 14870 dec byte [bp-00eh] ; fe 4e f2 14883 je short 09 ab4h ; 74 4314871 je short 09930h ; 74 43 14884 14872 inc byte [bp-00ch] ; fe 46 f4 14885 14873 cmp byte [bp-00ch], 020h ; 80 7e f4 20 14886 jnc short 09 ab4h ; 73 3a14874 jnc short 09930h ; 73 3a 14887 14875 mov cl, byte [bp-00ch] ; 8a 4e f4 14888 14876 xor ch, ch ; 30 ed 14889 14877 mov bx, strict word 00001h ; bb 01 00 14890 14878 xor di, di ; 31 ff 14891 jcxz 09 a8ch ; e3 0614879 jcxz 09908h ; e3 06 14892 14880 sal bx, 1 ; d1 e3 14893 14881 rcl di, 1 ; d1 d7 14894 loop 09 a86h ; e2 fa14882 loop 09902h ; e2 fa 14895 14883 mov ax, strict word 0000ch ; b8 0c 00 14896 14884 xor cx, cx ; 31 c9 … … 14908 14896 xchg dx, ax ; 92 14909 14897 test dx, di ; 85 fa 14910 jne short 09 ab0h ; 75 0414898 jne short 0992ch ; 75 04 14911 14899 test ax, bx ; 85 d8 14912 je short 09 a59h ; 74 a914900 je short 098d5h ; 74 a9 14913 14901 mov AL, strict byte 001h ; b0 01 14914 jmp short 09 a5bh ; eb a714902 jmp short 098d7h ; eb a7 14915 14903 xor ax, ax ; 31 c0 14916 14904 lea sp, [bp-00ah] ; 8d 66 f6 … … 14922 14910 pop bp ; 5d 14923 14911 retn ; c3 14924 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 bch, 09bh, 09ah, 09bh, 0a0h, 09bh, 0a6h, 09bh, 0ach14925 db 09 bh, 0b2h, 09bh, 0b8h, 09bh, 0bch, 09bh14926 _ahci_init: ; 0xf9 ad7LB 0x11a14912 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 038h, 09ah, 016h, 09ah, 01ch, 09ah, 022h, 09ah, 028h 14913 db 09ah, 02eh, 09ah, 034h, 09ah, 038h, 09ah 14914 _ahci_init: ; 0xf9953 LB 0x11a 14927 14915 push bp ; 55 14928 14916 mov bp, sp ; 89 e5 … … 14931 14919 mov ax, 00601h ; b8 01 06 14932 14920 mov dx, strict word 00001h ; ba 01 00 14933 call 0 a010h ; e8 29 0514921 call 09e8ch ; e8 29 05 14934 14922 mov dx, ax ; 89 c2 14935 14923 cmp ax, strict word 0ffffh ; 3d ff ff 14936 je short 09 b37h ; 74 4914924 je short 099b3h ; 74 49 14937 14925 mov al, ah ; 88 e0 14938 14926 mov byte [bp-006h], ah ; 88 66 fa … … 14941 14929 xor ah, ah ; 30 e4 14942 14930 mov bx, strict word 00034h ; bb 34 00 14943 call 0 a018h ; e8 18 0514931 call 09e94h ; e8 18 05 14944 14932 mov cl, al ; 88 c1 14945 14933 test cl, cl ; 84 c9 14946 je short 09 b3ah ; 74 3414934 je short 099b6h ; 74 34 14947 14935 mov bl, cl ; 88 cb 14948 14936 xor bh, bh ; 30 ff … … 14955 14943 mov dx, word [bp-00ch] ; 8b 56 f4 14956 14944 mov ax, word [bp-010h] ; 8b 46 f0 14957 call 0 a018h ; e8 f3 0414945 call 09e94h ; e8 f3 04 14958 14946 cmp AL, strict byte 012h ; 3c 12 14959 je short 09 b3ah ; 74 1114947 je short 099b6h ; 74 11 14960 14948 mov bl, cl ; 88 cb 14961 14949 db 0feh, 0c3h … … 14964 14952 mov dx, word [bp-00ch] ; 8b 56 f4 14965 14953 mov ax, word [bp-010h] ; 8b 46 f0 14966 jmp short 09 afdh ; eb c614967 jmp near 09 bebh ; e9 b1 0014954 jmp short 09979h ; eb c6 14955 jmp near 09a67h ; e9 b1 00 14968 14956 test cl, cl ; 84 c9 14969 je short 09 b37h ; 74 f914957 je short 099b3h ; 74 f9 14970 14958 add cl, 002h ; 80 c1 02 14971 14959 mov bl, cl ; 88 cb … … 14979 14967 mov dx, word [bp-00eh] ; 8b 56 f2 14980 14968 mov ax, word [bp-00ah] ; 8b 46 f6 14981 call 0 a018h ; e8 b8 0414969 call 09e94h ; e8 b8 04 14982 14970 cmp AL, strict byte 010h ; 3c 10 14983 jne short 09 b37h ; 75 d314971 jne short 099b3h ; 75 d3 14984 14972 mov byte [bp-004h], 000h ; c6 46 fc 00 14985 14973 mov bl, cl ; 88 cb … … 14988 14976 mov dx, word [bp-00eh] ; 8b 56 f2 14989 14977 mov ax, word [bp-00ah] ; 8b 46 f6 14990 call 0 a03fh ; e8 c7 0414978 call 09ebbh ; e8 c7 04 14991 14979 mov dx, ax ; 89 c2 14992 14980 and ax, strict word 0000fh ; 25 0f 00 14993 14981 sub ax, strict word 00004h ; 2d 04 00 14994 14982 cmp ax, strict word 0000bh ; 3d 0b 00 14995 jnbe short 09 bbch ; 77 3714983 jnbe short 09a38h ; 77 37 14996 14984 push CS ; 0e 14997 14985 pop ES ; 07 14998 14986 mov cx, strict word 00008h ; b9 08 00 14999 mov di, 09 ac0h ; bf c0 9a14987 mov di, 0993ch ; bf 3c 99 15000 14988 repne scasb ; f2 ae 15001 14989 sal cx, 1 ; d1 e1 15002 14990 mov di, cx ; 89 cf 15003 mov ax, word [cs:di-06 539h] ; 2e 8b 85 c7 9a14991 mov ax, word [cs:di-066bdh] ; 2e 8b 85 43 99 15004 14992 jmp ax ; ff e0 15005 14993 mov byte [bp-004h], 010h ; c6 46 fc 10 15006 jmp short 09 bbch ; eb 1c14994 jmp short 09a38h ; eb 1c 15007 14995 mov byte [bp-004h], 014h ; c6 46 fc 14 15008 jmp short 09 bbch ; eb 1614996 jmp short 09a38h ; eb 16 15009 14997 mov byte [bp-004h], 018h ; c6 46 fc 18 15010 jmp short 09 bbch ; eb 1014998 jmp short 09a38h ; eb 10 15011 14999 mov byte [bp-004h], 01ch ; c6 46 fc 1c 15012 jmp short 09 bbch ; eb 0a15000 jmp short 09a38h ; eb 0a 15013 15001 mov byte [bp-004h], 020h ; c6 46 fc 20 15014 jmp short 09 bbch ; eb 0415002 jmp short 09a38h ; eb 04 15015 15003 mov byte [bp-004h], 024h ; c6 46 fc 24 15016 15004 mov CL, strict byte 004h ; b1 04 … … 15022 15010 mov al, byte [bp-004h] ; 8a 46 fc 15023 15011 test al, al ; 84 c0 15024 je short 09 bebh ; 74 1c15012 je short 09a67h ; 74 1c 15025 15013 mov bl, al ; 88 c3 15026 15014 xor bh, bh ; 30 ff … … 15029 15017 mov al, byte [bp-006h] ; 8a 46 fa 15030 15018 xor ah, ah ; 30 e4 15031 call 0 a064h ; e8 84 0415019 call 09ee0h ; e8 84 04 15032 15020 test AL, strict byte 001h ; a8 01 15033 je short 09 bebh ; 74 0715021 je short 09a67h ; 74 07 15034 15022 and AL, strict byte 0f0h ; 24 f0 15035 15023 add ax, cx ; 01 c8 15036 call 09 969h ; e8 7e fd15024 call 097e5h ; e8 7e fd 15037 15025 lea sp, [bp-002h] ; 8d 66 fe 15038 15026 pop di ; 5f 15039 15027 pop bp ; 5d 15040 15028 retn ; c3 15041 apm_out_str_: ; 0xf9 bf1LB 0x3915029 apm_out_str_: ; 0xf9a6d LB 0x39 15042 15030 push bp ; 55 15043 15031 mov bp, sp ; 89 e5 … … 15045 15033 mov bx, ax ; 89 c3 15046 15034 cmp byte [bx], 000h ; 80 3f 00 15047 je short 09 c06h ; 74 0a15035 je short 09a82h ; 74 0a 15048 15036 mov al, byte [bx] ; 8a 07 15049 15037 out DX, AL ; ee … … 15052 15040 db 00ah, 0c0h 15053 15041 ; or al, al ; 0a c0 15054 jne short 09 bfeh ; 75 f815042 jne short 09a7ah ; 75 f8 15055 15043 lea sp, [bp-002h] ; 8d 66 fe 15056 15044 pop bx ; 5b 15057 15045 pop bp ; 5d 15058 15046 retn ; c3 15059 d ec bx ; 4b15060 pushfw ; 9c15061 db 0d6h15062 pushfw ; 9c15063 p op bp ; 5d15064 pushfw ; 9c15065 js short 09bb0h ; 78 9c15066 db 0d6h15067 pushfw ; 9c15068 mov word [0d69ch], ax ; a3 9c d615069 pushfw ; 9c15070 fcomp qword [si-06358h] ; dc 9c a8 9c15071 test AL, strict byte 09ch ; a8 9c15072 test AL, strict byte 09ch ; a8 9c15073 sbb bx, word [di-06358h] ; 1b 9d a8 9c15074 test AL, strict byte 09ch ; a8 9c15075 adc AL, strict byte 09dh ; 14 9d15076 _apm_function: ; 0xf9 c2aLB 0xf615047 db 0c7h, 09ah, 052h, 09bh, 0d9h, 09ah 15048 ; mov word [bp+si-064aeh], 09ad9h ; c7 9a 52 9b d9 9a 15049 hlt ; f4 15050 call far 09b1fh:09b52h ; 9a 52 9b 1f 9b 15051 push dx ; 52 15052 wait ; 9b 15053 pop ax ; 58 15054 wait ; 9b 15055 and AL, strict byte 09bh ; 24 9b 15056 and AL, strict byte 09bh ; 24 9b 15057 and AL, strict byte 09bh ; 24 9b 15058 xchg di, ax ; 97 15059 wait ; 9b 15060 and AL, strict byte 09bh ; 24 9b 15061 and AL, strict byte 09bh ; 24 9b 15062 nop ; 90 15063 wait ; 9b 15064 _apm_function: ; 0xf9aa6 LB 0xf6 15077 15065 push bp ; 55 15078 15066 mov bp, sp ; 89 e5 … … 15082 15070 xor ah, ah ; 30 e4 15083 15071 cmp ax, strict word 0000eh ; 3d 0e 00 15084 jnbe short 09 ca8h ; 77 6c15072 jnbe short 09b24h ; 77 6c 15085 15073 mov bx, ax ; 89 c3 15086 15074 sal bx, 1 ; d1 e3 15087 15075 mov dx, word [bp+018h] ; 8b 56 18 15088 15076 or dl, 001h ; 80 ca 01 15089 jmp word [cs:bx-06 3f4h] ; 2e ff a7 0c 9c15077 jmp word [cs:bx-06578h] ; 2e ff a7 88 9a 15090 15078 mov word [bp+012h], 00102h ; c7 46 12 02 01 15091 15079 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 15092 15080 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 15093 jmp near 09 cd6h ; e9 79 0015081 jmp near 09b52h ; e9 79 00 15094 15082 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 15095 mov word [bp+00ch], 0a 294h ; c7 46 0c 94 a215083 mov word [bp+00ch], 0a0f4h ; c7 46 0c f4 a0 15096 15084 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 15097 15085 mov ax, strict word 0fff0h ; b8 f0 ff 15098 15086 mov word [bp+006h], ax ; 89 46 06 15099 15087 mov word [bp+004h], ax ; 89 46 04 15100 jmp near 09 cd6h ; e9 5e 0015088 jmp near 09b52h ; e9 5e 00 15101 15089 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 15102 15090 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 15111 15099 mov si, ax ; 89 c6 15112 15100 sal esi, 010h ; 66 c1 e6 10 15113 jmp near 09 cd6h ; e9 33 0015101 jmp near 09b52h ; e9 33 00 15114 15102 sti ; fb 15115 15103 hlt ; f4 15116 jmp near 09 cd6h ; e9 2e 0015104 jmp near 09b52h ; e9 2e 00 15117 15105 mov bx, 00da0h ; bb a0 0d 15118 15106 mov cx, ds ; 8c d9 15119 15107 mov ax, strict word 00004h ; b8 04 00 15120 call 01933h ; e8 80 7c15108 call 01933h ; e8 04 7e 15121 15109 push word [bp+00ch] ; ff 76 0c 15122 15110 push word [bp+012h] ; ff 76 12 … … 15125 15113 mov ax, strict word 00004h ; b8 04 00 15126 15114 push ax ; 50 15127 call 01976h ; e8 b2 7c15115 call 01976h ; e8 36 7e 15128 15116 add sp, strict byte 00008h ; 83 c4 08 15129 15117 mov ax, word [bp+012h] ; 8b 46 12 … … 15137 15125 retn ; c3 15138 15126 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 15139 je short 09 d01h ; 74 1f15127 je short 09b7dh ; 74 1f 15140 15128 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 15141 je short 09 cf9h ; 74 1115129 je short 09b75h ; 74 11 15142 15130 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 15143 jne short 09 d09h ; 75 1b15131 jne short 09b85h ; 75 1b 15144 15132 mov dx, 08900h ; ba 00 89 15145 15133 mov ax, 00d10h ; b8 10 0d 15146 call 09 bf1h ; e8 fa fe15147 jmp short 09 cd6h ; eb dd15134 call 09a6dh ; e8 fa fe 15135 jmp short 09b52h ; eb dd 15148 15136 mov dx, 08900h ; ba 00 89 15149 15137 mov ax, 00d18h ; b8 18 0d 15150 jmp short 09 cf4h ; eb f315138 jmp short 09b70h ; eb f3 15151 15139 mov dx, 08900h ; ba 00 89 15152 15140 mov ax, 00d20h ; b8 20 0d 15153 jmp short 09 cf4h ; eb eb15141 jmp short 09b70h ; eb eb 15154 15142 or ah, 00ah ; 80 cc 0a 15155 15143 mov word [bp+012h], ax ; 89 46 12 15156 15144 mov word [bp+018h], dx ; 89 56 18 15157 jmp short 09 cd6h ; eb c215145 jmp short 09b52h ; eb c2 15158 15146 mov word [bp+012h], 00102h ; c7 46 12 02 01 15159 jmp short 09 cd6h ; eb bb15147 jmp short 09b52h ; eb bb 15160 15148 or ah, 080h ; 80 cc 80 15161 jmp short 09 d0ch ; eb ec15162 pci16_select_reg_: ; 0xf9 d20LB 0x2415149 jmp short 09b88h ; eb ec 15150 pci16_select_reg_: ; 0xf9b9c LB 0x24 15163 15151 push bp ; 55 15164 15152 mov bp, sp ; 89 e5 … … 15177 15165 pop bp ; 5d 15178 15166 retn ; c3 15179 pci16_find_device_: ; 0xf9 d44LB 0xf715167 pci16_find_device_: ; 0xf9bc0 LB 0xf7 15180 15168 push bp ; 55 15181 15169 mov bp, sp ; 89 e5 … … 15191 15179 mov byte [bp-006h], 000h ; c6 46 fa 00 15192 15180 test bl, 007h ; f6 c3 07 15193 jne short 09 d8ch ; 75 2d15181 jne short 09c08h ; 75 2d 15194 15182 mov dx, strict word 0000eh ; ba 0e 00 15195 15183 mov ax, bx ; 89 d8 15196 call 09 d20h ; e8 b9 ff15184 call 09b9ch ; e8 b9 ff 15197 15185 mov dx, 00cfeh ; ba fe 0c 15198 15186 in AL, DX ; ec … … 15201 15189 mov byte [bp-008h], al ; 88 46 f8 15202 15190 cmp AL, strict byte 0ffh ; 3c ff 15203 jne short 09 d7ah ; 75 0615191 jne short 09bf6h ; 75 06 15204 15192 add bx, strict byte 00008h ; 83 c3 08 15205 jmp near 09 e0ch ; e9 92 0015193 jmp near 09c88h ; e9 92 00 15206 15194 test byte [bp-008h], 080h ; f6 46 f8 80 15207 je short 09 d87h ; 74 0715195 je short 09c03h ; 74 07 15208 15196 mov word [bp-00eh], strict word 00001h ; c7 46 f2 01 00 15209 jmp short 09 d8ch ; eb 0515197 jmp short 09c08h ; eb 05 15210 15198 mov word [bp-00eh], strict word 00008h ; c7 46 f2 08 00 15211 15199 mov al, byte [bp-008h] ; 8a 46 f8 15212 15200 and AL, strict byte 007h ; 24 07 15213 15201 cmp AL, strict byte 001h ; 3c 01 15214 jne short 09 db3h ; 75 1e15202 jne short 09c2fh ; 75 1e 15215 15203 mov al, bh ; 88 f8 15216 15204 xor ah, ah ; 30 e4 15217 15205 test ax, ax ; 85 c0 15218 jne short 09 db3h ; 75 1615206 jne short 09c2fh ; 75 16 15219 15207 mov dx, strict word 0001ah ; ba 1a 00 15220 15208 mov ax, bx ; 89 d8 15221 call 09 d20h ; e8 7b ff15209 call 09b9ch ; e8 7b ff 15222 15210 mov dx, 00cfeh ; ba fe 0c 15223 15211 in AL, DX ; ec … … 15225 15213 ; sub ah, ah ; 2a e4 15226 15214 cmp al, byte [bp-006h] ; 3a 46 fa 15227 jbe short 09 db3h ; 76 0315215 jbe short 09c2fh ; 76 03 15228 15216 mov byte [bp-006h], al ; 88 46 fa 15229 15217 test di, di ; 85 ff 15230 je short 09 dbch ; 74 0515218 je short 09c38h ; 74 05 15231 15219 mov dx, strict word 00008h ; ba 08 00 15232 jmp short 09 dbeh ; eb 0215220 jmp short 09c3ah ; eb 02 15233 15221 xor dx, dx ; 31 d2 15234 15222 mov ax, bx ; 89 d8 15235 call 09 d20h ; e8 5d ff15223 call 09b9ch ; e8 5d ff 15236 15224 mov dx, 00cfch ; ba fc 0c 15237 15225 in eax, DX ; 66 ed … … 15244 15232 mov word [bp-00ch], strict word 00000h ; c7 46 f4 00 00 15245 15233 test di, di ; 85 ff 15246 je short 09 dedh ; 74 0f15234 je short 09c69h ; 74 0f 15247 15235 mov cx, strict word 00008h ; b9 08 00 15248 15236 shr dx, 1 ; d1 ea 15249 15237 rcr ax, 1 ; d1 d8 15250 loop 09 de1h ; e2 fa15238 loop 09c5dh ; e2 fa 15251 15239 mov word [bp-00ah], ax ; 89 46 f6 15252 15240 mov word [bp-010h], dx ; 89 56 f0 15253 15241 mov ax, word [bp-010h] ; 8b 46 f0 15254 15242 cmp ax, word [bp-014h] ; 3b 46 ec 15255 jne short 09 dfdh ; 75 0815243 jne short 09c79h ; 75 08 15256 15244 mov ax, word [bp-00ah] ; 8b 46 f6 15257 15245 cmp ax, word [bp-012h] ; 3b 46 ee 15258 je short 09 e03h ; 74 0615246 je short 09c7fh ; 74 06 15259 15247 cmp word [bp-00ch], strict byte 00000h ; 83 7e f4 00 15260 je short 09 e09h ; 74 0615248 je short 09c85h ; 74 06 15261 15249 dec si ; 4e 15262 15250 cmp si, strict byte 0ffffh ; 83 fe ff 15263 je short 09 e1ch ; 74 1315251 je short 09c98h ; 74 13 15264 15252 add bx, word [bp-00eh] ; 03 5e f2 15265 15253 mov al, bh ; 88 f8 … … 15268 15256 xor dh, dh ; 30 f6 15269 15257 cmp ax, dx ; 39 d0 15270 jnbe short 09 e1ch ; 77 0315271 jmp near 09 d5ah ; e9 3e ff15258 jnbe short 09c98h ; 77 03 15259 jmp near 09bd6h ; e9 3e ff 15272 15260 cmp si, strict byte 0ffffh ; 83 fe ff 15273 jne short 09 e25h ; 75 0415261 jne short 09ca1h ; 75 04 15274 15262 mov ax, bx ; 89 d8 15275 jmp short 09 e28h ; eb 0315263 jmp short 09ca4h ; eb 03 15276 15264 mov ax, strict word 0ffffh ; b8 ff ff 15277 15265 lea sp, [bp-004h] ; 8d 66 fc … … 15280 15268 pop bp ; 5d 15281 15269 retn ; c3 15282 sbb AL, strict byte 09fh ; 1c 9f15283 xor ax, 0479fh ; 35 9f 4715284 lahf ; 9f15285 pop bx ; 5b15286 lahf ; 9f15287 insw ; 6d15288 lahf ; 9f15289 db 080h15290 lahf ; 9f15291 _pci16_function: ; 0xf9 e3bLB 0x1d515270 cbw ; 98 15271 popfw ; 9d 15272 mov CL, strict byte 09dh ; b1 9d 15273 retn ; c3 15274 popfw ; 9d 15275 xlatb ; d7 15276 popfw ; 9d 15277 jmp near 09953h ; e9 9d fc 15278 popfw ; 9d 15279 _pci16_function: ; 0xf9cb7 LB 0x1d5 15292 15280 push bp ; 55 15293 15281 mov bp, sp ; 89 e5 … … 15303 15291 xor ah, ah ; 30 e4 15304 15292 cmp bx, strict byte 00003h ; 83 fb 03 15305 jc short 09 e6dh ; 72 1315306 jbe short 09 ec0h ; 76 6415293 jc short 09ce9h ; 72 13 15294 jbe short 09d3ch ; 76 64 15307 15295 cmp bx, strict byte 0000eh ; 83 fb 0e 15308 je short 09 ec8h ; 74 6715296 je short 09d44h ; 74 67 15309 15297 cmp bx, strict byte 00008h ; 83 fb 08 15310 jc short 09 e77h ; 72 1115298 jc short 09cf3h ; 72 11 15311 15299 cmp bx, strict byte 0000dh ; 83 fb 0d 15312 jbe short 09 ecbh ; 76 6015313 jmp short 09 e77h ; eb 0a15300 jbe short 09d47h ; 76 60 15301 jmp short 09cf3h ; eb 0a 15314 15302 cmp bx, strict byte 00002h ; 83 fb 02 15315 je short 09 e96h ; 74 2415303 je short 09d12h ; 74 24 15316 15304 cmp bx, strict byte 00001h ; 83 fb 01 15317 je short 09 e7ah ; 74 0315318 jmp near 09 fd9h ; e9 5f 0115305 je short 09cf6h ; 74 03 15306 jmp near 09e55h ; e9 5f 01 15319 15307 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 15320 15308 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 15322 15310 mov word [bp+018h], 04350h ; c7 46 18 50 43 15323 15311 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 15324 jmp near 0 a009h ; e9 73 0115312 jmp near 09e85h ; e9 73 01 15325 15313 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 15326 jne short 09 ea2h ; 75 0615314 jne short 09d1eh ; 75 06 15327 15315 or ah, 083h ; 80 cc 83 15328 jmp near 0 a002h ; e9 60 0115316 jmp near 09e7eh ; e9 60 01 15329 15317 mov bx, word [bp+008h] ; 8b 5e 08 15330 15318 mov dx, word [bp+01ch] ; 8b 56 1c 15331 15319 mov ax, word [bp+018h] ; 8b 46 18 15332 15320 xor cx, cx ; 31 c9 15333 call 09 d44h ; e8 94 fe15321 call 09bc0h ; e8 94 fe 15334 15322 cmp ax, strict word 0ffffh ; 3d ff ff 15335 jne short 09 ec2h ; 75 0d15323 jne short 09d3eh ; 75 0d 15336 15324 mov ax, word [bp+020h] ; 8b 46 20 15337 15325 xor ah, ah ; 30 e4 15338 15326 or ah, 086h ; 80 cc 86 15339 jmp near 0 a002h ; e9 42 0115340 jmp short 09 ecdh ; eb 0b15327 jmp near 09e7eh ; e9 42 01 15328 jmp short 09d49h ; eb 0b 15341 15329 mov word [bp+014h], ax ; 89 46 14 15342 jmp near 0 a009h ; e9 41 0115343 jmp near 09 f94h ; e9 c9 0015344 jmp short 09 ef2h ; eb 2515330 jmp near 09e85h ; e9 41 01 15331 jmp near 09e10h ; e9 c9 00 15332 jmp short 09d6eh ; eb 25 15345 15333 mov bx, word [bp+008h] ; 8b 5e 08 15346 15334 mov ax, word [bp+01ch] ; 8b 46 1c 15347 15335 mov dx, word [bp+01eh] ; 8b 56 1e 15348 15336 mov cx, strict word 00001h ; b9 01 00 15349 call 09 d44h ; e8 68 fe15337 call 09bc0h ; e8 68 fe 15350 15338 cmp ax, strict word 0ffffh ; 3d ff ff 15351 jne short 09 eech ; 75 0b15339 jne short 09d68h ; 75 0b 15352 15340 mov ax, word [bp+020h] ; 8b 46 20 15353 15341 xor ah, ah ; 30 e4 15354 15342 or ah, 086h ; 80 cc 86 15355 jmp near 0 a002h ; e9 16 0115343 jmp near 09e7eh ; e9 16 01 15356 15344 mov word [bp+014h], ax ; 89 46 14 15357 jmp near 0 a009h ; e9 17 0115345 jmp near 09e85h ; e9 17 01 15358 15346 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 15359 jc short 09 effh ; 72 0615347 jc short 09d7bh ; 72 06 15360 15348 or ah, 087h ; 80 cc 87 15361 jmp near 0 a002h ; e9 03 0115349 jmp near 09e7eh ; e9 03 01 15362 15350 mov dx, word [bp+004h] ; 8b 56 04 15363 15351 mov ax, word [bp+014h] ; 8b 46 14 15364 call 09 d20h ; e8 18 fe15352 call 09b9ch ; e8 18 fe 15365 15353 mov bx, word [bp+020h] ; 8b 5e 20 15366 15354 xor bh, bh ; 30 ff 15367 15355 sub bx, strict byte 00008h ; 83 eb 08 15368 15356 cmp bx, strict byte 00005h ; 83 fb 05 15369 jnbe short 09 f7dh ; 77 6815357 jnbe short 09df9h ; 77 68 15370 15358 sal bx, 1 ; d1 e3 15371 jmp word [cs:bx-06 1d1h] ; 2e ff a7 2f 9e15359 jmp word [cs:bx-06355h] ; 2e ff a7 ab 9c 15372 15360 mov bx, word [bp+01ch] ; 8b 5e 1c 15373 15361 xor bl, bl ; 30 db … … 15380 15368 or bx, ax ; 09 c3 15381 15369 mov word [bp+01ch], bx ; 89 5e 1c 15382 jmp short 09 f7dh ; eb 4815370 jmp short 09df9h ; eb 48 15383 15371 mov dx, word [bp+004h] ; 8b 56 04 15384 15372 xor dh, dh ; 30 f6 … … 15387 15375 in ax, DX ; ed 15388 15376 mov word [bp+01ch], ax ; 89 46 1c 15389 jmp short 09 f7dh ; eb 3615377 jmp short 09df9h ; eb 36 15390 15378 mov dx, 00cfch ; ba fc 0c 15391 15379 in eax, DX ; 66 ed … … 15396 15384 mov word [bp+01ch], ax ; 89 46 1c 15397 15385 mov word [bp+01eh], dx ; 89 56 1e 15398 jmp short 09 f7dh ; eb 2215386 jmp short 09df9h ; eb 22 15399 15387 mov ax, word [bp+01ch] ; 8b 46 1c 15400 15388 mov dx, word [bp+004h] ; 8b 56 04 … … 15403 15391 add dx, 00cfch ; 81 c2 fc 0c 15404 15392 out DX, AL ; ee 15405 jmp short 09 f7dh ; eb 1015393 jmp short 09df9h ; eb 10 15406 15394 mov ax, word [bp+01ch] ; 8b 46 1c 15407 15395 mov dx, word [bp+004h] ; 8b 56 04 … … 15410 15398 add dx, 00cfch ; 81 c2 fc 0c 15411 15399 out DX, ax ; ef 15412 jmp near 0 a009h ; e9 89 0015400 jmp near 09e85h ; e9 89 00 15413 15401 mov ax, word [bp+01ch] ; 8b 46 1c 15414 15402 mov cx, word [bp+01eh] ; 8b 4e 1e … … 15419 15407 ; mov ax, cx ; 8b c1 15420 15408 out DX, eax ; 66 ef 15421 jmp short 0 a009h ; eb 7515409 jmp short 09e85h ; eb 75 15422 15410 mov bx, word [bp+004h] ; 8b 5e 04 15423 15411 mov es, [bp+026h] ; 8e 46 26 … … 15426 15414 mov cx, word [0f4a0h] ; 8b 0e a0 f4 15427 15415 cmp cx, word [es:bx] ; 26 3b 0f 15428 jbe short 09 fbah ; 76 1115416 jbe short 09e36h ; 76 11 15429 15417 mov ax, word [bp+020h] ; 8b 46 20 15430 15418 xor ah, ah ; 30 e4 … … 15432 15420 mov word [bp+020h], ax ; 89 46 20 15433 15421 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 15434 jmp short 09 fceh ; eb 1415422 jmp short 09e4ah ; eb 14 15435 15423 les di, [es:bx+002h] ; 26 c4 7f 02 15436 15424 mov si, 0f2c0h ; be c0 f2 … … 15444 15432 les bx, [bp-008h] ; c4 5e f8 15445 15433 mov word [es:bx], ax ; 26 89 07 15446 jmp short 0 a009h ; eb 3015434 jmp short 09e85h ; eb 30 15447 15435 mov bx, 00da0h ; bb a0 0d 15448 15436 mov cx, ds ; 8c d9 15449 15437 mov ax, strict word 00004h ; b8 04 00 15450 call 01933h ; e8 4f 7915438 call 01933h ; e8 d3 7a 15451 15439 mov ax, word [bp+014h] ; 8b 46 14 15452 15440 push ax ; 50 … … 15457 15445 mov ax, strict word 00004h ; b8 04 00 15458 15446 push ax ; 50 15459 call 01976h ; e8 7f 7915447 call 01976h ; e8 03 7b 15460 15448 add sp, strict byte 00008h ; 83 c4 08 15461 15449 mov ax, word [bp+020h] ; 8b 46 20 … … 15469 15457 pop bp ; 5d 15470 15458 retn ; c3 15471 pci_find_classcode_: ; 0xf a010LB 0x815459 pci_find_classcode_: ; 0xf9e8c LB 0x8 15472 15460 push bp ; 55 15473 15461 mov bp, sp ; 89 e5 … … 15475 15463 pop bp ; 5d 15476 15464 retn ; c3 15477 pci_read_config_byte_: ; 0xf a018LB 0x2715465 pci_read_config_byte_: ; 0xf9e94 LB 0x27 15478 15466 push bp ; 55 15479 15467 mov bp, sp ; 89 e5 … … 15498 15486 pop bp ; 5d 15499 15487 retn ; c3 15500 pci_read_config_word_: ; 0xf a03fLB 0x2515488 pci_read_config_word_: ; 0xf9ebb LB 0x25 15501 15489 push bp ; 55 15502 15490 mov bp, sp ; 89 e5 … … 15520 15508 pop bp ; 5d 15521 15509 retn ; c3 15522 pci_read_config_dword_: ; 0xf a064LB 0x3f15510 pci_read_config_dword_: ; 0xf9ee0 LB 0x3f 15523 15511 push bp ; 55 15524 15512 mov bp, sp ; 89 e5 … … 15535 15523 int 01ah ; cd 1a 15536 15524 test cx, cx ; 85 c9 15537 jne short 0 a094h ; 75 1415525 jne short 09f10h ; 75 14 15538 15526 mov al, byte [bp-006h] ; 8a 46 fa 15539 15527 xor ah, ah ; 30 e4 … … 15545 15533 int 01ah ; cd 1a 15546 15534 test cx, cx ; 85 c9 15547 je short 0 a099h ; 74 0515535 je short 09f15h ; 74 05 15548 15536 mov ax, strict word 00001h ; b8 01 00 15549 jmp short 0 a09bh ; eb 0215537 jmp short 09f17h ; eb 02 15550 15538 xor ax, ax ; 31 c0 15551 15539 cwd ; 99 … … 15555 15543 pop bp ; 5d 15556 15544 retn ; c3 15557 vds_is_present_: ; 0xf a0a3LB 0x1d15545 vds_is_present_: ; 0xf9f1f LB 0x1d 15558 15546 push bx ; 53 15559 15547 push bp ; 55 … … 15563 15551 mov es, ax ; 8e c0 15564 15552 test byte [es:bx], 020h ; 26 f6 07 20 15565 je short 0 a0bbh ; 74 0615553 je short 09f37h ; 74 06 15566 15554 mov ax, strict word 00001h ; b8 01 00 15567 15555 pop bp ; 5d … … 15572 15560 pop bx ; 5b 15573 15561 retn ; c3 15574 vds_real_to_lin_: ; 0xf a0c0LB 0x1e15562 vds_real_to_lin_: ; 0xf9f3c LB 0x1e 15575 15563 push bx ; 53 15576 15564 push cx ; 51 … … 15583 15571 sal ax, 1 ; d1 e0 15584 15572 rcl dx, 1 ; d1 d2 15585 loop 0 a0ceh ; e2 fa15573 loop 09f4ah ; e2 fa 15586 15574 xor cx, cx ; 31 c9 15587 15575 add ax, bx ; 01 d8 … … 15591 15579 pop bx ; 5b 15592 15580 retn ; c3 15593 vds_build_sg_list_: ; 0xf a0deLB 0x7715581 vds_build_sg_list_: ; 0xf9f5a LB 0x77 15594 15582 push bp ; 55 15595 15583 mov bp, sp ; 89 e5 … … 15605 15593 mov bx, word [bp+006h] ; 8b 5e 06 15606 15594 mov word [es:di+002h], bx ; 26 89 5d 02 15607 call 0 a0c0h ; e8 c3 ff15595 call 09f3ch ; e8 c3 ff 15608 15596 mov es, si ; 8e c6 15609 15597 mov word [es:di+004h], ax ; 26 89 45 04 15610 15598 mov word [es:di+006h], dx ; 26 89 55 06 15611 15599 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 15612 call 0 a0a3h ; e8 93 ff15600 call 09f1fh ; e8 93 ff 15613 15601 test ax, ax ; 85 c0 15614 je short 0 a125h ; 74 1115602 je short 09fa1h ; 74 11 15615 15603 mov es, si ; 8e c6 15616 15604 mov ax, 08105h ; b8 05 81 15617 15605 mov dx, strict word 00000h ; ba 00 00 15618 15606 int 04bh ; cd 4b 15619 jc short 0 a122h ; 72 0215607 jc short 09f9eh ; 72 02 15620 15608 db 032h, 0c0h 15621 15609 ; xor al, al ; 32 c0 15622 15610 cbw ; 98 15623 jmp short 0 a14ch ; eb 2715611 jmp short 09fc8h ; eb 27 15624 15612 mov es, si ; 8e c6 15625 15613 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 15638 15626 pop bp ; 5d 15639 15627 retn 00004h ; c2 04 00 15640 vds_free_sg_list_: ; 0xf a155 LB 0x3b15628 vds_free_sg_list_: ; 0xf9fd1 LB 0x2f 15641 15629 push bp ; 55 15642 15630 mov bp, sp ; 89 e5 … … 15644 15632 push di ; 57 15645 15633 mov bx, ax ; 89 c3 15646 call 0 a0a3h ; e8 44 ff15634 call 09f1fh ; e8 44 ff 15647 15635 test ax, ax ; 85 c0 15648 je short 0 a174h ; 74 1115636 je short 09ff0h ; 74 11 15649 15637 mov di, bx ; 89 df 15650 15638 mov es, dx ; 8e c2 … … 15652 15640 mov dx, strict word 00000h ; ba 00 00 15653 15641 int 04bh ; cd 4b 15654 jc short 0 a173h ; 72 0215642 jc short 09fefh ; 72 02 15655 15643 db 032h, 0c0h 15656 15644 ; xor al, al ; 32 c0 … … 15663 15651 pop bp ; 5d 15664 15652 retn ; c3 15665 times 0x ddb 015666 __U4 D: ; 0xfa190 LB 0x3915653 times 0x1 db 0 15654 __U4M: ; 0xfa000 LB 0x20 15667 15655 pushfw ; 9c 15668 push eax ; 66 50 15669 push edx ; 66 52 15670 push ecx ; 66 51 15671 rol eax, 010h ; 66 c1 c0 10 15672 db 08bh, 0c2h 15673 ; mov ax, dx ; 8b c2 15674 ror eax, 010h ; 66 c1 c8 10 15675 db 066h, 033h, 0d2h 15676 ; xor edx, edx ; 66 33 d2 15677 shr ecx, 010h ; 66 c1 e9 10 15678 db 08bh, 0cbh 15679 ; mov cx, bx ; 8b cb 15680 div ecx ; 66 f7 f1 15681 db 08bh, 0dah 15682 ; mov bx, dx ; 8b da 15683 pop ecx ; 66 59 15684 shr edx, 010h ; 66 c1 ea 10 15685 db 08bh, 0cah 15686 ; mov cx, dx ; 8b ca 15687 pop edx ; 66 5a 15688 ror eax, 010h ; 66 c1 c8 10 15689 db 08bh, 0d0h 15690 ; mov dx, ax ; 8b d0 15691 add sp, strict byte 00002h ; 83 c4 02 15656 push si ; 56 15657 push di ; 57 15658 push ax ; 50 15659 db 08bh, 0fah 15660 ; mov di, dx ; 8b fa 15661 mul bx ; f7 e3 15662 db 08bh, 0f2h 15663 ; mov si, dx ; 8b f2 15664 xchg di, ax ; 97 15665 mul bx ; f7 e3 15666 db 003h, 0f0h 15667 ; add si, ax ; 03 f0 15692 15668 pop ax ; 58 15693 rol eax, 010h ; 66 c1 c0 10 15669 mul cx ; f7 e1 15670 db 003h, 0f0h 15671 ; add si, ax ; 03 f0 15672 db 08bh, 0d6h 15673 ; mov dx, si ; 8b d6 15674 db 08bh, 0c7h 15675 ; mov ax, di ; 8b c7 15676 pop di ; 5f 15677 pop si ; 5e 15694 15678 popfw ; 9d 15695 15679 retn ; c3 15696 __U4M: ; 0xfa1c9 LB 0x31 15680 times 0x4 db 0 15681 __U4D: ; 0xfa020 LB 0x30 15697 15682 pushfw ; 9c 15698 push eax ; 66 5015699 push edx ; 66 5215700 push ecx ; 66 5115701 rol eax, 010h ; 66 c1 c0 1015702 db 08bh, 0 c2h15703 ; mov ax, dx ; 8b c215704 ror eax, 010h ; 66 c1 c8 1015705 db 066h, 033h, 0d2h15706 ; xor edx, edx ; 66 33 d215707 shr ecx, 010h ; 66 c1 e9 1015708 db 08bh, 0cbh15709 ; mov cx, bx ; 8b cb15710 mul ecx ; 66 f7 e115711 pop ecx ; 66 5915712 pop edx ; 66 5a15713 ror eax, 010h ; 66 c1 c8 1015714 db 08bh, 0 d0h15715 ; mov dx, ax ; 8b d015716 add sp, strict byte 00002h ; 83 c4 0215717 pop ax ; 5815718 rol eax, 010h ; 66 c1 c0 1015683 push DS ; 1e 15684 push ES ; 06 15685 push bp ; 55 15686 sub sp, strict byte 00004h ; 83 ec 04 15687 db 08bh, 0ech 15688 ; mov bp, sp ; 8b ec 15689 push SS ; 16 15690 push bp ; 55 15691 add bp, strict byte 00004h ; 83 c5 04 15692 push cx ; 51 15693 push bx ; 53 15694 push dx ; 52 15695 push ax ; 50 15696 call 0a105h ; e8 d0 00 15697 mov cx, word [bp-002h] ; 8b 4e fe 15698 mov bx, word [bp-004h] ; 8b 5e fc 15699 db 08bh, 0e5h 15700 ; mov sp, bp ; 8b e5 15701 pop bp ; 5d 15702 pop ES ; 07 15703 pop DS ; 1f 15719 15704 popfw ; 9d 15720 15705 retn ; c3 15721 __U8LS: ; 0xfa1fa LB 0x10 15706 times 0xe db 0 15707 __U8RS: ; 0xfa050 LB 0x10 15722 15708 test si, si ; 85 f6 15723 je short 0a209h ; 74 0b 15709 je short 0a05fh ; 74 0b 15710 shr ax, 1 ; d1 e8 15711 rcr bx, 1 ; d1 db 15712 rcr cx, 1 ; d1 d9 15713 rcr dx, 1 ; d1 da 15714 dec si ; 4e 15715 jne short 0a054h ; 75 f5 15716 retn ; c3 15717 __U8LS: ; 0xfa060 LB 0x10 15718 test si, si ; 85 f6 15719 je short 0a06fh ; 74 0b 15724 15720 sal dx, 1 ; d1 e2 15725 15721 rcl cx, 1 ; d1 d1 … … 15727 15723 rcl ax, 1 ; d1 d0 15728 15724 dec si ; 4e 15729 jne short 0a 1feh ; 75 f515725 jne short 0a064h ; 75 f5 15730 15726 retn ; c3 15731 __U8RS: ; 0xfa20a LB 0x10 15732 test si, si ; 85 f6 15733 je short 0a219h ; 74 0b 15734 shr ax, 1 ; d1 e8 15735 rcr bx, 1 ; d1 db 15736 rcr cx, 1 ; d1 d9 15737 rcr dx, 1 ; d1 da 15738 dec si ; 4e 15739 jne short 0a20eh ; 75 f5 15740 retn ; c3 15741 _fmemset_: ; 0xfa21a LB 0xd 15727 _fmemset_: ; 0xfa070 LB 0x10 15742 15728 push di ; 57 15743 15729 mov es, dx ; 8e c2 … … 15749 15735 pop di ; 5f 15750 15736 retn ; c3 15751 _fmemcpy_: ; 0xfa227 LB 0x33 15737 times 0x3 db 0 15738 _fmemcpy_: ; 0xfa080 LB 0x3a 15752 15739 push bp ; 55 15753 15740 db 08bh, 0ech … … 15767 15754 pop DS ; 1f 15768 15755 pop di ; 5f 15769 leave ; c9 15756 db 08bh, 0e5h 15757 ; mov sp, bp ; 8b e5 15758 pop bp ; 5d 15770 15759 retn ; c3 15771 add byte [bx+si-05eh], dh ; 00 70 a2 15772 jc short 0a1e6h ; 72 a2 15773 jbe short 0a1e8h ; 76 a2 15774 jbe short 0a1eah ; 76 a2 15775 jbe short 0a1ech ; 76 a2 15776 js short 0a1eeh ; 78 a2 15777 js short 0a1f0h ; 78 a2 15778 jp short 0a1f2h ; 7a a2 15779 jle short 0a1f4h ; 7e a2 15780 jle short 0a1f6h ; 7e a2 15781 and byte [bp+si-05d7bh], 087h ; 80 a2 85 a2 87 15782 db 0a2h 15783 apm_worker: ; 0xfa25a LB 0x3a 15760 add byte [bx+si], al ; 00 00 15761 add byte [bx+si], al ; 00 00 15762 add byte [bx+si], al ; 00 00 15763 sal byte [bx+si-05f2eh], 1 ; d0 a0 d2 a0 15764 db 0d6h 15765 mov AL, byte [0a0d6h] ; a0 d6 a0 15766 db 0d6h 15767 mov AL, byte [0a0d8h] ; a0 d8 a0 15768 fsub dword [bx+si-05f26h] ; d8 a0 da a0 15769 fisub word [bx+si-05f22h] ; de a0 de a0 15770 loopne 0a056h ; e0 a0 15771 in ax, 0a0h ; e5 a0 15772 out 0a0h, ax ; e7 a0 15773 apm_worker: ; 0xfa0ba LB 0x3a 15784 15774 sti ; fb 15785 15775 push ax ; 50 … … 15793 15783 pop ax ; 58 15794 15784 mov AH, strict byte 053h ; b4 53 15795 jnc short 0a 290h ; 73 2515796 jmp word [cs:bp-05 dc0h] ; 2e ff a6 40 a215797 jmp short 0a 28eh ; eb 1c15785 jnc short 0a0f0h ; 73 25 15786 jmp word [cs:bp-05f60h] ; 2e ff a6 a0 a0 15787 jmp short 0a0eeh ; eb 1c 15798 15788 sti ; fb 15799 15789 hlt ; f4 15800 jmp short 0a 28eh ; eb 1815801 jmp short 0a 28eh ; eb 1615802 jmp short 0a 290h ; eb 1615790 jmp short 0a0eeh ; eb 18 15791 jmp short 0a0eeh ; eb 16 15792 jmp short 0a0f0h ; eb 16 15803 15793 mov AH, strict byte 080h ; b4 80 15804 jmp short 0a 292h ; eb 1415805 jmp short 0a 290h ; eb 1015794 jmp short 0a0f2h ; eb 14 15795 jmp short 0a0f0h ; eb 10 15806 15796 mov ax, 00102h ; b8 02 01 15807 jmp short 0a 28eh ; eb 0915808 jmp short 0a 28eh ; eb 0715797 jmp short 0a0eeh ; eb 09 15798 jmp short 0a0eeh ; eb 07 15809 15799 mov BL, strict byte 000h ; b3 00 15810 15800 mov cx, strict word 00000h ; b9 00 00 15811 jmp short 0a 28eh ; eb 0015801 jmp short 0a0eeh ; eb 00 15812 15802 clc ; f8 15813 15803 retn ; c3 … … 15815 15805 stc ; f9 15816 15806 retn ; c3 15817 apm_pm16_entry: ; 0xfa 294 LB 0x1115807 apm_pm16_entry: ; 0xfa0f4 LB 0x11 15818 15808 mov AH, strict byte 002h ; b4 02 15819 15809 push DS ; 1e … … 15823 15813 add bp, strict byte 00008h ; 83 c5 08 15824 15814 mov ds, bp ; 8e dd 15825 call 0a 25ah ; e8 b8 ff15815 call 0a0bah ; e8 b8 ff 15826 15816 pop bp ; 5d 15827 15817 pop DS ; 1f 15828 15818 retf ; cb 15819 _DoUInt32Div: ; 0xfa105 LB 0x26b 15820 push bp ; 55 15821 mov bp, sp ; 89 e5 15822 push si ; 56 15823 push di ; 57 15824 sub sp, strict byte 00018h ; 83 ec 18 15825 lds bx, [bp+00ch] ; c5 5e 0c 15826 lea si, [bp+004h] ; 8d 76 04 15827 mov word [bp-010h], si ; 89 76 f0 15828 mov [bp-00eh], ss ; 8c 56 f2 15829 lea di, [bp+008h] ; 8d 7e 08 15830 mov [bp-008h], ss ; 8c 56 f8 15831 lea si, [bp-01ch] ; 8d 76 e4 15832 mov word [bp-00ch], si ; 89 76 f4 15833 mov [bp-00ah], ss ; 8c 56 f6 15834 mov si, bx ; 89 de 15835 mov [bp-006h], ds ; 8c 5e fa 15836 cmp word [bx+002h], strict byte 00000h ; 83 7f 02 00 15837 jne short 0a155h ; 75 22 15838 mov ax, word [bx] ; 8b 07 15839 test ax, ax ; 85 c0 15840 je short 0a152h ; 74 19 15841 cmp ax, strict word 00001h ; 3d 01 00 15842 jne short 0a155h ; 75 17 15843 xor ax, ax ; 31 c0 15844 mov word [bp+00ah], ax ; 89 46 0a 15845 mov word [bp+008h], ax ; 89 46 08 15846 mov ax, word [bp-01ch] ; 8b 46 e4 15847 mov word [bp+004h], ax ; 89 46 04 15848 mov ax, word [bp-01ah] ; 8b 46 e6 15849 mov word [bp+006h], ax ; 89 46 06 15850 jmp near 0a35dh ; e9 08 02 15851 lds bx, [bp-00ch] ; c5 5e f4 15852 mov ax, word [bx+002h] ; 8b 47 02 15853 mov ds, [bp-006h] ; 8e 5e fa 15854 cmp ax, word [si+002h] ; 3b 44 02 15855 je short 0a17bh ; 74 18 15856 mov ds, [bp-00ah] ; 8e 5e f6 15857 mov ax, word [bx+002h] ; 8b 47 02 15858 mov ds, [bp-006h] ; 8e 5e fa 15859 cmp ax, word [si+002h] ; 3b 44 02 15860 jbe short 0a176h ; 76 05 15861 mov ax, strict word 00001h ; b8 01 00 15862 jmp short 0a19ch ; eb 26 15863 mov ax, strict word 0ffffh ; b8 ff ff 15864 jmp short 0a19ch ; eb 21 15865 mov ds, [bp-00ah] ; 8e 5e f6 15866 mov ax, word [bx] ; 8b 07 15867 mov ds, [bp-006h] ; 8e 5e fa 15868 cmp ax, word [si] ; 3b 04 15869 je short 0a19ah ; 74 13 15870 mov ds, [bp-00ah] ; 8e 5e f6 15871 mov ax, word [bx] ; 8b 07 15872 mov ds, [bp-006h] ; 8e 5e fa 15873 cmp ax, word [si] ; 3b 04 15874 jbe short 0a195h ; 76 02 15875 jmp short 0a171h ; eb dc 15876 mov ax, strict word 0ffffh ; b8 ff ff 15877 jmp short 0a19ch ; eb 02 15878 xor ax, ax ; 31 c0 15879 test ax, ax ; 85 c0 15880 jnl short 0a1beh ; 7d 1e 15881 lds bx, [bp-00ch] ; c5 5e f4 15882 mov ax, word [bx] ; 8b 07 15883 mov dx, word [bx+002h] ; 8b 57 02 15884 mov ds, [bp-008h] ; 8e 5e f8 15885 mov word [di], ax ; 89 05 15886 mov word [di+002h], dx ; 89 55 02 15887 lds bx, [bp-010h] ; c5 5e f0 15888 mov word [bx+002h], strict word 00000h ; c7 47 02 00 00 15889 mov word [bx], strict word 00000h ; c7 07 00 00 15890 jmp short 0a152h ; eb 94 15891 jne short 0a1d5h ; 75 15 15892 mov ds, [bp-008h] ; 8e 5e f8 15893 mov word [di+002h], ax ; 89 45 02 15894 mov word [di], ax ; 89 05 15895 lds bx, [bp-010h] ; c5 5e f0 15896 mov word [bx], strict word 00001h ; c7 07 01 00 15897 mov word [bx+002h], ax ; 89 47 02 15898 jmp near 0a35dh ; e9 88 01 15899 lds bx, [bp-00ch] ; c5 5e f4 15900 mov ax, word [bx+002h] ; 8b 47 02 15901 test ax, ax ; 85 c0 15902 je short 0a1f0h ; 74 11 15903 push ax ; 50 15904 mov ax, 0f000h ; b8 00 f0 15905 mov ds, ax ; 8e d8 15906 call 0a370h ; e8 88 01 15907 add sp, strict byte 00002h ; 83 c4 02 15908 add ax, strict word 00010h ; 05 10 00 15909 jmp short 0a1fdh ; eb 0d 15910 push word [bx] ; ff 37 15911 mov ax, 0f000h ; b8 00 f0 15912 mov ds, ax ; 8e d8 15913 call 0a370h ; e8 76 01 15914 add sp, strict byte 00002h ; 83 c4 02 15915 mov word [bp-014h], ax ; 89 46 ec 15916 mov ds, [bp-006h] ; 8e 5e fa 15917 mov ax, word [si+002h] ; 8b 44 02 15918 test ax, ax ; 85 c0 15919 je short 0a21bh ; 74 11 15920 push ax ; 50 15921 mov ax, 0f000h ; b8 00 f0 15922 mov ds, ax ; 8e d8 15923 call 0a370h ; e8 5d 01 15924 add sp, strict byte 00002h ; 83 c4 02 15925 add ax, strict word 00010h ; 05 10 00 15926 jmp short 0a228h ; eb 0d 15927 push word [si] ; ff 34 15928 mov ax, 0f000h ; b8 00 f0 15929 mov ds, ax ; 8e d8 15930 call 0a370h ; e8 4b 01 15931 add sp, strict byte 00002h ; 83 c4 02 15932 mov dx, word [bp-014h] ; 8b 56 ec 15933 sub dx, ax ; 29 c2 15934 mov word [bp-012h], dx ; 89 56 ee 15935 mov ds, [bp-006h] ; 8e 5e fa 15936 mov ax, word [si] ; 8b 04 15937 mov word [bp-018h], ax ; 89 46 e8 15938 mov ax, word [si+002h] ; 8b 44 02 15939 mov word [bp-016h], ax ; 89 46 ea 15940 test dx, dx ; 85 d2 15941 je short 0a298h ; 74 56 15942 mov cx, dx ; 89 d1 15943 xor ch, dh ; 30 f5 15944 and cl, 01fh ; 80 e1 1f 15945 mov ax, word [si] ; 8b 04 15946 mov dx, word [si+002h] ; 8b 54 02 15947 jcxz 0a256h ; e3 06 15948 sal ax, 1 ; d1 e0 15949 rcl dx, 1 ; d1 d2 15950 loop 0a250h ; e2 fa 15951 mov word [bp-018h], ax ; 89 46 e8 15952 mov word [bp-016h], dx ; 89 56 ea 15953 mov ax, word [bp-016h] ; 8b 46 ea 15954 lds bx, [bp-00ch] ; c5 5e f4 15955 cmp ax, word [bx+002h] ; 3b 47 02 15956 jnbe short 0a276h ; 77 0f 15957 mov ax, word [bp-016h] ; 8b 46 ea 15958 cmp ax, word [bx+002h] ; 3b 47 02 15959 jne short 0a27ah ; 75 0b 15960 mov ax, word [bp-018h] ; 8b 46 e8 15961 cmp ax, word [bx] ; 3b 07 15962 jbe short 0a27ah ; 76 04 15963 mov AL, strict byte 001h ; b0 01 15964 jmp short 0a27ch ; eb 02 15965 xor al, al ; 30 c0 15966 test al, al ; 84 c0 15967 je short 0a2a3h ; 74 23 15968 shr word [bp-016h], 1 ; d1 6e ea 15969 rcr word [bp-018h], 1 ; d1 5e e8 15970 dec word [bp-012h] ; ff 4e ee 15971 jmp short 0a2a3h ; eb 18 15972 mov cx, strict word 0001fh ; b9 1f 00 15973 sal word [bp-018h], 1 ; d1 66 e8 15974 rcl word [bp-016h], 1 ; d1 56 ea 15975 loop 0a28eh ; e2 f8 15976 jmp short 0a286h ; eb ee 15977 mov ax, word [si] ; 8b 04 15978 mov word [bp-018h], ax ; 89 46 e8 15979 mov ax, word [si+002h] ; 8b 44 02 15980 mov word [bp-016h], ax ; 89 46 ea 15981 lds bx, [bp-010h] ; c5 5e f0 15982 mov word [bx+002h], strict word 00000h ; c7 47 02 00 00 15983 mov word [bx], strict word 00000h ; c7 07 00 00 15984 lds bx, [bp-00ch] ; c5 5e f4 15985 mov dx, word [bx] ; 8b 17 15986 mov ax, word [bx+002h] ; 8b 47 02 15987 mov ds, [bp-008h] ; 8e 5e f8 15988 mov word [di], dx ; 89 15 15989 mov word [di+002h], ax ; 89 45 02 15990 mov dx, word [di] ; 8b 15 15991 mov ds, [bp-006h] ; 8e 5e fa 15992 cmp ax, word [si+002h] ; 3b 44 02 15993 jnbe short 0a2cfh ; 77 06 15994 jne short 0a2d3h ; 75 08 15995 cmp dx, word [si] ; 3b 14 15996 jc short 0a2d3h ; 72 04 15997 mov AL, strict byte 001h ; b0 01 15998 jmp short 0a2d5h ; eb 02 15999 xor al, al ; 30 c0 16000 test al, al ; 84 c0 16001 je short 0a33ah ; 74 61 16002 mov ds, [bp-008h] ; 8e 5e f8 16003 mov ax, word [di+002h] ; 8b 45 02 16004 cmp ax, word [bp-016h] ; 3b 46 ea 16005 jnbe short 0a2f0h ; 77 0c 16006 cmp ax, word [bp-016h] ; 3b 46 ea 16007 jne short 0a2f4h ; 75 0b 16008 mov ax, word [di] ; 8b 05 16009 cmp ax, word [bp-018h] ; 3b 46 e8 16010 jc short 0a2f4h ; 72 04 16011 mov AL, strict byte 001h ; b0 01 16012 jmp short 0a2f6h ; eb 02 16013 xor al, al ; 30 c0 16014 test al, al ; 84 c0 16015 je short 0a320h ; 74 26 16016 mov ax, word [bp-018h] ; 8b 46 e8 16017 mov ds, [bp-008h] ; 8e 5e f8 16018 sub word [di], ax ; 29 05 16019 mov ax, word [bp-016h] ; 8b 46 ea 16020 sbb word [di+002h], ax ; 19 45 02 16021 mov ax, strict word 00001h ; b8 01 00 16022 xor dx, dx ; 31 d2 16023 mov cx, word [bp-012h] ; 8b 4e ee 16024 jcxz 0a318h ; e3 06 16025 sal ax, 1 ; d1 e0 16026 rcl dx, 1 ; d1 d2 16027 loop 0a312h ; e2 fa 16028 lds bx, [bp-010h] ; c5 5e f0 16029 or word [bx], ax ; 09 07 16030 or word [bx+002h], dx ; 09 57 02 16031 mov ds, [bp-008h] ; 8e 5e f8 16032 mov dx, word [di] ; 8b 15 16033 mov ax, word [di+002h] ; 8b 45 02 16034 mov ds, [bp-006h] ; 8e 5e fa 16035 cmp ax, word [si+002h] ; 3b 44 02 16036 jc short 0a336h ; 72 06 16037 jne short 0a33ch ; 75 0a 16038 cmp dx, word [si] ; 3b 14 16039 jnc short 0a33ch ; 73 06 16040 mov AL, strict byte 001h ; b0 01 16041 jmp short 0a33eh ; eb 04 16042 jmp short 0a35dh ; eb 21 16043 xor al, al ; 30 c0 16044 test al, al ; 84 c0 16045 je short 0a351h ; 74 0f 16046 jmp short 0a35dh ; eb 19 16047 mov cx, strict word 0001fh ; b9 1f 00 16048 sal word [bp-018h], 1 ; d1 66 e8 16049 rcl word [bp-016h], 1 ; d1 56 ea 16050 loop 0a347h ; e2 f8 16051 jmp short 0a357h ; eb 06 16052 shr word [bp-016h], 1 ; d1 6e ea 16053 rcr word [bp-018h], 1 ; d1 5e e8 16054 dec word [bp-012h] ; ff 4e ee 16055 jmp near 0a2d9h ; e9 7c ff 16056 mov ax, word [bp-01ch] ; 8b 46 e4 16057 mov dx, word [bp-01ah] ; 8b 56 e6 16058 lea sp, [bp-004h] ; 8d 66 fc 16059 pop di ; 5f 16060 pop si ; 5e 16061 pop bp ; 5d 16062 retn ; c3 16063 times 0x6 db 0 16064 _ASMBitLastSetU16: ; 0xfa370 LB 0x18 16065 push bp ; 55 16066 db 08bh, 0ech 16067 ; mov bp, sp ; 8b ec 16068 mov cx, word [bp+004h] ; 8b 4e 04 16069 test cx, cx ; 85 c9 16070 je short 0a384h ; 74 0a 16071 mov ax, strict word 00010h ; b8 10 00 16072 sal cx, 1 ; d1 e1 16073 jc short 0a386h ; 72 05 16074 dec ax ; 48 16075 jmp short 0a37dh ; eb f9 16076 db 033h, 0c0h 16077 ; xor ax, ax ; 33 c0 16078 pop bp ; 5d 16079 retn ; c3 15829 16080 15830 ; Padding 0x3 75b bytes at 0xfa2a515831 times 1 4171db 016081 ; Padding 0x3678 bytes at 0xfa388 16082 times 13944 db 0 15832 16083 15833 16084 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 15876 16127 add bp, strict byte 00008h ; 83 c5 08 15877 16128 push ebp ; 66 55 15878 mov bp, 0a 296h ; bd 96 a216129 mov bp, 0a0f6h ; bd f6 a0 15879 16130 add byte [bx+si], al ; 00 00 15880 16131 push ebp ; 66 55 … … 16606 16857 call 01cc5h ; e8 89 39 16607 16858 call 02154h ; e8 15 3e 16608 call 09 ad7h ; e8 95 b716609 call 08 93ch ; e8 f7 a516859 call 09953h ; e8 11 b6 16860 call 087b8h ; e8 73 a4 16610 16861 call 0ed4ch ; e8 04 0a 16611 16862 call 0e2d2h ; e8 87 ff … … 16943 17194 pop DS ; 1f 16944 17195 cld ; fc 16945 call 0 701ch ; e8 28 8617196 call 06e98h ; e8 a4 84 16946 17197 pop DS ; 1f 16947 17198 pop ES ; 07 … … 17305 17556 pop DS ; 1f 17306 17557 cld ; fc 17307 call 07 9c9h ; e8 e5 8917558 call 07845h ; e8 61 88 17308 17559 pop di ; 5f 17309 17560 pop si ; 5e … … 17687 17938 cmp ah, 0c2h ; 80 fc c2 17688 17939 je short 0f895h ; 74 15 17689 call 067 77h ; e8 f4 6e17940 call 067b7h ; e8 34 6f 17690 17941 pop di ; 5f 17691 17942 pop si ; 5e … … 17700 17951 popfw ; 9d 17701 17952 jmp short 0f8afh ; eb 1f 17702 call 09 c2ah ; e8 97 a317953 call 09aa6h ; e8 13 a2 17703 17954 jmp short 0f883h ; eb ee 17704 17955 int15_handler_mouse: ; 0xff895 LB 0x5 17705 call 07 629h ; e8 91 7d17956 call 074a5h ; e8 0d 7c 17706 17957 jmp short 0f883h ; eb e9 17707 17958 int15_handler32: ; 0xff89a LB 0x15 … … 17714 17965 push si ; 56 17715 17966 push di ; 57 17716 call 06 c4dh ; e8 a8 7317967 call 06afah ; e8 55 72 17717 17968 pop di ; 5f 17718 17969 pop si ; 5e … … 17760 18011 pop DS ; 1f 17761 18012 cld ; fc 17762 call 07 557h ; e8 7c 7c18013 call 073d3h ; e8 f8 7a 17763 18014 pop cx ; 59 17764 18015 jcxz 0f8ebh ; e3 0d … … 17808 18059 pop DS ; 1f 17809 18060 cld ; fc 17810 call 07 1f4h ; e8 d5 7818061 call 07070h ; e8 51 77 17811 18062 pop di ; 5f 17812 18063 pop si ; 5e … … 17911 18162 pop DS ; 1f 17912 18163 cld ; fc 17913 call 07 2b3h ; e8 35 7418164 call 0712fh ; e8 b1 72 17914 18165 pop di ; 5f 17915 18166 pop si ; 5e … … 18023 18274 cpu_reset: ; 0xffff0 LB 0x10 18024 18275 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 18025 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 0 96h18276 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 081h -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum
r60443 r61092 1 2d2a8ffc155d7c59ca2ef255d33488c0*VBoxPcBios8086.rom1 b2a7d5bff6cb3b0795f67a7c9eea2545 *VBoxPcBios8086.rom
Note:
See TracChangeset
for help on using the changeset viewer.