Changeset 42147 in vbox for trunk/src/VBox/Devices/PC
- Timestamp:
- Jul 13, 2012 1:59:20 PM (13 years ago)
- Location:
- trunk/src/VBox/Devices/PC/BIOS
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/BIOS/Makefile.kmk
r42127 r42147 23 23 24 24 # 25 # VBoxBios - Template for building the BIOS bits.26 #27 TEMPLATE_VBoxBios = PXE ROM28 TEMPLATE_VBoxBios_TOOL = OPENWATCOM-1629 TEMPLATE_VBoxBios_LDTOOL = OPENWATCOM-WL30 TEMPLATE_VBoxBios_ASTOOL = OPENWATCOM-1631 TEMPLATE_VBoxBios_BLD_TRG = os-agnostic32 TEMPLATE_VBoxBios_BLD_TRG_ARCH = x8633 TEMPLATE_VBoxBios_BINSUFF = .rom34 TEMPLATE_VBoxBios_INCS = .35 TEMPLATE_VBoxBios_ASFLAGS = -q -wx36 TEMPLATE_VBoxBios_CFLAGS = -q -3 -wx -zl -zu -s -oas -d1+ -ms37 TEMPLATE_VBoxBios_DEFS = \38 VBOX_PC_BIOS \39 VBOX_LANBOOT_SEG=0xE200 \40 VBOX_VERSION_STRING=\"$(VBOX_VERSION_STRING)\" \41 VBOX_WITH_SCSI \42 VBOX_WITH_AHCI43 TEMPLATE_VBoxBios_LDFLAGS = system dos \44 debug all \45 option quiet, nofarcalls, map, verbose, statics, symfile \46 output raw offset=0xF0000 order \47 clname DATA segaddr=0xF000 segment _DATA \48 clname CODE \49 segment _TEXT segaddr=0xF000 offset=0x1600 \50 segment BIOS32 segaddr=0xF000 offset=0xDE00 \51 segment BIOSSEG segaddr=0xF000 offset=0xE000 \52 disable 1014, 1023, 212053 TEMPLATE_VBoxBios_LNK_DEPS = $(VBOX_BIOSSUMS)54 TEMPLATE_VBoxBios_POST_CMDS = \55 $(QUIET)$(MV_EXT) -f $(out) $(out).tmp \56 && $(VBOX_BIOSSUMS) $(out).tmp $(out) \57 && $(RM_EXT) -f $(out).tmp58 59 60 #61 25 # VBoxPcBios - The PC BIOS. 62 26 # 63 27 MISCBINS += VBoxPcBios 64 28 VBoxPcBios_TEMPLATE = VBoxBios 29 VBoxPcBios_DEFS = \ 30 VBOX_PC_BIOS \ 31 VBOX_LANBOOT_SEG=0xE200 \ 32 VBOX_WITH_SCSI \ 33 VBOX_WITH_AHCI 34 VBoxPcBios_LDFLAGS = \ 35 output raw offset=0xF0000 \ 36 order \ 37 clname DATA segaddr=0xF000 \ 38 segment _DATA \ 39 clname CODE \ 40 segment _TEXT segaddr=0xF000 offset=0x1600 \ 41 segment BIOS32 segaddr=0xF000 offset=0xDE00 \ 42 segment BIOSSEG segaddr=0xF000 offset=0xE000 65 43 VBoxPcBios_SOURCES = \ 66 44 bios.c \ … … 83 61 pciutil.c \ 84 62 vds.c \ 85 support.asm \63 ../../BiosCommonCode/support.asm \ 86 64 pcibio32.asm \ 87 65 orgs.asm … … 90 68 # Updates the alternative source file. 91 69 # 92 update- bios-source| $(PATH_SUB_CURRENT)/VBoxBiosAlternative.asm $(PATH_SUB_CURRENT)/VBoxBiosAlternative.md5sum: \70 update-pcbios-source +| $(PATH_SUB_CURRENT)/VBoxBiosAlternative.asm $(PATH_SUB_CURRENT)/VBoxBiosAlternative.md5sum: \ 93 71 $$(VBoxPcBios_1_TARGET) \ 94 $ $(MakeDebianBiosAssembly_1_TARGET) \72 $(VBOX_MAKE_ALTERNATIVE_SOURCE) \ 95 73 $(VBOX_VBOXCMP) 96 74 if1of ($(KBUILD_TYPE), release) 97 $( MakeDebianBiosAssembly_1_TARGET) \75 $(VBOX_MAKE_ALTERNATIVE_SOURCE) \ 98 76 --bios-image $< \ 99 77 --bios-map $(basename $<).map \ 100 78 --bios-sym $(basename $<).sym \ 79 --bios-type system \ 101 80 --output $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.asm 102 81 $(QUIET)yasm -f bin -o $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.bin $(VBoxPcBios_0_OUTDIR)/VBoxBiosAlternative.asm … … 143 122 endif 144 123 145 146 #147 # MakeDebianBiosAssembly - For distros without OpenWatcom.148 #149 BLDPROGS += MakeDebianBiosAssembly150 MakeDebianBiosAssembly_TEMPLATE = VBoxAdvBldProg151 MakeDebianBiosAssembly_DEFS = IN_DIS152 MakeDebianBiosAssembly_SOURCES = MakeDebianBiosAssembly.cpp153 MakeDebianBiosAssembly_LIBS = \154 $(PATH_STAGE_LIB)/DisasmBldProg$(VBOX_SUFF_LIB)155 156 124 include $(FILE_KBUILD_SUB_FOOTER) 157 125 -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.asm
r42057 r42147 465 465 ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 466 466 ; 467 468 ; 469 ; Source file: pcibios.c 470 ; 471 ; $Id$ 472 ; PCI BIOS support. 473 ; 474 ; 475 ; 476 ; Copyright (C) 2004-2012 Oracle Corporation 477 ; 478 ; This file is part of VirtualBox Open Source Edition (OSE), as 479 ; available from http://www.virtualbox.org. This file is free software; 480 ; you can redistribute it and/or modify it under the terms of the GNU 481 ; General Public License (GPL) as published by the Free Software 482 ; Foundation, in version 2 as it comes in the "COPYING" file of the 483 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 484 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 467 485 468 486 ; … … 749 767 _dskacc: ; 0xf0000 LB 0x18 750 768 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 059h, 027h, 0d0h, 027h, 000h, 000h, 000h, 000h 751 db 0 41h, 073h, 0e3h, 073h, 05eh, 07eh, 0e9h, 07eh769 db 0d6h, 075h, 078h, 076h, 0f3h, 080h, 07eh, 081h 752 770 753 section CONST progbits vstart=0x18 align=1 ; size=0x bdeclass=DATA group=DGROUP771 section CONST progbits vstart=0x18 align=1 ; size=0xc10 class=DATA group=DGROUP 754 772 db 'NMI Handler called', 00ah, 000h 755 773 db 'INT18: BOOT FAILURE', 00ah, 000h … … 821 839 db 'EISA BIOS not present', 00ah, 000h 822 840 db '*** int 15h function AX=%04x, BX=%04x not yet supported!', 00ah, 000h 841 db 'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h 823 842 db 'sendmouse', 000h 824 843 db 'setkbdcomm', 000h … … 857 876 db '%s: DATA_OUT not supported yet', 00ah, 000h 858 877 859 section CONST2 progbits vstart=0x bf6align=1 ; size=0x3fa class=DATA group=DGROUP860 _bios_cvs_version_string: ; 0xf0 bf6LB 0x12878 section CONST2 progbits vstart=0xc28 align=1 ; size=0x3fa class=DATA group=DGROUP 879 _bios_cvs_version_string: ; 0xf0c28 LB 0x12 861 880 db 'VirtualBox 4.1.51', 000h 862 _bios_prefix_string: ; 0xf0c 08LB 0x8881 _bios_prefix_string: ; 0xf0c3a LB 0x8 863 882 db 'BIOS: ', 000h, 000h 864 _isotag: ; 0xf0c 10LB 0x6883 _isotag: ; 0xf0c42 LB 0x6 865 884 db 'CD001', 000h 866 _eltorito: ; 0xf0c 16LB 0x18885 _eltorito: ; 0xf0c48 LB 0x18 867 886 db 'EL TORITO SPECIFICATION', 000h 868 _drivetypes: ; 0xf0c 2eLB 0x28887 _drivetypes: ; 0xf0c60 LB 0x28 869 888 db 046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h 870 889 db 069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h 871 890 db 04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h 872 _scan_to_scanascii: ; 0xf0c 56LB 0x37a891 _scan_to_scanascii: ; 0xf0c88 LB 0x37a 873 892 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h 874 893 db 000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h … … 927 946 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h 928 947 db 000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h 929 _panic_msg_keyb_buffer_full: ; 0xf 0fd0LB 0x20948 _panic_msg_keyb_buffer_full: ; 0xf1002 LB 0x20 930 949 db '%s: keyboard input buffer full', 00ah, 000h 931 950 932 ; Padding 0x 610 bytes at 0xf0ff0933 times 15 52 db 0951 ; Padding 0x5de bytes at 0xf1022 952 times 1502 db 0 934 953 935 section _TEXT progbits vstart=0x1600 align=1 ; size=0x7 27f class=CODE group=AUTO954 section _TEXT progbits vstart=0x1600 align=1 ; size=0x750f class=CODE group=AUTO 936 955 read_byte_: ; 0xf1600 LB 0xe 937 956 push bx ; 53 … … 1095 1114 push bp ; 55 1096 1115 mov bp, sp ; 89 e5 1097 mov bx, 00c 08h ; bb 080c1116 mov bx, 00c3ah ; bb 3a 0c 1098 1117 mov cx, ds ; 8c d9 1099 1118 mov ax, strict word 00004h ; b8 04 00 1100 1119 call 018aeh ; e8 99 01 1101 push 00 bf6h ; 68 f6 0b1120 push 00c28h ; 68 28 0c 1102 1121 push strict word 00041h ; 68 41 00 1103 1122 push strict byte 00004h ; 6a 04 … … 1124 1143 pop bp ; 5d 1125 1144 retn ; c3 1126 call 07 00fh ; e8 c0 581145 call 072a4h ; e8 55 5b 1127 1146 pop bp ; 5d 1128 1147 retn ; c3 … … 1257 1276 mov bx, strict word 0000ah ; bb 0a 00 1258 1277 xor cx, cx ; 31 c9 1259 call 08 7f0h ; e8 97 6f1278 call 08a80h ; e8 27 72 1260 1279 mov word [bp-004h], ax ; 89 46 fc 1261 1280 mov cx, dx ; 89 d1 … … 2220 2239 xor dx, dx ; 31 d2 2221 2240 mov word [bp-01ah], di ; 89 7e e6 2222 mov bx, 00c 08h ; bb 080c2241 mov bx, 00c3ah ; bb 3a 0c 2223 2242 mov cx, ds ; 8c d9 2224 2243 mov ax, strict word 00004h ; b8 04 00 … … 2854 2873 cmp byte [bp+00eh], 002h ; 80 7e 0e 02 2855 2874 jne short 0285ah ; 75 1f 2856 mov bx, 00c 08h ; bb 080c2875 mov bx, 00c3ah ; bb 3a 0c 2857 2876 mov cx, ds ; 8c d9 2858 2877 mov ax, strict word 00004h ; b8 04 00 … … 3638 3657 cmp AL, strict byte 048h ; 3c 48 3639 3658 jbe short 02f58h ; 76 29 3640 mov bx, 00c 08h ; bb 080c3659 mov bx, 00c3ah ; bb 3a 0c 3641 3660 mov cx, ds ; 8c d9 3642 3661 mov ax, strict word 00004h ; b8 04 00 … … 4276 4295 mov ax, strict word 00006h ; b8 06 00 4277 4296 jmp near 02e83h ; e9 19 f9 4278 mov bx, 00c 08h ; bb 080c4297 mov bx, 00c3ah ; bb 3a 0c 4279 4298 mov cx, ds ; 8c d9 4280 4299 mov ax, strict word 00004h ; b8 04 00 … … 4433 4452 pop si ; 5e 4434 4453 retn ; c3 4435 mov bx, 00c 08h ; bb 080c4454 mov bx, 00c3ah ; bb 3a 0c 4436 4455 mov cx, ds ; 8c d9 4437 4456 mov ax, strict word 00004h ; b8 04 00 … … 4512 4531 mov dx, ss ; 8c d2 4513 4532 lea ax, [bp-01ah] ; 8d 46 e6 4514 call 08 85ah ; e8 8a 504533 call 08aeah ; e8 1a 53 4515 4534 mov word [bp-01ah], strict word 00028h ; c7 46 e6 28 00 4516 4535 mov ax, strict word 00011h ; b8 11 00 … … 4559 4578 lea bx, [bp-01ah] ; 8d 5e e6 4560 4579 mov dx, strict word 0000ch ; ba 0c 00 4561 call 0 7f4eh ; e8 00 474580 call 081e3h ; e8 95 49 4562 4581 jmp short 0381dh ; eb cd 4563 4582 test ax, ax ; 85 c0 … … 4575 4594 jnc short 03881h ; 73 10 4576 4595 mov al, byte [bp+di-00819h] ; 8a 83 e7 f7 4577 cmp al, byte [di+00c 10h] ; 3a 85 100c4596 cmp al, byte [di+00c42h] ; 3a 85 42 0c 4578 4597 je short 0386bh ; 74 f0 4579 4598 mov ax, strict word 00005h ; b8 05 00 … … 4585 4604 jnc short 0389bh ; 73 10 4586 4605 mov al, byte [bp+di-00813h] ; 8a 83 ed f7 4587 cmp al, byte [di+00c 16h] ; 3a 85 160c4606 cmp al, byte [di+00c48h] ; 3a 85 48 0c 4588 4607 je short 03885h ; 74 f0 4589 4608 mov ax, strict word 00006h ; b8 06 00 … … 4613 4632 lea bx, [bp-01ah] ; 8d 5e e6 4614 4633 mov dx, strict word 0000ch ; ba 0c 00 4615 call 0 7f4eh ; e8 6f 464634 call 081e3h ; e8 04 49 4616 4635 jmp short 038ffh ; eb 1e 4617 4636 lea dx, [bp-0081ah] ; 8d 96 e6 f7 … … 4727 4746 lea bx, [bp-01ah] ; 8d 5e e6 4728 4747 mov dx, strict word 0000ch ; ba 0c 00 4729 call 0 7f4eh ; e8 24 454748 call 081e3h ; e8 b9 47 4730 4749 jmp short 03a51h ; eb 25 4731 4750 push di ; 57 … … 4926 4945 cmp ax, dx ; 39 d0 4927 4946 je short 03c26h ; 74 29 4928 mov bx, 00c 08h ; bb 080c4947 mov bx, 00c3ah ; bb 3a 0c 4929 4948 mov cx, ds ; 8c d9 4930 4949 mov ax, strict word 00004h ; b8 04 00 … … 5021 5040 xor dl, dl ; 30 d2 5022 5041 xor cx, cx ; 31 c9 5023 call 08 829h ; e8 1d 4b5042 call 08ab9h ; e8 ad 4d 5024 5043 xor bx, bx ; 31 db 5025 5044 add ax, si ; 01 f0 … … 5027 5046 mov bx, di ; 89 fb 5028 5047 xor cx, cx ; 31 c9 5029 call 08 829h ; e8 10 4b5048 call 08ab9h ; e8 a0 4d 5030 5049 mov bx, word [bp-010h] ; 8b 5e f0 5031 5050 dec bx ; 4b … … 5064 5083 mov dx, ss ; 8c d2 5065 5084 lea ax, [bp-02ah] ; 8d 46 d6 5066 call 08 85ah ; e8 e6 4a5085 call 08aeah ; e8 76 4d 5067 5086 mov word [bp-02ah], strict word 00028h ; c7 46 d6 28 00 5068 5087 mov ax, word [bp-014h] ; 8b 46 ec … … 5116 5135 lea bx, [bp-02ah] ; 8d 5e d6 5117 5136 mov dx, strict word 0000ch ; ba 0c 00 5118 call 0 7f4eh ; e8 4e 415137 call 081e3h ; e8 e3 43 5119 5138 jmp short 03e2ah ; eb 28 5120 5139 push word [bp-00eh] ; ff 76 f2 … … 5141 5160 test dl, dl ; 84 d2 5142 5161 je near 03f0eh ; 0f 84 d0 00 5143 mov bx, 00c 08h ; bb 080c5162 mov bx, 00c3ah ; bb 3a 0c 5144 5163 mov cx, ds ; 8c d9 5145 5164 mov ax, strict word 00004h ; b8 04 00 … … 5231 5250 mov word [bp+01ah], bx ; 89 5e 1a 5232 5251 jmp short 03f12h ; eb e5 5233 mov bx, 00c 08h ; bb 080c5252 mov bx, 00c3ah ; bb 3a 0c 5234 5253 mov cx, ds ; 8c d9 5235 5254 mov ax, strict word 00004h ; b8 04 00 … … 5444 5463 mov dx, ss ; 8c d2 5445 5464 lea ax, [bp-028h] ; 8d 46 d8 5446 call 08 85ah ; e8 24 475465 call 08aeah ; e8 b4 49 5447 5466 mov word [bp-028h], strict word 00028h ; c7 46 d8 28 00 5448 5467 mov ax, word [bp-010h] ; 8b 46 f0 … … 5475 5494 lea bx, [bp-028h] ; 8d 5e d8 5476 5495 mov dx, strict word 0000ch ; ba 0c 00 5477 call 0 7f4eh ; e8 c3 3d5496 call 081e3h ; e8 58 40 5478 5497 jmp short 041b1h ; eb 24 5479 5498 push dword [bp-016h] ; 66 ff 76 ea … … 5504 5523 cmp byte [bp-004h], 000h ; 80 7e fc 00 5505 5524 je near 04296h ; 0f 84 bf 00 5506 mov bx, 00c 08h ; bb 080c5525 mov bx, 00c3ah ; bb 3a 0c 5507 5526 mov cx, ds ; 8c d9 5508 5527 mov ax, strict word 00004h ; b8 04 00 … … 5781 5800 or byte [bp+022h], 001h ; 80 4e 22 01 5782 5801 jmp near 042a9h ; e9 91 fd 5783 mov bx, 00c 08h ; bb 080c5802 mov bx, 00c3ah ; bb 3a 0c 5784 5803 mov cx, ds ; 8c d9 5785 5804 mov ax, strict word 00004h ; b8 04 00 … … 5811 5830 je short 0457ah ; 74 21 5812 5831 mov dx, strict word 00001h ; ba 01 00 5813 mov bx, 00c 08h ; bb 080c5832 mov bx, 00c3ah ; bb 3a 0c 5814 5833 mov cx, ds ; 8c d9 5815 5834 mov ax, strict word 00004h ; b8 04 00 5816 5835 call 018aeh ; e8 47 d3 5817 5836 imul dx, dx, strict byte 0000ah ; 6b d2 0a 5818 add dx, 00c 2eh ; 81 c2 2e0c5837 add dx, 00c60h ; 81 c2 60 0c 5819 5838 push dx ; 52 5820 5839 push 003eah ; 68 ea 03 … … 5835 5854 test al, al ; 84 c0 5836 5855 je short 045aah ; 74 1b 5837 mov bx, 00c 08h ; bb 080c5856 mov bx, 00c3ah ; bb 3a 0c 5838 5857 mov cx, ds ; 8c d9 5839 5858 mov ax, strict word 00004h ; b8 04 00 5840 5859 call 018aeh ; e8 14 d3 5841 push 00c 42h ; 68 420c5860 push 00c74h ; 68 74 0c 5842 5861 push 003feh ; 68 fe 03 5843 5862 push strict byte 00004h ; 6a 04 … … 5847 5866 test dl, dl ; 84 d2 5848 5867 je short 045beh ; 74 10 5849 mov bx, 00c 08h ; bb 080c5868 mov bx, 00c3ah ; bb 3a 0c 5850 5869 mov cx, ds ; 8c d9 5851 5870 mov ax, strict word 00004h ; b8 04 00 5852 5871 call 018aeh ; e8 f5 d2 5853 push 00c 4ch ; 68 4c0c5872 push 00c7eh ; 68 7e 0c 5854 5873 jmp short 0459dh ; eb df 5855 5874 test bl, 080h ; f6 c3 80 5856 5875 je short 045d4h ; 74 11 5857 mov bx, 00c 08h ; bb 080c5876 mov bx, 00c3ah ; bb 3a 0c 5858 5877 mov cx, ds ; 8c d9 5859 5878 mov ax, strict word 00004h ; b8 04 00 5860 5879 call 018aeh ; e8 e0 d2 5861 5880 push si ; 56 5862 push 00c 38h ; 68 380c5881 push 00c6ah ; 68 6a 0c 5863 5882 jmp short 045e3h ; eb 0f 5864 mov bx, 00c 08h ; bb 080c5883 mov bx, 00c3ah ; bb 3a 0c 5865 5884 mov cx, ds ; 8c d9 5866 5885 mov ax, strict word 00004h ; b8 04 00 5867 5886 call 018aeh ; e8 cf d2 5868 5887 push si ; 56 5869 push 00c 2eh ; 68 2e0c5888 push 00c60h ; 68 60 0c 5870 5889 push 00413h ; 68 13 04 5871 5890 push strict byte 00004h ; 6a 04 … … 5892 5911 mov bp, sp ; 89 e5 5893 5912 mov dx, ax ; 89 c2 5894 mov bx, 00c 08h ; bb 080c5913 mov bx, 00c3ah ; bb 3a 0c 5895 5914 mov cx, ds ; 8c d9 5896 5915 mov ax, strict word 00004h ; b8 04 00 … … 5947 5966 xor ah, ah ; 30 e4 5948 5967 sar ax, 004h ; c1 f8 04 5949 call 07 216h ; e8 79 2b5968 call 074abh ; e8 0e 2e 5950 5969 cmp byte [bp+008h], 002h ; 80 7e 08 02 5951 5970 jne short 046a6h ; 75 03 … … 5964 5983 mov byte [bp-006h], al ; 88 46 fa 5965 5984 mov byte [bp-008h], al ; 88 46 f8 5966 mov bx, 00c 08h ; bb 080c5985 mov bx, 00c3ah ; bb 3a 0c 5967 5986 mov cx, ds ; 8c d9 5968 5987 mov ax, strict word 00004h ; b8 04 00 … … 6525 6544 test al, al ; 84 c0 6526 6545 jne short 04bc6h ; 75 19 6527 mov bx, 00c 08h ; bb 080c6546 mov bx, 00c3ah ; bb 3a 0c 6528 6547 mov cx, ds ; 8c d9 6529 6548 mov ax, strict word 00004h ; b8 04 00 … … 6728 6747 cmp byte [bp-006h], 058h ; 80 7e fa 58 6729 6748 jbe short 04e01h ; 76 1e 6730 mov bx, 00c 08h ; bb 080c6749 mov bx, 00c3ah ; bb 3a 0c 6731 6750 mov cx, ds ; 8c d9 6732 6751 mov ax, strict word 00004h ; b8 04 00 … … 6743 6762 movzx si, byte [bp-006h] ; 0f b6 76 fa 6744 6763 imul si, si, strict byte 0000ah ; 6b f6 0a 6745 mov dl, byte [si+00c 5ch] ; 8a 94 5c0c6746 mov ax, word [si+00c 5ch] ; 8b 84 5c0c6764 mov dl, byte [si+00c8eh] ; 8a 94 8e 0c 6765 mov ax, word [si+00c8eh] ; 8b 84 8e 0c 6747 6766 jmp near 04ea4h ; e9 8c 00 6748 6767 test bl, 004h ; f6 c3 04 … … 6750 6769 movzx si, byte [bp-006h] ; 0f b6 76 fa 6751 6770 imul si, si, strict byte 0000ah ; 6b f6 0a 6752 mov dl, byte [si+00c 5ah] ; 8a 94 5a0c6753 mov ax, word [si+00c 5ah] ; 8b 84 5a0c6771 mov dl, byte [si+00c8ch] ; 8a 94 8c 0c 6772 mov ax, word [si+00c8ch] ; 8b 84 8c 0c 6754 6773 jmp near 04ea4h ; e9 75 00 6755 6774 mov al, byte [bp-002h] ; 8a 46 fe … … 6770 6789 movzx si, byte [bp-006h] ; 0f b6 76 fa 6771 6790 imul si, si, strict byte 0000ah ; 6b f6 0a 6772 movzx ax, byte [si+00c 5eh] ; 0f b6 84 5e0c6791 movzx ax, byte [si+00c90h] ; 0f b6 84 90 0c 6773 6792 movzx dx, bl ; 0f b6 d3 6774 6793 test dx, ax ; 85 c2 6775 6794 je short 04e6fh ; 74 0a 6776 mov dl, byte [si+00c 56h] ; 8a 94 560c6777 mov ax, word [si+00c 56h] ; 8b 84 560c6795 mov dl, byte [si+00c88h] ; 8a 94 88 0c 6796 mov ax, word [si+00c88h] ; 8b 84 88 0c 6778 6797 jmp short 04e77h ; eb 08 6779 mov dl, byte [si+00c 58h] ; 8a 94 580c6780 mov ax, word [si+00c 58h] ; 8b 84 580c6798 mov dl, byte [si+00c8ah] ; 8a 94 8a 0c 6799 mov ax, word [si+00c8ah] ; 8b 84 8a 0c 6781 6800 shr ax, 008h ; c1 e8 08 6782 6801 mov byte [bp-006h], al ; 88 46 fa … … 6784 6803 movzx si, byte [bp-006h] ; 0f b6 76 fa 6785 6804 imul si, si, strict byte 0000ah ; 6b f6 0a 6786 movzx ax, byte [si+00c 5eh] ; 0f b6 84 5e0c6805 movzx ax, byte [si+00c90h] ; 0f b6 84 90 0c 6787 6806 movzx dx, bl ; 0f b6 d3 6788 6807 test dx, ax ; 85 c2 6789 6808 je short 04e9ch ; 74 0a 6790 mov dl, byte [si+00c 58h] ; 8a 94 580c6791 mov ax, word [si+00c 58h] ; 8b 84 580c6809 mov dl, byte [si+00c8ah] ; 8a 94 8a 0c 6810 mov ax, word [si+00c8ah] ; 8b 84 8a 0c 6792 6811 jmp short 04ea4h ; eb 08 6793 mov dl, byte [si+00c 56h] ; 8a 94 560c6794 mov ax, word [si+00c 56h] ; 8b 84 560c6812 mov dl, byte [si+00c88h] ; 8a 94 88 0c 6813 mov ax, word [si+00c88h] ; 8b 84 88 0c 6795 6814 shr ax, 008h ; c1 e8 08 6796 6815 mov byte [bp-006h], al ; 88 46 fa … … 6799 6818 test dl, dl ; 84 d2 6800 6819 jne short 04ecah ; 75 16 6801 mov bx, 00c 08h ; bb 080c6820 mov bx, 00c3ah ; bb 3a 0c 6802 6821 mov cx, ds ; 8c d9 6803 6822 mov ax, strict word 00004h ; b8 04 00 … … 7172 7191 or ah, 080h ; 80 cc 80 7173 7192 jmp near 050f6h ; e9 d5 fe 7174 mov bx, 00c 08h ; bb 080c7193 mov bx, 00c3ah ; bb 3a 0c 7175 7194 mov cx, ds ; 8c d9 7176 7195 mov ax, strict word 00004h ; b8 04 00 … … 7183 7202 call 018e9h ; e8 ae c6 7184 7203 add sp, strict byte 00006h ; 83 c4 06 7185 mov bx, 00c 08h ; bb 080c7204 mov bx, 00c3ah ; bb 3a 0c 7186 7205 mov cx, ds ; 8c d9 7187 7206 mov ax, strict word 00004h ; b8 04 00 … … 7333 7352 test ax, ax ; 85 c0 7334 7353 jne short 053d0h ; 75 23 7335 mov bx, 00c 08h ; bb 080c7354 mov bx, 00c3ah ; bb 3a 0c 7336 7355 mov cx, ds ; 8c d9 7337 7356 mov ax, strict word 00004h ; b8 04 00 … … 7362 7381 cmp ax, dx ; 39 d0 7363 7382 jbe short 0542bh ; 76 2e 7364 mov bx, 00c 08h ; bb 080c7383 mov bx, 00c3ah ; bb 3a 0c 7365 7384 mov cx, ds ; 8c d9 7366 7385 mov ax, strict word 00004h ; b8 04 00 … … 7400 7419 mov bx, cx ; 89 cb 7401 7420 xor cx, cx ; 31 c9 7402 call 08 829h ; e8 c4 337421 call 08ab9h ; e8 54 36 7403 7422 xor bx, bx ; 31 db 7404 7423 add ax, word [bp-008h] ; 03 46 f8 … … 7406 7425 mov bx, word [bp-00ah] ; 8b 5e f6 7407 7426 xor cx, cx ; 31 c9 7408 call 08 829h ; e8 b5 337427 call 08ab9h ; e8 45 36 7409 7428 xor bx, bx ; 31 db 7410 7429 add ax, word [bp-006h] ; 03 46 fa … … 7419 7438 db 0c0h, 001h, 0c3h, 006h, 056h, 0ffh, 097h, 0fch, 0ffh, 089h, 0c2h, 08bh, 046h, 016h, 030h, 0c0h 7420 7439 db 08eh, 046h, 0fch, 026h, 08bh, 05ch, 014h, 009h, 0c3h, 089h, 05eh, 016h, 084h, 0d2h, 00fh, 084h 7421 db 015h, 0feh, 0bbh, 0 08h, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 088h, 0c3h, 00fh, 0b6h, 0c2h7440 db 015h, 0feh, 0bbh, 03ah, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 088h, 0c3h, 00fh, 0b6h, 0c2h 7422 7441 db 050h, 08bh, 046h, 016h, 0c1h, 0e8h, 008h, 050h, 068h, 0d4h, 005h, 068h, 0afh, 006h, 06ah, 004h 7423 7442 db 0e8h, 0adh, 0c3h, 083h, 0c4h, 00ah, 08bh, 046h, 016h, 030h, 0e4h, 080h, 0cch, 00ch, 0e9h, 051h 7424 db 001h, 0bbh, 0 08h, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 059h, 0c3h, 068h, 0d0h, 006h, 06ah7443 db 001h, 0bbh, 03ah, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 059h, 0c3h, 068h, 0d0h, 006h, 06ah 7425 7444 db 004h, 0e8h, 08ch, 0c3h, 083h, 0c4h, 004h, 0e9h, 0cdh, 0fdh, 00fh, 0b6h, 046h, 0feh, 06bh, 0c0h 7426 7445 db 018h, 08eh, 046h, 0fch, 089h, 0f3h, 001h, 0c3h, 026h, 08bh, 07fh, 028h, 026h, 08bh, 04fh, 026h … … 7436 7455 db 00fh, 0b6h, 046h, 0feh, 06bh, 0c0h, 018h, 08eh, 046h, 0fch, 001h, 0c6h, 026h, 08bh, 07ch, 02eh 7437 7456 db 026h, 08bh, 044h, 02ch, 089h, 046h, 0f8h, 026h, 08bh, 044h, 030h, 089h, 046h, 0fah, 089h, 0f8h 7438 db 031h, 0d2h, 08bh, 05eh, 0f8h, 031h, 0c9h, 0e8h, 0 f6h, 031h, 08bh, 05eh, 0fah, 031h, 0c9h, 0e8h7439 db 0 eeh, 031h, 089h, 046h, 0f0h, 089h, 056h, 0f2h, 089h, 056h, 014h, 089h, 046h, 012h, 08bh, 046h7440 db 016h, 030h, 0e4h, 080h, 0cch, 003h, 089h, 046h, 016h, 0e9h, 0dfh, 0fch, 0bbh, 0 08h, 00ch, 08ch7457 db 031h, 0d2h, 08bh, 05eh, 0f8h, 031h, 0c9h, 0e8h, 086h, 034h, 08bh, 05eh, 0fah, 031h, 0c9h, 0e8h 7458 db 07eh, 034h, 089h, 046h, 0f0h, 089h, 056h, 0f2h, 089h, 056h, 014h, 089h, 046h, 012h, 08bh, 046h 7459 db 016h, 030h, 0e4h, 080h, 0cch, 003h, 089h, 046h, 016h, 0e9h, 0dfh, 0fch, 0bbh, 03ah, 00ch, 08ch 7441 7460 db 0d9h, 0b8h, 004h, 000h, 0e8h, 04eh, 0c2h, 08bh, 046h, 016h, 0c1h, 0e8h, 008h, 050h, 068h, 0d4h 7442 7461 db 005h, 068h, 0eah, 006h, 06ah, 004h, 0e8h, 077h, 0c2h, 083h, 0c4h, 008h, 0e9h, 0b8h, 0fch, 0bbh 7443 db 0 08h, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 02bh, 0c2h, 08bh, 046h, 016h, 0c1h, 0e8h, 008h7462 db 03ah, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 02bh, 0c2h, 08bh, 046h, 016h, 0c1h, 0e8h, 008h 7444 7463 db 050h, 068h, 0d4h, 005h, 068h, 01dh, 007h, 0e9h, 032h, 0fdh, 08bh, 046h, 016h, 030h, 0e4h, 080h 7445 7464 db 0cch, 001h, 089h, 046h, 016h, 08bh, 05eh, 016h, 0c1h, 0ebh, 008h, 030h, 0ffh, 0bah, 074h, 000h … … 7549 7568 cmp dx, word [es:bx+032h] ; 26 3b 57 32 7550 7569 jc short 0581ah ; 72 23 7551 mov bx, 00c 08h ; bb 080c7570 mov bx, 00c3ah ; bb 3a 0c 7552 7571 mov cx, ds ; 8c d9 7553 7572 mov ax, strict word 00004h ; b8 04 00 … … 7601 7620 test dl, dl ; 84 d2 7602 7621 je near 05b35h ; 0f 84 97 02 7603 mov bx, 00c 08h ; bb 080c7622 mov bx, 00c3ah ; bb 3a 0c 7604 7623 mov cx, ds ; 8c d9 7605 7624 mov ax, strict word 00004h ; b8 04 00 … … 7837 7856 leave ; c9 7838 7857 retn ; c3 7839 mov bx, 00c 08h ; bb 080c7858 mov bx, 00c3ah ; bb 3a 0c 7840 7859 mov cx, ds ; 8c d9 7841 7860 mov ax, strict word 00004h ; b8 04 00 … … 8165 8184 mov word [bp+010h], ax ; 89 46 10 8166 8185 jmp near 05e85h ; e9 2b 00 8167 mov bx, 00c 08h ; bb 080c8186 mov bx, 00c3ah ; bb 3a 0c 8168 8187 mov cx, ds ; 8c d9 8169 8188 mov ax, strict word 00004h ; b8 04 00 … … 8506 8525 retf ; cb 8507 8526 jmp near 05e85h ; e9 ba fc 8508 mov bx, 00c 08h ; bb 080c8527 mov bx, 00c3ah ; bb 3a 0c 8509 8528 mov cx, ds ; 8c d9 8510 8529 mov ax, strict word 00004h ; b8 04 00 … … 8546 8565 or byte [bp+01ch], 001h ; 80 4e 1c 01 8547 8566 jmp near 05e85h ; e9 44 fc 8548 mov bx, 00c 08h ; bb 080c8567 mov bx, 00c3ah ; bb 3a 0c 8549 8568 mov cx, ds ; 8c d9 8550 8569 mov ax, strict word 00004h ; b8 04 00 … … 8834 8853 pop si ; 5e 8835 8854 retn ; c3 8836 mov bx, 00c 08h ; bb 080c8855 mov bx, 00c3ah ; bb 3a 0c 8837 8856 mov cx, ds ; 8c d9 8838 8857 mov ax, strict word 00004h ; b8 04 00 … … 9153 9172 movzx dx, al ; 0f b6 d0 9154 9173 jmp near 0676ch ; e9 14 ff 9155 send_to_mouse_ctrl_: ; 0xf6858 LB 0x31 9174 pci16_select_reg_: ; 0xf6858 LB 0x21 9175 push bx ; 53 9176 push bp ; 55 9177 mov bp, sp ; 89 e5 9178 and dl, 0fch ; 80 e2 fc 9179 mov bx, dx ; 89 d3 9180 mov dx, 00cf8h ; ba f8 0c 9181 movzx eax, ax ; 66 0f b7 c0 9182 sal eax, 008h ; 66 c1 e0 08 9183 or eax, strict dword 080000000h ; 66 0d 00 00 00 80 9184 db 08ah, 0c3h 9185 ; mov al, bl ; 8a c3 9186 out DX, eax ; 66 ef 9187 pop bp ; 5d 9188 pop bx ; 5b 9189 retn ; c3 9190 pci16_find_device_: ; 0xf6879 LB 0xf2 9191 push si ; 56 9192 push di ; 57 9193 enter 0000ch, 000h ; c8 0c 00 00 9194 push ax ; 50 9195 push dx ; 52 9196 mov si, bx ; 89 de 9197 mov di, cx ; 89 cf 9198 test cx, cx ; 85 c9 9199 xor bx, bx ; 31 db 9200 mov byte [bp-004h], 000h ; c6 46 fc 00 9201 test bl, 007h ; f6 c3 07 9202 jne short 068bfh ; 75 2d 9203 mov dx, strict word 0000eh ; ba 0e 00 9204 mov ax, bx ; 89 d8 9205 call 06858h ; e8 be ff 9206 mov dx, 00cfeh ; ba fe 0c 9207 in AL, DX ; ec 9208 db 02ah, 0e4h 9209 ; sub ah, ah ; 2a e4 9210 mov byte [bp-002h], al ; 88 46 fe 9211 cmp AL, strict byte 0ffh ; 3c ff 9212 jne short 068adh ; 75 06 9213 add bx, strict byte 00008h ; 83 c3 08 9214 jmp near 06940h ; e9 93 00 9215 test byte [bp-002h], 080h ; f6 46 fe 80 9216 je short 068bah ; 74 07 9217 mov word [bp-006h], strict word 00001h ; c7 46 fa 01 00 9218 jmp short 068bfh ; eb 05 9219 mov word [bp-006h], strict word 00008h ; c7 46 fa 08 00 9220 mov al, byte [bp-002h] ; 8a 46 fe 9221 and AL, strict byte 007h ; 24 07 9222 cmp AL, strict byte 001h ; 3c 01 9223 jne short 068e7h ; 75 1f 9224 mov ax, bx ; 89 d8 9225 shr ax, 008h ; c1 e8 08 9226 test ax, ax ; 85 c0 9227 jne short 068e7h ; 75 16 9228 mov dx, strict word 0001ah ; ba 1a 00 9229 mov ax, bx ; 89 d8 9230 call 06858h ; e8 7f ff 9231 mov dx, 00cfeh ; ba fe 0c 9232 in AL, DX ; ec 9233 db 02ah, 0e4h 9234 ; sub ah, ah ; 2a e4 9235 cmp al, byte [bp-004h] ; 3a 46 fc 9236 jbe short 068e7h ; 76 03 9237 mov byte [bp-004h], al ; 88 46 fc 9238 test di, di ; 85 ff 9239 je short 068f0h ; 74 05 9240 mov dx, strict word 00008h ; ba 08 00 9241 jmp short 068f2h ; eb 02 9242 xor dx, dx ; 31 d2 9243 mov ax, bx ; 89 d8 9244 call 06858h ; e8 61 ff 9245 mov dx, 00cfch ; ba fc 0c 9246 in eax, DX ; 66 ed 9247 db 08bh, 0d0h 9248 ; mov dx, ax ; 8b d0 9249 shr eax, 010h ; 66 c1 e8 10 9250 xchg dx, ax ; 92 9251 mov word [bp-00ah], ax ; 89 46 f6 9252 mov word [bp-008h], dx ; 89 56 f8 9253 mov word [bp-00ch], strict word 00000h ; c7 46 f4 00 00 9254 test di, di ; 85 ff 9255 je short 06921h ; 74 0f 9256 mov cx, strict word 00008h ; b9 08 00 9257 shr dx, 1 ; d1 ea 9258 rcr ax, 1 ; d1 d8 9259 loop 06915h ; e2 fa 9260 mov word [bp-00ah], ax ; 89 46 f6 9261 mov word [bp-008h], dx ; 89 56 f8 9262 mov ax, word [bp-008h] ; 8b 46 f8 9263 cmp ax, word [bp-010h] ; 3b 46 f0 9264 jne short 06931h ; 75 08 9265 mov ax, word [bp-00ah] ; 8b 46 f6 9266 cmp ax, word [bp-00eh] ; 3b 46 f2 9267 je short 06937h ; 74 06 9268 cmp word [bp-00ch], strict byte 00000h ; 83 7e f4 00 9269 je short 0693dh ; 74 06 9270 dec si ; 4e 9271 cmp si, strict byte 0ffffh ; 83 fe ff 9272 je short 0694fh ; 74 12 9273 add bx, word [bp-006h] ; 03 5e fa 9274 mov dx, bx ; 89 da 9275 shr dx, 008h ; c1 ea 08 9276 movzx ax, byte [bp-004h] ; 0f b6 46 fc 9277 cmp dx, ax ; 39 c2 9278 jbe near 0688dh ; 0f 86 3e ff 9279 cmp si, strict byte 0ffffh ; 83 fe ff 9280 jne short 06958h ; 75 04 9281 mov ax, bx ; 89 d8 9282 jmp short 0695bh ; eb 03 9283 mov ax, strict word 0ffffh ; b8 ff ff 9284 leave ; c9 9285 pop di ; 5f 9286 pop si ; 5e 9287 retn ; c3 9288 inc di ; 47 9289 push strict byte 00060h ; 6a 60 9290 push strict byte 00072h ; 6a 72 9291 push strict byte 0ff86h ; 6a 86 9292 push strict byte 0ff98h ; 6a 98 9293 push strict byte 0ffaah ; 6a aa 9294 db 06ah 9295 _pci16_function: ; 0xf696b LB 0x182 9296 push bp ; 55 9297 mov bp, sp ; 89 e5 9298 and word [bp+020h], 000ffh ; 81 66 20 ff 00 9299 and word [bp+02ch], strict byte 0fffeh ; 83 66 2c fe 9300 mov ax, word [bp+020h] ; 8b 46 20 9301 xor ah, ah ; 30 e4 9302 cmp ax, strict word 00002h ; 3d 02 00 9303 jc short 069a1h ; 72 20 9304 mov bx, word [bp+020h] ; 8b 5e 20 9305 xor bh, bh ; 30 ff 9306 cmp ax, strict word 00002h ; 3d 02 00 9307 jbe short 069c3h ; 76 38 9308 cmp ax, strict word 00003h ; 3d 03 00 9309 jbe short 069f4h ; 76 64 9310 cmp ax, strict word 00008h ; 3d 08 00 9311 jc near 06abeh ; 0f 82 27 01 9312 cmp ax, strict word 0000dh ; 3d 0d 00 9313 jbe near 06a18h ; 0f 86 7a 00 9314 jmp near 06abeh ; e9 1d 01 9315 cmp ax, strict word 00001h ; 3d 01 00 9316 jne near 06abeh ; 0f 85 16 01 9317 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 9318 mov word [bp+014h], 00210h ; c7 46 14 10 02 9319 mov word [bp+01ch], strict word 00000h ; c7 46 1c 00 00 9320 mov word [bp+018h], 04350h ; c7 46 18 50 43 9321 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 9322 pop bp ; 5d 9323 retn ; c3 9324 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 9325 jne short 069ceh ; 75 05 9326 or bh, 083h ; 80 cf 83 9327 jmp short 06a22h ; eb 54 9328 mov bx, word [bp+008h] ; 8b 5e 08 9329 mov dx, word [bp+01ch] ; 8b 56 1c 9330 mov ax, word [bp+018h] ; 8b 46 18 9331 xor cx, cx ; 31 c9 9332 call 06879h ; e8 9d fe 9333 cmp ax, strict word 0ffffh ; 3d ff ff 9334 jne short 069efh ; 75 0e 9335 mov ax, word [bp+020h] ; 8b 46 20 9336 xor ah, ah ; 30 e4 9337 or ah, 086h ; 80 cc 86 9338 mov word [bp+020h], ax ; 89 46 20 9339 jmp near 06ae7h ; e9 f8 00 9340 mov word [bp+014h], ax ; 89 46 14 9341 pop bp ; 5d 9342 retn ; c3 9343 mov bx, word [bp+008h] ; 8b 5e 08 9344 mov ax, word [bp+01ch] ; 8b 46 1c 9345 mov dx, word [bp+01eh] ; 8b 56 1e 9346 mov cx, strict word 00001h ; b9 01 00 9347 call 06879h ; e8 76 fe 9348 cmp ax, strict word 0ffffh ; 3d ff ff 9349 jne short 06a13h ; 75 0b 9350 mov ax, word [bp+020h] ; 8b 46 20 9351 xor ah, ah ; 30 e4 9352 or ah, 086h ; 80 cc 86 9353 jmp near 06ae4h ; e9 d1 00 9354 mov word [bp+014h], ax ; 89 46 14 9355 pop bp ; 5d 9356 retn ; c3 9357 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 9358 jc short 06a28h ; 72 09 9359 or bh, 087h ; 80 cf 87 9360 mov word [bp+020h], bx ; 89 5e 20 9361 jmp near 06ae7h ; e9 bf 00 9362 mov dx, word [bp+004h] ; 8b 56 04 9363 mov ax, word [bp+014h] ; 8b 46 14 9364 call 06858h ; e8 27 fe 9365 mov bx, word [bp+020h] ; 8b 5e 20 9366 xor bh, bh ; 30 ff 9367 sub bx, strict byte 00008h ; 83 eb 08 9368 cmp bx, strict byte 00005h ; 83 fb 05 9369 jnbe near 06aebh ; 0f 87 ab 00 9370 add bx, bx ; 01 db 9371 jmp word [cs:bx+0695fh] ; 2e ff a7 5f 69 9372 mov bx, word [bp+01ch] ; 8b 5e 1c 9373 xor bl, bl ; 30 db 9374 mov dx, word [bp+004h] ; 8b 56 04 9375 and dx, strict byte 00003h ; 83 e2 03 9376 add dx, 00cfch ; 81 c2 fc 0c 9377 in AL, DX ; ec 9378 db 02ah, 0e4h 9379 ; sub ah, ah ; 2a e4 9380 or bx, ax ; 09 c3 9381 mov word [bp+01ch], bx ; 89 5e 1c 9382 pop bp ; 5d 9383 retn ; c3 9384 mov dx, word [bp+004h] ; 8b 56 04 9385 xor dh, dh ; 30 f6 9386 and dl, 002h ; 80 e2 02 9387 add dx, 00cfch ; 81 c2 fc 0c 9388 in ax, DX ; ed 9389 mov word [bp+01ch], ax ; 89 46 1c 9390 pop bp ; 5d 9391 retn ; c3 9392 mov dx, 00cfch ; ba fc 0c 9393 in eax, DX ; 66 ed 9394 db 08bh, 0d0h 9395 ; mov dx, ax ; 8b d0 9396 shr eax, 010h ; 66 c1 e8 10 9397 xchg dx, ax ; 92 9398 mov word [bp+01ch], ax ; 89 46 1c 9399 mov word [bp+01eh], dx ; 89 56 1e 9400 pop bp ; 5d 9401 retn ; c3 9402 mov ax, word [bp+01ch] ; 8b 46 1c 9403 mov dx, word [bp+004h] ; 8b 56 04 9404 xor dh, dh ; 30 f6 9405 and dl, 003h ; 80 e2 03 9406 add dx, 00cfch ; 81 c2 fc 0c 9407 out DX, AL ; ee 9408 pop bp ; 5d 9409 retn ; c3 9410 mov ax, word [bp+01ch] ; 8b 46 1c 9411 mov dx, word [bp+004h] ; 8b 56 04 9412 xor dh, dh ; 30 f6 9413 and dl, 002h ; 80 e2 02 9414 add dx, 00cfch ; 81 c2 fc 0c 9415 out DX, ax ; ef 9416 pop bp ; 5d 9417 retn ; c3 9418 mov ax, word [bp+01ch] ; 8b 46 1c 9419 mov cx, word [bp+01eh] ; 8b 4e 1e 9420 mov dx, 00cfch ; ba fc 0c 9421 xchg cx, ax ; 91 9422 sal eax, 010h ; 66 c1 e0 10 9423 db 08bh, 0c1h 9424 ; mov ax, cx ; 8b c1 9425 out DX, eax ; 66 ef 9426 pop bp ; 5d 9427 retn ; c3 9428 mov bx, 00c3ah ; bb 3a 0c 9429 mov cx, ds ; 8c d9 9430 mov ax, strict word 00004h ; b8 04 00 9431 call 018aeh ; e8 e5 ad 9432 mov ax, word [bp+014h] ; 8b 46 14 9433 push ax ; 50 9434 mov ax, word [bp+020h] ; 8b 46 20 9435 push ax ; 50 9436 push 0086ch ; 68 6c 08 9437 push strict byte 00004h ; 6a 04 9438 call 018e9h ; e8 10 ae 9439 add sp, strict byte 00008h ; 83 c4 08 9440 mov ax, word [bp+020h] ; 8b 46 20 9441 xor ah, ah ; 30 e4 9442 or ah, 081h ; 80 cc 81 9443 mov word [bp+020h], ax ; 89 46 20 9444 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 9445 pop bp ; 5d 9446 retn ; c3 9447 send_to_mouse_ctrl_: ; 0xf6aed LB 0x31 9156 9448 push bx ; 53 9157 9449 push dx ; 52 … … 9164 9456 ; sub ah, ah ; 2a e4 9165 9457 test AL, strict byte 002h ; a8 02 9166 je short 06 877h ; 74 0e9167 push 008 6ch ; 68 6c089168 push 0 0fd0h ; 68 d0 0f9458 je short 06b0ch ; 74 0e 9459 push 0089eh ; 68 9e 08 9460 push 01002h ; 68 02 10 9169 9461 push strict byte 00007h ; 6a 07 9170 call 018e9h ; e8 75 b09462 call 018e9h ; e8 e0 ad 9171 9463 add sp, strict byte 00006h ; 83 c4 06 9172 9464 mov AL, strict byte 0d4h ; b0 d4 … … 9181 9473 pop bx ; 5b 9182 9474 retn ; c3 9183 get_mouse_data_: ; 0xf6 889LB 0x389475 get_mouse_data_: ; 0xf6b1e LB 0x38 9184 9476 push bx ; 53 9185 9477 push cx ; 51 … … 9195 9487 and ax, strict word 00021h ; 25 21 00 9196 9488 cmp ax, strict word 00021h ; 3d 21 00 9197 je short 06 8aah ; 74 079489 je short 06b3fh ; 74 07 9198 9490 test cx, cx ; 85 c9 9199 je short 06 8aah ; 74 039491 je short 06b3fh ; 74 03 9200 9492 dec cx ; 49 9201 jmp short 06 895h ; eb eb9493 jmp short 06b2ah ; eb eb 9202 9494 test cx, cx ; 85 c9 9203 jne short 06 8b2h ; 75 049495 jne short 06b47h ; 75 04 9204 9496 mov AL, strict byte 001h ; b0 01 9205 jmp short 06 8bdh ; eb 0b9497 jmp short 06b52h ; eb 0b 9206 9498 mov dx, strict word 00060h ; ba 60 00 9207 9499 in AL, DX ; ec … … 9214 9506 pop bx ; 5b 9215 9507 retn ; c3 9216 set_kbd_command_byte_: ; 0xf6 8c1LB 0x2f9508 set_kbd_command_byte_: ; 0xf6b56 LB 0x2f 9217 9509 push bx ; 53 9218 9510 push dx ; 52 … … 9225 9517 ; sub ah, ah ; 2a e4 9226 9518 test AL, strict byte 002h ; a8 02 9227 je short 06 8e0h ; 74 0e9228 push 008 76h ; 68 76089229 push 0 0fd0h ; 68 d0 0f9519 je short 06b75h ; 74 0e 9520 push 008a8h ; 68 a8 08 9521 push 01002h ; 68 02 10 9230 9522 push strict byte 00007h ; 6a 07 9231 call 018e9h ; e8 0c b09523 call 018e9h ; e8 77 ad 9232 9524 add sp, strict byte 00006h ; 83 c4 06 9233 9525 mov AL, strict byte 060h ; b0 60 … … 9241 9533 pop bx ; 5b 9242 9534 retn ; c3 9243 _int74_function: ; 0xf6 8f0LB 0xc69535 _int74_function: ; 0xf6b85 LB 0xc6 9244 9536 enter 00008h, 000h ; c8 08 00 00 9245 9537 mov dx, strict word 0000eh ; ba 0e 00 9246 9538 mov ax, strict word 00040h ; b8 40 00 9247 call 0161ch ; e8 1f ad9539 call 0161ch ; e8 8a aa 9248 9540 mov cx, ax ; 89 c1 9249 9541 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 9254 9546 and AL, strict byte 021h ; 24 21 9255 9547 cmp AL, strict byte 021h ; 3c 21 9256 jne near 06 9a4h ; 0f 85 92 009548 jne near 06c39h ; 0f 85 92 00 9257 9549 mov dx, strict word 00060h ; ba 60 00 9258 9550 in AL, DX ; ec … … 9262 9554 mov dx, strict word 00026h ; ba 26 00 9263 9555 mov ax, cx ; 89 c8 9264 call 01600h ; e8 de ac9556 call 01600h ; e8 49 aa 9265 9557 mov byte [bp-006h], al ; 88 46 fa 9266 9558 mov dx, strict word 00027h ; ba 27 00 9267 9559 mov ax, cx ; 89 c8 9268 call 01600h ; e8 d3 ac9560 call 01600h ; e8 3e aa 9269 9561 mov byte [bp-008h], al ; 88 46 f8 9270 9562 test AL, strict byte 080h ; a8 80 9271 je short 06 9a4h ; 74 709563 je short 06c39h ; 74 70 9272 9564 mov al, byte [bp-008h] ; 8a 46 f8 9273 9565 and AL, strict byte 007h ; 24 07 … … 9280 9572 add dx, strict byte 00028h ; 83 c2 28 9281 9573 mov ax, cx ; 89 c8 9282 call 0160eh ; e8 bd ac9574 call 0160eh ; e8 28 aa 9283 9575 mov al, byte [bp-004h] ; 8a 46 fc 9284 9576 cmp al, byte [bp-002h] ; 3a 46 fe 9285 jc short 06 995h ; 72 3c9577 jc short 06c2ah ; 72 3c 9286 9578 mov dx, strict word 00028h ; ba 28 00 9287 9579 mov ax, cx ; 89 c8 9288 call 01600h ; e8 9f ac9580 call 01600h ; e8 0a aa 9289 9581 xor ah, ah ; 30 e4 9290 9582 mov word [bp+00ch], ax ; 89 46 0c 9291 9583 mov dx, strict word 00029h ; ba 29 00 9292 9584 mov ax, cx ; 89 c8 9293 call 01600h ; e8 92 ac9585 call 01600h ; e8 fd a9 9294 9586 xor ah, ah ; 30 e4 9295 9587 mov word [bp+00ah], ax ; 89 46 0a 9296 9588 mov dx, strict word 0002ah ; ba 2a 00 9297 9589 mov ax, cx ; 89 c8 9298 call 01600h ; e8 85 ac9590 call 01600h ; e8 f0 a9 9299 9591 xor ah, ah ; 30 e4 9300 9592 mov word [bp+008h], ax ; 89 46 08 … … 9303 9595 mov byte [bp-006h], ah ; 88 66 fa 9304 9596 test byte [bp-008h], 080h ; f6 46 f8 80 9305 je short 06 998h ; 74 0a9597 je short 06c2dh ; 74 0a 9306 9598 mov word [bp+004h], strict word 00001h ; c7 46 04 01 00 9307 jmp short 06 998h ; eb 039599 jmp short 06c2dh ; eb 03 9308 9600 inc byte [bp-006h] ; fe 46 fa 9309 9601 movzx bx, byte [bp-006h] ; 0f b6 5e fa 9310 9602 mov dx, strict word 00026h ; ba 26 00 9311 9603 mov ax, cx ; 89 c8 9312 call 0160eh ; e8 6a ac9604 call 0160eh ; e8 d5 a9 9313 9605 leave ; c9 9314 9606 retn ; c3 9315 clc ; f8 9316 imul bp, word [bp+06ah], 06af1h ; 69 6e 6a f1 6a 9317 db 082h, 06bh, 0f0h, 06bh 9318 ; sub byte [bp+di-010h], 06bh ; 82 6b f0 6b 9319 inc sp ; 44 9320 push strict byte 00018h ; 6a 18 9607 lea bp, [si+003h] ; 8d 6c 03 9608 insw ; 6d 9609 xchg byte [di+017h], ch ; 86 6d 17 9610 outsb ; 6e 9611 test word [bp-027h], bp ; 85 6e d9 9321 9612 insb ; 6c 9322 db 0ddh 9323 insb ; 6c 9324 _int15_function_mouse: ; 0xf69b6 LB 0x386 9613 lodsw ; ad 9614 outsb ; 6e 9615 jc short 06cbah ; 72 6f 9616 _int15_function_mouse: ; 0xf6c4b LB 0x386 9325 9617 push si ; 56 9326 9618 enter 00006h, 000h ; c8 06 00 00 9327 9619 mov dx, strict word 0000eh ; ba 0e 00 9328 9620 mov ax, strict word 00040h ; b8 40 00 9329 call 0161ch ; e8 58 ac9621 call 0161ch ; e8 c3 a9 9330 9622 mov cx, ax ; 89 c1 9331 9623 cmp byte [bp+014h], 007h ; 80 7e 14 07 9332 jbe short 06 9d7h ; 76 0b9624 jbe short 06c6ch ; 76 0b 9333 9625 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9334 9626 mov byte [bp+015h], 001h ; c6 46 15 01 … … 9337 9629 retn ; c3 9338 9630 mov ax, strict word 00065h ; b8 65 00 9339 call 06 8c1h ; e8 e4 fe9631 call 06b56h ; e8 e4 fe 9340 9632 and word [bp+01ah], strict byte 0fffeh ; 83 66 1a fe 9341 9633 mov byte [bp+015h], 000h ; c6 46 15 00 9342 9634 mov al, byte [bp+014h] ; 8a 46 14 9343 9635 cmp AL, strict byte 007h ; 3c 07 9344 jnbe near 06 d20h ; 0f 87 32 039636 jnbe near 06fb5h ; 0f 87 32 03 9345 9637 movzx si, al ; 0f b6 f0 9346 9638 add si, si ; 01 f6 9347 jmp word [cs:si+06 9a6h] ; 2e ff a4 a6 699639 jmp word [cs:si+06c3bh] ; 2e ff a4 3b 6c 9348 9640 cmp byte [bp+00fh], 001h ; 80 7e 0f 01 9349 jnbe near 06 d2bh ; 0f 87 2b 039641 jnbe near 06fc0h ; 0f 87 2b 03 9350 9642 mov dx, strict word 00027h ; ba 27 00 9351 9643 mov ax, cx ; 89 c8 9352 call 01600h ; e8 f8 ab9644 call 01600h ; e8 63 a9 9353 9645 test AL, strict byte 080h ; a8 80 9354 jne short 06 a17h ; 75 0b9646 jne short 06cach ; 75 0b 9355 9647 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9356 9648 mov byte [bp+015h], 005h ; c6 46 15 05 9357 jmp near 06 d33h ; e9 1c 039649 jmp near 06fc8h ; e9 1c 03 9358 9650 cmp byte [bp+00fh], 000h ; 80 7e 0f 00 9359 9651 db 00fh, 094h, 0c0h … … 9361 9653 add AL, strict byte 0f4h ; 04 f4 9362 9654 xor ah, ah ; 30 e4 9363 call 06 858h ; e8 33 fe9655 call 06aedh ; e8 33 fe 9364 9656 test al, al ; 84 c0 9365 jne near 06 cb9h ; 0f 85 8e 029657 jne near 06f4eh ; 0f 85 8e 02 9366 9658 mov dx, ss ; 8c d2 9367 9659 lea ax, [bp-006h] ; 8d 46 fa 9368 call 06 889h ; e8 56 fe9660 call 06b1eh ; e8 56 fe 9369 9661 test al, al ; 84 c0 9370 je near 06 d33h ; 0f 84 fa 029662 je near 06fc8h ; 0f 84 fa 02 9371 9663 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9372 jne near 06 cb9h ; 0f 85 78 029373 jmp near 06 d33h ; e9 ef 029664 jne near 06f4eh ; 0f 85 78 02 9665 jmp near 06fc8h ; e9 ef 02 9374 9666 mov al, byte [bp+00fh] ; 8a 46 0f 9375 9667 cmp AL, strict byte 001h ; 3c 01 9376 jc short 06 a4fh ; 72 049668 jc short 06ce4h ; 72 04 9377 9669 cmp AL, strict byte 008h ; 3c 08 9378 jbe short 06 a52h ; 76 039379 jmp near 06 be5h ; e9 93 019670 jbe short 06ce7h ; 76 03 9671 jmp near 06e7ah ; e9 93 01 9380 9672 mov dx, strict word 00027h ; ba 27 00 9381 9673 mov ax, cx ; 89 c8 9382 call 01600h ; e8 a6 ab9674 call 01600h ; e8 11 a9 9383 9675 mov ah, byte [bp+00fh] ; 8a 66 0f 9384 9676 db 0feh, 0cch … … 9389 9681 mov dx, strict word 00027h ; ba 27 00 9390 9682 mov ax, cx ; 89 c8 9391 call 0160eh ; e8 a0 ab9683 call 0160eh ; e8 0b a9 9392 9684 mov dx, strict word 00026h ; ba 26 00 9393 9685 mov ax, cx ; 89 c8 9394 call 01600h ; e8 8a ab9686 call 01600h ; e8 f5 a8 9395 9687 and AL, strict byte 0f8h ; 24 f8 9396 9688 movzx bx, al ; 0f b6 d8 9397 9689 mov dx, strict word 00026h ; ba 26 00 9398 9690 mov ax, cx ; 89 c8 9399 call 0160eh ; e8 8b ab9691 call 0160eh ; e8 f6 a8 9400 9692 mov ax, 000ffh ; b8 ff 00 9401 call 06 858h ; e8 cf fd9693 call 06aedh ; e8 cf fd 9402 9694 test al, al ; 84 c0 9403 jne near 06 cb9h ; 0f 85 2a 029695 jne near 06f4eh ; 0f 85 2a 02 9404 9696 mov dx, ss ; 8c d2 9405 9697 lea ax, [bp-002h] ; 8d 46 fe 9406 call 06 889h ; e8 f2 fd9698 call 06b1eh ; e8 f2 fd 9407 9699 mov cl, al ; 88 c1 9408 9700 cmp byte [bp-002h], 0feh ; 80 7e fe fe 9409 jne short 06 aaah ; 75 0b9701 jne short 06d3fh ; 75 0b 9410 9702 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9411 9703 mov byte [bp+015h], 004h ; c6 46 15 04 9412 jmp near 06 d33h ; e9 89 029704 jmp near 06fc8h ; e9 89 02 9413 9705 cmp byte [bp-002h], 0fah ; 80 7e fe fa 9414 je short 06 ac0h ; 74 109706 je short 06d55h ; 74 10 9415 9707 movzx ax, byte [bp-002h] ; 0f b6 46 fe 9416 9708 push ax ; 50 9417 push 008 81h ; 68 81089709 push 008b3h ; 68 b3 08 9418 9710 push strict byte 00007h ; 6a 07 9419 call 018e9h ; e8 2c ae9711 call 018e9h ; e8 97 ab 9420 9712 add sp, strict byte 00006h ; 83 c4 06 9421 9713 test cl, cl ; 84 c9 9422 jne near 06 cb9h ; 0f 85 f3 019714 jne near 06f4eh ; 0f 85 f3 01 9423 9715 mov dx, ss ; 8c d2 9424 9716 lea ax, [bp-006h] ; 8d 46 fa 9425 call 06 889h ; e8 bb fd9717 call 06b1eh ; e8 bb fd 9426 9718 test al, al ; 84 c0 9427 jne near 06 cb9h ; 0f 85 e5 019719 jne near 06f4eh ; 0f 85 e5 01 9428 9720 mov dx, ss ; 8c d2 9429 9721 lea ax, [bp-004h] ; 8d 46 fc 9430 call 06 889h ; e8 ad fd9722 call 06b1eh ; e8 ad fd 9431 9723 test al, al ; 84 c0 9432 jne near 06 cb9h ; 0f 85 d7 019724 jne near 06f4eh ; 0f 85 d7 01 9433 9725 mov al, byte [bp-006h] ; 8a 46 fa 9434 9726 mov byte [bp+00eh], al ; 88 46 0e 9435 9727 mov al, byte [bp-004h] ; 8a 46 fc 9436 9728 mov byte [bp+00fh], al ; 88 46 0f 9437 jmp near 06 d33h ; e9 42 029729 jmp near 06fc8h ; e9 42 02 9438 9730 mov al, byte [bp+00fh] ; 8a 46 0f 9439 9731 cmp AL, strict byte 003h ; 3c 03 9440 jc short 06 b08h ; 72 109441 jbe short 06 b26h ; 76 2c9732 jc short 06d9dh ; 72 10 9733 jbe short 06dbbh ; 76 2c 9442 9734 cmp AL, strict byte 006h ; 3c 06 9443 je short 06 b38h ; 74 3a9735 je short 06dcdh ; 74 3a 9444 9736 cmp AL, strict byte 005h ; 3c 05 9445 je short 06 b32h ; 74 309737 je short 06dc7h ; 74 30 9446 9738 cmp AL, strict byte 004h ; 3c 04 9447 je short 06 b2ch ; 74 269448 jmp short 06 b3eh ; eb 369739 je short 06dc1h ; 74 26 9740 jmp short 06dd3h ; eb 36 9449 9741 cmp AL, strict byte 002h ; 3c 02 9450 je short 06 b20h ; 74 149742 je short 06db5h ; 74 14 9451 9743 cmp AL, strict byte 001h ; 3c 01 9452 je short 06 b1ah ; 74 0a9744 je short 06dafh ; 74 0a 9453 9745 test al, al ; 84 c0 9454 jne short 06 b3eh ; 75 2a9746 jne short 06dd3h ; 75 2a 9455 9747 mov byte [bp-006h], 00ah ; c6 46 fa 0a 9456 jmp short 06 b42h ; eb 289748 jmp short 06dd7h ; eb 28 9457 9749 mov byte [bp-006h], 014h ; c6 46 fa 14 9458 jmp short 06 b42h ; eb 229750 jmp short 06dd7h ; eb 22 9459 9751 mov byte [bp-006h], 028h ; c6 46 fa 28 9460 jmp short 06 b42h ; eb 1c9752 jmp short 06dd7h ; eb 1c 9461 9753 mov byte [bp-006h], 03ch ; c6 46 fa 3c 9462 jmp short 06 b42h ; eb 169754 jmp short 06dd7h ; eb 16 9463 9755 mov byte [bp-006h], 050h ; c6 46 fa 50 9464 jmp short 06 b42h ; eb 109756 jmp short 06dd7h ; eb 10 9465 9757 mov byte [bp-006h], 064h ; c6 46 fa 64 9466 jmp short 06 b42h ; eb 0a9758 jmp short 06dd7h ; eb 0a 9467 9759 mov byte [bp-006h], 0c8h ; c6 46 fa c8 9468 jmp short 06 b42h ; eb 049760 jmp short 06dd7h ; eb 04 9469 9761 mov byte [bp-006h], 000h ; c6 46 fa 00 9470 9762 cmp byte [bp-006h], 000h ; 80 7e fa 00 9471 jbe short 06 b77h ; 76 2f9763 jbe short 06e0ch ; 76 2f 9472 9764 mov ax, 000f3h ; b8 f3 00 9473 call 06 858h ; e8 0a fd9765 call 06aedh ; e8 0a fd 9474 9766 test al, al ; 84 c0 9475 jne short 06 b6ch ; 75 1a9767 jne short 06e01h ; 75 1a 9476 9768 mov dx, ss ; 8c d2 9477 9769 lea ax, [bp-004h] ; 8d 46 fc 9478 call 06 889h ; e8 2f fd9770 call 06b1eh ; e8 2f fd 9479 9771 movzx ax, byte [bp-006h] ; 0f b6 46 fa 9480 call 06 858h ; e8 f7 fc9772 call 06aedh ; e8 f7 fc 9481 9773 mov dx, ss ; 8c d2 9482 9774 lea ax, [bp-004h] ; 8d 46 fc 9483 call 06 889h ; e8 20 fd9484 jmp near 06 d33h ; e9 c7 019775 call 06b1eh ; e8 20 fd 9776 jmp near 06fc8h ; e9 c7 01 9485 9777 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9486 9778 mov byte [bp+015h], 003h ; c6 46 15 03 9487 jmp near 06 d33h ; e9 bc 019779 jmp near 06fc8h ; e9 bc 01 9488 9780 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9489 9781 mov byte [bp+015h], 002h ; c6 46 15 02 9490 jmp near 06 d33h ; e9 b1 019782 jmp near 06fc8h ; e9 b1 01 9491 9783 cmp byte [bp+00fh], 004h ; 80 7e 0f 04 9492 jnc short 06 be5h ; 73 5d9784 jnc short 06e7ah ; 73 5d 9493 9785 mov ax, 000e8h ; b8 e8 00 9494 call 06 858h ; e8 ca fc9786 call 06aedh ; e8 ca fc 9495 9787 test al, al ; 84 c0 9496 jne short 06 bdah ; 75 489788 jne short 06e6fh ; 75 48 9497 9789 mov dx, ss ; 8c d2 9498 9790 lea ax, [bp-006h] ; 8d 46 fa 9499 call 06 889h ; e8 ef fc9791 call 06b1eh ; e8 ef fc 9500 9792 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9501 je short 06 bb0h ; 74 109793 je short 06e45h ; 74 10 9502 9794 movzx ax, byte [bp-006h] ; 0f b6 46 fa 9503 9795 push ax ; 50 9504 push 008 ach ; 68 ac089796 push 008deh ; 68 de 08 9505 9797 push strict byte 00007h ; 6a 07 9506 call 018e9h ; e8 3c ad9798 call 018e9h ; e8 a7 aa 9507 9799 add sp, strict byte 00006h ; 83 c4 06 9508 9800 movzx ax, byte [bp+00fh] ; 0f b6 46 0f 9509 call 06 858h ; e8 a1 fc9801 call 06aedh ; e8 a1 fc 9510 9802 mov dx, ss ; 8c d2 9511 9803 lea ax, [bp-006h] ; 8d 46 fa 9512 call 06 889h ; e8 ca fc9804 call 06b1eh ; e8 ca fc 9513 9805 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9514 je near 06 d33h ; 0f 84 6c 019806 je near 06fc8h ; 0f 84 6c 01 9515 9807 movzx ax, byte [bp-006h] ; 0f b6 46 fa 9516 9808 push ax ; 50 9517 push 008 ach ; 68 ac089809 push 008deh ; 68 de 08 9518 9810 push strict byte 00007h ; 6a 07 9519 call 018e9h ; e8 15 ad9811 call 018e9h ; e8 80 aa 9520 9812 add sp, strict byte 00006h ; 83 c4 06 9521 jmp near 06 d33h ; e9 59 019813 jmp near 06fc8h ; e9 59 01 9522 9814 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9523 9815 mov byte [bp+015h], 003h ; c6 46 15 03 9524 jmp near 06 d33h ; e9 4e 019816 jmp near 06fc8h ; e9 4e 01 9525 9817 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9526 9818 mov byte [bp+015h], 002h ; c6 46 15 02 9527 jmp near 06 d33h ; e9 43 019819 jmp near 06fc8h ; e9 43 01 9528 9820 mov ax, 000f2h ; b8 f2 00 9529 call 06 858h ; e8 62 fc9821 call 06aedh ; e8 62 fc 9530 9822 test al, al ; 84 c0 9531 jne short 06 c0dh ; 75 139823 jne short 06ea2h ; 75 13 9532 9824 mov dx, ss ; 8c d2 9533 9825 lea ax, [bp-006h] ; 8d 46 fa 9534 call 06 889h ; e8 87 fc9826 call 06b1eh ; e8 87 fc 9535 9827 mov dx, ss ; 8c d2 9536 9828 lea ax, [bp-004h] ; 8d 46 fc 9537 call 06 889h ; e8 7f fc9538 jmp near 06 ae8h ; e9 db fe9829 call 06b1eh ; e8 7f fc 9830 jmp near 06d7dh ; e9 db fe 9539 9831 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9540 9832 mov byte [bp+015h], 003h ; c6 46 15 03 9541 jmp near 06 d33h ; e9 1b 019833 jmp near 06fc8h ; e9 1b 01 9542 9834 mov al, byte [bp+00fh] ; 8a 46 0f 9543 9835 test al, al ; 84 c0 9544 jbe short 06 c26h ; 76 079836 jbe short 06ebbh ; 76 07 9545 9837 cmp AL, strict byte 002h ; 3c 02 9546 jbe short 06 c8fh ; 76 6c9547 jmp near 06 cc3h ; e9 9d 009838 jbe short 06f24h ; 76 6c 9839 jmp near 06f58h ; e9 9d 00 9548 9840 mov ax, 000e9h ; b8 e9 00 9549 call 06 858h ; e8 2c fc9841 call 06aedh ; e8 2c fc 9550 9842 test al, al ; 84 c0 9551 jne near 06 cb9h ; 0f 85 87 009843 jne near 06f4eh ; 0f 85 87 00 9552 9844 mov dx, ss ; 8c d2 9553 9845 lea ax, [bp-006h] ; 8d 46 fa 9554 call 06 889h ; e8 4f fc9846 call 06b1eh ; e8 4f fc 9555 9847 mov cl, al ; 88 c1 9556 9848 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9557 je short 06 c52h ; 74 109849 je short 06ee7h ; 74 10 9558 9850 movzx ax, byte [bp-006h] ; 0f b6 46 fa 9559 9851 push ax ; 50 9560 push 008 ach ; 68 ac089852 push 008deh ; 68 de 08 9561 9853 push strict byte 00007h ; 6a 07 9562 call 018e9h ; e8 9a ac9854 call 018e9h ; e8 05 aa 9563 9855 add sp, strict byte 00006h ; 83 c4 06 9564 9856 test cl, cl ; 84 c9 9565 jne short 06 cb9h ; 75 639857 jne short 06f4eh ; 75 63 9566 9858 mov dx, ss ; 8c d2 9567 9859 lea ax, [bp-006h] ; 8d 46 fa 9568 call 06 889h ; e8 2b fc9860 call 06b1eh ; e8 2b fc 9569 9861 test al, al ; 84 c0 9570 jne short 06 cb9h ; 75 579862 jne short 06f4eh ; 75 57 9571 9863 mov dx, ss ; 8c d2 9572 9864 lea ax, [bp-004h] ; 8d 46 fc 9573 call 06 889h ; e8 1f fc9865 call 06b1eh ; e8 1f fc 9574 9866 test al, al ; 84 c0 9575 jne short 06 cb9h ; 75 4b9867 jne short 06f4eh ; 75 4b 9576 9868 mov dx, ss ; 8c d2 9577 9869 lea ax, [bp-002h] ; 8d 46 fe 9578 call 06 889h ; e8 13 fc9870 call 06b1eh ; e8 13 fc 9579 9871 test al, al ; 84 c0 9580 jne short 06 cb9h ; 75 3f9872 jne short 06f4eh ; 75 3f 9581 9873 mov al, byte [bp-006h] ; 8a 46 fa 9582 9874 mov byte [bp+00eh], al ; 88 46 0e … … 9585 9877 mov al, byte [bp-002h] ; 8a 46 fe 9586 9878 mov byte [bp+010h], al ; 88 46 10 9587 jmp near 06 d33h ; e9 a4 009879 jmp near 06fc8h ; e9 a4 00 9588 9880 cmp AL, strict byte 001h ; 3c 01 9589 jne short 06 c98h ; 75 059881 jne short 06f2dh ; 75 05 9590 9882 mov ax, 000e6h ; b8 e6 00 9591 jmp short 06 c9bh ; eb 039883 jmp short 06f30h ; eb 03 9592 9884 mov ax, 000e7h ; b8 e7 00 9593 call 06 858h ; e8 ba fb9885 call 06aedh ; e8 ba fb 9594 9886 mov cl, al ; 88 c1 9595 9887 test cl, cl ; 84 c9 9596 jne short 06 cb3h ; 75 0f9888 jne short 06f48h ; 75 0f 9597 9889 mov dx, ss ; 8c d2 9598 9890 lea ax, [bp-006h] ; 8d 46 fa 9599 call 06 889h ; e8 dd fb9891 call 06b1eh ; e8 dd fb 9600 9892 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9601 9893 db 00fh, 095h, 0c1h 9602 9894 ; setne cl ; 0f 95 c1 9603 9895 test cl, cl ; 84 c9 9604 je near 06 d33h ; 0f 84 7a 009896 je near 06fc8h ; 0f 84 7a 00 9605 9897 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9606 9898 mov byte [bp+015h], 003h ; c6 46 15 03 9607 jmp short 06 d33h ; eb 709899 jmp short 06fc8h ; eb 70 9608 9900 movzx ax, byte [bp+00fh] ; 0f b6 46 0f 9609 9901 push ax ; 50 9610 push 00 8d8h ; 68 d8 089902 push 0090ah ; 68 0a 09 9611 9903 push strict byte 00007h ; 6a 07 9612 call 018e9h ; e8 19 ac9904 call 018e9h ; e8 84 a9 9613 9905 add sp, strict byte 00006h ; 83 c4 06 9614 9906 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9615 9907 mov byte [bp+015h], 001h ; c6 46 15 01 9616 jmp short 06 d33h ; eb 569908 jmp short 06fc8h ; eb 56 9617 9909 mov si, word [bp+00eh] ; 8b 76 0e 9618 9910 mov bx, si ; 89 f3 9619 9911 mov dx, strict word 00022h ; ba 22 00 9620 9912 mov ax, cx ; 89 c8 9621 call 0162ah ; e8 40 a99913 call 0162ah ; e8 ab a6 9622 9914 mov bx, word [bp+016h] ; 8b 5e 16 9623 9915 mov dx, strict word 00024h ; ba 24 00 9624 9916 mov ax, cx ; 89 c8 9625 call 0162ah ; e8 35 a99917 call 0162ah ; e8 a0 a6 9626 9918 mov dx, strict word 00027h ; ba 27 00 9627 9919 mov ax, cx ; 89 c8 9628 call 01600h ; e8 03 a99920 call 01600h ; e8 6e a6 9629 9921 mov ah, al ; 88 c4 9630 9922 test si, si ; 85 f6 9631 jne short 06 d11h ; 75 0e9923 jne short 06fa6h ; 75 0e 9632 9924 cmp word [bp+016h], strict byte 00000h ; 83 7e 16 00 9633 jne short 06 d11h ; 75 089925 jne short 06fa6h ; 75 08 9634 9926 test AL, strict byte 080h ; a8 80 9635 je short 06 d13h ; 74 069927 je short 06fa8h ; 74 06 9636 9928 and AL, strict byte 07fh ; 24 7f 9637 jmp short 06 d13h ; eb 029929 jmp short 06fa8h ; eb 02 9638 9930 or AL, strict byte 080h ; 0c 80 9639 9931 movzx bx, al ; 0f b6 d8 9640 9932 mov dx, strict word 00027h ; ba 27 00 9641 9933 mov ax, cx ; 89 c8 9642 call 0160eh ; e8 f0 a89643 jmp short 06 d33h ; eb 139644 push 00 8f2h ; 68 f2 089934 call 0160eh ; e8 5b a6 9935 jmp short 06fc8h ; eb 13 9936 push 00924h ; 68 24 09 9645 9937 push strict byte 00007h ; 6a 07 9646 call 018e9h ; e8 c1 ab9938 call 018e9h ; e8 2c a9 9647 9939 add sp, strict byte 00004h ; 83 c4 04 9648 9940 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9649 9941 mov byte [bp+015h], 001h ; c6 46 15 01 9650 9942 mov ax, strict word 00047h ; b8 47 00 9651 call 06 8c1h ; e8 88 fb9943 call 06b56h ; e8 88 fb 9652 9944 leave ; c9 9653 9945 pop si ; 5e 9654 9946 retn ; c3 9655 _int17_function: ; 0xf6 d3cLB 0xb19947 _int17_function: ; 0xf6fd1 LB 0xb1 9656 9948 push si ; 56 9657 9949 enter 00002h, 000h ; c8 02 00 00 … … 9661 9953 add dx, strict byte 00008h ; 83 c2 08 9662 9954 mov ax, strict word 00040h ; b8 40 00 9663 call 0161ch ; e8 cc a89955 call 0161ch ; e8 37 a6 9664 9956 mov bx, ax ; 89 c3 9665 9957 mov si, ax ; 89 c6 9666 9958 cmp byte [bp+015h], 003h ; 80 7e 15 03 9667 jnc near 0 6de6h ; 0f 83 8a 009959 jnc near 0707bh ; 0f 83 8a 00 9668 9960 mov ax, word [bp+010h] ; 8b 46 10 9669 9961 cmp ax, strict word 00003h ; 3d 03 00 9670 jnc near 0 6de6h ; 0f 83 80 009962 jnc near 0707bh ; 0f 83 80 00 9671 9963 test bx, bx ; 85 db 9672 jbe near 0 6de6h ; 0f 86 7a 009964 jbe near 0707bh ; 0f 86 7a 00 9673 9965 mov dx, ax ; 89 c2 9674 9966 add dx, strict byte 00078h ; 83 c2 78 9675 9967 mov ax, strict word 00040h ; b8 40 00 9676 call 01600h ; e8 89 a89968 call 01600h ; e8 f4 a5 9677 9969 movzx cx, al ; 0f b6 c8 9678 9970 sal cx, 008h ; c1 e1 08 9679 9971 cmp byte [bp+015h], 000h ; 80 7e 15 00 9680 jne short 0 6db0h ; 75 2d9972 jne short 07045h ; 75 2d 9681 9973 mov al, byte [bp+014h] ; 8a 46 14 9682 9974 mov dx, bx ; 89 da … … 9698 9990 ; sub ah, ah ; 2a e4 9699 9991 test AL, strict byte 040h ; a8 40 9700 je short 0 6db0h ; 74 079992 je short 07045h ; 74 07 9701 9993 test cx, cx ; 85 c9 9702 je short 0 6db0h ; 74 039994 je short 07045h ; 74 03 9703 9995 dec cx ; 49 9704 jmp short 0 6d9fh ; eb ef9996 jmp short 07034h ; eb ef 9705 9997 cmp byte [bp+015h], 001h ; 80 7e 15 01 9706 jne short 0 6dcch ; 75 169998 jne short 07061h ; 75 16 9707 9999 lea dx, [si+002h] ; 8d 54 02 9708 10000 in AL, DX ; ec … … 9723 10015 mov byte [bp+015h], al ; 88 46 15 9724 10016 test cx, cx ; 85 c9 9725 jne short 0 6ddfh ; 75 0410017 jne short 07074h ; 75 04 9726 10018 or byte [bp+015h], 001h ; 80 4e 15 01 9727 10019 and byte [bp+01eh], 0feh ; 80 66 1e fe … … 9733 10025 pop si ; 5e 9734 10026 retn ; c3 9735 wait_: ; 0xf 6dedLB 0xad10027 wait_: ; 0xf7082 LB 0xad 9736 10028 push bx ; 53 9737 10029 push cx ; 51 … … 9749 10041 mov dx, 0046ch ; ba 6c 04 9750 10042 xor ax, ax ; 31 c0 9751 call 01638h ; e8 2a a810043 call 01638h ; e8 95 a5 9752 10044 mov word [bp-006h], ax ; 89 46 fa 9753 10045 mov bx, dx ; 89 d3 … … 9755 10047 mov dx, 0046ch ; ba 6c 04 9756 10048 xor ax, ax ; 31 c0 9757 call 01638h ; e8 1c a810049 call 01638h ; e8 87 a5 9758 10050 mov word [bp-00ah], ax ; 89 46 f6 9759 10051 mov di, dx ; 89 d7 9760 10052 cmp dx, bx ; 39 da 9761 jnbe short 0 6e2ch ; 77 079762 jne short 0 6e33h ; 75 0c10053 jnbe short 070c1h ; 77 07 10054 jne short 070c8h ; 75 0c 9763 10055 cmp ax, word [bp-006h] ; 3b 46 fa 9764 jbe short 0 6e33h ; 76 0710056 jbe short 070c8h ; 76 07 9765 10057 sub ax, word [bp-006h] ; 2b 46 fa 9766 10058 sbb dx, bx ; 19 da 9767 jmp short 0 6e3eh ; eb 0b10059 jmp short 070d3h ; eb 0b 9768 10060 cmp dx, bx ; 39 da 9769 jc short 0 6e3eh ; 72 079770 jne short 0 6e42h ; 75 0910061 jc short 070d3h ; 72 07 10062 jne short 070d7h ; 75 09 9771 10063 cmp ax, word [bp-006h] ; 3b 46 fa 9772 jnc short 0 6e42h ; 73 0410064 jnc short 070d7h ; 73 04 9773 10065 sub si, ax ; 29 c6 9774 10066 sbb cx, dx ; 19 d1 … … 9778 10070 mov ax, 00100h ; b8 00 01 9779 10071 int 016h ; cd 16 9780 je near 0 6e58h ; 0f 84 05 0010072 je near 070edh ; 0f 84 05 00 9781 10073 mov AL, strict byte 001h ; b0 01 9782 jmp near 0 6e5ah ; e9 02 0010074 jmp near 070efh ; e9 02 00 9783 10075 db 032h, 0c0h 9784 10076 ; xor al, al ; 32 c0 9785 10077 test al, al ; 84 c0 9786 je short 0 6e82h ; 74 2410078 je short 07117h ; 74 24 9787 10079 db 033h, 0c0h 9788 10080 ; xor ax, ax ; 33 c0 … … 9793 10085 movzx ax, dl ; 0f b6 c2 9794 10086 push ax ; 50 9795 push 009 14h ; 68 140910087 push 00946h ; 68 46 09 9796 10088 push strict byte 00004h ; 6a 04 9797 call 018e9h ; e8 74 aa10089 call 018e9h ; e8 df a7 9798 10090 add sp, strict byte 00006h ; 83 c4 06 9799 10091 cmp byte [bp-004h], 000h ; 80 7e fc 00 9800 je short 0 6e82h ; 74 0410092 je short 07117h ; 74 04 9801 10093 mov al, dl ; 88 d0 9802 jmp short 0 6e94h ; eb 1210094 jmp short 07129h ; eb 12 9803 10095 test cx, cx ; 85 c9 9804 jnle short 0 6e13h ; 7f 8d9805 jne short 0 6e8ch ; 75 0410096 jnle short 070a8h ; 7f 8d 10097 jne short 07121h ; 75 04 9806 10098 test si, si ; 85 f6 9807 jnbe short 0 6e13h ; 77 8710099 jnbe short 070a8h ; 77 87 9808 10100 mov ax, word [bp-008h] ; 8b 46 f8 9809 10101 push ax ; 50 … … 9816 10108 pop bx ; 5b 9817 10109 retn ; c3 9818 read_logo_byte_: ; 0xf 6e9aLB 0x1310110 read_logo_byte_: ; 0xf712f LB 0x13 9819 10111 push dx ; 52 9820 10112 push bp ; 55 … … 9830 10122 pop dx ; 5a 9831 10123 retn ; c3 9832 read_logo_word_: ; 0xf 6eadLB 0x1110124 read_logo_word_: ; 0xf7142 LB 0x11 9833 10125 push dx ; 52 9834 10126 push bp ; 55 … … 9842 10134 pop dx ; 5a 9843 10135 retn ; c3 9844 print_detected_harddisks_: ; 0xf 6ebeLB 0x12c10136 print_detected_harddisks_: ; 0xf7153 LB 0x12c 9845 10137 push bx ; 53 9846 10138 push cx ; 51 … … 9851 10143 mov dx, strict word 0000eh ; ba 0e 00 9852 10144 mov ax, strict word 00040h ; b8 40 00 9853 call 0161ch ; e8 4c a710145 call 0161ch ; e8 b7 a4 9854 10146 mov si, ax ; 89 c6 9855 10147 mov byte [bp-002h], 000h ; c6 46 fe 00 … … 9857 10149 xor ch, ch ; 30 ed 9858 10150 mov dx, 002c0h ; ba c0 02 9859 call 01600h ; e8 20 a710151 call 01600h ; e8 8b a4 9860 10152 mov byte [bp-004h], al ; 88 46 fc 9861 10153 xor bl, bl ; 30 db 9862 10154 cmp bl, byte [bp-004h] ; 3a 5e fc 9863 jnc near 0 6fbfh ; 0f 83 d3 0010155 jnc near 07254h ; 0f 83 d3 00 9864 10156 movzx dx, bl ; 0f b6 d3 9865 10157 add dx, 002c1h ; 81 c2 c1 02 9866 10158 mov ax, si ; 89 f0 9867 call 01600h ; e8 08 a710159 call 01600h ; e8 73 a4 9868 10160 mov bh, al ; 88 c7 9869 10161 cmp AL, strict byte 00ch ; 3c 0c 9870 jc short 0 6f22h ; 72 2410162 jc short 071b7h ; 72 24 9871 10163 test cl, cl ; 84 c9 9872 jne short 0 6f0fh ; 75 0d9873 push 009 25h ; 68 250910164 jne short 071a4h ; 75 0d 10165 push 00957h ; 68 57 09 9874 10166 push strict byte 00002h ; 6a 02 9875 call 018e9h ; e8 df a910167 call 018e9h ; e8 4a a7 9876 10168 add sp, strict byte 00004h ; 83 c4 04 9877 10169 mov CL, strict byte 001h ; b1 01 … … 9879 10171 inc ax ; 40 9880 10172 push ax ; 50 9881 push 009 39h ; 68 390910173 push 0096bh ; 68 6b 09 9882 10174 push strict byte 00002h ; 6a 02 9883 call 018e9h ; e8 cd a910175 call 018e9h ; e8 38 a7 9884 10176 add sp, strict byte 00006h ; 83 c4 06 9885 jmp near 0 6fbah ; e9 98 0010177 jmp near 0724fh ; e9 98 00 9886 10178 cmp AL, strict byte 008h ; 3c 08 9887 jc short 0 6f39h ; 72 1310179 jc short 071ceh ; 72 13 9888 10180 test ch, ch ; 84 ed 9889 jne short 0 6f37h ; 75 0d9890 push 009 4ch ; 68 4c0910181 jne short 071cch ; 75 0d 10182 push 0097eh ; 68 7e 09 9891 10183 push strict byte 00002h ; 6a 02 9892 call 018e9h ; e8 b7 a910184 call 018e9h ; e8 22 a7 9893 10185 add sp, strict byte 00004h ; 83 c4 04 9894 10186 mov CH, strict byte 001h ; b5 01 9895 jmp short 0 6f0fh ; eb d610187 jmp short 071a4h ; eb d6 9896 10188 cmp AL, strict byte 004h ; 3c 04 9897 jnc short 0 6f54h ; 73 1710189 jnc short 071e9h ; 73 17 9898 10190 cmp byte [bp-002h], 000h ; 80 7e fe 00 9899 jne short 0 6f54h ; 75 119900 push 009 60h ; 68 600910191 jne short 071e9h ; 75 11 10192 push 00992h ; 68 92 09 9901 10193 push strict byte 00002h ; 6a 02 9902 call 018e9h ; e8 9e a910194 call 018e9h ; e8 09 a7 9903 10195 add sp, strict byte 00004h ; 83 c4 04 9904 10196 mov byte [bp-002h], 001h ; c6 46 fe 01 9905 jmp short 0 6f6ah ; eb 1610197 jmp short 071ffh ; eb 16 9906 10198 cmp bh, 004h ; 80 ff 04 9907 jc short 0 6f6ah ; 72 1110199 jc short 071ffh ; 72 11 9908 10200 test cl, cl ; 84 c9 9909 jne short 0 6f6ah ; 75 0d9910 push 009 25h ; 68 250910201 jne short 071ffh ; 75 0d 10202 push 00957h ; 68 57 09 9911 10203 push strict byte 00002h ; 6a 02 9912 call 018e9h ; e8 84 a910204 call 018e9h ; e8 ef a6 9913 10205 add sp, strict byte 00004h ; 83 c4 04 9914 10206 mov CL, strict byte 001h ; b1 01 … … 9916 10208 inc ax ; 40 9917 10209 push ax ; 50 9918 push 009 71h ; 68 710910210 push 009a3h ; 68 a3 09 9919 10211 push strict byte 00002h ; 6a 02 9920 call 018e9h ; e8 72 a910212 call 018e9h ; e8 dd a6 9921 10213 add sp, strict byte 00006h ; 83 c4 06 9922 10214 cmp bh, 004h ; 80 ff 04 9923 jc short 0 6f82h ; 72 0310215 jc short 07217h ; 72 03 9924 10216 sub bh, 004h ; 80 ef 04 9925 10217 movzx ax, bh ; 0f b6 c7 … … 9929 10221 sar ax, 1 ; d1 f8 9930 10222 test ax, ax ; 85 c0 9931 je short 0 6f93h ; 74 059932 push 009 7bh ; 68 7b099933 jmp short 0 6f96h ; eb 039934 push 009 86h ; 68 860910223 je short 07228h ; 74 05 10224 push 009adh ; 68 ad 09 10225 jmp short 0722bh ; eb 03 10226 push 009b8h ; 68 b8 09 9935 10227 push strict byte 00002h ; 6a 02 9936 call 018e9h ; e8 4e a910228 call 018e9h ; e8 b9 a6 9937 10229 add sp, strict byte 00004h ; 83 c4 04 9938 10230 movzx ax, bh ; 0f b6 c7 … … 9941 10233 idiv di ; f7 ff 9942 10234 test dx, dx ; 85 d2 9943 je short 0 6fb0h ; 74 059944 push 009 8fh ; 68 8f099945 jmp short 0 6fb3h ; eb 039946 push 009 95h ; 68 950910235 je short 07245h ; 74 05 10236 push 009c1h ; 68 c1 09 10237 jmp short 07248h ; eb 03 10238 push 009c7h ; 68 c7 09 9947 10239 push di ; 57 9948 call 018e9h ; e8 32 a910240 call 018e9h ; e8 9d a6 9949 10241 add sp, strict byte 00004h ; 83 c4 04 9950 10242 db 0feh, 0c3h 9951 10243 ; inc bl ; fe c3 9952 jmp near 0 6ee5h ; e9 26 ff10244 jmp near 0717ah ; e9 26 ff 9953 10245 cmp byte [bp-002h], 000h ; 80 7e fe 00 9954 jne short 0 6fd8h ; 75 1310246 jne short 0726dh ; 75 13 9955 10247 test cl, cl ; 84 c9 9956 jne short 0 6fd8h ; 75 0f10248 jne short 0726dh ; 75 0f 9957 10249 test ch, ch ; 84 ed 9958 jne short 0 6fd8h ; 75 0b9959 push 009 9ch ; 68 9c0910250 jne short 0726dh ; 75 0b 10251 push 009ceh ; 68 ce 09 9960 10252 push strict byte 00002h ; 6a 02 9961 call 018e9h ; e8 14 a910253 call 018e9h ; e8 7f a6 9962 10254 add sp, strict byte 00004h ; 83 c4 04 9963 push 009 b0h ; 68 b00910255 push 009e2h ; 68 e2 09 9964 10256 push strict byte 00002h ; 6a 02 9965 call 018e9h ; e8 09 a910257 call 018e9h ; e8 74 a6 9966 10258 add sp, strict byte 00004h ; 83 c4 04 9967 10259 leave ; c9 … … 9972 10264 pop bx ; 5b 9973 10265 retn ; c3 9974 get_boot_drive_: ; 0xf 6feaLB 0x2510266 get_boot_drive_: ; 0xf727f LB 0x25 9975 10267 push bx ; 53 9976 10268 push dx ; 52 … … 9980 10272 mov dx, strict word 0000eh ; ba 0e 00 9981 10273 mov ax, strict word 00040h ; b8 40 00 9982 call 0161ch ; e8 22 a610274 call 0161ch ; e8 8d a3 9983 10275 mov dx, 002c0h ; ba c0 02 9984 call 01600h ; e8 00 a610276 call 01600h ; e8 6b a3 9985 10277 sub bl, 002h ; 80 eb 02 9986 10278 cmp bl, al ; 38 c3 9987 jc short 07 009h ; 72 0210279 jc short 0729eh ; 72 02 9988 10280 mov BL, strict byte 0ffh ; b3 ff 9989 10281 mov al, bl ; 88 d8 … … 9992 10284 pop bx ; 5b 9993 10285 retn ; c3 9994 show_logo_: ; 0xf7 00fLB 0x20710286 show_logo_: ; 0xf72a4 LB 0x207 9995 10287 push bx ; 53 9996 10288 push cx ; 51 … … 10001 10293 mov dx, strict word 0000eh ; ba 0e 00 10002 10294 mov ax, strict word 00040h ; b8 40 00 10003 call 0161ch ; e8 fb a510295 call 0161ch ; e8 66 a3 10004 10296 mov si, ax ; 89 c6 10005 10297 xor cl, cl ; 30 c9 … … 10012 10304 out strict byte 040h, AL ; e6 40 10013 10305 movzx ax, bl ; 0f b6 c3 10014 call 0 6eadh ; e8 74 fe10306 call 07142h ; e8 74 fe 10015 10307 cmp ax, 066bbh ; 3d bb 66 10016 jne near 07 0fbh ; 0f 85 bb 0010308 jne near 07390h ; 0f 85 bb 00 10017 10309 mov al, bl ; 88 d8 10018 10310 add AL, strict byte 004h ; 04 04 10019 10311 xor ah, ah ; 30 e4 10020 call 0 6e9ah ; e8 51 fe10312 call 0712fh ; e8 51 fe 10021 10313 mov bh, al ; 88 c7 10022 10314 mov byte [bp-006h], al ; 88 46 fa … … 10024 10316 add AL, strict byte 005h ; 04 05 10025 10317 xor ah, ah ; 30 e4 10026 call 0 6e9ah ; e8 43 fe10318 call 0712fh ; e8 43 fe 10027 10319 mov ch, al ; 88 c5 10028 10320 mov byte [bp-008h], al ; 88 46 f8 … … 10030 10322 add AL, strict byte 002h ; 04 02 10031 10323 xor ah, ah ; 30 e4 10032 call 0 6eadh ; e8 48 fe10324 call 07142h ; e8 48 fe 10033 10325 mov dx, ax ; 89 c2 10034 10326 mov di, ax ; 89 c7 10035 10327 add bl, 006h ; 80 c3 06 10036 10328 movzx ax, bl ; 0f b6 c3 10037 call 0 6e9ah ; e8 28 fe10329 call 0712fh ; e8 28 fe 10038 10330 mov byte [bp-004h], al ; 88 46 fc 10039 10331 test bh, bh ; 84 ff 10040 jne short 07 083h ; 75 0a10332 jne short 07318h ; 75 0a 10041 10333 test ch, ch ; 84 ed 10042 jne short 07 083h ; 75 0610334 jne short 07318h ; 75 06 10043 10335 test dx, dx ; 85 d2 10044 je near 07 0fbh ; 0f 84 78 0010336 je near 07390h ; 0f 84 78 00 10045 10337 mov bx, 00142h ; bb 42 01 10046 10338 mov ax, 04f02h ; b8 02 4f 10047 10339 int 010h ; cd 10 10048 10340 cmp byte [bp-006h], 000h ; 80 7e fa 00 10049 je short 07 0b4h ; 74 2310341 je short 07349h ; 74 23 10050 10342 xor bx, bx ; 31 db 10051 jmp short 07 09bh ; eb 0610343 jmp short 07330h ; eb 06 10052 10344 inc bx ; 43 10053 10345 cmp bx, strict byte 00010h ; 83 fb 10 10054 jnbe short 07 0bbh ; 77 2010346 jnbe short 07350h ; 77 20 10055 10347 mov ax, bx ; 89 d8 10056 10348 or ah, 002h ; 80 cc 02 … … 10059 10351 xor dx, dx ; 31 d2 10060 10352 mov ax, strict word 00001h ; b8 01 00 10061 call 0 6dedh ; e8 41 fd10353 call 07082h ; e8 41 fd 10062 10354 cmp AL, strict byte 086h ; 3c 86 10063 jne short 07 095h ; 75 e510355 jne short 0732ah ; 75 e5 10064 10356 mov CL, strict byte 001h ; b1 01 10065 jmp short 07 0bbh ; eb 0710357 jmp short 07350h ; eb 07 10066 10358 mov ax, 00210h ; b8 10 02 10067 10359 mov dx, 003b8h ; ba b8 03 10068 10360 out DX, ax ; ef 10069 10361 test cl, cl ; 84 c9 10070 jne short 07 0d0h ; 75 1110362 jne short 07365h ; 75 11 10071 10363 mov ax, di ; 89 f8 10072 10364 shr ax, 004h ; c1 e8 04 10073 10365 mov dx, strict word 00001h ; ba 01 00 10074 call 0 6dedh ; e8 23 fd10366 call 07082h ; e8 23 fd 10075 10367 cmp AL, strict byte 086h ; 3c 86 10076 jne short 07 0d0h ; 75 0210368 jne short 07365h ; 75 02 10077 10369 mov CL, strict byte 001h ; b1 01 10078 10370 cmp byte [bp-008h], 000h ; 80 7e f8 00 10079 je short 07 0fbh ; 74 2510371 je short 07390h ; 74 25 10080 10372 test cl, cl ; 84 c9 10081 jne short 07 0fbh ; 75 2110373 jne short 07390h ; 75 21 10082 10374 mov bx, strict word 00010h ; bb 10 00 10083 jmp short 07 0e4h ; eb 0510375 jmp short 07379h ; eb 05 10084 10376 dec bx ; 4b 10085 10377 test bx, bx ; 85 db 10086 jbe short 07 0fbh ; 76 1710378 jbe short 07390h ; 76 17 10087 10379 mov ax, bx ; 89 d8 10088 10380 or ah, 002h ; 80 cc 02 … … 10091 10383 xor dx, dx ; 31 d2 10092 10384 mov ax, strict word 00001h ; b8 01 00 10093 call 0 6dedh ; e8 f8 fc10385 call 07082h ; e8 f8 fc 10094 10386 cmp AL, strict byte 086h ; 3c 86 10095 jne short 07 0dfh ; 75 e610387 jne short 07374h ; 75 e6 10096 10388 mov CL, strict byte 001h ; b1 01 10097 10389 xor bx, bx ; 31 db 10098 10390 mov dx, 00339h ; ba 39 03 10099 10391 mov ax, si ; 89 f0 10100 call 0160eh ; e8 09 a510392 call 0160eh ; e8 74 a2 10101 10393 mov AL, strict byte 003h ; b0 03 10102 10394 mov AH, strict byte 000h ; b4 00 10103 10395 int 010h ; cd 10 10104 10396 cmp byte [bp-004h], 000h ; 80 7e fc 00 10105 je near 07 1fah ; 0f 84 e7 0010397 je near 0748fh ; 0f 84 e7 00 10106 10398 cmp byte [bp-006h], 000h ; 80 7e fa 00 10107 jne short 07 147h ; 75 2e10399 jne short 073dch ; 75 2e 10108 10400 cmp byte [bp-008h], 000h ; 80 7e f8 00 10109 jne short 07 147h ; 75 2810401 jne short 073dch ; 75 28 10110 10402 test di, di ; 85 ff 10111 jne short 07 147h ; 75 2410403 jne short 073dch ; 75 24 10112 10404 cmp byte [bp-004h], 002h ; 80 7e fc 02 10113 jne short 07 134h ; 75 0b10114 push 009 b2h ; 68 b20910405 jne short 073c9h ; 75 0b 10406 push 009e4h ; 68 e4 09 10115 10407 push strict byte 00002h ; 6a 02 10116 call 018e9h ; e8 b8 a710408 call 018e9h ; e8 23 a5 10117 10409 add sp, strict byte 00004h ; 83 c4 04 10118 10410 test cl, cl ; 84 c9 10119 jne short 07 147h ; 75 0f10411 jne short 073dch ; 75 0f 10120 10412 mov dx, strict word 00001h ; ba 01 00 10121 10413 mov ax, 000c0h ; b8 c0 00 10122 call 0 6dedh ; e8 ac fc10414 call 07082h ; e8 ac fc 10123 10415 cmp AL, strict byte 086h ; 3c 86 10124 jne short 07 147h ; 75 0210416 jne short 073dch ; 75 02 10125 10417 mov CL, strict byte 001h ; b1 01 10126 10418 test cl, cl ; 84 c9 10127 je near 07 1fah ; 0f 84 ad 0010419 je near 0748fh ; 0f 84 ad 00 10128 10420 mov byte [bp-002h], 000h ; c6 46 fe 00 10129 10421 mov ax, 00100h ; b8 00 01 … … 10142 10434 ; xor dx, dx ; 33 d2 10143 10435 int 010h ; cd 10 10144 push 00 9d4h ; 68 d4 0910436 push 00a06h ; 68 06 0a 10145 10437 push strict byte 00002h ; 6a 02 10146 call 018e9h ; e8 73 a710438 call 018e9h ; e8 de a4 10147 10439 add sp, strict byte 00004h ; 83 c4 04 10148 call 0 6ebeh ; e8 42 fd10149 push 00a 18h ; 68 180a10440 call 07153h ; e8 42 fd 10441 push 00a4ah ; 68 4a 0a 10150 10442 push strict byte 00002h ; 6a 02 10151 call 018e9h ; e8 65 a710443 call 018e9h ; e8 d0 a4 10152 10444 add sp, strict byte 00004h ; 83 c4 04 10153 10445 mov dx, strict word 00001h ; ba 01 00 10154 10446 mov ax, strict word 00040h ; b8 40 00 10155 call 0 6dedh ; e8 5d fc10447 call 07082h ; e8 5d fc 10156 10448 mov bl, al ; 88 c3 10157 10449 test al, al ; 84 c0 10158 je short 07 187h ; 74 f110450 je short 0741ch ; 74 f1 10159 10451 cmp AL, strict byte 030h ; 3c 30 10160 je short 07 1e8h ; 74 4e10452 je short 0747dh ; 74 4e 10161 10453 cmp bl, 002h ; 80 fb 02 10162 jc short 07 1c1h ; 72 2210454 jc short 07456h ; 72 22 10163 10455 cmp bl, 009h ; 80 fb 09 10164 jnbe short 07 1c1h ; 77 1d10456 jnbe short 07456h ; 77 1d 10165 10457 movzx ax, bl ; 0f b6 c3 10166 call 0 6feah ; e8 40 fe10458 call 0727fh ; e8 40 fe 10167 10459 cmp AL, strict byte 0ffh ; 3c ff 10168 jne short 07 1b0h ; 75 0210169 jmp short 07 187h ; eb d710460 jne short 07445h ; 75 02 10461 jmp short 0741ch ; eb d7 10170 10462 movzx bx, al ; 0f b6 d8 10171 10463 mov dx, 00338h ; ba 38 03 10172 10464 mov ax, si ; 89 f0 10173 call 0160eh ; e8 53 a410465 call 0160eh ; e8 be a1 10174 10466 mov byte [bp-002h], 002h ; c6 46 fe 02 10175 jmp short 07 1e8h ; eb 2710467 jmp short 0747dh ; eb 27 10176 10468 cmp bl, 02eh ; 80 fb 2e 10177 je short 07 1d6h ; 74 1010469 je short 0746bh ; 74 10 10178 10470 cmp bl, 026h ; 80 fb 26 10179 je short 07 1dch ; 74 1110471 je short 07471h ; 74 11 10180 10472 cmp bl, 021h ; 80 fb 21 10181 jne short 07 1e2h ; 75 1210473 jne short 07477h ; 75 12 10182 10474 mov byte [bp-002h], 001h ; c6 46 fe 01 10183 jmp short 07 1e8h ; eb 1210475 jmp short 0747dh ; eb 12 10184 10476 mov byte [bp-002h], 003h ; c6 46 fe 03 10185 jmp short 07 1e8h ; eb 0c10477 jmp short 0747dh ; eb 0c 10186 10478 mov byte [bp-002h], 004h ; c6 46 fe 04 10187 jmp short 07 1e8h ; eb 0610479 jmp short 0747dh ; eb 06 10188 10480 cmp byte [bp-002h], 000h ; 80 7e fe 00 10189 je short 07 187h ; 74 9f10481 je short 0741ch ; 74 9f 10190 10482 movzx bx, byte [bp-002h] ; 0f b6 5e fe 10191 10483 mov dx, 00339h ; ba 39 03 10192 10484 mov ax, si ; 89 f0 10193 call 0160eh ; e8 1a a410485 call 0160eh ; e8 85 a1 10194 10486 mov AL, strict byte 003h ; b0 03 10195 10487 mov AH, strict byte 000h ; b4 00 … … 10204 10496 push DS ; 1e 10205 10497 mov ds, ax ; 8e d8 10206 call 0edbfh ; e8 b3 7b10498 call 0edbfh ; e8 1e 79 10207 10499 pop DS ; 1f 10208 10500 popad ; 66 61 … … 10214 10506 pop bx ; 5b 10215 10507 retn ; c3 10216 delay_boot_: ; 0xf7 216LB 0x6410508 delay_boot_: ; 0xf74ab LB 0x64 10217 10509 push bx ; 53 10218 10510 push dx ; 52 … … 10221 10513 mov dx, ax ; 89 c2 10222 10514 test ax, ax ; 85 c0 10223 je short 07 276h ; 74 5510515 je short 0750bh ; 74 55 10224 10516 mov AL, strict byte 034h ; b0 34 10225 10517 out strict byte 043h, AL ; e6 43 … … 10229 10521 out strict byte 040h, AL ; e6 40 10230 10522 push dx ; 52 10231 push 00a 62h ; 68 620a10523 push 00a94h ; 68 94 0a 10232 10524 push strict byte 00002h ; 6a 02 10233 call 018e9h ; e8 b3 a610525 call 018e9h ; e8 1e a4 10234 10526 add sp, strict byte 00006h ; 83 c4 06 10235 10527 mov bx, dx ; 89 d3 10236 10528 test bx, bx ; 85 db 10237 jbe short 07 256h ; 76 1710529 jbe short 074ebh ; 76 17 10238 10530 push bx ; 53 10239 push 00a 80h ; 68 800a10531 push 00ab2h ; 68 b2 0a 10240 10532 push strict byte 00002h ; 6a 02 10241 call 018e9h ; e8 a1 a610533 call 018e9h ; e8 0c a4 10242 10534 add sp, strict byte 00006h ; 83 c4 06 10243 10535 xor dx, dx ; 31 d2 10244 10536 mov ax, strict word 00040h ; b8 40 00 10245 call 0 6dedh ; e8 9a fb10537 call 07082h ; e8 9a fb 10246 10538 dec bx ; 4b 10247 jmp short 07 23bh ; eb e510248 push 009 b0h ; 68 b00910539 jmp short 074d0h ; eb e5 10540 push 009e2h ; 68 e2 09 10249 10541 push strict byte 00002h ; 6a 02 10250 call 018e9h ; e8 8b a610542 call 018e9h ; e8 f6 a3 10251 10543 add sp, strict byte 00004h ; 83 c4 04 10252 10544 mov AL, strict byte 034h ; b0 34 … … 10259 10551 push DS ; 1e 10260 10552 mov ds, ax ; 8e d8 10261 call 0edbfh ; e8 4c 7b10553 call 0edbfh ; e8 b7 78 10262 10554 pop DS ; 1f 10263 10555 popad ; 66 61 … … 10266 10558 pop bx ; 5b 10267 10559 retn ; c3 10268 scsi_cmd_data_in_: ; 0xf7 27aLB 0x6310560 scsi_cmd_data_in_: ; 0xf750f LB 0x63 10269 10561 push si ; 56 10270 10562 push di ; 57 … … 10278 10570 ; sub ah, ah ; 2a e4 10279 10571 test AL, strict byte 001h ; a8 01 10280 jne short 07 288h ; 75 f710572 jne short 0751dh ; 75 f7 10281 10573 mov al, byte [bp-002h] ; 8a 46 fe 10282 10574 out DX, AL ; ee … … 10293 10585 movzx ax, byte [bp+008h] ; 0f b6 46 08 10294 10586 cmp bx, ax ; 39 c3 10295 jnc short 07 2c1h ; 73 1010587 jnc short 07556h ; 73 10 10296 10588 mov es, cx ; 8e c1 10297 10589 mov di, word [bp-004h] ; 8b 7e fc … … 10301 10593 out DX, AL ; ee 10302 10594 inc bx ; 43 10303 jmp short 07 2a9h ; eb e810595 jmp short 0753eh ; eb e8 10304 10596 mov dx, si ; 89 f2 10305 10597 in AL, DX ; ec … … 10307 10599 ; sub ah, ah ; 2a e4 10308 10600 test AL, strict byte 001h ; a8 01 10309 jne short 07 2c1h ; 75 f710601 jne short 07556h ; 75 f7 10310 10602 lea dx, [si+001h] ; 8d 54 01 10311 10603 mov cx, word [bp+00eh] ; 8b 4e 0e … … 10317 10609 pop si ; 5e 10318 10610 retn 00008h ; c2 08 00 10319 scsi_cmd_data_out_: ; 0xf7 2ddLB 0x6410611 scsi_cmd_data_out_: ; 0xf7572 LB 0x64 10320 10612 push si ; 56 10321 10613 push di ; 57 … … 10329 10621 ; sub ah, ah ; 2a e4 10330 10622 test AL, strict byte 001h ; a8 01 10331 jne short 07 2ebh ; 75 f710623 jne short 07580h ; 75 f7 10332 10624 mov al, byte [bp-002h] ; 8a 46 fe 10333 10625 out DX, AL ; ee … … 10344 10636 movzx ax, byte [bp+008h] ; 0f b6 46 08 10345 10637 cmp bx, ax ; 39 c3 10346 jnc short 07 324h ; 73 1010638 jnc short 075b9h ; 73 10 10347 10639 mov es, cx ; 8e c1 10348 10640 mov si, word [bp-004h] ; 8b 76 fc … … 10352 10644 out DX, AL ; ee 10353 10645 inc bx ; 43 10354 jmp short 07 30ch ; eb e810646 jmp short 075a1h ; eb e8 10355 10647 lea dx, [di+001h] ; 8d 55 01 10356 10648 mov cx, word [bp+00eh] ; 8b 4e 0e … … 10363 10655 ; sub ah, ah ; 2a e4 10364 10656 test AL, strict byte 001h ; a8 01 10365 jne short 07 330h ; 75 f710657 jne short 075c5h ; 75 f7 10366 10658 xor ax, ax ; 31 c0 10367 10659 leave ; c9 … … 10369 10661 pop si ; 5e 10370 10662 retn 00008h ; c2 08 00 10371 @scsi_read_sectors: ; 0xf7 341LB 0xa210663 @scsi_read_sectors: ; 0xf75d6 LB 0xa2 10372 10664 push si ; 56 10373 10665 push di ; 57 … … 10378 10670 sub bl, 008h ; 80 eb 08 10379 10671 cmp bl, 004h ; 80 fb 04 10380 jbe short 07 368h ; 76 0f10672 jbe short 075fdh ; 76 0f 10381 10673 movzx ax, bl ; 0f b6 c3 10382 10674 push ax ; 50 10383 push 00a 84h ; 68 840a10675 push 00ab6h ; 68 b6 0a 10384 10676 push strict byte 00007h ; 6a 07 10385 call 018e9h ; e8 84 a510677 call 018e9h ; e8 ef a2 10386 10678 add sp, strict byte 00006h ; 83 c4 06 10387 10679 mov es, [bp+00ah] ; 8e 46 0a … … 10415 10707 mov cx, ss ; 8c d1 10416 10708 lea bx, [bp-00ch] ; 8d 5e f4 10417 call 07 27ah ; e8 ba fe10709 call 0750fh ; e8 ba fe 10418 10710 mov ah, al ; 88 c4 10419 10711 test al, al ; 84 c0 10420 jne short 07 3dah ; 75 1410712 jne short 0766fh ; 75 14 10421 10713 mov es, [bp+00ah] ; 8e 46 0a 10422 10714 mov word [es:si+014h], di ; 26 89 7c 14 … … 10429 10721 pop si ; 5e 10430 10722 retn 00004h ; c2 04 00 10431 @scsi_write_sectors: ; 0xf7 3e3LB 0xa210723 @scsi_write_sectors: ; 0xf7678 LB 0xa2 10432 10724 push si ; 56 10433 10725 push di ; 57 … … 10438 10730 sub bl, 008h ; 80 eb 08 10439 10731 cmp bl, 004h ; 80 fb 04 10440 jbe short 07 40ah ; 76 0f10732 jbe short 0769fh ; 76 0f 10441 10733 movzx ax, bl ; 0f b6 c3 10442 10734 push ax ; 50 10443 push 00a b2h ; 68 b20a10735 push 00ae4h ; 68 e4 0a 10444 10736 push strict byte 00007h ; 6a 07 10445 call 018e9h ; e8 e2 a410737 call 018e9h ; e8 4d a2 10446 10738 add sp, strict byte 00006h ; 83 c4 06 10447 10739 mov es, [bp+00ah] ; 8e 46 0a … … 10475 10767 mov cx, ss ; 8c d1 10476 10768 lea bx, [bp-00ch] ; 8d 5e f4 10477 call 07 2ddh ; e8 7b fe10769 call 07572h ; e8 7b fe 10478 10770 mov ah, al ; 88 c4 10479 10771 test al, al ; 84 c0 10480 jne short 07 47ch ; 75 1410772 jne short 07711h ; 75 14 10481 10773 mov es, [bp+00ah] ; 8e 46 0a 10482 10774 mov word [es:si+014h], di ; 26 89 7c 14 … … 10489 10781 pop si ; 5e 10490 10782 retn 00004h ; c2 04 00 10491 scsi_enumerate_attached_devices_: ; 0xf7 485LB 0x28510783 scsi_enumerate_attached_devices_: ; 0xf771a LB 0x285 10492 10784 push bx ; 53 10493 10785 push cx ; 51 … … 10499 10791 mov dx, strict word 0000eh ; ba 0e 00 10500 10792 mov ax, strict word 00040h ; b8 40 00 10501 call 0161ch ; e8 84 a110793 call 0161ch ; e8 ef 9e 10502 10794 mov si, 00122h ; be 22 01 10503 10795 mov word [bp-006h], ax ; 89 46 fa 10504 10796 mov word [bp-008h], strict word 00000h ; c7 46 f8 00 00 10505 jmp near 07 6b2h ; e9 0c 0210797 jmp near 07947h ; e9 0c 02 10506 10798 mov es, [bp-006h] ; 8e 46 fa 10507 10799 cmp byte [es:si+001e8h], 004h ; 26 80 bc e8 01 04 10508 jnc near 07 703h ; 0f 83 50 0210800 jnc near 07998h ; 0f 83 50 02 10509 10801 mov cx, strict word 0000ah ; b9 0a 00 10510 10802 xor bx, bx ; 31 db 10511 10803 mov dx, ss ; 8c d2 10512 10804 lea ax, [bp-01ah] ; 8d 46 e6 10513 call 08 85ah ; e8 9a1310805 call 08aeah ; e8 95 13 10514 10806 mov byte [bp-01ah], 025h ; c6 46 e6 25 10515 10807 push strict byte 00008h ; 6a 08 … … 10522 10814 lea bx, [bp-01ah] ; 8d 5e e6 10523 10815 mov ax, word [bp-0021ch] ; 8b 86 e4 fd 10524 call 07 27ah ; e8 9c fd10816 call 0750fh ; e8 9c fd 10525 10817 test al, al ; 84 c0 10526 je short 07 4edh ; 74 0b10527 push 00b 17h ; 68 170b10818 je short 07782h ; 74 0b 10819 push 00b49h ; 68 49 0b 10528 10820 push strict byte 00007h ; 6a 07 10529 call 018e9h ; e8 ff a310821 call 018e9h ; e8 6a a1 10530 10822 add sp, strict byte 00004h ; 83 c4 04 10531 10823 movzx dx, byte [bp-00219h] ; 0f b6 96 e7 fd … … 10539 10831 sal ax, 1 ; d1 e0 10540 10832 rcl dx, 1 ; d1 d2 10541 loop 07 508h ; e2 fa10833 loop 0779dh ; e2 fa 10542 10834 or bx, ax ; 09 c3 10543 10835 or di, dx ; 09 d7 … … 10555 10847 sal ax, 1 ; d1 e0 10556 10848 rcl dx, 1 ; d1 d2 10557 loop 07 53ah ; e2 fa10849 loop 077cfh ; e2 fa 10558 10850 mov cx, word [bp-010h] ; 8b 4e f0 10559 10851 or cx, ax ; 09 c1 … … 10564 10856 mov word [bp-00ch], bx ; 89 5e f4 10565 10857 test dx, dx ; 85 d2 10566 jne short 07 55dh ; 75 0610858 jne short 077f2h ; 75 06 10567 10859 cmp bx, 00200h ; 81 fb 00 02 10568 je short 07 57dh ; 74 2010569 mov bx, 00c 08h ; bb 080c10860 je short 07812h ; 74 20 10861 mov bx, 00c3ah ; bb 3a 0c 10570 10862 mov cx, ds ; 8c d9 10571 10863 mov ax, strict word 00004h ; b8 04 00 10572 call 018aeh ; e8 46 a310864 call 018aeh ; e8 b1 a0 10573 10865 push dx ; 52 10574 10866 push word [bp-00ch] ; ff 76 f4 10575 10867 push word [bp-008h] ; ff 76 f8 10576 push 00b 53h ; 68 530b10868 push 00b85h ; 68 85 0b 10577 10869 push strict byte 00004h ; 6a 04 10578 call 018e9h ; e8 72 a310870 call 018e9h ; e8 dd a0 10579 10871 add sp, strict byte 0000ah ; 83 c4 0a 10580 jmp near 07 6a9h ; e9 2c 0110872 jmp near 0793eh ; e9 2c 01 10581 10873 cmp di, strict byte 00040h ; 83 ff 40 10582 jnbe short 07 584h ; 77 0210583 jne short 07 58eh ; 75 0a10874 jnbe short 07819h ; 77 02 10875 jne short 07823h ; 75 0a 10584 10876 mov dword [bp-004h], strict dword 000ff003fh ; 66 c7 46 fc 3f 00 ff 00 10585 jmp short 07 5a7h ; eb 1910877 jmp short 0783ch ; eb 19 10586 10878 cmp di, strict byte 00020h ; 83 ff 20 10587 jnbe short 07 595h ; 77 0210588 jne short 07 59fh ; 75 0a10879 jnbe short 0782ah ; 77 02 10880 jne short 07834h ; 75 0a 10589 10881 mov dword [bp-004h], strict dword 000800020h ; 66 c7 46 fc 20 00 80 00 10590 jmp short 07 5a7h ; eb 0810882 jmp short 0783ch ; eb 08 10591 10883 mov dword [bp-004h], strict dword 000400020h ; 66 c7 46 fc 20 00 40 00 10592 10884 mov bx, word [bp-002h] ; 8b 5e fe … … 10595 10887 mov dx, di ; 89 fa 10596 10888 xor cx, cx ; 31 c9 10597 call 08 7f0h ; e8 381210889 call 08a80h ; e8 33 12 10598 10890 mov word [bp-00eh], dx ; 89 56 f2 10599 10891 mov es, [bp-006h] ; 8e 46 fa … … 10623 10915 mov word [es:bx+02ah], dx ; 26 89 57 2a 10624 10916 cmp word [bp-00eh], strict byte 00000h ; 83 7e f2 00 10625 jne short 07 61bh ; 75 0510917 jne short 078b0h ; 75 05 10626 10918 cmp ax, 00400h ; 3d 00 04 10627 jbe short 07 623h ; 76 0810919 jbe short 078b8h ; 76 08 10628 10920 mov word [es:bx+028h], 00400h ; 26 c7 47 28 00 04 10629 jmp short 07 627h ; eb 0410921 jmp short 078bch ; eb 04 10630 10922 mov word [es:bx+028h], ax ; 26 89 47 28 10631 10923 movzx bx, ch ; 0f b6 dd … … 10638 10930 mov word [es:bx+030h], dx ; 26 89 57 30 10639 10931 cmp word [bp-00eh], strict byte 00000h ; 83 7e f2 00 10640 jne short 07 64bh ; 75 0510932 jne short 078e0h ; 75 05 10641 10933 cmp ax, 00400h ; 3d 00 04 10642 jbe short 07 653h ; 76 0810934 jbe short 078e8h ; 76 08 10643 10935 mov word [es:bx+02eh], 00400h ; 26 c7 47 2e 00 04 10644 jmp short 07 657h ; eb 0410936 jmp short 078ech ; eb 04 10645 10937 mov word [es:bx+02eh], ax ; 26 89 47 2e 10646 10938 movzx bx, ch ; 0f b6 dd … … 10662 10954 mov dx, strict word 00075h ; ba 75 00 10663 10955 mov ax, strict word 00040h ; b8 40 00 10664 call 01600h ; e8 6f 9f10956 call 01600h ; e8 da 9c 10665 10957 db 0feh, 0c0h 10666 10958 ; inc al ; fe c0 … … 10668 10960 mov dx, strict word 00075h ; ba 75 00 10669 10961 mov ax, strict word 00040h ; b8 40 00 10670 call 0160eh ; e8 6f 9f10962 call 0160eh ; e8 da 9c 10671 10963 db 0feh, 0c1h 10672 10964 ; inc cl ; fe c1 … … 10675 10967 inc word [bp-008h] ; ff 46 f8 10676 10968 cmp word [bp-008h], strict byte 00010h ; 83 7e f8 10 10677 jnl short 07 703h ; 7d 5110969 jnl short 07998h ; 7d 51 10678 10970 mov byte [bp-01ah], 012h ; c6 46 e6 12 10679 10971 xor al, al ; 30 c0 … … 10692 10984 lea bx, [bp-01ah] ; 8d 5e e6 10693 10985 mov ax, word [bp-0021ch] ; 8b 86 e4 fd 10694 call 07 27ah ; e8 98 fb10986 call 0750fh ; e8 98 fb 10695 10987 test al, al ; 84 c0 10696 je short 07 6f1h ; 74 0b10697 push 00 ae1h ; 68 e1 0a10988 je short 07986h ; 74 0b 10989 push 00b13h ; 68 13 0b 10698 10990 push strict byte 00007h ; 6a 07 10699 call 018e9h ; e8 fb a110991 call 018e9h ; e8 66 9f 10700 10992 add sp, strict byte 00004h ; 83 c4 04 10701 10993 test byte [bp-0021ah], 0e0h ; f6 86 e6 fd e0 10702 jne short 07 6a9h ; 75 b110994 jne short 0793eh ; 75 b1 10703 10995 test byte [bp-0021ah], 01fh ; f6 86 e6 fd 1f 10704 je near 07 4a6h ; 0f 84 a5 fd10705 jmp short 07 6a9h ; eb a610996 je near 0773bh ; 0f 84 a5 fd 10997 jmp short 0793eh ; eb a6 10706 10998 leave ; c9 10707 10999 pop di ; 5f … … 10711 11003 pop bx ; 5b 10712 11004 retn ; c3 10713 _scsi_init: ; 0xf7 70aLB 0x6411005 _scsi_init: ; 0xf799f LB 0x64 10714 11006 push bp ; 55 10715 11007 mov bp, sp ; 89 e5 10716 11008 mov dx, strict word 0000eh ; ba 0e 00 10717 11009 mov ax, strict word 00040h ; b8 40 00 10718 call 0161ch ; e8 06 9f11010 call 0161ch ; e8 71 9c 10719 11011 mov bx, 00122h ; bb 22 01 10720 11012 mov es, ax ; 8e c0 … … 10727 11019 ; sub ah, ah ; 2a e4 10728 11020 cmp AL, strict byte 055h ; 3c 55 10729 jne short 07 73ah ; 75 0c11021 jne short 079cfh ; 75 0c 10730 11022 xor al, al ; 30 c0 10731 11023 mov dx, 00333h ; ba 33 03 10732 11024 out DX, AL ; ee 10733 11025 mov ax, 00330h ; b8 30 03 10734 call 07 485h ; e8 4b fd11026 call 0771ah ; e8 4b fd 10735 11027 mov AL, strict byte 055h ; b0 55 10736 11028 mov dx, 00342h ; ba 42 03 … … 10740 11032 ; sub ah, ah ; 2a e4 10741 11033 cmp AL, strict byte 055h ; 3c 55 10742 jne short 07 753h ; 75 0c11034 jne short 079e8h ; 75 0c 10743 11035 xor al, al ; 30 c0 10744 11036 mov dx, 00343h ; ba 43 03 10745 11037 out DX, AL ; ee 10746 11038 mov ax, 00340h ; b8 40 03 10747 call 07 485h ; e8 32 fd11039 call 0771ah ; e8 32 fd 10748 11040 mov AL, strict byte 055h ; b0 55 10749 11041 mov dx, 00352h ; ba 52 03 … … 10753 11045 ; sub ah, ah ; 2a e4 10754 11046 cmp AL, strict byte 055h ; 3c 55 10755 jne short 07 76ch ; 75 0c11047 jne short 07a01h ; 75 0c 10756 11048 xor al, al ; 30 c0 10757 11049 mov dx, 00353h ; ba 53 03 10758 11050 out DX, AL ; ee 10759 11051 mov ax, 00350h ; b8 50 03 10760 call 07 485h ; e8 19 fd11052 call 0771ah ; e8 19 fd 10761 11053 pop bp ; 5d 10762 11054 retn ; c3 10763 high_bits_save_: ; 0xf7 76eLB 0x1411055 high_bits_save_: ; 0xf7a03 LB 0x14 10764 11056 push bx ; 53 10765 11057 push bp ; 55 … … 10772 11064 pop bx ; 5b 10773 11065 retn ; c3 10774 high_bits_restore_: ; 0xf7 782LB 0x1411066 high_bits_restore_: ; 0xf7a17 LB 0x14 10775 11067 push bx ; 53 10776 11068 push bp ; 55 … … 10783 11075 pop bx ; 5b 10784 11076 retn ; c3 10785 ahci_ctrl_set_bits_: ; 0xf7 796LB 0x4011077 ahci_ctrl_set_bits_: ; 0xf7a2b LB 0x40 10786 11078 push si ; 56 10787 11079 push di ; 57 … … 10818 11110 pop si ; 5e 10819 11111 retn ; c3 10820 ahci_ctrl_clear_bits_: ; 0xf7 7d6LB 0x4411112 ahci_ctrl_clear_bits_: ; 0xf7a6b LB 0x44 10821 11113 push si ; 56 10822 11114 push di ; 57 … … 10855 11147 pop si ; 5e 10856 11148 retn ; c3 10857 ahci_ctrl_is_bit_set_: ; 0xf7 81aLB 0x3611149 ahci_ctrl_is_bit_set_: ; 0xf7aaf LB 0x36 10858 11150 push si ; 56 10859 11151 push di ; 57 … … 10877 11169 xchg dx, ax ; 92 10878 11170 test dx, di ; 85 fa 10879 jne short 07 846h ; 75 0411171 jne short 07adbh ; 75 04 10880 11172 test ax, bx ; 85 d8 10881 je short 07 84ah ; 74 0411173 je short 07adfh ; 74 04 10882 11174 mov AL, strict byte 001h ; b0 01 10883 jmp short 07 84ch ; eb 0211175 jmp short 07ae1h ; eb 02 10884 11176 xor al, al ; 30 c0 10885 11177 pop bp ; 5d … … 10887 11179 pop si ; 5e 10888 11180 retn ; c3 10889 ahci_ctrl_extract_bits_: ; 0xf7 850LB 0x1b11181 ahci_ctrl_extract_bits_: ; 0xf7ae5 LB 0x1b 10890 11182 push si ; 56 10891 11183 push bp ; 55 … … 10895 11187 and dx, cx ; 21 ca 10896 11188 movzx cx, byte [bp+006h] ; 0f b6 4e 06 10897 jcxz 07 866h ; e3 0611189 jcxz 07afbh ; e3 06 10898 11190 shr dx, 1 ; d1 ea 10899 11191 rcr ax, 1 ; d1 d8 10900 loop 07 860h ; e2 fa11192 loop 07af5h ; e2 fa 10901 11193 pop bp ; 5d 10902 11194 pop si ; 5e 10903 11195 retn 00002h ; c2 02 00 10904 ahci_addr_to_phys_: ; 0xf7 86bLB 0x1e11196 ahci_addr_to_phys_: ; 0xf7b00 LB 0x1e 10905 11197 push bx ; 53 10906 11198 push cx ; 51 … … 10913 11205 sal ax, 1 ; d1 e0 10914 11206 rcl dx, 1 ; d1 d2 10915 loop 07 879h ; e2 fa11207 loop 07b0eh ; e2 fa 10916 11208 xor cx, cx ; 31 c9 10917 11209 add ax, bx ; 01 d8 … … 10921 11213 pop bx ; 5b 10922 11214 retn ; c3 10923 ahci_port_cmd_sync_: ; 0xf7 889LB 0xd011215 ahci_port_cmd_sync_: ; 0xf7b1e LB 0xd0 10924 11216 push cx ; 51 10925 11217 push si ; 56 … … 10933 11225 mov di, word [es:si+00260h] ; 26 8b bc 60 02 10934 11226 cmp AL, strict byte 0ffh ; 3c ff 10935 je near 07 954h ; 0f 84 aa 0011227 je near 07be9h ; 0f 84 aa 00 10936 11228 movzx cx, byte [es:si+00263h] ; 26 0f b6 8c 63 02 10937 11229 xor dx, dx ; 31 d2 … … 10945 11237 lea ax, [si+00080h] ; 8d 84 80 00 10946 11238 mov dx, es ; 8c c2 10947 call 07 86bh ; e8 98 ff11239 call 07b00h ; e8 98 ff 10948 11240 mov es, [bp-004h] ; 8e 46 fc 10949 11241 mov word [es:si+008h], ax ; 26 89 44 08 … … 10955 11247 xor cx, cx ; 31 c9 10956 11248 mov ax, di ; 89 f8 10957 call 07 796h ; e8 a3 fe11249 call 07a2bh ; e8 a3 fe 10958 11250 lea ax, [si+00138h] ; 8d 84 38 01 10959 11251 cwd ; 99 … … 10982 11274 mov dx, si ; 89 f2 10983 11275 mov ax, di ; 89 f8 10984 call 07 81ah ; e8 e7 fe11276 call 07aafh ; e8 e7 fe 10985 11277 test al, al ; 84 c0 10986 je short 07 916h ; 74 df11278 je short 07babh ; 74 df 10987 11279 mov bx, strict word 00001h ; bb 01 00 10988 11280 xor cx, cx ; 31 c9 10989 11281 mov dx, si ; 89 f2 10990 11282 mov ax, di ; 89 f8 10991 call 07 796h ; e8 53 fe11283 call 07a2bh ; e8 53 fe 10992 11284 mov dx, word [bp-006h] ; 8b 56 fa 10993 11285 add dx, 00118h ; 81 c2 18 01 … … 10995 11287 xor cx, cx ; 31 c9 10996 11288 mov ax, di ; 89 f8 10997 call 07 7d6h ; e8 82 fe11289 call 07a6bh ; e8 82 fe 10998 11290 leave ; c9 10999 11291 pop di ; 5f … … 11001 11293 pop cx ; 59 11002 11294 retn ; c3 11003 ahci_cmd_data_: ; 0xf7 959LB 0x1c511295 ahci_cmd_data_: ; 0xf7bee LB 0x1c5 11004 11296 push cx ; 51 11005 11297 push si ; 56 … … 11023 11315 mov ax, 00080h ; b8 80 00 11024 11316 mov dx, word [bp-004h] ; 8b 56 fc 11025 call 08 85ah ; e8 c40e11317 call 08aeah ; e8 bf 0e 11026 11318 mov es, [bp-004h] ; 8e 46 fc 11027 11319 mov word [es:si+00080h], 08027h ; 26 c7 84 80 00 27 80 … … 11039 11331 shr bx, 1 ; d1 eb 11040 11332 rcr ax, 1 ; d1 d8 11041 loop 07 9c9h ; e2 fa11333 loop 07c5eh ; e2 fa 11042 11334 mov es, [bp-004h] ; 8e 46 fc 11043 11335 mov byte [es:si+00085h], al ; 26 88 84 85 00 … … 11064 11356 mov bx, word [bp-010h] ; 8b 5e f0 11065 11357 xor cx, cx ; 31 c9 11066 call 08 829h ; e8 f70d11358 call 08ab9h ; e8 f2 0d 11067 11359 push dx ; 52 11068 11360 push ax ; 50 … … 11072 11364 mov ax, 0026ah ; b8 6a 02 11073 11365 mov dx, word [bp-004h] ; 8b 56 fc 11074 call 08 744h ; e8 fc 0c11366 call 089d9h ; e8 fc 0c 11075 11367 mov es, [bp-004h] ; 8e 46 fc 11076 11368 movzx ax, byte [es:si+00263h] ; 26 0f b6 84 63 02 … … 11092 11384 mov es, [bp-00ch] ; 8e 46 f4 11093 11385 cmp word [es:di+01ch], strict byte 00000h ; 26 83 7d 1c 00 11094 je short 07 ac1h ; 74 2c11386 je short 07d56h ; 74 2c 11095 11387 mov dx, word [es:di+01ch] ; 26 8b 55 1c 11096 11388 dec dx ; 4a … … 11111 11403 movzx dx, byte [es:bx+00263h] ; 26 0f b6 97 63 02 11112 11404 cmp ax, dx ; 39 d0 11113 jnc short 07 adbh ; 73 0311405 jnc short 07d70h ; 73 03 11114 11406 inc ax ; 40 11115 jmp short 07 acbh ; eb f011407 jmp short 07d60h ; eb f0 11116 11408 mov al, byte [bp-002h] ; 8a 46 fe 11117 11409 cmp AL, strict byte 035h ; 3c 35 11118 jne short 07 ae8h ; 75 0611410 jne short 07d7dh ; 75 06 11119 11411 mov byte [bp-002h], 040h ; c6 46 fe 40 11120 jmp short 07 afch ; eb 1411412 jmp short 07d91h ; eb 14 11121 11413 cmp AL, strict byte 0a0h ; 3c a0 11122 jne short 07 af8h ; 75 0c11414 jne short 07d8dh ; 75 0c 11123 11415 or byte [bp-002h], 020h ; 80 4e fe 20 11124 11416 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 11125 jmp short 07 afch ; eb 0411417 jmp short 07d91h ; eb 04 11126 11418 mov byte [bp-002h], 000h ; c6 46 fe 00 11127 11419 or byte [bp-002h], 005h ; 80 4e fe 05 … … 11129 11421 mov ax, word [bp-008h] ; 8b 46 f8 11130 11422 mov dx, word [bp-006h] ; 8b 56 fa 11131 call 07 889h ; e8 7c fd11423 call 07b1eh ; e8 7c fd 11132 11424 mov ax, word [bp-008h] ; 8b 46 f8 11133 11425 add ax, 0026ah ; 05 6a 02 11134 11426 mov dx, word [bp-006h] ; 8b 56 fa 11135 call 08 7bah ; e8 a1 0c11427 call 08a4fh ; e8 a1 0c 11136 11428 leave ; c9 11137 11429 pop di ; 5f … … 11139 11431 pop cx ; 59 11140 11432 retn ; c3 11141 ahci_port_deinit_current_: ; 0xf7 b1eLB 0x13f11433 ahci_port_deinit_current_: ; 0xf7db3 LB 0x13f 11142 11434 push bx ; 53 11143 11435 push cx ; 51 … … 11152 11444 mov byte [bp-002h], al ; 88 46 fe 11153 11445 cmp AL, strict byte 0ffh ; 3c ff 11154 je near 07 c57h ; 0f 84 17 0111446 je near 07eech ; 0f 84 17 01 11155 11447 movzx dx, al ; 0f b6 d0 11156 11448 sal dx, 007h ; c1 e2 07 … … 11159 11451 xor cx, cx ; 31 c9 11160 11452 mov ax, si ; 89 f0 11161 call 07 7d6h ; e8 82 fc11453 call 07a6bh ; e8 82 fc 11162 11454 movzx ax, byte [bp-002h] ; 0f b6 46 fe 11163 11455 sal ax, 007h ; c1 e0 07 … … 11168 11460 xor cx, cx ; 31 c9 11169 11461 mov ax, si ; 89 f0 11170 call 07 81ah ; e8 ac fc11462 call 07aafh ; e8 ac fc 11171 11463 cmp AL, strict byte 001h ; 3c 01 11172 je short 07 b54h ; 74 e211464 je short 07de9h ; 74 e2 11173 11465 mov cx, strict word 00020h ; b9 20 00 11174 11466 xor bx, bx ; 31 db 11175 11467 mov ax, di ; 89 f8 11176 11468 mov dx, word [bp-004h] ; 8b 56 fc 11177 call 08 85ah ; e8 db0c11469 call 08aeah ; e8 d6 0c 11178 11470 lea ax, [di+00080h] ; 8d 85 80 00 11179 11471 mov cx, strict word 00040h ; b9 40 00 11180 11472 xor bx, bx ; 31 db 11181 11473 mov dx, word [bp-004h] ; 8b 56 fc 11182 call 08 85ah ; e8 cc0c11474 call 08aeah ; e8 c7 0c 11183 11475 lea ax, [di+00200h] ; 8d 85 00 02 11184 11476 mov cx, strict word 00060h ; b9 60 00 11185 11477 xor bx, bx ; 31 db 11186 11478 mov dx, word [bp-004h] ; 8b 56 fc 11187 call 08 85ah ; e8 bd0c11479 call 08aeah ; e8 b8 0c 11188 11480 mov ax, word [bp-006h] ; 8b 46 fa 11189 11481 add ax, 00108h ; 05 08 01 … … 11286 11578 pop bx ; 5b 11287 11579 retn ; c3 11288 ahci_port_init_: ; 0xf7 c5dLB 0x20111580 ahci_port_init_: ; 0xf7ef2 LB 0x201 11289 11581 push cx ; 51 11290 11582 push si ; 56 … … 11294 11586 mov word [bp-004h], dx ; 89 56 fc 11295 11587 mov byte [bp-002h], bl ; 88 5e fe 11296 call 07 b1eh ; e8 af fe11588 call 07db3h ; e8 af fe 11297 11589 movzx dx, bl ; 0f b6 d3 11298 11590 sal dx, 007h ; c1 e2 07 … … 11302 11594 mov bx, strict word 00011h ; bb 11 00 11303 11595 xor cx, cx ; 31 c9 11304 call 07 7d6h ; e8 4d fb11596 call 07a6bh ; e8 4d fb 11305 11597 movzx di, byte [bp-002h] ; 0f b6 7e fe 11306 11598 sal di, 007h ; c1 e7 07 … … 11310 11602 mov bx, 0c011h ; bb 11 c0 11311 11603 xor cx, cx ; 31 c9 11312 call 07 81ah ; e8 76 fb11604 call 07aafh ; e8 76 fb 11313 11605 cmp AL, strict byte 001h ; 3c 01 11314 je short 07 c89h ; 74 e111606 je short 07f1eh ; 74 e1 11315 11607 mov cx, strict word 00020h ; b9 20 00 11316 11608 xor bx, bx ; 31 db 11317 11609 mov ax, si ; 89 f0 11318 11610 mov dx, word [bp-004h] ; 8b 56 fc 11319 call 08 85ah ; e8 a50b11611 call 08aeah ; e8 a0 0b 11320 11612 lea ax, [si+00080h] ; 8d 84 80 00 11321 11613 mov cx, strict word 00040h ; b9 40 00 11322 11614 xor bx, bx ; 31 db 11323 11615 mov dx, word [bp-004h] ; 8b 56 fc 11324 call 08 85ah ; e8 960b11616 call 08aeah ; e8 91 0b 11325 11617 mov ax, si ; 89 f0 11326 11618 add ah, 002h ; 80 c4 02 … … 11329 11621 xor bx, bx ; 31 db 11330 11622 mov dx, word [bp-004h] ; 8b 56 fc 11331 call 08 85ah ; e8 830b11623 call 08aeah ; e8 7e 0b 11332 11624 lea ax, [di+00108h] ; 8d 85 08 01 11333 11625 cwd ; 99 … … 11343 11635 mov ax, word [bp-006h] ; 8b 46 fa 11344 11636 mov dx, word [bp-004h] ; 8b 56 fc 11345 call 07 86bh ; e8 71 fb11637 call 07b00h ; e8 71 fb 11346 11638 mov es, [bp-004h] ; 8e 46 fc 11347 11639 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 … … 11388 11680 mov ax, si ; 89 f0 11389 11681 mov dx, word [bp-004h] ; 8b 56 fc 11390 call 07 86bh ; e8 05 fb11682 call 07b00h ; e8 05 fb 11391 11683 mov es, [bp-004h] ; 8e 46 fc 11392 11684 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 … … 11492 11784 pop cx ; 59 11493 11785 retn ; c3 11494 @ahci_read_sectors: ; 0xf 7e5eLB 0x8b11786 @ahci_read_sectors: ; 0xf80f3 LB 0x8b 11495 11787 push si ; 56 11496 11788 push di ; 57 … … 11501 11793 sub di, strict byte 0000ch ; 83 ef 0c 11502 11794 cmp di, strict byte 00004h ; 83 ff 04 11503 jbe short 0 7e82h ; 76 0f11795 jbe short 08117h ; 76 0f 11504 11796 push di ; 57 11505 push 00b 82h ; 68 820b11506 push 00b 94h ; 68 940b11797 push 00bb4h ; 68 b4 0b 11798 push 00bc6h ; 68 c6 0b 11507 11799 push strict byte 00007h ; 6a 07 11508 call 018e9h ; e8 6a 9a11800 call 018e9h ; e8 d5 97 11509 11801 add sp, strict byte 00008h ; 83 c4 08 11510 11802 les bx, [bp+008h] ; c4 5e 08 11511 11803 mov dx, word [es:bx+001eeh] ; 26 8b 97 ee 01 11512 11804 xor ax, ax ; 31 c0 11513 call 07 76eh ; e8 df f811805 call 07a03h ; e8 df f8 11514 11806 mov es, [bp+00ah] ; 8e 46 0a 11515 11807 add di, bx ; 01 df … … 11518 11810 mov dx, word [es:di+001eeh] ; 26 8b 95 ee 01 11519 11811 xor ax, ax ; 31 c0 11520 call 07 c5dh ; e8 b6 fd11812 call 07ef2h ; e8 b6 fd 11521 11813 mov bx, strict word 00025h ; bb 25 00 11522 11814 mov ax, di ; 89 f8 11523 11815 mov dx, word [bp+00ah] ; 8b 56 0a 11524 call 07 959h ; e8 a7 fa11816 call 07beeh ; e8 a7 fa 11525 11817 mov es, [bp+00ah] ; 8e 46 0a 11526 11818 mov bx, di ; 89 fb … … 11540 11832 mov dx, word [es:bx+001eeh] ; 26 8b 97 ee 01 11541 11833 xor ax, ax ; 31 c0 11542 call 07 782h ; e8 a1 f811834 call 07a17h ; e8 a1 f8 11543 11835 xor ax, ax ; 31 c0 11544 11836 pop bp ; 5d … … 11546 11838 pop si ; 5e 11547 11839 retn 00004h ; c2 04 00 11548 @ahci_write_sectors: ; 0xf 7ee9LB 0x6511840 @ahci_write_sectors: ; 0xf817e LB 0x65 11549 11841 push si ; 56 11550 11842 push bp ; 55 … … 11556 11848 sub bx, strict byte 0000ch ; 83 eb 0c 11557 11849 cmp bx, strict byte 00004h ; 83 fb 04 11558 jbe short 0 7f11h ; 76 0f11850 jbe short 081a6h ; 76 0f 11559 11851 push bx ; 53 11560 push 00b b3h ; 68 b30b11561 push 00b 94h ; 68 940b11852 push 00be5h ; 68 e5 0b 11853 push 00bc6h ; 68 c6 0b 11562 11854 push strict byte 00007h ; 6a 07 11563 call 018e9h ; e8 db 9911855 call 018e9h ; e8 46 97 11564 11856 add sp, strict byte 00008h ; 83 c4 08 11565 11857 mov es, cx ; 8e c1 11566 11858 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 11567 11859 xor ax, ax ; 31 c0 11568 call 07 76eh ; e8 51 f811860 call 07a03h ; e8 51 f8 11569 11861 mov es, cx ; 8e c1 11570 11862 add bx, si ; 01 f3 … … 11572 11864 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 11573 11865 xor ax, ax ; 31 c0 11574 call 07 c5dh ; e8 2c fd11866 call 07ef2h ; e8 2c fd 11575 11867 mov bx, strict word 00035h ; bb 35 00 11576 11868 mov ax, si ; 89 f0 11577 11869 mov dx, cx ; 89 ca 11578 call 07 959h ; e8 1e fa11870 call 07beeh ; e8 1e fa 11579 11871 mov es, cx ; 8e c1 11580 11872 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 11581 11873 xor ax, ax ; 31 c0 11582 call 07 782h ; e8 3b f811874 call 07a17h ; e8 3b f8 11583 11875 xor ax, ax ; 31 c0 11584 11876 pop bp ; 5d 11585 11877 pop si ; 5e 11586 11878 retn 00004h ; c2 04 00 11587 ahci_cmd_packet_: ; 0xf 7f4eLB 0x16e11879 ahci_cmd_packet_: ; 0xf81e3 LB 0x16e 11588 11880 push si ; 56 11589 11881 push di ; 57 … … 11595 11887 mov dx, strict word 0000eh ; ba 0e 00 11596 11888 mov ax, strict word 00040h ; b8 40 00 11597 call 0161ch ; e8 b5 9611889 call 0161ch ; e8 20 94 11598 11890 mov si, 00122h ; be 22 01 11599 11891 mov word [bp-004h], ax ; 89 46 fc 11600 11892 cmp byte [bp+00eh], 002h ; 80 7e 0e 02 11601 jne short 0 7f92h ; 75 1f11602 mov bx, 00c 08h ; bb 080c11893 jne short 08227h ; 75 1f 11894 mov bx, 00c3ah ; bb 3a 0c 11603 11895 mov cx, ds ; 8c d9 11604 11896 mov ax, strict word 00004h ; b8 04 00 11605 call 018aeh ; e8 30 9911606 push 00b c6h ; 68 c60b11607 push 00 bd6h ; 68 d6 0b11897 call 018aeh ; e8 9b 96 11898 push 00bf8h ; 68 f8 0b 11899 push 00c08h ; 68 08 0c 11608 11900 push strict byte 00004h ; 6a 04 11609 call 018e9h ; e8 60 9911901 call 018e9h ; e8 cb 96 11610 11902 add sp, strict byte 00006h ; 83 c4 06 11611 11903 mov ax, strict word 00001h ; b8 01 00 11612 jmp near 08 0b6h ; e9 24 0111904 jmp near 0834bh ; e9 24 01 11613 11905 test byte [bp+008h], 001h ; f6 46 08 01 11614 jne short 0 7f8ch ; 75 f411906 jne short 08221h ; 75 f4 11615 11907 mov ax, word [bp+00ah] ; 8b 46 0a 11616 11908 mov dx, word [bp+00ch] ; 8b 56 0c … … 11618 11910 sal ax, 1 ; d1 e0 11619 11911 rcl dx, 1 ; d1 d2 11620 loop 0 7fa1h ; e2 fa11912 loop 08236h ; e2 fa 11621 11913 mov es, [bp-004h] ; 8e 46 fc 11622 11914 mov word [es:si], ax ; 26 89 04 … … 11630 11922 mov dx, word [bp+00ch] ; 8b 56 0c 11631 11923 xor cx, cx ; 31 c9 11632 call 08 7f0h ; e8 220811924 call 08a80h ; e8 1d 08 11633 11925 mov word [es:si+00ah], ax ; 26 89 44 0a 11634 11926 xor di, di ; 31 ff … … 11640 11932 xor ax, ax ; 31 c0 11641 11933 mov dx, word [bp-006h] ; 8b 56 fa 11642 call 07 76eh ; e8 80 f711934 call 07a03h ; e8 80 f7 11643 11935 mov es, [bp-004h] ; 8e 46 fc 11644 11936 mov bx, word [bp-010h] ; 8b 5e f0 … … 11647 11939 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 11648 11940 xor ax, ax ; 31 c0 11649 call 07 c5dh ; e8 57 fc11941 call 07ef2h ; e8 57 fc 11650 11942 movzx ax, byte [bp-002h] ; 0f b6 46 fe 11651 11943 push ax ; 50 … … 11654 11946 mov ax, 000c0h ; b8 c0 00 11655 11947 mov dx, word [bp-006h] ; 8b 56 fa 11656 call 08 867h ; e8 4d0811948 call 08af7h ; e8 48 08 11657 11949 mov es, [bp-004h] ; 8e 46 fc 11658 11950 mov word [es:si+014h], di ; 26 89 7c 14 … … 11661 11953 mov ax, word [es:si+01ah] ; 26 8b 44 1a 11662 11954 test ax, ax ; 85 c0 11663 je short 08 058h ; 74 2711955 je short 082edh ; 74 27 11664 11956 dec ax ; 48 11665 11957 mov es, [bp-006h] ; 8e 46 fa … … 11674 11966 mov ax, si ; 89 f0 11675 11967 mov dx, word [bp-004h] ; 8b 56 fc 11676 call 07 959h ; e8 f6 f811968 call 07beeh ; e8 f6 f8 11677 11969 les bx, [bp-00ah] ; c4 5e f6 11678 11970 mov ax, word [es:bx+004h] ; 26 8b 47 04 … … 11697 11989 mov ax, word [bp-00ah] ; 8b 46 f6 11698 11990 mov dx, word [bp-008h] ; 8b 56 f8 11699 call 07 782h ; e8 e0 f611991 call 07a17h ; e8 e0 f6 11700 11992 les bx, [bp-00ah] ; c4 5e f6 11701 11993 mov ax, word [es:bx+006h] ; 26 8b 47 06 11702 11994 or ax, word [es:bx+004h] ; 26 0b 47 04 11703 jne short 08 0b4h ; 75 0511995 jne short 08349h ; 75 05 11704 11996 mov ax, strict word 00004h ; b8 04 00 11705 jmp short 08 0b6h ; eb 0211997 jmp short 0834bh ; eb 02 11706 11998 xor ax, ax ; 31 c0 11707 11999 leave ; c9 … … 11709 12001 pop si ; 5e 11710 12002 retn 0000ch ; c2 0c 00 11711 ahci_port_detect_device_: ; 0xf8 0bcLB 0x36812003 ahci_port_detect_device_: ; 0xf8351 LB 0x368 11712 12004 push cx ; 51 11713 12005 push si ; 56 … … 11719 12011 movzx cx, bl ; 0f b6 cb 11720 12012 mov bx, cx ; 89 cb 11721 call 07 c5dh ; e8 8a fb12013 call 07ef2h ; e8 8a fb 11722 12014 mov dx, strict word 0000eh ; ba 0e 00 11723 12015 mov ax, strict word 00040h ; b8 40 00 11724 call 0161ch ; e8 40 9512016 call 0161ch ; e8 ab 92 11725 12017 mov word [bp-016h], ax ; 89 46 ea 11726 12018 mov si, 00122h ; be 22 01 … … 11795 12087 mov bx, strict word 0000fh ; bb 0f 00 11796 12088 xor cx, cx ; 31 c9 11797 call 07 850h ; e8 c0 f612089 call 07ae5h ; e8 c0 f6 11798 12090 cmp ax, strict word 00003h ; 3d 03 00 11799 jne near 08 41fh ; 0f 85 88 0212091 jne near 086b4h ; 0f 85 88 02 11800 12092 mov es, [bp-008h] ; 8e 46 f8 11801 12093 mov al, byte [es:si+001edh] ; 26 8a 84 ed 01 11802 12094 mov byte [bp-006h], al ; 88 46 fa 11803 12095 cmp AL, strict byte 004h ; 3c 04 11804 jnc near 08 41fh ; 0f 83 77 0212096 jnc near 086b4h ; 0f 83 77 02 11805 12097 mov dx, word [bp-00eh] ; 8b 56 f2 11806 12098 add dx, 00118h ; 81 c2 18 01 … … 11809 12101 mov bx, strict word 00010h ; bb 10 00 11810 12102 xor cx, cx ; 31 c9 11811 call 07 796h ; e8 d7 f512103 call 07a2bh ; e8 d7 f5 11812 12104 mov ax, word [bp-00eh] ; 8b 46 f2 11813 12105 add ax, 00124h ; 05 24 01 … … 11833 12125 add cl, 00ch ; 80 c1 0c 11834 12126 test dx, dx ; 85 d2 11835 jne near 08 37ch ; 0f 85 81 0112127 jne near 08611h ; 0f 85 81 01 11836 12128 cmp ax, 00101h ; 3d 01 01 11837 jne near 08 37ch ; 0f 85 7a 0112129 jne near 08611h ; 0f 85 7a 01 11838 12130 mov es, [bp-008h] ; 8e 46 f8 11839 12131 db 066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h … … 11847 12139 mov ax, si ; 89 f0 11848 12140 mov dx, word [bp-016h] ; 8b 56 ea 11849 call 07 959h ; e8 2c f712141 call 07beeh ; e8 2c f7 11850 12142 mov dh, cl ; 88 ce 11851 12143 test byte [bp-00218h], 080h ; f6 86 e8 fd 80 … … 11862 12154 mov word [bp-012h], bx ; 89 5e ee 11863 12155 cmp bx, 00fffh ; 81 fb ff 0f 11864 jne short 08 26ah ; 75 0e12156 jne short 084ffh ; 75 0e 11865 12157 cmp ax, strict word 0ffffh ; 3d ff ff 11866 jne short 08 26ah ; 75 0912158 jne short 084ffh ; 75 09 11867 12159 mov ax, word [bp-00150h] ; 8b 86 b0 fe 11868 12160 mov word [bp-012h], strict word 00000h ; c7 46 ee 00 00 … … 11891 12183 mov al, byte [bp-006h] ; 8a 46 fa 11892 12184 cmp AL, strict byte 001h ; 3c 01 11893 jc short 08 2d1h ; 72 0c11894 jbe short 08 2d9h ; 76 1212185 jc short 08566h ; 72 0c 12186 jbe short 0856eh ; 76 12 11895 12187 cmp AL, strict byte 003h ; 3c 03 11896 je short 08 2e1h ; 74 1612188 je short 08576h ; 74 16 11897 12189 cmp AL, strict byte 002h ; 3c 02 11898 je short 08 2ddh ; 74 0e11899 jmp short 08 323h ; eb 5212190 je short 08572h ; 74 0e 12191 jmp short 085b8h ; eb 52 11900 12192 test al, al ; 84 c0 11901 jne short 08 323h ; 75 4e12193 jne short 085b8h ; 75 4e 11902 12194 mov DL, strict byte 040h ; b2 40 11903 jmp short 08 2e3h ; eb 0a12195 jmp short 08578h ; eb 0a 11904 12196 mov DL, strict byte 048h ; b2 48 11905 jmp short 08 2e3h ; eb 0612197 jmp short 08578h ; eb 06 11906 12198 mov DL, strict byte 050h ; b2 50 11907 jmp short 08 2e3h ; eb 0212199 jmp short 08578h ; eb 02 11908 12200 mov DL, strict byte 058h ; b2 58 11909 12201 mov al, dl ; 88 d0 … … 11911 12203 movzx bx, al ; 0f b6 d8 11912 12204 mov ax, bx ; 89 d8 11913 call 0165ch ; e8 6d 9312205 call 0165ch ; e8 d8 90 11914 12206 test al, al ; 84 c0 11915 je short 08 323h ; 74 3012207 je short 085b8h ; 74 30 11916 12208 mov al, dl ; 88 d0 11917 12209 db 0feh, 0c0h 11918 12210 ; inc al ; fe c0 11919 12211 xor ah, ah ; 30 e4 11920 call 0165ch ; e8 60 9312212 call 0165ch ; e8 cb 90 11921 12213 movzx cx, al ; 0f b6 c8 11922 12214 sal cx, 008h ; c1 e1 08 11923 12215 movzx ax, dl ; 0f b6 c2 11924 call 0165ch ; e8 54 9312216 call 0165ch ; e8 bf 90 11925 12217 xor ah, ah ; 30 e4 11926 12218 add ax, cx ; 01 c8 … … 11929 12221 add AL, strict byte 002h ; 04 02 11930 12222 xor ah, ah ; 30 e4 11931 call 0165ch ; e8 44 9312223 call 0165ch ; e8 af 90 11932 12224 movzx di, al ; 0f b6 f8 11933 12225 mov ax, bx ; 89 d8 11934 call 0165ch ; e8 3c 9312226 call 0165ch ; e8 a7 90 11935 12227 movzx cx, al ; 0f b6 c8 11936 12228 movzx si, dh ; 0f b6 f6 … … 11955 12247 mov dx, strict word 00075h ; ba 75 00 11956 12248 mov ax, strict word 00040h ; b8 40 00 11957 call 01600h ; e8 97 9212249 call 01600h ; e8 02 90 11958 12250 mov dl, al ; 88 c2 11959 12251 db 0feh, 0c2h … … 11962 12254 mov dx, strict word 00075h ; ba 75 00 11963 12255 mov ax, strict word 00040h ; b8 40 00 11964 call 0160eh ; e8 95 9211965 jmp near 08 411h ; e9 95 0012256 call 0160eh ; e8 00 90 12257 jmp near 086a6h ; e9 95 00 11966 12258 cmp dx, 0eb14h ; 81 fa 14 eb 11967 jne near 08 411h ; 0f 85 8d 0012259 jne near 086a6h ; 0f 85 8d 00 11968 12260 cmp ax, 00101h ; 3d 01 01 11969 jne near 08 411h ; 0f 85 86 0012261 jne near 086a6h ; 0f 85 86 00 11970 12262 mov es, [bp-008h] ; 8e 46 f8 11971 12263 db 066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h … … 11979 12271 mov ax, si ; 89 f0 11980 12272 mov dx, word [bp-016h] ; 8b 56 ea 11981 call 07 959h ; e8 a3 f512273 call 07beeh ; e8 a3 f5 11982 12274 test byte [bp-00218h], 080h ; f6 86 e8 fd 80 11983 12275 db 00fh, 095h, 0c0h … … 12016 12308 pop cx ; 59 12017 12309 retn ; c3 12018 ahci_mem_alloc_: ; 0xf8 424LB 0x4012310 ahci_mem_alloc_: ; 0xf86b9 LB 0x40 12019 12311 push bx ; 53 12020 12312 push cx ; 51 … … 12026 12318 mov dx, 00413h ; ba 13 04 12027 12319 xor ax, ax ; 31 c0 12028 call 0161ch ; e8 e8 9112320 call 0161ch ; e8 53 8f 12029 12321 test ax, ax ; 85 c0 12030 je short 08 45dh ; 74 2512322 je short 086f2h ; 74 25 12031 12323 dec ax ; 48 12032 12324 mov bx, ax ; 89 c3 … … 12035 12327 sal ax, 1 ; d1 e0 12036 12328 rcl dx, 1 ; d1 d2 12037 loop 08 440h ; e2 fa12329 loop 086d5h ; e2 fa 12038 12330 mov si, ax ; 89 c6 12039 12331 mov di, dx ; 89 d7 … … 12041 12333 shr di, 1 ; d1 ef 12042 12334 rcr si, 1 ; d1 de 12043 loop 08 44dh ; e2 fa12335 loop 086e2h ; e2 fa 12044 12336 mov dx, 00413h ; ba 13 04 12045 12337 xor ax, ax ; 31 c0 12046 call 0162ah ; e8 cf 9112338 call 0162ah ; e8 3a 8f 12047 12339 mov ax, si ; 89 f0 12048 12340 pop bp ; 5d … … 12053 12345 pop bx ; 5b 12054 12346 retn ; c3 12055 ahci_hba_init_: ; 0xf8 464LB 0x12012347 ahci_hba_init_: ; 0xf86f9 LB 0x120 12056 12348 push bx ; 53 12057 12349 push cx ; 51 … … 12063 12355 mov dx, strict word 0000eh ; ba 0e 00 12064 12356 mov ax, strict word 00040h ; b8 40 00 12065 call 0161ch ; e8 a4 9112357 call 0161ch ; e8 0f 8f 12066 12358 mov bx, 00122h ; bb 22 01 12067 12359 mov word [bp-006h], ax ; 89 46 fa … … 12080 12372 shr eax, 010h ; 66 c1 e8 10 12081 12373 xchg dx, ax ; 92 12082 call 08 424h ; e8 87 ff12374 call 086b9h ; e8 87 ff 12083 12375 mov di, ax ; 89 c7 12084 12376 test ax, ax ; 85 c0 12085 je near 08 566h ; 0f 84 c1 0012377 je near 087fbh ; 0f 84 c1 00 12086 12378 mov es, [bp-006h] ; 8e 46 fa 12087 12379 mov word [es:bx+001eeh], di ; 26 89 bf ee 01 … … 12097 12389 mov dx, strict word 00004h ; ba 04 00 12098 12390 mov ax, si ; 89 f0 12099 call 07 796h ; e8 bd f212391 call 07a2bh ; e8 bd f2 12100 12392 mov ax, strict word 00004h ; b8 04 00 12101 12393 xor cx, cx ; 31 c9 … … 12114 12406 xchg dx, ax ; 92 12115 12407 test AL, strict byte 001h ; a8 01 12116 jne short 08 4d9h ; 75 de12408 jne short 0876eh ; 75 de 12117 12409 xor ax, ax ; 31 c0 12118 12410 xor cx, cx ; 31 c9 … … 12132 12424 mov bx, strict word 0001fh ; bb 1f 00 12133 12425 xor cx, cx ; 31 c9 12134 call 07 850h ; e8 31 f312426 call 07ae5h ; e8 31 f3 12135 12427 db 0feh, 0c0h 12136 12428 ; inc al ; fe c0 12137 12429 mov byte [bp-004h], al ; 88 46 fc 12138 12430 mov byte [bp-002h], 000h ; c6 46 fe 00 12139 jmp short 08 533h ; eb 0912431 jmp short 087c8h ; eb 09 12140 12432 inc byte [bp-002h] ; fe 46 fe 12141 12433 cmp byte [bp-002h], 020h ; 80 7e fe 20 12142 jnc short 08 564h ; 73 3112434 jnc short 087f9h ; 73 31 12143 12435 movzx cx, byte [bp-002h] ; 0f b6 4e fe 12144 12436 mov ax, strict word 00001h ; b8 01 00 12145 12437 xor dx, dx ; 31 d2 12146 jcxz 08 544h ; e3 0612438 jcxz 087d9h ; e3 06 12147 12439 sal ax, 1 ; d1 e0 12148 12440 rcl dx, 1 ; d1 d2 12149 loop 08 53eh ; e2 fa12441 loop 087d3h ; e2 fa 12150 12442 mov bx, ax ; 89 c3 12151 12443 mov cx, dx ; 89 d1 12152 12444 mov dx, strict word 0000ch ; ba 0c 00 12153 12445 mov ax, si ; 89 f0 12154 call 07 81ah ; e8 ca f212446 call 07aafh ; e8 ca f2 12155 12447 test al, al ; 84 c0 12156 je short 08 52ah ; 74 d612448 je short 087bfh ; 74 d6 12157 12449 movzx bx, byte [bp-002h] ; 0f b6 5e fe 12158 12450 xor ax, ax ; 31 c0 12159 12451 mov dx, di ; 89 fa 12160 call 08 0bch ; e8 5d fb12452 call 08351h ; e8 5d fb 12161 12453 dec byte [bp-004h] ; fe 4e fc 12162 jne short 08 52ah ; 75 c612454 jne short 087bfh ; 75 c6 12163 12455 xor ax, ax ; 31 c0 12164 12456 leave ; c9 … … 12172 12464 add AL, strict byte 003h ; 04 03 12173 12465 add al, byte [bx+di] ; 02 01 12174 add byte [bx+di-07ah], dl ; 00 51 8612175 das ; 2f12176 xchg byte [di], dh ; 86 3512177 xchg byte [bp+di], bh ; 86 3b12178 xchg byte [bx+di-07ah], al ; 86 41 8612179 inc di ; 4712180 xchg byte [di-07ah], cl ; 86 4d 8612181 push cx ; 5112182 db 08 6h12183 _ahci_init: ; 0xf8 584LB 0xf912466 add dh, ah ; 00 e6 12467 mov ah, al ; 88 c4 12468 mov dl, cl ; 88 ca 12469 mov al, dl ; 88 d0 12470 mov dh, dl ; 88 d6 12471 mov ah, bl ; 88 dc 12472 mov dl, ah ; 88 e2 12473 mov dh, ah ; 88 e6 12474 db 088h 12475 _ahci_init: ; 0xf8819 LB 0xf9 12184 12476 push si ; 56 12185 12477 push di ; 57 … … 12187 12479 mov ax, 00601h ; b8 01 06 12188 12480 mov dx, strict word 00001h ; ba 01 00 12189 call 08 67dh ; e8 ea 0012481 call 08912h ; e8 ea 00 12190 12482 mov dx, ax ; 89 c2 12191 12483 cmp ax, strict word 0ffffh ; 3d ff ff 12192 je near 08 679h ; 0f 84 dd 0012484 je near 0890eh ; 0f 84 dd 00 12193 12485 xor al, al ; 30 c0 12194 12486 shr ax, 008h ; c1 e8 08 … … 12198 12490 xor ah, ah ; 30 e4 12199 12491 mov bx, strict word 00034h ; bb 34 00 12200 call 08 6a5h ; e8 f4 0012492 call 0893ah ; e8 f4 00 12201 12493 mov cl, al ; 88 c1 12202 12494 test cl, cl ; 84 c9 12203 je short 08 5dah ; 74 2312495 je short 0886fh ; 74 23 12204 12496 movzx bx, cl ; 0f b6 d9 12205 12497 movzx di, byte [bp-004h] ; 0f b6 7e fc … … 12207 12499 mov dx, di ; 89 fa 12208 12500 mov ax, si ; 89 f0 12209 call 08 6a5h ; e8 dc 0012501 call 0893ah ; e8 dc 00 12210 12502 cmp AL, strict byte 012h ; 3c 12 12211 je short 08 5dah ; 74 0d12503 je short 0886fh ; 74 0d 12212 12504 mov al, cl ; 88 c8 12213 12505 db 0feh, 0c0h … … 12216 12508 mov dx, di ; 89 fa 12217 12509 mov ax, si ; 89 f0 12218 jmp short 08 5aeh ; eb d412510 jmp short 08843h ; eb d4 12219 12511 test cl, cl ; 84 c9 12220 je near 08 679h ; 0f 84 99 0012512 je near 0890eh ; 0f 84 99 00 12221 12513 add cl, 002h ; 80 c1 02 12222 12514 movzx bx, cl ; 0f b6 d9 … … 12225 12517 mov dx, di ; 89 fa 12226 12518 mov ax, si ; 89 f0 12227 call 08 6a5h ; e8 b0 0012519 call 0893ah ; e8 b0 00 12228 12520 cmp AL, strict byte 010h ; 3c 10 12229 jne near 08 679h ; 0f 85 7e 0012521 jne near 0890eh ; 0f 85 7e 00 12230 12522 mov byte [bp-002h], 000h ; c6 46 fe 00 12231 12523 mov al, cl ; 88 c8 … … 12234 12526 mov dx, di ; 89 fa 12235 12527 mov ax, si ; 89 f0 12236 call 08 6c6h ; e8 b9 0012528 call 0895bh ; e8 b9 00 12237 12529 mov dx, ax ; 89 c2 12238 12530 and ax, strict word 0000fh ; 25 0f 00 12239 12531 sub ax, strict word 00004h ; 2d 04 00 12240 12532 cmp ax, strict word 0000bh ; 3d 0b 00 12241 jnbe short 08 651h ; 77 3712533 jnbe short 088e6h ; 77 37 12242 12534 push CS ; 0e 12243 12535 pop ES ; 07 12244 12536 mov cx, strict word 00008h ; b9 08 00 12245 mov di, 08 56dh ; bf 6d 8512537 mov di, 08802h ; bf 02 88 12246 12538 repne scasb ; f2 ae 12247 12539 sal cx, 1 ; d1 e1 12248 12540 mov di, cx ; 89 cf 12249 mov ax, word [cs:di-07 a8ch] ; 2e 8b 85 74 8512541 mov ax, word [cs:di-077f7h] ; 2e 8b 85 09 88 12250 12542 jmp ax ; ff e0 12251 12543 mov byte [bp-002h], 010h ; c6 46 fe 10 12252 jmp short 08 651h ; eb 1c12544 jmp short 088e6h ; eb 1c 12253 12545 mov byte [bp-002h], 014h ; c6 46 fe 14 12254 jmp short 08 651h ; eb 1612546 jmp short 088e6h ; eb 16 12255 12547 mov byte [bp-002h], 018h ; c6 46 fe 18 12256 jmp short 08 651h ; eb 1012548 jmp short 088e6h ; eb 10 12257 12549 mov byte [bp-002h], 01ch ; c6 46 fe 1c 12258 jmp short 08 651h ; eb 0a12550 jmp short 088e6h ; eb 0a 12259 12551 mov byte [bp-002h], 020h ; c6 46 fe 20 12260 jmp short 08 651h ; eb 0412552 jmp short 088e6h ; eb 04 12261 12553 mov byte [bp-002h], 024h ; c6 46 fe 24 12262 12554 mov si, dx ; 89 d6 … … 12265 12557 mov al, byte [bp-002h] ; 8a 46 fe 12266 12558 test al, al ; 84 c0 12267 je short 08 679h ; 74 1912559 je short 0890eh ; 74 19 12268 12560 movzx bx, al ; 0f b6 d8 12269 12561 movzx dx, byte [bp-004h] ; 0f b6 56 fc 12270 12562 movzx ax, byte [bp-006h] ; 0f b6 46 fa 12271 call 08 6e5h ; e8 77 0012563 call 0897ah ; e8 77 00 12272 12564 test AL, strict byte 001h ; a8 01 12273 je short 08 679h ; 74 0712565 je short 0890eh ; 74 07 12274 12566 and AL, strict byte 0f0h ; 24 f0 12275 12567 add ax, si ; 01 f0 12276 call 08 464h ; e8 eb fd12568 call 086f9h ; e8 eb fd 12277 12569 leave ; c9 12278 12570 pop di ; 5f 12279 12571 pop si ; 5e 12280 12572 retn ; c3 12281 pci_find_classcode_: ; 0xf8 67dLB 0x2812573 pci_find_classcode_: ; 0xf8912 LB 0x28 12282 12574 push bx ; 53 12283 12575 push cx ; 51 … … 12294 12586 int 01ah ; cd 1a 12295 12587 cmp ah, 000h ; 80 fc 00 12296 je near 08 69eh ; 0f 84 03 0012588 je near 08933h ; 0f 84 03 00 12297 12589 mov bx, strict word 0ffffh ; bb ff ff 12298 12590 mov ax, bx ; 89 d8 … … 12302 12594 pop bx ; 5b 12303 12595 retn ; c3 12304 pci_read_config_byte_: ; 0xf8 6a5LB 0x2112596 pci_read_config_byte_: ; 0xf893a LB 0x21 12305 12597 push cx ; 51 12306 12598 push di ; 57 … … 12320 12612 pop cx ; 59 12321 12613 retn ; c3 12322 pci_read_config_word_: ; 0xf8 6c6LB 0x1f12614 pci_read_config_word_: ; 0xf895b LB 0x1f 12323 12615 push cx ; 51 12324 12616 push di ; 57 … … 12338 12630 pop cx ; 59 12339 12631 retn ; c3 12340 pci_read_config_dword_: ; 0xf8 6e5LB 0x2412632 pci_read_config_dword_: ; 0xf897a LB 0x24 12341 12633 push cx ; 51 12342 12634 push di ; 57 … … 12358 12650 pop cx ; 59 12359 12651 retn ; c3 12360 vds_is_present_: ; 0xf8 709LB 0x1d12652 vds_is_present_: ; 0xf899e LB 0x1d 12361 12653 push bx ; 53 12362 12654 push bp ; 55 … … 12366 12658 mov es, ax ; 8e c0 12367 12659 test byte [es:bx], 020h ; 26 f6 07 20 12368 je short 08 721h ; 74 0612660 je short 089b6h ; 74 06 12369 12661 mov ax, strict word 00001h ; b8 01 00 12370 12662 pop bp ; 5d … … 12375 12667 pop bx ; 5b 12376 12668 retn ; c3 12377 vds_real_to_lin_: ; 0xf8 726LB 0x1e12669 vds_real_to_lin_: ; 0xf89bb LB 0x1e 12378 12670 push bx ; 53 12379 12671 push cx ; 51 … … 12386 12678 sal ax, 1 ; d1 e0 12387 12679 rcl dx, 1 ; d1 d2 12388 loop 08 734h ; e2 fa12680 loop 089c9h ; e2 fa 12389 12681 xor cx, cx ; 31 c9 12390 12682 add ax, bx ; 01 d8 … … 12394 12686 pop bx ; 5b 12395 12687 retn ; c3 12396 vds_build_sg_list_: ; 0xf8 744LB 0x7612688 vds_build_sg_list_: ; 0xf89d9 LB 0x76 12397 12689 push si ; 56 12398 12690 push di ; 57 … … 12408 12700 mov bx, word [bp+00ah] ; 8b 5e 0a 12409 12701 mov word [es:di+002h], bx ; 26 89 5d 02 12410 call 08 726h ; e8 c3 ff12702 call 089bbh ; e8 c3 ff 12411 12703 mov es, si ; 8e c6 12412 12704 mov word [es:di+004h], ax ; 26 89 45 04 12413 12705 mov word [es:di+006h], dx ; 26 89 55 06 12414 12706 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 12415 call 08 709h ; e8 93 ff12707 call 0899eh ; e8 93 ff 12416 12708 test ax, ax ; 85 c0 12417 je short 08 78dh ; 74 1312709 je short 08a22h ; 74 13 12418 12710 mov es, si ; 8e c6 12419 12711 mov ax, 08105h ; b8 05 81 12420 12712 mov dx, strict word 00000h ; ba 00 00 12421 12713 int 04bh ; cd 4b 12422 jc near 08 78ah ; 0f 82 02 0012714 jc near 08a1fh ; 0f 82 02 00 12423 12715 db 032h, 0c0h 12424 12716 ; xor al, al ; 32 c0 12425 12717 cbw ; 98 12426 jmp short 08 7b4h ; eb 2712718 jmp short 08a49h ; eb 27 12427 12719 mov es, si ; 8e c6 12428 12720 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 12440 12732 pop si ; 5e 12441 12733 retn 00004h ; c2 04 00 12442 vds_free_sg_list_: ; 0xf8 7ba LB 0x3612734 vds_free_sg_list_: ; 0xf8a4f LB 0x31 12443 12735 push bx ; 53 12444 12736 push di ; 57 … … 12446 12738 mov bp, sp ; 89 e5 12447 12739 mov bx, ax ; 89 c3 12448 call 08 709h ; e8 45 ff12740 call 0899eh ; e8 45 ff 12449 12741 test ax, ax ; 85 c0 12450 je short 08 7dbh ; 74 1312742 je short 08a70h ; 74 13 12451 12743 mov di, bx ; 89 df 12452 12744 mov es, dx ; 8e c2 … … 12454 12746 mov dx, strict word 00000h ; ba 00 00 12455 12747 int 04bh ; cd 4b 12456 jc near 08 7dah ; 0f 82 02 0012748 jc near 08a6fh ; 0f 82 02 00 12457 12749 db 032h, 0c0h 12458 12750 ; xor al, al ; 32 c0 … … 12464 12756 pop bx ; 5b 12465 12757 retn ; c3 12466 times 0x 9db 012467 __U4D: ; 0xf8 7f0 LB 0x3912758 times 0x4 db 0 12759 __U4D: ; 0xf8a80 LB 0x39 12468 12760 pushfw ; 9c 12469 12761 push eax ; 66 50 … … 12495 12787 popfw ; 9d 12496 12788 retn ; c3 12497 __U4M: ; 0xf8 829 LB 0x3112789 __U4M: ; 0xf8ab9 LB 0x31 12498 12790 pushfw ; 9c 12499 12791 push eax ; 66 50 … … 12520 12812 popfw ; 9d 12521 12813 retn ; c3 12522 _fmemset_: ; 0xf8 85a LB 0xd12814 _fmemset_: ; 0xf8aea LB 0xd 12523 12815 push di ; 57 12524 12816 mov es, dx ; 8e c2 … … 12530 12822 pop di ; 5f 12531 12823 retn ; c3 12532 _fmemcpy_: ; 0xf8 867 LB 0x1812824 _fmemcpy_: ; 0xf8af7 LB 0x18 12533 12825 push bp ; 55 12534 12826 db 08bh, 0ech … … 12551 12843 retn ; c3 12552 12844 12553 ; Padding 0x5 581 bytes at 0xf887f12554 times 21 889db 012845 ; Padding 0x52f1 bytes at 0xf8b0f 12846 times 21233 db 0 12555 12847 12556 12848 section BIOS32 progbits vstart=0xde00 align=1 ; size=0x1d7 class=CODE group=AUTO … … 12961 13253 mov ax, 0f000h ; b8 00 f0 12962 13254 mov word [0012ah], ax ; a3 2a 01 12963 mov ax, 0fe8 eh ; b8 8efe13255 mov ax, 0fe8fh ; b8 8f fe 12964 13256 mov word [001c0h], ax ; a3 c0 01 12965 13257 mov ax, 0f000h ; b8 00 f0 … … 12987 13279 call 01b25h ; e8 89 38 12988 13280 call 01f23h ; e8 84 3c 12989 call 07 70ah ; e8 68 9412990 call 08 584h ; e8 df a213281 call 0799fh ; e8 fd 96 13282 call 08819h ; e8 74 a5 12991 13283 call 0ed2fh ; e8 87 0a 12992 13284 call 0e2d2h ; e8 27 00 … … 13672 13964 pop DS ; 1f 13673 13965 cld ; fc 13674 call 06 d3ch ; e8 61 7d13966 call 06fd1h ; e8 f6 7f 13675 13967 popaw ; 61 13676 13968 pop ES ; 07 … … 14294 14586 jmp short 0f88fh ; eb 0e 14295 14587 int15_handler_mouse: ; 0xff881 LB 0x5 14296 call 06 9b6h ; e8 32 7114588 call 06c4bh ; e8 c7 73 14297 14589 jmp short 0f877h ; eb f1 14298 14590 int15_handler32: ; 0xff886 LB 0x9 … … 14328 14620 pop DS ; 1f 14329 14621 cld ; fc 14330 call 06 8f0h ; e8 39 7014622 call 06b85h ; e8 ce 72 14331 14623 pop cx ; 59 14332 14624 jcxz 0f8c6h ; e3 0c … … 14355 14647 times 0x189 db 0 14356 14648 db 'XM' 14357 font8x8: ; 0xffa6e LB 0x42 014649 font8x8: ; 0xffa6e LB 0x421 14358 14650 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 07eh, 081h, 0a5h, 081h, 0bdh, 099h, 081h, 07eh 14359 14651 db 07eh, 0ffh, 0dbh, 0ffh, 0c3h, 0e7h, 0ffh, 07eh, 06ch, 0feh, 0feh, 0feh, 07ch, 038h, 010h, 000h … … 14420 14712 db 018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h 14421 14713 db 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h 14422 db 080h, 0fch, 0b1h, 075h, 00eh, 0e8h, 0a7h, 0f2h, 072h, 003h, 0e9h, 014h, 0fah, 060h, 0e8h, 0e8h 14423 db 067h, 061h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 00eh, 068h, 061h, 01fh, 007h, 0cfh 14424 int70_handler: ; 0xffe8e LB 0x17 14714 db 080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 0eeh, 06ah, 066h 14715 db 061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 00dh, 068h, 061h, 01fh, 007h 14716 db 0cfh 14717 int70_handler: ; 0xffe8f LB 0x16 14425 14718 push ES ; 06 14426 14719 push DS ; 1e … … 14429 14722 pop DS ; 1f 14430 14723 cld ; fc 14431 call 065bch ; e8 2 56714724 call 065bch ; e8 24 67 14432 14725 popaw ; 61 14433 14726 pop DS ; 1f 14434 14727 pop ES ; 07 14435 14728 iret ; cf 14436 times 0x8 db 0 14437 db 'XM' 14729 add byte [bx+si], al ; 00 00 14730 add byte [bx+si], al ; 00 00 14731 add byte [bx+si], al ; 00 00 14732 add byte [bx+si+04dh], bl ; 00 58 4d 14438 14733 int08_handler: ; 0xffea5 LB 0xae 14439 14734 sti ; fb … … 14523 14818 cpu_reset: ; 0xffff0 LB 0x10 14524 14819 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 14525 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 05h14820 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 076h -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.md5sum
r42057 r42147 1 e550fec5c488fd7c2362c348dbf107d9*VBoxPcBios.rom1 17c56c7a9f98b53bce65dbdf7e2df09f *VBoxPcBios.rom -
trunk/src/VBox/Devices/PC/BIOS/bios.c
r40960 r42147 43 43 #include "inlines.h" 44 44 #include "biosint.h" 45 #include <VBox/version.h> 45 46 46 47 static const char bios_cvs_version_string[] = "VirtualBox " VBOX_VERSION_STRING;
Note:
See TracChangeset
for help on using the changeset viewer.