Changeset 68773 in vbox for trunk/src/VBox/Devices/PC
- Timestamp:
- Sep 15, 2017 1:16:01 PM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 118013
- Location:
- trunk/src/VBox/Devices/PC/BIOS
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm
r68421 r68773 1116 1116 section CONST2 progbits vstart=0xd8e align=1 ; size=0x400 class=DATA group=DGROUP 1117 1117 _bios_cvs_version_string: ; 0xf0d8e LB 0x18 1118 db 'VirtualBox 5.2.0_BETA 2', 000h, 000h1118 db 'VirtualBox 5.2.0_BETA3', 000h, 000h 1119 1119 _bios_prefix_string: ; 0xf0da6 LB 0x8 1120 1120 db 'BIOS: ', 000h, 000h … … 1190 1190 times 1138 db 0 1191 1191 1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8e 08 class=CODE group=AUTO1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8e18 class=CODE group=AUTO 1193 1193 rom_scan_: ; 0xf1600 LB 0x50 1194 1194 push bp ; 55 … … 1585 1585 mov bx, strict word 0000ah ; bb 0a 00 1586 1586 xor cx, cx ; 31 c9 1587 call 0a0 a0h ; e8 d3 871587 call 0a0b0h ; e8 e3 87 1588 1588 mov word [bp-008h], ax ; 89 46 f8 1589 1589 mov cx, dx ; 89 d1 … … 1815 1815 mov dx, word [bp-026h] ; 8b 56 da 1816 1816 mov si, word [bp-01eh] ; 8b 76 e2 1817 call 0a0 d0h ; e8 d3 851817 call 0a0e0h ; e8 e3 85 1818 1818 mov ax, dx ; 89 d0 1819 1819 xor ah, dh ; 30 f4 … … 2254 2254 mov dx, word [es:si] ; 26 8b 14 2255 2255 mov si, strict word 00018h ; be 18 00 2256 call 0a0 d0h ; e8 80 812256 call 0a0e0h ; e8 90 81 2257 2257 xor dh, dh ; 30 f6 2258 2258 mov word [bp-014h], dx ; 89 56 ec … … 2264 2264 mov dx, word [es:si] ; 26 8b 14 2265 2265 mov si, strict word 00020h ; be 20 00 2266 call 0a0 d0h ; e8 60 812266 call 0a0e0h ; e8 70 81 2267 2267 mov bx, dx ; 89 d3 2268 2268 mov ax, word [bp-01ch] ; 8b 46 e4 … … 2295 2295 mov dx, word [es:si] ; 26 8b 14 2296 2296 mov si, strict word 00008h ; be 08 00 2297 call 0a0 d0h ; e8 0f 812297 call 0a0e0h ; e8 1f 81 2298 2298 mov word [bp-012h], dx ; 89 56 ee 2299 2299 mov bx, word [bp-016h] ; 8b 5e ea … … 2304 2304 mov dx, word [es:si] ; 26 8b 14 2305 2305 mov si, strict word 00018h ; be 18 00 2306 call 0a0 d0h ; e8 f1 802306 call 0a0e0h ; e8 01 81 2307 2307 mov ah, dl ; 88 d4 2308 2308 and ah, 00fh ; 80 e4 0f … … 2861 2861 mov dx, word [es:di+036h] ; 26 8b 55 36 2862 2862 mov si, strict word 0000bh ; be 0b 00 2863 call 0a0 d0h ; e8 49 7b2863 call 0a0e0h ; e8 59 7b 2864 2864 mov word [bp-024h], dx ; 89 56 dc 2865 2865 mov word [bp-032h], cx ; 89 4e ce … … 3137 3137 mov dx, word [bp-024h] ; 8b 56 dc 3138 3138 mov si, strict word 00018h ; be 18 00 3139 call 0a0 d0h ; e8 87 783139 call 0a0e0h ; e8 97 78 3140 3140 xor dh, dh ; 30 f6 3141 3141 mov word [bp-014h], dx ; 89 56 ec … … 3145 3145 mov dx, word [bp-024h] ; 8b 56 dc 3146 3146 mov si, strict word 00020h ; be 20 00 3147 call 0a0 d0h ; e8 70 783147 call 0a0e0h ; e8 80 78 3148 3148 mov bx, dx ; 89 d3 3149 3149 mov ax, word [bp-022h] ; 8b 46 de … … 3179 3179 mov dx, word [bp-024h] ; 8b 56 dc 3180 3180 mov si, strict word 00008h ; be 08 00 3181 call 0a0 d0h ; e8 1c 783181 call 0a0e0h ; e8 2c 78 3182 3182 mov word [bp-00ch], ax ; 89 46 f4 3183 3183 mov word [bp-00eh], bx ; 89 5e f2 … … 3186 3186 mov word [bp-018h], dx ; 89 56 e8 3187 3187 mov si, strict word 00010h ; be 10 00 3188 call 0a0 d0h ; e8 07 783188 call 0a0e0h ; e8 17 78 3189 3189 mov word [bp-024h], dx ; 89 56 dc 3190 3190 mov ax, dx ; 89 d0 … … 5468 5468 mov dx, ss ; 8c d2 5469 5469 lea ax, [bp-026h] ; 8d 46 da 5470 call 0a 0f0h ; e8 39 635470 call 0a100h ; e8 49 63 5471 5471 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 5472 5472 mov ax, strict word 00011h ; b8 11 00 … … 5941 5941 xor dl, dl ; 30 d2 5942 5942 xor cx, cx ; 31 c9 5943 call 0a0 80h ; e8 63 5d5943 call 0a090h ; e8 73 5d 5944 5944 xor bx, bx ; 31 db 5945 5945 add ax, si ; 01 f0 … … 5947 5947 mov bx, di ; 89 fb 5948 5948 xor cx, cx ; 31 c9 5949 call 0a0 80h ; e8 56 5d5949 call 0a090h ; e8 66 5d 5950 5950 mov bx, ax ; 89 c3 5951 5951 mov ax, word [bp-010h] ; 8b 46 f0 … … 5982 5982 mov dx, ss ; 8c d2 5983 5983 lea ax, [bp-02eh] ; 8d 46 d2 5984 call 0a 0f0h ; e8 6f 5d5984 call 0a100h ; e8 7f 5d 5985 5985 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 5986 5986 mov ax, word [bp-014h] ; 8b 46 ec … … 6321 6321 mov dx, ss ; 8c d2 6322 6322 lea ax, [bp-030h] ; 8d 46 d0 6323 call 0a 0f0h ; e8 92 596323 call 0a100h ; e8 a2 59 6324 6324 mov word [bp-030h], strict word 00028h ; c7 46 d0 28 00 6325 6325 mov ax, word [bp-00eh] ; 8b 46 f2 … … 8254 8254 mov dx, word [bp+00ch] ; 8b 56 0c 8255 8255 mov si, strict word 00020h ; be 20 00 8256 call 0a0 d0h ; e8 a1 468256 call 0a0e0h ; e8 b1 46 8257 8257 test ax, ax ; 85 c0 8258 8258 jne short 05a3fh ; 75 0c … … 8292 8292 mov bx, strict word 0003fh ; bb 3f 00 8293 8293 xor cx, cx ; 31 c9 8294 call 0a0 80h ; e8 f8 458294 call 0a090h ; e8 08 46 8295 8295 mov bx, ax ; 89 c3 8296 8296 mov cx, dx ; 89 d1 8297 8297 mov ax, word [bp-004h] ; 8b 46 fc 8298 8298 mov dx, si ; 89 f2 8299 call 0a0 a0h ; e8 0c 468299 call 0a0b0h ; e8 1c 46 8300 8300 mov word [es:di+002h], ax ; 26 89 45 02 8301 8301 cmp ax, 00400h ; 3d 00 04 … … 8511 8511 mov bx, cx ; 89 cb 8512 8512 xor cx, cx ; 31 c9 8513 call 0a0 80h ; e8 cd 438513 call 0a090h ; e8 dd 43 8514 8514 xor bx, bx ; 31 db 8515 8515 add ax, word [bp-006h] ; 03 46 fa … … 8517 8517 mov bx, word [bp-008h] ; 8b 5e f8 8518 8518 xor cx, cx ; 31 c9 8519 call 0a0 80h ; e8 be 438519 call 0a090h ; e8 ce 43 8520 8520 xor bx, bx ; 31 db 8521 8521 add ax, word [bp-004h] ; 03 46 fc … … 8685 8685 mov bx, word [bp-006h] ; 8b 5e fa 8686 8686 xor cx, cx ; 31 c9 8687 call 0a0 80h ; e8 e7 418687 call 0a090h ; e8 f7 41 8688 8688 mov bx, word [bp-004h] ; 8b 5e fc 8689 8689 xor cx, cx ; 31 c9 8690 call 0a0 80h ; e8 df 418690 call 0a090h ; e8 ef 41 8691 8691 mov word [bp-00eh], ax ; 89 46 f2 8692 8692 mov word [bp-00ah], dx ; 89 56 f6 … … 8826 8826 xor bx, bx ; 31 db 8827 8827 mov si, strict word 00020h ; be 20 00 8828 call 0a0 e0h ; e8 a2 408828 call 0a0f0h ; e8 b2 40 8829 8829 mov si, ax ; 89 c6 8830 8830 mov word [bp-00ch], bx ; 89 5e f4 … … 8983 8983 mov bx, word [bp-00ch] ; 8b 5e f4 8984 8984 mov si, strict word 00020h ; be 20 00 8985 call 0a0 d0h ; e8 ae 3e8985 call 0a0e0h ; e8 be 3e 8986 8986 mov bx, di ; 89 fb 8987 8987 mov word [es:bx+014h], dx ; 26 89 57 14 … … 9339 9339 mov bx, strict word 0000fh ; bb 0f 00 9340 9340 xor cx, cx ; 31 c9 9341 call 0a0 a0h ; e8 eb 3a9341 call 0a0b0h ; e8 fb 3a 9342 9342 mov cx, ax ; 89 c1 9343 9343 mov bx, dx ; 89 d3 … … 12448 12448 mov dx, ss ; 8c d2 12449 12449 lea ax, [bp-046h] ; 8d 46 ba 12450 call 0a 0f0h ; e8 d0 1d12450 call 0a100h ; e8 e0 1d 12451 12451 mov byte [bp-046h], 09eh ; c6 46 ba 9e 12452 12452 mov byte [bp-045h], 010h ; c6 46 bb 10 … … 12579 12579 mov dx, word [bp-014h] ; 8b 56 ec 12580 12580 mov si, strict word 0000ch ; be 0c 00 12581 call 0a0 d0h ; e8 69 1c12581 call 0a0e0h ; e8 79 1c 12582 12582 mov word [bp-02ah], ax ; 89 46 d6 12583 12583 mov word [bp-016h], bx ; 89 5e ea … … 12601 12601 mov dx, word [bp-014h] ; 8b 56 ec 12602 12602 mov si, strict word 00006h ; be 06 00 12603 call 0a0 d0h ; e8 28 1c12603 call 0a0e0h ; e8 38 1c 12604 12604 mov si, word [bp-01eh] ; 8b 76 e2 12605 12605 add si, dx ; 01 d6 … … 12619 12619 mov dx, si ; 89 f2 12620 12620 mov si, strict word 00008h ; be 08 00 12621 call 0a0 d0h ; e8 f8 1b12621 call 0a0e0h ; e8 08 1c 12622 12622 mov word [bp-02eh], bx ; 89 5e d2 12623 12623 mov word [bp-030h], cx ; 89 4e d0 … … 12628 12628 mov dx, word [bp-036h] ; 8b 56 ca 12629 12629 mov si, strict word 00010h ; be 10 00 12630 call 0a0 d0h ; e8 dd 1b12630 call 0a0e0h ; e8 ed 1b 12631 12631 mov si, word [bp-032h] ; 8b 76 ce 12632 12632 add si, dx ; 01 d6 … … 12654 12654 mov dx, word [bp-014h] ; 8b 56 ec 12655 12655 mov si, strict word 0000bh ; be 0b 00 12656 call 0a0 d0h ; e8 91 1b12656 call 0a0e0h ; e8 a1 1b 12657 12657 mov si, dx ; 89 d6 12658 12658 mov dx, cx ; 89 ca … … 12864 12864 push bx ; 53 12865 12865 push cx ; 51 12866 call 09e a5h ; e8 0f 1712866 call 09eb5h ; e8 1f 17 12867 12867 mov bx, ax ; 89 c3 12868 12868 cmp ax, strict word 0ffffh ; 3d ff ff … … 12875 12875 mov cx, strict word 00007h ; b9 07 00 12876 12876 mov bx, strict word 00004h ; bb 04 00 12877 call 09f 6eh ; e8 bd 1712877 call 09f7eh ; e8 cd 17 12878 12878 lea sp, [bp-004h] ; 8d 66 fc 12879 12879 pop cx ; 59 … … 13159 13159 mov ax, 00080h ; b8 80 00 13160 13160 mov dx, word [bp-00ah] ; 8b 56 f6 13161 call 0a 0f0h ; e8 e9 1613161 call 0a100h ; e8 f9 16 13162 13162 mov es, [bp-00ah] ; 8e 46 f6 13163 13163 mov word [es:di+00080h], 08027h ; 26 c7 85 80 00 27 80 … … 13177 13177 mov dx, word [es:si] ; 26 8b 14 13178 13178 mov si, strict word 00008h ; be 08 00 13179 call 0a0 d0h ; e8 85 1613179 call 0a0e0h ; e8 95 16 13180 13180 mov es, [bp-00ah] ; 8e 46 f6 13181 13181 mov byte [es:di+00085h], dl ; 26 88 95 85 00 … … 13188 13188 mov dx, word [es:si] ; 26 8b 14 13189 13189 mov si, strict word 00010h ; be 10 00 13190 call 0a0 d0h ; e8 5f 1613190 call 0a0e0h ; e8 6f 16 13191 13191 mov es, [bp-00ah] ; 8e 46 f6 13192 13192 mov byte [es:di+00086h], dl ; 26 88 95 86 00 … … 13200 13200 mov dx, word [es:si] ; 26 8b 14 13201 13201 mov si, strict word 00018h ; be 18 00 13202 call 0a0 d0h ; e8 33 1613202 call 0a0e0h ; e8 43 16 13203 13203 mov es, [bp-00ah] ; 8e 46 f6 13204 13204 mov byte [es:di+00088h], dl ; 26 88 95 88 00 … … 13211 13211 mov dx, word [es:si] ; 26 8b 14 13212 13212 mov si, strict word 00020h ; be 20 00 13213 call 0a0 d0h ; e8 0d 1613213 call 0a0e0h ; e8 1d 16 13214 13214 mov es, [bp-00ah] ; 8e 46 f6 13215 13215 mov byte [es:di+00089h], dl ; 26 88 95 89 00 … … 13222 13222 mov dx, word [es:si] ; 26 8b 14 13223 13223 mov si, strict word 00028h ; be 28 00 13224 call 0a0 d0h ; e8 e7 1513224 call 0a0e0h ; e8 f7 15 13225 13225 mov es, [bp-00ah] ; 8e 46 f6 13226 13226 mov byte [es:di+0008ah], dl ; 26 88 95 8a 00 … … 13236 13236 mov bx, word [bp-010h] ; 8b 5e f0 13237 13237 xor cx, cx ; 31 c9 13238 call 0a0 80h ; e8 62 1513238 call 0a090h ; e8 72 15 13239 13239 push dx ; 52 13240 13240 push ax ; 50 … … 13246 13246 mov ax, 0026ah ; b8 6a 02 13247 13247 mov dx, word [bp-00ah] ; 8b 56 f6 13248 call 09f ceh ; e8 94 1413248 call 09fdeh ; e8 a4 14 13249 13249 mov es, [bp-00ah] ; 8e 46 f6 13250 13250 mov dx, word [es:di+0027eh] ; 26 8b 95 7e 02 … … 13309 13309 add ax, 0026ah ; 05 6a 02 13310 13310 mov dx, cx ; 89 ca 13311 call 0a0 45h ; e8 2e 1413311 call 0a055h ; e8 3e 14 13312 13312 mov es, cx ; 8e c1 13313 13313 mov al, byte [es:bx+003h] ; 26 8a 47 03 … … 13393 13393 mov ax, di ; 89 f8 13394 13394 mov dx, word [bp-00eh] ; 8b 56 f2 13395 call 0a 0f0h ; e8 29 1413395 call 0a100h ; e8 39 14 13396 13396 lea ax, [di+00080h] ; 8d 85 80 00 13397 13397 mov cx, strict word 00040h ; b9 40 00 13398 13398 xor bx, bx ; 31 db 13399 13399 mov dx, word [bp-00eh] ; 8b 56 f2 13400 call 0a 0f0h ; e8 1a 1413400 call 0a100h ; e8 2a 14 13401 13401 lea ax, [di+00200h] ; 8d 85 00 02 13402 13402 mov cx, strict word 00060h ; b9 60 00 13403 13403 xor bx, bx ; 31 db 13404 13404 mov dx, word [bp-00eh] ; 8b 56 f2 13405 call 0a 0f0h ; e8 0b 1413405 call 0a100h ; e8 1b 14 13406 13406 mov al, byte [bp-00ah] ; 8a 46 f6 13407 13407 xor ah, ah ; 30 e4 … … 13577 13577 mov ax, si ; 89 f0 13578 13578 mov dx, word [bp-00ah] ; 8b 56 f6 13579 call 0a 0f0h ; e8 a8 1213579 call 0a100h ; e8 b8 12 13580 13580 lea ax, [si+00080h] ; 8d 84 80 00 13581 13581 mov cx, strict word 00040h ; b9 40 00 13582 13582 xor bx, bx ; 31 db 13583 13583 mov dx, word [bp-00ah] ; 8b 56 f6 13584 call 0a 0f0h ; e8 99 1213584 call 0a100h ; e8 a9 12 13585 13585 lea di, [si+00200h] ; 8d bc 00 02 13586 13586 mov cx, strict word 00060h ; b9 60 00 … … 13588 13588 mov ax, di ; 89 f8 13589 13589 mov dx, word [bp-00ah] ; 8b 56 f6 13590 call 0a 0f0h ; e8 88 1213590 call 0a100h ; e8 98 12 13591 13591 mov bl, byte [bp-008h] ; 8a 5e f8 13592 13592 xor bh, bh ; 30 ff … … 13920 13920 mov dx, word [bp+008h] ; 8b 56 08 13921 13921 xor cx, cx ; 31 c9 13922 call 0a0 a0h ; e8 e7 0e13922 call 0a0b0h ; e8 f7 0e 13923 13923 mov word [es:si+00eh], ax ; 26 89 44 0e 13924 13924 xor di, di ; 31 ff … … 13947 13947 mov ax, 000c0h ; b8 c0 00 13948 13948 mov dx, word [bp-00ah] ; 8b 56 f6 13949 call 0a1 00h ; e8 f3 0e13949 call 0a110h ; e8 03 0f 13950 13950 mov es, [bp-008h] ; 8e 46 f8 13951 13951 mov word [es:si+018h], di ; 26 89 7c 18 … … 14003 14003 pop bp ; 5d 14004 14004 retn 0000ch ; c2 0c 00 14005 ahci_port_detect_device_: ; 0xf92b5 LB 0x4e3 14005 wait_ticks_device_init_: ; 0xf92b5 LB 0x5 14006 push bp ; 55 14007 mov bp, sp ; 89 e5 14008 pop bp ; 5d 14009 retn ; c3 14010 ahci_port_detect_device_: ; 0xf92ba LB 0x4ee 14006 14011 push bp ; 55 14007 14012 mov bp, sp ; 89 e5 … … 14009 14014 push si ; 56 14010 14015 push di ; 57 14011 sub sp, 0022 4h ; 81 ec 240214016 sub sp, 0022ch ; 81 ec 2c 02 14012 14017 mov si, ax ; 89 c6 14013 mov word [bp-010h], dx ; 89 56 f0 14014 mov byte [bp-00ch], bl ; 88 5e f4 14018 mov word [bp-018h], dx ; 89 56 e8 14019 mov byte [bp-00ah], bl ; 88 5e f6 14020 mov word [bp-01ch], strict word 00000h ; c7 46 e4 00 00 14015 14021 mov cl, bl ; 88 d9 14016 14022 xor ch, ch ; 30 ed 14017 14023 mov bx, cx ; 89 cb 14018 call 08db0h ; e8 e0fa14024 call 08db0h ; e8 d6 fa 14019 14025 mov dx, strict word 0000eh ; ba 0e 00 14020 14026 mov ax, strict word 00040h ; b8 40 00 14021 call 0166ch ; e8 938314022 mov word [bp-0 0eh], 00122h ; c7 46 f222 0114027 call 0166ch ; e8 89 83 14028 mov word [bp-010h], 00122h ; c7 46 f0 22 01 14023 14029 mov word [bp-016h], ax ; 89 46 ea 14024 sal cx, 007h ; c1 e1 0714025 mov word [bp-024h], cx ; 89 4e dc14026 14030 mov ax, cx ; 89 c8 14031 sal ax, 007h ; c1 e0 07 14027 14032 add ax, 0012ch ; 05 2c 01 14028 14033 cwd ; 99 14029 mov bx, ax ; 89 c314030 mov di, dx ; 89 d714031 mov es, [bp-01 0h] ; 8e 46 f014034 mov di, ax ; 89 c7 14035 mov bx, dx ; 89 d3 14036 mov es, [bp-018h] ; 8e 46 e8 14032 14037 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 14033 mov cx, di ; 89 f914038 mov cx, bx ; 89 d9 14034 14039 xchg cx, ax ; 91 14035 14040 sal eax, 010h ; 66 c1 e0 10 … … 14037 14042 ; mov ax, cx ; 8b c1 14038 14043 out DX, eax ; 66 ef 14039 mov es, [bp-01 0h] ; 8e 46 f014044 mov es, [bp-018h] ; 8e 46 e8 14040 14045 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 14041 14046 add dx, strict byte 00004h ; 83 c2 04 … … 14047 14052 ; mov ax, cx ; 8b c1 14048 14053 out DX, eax ; 66 ef 14049 mov es, [bp-01 0h] ; 8e 46 f014054 mov es, [bp-018h] ; 8e 46 e8 14050 14055 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 14051 mov ax, bx ; 89 d814052 mov cx, di ; 89 f914056 mov ax, di ; 89 f8 14057 mov cx, bx ; 89 d9 14053 14058 xchg cx, ax ; 91 14054 14059 sal eax, 010h ; 66 c1 e0 10 … … 14056 14061 ; mov ax, cx ; 8b c1 14057 14062 out DX, eax ; 66 ef 14058 mov es, [bp-01 0h] ; 8e 46 f014063 mov es, [bp-018h] ; 8e 46 e8 14059 14064 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 14060 14065 add dx, strict byte 00004h ; 83 c2 04 … … 14066 14071 ; mov ax, cx ; 8b c1 14067 14072 out DX, eax ; 66 ef 14068 mov ax, word [bp-024h] ; 8b 46 dc 14073 mov di, strict word 0006ch ; bf 6c 00 14074 mov ax, strict word 00040h ; b8 40 00 14075 mov word [bp-012h], ax ; 89 46 ee 14076 mov es, ax ; 8e c0 14077 mov ax, word [es:di] ; 26 8b 05 14078 add ax, strict word 00003h ; 05 03 00 14079 mov word [bp-01ah], ax ; 89 46 e6 14080 mov ax, word [es:di+002h] ; 26 8b 45 02 14081 adc ax, strict word 00000h ; 15 00 00 14082 mov word [bp-024h], ax ; 89 46 dc 14083 mov es, [bp-012h] ; 8e 46 ee 14084 mov ax, word [es:di+002h] ; 26 8b 45 02 14085 cmp ax, word [bp-024h] ; 3b 46 dc 14086 jc short 0938ch ; 72 11 14087 mov ax, word [es:di+002h] ; 26 8b 45 02 14088 cmp ax, word [bp-024h] ; 3b 46 dc 14089 jne short 093d8h ; 75 54 14090 mov ax, word [es:di] ; 26 8b 05 14091 cmp ax, word [bp-01ah] ; 3b 46 e6 14092 jnc short 093d8h ; 73 4c 14093 mov al, byte [bp-00ah] ; 8a 46 f6 14094 xor ah, ah ; 30 e4 14095 sal ax, 007h ; c1 e0 07 14069 14096 add ax, 00128h ; 05 28 01 14070 14097 cwd ; 99 14071 mov es, [bp-01 0h] ; 8e 46 f014098 mov es, [bp-018h] ; 8e 46 e8 14072 14099 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 14073 14100 mov cx, dx ; 89 d1 … … 14078 14105 ; mov ax, cx ; 8b c1 14079 14106 out DX, eax ; 66 ef 14080 mov es, [bp-01 0h] ; 8e 46 f014107 mov es, [bp-018h] ; 8e 46 e8 14081 14108 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 14082 14109 add dx, strict byte 00004h ; 83 c2 04 … … 14086 14113 shr eax, 010h ; 66 c1 e8 10 14087 14114 xchg dx, ax ; 92 14115 mov word [bp-020h], ax ; 89 46 e0 14116 mov word [bp-01eh], dx ; 89 56 e2 14088 14117 push strict byte 00000h ; 6a 00 14089 14118 mov bx, strict word 0000fh ; bb 0f 00 14090 14119 xor cx, cx ; 31 c9 14091 call 08839h ; e8 b5 f4 14092 test ax, ax ; 85 c0 14093 jne short 0938bh ; 75 03 14094 jmp near 09790h ; e9 05 04 14095 mov al, byte [bp-00ch] ; 8a 46 f4 14096 xor ah, ah ; 30 e4 14097 sal ax, 007h ; c1 e0 07 14098 mov word [bp-01ch], ax ; 89 46 e4 14099 add ax, 00128h ; 05 28 01 14120 call 08839h ; e8 68 f4 14121 cmp ax, strict word 00003h ; 3d 03 00 14122 jne short 0936fh ; 75 99 14123 jmp short 093e1h ; eb 09 14124 cmp word [bp-01ch], strict byte 00000h ; 83 7e e4 00 14125 jne short 093e1h ; 75 03 14126 jmp near 097a0h ; e9 bf 03 14127 push strict byte 00000h ; 6a 00 14128 mov bx, strict word 0000fh ; bb 0f 00 14129 xor cx, cx ; 31 c9 14130 mov ax, word [bp-020h] ; 8b 46 e0 14131 mov dx, word [bp-01eh] ; 8b 56 e2 14132 call 08839h ; e8 48 f4 14133 cmp ax, strict word 00003h ; 3d 03 00 14134 jne short 093deh ; 75 e8 14135 mov al, byte [bp-00ah] ; 8a 46 f6 14136 xor ah, ah ; 30 e4 14137 mov di, ax ; 89 c7 14138 sal di, 007h ; c1 e7 07 14139 lea ax, [di+00130h] ; 8d 85 30 01 14100 14140 cwd ; 99 14101 mov es, [bp-01 0h] ; 8e 46 f014141 mov es, [bp-018h] ; 8e 46 e8 14102 14142 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 14103 14143 mov cx, dx ; 89 d1 … … 14108 14148 ; mov ax, cx ; 8b c1 14109 14149 out DX, eax ; 66 ef 14110 mov es, [bp-010h] ; 8e 46 f0 14111 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 14112 add dx, strict byte 00004h ; 83 c2 04 14113 in eax, DX ; 66 ed 14114 db 08bh, 0d0h 14115 ; mov dx, ax ; 8b d0 14116 shr eax, 010h ; 66 c1 e8 10 14117 xchg dx, ax ; 92 14118 mov word [bp-01ah], ax ; 89 46 e6 14119 mov di, dx ; 89 d7 14120 push strict byte 00000h ; 6a 00 14121 mov bx, strict word 0000fh ; bb 0f 00 14122 xor cx, cx ; 31 c9 14123 call 08839h ; e8 67 f4 14124 cmp ax, strict word 00001h ; 3d 01 00 14125 je short 0938bh ; 74 b4 14126 push strict byte 00000h ; 6a 00 14127 mov bx, strict word 0000fh ; bb 0f 00 14128 xor cx, cx ; 31 c9 14129 mov ax, word [bp-01ah] ; 8b 46 e6 14130 mov dx, di ; 89 fa 14131 call 08839h ; e8 53 f4 14132 cmp ax, strict word 00003h ; 3d 03 00 14133 jne short 09388h ; 75 9d 14134 mov ax, word [bp-01ch] ; 8b 46 e4 14135 add ax, 00130h ; 05 30 01 14136 cwd ; 99 14137 mov es, [bp-010h] ; 8e 46 f0 14138 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 14139 mov cx, dx ; 89 d1 14140 mov dx, bx ; 89 da 14141 xchg cx, ax ; 91 14142 sal eax, 010h ; 66 c1 e0 10 14143 db 08bh, 0c1h 14144 ; mov ax, cx ; 8b c1 14145 out DX, eax ; 66 ef 14146 mov es, [bp-010h] ; 8e 46 f0 14150 mov es, [bp-018h] ; 8e 46 e8 14147 14151 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 14148 14152 add dx, strict byte 00004h ; 83 c2 04 … … 14155 14159 out DX, eax ; 66 ef 14156 14160 mov es, [bp-016h] ; 8e 46 ea 14157 mov bx, word [bp-0 0eh] ; 8b 5e f214161 mov bx, word [bp-010h] ; 8b 5e f0 14158 14162 mov al, byte [es:bx+00231h] ; 26 8a 87 31 02 14159 14163 mov byte [bp-008h], al ; 88 46 f8 14160 14164 cmp AL, strict byte 004h ; 3c 04 14161 jc short 09435h ; 72 03 14162 jmp near 09790h ; e9 5b 03 14163 mov ax, word [bp-01ch] ; 8b 46 e4 14164 add ax, 00118h ; 05 18 01 14165 mov es, [bp-010h] ; 8e 46 f0 14165 jnc short 093deh ; 73 99 14166 lea ax, [di+00118h] ; 8d 85 18 01 14167 mov es, [bp-018h] ; 8e 46 e8 14166 14168 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 14167 14169 xor cx, cx ; 31 c9 … … 14187 14189 ; mov ax, cx ; 8b c1 14188 14190 out DX, eax ; 66 ef 14189 mov ax, word [bp-01ch] ; 8b 46 e4 14190 add ax, 00124h ; 05 24 01 14191 lea ax, [di+00124h] ; 8d 85 24 01 14191 14192 cwd ; 99 14192 mov es, [bp-01 0h] ; 8e 46 f014193 mov es, [bp-018h] ; 8e 46 e8 14193 14194 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 14194 14195 mov cx, dx ; 89 d1 … … 14199 14200 ; mov ax, cx ; 8b c1 14200 14201 out DX, eax ; 66 ef 14201 mov es, [bp-01 0h] ; 8e 46 f014202 mov es, [bp-018h] ; 8e 46 e8 14202 14203 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 14203 14204 add dx, strict byte 00004h ; 83 c2 04 … … 14207 14208 shr eax, 010h ; 66 c1 e8 10 14208 14209 xchg dx, ax ; 92 14209 mov cl, byte [bp-008h] ; 8a 4e f8 14210 add cl, 00ch ; 80 c1 0c 14211 test dx, dx ; 85 d2 14212 jne short 094fbh ; 75 54 14210 mov bx, dx ; 89 d3 14211 mov dl, byte [bp-008h] ; 8a 56 f8 14212 add dl, 00ch ; 80 c2 0c 14213 mov byte [bp-00eh], dl ; 88 56 f2 14214 test bx, bx ; 85 db 14215 jne short 0950fh ; 75 57 14213 14216 cmp ax, 00101h ; 3d 01 01 14214 jne short 09 4fbh ; 75 4f14217 jne short 0950fh ; 75 52 14215 14218 mov es, [bp-016h] ; 8e 46 ea 14216 mov bx, word [bp-0 0eh] ; 8b 5e f214219 mov bx, word [bp-010h] ; 8b 5e f0 14217 14220 mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00 14218 14221 mov word [es:bx+004h], strict word 00000h ; 26 c7 47 04 00 00 14219 14222 mov word [es:bx+002h], strict word 00000h ; 26 c7 47 02 00 00 14220 14223 mov word [es:bx], strict word 00000h ; 26 c7 07 00 00 14221 lea dx, [bp-002 2ah] ; 8d 96 d6fd14224 lea dx, [bp-00232h] ; 8d 96 ce fd 14222 14225 mov word [es:bx+008h], dx ; 26 89 57 08 14223 14226 mov [es:bx+00ah], ss ; 26 8c 57 0a … … 14225 14228 mov word [es:bx+010h], 00200h ; 26 c7 47 10 00 02 14226 14229 mov bx, 000ech ; bb ec 00 14227 mov ax, word [bp-0 0eh] ; 8b 46 f214230 mov ax, word [bp-010h] ; 8b 46 f0 14228 14231 mov dx, es ; 8c c2 14229 call 089c9h ; e8 dd f4 14230 mov byte [bp-00ah], cl ; 88 4e f6 14231 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14232 je short 094feh ; 74 08 14232 call 089c9h ; e8 cc f4 14233 mov al, byte [bp-00eh] ; 8a 46 f2 14234 mov byte [bp-00ch], al ; 88 46 f4 14235 test byte [bp-00232h], 080h ; f6 86 ce fd 80 14236 je short 09512h ; 74 08 14233 14237 mov ax, strict word 00001h ; b8 01 00 14234 jmp short 095 00h ; eb 0514235 jmp near 096 ceh ; e9 d00114238 jmp short 09514h ; eb 05 14239 jmp near 096dbh ; e9 c9 01 14236 14240 xor ax, ax ; 31 c0 14237 14241 mov dl, al ; 88 c2 14238 mov ax, word [bp-00228h] ; 8b 86 d8 fd 14239 mov word [bp-018h], ax ; 89 46 e8 14240 mov ax, word [bp-00224h] ; 8b 86 dc fd 14242 mov ax, word [bp-00230h] ; 8b 86 d0 fd 14243 mov word [bp-02ch], ax ; 89 46 d4 14244 mov ax, word [bp-0022ch] ; 8b 86 d4 fd 14245 mov word [bp-026h], ax ; 89 46 da 14246 mov ax, word [bp-00226h] ; 8b 86 da fd 14247 mov word [bp-028h], ax ; 89 46 d8 14248 mov si, word [bp-001bah] ; 8b b6 46 fe 14249 mov di, word [bp-001b8h] ; 8b be 48 fe 14250 xor ax, ax ; 31 c0 14251 mov word [bp-014h], ax ; 89 46 ec 14241 14252 mov word [bp-022h], ax ; 89 46 de 14242 mov ax, word [bp-0021eh] ; 8b 86 e2 fd 14243 mov word [bp-020h], ax ; 89 46 e0 14244 mov di, word [bp-001b2h] ; 8b be 4e fe 14245 mov ax, word [bp-001b0h] ; 8b 86 50 fe 14253 cmp di, 00fffh ; 81 ff ff 0f 14254 jne short 0955ch ; 75 1b 14255 cmp si, strict byte 0ffffh ; 83 fe ff 14256 jne short 0955ch ; 75 16 14257 mov ax, word [bp-00164h] ; 8b 86 9c fe 14258 mov word [bp-022h], ax ; 89 46 de 14259 mov ax, word [bp-00166h] ; 8b 86 9a fe 14246 14260 mov word [bp-014h], ax ; 89 46 ec 14247 xor ax, ax ; 31 c0 14248 mov word [bp-012h], ax ; 89 46 ee 14249 mov word [bp-01eh], ax ; 89 46 e2 14250 cmp word [bp-014h], 00fffh ; 81 7e ec ff 0f 14251 jne short 0954fh ; 75 1e 14252 cmp di, strict byte 0ffffh ; 83 ff ff 14253 jne short 0954fh ; 75 19 14254 mov ax, word [bp-0015ch] ; 8b 86 a4 fe 14255 mov word [bp-01eh], ax ; 89 46 e2 14256 mov ax, word [bp-0015eh] ; 8b 86 a2 fe 14257 mov word [bp-012h], ax ; 89 46 ee 14258 mov ax, word [bp-00160h] ; 8b 86 a0 fe 14259 mov word [bp-014h], ax ; 89 46 ec 14260 mov di, word [bp-00162h] ; 8b be 9e fe 14261 mov di, word [bp-00168h] ; 8b be 98 fe 14262 mov si, word [bp-0016ah] ; 8b b6 96 fe 14261 14263 mov bl, byte [bp-008h] ; 8a 5e f8 14262 14264 xor bh, bh ; 30 ff 14263 14265 mov es, [bp-016h] ; 8e 46 ea 14264 add bx, word [bp-00eh] ; 03 5e f2 14266 add bx, word [bp-010h] ; 03 5e f0 14267 mov al, byte [bp-00ah] ; 8a 46 f6 14268 mov byte [es:bx+0022dh], al ; 26 88 87 2d 02 14265 14269 mov al, byte [bp-00ch] ; 8a 46 f4 14266 mov byte [es:bx+0022dh], al ; 26 88 87 2d 0214267 mov al, byte [bp-00ah] ; 8a 46 f614268 14270 xor ah, ah ; 30 e4 14269 14271 imul ax, ax, strict byte 0001ch ; 6b c0 1c 14270 mov si, word [bp-00eh] ; 8b 76 f2 14271 add si, ax ; 01 c6 14272 mov word [es:si+022h], 0ff05h ; 26 c7 44 22 05 ff 14273 mov byte [es:si+024h], dl ; 26 88 54 24 14274 mov byte [es:si+025h], 000h ; 26 c6 44 25 00 14275 mov word [es:si+028h], 00200h ; 26 c7 44 28 00 02 14276 mov byte [es:si+027h], 001h ; 26 c6 44 27 01 14277 mov ax, word [bp-01eh] ; 8b 46 e2 14278 mov word [es:si+03ch], ax ; 26 89 44 3c 14279 mov ax, word [bp-012h] ; 8b 46 ee 14280 mov word [es:si+03ah], ax ; 26 89 44 3a 14272 mov bx, word [bp-010h] ; 8b 5e f0 14273 add bx, ax ; 01 c3 14274 mov word [es:bx+022h], 0ff05h ; 26 c7 47 22 05 ff 14275 mov byte [es:bx+024h], dl ; 26 88 57 24 14276 mov byte [es:bx+025h], 000h ; 26 c6 47 25 00 14277 mov word [es:bx+028h], 00200h ; 26 c7 47 28 00 02 14278 mov byte [es:bx+027h], 001h ; 26 c6 47 27 01 14279 mov ax, word [bp-022h] ; 8b 46 de 14280 mov word [es:bx+03ch], ax ; 26 89 47 3c 14281 14281 mov ax, word [bp-014h] ; 8b 46 ec 14282 mov word [es:si+038h], ax ; 26 89 44 38 14283 mov word [es:si+036h], di ; 26 89 7c 36 14284 mov ax, word [bp-022h] ; 8b 46 de 14285 mov word [es:si+030h], ax ; 26 89 44 30 14286 mov ax, word [bp-018h] ; 8b 46 e8 14287 mov word [es:si+032h], ax ; 26 89 44 32 14288 mov ax, word [bp-020h] ; 8b 46 e0 14289 mov word [es:si+034h], ax ; 26 89 44 34 14282 mov word [es:bx+03ah], ax ; 26 89 47 3a 14283 mov word [es:bx+038h], di ; 26 89 7f 38 14284 mov word [es:bx+036h], si ; 26 89 77 36 14285 mov ax, word [bp-026h] ; 8b 46 da 14286 mov word [es:bx+030h], ax ; 26 89 47 30 14287 mov ax, word [bp-02ch] ; 8b 46 d4 14288 mov word [es:bx+032h], ax ; 26 89 47 32 14289 mov ax, word [bp-028h] ; 8b 46 d8 14290 mov word [es:bx+034h], ax ; 26 89 47 34 14290 14291 mov al, byte [bp-008h] ; 8a 46 f8 14291 14292 cmp AL, strict byte 001h ; 3c 01 14292 jc short 095 cah ; 72 0c14293 jbe short 095d 2h ; 76 1214293 jc short 095d4h ; 72 0c 14294 jbe short 095dch ; 76 12 14294 14295 cmp AL, strict byte 003h ; 3c 03 14295 je short 095 dah ; 74 1614296 je short 095e4h ; 74 16 14296 14297 cmp AL, strict byte 002h ; 3c 02 14297 je short 095 d6h ; 74 0e14298 jmp short 096 22h ; eb 5814298 je short 095e0h ; 74 0e 14299 jmp short 09630h ; eb 5c 14299 14300 test al, al ; 84 c0 14300 jne short 096 22h ; 75 5414301 mov DL, strict byte 040h ; b24014302 jmp short 095 dch ; eb 0a14303 mov DL, strict byte 048h ; b24814304 jmp short 095 dch ; eb 0614305 mov DL, strict byte 050h ; b25014306 jmp short 095 dch ; eb 0214307 mov DL, strict byte 058h ; b25814308 mov bl, dl ; 88 d314309 add bl, 007h ; 80 c30714310 xor bh, bh ; 30 ff14311 mov ax, bx ; 89 d814312 call 016ach ; e8 c48014301 jne short 09630h ; 75 58 14302 mov BL, strict byte 040h ; b3 40 14303 jmp short 095e6h ; eb 0a 14304 mov BL, strict byte 048h ; b3 48 14305 jmp short 095e6h ; eb 06 14306 mov BL, strict byte 050h ; b3 50 14307 jmp short 095e6h ; eb 02 14308 mov BL, strict byte 058h ; b3 58 14309 mov dl, bl ; 88 da 14310 add dl, 007h ; 80 c2 07 14311 xor dh, dh ; 30 f6 14312 mov ax, dx ; 89 d0 14313 call 016ach ; e8 ba 80 14313 14314 test al, al ; 84 c0 14314 je short 096 22h ; 74 3614315 mov al, dl ; 88 d014315 je short 09630h ; 74 3a 14316 mov al, bl ; 88 d8 14316 14317 db 0feh, 0c0h 14317 14318 ; inc al ; fe c0 14318 14319 xor ah, ah ; 30 e4 14319 call 016ach ; e8 b7 80 14320 xor ah, ah ; 30 e4 14321 mov cx, ax ; 89 c1 14322 sal cx, 008h ; c1 e1 08 14323 mov al, dl ; 88 d0 14324 call 016ach ; e8 ab 80 14325 xor ah, ah ; 30 e4 14326 add ax, cx ; 01 c8 14327 mov word [bp-028h], ax ; 89 46 d8 14328 mov al, dl ; 88 d0 14320 call 016ach ; e8 ad 80 14321 xor ah, ah ; 30 e4 14322 sal ax, 008h ; c1 e0 08 14323 mov word [bp-02ah], ax ; 89 46 d6 14324 mov al, bl ; 88 d8 14325 xor ah, ah ; 30 e4 14326 call 016ach ; e8 9e 80 14327 xor ah, ah ; 30 e4 14328 mov cx, word [bp-02ah] ; 8b 4e d6 14329 add cx, ax ; 01 c1 14330 mov word [bp-030h], cx ; 89 4e d0 14331 mov al, bl ; 88 d8 14329 14332 add AL, strict byte 002h ; 04 02 14330 xor ah, ah ; 30 e4 14331 call 016ach ; e8 9b 80 14332 xor ah, ah ; 30 e4 14333 mov word [bp-02ah], ax ; 89 46 d6 14334 mov ax, bx ; 89 d8 14335 call 016ach ; e8 91 80 14336 xor ah, ah ; 30 e4 14337 mov word [bp-026h], ax ; 89 46 da 14338 jmp short 09634h ; eb 12 14339 push word [bp-01eh] ; ff 76 e2 14340 push word [bp-012h] ; ff 76 ee 14333 call 016ach ; e8 8d 80 14334 xor ah, ah ; 30 e4 14335 mov word [bp-032h], ax ; 89 46 ce 14336 mov ax, dx ; 89 d0 14337 call 016ach ; e8 83 80 14338 xor ah, ah ; 30 e4 14339 mov word [bp-02eh], ax ; 89 46 d2 14340 jmp short 09640h ; eb 10 14341 push word [bp-022h] ; ff 76 de 14341 14342 push word [bp-014h] ; ff 76 ec 14342 14343 push di ; 57 14344 push si ; 56 14343 14345 mov dx, ss ; 8c d2 14344 lea ax, [bp-0 2ah] ; 8d 46 d614345 call 05a02h ; e8 c ec314346 lea ax, [bp-032h] ; 8d 46 ce 14347 call 05a02h ; e8 c2 c3 14346 14348 mov bx, 00da6h ; bb a6 0d 14347 14349 mov cx, ds ; 8c d9 14348 14350 mov ax, strict word 00004h ; b8 04 00 14349 call 01923h ; e8 e4 82 14350 push word [bp-01eh] ; ff 76 e2 14351 push word [bp-012h] ; ff 76 ee 14351 call 01923h ; e8 d8 82 14352 push word [bp-022h] ; ff 76 de 14352 14353 push word [bp-014h] ; ff 76 ec 14353 14354 push di ; 57 14354 mov ax, word [bp-026h] ; 8b 46 da 14355 push si ; 56 14356 mov ax, word [bp-02eh] ; 8b 46 d2 14355 14357 push ax ; 50 14356 mov ax, word [bp-0 2ah] ; 8b 46 d614358 mov ax, word [bp-032h] ; 8b 46 ce 14357 14359 push ax ; 50 14358 mov ax, word [bp-0 28h] ; 8b 46 d814360 mov ax, word [bp-030h] ; 8b 46 d0 14359 14361 push ax ; 50 14360 push word [bp-02 0h] ; ff 76 e014361 push word [bp-02 2h] ; ff 76 de14362 push word [bp-0 18h] ; ff 76 e814363 mov al, byte [bp-00 ch] ; 8a 46 f414362 push word [bp-028h] ; ff 76 d8 14363 push word [bp-026h] ; ff 76 da 14364 push word [bp-02ch] ; ff 76 d4 14365 mov al, byte [bp-00ah] ; 8a 46 f6 14364 14366 xor ah, ah ; 30 e4 14365 14367 push ax ; 50 … … 14368 14370 push 00cd6h ; 68 d6 0c 14369 14371 push strict byte 00004h ; 6a 04 14370 call 01966h ; e8 f68214372 call 01966h ; e8 ec 82 14371 14373 add sp, strict byte 0001ch ; 83 c4 1c 14372 mov al, byte [bp-00 ah] ; 8a 46 f614374 mov al, byte [bp-00ch] ; 8a 46 f4 14373 14375 xor ah, ah ; 30 e4 14374 14376 imul ax, ax, strict byte 0001ch ; 6b c0 1c 14375 mov di, word [bp-0 0eh] ; 8b 7e f214377 mov di, word [bp-010h] ; 8b 7e f0 14376 14378 add di, ax ; 01 c7 14377 14379 mov es, [bp-016h] ; 8e 46 ea … … 14380 14382 push SS ; 16 14381 14383 pop DS ; 1f 14382 lea si, [bp-0 2ah] ; 8d 76 d614384 lea si, [bp-032h] ; 8d 76 ce 14383 14385 movsw ; a5 14384 14386 movsw ; a5 14385 14387 movsw ; a5 14386 14388 pop DS ; 1f 14387 mov bx, word [bp-00eh] ; 8b 5e f2 14388 mov dl, byte [es:bx+001e2h] ; 26 8a 97 e2 01 14389 mov al, byte [bp-008h] ; 8a 46 f8 14390 add AL, strict byte 00ch ; 04 0c 14391 mov bl, dl ; 88 d3 14392 xor bh, bh ; 30 ff 14393 add bx, word [bp-00eh] ; 03 5e f2 14394 mov byte [es:bx+001e3h], al ; 26 88 87 e3 01 14395 db 0feh, 0c2h 14396 ; inc dl ; fe c2 14397 mov bx, word [bp-00eh] ; 8b 5e f2 14398 mov byte [es:bx+001e2h], dl ; 26 88 97 e2 01 14389 mov bx, word [bp-010h] ; 8b 5e f0 14390 mov bl, byte [es:bx+001e2h] ; 26 8a 9f e2 01 14391 mov dl, byte [bp-008h] ; 8a 56 f8 14392 add dl, 00ch ; 80 c2 0c 14393 mov al, bl ; 88 d8 14394 xor ah, ah ; 30 e4 14395 mov si, word [bp-010h] ; 8b 76 f0 14396 add si, ax ; 01 c6 14397 mov byte [es:si+001e3h], dl ; 26 88 94 e3 01 14398 db 0feh, 0c3h 14399 ; inc bl ; fe c3 14400 mov si, word [bp-010h] ; 8b 76 f0 14401 mov byte [es:si+001e2h], bl ; 26 88 9c e2 01 14399 14402 mov dx, strict word 00075h ; ba 75 00 14400 14403 mov ax, strict word 00040h ; b8 40 00 14401 call 01650h ; e8 947f14404 call 01650h ; e8 87 7f 14402 14405 mov bl, al ; 88 c3 14403 14406 db 0feh, 0c3h … … 14406 14409 mov dx, strict word 00075h ; ba 75 00 14407 14410 mov ax, strict word 00040h ; b8 40 00 14408 call 0165eh ; e8 937f14409 jmp near 097 7fh ; e9 b10014410 cmp dx, 0eb14h ; 81 fa14 eb14411 jne short 097 28h ; 75 5414411 call 0165eh ; e8 86 7f 14412 jmp near 0978fh ; e9 b4 00 14413 cmp bx, 0eb14h ; 81 fb 14 eb 14414 jne short 09738h ; 75 57 14412 14415 cmp ax, 00101h ; 3d 01 01 14413 jne short 097 28h ; 75 4f14416 jne short 09738h ; 75 52 14414 14417 mov es, [bp-016h] ; 8e 46 ea 14415 mov bx, word [bp-0 0eh] ; 8b 5e f214418 mov bx, word [bp-010h] ; 8b 5e f0 14416 14419 mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00 14417 14420 mov word [es:bx+004h], strict word 00000h ; 26 c7 47 04 00 00 14418 14421 mov word [es:bx+002h], strict word 00000h ; 26 c7 47 02 00 00 14419 14422 mov word [es:bx], strict word 00000h ; 26 c7 07 00 00 14420 lea dx, [bp-002 2ah] ; 8d 96 d6fd14423 lea dx, [bp-00232h] ; 8d 96 ce fd 14421 14424 mov word [es:bx+008h], dx ; 26 89 57 08 14422 14425 mov [es:bx+00ah], ss ; 26 8c 57 0a … … 14424 14427 mov word [es:bx+010h], 00200h ; 26 c7 47 10 00 02 14425 14428 mov bx, 000a1h ; bb a1 00 14426 mov ax, word [bp-0 0eh] ; 8b 46 f214429 mov ax, word [bp-010h] ; 8b 46 f0 14427 14430 mov dx, es ; 8c c2 14428 call 089c9h ; e8 b0 f2 14429 mov byte [bp-00ah], cl ; 88 4e f6 14430 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14431 je short 0972ah ; 74 07 14431 call 089c9h ; e8 a3 f2 14432 mov al, byte [bp-00eh] ; 8a 46 f2 14433 mov byte [bp-00ch], al ; 88 46 f4 14434 test byte [bp-00232h], 080h ; f6 86 ce fd 80 14435 je short 0973ah ; 74 07 14432 14436 mov dx, strict word 00001h ; ba 01 00 14433 jmp short 097 2ch ; eb 0414434 jmp short 097 7fh ; eb 5514437 jmp short 0973ch ; eb 04 14438 jmp short 0978fh ; eb 55 14435 14439 xor dx, dx ; 31 d2 14436 14440 mov bl, byte [bp-008h] ; 8a 5e f8 14437 14441 xor bh, bh ; 30 ff 14438 14442 mov es, [bp-016h] ; 8e 46 ea 14439 add bx, word [bp-00eh] ; 03 5e f2 14443 add bx, word [bp-010h] ; 03 5e f0 14444 mov al, byte [bp-00ah] ; 8a 46 f6 14445 mov byte [es:bx+0022dh], al ; 26 88 87 2d 02 14440 14446 mov al, byte [bp-00ch] ; 8a 46 f4 14441 mov byte [es:bx+0022dh], al ; 26 88 87 2d 0214442 mov al, byte [bp-00ah] ; 8a 46 f614443 14447 xor ah, ah ; 30 e4 14444 14448 imul ax, ax, strict byte 0001ch ; 6b c0 1c 14445 mov si, word [bp-00eh] ; 8b 76 f214446 add si, ax ; 01 c614447 mov word [es: si+022h], 00505h ; 26 c7 4422 05 0514448 mov byte [es: si+024h], dl ; 26 88 542414449 mov word [es: si+028h], 00800h ; 26 c7 4428 00 0814450 mov bx, word [bp-0 0eh] ; 8b 5e f214449 mov bx, word [bp-010h] ; 8b 5e f0 14450 add bx, ax ; 01 c3 14451 mov word [es:bx+022h], 00505h ; 26 c7 47 22 05 05 14452 mov byte [es:bx+024h], dl ; 26 88 57 24 14453 mov word [es:bx+028h], 00800h ; 26 c7 47 28 00 08 14454 mov bx, word [bp-010h] ; 8b 5e f0 14451 14455 mov dl, byte [es:bx+001f3h] ; 26 8a 97 f3 01 14452 14456 mov al, byte [bp-008h] ; 8a 46 f8 … … 14454 14458 mov bl, dl ; 88 d3 14455 14459 xor bh, bh ; 30 ff 14456 add bx, word [bp-0 0eh] ; 03 5e f214460 add bx, word [bp-010h] ; 03 5e f0 14457 14461 mov byte [es:bx+001f4h], al ; 26 88 87 f4 01 14458 14462 db 0feh, 0c2h 14459 14463 ; inc dl ; fe c2 14460 mov bx, word [bp-0 0eh] ; 8b 5e f214464 mov bx, word [bp-010h] ; 8b 5e f0 14461 14465 mov byte [es:bx+001f3h], dl ; 26 88 97 f3 01 14462 14466 inc byte [bp-008h] ; fe 46 f8 14463 14467 mov al, byte [bp-008h] ; 8a 46 f8 14464 14468 mov es, [bp-016h] ; 8e 46 ea 14465 mov bx, word [bp-0 0eh] ; 8b 5e f214469 mov bx, word [bp-010h] ; 8b 5e f0 14466 14470 mov byte [es:bx+00231h], al ; 26 88 87 31 02 14467 14471 lea sp, [bp-006h] ; 8d 66 fa … … 14471 14475 pop bp ; 5d 14472 14476 retn ; c3 14473 ahci_mem_alloc_: ; 0xf97 98 LB 0x4314477 ahci_mem_alloc_: ; 0xf97a8 LB 0x43 14474 14478 push bp ; 55 14475 14479 mov bp, sp ; 89 e5 … … 14481 14485 mov dx, 00413h ; ba 13 04 14482 14486 xor ax, ax ; 31 c0 14483 call 0166ch ; e8 c4 7e14487 call 0166ch ; e8 b4 7e 14484 14488 test ax, ax ; 85 c0 14485 je short 097 d1h ; 74 2514489 je short 097e1h ; 74 25 14486 14490 dec ax ; 48 14487 14491 mov bx, ax ; 89 c3 … … 14490 14494 sal ax, 1 ; d1 e0 14491 14495 rcl dx, 1 ; d1 d2 14492 loop 097 b4h ; e2 fa14496 loop 097c4h ; e2 fa 14493 14497 mov si, ax ; 89 c6 14494 14498 mov di, dx ; 89 d7 … … 14496 14500 shr di, 1 ; d1 ef 14497 14501 rcr si, 1 ; d1 de 14498 loop 097 c1h ; e2 fa14502 loop 097d1h ; e2 fa 14499 14503 mov dx, 00413h ; ba 13 04 14500 14504 xor ax, ax ; 31 c0 14501 call 0167ah ; e8 ab 7e14505 call 0167ah ; e8 9b 7e 14502 14506 mov ax, si ; 89 f0 14503 14507 lea sp, [bp-00ah] ; 8d 66 f6 … … 14509 14513 pop bp ; 5d 14510 14514 retn ; c3 14511 ahci_hba_init_: ; 0xf97 db LB 0x16d14515 ahci_hba_init_: ; 0xf97eb LB 0x16d 14512 14516 push bp ; 55 14513 14517 mov bp, sp ; 89 e5 … … 14521 14525 mov dx, strict word 0000eh ; ba 0e 00 14522 14526 mov ax, strict word 00040h ; b8 40 00 14523 call 0166ch ; e8 7b 7e14527 call 0166ch ; e8 6b 7e 14524 14528 mov bx, 00122h ; bb 22 01 14525 14529 mov di, ax ; 89 c7 … … 14538 14542 shr eax, 010h ; 66 c1 e8 10 14539 14543 xchg dx, ax ; 92 14540 call 097 98h ; e8 83 ff14544 call 097a8h ; e8 83 ff 14541 14545 mov word [bp-010h], ax ; 89 46 f0 14542 14546 test ax, ax ; 85 c0 14543 jne short 098 1fh ; 75 0314544 jmp near 099 27h ; e9 08 0114547 jne short 0982fh ; 75 03 14548 jmp near 09937h ; e9 08 01 14545 14549 mov ax, word [bp-010h] ; 8b 46 f0 14546 14550 mov es, di ; 8e c7 … … 14592 14596 xchg dx, ax ; 92 14593 14597 test AL, strict byte 001h ; a8 01 14594 jne short 098 79h ; 75 de14598 jne short 09889h ; 75 de 14595 14599 xor ax, ax ; 31 c0 14596 14600 xor cx, cx ; 31 c9 … … 14610 14614 mov bx, strict word 0001fh ; bb 1f 00 14611 14615 xor cx, cx ; 31 c9 14612 call 08839h ; e8 7a ef14616 call 08839h ; e8 6a ef 14613 14617 db 0feh, 0c0h 14614 14618 ; inc al ; fe c0 14615 14619 mov byte [bp-00ch], al ; 88 46 f4 14616 14620 mov byte [bp-00eh], 000h ; c6 46 f2 00 14617 jmp short 098 ebh ; eb 2114621 jmp short 098fbh ; eb 21 14618 14622 xor al, al ; 30 c0 14619 14623 test al, al ; 84 c0 14620 je short 098 e2h ; 74 1214624 je short 098f2h ; 74 12 14621 14625 mov bl, byte [bp-00eh] ; 8a 5e f2 14622 14626 xor bh, bh ; 30 ff 14623 14627 xor ax, ax ; 31 c0 14624 14628 mov dx, word [bp-010h] ; 8b 56 f0 14625 call 092b 5h ; e8 d8f914629 call 092bah ; e8 cd f9 14626 14630 dec byte [bp-00ch] ; fe 4e f4 14627 je short 099 25h ; 74 4314631 je short 09935h ; 74 43 14628 14632 inc byte [bp-00eh] ; fe 46 f2 14629 14633 cmp byte [bp-00eh], 020h ; 80 7e f2 20 14630 jnc short 099 25h ; 73 3a14634 jnc short 09935h ; 73 3a 14631 14635 mov cl, byte [bp-00eh] ; 8a 4e f2 14632 14636 xor ch, ch ; 30 ed 14633 14637 mov bx, strict word 00001h ; bb 01 00 14634 14638 xor di, di ; 31 ff 14635 jcxz 09 8fdh ; e3 0614639 jcxz 0990dh ; e3 06 14636 14640 sal bx, 1 ; d1 e3 14637 14641 rcl di, 1 ; d1 d7 14638 loop 09 8f7h ; e2 fa14642 loop 09907h ; e2 fa 14639 14643 mov ax, strict word 0000ch ; b8 0c 00 14640 14644 xor cx, cx ; 31 c9 … … 14652 14656 xchg dx, ax ; 92 14653 14657 test dx, di ; 85 fa 14654 jne short 099 21h ; 75 0414658 jne short 09931h ; 75 04 14655 14659 test ax, bx ; 85 d8 14656 je short 098 cah ; 74 a914660 je short 098dah ; 74 a9 14657 14661 mov AL, strict byte 001h ; b0 01 14658 jmp short 098 cch ; eb a714662 jmp short 098dch ; eb a7 14659 14663 xor ax, ax ; 31 c0 14660 14664 lea sp, [bp-00ah] ; 8d 66 f6 … … 14666 14670 pop bp ; 5d 14667 14671 retn ; c3 14668 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 31h, 09ah, 00fh, 09ah, 015h, 09ah, 01bh, 09ah, 021h14669 db 09ah, 0 27h, 09ah, 02dh, 09ah, 031h, 09ah14670 _ahci_init: ; 0xf99 48 LB 0x13a14672 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 041h, 09ah, 01fh, 09ah, 025h, 09ah, 02bh, 09ah, 031h 14673 db 09ah, 037h, 09ah, 03dh, 09ah, 041h, 09ah 14674 _ahci_init: ; 0xf9958 LB 0x13a 14671 14675 push bp ; 55 14672 14676 mov bp, sp ; 89 e5 … … 14676 14680 mov ax, 00601h ; b8 01 06 14677 14681 mov dx, strict word 00001h ; ba 01 00 14678 call 09e 9dh ; e8 44 0514682 call 09eadh ; e8 44 05 14679 14683 mov dx, ax ; 89 c2 14680 14684 cmp ax, strict word 0ffffh ; 3d ff ff 14681 je short 099 ach ; 74 4c14685 je short 099bch ; 74 4c 14682 14686 xor al, al ; 30 c0 14683 14687 shr ax, 008h ; c1 e8 08 … … 14687 14691 xor ah, ah ; 30 e4 14688 14692 mov bx, strict word 00034h ; bb 34 00 14689 call 09e c8h ; e8 53 0514693 call 09ed8h ; e8 53 05 14690 14694 mov cl, al ; 88 c1 14691 14695 test cl, cl ; 84 c9 14692 je short 099 afh ; 74 3414696 je short 099bfh ; 74 34 14693 14697 mov bl, cl ; 88 cb 14694 14698 xor bh, bh ; 30 ff … … 14701 14705 mov dx, word [bp-00eh] ; 8b 56 f2 14702 14706 mov ax, word [bp-014h] ; 8b 46 ec 14703 call 09e c8h ; e8 2e 0514707 call 09ed8h ; e8 2e 05 14704 14708 cmp AL, strict byte 012h ; 3c 12 14705 je short 099 afh ; 74 1114709 je short 099bfh ; 74 11 14706 14710 mov bl, cl ; 88 cb 14707 14711 db 0feh, 0c3h … … 14710 14714 mov dx, word [bp-00eh] ; 8b 56 f2 14711 14715 mov ax, word [bp-014h] ; 8b 46 ec 14712 jmp short 099 72h ; eb c614713 jmp near 09a 7bh ; e9 cc 0014716 jmp short 09982h ; eb c6 14717 jmp near 09a8bh ; e9 cc 00 14714 14718 test cl, cl ; 84 c9 14715 je short 099 ach ; 74 f914719 je short 099bch ; 74 f9 14716 14720 add cl, 002h ; 80 c1 02 14717 14721 mov bl, cl ; 88 cb … … 14725 14729 mov dx, word [bp-012h] ; 8b 56 ee 14726 14730 mov ax, word [bp-00ch] ; 8b 46 f4 14727 call 09e c8h ; e8 f3 0414731 call 09ed8h ; e8 f3 04 14728 14732 cmp AL, strict byte 010h ; 3c 10 14729 jne short 099 ach ; 75 d314733 jne short 099bch ; 75 d3 14730 14734 mov byte [bp-008h], 000h ; c6 46 f8 00 14731 14735 mov bl, cl ; 88 cb … … 14734 14738 mov dx, word [bp-012h] ; 8b 56 ee 14735 14739 mov ax, word [bp-00ch] ; 8b 46 f4 14736 call 09 ef6h ; e8 09 0514740 call 09f06h ; e8 09 05 14737 14741 mov dx, ax ; 89 c2 14738 14742 and ax, strict word 0000fh ; 25 0f 00 14739 14743 sub ax, strict word 00004h ; 2d 04 00 14740 14744 cmp ax, strict word 0000bh ; 3d 0b 00 14741 jnbe short 09a 31h ; 77 3714745 jnbe short 09a41h ; 77 37 14742 14746 push CS ; 0e 14743 14747 pop ES ; 07 14744 14748 mov cx, strict word 00008h ; b9 08 00 14745 mov di, 099 31h ; bf 31 9914749 mov di, 09941h ; bf 41 99 14746 14750 repne scasb ; f2 ae 14747 14751 sal cx, 1 ; d1 e1 14748 14752 mov di, cx ; 89 cf 14749 mov ax, word [cs:di-066 c8h] ; 2e 8b 85 38 9914753 mov ax, word [cs:di-066b8h] ; 2e 8b 85 48 99 14750 14754 jmp ax ; ff e0 14751 14755 mov byte [bp-008h], 010h ; c6 46 f8 10 14752 jmp short 09a 31h ; eb 1c14756 jmp short 09a41h ; eb 1c 14753 14757 mov byte [bp-008h], 014h ; c6 46 f8 14 14754 jmp short 09a 31h ; eb 1614758 jmp short 09a41h ; eb 16 14755 14759 mov byte [bp-008h], 018h ; c6 46 f8 18 14756 jmp short 09a 31h ; eb 1014760 jmp short 09a41h ; eb 10 14757 14761 mov byte [bp-008h], 01ch ; c6 46 f8 1c 14758 jmp short 09a 31h ; eb 0a14762 jmp short 09a41h ; eb 0a 14759 14763 mov byte [bp-008h], 020h ; c6 46 f8 20 14760 jmp short 09a 31h ; eb 0414764 jmp short 09a41h ; eb 04 14761 14765 mov byte [bp-008h], 024h ; c6 46 f8 24 14762 14766 mov si, dx ; 89 d6 … … 14765 14769 mov al, byte [bp-008h] ; 8a 46 f8 14766 14770 test al, al ; 84 c0 14767 je short 09a 7bh ; 74 3b14771 je short 09a8bh ; 74 3b 14768 14772 mov bl, al ; 88 c3 14769 14773 xor bh, bh ; 30 ff … … 14776 14780 mov dx, word [bp-010h] ; 8b 56 f0 14777 14781 mov ax, word [bp-016h] ; 8b 46 ea 14778 call 09f 20h ; e8 c1 0414782 call 09f30h ; e8 c1 04 14779 14783 test AL, strict byte 001h ; a8 01 14780 je short 09a 7bh ; 74 1814784 je short 09a8bh ; 74 18 14781 14785 and AL, strict byte 0f0h ; 24 f0 14782 14786 add si, ax ; 01 c6 … … 14785 14789 mov dx, word [bp-010h] ; 8b 56 f0 14786 14790 mov ax, word [bp-016h] ; 8b 46 ea 14787 call 09f 6eh ; e8 f8 0414791 call 09f7eh ; e8 f8 04 14788 14792 mov ax, si ; 89 f0 14789 call 097 dbh ; e8 60 fd14793 call 097ebh ; e8 60 fd 14790 14794 lea sp, [bp-004h] ; 8d 66 fc 14791 14795 pop di ; 5f … … 14793 14797 pop bp ; 5d 14794 14798 retn ; c3 14795 apm_out_str_: ; 0xf9a 82 LB 0x3914799 apm_out_str_: ; 0xf9a92 LB 0x39 14796 14800 push bp ; 55 14797 14801 mov bp, sp ; 89 e5 … … 14799 14803 mov bx, ax ; 89 c3 14800 14804 cmp byte [bx], 000h ; 80 3f 00 14801 je short 09a 97h ; 74 0a14805 je short 09aa7h ; 74 0a 14802 14806 mov al, byte [bx] ; 8a 07 14803 14807 out DX, AL ; ee … … 14806 14810 db 00ah, 0c0h 14807 14811 ; or al, al ; 0a c0 14808 jne short 09a 8fh ; 75 f814812 jne short 09a9fh ; 75 f8 14809 14813 lea sp, [bp-002h] ; 8d 66 fe 14810 14814 pop bx ; 5b 14811 14815 pop bp ; 5d 14812 14816 retn ; c3 14813 fcomp qword [bp+si-0649ch] ; dc 9a 64 9b 14814 out DX, AL ; ee 14815 call far 09b64h:09b09h ; 9a 09 9b 64 9b 14816 xor AL, strict byte 09bh ; 34 9b 14817 db 064h, 09bh 14818 ; fs wait ; 64 9b 14819 push strict byte 0ff9bh ; 6a 9b 14820 cmp word [bp+di-064c7h], bx ; 39 9b 39 9b 14821 cmp word [bp+di-06457h], bx ; 39 9b a9 9b 14822 cmp word [bp+di-064c7h], bx ; 39 9b 39 9b 14823 db 0a2h 14817 in AL, DX ; ec 14818 call far 09afeh:09b74h ; 9a 74 9b fe 9a 14819 sbb word [bp+di-0648ch], bx ; 19 9b 74 9b 14820 inc sp ; 44 14824 14821 wait ; 9b 14825 _apm_function: ; 0xf9abb LB 0xf3 14822 je short 09a56h ; 74 9b 14823 jp short 09a58h ; 7a 9b 14824 dec cx ; 49 14825 wait ; 9b 14826 dec cx ; 49 14827 wait ; 9b 14828 dec cx ; 49 14829 wait ; 9b 14830 mov cx, 0499bh ; b9 9b 49 14831 wait ; 9b 14832 dec cx ; 49 14833 wait ; 9b 14834 mov DL, strict byte 09bh ; b2 9b 14835 _apm_function: ; 0xf9acb LB 0xf3 14826 14836 push bp ; 55 14827 14837 mov bp, sp ; 89 e5 … … 14831 14841 xor ah, ah ; 30 e4 14832 14842 cmp ax, strict word 0000eh ; 3d 0e 00 14833 jnbe short 09b 39h ; 77 6c14843 jnbe short 09b49h ; 77 6c 14834 14844 mov bx, ax ; 89 c3 14835 14845 add bx, ax ; 01 c3 14836 14846 mov dx, word [bp+018h] ; 8b 56 18 14837 14847 or dl, 001h ; 80 ca 01 14838 jmp word [cs:bx-065 63h] ; 2e ff a7 9d 9a14848 jmp word [cs:bx-06553h] ; 2e ff a7 ad 9a 14839 14849 mov word [bp+012h], 00102h ; c7 46 12 02 01 14840 14850 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 14841 14851 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 14842 jmp near 09b 64h ; e9 76 0014852 jmp near 09b74h ; e9 76 00 14843 14853 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14844 mov word [bp+00ch], 0a1 74h ; c7 46 0c 74 a114854 mov word [bp+00ch], 0a184h ; c7 46 0c 84 a1 14845 14855 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 14846 14856 mov ax, strict word 0fff0h ; b8 f0 ff 14847 14857 mov word [bp+006h], ax ; 89 46 06 14848 14858 mov word [bp+004h], ax ; 89 46 04 14849 jmp near 09b 64h ; e9 5b 0014859 jmp near 09b74h ; e9 5b 00 14850 14860 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14851 14861 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 14860 14870 mov si, ax ; 89 c6 14861 14871 sal esi, 010h ; 66 c1 e6 10 14862 jmp near 09b 64h ; e9 30 0014872 jmp near 09b74h ; e9 30 00 14863 14873 sti ; fb 14864 14874 hlt ; f4 14865 jmp near 09b 64h ; e9 2b 0014875 jmp near 09b74h ; e9 2b 00 14866 14876 mov bx, 00da6h ; bb a6 0d 14867 14877 mov cx, ds ; 8c d9 14868 14878 mov ax, strict word 00004h ; b8 04 00 14869 call 01923h ; e8 df 7d14879 call 01923h ; e8 cf 7d 14870 14880 push word [bp+00ch] ; ff 76 0c 14871 14881 push word [bp+012h] ; ff 76 12 14872 14882 push 00d29h ; 68 29 0d 14873 14883 push strict byte 00004h ; 6a 04 14874 call 01966h ; e8 14 7e14884 call 01966h ; e8 04 7e 14875 14885 add sp, strict byte 00008h ; 83 c4 08 14876 14886 mov ax, word [bp+012h] ; 8b 46 12 … … 14884 14894 retn ; c3 14885 14895 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 14886 je short 09b 8fh ; 74 1f14896 je short 09b9fh ; 74 1f 14887 14897 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 14888 je short 09b 87h ; 74 1114898 je short 09b97h ; 74 11 14889 14899 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 14890 jne short 09b 97h ; 75 1b14900 jne short 09ba7h ; 75 1b 14891 14901 mov dx, 0040fh ; ba 0f 04 14892 14902 mov ax, 00d10h ; b8 10 0d 14893 call 09a 82h ; e8 fd fe14894 jmp short 09b 64h ; eb dd14903 call 09a92h ; e8 fd fe 14904 jmp short 09b74h ; eb dd 14895 14905 mov dx, 0040fh ; ba 0f 04 14896 14906 mov ax, 00d18h ; b8 18 0d 14897 jmp short 09b 82h ; eb f314907 jmp short 09b92h ; eb f3 14898 14908 mov dx, 0040fh ; ba 0f 04 14899 14909 mov ax, 00d20h ; b8 20 0d 14900 jmp short 09b 82h ; eb eb14910 jmp short 09b92h ; eb eb 14901 14911 or ah, 00ah ; 80 cc 0a 14902 14912 mov word [bp+012h], ax ; 89 46 12 14903 14913 mov word [bp+018h], dx ; 89 56 18 14904 jmp short 09b 64h ; eb c214914 jmp short 09b74h ; eb c2 14905 14915 mov word [bp+012h], 00102h ; c7 46 12 02 01 14906 jmp short 09b 64h ; eb bb14916 jmp short 09b74h ; eb bb 14907 14917 or ah, 080h ; 80 cc 80 14908 jmp short 09b 9ah ; eb ec14909 pci16_select_reg_: ; 0xf9b ae LB 0x2414918 jmp short 09baah ; eb ec 14919 pci16_select_reg_: ; 0xf9bbe LB 0x24 14910 14920 push bp ; 55 14911 14921 mov bp, sp ; 89 e5 … … 14924 14934 pop bp ; 5d 14925 14935 retn ; c3 14926 pci16_find_device_: ; 0xf9b d2 LB 0xf914936 pci16_find_device_: ; 0xf9be2 LB 0xf9 14927 14937 push bp ; 55 14928 14938 mov bp, sp ; 89 e5 … … 14938 14948 mov byte [bp-008h], 000h ; c6 46 f8 00 14939 14949 test bl, 007h ; f6 c3 07 14940 jne short 09c 1ah ; 75 2d14950 jne short 09c2ah ; 75 2d 14941 14951 mov dx, strict word 0000eh ; ba 0e 00 14942 14952 mov ax, bx ; 89 d8 14943 call 09b aeh ; e8 b9 ff14953 call 09bbeh ; e8 b9 ff 14944 14954 mov dx, 00cfeh ; ba fe 0c 14945 14955 in AL, DX ; ec … … 14948 14958 mov byte [bp-006h], al ; 88 46 fa 14949 14959 cmp AL, strict byte 0ffh ; 3c ff 14950 jne short 09c 08h ; 75 0614960 jne short 09c18h ; 75 06 14951 14961 add bx, strict byte 00008h ; 83 c3 08 14952 jmp near 09c 9bh ; e9 93 0014962 jmp near 09cabh ; e9 93 00 14953 14963 test byte [bp-006h], 080h ; f6 46 fa 80 14954 je short 09c 15h ; 74 0714964 je short 09c25h ; 74 07 14955 14965 mov word [bp-010h], strict word 00001h ; c7 46 f0 01 00 14956 jmp short 09c 1ah ; eb 0514966 jmp short 09c2ah ; eb 05 14957 14967 mov word [bp-010h], strict word 00008h ; c7 46 f0 08 00 14958 14968 mov al, byte [bp-006h] ; 8a 46 fa 14959 14969 and AL, strict byte 007h ; 24 07 14960 14970 cmp AL, strict byte 001h ; 3c 01 14961 jne short 09c 42h ; 75 1f14971 jne short 09c52h ; 75 1f 14962 14972 mov ax, bx ; 89 d8 14963 14973 shr ax, 008h ; c1 e8 08 14964 14974 test ax, ax ; 85 c0 14965 jne short 09c 42h ; 75 1614975 jne short 09c52h ; 75 16 14966 14976 mov dx, strict word 0001ah ; ba 1a 00 14967 14977 mov ax, bx ; 89 d8 14968 call 09b aeh ; e8 7a ff14978 call 09bbeh ; e8 7a ff 14969 14979 mov dx, 00cfeh ; ba fe 0c 14970 14980 in AL, DX ; ec … … 14972 14982 ; sub ah, ah ; 2a e4 14973 14983 cmp al, byte [bp-008h] ; 3a 46 f8 14974 jbe short 09c 42h ; 76 0314984 jbe short 09c52h ; 76 03 14975 14985 mov byte [bp-008h], al ; 88 46 f8 14976 14986 test di, di ; 85 ff 14977 je short 09c 4bh ; 74 0514987 je short 09c5bh ; 74 05 14978 14988 mov dx, strict word 00008h ; ba 08 00 14979 jmp short 09c 4dh ; eb 0214989 jmp short 09c5dh ; eb 02 14980 14990 xor dx, dx ; 31 d2 14981 14991 mov ax, bx ; 89 d8 14982 call 09b aeh ; e8 5c ff14992 call 09bbeh ; e8 5c ff 14983 14993 mov dx, 00cfch ; ba fc 0c 14984 14994 in eax, DX ; 66 ed … … 14991 15001 mov word [bp-00eh], strict word 00000h ; c7 46 f2 00 00 14992 15002 test di, di ; 85 ff 14993 je short 09c 7ch ; 74 0f15003 je short 09c8ch ; 74 0f 14994 15004 mov cx, strict word 00008h ; b9 08 00 14995 15005 shr dx, 1 ; d1 ea 14996 15006 rcr ax, 1 ; d1 d8 14997 loop 09c 70h ; e2 fa15007 loop 09c80h ; e2 fa 14998 15008 mov word [bp-00ah], ax ; 89 46 f6 14999 15009 mov word [bp-00ch], dx ; 89 56 f4 15000 15010 mov ax, word [bp-00ch] ; 8b 46 f4 15001 15011 cmp ax, word [bp-014h] ; 3b 46 ec 15002 jne short 09c 8ch ; 75 0815012 jne short 09c9ch ; 75 08 15003 15013 mov ax, word [bp-00ah] ; 8b 46 f6 15004 15014 cmp ax, word [bp-012h] ; 3b 46 ee 15005 je short 09c 92h ; 74 0615015 je short 09ca2h ; 74 06 15006 15016 cmp word [bp-00eh], strict byte 00000h ; 83 7e f2 00 15007 je short 09c 98h ; 74 0615017 je short 09ca8h ; 74 06 15008 15018 dec si ; 4e 15009 15019 cmp si, strict byte 0ffffh ; 83 fe ff 15010 je short 09c ach ; 74 1415020 je short 09cbch ; 74 14 15011 15021 add bx, word [bp-010h] ; 03 5e f0 15012 15022 mov dx, bx ; 89 da … … 15015 15025 xor ah, ah ; 30 e4 15016 15026 cmp dx, ax ; 39 c2 15017 jnbe short 09c ach ; 77 0315018 jmp near 09b e8h ; e9 3c ff15027 jnbe short 09cbch ; 77 03 15028 jmp near 09bf8h ; e9 3c ff 15019 15029 cmp si, strict byte 0ffffh ; 83 fe ff 15020 jne short 09c b5h ; 75 0415030 jne short 09cc5h ; 75 04 15021 15031 mov ax, bx ; 89 d8 15022 jmp short 09c b8h ; eb 0315032 jmp short 09cc8h ; eb 03 15023 15033 mov ax, strict word 0ffffh ; b8 ff ff 15024 15034 lea sp, [bp-004h] ; 8d 66 fc … … 15027 15037 pop bp ; 5d 15028 15038 retn ; c3 15029 lodsb ; ac15039 mov sp, 0d59dh ; bc 9d d5 15030 15040 popfw ; 9d 15031 lds bx, [di-06229h] ; c5 9d d7 9d 15032 jmp short 09c64h ; eb 9d 15033 std ; fd 15041 out 09dh, ax ; e7 9d 15042 sti ; fb 15034 15043 popfw ; 9d 15035 db 010h15044 or ax, 0209eh ; 0d 9e 20 15036 15045 sahf ; 9e 15037 _pci16_function: ; 0xf9c cb LB 0x1d215046 _pci16_function: ; 0xf9cdb LB 0x1d2 15038 15047 push bp ; 55 15039 15048 mov bp, sp ; 89 e5 … … 15049 15058 xor ah, ah ; 30 e4 15050 15059 cmp bx, strict byte 00003h ; 83 fb 03 15051 jc short 09 cfdh ; 72 1315052 jbe short 09d 50h ; 76 6415060 jc short 09d0dh ; 72 13 15061 jbe short 09d60h ; 76 64 15053 15062 cmp bx, strict byte 0000eh ; 83 fb 0e 15054 je short 09d 58h ; 74 6715063 je short 09d68h ; 74 67 15055 15064 cmp bx, strict byte 00008h ; 83 fb 08 15056 jc short 09d 07h ; 72 1115065 jc short 09d17h ; 72 11 15057 15066 cmp bx, strict byte 0000dh ; 83 fb 0d 15058 jbe short 09d 5bh ; 76 6015059 jmp short 09d 07h ; eb 0a15067 jbe short 09d6bh ; 76 60 15068 jmp short 09d17h ; eb 0a 15060 15069 cmp bx, strict byte 00002h ; 83 fb 02 15061 je short 09d 26h ; 74 2415070 je short 09d36h ; 74 24 15062 15071 cmp bx, strict byte 00001h ; 83 fb 01 15063 je short 09d 0ah ; 74 0315064 jmp near 09e 69h ; e9 5f 0115072 je short 09d1ah ; 74 03 15073 jmp near 09e79h ; e9 5f 01 15065 15074 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 15066 15075 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 15068 15077 mov word [bp+018h], 04350h ; c7 46 18 50 43 15069 15078 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 15070 jmp near 09e 96h ; e9 70 0115079 jmp near 09ea6h ; e9 70 01 15071 15080 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 15072 jne short 09d 32h ; 75 0615081 jne short 09d42h ; 75 06 15073 15082 or ah, 083h ; 80 cc 83 15074 jmp near 09e 8fh ; e9 5d 0115083 jmp near 09e9fh ; e9 5d 01 15075 15084 mov bx, word [bp+008h] ; 8b 5e 08 15076 15085 mov dx, word [bp+01ch] ; 8b 56 1c 15077 15086 mov ax, word [bp+018h] ; 8b 46 18 15078 15087 xor cx, cx ; 31 c9 15079 call 09b d2h ; e8 92 fe15088 call 09be2h ; e8 92 fe 15080 15089 cmp ax, strict word 0ffffh ; 3d ff ff 15081 jne short 09d 52h ; 75 0d15090 jne short 09d62h ; 75 0d 15082 15091 mov ax, word [bp+020h] ; 8b 46 20 15083 15092 xor ah, ah ; 30 e4 15084 15093 or ah, 086h ; 80 cc 86 15085 jmp near 09e 8fh ; e9 3f 0115086 jmp short 09d 5dh ; eb 0b15094 jmp near 09e9fh ; e9 3f 01 15095 jmp short 09d6dh ; eb 0b 15087 15096 mov word [bp+014h], ax ; 89 46 14 15088 jmp near 09e 96h ; e9 3e 0115089 jmp near 09e 24h ; e9 c9 0015090 jmp short 09d 82h ; eb 2515097 jmp near 09ea6h ; e9 3e 01 15098 jmp near 09e34h ; e9 c9 00 15099 jmp short 09d92h ; eb 25 15091 15100 mov bx, word [bp+008h] ; 8b 5e 08 15092 15101 mov ax, word [bp+01ch] ; 8b 46 1c 15093 15102 mov dx, word [bp+01eh] ; 8b 56 1e 15094 15103 mov cx, strict word 00001h ; b9 01 00 15095 call 09b d2h ; e8 66 fe15104 call 09be2h ; e8 66 fe 15096 15105 cmp ax, strict word 0ffffh ; 3d ff ff 15097 jne short 09d 7ch ; 75 0b15106 jne short 09d8ch ; 75 0b 15098 15107 mov ax, word [bp+020h] ; 8b 46 20 15099 15108 xor ah, ah ; 30 e4 15100 15109 or ah, 086h ; 80 cc 86 15101 jmp near 09e 8fh ; e9 13 0115110 jmp near 09e9fh ; e9 13 01 15102 15111 mov word [bp+014h], ax ; 89 46 14 15103 jmp near 09e 96h ; e9 14 0115112 jmp near 09ea6h ; e9 14 01 15104 15113 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 15105 jc short 09d 8fh ; 72 0615114 jc short 09d9fh ; 72 06 15106 15115 or ah, 087h ; 80 cc 87 15107 jmp near 09e 8fh ; e9 00 0115116 jmp near 09e9fh ; e9 00 01 15108 15117 mov dx, word [bp+004h] ; 8b 56 04 15109 15118 mov ax, word [bp+014h] ; 8b 46 14 15110 call 09b aeh ; e8 16 fe15119 call 09bbeh ; e8 16 fe 15111 15120 mov bx, word [bp+020h] ; 8b 5e 20 15112 15121 xor bh, bh ; 30 ff 15113 15122 sub bx, strict byte 00008h ; 83 eb 08 15114 15123 cmp bx, strict byte 00005h ; 83 fb 05 15115 jnbe short 09e 0dh ; 77 6815124 jnbe short 09e1dh ; 77 68 15116 15125 add bx, bx ; 01 db 15117 jmp word [cs:bx-063 41h] ; 2e ff a7 bf 9c15126 jmp word [cs:bx-06331h] ; 2e ff a7 cf 9c 15118 15127 mov bx, word [bp+01ch] ; 8b 5e 1c 15119 15128 xor bl, bl ; 30 db … … 15126 15135 or bx, ax ; 09 c3 15127 15136 mov word [bp+01ch], bx ; 89 5e 1c 15128 jmp short 09e 0dh ; eb 4815137 jmp short 09e1dh ; eb 48 15129 15138 mov dx, word [bp+004h] ; 8b 56 04 15130 15139 xor dh, dh ; 30 f6 … … 15133 15142 in ax, DX ; ed 15134 15143 mov word [bp+01ch], ax ; 89 46 1c 15135 jmp short 09e 0dh ; eb 3615144 jmp short 09e1dh ; eb 36 15136 15145 mov dx, 00cfch ; ba fc 0c 15137 15146 in eax, DX ; 66 ed … … 15142 15151 mov word [bp+01ch], ax ; 89 46 1c 15143 15152 mov word [bp+01eh], dx ; 89 56 1e 15144 jmp short 09e 0dh ; eb 2215153 jmp short 09e1dh ; eb 22 15145 15154 mov ax, word [bp+01ch] ; 8b 46 1c 15146 15155 mov dx, word [bp+004h] ; 8b 56 04 … … 15149 15158 add dx, 00cfch ; 81 c2 fc 0c 15150 15159 out DX, AL ; ee 15151 jmp short 09e 0dh ; eb 1015160 jmp short 09e1dh ; eb 10 15152 15161 mov ax, word [bp+01ch] ; 8b 46 1c 15153 15162 mov dx, word [bp+004h] ; 8b 56 04 … … 15156 15165 add dx, 00cfch ; 81 c2 fc 0c 15157 15166 out DX, ax ; ef 15158 jmp near 09e 96h ; e9 86 0015167 jmp near 09ea6h ; e9 86 00 15159 15168 mov ax, word [bp+01ch] ; 8b 46 1c 15160 15169 mov cx, word [bp+01eh] ; 8b 4e 1e … … 15165 15174 ; mov ax, cx ; 8b c1 15166 15175 out DX, eax ; 66 ef 15167 jmp short 09e 96h ; eb 7215176 jmp short 09ea6h ; eb 72 15168 15177 mov bx, word [bp+004h] ; 8b 5e 04 15169 15178 mov es, [bp+026h] ; 8e 46 26 … … 15172 15181 mov cx, word [0f380h] ; 8b 0e 80 f3 15173 15182 cmp cx, word [es:bx] ; 26 3b 0f 15174 jbe short 09e 4ah ; 76 1115183 jbe short 09e5ah ; 76 11 15175 15184 mov ax, word [bp+020h] ; 8b 46 20 15176 15185 xor ah, ah ; 30 e4 … … 15178 15187 mov word [bp+020h], ax ; 89 46 20 15179 15188 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 15180 jmp short 09e 5eh ; eb 1415189 jmp short 09e6eh ; eb 14 15181 15190 les di, [es:bx+002h] ; 26 c4 7f 02 15182 15191 mov si, 0f1a0h ; be a0 f1 … … 15190 15199 les bx, [bp-008h] ; c4 5e f8 15191 15200 mov word [es:bx], ax ; 26 89 07 15192 jmp short 09e 96h ; eb 2d15201 jmp short 09ea6h ; eb 2d 15193 15202 mov bx, 00da6h ; bb a6 0d 15194 15203 mov cx, ds ; 8c d9 15195 15204 mov ax, strict word 00004h ; b8 04 00 15196 call 01923h ; e8 af 7a15205 call 01923h ; e8 9f 7a 15197 15206 mov ax, word [bp+014h] ; 8b 46 14 15198 15207 push ax ; 50 … … 15201 15210 push 00d5ch ; 68 5c 0d 15202 15211 push strict byte 00004h ; 6a 04 15203 call 01966h ; e8 e2 7a15212 call 01966h ; e8 d2 7a 15204 15213 add sp, strict byte 00008h ; 83 c4 08 15205 15214 mov ax, word [bp+020h] ; 8b 46 20 … … 15213 15222 pop bp ; 5d 15214 15223 retn ; c3 15215 pci_find_classcode_: ; 0xf9e 9d LB 0x815224 pci_find_classcode_: ; 0xf9ead LB 0x8 15216 15225 push bp ; 55 15217 15226 mov bp, sp ; 89 e5 … … 15219 15228 pop bp ; 5d 15220 15229 retn ; c3 15221 pci_find_device_: ; 0xf9e a5 LB 0x2315230 pci_find_device_: ; 0xf9eb5 LB 0x23 15222 15231 push bp ; 55 15223 15232 mov bp, sp ; 89 e5 … … 15231 15240 int 01ah ; cd 1a 15232 15241 cmp ah, 000h ; 80 fc 00 15233 je short 09e beh ; 74 0315242 je short 09eceh ; 74 03 15234 15243 mov bx, strict word 0ffffh ; bb ff ff 15235 15244 mov ax, bx ; 89 d8 … … 15240 15249 pop bp ; 5d 15241 15250 retn ; c3 15242 pci_read_config_byte_: ; 0xf9e c8 LB 0x2e15251 pci_read_config_byte_: ; 0xf9ed8 LB 0x2e 15243 15252 push bp ; 55 15244 15253 mov bp, sp ; 89 e5 … … 15266 15275 pop bp ; 5d 15267 15276 retn ; c3 15268 pci_read_config_word_: ; 0xf9 ef6 LB 0x2a15277 pci_read_config_word_: ; 0xf9f06 LB 0x2a 15269 15278 push bp ; 55 15270 15279 mov bp, sp ; 89 e5 … … 15290 15299 pop bp ; 5d 15291 15300 retn ; c3 15292 pci_read_config_dword_: ; 0xf9f 20 LB 0x4e15301 pci_read_config_dword_: ; 0xf9f30 LB 0x4e 15293 15302 push bp ; 55 15294 15303 mov bp, sp ; 89 e5 … … 15312 15321 int 01ah ; cd 1a 15313 15322 test cx, cx ; 85 c9 15314 jne short 09f 5fh ; 75 1415323 jne short 09f6fh ; 75 14 15315 15324 mov al, byte [bp-006h] ; 8a 46 fa 15316 15325 xor ah, ah ; 30 e4 … … 15322 15331 int 01ah ; cd 1a 15323 15332 test cx, cx ; 85 c9 15324 je short 09f 64h ; 74 0515333 je short 09f74h ; 74 05 15325 15334 mov ax, strict word 00001h ; b8 01 00 15326 jmp short 09f 66h ; eb 0215335 jmp short 09f76h ; eb 02 15327 15336 xor ax, ax ; 31 c0 15328 15337 cwd ; 99 … … 15332 15341 pop bp ; 5d 15333 15342 retn ; c3 15334 pci_write_config_word_: ; 0xf9f 6e LB 0x2515343 pci_write_config_word_: ; 0xf9f7e LB 0x25 15335 15344 push bp ; 55 15336 15345 mov bp, sp ; 89 e5 … … 15352 15361 pop bp ; 5d 15353 15362 retn ; c3 15354 vds_is_present_: ; 0xf9f 93 LB 0x1d15363 vds_is_present_: ; 0xf9fa3 LB 0x1d 15355 15364 push bx ; 53 15356 15365 push bp ; 55 … … 15360 15369 mov es, ax ; 8e c0 15361 15370 test byte [es:bx], 020h ; 26 f6 07 20 15362 je short 09f abh ; 74 0615371 je short 09fbbh ; 74 06 15363 15372 mov ax, strict word 00001h ; b8 01 00 15364 15373 pop bp ; 5d … … 15369 15378 pop bx ; 5b 15370 15379 retn ; c3 15371 vds_real_to_lin_: ; 0xf9f b0 LB 0x1e15380 vds_real_to_lin_: ; 0xf9fc0 LB 0x1e 15372 15381 push bx ; 53 15373 15382 push cx ; 51 … … 15380 15389 sal ax, 1 ; d1 e0 15381 15390 rcl dx, 1 ; d1 d2 15382 loop 09f beh ; e2 fa15391 loop 09fceh ; e2 fa 15383 15392 xor cx, cx ; 31 c9 15384 15393 add ax, bx ; 01 d8 … … 15388 15397 pop bx ; 5b 15389 15398 retn ; c3 15390 vds_build_sg_list_: ; 0xf9f ce LB 0x7715399 vds_build_sg_list_: ; 0xf9fde LB 0x77 15391 15400 push bp ; 55 15392 15401 mov bp, sp ; 89 e5 … … 15402 15411 mov bx, word [bp+006h] ; 8b 5e 06 15403 15412 mov word [es:di+002h], bx ; 26 89 5d 02 15404 call 09f b0h ; e8 c3 ff15413 call 09fc0h ; e8 c3 ff 15405 15414 mov es, si ; 8e c6 15406 15415 mov word [es:di+004h], ax ; 26 89 45 04 15407 15416 mov word [es:di+006h], dx ; 26 89 55 06 15408 15417 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 15409 call 09f 93h ; e8 93 ff15418 call 09fa3h ; e8 93 ff 15410 15419 test ax, ax ; 85 c0 15411 je short 0a0 15h ; 74 1115420 je short 0a025h ; 74 11 15412 15421 mov es, si ; 8e c6 15413 15422 mov ax, 08105h ; b8 05 81 15414 15423 mov dx, strict word 00000h ; ba 00 00 15415 15424 int 04bh ; cd 4b 15416 jc short 0a0 12h ; 72 0215425 jc short 0a022h ; 72 02 15417 15426 db 032h, 0c0h 15418 15427 ; xor al, al ; 32 c0 15419 15428 cbw ; 98 15420 jmp short 0a0 3ch ; eb 2715429 jmp short 0a04ch ; eb 27 15421 15430 mov es, si ; 8e c6 15422 15431 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 15435 15444 pop bp ; 5d 15436 15445 retn 00004h ; c2 04 00 15437 vds_free_sg_list_: ; 0xfa0 45 LB 0x3b15446 vds_free_sg_list_: ; 0xfa055 LB 0x3b 15438 15447 push bp ; 55 15439 15448 mov bp, sp ; 89 e5 … … 15441 15450 push di ; 57 15442 15451 mov bx, ax ; 89 c3 15443 call 09f 93h ; e8 44 ff15452 call 09fa3h ; e8 44 ff 15444 15453 test ax, ax ; 85 c0 15445 je short 0a0 64h ; 74 1115454 je short 0a074h ; 74 11 15446 15455 mov di, bx ; 89 df 15447 15456 mov es, dx ; 8e c2 … … 15449 15458 mov dx, strict word 00000h ; ba 00 00 15450 15459 int 04bh ; cd 4b 15451 jc short 0a0 63h ; 72 0215460 jc short 0a073h ; 72 02 15452 15461 db 032h, 0c0h 15453 15462 ; xor al, al ; 32 c0 … … 15461 15470 retn ; c3 15462 15471 times 0xd db 0 15463 __U4M: ; 0xfa0 80 LB 0x2015472 __U4M: ; 0xfa090 LB 0x20 15464 15473 pushfw ; 9c 15465 15474 push si ; 56 … … 15488 15497 retn ; c3 15489 15498 times 0x4 db 0 15490 __U4D: ; 0xfa0 a0 LB 0x3015499 __U4D: ; 0xfa0b0 LB 0x30 15491 15500 pushfw ; 9c 15492 15501 push DS ; 1e … … 15503 15512 push dx ; 52 15504 15513 push ax ; 50 15505 call 0a1 85h ; e8 d0 0015514 call 0a195h ; e8 d0 00 15506 15515 mov cx, word [bp-002h] ; 8b 4e fe 15507 15516 mov bx, word [bp-004h] ; 8b 5e fc … … 15514 15523 retn ; c3 15515 15524 times 0xe db 0 15516 __U8RS: ; 0xfa0 d0 LB 0x1015525 __U8RS: ; 0xfa0e0 LB 0x10 15517 15526 test si, si ; 85 f6 15518 je short 0a0 dfh ; 74 0b15527 je short 0a0efh ; 74 0b 15519 15528 shr ax, 1 ; d1 e8 15520 15529 rcr bx, 1 ; d1 db … … 15522 15531 rcr dx, 1 ; d1 da 15523 15532 dec si ; 4e 15524 jne short 0a0 d4h ; 75 f515533 jne short 0a0e4h ; 75 f5 15525 15534 retn ; c3 15526 __U8LS: ; 0xfa0 e0 LB 0x1015535 __U8LS: ; 0xfa0f0 LB 0x10 15527 15536 test si, si ; 85 f6 15528 je short 0a0 efh ; 74 0b15537 je short 0a0ffh ; 74 0b 15529 15538 sal dx, 1 ; d1 e2 15530 15539 rcl cx, 1 ; d1 d1 … … 15532 15541 rcl ax, 1 ; d1 d0 15533 15542 dec si ; 4e 15534 jne short 0a0 e4h ; 75 f515543 jne short 0a0f4h ; 75 f5 15535 15544 retn ; c3 15536 _fmemset_: ; 0xfa 0f0 LB 0x1015545 _fmemset_: ; 0xfa100 LB 0x10 15537 15546 push di ; 57 15538 15547 mov es, dx ; 8e c2 … … 15545 15554 retn ; c3 15546 15555 times 0x3 db 0 15547 _fmemcpy_: ; 0xfa1 00 LB 0x3a15556 _fmemcpy_: ; 0xfa110 LB 0x3a 15548 15557 push bp ; 55 15549 15558 db 08bh, 0ech … … 15570 15579 add byte [bx+si], al ; 00 00 15571 15580 add byte [bx+si], al ; 00 00 15572 push ax ; 5015573 mov ax, word [0a152h] ; a1 52 a115574 push si ; 5615575 mov ax, word [0a156h] ; a1 56 a115576 push si ; 5615577 mov ax, word [0a158h] ; a1 58 a115578 pop ax ; 5815579 mov ax, word [0a15ah] ; a1 5a a115580 pop si ; 5e15581 mov ax, word [0a15eh] ; a1 5e a115582 15581 pushaw ; 60 15583 mov ax, word [0a165h] ; a1 65 a1 15584 db 067h 15585 db 0a1h 15586 apm_worker: ; 0xfa13a LB 0x3a 15582 mov ax, word [0a162h] ; a1 62 a1 15583 mov eax, dword [0a166h] ; 66 a1 66 a1 15584 mov eax, dword [0a168h] ; 66 a1 68 a1 15585 push 06aa1h ; 68 a1 6a 15586 mov ax, word [0a16eh] ; a1 6e a1 15587 outsb ; 6e 15588 mov ax, word [0a170h] ; a1 70 a1 15589 jne short 0a0e9h ; 75 a1 15590 jnbe short 0a0ebh ; 77 a1 15591 apm_worker: ; 0xfa14a LB 0x3a 15587 15592 sti ; fb 15588 15593 push ax ; 50 … … 15596 15601 pop ax ; 58 15597 15602 mov AH, strict byte 053h ; b4 53 15598 jnc short 0a1 70h ; 73 2515599 jmp word [cs:bp-05e e0h] ; 2e ff a6 20 a115600 jmp short 0a1 6eh ; eb 1c15603 jnc short 0a180h ; 73 25 15604 jmp word [cs:bp-05ed0h] ; 2e ff a6 30 a1 15605 jmp short 0a17eh ; eb 1c 15601 15606 sti ; fb 15602 15607 hlt ; f4 15603 jmp short 0a1 6eh ; eb 1815604 jmp short 0a1 6eh ; eb 1615605 jmp short 0a1 70h ; eb 1615608 jmp short 0a17eh ; eb 18 15609 jmp short 0a17eh ; eb 16 15610 jmp short 0a180h ; eb 16 15606 15611 mov AH, strict byte 080h ; b4 80 15607 jmp short 0a1 72h ; eb 1415608 jmp short 0a1 70h ; eb 1015612 jmp short 0a182h ; eb 14 15613 jmp short 0a180h ; eb 10 15609 15614 mov ax, 00102h ; b8 02 01 15610 jmp short 0a1 6eh ; eb 0915611 jmp short 0a1 6eh ; eb 0715615 jmp short 0a17eh ; eb 09 15616 jmp short 0a17eh ; eb 07 15612 15617 mov BL, strict byte 000h ; b3 00 15613 15618 mov cx, strict word 00000h ; b9 00 00 15614 jmp short 0a1 6eh ; eb 0015619 jmp short 0a17eh ; eb 00 15615 15620 clc ; f8 15616 15621 retn ; c3 … … 15618 15623 stc ; f9 15619 15624 retn ; c3 15620 apm_pm16_entry: ; 0xfa1 74 LB 0x1115625 apm_pm16_entry: ; 0xfa184 LB 0x11 15621 15626 mov AH, strict byte 002h ; b4 02 15622 15627 push DS ; 1e … … 15626 15631 add bp, strict byte 00008h ; 83 c5 08 15627 15632 mov ds, bp ; 8e dd 15628 call 0a1 3ah ; e8 b8 ff15633 call 0a14ah ; e8 b8 ff 15629 15634 pop bp ; 5d 15630 15635 pop DS ; 1f 15631 15636 retf ; cb 15632 _DoUInt32Div: ; 0xfa1 85 LB 0x26b15637 _DoUInt32Div: ; 0xfa195 LB 0x26b 15633 15638 push bp ; 55 15634 15639 mov bp, sp ; 89 e5 … … 15648 15653 mov [bp-006h], ds ; 8c 5e fa 15649 15654 cmp word [bx+002h], strict byte 00000h ; 83 7f 02 00 15650 jne short 0a1 d5h ; 75 2215655 jne short 0a1e5h ; 75 22 15651 15656 mov ax, word [bx] ; 8b 07 15652 15657 test ax, ax ; 85 c0 15653 je short 0a1 d2h ; 74 1915658 je short 0a1e2h ; 74 19 15654 15659 cmp ax, strict word 00001h ; 3d 01 00 15655 jne short 0a1 d5h ; 75 1715660 jne short 0a1e5h ; 75 17 15656 15661 xor ax, ax ; 31 c0 15657 15662 mov word [bp+00ah], ax ; 89 46 0a … … 15661 15666 mov ax, word [bp-01ah] ; 8b 46 e6 15662 15667 mov word [bp+006h], ax ; 89 46 06 15663 jmp near 0a3 ddh ; e9 08 0215668 jmp near 0a3edh ; e9 08 02 15664 15669 lds bx, [bp-00ch] ; c5 5e f4 15665 15670 mov ax, word [bx+002h] ; 8b 47 02 15666 15671 mov ds, [bp-006h] ; 8e 5e fa 15667 15672 cmp ax, word [si+002h] ; 3b 44 02 15668 je short 0a 1fbh ; 74 1815673 je short 0a20bh ; 74 18 15669 15674 mov ds, [bp-00ah] ; 8e 5e f6 15670 15675 mov ax, word [bx+002h] ; 8b 47 02 15671 15676 mov ds, [bp-006h] ; 8e 5e fa 15672 15677 cmp ax, word [si+002h] ; 3b 44 02 15673 jbe short 0a 1f6h ; 76 0515678 jbe short 0a206h ; 76 05 15674 15679 mov ax, strict word 00001h ; b8 01 00 15675 jmp short 0a2 1ch ; eb 2615680 jmp short 0a22ch ; eb 26 15676 15681 mov ax, strict word 0ffffh ; b8 ff ff 15677 jmp short 0a2 1ch ; eb 2115682 jmp short 0a22ch ; eb 21 15678 15683 mov ds, [bp-00ah] ; 8e 5e f6 15679 15684 mov ax, word [bx] ; 8b 07 15680 15685 mov ds, [bp-006h] ; 8e 5e fa 15681 15686 cmp ax, word [si] ; 3b 04 15682 je short 0a2 1ah ; 74 1315687 je short 0a22ah ; 74 13 15683 15688 mov ds, [bp-00ah] ; 8e 5e f6 15684 15689 mov ax, word [bx] ; 8b 07 15685 15690 mov ds, [bp-006h] ; 8e 5e fa 15686 15691 cmp ax, word [si] ; 3b 04 15687 jbe short 0a2 15h ; 76 0215688 jmp short 0a 1f1h ; eb dc15692 jbe short 0a225h ; 76 02 15693 jmp short 0a201h ; eb dc 15689 15694 mov ax, strict word 0ffffh ; b8 ff ff 15690 jmp short 0a2 1ch ; eb 0215695 jmp short 0a22ch ; eb 02 15691 15696 xor ax, ax ; 31 c0 15692 15697 test ax, ax ; 85 c0 15693 jnl short 0a2 3eh ; 7d 1e15698 jnl short 0a24eh ; 7d 1e 15694 15699 lds bx, [bp-00ch] ; c5 5e f4 15695 15700 mov ax, word [bx] ; 8b 07 … … 15701 15706 mov word [bx+002h], strict word 00000h ; c7 47 02 00 00 15702 15707 mov word [bx], strict word 00000h ; c7 07 00 00 15703 jmp short 0a1 d2h ; eb 9415704 jne short 0a2 55h ; 75 1515708 jmp short 0a1e2h ; eb 94 15709 jne short 0a265h ; 75 15 15705 15710 mov ds, [bp-008h] ; 8e 5e f8 15706 15711 mov word [di+002h], ax ; 89 45 02 … … 15709 15714 mov word [bx], strict word 00001h ; c7 07 01 00 15710 15715 mov word [bx+002h], ax ; 89 47 02 15711 jmp near 0a3 ddh ; e9 88 0115716 jmp near 0a3edh ; e9 88 01 15712 15717 lds bx, [bp-00ch] ; c5 5e f4 15713 15718 mov ax, word [bx+002h] ; 8b 47 02 15714 15719 test ax, ax ; 85 c0 15715 je short 0a2 70h ; 74 1115720 je short 0a280h ; 74 11 15716 15721 push ax ; 50 15717 15722 mov ax, 0f000h ; b8 00 f0 15718 15723 mov ds, ax ; 8e d8 15719 call 0a 3f0h ; e8 88 0115724 call 0a400h ; e8 88 01 15720 15725 add sp, strict byte 00002h ; 83 c4 02 15721 15726 add ax, strict word 00010h ; 05 10 00 15722 jmp short 0a2 7dh ; eb 0d15727 jmp short 0a28dh ; eb 0d 15723 15728 push word [bx] ; ff 37 15724 15729 mov ax, 0f000h ; b8 00 f0 15725 15730 mov ds, ax ; 8e d8 15726 call 0a 3f0h ; e8 76 0115731 call 0a400h ; e8 76 01 15727 15732 add sp, strict byte 00002h ; 83 c4 02 15728 15733 mov word [bp-014h], ax ; 89 46 ec … … 15730 15735 mov ax, word [si+002h] ; 8b 44 02 15731 15736 test ax, ax ; 85 c0 15732 je short 0a2 9bh ; 74 1115737 je short 0a2abh ; 74 11 15733 15738 push ax ; 50 15734 15739 mov ax, 0f000h ; b8 00 f0 15735 15740 mov ds, ax ; 8e d8 15736 call 0a 3f0h ; e8 5d 0115741 call 0a400h ; e8 5d 01 15737 15742 add sp, strict byte 00002h ; 83 c4 02 15738 15743 add ax, strict word 00010h ; 05 10 00 15739 jmp short 0a2 a8h ; eb 0d15744 jmp short 0a2b8h ; eb 0d 15740 15745 push word [si] ; ff 34 15741 15746 mov ax, 0f000h ; b8 00 f0 15742 15747 mov ds, ax ; 8e d8 15743 call 0a 3f0h ; e8 4b 0115748 call 0a400h ; e8 4b 01 15744 15749 add sp, strict byte 00002h ; 83 c4 02 15745 15750 mov dx, word [bp-014h] ; 8b 56 ec … … 15752 15757 mov word [bp-016h], ax ; 89 46 ea 15753 15758 test dx, dx ; 85 d2 15754 je short 0a3 18h ; 74 5615759 je short 0a328h ; 74 56 15755 15760 mov cx, dx ; 89 d1 15756 15761 xor ch, dh ; 30 f5 … … 15758 15763 mov ax, word [si] ; 8b 04 15759 15764 mov dx, word [si+002h] ; 8b 54 02 15760 jcxz 0a2 d6h ; e3 0615765 jcxz 0a2e6h ; e3 06 15761 15766 sal ax, 1 ; d1 e0 15762 15767 rcl dx, 1 ; d1 d2 15763 loop 0a2 d0h ; e2 fa15768 loop 0a2e0h ; e2 fa 15764 15769 mov word [bp-018h], ax ; 89 46 e8 15765 15770 mov word [bp-016h], dx ; 89 56 ea … … 15767 15772 lds bx, [bp-00ch] ; c5 5e f4 15768 15773 cmp ax, word [bx+002h] ; 3b 47 02 15769 jnbe short 0a 2f6h ; 77 0f15774 jnbe short 0a306h ; 77 0f 15770 15775 mov ax, word [bp-016h] ; 8b 46 ea 15771 15776 cmp ax, word [bx+002h] ; 3b 47 02 15772 jne short 0a 2fah ; 75 0b15777 jne short 0a30ah ; 75 0b 15773 15778 mov ax, word [bp-018h] ; 8b 46 e8 15774 15779 cmp ax, word [bx] ; 3b 07 15775 jbe short 0a 2fah ; 76 0415780 jbe short 0a30ah ; 76 04 15776 15781 mov AL, strict byte 001h ; b0 01 15777 jmp short 0a 2fch ; eb 0215782 jmp short 0a30ch ; eb 02 15778 15783 xor al, al ; 30 c0 15779 15784 test al, al ; 84 c0 15780 je short 0a3 23h ; 74 2315785 je short 0a333h ; 74 23 15781 15786 shr word [bp-016h], 1 ; d1 6e ea 15782 15787 rcr word [bp-018h], 1 ; d1 5e e8 15783 15788 dec word [bp-012h] ; ff 4e ee 15784 jmp short 0a3 23h ; eb 1815789 jmp short 0a333h ; eb 18 15785 15790 mov cx, strict word 0001fh ; b9 1f 00 15786 15791 sal word [bp-018h], 1 ; d1 66 e8 15787 15792 rcl word [bp-016h], 1 ; d1 56 ea 15788 loop 0a3 0eh ; e2 f815789 jmp short 0a3 06h ; eb ee15793 loop 0a31eh ; e2 f8 15794 jmp short 0a316h ; eb ee 15790 15795 mov ax, word [si] ; 8b 04 15791 15796 mov word [bp-018h], ax ; 89 46 e8 … … 15804 15809 mov ds, [bp-006h] ; 8e 5e fa 15805 15810 cmp ax, word [si+002h] ; 3b 44 02 15806 jnbe short 0a3 4fh ; 77 0615807 jne short 0a3 53h ; 75 0815811 jnbe short 0a35fh ; 77 06 15812 jne short 0a363h ; 75 08 15808 15813 cmp dx, word [si] ; 3b 14 15809 jc short 0a3 53h ; 72 0415814 jc short 0a363h ; 72 04 15810 15815 mov AL, strict byte 001h ; b0 01 15811 jmp short 0a3 55h ; eb 0215816 jmp short 0a365h ; eb 02 15812 15817 xor al, al ; 30 c0 15813 15818 test al, al ; 84 c0 15814 je short 0a3 bah ; 74 6115819 je short 0a3cah ; 74 61 15815 15820 mov ds, [bp-008h] ; 8e 5e f8 15816 15821 mov ax, word [di+002h] ; 8b 45 02 15817 15822 cmp ax, word [bp-016h] ; 3b 46 ea 15818 jnbe short 0a3 70h ; 77 0c15823 jnbe short 0a380h ; 77 0c 15819 15824 cmp ax, word [bp-016h] ; 3b 46 ea 15820 jne short 0a3 74h ; 75 0b15825 jne short 0a384h ; 75 0b 15821 15826 mov ax, word [di] ; 8b 05 15822 15827 cmp ax, word [bp-018h] ; 3b 46 e8 15823 jc short 0a3 74h ; 72 0415828 jc short 0a384h ; 72 04 15824 15829 mov AL, strict byte 001h ; b0 01 15825 jmp short 0a3 76h ; eb 0215830 jmp short 0a386h ; eb 02 15826 15831 xor al, al ; 30 c0 15827 15832 test al, al ; 84 c0 15828 je short 0a3 a0h ; 74 2615833 je short 0a3b0h ; 74 26 15829 15834 mov ax, word [bp-018h] ; 8b 46 e8 15830 15835 mov ds, [bp-008h] ; 8e 5e f8 … … 15835 15840 xor dx, dx ; 31 d2 15836 15841 mov cx, word [bp-012h] ; 8b 4e ee 15837 jcxz 0a3 98h ; e3 0615842 jcxz 0a3a8h ; e3 06 15838 15843 sal ax, 1 ; d1 e0 15839 15844 rcl dx, 1 ; d1 d2 15840 loop 0a3 92h ; e2 fa15845 loop 0a3a2h ; e2 fa 15841 15846 lds bx, [bp-010h] ; c5 5e f0 15842 15847 or word [bx], ax ; 09 07 … … 15847 15852 mov ds, [bp-006h] ; 8e 5e fa 15848 15853 cmp ax, word [si+002h] ; 3b 44 02 15849 jc short 0a3 b6h ; 72 0615850 jne short 0a3 bch ; 75 0a15854 jc short 0a3c6h ; 72 06 15855 jne short 0a3cch ; 75 0a 15851 15856 cmp dx, word [si] ; 3b 14 15852 jnc short 0a3 bch ; 73 0615857 jnc short 0a3cch ; 73 06 15853 15858 mov AL, strict byte 001h ; b0 01 15854 jmp short 0a3 beh ; eb 0415855 jmp short 0a3 ddh ; eb 2115859 jmp short 0a3ceh ; eb 04 15860 jmp short 0a3edh ; eb 21 15856 15861 xor al, al ; 30 c0 15857 15862 test al, al ; 84 c0 15858 je short 0a3 d1h ; 74 0f15859 jmp short 0a3 ddh ; eb 1915863 je short 0a3e1h ; 74 0f 15864 jmp short 0a3edh ; eb 19 15860 15865 mov cx, strict word 0001fh ; b9 1f 00 15861 15866 sal word [bp-018h], 1 ; d1 66 e8 15862 15867 rcl word [bp-016h], 1 ; d1 56 ea 15863 loop 0a3 c7h ; e2 f815864 jmp short 0a3 d7h ; eb 0615868 loop 0a3d7h ; e2 f8 15869 jmp short 0a3e7h ; eb 06 15865 15870 shr word [bp-016h], 1 ; d1 6e ea 15866 15871 rcr word [bp-018h], 1 ; d1 5e e8 15867 15872 dec word [bp-012h] ; ff 4e ee 15868 jmp near 0a3 59h ; e9 7c ff15873 jmp near 0a369h ; e9 7c ff 15869 15874 mov ax, word [bp-01ch] ; 8b 46 e4 15870 15875 mov dx, word [bp-01ah] ; 8b 56 e6 … … 15875 15880 retn ; c3 15876 15881 times 0x6 db 0 15877 _ASMBitLastSetU16: ; 0xfa 3f0 LB 0x1815882 _ASMBitLastSetU16: ; 0xfa400 LB 0x18 15878 15883 push bp ; 55 15879 15884 db 08bh, 0ech … … 15881 15886 mov cx, word [bp+004h] ; 8b 4e 04 15882 15887 test cx, cx ; 85 c9 15883 je short 0a4 04h ; 74 0a15888 je short 0a414h ; 74 0a 15884 15889 mov ax, strict word 00010h ; b8 10 00 15885 15890 sal cx, 1 ; d1 e1 15886 jc short 0a4 06h ; 72 0515891 jc short 0a416h ; 72 05 15887 15892 dec ax ; 48 15888 jmp short 0a 3fdh ; eb f915893 jmp short 0a40dh ; eb f9 15889 15894 db 033h, 0c0h 15890 15895 ; xor ax, ax ; 33 c0 … … 15892 15897 retn ; c3 15893 15898 15894 ; Padding 0x35 f8 bytes at 0xfa40815895 times 138 16db 015899 ; Padding 0x35e8 bytes at 0xfa418 15900 times 13800 db 0 15896 15901 15897 15902 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 15940 15945 add bp, strict byte 00008h ; 83 c5 08 15941 15946 push ebp ; 66 55 15942 mov bp, 0a1 76h ; bd 76 a115947 mov bp, 0a186h ; bd 86 a1 15943 15948 add byte [bx+si], al ; 00 00 15944 15949 push ebp ; 66 55 … … 16406 16411 cmp AL, strict byte 009h ; 3c 09 16407 16412 jne short 0e0bch ; 75 03 16408 jmp near 0e36 6h ; e9 aa0216413 jmp near 0e368h ; e9 ac 02 16409 16414 cmp AL, strict byte 005h ; 3c 05 16410 16415 je short 0e044h ; 74 84 … … 16624 16629 int 002h ; cd 02 16625 16630 iret ; cf 16626 hard_drive_post: ; 0xfe2d2 LB 0xb d16631 hard_drive_post: ; 0xfe2d2 LB 0xbf 16627 16632 db 033h, 0c0h 16628 16633 ; xor ax, ax ; 33 c0 … … 16666 16671 call 01c9fh ; e8 63 39 16667 16672 call 02118h ; e8 d9 3d 16668 call 09948h ; e8 06 b6 16669 call 087b8h ; e8 73 a4 16670 call 0ed2fh ; e8 e7 09 16671 call 0e2d2h ; e8 87 ff 16673 sti ; fb 16674 call 09958h ; e8 15 b6 16675 cli ; fa 16676 call 087b8h ; e8 71 a4 16677 call 0ed2fh ; e8 e5 09 16678 call 0e2d2h ; e8 85 ff 16672 16679 push CS ; 0e 16673 16680 pop DS ; 1f … … 16675 16682 mov ax, 0c800h ; b8 00 c8 16676 16683 mov dx, 0f000h ; ba 00 f0 16677 call 01600h ; e8 a 93216678 call 0178dh ; e8 3 33416679 call 03b54h ; e8 f 75716684 call 01600h ; e8 a7 32 16685 call 0178dh ; e8 31 34 16686 call 03b54h ; e8 f5 57 16680 16687 sti ; fb 16681 16688 int 019h ; cd 19 16682 16689 sti ; fb 16683 16690 hlt ; f4 16684 jmp short 0e36 1h ; eb fd16691 jmp short 0e363h ; eb fd 16685 16692 cli ; fa 16686 16693 hlt ; f4 … … 16704 16711 sti ; fb 16705 16712 retf 00002h ; ca 02 00 16706 biosorg_check_before_or_at_0E3FCh: ; 0xfe3 8f LB 0x6f16707 times 0x6 ddb 016713 biosorg_check_before_or_at_0E3FCh: ; 0xfe391 LB 0x6d 16714 times 0x6b db 0 16708 16715 db 'XM' 16709 16716 int13_handler: ; 0xfe3fe LB 0x3 … … 17504 17511 popfw ; 9d 17505 17512 jmp short 0f8a5h ; eb 11 17506 call 09a bbh ; e8 24 a217513 call 09acbh ; e8 34 a2 17507 17514 jmp short 0f88eh ; eb f5 17508 17515 int15_handler_mouse: ; 0xff899 LB 0x5 … … 17770 17777 cpu_reset: ; 0xffff0 LB 0x10 17771 17778 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 17772 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 3ch17779 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 097h -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum
r68421 r68773 1 38ab8a791e08812ddd515cba69fbc2ca*VBoxPcBios286.rom1 d0db18f557ac555b6ec57638702f1e83 *VBoxPcBios286.rom -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm
r68421 r68773 1080 1080 section CONST2 progbits vstart=0xda0 align=1 ; size=0x400 class=DATA group=DGROUP 1081 1081 _bios_cvs_version_string: ; 0xf0da0 LB 0x18 1082 db 'VirtualBox 5.2.0_BETA 2', 000h, 000h1082 db 'VirtualBox 5.2.0_BETA3', 000h, 000h 1083 1083 _bios_prefix_string: ; 0xf0db8 LB 0x8 1084 1084 db 'BIOS: ', 000h, 000h … … 1154 1154 times 1120 db 0 1155 1155 1156 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8b 95 class=CODE group=AUTO1156 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8ba5 class=CODE group=AUTO 1157 1157 rom_scan_: ; 0xf1600 LB 0x50 1158 1158 push bp ; 55 … … 1676 1676 mov bx, strict word 0000ah ; bb 0a 00 1677 1677 xor cx, cx ; 31 c9 1678 call 0a0 a0h ; e8 ce 861678 call 0a0b0h ; e8 de 86 1679 1679 mov word [bp-008h], ax ; 89 46 f8 1680 1680 mov cx, dx ; 89 d1 … … 1902 1902 mov dx, word [bp-026h] ; 8b 56 da 1903 1903 mov si, word [bp-01eh] ; 8b 76 e2 1904 call 0a0 e0h ; e8 dc 841904 call 0a0f0h ; e8 ec 84 1905 1905 mov ax, dx ; 89 d0 1906 1906 xor ah, dh ; 30 f4 … … 2344 2344 mov dx, word [es:si] ; 26 8b 14 2345 2345 mov si, strict word 00018h ; be 18 00 2346 call 0a0 e0h ; e8 80 802346 call 0a0f0h ; e8 90 80 2347 2347 xor dh, dh ; 30 f6 2348 2348 mov word [bp-016h], dx ; 89 56 ea … … 2354 2354 mov dx, word [es:si] ; 26 8b 14 2355 2355 mov si, strict word 00020h ; be 20 00 2356 call 0a0 e0h ; e8 60 802356 call 0a0f0h ; e8 70 80 2357 2357 mov bx, dx ; 89 d3 2358 2358 mov ax, word [bp-01eh] ; 8b 46 e2 … … 2385 2385 mov dx, word [es:si] ; 26 8b 14 2386 2386 mov si, strict word 00008h ; be 08 00 2387 call 0a0 e0h ; e8 0f 802387 call 0a0f0h ; e8 1f 80 2388 2388 mov word [bp-014h], dx ; 89 56 ec 2389 2389 mov bx, word [bp-018h] ; 8b 5e e8 … … 2394 2394 mov dx, word [es:si] ; 26 8b 14 2395 2395 mov si, strict word 00018h ; be 18 00 2396 call 0a0 e0h ; e8 f1 7f2396 call 0a0f0h ; e8 01 80 2397 2397 and dx, strict byte 0000fh ; 83 e2 0f 2398 2398 or dl, 040h ; 80 ca 40 … … 2950 2950 mov dx, word [es:si+036h] ; 26 8b 54 36 2951 2951 mov si, strict word 0000bh ; be 0b 00 2952 call 0a0 e0h ; e8 29 7a2952 call 0a0f0h ; e8 39 7a 2953 2953 mov word [bp-030h], dx ; 89 56 d0 2954 2954 mov word [bp-02eh], cx ; 89 4e d2 … … 3221 3221 mov dx, word [bp-01eh] ; 8b 56 e2 3222 3222 mov si, strict word 00018h ; be 18 00 3223 call 0a0 e0h ; e8 53 773223 call 0a0f0h ; e8 63 77 3224 3224 xor dh, dh ; 30 f6 3225 3225 mov word [bp-01ch], dx ; 89 56 e4 … … 3229 3229 mov dx, word [bp-01eh] ; 8b 56 e2 3230 3230 mov si, strict word 00020h ; be 20 00 3231 call 0a0 e0h ; e8 3c 773231 call 0a0f0h ; e8 4c 77 3232 3232 mov bx, dx ; 89 d3 3233 3233 mov ax, word [bp-01ah] ; 8b 46 e6 … … 3263 3263 mov dx, word [bp-01eh] ; 8b 56 e2 3264 3264 mov si, strict word 00008h ; be 08 00 3265 call 0a0 e0h ; e8 e8 763265 call 0a0f0h ; e8 f8 76 3266 3266 mov word [bp-010h], ax ; 89 46 f0 3267 3267 mov word [bp-014h], bx ; 89 5e ec … … 3270 3270 mov word [bp-026h], dx ; 89 56 da 3271 3271 mov si, strict word 00010h ; be 10 00 3272 call 0a0 e0h ; e8 d3 763272 call 0a0f0h ; e8 e3 76 3273 3273 mov word [bp-01eh], dx ; 89 56 e2 3274 3274 mov ax, dx ; 89 d0 … … 5528 5528 mov dx, ss ; 8c d2 5529 5529 lea ax, [bp-026h] ; 8d 46 da 5530 call 0a1 00h ; e8 e8 615530 call 0a110h ; e8 f8 61 5531 5531 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 5532 5532 mov ax, strict word 00011h ; b8 11 00 … … 5988 5988 xor dl, dl ; 30 d2 5989 5989 xor cx, cx ; 31 c9 5990 call 0a0 60h ; e8 e6 5b5990 call 0a070h ; e8 f6 5b 5991 5991 xor bx, bx ; 31 db 5992 5992 add ax, si ; 01 f0 … … 5994 5994 mov bx, di ; 89 fb 5995 5995 xor cx, cx ; 31 c9 5996 call 0a0 60h ; e8 d9 5b5996 call 0a070h ; e8 e9 5b 5997 5997 mov bx, ax ; 89 c3 5998 5998 mov ax, word [bp-010h] ; 8b 46 f0 … … 6029 6029 mov dx, ss ; 8c d2 6030 6030 lea ax, [bp-02eh] ; 8d 46 d2 6031 call 0a1 00h ; e8 22 5c6031 call 0a110h ; e8 32 5c 6032 6032 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 6033 6033 mov ax, word [bp-014h] ; 8b 46 ec … … 6336 6336 mov dx, ss ; 8c d2 6337 6337 lea ax, [bp-02ch] ; 8d 46 d4 6338 call 0a1 00h ; e8 87 586338 call 0a110h ; e8 97 58 6339 6339 mov word [bp-02ch], strict word 00028h ; c7 46 d4 28 00 6340 6340 mov ax, word [bp-018h] ; 8b 46 e8 … … 8185 8185 mov dx, word [bp+00ch] ; 8b 56 0c 8186 8186 mov si, strict word 00020h ; be 20 00 8187 call 0a0 e0h ; e8 e5 458187 call 0a0f0h ; e8 f5 45 8188 8188 test ax, ax ; 85 c0 8189 8189 jne short 05b0bh ; 75 0c … … 8223 8223 mov bx, strict word 0003fh ; bb 3f 00 8224 8224 xor cx, cx ; 31 c9 8225 call 0a0 60h ; e8 0c 458225 call 0a070h ; e8 1c 45 8226 8226 mov bx, ax ; 89 c3 8227 8227 mov cx, dx ; 89 d1 8228 8228 mov ax, word [bp-004h] ; 8b 46 fc 8229 8229 mov dx, si ; 89 f2 8230 call 0a0 a0h ; e8 40 458230 call 0a0b0h ; e8 50 45 8231 8231 mov word [es:di+002h], ax ; 26 89 45 02 8232 8232 cmp ax, 00400h ; 3d 00 04 … … 8452 8452 mov bx, cx ; 89 cb 8453 8453 xor cx, cx ; 31 c9 8454 call 0a0 60h ; e8 d7 428454 call 0a070h ; e8 e7 42 8455 8455 xor bx, bx ; 31 db 8456 8456 add ax, word [bp-008h] ; 03 46 f8 … … 8458 8458 mov bx, word [bp-00ah] ; 8b 5e f6 8459 8459 xor cx, cx ; 31 c9 8460 call 0a0 60h ; e8 c8 428460 call 0a070h ; e8 d8 42 8461 8461 xor bx, bx ; 31 db 8462 8462 add ax, word [bp-006h] ; 03 46 fa … … 8618 8618 mov bx, word [bp-008h] ; 8b 5e f8 8619 8619 xor cx, cx ; 31 c9 8620 call 0a0 60h ; e8 00 418620 call 0a070h ; e8 10 41 8621 8621 mov bx, word [bp-006h] ; 8b 5e fa 8622 8622 xor cx, cx ; 31 c9 8623 call 0a0 60h ; e8 f8 408623 call 0a070h ; e8 08 41 8624 8624 mov word [bp-010h], ax ; 89 46 f0 8625 8625 mov word [bp-00eh], dx ; 89 56 f2 … … 8758 8758 xor bx, bx ; 31 db 8759 8759 mov si, strict word 00020h ; be 20 00 8760 call 0a 0f0h ; e8 04 408760 call 0a100h ; e8 14 40 8761 8761 mov word [bp-00eh], bx ; 89 5e f2 8762 8762 mov bx, word [es:di+008h] ; 26 8b 5d 08 … … 8909 8909 mov bx, word [bp-00eh] ; 8b 5e f2 8910 8910 mov si, strict word 00020h ; be 20 00 8911 call 0a0 e0h ; e8 1a 3e8911 call 0a0f0h ; e8 2a 3e 8912 8912 mov bx, di ; 89 fb 8913 8913 mov word [es:bx+014h], dx ; 26 89 57 14 … … 9266 9266 mov bx, strict word 0000fh ; bb 0f 00 9267 9267 xor cx, cx ; 31 c9 9268 call 0a0 a0h ; e8 41 3a9268 call 0a0b0h ; e8 51 3a 9269 9269 mov cx, ax ; 89 c1 9270 9270 mov bx, dx ; 89 d3 … … 12276 12276 mov dx, ss ; 8c d2 12277 12277 lea ax, [bp-046h] ; 8d 46 ba 12278 call 0a1 00h ; e8 49 1d12278 call 0a110h ; e8 59 1d 12279 12279 mov byte [bp-046h], 09eh ; c6 46 ba 9e 12280 12280 mov byte [bp-045h], 010h ; c6 46 bb 10 … … 12401 12401 mov dx, word [bp-016h] ; 8b 56 ea 12402 12402 mov si, strict word 0000ch ; be 0c 00 12403 call 0a0 e0h ; e8 e6 1b12403 call 0a0f0h ; e8 f6 1b 12404 12404 mov word [bp-018h], ax ; 89 46 e8 12405 12405 mov word [bp-014h], bx ; 89 5e ec … … 12421 12421 mov dx, word [bp-016h] ; 8b 56 ea 12422 12422 mov si, strict word 00006h ; be 06 00 12423 call 0a0 e0h ; e8 a6 1b12423 call 0a0f0h ; e8 b6 1b 12424 12424 mov si, word [bp-020h] ; 8b 76 e0 12425 12425 add si, dx ; 01 d6 … … 12439 12439 mov dx, si ; 89 f2 12440 12440 mov si, strict word 00008h ; be 08 00 12441 call 0a0 e0h ; e8 76 1b12441 call 0a0f0h ; e8 86 1b 12442 12442 mov word [bp-022h], bx ; 89 5e de 12443 12443 mov word [bp-02ch], cx ; 89 4e d4 … … 12448 12448 mov dx, word [bp-02ah] ; 8b 56 d6 12449 12449 mov si, strict word 00010h ; be 10 00 12450 call 0a0 e0h ; e8 5b 1b12450 call 0a0f0h ; e8 6b 1b 12451 12451 mov si, word [bp-01ah] ; 8b 76 e6 12452 12452 add si, dx ; 01 d6 … … 12472 12472 mov dx, word [bp-016h] ; 8b 56 ea 12473 12473 mov si, strict word 0000bh ; be 0b 00 12474 call 0a0 e0h ; e8 13 1b12474 call 0a0f0h ; e8 23 1b 12475 12475 mov si, dx ; 89 d6 12476 12476 mov dx, cx ; 89 ca … … 12666 12666 push cx ; 51 12667 12667 push si ; 56 12668 call 09e c7h ; e8 bc1612668 call 09ed3h ; e8 c8 16 12669 12669 mov dx, ax ; 89 c2 12670 12670 cmp ax, strict word 0ffffh ; 3d ff ff … … 12677 12677 mov bx, strict word 00004h ; bb 04 00 12678 12678 mov dx, si ; 89 f2 12679 call 09f 59h ; e8 321712679 call 09f65h ; e8 3e 17 12680 12680 lea sp, [bp-006h] ; 8d 66 fa 12681 12681 pop si ; 5e … … 12954 12954 mov ax, 00080h ; b8 80 00 12955 12955 mov dx, word [bp-00ah] ; 8b 56 f6 12956 call 0a1 00h ; e8 8e 1612956 call 0a110h ; e8 9e 16 12957 12957 mov es, [bp-00ah] ; 8e 46 f6 12958 12958 mov word [es:di+00080h], 08027h ; 26 c7 85 80 00 27 80 … … 12972 12972 mov dx, word [es:si] ; 26 8b 14 12973 12973 mov si, strict word 00008h ; be 08 00 12974 call 0a0 e0h ; e8 2a 1612974 call 0a0f0h ; e8 3a 16 12975 12975 mov es, [bp-00ah] ; 8e 46 f6 12976 12976 mov byte [es:di+00085h], dl ; 26 88 95 85 00 … … 12983 12983 mov dx, word [es:si] ; 26 8b 14 12984 12984 mov si, strict word 00010h ; be 10 00 12985 call 0a0 e0h ; e8 04 1612985 call 0a0f0h ; e8 14 16 12986 12986 mov es, [bp-00ah] ; 8e 46 f6 12987 12987 mov byte [es:di+00086h], dl ; 26 88 95 86 00 … … 12995 12995 mov dx, word [es:si] ; 26 8b 14 12996 12996 mov si, strict word 00018h ; be 18 00 12997 call 0a0 e0h ; e8 d8 1512997 call 0a0f0h ; e8 e8 15 12998 12998 mov es, [bp-00ah] ; 8e 46 f6 12999 12999 mov byte [es:di+00088h], dl ; 26 88 95 88 00 … … 13006 13006 mov dx, word [es:si] ; 26 8b 14 13007 13007 mov si, strict word 00020h ; be 20 00 13008 call 0a0 e0h ; e8 b2 1513008 call 0a0f0h ; e8 c2 15 13009 13009 mov es, [bp-00ah] ; 8e 46 f6 13010 13010 mov byte [es:di+00089h], dl ; 26 88 95 89 00 … … 13017 13017 mov dx, word [es:si] ; 26 8b 14 13018 13018 mov si, strict word 00028h ; be 28 00 13019 call 0a0 e0h ; e8 8c 1513019 call 0a0f0h ; e8 9c 15 13020 13020 mov es, [bp-00ah] ; 8e 46 f6 13021 13021 mov byte [es:di+0008ah], dl ; 26 88 95 8a 00 … … 13031 13031 mov bx, word [bp-010h] ; 8b 5e f0 13032 13032 xor cx, cx ; 31 c9 13033 call 0a0 60h ; e8 d7 1413033 call 0a070h ; e8 e7 14 13034 13034 push dx ; 52 13035 13035 push ax ; 50 … … 13041 13041 mov ax, 0026ah ; b8 6a 02 13042 13042 mov dx, word [bp-00ah] ; 8b 56 f6 13043 call 09fb 0h ; e8 0b1413043 call 09fbch ; e8 17 14 13044 13044 mov es, [bp-00ah] ; 8e 46 f6 13045 13045 mov ax, word [es:di+0027eh] ; 26 8b 85 7e 02 … … 13099 13099 add ax, 0026ah ; 05 6a 02 13100 13100 mov dx, cx ; 89 ca 13101 call 0a0 29h ; e8 ac1313101 call 0a035h ; e8 b8 13 13102 13102 mov es, cx ; 8e c1 13103 13103 mov al, byte [es:bx+003h] ; 26 8a 47 03 … … 13181 13181 mov ax, di ; 89 f8 13182 13182 mov dx, word [bp-00ch] ; 8b 56 f4 13183 call 0a1 00h ; e8 d3 1313183 call 0a110h ; e8 e3 13 13184 13184 lea ax, [di+00080h] ; 8d 85 80 00 13185 13185 mov cx, strict word 00040h ; b9 40 00 13186 13186 xor bx, bx ; 31 db 13187 13187 mov dx, word [bp-00ch] ; 8b 56 f4 13188 call 0a1 00h ; e8 c4 1313188 call 0a110h ; e8 d4 13 13189 13189 lea ax, [di+00200h] ; 8d 85 00 02 13190 13190 mov cx, strict word 00060h ; b9 60 00 13191 13191 xor bx, bx ; 31 db 13192 13192 mov dx, word [bp-00ch] ; 8b 56 f4 13193 call 0a1 00h ; e8 b5 1313193 call 0a110h ; e8 c5 13 13194 13194 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 13195 13195 sal ax, 007h ; c1 e0 07 … … 13362 13362 mov ax, si ; 89 f0 13363 13363 mov dx, word [bp-00ah] ; 8b 56 f6 13364 call 0a1 00h ; e8 55 1213364 call 0a110h ; e8 65 12 13365 13365 lea ax, [si+00080h] ; 8d 84 80 00 13366 13366 mov cx, strict word 00040h ; b9 40 00 13367 13367 xor bx, bx ; 31 db 13368 13368 mov dx, word [bp-00ah] ; 8b 56 f6 13369 call 0a1 00h ; e8 46 1213369 call 0a110h ; e8 56 12 13370 13370 lea di, [si+00200h] ; 8d bc 00 02 13371 13371 mov cx, strict word 00060h ; b9 60 00 … … 13373 13373 mov ax, di ; 89 f8 13374 13374 mov dx, word [bp-00ah] ; 8b 56 f6 13375 call 0a1 00h ; e8 35 1213375 call 0a110h ; e8 45 12 13376 13376 movzx bx, byte [bp-008h] ; 0f b6 5e f8 13377 13377 sal bx, 007h ; c1 e3 07 … … 13700 13700 mov dx, word [bp+008h] ; 8b 56 08 13701 13701 xor cx, cx ; 31 c9 13702 call 0a0 a0h ; e8 8c 0e13702 call 0a0b0h ; e8 9c 0e 13703 13703 mov word [es:si+00eh], ax ; 26 89 44 0e 13704 13704 xor di, di ; 31 ff … … 13724 13724 mov ax, 000c0h ; b8 c0 00 13725 13725 mov dx, word [bp-00ah] ; 8b 56 f6 13726 call 0a1 10h ; e8 ac 0e13726 call 0a120h ; e8 bc 0e 13727 13727 mov es, [bp-008h] ; 8e 46 f8 13728 13728 mov word [es:si+018h], di ; 26 89 7c 18 … … 13780 13780 pop bp ; 5d 13781 13781 retn 0000ch ; c2 0c 00 13782 ahci_port_detect_device_: ; 0xf930c LB 0x4b1 13782 wait_ticks_device_init_: ; 0xf930c LB 0x5 13783 push bp ; 55 13784 mov bp, sp ; 89 e5 13785 pop bp ; 5d 13786 retn ; c3 13787 ahci_port_detect_device_: ; 0xf9311 LB 0x4b8 13783 13788 push bp ; 55 13784 13789 mov bp, sp ; 89 e5 … … 13786 13791 push si ; 56 13787 13792 push di ; 57 13788 sub sp, 0022 4h ; 81 ec 240213793 sub sp, 0022ch ; 81 ec 2c 02 13789 13794 mov si, ax ; 89 c6 13790 mov word [bp-012h], dx ; 89 56 ee 13791 mov byte [bp-00ah], bl ; 88 5e f6 13795 mov word [bp-02ah], dx ; 89 56 d6 13796 mov byte [bp-008h], bl ; 88 5e f8 13797 mov word [bp-026h], strict word 00000h ; c7 46 da 00 00 13792 13798 movzx di, bl ; 0f b6 fb 13793 13799 mov bx, di ; 89 fb 13794 call 08e15h ; e8 e ffa13800 call 08e15h ; e8 e5 fa 13795 13801 mov dx, strict word 0000eh ; ba 0e 00 13796 13802 mov ax, strict word 00040h ; b8 40 00 13797 call 01765h ; e8 368413798 mov word [bp-01 0h], 00122h ; c7 46 f022 0113799 mov word [bp-0 0eh], ax ; 89 46 f213800 sal di, 007h ; c1 e7 0713801 mov word [bp-024h], di ; 89 7e dc13802 lea ax, [di+0012ch] ; 8d 85 2c 0113803 call 01765h ; e8 2c 84 13804 mov word [bp-012h], 00122h ; c7 46 ee 22 01 13805 mov word [bp-010h], ax ; 89 46 f0 13806 mov ax, di ; 89 f8 13807 sal ax, 007h ; c1 e0 07 13808 add ax, 0012ch ; 05 2c 01 13803 13809 cwd ; 99 13804 mov bx, ax ; 89 c313805 mov di, dx ; 89 d713806 mov es, [bp-0 12h] ; 8e 46 ee13810 mov di, ax ; 89 c7 13811 mov bx, dx ; 89 d3 13812 mov es, [bp-02ah] ; 8e 46 d6 13807 13813 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 13808 mov cx, di ; 89 f913814 mov cx, bx ; 89 d9 13809 13815 xchg cx, ax ; 91 13810 13816 sal eax, 010h ; 66 c1 e0 10 … … 13812 13818 ; mov ax, cx ; 8b c1 13813 13819 out DX, eax ; 66 ef 13814 mov es, [bp-0 12h] ; 8e 46 ee13820 mov es, [bp-02ah] ; 8e 46 d6 13815 13821 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 13816 13822 add dx, strict byte 00004h ; 83 c2 04 … … 13822 13828 ; mov ax, cx ; 8b c1 13823 13829 out DX, eax ; 66 ef 13824 mov es, [bp-0 12h] ; 8e 46 ee13830 mov es, [bp-02ah] ; 8e 46 d6 13825 13831 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 13826 mov ax, bx ; 89 d813827 mov cx, di ; 89 f913832 mov ax, di ; 89 f8 13833 mov cx, bx ; 89 d9 13828 13834 xchg cx, ax ; 91 13829 13835 sal eax, 010h ; 66 c1 e0 10 … … 13831 13837 ; mov ax, cx ; 8b c1 13832 13838 out DX, eax ; 66 ef 13833 mov es, [bp-0 12h] ; 8e 46 ee13839 mov es, [bp-02ah] ; 8e 46 d6 13834 13840 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 13835 13841 add dx, strict byte 00004h ; 83 c2 04 … … 13841 13847 ; mov ax, cx ; 8b c1 13842 13848 out DX, eax ; 66 ef 13843 mov ax, word [bp-024h] ; 8b 46 dc 13849 mov di, strict word 0006ch ; bf 6c 00 13850 mov ax, strict word 00040h ; b8 40 00 13851 mov word [bp-014h], ax ; 89 46 ec 13852 mov es, ax ; 8e c0 13853 mov ax, word [es:di] ; 26 8b 05 13854 add ax, strict word 00003h ; 05 03 00 13855 mov word [bp-024h], ax ; 89 46 dc 13856 mov ax, word [es:di+002h] ; 26 8b 45 02 13857 adc ax, strict word 00000h ; 15 00 00 13858 mov word [bp-01ch], ax ; 89 46 e4 13859 mov es, [bp-014h] ; 8e 46 ec 13860 mov ax, word [es:di+002h] ; 26 8b 45 02 13861 cmp ax, word [bp-01ch] ; 3b 46 e4 13862 jc short 093e2h ; 72 11 13863 mov ax, word [es:di+002h] ; 26 8b 45 02 13864 cmp ax, word [bp-01ch] ; 3b 46 e4 13865 jne short 0942dh ; 75 53 13866 mov ax, word [es:di] ; 26 8b 05 13867 cmp ax, word [bp-024h] ; 3b 46 dc 13868 jnc short 0942dh ; 73 4b 13869 movzx ax, byte [bp-008h] ; 0f b6 46 f8 13870 sal ax, 007h ; c1 e0 07 13844 13871 add ax, 00128h ; 05 28 01 13845 13872 cwd ; 99 13846 mov es, [bp-0 12h] ; 8e 46 ee13873 mov es, [bp-02ah] ; 8e 46 d6 13847 13874 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 13848 13875 mov cx, dx ; 89 d1 … … 13853 13880 ; mov ax, cx ; 8b c1 13854 13881 out DX, eax ; 66 ef 13855 mov es, [bp-0 12h] ; 8e 46 ee13882 mov es, [bp-02ah] ; 8e 46 d6 13856 13883 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 13857 13884 add dx, strict byte 00004h ; 83 c2 04 … … 13861 13888 shr eax, 010h ; 66 c1 e8 10 13862 13889 xchg dx, ax ; 92 13890 mov word [bp-028h], ax ; 89 46 d8 13891 mov word [bp-022h], dx ; 89 56 de 13863 13892 push strict byte 00000h ; 6a 00 13864 13893 mov bx, strict word 0000fh ; bb 0f 00 13865 13894 xor cx, cx ; 31 c9 13866 call 088b0h ; e8 d7 f4 13867 test ax, ax ; 85 c0 13868 je near 097b5h ; 0f 84 d6 03 13869 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 13870 sal ax, 007h ; c1 e0 07 13871 mov word [bp-018h], ax ; 89 46 e8 13872 add ax, 00128h ; 05 28 01 13895 call 088b0h ; e8 8a f4 13896 cmp ax, strict word 00003h ; 3d 03 00 13897 jne short 093c5h ; 75 9a 13898 jmp short 09435h ; eb 08 13899 cmp word [bp-026h], strict byte 00000h ; 83 7e da 00 13900 je near 097c1h ; 0f 84 8c 03 13901 push strict byte 00000h ; 6a 00 13902 mov bx, strict word 0000fh ; bb 0f 00 13903 xor cx, cx ; 31 c9 13904 mov ax, word [bp-028h] ; 8b 46 d8 13905 mov dx, word [bp-022h] ; 8b 56 de 13906 call 088b0h ; e8 6b f4 13907 cmp ax, strict word 00003h ; 3d 03 00 13908 jne near 097c1h ; 0f 85 75 03 13909 movzx di, byte [bp-008h] ; 0f b6 7e f8 13910 sal di, 007h ; c1 e7 07 13911 lea ax, [di+00130h] ; 8d 85 30 01 13873 13912 cwd ; 99 13874 mov es, [bp-0 12h] ; 8e 46 ee13913 mov es, [bp-02ah] ; 8e 46 d6 13875 13914 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 13876 13915 mov cx, dx ; 89 d1 … … 13881 13920 ; mov ax, cx ; 8b c1 13882 13921 out DX, eax ; 66 ef 13883 mov es, [bp-012h] ; 8e 46 ee 13884 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 13885 add dx, strict byte 00004h ; 83 c2 04 13886 in eax, DX ; 66 ed 13887 db 08bh, 0d0h 13888 ; mov dx, ax ; 8b d0 13889 shr eax, 010h ; 66 c1 e8 10 13890 xchg dx, ax ; 92 13891 mov di, ax ; 89 c7 13892 mov word [bp-022h], dx ; 89 56 de 13893 push strict byte 00000h ; 6a 00 13894 mov bx, strict word 0000fh ; bb 0f 00 13895 xor cx, cx ; 31 c9 13896 call 088b0h ; e8 8b f4 13897 cmp ax, strict word 00001h ; 3d 01 00 13898 je short 093dfh ; 74 b5 13899 push strict byte 00000h ; 6a 00 13900 mov bx, strict word 0000fh ; bb 0f 00 13901 xor cx, cx ; 31 c9 13902 mov ax, di ; 89 f8 13903 mov dx, word [bp-022h] ; 8b 56 de 13904 call 088b0h ; e8 77 f4 13905 cmp ax, strict word 00003h ; 3d 03 00 13906 jne near 097b5h ; 0f 85 75 03 13907 mov ax, word [bp-018h] ; 8b 46 e8 13908 add ax, 00130h ; 05 30 01 13909 cwd ; 99 13910 mov es, [bp-012h] ; 8e 46 ee 13911 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 13912 mov cx, dx ; 89 d1 13913 mov dx, bx ; 89 da 13914 xchg cx, ax ; 91 13915 sal eax, 010h ; 66 c1 e0 10 13916 db 08bh, 0c1h 13917 ; mov ax, cx ; 8b c1 13918 out DX, eax ; 66 ef 13919 mov es, [bp-012h] ; 8e 46 ee 13922 mov es, [bp-02ah] ; 8e 46 d6 13920 13923 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 13921 13924 add dx, strict byte 00004h ; 83 c2 04 … … 13927 13930 ; mov ax, cx ; 8b c1 13928 13931 out DX, eax ; 66 ef 13929 les bx, [bp-01 0h] ; c4 5e f013932 les bx, [bp-012h] ; c4 5e ee 13930 13933 mov al, byte [es:bx+00231h] ; 26 8a 87 31 02 13931 mov byte [bp-00 8h], al ; 88 46 f813934 mov byte [bp-00ah], al ; 88 46 f6 13932 13935 cmp AL, strict byte 004h ; 3c 04 13933 jnc near 097b5h ; 0f 83 2f 03 13934 mov ax, word [bp-018h] ; 8b 46 e8 13935 add ax, 00118h ; 05 18 01 13936 mov es, [bp-012h] ; 8e 46 ee 13936 jnc near 097c1h ; 0f 83 2a 03 13937 lea ax, [di+00118h] ; 8d 85 18 01 13938 mov es, [bp-02ah] ; 8e 46 d6 13937 13939 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 13938 13940 xor cx, cx ; 31 c9 … … 13958 13960 ; mov ax, cx ; 8b c1 13959 13961 out DX, eax ; 66 ef 13960 mov ax, word [bp-018h] ; 8b 46 e8 13961 add ax, 00124h ; 05 24 01 13962 lea ax, [di+00124h] ; 8d 85 24 01 13962 13963 cwd ; 99 13963 mov es, [bp-0 12h] ; 8e 46 ee13964 mov es, [bp-02ah] ; 8e 46 d6 13964 13965 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 13965 13966 mov cx, dx ; 89 d1 … … 13970 13971 ; mov ax, cx ; 8b c1 13971 13972 out DX, eax ; 66 ef 13972 mov es, [bp-0 12h] ; 8e 46 ee13973 mov es, [bp-02ah] ; 8e 46 d6 13973 13974 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 13974 13975 add dx, strict byte 00004h ; 83 c2 04 … … 13978 13979 shr eax, 010h ; 66 c1 e8 10 13979 13980 xchg dx, ax ; 92 13980 mov di, ax ; 89 c713981 mov bx, ax ; 89 c3 13981 13982 mov ax, dx ; 89 d0 13982 mov cl, byte [bp-008h] ; 8a 4e f8 13983 add cl, 00ch ; 80 c1 0c 13984 test dx, dx ; 85 d2 13985 jne near 0970bh ; 0f 85 0d 02 13986 cmp di, 00101h ; 81 ff 01 01 13987 jne near 0970bh ; 0f 85 05 02 13988 les bx, [bp-010h] ; c4 5e f0 13983 mov dl, byte [bp-00ah] ; 8a 56 f6 13984 add dl, 00ch ; 80 c2 0c 13985 mov byte [bp-00eh], dl ; 88 56 f2 13986 test ax, ax ; 85 c0 13987 jne near 09713h ; 0f 85 05 02 13988 cmp bx, 00101h ; 81 fb 01 01 13989 jne near 09713h ; 0f 85 fd 01 13990 les bx, [bp-012h] ; c4 5e ee 13989 13991 db 066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h 13990 13992 ; mov dword [es:bx+004h], strict dword 000000000h ; 66 26 c7 47 04 00 00 00 00 13991 13993 db 066h, 026h, 0c7h, 007h, 000h, 000h, 000h, 000h 13992 13994 ; mov dword [es:bx], strict dword 000000000h ; 66 26 c7 07 00 00 00 00 13993 lea dx, [bp-002 2ah] ; 8d 96 d6fd13995 lea dx, [bp-00232h] ; 8d 96 ce fd 13994 13996 mov word [es:bx+008h], dx ; 26 89 57 08 13995 13997 mov [es:bx+00ah], ss ; 26 8c 57 0a … … 13997 13999 ; mov dword [es:bx+00eh], strict dword 002000001h ; 66 26 c7 47 0e 01 00 00 02 13998 14000 mov bx, 000ech ; bb ec 00 13999 mov ax, word [bp-01 0h] ; 8b 46 f014001 mov ax, word [bp-012h] ; 8b 46 ee 14000 14002 mov dx, es ; 8c c2 14001 call 08a34h ; e8 fa f4 14002 mov byte [bp-00ch], cl ; 88 4e f4 14003 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14003 call 08a34h ; e8 ea f4 14004 mov al, byte [bp-00eh] ; 8a 46 f2 14005 mov byte [bp-00ch], al ; 88 46 f4 14006 test byte [bp-00232h], 080h ; f6 86 ce fd 80 14004 14007 db 00fh, 095h, 0c0h 14005 14008 ; setne al ; 0f 95 c0 14006 14009 xor ah, ah ; 30 e4 14007 mov dx, word [bp-00228h] ; 8b 96 d8 fd 14010 mov dx, word [bp-00230h] ; 8b 96 d0 fd 14011 mov word [bp-01eh], dx ; 89 56 e2 14012 mov dx, word [bp-0022ch] ; 8b 96 d4 fd 14008 14013 mov word [bp-020h], dx ; 89 56 e0 14009 mov dx, word [bp-00224h] ; 8b 96 dc fd 14010 mov word [bp-01ch], dx ; 89 56 e4 14011 mov dx, word [bp-0021eh] ; 8b 96 e2 fd 14012 mov word [bp-01eh], dx ; 89 56 e2 14013 mov dx, word [bp-001b2h] ; 8b 96 4e fe 14014 mov dx, word [bp-00226h] ; 8b 96 da fd 14014 14015 mov word [bp-01ah], dx ; 89 56 e6 14015 mov di, word [bp-001b0h] ; 8b be 50 fe 14016 mov dword [bp-016h], strict dword 000000000h ; 66 c7 46 ea 00 00 00 00 14017 cmp di, 00fffh ; 81 ff ff 0f 14018 jne short 09593h ; 75 1e 14019 cmp dx, strict byte 0ffffh ; 83 fa ff 14020 jne short 09593h ; 75 19 14021 mov dx, word [bp-0015ch] ; 8b 96 a4 fe 14022 mov word [bp-014h], dx ; 89 56 ec 14023 mov dx, word [bp-0015eh] ; 8b 96 a2 fe 14016 mov di, word [bp-001bah] ; 8b be 46 fe 14017 mov si, word [bp-001b8h] ; 8b b6 48 fe 14018 mov dword [bp-018h], strict dword 000000000h ; 66 c7 46 e8 00 00 00 00 14019 cmp si, 00fffh ; 81 fe ff 0f 14020 jne short 095a0h ; 75 1b 14021 cmp di, strict byte 0ffffh ; 83 ff ff 14022 jne short 095a0h ; 75 16 14023 mov dx, word [bp-00164h] ; 8b 96 9c fe 14024 14024 mov word [bp-016h], dx ; 89 56 ea 14025 mov di, word [bp-00160h] ; 8b be a0 fe 14026 mov dx, word [bp-00162h] ; 8b 96 9e fe 14027 mov word [bp-01ah], dx ; 89 56 e6 14028 movzx bx, byte [bp-008h] ; 0f b6 5e f8 14029 mov es, [bp-00eh] ; 8e 46 f2 14030 add bx, word [bp-010h] ; 03 5e f0 14031 mov ah, byte [bp-00ah] ; 8a 66 f6 14025 mov dx, word [bp-00166h] ; 8b 96 9a fe 14026 mov word [bp-018h], dx ; 89 56 e8 14027 mov si, word [bp-00168h] ; 8b b6 98 fe 14028 mov di, word [bp-0016ah] ; 8b be 96 fe 14029 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 14030 mov es, [bp-010h] ; 8e 46 f0 14031 add bx, word [bp-012h] ; 03 5e ee 14032 mov ah, byte [bp-008h] ; 8a 66 f8 14032 14033 mov byte [es:bx+0022dh], ah ; 26 88 a7 2d 02 14033 14034 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 14034 14035 imul dx, dx, strict byte 0001ch ; 6b d2 1c 14035 mov si, word [bp-010h] ; 8b 76 f0 14036 add si, dx ; 01 d6 14037 mov word [es:si+022h], 0ff05h ; 26 c7 44 22 05 ff 14038 mov byte [es:si+024h], al ; 26 88 44 24 14039 mov byte [es:si+025h], 000h ; 26 c6 44 25 00 14040 mov word [es:si+028h], 00200h ; 26 c7 44 28 00 02 14041 mov byte [es:si+027h], 001h ; 26 c6 44 27 01 14042 mov ax, word [bp-014h] ; 8b 46 ec 14043 mov word [es:si+03ch], ax ; 26 89 44 3c 14036 mov bx, word [bp-012h] ; 8b 5e ee 14037 add bx, dx ; 01 d3 14038 mov word [es:bx+022h], 0ff05h ; 26 c7 47 22 05 ff 14039 mov byte [es:bx+024h], al ; 26 88 47 24 14040 mov byte [es:bx+025h], 000h ; 26 c6 47 25 00 14041 mov word [es:bx+028h], 00200h ; 26 c7 47 28 00 02 14042 mov byte [es:bx+027h], 001h ; 26 c6 47 27 01 14044 14043 mov ax, word [bp-016h] ; 8b 46 ea 14045 mov word [es:si+03ah], ax ; 26 89 44 3a 14046 mov word [es:si+038h], di ; 26 89 7c 38 14044 mov word [es:bx+03ch], ax ; 26 89 47 3c 14045 mov ax, word [bp-018h] ; 8b 46 e8 14046 mov word [es:bx+03ah], ax ; 26 89 47 3a 14047 mov word [es:bx+038h], si ; 26 89 77 38 14048 mov word [es:bx+036h], di ; 26 89 7f 36 14049 mov ax, word [bp-020h] ; 8b 46 e0 14050 mov word [es:bx+030h], ax ; 26 89 47 30 14051 mov ax, word [bp-01eh] ; 8b 46 e2 14052 mov word [es:bx+032h], ax ; 26 89 47 32 14047 14053 mov ax, word [bp-01ah] ; 8b 46 e6 14048 mov word [es:si+036h], ax ; 26 89 44 36 14049 mov ax, word [bp-01ch] ; 8b 46 e4 14050 mov word [es:si+030h], ax ; 26 89 44 30 14051 mov ax, word [bp-020h] ; 8b 46 e0 14052 mov word [es:si+032h], ax ; 26 89 44 32 14053 mov ax, word [bp-01eh] ; 8b 46 e2 14054 mov word [es:si+034h], ax ; 26 89 44 34 14055 mov al, byte [bp-008h] ; 8a 46 f8 14054 mov word [es:bx+034h], ax ; 26 89 47 34 14055 mov al, byte [bp-00ah] ; 8a 46 f6 14056 14056 cmp AL, strict byte 001h ; 3c 01 14057 jc short 096 0ch ; 72 0c14058 jbe short 0961 4h ; 76 1214057 jc short 09616h ; 72 0c 14058 jbe short 0961eh ; 76 12 14059 14059 cmp AL, strict byte 003h ; 3c 03 14060 je short 096 1ch ; 74 1614060 je short 09626h ; 74 16 14061 14061 cmp AL, strict byte 002h ; 3c 02 14062 je short 096 18h ; 74 0e14063 jmp short 096 65h ; eb 5914062 je short 09622h ; 74 0e 14063 jmp short 09673h ; eb 5d 14064 14064 test al, al ; 84 c0 14065 jne short 096 65h ; 75 5514066 mov DL, strict byte 040h ; b24014067 jmp short 096 1eh ; eb 0a14068 mov DL, strict byte 048h ; b24814069 jmp short 096 1eh ; eb 0614070 mov DL, strict byte 050h ; b25014071 jmp short 096 1eh ; eb 0214072 mov DL, strict byte 058h ; b25814073 mov al, dl ; 88 d014065 jne short 09673h ; 75 59 14066 mov BL, strict byte 040h ; b3 40 14067 jmp short 09628h ; eb 0a 14068 mov BL, strict byte 048h ; b3 48 14069 jmp short 09628h ; eb 06 14070 mov BL, strict byte 050h ; b3 50 14071 jmp short 09628h ; eb 02 14072 mov BL, strict byte 058h ; b3 58 14073 mov al, bl ; 88 d8 14074 14074 add AL, strict byte 007h ; 04 07 14075 movzx bx, al ; 0f b6 d814076 mov ax, bx ; 89 d814077 call 017a5h ; e8 7 b8114075 movzx dx, al ; 0f b6 d0 14076 mov ax, dx ; 89 d0 14077 call 017a5h ; e8 71 81 14078 14078 test al, al ; 84 c0 14079 je short 096 65h ; 74 3714080 mov al, dl ; 88 d014079 je short 09673h ; 74 3b 14080 mov al, bl ; 88 d8 14081 14081 db 0feh, 0c0h 14082 14082 ; inc al ; fe c0 14083 14083 xor ah, ah ; 30 e4 14084 call 017a5h ; e8 6 e8114084 call 017a5h ; e8 64 81 14085 14085 xor ah, ah ; 30 e4 14086 mov si, ax ; 89 c614087 sal si, 008h ; c1 e6 0814088 movzx ax, dl ; 0f b6 c214089 call 017a5h ; e8 618114086 sal ax, 008h ; c1 e0 08 14087 mov word [bp-02ch], ax ; 89 46 d4 14088 movzx ax, bl ; 0f b6 c3 14089 call 017a5h ; e8 56 81 14090 14090 xor ah, ah ; 30 e4 14091 add ax, si ; 01 f0 14092 mov word [bp-028h], ax ; 89 46 d8 14093 mov al, dl ; 88 d0 14091 mov cx, word [bp-02ch] ; 8b 4e d4 14092 add cx, ax ; 01 c1 14093 mov word [bp-030h], cx ; 89 4e d0 14094 mov al, bl ; 88 d8 14094 14095 add AL, strict byte 002h ; 04 02 14095 14096 xor ah, ah ; 30 e4 14096 call 017a5h ; e8 518114097 call 017a5h ; e8 43 81 14097 14098 xor ah, ah ; 30 e4 14098 mov word [bp-0 2ah], ax ; 89 46 d614099 mov ax, bx ; 89 d814100 call 017a5h ; e8 478114099 mov word [bp-032h], ax ; 89 46 ce 14100 mov ax, dx ; 89 d0 14101 call 017a5h ; e8 39 81 14101 14102 xor ah, ah ; 30 e4 14102 mov word [bp-026h], ax ; 89 46 da 14103 jmp short 09675h ; eb 10 14104 push dword [bp-016h] ; 66 ff 76 ea 14103 mov word [bp-02eh], ax ; 89 46 d2 14104 jmp short 09681h ; eb 0e 14105 push dword [bp-018h] ; 66 ff 76 e8 14106 push si ; 56 14105 14107 push di ; 57 14106 push word [bp-01ah] ; ff 76 e614107 14108 mov dx, ss ; 8c d2 14108 lea ax, [bp-0 2ah] ; 8d 46 d614109 call 05ad0h ; e8 5bc414109 lea ax, [bp-032h] ; 8d 46 ce 14110 call 05ad0h ; e8 4f c4 14110 14111 mov bx, 00db8h ; bb b8 0d 14111 14112 mov cx, ds ; 8c d9 14112 14113 mov ax, strict word 00004h ; b8 04 00 14113 call 01a2ah ; e8 aa 83 14114 push dword [bp-016h] ; 66 ff 76 ea 14114 call 01a2ah ; e8 9e 83 14115 push dword [bp-018h] ; 66 ff 76 e8 14116 push si ; 56 14115 14117 push di ; 57 14118 mov ax, word [bp-02eh] ; 8b 46 d2 14119 push ax ; 50 14120 mov ax, word [bp-032h] ; 8b 46 ce 14121 push ax ; 50 14122 mov ax, word [bp-030h] ; 8b 46 d0 14123 push ax ; 50 14116 14124 push word [bp-01ah] ; ff 76 e6 14117 mov ax, word [bp-026h] ; 8b 46 da 14125 push word [bp-020h] ; ff 76 e0 14126 push word [bp-01eh] ; ff 76 e2 14127 movzx ax, byte [bp-008h] ; 0f b6 46 f8 14118 14128 push ax ; 50 14119 mov ax, word [bp-02ah] ; 8b 46 d614120 push ax ; 5014121 mov ax, word [bp-028h] ; 8b 46 d814122 push ax ; 5014123 push word [bp-01eh] ; ff 76 e214124 push word [bp-01ch] ; ff 76 e414125 push word [bp-020h] ; ff 76 e014126 14129 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 14127 push ax ; 5014128 movzx ax, byte [bp-008h] ; 0f b6 46 f814129 14130 push ax ; 50 14130 14131 push 00ce8h ; 68 e8 0c 14131 14132 push strict byte 00004h ; 6a 04 14132 call 01a6bh ; e8 b c8314133 call 01a6bh ; e8 b2 83 14133 14134 add sp, strict byte 0001ch ; 83 c4 1c 14134 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 14135 imul ax, ax, strict byte 0001ch ; 6b c0 1c 14136 mov di, word [bp-010h] ; 8b 7e f0 14137 add di, ax ; 01 c7 14138 mov es, [bp-00eh] ; 8e 46 f2 14135 movzx di, byte [bp-00ch] ; 0f b6 7e f4 14136 imul di, di, strict byte 0001ch ; 6b ff 1c 14137 add di, word [bp-012h] ; 03 7e ee 14138 mov es, [bp-010h] ; 8e 46 f0 14139 14139 lea di, [di+02ah] ; 8d 7d 2a 14140 14140 push DS ; 1e 14141 14141 push SS ; 16 14142 14142 pop DS ; 1f 14143 lea si, [bp-0 2ah] ; 8d 76 d614143 lea si, [bp-032h] ; 8d 76 ce 14144 14144 movsw ; a5 14145 14145 movsw ; a5 14146 14146 movsw ; a5 14147 14147 pop DS ; 1f 14148 mov bx, word [bp-01 0h] ; 8b 5e f014148 mov bx, word [bp-012h] ; 8b 5e ee 14149 14149 mov al, byte [es:bx+001e2h] ; 26 8a 87 e2 01 14150 mov ah, byte [bp-00 8h] ; 8a 66 f814150 mov ah, byte [bp-00ah] ; 8a 66 f6 14151 14151 add ah, 00ch ; 80 c4 0c 14152 14152 movzx bx, al ; 0f b6 d8 14153 add bx, word [bp-01 0h] ; 03 5e f014153 add bx, word [bp-012h] ; 03 5e ee 14154 14154 mov byte [es:bx+001e3h], ah ; 26 88 a7 e3 01 14155 14155 db 0feh, 0c0h 14156 14156 ; inc al ; fe c0 14157 mov bx, word [bp-01 0h] ; 8b 5e f014157 mov bx, word [bp-012h] ; 8b 5e ee 14158 14158 mov byte [es:bx+001e2h], al ; 26 88 87 e2 01 14159 14159 mov dx, strict word 00075h ; ba 75 00 14160 14160 mov ax, strict word 00040h ; b8 40 00 14161 call 01749h ; e8 4 f8014161 call 01749h ; e8 47 80 14162 14162 db 0feh, 0c0h 14163 14163 ; inc al ; fe c0 … … 14165 14165 mov dx, strict word 00075h ; ba 75 00 14166 14166 mov ax, strict word 00040h ; b8 40 00 14167 call 01757h ; e8 4 f8014168 jmp near 097 a7h ; e9 9c0014169 cmp dx, 0eb14h ; 81 fa14 eb14170 jne near 097 a7h ; 0f 85 940014171 cmp di, 00101h ; 81 ff01 0114172 jne near 097 a7h ; 0f 85 8c0014173 les bx, [bp-01 0h] ; c4 5e f014167 call 01757h ; e8 47 80 14168 jmp near 097b3h ; e9 a0 00 14169 cmp ax, 0eb14h ; 3d 14 eb 14170 jne near 097b3h ; 0f 85 99 00 14171 cmp bx, 00101h ; 81 fb 01 01 14172 jne near 097b3h ; 0f 85 91 00 14173 les bx, [bp-012h] ; c4 5e ee 14174 14174 db 066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h 14175 14175 ; mov dword [es:bx+004h], strict dword 000000000h ; 66 26 c7 47 04 00 00 00 00 14176 14176 db 066h, 026h, 0c7h, 007h, 000h, 000h, 000h, 000h 14177 14177 ; mov dword [es:bx], strict dword 000000000h ; 66 26 c7 07 00 00 00 00 14178 lea dx, [bp-002 2ah] ; 8d 96 d6fd14178 lea dx, [bp-00232h] ; 8d 96 ce fd 14179 14179 mov word [es:bx+008h], dx ; 26 89 57 08 14180 14180 mov [es:bx+00ah], ss ; 26 8c 57 0a … … 14182 14182 ; mov dword [es:bx+00eh], strict dword 002000001h ; 66 26 c7 47 0e 01 00 00 02 14183 14183 mov bx, 000a1h ; bb a1 00 14184 mov ax, word [bp-01 0h] ; 8b 46 f014184 mov ax, word [bp-012h] ; 8b 46 ee 14185 14185 mov dx, es ; 8c c2 14186 call 08a34h ; e8 e5f214187 test byte [bp-002 2ah], 080h ; f6 86 d6fd 8014186 call 08a34h ; e8 de f2 14187 test byte [bp-00232h], 080h ; f6 86 ce fd 80 14188 14188 db 00fh, 095h, 0c0h 14189 14189 ; setne al ; 0f 95 c0 14190 14190 xor ah, ah ; 30 e4 14191 movzx bx, byte [bp-008h] ; 0f b6 5e f8 14192 mov es, [bp-00eh] ; 8e 46 f2 14193 add bx, word [bp-010h] ; 03 5e f0 14191 mov dx, ax ; 89 c2 14192 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 14193 mov es, [bp-010h] ; 8e 46 f0 14194 add bx, word [bp-012h] ; 03 5e ee 14195 mov al, byte [bp-008h] ; 8a 46 f8 14196 mov byte [es:bx+0022dh], al ; 26 88 87 2d 02 14197 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 14198 imul ax, ax, strict byte 0001ch ; 6b c0 1c 14199 mov bx, word [bp-012h] ; 8b 5e ee 14200 add bx, ax ; 01 c3 14201 mov word [es:bx+022h], 00505h ; 26 c7 47 22 05 05 14202 mov byte [es:bx+024h], dl ; 26 88 57 24 14203 mov word [es:bx+028h], 00800h ; 26 c7 47 28 00 08 14204 mov bx, word [bp-012h] ; 8b 5e ee 14205 mov al, byte [es:bx+001f3h] ; 26 8a 87 f3 01 14194 14206 mov ah, byte [bp-00ah] ; 8a 66 f6 14195 mov byte [es:bx+0022dh], ah ; 26 88 a7 2d 0214196 movzx si, cl ; 0f b6 f114197 imul si, si, strict byte 0001ch ; 6b f6 1c14198 add si, word [bp-010h] ; 03 76 f014199 mov word [es:si+022h], 00505h ; 26 c7 44 22 05 0514200 mov byte [es:si+024h], al ; 26 88 44 2414201 mov word [es:si+028h], 00800h ; 26 c7 44 28 00 0814202 mov bx, word [bp-010h] ; 8b 5e f014203 mov al, byte [es:bx+001f3h] ; 26 8a 87 f3 0114204 mov ah, byte [bp-008h] ; 8a 66 f814205 14207 add ah, 00ch ; 80 c4 0c 14206 14208 movzx bx, al ; 0f b6 d8 14207 add bx, word [bp-01 0h] ; 03 5e f014209 add bx, word [bp-012h] ; 03 5e ee 14208 14210 mov byte [es:bx+001f4h], ah ; 26 88 a7 f4 01 14209 14211 db 0feh, 0c0h 14210 14212 ; inc al ; fe c0 14211 mov bx, word [bp-01 0h] ; 8b 5e f014213 mov bx, word [bp-012h] ; 8b 5e ee 14212 14214 mov byte [es:bx+001f3h], al ; 26 88 87 f3 01 14213 inc byte [bp-00 8h] ; fe 46 f814214 mov al, byte [bp-00 8h] ; 8a 46 f814215 les bx, [bp-01 0h] ; c4 5e f014215 inc byte [bp-00ah] ; fe 46 f6 14216 mov al, byte [bp-00ah] ; 8a 46 f6 14217 les bx, [bp-012h] ; c4 5e ee 14216 14218 mov byte [es:bx+00231h], al ; 26 88 87 31 02 14217 14219 lea sp, [bp-006h] ; 8d 66 fa … … 14221 14223 pop bp ; 5d 14222 14224 retn ; c3 14223 ahci_mem_alloc_: ; 0xf97 bdLB 0x4314225 ahci_mem_alloc_: ; 0xf97c9 LB 0x43 14224 14226 push bp ; 55 14225 14227 mov bp, sp ; 89 e5 … … 14231 14233 mov dx, 00413h ; ba 13 04 14232 14234 xor ax, ax ; 31 c0 14233 call 01765h ; e8 987f14235 call 01765h ; e8 8c 7f 14234 14236 test ax, ax ; 85 c0 14235 je short 09 7f6h ; 74 2514237 je short 09802h ; 74 25 14236 14238 dec ax ; 48 14237 14239 mov bx, ax ; 89 c3 … … 14240 14242 sal ax, 1 ; d1 e0 14241 14243 rcl dx, 1 ; d1 d2 14242 loop 097 d9h ; e2 fa14244 loop 097e5h ; e2 fa 14243 14245 mov si, ax ; 89 c6 14244 14246 mov di, dx ; 89 d7 … … 14246 14248 shr di, 1 ; d1 ef 14247 14249 rcr si, 1 ; d1 de 14248 loop 097 e6h ; e2 fa14250 loop 097f2h ; e2 fa 14249 14251 mov dx, 00413h ; ba 13 04 14250 14252 xor ax, ax ; 31 c0 14251 call 01773h ; e8 7 f7f14253 call 01773h ; e8 73 7f 14252 14254 mov ax, si ; 89 f0 14253 14255 lea sp, [bp-00ah] ; 8d 66 f6 … … 14259 14261 pop bp ; 5d 14260 14262 retn ; c3 14261 ahci_hba_init_: ; 0xf980 0LB 0x16614263 ahci_hba_init_: ; 0xf980c LB 0x166 14262 14264 push bp ; 55 14263 14265 mov bp, sp ; 89 e5 … … 14271 14273 mov dx, strict word 0000eh ; ba 0e 00 14272 14274 mov ax, strict word 00040h ; b8 40 00 14273 call 01765h ; e8 4 f7f14275 call 01765h ; e8 43 7f 14274 14276 mov bx, 00122h ; bb 22 01 14275 14277 mov di, ax ; 89 c7 … … 14288 14290 shr eax, 010h ; 66 c1 e8 10 14289 14291 xchg dx, ax ; 92 14290 call 097 bdh ; e8 83 ff14292 call 097c9h ; e8 83 ff 14291 14293 mov word [bp-010h], ax ; 89 46 f0 14292 14294 test ax, ax ; 85 c0 14293 je near 099 45h ; 0f 84 02 0114295 je near 09951h ; 0f 84 02 01 14294 14296 mov ax, word [bp-010h] ; 8b 46 f0 14295 14297 mov es, di ; 8e c7 … … 14341 14343 xchg dx, ax ; 92 14342 14344 test AL, strict byte 001h ; a8 01 14343 jne short 098 99h ; 75 de14345 jne short 098a5h ; 75 de 14344 14346 xor ax, ax ; 31 c0 14345 14347 xor cx, cx ; 31 c9 … … 14359 14361 mov bx, strict word 0001fh ; bb 1f 00 14360 14362 xor cx, cx ; 31 c9 14361 call 088b0h ; e8 d1ef14363 call 088b0h ; e8 c5 ef 14362 14364 db 0feh, 0c0h 14363 14365 ; inc al ; fe c0 14364 14366 mov byte [bp-00eh], al ; 88 46 f2 14365 14367 mov byte [bp-00ch], 000h ; c6 46 f4 00 14366 jmp short 099 0ah ; eb 2014368 jmp short 09916h ; eb 20 14367 14369 xor al, al ; 30 c0 14368 14370 test al, al ; 84 c0 14369 je short 0990 1h ; 74 1114371 je short 0990dh ; 74 11 14370 14372 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 14371 14373 xor ax, ax ; 31 c0 14372 14374 mov dx, word [bp-010h] ; 8b 56 f0 14373 call 093 0ch ; e8 10fa14375 call 09311h ; e8 09 fa 14374 14376 dec byte [bp-00eh] ; fe 4e f2 14375 je short 0994 3h ; 74 4214377 je short 0994fh ; 74 42 14376 14378 inc byte [bp-00ch] ; fe 46 f4 14377 14379 cmp byte [bp-00ch], 020h ; 80 7e f4 20 14378 jnc short 0994 3h ; 73 3914380 jnc short 0994fh ; 73 39 14379 14381 movzx cx, byte [bp-00ch] ; 0f b6 4e f4 14380 14382 mov bx, strict word 00001h ; bb 01 00 14381 14383 xor di, di ; 31 ff 14382 jcxz 099 1bh ; e3 0614384 jcxz 09927h ; e3 06 14383 14385 sal bx, 1 ; d1 e3 14384 14386 rcl di, 1 ; d1 d7 14385 loop 099 15h ; e2 fa14387 loop 09921h ; e2 fa 14386 14388 mov ax, strict word 0000ch ; b8 0c 00 14387 14389 xor cx, cx ; 31 c9 … … 14399 14401 xchg dx, ax ; 92 14400 14402 test dx, di ; 85 fa 14401 jne short 099 3fh ; 75 0414403 jne short 0994bh ; 75 04 14402 14404 test ax, bx ; 85 d8 14403 je short 098 eah ; 74 ab14405 je short 098f6h ; 74 ab 14404 14406 mov AL, strict byte 001h ; b0 01 14405 jmp short 098 ech ; eb a914407 jmp short 098f8h ; eb a9 14406 14408 xor ax, ax ; 31 c0 14407 14409 lea sp, [bp-00ah] ; 8d 66 f6 … … 14413 14415 pop bp ; 5d 14414 14416 retn ; c3 14415 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 36h, 09ah, 014h, 09ah, 01ah, 09ah, 020h, 09ah, 026h14416 db 09ah, 0 2ch, 09ah, 032h, 09ah, 036h, 09ah14417 _ahci_init: ; 0xf99 66LB 0x11614417 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 042h, 09ah, 020h, 09ah, 026h, 09ah, 02ch, 09ah, 032h 14418 db 09ah, 038h, 09ah, 03eh, 09ah, 042h, 09ah 14419 _ahci_init: ; 0xf9972 LB 0x116 14418 14420 push bp ; 55 14419 14421 mov bp, sp ; 89 e5 … … 14423 14425 mov ax, 00601h ; b8 01 06 14424 14426 mov dx, strict word 00001h ; ba 01 00 14425 call 09e 9ch ; e8 25 0514427 call 09ea8h ; e8 25 05 14426 14428 mov bx, ax ; 89 c3 14427 14429 cmp ax, strict word 0ffffh ; 3d ff ff 14428 je near 09a 75h ; 0f 84 f5 0014430 je near 09a81h ; 0f 84 f5 00 14429 14431 xor al, al ; 30 c0 14430 14432 shr ax, 008h ; c1 e8 08 … … 14434 14436 xor ah, ah ; 30 e4 14435 14437 mov bx, strict word 00034h ; bb 34 00 14436 call 09e ech ; e8 56 0514438 call 09ef8h ; e8 56 05 14437 14439 mov cl, al ; 88 c1 14438 14440 test cl, cl ; 84 c9 14439 je short 099 bfh ; 74 2314441 je short 099cbh ; 74 23 14440 14442 movzx bx, cl ; 0f b6 d9 14441 14443 movzx di, byte [bp-008h] ; 0f b6 7e f8 … … 14443 14445 mov dx, di ; 89 fa 14444 14446 mov ax, si ; 89 f0 14445 call 09e ech ; e8 3e 0514447 call 09ef8h ; e8 3e 05 14446 14448 cmp AL, strict byte 012h ; 3c 12 14447 je short 099 bfh ; 74 0d14449 je short 099cbh ; 74 0d 14448 14450 mov al, cl ; 88 c8 14449 14451 db 0feh, 0c0h … … 14452 14454 mov dx, di ; 89 fa 14453 14455 mov ax, si ; 89 f0 14454 jmp short 0999 3h ; eb d414456 jmp short 0999fh ; eb d4 14455 14457 test cl, cl ; 84 c9 14456 je near 09a 75h ; 0f 84 b0 0014458 je near 09a81h ; 0f 84 b0 00 14457 14459 add cl, 002h ; 80 c1 02 14458 14460 movzx bx, cl ; 0f b6 d9 … … 14461 14463 mov dx, si ; 89 f2 14462 14464 mov ax, di ; 89 f8 14463 call 09e ech ; e8 12 0514465 call 09ef8h ; e8 12 05 14464 14466 cmp AL, strict byte 010h ; 3c 10 14465 jne near 09a 75h ; 0f 85 95 0014467 jne near 09a81h ; 0f 85 95 00 14466 14468 mov byte [bp-006h], 000h ; c6 46 fa 00 14467 14469 mov al, cl ; 88 c8 … … 14470 14472 mov dx, si ; 89 f2 14471 14473 mov ax, di ; 89 f8 14472 call 09f1 0h ; e8 1e 0514474 call 09f1ch ; e8 1e 05 14473 14475 mov dx, ax ; 89 c2 14474 14476 and ax, strict word 0000fh ; 25 0f 00 14475 14477 sub ax, strict word 00004h ; 2d 04 00 14476 14478 cmp ax, strict word 0000bh ; 3d 0b 00 14477 jnbe short 09a 36h ; 77 3714479 jnbe short 09a42h ; 77 37 14478 14480 push CS ; 0e 14479 14481 pop ES ; 07 14480 14482 mov cx, strict word 00008h ; b9 08 00 14481 mov di, 099 4fh ; bf 4f9914483 mov di, 0995bh ; bf 5b 99 14482 14484 repne scasb ; f2 ae 14483 14485 sal cx, 1 ; d1 e1 14484 14486 mov di, cx ; 89 cf 14485 mov ax, word [cs:di-066 aah] ; 2e 8b 85 569914487 mov ax, word [cs:di-0669eh] ; 2e 8b 85 62 99 14486 14488 jmp ax ; ff e0 14487 14489 mov byte [bp-006h], 010h ; c6 46 fa 10 14488 jmp short 09a 36h ; eb 1c14490 jmp short 09a42h ; eb 1c 14489 14491 mov byte [bp-006h], 014h ; c6 46 fa 14 14490 jmp short 09a 36h ; eb 1614492 jmp short 09a42h ; eb 16 14491 14493 mov byte [bp-006h], 018h ; c6 46 fa 18 14492 jmp short 09a 36h ; eb 1014494 jmp short 09a42h ; eb 10 14493 14495 mov byte [bp-006h], 01ch ; c6 46 fa 1c 14494 jmp short 09a 36h ; eb 0a14496 jmp short 09a42h ; eb 0a 14495 14497 mov byte [bp-006h], 020h ; c6 46 fa 20 14496 jmp short 09a 36h ; eb 0414498 jmp short 09a42h ; eb 04 14497 14499 mov byte [bp-006h], 024h ; c6 46 fa 24 14498 14500 mov cx, dx ; 89 d1 … … 14501 14503 mov al, byte [bp-006h] ; 8a 46 fa 14502 14504 test al, al ; 84 c0 14503 je short 09a 75h ; 74 3014505 je short 09a81h ; 74 30 14504 14506 movzx bx, al ; 0f b6 d8 14505 14507 movzx di, byte [bp-008h] ; 0f b6 7e f8 … … 14507 14509 mov dx, di ; 89 fa 14508 14510 mov ax, si ; 89 f0 14509 call 09f3 2h ; e8 db 0414511 call 09f3eh ; e8 db 04 14510 14512 test AL, strict byte 001h ; a8 01 14511 je short 09a 75h ; 74 1a14513 je short 09a81h ; 74 1a 14512 14514 and AL, strict byte 0f0h ; 24 f0 14513 14515 add ax, cx ; 01 c8 … … 14517 14519 mov dx, di ; 89 fa 14518 14520 mov ax, si ; 89 f0 14519 call 09f 59h ; e8 ea 0414521 call 09f65h ; e8 ea 04 14520 14522 mov ax, word [bp-00ch] ; 8b 46 f4 14521 call 0980 0h ; e8 8b fd14523 call 0980ch ; e8 8b fd 14522 14524 lea sp, [bp-004h] ; 8d 66 fc 14523 14525 pop di ; 5f … … 14525 14527 pop bp ; 5d 14526 14528 retn ; c3 14527 apm_out_str_: ; 0xf9a 7cLB 0x3914529 apm_out_str_: ; 0xf9a88 LB 0x39 14528 14530 push bp ; 55 14529 14531 mov bp, sp ; 89 e5 … … 14531 14533 mov bx, ax ; 89 c3 14532 14534 cmp byte [bx], 000h ; 80 3f 00 14533 je short 09a9 1h ; 74 0a14535 je short 09a9dh ; 74 0a 14534 14536 mov al, byte [bx] ; 8a 07 14535 14537 out DX, AL ; ee … … 14538 14540 db 00ah, 0c0h 14539 14541 ; or al, al ; 0a c0 14540 jne short 09a 89h ; 75 f814542 jne short 09a95h ; 75 f8 14541 14543 lea sp, [bp-002h] ; 8d 66 fe 14542 14544 pop bx ; 5b 14543 14545 pop bp ; 5d 14544 14546 retn ; c3 14545 fcomp dword [bp+si-0645ch] ; d8 9a a4 9b 14546 jmp far 0a49bh:0059ah ; ea 9a 05 9b a4 14547 in AL, strict byte 09ah ; e4 9a 14548 mov AL, strict byte 09bh ; b0 9b 14549 neg byte [bp+si-064efh] ; f6 9a 11 9b 14550 mov AL, strict byte 09bh ; b0 9b 14551 cmp AL, strict byte 09bh ; 3c 9b 14552 mov AL, strict byte 09bh ; b0 9b 14553 inc cx ; 41 14547 14554 wait ; 9b 14548 xor byte [bp+di-0645ch], bl ; 30 9b a4 9b 14549 xor ax, 0799bh ; 35 9b 79 14550 wait ; 9b 14551 jns short 09a46h ; 79 9b 14552 jns short 09a48h ; 79 9b 14553 je short 09a4ah ; 74 9b 14554 jns short 09a4ch ; 79 9b 14555 jns short 09a4eh ; 79 9b 14556 insw ; 6d 14557 wait ; 9b 14558 _apm_function: ; 0xf9ab5 LB 0xf5 14555 test word [bp+di-0647bh], bx ; 85 9b 85 9b 14556 test word [bp+di-06480h], bx ; 85 9b 80 9b 14557 test word [bp+di-0647bh], bx ; 85 9b 85 9b 14558 jns short 09a5ch ; 79 9b 14559 _apm_function: ; 0xf9ac1 LB 0xf5 14559 14560 push bp ; 55 14560 14561 mov bp, sp ; 89 e5 … … 14564 14565 xor ah, ah ; 30 e4 14565 14566 cmp ax, strict word 0000eh ; 3d 0e 00 14566 jnbe near 09b 79h ; 0f 87 b0 0014567 jnbe near 09b85h ; 0f 87 b0 00 14567 14568 mov bx, ax ; 89 c3 14568 14569 add bx, ax ; 01 c3 14569 14570 mov dx, word [bp+018h] ; 8b 56 18 14570 14571 or dl, 001h ; 80 ca 01 14571 jmp word [cs:bx-065 69h] ; 2e ff a7 979a14572 jmp word [cs:bx-0655dh] ; 2e ff a7 a3 9a 14572 14573 mov word [bp+012h], 00102h ; c7 46 12 02 01 14573 14574 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 14574 14575 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 14575 jmp near 09b a4h ; e9 ba 0014576 jmp near 09bb0h ; e9 ba 00 14576 14577 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14577 mov word [bp+00ch], 0a1 84h ; c7 46 0c 84 a114578 mov word [bp+00ch], 0a194h ; c7 46 0c 94 a1 14578 14579 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 14579 14580 mov ax, strict word 0fff0h ; b8 f0 ff 14580 14581 mov word [bp+006h], ax ; 89 46 06 14581 14582 mov word [bp+004h], ax ; 89 46 04 14582 jmp near 09b a4h ; e9 9f 0014583 jmp near 09bb0h ; e9 9f 00 14583 14584 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14584 14585 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 14593 14594 mov si, ax ; 89 c6 14594 14595 sal esi, 010h ; 66 c1 e6 10 14595 jmp near 09b a4h ; e9 74 0014596 jmp near 09bb0h ; e9 74 00 14596 14597 sti ; fb 14597 14598 hlt ; f4 14598 jmp near 09b a4h ; e9 6f 0014599 jmp near 09bb0h ; e9 6f 00 14599 14600 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 14600 je short 09b 5ah ; 74 1f14601 je short 09b66h ; 74 1f 14601 14602 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 14602 je short 09b5 2h ; 74 1114603 je short 09b5eh ; 74 11 14603 14604 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 14604 jne short 09b6 2h ; 75 1b14605 jne short 09b6eh ; 75 1b 14605 14606 mov dx, 0040fh ; ba 0f 04 14606 14607 mov ax, 00d22h ; b8 22 0d 14607 call 09a 7ch ; e8 2c ff14608 jmp short 09b a4h ; eb 5214608 call 09a88h ; e8 2c ff 14609 jmp short 09bb0h ; eb 52 14609 14610 mov dx, 0040fh ; ba 0f 04 14610 14611 mov ax, 00d2ah ; b8 2a 0d 14611 jmp short 09b 4dh ; eb f314612 jmp short 09b59h ; eb f3 14612 14613 mov dx, 0040fh ; ba 0f 04 14613 14614 mov ax, 00d32h ; b8 32 0d 14614 jmp short 09b 4dh ; eb eb14615 jmp short 09b59h ; eb eb 14615 14616 or ah, 00ah ; 80 cc 0a 14616 14617 mov word [bp+012h], ax ; 89 46 12 14617 14618 mov word [bp+018h], dx ; 89 56 18 14618 jmp short 09b a4h ; eb 3714619 jmp short 09bb0h ; eb 37 14619 14620 mov word [bp+012h], 00102h ; c7 46 12 02 01 14620 jmp short 09b a4h ; eb 3014621 jmp short 09bb0h ; eb 30 14621 14622 or ah, 080h ; 80 cc 80 14622 jmp short 09b 65h ; eb ec14623 jmp short 09b71h ; eb ec 14623 14624 mov bx, 00db8h ; bb b8 0d 14624 14625 mov cx, ds ; 8c d9 14625 14626 mov ax, strict word 00004h ; b8 04 00 14626 call 01a2ah ; e8 a67e14627 call 01a2ah ; e8 9a 7e 14627 14628 push word [bp+00ch] ; ff 76 0c 14628 14629 push word [bp+012h] ; ff 76 12 14629 14630 push 00d3bh ; 68 3b 0d 14630 14631 push strict byte 00004h ; 6a 04 14631 call 01a6bh ; e8 d97e14632 call 01a6bh ; e8 cd 7e 14632 14633 add sp, strict byte 00008h ; 83 c4 08 14633 14634 mov ax, word [bp+012h] ; 8b 46 12 … … 14640 14641 pop bp ; 5d 14641 14642 retn ; c3 14642 pci16_select_reg_: ; 0xf9b aaLB 0x2414643 pci16_select_reg_: ; 0xf9bb6 LB 0x24 14643 14644 push bp ; 55 14644 14645 mov bp, sp ; 89 e5 … … 14657 14658 pop bp ; 5d 14658 14659 retn ; c3 14659 pci16_find_device_: ; 0xf9b ceLB 0xf714660 pci16_find_device_: ; 0xf9bda LB 0xf7 14660 14661 push bp ; 55 14661 14662 mov bp, sp ; 89 e5 … … 14671 14672 mov byte [bp-008h], 000h ; c6 46 f8 00 14672 14673 test bl, 007h ; f6 c3 07 14673 jne short 09c 16h ; 75 2d14674 jne short 09c22h ; 75 2d 14674 14675 mov dx, strict word 0000eh ; ba 0e 00 14675 14676 mov ax, bx ; 89 d8 14676 call 09b aah ; e8 b9 ff14677 call 09bb6h ; e8 b9 ff 14677 14678 mov dx, 00cfeh ; ba fe 0c 14678 14679 in AL, DX ; ec … … 14681 14682 mov byte [bp-006h], al ; 88 46 fa 14682 14683 cmp AL, strict byte 0ffh ; 3c ff 14683 jne short 09c 04h ; 75 0614684 jne short 09c10h ; 75 06 14684 14685 add bx, strict byte 00008h ; 83 c3 08 14685 jmp near 09c 97h ; e9 93 0014686 jmp near 09ca3h ; e9 93 00 14686 14687 test byte [bp-006h], 080h ; f6 46 fa 80 14687 je short 09c1 1h ; 74 0714688 je short 09c1dh ; 74 07 14688 14689 mov word [bp-00ah], strict word 00001h ; c7 46 f6 01 00 14689 jmp short 09c 16h ; eb 0514690 jmp short 09c22h ; eb 05 14690 14691 mov word [bp-00ah], strict word 00008h ; c7 46 f6 08 00 14691 14692 mov al, byte [bp-006h] ; 8a 46 fa 14692 14693 and AL, strict byte 007h ; 24 07 14693 14694 cmp AL, strict byte 001h ; 3c 01 14694 jne short 09c 3eh ; 75 1f14695 jne short 09c4ah ; 75 1f 14695 14696 mov ax, bx ; 89 d8 14696 14697 shr ax, 008h ; c1 e8 08 14697 14698 test ax, ax ; 85 c0 14698 jne short 09c 3eh ; 75 1614699 jne short 09c4ah ; 75 16 14699 14700 mov dx, strict word 0001ah ; ba 1a 00 14700 14701 mov ax, bx ; 89 d8 14701 call 09b aah ; e8 7a ff14702 call 09bb6h ; e8 7a ff 14702 14703 mov dx, 00cfeh ; ba fe 0c 14703 14704 in AL, DX ; ec … … 14705 14706 ; sub ah, ah ; 2a e4 14706 14707 cmp al, byte [bp-008h] ; 3a 46 f8 14707 jbe short 09c 3eh ; 76 0314708 jbe short 09c4ah ; 76 03 14708 14709 mov byte [bp-008h], al ; 88 46 f8 14709 14710 test di, di ; 85 ff 14710 je short 09c 47h ; 74 0514711 je short 09c53h ; 74 05 14711 14712 mov dx, strict word 00008h ; ba 08 00 14712 jmp short 09c 49h ; eb 0214713 jmp short 09c55h ; eb 02 14713 14714 xor dx, dx ; 31 d2 14714 14715 mov ax, bx ; 89 d8 14715 call 09b aah ; e8 5c ff14716 call 09bb6h ; e8 5c ff 14716 14717 mov dx, 00cfch ; ba fc 0c 14717 14718 in eax, DX ; 66 ed … … 14724 14725 mov word [bp-010h], strict word 00000h ; c7 46 f0 00 00 14725 14726 test di, di ; 85 ff 14726 je short 09c 78h ; 74 0f14727 je short 09c84h ; 74 0f 14727 14728 mov cx, strict word 00008h ; b9 08 00 14728 14729 shr dx, 1 ; d1 ea 14729 14730 rcr ax, 1 ; d1 d8 14730 loop 09c 6ch ; e2 fa14731 loop 09c78h ; e2 fa 14731 14732 mov word [bp-00eh], ax ; 89 46 f2 14732 14733 mov word [bp-00ch], dx ; 89 56 f4 14733 14734 mov ax, word [bp-00ch] ; 8b 46 f4 14734 14735 cmp ax, word [bp-014h] ; 3b 46 ec 14735 jne short 09c 88h ; 75 0814736 jne short 09c94h ; 75 08 14736 14737 mov ax, word [bp-00eh] ; 8b 46 f2 14737 14738 cmp ax, word [bp-012h] ; 3b 46 ee 14738 je short 09c 8eh ; 74 0614739 je short 09c9ah ; 74 06 14739 14740 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 14740 je short 09c 94h ; 74 0614741 je short 09ca0h ; 74 06 14741 14742 dec si ; 4e 14742 14743 cmp si, strict byte 0ffffh ; 83 fe ff 14743 je short 09c a6h ; 74 1214744 je short 09cb2h ; 74 12 14744 14745 add bx, word [bp-00ah] ; 03 5e f6 14745 14746 mov dx, bx ; 89 da … … 14747 14748 movzx ax, byte [bp-008h] ; 0f b6 46 f8 14748 14749 cmp dx, ax ; 39 c2 14749 jbe near 09b e4h ; 0f 86 3e ff14750 jbe near 09bf0h ; 0f 86 3e ff 14750 14751 cmp si, strict byte 0ffffh ; 83 fe ff 14751 jne short 09c afh ; 75 0414752 jne short 09cbbh ; 75 04 14752 14753 mov ax, bx ; 89 d8 14753 jmp short 09cb 2h ; eb 0314754 jmp short 09cbeh ; eb 03 14754 14755 mov ax, strict word 0ffffh ; b8 ff ff 14755 14756 lea sp, [bp-004h] ; 8d 66 fc … … 14758 14759 pop bp ; 5d 14759 14760 retn ; c3 14760 cmpsw ; a7 14761 mov BL, strict byte 09dh ; b3 9d 14762 int 09dh ; cd 9d 14763 loopne 09c68h ; e0 9d 14764 cmc ; f5 14761 14765 popfw ; 9d 14762 rcr word [di-0622ch], 0e9h ; c1 9d d4 9d e9 14763 popfw ; 9d 14764 cld ; fc 14765 popfw ; 9d 14766 db 00fh 14767 sahf ; 9e 14768 _pci16_function: ; 0xf9cc5 LB 0x1d7 14766 or byte [bp-061e5h], bl ; 08 9e 1b 9e 14767 _pci16_function: ; 0xf9cd1 LB 0x1d7 14769 14768 push bp ; 55 14770 14769 mov bp, sp ; 89 e5 … … 14780 14779 xor ah, ah ; 30 e4 14781 14780 cmp bx, strict byte 00003h ; 83 fb 03 14782 jc short 09 cfeh ; 72 1a14783 jbe short 09d 56h ; 76 7014781 jc short 09d0ah ; 72 1a 14782 jbe short 09d62h ; 76 70 14784 14783 cmp bx, strict byte 0000eh ; 83 fb 0e 14785 je near 09e2 3h ; 0f 84 36 0114784 je near 09e2fh ; 0f 84 36 01 14786 14785 cmp bx, strict byte 00008h ; 83 fb 08 14787 jc near 09e 68h ; 0f 82 74 0114786 jc near 09e74h ; 0f 82 74 01 14788 14787 cmp bx, strict byte 0000dh ; 83 fb 0d 14789 jbe near 09d 7bh ; 0f 86 80 0014790 jmp near 09e 68h ; e9 6a 0114788 jbe near 09d87h ; 0f 86 80 00 14789 jmp near 09e74h ; e9 6a 01 14791 14790 cmp bx, strict byte 00002h ; 83 fb 02 14792 je short 09d 26h ; 74 2314791 je short 09d32h ; 74 23 14793 14792 cmp bx, strict byte 00001h ; 83 fb 01 14794 jne near 09e 68h ; 0f 85 5e 0114793 jne near 09e74h ; 0f 85 5e 01 14795 14794 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 14796 14795 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 14798 14797 mov word [bp+018h], 04350h ; c7 46 18 50 43 14799 14798 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 14800 jmp near 09e 95h ; e9 6f 0114799 jmp near 09ea1h ; e9 6f 01 14801 14800 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 14802 jne short 09d3 2h ; 75 0614801 jne short 09d3eh ; 75 06 14803 14802 or ah, 083h ; 80 cc 83 14804 jmp near 09e 8eh ; e9 5c 0114803 jmp near 09e9ah ; e9 5c 01 14805 14804 mov bx, word [bp+008h] ; 8b 5e 08 14806 14805 mov dx, word [bp+01ch] ; 8b 56 1c 14807 14806 mov ax, word [bp+018h] ; 8b 46 18 14808 14807 xor cx, cx ; 31 c9 14809 call 09b ceh ; e8 8e fe14808 call 09bdah ; e8 8e fe 14810 14809 cmp ax, strict word 0ffffh ; 3d ff ff 14811 jne short 09d5 0h ; 75 0b14810 jne short 09d5ch ; 75 0b 14812 14811 mov ax, word [bp+020h] ; 8b 46 20 14813 14812 xor ah, ah ; 30 e4 14814 14813 or ah, 086h ; 80 cc 86 14815 jmp near 09e 8eh ; e9 3e 0114814 jmp near 09e9ah ; e9 3e 01 14816 14815 mov word [bp+014h], ax ; 89 46 14 14817 jmp near 09e 95h ; e9 3f 0114816 jmp near 09ea1h ; e9 3f 01 14818 14817 mov bx, word [bp+008h] ; 8b 5e 08 14819 14818 mov ax, word [bp+01ch] ; 8b 46 1c 14820 14819 mov dx, word [bp+01eh] ; 8b 56 1e 14821 14820 mov cx, strict word 00001h ; b9 01 00 14822 call 09b ceh ; e8 69 fe14821 call 09bdah ; e8 69 fe 14823 14822 cmp ax, strict word 0ffffh ; 3d ff ff 14824 jne short 09d 75h ; 75 0b14823 jne short 09d81h ; 75 0b 14825 14824 mov ax, word [bp+020h] ; 8b 46 20 14826 14825 xor ah, ah ; 30 e4 14827 14826 or ah, 086h ; 80 cc 86 14828 jmp near 09e 8eh ; e9 19 0114827 jmp near 09e9ah ; e9 19 01 14829 14828 mov word [bp+014h], ax ; 89 46 14 14830 jmp near 09e 95h ; e9 1a 0114829 jmp near 09ea1h ; e9 1a 01 14831 14830 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 14832 jc short 09d 88h ; 72 0614831 jc short 09d94h ; 72 06 14833 14832 or ah, 087h ; 80 cc 87 14834 jmp near 09e 8eh ; e9 06 0114833 jmp near 09e9ah ; e9 06 01 14835 14834 mov dx, word [bp+004h] ; 8b 56 04 14836 14835 mov ax, word [bp+014h] ; 8b 46 14 14837 call 09b aah ; e8 19 fe14836 call 09bb6h ; e8 19 fe 14838 14837 mov bx, word [bp+020h] ; 8b 5e 20 14839 14838 xor bh, bh ; 30 ff 14840 14839 sub bx, strict byte 00008h ; 83 eb 08 14841 14840 cmp bx, strict byte 00005h ; 83 fb 05 14842 jnbe near 09e 95h ; 0f 87 f5 0014841 jnbe near 09ea1h ; 0f 87 f5 00 14843 14842 add bx, bx ; 01 db 14844 jmp word [cs:bx-063 47h] ; 2e ff a7 b99c14843 jmp word [cs:bx-0633bh] ; 2e ff a7 c5 9c 14845 14844 mov bx, word [bp+01ch] ; 8b 5e 1c 14846 14845 xor bl, bl ; 30 db … … 14853 14852 or bx, ax ; 09 c3 14854 14853 mov word [bp+01ch], bx ; 89 5e 1c 14855 jmp near 09e 95h ; e9 d4 0014854 jmp near 09ea1h ; e9 d4 00 14856 14855 mov dx, word [bp+004h] ; 8b 56 04 14857 14856 xor dh, dh ; 30 f6 … … 14860 14859 in ax, DX ; ed 14861 14860 mov word [bp+01ch], ax ; 89 46 1c 14862 jmp near 09e 95h ; e9 c1 0014861 jmp near 09ea1h ; e9 c1 00 14863 14862 mov dx, 00cfch ; ba fc 0c 14864 14863 in eax, DX ; 66 ed … … 14869 14868 mov word [bp+01ch], ax ; 89 46 1c 14870 14869 mov word [bp+01eh], dx ; 89 56 1e 14871 jmp near 09e 95h ; e9 ac 0014870 jmp near 09ea1h ; e9 ac 00 14872 14871 mov ax, word [bp+01ch] ; 8b 46 1c 14873 14872 mov dx, word [bp+004h] ; 8b 56 04 … … 14876 14875 add dx, 00cfch ; 81 c2 fc 0c 14877 14876 out DX, AL ; ee 14878 jmp near 09e 95h ; e9 99 0014877 jmp near 09ea1h ; e9 99 00 14879 14878 mov ax, word [bp+01ch] ; 8b 46 1c 14880 14879 mov dx, word [bp+004h] ; 8b 56 04 … … 14883 14882 add dx, 00cfch ; 81 c2 fc 0c 14884 14883 out DX, ax ; ef 14885 jmp near 09e 95h ; e9 86 0014884 jmp near 09ea1h ; e9 86 00 14886 14885 mov ax, word [bp+01ch] ; 8b 46 1c 14887 14886 mov cx, word [bp+01eh] ; 8b 4e 1e … … 14892 14891 ; mov ax, cx ; 8b c1 14893 14892 out DX, eax ; 66 ef 14894 jmp short 09e 95h ; eb 7214893 jmp short 09ea1h ; eb 72 14895 14894 mov bx, word [bp+004h] ; 8b 5e 04 14896 14895 mov es, [bp+026h] ; 8e 46 26 … … 14899 14898 mov cx, word [0f370h] ; 8b 0e 70 f3 14900 14899 cmp cx, word [es:bx] ; 26 3b 0f 14901 jbe short 09e 49h ; 76 1114900 jbe short 09e55h ; 76 11 14902 14901 mov ax, word [bp+020h] ; 8b 46 20 14903 14902 xor ah, ah ; 30 e4 … … 14905 14904 mov word [bp+020h], ax ; 89 46 20 14906 14905 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 14907 jmp short 09e 5dh ; eb 1414906 jmp short 09e69h ; eb 14 14908 14907 les di, [es:bx+002h] ; 26 c4 7f 02 14909 14908 mov si, 0f190h ; be 90 f1 … … 14917 14916 les bx, [bp-008h] ; c4 5e f8 14918 14917 mov word [es:bx], ax ; 26 89 07 14919 jmp short 09e 95h ; eb 2d14918 jmp short 09ea1h ; eb 2d 14920 14919 mov bx, 00db8h ; bb b8 0d 14921 14920 mov cx, ds ; 8c d9 14922 14921 mov ax, strict word 00004h ; b8 04 00 14923 call 01a2ah ; e8 b77b14922 call 01a2ah ; e8 ab 7b 14924 14923 mov ax, word [bp+014h] ; 8b 46 14 14925 14924 push ax ; 50 … … 14928 14927 push 00d6eh ; 68 6e 0d 14929 14928 push strict byte 00004h ; 6a 04 14930 call 01a6bh ; e8 e87b14929 call 01a6bh ; e8 dc 7b 14931 14930 add sp, strict byte 00008h ; 83 c4 08 14932 14931 mov ax, word [bp+020h] ; 8b 46 20 … … 14940 14939 pop bp ; 5d 14941 14940 retn ; c3 14942 pci_find_classcode_: ; 0xf9e 9cLB 0x2b14941 pci_find_classcode_: ; 0xf9ea8 LB 0x2b 14943 14942 push bp ; 55 14944 14943 mov bp, sp ; 89 e5 … … 14955 14954 int 01ah ; cd 1a 14956 14955 cmp ah, 000h ; 80 fc 00 14957 je near 09e bdh ; 0f 84 03 0014956 je near 09ec9h ; 0f 84 03 00 14958 14957 mov bx, strict word 0ffffh ; bb ff ff 14959 14958 mov ax, bx ; 89 d8 … … 14964 14963 pop bp ; 5d 14965 14964 retn ; c3 14966 pci_find_device_: ; 0xf9e c7LB 0x2514965 pci_find_device_: ; 0xf9ed3 LB 0x25 14967 14966 push bp ; 55 14968 14967 mov bp, sp ; 89 e5 … … 14976 14975 int 01ah ; cd 1a 14977 14976 cmp ah, 000h ; 80 fc 00 14978 je near 09ee 2h ; 0f 84 03 0014977 je near 09eeeh ; 0f 84 03 00 14979 14978 mov bx, strict word 0ffffh ; bb ff ff 14980 14979 mov ax, bx ; 89 d8 … … 14985 14984 pop bp ; 5d 14986 14985 retn ; c3 14987 pci_read_config_byte_: ; 0xf9e ecLB 0x2414986 pci_read_config_byte_: ; 0xf9ef8 LB 0x24 14988 14987 push bp ; 55 14989 14988 mov bp, sp ; 89 e5 … … 15004 15003 pop bp ; 5d 15005 15004 retn ; c3 15006 pci_read_config_word_: ; 0xf9f1 0LB 0x2215005 pci_read_config_word_: ; 0xf9f1c LB 0x22 15007 15006 push bp ; 55 15008 15007 mov bp, sp ; 89 e5 … … 15023 15022 pop bp ; 5d 15024 15023 retn ; c3 15025 pci_read_config_dword_: ; 0xf9f3 2LB 0x2715024 pci_read_config_dword_: ; 0xf9f3e LB 0x27 15026 15025 push bp ; 55 15027 15026 mov bp, sp ; 89 e5 … … 15044 15043 pop bp ; 5d 15045 15044 retn ; c3 15046 pci_write_config_word_: ; 0xf9f 59LB 0x1c15045 pci_write_config_word_: ; 0xf9f65 LB 0x1c 15047 15046 push bp ; 55 15048 15047 mov bp, sp ; 89 e5 … … 15059 15058 pop bp ; 5d 15060 15059 retn ; c3 15061 vds_is_present_: ; 0xf9f 75LB 0x1d15060 vds_is_present_: ; 0xf9f81 LB 0x1d 15062 15061 push bx ; 53 15063 15062 push bp ; 55 … … 15067 15066 mov es, ax ; 8e c0 15068 15067 test byte [es:bx], 020h ; 26 f6 07 20 15069 je short 09f 8dh ; 74 0615068 je short 09f99h ; 74 06 15070 15069 mov ax, strict word 00001h ; b8 01 00 15071 15070 pop bp ; 5d … … 15076 15075 pop bx ; 5b 15077 15076 retn ; c3 15078 vds_real_to_lin_: ; 0xf9f9 2LB 0x1e15077 vds_real_to_lin_: ; 0xf9f9e LB 0x1e 15079 15078 push bx ; 53 15080 15079 push cx ; 51 … … 15087 15086 sal ax, 1 ; d1 e0 15088 15087 rcl dx, 1 ; d1 d2 15089 loop 09fa 0h ; e2 fa15088 loop 09fach ; e2 fa 15090 15089 xor cx, cx ; 31 c9 15091 15090 add ax, bx ; 01 d8 … … 15095 15094 pop bx ; 5b 15096 15095 retn ; c3 15097 vds_build_sg_list_: ; 0xf9fb 0LB 0x7915096 vds_build_sg_list_: ; 0xf9fbc LB 0x79 15098 15097 push bp ; 55 15099 15098 mov bp, sp ; 89 e5 … … 15109 15108 mov bx, word [bp+006h] ; 8b 5e 06 15110 15109 mov word [es:di+002h], bx ; 26 89 5d 02 15111 call 09f9 2h ; e8 c3 ff15110 call 09f9eh ; e8 c3 ff 15112 15111 mov es, si ; 8e c6 15113 15112 mov word [es:di+004h], ax ; 26 89 45 04 15114 15113 mov word [es:di+006h], dx ; 26 89 55 06 15115 15114 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 15116 call 09f 75h ; e8 93 ff15115 call 09f81h ; e8 93 ff 15117 15116 test ax, ax ; 85 c0 15118 je short 0 9ff9h ; 74 1315117 je short 0a005h ; 74 13 15119 15118 mov es, si ; 8e c6 15120 15119 mov ax, 08105h ; b8 05 81 15121 15120 mov dx, strict word 00000h ; ba 00 00 15122 15121 int 04bh ; cd 4b 15123 jc near 0 9ff6h ; 0f 82 02 0015122 jc near 0a002h ; 0f 82 02 00 15124 15123 db 032h, 0c0h 15125 15124 ; xor al, al ; 32 c0 15126 15125 cbw ; 98 15127 jmp short 0a02 0h ; eb 2715126 jmp short 0a02ch ; eb 27 15128 15127 mov es, si ; 8e c6 15129 15128 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 15142 15141 pop bp ; 5d 15143 15142 retn 00004h ; c2 04 00 15144 vds_free_sg_list_: ; 0xfa0 29 LB 0x3715143 vds_free_sg_list_: ; 0xfa035 LB 0x3b 15145 15144 push bp ; 55 15146 15145 mov bp, sp ; 89 e5 … … 15148 15147 push di ; 57 15149 15148 mov bx, ax ; 89 c3 15150 call 09f 75h ; e8 42 ff15149 call 09f81h ; e8 42 ff 15151 15150 test ax, ax ; 85 c0 15152 je short 0a0 4ah ; 74 1315151 je short 0a056h ; 74 13 15153 15152 mov di, bx ; 89 df 15154 15153 mov es, dx ; 8e c2 … … 15156 15155 mov dx, strict word 00000h ; ba 00 00 15157 15156 int 04bh ; cd 4b 15158 jc near 0a0 49h ; 0f 82 02 0015157 jc near 0a055h ; 0f 82 02 00 15159 15158 db 032h, 0c0h 15160 15159 ; xor al, al ; 32 c0 … … 15167 15166 pop bp ; 5d 15168 15167 retn ; c3 15169 times 0x 7db 015170 __U4M: ; 0xfa0 60 LB 0x4015168 times 0xb db 0 15169 __U4M: ; 0xfa070 LB 0x40 15171 15170 pushfw ; 9c 15172 15171 push eax ; 66 50 … … 15194 15193 retn ; c3 15195 15194 times 0xf db 0 15196 __U4D: ; 0xfa0 a0 LB 0x4015195 __U4D: ; 0xfa0b0 LB 0x40 15197 15196 pushfw ; 9c 15198 15197 push eax ; 66 50 … … 15225 15224 retn ; c3 15226 15225 times 0x7 db 0 15227 __U8RS: ; 0xfa0 e0 LB 0x1015226 __U8RS: ; 0xfa0f0 LB 0x10 15228 15227 test si, si ; 85 f6 15229 je short 0a0 efh ; 74 0b15228 je short 0a0ffh ; 74 0b 15230 15229 shr ax, 1 ; d1 e8 15231 15230 rcr bx, 1 ; d1 db … … 15233 15232 rcr dx, 1 ; d1 da 15234 15233 dec si ; 4e 15235 jne short 0a0 e4h ; 75 f515234 jne short 0a0f4h ; 75 f5 15236 15235 retn ; c3 15237 __U8LS: ; 0xfa 0f0 LB 0x1015236 __U8LS: ; 0xfa100 LB 0x10 15238 15237 test si, si ; 85 f6 15239 je short 0a 0ffh ; 74 0b15238 je short 0a10fh ; 74 0b 15240 15239 sal dx, 1 ; d1 e2 15241 15240 rcl cx, 1 ; d1 d1 … … 15243 15242 rcl ax, 1 ; d1 d0 15244 15243 dec si ; 4e 15245 jne short 0a 0f4h ; 75 f515244 jne short 0a104h ; 75 f5 15246 15245 retn ; c3 15247 _fmemset_: ; 0xfa1 00 LB 0x1015246 _fmemset_: ; 0xfa110 LB 0x10 15248 15247 push di ; 57 15249 15248 mov es, dx ; 8e c2 … … 15256 15255 retn ; c3 15257 15256 times 0x3 db 0 15258 _fmemcpy_: ; 0xfa1 10 LB 0x3a15257 _fmemcpy_: ; 0xfa120 LB 0x3a 15259 15258 push bp ; 55 15260 15259 db 08bh, 0ech … … 15281 15280 add byte [bx+si], al ; 00 00 15282 15281 add byte [bx+si], al ; 00 00 15283 pushaw ; 60 15284 mov ax, word [0a162h] ; a1 62 a1 15285 mov eax, dword [0a166h] ; 66 a1 66 a1 15286 mov eax, dword [0a168h] ; 66 a1 68 a1 15287 push 06aa1h ; 68 a1 6a 15288 mov ax, word [0a16eh] ; a1 6e a1 15289 outsb ; 6e 15290 mov ax, word [0a170h] ; a1 70 a1 15291 jne short 0a0e9h ; 75 a1 15292 jnbe short 0a0ebh ; 77 a1 15293 apm_worker: ; 0xfa14a LB 0x3a 15282 jo short 0a0e3h ; 70 a1 15283 jc short 0a0e5h ; 72 a1 15284 jbe short 0a0e7h ; 76 a1 15285 jbe short 0a0e9h ; 76 a1 15286 jbe short 0a0ebh ; 76 a1 15287 js short 0a0edh ; 78 a1 15288 js short 0a0efh ; 78 a1 15289 jp short 0a0f1h ; 7a a1 15290 jle short 0a0f3h ; 7e a1 15291 jle short 0a0f5h ; 7e a1 15292 and byte [bx+di-05e7bh], 087h ; 80 a1 85 a1 87 15293 db 0a1h 15294 apm_worker: ; 0xfa15a LB 0x3a 15294 15295 sti ; fb 15295 15296 push ax ; 50 … … 15303 15304 pop ax ; 58 15304 15305 mov AH, strict byte 053h ; b4 53 15305 jnc short 0a1 80h ; 73 2515306 jmp word [cs:bp-05e d0h] ; 2e ff a6 30 a115307 jmp short 0a1 7eh ; eb 1c15306 jnc short 0a190h ; 73 25 15307 jmp word [cs:bp-05ec0h] ; 2e ff a6 40 a1 15308 jmp short 0a18eh ; eb 1c 15308 15309 sti ; fb 15309 15310 hlt ; f4 15310 jmp short 0a1 7eh ; eb 1815311 jmp short 0a1 7eh ; eb 1615312 jmp short 0a1 80h ; eb 1615311 jmp short 0a18eh ; eb 18 15312 jmp short 0a18eh ; eb 16 15313 jmp short 0a190h ; eb 16 15313 15314 mov AH, strict byte 080h ; b4 80 15314 jmp short 0a1 82h ; eb 1415315 jmp short 0a1 80h ; eb 1015315 jmp short 0a192h ; eb 14 15316 jmp short 0a190h ; eb 10 15316 15317 mov ax, 00102h ; b8 02 01 15317 jmp short 0a1 7eh ; eb 0915318 jmp short 0a1 7eh ; eb 0715318 jmp short 0a18eh ; eb 09 15319 jmp short 0a18eh ; eb 07 15319 15320 mov BL, strict byte 000h ; b3 00 15320 15321 mov cx, strict word 00000h ; b9 00 00 15321 jmp short 0a1 7eh ; eb 0015322 jmp short 0a18eh ; eb 00 15322 15323 clc ; f8 15323 15324 retn ; c3 … … 15325 15326 stc ; f9 15326 15327 retn ; c3 15327 apm_pm16_entry: ; 0xfa1 84 LB 0x1115328 apm_pm16_entry: ; 0xfa194 LB 0x11 15328 15329 mov AH, strict byte 002h ; b4 02 15329 15330 push DS ; 1e … … 15333 15334 add bp, strict byte 00008h ; 83 c5 08 15334 15335 mov ds, bp ; 8e dd 15335 call 0a1 4ah ; e8 b8 ff15336 call 0a15ah ; e8 b8 ff 15336 15337 pop bp ; 5d 15337 15338 pop DS ; 1f 15338 15339 retf ; cb 15339 15340 15340 ; Padding 0x38 6b bytes at 0xfa19515341 times 144 43db 015341 ; Padding 0x385b bytes at 0xfa1a5 15342 times 14427 db 0 15342 15343 15343 15344 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 15386 15387 add bp, strict byte 00008h ; 83 c5 08 15387 15388 push ebp ; 66 55 15388 mov bp, 0a1 86h ; bd 86 a115389 mov bp, 0a196h ; bd 96 a1 15389 15390 add byte [bx+si], al ; 00 00 15390 15391 push ebp ; 66 55 … … 15854 15855 cmp AL, strict byte 009h ; 3c 09 15855 15856 jne short 0e0bch ; 75 03 15856 jmp near 0e37 9h ; e9 bd0215857 jmp near 0e37bh ; e9 bf 02 15857 15858 cmp AL, strict byte 005h ; 3c 05 15858 15859 je short 0e044h ; 74 84 … … 16076 16077 int 002h ; cd 02 16077 16078 iret ; cf 16078 hard_drive_post: ; 0xfe2d2 LB 0xd 016079 hard_drive_post: ; 0xfe2d2 LB 0xd2 16079 16080 db 033h, 0c0h 16080 16081 ; xor ax, ax ; 33 c0 … … 16121 16122 call 01da8h ; e8 65 3a 16122 16123 call 02235h ; e8 ef 3e 16123 call 09966h ; e8 1d b6 16124 call 0882fh ; e8 e3 a4 16125 call 0ed2fh ; e8 e0 09 16126 call 0e2d2h ; e8 80 ff 16124 sti ; fb 16125 call 09972h ; e8 28 b6 16126 cli ; fa 16127 call 0882fh ; e8 e1 a4 16128 call 0ed2fh ; e8 de 09 16129 call 0e2d2h ; e8 7e ff 16127 16130 push CS ; 0e 16128 16131 pop DS ; 1f … … 16130 16133 mov ax, 0c800h ; b8 00 c8 16131 16134 mov dx, 0f000h ; ba 00 f0 16132 call 01600h ; e8 a 23216135 call 01600h ; e8 a0 32 16133 16136 db 066h, 033h, 0c0h 16134 16137 ; xor eax, eax ; 66 33 c0 … … 16139 16142 db 066h, 033h, 0d2h 16140 16143 ; xor edx, edx ; 66 33 d2 16141 call 01890h ; e8 2 33516142 call 03cbdh ; e8 4 d5916144 call 01890h ; e8 21 35 16145 call 03cbdh ; e8 4b 59 16143 16146 sti ; fb 16144 16147 int 019h ; cd 19 16145 16148 sti ; fb 16146 16149 hlt ; f4 16147 jmp short 0e37 4h ; eb fd16150 jmp short 0e376h ; eb fd 16148 16151 cli ; fa 16149 16152 hlt ; f4 … … 16167 16170 sti ; fb 16168 16171 retf 00002h ; ca 02 00 16169 biosorg_check_before_or_at_0E3FCh: ; 0xfe3a 2 LB 0x5c16170 times 0x5 adb 016172 biosorg_check_before_or_at_0E3FCh: ; 0xfe3a4 LB 0x5a 16173 times 0x58 db 0 16171 16174 db 'XM' 16172 16175 int13_handler: ; 0xfe3fe LB 0x3 … … 17014 17017 popfw ; 9d 17015 17018 jmp short 0f8a7h ; eb 13 17016 call 09a b5h ; e8 1ea217019 call 09ac1h ; e8 2a a2 17017 17020 jmp short 0f88eh ; eb f5 17018 17021 int15_handler_mouse: ; 0xff899 LB 0x5 … … 17168 17171 cld ; fc 17169 17172 pushad ; 66 60 17170 call 09c c5h ; e8 489e17173 call 09cd1h ; e8 54 9e 17171 17174 popad ; 66 61 17172 17175 pop DS ; 1f … … 17282 17285 cpu_reset: ; 0xffff0 LB 0x10 17283 17286 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 17284 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 1fh17287 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 086h -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum
r68421 r68773 1 bb36e6b39714445178c921cdba41c93c*VBoxPcBios386.rom1 12344f307a821a81850f54d5c3279967 *VBoxPcBios386.rom -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm
r68421 r68773 1116 1116 section CONST2 progbits vstart=0xd8e align=1 ; size=0x400 class=DATA group=DGROUP 1117 1117 _bios_cvs_version_string: ; 0xf0d8e LB 0x18 1118 db 'VirtualBox 5.2.0_BETA 2', 000h, 000h1118 db 'VirtualBox 5.2.0_BETA3', 000h, 000h 1119 1119 _bios_prefix_string: ; 0xf0da6 LB 0x8 1120 1120 db 'BIOS: ', 000h, 000h … … 1190 1190 times 1138 db 0 1191 1191 1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8e c8 class=CODE group=AUTO1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8eb8 class=CODE group=AUTO 1193 1193 rom_scan_: ; 0xf1600 LB 0x52 1194 1194 push bp ; 55 … … 1596 1596 mov bx, strict word 0000ah ; bb 0a 00 1597 1597 xor cx, cx ; 31 c9 1598 call 0a1 60h ; e8 83 881598 call 0a150h ; e8 73 88 1599 1599 mov word [bp-008h], ax ; 89 46 f8 1600 1600 mov cx, dx ; 89 d1 … … 1833 1833 mov dx, word [bp-026h] ; 8b 56 da 1834 1834 mov si, word [bp-01eh] ; 8b 76 e2 1835 call 0a1 90h ; e8 78 861835 call 0a180h ; e8 68 86 1836 1836 mov ax, dx ; 89 d0 1837 1837 xor ah, dh ; 30 f4 … … 2294 2294 mov dx, word [es:si] ; 26 8b 14 2295 2295 mov si, strict word 00018h ; be 18 00 2296 call 0a1 90h ; e8 fe 812296 call 0a180h ; e8 ee 81 2297 2297 xor dh, dh ; 30 f6 2298 2298 mov word [bp-014h], dx ; 89 56 ec … … 2304 2304 mov dx, word [es:si] ; 26 8b 14 2305 2305 mov si, strict word 00020h ; be 20 00 2306 call 0a1 90h ; e8 de 812306 call 0a180h ; e8 ce 81 2307 2307 mov bx, dx ; 89 d3 2308 2308 mov word [bp-010h], dx ; 89 56 f0 … … 2336 2336 mov dx, word [es:si] ; 26 8b 14 2337 2337 mov si, strict word 00008h ; be 08 00 2338 call 0a1 90h ; e8 8b 812338 call 0a180h ; e8 7b 81 2339 2339 mov word [bp-010h], dx ; 89 56 f0 2340 2340 mov bx, word [bp-016h] ; 8b 5e ea … … 2345 2345 mov dx, word [es:si] ; 26 8b 14 2346 2346 mov si, strict word 00018h ; be 18 00 2347 call 0a1 90h ; e8 6d 812347 call 0a180h ; e8 5d 81 2348 2348 mov bl, dl ; 88 d3 2349 2349 and bl, 00fh ; 80 e3 0f … … 2923 2923 mov dx, word [es:di+036h] ; 26 8b 55 36 2924 2924 mov si, strict word 0000bh ; be 0b 00 2925 call 0a1 90h ; e8 91 7b2925 call 0a180h ; e8 81 7b 2926 2926 mov word [bp-02ah], dx ; 89 56 d6 2927 2927 mov word [bp-026h], cx ; 89 4e da … … 3215 3215 mov dx, word [bp-022h] ; 8b 56 de 3216 3216 mov si, strict word 00018h ; be 18 00 3217 call 0a1 90h ; e8 b4 783217 call 0a180h ; e8 a4 78 3218 3218 xor dh, dh ; 30 f6 3219 3219 mov word [bp-014h], dx ; 89 56 ec … … 3223 3223 mov dx, word [bp-022h] ; 8b 56 de 3224 3224 mov si, strict word 00020h ; be 20 00 3225 call 0a1 90h ; e8 9d 783225 call 0a180h ; e8 8d 78 3226 3226 mov bx, dx ; 89 d3 3227 3227 mov word [bp-024h], dx ; 89 56 dc … … 3257 3257 mov dx, word [bp-022h] ; 8b 56 de 3258 3258 mov si, strict word 00008h ; be 08 00 3259 call 0a1 90h ; e8 49 783259 call 0a180h ; e8 39 78 3260 3260 mov word [bp-00ch], ax ; 89 46 f4 3261 3261 mov word [bp-020h], bx ; 89 5e e0 … … 3264 3264 mov word [bp-024h], dx ; 89 56 dc 3265 3265 mov si, strict word 00010h ; be 10 00 3266 call 0a1 90h ; e8 34 783266 call 0a180h ; e8 24 78 3267 3267 mov word [bp-022h], dx ; 89 56 de 3268 3268 mov ax, dx ; 89 d0 … … 5613 5613 mov dx, ss ; 8c d2 5614 5614 lea ax, [bp-026h] ; 8d 46 da 5615 call 0a1 b0h ; e8 0d 635615 call 0a1a0h ; e8 fd 62 5616 5616 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 5617 5617 mov ax, strict word 00011h ; b8 11 00 … … 6105 6105 xor dl, dl ; 30 d2 6106 6106 xor cx, cx ; 31 c9 6107 call 0a1 40h ; e8 28 5d6107 call 0a130h ; e8 18 5d 6108 6108 xor bx, bx ; 31 db 6109 6109 add ax, si ; 01 f0 … … 6111 6111 mov bx, di ; 89 fb 6112 6112 xor cx, cx ; 31 c9 6113 call 0a1 40h ; e8 1b 5d6113 call 0a130h ; e8 0b 5d 6114 6114 mov bx, ax ; 89 c3 6115 6115 mov ax, word [bp-00ah] ; 8b 46 f6 … … 6146 6146 mov dx, ss ; 8c d2 6147 6147 lea ax, [bp-030h] ; 8d 46 d0 6148 call 0a1 b0h ; e8 34 5d6148 call 0a1a0h ; e8 24 5d 6149 6149 mov word [bp-030h], strict word 00028h ; c7 46 d0 28 00 6150 6150 mov ax, word [bp-00eh] ; 8b 46 f2 … … 6500 6500 mov dx, ss ; 8c d2 6501 6501 lea ax, [bp-02eh] ; 8d 46 d2 6502 call 0a1 b0h ; e8 4c 596502 call 0a1a0h ; e8 3c 59 6503 6503 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 6504 6504 mov ax, word [bp-014h] ; 8b 46 ec … … 8501 8501 mov dx, word [bp+00ch] ; 8b 56 0c 8502 8502 mov si, strict word 00020h ; be 20 00 8503 call 0a1 90h ; e8 e2 458503 call 0a180h ; e8 d2 45 8504 8504 test ax, ax ; 85 c0 8505 8505 jne short 05bbeh ; 75 0c … … 8539 8539 mov bx, strict word 0003fh ; bb 3f 00 8540 8540 xor cx, cx ; 31 c9 8541 call 0a1 40h ; e8 39 458541 call 0a130h ; e8 29 45 8542 8542 mov bx, ax ; 89 c3 8543 8543 mov cx, dx ; 89 d1 8544 8544 mov ax, word [bp-004h] ; 8b 46 fc 8545 8545 mov dx, si ; 89 f2 8546 call 0a1 60h ; e8 4d 458546 call 0a150h ; e8 3d 45 8547 8547 mov word [es:di+002h], ax ; 26 89 45 02 8548 8548 cmp ax, 00400h ; 3d 00 04 … … 8773 8773 mov bx, cx ; 89 cb 8774 8774 xor cx, cx ; 31 c9 8775 call 0a1 40h ; e8 14 438775 call 0a130h ; e8 04 43 8776 8776 xor bx, bx ; 31 db 8777 8777 add ax, word [bp-008h] ; 03 46 f8 … … 8779 8779 mov bx, word [bp-00eh] ; 8b 5e f2 8780 8780 xor cx, cx ; 31 c9 8781 call 0a1 40h ; e8 05 438781 call 0a130h ; e8 f5 42 8782 8782 xor bx, bx ; 31 db 8783 8783 add ax, di ; 01 f8 … … 8953 8953 mov bx, word [bp-008h] ; 8b 5e f8 8954 8954 xor cx, cx ; 31 c9 8955 call 0a1 40h ; e8 2e 418955 call 0a130h ; e8 1e 41 8956 8956 mov bx, di ; 89 fb 8957 8957 xor cx, cx ; 31 c9 8958 call 0a1 40h ; e8 27 418958 call 0a130h ; e8 17 41 8959 8959 mov word [bp-010h], ax ; 89 46 f0 8960 8960 mov word [bp-004h], dx ; 89 56 fc … … 9115 9115 xor bx, bx ; 31 db 9116 9116 mov si, strict word 00020h ; be 20 00 9117 call 0a1 a0h ; e8 ec 3f9117 call 0a190h ; e8 dc 3f 9118 9118 mov word [bp-00eh], ax ; 89 46 f2 9119 9119 mov word [bp-010h], bx ; 89 5e f0 … … 9280 9280 mov dx, si ; 89 f2 9281 9281 mov si, strict word 00020h ; be 20 00 9282 call 0a1 90h ; e8 e5 3d9282 call 0a180h ; e8 d5 3d 9283 9283 mov bx, di ; 89 fb 9284 9284 mov word [es:bx+014h], dx ; 26 89 57 14 … … 9644 9644 mov bx, strict word 0000fh ; bb 0f 00 9645 9645 xor cx, cx ; 31 c9 9646 call 0a1 60h ; e8 17 3a9646 call 0a150h ; e8 07 3a 9647 9647 mov cx, ax ; 89 c1 9648 9648 mov bx, dx ; 89 d3 … … 12689 12689 mov dx, ss ; 8c d2 12690 12690 lea ax, [bp-048h] ; 8d 46 b8 12691 call 0a1 b0h ; e8 fd 1d12691 call 0a1a0h ; e8 ed 1d 12692 12692 mov byte [bp-048h], 09eh ; c6 46 b8 9e 12693 12693 mov byte [bp-047h], 010h ; c6 46 b9 10 … … 12827 12827 mov dx, word [bp-024h] ; 8b 56 dc 12828 12828 mov si, strict word 0000ch ; be 0c 00 12829 call 0a1 90h ; e8 8d 1c12829 call 0a180h ; e8 7d 1c 12830 12830 mov word [bp-02ah], ax ; 89 46 d6 12831 12831 mov word [bp-02ch], bx ; 89 5e d4 … … 12849 12849 mov dx, word [bp-024h] ; 8b 56 dc 12850 12850 mov si, strict word 00006h ; be 06 00 12851 call 0a1 90h ; e8 4c 1c12851 call 0a180h ; e8 3c 1c 12852 12852 mov si, word [bp-018h] ; 8b 76 e8 12853 12853 add si, dx ; 01 d6 … … 12867 12867 mov dx, si ; 89 f2 12868 12868 mov si, strict word 00008h ; be 08 00 12869 call 0a1 90h ; e8 1c 1c12869 call 0a180h ; e8 0c 1c 12870 12870 mov word [bp-02eh], bx ; 89 5e d2 12871 12871 mov word [bp-030h], cx ; 89 4e d0 … … 12876 12876 mov dx, word [bp-01eh] ; 8b 56 e2 12877 12877 mov si, strict word 00010h ; be 10 00 12878 call 0a1 90h ; e8 01 1c12878 call 0a180h ; e8 f1 1b 12879 12879 mov si, word [bp-032h] ; 8b 76 ce 12880 12880 add si, dx ; 01 d6 … … 12901 12901 mov dx, word [bp-024h] ; 8b 56 dc 12902 12902 mov si, strict word 0000bh ; be 0b 00 12903 call 0a1 90h ; e8 b7 1b12903 call 0a180h ; e8 a7 1b 12904 12904 mov si, dx ; 89 d6 12905 12905 mov word [bp-026h], cx ; 89 4e da … … 13128 13128 push cx ; 51 13129 13129 push si ; 56 13130 call 09f8 7h ; e8 381713130 call 09f84h ; e8 35 17 13131 13131 mov dx, ax ; 89 c2 13132 13132 cmp ax, strict word 0ffffh ; 3d ff ff … … 13139 13139 mov bx, strict word 00004h ; bb 04 00 13140 13140 mov dx, si ; 89 f2 13141 call 0a03 5h ; e8 cc1713141 call 0a032h ; e8 c9 17 13142 13142 lea sp, [bp-006h] ; 8d 66 fa 13143 13143 pop si ; 5e … … 13427 13427 mov ax, 00080h ; b8 80 00 13428 13428 mov dx, word [bp-00ah] ; 8b 56 f6 13429 call 0a1 b0h ; e8 ed 1613429 call 0a1a0h ; e8 dd 16 13430 13430 mov es, [bp-00ah] ; 8e 46 f6 13431 13431 mov word [es:di+00080h], 08027h ; 26 c7 85 80 00 27 80 … … 13445 13445 mov dx, word [es:si] ; 26 8b 14 13446 13446 mov si, strict word 00008h ; be 08 00 13447 call 0a1 90h ; e8 89 1613447 call 0a180h ; e8 79 16 13448 13448 mov es, [bp-00ah] ; 8e 46 f6 13449 13449 mov byte [es:di+00085h], dl ; 26 88 95 85 00 … … 13456 13456 mov dx, word [es:si] ; 26 8b 14 13457 13457 mov si, strict word 00010h ; be 10 00 13458 call 0a1 90h ; e8 63 1613458 call 0a180h ; e8 53 16 13459 13459 mov es, [bp-00ah] ; 8e 46 f6 13460 13460 mov byte [es:di+00086h], dl ; 26 88 95 86 00 … … 13468 13468 mov dx, word [es:si] ; 26 8b 14 13469 13469 mov si, strict word 00018h ; be 18 00 13470 call 0a1 90h ; e8 37 1613470 call 0a180h ; e8 27 16 13471 13471 mov es, [bp-00ah] ; 8e 46 f6 13472 13472 mov byte [es:di+00088h], dl ; 26 88 95 88 00 … … 13479 13479 mov dx, word [es:si] ; 26 8b 14 13480 13480 mov si, strict word 00020h ; be 20 00 13481 call 0a1 90h ; e8 11 1613481 call 0a180h ; e8 01 16 13482 13482 mov es, [bp-00ah] ; 8e 46 f6 13483 13483 mov byte [es:di+00089h], dl ; 26 88 95 89 00 … … 13490 13490 mov dx, word [es:si] ; 26 8b 14 13491 13491 mov si, strict word 00028h ; be 28 00 13492 call 0a1 90h ; e8 eb 1513492 call 0a180h ; e8 db 15 13493 13493 mov es, [bp-00ah] ; 8e 46 f6 13494 13494 mov byte [es:di+0008ah], dl ; 26 88 95 8a 00 … … 13503 13503 mov bx, word [bp-012h] ; 8b 5e ee 13504 13504 xor cx, cx ; 31 c9 13505 call 0a1 40h ; e8 69 1513505 call 0a130h ; e8 59 15 13506 13506 push dx ; 52 13507 13507 push ax ; 50 … … 13513 13513 mov ax, 0026ah ; b8 6a 02 13514 13514 mov dx, word [bp-00ah] ; 8b 56 f6 13515 call 0a08 eh ; e8 9b1413515 call 0a08bh ; e8 98 14 13516 13516 mov es, [bp-00ah] ; 8e 46 f6 13517 13517 mov dx, word [es:di+0027eh] ; 26 8b 95 7e 02 … … 13577 13577 add ax, 0026ah ; 05 6a 02 13578 13578 mov dx, cx ; 89 ca 13579 call 0a10 5h ; e8 371413579 call 0a102h ; e8 34 14 13580 13580 mov es, cx ; 8e c1 13581 13581 mov al, byte [es:bx+003h] ; 26 8a 47 03 … … 13663 13663 mov ax, di ; 89 f8 13664 13664 mov dx, word [bp-00eh] ; 8b 56 f2 13665 call 0a1 b0h ; e8 30 1413665 call 0a1a0h ; e8 20 14 13666 13666 lea ax, [di+00080h] ; 8d 85 80 00 13667 13667 mov cx, strict word 00040h ; b9 40 00 13668 13668 xor bx, bx ; 31 db 13669 13669 mov dx, word [bp-00eh] ; 8b 56 f2 13670 call 0a1 b0h ; e8 21 1413670 call 0a1a0h ; e8 11 14 13671 13671 lea ax, [di+00200h] ; 8d 85 00 02 13672 13672 mov cx, strict word 00060h ; b9 60 00 13673 13673 xor bx, bx ; 31 db 13674 13674 mov dx, word [bp-00eh] ; 8b 56 f2 13675 call 0a1 b0h ; e8 12 1413675 call 0a1a0h ; e8 02 14 13676 13676 mov al, byte [bp-00ah] ; 8a 46 f6 13677 13677 xor ah, ah ; 30 e4 … … 13850 13850 mov ax, si ; 89 f0 13851 13851 mov dx, word [bp-00ah] ; 8b 56 f6 13852 call 0a1 b0h ; e8 ac 1213852 call 0a1a0h ; e8 9c 12 13853 13853 lea ax, [si+00080h] ; 8d 84 80 00 13854 13854 mov cx, strict word 00040h ; b9 40 00 13855 13855 xor bx, bx ; 31 db 13856 13856 mov dx, word [bp-00ah] ; 8b 56 f6 13857 call 0a1 b0h ; e8 9d 1213857 call 0a1a0h ; e8 8d 12 13858 13858 lea di, [si+00200h] ; 8d bc 00 02 13859 13859 mov cx, strict word 00060h ; b9 60 00 … … 13861 13861 mov ax, di ; 89 f8 13862 13862 mov dx, word [bp-00ah] ; 8b 56 f6 13863 call 0a1 b0h ; e8 8c 1213863 call 0a1a0h ; e8 7c 12 13864 13864 mov bl, byte [bp-008h] ; 8a 5e f8 13865 13865 xor bh, bh ; 30 ff … … 14202 14202 mov dx, word [bp+008h] ; 8b 56 08 14203 14203 xor cx, cx ; 31 c9 14204 call 0a1 60h ; e8 e2 0e14204 call 0a150h ; e8 d2 0e 14205 14205 mov word [es:si+00eh], ax ; 26 89 44 0e 14206 14206 xor di, di ; 31 ff … … 14228 14228 mov ax, 000c0h ; b8 c0 00 14229 14229 mov dx, word [bp-00ah] ; 8b 56 f6 14230 call 0a1 c0h ; e8 f0 0e14230 call 0a1b0h ; e8 e0 0e 14231 14231 mov es, [bp-008h] ; 8e 46 f8 14232 14232 mov word [es:si+018h], di ; 26 89 7c 18 … … 14284 14284 pop bp ; 5d 14285 14285 retn 0000ch ; c2 0c 00 14286 ahci_port_detect_device_: ; 0xf9378 LB 0x4fe 14286 wait_ticks_device_init_: ; 0xf9378 LB 0x5 14287 push bp ; 55 14288 mov bp, sp ; 89 e5 14289 pop bp ; 5d 14290 retn ; c3 14291 ahci_port_detect_device_: ; 0xf937d LB 0x4f6 14287 14292 push bp ; 55 14288 14293 mov bp, sp ; 89 e5 … … 14290 14295 push si ; 56 14291 14296 push di ; 57 14292 sub sp, 0022 4h ; 81 ec 240214297 sub sp, 0022ch ; 81 ec 2c 02 14293 14298 mov si, ax ; 89 c6 14294 mov word [bp-01 0h], dx ; 89 56 f014299 mov word [bp-01ah], dx ; 89 56 e6 14295 14300 mov byte [bp-008h], bl ; 88 5e f8 14301 mov word [bp-01eh], strict word 00000h ; c7 46 e2 00 00 14296 14302 mov al, bl ; 88 d8 14297 mov byte [bp-02 0h], bl ; 88 5e e014303 mov byte [bp-02ah], bl ; 88 5e d6 14298 14304 xor al, bl ; 30 d8 14299 mov byte [bp-0 1fh], al ; 88 46 e114300 mov bx, word [bp-02 0h] ; 8b 5e e014305 mov byte [bp-029h], al ; 88 46 d7 14306 mov bx, word [bp-02ah] ; 8b 5e d6 14301 14307 mov ax, si ; 89 f0 14302 call 08e6ah ; e8 c efa14308 call 08e6ah ; e8 c4 fa 14303 14309 mov dx, strict word 0000eh ; ba 0e 00 14304 14310 mov ax, strict word 00040h ; b8 40 00 14305 call 0166eh ; e8 c98214306 mov word [bp-0 1ah], 00122h ; c7 46 e622 0114307 mov word [bp-0 0eh], ax ; 89 46 f214311 call 0166eh ; e8 bf 82 14312 mov word [bp-026h], 00122h ; c7 46 da 22 01 14313 mov word [bp-024h], ax ; 89 46 dc 14308 14314 mov CL, strict byte 007h ; b1 07 14309 mov ax, word [bp-02 0h] ; 8b 46 e014315 mov ax, word [bp-02ah] ; 8b 46 d6 14310 14316 sal ax, CL ; d3 e0 14311 mov word [bp-020h], ax ; 89 46 e014312 14317 add ax, 0012ch ; 05 2c 01 14313 14318 cwd ; 99 14314 mov bx, ax ; 89 c314315 mov di, dx ; 89 d714316 mov es, [bp-01 0h] ; 8e 46 f014319 mov di, ax ; 89 c7 14320 mov bx, dx ; 89 d3 14321 mov es, [bp-01ah] ; 8e 46 e6 14317 14322 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 14318 mov cx, di ; 89 f914323 mov cx, bx ; 89 d9 14319 14324 xchg cx, ax ; 91 14320 14325 sal eax, 010h ; 66 c1 e0 10 … … 14322 14327 ; mov ax, cx ; 8b c1 14323 14328 out DX, eax ; 66 ef 14324 mov es, [bp-01 0h] ; 8e 46 f014329 mov es, [bp-01ah] ; 8e 46 e6 14325 14330 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 14326 14331 add dx, strict byte 00004h ; 83 c2 04 … … 14332 14337 ; mov ax, cx ; 8b c1 14333 14338 out DX, eax ; 66 ef 14334 mov es, [bp-01 0h] ; 8e 46 f014339 mov es, [bp-01ah] ; 8e 46 e6 14335 14340 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 14336 mov ax, bx ; 89 d814337 mov cx, di ; 89 f914341 mov ax, di ; 89 f8 14342 mov cx, bx ; 89 d9 14338 14343 xchg cx, ax ; 91 14339 14344 sal eax, 010h ; 66 c1 e0 10 … … 14341 14346 ; mov ax, cx ; 8b c1 14342 14347 out DX, eax ; 66 ef 14343 mov es, [bp-01 0h] ; 8e 46 f014348 mov es, [bp-01ah] ; 8e 46 e6 14344 14349 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 14345 14350 add dx, strict byte 00004h ; 83 c2 04 … … 14351 14356 ; mov ax, cx ; 8b c1 14352 14357 out DX, eax ; 66 ef 14353 mov ax, word [bp-020h] ; 8b 46 e0 14358 mov di, strict word 0006ch ; bf 6c 00 14359 mov ax, strict word 00040h ; b8 40 00 14360 mov word [bp-014h], ax ; 89 46 ec 14361 mov es, ax ; 8e c0 14362 mov ax, word [es:di] ; 26 8b 05 14363 add ax, strict word 00003h ; 05 03 00 14364 mov word [bp-01ch], ax ; 89 46 e4 14365 mov ax, word [es:di+002h] ; 26 8b 45 02 14366 adc ax, strict word 00000h ; 15 00 00 14367 mov word [bp-028h], ax ; 89 46 d8 14368 mov es, [bp-014h] ; 8e 46 ec 14369 mov ax, word [es:di+002h] ; 26 8b 45 02 14370 cmp ax, word [bp-028h] ; 3b 46 d8 14371 jc short 0945ah ; 72 11 14372 mov ax, word [es:di+002h] ; 26 8b 45 02 14373 cmp ax, word [bp-028h] ; 3b 46 d8 14374 jne short 094a8h ; 75 56 14375 mov ax, word [es:di] ; 26 8b 05 14376 cmp ax, word [bp-01ch] ; 3b 46 e4 14377 jnc short 094a8h ; 73 4e 14378 mov al, byte [bp-008h] ; 8a 46 f8 14379 xor ah, ah ; 30 e4 14380 mov CL, strict byte 007h ; b1 07 14381 sal ax, CL ; d3 e0 14354 14382 add ax, 00128h ; 05 28 01 14355 14383 cwd ; 99 14356 mov es, [bp-01 0h] ; 8e 46 f014384 mov es, [bp-01ah] ; 8e 46 e6 14357 14385 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 14358 14386 mov cx, dx ; 89 d1 … … 14363 14391 ; mov ax, cx ; 8b c1 14364 14392 out DX, eax ; 66 ef 14365 mov es, [bp-01 0h] ; 8e 46 f014393 mov es, [bp-01ah] ; 8e 46 e6 14366 14394 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 14367 14395 add dx, strict byte 00004h ; 83 c2 04 … … 14371 14399 shr eax, 010h ; 66 c1 e8 10 14372 14400 xchg dx, ax ; 92 14401 mov word [bp-022h], ax ; 89 46 de 14402 mov word [bp-020h], dx ; 89 56 e0 14373 14403 xor bx, bx ; 31 db 14374 14404 push bx ; 53 14375 14405 mov bx, strict word 0000fh ; bb 0f 00 14376 14406 xor cx, cx ; 31 c9 14377 call 088f2h ; e8 9f f4 14378 test ax, ax ; 85 c0 14379 jne short 0945ah ; 75 03 14380 jmp near 0986eh ; e9 14 04 14407 call 088f2h ; e8 51 f4 14408 cmp ax, strict word 00003h ; 3d 03 00 14409 jne short 0943dh ; 75 97 14410 jmp short 094b1h ; eb 09 14411 cmp word [bp-01eh], strict byte 00000h ; 83 7e e2 00 14412 jne short 094b1h ; 75 03 14413 jmp near 0986bh ; e9 ba 03 14414 xor ax, ax ; 31 c0 14415 push ax ; 50 14416 mov bx, strict word 0000fh ; bb 0f 00 14417 xor cx, cx ; 31 c9 14418 mov ax, word [bp-022h] ; 8b 46 de 14419 mov dx, word [bp-020h] ; 8b 56 e0 14420 call 088f2h ; e8 30 f4 14421 cmp ax, strict word 00003h ; 3d 03 00 14422 jne short 094aeh ; 75 e7 14381 14423 mov al, byte [bp-008h] ; 8a 46 f8 14382 14424 xor ah, ah ; 30 e4 14383 14425 mov CL, strict byte 007h ; b1 07 14384 sal ax, CL ; d3 e014385 mov word [bp-016h], ax ; 89 46 ea14386 add ax, 00128h ; 05 280114426 mov di, ax ; 89 c7 14427 sal di, CL ; d3 e7 14428 lea ax, [di+00130h] ; 8d 85 30 01 14387 14429 cwd ; 99 14388 mov es, [bp-01 0h] ; 8e 46 f014430 mov es, [bp-01ah] ; 8e 46 e6 14389 14431 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 14390 14432 mov cx, dx ; 89 d1 … … 14395 14437 ; mov ax, cx ; 8b c1 14396 14438 out DX, eax ; 66 ef 14397 mov es, [bp-010h] ; 8e 46 f0 14398 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 14399 add dx, strict byte 00004h ; 83 c2 04 14400 in eax, DX ; 66 ed 14401 db 08bh, 0d0h 14402 ; mov dx, ax ; 8b d0 14403 shr eax, 010h ; 66 c1 e8 10 14404 xchg dx, ax ; 92 14405 mov di, ax ; 89 c7 14406 mov word [bp-01ch], dx ; 89 56 e4 14407 xor ax, ax ; 31 c0 14408 push ax ; 50 14409 mov bx, strict word 0000fh ; bb 0f 00 14410 xor cx, cx ; 31 c9 14411 mov ax, di ; 89 f8 14412 call 088f2h ; e8 4d f4 14413 cmp ax, strict word 00001h ; 3d 01 00 14414 je short 0945ah ; 74 b0 14415 xor ax, ax ; 31 c0 14416 push ax ; 50 14417 mov bx, strict word 0000fh ; bb 0f 00 14418 xor cx, cx ; 31 c9 14419 mov ax, di ; 89 f8 14420 mov dx, word [bp-01ch] ; 8b 56 e4 14421 call 088f2h ; e8 38 f4 14422 cmp ax, strict word 00003h ; 3d 03 00 14423 jne short 09457h ; 75 98 14424 mov ax, word [bp-016h] ; 8b 46 ea 14425 add ax, 00130h ; 05 30 01 14426 cwd ; 99 14427 mov es, [bp-010h] ; 8e 46 f0 14428 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 14429 mov cx, dx ; 89 d1 14430 mov dx, bx ; 89 da 14431 xchg cx, ax ; 91 14432 sal eax, 010h ; 66 c1 e0 10 14433 db 08bh, 0c1h 14434 ; mov ax, cx ; 8b c1 14435 out DX, eax ; 66 ef 14436 mov es, [bp-010h] ; 8e 46 f0 14439 mov es, [bp-01ah] ; 8e 46 e6 14437 14440 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 14438 14441 add dx, strict byte 00004h ; 83 c2 04 … … 14444 14447 ; mov ax, cx ; 8b c1 14445 14448 out DX, eax ; 66 ef 14446 mov es, [bp-00eh] ; 8e 46 f2 14447 mov bx, word [bp-01ah] ; 8b 5e e6 14449 les bx, [bp-026h] ; c4 5e da 14448 14450 mov al, byte [es:bx+00231h] ; 26 8a 87 31 02 14449 14451 mov byte [bp-00ch], al ; 88 46 f4 14450 14452 cmp AL, strict byte 004h ; 3c 04 14451 jc short 09509h ; 72 03 14452 jmp near 0986eh ; e9 65 03 14453 mov ax, word [bp-016h] ; 8b 46 ea 14454 add ax, 00118h ; 05 18 01 14455 mov es, [bp-010h] ; 8e 46 f0 14453 jnc short 094aeh ; 73 9a 14454 lea ax, [di+00118h] ; 8d 85 18 01 14455 mov es, [bp-01ah] ; 8e 46 e6 14456 14456 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 14457 14457 xor cx, cx ; 31 c9 … … 14477 14477 ; mov ax, cx ; 8b c1 14478 14478 out DX, eax ; 66 ef 14479 mov ax, word [bp-016h] ; 8b 46 ea 14480 add ax, 00124h ; 05 24 01 14479 lea ax, [di+00124h] ; 8d 85 24 01 14481 14480 cwd ; 99 14482 mov es, [bp-01 0h] ; 8e 46 f014481 mov es, [bp-01ah] ; 8e 46 e6 14483 14482 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 14484 14483 mov cx, dx ; 89 d1 … … 14489 14488 ; mov ax, cx ; 8b c1 14490 14489 out DX, eax ; 66 ef 14491 mov es, [bp-01 0h] ; 8e 46 f014490 mov es, [bp-01ah] ; 8e 46 e6 14492 14491 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 14493 14492 add dx, strict byte 00004h ; 83 c2 04 … … 14497 14496 shr eax, 010h ; 66 c1 e8 10 14498 14497 xchg dx, ax ; 92 14499 mov bx, ax ; 89 c3 14500 mov ax, dx ; 89 d0 14501 mov cl, byte [bp-00ch] ; 8a 4e f4 14502 add cl, 00ch ; 80 c1 0c 14498 mov bl, byte [bp-00ch] ; 8a 5e f4 14499 add bl, 00ch ; 80 c3 0c 14500 mov byte [bp-00eh], bl ; 88 5e f2 14503 14501 test dx, dx ; 85 d2 14504 jne short 095d4h ; 75 55 14505 cmp bx, 00101h ; 81 fb 01 01 14506 jne short 095d4h ; 75 4f 14507 mov es, [bp-00eh] ; 8e 46 f2 14508 mov bx, word [bp-01ah] ; 8b 5e e6 14502 jne short 095d9h ; 75 54 14503 cmp ax, 00101h ; 3d 01 01 14504 jne short 095d9h ; 75 4f 14505 les bx, [bp-026h] ; c4 5e da 14509 14506 mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00 14510 14507 mov word [es:bx+004h], strict word 00000h ; 26 c7 47 04 00 00 14511 14508 mov word [es:bx+002h], strict word 00000h ; 26 c7 47 02 00 00 14512 14509 mov word [es:bx], strict word 00000h ; 26 c7 07 00 00 14513 lea dx, [bp-002 2ah] ; 8d 96 d6fd14510 lea dx, [bp-00232h] ; 8d 96 ce fd 14514 14511 mov word [es:bx+008h], dx ; 26 89 57 08 14515 14512 mov [es:bx+00ah], ss ; 26 8c 57 0a … … 14517 14514 mov word [es:bx+010h], 00200h ; 26 c7 47 10 00 02 14518 14515 mov bx, 000ech ; bb ec 00 14519 mov ax, word [bp-0 1ah] ; 8b 46 e614516 mov ax, word [bp-026h] ; 8b 46 da 14520 14517 mov dx, es ; 8c c2 14521 call 08a85h ; e8 c0 f4 14522 mov byte [bp-00ah], cl ; 88 4e f6 14523 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14524 je short 095d7h ; 74 08 14518 call 08a85h ; e8 be f4 14519 mov al, byte [bp-00eh] ; 8a 46 f2 14520 mov byte [bp-00ah], al ; 88 46 f6 14521 test byte [bp-00232h], 080h ; f6 86 ce fd 80 14522 je short 095dch ; 74 08 14525 14523 mov ax, strict word 00001h ; b8 01 00 14526 jmp short 095d 9h ; eb 0514527 jmp near 097a 9h ; e9 d20114524 jmp short 095deh ; eb 05 14525 jmp near 097aah ; e9 ce 01 14528 14526 xor ax, ax ; 31 c0 14529 14527 mov cl, al ; 88 c1 14530 mov ax, word [bp-002 28h] ; 8b 86 d8fd14528 mov ax, word [bp-00230h] ; 8b 86 d0 fd 14531 14529 mov word [bp-018h], ax ; 89 46 e8 14532 mov ax, word [bp-00224h] ; 8b 86 dc fd 14533 mov word [bp-022h], ax ; 89 46 de 14534 mov ax, word [bp-0021eh] ; 8b 86 e2 fd 14535 mov word [bp-024h], ax ; 89 46 dc 14536 mov ax, word [bp-001b2h] ; 8b 86 4e fe 14537 mov word [bp-014h], ax ; 89 46 ec 14538 mov di, word [bp-001b0h] ; 8b be 50 fe 14530 mov ax, word [bp-0022ch] ; 8b 86 d4 fd 14531 mov word [bp-016h], ax ; 89 46 ea 14532 mov ax, word [bp-00226h] ; 8b 86 da fd 14533 mov word [bp-02ch], ax ; 89 46 d4 14534 mov di, word [bp-001bah] ; 8b be 46 fe 14535 mov si, word [bp-001b8h] ; 8b b6 48 fe 14539 14536 xor ax, ax ; 31 c0 14540 mov word [bp-01eh], ax ; 89 46 e214541 14537 mov word [bp-012h], ax ; 89 46 ee 14542 cmp di, 00fffh ; 81 ff ff 0f 14543 jne short 09628h ; 75 1f 14544 cmp word [bp-014h], strict byte 0ffffh ; 83 7e ec ff 14545 jne short 09628h ; 75 19 14546 mov ax, word [bp-0015ch] ; 8b 86 a4 fe 14538 mov word [bp-010h], ax ; 89 46 f0 14539 cmp si, 00fffh ; 81 fe ff 0f 14540 jne short 09626h ; 75 1b 14541 cmp di, strict byte 0ffffh ; 83 ff ff 14542 jne short 09626h ; 75 16 14543 mov ax, word [bp-00164h] ; 8b 86 9c fe 14544 mov word [bp-010h], ax ; 89 46 f0 14545 mov ax, word [bp-00166h] ; 8b 86 9a fe 14547 14546 mov word [bp-012h], ax ; 89 46 ee 14548 mov ax, word [bp-0015eh] ; 8b 86 a2 fe 14549 mov word [bp-01eh], ax ; 89 46 e2 14550 mov di, word [bp-00160h] ; 8b be a0 fe 14551 mov ax, word [bp-00162h] ; 8b 86 9e fe 14552 mov word [bp-014h], ax ; 89 46 ec 14547 mov si, word [bp-00168h] ; 8b b6 98 fe 14548 mov di, word [bp-0016ah] ; 8b be 96 fe 14553 14549 mov bl, byte [bp-00ch] ; 8a 5e f4 14554 14550 xor bh, bh ; 30 ff 14555 mov es, [bp-0 0eh] ; 8e 46 f214556 add bx, word [bp-0 1ah] ; 03 5e e614551 mov es, [bp-024h] ; 8e 46 dc 14552 add bx, word [bp-026h] ; 03 5e da 14557 14553 mov al, byte [bp-008h] ; 8a 46 f8 14558 14554 mov byte [es:bx+0022dh], al ; 26 88 87 2d 02 … … 14561 14557 mov dx, strict word 0001ch ; ba 1c 00 14562 14558 imul dx ; f7 ea 14563 mov si, word [bp-01ah] ; 8b 76 e6 14564 add si, ax ; 01 c6 14565 mov word [es:si+022h], 0ff05h ; 26 c7 44 22 05 ff 14566 mov byte [es:si+024h], cl ; 26 88 4c 24 14567 mov byte [es:si+025h], 000h ; 26 c6 44 25 00 14568 mov word [es:si+028h], 00200h ; 26 c7 44 28 00 02 14569 mov byte [es:si+027h], 001h ; 26 c6 44 27 01 14559 mov bx, word [bp-026h] ; 8b 5e da 14560 add bx, ax ; 01 c3 14561 mov word [es:bx+022h], 0ff05h ; 26 c7 47 22 05 ff 14562 mov byte [es:bx+024h], cl ; 26 88 4f 24 14563 mov byte [es:bx+025h], 000h ; 26 c6 47 25 00 14564 mov word [es:bx+028h], 00200h ; 26 c7 47 28 00 02 14565 mov byte [es:bx+027h], 001h ; 26 c6 47 27 01 14566 mov ax, word [bp-010h] ; 8b 46 f0 14567 mov word [es:bx+03ch], ax ; 26 89 47 3c 14570 14568 mov ax, word [bp-012h] ; 8b 46 ee 14571 mov word [es:si+03ch], ax ; 26 89 44 3c 14572 mov ax, word [bp-01eh] ; 8b 46 e2 14573 mov word [es:si+03ah], ax ; 26 89 44 3a 14574 mov word [es:si+038h], di ; 26 89 7c 38 14575 mov ax, word [bp-014h] ; 8b 46 ec 14576 mov word [es:si+036h], ax ; 26 89 44 36 14577 mov ax, word [bp-022h] ; 8b 46 de 14578 mov word [es:si+030h], ax ; 26 89 44 30 14569 mov word [es:bx+03ah], ax ; 26 89 47 3a 14570 mov word [es:bx+038h], si ; 26 89 77 38 14571 mov word [es:bx+036h], di ; 26 89 7f 36 14572 mov ax, word [bp-016h] ; 8b 46 ea 14573 mov word [es:bx+030h], ax ; 26 89 47 30 14579 14574 mov ax, word [bp-018h] ; 8b 46 e8 14580 mov word [es: si+032h], ax ; 26 89 443214581 mov ax, word [bp-02 4h] ; 8b 46 dc14582 mov word [es: si+034h], ax ; 26 89 443414575 mov word [es:bx+032h], ax ; 26 89 47 32 14576 mov ax, word [bp-02ch] ; 8b 46 d4 14577 mov word [es:bx+034h], ax ; 26 89 47 34 14583 14578 mov al, byte [bp-00ch] ; 8a 46 f4 14584 14579 cmp AL, strict byte 001h ; 3c 01 14585 jc short 096a 5h ; 72 0c14586 jbe short 096a dh ; 76 1214580 jc short 096a0h ; 72 0c 14581 jbe short 096a8h ; 76 12 14587 14582 cmp AL, strict byte 003h ; 3c 03 14588 je short 096b 5h ; 74 1614583 je short 096b0h ; 74 16 14589 14584 cmp AL, strict byte 002h ; 3c 02 14590 je short 096 b1h ; 74 0e14591 jmp short 096f 8h ; eb 5314585 je short 096ach ; 74 0e 14586 jmp short 096fah ; eb 5a 14592 14587 test al, al ; 84 c0 14593 jne short 096f 8h ; 75 4f14594 mov DL, strict byte 040h ; b24014595 jmp short 096b 7h ; eb 0a14596 mov DL, strict byte 048h ; b24814597 jmp short 096b 7h ; eb 0614598 mov DL, strict byte 050h ; b25014599 jmp short 096b 7h ; eb 0214600 mov DL, strict byte 058h ; b25814601 mov bl, dl ; 88 d314602 add bl, 007h ; 80 c30714603 xor bh, bh ; 30 ff14604 mov ax, bx ; 89 d814605 call 016aeh ; e8 eb7f14588 jne short 096fah ; 75 56 14589 mov BL, strict byte 040h ; b3 40 14590 jmp short 096b2h ; eb 0a 14591 mov BL, strict byte 048h ; b3 48 14592 jmp short 096b2h ; eb 06 14593 mov BL, strict byte 050h ; b3 50 14594 jmp short 096b2h ; eb 02 14595 mov BL, strict byte 058h ; b3 58 14596 mov dl, bl ; 88 da 14597 add dl, 007h ; 80 c2 07 14598 xor dh, dh ; 30 f6 14599 mov ax, dx ; 89 d0 14600 call 016aeh ; e8 f0 7f 14606 14601 test al, al ; 84 c0 14607 je short 096f 8h ; 74 3114608 mov al, dl ; 88 d014602 je short 096fah ; 74 38 14603 mov al, bl ; 88 d8 14609 14604 db 0feh, 0c0h 14610 14605 ; inc al ; fe c0 14611 14606 xor ah, ah ; 30 e4 14612 call 016aeh ; e8 de 7f 14613 mov ch, al ; 88 c5 14614 mov al, dl ; 88 d0 14615 xor ah, ah ; 30 e4 14616 call 016aeh ; e8 d5 7f 14617 mov ah, ch ; 88 ec 14618 mov word [bp-028h], ax ; 89 46 d8 14619 mov al, dl ; 88 d0 14607 call 016aeh ; e8 e3 7f 14608 mov byte [bp-029h], al ; 88 46 d7 14609 mov byte [bp-02ah], dh ; 88 76 d6 14610 mov al, bl ; 88 d8 14611 xor ah, ah ; 30 e4 14612 call 016aeh ; e8 d6 7f 14613 xor ah, ah ; 30 e4 14614 mov cx, word [bp-02ah] ; 8b 4e d6 14615 add cx, ax ; 01 c1 14616 mov word [bp-030h], cx ; 89 4e d0 14617 mov al, bl ; 88 d8 14620 14618 add AL, strict byte 002h ; 04 02 14621 xor ah, ah ; 30 e414622 call 016aeh ; e8 c7 7f14623 xor ah, ah ; 30 e414624 mov word [bp-02ah], ax ; 89 46 d614625 mov ax, bx ; 89 d814626 call 016aeh ; e8 bd 7f14627 xor ah, ah ; 30 e414628 mov word [bp-026h], ax ; 89 46 da14629 jmp short 0970ah ; eb 1214619 call 016aeh ; e8 c5 7f 14620 xor ah, ah ; 30 e4 14621 mov word [bp-032h], ax ; 89 46 ce 14622 mov ax, dx ; 89 d0 14623 call 016aeh ; e8 bb 7f 14624 xor ah, ah ; 30 e4 14625 mov word [bp-02eh], ax ; 89 46 d2 14626 jmp short 0970ah ; eb 10 14627 push word [bp-010h] ; ff 76 f0 14630 14628 push word [bp-012h] ; ff 76 ee 14631 push word [bp-01eh] ; ff 76 e214629 push si ; 56 14632 14630 push di ; 57 14633 push word [bp-014h] ; ff 76 ec14634 14631 mov dx, ss ; 8c d2 14635 lea ax, [bp-0 2ah] ; 8d 46 d614632 lea ax, [bp-032h] ; 8d 46 ce 14636 14633 call 05b7fh ; e8 75 c4 14637 14634 mov bx, 00da6h ; bb a6 0d … … 14639 14636 mov ax, strict word 00004h ; b8 04 00 14640 14637 call 01933h ; e8 1e 82 14638 push word [bp-010h] ; ff 76 f0 14641 14639 push word [bp-012h] ; ff 76 ee 14642 push word [bp-01eh] ; ff 76 e214640 push si ; 56 14643 14641 push di ; 57 14644 push word [bp-014h] ; ff 76 ec 14645 mov ax, word [bp-026h] ; 8b 46 da 14646 push ax ; 50 14647 mov ax, word [bp-02ah] ; 8b 46 d6 14648 push ax ; 50 14649 mov ax, word [bp-028h] ; 8b 46 d8 14650 push ax ; 50 14651 push word [bp-024h] ; ff 76 dc 14652 push word [bp-022h] ; ff 76 de 14642 mov ax, word [bp-02eh] ; 8b 46 d2 14643 push ax ; 50 14644 mov ax, word [bp-032h] ; 8b 46 ce 14645 push ax ; 50 14646 mov ax, word [bp-030h] ; 8b 46 d0 14647 push ax ; 50 14648 push word [bp-02ch] ; ff 76 d4 14649 push word [bp-016h] ; ff 76 ea 14653 14650 push word [bp-018h] ; ff 76 e8 14654 14651 mov al, byte [bp-008h] ; 8a 46 f8 … … 14661 14658 mov ax, strict word 00004h ; b8 04 00 14662 14659 push ax ; 50 14663 call 01976h ; e8 2 d8214660 call 01976h ; e8 2f 82 14664 14661 add sp, strict byte 0001ch ; 83 c4 1c 14665 14662 mov al, byte [bp-00ah] ; 8a 46 f6 … … 14667 14664 mov dx, strict word 0001ch ; ba 1c 00 14668 14665 imul dx ; f7 ea 14669 mov di, word [bp-0 1ah] ; 8b 7e e614666 mov di, word [bp-026h] ; 8b 7e da 14670 14667 add di, ax ; 01 c7 14671 mov es, [bp-0 0eh] ; 8e 46 f214668 mov es, [bp-024h] ; 8e 46 dc 14672 14669 lea di, [di+02ah] ; 8d 7d 2a 14673 14670 push DS ; 1e 14674 14671 push SS ; 16 14675 14672 pop DS ; 1f 14676 lea si, [bp-0 2ah] ; 8d 76 d614673 lea si, [bp-032h] ; 8d 76 ce 14677 14674 movsw ; a5 14678 14675 movsw ; a5 14679 14676 movsw ; a5 14680 14677 pop DS ; 1f 14681 mov bx, word [bp-01ah] ; 8b 5e e6 14682 mov dl, byte [es:bx+001e2h] ; 26 8a 97 e2 01 14683 mov al, byte [bp-00ch] ; 8a 46 f4 14684 add AL, strict byte 00ch ; 04 0c 14685 mov bl, dl ; 88 d3 14686 xor bh, bh ; 30 ff 14687 add bx, word [bp-01ah] ; 03 5e e6 14688 mov byte [es:bx+001e3h], al ; 26 88 87 e3 01 14689 db 0feh, 0c2h 14690 ; inc dl ; fe c2 14691 mov bx, word [bp-01ah] ; 8b 5e e6 14692 mov byte [es:bx+001e2h], dl ; 26 88 97 e2 01 14678 mov bx, word [bp-026h] ; 8b 5e da 14679 mov bl, byte [es:bx+001e2h] ; 26 8a 9f e2 01 14680 mov dl, byte [bp-00ch] ; 8a 56 f4 14681 add dl, 00ch ; 80 c2 0c 14682 mov al, bl ; 88 d8 14683 xor ah, ah ; 30 e4 14684 mov si, word [bp-026h] ; 8b 76 da 14685 add si, ax ; 01 c6 14686 mov byte [es:si+001e3h], dl ; 26 88 94 e3 01 14687 db 0feh, 0c3h 14688 ; inc bl ; fe c3 14689 mov si, word [bp-026h] ; 8b 76 da 14690 mov byte [es:si+001e2h], bl ; 26 88 9c e2 01 14693 14691 mov dx, strict word 00075h ; ba 75 00 14694 14692 mov ax, strict word 00040h ; b8 40 00 14695 call 01652h ; e8 b b7e14693 call 01652h ; e8 ba 7e 14696 14694 mov bl, al ; 88 c3 14697 14695 db 0feh, 0c3h … … 14700 14698 mov dx, strict word 00075h ; ba 75 00 14701 14699 mov ax, strict word 00040h ; b8 40 00 14702 call 01660h ; e8 b a7e14703 jmp near 0985dh ; e9 b 40014700 call 01660h ; e8 b9 7e 14701 jmp near 0985dh ; e9 b3 00 14704 14702 cmp dx, 0eb14h ; 81 fa 14 eb 14705 jne short 09804h ; 75 5 514706 cmp bx, 00101h ; 81 fb01 0114703 jne short 09804h ; 75 54 14704 cmp ax, 00101h ; 3d 01 01 14707 14705 jne short 09804h ; 75 4f 14708 mov es, [bp-00eh] ; 8e 46 f2 14709 mov bx, word [bp-01ah] ; 8b 5e e6 14706 les bx, [bp-026h] ; c4 5e da 14710 14707 mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00 14711 14708 mov word [es:bx+004h], strict word 00000h ; 26 c7 47 04 00 00 14712 14709 mov word [es:bx+002h], strict word 00000h ; 26 c7 47 02 00 00 14713 14710 mov word [es:bx], strict word 00000h ; 26 c7 07 00 00 14714 lea dx, [bp-002 2ah] ; 8d 96 d6fd14711 lea dx, [bp-00232h] ; 8d 96 ce fd 14715 14712 mov word [es:bx+008h], dx ; 26 89 57 08 14716 14713 mov [es:bx+00ah], ss ; 26 8c 57 0a … … 14718 14715 mov word [es:bx+010h], 00200h ; 26 c7 47 10 00 02 14719 14716 mov bx, 000a1h ; bb a1 00 14720 mov ax, word [bp-0 1ah] ; 8b 46 e614717 mov ax, word [bp-026h] ; 8b 46 da 14721 14718 mov dx, es ; 8c c2 14722 call 08a85h ; e8 90 f2 14723 mov byte [bp-00ah], cl ; 88 4e f6 14724 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14719 call 08a85h ; e8 93 f2 14720 mov al, byte [bp-00eh] ; 8a 46 f2 14721 mov byte [bp-00ah], al ; 88 46 f6 14722 test byte [bp-00232h], 080h ; f6 86 ce fd 80 14725 14723 je short 09806h ; 74 07 14726 14724 mov cx, strict word 00001h ; b9 01 00 … … 14730 14728 mov bl, byte [bp-00ch] ; 8a 5e f4 14731 14729 xor bh, bh ; 30 ff 14732 mov es, [bp-0 0eh] ; 8e 46 f214733 add bx, word [bp-0 1ah] ; 03 5e e614730 mov es, [bp-024h] ; 8e 46 dc 14731 add bx, word [bp-026h] ; 03 5e da 14734 14732 mov al, byte [bp-008h] ; 8a 46 f8 14735 14733 mov byte [es:bx+0022dh], al ; 26 88 87 2d 02 … … 14738 14736 mov dx, strict word 0001ch ; ba 1c 00 14739 14737 imul dx ; f7 ea 14740 mov si, word [bp-01ah] ; 8b 76 e614741 add si, ax ; 01 c614742 mov word [es: si+022h], 00505h ; 26 c7 4422 05 0514743 mov byte [es: si+024h], cl ; 26 88 4c2414744 mov word [es: si+028h], 00800h ; 26 c7 4428 00 0814745 mov bx, word [bp-0 1ah] ; 8b 5e e614738 mov bx, word [bp-026h] ; 8b 5e da 14739 add bx, ax ; 01 c3 14740 mov word [es:bx+022h], 00505h ; 26 c7 47 22 05 05 14741 mov byte [es:bx+024h], cl ; 26 88 4f 24 14742 mov word [es:bx+028h], 00800h ; 26 c7 47 28 00 08 14743 mov bx, word [bp-026h] ; 8b 5e da 14746 14744 mov dl, byte [es:bx+001f3h] ; 26 8a 97 f3 01 14747 14745 mov al, byte [bp-00ch] ; 8a 46 f4 … … 14749 14747 mov bl, dl ; 88 d3 14750 14748 xor bh, bh ; 30 ff 14751 add bx, word [bp-0 1ah] ; 03 5e e614749 add bx, word [bp-026h] ; 03 5e da 14752 14750 mov byte [es:bx+001f4h], al ; 26 88 87 f4 01 14753 14751 db 0feh, 0c2h 14754 14752 ; inc dl ; fe c2 14755 mov bx, word [bp-0 1ah] ; 8b 5e e614753 mov bx, word [bp-026h] ; 8b 5e da 14756 14754 mov byte [es:bx+001f3h], dl ; 26 88 97 f3 01 14757 14755 inc byte [bp-00ch] ; fe 46 f4 14758 14756 mov al, byte [bp-00ch] ; 8a 46 f4 14759 mov es, [bp-00eh] ; 8e 46 f2 14760 mov bx, word [bp-01ah] ; 8b 5e e6 14757 les bx, [bp-026h] ; c4 5e da 14761 14758 mov byte [es:bx+00231h], al ; 26 88 87 31 02 14762 14759 lea sp, [bp-006h] ; 8d 66 fa … … 14766 14763 pop bp ; 5d 14767 14764 retn ; c3 14768 ahci_mem_alloc_: ; 0xf987 6LB 0x4314765 ahci_mem_alloc_: ; 0xf9873 LB 0x43 14769 14766 push bp ; 55 14770 14767 mov bp, sp ; 89 e5 … … 14776 14773 mov dx, 00413h ; ba 13 04 14777 14774 xor ax, ax ; 31 c0 14778 call 0166eh ; e8 e 87d14775 call 0166eh ; e8 eb 7d 14779 14776 test ax, ax ; 85 c0 14780 je short 098a fh ; 74 2514777 je short 098ach ; 74 25 14781 14778 dec ax ; 48 14782 14779 mov bx, ax ; 89 c3 … … 14785 14782 sal ax, 1 ; d1 e0 14786 14783 rcl dx, 1 ; d1 d2 14787 loop 098 92h ; e2 fa14784 loop 0988fh ; e2 fa 14788 14785 mov si, ax ; 89 c6 14789 14786 mov di, dx ; 89 d7 … … 14791 14788 shr di, 1 ; d1 ef 14792 14789 rcr si, 1 ; d1 de 14793 loop 0989 fh ; e2 fa14790 loop 0989ch ; e2 fa 14794 14791 mov dx, 00413h ; ba 13 04 14795 14792 xor ax, ax ; 31 c0 14796 call 0167ch ; e8 cf7d14793 call 0167ch ; e8 d2 7d 14797 14794 mov ax, si ; 89 f0 14798 14795 lea sp, [bp-00ah] ; 8d 66 f6 … … 14804 14801 pop bp ; 5d 14805 14802 retn ; c3 14806 ahci_hba_init_: ; 0xf98b 9LB 0x16e14803 ahci_hba_init_: ; 0xf98b6 LB 0x16e 14807 14804 push bp ; 55 14808 14805 mov bp, sp ; 89 e5 … … 14816 14813 mov dx, strict word 0000eh ; ba 0e 00 14817 14814 mov ax, strict word 00040h ; b8 40 00 14818 call 0166eh ; e8 9f7d14815 call 0166eh ; e8 a2 7d 14819 14816 mov bx, 00122h ; bb 22 01 14820 14817 mov di, ax ; 89 c7 … … 14833 14830 shr eax, 010h ; 66 c1 e8 10 14834 14831 xchg dx, ax ; 92 14835 call 0987 6h ; e8 83 ff14832 call 09873h ; e8 83 ff 14836 14833 mov word [bp-010h], ax ; 89 46 f0 14837 14834 test ax, ax ; 85 c0 14838 jne short 098f dh ; 75 0314839 jmp near 09a0 6h ; e9 09 0114835 jne short 098fah ; 75 03 14836 jmp near 09a03h ; e9 09 01 14840 14837 mov ax, word [bp-010h] ; 8b 46 f0 14841 14838 mov es, di ; 8e c7 … … 14887 14884 xchg dx, ax ; 92 14888 14885 test AL, strict byte 001h ; a8 01 14889 jne short 0995 7h ; 75 de14886 jne short 09954h ; 75 de 14890 14887 xor ax, ax ; 31 c0 14891 14888 xor cx, cx ; 31 c9 … … 14906 14903 mov bx, strict word 0001fh ; bb 1f 00 14907 14904 xor cx, cx ; 31 c9 14908 call 088f2h ; e8 5 4ef14905 call 088f2h ; e8 57 ef 14909 14906 db 0feh, 0c0h 14910 14907 ; inc al ; fe c0 14911 14908 mov byte [bp-00eh], al ; 88 46 f2 14912 14909 mov byte [bp-00ch], 000h ; c6 46 f4 00 14913 jmp short 099c ah ; eb 2114910 jmp short 099c7h ; eb 21 14914 14911 xor al, al ; 30 c0 14915 14912 test al, al ; 84 c0 14916 je short 099 c1h ; 74 1214913 je short 099beh ; 74 12 14917 14914 mov bl, byte [bp-00ch] ; 8a 5e f4 14918 14915 xor bh, bh ; 30 ff 14919 14916 xor ax, ax ; 31 c0 14920 14917 mov dx, word [bp-010h] ; 8b 56 f0 14921 call 0937 8h ; e8 bcf914918 call 0937dh ; e8 c4 f9 14922 14919 dec byte [bp-00eh] ; fe 4e f2 14923 je short 09a0 4h ; 74 4314920 je short 09a01h ; 74 43 14924 14921 inc byte [bp-00ch] ; fe 46 f4 14925 14922 cmp byte [bp-00ch], 020h ; 80 7e f4 20 14926 jnc short 09a0 4h ; 73 3a14923 jnc short 09a01h ; 73 3a 14927 14924 mov cl, byte [bp-00ch] ; 8a 4e f4 14928 14925 xor ch, ch ; 30 ed 14929 14926 mov bx, strict word 00001h ; bb 01 00 14930 14927 xor di, di ; 31 ff 14931 jcxz 099d ch ; e3 0614928 jcxz 099d9h ; e3 06 14932 14929 sal bx, 1 ; d1 e3 14933 14930 rcl di, 1 ; d1 d7 14934 loop 099d 6h ; e2 fa14931 loop 099d3h ; e2 fa 14935 14932 mov ax, strict word 0000ch ; b8 0c 00 14936 14933 xor cx, cx ; 31 c9 … … 14948 14945 xchg dx, ax ; 92 14949 14946 test dx, di ; 85 fa 14950 jne short 09 a00h ; 75 0414947 jne short 099fdh ; 75 04 14951 14948 test ax, bx ; 85 d8 14952 je short 099a 9h ; 74 a914949 je short 099a6h ; 74 a9 14953 14950 mov AL, strict byte 001h ; b0 01 14954 jmp short 099a bh ; eb a714951 jmp short 099a8h ; eb a7 14955 14952 xor ax, ax ; 31 c0 14956 14953 lea sp, [bp-00ah] ; 8d 66 f6 … … 14962 14959 pop bp ; 5d 14963 14960 retn ; c3 14964 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 00 dh, 09bh, 0ebh, 09ah, 0f1h, 09ah, 0f7h, 09ah, 0fdh14965 db 09ah, 00 3h, 09bh, 009h, 09bh, 00dh, 09bh14966 _ahci_init: ; 0xf9a2 7LB 0x13914961 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 00ah, 09bh, 0e8h, 09ah, 0eeh, 09ah, 0f4h, 09ah, 0fah 14962 db 09ah, 000h, 09bh, 006h, 09bh, 00ah, 09bh 14963 _ahci_init: ; 0xf9a24 LB 0x139 14967 14964 push bp ; 55 14968 14965 mov bp, sp ; 89 e5 … … 14972 14969 mov ax, 00601h ; b8 01 06 14973 14970 mov dx, strict word 00001h ; ba 01 00 14974 call 09f7 fh ; e8 47 0514971 call 09f7ch ; e8 47 05 14975 14972 mov dx, ax ; 89 c2 14976 14973 cmp ax, strict word 0ffffh ; 3d ff ff 14977 je short 09a8 8h ; 74 4914974 je short 09a85h ; 74 49 14978 14975 mov al, ah ; 88 e0 14979 14976 mov byte [bp-008h], ah ; 88 66 f8 … … 14982 14979 xor ah, ah ; 30 e4 14983 14980 mov bx, strict word 00034h ; bb 34 00 14984 call 09fa ah ; e8 59 0514981 call 09fa7h ; e8 59 05 14985 14982 mov cl, al ; 88 c1 14986 14983 test cl, cl ; 84 c9 14987 je short 09a8 bh ; 74 3414984 je short 09a88h ; 74 34 14988 14985 mov bl, cl ; 88 cb 14989 14986 xor bh, bh ; 30 ff … … 14996 14993 mov dx, word [bp-00ch] ; 8b 56 f4 14997 14994 mov ax, word [bp-012h] ; 8b 46 ee 14998 call 09fa ah ; e8 34 0514995 call 09fa7h ; e8 34 05 14999 14996 cmp AL, strict byte 012h ; 3c 12 15000 je short 09a8 bh ; 74 1114997 je short 09a88h ; 74 11 15001 14998 mov bl, cl ; 88 cb 15002 14999 db 0feh, 0c3h … … 15005 15002 mov dx, word [bp-00ch] ; 8b 56 f4 15006 15003 mov ax, word [bp-012h] ; 8b 46 ee 15007 jmp short 09a4 eh ; eb c615008 jmp near 09b5 9h ; e9 ce 0015004 jmp short 09a4bh ; eb c6 15005 jmp near 09b56h ; e9 ce 00 15009 15006 test cl, cl ; 84 c9 15010 je short 09a8 8h ; 74 f915007 je short 09a85h ; 74 f9 15011 15008 add cl, 002h ; 80 c1 02 15012 15009 mov bl, cl ; 88 cb … … 15020 15017 mov dx, word [bp-00eh] ; 8b 56 f2 15021 15018 mov ax, word [bp-014h] ; 8b 46 ec 15022 call 09fa ah ; e8 f9 0415019 call 09fa7h ; e8 f9 04 15023 15020 cmp AL, strict byte 010h ; 3c 10 15024 jne short 09a8 8h ; 75 d315021 jne short 09a85h ; 75 d3 15025 15022 mov byte [bp-006h], 000h ; c6 46 fa 00 15026 15023 mov bl, cl ; 88 cb … … 15029 15026 mov dx, word [bp-00eh] ; 8b 56 f2 15030 15027 mov ax, word [bp-014h] ; 8b 46 ec 15031 call 09f d1h ; e8 08 0515028 call 09fceh ; e8 08 05 15032 15029 mov dx, ax ; 89 c2 15033 15030 and ax, strict word 0000fh ; 25 0f 00 15034 15031 sub ax, strict word 00004h ; 2d 04 00 15035 15032 cmp ax, strict word 0000bh ; 3d 0b 00 15036 jnbe short 09b0 dh ; 77 3715033 jnbe short 09b0ah ; 77 37 15037 15034 push CS ; 0e 15038 15035 pop ES ; 07 15039 15036 mov cx, strict word 00008h ; b9 08 00 15040 mov di, 09a 10h ; bf 109a15037 mov di, 09a0dh ; bf 0d 9a 15041 15038 repne scasb ; f2 ae 15042 15039 sal cx, 1 ; d1 e1 15043 15040 mov di, cx ; 89 cf 15044 mov ax, word [cs:di-065e 9h] ; 2e 8b 85 179a15041 mov ax, word [cs:di-065ech] ; 2e 8b 85 14 9a 15045 15042 jmp ax ; ff e0 15046 15043 mov byte [bp-006h], 010h ; c6 46 fa 10 15047 jmp short 09b0 dh ; eb 1c15044 jmp short 09b0ah ; eb 1c 15048 15045 mov byte [bp-006h], 014h ; c6 46 fa 14 15049 jmp short 09b0 dh ; eb 1615046 jmp short 09b0ah ; eb 16 15050 15047 mov byte [bp-006h], 018h ; c6 46 fa 18 15051 jmp short 09b0 dh ; eb 1015048 jmp short 09b0ah ; eb 10 15052 15049 mov byte [bp-006h], 01ch ; c6 46 fa 1c 15053 jmp short 09b0 dh ; eb 0a15050 jmp short 09b0ah ; eb 0a 15054 15051 mov byte [bp-006h], 020h ; c6 46 fa 20 15055 jmp short 09b0 dh ; eb 0415052 jmp short 09b0ah ; eb 04 15056 15053 mov byte [bp-006h], 024h ; c6 46 fa 24 15057 15054 mov CL, strict byte 004h ; b1 04 … … 15062 15059 mov al, byte [bp-006h] ; 8a 46 fa 15063 15060 test al, al ; 84 c0 15064 je short 09b5 9h ; 74 3b15061 je short 09b56h ; 74 3b 15065 15062 mov bl, al ; 88 c3 15066 15063 xor bh, bh ; 30 ff … … 15073 15070 mov dx, word [bp-010h] ; 8b 56 f0 15074 15071 mov ax, word [bp-016h] ; 8b 46 ea 15075 call 09ff 6h ; e8 b9 0415072 call 09ff3h ; e8 b9 04 15076 15073 test AL, strict byte 001h ; a8 01 15077 je short 09b5 9h ; 74 1815074 je short 09b56h ; 74 18 15078 15075 and AL, strict byte 0f0h ; 24 f0 15079 15076 add si, ax ; 01 c6 … … 15082 15079 mov dx, word [bp-010h] ; 8b 56 f0 15083 15080 mov ax, word [bp-016h] ; 8b 46 ea 15084 call 0a03 5h ; e8 e1 0415081 call 0a032h ; e8 e1 04 15085 15082 mov ax, si ; 89 f0 15086 call 098b 9h ; e8 60 fd15083 call 098b6h ; e8 60 fd 15087 15084 lea sp, [bp-004h] ; 8d 66 fc 15088 15085 pop di ; 5f … … 15090 15087 pop bp ; 5d 15091 15088 retn ; c3 15092 apm_out_str_: ; 0xf9b 60LB 0x3915089 apm_out_str_: ; 0xf9b5d LB 0x39 15093 15090 push bp ; 55 15094 15091 mov bp, sp ; 89 e5 … … 15096 15093 mov bx, ax ; 89 c3 15097 15094 cmp byte [bx], 000h ; 80 3f 00 15098 je short 09b7 5h ; 74 0a15095 je short 09b72h ; 74 0a 15099 15096 mov al, byte [bx] ; 8a 07 15100 15097 out DX, AL ; ee … … 15103 15100 db 00ah, 0c0h 15104 15101 ; or al, al ; 0a c0 15105 jne short 09b6 dh ; 75 f815102 jne short 09b6ah ; 75 f8 15106 15103 lea sp, [bp-002h] ; 8d 66 fe 15107 15104 pop bx ; 5b 15108 15105 pop bp ; 5d 15109 15106 retn ; c3 15110 mov dx, 0459bh ; ba 9b 45 15107 mov BH, strict byte 09bh ; b7 9b 15108 inc dx ; 42 15111 15109 pushfw ; 9c 15112 int3 ; cc15110 leave ; c9 15113 15111 wait ; 9b 15114 out 09bh, ax ; e79b15115 inc bp ; 4515112 in AL, strict byte 09bh ; e4 9b 15113 inc dx ; 42 15116 15114 pushfw ; 9c 15117 adc bl, byte [si-063bbh] ; 12 9c 45 9c 15118 dec bx ; 4b 15115 db 00fh, 09ch, 042h, 09ch 15116 ; setl byte [bp+si-064h] ; 0f 9c 42 9c 15117 dec ax ; 48 15119 15118 pushfw ; 9c 15120 pop SS ; 17 15119 adc AL, strict byte 09ch ; 14 9c 15120 adc AL, strict byte 09ch ; 14 9c 15121 adc AL, strict byte 09ch ; 14 9c 15122 xchg word [si-063ech], bx ; 87 9c 14 9c 15123 adc AL, strict byte 09ch ; 14 9c 15124 db 080h 15121 15125 pushfw ; 9c 15122 pop SS ; 17 15123 pushfw ; 9c 15124 pop SS ; 17 15125 pushfw ; 9c 15126 mov bl, byte [si-063e9h] ; 8a 9c 17 9c 15127 pop SS ; 17 15128 pushfw ; 9c 15129 db 083h 15130 pushfw ; 9c 15131 _apm_function: ; 0xf9b99 LB 0xf6 15126 _apm_function: ; 0xf9b96 LB 0xf6 15132 15127 push bp ; 55 15133 15128 mov bp, sp ; 89 e5 … … 15137 15132 xor ah, ah ; 30 e4 15138 15133 cmp ax, strict word 0000eh ; 3d 0e 00 15139 jnbe short 09c1 7h ; 77 6c15134 jnbe short 09c14h ; 77 6c 15140 15135 mov bx, ax ; 89 c3 15141 15136 sal bx, 1 ; d1 e3 15142 15137 mov dx, word [bp+018h] ; 8b 56 18 15143 15138 or dl, 001h ; 80 ca 01 15144 jmp word [cs:bx-0648 5h] ; 2e ff a7 7b9b15139 jmp word [cs:bx-06488h] ; 2e ff a7 78 9b 15145 15140 mov word [bp+012h], 00102h ; c7 46 12 02 01 15146 15141 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 15147 15142 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 15148 jmp near 09c4 5h ; e9 79 0015143 jmp near 09c42h ; e9 79 00 15149 15144 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 15150 mov word [bp+00ch], 0a2 34h ; c7 46 0c 34 a215145 mov word [bp+00ch], 0a224h ; c7 46 0c 24 a2 15151 15146 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 15152 15147 mov ax, strict word 0fff0h ; b8 f0 ff 15153 15148 mov word [bp+006h], ax ; 89 46 06 15154 15149 mov word [bp+004h], ax ; 89 46 04 15155 jmp near 09c4 5h ; e9 5e 0015150 jmp near 09c42h ; e9 5e 00 15156 15151 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 15157 15152 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 15166 15161 mov si, ax ; 89 c6 15167 15162 sal esi, 010h ; 66 c1 e6 10 15168 jmp near 09c4 5h ; e9 33 0015163 jmp near 09c42h ; e9 33 00 15169 15164 sti ; fb 15170 15165 hlt ; f4 15171 jmp near 09c4 5h ; e9 2e 0015166 jmp near 09c42h ; e9 2e 00 15172 15167 mov bx, 00da6h ; bb a6 0d 15173 15168 mov cx, ds ; 8c d9 15174 15169 mov ax, strict word 00004h ; b8 04 00 15175 call 01933h ; e8 1 17d15170 call 01933h ; e8 14 7d 15176 15171 push word [bp+00ch] ; ff 76 0c 15177 15172 push word [bp+012h] ; ff 76 12 … … 15180 15175 mov ax, strict word 00004h ; b8 04 00 15181 15176 push ax ; 50 15182 call 01976h ; e8 4 37d15177 call 01976h ; e8 46 7d 15183 15178 add sp, strict byte 00008h ; 83 c4 08 15184 15179 mov ax, word [bp+012h] ; 8b 46 12 … … 15192 15187 retn ; c3 15193 15188 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 15194 je short 09c 70h ; 74 1f15189 je short 09c6dh ; 74 1f 15195 15190 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 15196 je short 09c6 8h ; 74 1115191 je short 09c65h ; 74 11 15197 15192 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 15198 jne short 09c7 8h ; 75 1b15193 jne short 09c75h ; 75 1b 15199 15194 mov dx, 0040fh ; ba 0f 04 15200 15195 mov ax, 00d10h ; b8 10 0d 15201 call 09b 60h ; e8 fa fe15202 jmp short 09c4 5h ; eb dd15196 call 09b5dh ; e8 fa fe 15197 jmp short 09c42h ; eb dd 15203 15198 mov dx, 0040fh ; ba 0f 04 15204 15199 mov ax, 00d18h ; b8 18 0d 15205 jmp short 09c6 3h ; eb f315200 jmp short 09c60h ; eb f3 15206 15201 mov dx, 0040fh ; ba 0f 04 15207 15202 mov ax, 00d20h ; b8 20 0d 15208 jmp short 09c6 3h ; eb eb15203 jmp short 09c60h ; eb eb 15209 15204 or ah, 00ah ; 80 cc 0a 15210 15205 mov word [bp+012h], ax ; 89 46 12 15211 15206 mov word [bp+018h], dx ; 89 56 18 15212 jmp short 09c4 5h ; eb c215207 jmp short 09c42h ; eb c2 15213 15208 mov word [bp+012h], 00102h ; c7 46 12 02 01 15214 jmp short 09c4 5h ; eb bb15209 jmp short 09c42h ; eb bb 15215 15210 or ah, 080h ; 80 cc 80 15216 jmp short 09c7 bh ; eb ec15217 pci16_select_reg_: ; 0xf9c8 fLB 0x2415211 jmp short 09c78h ; eb ec 15212 pci16_select_reg_: ; 0xf9c8c LB 0x24 15218 15213 push bp ; 55 15219 15214 mov bp, sp ; 89 e5 … … 15232 15227 pop bp ; 5d 15233 15228 retn ; c3 15234 pci16_find_device_: ; 0xf9cb 3LB 0xf715229 pci16_find_device_: ; 0xf9cb0 LB 0xf7 15235 15230 push bp ; 55 15236 15231 mov bp, sp ; 89 e5 … … 15246 15241 mov byte [bp-006h], 000h ; c6 46 fa 00 15247 15242 test bl, 007h ; f6 c3 07 15248 jne short 09cf bh ; 75 2d15243 jne short 09cf8h ; 75 2d 15249 15244 mov dx, strict word 0000eh ; ba 0e 00 15250 15245 mov ax, bx ; 89 d8 15251 call 09c8 fh ; e8 b9 ff15246 call 09c8ch ; e8 b9 ff 15252 15247 mov dx, 00cfeh ; ba fe 0c 15253 15248 in AL, DX ; ec … … 15256 15251 mov byte [bp-008h], al ; 88 46 f8 15257 15252 cmp AL, strict byte 0ffh ; 3c ff 15258 jne short 09ce 9h ; 75 0615253 jne short 09ce6h ; 75 06 15259 15254 add bx, strict byte 00008h ; 83 c3 08 15260 jmp near 09d7 bh ; e9 92 0015255 jmp near 09d78h ; e9 92 00 15261 15256 test byte [bp-008h], 080h ; f6 46 f8 80 15262 je short 09cf 6h ; 74 0715257 je short 09cf3h ; 74 07 15263 15258 mov word [bp-00eh], strict word 00001h ; c7 46 f2 01 00 15264 jmp short 09cf bh ; eb 0515259 jmp short 09cf8h ; eb 05 15265 15260 mov word [bp-00eh], strict word 00008h ; c7 46 f2 08 00 15266 15261 mov al, byte [bp-008h] ; 8a 46 f8 15267 15262 and AL, strict byte 007h ; 24 07 15268 15263 cmp AL, strict byte 001h ; 3c 01 15269 jne short 09d 22h ; 75 1e15264 jne short 09d1fh ; 75 1e 15270 15265 mov al, bh ; 88 f8 15271 15266 xor ah, ah ; 30 e4 15272 15267 test ax, ax ; 85 c0 15273 jne short 09d 22h ; 75 1615268 jne short 09d1fh ; 75 16 15274 15269 mov dx, strict word 0001ah ; ba 1a 00 15275 15270 mov ax, bx ; 89 d8 15276 call 09c8 fh ; e8 7b ff15271 call 09c8ch ; e8 7b ff 15277 15272 mov dx, 00cfeh ; ba fe 0c 15278 15273 in AL, DX ; ec … … 15280 15275 ; sub ah, ah ; 2a e4 15281 15276 cmp al, byte [bp-006h] ; 3a 46 fa 15282 jbe short 09d 22h ; 76 0315277 jbe short 09d1fh ; 76 03 15283 15278 mov byte [bp-006h], al ; 88 46 fa 15284 15279 test di, di ; 85 ff 15285 je short 09d2 bh ; 74 0515280 je short 09d28h ; 74 05 15286 15281 mov dx, strict word 00008h ; ba 08 00 15287 jmp short 09d2 dh ; eb 0215282 jmp short 09d2ah ; eb 02 15288 15283 xor dx, dx ; 31 d2 15289 15284 mov ax, bx ; 89 d8 15290 call 09c8 fh ; e8 5d ff15285 call 09c8ch ; e8 5d ff 15291 15286 mov dx, 00cfch ; ba fc 0c 15292 15287 in eax, DX ; 66 ed … … 15299 15294 mov word [bp-00ch], strict word 00000h ; c7 46 f4 00 00 15300 15295 test di, di ; 85 ff 15301 je short 09d5 ch ; 74 0f15296 je short 09d59h ; 74 0f 15302 15297 mov cx, strict word 00008h ; b9 08 00 15303 15298 shr dx, 1 ; d1 ea 15304 15299 rcr ax, 1 ; d1 d8 15305 loop 09d 50h ; e2 fa15300 loop 09d4dh ; e2 fa 15306 15301 mov word [bp-00ah], ax ; 89 46 f6 15307 15302 mov word [bp-010h], dx ; 89 56 f0 15308 15303 mov ax, word [bp-010h] ; 8b 46 f0 15309 15304 cmp ax, word [bp-014h] ; 3b 46 ec 15310 jne short 09d6 ch ; 75 0815305 jne short 09d69h ; 75 08 15311 15306 mov ax, word [bp-00ah] ; 8b 46 f6 15312 15307 cmp ax, word [bp-012h] ; 3b 46 ee 15313 je short 09d 72h ; 74 0615308 je short 09d6fh ; 74 06 15314 15309 cmp word [bp-00ch], strict byte 00000h ; 83 7e f4 00 15315 je short 09d7 8h ; 74 0615310 je short 09d75h ; 74 06 15316 15311 dec si ; 4e 15317 15312 cmp si, strict byte 0ffffh ; 83 fe ff 15318 je short 09d8 bh ; 74 1315313 je short 09d88h ; 74 13 15319 15314 add bx, word [bp-00eh] ; 03 5e f2 15320 15315 mov al, bh ; 88 f8 … … 15323 15318 xor dh, dh ; 30 f6 15324 15319 cmp ax, dx ; 39 d0 15325 jnbe short 09d8 bh ; 77 0315326 jmp near 09cc 9h ; e9 3e ff15320 jnbe short 09d88h ; 77 03 15321 jmp near 09cc6h ; e9 3e ff 15327 15322 cmp si, strict byte 0ffffh ; 83 fe ff 15328 jne short 09d9 4h ; 75 0415323 jne short 09d91h ; 75 04 15329 15324 mov ax, bx ; 89 d8 15330 jmp short 09d9 7h ; eb 0315325 jmp short 09d94h ; eb 03 15331 15326 mov ax, strict word 0ffffh ; b8 ff ff 15332 15327 lea sp, [bp-004h] ; 8d 66 fc … … 15335 15330 pop bp ; 5d 15336 15331 retn ; c3 15337 mov bx, word [bp-0615ch] ; 8b 9e a4 9e 15338 mov DH, strict byte 09eh ; b6 9e 15339 retf 0dc9eh ; ca 9e dc 15340 sahf ; 9e 15341 out DX, ax ; ef 15342 sahf ; 9e 15343 _pci16_function: ; 0xf9daa LB 0x1d5 15332 mov byte [bp-0615fh], bl ; 88 9e a1 9e 15333 mov BL, strict byte 09eh ; b3 9e 15334 db 0c7h, 09eh, 0d9h, 09eh, 0ech, 09eh 15335 ; mov word [bp-06127h], 09eech ; c7 9e d9 9e ec 9e 15336 _pci16_function: ; 0xf9da7 LB 0x1d5 15344 15337 push bp ; 55 15345 15338 mov bp, sp ; 89 e5 … … 15355 15348 xor ah, ah ; 30 e4 15356 15349 cmp bx, strict byte 00003h ; 83 fb 03 15357 jc short 09dd ch ; 72 1315358 jbe short 09e2 fh ; 76 6415350 jc short 09dd9h ; 72 13 15351 jbe short 09e2ch ; 76 64 15359 15352 cmp bx, strict byte 0000eh ; 83 fb 0e 15360 je short 09e3 7h ; 74 6715353 je short 09e34h ; 74 67 15361 15354 cmp bx, strict byte 00008h ; 83 fb 08 15362 jc short 09de 6h ; 72 1115355 jc short 09de3h ; 72 11 15363 15356 cmp bx, strict byte 0000dh ; 83 fb 0d 15364 jbe short 09e3 ah ; 76 6015365 jmp short 09de 6h ; eb 0a15357 jbe short 09e37h ; 76 60 15358 jmp short 09de3h ; eb 0a 15366 15359 cmp bx, strict byte 00002h ; 83 fb 02 15367 je short 09e0 5h ; 74 2415360 je short 09e02h ; 74 24 15368 15361 cmp bx, strict byte 00001h ; 83 fb 01 15369 je short 09de 9h ; 74 0315370 jmp near 09f4 8h ; e9 5f 0115362 je short 09de6h ; 74 03 15363 jmp near 09f45h ; e9 5f 01 15371 15364 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 15372 15365 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 15374 15367 mov word [bp+018h], 04350h ; c7 46 18 50 43 15375 15368 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 15376 jmp near 09f7 8h ; e9 73 0115369 jmp near 09f75h ; e9 73 01 15377 15370 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 15378 jne short 09e 11h ; 75 0615371 jne short 09e0eh ; 75 06 15379 15372 or ah, 083h ; 80 cc 83 15380 jmp near 09f 71h ; e9 60 0115373 jmp near 09f6eh ; e9 60 01 15381 15374 mov bx, word [bp+008h] ; 8b 5e 08 15382 15375 mov dx, word [bp+01ch] ; 8b 56 1c 15383 15376 mov ax, word [bp+018h] ; 8b 46 18 15384 15377 xor cx, cx ; 31 c9 15385 call 09cb 3h ; e8 94 fe15378 call 09cb0h ; e8 94 fe 15386 15379 cmp ax, strict word 0ffffh ; 3d ff ff 15387 jne short 09e 31h ; 75 0d15380 jne short 09e2eh ; 75 0d 15388 15381 mov ax, word [bp+020h] ; 8b 46 20 15389 15382 xor ah, ah ; 30 e4 15390 15383 or ah, 086h ; 80 cc 86 15391 jmp near 09f 71h ; e9 42 0115392 jmp short 09e3 ch ; eb 0b15384 jmp near 09f6eh ; e9 42 01 15385 jmp short 09e39h ; eb 0b 15393 15386 mov word [bp+014h], ax ; 89 46 14 15394 jmp near 09f7 8h ; e9 41 0115395 jmp near 09f0 3h ; e9 c9 0015396 jmp short 09e 61h ; eb 2515387 jmp near 09f75h ; e9 41 01 15388 jmp near 09f00h ; e9 c9 00 15389 jmp short 09e5eh ; eb 25 15397 15390 mov bx, word [bp+008h] ; 8b 5e 08 15398 15391 mov ax, word [bp+01ch] ; 8b 46 1c 15399 15392 mov dx, word [bp+01eh] ; 8b 56 1e 15400 15393 mov cx, strict word 00001h ; b9 01 00 15401 call 09cb 3h ; e8 68 fe15394 call 09cb0h ; e8 68 fe 15402 15395 cmp ax, strict word 0ffffh ; 3d ff ff 15403 jne short 09e5 bh ; 75 0b15396 jne short 09e58h ; 75 0b 15404 15397 mov ax, word [bp+020h] ; 8b 46 20 15405 15398 xor ah, ah ; 30 e4 15406 15399 or ah, 086h ; 80 cc 86 15407 jmp near 09f 71h ; e9 16 0115400 jmp near 09f6eh ; e9 16 01 15408 15401 mov word [bp+014h], ax ; 89 46 14 15409 jmp near 09f7 8h ; e9 17 0115402 jmp near 09f75h ; e9 17 01 15410 15403 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 15411 jc short 09e6 eh ; 72 0615404 jc short 09e6bh ; 72 06 15412 15405 or ah, 087h ; 80 cc 87 15413 jmp near 09f 71h ; e9 03 0115406 jmp near 09f6eh ; e9 03 01 15414 15407 mov dx, word [bp+004h] ; 8b 56 04 15415 15408 mov ax, word [bp+014h] ; 8b 46 14 15416 call 09c8 fh ; e8 18 fe15409 call 09c8ch ; e8 18 fe 15417 15410 mov bx, word [bp+020h] ; 8b 5e 20 15418 15411 xor bh, bh ; 30 ff 15419 15412 sub bx, strict byte 00008h ; 83 eb 08 15420 15413 cmp bx, strict byte 00005h ; 83 fb 05 15421 jnbe short 09ee ch ; 77 6815414 jnbe short 09ee9h ; 77 68 15422 15415 sal bx, 1 ; d1 e3 15423 jmp word [cs:bx-0626 2h] ; 2e ff a7 9e9d15416 jmp word [cs:bx-06265h] ; 2e ff a7 9b 9d 15424 15417 mov bx, word [bp+01ch] ; 8b 5e 1c 15425 15418 xor bl, bl ; 30 db … … 15432 15425 or bx, ax ; 09 c3 15433 15426 mov word [bp+01ch], bx ; 89 5e 1c 15434 jmp short 09ee ch ; eb 4815427 jmp short 09ee9h ; eb 48 15435 15428 mov dx, word [bp+004h] ; 8b 56 04 15436 15429 xor dh, dh ; 30 f6 … … 15439 15432 in ax, DX ; ed 15440 15433 mov word [bp+01ch], ax ; 89 46 1c 15441 jmp short 09ee ch ; eb 3615434 jmp short 09ee9h ; eb 36 15442 15435 mov dx, 00cfch ; ba fc 0c 15443 15436 in eax, DX ; 66 ed … … 15448 15441 mov word [bp+01ch], ax ; 89 46 1c 15449 15442 mov word [bp+01eh], dx ; 89 56 1e 15450 jmp short 09ee ch ; eb 2215443 jmp short 09ee9h ; eb 22 15451 15444 mov ax, word [bp+01ch] ; 8b 46 1c 15452 15445 mov dx, word [bp+004h] ; 8b 56 04 … … 15455 15448 add dx, 00cfch ; 81 c2 fc 0c 15456 15449 out DX, AL ; ee 15457 jmp short 09ee ch ; eb 1015450 jmp short 09ee9h ; eb 10 15458 15451 mov ax, word [bp+01ch] ; 8b 46 1c 15459 15452 mov dx, word [bp+004h] ; 8b 56 04 … … 15462 15455 add dx, 00cfch ; 81 c2 fc 0c 15463 15456 out DX, ax ; ef 15464 jmp near 09f7 8h ; e9 89 0015457 jmp near 09f75h ; e9 89 00 15465 15458 mov ax, word [bp+01ch] ; 8b 46 1c 15466 15459 mov cx, word [bp+01eh] ; 8b 4e 1e … … 15471 15464 ; mov ax, cx ; 8b c1 15472 15465 out DX, eax ; 66 ef 15473 jmp short 09f7 8h ; eb 7515466 jmp short 09f75h ; eb 75 15474 15467 mov bx, word [bp+004h] ; 8b 5e 04 15475 15468 mov es, [bp+026h] ; 8e 46 26 … … 15478 15471 mov cx, word [0f380h] ; 8b 0e 80 f3 15479 15472 cmp cx, word [es:bx] ; 26 3b 0f 15480 jbe short 09f2 9h ; 76 1115473 jbe short 09f26h ; 76 11 15481 15474 mov ax, word [bp+020h] ; 8b 46 20 15482 15475 xor ah, ah ; 30 e4 … … 15484 15477 mov word [bp+020h], ax ; 89 46 20 15485 15478 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 15486 jmp short 09f3 dh ; eb 1415479 jmp short 09f3ah ; eb 14 15487 15480 les di, [es:bx+002h] ; 26 c4 7f 02 15488 15481 mov si, 0f1a0h ; be a0 f1 … … 15496 15489 les bx, [bp-008h] ; c4 5e f8 15497 15490 mov word [es:bx], ax ; 26 89 07 15498 jmp short 09f7 8h ; eb 3015491 jmp short 09f75h ; eb 30 15499 15492 mov bx, 00da6h ; bb a6 0d 15500 15493 mov cx, ds ; 8c d9 15501 15494 mov ax, strict word 00004h ; b8 04 00 15502 call 01933h ; e8 e 07915495 call 01933h ; e8 e3 79 15503 15496 mov ax, word [bp+014h] ; 8b 46 14 15504 15497 push ax ; 50 … … 15509 15502 mov ax, strict word 00004h ; b8 04 00 15510 15503 push ax ; 50 15511 call 01976h ; e8 1 07a15504 call 01976h ; e8 13 7a 15512 15505 add sp, strict byte 00008h ; 83 c4 08 15513 15506 mov ax, word [bp+020h] ; 8b 46 20 … … 15521 15514 pop bp ; 5d 15522 15515 retn ; c3 15523 pci_find_classcode_: ; 0xf9f7 fLB 0x815516 pci_find_classcode_: ; 0xf9f7c LB 0x8 15524 15517 push bp ; 55 15525 15518 mov bp, sp ; 89 e5 … … 15527 15520 pop bp ; 5d 15528 15521 retn ; c3 15529 pci_find_device_: ; 0xf9f8 7LB 0x2315522 pci_find_device_: ; 0xf9f84 LB 0x23 15530 15523 push bp ; 55 15531 15524 mov bp, sp ; 89 e5 … … 15539 15532 int 01ah ; cd 1a 15540 15533 cmp ah, 000h ; 80 fc 00 15541 je short 09f a0h ; 74 0315534 je short 09f9dh ; 74 03 15542 15535 mov bx, strict word 0ffffh ; bb ff ff 15543 15536 mov ax, bx ; 89 d8 … … 15548 15541 pop bp ; 5d 15549 15542 retn ; c3 15550 pci_read_config_byte_: ; 0xf9fa aLB 0x2715543 pci_read_config_byte_: ; 0xf9fa7 LB 0x27 15551 15544 push bp ; 55 15552 15545 mov bp, sp ; 89 e5 … … 15571 15564 pop bp ; 5d 15572 15565 retn ; c3 15573 pci_read_config_word_: ; 0xf9f d1LB 0x2515566 pci_read_config_word_: ; 0xf9fce LB 0x25 15574 15567 push bp ; 55 15575 15568 mov bp, sp ; 89 e5 … … 15593 15586 pop bp ; 5d 15594 15587 retn ; c3 15595 pci_read_config_dword_: ; 0xf9ff 6LB 0x3f15588 pci_read_config_dword_: ; 0xf9ff3 LB 0x3f 15596 15589 push bp ; 55 15597 15590 mov bp, sp ; 89 e5 … … 15608 15601 int 01ah ; cd 1a 15609 15602 test cx, cx ; 85 c9 15610 jne short 0a02 6h ; 75 1415603 jne short 0a023h ; 75 14 15611 15604 mov al, byte [bp-006h] ; 8a 46 fa 15612 15605 xor ah, ah ; 30 e4 … … 15618 15611 int 01ah ; cd 1a 15619 15612 test cx, cx ; 85 c9 15620 je short 0a02 bh ; 74 0515613 je short 0a028h ; 74 05 15621 15614 mov ax, strict word 00001h ; b8 01 00 15622 jmp short 0a02 dh ; eb 0215615 jmp short 0a02ah ; eb 02 15623 15616 xor ax, ax ; 31 c0 15624 15617 cwd ; 99 … … 15628 15621 pop bp ; 5d 15629 15622 retn ; c3 15630 pci_write_config_word_: ; 0xfa03 5LB 0x1e15623 pci_write_config_word_: ; 0xfa032 LB 0x1e 15631 15624 push bp ; 55 15632 15625 mov bp, sp ; 89 e5 … … 15645 15638 pop bp ; 5d 15646 15639 retn ; c3 15647 vds_is_present_: ; 0xfa05 3LB 0x1d15640 vds_is_present_: ; 0xfa050 LB 0x1d 15648 15641 push bx ; 53 15649 15642 push bp ; 55 … … 15653 15646 mov es, ax ; 8e c0 15654 15647 test byte [es:bx], 020h ; 26 f6 07 20 15655 je short 0a06 bh ; 74 0615648 je short 0a068h ; 74 06 15656 15649 mov ax, strict word 00001h ; b8 01 00 15657 15650 pop bp ; 5d … … 15662 15655 pop bx ; 5b 15663 15656 retn ; c3 15664 vds_real_to_lin_: ; 0xfa0 70LB 0x1e15657 vds_real_to_lin_: ; 0xfa06d LB 0x1e 15665 15658 push bx ; 53 15666 15659 push cx ; 51 … … 15673 15666 sal ax, 1 ; d1 e0 15674 15667 rcl dx, 1 ; d1 d2 15675 loop 0a07 eh ; e2 fa15668 loop 0a07bh ; e2 fa 15676 15669 xor cx, cx ; 31 c9 15677 15670 add ax, bx ; 01 d8 … … 15681 15674 pop bx ; 5b 15682 15675 retn ; c3 15683 vds_build_sg_list_: ; 0xfa08 eLB 0x7715676 vds_build_sg_list_: ; 0xfa08b LB 0x77 15684 15677 push bp ; 55 15685 15678 mov bp, sp ; 89 e5 … … 15695 15688 mov bx, word [bp+006h] ; 8b 5e 06 15696 15689 mov word [es:di+002h], bx ; 26 89 5d 02 15697 call 0a0 70h ; e8 c3 ff15690 call 0a06dh ; e8 c3 ff 15698 15691 mov es, si ; 8e c6 15699 15692 mov word [es:di+004h], ax ; 26 89 45 04 15700 15693 mov word [es:di+006h], dx ; 26 89 55 06 15701 15694 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 15702 call 0a05 3h ; e8 93 ff15695 call 0a050h ; e8 93 ff 15703 15696 test ax, ax ; 85 c0 15704 je short 0a0d 5h ; 74 1115697 je short 0a0d2h ; 74 11 15705 15698 mov es, si ; 8e c6 15706 15699 mov ax, 08105h ; b8 05 81 15707 15700 mov dx, strict word 00000h ; ba 00 00 15708 15701 int 04bh ; cd 4b 15709 jc short 0a0 d2h ; 72 0215702 jc short 0a0cfh ; 72 02 15710 15703 db 032h, 0c0h 15711 15704 ; xor al, al ; 32 c0 15712 15705 cbw ; 98 15713 jmp short 0a0f ch ; eb 2715706 jmp short 0a0f9h ; eb 27 15714 15707 mov es, si ; 8e c6 15715 15708 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 15728 15721 pop bp ; 5d 15729 15722 retn 00004h ; c2 04 00 15730 vds_free_sg_list_: ; 0xfa10 5 LB 0x3b15723 vds_free_sg_list_: ; 0xfa102 LB 0x2e 15731 15724 push bp ; 55 15732 15725 mov bp, sp ; 89 e5 … … 15734 15727 push di ; 57 15735 15728 mov bx, ax ; 89 c3 15736 call 0a05 3h ; e8 44 ff15729 call 0a050h ; e8 44 ff 15737 15730 test ax, ax ; 85 c0 15738 je short 0a12 4h ; 74 1115731 je short 0a121h ; 74 11 15739 15732 mov di, bx ; 89 df 15740 15733 mov es, dx ; 8e c2 … … 15742 15735 mov dx, strict word 00000h ; ba 00 00 15743 15736 int 04bh ; cd 4b 15744 jc short 0a12 3h ; 72 0215737 jc short 0a120h ; 72 02 15745 15738 db 032h, 0c0h 15746 15739 ; xor al, al ; 32 c0 … … 15753 15746 pop bp ; 5d 15754 15747 retn ; c3 15755 times 0xd db 0 15756 __U4M: ; 0xfa140 LB 0x20 15748 __U4M: ; 0xfa130 LB 0x20 15757 15749 pushfw ; 9c 15758 15750 push si ; 56 … … 15781 15773 retn ; c3 15782 15774 times 0x4 db 0 15783 __U4D: ; 0xfa1 60 LB 0x3015775 __U4D: ; 0xfa150 LB 0x30 15784 15776 pushfw ; 9c 15785 15777 push DS ; 1e … … 15796 15788 push dx ; 52 15797 15789 push ax ; 50 15798 call 0a2 45h ; e8 d0 0015790 call 0a235h ; e8 d0 00 15799 15791 mov cx, word [bp-002h] ; 8b 4e fe 15800 15792 mov bx, word [bp-004h] ; 8b 5e fc … … 15807 15799 retn ; c3 15808 15800 times 0xe db 0 15809 __U8RS: ; 0xfa1 90 LB 0x1015801 __U8RS: ; 0xfa180 LB 0x10 15810 15802 test si, si ; 85 f6 15811 je short 0a1 9fh ; 74 0b15803 je short 0a18fh ; 74 0b 15812 15804 shr ax, 1 ; d1 e8 15813 15805 rcr bx, 1 ; d1 db … … 15815 15807 rcr dx, 1 ; d1 da 15816 15808 dec si ; 4e 15817 jne short 0a1 94h ; 75 f515809 jne short 0a184h ; 75 f5 15818 15810 retn ; c3 15819 __U8LS: ; 0xfa1 a0 LB 0x1015811 __U8LS: ; 0xfa190 LB 0x10 15820 15812 test si, si ; 85 f6 15821 je short 0a1 afh ; 74 0b15813 je short 0a19fh ; 74 0b 15822 15814 sal dx, 1 ; d1 e2 15823 15815 rcl cx, 1 ; d1 d1 … … 15825 15817 rcl ax, 1 ; d1 d0 15826 15818 dec si ; 4e 15827 jne short 0a1 a4h ; 75 f515819 jne short 0a194h ; 75 f5 15828 15820 retn ; c3 15829 _fmemset_: ; 0xfa1 b0 LB 0x1015821 _fmemset_: ; 0xfa1a0 LB 0x10 15830 15822 push di ; 57 15831 15823 mov es, dx ; 8e c2 … … 15838 15830 retn ; c3 15839 15831 times 0x3 db 0 15840 _fmemcpy_: ; 0xfa1 c0 LB 0x3a15832 _fmemcpy_: ; 0xfa1b0 LB 0x3a 15841 15833 push bp ; 55 15842 15834 db 08bh, 0ech … … 15863 15855 add byte [bx+si], al ; 00 00 15864 15856 add byte [bx+si], al ; 00 00 15865 ad c byte [bp+si-05deeh], ah ; 10 a2 12 a215866 push SS ; 1615867 mov byte [0a2 16h], AL ; a2 16 a215868 push SS ; 1615869 mov byte [0a2 18h], AL ; a2 18 a215870 sbb byte [bp+si-05de6h], ah ; 18 a2 1a a215871 push DS ; 1e15872 mov byte [0a2 1eh], AL ; a2 1e a215873 a nd byte [bp+si-05ddbh], ah ; 20 a2 25 a215874 daa ; 2715857 add byte [bp+si-05dfeh], ah ; 00 a2 02 a2 15858 push ES ; 06 15859 mov byte [0a206h], AL ; a2 06 a2 15860 push ES ; 06 15861 mov byte [0a208h], AL ; a2 08 a2 15862 or byte [bp+si-05df6h], ah ; 08 a2 0a a2 15863 push CS ; 0e 15864 mov byte [0a20eh], AL ; a2 0e a2 15865 adc byte [bp+si-05debh], ah ; 10 a2 15 a2 15866 pop SS ; 17 15875 15867 db 0a2h 15876 apm_worker: ; 0xfa1 fa LB 0x3a15868 apm_worker: ; 0xfa1ea LB 0x3a 15877 15869 sti ; fb 15878 15870 push ax ; 50 … … 15886 15878 pop ax ; 58 15887 15879 mov AH, strict byte 053h ; b4 53 15888 jnc short 0a2 30h ; 73 2515889 jmp word [cs:bp-05e 20h] ; 2e ff a6 e0 a115890 jmp short 0a2 2eh ; eb 1c15880 jnc short 0a220h ; 73 25 15881 jmp word [cs:bp-05e30h] ; 2e ff a6 d0 a1 15882 jmp short 0a21eh ; eb 1c 15891 15883 sti ; fb 15892 15884 hlt ; f4 15893 jmp short 0a2 2eh ; eb 1815894 jmp short 0a2 2eh ; eb 1615895 jmp short 0a2 30h ; eb 1615885 jmp short 0a21eh ; eb 18 15886 jmp short 0a21eh ; eb 16 15887 jmp short 0a220h ; eb 16 15896 15888 mov AH, strict byte 080h ; b4 80 15897 jmp short 0a2 32h ; eb 1415898 jmp short 0a2 30h ; eb 1015889 jmp short 0a222h ; eb 14 15890 jmp short 0a220h ; eb 10 15899 15891 mov ax, 00102h ; b8 02 01 15900 jmp short 0a2 2eh ; eb 0915901 jmp short 0a2 2eh ; eb 0715892 jmp short 0a21eh ; eb 09 15893 jmp short 0a21eh ; eb 07 15902 15894 mov BL, strict byte 000h ; b3 00 15903 15895 mov cx, strict word 00000h ; b9 00 00 15904 jmp short 0a2 2eh ; eb 0015896 jmp short 0a21eh ; eb 00 15905 15897 clc ; f8 15906 15898 retn ; c3 … … 15908 15900 stc ; f9 15909 15901 retn ; c3 15910 apm_pm16_entry: ; 0xfa2 34 LB 0x1115902 apm_pm16_entry: ; 0xfa224 LB 0x11 15911 15903 mov AH, strict byte 002h ; b4 02 15912 15904 push DS ; 1e … … 15916 15908 add bp, strict byte 00008h ; 83 c5 08 15917 15909 mov ds, bp ; 8e dd 15918 call 0a1 fah ; e8 b8 ff15910 call 0a1eah ; e8 b8 ff 15919 15911 pop bp ; 5d 15920 15912 pop DS ; 1f 15921 15913 retf ; cb 15922 _DoUInt32Div: ; 0xfa2 45 LB 0x26b15914 _DoUInt32Div: ; 0xfa235 LB 0x26b 15923 15915 push bp ; 55 15924 15916 mov bp, sp ; 89 e5 … … 15938 15930 mov [bp-006h], ds ; 8c 5e fa 15939 15931 cmp word [bx+002h], strict byte 00000h ; 83 7f 02 00 15940 jne short 0a2 95h ; 75 2215932 jne short 0a285h ; 75 22 15941 15933 mov ax, word [bx] ; 8b 07 15942 15934 test ax, ax ; 85 c0 15943 je short 0a2 92h ; 74 1915935 je short 0a282h ; 74 19 15944 15936 cmp ax, strict word 00001h ; 3d 01 00 15945 jne short 0a2 95h ; 75 1715937 jne short 0a285h ; 75 17 15946 15938 xor ax, ax ; 31 c0 15947 15939 mov word [bp+00ah], ax ; 89 46 0a … … 15951 15943 mov ax, word [bp-01ah] ; 8b 46 e6 15952 15944 mov word [bp+006h], ax ; 89 46 06 15953 jmp near 0a4 9dh ; e9 08 0215945 jmp near 0a48dh ; e9 08 02 15954 15946 lds bx, [bp-00ch] ; c5 5e f4 15955 15947 mov ax, word [bx+002h] ; 8b 47 02 15956 15948 mov ds, [bp-006h] ; 8e 5e fa 15957 15949 cmp ax, word [si+002h] ; 3b 44 02 15958 je short 0a2 bbh ; 74 1815950 je short 0a2abh ; 74 18 15959 15951 mov ds, [bp-00ah] ; 8e 5e f6 15960 15952 mov ax, word [bx+002h] ; 8b 47 02 15961 15953 mov ds, [bp-006h] ; 8e 5e fa 15962 15954 cmp ax, word [si+002h] ; 3b 44 02 15963 jbe short 0a2 b6h ; 76 0515955 jbe short 0a2a6h ; 76 05 15964 15956 mov ax, strict word 00001h ; b8 01 00 15965 jmp short 0a2 dch ; eb 2615957 jmp short 0a2cch ; eb 26 15966 15958 mov ax, strict word 0ffffh ; b8 ff ff 15967 jmp short 0a2 dch ; eb 2115959 jmp short 0a2cch ; eb 21 15968 15960 mov ds, [bp-00ah] ; 8e 5e f6 15969 15961 mov ax, word [bx] ; 8b 07 15970 15962 mov ds, [bp-006h] ; 8e 5e fa 15971 15963 cmp ax, word [si] ; 3b 04 15972 je short 0a2 dah ; 74 1315964 je short 0a2cah ; 74 13 15973 15965 mov ds, [bp-00ah] ; 8e 5e f6 15974 15966 mov ax, word [bx] ; 8b 07 15975 15967 mov ds, [bp-006h] ; 8e 5e fa 15976 15968 cmp ax, word [si] ; 3b 04 15977 jbe short 0a2 d5h ; 76 0215978 jmp short 0a2 b1h ; eb dc15969 jbe short 0a2c5h ; 76 02 15970 jmp short 0a2a1h ; eb dc 15979 15971 mov ax, strict word 0ffffh ; b8 ff ff 15980 jmp short 0a2 dch ; eb 0215972 jmp short 0a2cch ; eb 02 15981 15973 xor ax, ax ; 31 c0 15982 15974 test ax, ax ; 85 c0 15983 jnl short 0a2 feh ; 7d 1e15975 jnl short 0a2eeh ; 7d 1e 15984 15976 lds bx, [bp-00ch] ; c5 5e f4 15985 15977 mov ax, word [bx] ; 8b 07 … … 15991 15983 mov word [bx+002h], strict word 00000h ; c7 47 02 00 00 15992 15984 mov word [bx], strict word 00000h ; c7 07 00 00 15993 jmp short 0a2 92h ; eb 9415994 jne short 0a3 15h ; 75 1515985 jmp short 0a282h ; eb 94 15986 jne short 0a305h ; 75 15 15995 15987 mov ds, [bp-008h] ; 8e 5e f8 15996 15988 mov word [di+002h], ax ; 89 45 02 … … 15999 15991 mov word [bx], strict word 00001h ; c7 07 01 00 16000 15992 mov word [bx+002h], ax ; 89 47 02 16001 jmp near 0a4 9dh ; e9 88 0115993 jmp near 0a48dh ; e9 88 01 16002 15994 lds bx, [bp-00ch] ; c5 5e f4 16003 15995 mov ax, word [bx+002h] ; 8b 47 02 16004 15996 test ax, ax ; 85 c0 16005 je short 0a3 30h ; 74 1115997 je short 0a320h ; 74 11 16006 15998 push ax ; 50 16007 15999 mov ax, 0f000h ; b8 00 f0 16008 16000 mov ds, ax ; 8e d8 16009 call 0a4 b0h ; e8 88 0116001 call 0a4a0h ; e8 88 01 16010 16002 add sp, strict byte 00002h ; 83 c4 02 16011 16003 add ax, strict word 00010h ; 05 10 00 16012 jmp short 0a3 3dh ; eb 0d16004 jmp short 0a32dh ; eb 0d 16013 16005 push word [bx] ; ff 37 16014 16006 mov ax, 0f000h ; b8 00 f0 16015 16007 mov ds, ax ; 8e d8 16016 call 0a4 b0h ; e8 76 0116008 call 0a4a0h ; e8 76 01 16017 16009 add sp, strict byte 00002h ; 83 c4 02 16018 16010 mov word [bp-014h], ax ; 89 46 ec … … 16020 16012 mov ax, word [si+002h] ; 8b 44 02 16021 16013 test ax, ax ; 85 c0 16022 je short 0a3 5bh ; 74 1116014 je short 0a34bh ; 74 11 16023 16015 push ax ; 50 16024 16016 mov ax, 0f000h ; b8 00 f0 16025 16017 mov ds, ax ; 8e d8 16026 call 0a4 b0h ; e8 5d 0116018 call 0a4a0h ; e8 5d 01 16027 16019 add sp, strict byte 00002h ; 83 c4 02 16028 16020 add ax, strict word 00010h ; 05 10 00 16029 jmp short 0a3 68h ; eb 0d16021 jmp short 0a358h ; eb 0d 16030 16022 push word [si] ; ff 34 16031 16023 mov ax, 0f000h ; b8 00 f0 16032 16024 mov ds, ax ; 8e d8 16033 call 0a4 b0h ; e8 4b 0116025 call 0a4a0h ; e8 4b 01 16034 16026 add sp, strict byte 00002h ; 83 c4 02 16035 16027 mov dx, word [bp-014h] ; 8b 56 ec … … 16042 16034 mov word [bp-016h], ax ; 89 46 ea 16043 16035 test dx, dx ; 85 d2 16044 je short 0a3 d8h ; 74 5616036 je short 0a3c8h ; 74 56 16045 16037 mov cx, dx ; 89 d1 16046 16038 xor ch, dh ; 30 f5 … … 16048 16040 mov ax, word [si] ; 8b 04 16049 16041 mov dx, word [si+002h] ; 8b 54 02 16050 jcxz 0a3 96h ; e3 0616042 jcxz 0a386h ; e3 06 16051 16043 sal ax, 1 ; d1 e0 16052 16044 rcl dx, 1 ; d1 d2 16053 loop 0a3 90h ; e2 fa16045 loop 0a380h ; e2 fa 16054 16046 mov word [bp-018h], ax ; 89 46 e8 16055 16047 mov word [bp-016h], dx ; 89 56 ea … … 16057 16049 lds bx, [bp-00ch] ; c5 5e f4 16058 16050 cmp ax, word [bx+002h] ; 3b 47 02 16059 jnbe short 0a3 b6h ; 77 0f16051 jnbe short 0a3a6h ; 77 0f 16060 16052 mov ax, word [bp-016h] ; 8b 46 ea 16061 16053 cmp ax, word [bx+002h] ; 3b 47 02 16062 jne short 0a3 bah ; 75 0b16054 jne short 0a3aah ; 75 0b 16063 16055 mov ax, word [bp-018h] ; 8b 46 e8 16064 16056 cmp ax, word [bx] ; 3b 07 16065 jbe short 0a3 bah ; 76 0416057 jbe short 0a3aah ; 76 04 16066 16058 mov AL, strict byte 001h ; b0 01 16067 jmp short 0a3 bch ; eb 0216059 jmp short 0a3ach ; eb 02 16068 16060 xor al, al ; 30 c0 16069 16061 test al, al ; 84 c0 16070 je short 0a3 e3h ; 74 2316062 je short 0a3d3h ; 74 23 16071 16063 shr word [bp-016h], 1 ; d1 6e ea 16072 16064 rcr word [bp-018h], 1 ; d1 5e e8 16073 16065 dec word [bp-012h] ; ff 4e ee 16074 jmp short 0a3 e3h ; eb 1816066 jmp short 0a3d3h ; eb 18 16075 16067 mov cx, strict word 0001fh ; b9 1f 00 16076 16068 sal word [bp-018h], 1 ; d1 66 e8 16077 16069 rcl word [bp-016h], 1 ; d1 56 ea 16078 loop 0a3 ceh ; e2 f816079 jmp short 0a3 c6h ; eb ee16070 loop 0a3beh ; e2 f8 16071 jmp short 0a3b6h ; eb ee 16080 16072 mov ax, word [si] ; 8b 04 16081 16073 mov word [bp-018h], ax ; 89 46 e8 … … 16094 16086 mov ds, [bp-006h] ; 8e 5e fa 16095 16087 cmp ax, word [si+002h] ; 3b 44 02 16096 jnbe short 0a 40fh ; 77 0616097 jne short 0a4 13h ; 75 0816088 jnbe short 0a3ffh ; 77 06 16089 jne short 0a403h ; 75 08 16098 16090 cmp dx, word [si] ; 3b 14 16099 jc short 0a4 13h ; 72 0416091 jc short 0a403h ; 72 04 16100 16092 mov AL, strict byte 001h ; b0 01 16101 jmp short 0a4 15h ; eb 0216093 jmp short 0a405h ; eb 02 16102 16094 xor al, al ; 30 c0 16103 16095 test al, al ; 84 c0 16104 je short 0a4 7ah ; 74 6116096 je short 0a46ah ; 74 61 16105 16097 mov ds, [bp-008h] ; 8e 5e f8 16106 16098 mov ax, word [di+002h] ; 8b 45 02 16107 16099 cmp ax, word [bp-016h] ; 3b 46 ea 16108 jnbe short 0a4 30h ; 77 0c16100 jnbe short 0a420h ; 77 0c 16109 16101 cmp ax, word [bp-016h] ; 3b 46 ea 16110 jne short 0a4 34h ; 75 0b16102 jne short 0a424h ; 75 0b 16111 16103 mov ax, word [di] ; 8b 05 16112 16104 cmp ax, word [bp-018h] ; 3b 46 e8 16113 jc short 0a4 34h ; 72 0416105 jc short 0a424h ; 72 04 16114 16106 mov AL, strict byte 001h ; b0 01 16115 jmp short 0a4 36h ; eb 0216107 jmp short 0a426h ; eb 02 16116 16108 xor al, al ; 30 c0 16117 16109 test al, al ; 84 c0 16118 je short 0a4 60h ; 74 2616110 je short 0a450h ; 74 26 16119 16111 mov ax, word [bp-018h] ; 8b 46 e8 16120 16112 mov ds, [bp-008h] ; 8e 5e f8 … … 16125 16117 xor dx, dx ; 31 d2 16126 16118 mov cx, word [bp-012h] ; 8b 4e ee 16127 jcxz 0a4 58h ; e3 0616119 jcxz 0a448h ; e3 06 16128 16120 sal ax, 1 ; d1 e0 16129 16121 rcl dx, 1 ; d1 d2 16130 loop 0a4 52h ; e2 fa16122 loop 0a442h ; e2 fa 16131 16123 lds bx, [bp-010h] ; c5 5e f0 16132 16124 or word [bx], ax ; 09 07 … … 16137 16129 mov ds, [bp-006h] ; 8e 5e fa 16138 16130 cmp ax, word [si+002h] ; 3b 44 02 16139 jc short 0a4 76h ; 72 0616140 jne short 0a4 7ch ; 75 0a16131 jc short 0a466h ; 72 06 16132 jne short 0a46ch ; 75 0a 16141 16133 cmp dx, word [si] ; 3b 14 16142 jnc short 0a4 7ch ; 73 0616134 jnc short 0a46ch ; 73 06 16143 16135 mov AL, strict byte 001h ; b0 01 16144 jmp short 0a4 7eh ; eb 0416145 jmp short 0a4 9dh ; eb 2116136 jmp short 0a46eh ; eb 04 16137 jmp short 0a48dh ; eb 21 16146 16138 xor al, al ; 30 c0 16147 16139 test al, al ; 84 c0 16148 je short 0a4 91h ; 74 0f16149 jmp short 0a4 9dh ; eb 1916140 je short 0a481h ; 74 0f 16141 jmp short 0a48dh ; eb 19 16150 16142 mov cx, strict word 0001fh ; b9 1f 00 16151 16143 sal word [bp-018h], 1 ; d1 66 e8 16152 16144 rcl word [bp-016h], 1 ; d1 56 ea 16153 loop 0a4 87h ; e2 f816154 jmp short 0a4 97h ; eb 0616145 loop 0a477h ; e2 f8 16146 jmp short 0a487h ; eb 06 16155 16147 shr word [bp-016h], 1 ; d1 6e ea 16156 16148 rcr word [bp-018h], 1 ; d1 5e e8 16157 16149 dec word [bp-012h] ; ff 4e ee 16158 jmp near 0a4 19h ; e9 7c ff16150 jmp near 0a409h ; e9 7c ff 16159 16151 mov ax, word [bp-01ch] ; 8b 46 e4 16160 16152 mov dx, word [bp-01ah] ; 8b 56 e6 … … 16165 16157 retn ; c3 16166 16158 times 0x6 db 0 16167 _ASMBitLastSetU16: ; 0xfa4 b0 LB 0x1816159 _ASMBitLastSetU16: ; 0xfa4a0 LB 0x18 16168 16160 push bp ; 55 16169 16161 db 08bh, 0ech … … 16171 16163 mov cx, word [bp+004h] ; 8b 4e 04 16172 16164 test cx, cx ; 85 c9 16173 je short 0a4 c4h ; 74 0a16165 je short 0a4b4h ; 74 0a 16174 16166 mov ax, strict word 00010h ; b8 10 00 16175 16167 sal cx, 1 ; d1 e1 16176 jc short 0a4 c6h ; 72 0516168 jc short 0a4b6h ; 72 05 16177 16169 dec ax ; 48 16178 jmp short 0a4 bdh ; eb f916170 jmp short 0a4adh ; eb f9 16179 16171 db 033h, 0c0h 16180 16172 ; xor ax, ax ; 33 c0 … … 16182 16174 retn ; c3 16183 16175 16184 ; Padding 0x35 38 bytes at 0xfa4c816185 times 136 24db 016176 ; Padding 0x3548 bytes at 0xfa4b8 16177 times 13640 db 0 16186 16178 16187 16179 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 16230 16222 add bp, strict byte 00008h ; 83 c5 08 16231 16223 push ebp ; 66 55 16232 mov bp, 0a2 36h ; bd 36 a216224 mov bp, 0a226h ; bd 26 a2 16233 16225 add byte [bx+si], al ; 00 00 16234 16226 push ebp ; 66 55 … … 16694 16686 cmp AL, strict byte 009h ; 3c 09 16695 16687 jne short 0e0b6h ; 75 03 16696 jmp near 0e36 6h ; e9 b00216688 jmp near 0e368h ; e9 b2 02 16697 16689 cmp AL, strict byte 005h ; 3c 05 16698 16690 je short 0e044h ; 74 8a … … 16918 16910 int 002h ; cd 02 16919 16911 iret ; cf 16920 hard_drive_post: ; 0xfe2d2 LB 0xb d16912 hard_drive_post: ; 0xfe2d2 LB 0xbf 16921 16913 db 033h, 0c0h 16922 16914 ; xor ax, ax ; 33 c0 … … 16960 16952 call 01cc5h ; e8 89 39 16961 16953 call 02154h ; e8 15 3e 16962 call 09a27h ; e8 e5 b6 16963 call 08871h ; e8 2c a5 16964 call 0ed4ch ; e8 04 0a 16965 call 0e2d2h ; e8 87 ff 16954 sti ; fb 16955 call 09a24h ; e8 e1 b6 16956 cli ; fa 16957 call 08871h ; e8 2a a5 16958 call 0ed4ch ; e8 02 0a 16959 call 0e2d2h ; e8 85 ff 16966 16960 push CS ; 0e 16967 16961 pop DS ; 1f … … 16969 16963 mov ax, 0c800h ; b8 00 c8 16970 16964 mov dx, 0f000h ; ba 00 f0 16971 call 01600h ; e8 a 93216972 call 01799h ; e8 3 f3416973 call 03c35h ; e8 d 85816965 call 01600h ; e8 a7 32 16966 call 01799h ; e8 3d 34 16967 call 03c35h ; e8 d6 58 16974 16968 sti ; fb 16975 16969 int 019h ; cd 19 16976 16970 sti ; fb 16977 16971 hlt ; f4 16978 jmp short 0e36 1h ; eb fd16972 jmp short 0e363h ; eb fd 16979 16973 cli ; fa 16980 16974 hlt ; f4 … … 16998 16992 sti ; fb 16999 16993 retf 00002h ; ca 02 00 17000 biosorg_check_before_or_at_0E3FCh: ; 0xfe3 8f LB 0x6f17001 times 0x6 ddb 016994 biosorg_check_before_or_at_0E3FCh: ; 0xfe391 LB 0x6d 16995 times 0x6b db 0 17002 16996 db 'XM' 17003 16997 int13_handler: ; 0xfe3fe LB 0x3 … … 17920 17914 popfw ; 9d 17921 17915 jmp short 0f8afh ; eb 1f 17922 call 09b9 9h ; e8 06a317916 call 09b96h ; e8 03 a3 17923 17917 jmp short 0f883h ; eb ee 17924 17918 int15_handler_mouse: ; 0xff895 LB 0x5 … … 18244 18238 cpu_reset: ; 0xffff0 LB 0x10 18245 18239 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 18246 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 0 f8h18240 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 0a9h -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum
r68421 r68773 1 7b0984c1dd5256095d590debedcd6744*VBoxPcBios8086.rom1 a7045e967764393f3f2e415494394823 *VBoxPcBios8086.rom
Note:
See TracChangeset
for help on using the changeset viewer.