Changeset 51255 in vbox
- Timestamp:
- May 15, 2014 8:21:54 AM (10 years ago)
- Location:
- trunk/src/VBox/Devices
- Files:
-
- 4 edited
-
Graphics/BIOS/VBoxVgaBiosAlternative.asm (modified) (298 diffs)
-
Graphics/BIOS/VBoxVgaBiosAlternative.md5sum (modified) (1 diff)
-
PC/BIOS/VBoxBiosAlternative.asm (modified) (106 diffs)
-
PC/BIOS/VBoxBiosAlternative.md5sum (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative.asm
r51062 r51255 254 254 mov bx, 0c000h ; bb 00 c0 255 255 mov ds, bx ; 8e db 256 call 0 2ffdh ; e8 0d2f256 call 03007h ; e8 17 2f 257 257 popaw ; 61 258 258 pop DS ; 1f … … 1507 1507 times 194 db 0 1508 1508 1509 section _TEXT progbits vstart=0xa00 align=1 ; size=0x2f 3dclass=CODE group=AUTO1509 section _TEXT progbits vstart=0xa00 align=1 ; size=0x2f47 class=CODE group=AUTO 1510 1510 set_int_vector_: ; 0xc0a00 LB 0x1a 1511 1511 push bx ; 53 … … 1561 1561 call 00a1ah ; e8 ac ff 1562 1562 call 00a36h ; e8 c5 ff 1563 call 034 6ch ; e8 f8 291563 call 03476h ; e8 02 2a 1564 1564 mov dx, strict word 00022h ; ba 22 00 1565 1565 mov ax, strict word 00010h ; b8 10 00 … … 1588 1588 mov dx, strict word 00060h ; ba 60 00 1589 1589 mov ax, strict word 00040h ; b8 40 00 1590 call 02f5 0h ; e8 a4241590 call 02f5ah ; e8 ae 24 1591 1591 push SS ; 16 1592 1592 pop ES ; 07 … … 1596 1596 add dx, strict byte 00050h ; 83 c2 50 1597 1597 mov ax, strict word 00040h ; b8 40 00 1598 call 02f5 0h ; e8 91241598 call 02f5ah ; e8 9b 24 1599 1599 push SS ; 16 1600 1600 pop ES ; 07 … … 1617 1617 mov dx, strict word 00049h ; ba 49 00 1618 1618 mov ax, strict word 00040h ; b8 40 00 1619 call 02f3 4h ; e8 52241619 call 02f3eh ; e8 5c 24 1620 1620 xor ah, ah ; 30 e4 1621 call 02f 0dh ; e8 26241621 call 02f17h ; e8 30 24 1622 1622 mov ch, al ; 88 c5 1623 1623 cmp AL, strict byte 0ffh ; 3c ff … … 1635 1635 mov dx, 00084h ; ba 84 00 1636 1636 mov ax, strict word 00040h ; b8 40 00 1637 call 02f3 4h ; e8 21241637 call 02f3eh ; e8 2b 24 1638 1638 movzx di, al ; 0f b6 f8 1639 1639 inc di ; 47 1640 1640 mov dx, strict word 0004ah ; ba 4a 00 1641 1641 mov ax, strict word 00040h ; b8 40 00 1642 call 02f5 0h ; e8 30241642 call 02f5ah ; e8 3a 24 1643 1643 movzx bx, ch ; 0f b6 dd 1644 1644 sal bx, 003h ; c1 e3 03 … … 1660 1660 add dx, ax ; 01 c2 1661 1661 mov ax, word [bx+04833h] ; 8b 87 33 48 1662 call 02f5 0h ; e8 f9 231662 call 02f5ah ; e8 03 24 1663 1663 mov word [ss:si], ax ; 36 89 04 1664 1664 lea sp, [bp-008h] ; 8d 66 f8 … … 1697 1697 mov dx, strict word 0007ch ; ba 7c 00 1698 1698 xor ax, ax ; 31 c0 1699 call 02f 6ch ; e8 d6231699 call 02f76h ; e8 e0 23 1700 1700 push SS ; 16 1701 1701 pop ES ; 07 … … 1705 1705 mov dx, 00085h ; ba 85 00 1706 1706 mov ax, strict word 00040h ; b8 40 00 1707 call 02f3 4h ; e8 8a231707 call 02f3eh ; e8 94 23 1708 1708 xor ah, ah ; 30 e4 1709 1709 push SS ; 16 … … 1712 1712 mov dx, 00084h ; ba 84 00 1713 1713 mov ax, strict word 00040h ; b8 40 00 1714 call 02f3 4h ; e8 7a231714 call 02f3eh ; e8 84 23 1715 1715 xor ah, ah ; 30 e4 1716 1716 push SS ; 16 … … 1750 1750 mov dx, strict word 00049h ; ba 49 00 1751 1751 mov ax, strict word 00040h ; b8 40 00 1752 call 02f3 4h ; e8 27231752 call 02f3eh ; e8 31 23 1753 1753 xor ah, ah ; 30 e4 1754 call 02f 0dh ; e8 fb 221754 call 02f17h ; e8 05 23 1755 1755 mov cl, al ; 88 c1 1756 1756 cmp AL, strict byte 0ffh ; 3c ff … … 1774 1774 mov dx, strict word 0004ah ; ba 4a 00 1775 1775 mov ax, strict word 00040h ; b8 40 00 1776 call 02f5 0h ; e8 fc 221776 call 02f5ah ; e8 06 23 1777 1777 imul ax, word [bp-00ah] ; 0f af 46 f6 1778 1778 mov bx, si ; 89 f3 … … 1795 1795 mov dx, bx ; 89 da 1796 1796 mov ax, 0a000h ; b8 00 a0 1797 call 02f3 4h ; e8 a6221797 call 02f3eh ; e8 b0 22 1798 1798 and al, byte [bp-008h] ; 22 46 f8 1799 1799 test al, al ; 84 c0 … … 1816 1816 mov dx, bx ; 89 da 1817 1817 mov ax, 0b800h ; b8 00 b8 1818 call 02f3 4h ; e8 71221818 call 02f3eh ; e8 7b 22 1819 1819 movzx bx, cl ; 0f b6 d9 1820 1820 sal bx, 003h ; c1 e3 03 … … 1846 1846 mov dx, strict word 0004ah ; ba 4a 00 1847 1847 mov ax, strict word 00040h ; b8 40 00 1848 call 02f5 0h ; e8 43221848 call 02f5ah ; e8 4d 22 1849 1849 sal ax, 003h ; c1 e0 03 1850 1850 imul ax, word [bp-00ah] ; 0f af 46 f6 … … 1852 1852 add dx, ax ; 01 c2 1853 1853 mov ax, 0a000h ; b8 00 a0 1854 call 02f3 4h ; e8 16221854 call 02f3eh ; e8 20 22 1855 1855 mov ch, al ; 88 c5 1856 1856 jmp short 00d24h ; eb 02 … … 1959 1959 mov dx, strict word 00060h ; ba 60 00 1960 1960 mov ax, strict word 00040h ; b8 40 00 1961 call 02f 5eh ; e8 7d211961 call 02f68h ; e8 87 21 1962 1962 mov dx, 00089h ; ba 89 00 1963 1963 mov ax, strict word 00040h ; b8 40 00 1964 call 02f3 4h ; e8 4a211964 call 02f3eh ; e8 54 21 1965 1965 mov bl, al ; 88 c3 1966 1966 mov dx, 00085h ; ba 85 00 1967 1967 mov ax, strict word 00040h ; b8 40 00 1968 call 02f5 0h ; e8 5b211968 call 02f5ah ; e8 65 21 1969 1969 mov dx, ax ; 89 c2 1970 1970 test bl, 001h ; f6 c3 01 … … 1997 1997 mov dx, strict word 00063h ; ba 63 00 1998 1998 mov ax, strict word 00040h ; b8 40 00 1999 call 02f5 0h ; e8 14211999 call 02f5ah ; e8 1e 21 2000 2000 mov bx, ax ; 89 c3 2001 2001 mov AL, strict byte 00ah ; b0 0a … … 2036 2036 mov bx, cx ; 89 cb 2037 2037 mov ax, strict word 00040h ; b8 40 00 2038 call 02f 5eh ; e8 dd202038 call 02f68h ; e8 e7 20 2039 2039 mov dx, strict word 00062h ; ba 62 00 2040 2040 mov ax, strict word 00040h ; b8 40 00 2041 call 02f3 4h ; e8 aa202041 call 02f3eh ; e8 b4 20 2042 2042 cmp al, byte [bp-008h] ; 3a 46 f8 2043 2043 jne short 00ef8h ; 75 69 2044 2044 mov dx, strict word 0004ah ; ba 4a 00 2045 2045 mov ax, strict word 00040h ; b8 40 00 2046 call 02f5 0h ; e8 b8202046 call 02f5ah ; e8 c2 20 2047 2047 mov bx, ax ; 89 c3 2048 2048 mov dx, 00084h ; ba 84 00 2049 2049 mov ax, strict word 00040h ; b8 40 00 2050 call 02f3 4h ; e8 91202050 call 02f3eh ; e8 9b 20 2051 2051 xor ah, ah ; 30 e4 2052 2052 mov dx, ax ; 89 c2 … … 2068 2068 mov dx, strict word 00063h ; ba 63 00 2069 2069 mov ax, strict word 00040h ; b8 40 00 2070 call 02f5 0h ; e8 7a202070 call 02f5ah ; e8 84 20 2071 2071 mov bx, ax ; 89 c3 2072 2072 mov AL, strict byte 00eh ; b0 0e … … 2107 2107 mov dx, strict word 00049h ; ba 49 00 2108 2108 mov ax, strict word 00040h ; b8 40 00 2109 call 02f3 4h ; e8 19202109 call 02f3eh ; e8 23 20 2110 2110 xor ah, ah ; 30 e4 2111 call 02f 0dh ; e8 ed1f2111 call 02f17h ; e8 f7 1f 2112 2112 mov ch, al ; 88 c5 2113 2113 cmp AL, strict byte 0ffh ; 3c ff … … 2124 2124 mov dx, strict word 0004ah ; ba 4a 00 2125 2125 mov ax, strict word 00040h ; b8 40 00 2126 call 02f5 0h ; e8 04202126 call 02f5ah ; e8 0e 20 2127 2127 mov bx, ax ; 89 c3 2128 2128 mov dx, 00084h ; ba 84 00 2129 2129 mov ax, strict word 00040h ; b8 40 00 2130 call 02f3 4h ; e8 dd1f2130 call 02f3eh ; e8 e7 1f 2131 2131 xor ah, ah ; 30 e4 2132 2132 inc ax ; 40 … … 2142 2142 mov dx, strict word 0004eh ; ba 4e 00 2143 2143 mov ax, strict word 00040h ; b8 40 00 2144 call 02f 5eh ; e8 e71f2144 call 02f68h ; e8 f1 1f 2145 2145 or si, 000ffh ; 81 ce ff 00 2146 2146 lea bx, [si+001h] ; 8d 5c 01 … … 2154 2154 mov dx, strict word 00063h ; ba 63 00 2155 2155 mov ax, strict word 00040h ; b8 40 00 2156 call 02f5 0h ; e8 b21f2156 call 02f5ah ; e8 bc 1f 2157 2157 mov si, ax ; 89 c6 2158 2158 mov AL, strict byte 00ch ; b0 0c … … 2175 2175 mov dx, strict word 00062h ; ba 62 00 2176 2176 mov ax, strict word 00040h ; b8 40 00 2177 call 02f4 2h ; e8 781f2177 call 02f4ch ; e8 82 1f 2178 2178 mov dx, word [bp-00eh] ; 8b 56 f2 2179 2179 mov ax, si ; 89 f0 … … 2187 2187 pop bp ; 5d 2188 2188 retn ; c3 2189 biosfn_set_video_mode_: ; 0xc0fdc LB 0x3 872189 biosfn_set_video_mode_: ; 0xc0fdc LB 0x391 2190 2190 push bp ; 55 2191 2191 mov bp, sp ; 89 e5 … … 2196 2196 push di ; 57 2197 2197 sub sp, strict byte 00010h ; 83 ec 10 2198 mov byte [bp-00 eh], al ; 88 46 f22198 mov byte [bp-00ch], al ; 88 46 f4 2199 2199 and AL, strict byte 080h ; 24 80 2200 2200 mov byte [bp-010h], al ; 88 46 f0 … … 2208 2208 mov dx, 003c5h ; ba c5 03 2209 2209 out DX, AL ; ee 2210 and byte [bp-00eh], 07fh ; 80 66 f2 7f 2211 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2212 call 02f0dh ; e8 00 1f 2210 and byte [bp-00ch], 07fh ; 80 66 f4 7f 2211 cmp byte [bp-00ch], 007h ; 80 7e f4 07 2212 jne short 01010h ; 75 04 2213 mov byte [bp-00ch], 000h ; c6 46 f4 00 2214 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 2215 call 02f17h ; e8 00 1f 2213 2216 mov byte [bp-012h], al ; 88 46 ee 2214 2217 cmp AL, strict byte 0ffh ; 3c ff 2215 je near 013 59h ; 0f 84 43 032218 je near 01363h ; 0f 84 43 03 2216 2219 movzx si, al ; 0f b6 f0 2217 2220 mov al, byte [si+048afh] ; 8a 84 af 48 2218 mov byte [bp-00 ch], al ; 88 46 f42221 mov byte [bp-00eh], al ; 88 46 f2 2219 2222 movzx bx, al ; 0f b6 d8 2220 2223 sal bx, 006h ; c1 e3 06 … … 2227 2230 mov dx, 00087h ; ba 87 00 2228 2231 mov ax, strict word 00040h ; b8 40 00 2229 call 02f3 4h ; e8 ed 1e2232 call 02f3eh ; e8 ed 1e 2230 2233 mov dx, 00088h ; ba 88 00 2231 2234 mov ax, strict word 00040h ; b8 40 00 2232 call 02f3 4h ; e8 e4 1e2235 call 02f3eh ; e8 e4 1e 2233 2236 mov dx, 00089h ; ba 89 00 2234 2237 mov ax, strict word 00040h ; b8 40 00 2235 call 02f3 4h ; e8 db 1e2238 call 02f3eh ; e8 db 1e 2236 2239 mov ah, al ; 88 c4 2237 2240 test AL, strict byte 008h ; a8 08 2238 jne near 010 ebh ; 0f 85 8a 002241 jne near 010f5h ; 0f 85 8a 00 2239 2242 mov bx, si ; 89 f3 2240 2243 sal bx, 003h ; c1 e3 03 … … 2247 2250 mov bl, byte [bx+04836h] ; 8a 9f 36 48 2248 2251 cmp bl, 001h ; 80 fb 01 2249 jc short 010 8bh ; 72 0e2250 jbe short 0109 4h ; 76 152252 jc short 01095h ; 72 0e 2253 jbe short 0109eh ; 76 15 2251 2254 cmp bl, 003h ; 80 fb 03 2252 je short 010 9eh ; 74 1a2255 je short 010a8h ; 74 1a 2253 2256 cmp bl, 002h ; 80 fb 02 2254 je short 010 99h ; 74 102255 jmp short 010a 1h ; eb 162257 je short 010a3h ; 74 10 2258 jmp short 010abh ; eb 16 2256 2259 test bl, bl ; 84 db 2257 jne short 010a 1h ; 75 122260 jne short 010abh ; 75 12 2258 2261 mov di, 05043h ; bf 43 50 2259 jmp short 010a 1h ; eb 0d2262 jmp short 010abh ; eb 0d 2260 2263 mov di, 05103h ; bf 03 51 2261 jmp short 010a 1h ; eb 082264 jmp short 010abh ; eb 08 2262 2265 mov di, 051c3h ; bf c3 51 2263 jmp short 010a 1h ; eb 032266 jmp short 010abh ; eb 03 2264 2267 mov di, 05283h ; bf 83 52 2265 2268 xor bx, bx ; 31 db 2266 jmp short 010b 4h ; eb 0f2269 jmp short 010beh ; eb 0f 2267 2270 xor al, al ; 30 c0 2268 2271 mov dx, 003c9h ; ba c9 03 … … 2272 2275 inc bx ; 43 2273 2276 cmp bx, 00100h ; 81 fb 00 01 2274 jnc short 010 deh ; 73 2a2277 jnc short 010e8h ; 73 2a 2275 2278 movzx si, byte [bp-012h] ; 0f b6 76 ee 2276 2279 sal si, 003h ; c1 e6 03 … … 2278 2281 movzx dx, byte [si+048bfh] ; 0f b6 94 bf 48 2279 2282 cmp bx, dx ; 39 d3 2280 jnbe short 010a 5h ; 77 dc2283 jnbe short 010afh ; 77 dc 2281 2284 imul si, bx, strict byte 00003h ; 6b f3 03 2282 2285 add si, di ; 01 fe … … 2288 2291 mov al, byte [si+002h] ; 8a 44 02 2289 2292 out DX, AL ; ee 2290 jmp short 010 adh ; eb cf2293 jmp short 010b7h ; eb cf 2291 2294 test ah, 002h ; f6 c4 02 2292 je short 010 ebh ; 74 082295 je short 010f5h ; 74 08 2293 2296 mov dx, 00100h ; ba 00 01 2294 2297 xor ax, ax ; 31 c0 2295 call 00d2eh ; e8 43fc2298 call 00d2eh ; e8 39 fc 2296 2299 mov dx, 003dah ; ba da 03 2297 2300 in AL, DX ; ec … … 2299 2302 ; sub ah, ah ; 2a e4 2300 2303 xor bx, bx ; 31 db 2301 jmp short 01 0fah ; eb 052304 jmp short 01104h ; eb 05 2302 2305 cmp bx, strict byte 00013h ; 83 fb 13 2303 jnbe short 0111 1h ; 77 172306 jnbe short 0111bh ; 77 17 2304 2307 mov al, bl ; 88 d8 2305 2308 mov dx, 003c0h ; ba c0 03 2306 2309 out DX, AL ; ee 2307 movzx si, byte [bp-00 ch] ; 0f b6 76 f42310 movzx si, byte [bp-00eh] ; 0f b6 76 f2 2308 2311 sal si, 006h ; c1 e6 06 2309 2312 add si, bx ; 01 de … … 2311 2314 out DX, AL ; ee 2312 2315 inc bx ; 43 2313 jmp short 010f 5h ; eb e42316 jmp short 010ffh ; eb e4 2314 2317 mov AL, strict byte 014h ; b0 14 2315 2318 mov dx, 003c0h ; ba c0 03 … … 2323 2326 out DX, AL ; ee 2324 2327 mov bx, strict word 00001h ; bb 01 00 2325 jmp short 011 2eh ; eb 052328 jmp short 01138h ; eb 05 2326 2329 cmp bx, strict byte 00004h ; 83 fb 04 2327 jnbe short 011 48h ; 77 1a2330 jnbe short 01152h ; 77 1a 2328 2331 mov al, bl ; 88 d8 2329 2332 mov dx, 003c4h ; ba c4 03 2330 2333 out DX, AL ; ee 2331 movzx si, byte [bp-00 ch] ; 0f b6 76 f42334 movzx si, byte [bp-00eh] ; 0f b6 76 f2 2332 2335 sal si, 006h ; c1 e6 06 2333 2336 add si, bx ; 01 de … … 2336 2339 out DX, AL ; ee 2337 2340 inc bx ; 43 2338 jmp short 011 29h ; eb e12341 jmp short 01133h ; eb e1 2339 2342 xor bx, bx ; 31 db 2340 jmp short 0115 1h ; eb 052343 jmp short 0115bh ; eb 05 2341 2344 cmp bx, strict byte 00008h ; 83 fb 08 2342 jnbe short 011 6bh ; 77 1a2345 jnbe short 01175h ; 77 1a 2343 2346 mov al, bl ; 88 d8 2344 2347 mov dx, 003ceh ; ba ce 03 2345 2348 out DX, AL ; ee 2346 movzx si, byte [bp-00 ch] ; 0f b6 76 f42349 movzx si, byte [bp-00eh] ; 0f b6 76 f2 2347 2350 sal si, 006h ; c1 e6 06 2348 2351 add si, bx ; 01 de … … 2351 2354 out DX, AL ; ee 2352 2355 inc bx ; 43 2353 jmp short 011 4ch ; eb e12356 jmp short 01156h ; eb e1 2354 2357 movzx bx, byte [bp-012h] ; 0f b6 5e ee 2355 2358 sal bx, 003h ; c1 e3 03 2356 2359 cmp byte [bx+04831h], 001h ; 80 bf 31 48 01 2357 jne short 011 7eh ; 75 052360 jne short 01188h ; 75 05 2358 2361 mov dx, 003b4h ; ba b4 03 2359 jmp short 0118 1h ; eb 032362 jmp short 0118bh ; eb 03 2360 2363 mov dx, 003d4h ; ba d4 03 2361 2364 mov si, dx ; 89 d6 … … 2363 2366 out DX, ax ; ef 2364 2367 xor bx, bx ; 31 db 2365 jmp short 0119 0h ; eb 052368 jmp short 0119ah ; eb 05 2366 2369 cmp bx, strict byte 00018h ; 83 fb 18 2367 jnbe short 011 abh ; 77 1b2370 jnbe short 011b5h ; 77 1b 2368 2371 mov al, bl ; 88 d8 2369 2372 mov dx, si ; 89 f2 2370 2373 out DX, AL ; ee 2371 movzx cx, byte [bp-00 ch] ; 0f b6 4e f42374 movzx cx, byte [bp-00eh] ; 0f b6 4e f2 2372 2375 sal cx, 006h ; c1 e1 06 2373 2376 mov di, cx ; 89 cf … … 2377 2380 out DX, AL ; ee 2378 2381 inc bx ; 43 2379 jmp short 011 8bh ; eb e02382 jmp short 01195h ; eb e0 2380 2383 mov bx, cx ; 89 cb 2381 2384 mov al, byte [bx+048cch] ; 8a 87 cc 48 … … 2390 2393 ; sub ah, ah ; 2a e4 2391 2394 cmp byte [bp-010h], 000h ; 80 7e f0 00 2392 jne short 012 26h ; 75 5f2395 jne short 01230h ; 75 5f 2393 2396 movzx bx, byte [bp-012h] ; 0f b6 5e ee 2394 2397 sal bx, 003h ; c1 e3 03 2395 2398 cmp byte [bx+04830h], 000h ; 80 bf 30 48 00 2396 jne short 011 e8h ; 75 132399 jne short 011f2h ; 75 13 2397 2400 mov es, [bx+04833h] ; 8e 87 33 48 2398 2401 mov cx, 04000h ; b9 00 40 … … 2400 2403 xor di, di ; 31 ff 2401 2404 cld ; fc 2402 jcxz 011 e6h ; e3 022405 jcxz 011f0h ; e3 02 2403 2406 rep stosw ; f3 ab 2404 jmp short 012 26h ; eb 3e2405 cmp byte [bp-00 eh], 00dh ; 80 7e f20d2406 jnc short 0120 0h ; 73 122407 jmp short 01230h ; eb 3e 2408 cmp byte [bp-00ch], 00dh ; 80 7e f4 0d 2409 jnc short 0120ah ; 73 12 2407 2410 mov es, [bx+04833h] ; 8e 87 33 48 2408 2411 mov cx, 04000h ; b9 00 40 … … 2410 2413 xor di, di ; 31 ff 2411 2414 cld ; fc 2412 jcxz 01 1feh ; e3 022415 jcxz 01208h ; e3 02 2413 2416 rep stosw ; f3 ab 2414 jmp short 012 26h ; eb 262417 jmp short 01230h ; eb 26 2415 2418 mov AL, strict byte 002h ; b0 02 2416 2419 mov dx, 003c4h ; ba c4 03 … … 2428 2431 xor di, di ; 31 ff 2429 2432 cld ; fc 2430 jcxz 0122 2h ; e3 022433 jcxz 0122ch ; e3 02 2431 2434 rep stosw ; f3 ab 2432 2435 mov al, byte [bp-01ah] ; 8a 46 e6 2433 2436 out DX, AL ; ee 2434 movzx bx, byte [bp-00 eh] ; 0f b6 5e f22437 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 2435 2438 mov dx, strict word 00049h ; ba 49 00 2436 2439 mov ax, strict word 00040h ; b8 40 00 2437 call 02f4 2h ; e8 0f 1d2440 call 02f4ch ; e8 0f 1d 2438 2441 mov bx, word [bp-018h] ; 8b 5e e8 2439 2442 mov dx, strict word 0004ah ; ba 4a 00 2440 2443 mov ax, strict word 00040h ; b8 40 00 2441 call 02f 5eh ; e8 1f 1d2442 movzx bx, byte [bp-00 ch] ; 0f b6 5e f42444 call 02f68h ; e8 1f 1d 2445 movzx bx, byte [bp-00eh] ; 0f b6 5e f2 2443 2446 sal bx, 006h ; c1 e3 06 2444 2447 mov bx, word [bx+048c6h] ; 8b 9f c6 48 2445 2448 mov dx, strict word 0004ch ; ba 4c 00 2446 2449 mov ax, strict word 00040h ; b8 40 00 2447 call 02f 5eh ; e8 0b 1d2450 call 02f68h ; e8 0b 1d 2448 2451 mov bx, si ; 89 f3 2449 2452 mov dx, strict word 00063h ; ba 63 00 2450 2453 mov ax, strict word 00040h ; b8 40 00 2451 call 02f 5eh ; e8 00 1d2454 call 02f68h ; e8 00 1d 2452 2455 movzx bx, byte [bp-016h] ; 0f b6 5e ea 2453 2456 mov dx, 00084h ; ba 84 00 2454 2457 mov ax, strict word 00040h ; b8 40 00 2455 call 02f4 2h ; e8 d7 1c2458 call 02f4ch ; e8 d7 1c 2456 2459 mov bx, word [bp-014h] ; 8b 5e ec 2457 2460 mov dx, 00085h ; ba 85 00 2458 2461 mov ax, strict word 00040h ; b8 40 00 2459 call 02f 5eh ; e8 e7 1c2462 call 02f68h ; e8 e7 1c 2460 2463 mov al, byte [bp-010h] ; 8a 46 f0 2461 2464 or AL, strict byte 060h ; 0c 60 … … 2463 2466 mov dx, 00087h ; ba 87 00 2464 2467 mov ax, strict word 00040h ; b8 40 00 2465 call 02f4 2h ; e8 ba 1c2468 call 02f4ch ; e8 ba 1c 2466 2469 mov bx, 000f9h ; bb f9 00 2467 2470 mov dx, 00088h ; ba 88 00 2468 2471 mov ax, strict word 00040h ; b8 40 00 2469 call 02f4 2h ; e8 ae 1c2472 call 02f4ch ; e8 ae 1c 2470 2473 mov dx, 00089h ; ba 89 00 2471 2474 mov ax, strict word 00040h ; b8 40 00 2472 call 02f3 4h ; e8 97 1c2475 call 02f3eh ; e8 97 1c 2473 2476 and AL, strict byte 07fh ; 24 7f 2474 2477 movzx bx, al ; 0f b6 d8 2475 2478 mov dx, 00089h ; ba 89 00 2476 2479 mov ax, strict word 00040h ; b8 40 00 2477 call 02f4 2h ; e8 97 1c2480 call 02f4ch ; e8 97 1c 2478 2481 mov bx, strict word 00008h ; bb 08 00 2479 2482 mov dx, 0008ah ; ba 8a 00 2480 2483 mov ax, strict word 00040h ; b8 40 00 2481 call 02f4 2h ; e8 8b 1c2484 call 02f4ch ; e8 8b 1c 2482 2485 mov cx, ds ; 8c d9 2483 2486 mov bx, 05593h ; bb 93 55 2484 2487 mov dx, 000a8h ; ba a8 00 2485 2488 mov ax, strict word 00040h ; b8 40 00 2486 call 02f 7eh ; e8 b9 1c2489 call 02f88h ; e8 b9 1c 2487 2490 xor bx, bx ; 31 db 2488 2491 mov dx, strict word 00065h ; ba 65 00 2489 2492 mov ax, strict word 00040h ; b8 40 00 2490 call 02f4 2h ; e8 72 1c2493 call 02f4ch ; e8 72 1c 2491 2494 xor bx, bx ; 31 db 2492 2495 mov dx, strict word 00066h ; ba 66 00 2493 2496 mov ax, strict word 00040h ; b8 40 00 2494 call 02f4 2h ; e8 67 1c2497 call 02f4ch ; e8 67 1c 2495 2498 movzx bx, byte [bp-012h] ; 0f b6 5e ee 2496 2499 sal bx, 003h ; c1 e3 03 2497 2500 cmp byte [bx+04830h], 000h ; 80 bf 30 48 00 2498 jne short 012f 2h ; 75 092501 jne short 012fch ; 75 09 2499 2502 mov dx, strict word 00007h ; ba 07 00 2500 2503 mov ax, strict word 00006h ; b8 06 00 2501 call 00dbah ; e8 c8fa2504 call 00dbah ; e8 be fa 2502 2505 xor bx, bx ; 31 db 2503 jmp short 01 2fbh ; eb 052506 jmp short 01305h ; eb 05 2504 2507 cmp bx, strict byte 00008h ; 83 fb 08 2505 jnc short 013 06h ; 73 0b2508 jnc short 01310h ; 73 0b 2506 2509 movzx ax, bl ; 0f b6 c3 2507 2510 xor dx, dx ; 31 d2 2508 call 00e5eh ; e8 5 bfb2511 call 00e5eh ; e8 51 fb 2509 2512 inc bx ; 43 2510 jmp short 01 2f6h ; eb f02513 jmp short 01300h ; eb f0 2511 2514 xor ax, ax ; 31 c0 2512 call 00f00h ; e8 f5fb2515 call 00f00h ; e8 eb fb 2513 2516 movzx bx, byte [bp-012h] ; 0f b6 5e ee 2514 2517 sal bx, 003h ; c1 e3 03 2515 2518 cmp byte [bx+04830h], 000h ; 80 bf 30 48 00 2516 jne short 013 29h ; 75 102519 jne short 01333h ; 75 10 2517 2520 xor bl, bl ; 30 db 2518 2521 mov AL, strict byte 004h ; b0 04 … … 2525 2528 mov dx, 059afh ; ba af 59 2526 2529 mov ax, strict word 0001fh ; b8 1f 00 2527 call 00a00h ; e8 c ef62530 call 00a00h ; e8 c4 f6 2528 2531 mov ax, word [bp-014h] ; 8b 46 ec 2529 2532 cmp ax, strict word 00010h ; 3d 10 00 2530 je short 0135 4h ; 74 1a2533 je short 0135eh ; 74 1a 2531 2534 cmp ax, strict word 0000eh ; 3d 0e 00 2532 je short 013 4fh ; 74 102535 je short 01359h ; 74 10 2533 2536 cmp ax, strict word 00008h ; 3d 08 00 2534 jne short 013 59h ; 75 152537 jne short 01363h ; 75 15 2535 2538 mov dx, 055afh ; ba af 55 2536 2539 mov ax, strict word 00043h ; b8 43 00 2537 call 00a00h ; e8 b3f62538 jmp short 013 59h ; eb 0a2540 call 00a00h ; e8 a9 f6 2541 jmp short 01363h ; eb 0a 2539 2542 mov dx, 05dafh ; ba af 5d 2540 jmp short 013 47h ; eb f32543 jmp short 01351h ; eb f3 2541 2544 mov dx, 06bafh ; ba af 6b 2542 jmp short 013 47h ; eb ee2545 jmp short 01351h ; eb ee 2543 2546 lea sp, [bp-00ah] ; 8d 66 f6 2544 2547 pop di ; 5f … … 2549 2552 pop bp ; 5d 2550 2553 retn ; c3 2551 vgamem_copy_pl4_: ; 0xc136 3LB 0x762554 vgamem_copy_pl4_: ; 0xc136d LB 0x76 2552 2555 push bp ; 55 2553 2556 mov bp, sp ; 89 e5 … … 2575 2578 xor bl, bl ; 30 db 2576 2579 cmp bl, byte [bp+006h] ; 3a 5e 06 2577 jnc short 013 c9h ; 73 292580 jnc short 013d3h ; 73 29 2578 2581 movzx cx, bh ; 0f b6 cf 2579 2582 movzx si, bl ; 0f b6 f3 … … 2587 2590 mov es, dx ; 8e c2 2588 2591 cld ; fc 2589 jcxz 013c 5h ; e3 062592 jcxz 013cfh ; e3 06 2590 2593 push DS ; 1e 2591 2594 mov ds, dx ; 8e da … … 2594 2597 db 0feh, 0c3h 2595 2598 ; inc bl ; fe c3 2596 jmp short 013 9bh ; eb d22599 jmp short 013a5h ; eb d2 2597 2600 mov ax, strict word 00005h ; b8 05 00 2598 2601 mov dx, 003ceh ; ba ce 03 … … 2603 2606 pop bp ; 5d 2604 2607 retn 00004h ; c2 04 00 2605 vgamem_fill_pl4_: ; 0xc13 d9LB 0x612608 vgamem_fill_pl4_: ; 0xc13e3 LB 0x61 2606 2609 push bp ; 55 2607 2610 mov bp, sp ; 89 e5 … … 2624 2627 xor bl, bl ; 30 db 2625 2628 cmp bl, byte [bp+004h] ; 3a 5e 04 2626 jnc short 014 2bh ; 73 222629 jnc short 01435h ; 73 22 2627 2630 movzx cx, byte [bp-004h] ; 0f b6 4e fc 2628 2631 movzx ax, byte [bp+006h] ; 0f b6 46 06 … … 2634 2637 mov es, dx ; 8e c2 2635 2638 cld ; fc 2636 jcxz 014 27h ; e3 022639 jcxz 01431h ; e3 02 2637 2640 rep stosb ; f3 aa 2638 2641 db 0feh, 0c3h 2639 2642 ; inc bl ; fe c3 2640 jmp short 0140 4h ; eb d92643 jmp short 0140eh ; eb d9 2641 2644 mov ax, strict word 00005h ; b8 05 00 2642 2645 mov dx, 003ceh ; ba ce 03 … … 2646 2649 pop bp ; 5d 2647 2650 retn 00004h ; c2 04 00 2648 vgamem_copy_cga_: ; 0xc14 3aLB 0xa42651 vgamem_copy_cga_: ; 0xc1444 LB 0xa4 2649 2652 push bp ; 55 2650 2653 mov bp, sp ; 89 e5 … … 2671 2674 xor bl, bl ; 30 db 2672 2675 cmp bl, byte [bp+006h] ; 3a 5e 06 2673 jnc short 014d 5h ; 73 612676 jnc short 014dfh ; 73 61 2674 2677 test bl, 001h ; f6 c3 01 2675 je short 014 aah ; 74 312678 je short 014b4h ; 74 31 2676 2679 movzx cx, bh ; 0f b6 cf 2677 2680 movzx si, bl ; 0f b6 f3 … … 2688 2691 mov es, dx ; 8e c2 2689 2692 cld ; fc 2690 jcxz 014 a8h ; e3 062693 jcxz 014b2h ; e3 06 2691 2694 push DS ; 1e 2692 2695 mov ds, dx ; 8e da 2693 2696 rep movsb ; f3 a4 2694 2697 pop DS ; 1f 2695 jmp short 014d 1h ; eb 272698 jmp short 014dbh ; eb 27 2696 2699 movzx cx, bh ; 0f b6 cf 2697 2700 movzx ax, bl ; 0f b6 c3 … … 2706 2709 mov es, dx ; 8e c2 2707 2710 cld ; fc 2708 jcxz 014d 1h ; e3 062711 jcxz 014dbh ; e3 06 2709 2712 push DS ; 1e 2710 2713 mov ds, dx ; 8e da … … 2713 2716 db 0feh, 0c3h 2714 2717 ; inc bl ; fe c3 2715 jmp short 014 6fh ; eb 9a2718 jmp short 01479h ; eb 9a 2716 2719 lea sp, [bp-004h] ; 8d 66 fc 2717 2720 pop di ; 5f … … 2719 2722 pop bp ; 5d 2720 2723 retn 00004h ; c2 04 00 2721 vgamem_fill_cga_: ; 0xc14 deLB 0x8a2724 vgamem_fill_cga_: ; 0xc14e8 LB 0x8a 2722 2725 push bp ; 55 2723 2726 mov bp, sp ; 89 e5 … … 2738 2741 xor bl, bl ; 30 db 2739 2742 cmp bl, byte [bp+004h] ; 3a 5e 04 2740 jnc short 015 5fh ; 73 572743 jnc short 01569h ; 73 57 2741 2744 test bl, 001h ; f6 c3 01 2742 je short 015 3ch ; 74 2f2745 je short 01546h ; 74 2f 2743 2746 movzx cx, byte [bp-006h] ; 0f b6 4e fa 2744 2747 movzx ax, byte [bp+006h] ; 0f b6 46 06 … … 2755 2758 mov es, dx ; 8e c2 2756 2759 cld ; fc 2757 jcxz 015 3ah ; e3 022760 jcxz 01544h ; e3 02 2758 2761 rep stosb ; f3 aa 2759 jmp short 015 5bh ; eb 1f2762 jmp short 01565h ; eb 1f 2760 2763 movzx cx, byte [bp-006h] ; 0f b6 4e fa 2761 2764 movzx ax, byte [bp+006h] ; 0f b6 46 06 … … 2768 2771 mov es, dx ; 8e c2 2769 2772 cld ; fc 2770 jcxz 015 5bh ; e3 022773 jcxz 01565h ; e3 02 2771 2774 rep stosb ; f3 aa 2772 2775 db 0feh, 0c3h 2773 2776 ; inc bl ; fe c3 2774 jmp short 0150 3h ; eb a42777 jmp short 0150dh ; eb a4 2775 2778 lea sp, [bp-004h] ; 8d 66 fc 2776 2779 pop di ; 5f … … 2778 2781 pop bp ; 5d 2779 2782 retn 00004h ; c2 04 00 2780 biosfn_scroll_: ; 0xc15 68LB 0x5062783 biosfn_scroll_: ; 0xc1572 LB 0x506 2781 2784 push bp ; 55 2782 2785 mov bp, sp ; 89 e5 … … 2789 2792 mov byte [bp-006h], cl ; 88 4e fa 2790 2793 cmp bl, byte [bp+004h] ; 3a 5e 04 2791 jnbe near 01a6 5h ; 0f 87 e2 042794 jnbe near 01a6fh ; 0f 87 e2 04 2792 2795 cmp cl, byte [bp+006h] ; 3a 4e 06 2793 jnbe near 01a6 5h ; 0f 87 db 042796 jnbe near 01a6fh ; 0f 87 db 04 2794 2797 mov dx, strict word 00049h ; ba 49 00 2795 2798 mov ax, strict word 00040h ; b8 40 00 2796 call 02f3 4h ; e8 a1 192799 call 02f3eh ; e8 a1 19 2797 2800 xor ah, ah ; 30 e4 2798 call 02f 0dh ; e8 75 192801 call 02f17h ; e8 75 19 2799 2802 mov byte [bp-00eh], al ; 88 46 f2 2800 2803 cmp AL, strict byte 0ffh ; 3c ff 2801 je near 01a6 5h ; 0f 84 c4 042804 je near 01a6fh ; 0f 84 c4 04 2802 2805 mov dx, 00084h ; ba 84 00 2803 2806 mov ax, strict word 00040h ; b8 40 00 2804 call 02f3 4h ; e8 8a 192807 call 02f3eh ; e8 8a 19 2805 2808 movzx cx, al ; 0f b6 c8 2806 2809 inc cx ; 41 2807 2810 mov dx, strict word 0004ah ; ba 4a 00 2808 2811 mov ax, strict word 00040h ; b8 40 00 2809 call 02f5 0h ; e8 99 192812 call 02f5ah ; e8 99 19 2810 2813 mov word [bp-016h], ax ; 89 46 ea 2811 2814 cmp byte [bp+008h], 0ffh ; 80 7e 08 ff 2812 jne short 015 cch ; 75 0c2815 jne short 015d6h ; 75 0c 2813 2816 mov dx, strict word 00062h ; ba 62 00 2814 2817 mov ax, strict word 00040h ; b8 40 00 2815 call 02f3 4h ; e8 6b 192818 call 02f3eh ; e8 6b 19 2816 2819 mov byte [bp+008h], al ; 88 46 08 2817 2820 movzx ax, byte [bp+004h] ; 0f b6 46 04 2818 2821 cmp ax, cx ; 39 c8 2819 jc short 015 dbh ; 72 072822 jc short 015e5h ; 72 07 2820 2823 mov al, cl ; 88 c8 2821 2824 db 0feh, 0c8h … … 2824 2827 movzx ax, byte [bp+006h] ; 0f b6 46 06 2825 2828 cmp ax, word [bp-016h] ; 3b 46 ea 2826 jc short 015 ech ; 72 082829 jc short 015f6h ; 72 08 2827 2830 mov al, byte [bp-016h] ; 8a 46 ea 2828 2831 db 0feh, 0c8h … … 2831 2834 movzx ax, byte [bp-010h] ; 0f b6 46 f0 2832 2835 cmp ax, cx ; 39 c8 2833 jbe short 01 5f8h ; 76 042836 jbe short 01602h ; 76 04 2834 2837 mov byte [bp-010h], 000h ; c6 46 f0 00 2835 2838 mov al, byte [bp+006h] ; 8a 46 06 … … 2850 2853 imul ax, cx ; 0f af c1 2851 2854 cmp byte [di+04830h], 000h ; 80 bd 30 48 00 2852 jne near 017 c7h ; 0f 85 9f 012855 jne near 017d1h ; 0f 85 9f 01 2853 2856 mov dx, ax ; 89 c2 2854 2857 add dx, ax ; 01 c2 … … 2858 2861 imul bx, dx ; 0f af da 2859 2862 cmp byte [bp-010h], 000h ; 80 7e f0 00 2860 jne short 016 77h ; 75 3a2863 jne short 01681h ; 75 3a 2861 2864 cmp byte [bp-008h], 000h ; 80 7e f8 00 2862 jne short 016 77h ; 75 342865 jne short 01681h ; 75 34 2863 2866 cmp byte [bp-006h], 000h ; 80 7e fa 00 2864 jne short 016 77h ; 75 2e2867 jne short 01681h ; 75 2e 2865 2868 movzx dx, byte [bp+004h] ; 0f b6 56 04 2866 2869 cmp dx, word [bp-01ah] ; 3b 56 e6 2867 jne short 016 77h ; 75 252870 jne short 01681h ; 75 25 2868 2871 movzx dx, byte [bp+006h] ; 0f b6 56 06 2869 2872 cmp dx, word [bp-018h] ; 3b 56 e8 2870 jne short 016 77h ; 75 1c2873 jne short 01681h ; 75 1c 2871 2874 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 2872 2875 sal dx, 008h ; c1 e2 08 … … 2877 2880 mov di, bx ; 89 df 2878 2881 cld ; fc 2879 jcxz 0167 4h ; e3 022882 jcxz 0167eh ; e3 02 2880 2883 rep stosw ; f3 ab 2881 jmp near 01a6 5h ; e9 ee 032884 jmp near 01a6fh ; e9 ee 03 2882 2885 cmp byte [bp+00ah], 001h ; 80 7e 0a 01 2883 jne near 017 1ch ; 0f 85 9d 002886 jne near 01726h ; 0f 85 9d 00 2884 2887 movzx ax, byte [bp-008h] ; 0f b6 46 f8 2885 2888 mov word [bp-014h], ax ; 89 46 ec 2886 2889 movzx dx, byte [bp+004h] ; 0f b6 56 04 2887 2890 cmp dx, word [bp-014h] ; 3b 56 ec 2888 jc near 01a6 5h ; 0f 82 d4 032891 jc near 01a6fh ; 0f 82 d4 03 2889 2892 movzx ax, byte [bp-010h] ; 0f b6 46 f0 2890 2893 add ax, word [bp-014h] ; 03 46 ec 2891 2894 cmp ax, dx ; 39 d0 2892 jnbe short 016a 2h ; 77 062895 jnbe short 016ach ; 77 06 2893 2896 cmp byte [bp-010h], 000h ; 80 7e f0 00 2894 jne short 016d 5h ; 75 332897 jne short 016dfh ; 75 33 2895 2898 movzx cx, byte [bp-012h] ; 0f b6 4e ee 2896 2899 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 … … 2908 2911 mov es, [si+04833h] ; 8e 84 33 48 2909 2912 cld ; fc 2910 jcxz 016d 3h ; e3 022913 jcxz 016ddh ; e3 02 2911 2914 rep stosw ; f3 ab 2912 jmp short 017 16h ; eb 412915 jmp short 01720h ; eb 41 2913 2916 movzx dx, byte [bp-012h] ; 0f b6 56 ee 2914 2917 mov word [bp-01ch], dx ; 89 56 e4 … … 2932 2935 mov es, ax ; 8e c0 2933 2936 cld ; fc 2934 jcxz 017 16h ; e3 062937 jcxz 01720h ; e3 06 2935 2938 push DS ; 1e 2936 2939 mov ds, dx ; 8e da … … 2938 2941 pop DS ; 1f 2939 2942 inc word [bp-014h] ; ff 46 ec 2940 jmp near 016 86h ; e9 6a ff2943 jmp near 01690h ; e9 6a ff 2941 2944 movzx ax, byte [bp+004h] ; 0f b6 46 04 2942 2945 mov word [bp-014h], ax ; 89 46 ec 2943 2946 movzx ax, byte [bp-008h] ; 0f b6 46 f8 2944 2947 cmp ax, word [bp-014h] ; 3b 46 ec 2945 jnbe near 01a6 5h ; 0f 87 37 032948 jnbe near 01a6fh ; 0f 87 37 03 2946 2949 movzx dx, byte [bp-008h] ; 0f b6 56 f8 2947 2950 movzx ax, byte [bp-010h] ; 0f b6 46 f0 2948 2951 add ax, dx ; 01 d0 2949 2952 cmp ax, word [bp-014h] ; 3b 46 ec 2950 jnbe short 0174 3h ; 77 062953 jnbe short 0174dh ; 77 06 2951 2954 cmp byte [bp-010h], 000h ; 80 7e f0 00 2952 jne short 017 76h ; 75 332955 jne short 01780h ; 75 33 2953 2956 movzx cx, byte [bp-012h] ; 0f b6 4e ee 2954 2957 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 … … 2966 2969 mov es, [si+04833h] ; 8e 84 33 48 2967 2970 cld ; fc 2968 jcxz 0177 4h ; e3 022971 jcxz 0177eh ; e3 02 2969 2972 rep stosw ; f3 ab 2970 jmp short 017 b6h ; eb 402973 jmp short 017c0h ; eb 40 2971 2974 movzx cx, byte [bp-012h] ; 0f b6 4e ee 2972 2975 movzx ax, byte [bp-010h] ; 0f b6 46 f0 … … 2989 2992 mov es, ax ; 8e c0 2990 2993 cld ; fc 2991 jcxz 017 b6h ; e3 062994 jcxz 017c0h ; e3 06 2992 2995 push DS ; 1e 2993 2996 mov ds, dx ; 8e da … … 2996 2999 movzx ax, byte [bp+004h] ; 0f b6 46 04 2997 3000 cmp ax, word [bp-014h] ; 3b 46 ec 2998 jc near 01a6 5h ; 0f 82 a4 023001 jc near 01a6fh ; 0f 82 a4 02 2999 3002 dec word [bp-014h] ; ff 4e ec 3000 jmp near 0172 3h ; e9 5c ff3003 jmp near 0172dh ; e9 5c ff 3001 3004 movzx bx, byte [si+048afh] ; 0f b6 9c af 48 3002 3005 sal bx, 006h ; c1 e3 06 … … 3005 3008 mov bl, byte [di+04831h] ; 8a 9d 31 48 3006 3009 cmp bl, 004h ; 80 fb 04 3007 je short 017 eeh ; 74 0f3010 je short 017f8h ; 74 0f 3008 3011 cmp bl, 003h ; 80 fb 03 3009 je short 017 eeh ; 74 0a3012 je short 017f8h ; 74 0a 3010 3013 cmp bl, 002h ; 80 fb 02 3011 je near 019 2dh ; 0f 84 42 013012 jmp near 01a6 5h ; e9 77 023014 je near 01937h ; 0f 84 42 01 3015 jmp near 01a6fh ; e9 77 02 3013 3016 cmp byte [bp-010h], 000h ; 80 7e f0 00 3014 jne short 018 46h ; 75 523017 jne short 01850h ; 75 52 3015 3018 cmp byte [bp-008h], 000h ; 80 7e f8 00 3016 jne short 018 46h ; 75 4c3019 jne short 01850h ; 75 4c 3017 3020 cmp byte [bp-006h], 000h ; 80 7e fa 00 3018 jne short 018 46h ; 75 463021 jne short 01850h ; 75 46 3019 3022 movzx dx, byte [bp+004h] ; 0f b6 56 04 3020 3023 mov ax, cx ; 89 c8 3021 3024 dec ax ; 48 3022 3025 cmp dx, ax ; 39 c2 3023 jne short 018 46h ; 75 3b3026 jne short 01850h ; 75 3b 3024 3027 movzx dx, byte [bp+006h] ; 0f b6 56 06 3025 3028 mov ax, word [bp-016h] ; 8b 46 ea 3026 3029 dec ax ; 48 3027 3030 cmp dx, ax ; 39 c2 3028 jne short 018 46h ; 75 2f3031 jne short 01850h ; 75 2f 3029 3032 mov ax, 00205h ; b8 05 02 3030 3033 mov dx, 003ceh ; ba ce 03 … … 3039 3042 xor di, di ; 31 ff 3040 3043 cld ; fc 3041 jcxz 018 3fh ; e3 023044 jcxz 01849h ; e3 02 3042 3045 rep stosb ; f3 aa 3043 3046 mov ax, strict word 00005h ; b8 05 00 3044 3047 out DX, ax ; ef 3045 jmp near 01a6 5h ; e9 1f 023048 jmp near 01a6fh ; e9 1f 02 3046 3049 cmp byte [bp+00ah], 001h ; 80 7e 0a 01 3047 jne short 018b 5h ; 75 693050 jne short 018bfh ; 75 69 3048 3051 movzx ax, byte [bp-008h] ; 0f b6 46 f8 3049 3052 mov word [bp-014h], ax ; 89 46 ec 3050 3053 movzx ax, byte [bp+004h] ; 0f b6 46 04 3051 3054 cmp ax, word [bp-014h] ; 3b 46 ec 3052 jc near 01a6 5h ; 0f 82 07 023055 jc near 01a6fh ; 0f 82 07 02 3053 3056 movzx dx, byte [bp-010h] ; 0f b6 56 f0 3054 3057 add dx, word [bp-014h] ; 03 56 ec 3055 3058 cmp dx, ax ; 39 c2 3056 jnbe short 018 6fh ; 77 063059 jnbe short 01879h ; 77 06 3057 3060 cmp byte [bp-010h], 000h ; 80 7e f0 00 3058 jne short 018 8eh ; 75 1f3061 jne short 01898h ; 75 1f 3059 3062 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 3060 3063 push ax ; 50 … … 3065 3068 movzx dx, byte [bp-014h] ; 0f b6 56 ec 3066 3069 movzx ax, byte [bp-006h] ; 0f b6 46 fa 3067 call 013 d9h ; e8 4d fb3068 jmp short 018b 0h ; eb 223070 call 013e3h ; e8 4d fb 3071 jmp short 018bah ; eb 22 3069 3072 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3070 3073 push ax ; 50 … … 3077 3080 movzx dx, al ; 0f b6 d0 3078 3081 movzx ax, byte [bp-006h] ; 0f b6 46 fa 3079 call 0136 3h ; e8 b3 fa3082 call 0136dh ; e8 b3 fa 3080 3083 inc word [bp-014h] ; ff 46 ec 3081 jmp short 0185 3h ; eb 9e3084 jmp short 0185dh ; eb 9e 3082 3085 movzx ax, byte [bp+004h] ; 0f b6 46 04 3083 3086 mov word [bp-014h], ax ; 89 46 ec 3084 3087 movzx ax, byte [bp-008h] ; 0f b6 46 f8 3085 3088 cmp ax, word [bp-014h] ; 3b 46 ec 3086 jnbe near 01a6 5h ; 0f 87 9e 013089 jnbe near 01a6fh ; 0f 87 9e 01 3087 3090 movzx ax, byte [bp-008h] ; 0f b6 46 f8 3088 3091 movzx dx, byte [bp-010h] ; 0f b6 56 f0 3089 3092 add ax, dx ; 01 d0 3090 3093 cmp ax, word [bp-014h] ; 3b 46 ec 3091 jnbe short 018 dch ; 77 063094 jnbe short 018e6h ; 77 06 3092 3095 cmp byte [bp-010h], 000h ; 80 7e f0 00 3093 jne short 01 8fbh ; 75 1f3096 jne short 01905h ; 75 1f 3094 3097 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 3095 3098 push ax ; 50 … … 3100 3103 movzx dx, byte [bp-014h] ; 0f b6 56 ec 3101 3104 movzx ax, byte [bp-006h] ; 0f b6 46 fa 3102 call 013 d9h ; e8 e0 fa3103 jmp short 019 1dh ; eb 223105 call 013e3h ; e8 e0 fa 3106 jmp short 01927h ; eb 22 3104 3107 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3105 3108 push ax ; 50 … … 3112 3115 movzx dx, byte [bp-014h] ; 0f b6 56 ec 3113 3116 movzx ax, byte [bp-006h] ; 0f b6 46 fa 3114 call 0136 3h ; e8 46 fa3117 call 0136dh ; e8 46 fa 3115 3118 movzx ax, byte [bp+004h] ; 0f b6 46 04 3116 3119 cmp ax, word [bp-014h] ; 3b 46 ec 3117 jc near 01a6 5h ; 0f 82 3d 013120 jc near 01a6fh ; 0f 82 3d 01 3118 3121 dec word [bp-014h] ; ff 4e ec 3119 jmp short 018 bch ; eb 8f3122 jmp short 018c6h ; eb 8f 3120 3123 mov dl, byte [di+04832h] ; 8a 95 32 48 3121 3124 cmp byte [bp-010h], 000h ; 80 7e f0 00 3122 jne short 0197 4h ; 75 3d3125 jne short 0197eh ; 75 3d 3123 3126 cmp byte [bp-008h], 000h ; 80 7e f8 00 3124 jne short 0197 4h ; 75 373127 jne short 0197eh ; 75 37 3125 3128 cmp byte [bp-006h], 000h ; 80 7e fa 00 3126 jne short 0197 4h ; 75 313129 jne short 0197eh ; 75 31 3127 3130 movzx bx, byte [bp+004h] ; 0f b6 5e 04 3128 3131 cmp bx, word [bp-01ah] ; 3b 5e e6 3129 jne short 0197 4h ; 75 283132 jne short 0197eh ; 75 28 3130 3133 movzx bx, byte [bp+006h] ; 0f b6 5e 06 3131 3134 cmp bx, word [bp-018h] ; 3b 5e e8 3132 jne short 0197 4h ; 75 1f3135 jne short 0197eh ; 75 1f 3133 3136 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 3134 3137 imul ax, bx ; 0f af c3 … … 3139 3142 xor di, di ; 31 ff 3140 3143 cld ; fc 3141 jcxz 0197 1h ; e3 023144 jcxz 0197bh ; e3 02 3142 3145 rep stosb ; f3 aa 3143 jmp near 01a6 5h ; e9 f1 003146 jmp near 01a6fh ; e9 f1 00 3144 3147 cmp dl, 002h ; 80 fa 02 3145 jne short 0198 2h ; 75 093148 jne short 0198ch ; 75 09 3146 3149 sal byte [bp-006h], 1 ; d0 66 fa 3147 3150 sal byte [bp-012h], 1 ; d0 66 ee 3148 3151 sal word [bp-016h], 1 ; d1 66 ea 3149 3152 cmp byte [bp+00ah], 001h ; 80 7e 0a 01 3150 jne short 019f 1h ; 75 693153 jne short 019fbh ; 75 69 3151 3154 movzx ax, byte [bp-008h] ; 0f b6 46 f8 3152 3155 mov word [bp-014h], ax ; 89 46 ec 3153 3156 movzx ax, byte [bp+004h] ; 0f b6 46 04 3154 3157 cmp ax, word [bp-014h] ; 3b 46 ec 3155 jc near 01a6 5h ; 0f 82 cb 003158 jc near 01a6fh ; 0f 82 cb 00 3156 3159 movzx dx, byte [bp-010h] ; 0f b6 56 f0 3157 3160 add dx, word [bp-014h] ; 03 56 ec 3158 3161 cmp dx, ax ; 39 c2 3159 jnbe short 019 abh ; 77 063162 jnbe short 019b5h ; 77 06 3160 3163 cmp byte [bp-010h], 000h ; 80 7e f0 00 3161 jne short 019 cah ; 75 1f3164 jne short 019d4h ; 75 1f 3162 3165 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 3163 3166 push ax ; 50 … … 3168 3171 movzx dx, byte [bp-014h] ; 0f b6 56 ec 3169 3172 movzx ax, byte [bp-006h] ; 0f b6 46 fa 3170 call 014 deh ; e8 16 fb3171 jmp short 019 ech ; eb 223173 call 014e8h ; e8 16 fb 3174 jmp short 019f6h ; eb 22 3172 3175 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3173 3176 push ax ; 50 … … 3180 3183 movzx dx, al ; 0f b6 d0 3181 3184 movzx ax, byte [bp-006h] ; 0f b6 46 fa 3182 call 014 3ah ; e8 4e fa3185 call 01444h ; e8 4e fa 3183 3186 inc word [bp-014h] ; ff 46 ec 3184 jmp short 019 8fh ; eb 9e3187 jmp short 01999h ; eb 9e 3185 3188 movzx ax, byte [bp+004h] ; 0f b6 46 04 3186 3189 mov word [bp-014h], ax ; 89 46 ec 3187 3190 movzx ax, byte [bp-008h] ; 0f b6 46 f8 3188 3191 cmp ax, word [bp-014h] ; 3b 46 ec 3189 jnbe short 01a6 5h ; 77 643192 jnbe short 01a6fh ; 77 64 3190 3193 movzx ax, byte [bp-008h] ; 0f b6 46 f8 3191 3194 movzx dx, byte [bp-010h] ; 0f b6 56 f0 3192 3195 add ax, dx ; 01 d0 3193 3196 cmp ax, word [bp-014h] ; 3b 46 ec 3194 jnbe short 01a 16h ; 77 063197 jnbe short 01a20h ; 77 06 3195 3198 cmp byte [bp-010h], 000h ; 80 7e f0 00 3196 jne short 01a3 5h ; 75 1f3199 jne short 01a3fh ; 75 1f 3197 3200 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 3198 3201 push ax ; 50 … … 3203 3206 movzx dx, byte [bp-014h] ; 0f b6 56 ec 3204 3207 movzx ax, byte [bp-006h] ; 0f b6 46 fa 3205 call 014 deh ; e8 ab fa3206 jmp short 01a 57h ; eb 223208 call 014e8h ; e8 ab fa 3209 jmp short 01a61h ; eb 22 3207 3210 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3208 3211 push ax ; 50 … … 3215 3218 movzx dx, byte [bp-014h] ; 0f b6 56 ec 3216 3219 movzx ax, byte [bp-006h] ; 0f b6 46 fa 3217 call 014 3ah ; e8 e3 f93220 call 01444h ; e8 e3 f9 3218 3221 movzx ax, byte [bp+004h] ; 0f b6 46 04 3219 3222 cmp ax, word [bp-014h] ; 3b 46 ec 3220 jc short 01a6 5h ; 72 053223 jc short 01a6fh ; 72 05 3221 3224 dec word [bp-014h] ; ff 4e ec 3222 jmp short 01 9f8h ; eb 933225 jmp short 01a02h ; eb 93 3223 3226 lea sp, [bp-004h] ; 8d 66 fc 3224 3227 pop di ; 5f … … 3226 3229 pop bp ; 5d 3227 3230 retn 00008h ; c2 08 00 3228 write_gfx_char_pl4_: ; 0xc1a 6eLB 0xeb3231 write_gfx_char_pl4_: ; 0xc1a78 LB 0xeb 3229 3232 push bp ; 55 3230 3233 mov bp, sp ; 89 e5 … … 3235 3238 mov ah, bl ; 88 dc 3236 3239 cmp byte [bp+006h], 010h ; 80 7e 06 10 3237 je short 01a 8ch ; 74 0b3240 je short 01a96h ; 74 0b 3238 3241 cmp byte [bp+006h], 00eh ; 80 7e 06 0e 3239 jne short 01a9 1h ; 75 0a3242 jne short 01a9bh ; 75 0a 3240 3243 mov di, 05dafh ; bf af 5d 3241 jmp short 01a9 4h ; eb 083244 jmp short 01a9eh ; eb 08 3242 3245 mov di, 06bafh ; bf af 6b 3243 jmp short 01a9 4h ; eb 033246 jmp short 01a9eh ; eb 03 3244 3247 mov di, 055afh ; bf af 55 3245 3248 movzx si, cl ; 0f b6 f1 … … 3261 3264 out DX, ax ; ef 3262 3265 test byte [bp-006h], 080h ; f6 46 fa 80 3263 je short 01a cfh ; 74 063266 je short 01ad9h ; 74 06 3264 3267 mov ax, 01803h ; b8 03 18 3265 3268 out DX, ax ; ef 3266 jmp short 01ad 3h ; eb 043269 jmp short 01addh ; eb 04 3267 3270 mov ax, strict word 00003h ; b8 03 00 3268 3271 out DX, ax ; ef 3269 3272 xor ch, ch ; 30 ed 3270 3273 cmp ch, byte [bp+006h] ; 3a 6e 06 3271 jnc short 01b4 1h ; 73 673274 jnc short 01b4bh ; 73 67 3272 3275 movzx si, ch ; 0f b6 f5 3273 3276 movzx ax, byte [bp+004h] ; 0f b6 46 04 … … 3275 3278 add si, word [bp-00eh] ; 03 76 f2 3276 3279 mov byte [bp-008h], 000h ; c6 46 f8 00 3277 jmp short 01b0 0h ; eb 133280 jmp short 01b0ah ; eb 13 3278 3281 xor bx, bx ; 31 db 3279 3282 mov dx, si ; 89 f2 3280 3283 mov ax, 0a000h ; b8 00 a0 3281 call 02f4 2h ; e8 4b 143284 call 02f4ch ; e8 4b 14 3282 3285 inc byte [bp-008h] ; fe 46 f8 3283 3286 cmp byte [bp-008h], 008h ; 80 7e f8 08 3284 jnc short 01b 3dh ; 73 3d3287 jnc short 01b47h ; 73 3d 3285 3288 movzx ax, byte [bp-008h] ; 0f b6 46 f8 3286 3289 mov cl, al ; 88 c1 … … 3295 3298 mov dx, si ; 89 f2 3296 3299 mov ax, 0a000h ; b8 00 a0 3297 call 02f3 4h ; e8 13 143300 call 02f3eh ; e8 13 14 3298 3301 movzx ax, ch ; 0f b6 c5 3299 3302 add ax, word [bp-00ah] ; 03 46 f6 … … 3302 3305 movzx ax, byte [bx] ; 0f b6 07 3303 3306 test word [bp-00ch], ax ; 85 46 f4 3304 je short 01a edh ; 74 ba3307 je short 01af7h ; 74 ba 3305 3308 mov al, byte [bp-006h] ; 8a 46 fa 3306 3309 and AL, strict byte 00fh ; 24 0f 3307 3310 movzx bx, al ; 0f b6 d8 3308 jmp short 01a efh ; eb b23311 jmp short 01af9h ; eb b2 3309 3312 db 0feh, 0c5h 3310 3313 ; inc ch ; fe c5 3311 jmp short 01ad 5h ; eb 943314 jmp short 01adfh ; eb 94 3312 3315 mov ax, 0ff08h ; b8 08 ff 3313 3316 mov dx, 003ceh ; ba ce 03 … … 3322 3325 pop bp ; 5d 3323 3326 retn 00004h ; c2 04 00 3324 write_gfx_char_cga_: ; 0xc1b 59LB 0x11e3327 write_gfx_char_cga_: ; 0xc1b63 LB 0x11e 3325 3328 push bp ; 55 3326 3329 mov bp, sp ; 89 e5 … … 3340 3343 sal di, 003h ; c1 e7 03 3341 3344 mov byte [bp-006h], 000h ; c6 46 fa 00 3342 jmp near 01b d9h ; e9 50 003345 jmp near 01be3h ; e9 50 00 3343 3346 xor al, al ; 30 c0 3344 3347 xor ah, ah ; 30 e4 3345 jmp short 01b 9ah ; eb 0b3348 jmp short 01ba4h ; eb 0b 3346 3349 or al, bl ; 08 d8 3347 3350 shr ch, 1 ; d0 ed … … 3349 3352 ; inc ah ; fe c4 3350 3353 cmp ah, 008h ; 80 fc 08 3351 jnc short 01bc 2h ; 73 283354 jnc short 01bcch ; 73 28 3352 3355 movzx bx, byte [bp-006h] ; 0f b6 5e fa 3353 3356 add bx, di ; 01 fb … … 3356 3359 movzx dx, ch ; 0f b6 d5 3357 3360 test bx, dx ; 85 d3 3358 je short 01b9 1h ; 74 e53361 je short 01b9bh ; 74 e5 3359 3362 mov CL, strict byte 007h ; b1 07 3360 3363 sub cl, ah ; 28 e1 … … 3363 3366 sal bl, CL ; d2 e3 3364 3367 test byte [bp-008h], 080h ; f6 46 f8 80 3365 je short 01b 8fh ; 74 d13368 je short 01b99h ; 74 d1 3366 3369 xor al, bl ; 30 d8 3367 jmp short 01b9 1h ; eb cf3370 jmp short 01b9bh ; eb cf 3368 3371 movzx bx, al ; 0f b6 d8 3369 3372 mov dx, word [bp-00ah] ; 8b 56 f6 3370 3373 mov ax, 0b800h ; b8 00 b8 3371 call 02f4 2h ; e8 74 133374 call 02f4ch ; e8 74 13 3372 3375 inc byte [bp-006h] ; fe 46 fa 3373 3376 cmp byte [bp-006h], 008h ; 80 7e fa 08 3374 jnc near 01c 6eh ; 0f 83 95 003377 jnc near 01c78h ; 0f 83 95 00 3375 3378 movzx ax, byte [bp-006h] ; 0f b6 46 fa 3376 3379 sar ax, 1 ; d1 f8 … … 3380 3383 mov word [bp-00ah], bx ; 89 5e f6 3381 3384 test byte [bp-006h], 001h ; f6 46 fa 01 3382 je short 01bf 4h ; 74 043385 je short 01bfeh ; 74 04 3383 3386 add byte [bp-009h], 020h ; 80 46 f7 20 3384 3387 mov CH, strict byte 080h ; b5 80 3385 3388 cmp byte [bp+006h], 001h ; 80 7e 06 01 3386 jne short 01c 0dh ; 75 113389 jne short 01c17h ; 75 11 3387 3390 test byte [bp-008h], ch ; 84 6e f8 3388 je short 01b 89h ; 74 883391 je short 01b93h ; 74 88 3389 3392 mov dx, word [bp-00ah] ; 8b 56 f6 3390 3393 mov ax, 0b800h ; b8 00 b8 3391 call 02f3 4h ; e8 2a 133392 jmp near 01b 8bh ; e9 7e ff3394 call 02f3eh ; e8 2a 13 3395 jmp near 01b95h ; e9 7e ff 3393 3396 test ch, ch ; 84 ed 3394 jbe short 01b ceh ; 76 bd3397 jbe short 01bd8h ; 76 bd 3395 3398 test byte [bp-008h], 080h ; f6 46 f8 80 3396 je short 01c2 2h ; 74 0b3399 je short 01c2ch ; 74 0b 3397 3400 mov dx, word [bp-00ah] ; 8b 56 f6 3398 3401 mov ax, 0b800h ; b8 00 b8 3399 call 02f3 4h ; e8 14 133400 jmp short 01c2 4h ; eb 023402 call 02f3eh ; e8 14 13 3403 jmp short 01c2eh ; eb 02 3401 3404 xor al, al ; 30 c0 3402 3405 xor ah, ah ; 30 e4 3403 jmp short 01c3 3h ; eb 0b3406 jmp short 01c3dh ; eb 0b 3404 3407 or al, bl ; 08 d8 3405 3408 shr ch, 1 ; d0 ed … … 3407 3410 ; inc ah ; fe c4 3408 3411 cmp ah, 004h ; 80 fc 04 3409 jnc short 01c 5dh ; 73 2a3412 jnc short 01c67h ; 73 2a 3410 3413 movzx bx, byte [bp-006h] ; 0f b6 5e fa 3411 3414 add bx, di ; 01 fb … … 3414 3417 movzx bx, ch ; 0f b6 dd 3415 3418 test bx, dx ; 85 d3 3416 je short 01c 2ah ; 74 e53419 je short 01c34h ; 74 e5 3417 3420 mov CL, strict byte 003h ; b1 03 3418 3421 sub cl, ah ; 28 e1 … … 3422 3425 sal bl, CL ; d2 e3 3423 3426 test byte [bp-008h], 080h ; f6 46 f8 80 3424 je short 01c 28h ; 74 cf3427 je short 01c32h ; 74 cf 3425 3428 xor al, bl ; 30 d8 3426 jmp short 01c 2ah ; eb cd3429 jmp short 01c34h ; eb cd 3427 3430 movzx bx, al ; 0f b6 d8 3428 3431 mov dx, word [bp-00ah] ; 8b 56 f6 3429 3432 mov ax, 0b800h ; b8 00 b8 3430 call 02f4 2h ; e8 d9 123433 call 02f4ch ; e8 d9 12 3431 3434 inc word [bp-00ah] ; ff 46 f6 3432 jmp short 01c 0dh ; eb 9f3435 jmp short 01c17h ; eb 9f 3433 3436 lea sp, [bp-004h] ; 8d 66 fc 3434 3437 pop di ; 5f … … 3436 3439 pop bp ; 5d 3437 3440 retn 00004h ; c2 04 00 3438 write_gfx_char_lin_: ; 0xc1c 77LB 0x913441 write_gfx_char_lin_: ; 0xc1c81 LB 0x91 3439 3442 push bp ; 55 3440 3443 mov bp, sp ; 89 e5 … … 3455 3458 sal si, 003h ; c1 e6 03 3456 3459 xor cl, cl ; 30 c9 3457 jmp short 01ce 2h ; eb 3b3460 jmp short 01cech ; eb 3b 3458 3461 cmp ch, 008h ; 80 fd 08 3459 jnc short 01c dbh ; 73 2f3462 jnc short 01ce5h ; 73 2f 3460 3463 xor al, al ; 30 c0 3461 3464 movzx dx, cl ; 0f b6 d1 … … 3466 3469 movzx bx, byte [bp-008h] ; 0f b6 5e f8 3467 3470 test dx, bx ; 85 da 3468 je short 01cc 5h ; 74 033471 je short 01ccfh ; 74 03 3469 3472 mov al, byte [bp-006h] ; 8a 46 fa 3470 3473 movzx bx, al ; 0f b6 d8 … … 3472 3475 add dx, word [bp-00ah] ; 03 56 f6 3473 3476 mov ax, 0a000h ; b8 00 a0 3474 call 02f4 2h ; e8 6e 123477 call 02f4ch ; e8 6e 12 3475 3478 shr byte [bp-008h], 1 ; d0 6e f8 3476 3479 db 0feh, 0c5h 3477 3480 ; inc ch ; fe c5 3478 jmp short 01c a7h ; eb cc3481 jmp short 01cb1h ; eb cc 3479 3482 db 0feh, 0c1h 3480 3483 ; inc cl ; fe c1 3481 3484 cmp cl, 008h ; 80 f9 08 3482 jnc short 01 cffh ; 73 1d3485 jnc short 01d09h ; 73 1d 3483 3486 movzx bx, cl ; 0f b6 d9 3484 3487 movzx dx, byte [bp+004h] ; 0f b6 56 04 … … 3490 3493 mov byte [bp-008h], 080h ; c6 46 f8 80 3491 3494 xor ch, ch ; 30 ed 3492 jmp short 01c ach ; eb ad3495 jmp short 01cb6h ; eb ad 3493 3496 lea sp, [bp-004h] ; 8d 66 fc 3494 3497 pop di ; 5f … … 3496 3499 pop bp ; 5d 3497 3500 retn 00002h ; c2 02 00 3498 biosfn_write_char_attr_: ; 0xc1d 08LB 0x1683501 biosfn_write_char_attr_: ; 0xc1d12 LB 0x168 3499 3502 push bp ; 55 3500 3503 mov bp, sp ; 89 e5 … … 3508 3511 mov dx, strict word 00049h ; ba 49 00 3509 3512 mov ax, strict word 00040h ; b8 40 00 3510 call 02f3 4h ; e8 10 123513 call 02f3eh ; e8 10 12 3511 3514 xor ah, ah ; 30 e4 3512 call 02f 0dh ; e8 e4 113515 call 02f17h ; e8 e4 11 3513 3516 mov cl, al ; 88 c1 3514 3517 mov byte [bp-006h], al ; 88 46 fa 3515 3518 cmp AL, strict byte 0ffh ; 3c ff 3516 je near 01e 69h ; 0f 84 35 013519 je near 01e73h ; 0f 84 35 01 3517 3520 movzx ax, byte [bp-010h] ; 0f b6 46 f0 3518 3521 lea bx, [bp-01ch] ; 8d 5e e4 3519 3522 lea dx, [bp-01ah] ; 8d 56 e6 3520 call 00a88h ; e8 47ed3523 call 00a88h ; e8 3d ed 3521 3524 mov al, byte [bp-01ch] ; 8a 46 e4 3522 3525 mov byte [bp-00ch], al ; 88 46 f4 … … 3527 3530 mov dx, 00084h ; ba 84 00 3528 3531 mov ax, strict word 00040h ; b8 40 00 3529 call 02f3 4h ; e8 d9 113532 call 02f3eh ; e8 d9 11 3530 3533 xor ah, ah ; 30 e4 3531 3534 inc ax ; 40 … … 3533 3536 mov dx, strict word 0004ah ; ba 4a 00 3534 3537 mov ax, strict word 00040h ; b8 40 00 3535 call 02f5 0h ; e8 e6 113538 call 02f5ah ; e8 e6 11 3536 3539 mov word [bp-016h], ax ; 89 46 ea 3537 3540 movzx bx, cl ; 0f b6 d9 … … 3539 3542 sal di, 003h ; c1 e7 03 3540 3543 cmp byte [di+04830h], 000h ; 80 bd 30 48 00 3541 jne short 01dc 3h ; 75 473544 jne short 01dcdh ; 75 47 3542 3545 mov bx, word [bp-018h] ; 8b 5e e8 3543 3546 imul bx, ax ; 0f af d8 … … 3563 3566 mov di, dx ; 89 d7 3564 3567 cld ; fc 3565 jcxz 01dc 0h ; e3 023568 jcxz 01dcah ; e3 02 3566 3569 rep stosw ; f3 ab 3567 jmp near 01e 69h ; e9 a6 003570 jmp near 01e73h ; e9 a6 00 3568 3571 movzx bx, byte [bx+048afh] ; 0f b6 9f af 48 3569 3572 sal bx, 006h ; c1 e3 06 … … 3574 3577 dec si ; 4e 3575 3578 cmp si, strict byte 0ffffh ; 83 fe ff 3576 je near 01e 69h ; 0f 84 88 003579 je near 01e73h ; 0f 84 88 00 3577 3580 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 3578 3581 cmp ax, word [bp-016h] ; 3b 46 ea 3579 jnc near 01e 69h ; 0f 83 7d 003582 jnc near 01e73h ; 0f 83 7d 00 3580 3583 movzx bx, byte [bp-006h] ; 0f b6 5e fa 3581 3584 sal bx, 003h ; c1 e3 03 3582 3585 mov al, byte [bx+04831h] ; 8a 87 31 48 3583 3586 cmp AL, strict byte 003h ; 3c 03 3584 jc short 01e 07h ; 72 0c3585 jbe short 01e 0dh ; 76 103587 jc short 01e11h ; 72 0c 3588 jbe short 01e17h ; 76 10 3586 3589 cmp AL, strict byte 005h ; 3c 05 3587 je short 01e 4bh ; 74 4a3590 je short 01e55h ; 74 4a 3588 3591 cmp AL, strict byte 004h ; 3c 04 3589 je short 01e 0dh ; 74 083590 jmp short 01e6 3h ; eb 5c3592 je short 01e17h ; 74 08 3593 jmp short 01e6dh ; eb 5c 3591 3594 cmp AL, strict byte 002h ; 3c 02 3592 je short 01e 2ch ; 74 213593 jmp short 01e6 3h ; eb 563595 je short 01e36h ; 74 21 3596 jmp short 01e6dh ; eb 56 3594 3597 movzx ax, byte [bp-008h] ; 0f b6 46 f8 3595 3598 push ax ; 50 … … 3600 3603 movzx dx, byte [bp-012h] ; 0f b6 56 ee 3601 3604 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 3602 call 01a 6eh ; e8 44 fc3603 jmp short 01e6 3h ; eb 373605 call 01a78h ; e8 44 fc 3606 jmp short 01e6dh ; eb 37 3604 3607 movzx ax, byte [bp-014h] ; 0f b6 46 ec 3605 3608 push ax ; 50 … … 3610 3613 movzx dx, byte [bp-012h] ; 0f b6 56 ee 3611 3614 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 3612 call 01b 59h ; e8 10 fd3613 jmp short 01e6 3h ; eb 183615 call 01b63h ; e8 10 fd 3616 jmp short 01e6dh ; eb 18 3614 3617 movzx ax, byte [bp-016h] ; 0f b6 46 ea 3615 3618 push ax ; 50 … … 3618 3621 movzx dx, byte [bp-012h] ; 0f b6 56 ee 3619 3622 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 3620 call 01c 77h ; e8 14 fe3623 call 01c81h ; e8 14 fe 3621 3624 inc byte [bp-00ch] ; fe 46 f4 3622 jmp near 01d d9h ; e9 70 ff3625 jmp near 01de3h ; e9 70 ff 3623 3626 lea sp, [bp-004h] ; 8d 66 fc 3624 3627 pop di ; 5f … … 3626 3629 pop bp ; 5d 3627 3630 retn ; c3 3628 biosfn_write_char_only_: ; 0xc1e7 0LB 0x16f3631 biosfn_write_char_only_: ; 0xc1e7a LB 0x16f 3629 3632 push bp ; 55 3630 3633 mov bp, sp ; 89 e5 … … 3638 3641 mov dx, strict word 00049h ; ba 49 00 3639 3642 mov ax, strict word 00040h ; b8 40 00 3640 call 02f3 4h ; e8 a8 103643 call 02f3eh ; e8 a8 10 3641 3644 xor ah, ah ; 30 e4 3642 call 02f 0dh ; e8 7c 103645 call 02f17h ; e8 7c 10 3643 3646 mov cl, al ; 88 c1 3644 3647 mov byte [bp-00eh], al ; 88 46 f2 3645 3648 cmp AL, strict byte 0ffh ; 3c ff 3646 je near 01f d8h ; 0f 84 3c 013649 je near 01fe2h ; 0f 84 3c 01 3647 3650 movzx ax, byte [bp-006h] ; 0f b6 46 fa 3648 3651 lea bx, [bp-01ch] ; 8d 5e e4 3649 3652 lea dx, [bp-01ah] ; 8d 56 e6 3650 call 00a88h ; e8 d feb3653 call 00a88h ; e8 d5 eb 3651 3654 mov al, byte [bp-01ch] ; 8a 46 e4 3652 3655 mov byte [bp-00ch], al ; 88 46 f4 … … 3657 3660 mov dx, 00084h ; ba 84 00 3658 3661 mov ax, strict word 00040h ; b8 40 00 3659 call 02f3 4h ; e8 71 103662 call 02f3eh ; e8 71 10 3660 3663 xor ah, ah ; 30 e4 3661 3664 inc ax ; 40 … … 3663 3666 mov dx, strict word 0004ah ; ba 4a 00 3664 3667 mov ax, strict word 00040h ; b8 40 00 3665 call 02f5 0h ; e8 7e 103668 call 02f5ah ; e8 7e 10 3666 3669 mov word [bp-016h], ax ; 89 46 ea 3667 3670 movzx di, cl ; 0f b6 f9 … … 3669 3672 sal bx, 003h ; c1 e3 03 3670 3673 cmp byte [bx+04830h], 000h ; 80 bf 30 48 00 3671 jne short 01f 2eh ; 75 4a3674 jne short 01f38h ; 75 4a 3672 3675 mov dx, word [bp-018h] ; 8b 56 e8 3673 3676 imul dx, ax ; 0f af d0 … … 3686 3689 dec si ; 4e 3687 3690 cmp si, strict byte 0ffffh ; 83 fe ff 3688 je near 01f d8h ; 0f 84 c6 003691 je near 01fe2h ; 0f 84 c6 00 3689 3692 movzx ax, byte [bp-012h] ; 0f b6 46 ee 3690 3693 movzx bx, byte [bp-00eh] ; 0f b6 5e f2 … … 3694 3697 mov dx, cx ; 89 ca 3695 3698 mov ax, di ; 89 f8 3696 call 02f4 2h ; e8 18 103697 inc cx ; 41 3698 inc cx ; 41 3699 jmp short 01f 0ah ; eb dc3699 call 02f4ch ; e8 18 10 3700 inc cx ; 41 3701 inc cx ; 41 3702 jmp short 01f14h ; eb dc 3700 3703 movzx di, byte [di+048afh] ; 0f b6 bd af 48 3701 3704 sal di, 006h ; c1 e7 06 … … 3706 3709 dec si ; 4e 3707 3710 cmp si, strict byte 0ffffh ; 83 fe ff 3708 je near 01f d8h ; 0f 84 8c 003711 je near 01fe2h ; 0f 84 8c 00 3709 3712 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 3710 3713 cmp ax, word [bp-016h] ; 3b 46 ea 3711 jnc near 01f d8h ; 0f 83 81 003714 jnc near 01fe2h ; 0f 83 81 00 3712 3715 movzx bx, byte [bp-00eh] ; 0f b6 5e f2 3713 3716 sal bx, 003h ; c1 e3 03 3714 3717 mov bl, byte [bx+04831h] ; 8a 9f 31 48 3715 3718 cmp bl, 003h ; 80 fb 03 3716 jc short 01f7 5h ; 72 0e3717 jbe short 01f 7ch ; 76 133719 jc short 01f7fh ; 72 0e 3720 jbe short 01f86h ; 76 13 3718 3721 cmp bl, 005h ; 80 fb 05 3719 je short 01f bah ; 74 4c3722 je short 01fc4h ; 74 4c 3720 3723 cmp bl, 004h ; 80 fb 04 3721 je short 01f 7ch ; 74 093722 jmp short 01fd 2h ; eb 5d3724 je short 01f86h ; 74 09 3725 jmp short 01fdch ; eb 5d 3723 3726 cmp bl, 002h ; 80 fb 02 3724 je short 01f 9bh ; 74 213725 jmp short 01fd 2h ; eb 563727 je short 01fa5h ; 74 21 3728 jmp short 01fdch ; eb 56 3726 3729 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3727 3730 push ax ; 50 … … 3732 3735 movzx dx, byte [bp-014h] ; 0f b6 56 ec 3733 3736 movzx ax, byte [bp-012h] ; 0f b6 46 ee 3734 call 01a 6eh ; e8 d5 fa3735 jmp short 01fd 2h ; eb 373737 call 01a78h ; e8 d5 fa 3738 jmp short 01fdch ; eb 37 3736 3739 movzx ax, byte [bp-008h] ; 0f b6 46 f8 3737 3740 push ax ; 50 … … 3742 3745 movzx dx, byte [bp-014h] ; 0f b6 56 ec 3743 3746 movzx ax, byte [bp-012h] ; 0f b6 46 ee 3744 call 01b 59h ; e8 a1 fb3745 jmp short 01fd 2h ; eb 183747 call 01b63h ; e8 a1 fb 3748 jmp short 01fdch ; eb 18 3746 3749 movzx ax, byte [bp-016h] ; 0f b6 46 ea 3747 3750 push ax ; 50 … … 3750 3753 movzx dx, byte [bp-014h] ; 0f b6 56 ec 3751 3754 movzx ax, byte [bp-012h] ; 0f b6 46 ee 3752 call 01c 77h ; e8 a5 fc3755 call 01c81h ; e8 a5 fc 3753 3756 inc byte [bp-00ch] ; fe 46 f4 3754 jmp near 01f4 4h ; e9 6c ff3757 jmp near 01f4eh ; e9 6c ff 3755 3758 lea sp, [bp-004h] ; 8d 66 fc 3756 3759 pop di ; 5f … … 3758 3761 pop bp ; 5d 3759 3762 retn ; c3 3760 biosfn_write_pixel_: ; 0xc1f dfLB 0x16a3763 biosfn_write_pixel_: ; 0xc1fe9 LB 0x16a 3761 3764 push bp ; 55 3762 3765 mov bp, sp ; 89 e5 … … 3767 3770 mov dx, strict word 00049h ; ba 49 00 3768 3771 mov ax, strict word 00040h ; b8 40 00 3769 call 02f3 4h ; e8 3f 0f3772 call 02f3eh ; e8 3f 0f 3770 3773 xor ah, ah ; 30 e4 3771 call 02f 0dh ; e8 13 0f3774 call 02f17h ; e8 13 0f 3772 3775 mov byte [bp-004h], al ; 88 46 fc 3773 3776 cmp AL, strict byte 0ffh ; 3c ff 3774 je near 0212 1h ; 0f 84 1e 013777 je near 0212bh ; 0f 84 1e 01 3775 3778 movzx bx, al ; 0f b6 d8 3776 3779 sal bx, 003h ; c1 e3 03 3777 3780 cmp byte [bx+04830h], 000h ; 80 bf 30 48 00 3778 je near 0212 1h ; 0f 84 0f 013781 je near 0212bh ; 0f 84 0f 01 3779 3782 mov al, byte [bx+04831h] ; 8a 87 31 48 3780 3783 cmp AL, strict byte 003h ; 3c 03 3781 jc short 020 29h ; 72 0f3782 jbe short 0203 0h ; 76 143784 jc short 02033h ; 72 0f 3785 jbe short 0203ah ; 76 14 3783 3786 cmp AL, strict byte 005h ; 3c 05 3784 je near 021 27h ; 0f 84 05 013787 je near 02131h ; 0f 84 05 01 3785 3788 cmp AL, strict byte 004h ; 3c 04 3786 je short 0203 0h ; 74 0a3787 jmp near 0212 1h ; e9 f8 003789 je short 0203ah ; 74 0a 3790 jmp near 0212bh ; e9 f8 00 3788 3791 cmp AL, strict byte 002h ; 3c 02 3789 je short 0209 5h ; 74 683790 jmp near 0212 1h ; e9 f1 003792 je short 0209fh ; 74 68 3793 jmp near 0212bh ; e9 f1 00 3791 3794 mov dx, strict word 0004ah ; ba 4a 00 3792 3795 mov ax, strict word 00040h ; b8 40 00 3793 call 02f5 0h ; e8 17 0f3796 call 02f5ah ; e8 17 0f 3794 3797 imul ax, cx ; 0f af c1 3795 3798 mov bx, word [bp-00ah] ; 8b 5e f6 … … 3810 3813 mov dx, bx ; 89 da 3811 3814 mov ax, 0a000h ; b8 00 a0 3812 call 02f3 4h ; e8 cb 0e3815 call 02f3eh ; e8 cb 0e 3813 3816 test byte [bp-006h], 080h ; f6 46 fa 80 3814 je short 020 76h ; 74 073817 je short 02080h ; 74 07 3815 3818 mov ax, 01803h ; b8 03 18 3816 3819 mov dx, 003ceh ; ba ce 03 … … 3819 3822 mov dx, word [bp-008h] ; 8b 56 f8 3820 3823 mov ax, 0a000h ; b8 00 a0 3821 call 02f4 2h ; e8 bf 0e3824 call 02f4ch ; e8 bf 0e 3822 3825 mov ax, 0ff08h ; b8 08 ff 3823 3826 mov dx, 003ceh ; ba ce 03 … … 3827 3830 mov ax, strict word 00003h ; b8 03 00 3828 3831 out DX, ax ; ef 3829 jmp near 0212 1h ; e9 8c 003832 jmp near 0212bh ; e9 8c 00 3830 3833 mov ax, cx ; 89 c8 3831 3834 shr ax, 1 ; d1 e8 3832 3835 imul ax, ax, strict byte 00050h ; 6b c0 50 3833 3836 cmp byte [bx+04832h], 002h ; 80 bf 32 48 02 3834 jne short 020 abh ; 75 083837 jne short 020b5h ; 75 08 3835 3838 mov bx, word [bp-00ah] ; 8b 5e f6 3836 3839 shr bx, 002h ; c1 eb 02 3837 jmp short 020b 1h ; eb 063840 jmp short 020bbh ; eb 06 3838 3841 mov bx, word [bp-00ah] ; 8b 5e f6 3839 3842 shr bx, 003h ; c1 eb 03 … … 3841 3844 mov word [bp-008h], bx ; 89 5e f8 3842 3845 test cl, 001h ; f6 c1 01 3843 je short 020 bfh ; 74 043846 je short 020c9h ; 74 04 3844 3847 add byte [bp-007h], 020h ; 80 46 f9 20 3845 3848 mov dx, word [bp-008h] ; 8b 56 f8 3846 3849 mov ax, 0b800h ; b8 00 b8 3847 call 02f3 4h ; e8 6c 0e3850 call 02f3eh ; e8 6c 0e 3848 3851 mov bl, al ; 88 c3 3849 3852 movzx si, byte [bp-004h] ; 0f b6 76 fc 3850 3853 sal si, 003h ; c1 e6 03 3851 3854 cmp byte [si+04832h], 002h ; 80 bc 32 48 02 3852 jne short 020f 1h ; 75 193855 jne short 020fbh ; 75 19 3853 3856 mov al, byte [bp-00ah] ; 8a 46 f6 3854 3857 and AL, strict byte 003h ; 24 03 … … 3861 3864 sal bh, CL ; d2 e7 3862 3865 mov AL, strict byte 003h ; b0 03 3863 jmp short 0210 4h ; eb 133866 jmp short 0210eh ; eb 13 3864 3867 mov al, byte [bp-00ah] ; 8a 46 f6 3865 3868 and AL, strict byte 007h ; 24 07 … … 3872 3875 sal al, CL ; d2 e0 3873 3876 test byte [bp-006h], 080h ; f6 46 fa 80 3874 je short 0211 0h ; 74 043877 je short 0211ah ; 74 04 3875 3878 xor bl, bh ; 30 fb 3876 jmp short 021 16h ; eb 063879 jmp short 02120h ; eb 06 3877 3880 not al ; f6 d0 3878 3881 and bl, al ; 20 c3 … … 3881 3884 mov dx, word [bp-008h] ; 8b 56 f8 3882 3885 mov ax, 0b800h ; b8 00 b8 3883 call 02f4 2h ; e8 21 0e3886 call 02f4ch ; e8 21 0e 3884 3887 lea sp, [bp-002h] ; 8d 66 fe 3885 3888 pop si ; 5e … … 3888 3891 mov dx, strict word 0004ah ; ba 4a 00 3889 3892 mov ax, strict word 00040h ; b8 40 00 3890 call 02f5 0h ; e8 20 0e3893 call 02f5ah ; e8 20 0e 3891 3894 sal ax, 003h ; c1 e0 03 3892 3895 imul cx, ax ; 0f af c8 … … 3897 3900 mov dx, ax ; 89 c2 3898 3901 mov ax, 0a000h ; b8 00 a0 3899 jmp short 021 1eh ; eb d53900 biosfn_write_teletype_: ; 0xc21 49LB 0x2413902 jmp short 02128h ; eb d5 3903 biosfn_write_teletype_: ; 0xc2153 LB 0x241 3901 3904 push bp ; 55 3902 3905 mov bp, sp ; 89 e5 … … 3908 3911 mov byte [bp-00eh], cl ; 88 4e f2 3909 3912 cmp dl, 0ffh ; 80 fa ff 3910 jne short 021 6dh ; 75 0c3913 jne short 02177h ; 75 0c 3911 3914 mov dx, strict word 00062h ; ba 62 00 3912 3915 mov ax, strict word 00040h ; b8 40 00 3913 call 02f3 4h ; e8 ca 0d3916 call 02f3eh ; e8 ca 0d 3914 3917 mov byte [bp-006h], al ; 88 46 fa 3915 3918 mov dx, strict word 00049h ; ba 49 00 3916 3919 mov ax, strict word 00040h ; b8 40 00 3917 call 02f3 4h ; e8 be 0d3920 call 02f3eh ; e8 be 0d 3918 3921 xor ah, ah ; 30 e4 3919 call 02f 0dh ; e8 92 0d3922 call 02f17h ; e8 92 0d 3920 3923 mov byte [bp-010h], al ; 88 46 f0 3921 3924 cmp AL, strict byte 0ffh ; 3c ff 3922 je near 0238 4h ; 0f 84 00 023925 je near 0238eh ; 0f 84 00 02 3923 3926 movzx ax, byte [bp-006h] ; 0f b6 46 fa 3924 3927 lea bx, [bp-018h] ; 8d 5e e8 3925 3928 lea dx, [bp-016h] ; 8d 56 ea 3926 call 00a88h ; e8 f7e83929 call 00a88h ; e8 ed e8 3927 3930 mov al, byte [bp-018h] ; 8a 46 e8 3928 3931 mov byte [bp-008h], al ; 88 46 f8 … … 3933 3936 mov dx, 00084h ; ba 84 00 3934 3937 mov ax, strict word 00040h ; b8 40 00 3935 call 02f3 4h ; e8 89 0d3938 call 02f3eh ; e8 89 0d 3936 3939 xor ah, ah ; 30 e4 3937 3940 inc ax ; 40 … … 3939 3942 mov dx, strict word 0004ah ; ba 4a 00 3940 3943 mov ax, strict word 00040h ; b8 40 00 3941 call 02f5 0h ; e8 96 0d3944 call 02f5ah ; e8 96 0d 3942 3945 mov word [bp-012h], ax ; 89 46 ee 3943 3946 mov al, byte [bp-00ch] ; 8a 46 f4 3944 3947 cmp AL, strict byte 008h ; 3c 08 3945 jc short 021d 2h ; 72 0e3946 jbe short 021 dah ; 76 143948 jc short 021dch ; 72 0e 3949 jbe short 021e4h ; 76 14 3947 3950 cmp AL, strict byte 00dh ; 3c 0d 3948 je short 021 e8h ; 74 1e3951 je short 021f2h ; 74 1e 3949 3952 cmp AL, strict byte 00ah ; 3c 0a 3950 je near 022 dah ; 0f 84 0a 013951 jmp short 021 efh ; eb 1d3953 je near 022e4h ; 0f 84 0a 01 3954 jmp short 021f9h ; eb 1d 3952 3955 cmp AL, strict byte 007h ; 3c 07 3953 je near 022 ddh ; 0f 84 05 013954 jmp short 021 efh ; eb 153956 je near 022e7h ; 0f 84 05 01 3957 jmp short 021f9h ; eb 15 3955 3958 cmp byte [bp-008h], 000h ; 80 7e f8 00 3956 jbe near 022 ddh ; 0f 86 fb 003959 jbe near 022e7h ; 0f 86 fb 00 3957 3960 dec byte [bp-008h] ; fe 4e f8 3958 jmp near 022 ddh ; e9 f5 003961 jmp near 022e7h ; e9 f5 00 3959 3962 mov byte [bp-008h], 000h ; c6 46 f8 00 3960 jmp near 022 ddh ; e9 ee 003963 jmp near 022e7h ; e9 ee 00 3961 3964 movzx bx, byte [bp-010h] ; 0f b6 5e f0 3962 3965 mov si, bx ; 89 de 3963 3966 sal si, 003h ; c1 e6 03 3964 3967 cmp byte [si+04830h], 000h ; 80 bc 30 48 00 3965 jne short 022 4ch ; 75 4d3968 jne short 02256h ; 75 4d 3966 3969 mov ax, word [bp-012h] ; 8b 46 ee 3967 3970 imul ax, word [bp-014h] ; 0f af 46 ec … … 3981 3984 mov ax, word [si+04833h] ; 8b 84 33 48 3982 3985 mov dx, cx ; 89 ca 3983 call 02f4 2h ; e8 0f 0d3986 call 02f4ch ; e8 0f 0d 3984 3987 cmp byte [bp-00eh], 003h ; 80 7e f2 03 3985 jne near 022 cah ; 0f 85 8f 003988 jne near 022d4h ; 0f 85 8f 00 3986 3989 movzx bx, byte [bp-004h] ; 0f b6 5e fc 3987 3990 mov dx, cx ; 89 ca 3988 3991 inc dx ; 42 3989 3992 mov ax, word [si+04833h] ; 8b 84 33 48 3990 call 02f4 2h ; e8 f9 0c3991 jmp near 022 cah ; e9 7e 003993 call 02f4ch ; e8 f9 0c 3994 jmp near 022d4h ; e9 7e 00 3992 3995 movzx bx, byte [bx+048afh] ; 0f b6 9f af 48 3993 3996 sal bx, 006h ; c1 e3 06 … … 3996 3999 mov al, byte [si+04831h] ; 8a 84 31 48 3997 4000 cmp AL, strict byte 003h ; 3c 03 3998 jc short 0227 0h ; 72 0c3999 jbe short 022 76h ; 76 104001 jc short 0227ah ; 72 0c 4002 jbe short 02280h ; 76 10 4000 4003 cmp AL, strict byte 005h ; 3c 05 4001 je short 022b 2h ; 74 484004 je short 022bch ; 74 48 4002 4005 cmp AL, strict byte 004h ; 3c 04 4003 je short 022 76h ; 74 084004 jmp short 022 cah ; eb 5a4006 je short 02280h ; 74 08 4007 jmp short 022d4h ; eb 5a 4005 4008 cmp AL, strict byte 002h ; 3c 02 4006 je short 0229 4h ; 74 204007 jmp short 022 cah ; eb 544009 je short 0229eh ; 74 20 4010 jmp short 022d4h ; eb 54 4008 4011 movzx ax, ah ; 0f b6 c4 4009 4012 push ax ; 50 … … 4014 4017 movzx dx, byte [bp-004h] ; 0f b6 56 fc 4015 4018 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 4016 call 01a 6eh ; e8 dc f74017 jmp short 022 cah ; eb 364019 call 01a78h ; e8 dc f7 4020 jmp short 022d4h ; eb 36 4018 4021 movzx ax, dl ; 0f b6 c2 4019 4022 push ax ; 50 … … 4024 4027 movzx dx, byte [bp-004h] ; 0f b6 56 fc 4025 4028 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 4026 call 01b 59h ; e8 a9 f84027 jmp short 022 cah ; eb 184029 call 01b63h ; e8 a9 f8 4030 jmp short 022d4h ; eb 18 4028 4031 movzx ax, byte [bp-012h] ; 0f b6 46 ee 4029 4032 push ax ; 50 … … 4032 4035 movzx dx, byte [bp-004h] ; 0f b6 56 fc 4033 4036 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 4034 call 01c 77h ; e8 ad f94037 call 01c81h ; e8 ad f9 4035 4038 inc byte [bp-008h] ; fe 46 f8 4036 4039 movzx ax, byte [bp-008h] ; 0f b6 46 f8 4037 4040 cmp ax, word [bp-012h] ; 3b 46 ee 4038 jne short 022 ddh ; 75 074041 jne short 022e7h ; 75 07 4039 4042 mov byte [bp-008h], 000h ; c6 46 f8 00 4040 4043 inc byte [bp-00ah] ; fe 46 f6 4041 4044 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 4042 4045 cmp ax, word [bp-014h] ; 3b 46 ec 4043 jne near 023 68h ; 0f 85 80 004046 jne near 02372h ; 0f 85 80 00 4044 4047 movzx si, byte [bp-010h] ; 0f b6 76 f0 4045 4048 sal si, 003h ; c1 e6 03 … … 4051 4054 ; dec bl ; fe cb 4052 4055 cmp byte [si+04830h], 000h ; 80 bc 30 48 00 4053 jne short 023 4ah ; 75 4a4056 jne short 02354h ; 75 4a 4054 4057 mov ax, word [bp-012h] ; 8b 46 ee 4055 4058 imul ax, word [bp-014h] ; 0f af 46 ec … … 4070 4073 inc dx ; 42 4071 4074 mov ax, word [si+04833h] ; 8b 84 33 48 4072 call 02f3 4h ; e8 02 0c4075 call 02f3eh ; e8 02 0c 4073 4076 push strict byte 00001h ; 6a 01 4074 4077 movzx dx, byte [bp-006h] ; 0f b6 56 fa … … 4081 4084 xor cx, cx ; 31 c9 4082 4085 xor bx, bx ; 31 db 4083 jmp short 023 5fh ; eb 154086 jmp short 02369h ; eb 15 4084 4087 push strict byte 00001h ; 6a 01 4085 4088 movzx ax, byte [bp-006h] ; 0f b6 46 fa … … 4093 4096 xor dx, dx ; 31 d2 4094 4097 mov ax, strict word 00001h ; b8 01 00 4095 call 015 68h ; e8 03 f24098 call 01572h ; e8 03 f2 4096 4099 dec byte [bp-00ah] ; fe 4e f6 4097 4100 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 … … 4102 4105 mov dx, word [bp-018h] ; 8b 56 e8 4103 4106 movzx ax, byte [bp-006h] ; 0f b6 46 fa 4104 call 00e5eh ; e8 d aea4107 call 00e5eh ; e8 d0 ea 4105 4108 lea sp, [bp-002h] ; 8d 66 fe 4106 4109 pop si ; 5e 4107 4110 pop bp ; 5d 4108 4111 retn ; c3 4109 get_font_access_: ; 0xc23 8aLB 0x2c4112 get_font_access_: ; 0xc2394 LB 0x2c 4110 4113 push bp ; 55 4111 4114 mov bp, sp ; 89 e5 … … 4131 4134 pop bp ; 5d 4132 4135 retn ; c3 4133 release_font_access_: ; 0xc23 b6LB 0x3c4136 release_font_access_: ; 0xc23c0 LB 0x3c 4134 4137 push bp ; 55 4135 4138 mov bp, sp ; 89 e5 … … 4163 4166 pop bp ; 5d 4164 4167 retn ; c3 4165 set_scan_lines_: ; 0xc23f 2LB 0xbf4168 set_scan_lines_: ; 0xc23fc LB 0xbf 4166 4169 push bp ; 55 4167 4170 mov bp, sp ; 89 e5 … … 4174 4177 mov dx, strict word 00063h ; ba 63 00 4175 4178 mov ax, strict word 00040h ; b8 40 00 4176 call 02f5 0h ; e8 4b 0b4179 call 02f5ah ; e8 4b 0b 4177 4180 mov dx, ax ; 89 c2 4178 4181 mov si, ax ; 89 c6 … … 4191 4194 out DX, AL ; ee 4192 4195 cmp bl, 008h ; 80 fb 08 4193 jne short 024 29h ; 75 084196 jne short 02433h ; 75 08 4194 4197 mov dx, strict word 00007h ; ba 07 00 4195 4198 mov ax, strict word 00006h ; b8 06 00 4196 jmp short 024 36h ; eb 0d4199 jmp short 02440h ; eb 0d 4197 4200 mov al, bl ; 88 d8 4198 4201 sub AL, strict byte 003h ; 2c 03 … … 4201 4204 sub AL, strict byte 004h ; 2c 04 4202 4205 xor ah, ah ; 30 e4 4203 call 00dbah ; e8 81e94206 call 00dbah ; e8 77 e9 4204 4207 movzx di, bl ; 0f b6 fb 4205 4208 mov bx, di ; 89 fb 4206 4209 mov dx, 00085h ; ba 85 00 4207 4210 mov ax, strict word 00040h ; b8 40 00 4208 call 02f 5eh ; e8 17 0b4211 call 02f68h ; e8 17 0b 4209 4212 mov AL, strict byte 012h ; b0 12 4210 4213 mov dx, si ; 89 f2 … … 4241 4244 mov dx, 00084h ; ba 84 00 4242 4245 mov ax, strict word 00040h ; b8 40 00 4243 call 02f4 2h ; e8 b7 0a4246 call 02f4ch ; e8 b7 0a 4244 4247 mov dx, strict word 0004ah ; ba 4a 00 4245 4248 mov ax, strict word 00040h ; b8 40 00 4246 call 02f5 0h ; e8 bc 0a4249 call 02f5ah ; e8 bc 0a 4247 4250 movzx dx, cl ; 0f b6 d1 4248 4251 mov bx, ax ; 89 c3 … … 4251 4254 mov dx, strict word 0004ch ; ba 4c 00 4252 4255 mov ax, strict word 00040h ; b8 40 00 4253 call 02f 5eh ; e8 b7 0a4256 call 02f68h ; e8 b7 0a 4254 4257 lea sp, [bp-00ah] ; 8d 66 f6 4255 4258 pop di ; 5f … … 4260 4263 pop bp ; 5d 4261 4264 retn ; c3 4262 biosfn_load_text_user_pat_: ; 0xc24b 1LB 0x7d4265 biosfn_load_text_user_pat_: ; 0xc24bb LB 0x7d 4263 4266 push bp ; 55 4264 4267 mov bp, sp ; 89 e5 … … 4270 4273 mov word [bp-008h], bx ; 89 5e f8 4271 4274 mov word [bp-00ah], cx ; 89 4e f6 4272 call 023 8ah ; e8 c2 fe4275 call 02394h ; e8 c2 fe 4273 4276 mov al, byte [bp+006h] ; 8a 46 06 4274 4277 and AL, strict byte 003h ; 24 03 … … 4284 4287 xor bx, bx ; 31 db 4285 4288 cmp bx, word [bp-00ah] ; 3b 5e f6 4286 jnc short 0251 5h ; 73 2b4289 jnc short 0251fh ; 73 2b 4287 4290 movzx cx, byte [bp+008h] ; 0f b6 4e 08 4288 4291 mov si, bx ; 89 de … … 4297 4300 mov es, ax ; 8e c0 4298 4301 cld ; fc 4299 jcxz 0251 2h ; e3 064302 jcxz 0251ch ; e3 06 4300 4303 push DS ; 1e 4301 4304 mov ds, dx ; 8e da … … 4303 4306 pop DS ; 1f 4304 4307 inc bx ; 43 4305 jmp short 024e 5h ; eb d04306 call 023 b6h ; e8 9e fe4308 jmp short 024efh ; eb d0 4309 call 023c0h ; e8 9e fe 4307 4310 cmp byte [bp-006h], 010h ; 80 7e fa 10 4308 jc short 0252 5h ; 72 074311 jc short 0252fh ; 72 07 4309 4312 movzx ax, byte [bp+008h] ; 0f b6 46 08 4310 call 023f 2h ; e8 cd fe4313 call 023fch ; e8 cd fe 4311 4314 lea sp, [bp-004h] ; 8d 66 fc 4312 4315 pop di ; 5f … … 4314 4317 pop bp ; 5d 4315 4318 retn 00006h ; c2 06 00 4316 biosfn_load_text_8_14_pat_: ; 0xc25 2eLB 0x704319 biosfn_load_text_8_14_pat_: ; 0xc2538 LB 0x70 4317 4320 push bp ; 55 4318 4321 mov bp, sp ; 89 e5 … … 4324 4327 push ax ; 50 4325 4328 mov byte [bp-00ah], al ; 88 46 f6 4326 call 023 8ah ; e8 4d fe4329 call 02394h ; e8 4d fe 4327 4330 mov al, dl ; 88 d0 4328 4331 and AL, strict byte 003h ; 24 03 … … 4337 4340 mov word [bp-00ch], bx ; 89 5e f4 4338 4341 xor bx, bx ; 31 db 4339 jmp short 0256 0h ; eb 064342 jmp short 0256ah ; eb 06 4340 4343 cmp bx, 00100h ; 81 fb 00 01 4341 jnc short 025 86h ; 73 264344 jnc short 02590h ; 73 26 4342 4345 imul si, bx, strict byte 0000eh ; 6b f3 0e 4343 4346 mov di, bx ; 89 df … … 4350 4353 mov es, ax ; 8e c0 4351 4354 cld ; fc 4352 jcxz 0258 3h ; e3 064355 jcxz 0258dh ; e3 06 4353 4356 push DS ; 1e 4354 4357 mov ds, dx ; 8e da … … 4356 4359 pop DS ; 1f 4357 4360 inc bx ; 43 4358 jmp short 025 5ah ; eb d44359 call 023 b6h ; e8 2d fe4361 jmp short 02564h ; eb d4 4362 call 023c0h ; e8 2d fe 4360 4363 cmp byte [bp-00ah], 010h ; 80 7e f6 10 4361 jc short 0259 5h ; 72 064364 jc short 0259fh ; 72 06 4362 4365 mov ax, strict word 0000eh ; b8 0e 00 4363 call 023f 2h ; e8 5d fe4366 call 023fch ; e8 5d fe 4364 4367 lea sp, [bp-008h] ; 8d 66 f8 4365 4368 pop di ; 5f … … 4369 4372 pop bp ; 5d 4370 4373 retn ; c3 4371 biosfn_load_text_8_8_pat_: ; 0xc25 9eLB 0x724374 biosfn_load_text_8_8_pat_: ; 0xc25a8 LB 0x72 4372 4375 push bp ; 55 4373 4376 mov bp, sp ; 89 e5 … … 4379 4382 push ax ; 50 4380 4383 mov byte [bp-00ah], al ; 88 46 f6 4381 call 023 8ah ; e8 dd fd4384 call 02394h ; e8 dd fd 4382 4385 mov al, dl ; 88 d0 4383 4386 and AL, strict byte 003h ; 24 03 … … 4392 4395 mov word [bp-00ch], bx ; 89 5e f4 4393 4396 xor bx, bx ; 31 db 4394 jmp short 025d 0h ; eb 064397 jmp short 025dah ; eb 06 4395 4398 cmp bx, 00100h ; 81 fb 00 01 4396 jnc short 02 5f8h ; 73 284399 jnc short 02602h ; 73 28 4397 4400 mov si, bx ; 89 de 4398 4401 sal si, 003h ; c1 e6 03 … … 4406 4409 mov es, ax ; 8e c0 4407 4410 cld ; fc 4408 jcxz 025f 5h ; e3 064411 jcxz 025ffh ; e3 06 4409 4412 push DS ; 1e 4410 4413 mov ds, dx ; 8e da … … 4412 4415 pop DS ; 1f 4413 4416 inc bx ; 43 4414 jmp short 025 cah ; eb d24415 call 023 b6h ; e8 bb fd4417 jmp short 025d4h ; eb d2 4418 call 023c0h ; e8 bb fd 4416 4419 cmp byte [bp-00ah], 010h ; 80 7e f6 10 4417 jc short 026 07h ; 72 064420 jc short 02611h ; 72 06 4418 4421 mov ax, strict word 00008h ; b8 08 00 4419 call 023f 2h ; e8 eb fd4422 call 023fch ; e8 eb fd 4420 4423 lea sp, [bp-008h] ; 8d 66 f8 4421 4424 pop di ; 5f … … 4425 4428 pop bp ; 5d 4426 4429 retn ; c3 4427 biosfn_load_text_8_16_pat_: ; 0xc261 0LB 0x724430 biosfn_load_text_8_16_pat_: ; 0xc261a LB 0x72 4428 4431 push bp ; 55 4429 4432 mov bp, sp ; 89 e5 … … 4435 4438 push ax ; 50 4436 4439 mov byte [bp-00ah], al ; 88 46 f6 4437 call 023 8ah ; e8 6b fd4440 call 02394h ; e8 6b fd 4438 4441 mov al, dl ; 88 d0 4439 4442 and AL, strict byte 003h ; 24 03 … … 4448 4451 mov word [bp-00ch], bx ; 89 5e f4 4449 4452 xor bx, bx ; 31 db 4450 jmp short 0264 2h ; eb 064453 jmp short 0264ch ; eb 06 4451 4454 cmp bx, 00100h ; 81 fb 00 01 4452 jnc short 026 6ah ; 73 284455 jnc short 02674h ; 73 28 4453 4456 mov si, bx ; 89 de 4454 4457 sal si, 004h ; c1 e6 04 … … 4462 4465 mov es, ax ; 8e c0 4463 4466 cld ; fc 4464 jcxz 026 67h ; e3 064467 jcxz 02671h ; e3 06 4465 4468 push DS ; 1e 4466 4469 mov ds, dx ; 8e da … … 4468 4471 pop DS ; 1f 4469 4472 inc bx ; 43 4470 jmp short 026 3ch ; eb d24471 call 023 b6h ; e8 49 fd4473 jmp short 02646h ; eb d2 4474 call 023c0h ; e8 49 fd 4472 4475 cmp byte [bp-00ah], 010h ; 80 7e f6 10 4473 jc short 026 79h ; 72 064476 jc short 02683h ; 72 06 4474 4477 mov ax, strict word 00010h ; b8 10 00 4475 call 023f 2h ; e8 79 fd4478 call 023fch ; e8 79 fd 4476 4479 lea sp, [bp-008h] ; 8d 66 f8 4477 4480 pop di ; 5f … … 4481 4484 pop bp ; 5d 4482 4485 retn ; c3 4483 biosfn_load_gfx_8_8_chars_: ; 0xc268 2LB 0x54486 biosfn_load_gfx_8_8_chars_: ; 0xc268c LB 0x5 4484 4487 push bp ; 55 4485 4488 mov bp, sp ; 89 e5 4486 4489 pop bp ; 5d 4487 4490 retn ; c3 4488 biosfn_load_gfx_user_chars_: ; 0xc26 87LB 0x74491 biosfn_load_gfx_user_chars_: ; 0xc2691 LB 0x7 4489 4492 push bp ; 55 4490 4493 mov bp, sp ; 89 e5 4491 4494 pop bp ; 5d 4492 4495 retn 00002h ; c2 02 00 4493 biosfn_load_gfx_8_14_chars_: ; 0xc26 8eLB 0x54496 biosfn_load_gfx_8_14_chars_: ; 0xc2698 LB 0x5 4494 4497 push bp ; 55 4495 4498 mov bp, sp ; 89 e5 4496 4499 pop bp ; 5d 4497 4500 retn ; c3 4498 biosfn_load_gfx_8_8_dd_chars_: ; 0xc269 3LB 0x54501 biosfn_load_gfx_8_8_dd_chars_: ; 0xc269d LB 0x5 4499 4502 push bp ; 55 4500 4503 mov bp, sp ; 89 e5 4501 4504 pop bp ; 5d 4502 4505 retn ; c3 4503 biosfn_load_gfx_8_16_chars_: ; 0xc26 98LB 0x54506 biosfn_load_gfx_8_16_chars_: ; 0xc26a2 LB 0x5 4504 4507 push bp ; 55 4505 4508 mov bp, sp ; 89 e5 4506 4509 pop bp ; 5d 4507 4510 retn ; c3 4508 biosfn_alternate_prtsc_: ; 0xc26 9dLB 0x54511 biosfn_alternate_prtsc_: ; 0xc26a7 LB 0x5 4509 4512 push bp ; 55 4510 4513 mov bp, sp ; 89 e5 4511 4514 pop bp ; 5d 4512 4515 retn ; c3 4513 biosfn_switch_video_interface_: ; 0xc26a 2LB 0x54516 biosfn_switch_video_interface_: ; 0xc26ac LB 0x5 4514 4517 push bp ; 55 4515 4518 mov bp, sp ; 89 e5 4516 4519 pop bp ; 5d 4517 4520 retn ; c3 4518 biosfn_enable_video_refresh_control_: ; 0xc26 a7LB 0x54521 biosfn_enable_video_refresh_control_: ; 0xc26b1 LB 0x5 4519 4522 push bp ; 55 4520 4523 mov bp, sp ; 89 e5 4521 4524 pop bp ; 5d 4522 4525 retn ; c3 4523 biosfn_write_string_: ; 0xc26 acLB 0x9c4526 biosfn_write_string_: ; 0xc26b6 LB 0x9c 4524 4527 push bp ; 55 4525 4528 mov bp, sp ; 89 e5 … … 4535 4538 lea bx, [bp-00eh] ; 8d 5e f2 4536 4539 lea dx, [bp-00ch] ; 8d 56 f4 4537 call 00a88h ; e8 b ae34540 call 00a88h ; e8 b0 e3 4538 4541 cmp byte [bp+004h], 0ffh ; 80 7e 04 ff 4539 jne short 026e 5h ; 75 114542 jne short 026efh ; 75 11 4540 4543 mov al, byte [bp-00eh] ; 8a 46 f2 4541 4544 mov byte [bp+006h], al ; 88 46 06 … … 4549 4552 add dx, ax ; 01 c2 4550 4553 movzx ax, byte [bp-008h] ; 0f b6 46 f8 4551 call 00e5eh ; e8 65e74554 call 00e5eh ; e8 5b e7 4552 4555 dec si ; 4e 4553 4556 cmp si, strict byte 0ffffh ; 83 fe ff 4554 je short 027 2fh ; 74 304557 je short 02739h ; 74 30 4555 4558 mov dx, di ; 89 fa 4556 4559 inc di ; 47 4557 4560 mov ax, word [bp+008h] ; 8b 46 08 4558 call 02f3 4h ; e8 2c 084561 call 02f3eh ; e8 2c 08 4559 4562 mov cl, al ; 88 c1 4560 4563 test byte [bp-00ah], 002h ; f6 46 f6 02 4561 je short 027 1ch ; 74 0c4564 je short 02726h ; 74 0c 4562 4565 mov dx, di ; 89 fa 4563 4566 inc di ; 47 4564 4567 mov ax, word [bp+008h] ; 8b 46 08 4565 call 02f3 4h ; e8 1b 084568 call 02f3eh ; e8 1b 08 4566 4569 mov byte [bp-006h], al ; 88 46 fa 4567 4570 movzx bx, byte [bp-006h] ; 0f b6 5e fa … … 4569 4572 movzx ax, cl ; 0f b6 c1 4570 4573 mov cx, strict word 00003h ; b9 03 00 4571 call 021 49h ; e8 1c fa4572 jmp short 02 6f9h ; eb ca4574 call 02153h ; e8 1c fa 4575 jmp short 02703h ; eb ca 4573 4576 test byte [bp-00ah], 001h ; f6 46 f6 01 4574 jne short 027 3fh ; 75 0a4577 jne short 02749h ; 75 0a 4575 4578 mov dx, word [bp-00eh] ; 8b 56 f2 4576 4579 movzx ax, byte [bp-008h] ; 0f b6 46 f8 4577 call 00e5eh ; e8 1 fe74580 call 00e5eh ; e8 15 e7 4578 4581 lea sp, [bp-004h] ; 8d 66 fc 4579 4582 pop di ; 5f … … 4581 4584 pop bp ; 5d 4582 4585 retn 00008h ; c2 08 00 4583 biosfn_read_state_info_: ; 0xc27 48LB 0x1014586 biosfn_read_state_info_: ; 0xc2752 LB 0x101 4584 4587 push bp ; 55 4585 4588 mov bp, sp ; 89 e5 … … 4593 4596 mov dx, word [bp-00ah] ; 8b 56 f6 4594 4597 mov ax, word [bp-008h] ; 8b 46 f8 4595 call 02f 7eh ; e8 20 084598 call 02f88h ; e8 20 08 4596 4599 mov di, word [bp-00ah] ; 8b 7e f6 4597 4600 add di, strict byte 00004h ; 83 c7 04 … … 4601 4604 mov es, [bp-008h] ; 8e 46 f8 4602 4605 cld ; fc 4603 jcxz 027 79h ; e3 064606 jcxz 02783h ; e3 06 4604 4607 push DS ; 1e 4605 4608 mov ds, dx ; 8e da … … 4613 4616 mov es, [bp-008h] ; 8e 46 f8 4614 4617 cld ; fc 4615 jcxz 0279 4h ; e3 064618 jcxz 0279eh ; e3 06 4616 4619 push DS ; 1e 4617 4620 mov ds, dx ; 8e da … … 4620 4623 mov dx, 0008ah ; ba 8a 00 4621 4624 mov ax, strict word 00040h ; b8 40 00 4622 call 02f3 4h ; e8 97 074625 call 02f3eh ; e8 97 07 4623 4626 movzx bx, al ; 0f b6 d8 4624 4627 mov dx, word [bp-00ah] ; 8b 56 f6 4625 4628 add dx, strict byte 00025h ; 83 c2 25 4626 4629 mov ax, word [bp-008h] ; 8b 46 f8 4627 call 02f4 2h ; e8 96 074630 call 02f4ch ; e8 96 07 4628 4631 mov dx, word [bp-00ah] ; 8b 56 f6 4629 4632 add dx, strict byte 00026h ; 83 c2 26 4630 4633 xor bx, bx ; 31 db 4631 4634 mov ax, word [bp-008h] ; 8b 46 f8 4632 call 02f4 2h ; e8 88 074635 call 02f4ch ; e8 88 07 4633 4636 mov dx, word [bp-00ah] ; 8b 56 f6 4634 4637 add dx, strict byte 00027h ; 83 c2 27 4635 4638 mov bx, strict word 00010h ; bb 10 00 4636 4639 mov ax, word [bp-008h] ; 8b 46 f8 4637 call 02f4 2h ; e8 79 074640 call 02f4ch ; e8 79 07 4638 4641 mov dx, word [bp-00ah] ; 8b 56 f6 4639 4642 add dx, strict byte 00028h ; 83 c2 28 4640 4643 xor bx, bx ; 31 db 4641 4644 mov ax, word [bp-008h] ; 8b 46 f8 4642 call 02f4 2h ; e8 6b 074645 call 02f4ch ; e8 6b 07 4643 4646 mov dx, word [bp-00ah] ; 8b 56 f6 4644 4647 add dx, strict byte 00029h ; 83 c2 29 4645 4648 mov bx, strict word 00008h ; bb 08 00 4646 4649 mov ax, word [bp-008h] ; 8b 46 f8 4647 call 02f4 2h ; e8 5c 074650 call 02f4ch ; e8 5c 07 4648 4651 mov dx, word [bp-00ah] ; 8b 56 f6 4649 4652 add dx, strict byte 0002ah ; 83 c2 2a 4650 4653 mov bx, strict word 00002h ; bb 02 00 4651 4654 mov ax, word [bp-008h] ; 8b 46 f8 4652 call 02f4 2h ; e8 4d 074655 call 02f4ch ; e8 4d 07 4653 4656 mov dx, word [bp-00ah] ; 8b 56 f6 4654 4657 add dx, strict byte 0002bh ; 83 c2 2b 4655 4658 xor bx, bx ; 31 db 4656 4659 mov ax, word [bp-008h] ; 8b 46 f8 4657 call 02f4 2h ; e8 3f 074660 call 02f4ch ; e8 3f 07 4658 4661 mov dx, word [bp-00ah] ; 8b 56 f6 4659 4662 add dx, strict byte 0002ch ; 83 c2 2c 4660 4663 xor bx, bx ; 31 db 4661 4664 mov ax, word [bp-008h] ; 8b 46 f8 4662 call 02f4 2h ; e8 31 074665 call 02f4ch ; e8 31 07 4663 4666 mov dx, word [bp-00ah] ; 8b 56 f6 4664 4667 add dx, strict byte 00031h ; 83 c2 31 4665 4668 mov bx, strict word 00003h ; bb 03 00 4666 4669 mov ax, word [bp-008h] ; 8b 46 f8 4667 call 02f4 2h ; e8 22 074670 call 02f4ch ; e8 22 07 4668 4671 mov dx, word [bp-00ah] ; 8b 56 f6 4669 4672 add dx, strict byte 00032h ; 83 c2 32 4670 4673 xor bx, bx ; 31 db 4671 4674 mov ax, word [bp-008h] ; 8b 46 f8 4672 call 02f4 2h ; e8 14 074675 call 02f4ch ; e8 14 07 4673 4676 mov di, word [bp-00ah] ; 8b 7e f6 4674 4677 add di, strict byte 00033h ; 83 c7 33 … … 4677 4680 mov es, [bp-008h] ; 8e 46 f8 4678 4681 cld ; fc 4679 jcxz 0284 1h ; e3 024682 jcxz 0284bh ; e3 02 4680 4683 rep stosb ; f3 aa 4681 4684 lea sp, [bp-006h] ; 8d 66 fa … … 4685 4688 pop bp ; 5d 4686 4689 retn ; c3 4687 biosfn_read_video_state_size2_: ; 0xc28 49LB 0x234690 biosfn_read_video_state_size2_: ; 0xc2853 LB 0x23 4688 4691 push dx ; 52 4689 4692 push bp ; 55 … … 4692 4695 xor ax, ax ; 31 c0 4693 4696 test dl, 001h ; f6 c2 01 4694 je short 028 59h ; 74 034697 je short 02863h ; 74 03 4695 4698 mov ax, strict word 00046h ; b8 46 00 4696 4699 test dl, 002h ; f6 c2 02 4697 je short 0286 1h ; 74 034700 je short 0286bh ; 74 03 4698 4701 add ax, strict word 0002ah ; 05 2a 00 4699 4702 test dl, 004h ; f6 c2 04 4700 je short 028 69h ; 74 034703 je short 02873h ; 74 03 4701 4704 add ax, 00304h ; 05 04 03 4702 4705 pop bp ; 5d 4703 4706 pop dx ; 5a 4704 4707 retn ; c3 4705 vga_get_video_state_size_: ; 0xc28 6cLB 0x124708 vga_get_video_state_size_: ; 0xc2876 LB 0x12 4706 4709 push bp ; 55 4707 4710 mov bp, sp ; 89 e5 4708 4711 push bx ; 53 4709 4712 mov bx, dx ; 89 d3 4710 call 028 49h ; e8 d4 ff4713 call 02853h ; e8 d4 ff 4711 4714 mov word [ss:bx], ax ; 36 89 07 4712 4715 lea sp, [bp-002h] ; 8d 66 fe … … 4714 4717 pop bp ; 5d 4715 4718 retn ; c3 4716 biosfn_save_video_state_: ; 0xc28 7eLB 0x3694719 biosfn_save_video_state_: ; 0xc2888 LB 0x369 4717 4720 push bp ; 55 4718 4721 mov bp, sp ; 89 e5 … … 4727 4730 mov dx, strict word 00063h ; ba 63 00 4728 4731 mov ax, strict word 00040h ; b8 40 00 4729 call 02f5 0h ; e8 bc 064732 call 02f5ah ; e8 bc 06 4730 4733 mov di, ax ; 89 c7 4731 4734 test byte [bp-00ch], 001h ; f6 46 f4 01 4732 je near 02a0 1h ; 0f 84 63 014735 je near 02a0bh ; 0f 84 63 01 4733 4736 mov dx, 003c4h ; ba c4 03 4734 4737 in AL, DX ; ec … … 4738 4741 mov dx, cx ; 89 ca 4739 4742 mov ax, si ; 89 f0 4740 call 02f4 2h ; e8 94 064743 call 02f4ch ; e8 94 06 4741 4744 inc cx ; 41 4742 4745 mov dx, di ; 89 fa … … 4747 4750 mov dx, cx ; 89 ca 4748 4751 mov ax, si ; 89 f0 4749 call 02f4 2h ; e8 84 064752 call 02f4ch ; e8 84 06 4750 4753 inc cx ; 41 4751 4754 mov dx, 003ceh ; ba ce 03 … … 4756 4759 mov dx, cx ; 89 ca 4757 4760 mov ax, si ; 89 f0 4758 call 02f4 2h ; e8 73 064761 call 02f4ch ; e8 73 06 4759 4762 inc cx ; 41 4760 4763 mov dx, 003dah ; ba da 03 … … 4770 4773 mov dx, cx ; 89 ca 4771 4774 mov ax, si ; 89 f0 4772 call 02f4 2h ; e8 58 064775 call 02f4ch ; e8 58 06 4773 4776 inc cx ; 41 4774 4777 mov dx, 003cah ; ba ca 03 … … 4779 4782 mov dx, cx ; 89 ca 4780 4783 mov ax, si ; 89 f0 4781 call 02f4 2h ; e8 47 064784 call 02f4ch ; e8 47 06 4782 4785 mov ax, strict word 00001h ; b8 01 00 4783 4786 mov word [bp-00ah], ax ; 89 46 f6 4784 4787 add cx, ax ; 01 c1 4785 jmp short 029 0bh ; eb 064788 jmp short 02915h ; eb 06 4786 4789 cmp word [bp-00ah], strict byte 00004h ; 83 7e f6 04 4787 jnbe short 029 28h ; 77 1d4790 jnbe short 02932h ; 77 1d 4788 4791 mov al, byte [bp-00ah] ; 8a 46 f6 4789 4792 mov dx, 003c4h ; ba c4 03 … … 4796 4799 mov dx, cx ; 89 ca 4797 4800 mov ax, si ; 89 f0 4798 call 02f4 2h ; e8 20 064801 call 02f4ch ; e8 20 06 4799 4802 inc cx ; 41 4800 4803 inc word [bp-00ah] ; ff 46 f6 4801 jmp short 0290 5h ; eb dd4804 jmp short 0290fh ; eb dd 4802 4805 xor al, al ; 30 c0 4803 4806 mov dx, 003c4h ; ba c4 03 … … 4810 4813 mov dx, cx ; 89 ca 4811 4814 mov ax, si ; 89 f0 4812 call 02f4 2h ; e8 04 064815 call 02f4ch ; e8 04 06 4813 4816 mov word [bp-00ah], strict word 00000h ; c7 46 f6 00 00 4814 4817 inc cx ; 41 4815 jmp short 029 4ch ; eb 064818 jmp short 02956h ; eb 06 4816 4819 cmp word [bp-00ah], strict byte 00018h ; 83 7e f6 18 4817 jnbe short 029 68h ; 77 1c4820 jnbe short 02972h ; 77 1c 4818 4821 mov al, byte [bp-00ah] ; 8a 46 f6 4819 4822 mov dx, di ; 89 fa … … 4826 4829 mov dx, cx ; 89 ca 4827 4830 mov ax, si ; 89 f0 4828 call 02f4 2h ; e8 e0 054831 call 02f4ch ; e8 e0 05 4829 4832 inc cx ; 41 4830 4833 inc word [bp-00ah] ; ff 46 f6 4831 jmp short 029 46h ; eb de4834 jmp short 02950h ; eb de 4832 4835 mov word [bp-00ah], strict word 00000h ; c7 46 f6 00 00 4833 jmp short 0297 5h ; eb 064836 jmp short 0297fh ; eb 06 4834 4837 cmp word [bp-00ah], strict byte 00013h ; 83 7e f6 13 4835 jnbe short 029 9eh ; 77 294838 jnbe short 029a8h ; 77 29 4836 4839 mov dx, 003dah ; ba da 03 4837 4840 in AL, DX ; ec … … 4850 4853 mov dx, cx ; 89 ca 4851 4854 mov ax, si ; 89 f0 4852 call 02f4 2h ; e8 aa 054855 call 02f4ch ; e8 aa 05 4853 4856 inc cx ; 41 4854 4857 inc word [bp-00ah] ; ff 46 f6 4855 jmp short 029 6fh ; eb d14858 jmp short 02979h ; eb d1 4856 4859 mov dx, 003dah ; ba da 03 4857 4860 in AL, DX ; ec … … 4859 4862 ; sub ah, ah ; 2a e4 4860 4863 mov word [bp-00ah], strict word 00000h ; c7 46 f6 00 00 4861 jmp short 029b 1h ; eb 064864 jmp short 029bbh ; eb 06 4862 4865 cmp word [bp-00ah], strict byte 00008h ; 83 7e f6 08 4863 jnbe short 029 ceh ; 77 1d4866 jnbe short 029d8h ; 77 1d 4864 4867 mov al, byte [bp-00ah] ; 8a 46 f6 4865 4868 mov dx, 003ceh ; ba ce 03 … … 4872 4875 mov dx, cx ; 89 ca 4873 4876 mov ax, si ; 89 f0 4874 call 02f4 2h ; e8 7a 054877 call 02f4ch ; e8 7a 05 4875 4878 inc cx ; 41 4876 4879 inc word [bp-00ah] ; ff 46 f6 4877 jmp short 029 abh ; eb dd4880 jmp short 029b5h ; eb dd 4878 4881 mov bx, di ; 89 fb 4879 4882 mov dx, cx ; 89 ca 4880 4883 mov ax, si ; 89 f0 4881 call 02f 5eh ; e8 87 054884 call 02f68h ; e8 87 05 4882 4885 inc cx ; 41 4883 4886 inc cx ; 41 … … 4885 4888 mov dx, cx ; 89 ca 4886 4889 mov ax, si ; 89 f0 4887 call 02f4 2h ; e8 60 054890 call 02f4ch ; e8 60 05 4888 4891 inc cx ; 41 4889 4892 xor bx, bx ; 31 db 4890 4893 mov dx, cx ; 89 ca 4891 4894 mov ax, si ; 89 f0 4892 call 02f4 2h ; e8 56 054895 call 02f4ch ; e8 56 05 4893 4896 inc cx ; 41 4894 4897 xor bx, bx ; 31 db 4895 4898 mov dx, cx ; 89 ca 4896 4899 mov ax, si ; 89 f0 4897 call 02f4 2h ; e8 4c 054900 call 02f4ch ; e8 4c 05 4898 4901 inc cx ; 41 4899 4902 xor bx, bx ; 31 db 4900 4903 mov dx, cx ; 89 ca 4901 4904 mov ax, si ; 89 f0 4902 call 02f4 2h ; e8 42 054905 call 02f4ch ; e8 42 05 4903 4906 inc cx ; 41 4904 4907 test byte [bp-00ch], 002h ; f6 46 f4 02 4905 je near 02b7 0h ; 0f 84 67 014908 je near 02b7ah ; 0f 84 67 01 4906 4909 mov dx, strict word 00049h ; ba 49 00 4907 4910 mov ax, strict word 00040h ; b8 40 00 4908 call 02f3 4h ; e8 22 054911 call 02f3eh ; e8 22 05 4909 4912 movzx bx, al ; 0f b6 d8 4910 4913 mov dx, cx ; 89 ca 4911 4914 mov ax, si ; 89 f0 4912 call 02f4 2h ; e8 26 054915 call 02f4ch ; e8 26 05 4913 4916 inc cx ; 41 4914 4917 mov dx, strict word 0004ah ; ba 4a 00 4915 4918 mov ax, strict word 00040h ; b8 40 00 4916 call 02f5 0h ; e8 2a 054919 call 02f5ah ; e8 2a 05 4917 4920 mov bx, ax ; 89 c3 4918 4921 mov dx, cx ; 89 ca 4919 4922 mov ax, si ; 89 f0 4920 call 02f 5eh ; e8 2f 054923 call 02f68h ; e8 2f 05 4921 4924 inc cx ; 41 4922 4925 inc cx ; 41 4923 4926 mov dx, strict word 0004ch ; ba 4c 00 4924 4927 mov ax, strict word 00040h ; b8 40 00 4925 call 02f5 0h ; e8 16 054928 call 02f5ah ; e8 16 05 4926 4929 mov bx, ax ; 89 c3 4927 4930 mov dx, cx ; 89 ca 4928 4931 mov ax, si ; 89 f0 4929 call 02f 5eh ; e8 1b 054932 call 02f68h ; e8 1b 05 4930 4933 inc cx ; 41 4931 4934 inc cx ; 41 4932 4935 mov dx, strict word 00063h ; ba 63 00 4933 4936 mov ax, strict word 00040h ; b8 40 00 4934 call 02f5 0h ; e8 02 054937 call 02f5ah ; e8 02 05 4935 4938 mov bx, ax ; 89 c3 4936 4939 mov dx, cx ; 89 ca 4937 4940 mov ax, si ; 89 f0 4938 call 02f 5eh ; e8 07 054941 call 02f68h ; e8 07 05 4939 4942 inc cx ; 41 4940 4943 inc cx ; 41 4941 4944 mov dx, 00084h ; ba 84 00 4942 4945 mov ax, strict word 00040h ; b8 40 00 4943 call 02f3 4h ; e8 d2 044946 call 02f3eh ; e8 d2 04 4944 4947 movzx bx, al ; 0f b6 d8 4945 4948 mov dx, cx ; 89 ca 4946 4949 mov ax, si ; 89 f0 4947 call 02f4 2h ; e8 d6 044950 call 02f4ch ; e8 d6 04 4948 4951 inc cx ; 41 4949 4952 mov dx, 00085h ; ba 85 00 4950 4953 mov ax, strict word 00040h ; b8 40 00 4951 call 02f5 0h ; e8 da 044954 call 02f5ah ; e8 da 04 4952 4955 mov bx, ax ; 89 c3 4953 4956 mov dx, cx ; 89 ca 4954 4957 mov ax, si ; 89 f0 4955 call 02f 5eh ; e8 df 044958 call 02f68h ; e8 df 04 4956 4959 inc cx ; 41 4957 4960 inc cx ; 41 4958 4961 mov dx, 00087h ; ba 87 00 4959 4962 mov ax, strict word 00040h ; b8 40 00 4960 call 02f3 4h ; e8 aa 044963 call 02f3eh ; e8 aa 04 4961 4964 movzx bx, al ; 0f b6 d8 4962 4965 mov dx, cx ; 89 ca 4963 4966 mov ax, si ; 89 f0 4964 call 02f4 2h ; e8 ae 044967 call 02f4ch ; e8 ae 04 4965 4968 inc cx ; 41 4966 4969 mov dx, 00088h ; ba 88 00 4967 4970 mov ax, strict word 00040h ; b8 40 00 4968 call 02f3 4h ; e8 96 044971 call 02f3eh ; e8 96 04 4969 4972 movzx bx, al ; 0f b6 d8 4970 4973 mov dx, cx ; 89 ca 4971 4974 mov ax, si ; 89 f0 4972 call 02f4 2h ; e8 9a 044975 call 02f4ch ; e8 9a 04 4973 4976 inc cx ; 41 4974 4977 mov dx, 00089h ; ba 89 00 4975 4978 mov ax, strict word 00040h ; b8 40 00 4976 call 02f3 4h ; e8 82 044979 call 02f3eh ; e8 82 04 4977 4980 movzx bx, al ; 0f b6 d8 4978 4981 mov dx, cx ; 89 ca 4979 4982 mov ax, si ; 89 f0 4980 call 02f4 2h ; e8 86 044983 call 02f4ch ; e8 86 04 4981 4984 inc cx ; 41 4982 4985 mov dx, strict word 00060h ; ba 60 00 4983 4986 mov ax, strict word 00040h ; b8 40 00 4984 call 02f5 0h ; e8 8a 044987 call 02f5ah ; e8 8a 04 4985 4988 mov bx, ax ; 89 c3 4986 4989 mov dx, cx ; 89 ca 4987 4990 mov ax, si ; 89 f0 4988 call 02f 5eh ; e8 8f 044991 call 02f68h ; e8 8f 04 4989 4992 mov word [bp-00ah], strict word 00000h ; c7 46 f6 00 00 4990 4993 inc cx ; 41 4991 4994 inc cx ; 41 4992 jmp short 02a deh ; eb 064995 jmp short 02ae8h ; eb 06 4993 4996 cmp word [bp-00ah], strict byte 00008h ; 83 7e f6 08 4994 jnc short 02 afch ; 73 1e4997 jnc short 02b06h ; 73 1e 4995 4998 mov dx, word [bp-00ah] ; 8b 56 f6 4996 4999 add dx, dx ; 01 d2 4997 5000 add dx, strict byte 00050h ; 83 c2 50 4998 5001 mov ax, strict word 00040h ; b8 40 00 4999 call 02f5 0h ; e8 64 045002 call 02f5ah ; e8 64 04 5000 5003 mov bx, ax ; 89 c3 5001 5004 mov dx, cx ; 89 ca 5002 5005 mov ax, si ; 89 f0 5003 call 02f 5eh ; e8 69 045006 call 02f68h ; e8 69 04 5004 5007 inc cx ; 41 5005 5008 inc cx ; 41 5006 5009 inc word [bp-00ah] ; ff 46 f6 5007 jmp short 02a d8h ; eb dc5010 jmp short 02ae2h ; eb dc 5008 5011 mov dx, strict word 0004eh ; ba 4e 00 5009 5012 mov ax, strict word 00040h ; b8 40 00 5010 call 02f5 0h ; e8 4b 045013 call 02f5ah ; e8 4b 04 5011 5014 mov bx, ax ; 89 c3 5012 5015 mov dx, cx ; 89 ca 5013 5016 mov ax, si ; 89 f0 5014 call 02f 5eh ; e8 50 045017 call 02f68h ; e8 50 04 5015 5018 inc cx ; 41 5016 5019 inc cx ; 41 5017 5020 mov dx, strict word 00062h ; ba 62 00 5018 5021 mov ax, strict word 00040h ; b8 40 00 5019 call 02f3 4h ; e8 1b 045022 call 02f3eh ; e8 1b 04 5020 5023 movzx bx, al ; 0f b6 d8 5021 5024 mov dx, cx ; 89 ca 5022 5025 mov ax, si ; 89 f0 5023 call 02f4 2h ; e8 1f 045026 call 02f4ch ; e8 1f 04 5024 5027 inc cx ; 41 5025 5028 mov dx, strict word 0007ch ; ba 7c 00 5026 5029 xor ax, ax ; 31 c0 5027 call 02f5 0h ; e8 24 045030 call 02f5ah ; e8 24 04 5028 5031 mov bx, ax ; 89 c3 5029 5032 mov dx, cx ; 89 ca 5030 5033 mov ax, si ; 89 f0 5031 call 02f 5eh ; e8 29 045034 call 02f68h ; e8 29 04 5032 5035 inc cx ; 41 5033 5036 inc cx ; 41 5034 5037 mov dx, strict word 0007eh ; ba 7e 00 5035 5038 xor ax, ax ; 31 c0 5036 call 02f5 0h ; e8 11 045039 call 02f5ah ; e8 11 04 5037 5040 mov bx, ax ; 89 c3 5038 5041 mov dx, cx ; 89 ca 5039 5042 mov ax, si ; 89 f0 5040 call 02f 5eh ; e8 16 045043 call 02f68h ; e8 16 04 5041 5044 inc cx ; 41 5042 5045 inc cx ; 41 5043 5046 mov dx, 0010ch ; ba 0c 01 5044 5047 xor ax, ax ; 31 c0 5045 call 02f5 0h ; e8 fe 035048 call 02f5ah ; e8 fe 03 5046 5049 mov bx, ax ; 89 c3 5047 5050 mov dx, cx ; 89 ca 5048 5051 mov ax, si ; 89 f0 5049 call 02f 5eh ; e8 03 045052 call 02f68h ; e8 03 04 5050 5053 inc cx ; 41 5051 5054 inc cx ; 41 5052 5055 mov dx, 0010eh ; ba 0e 01 5053 5056 xor ax, ax ; 31 c0 5054 call 02f5 0h ; e8 eb 035057 call 02f5ah ; e8 eb 03 5055 5058 mov bx, ax ; 89 c3 5056 5059 mov dx, cx ; 89 ca 5057 5060 mov ax, si ; 89 f0 5058 call 02f 5eh ; e8 f0 035061 call 02f68h ; e8 f0 03 5059 5062 inc cx ; 41 5060 5063 inc cx ; 41 5061 5064 test byte [bp-00ch], 004h ; f6 46 f4 04 5062 je short 02b ddh ; 74 675065 je short 02be7h ; 74 67 5063 5066 mov dx, 003c7h ; ba c7 03 5064 5067 in AL, DX ; ec … … 5068 5071 mov dx, cx ; 89 ca 5069 5072 mov ax, si ; 89 f0 5070 call 02f4 2h ; e8 bc 035073 call 02f4ch ; e8 bc 03 5071 5074 inc cx ; 41 5072 5075 mov dx, 003c8h ; ba c8 03 … … 5077 5080 mov dx, cx ; 89 ca 5078 5081 mov ax, si ; 89 f0 5079 call 02f4 2h ; e8 ab 035082 call 02f4ch ; e8 ab 03 5080 5083 inc cx ; 41 5081 5084 mov dx, 003c6h ; ba c6 03 … … 5086 5089 mov dx, cx ; 89 ca 5087 5090 mov ax, si ; 89 f0 5088 call 02f4 2h ; e8 9a 035091 call 02f4ch ; e8 9a 03 5089 5092 inc cx ; 41 5090 5093 xor al, al ; 30 c0 … … 5093 5096 xor ah, ah ; 30 e4 5094 5097 mov word [bp-00ah], ax ; 89 46 f6 5095 jmp short 02b bdh ; eb 075098 jmp short 02bc7h ; eb 07 5096 5099 cmp word [bp-00ah], 00300h ; 81 7e f6 00 03 5097 jnc short 02bd 3h ; 73 165100 jnc short 02bddh ; 73 16 5098 5101 mov dx, 003c9h ; ba c9 03 5099 5102 in AL, DX ; ec … … 5103 5106 mov dx, cx ; 89 ca 5104 5107 mov ax, si ; 89 f0 5105 call 02f4 2h ; e8 75 035108 call 02f4ch ; e8 75 03 5106 5109 inc cx ; 41 5107 5110 inc word [bp-00ah] ; ff 46 f6 5108 jmp short 02b b6h ; eb e35111 jmp short 02bc0h ; eb e3 5109 5112 xor bx, bx ; 31 db 5110 5113 mov dx, cx ; 89 ca 5111 5114 mov ax, si ; 89 f0 5112 call 02f4 2h ; e8 66 035115 call 02f4ch ; e8 66 03 5113 5116 inc cx ; 41 5114 5117 mov ax, cx ; 89 c8 … … 5119 5122 pop bp ; 5d 5120 5123 retn ; c3 5121 biosfn_restore_video_state_: ; 0xc2b e7LB 0x3265124 biosfn_restore_video_state_: ; 0xc2bf1 LB 0x326 5122 5125 push bp ; 55 5123 5126 mov bp, sp ; 89 e5 … … 5130 5133 mov cx, bx ; 89 d9 5131 5134 test byte [bp-00eh], 001h ; f6 46 f2 01 5132 je near 02d 47h ; 0f 84 4a 015135 je near 02d51h ; 0f 84 4a 01 5133 5136 mov dx, 003dah ; ba da 03 5134 5137 in AL, DX ; ec … … 5137 5140 lea dx, [bx+040h] ; 8d 57 40 5138 5141 mov ax, si ; 89 f0 5139 call 02f5 0h ; e8 45 035142 call 02f5ah ; e8 45 03 5140 5143 mov di, ax ; 89 c7 5141 5144 mov word [bp-008h], strict word 00001h ; c7 46 f8 01 00 5142 5145 lea cx, [bx+005h] ; 8d 4f 05 5143 jmp short 02c 1dh ; eb 065146 jmp short 02c27h ; eb 06 5144 5147 cmp word [bp-008h], strict byte 00004h ; 83 7e f8 04 5145 jnbe short 02c3 5h ; 77 185148 jnbe short 02c3fh ; 77 18 5146 5149 mov al, byte [bp-008h] ; 8a 46 f8 5147 5150 mov dx, 003c4h ; ba c4 03 … … 5149 5152 mov dx, cx ; 89 ca 5150 5153 mov ax, si ; 89 f0 5151 call 02f3 4h ; e8 09 035154 call 02f3eh ; e8 09 03 5152 5155 mov dx, 003c5h ; ba c5 03 5153 5156 out DX, AL ; ee 5154 5157 inc cx ; 41 5155 5158 inc word [bp-008h] ; ff 46 f8 5156 jmp short 02c 17h ; eb e25159 jmp short 02c21h ; eb e2 5157 5160 xor al, al ; 30 c0 5158 5161 mov dx, 003c4h ; ba c4 03 … … 5160 5163 mov dx, cx ; 89 ca 5161 5164 mov ax, si ; 89 f0 5162 call 02f3 4h ; e8 f2 025165 call 02f3eh ; e8 f2 02 5163 5166 mov dx, 003c5h ; ba c5 03 5164 5167 out DX, AL ; ee … … 5168 5171 out DX, ax ; ef 5169 5172 mov word [bp-008h], strict word 00000h ; c7 46 f8 00 00 5170 jmp short 02c 5ah ; eb 065173 jmp short 02c64h ; eb 06 5171 5174 cmp word [bp-008h], strict byte 00018h ; 83 7e f8 18 5172 jnbe short 02c 77h ; 77 1d5175 jnbe short 02c81h ; 77 1d 5173 5176 cmp word [bp-008h], strict byte 00011h ; 83 7e f8 11 5174 je short 02c7 1h ; 74 115177 je short 02c7bh ; 74 11 5175 5178 mov al, byte [bp-008h] ; 8a 46 f8 5176 5179 mov dx, di ; 89 fa … … 5178 5181 mov dx, cx ; 89 ca 5179 5182 mov ax, si ; 89 f0 5180 call 02f3 4h ; e8 c7 025183 call 02f3eh ; e8 c7 02 5181 5184 lea dx, [di+001h] ; 8d 55 01 5182 5185 out DX, AL ; ee 5183 5186 inc cx ; 41 5184 5187 inc word [bp-008h] ; ff 46 f8 5185 jmp short 02c5 4h ; eb dd5188 jmp short 02c5eh ; eb dd 5186 5189 mov dx, 003cch ; ba cc 03 5187 5190 in AL, DX ; ec … … 5191 5194 mov word [bp-00ah], ax ; 89 46 f6 5192 5195 cmp di, 003d4h ; 81 ff d4 03 5193 jne short 02c 8ch ; 75 045196 jne short 02c96h ; 75 04 5194 5197 or byte [bp-00ah], 001h ; 80 4e f6 01 5195 5198 mov al, byte [bp-00ah] ; 8a 46 f6 … … 5202 5205 add dx, strict byte 0fff9h ; 83 c2 f9 5203 5206 mov ax, si ; 89 f0 5204 call 02f3 4h ; e8 92 025207 call 02f3eh ; e8 92 02 5205 5208 lea dx, [di+001h] ; 8d 55 01 5206 5209 out DX, AL ; ee 5207 5210 lea dx, [bx+003h] ; 8d 57 03 5208 5211 mov ax, si ; 89 f0 5209 call 02f3 4h ; e8 86 025212 call 02f3eh ; e8 86 02 5210 5213 xor ah, ah ; 30 e4 5211 5214 mov word [bp-00ch], ax ; 89 46 f4 … … 5215 5218 ; sub ah, ah ; 2a e4 5216 5219 mov word [bp-008h], strict word 00000h ; c7 46 f8 00 00 5217 jmp short 02c c6h ; eb 065220 jmp short 02cd0h ; eb 06 5218 5221 cmp word [bp-008h], strict byte 00013h ; 83 7e f8 13 5219 jnbe short 02ce 4h ; 77 1e5222 jnbe short 02ceeh ; 77 1e 5220 5223 mov ax, word [bp-00ch] ; 8b 46 f4 5221 5224 and ax, strict word 00020h ; 25 20 00 … … 5225 5228 mov dx, cx ; 89 ca 5226 5229 mov ax, si ; 89 f0 5227 call 02f3 4h ; e8 5a 025230 call 02f3eh ; e8 5a 02 5228 5231 mov dx, 003c0h ; ba c0 03 5229 5232 out DX, AL ; ee 5230 5233 inc cx ; 41 5231 5234 inc word [bp-008h] ; ff 46 f8 5232 jmp short 02cc 0h ; eb dc5235 jmp short 02ccah ; eb dc 5233 5236 mov al, byte [bp-00ch] ; 8a 46 f4 5234 5237 mov dx, 003c0h ; ba c0 03 … … 5239 5242 ; sub ah, ah ; 2a e4 5240 5243 mov word [bp-008h], strict word 00000h ; c7 46 f8 00 00 5241 jmp short 02 cfeh ; eb 065244 jmp short 02d08h ; eb 06 5242 5245 cmp word [bp-008h], strict byte 00008h ; 83 7e f8 08 5243 jnbe short 02d 16h ; 77 185246 jnbe short 02d20h ; 77 18 5244 5247 mov al, byte [bp-008h] ; 8a 46 f8 5245 5248 mov dx, 003ceh ; ba ce 03 … … 5247 5250 mov dx, cx ; 89 ca 5248 5251 mov ax, si ; 89 f0 5249 call 02f3 4h ; e8 28 025252 call 02f3eh ; e8 28 02 5250 5253 mov dx, 003cfh ; ba cf 03 5251 5254 out DX, AL ; ee 5252 5255 inc cx ; 41 5253 5256 inc word [bp-008h] ; ff 46 f8 5254 jmp short 02 cf8h ; eb e25257 jmp short 02d02h ; eb e2 5255 5258 add cx, strict byte 00006h ; 83 c1 06 5256 5259 mov dx, bx ; 89 da 5257 5260 mov ax, si ; 89 f0 5258 call 02f3 4h ; e8 14 025261 call 02f3eh ; e8 14 02 5259 5262 mov dx, 003c4h ; ba c4 03 5260 5263 out DX, AL ; ee … … 5262 5265 mov dx, bx ; 89 da 5263 5266 mov ax, si ; 89 f0 5264 call 02f3 4h ; e8 08 025267 call 02f3eh ; e8 08 02 5265 5268 mov dx, di ; 89 fa 5266 5269 out DX, AL ; ee … … 5268 5271 mov dx, bx ; 89 da 5269 5272 mov ax, si ; 89 f0 5270 call 02f3 4h ; e8 fd 015273 call 02f3eh ; e8 fd 01 5271 5274 mov dx, 003ceh ; ba ce 03 5272 5275 out DX, AL ; ee 5273 5276 lea dx, [bx+002h] ; 8d 57 02 5274 5277 mov ax, si ; 89 f0 5275 call 02f3 4h ; e8 f1 015278 call 02f3eh ; e8 f1 01 5276 5279 lea dx, [di+006h] ; 8d 55 06 5277 5280 out DX, AL ; ee 5278 5281 test byte [bp-00eh], 002h ; f6 46 f2 02 5279 je near 02e b6h ; 0f 84 67 015280 mov dx, cx ; 89 ca 5281 mov ax, si ; 89 f0 5282 call 02f3 4h ; e8 de 015282 je near 02ec0h ; 0f 84 67 01 5283 mov dx, cx ; 89 ca 5284 mov ax, si ; 89 f0 5285 call 02f3eh ; e8 de 01 5283 5286 movzx bx, al ; 0f b6 d8 5284 5287 mov dx, strict word 00049h ; ba 49 00 5285 5288 mov ax, strict word 00040h ; b8 40 00 5286 call 02f4 2h ; e8 e0 015287 inc cx ; 41 5288 mov dx, cx ; 89 ca 5289 mov ax, si ; 89 f0 5290 call 02f5 0h ; e8 e6 015289 call 02f4ch ; e8 e0 01 5290 inc cx ; 41 5291 mov dx, cx ; 89 ca 5292 mov ax, si ; 89 f0 5293 call 02f5ah ; e8 e6 01 5291 5294 mov bx, ax ; 89 c3 5292 5295 mov dx, strict word 0004ah ; ba 4a 00 5293 5296 mov ax, strict word 00040h ; b8 40 00 5294 call 02f 5eh ; e8 e9 015295 inc cx ; 41 5296 inc cx ; 41 5297 mov dx, cx ; 89 ca 5298 mov ax, si ; 89 f0 5299 call 02f5 0h ; e8 d2 015297 call 02f68h ; e8 e9 01 5298 inc cx ; 41 5299 inc cx ; 41 5300 mov dx, cx ; 89 ca 5301 mov ax, si ; 89 f0 5302 call 02f5ah ; e8 d2 01 5300 5303 mov bx, ax ; 89 c3 5301 5304 mov dx, strict word 0004ch ; ba 4c 00 5302 5305 mov ax, strict word 00040h ; b8 40 00 5303 call 02f 5eh ; e8 d5 015304 inc cx ; 41 5305 inc cx ; 41 5306 mov dx, cx ; 89 ca 5307 mov ax, si ; 89 f0 5308 call 02f5 0h ; e8 be 015306 call 02f68h ; e8 d5 01 5307 inc cx ; 41 5308 inc cx ; 41 5309 mov dx, cx ; 89 ca 5310 mov ax, si ; 89 f0 5311 call 02f5ah ; e8 be 01 5309 5312 mov bx, ax ; 89 c3 5310 5313 mov dx, strict word 00063h ; ba 63 00 5311 5314 mov ax, strict word 00040h ; b8 40 00 5312 call 02f 5eh ; e8 c1 015313 inc cx ; 41 5314 inc cx ; 41 5315 mov dx, cx ; 89 ca 5316 mov ax, si ; 89 f0 5317 call 02f3 4h ; e8 8e 015315 call 02f68h ; e8 c1 01 5316 inc cx ; 41 5317 inc cx ; 41 5318 mov dx, cx ; 89 ca 5319 mov ax, si ; 89 f0 5320 call 02f3eh ; e8 8e 01 5318 5321 movzx bx, al ; 0f b6 d8 5319 5322 mov dx, 00084h ; ba 84 00 5320 5323 mov ax, strict word 00040h ; b8 40 00 5321 call 02f4 2h ; e8 90 015322 inc cx ; 41 5323 mov dx, cx ; 89 ca 5324 mov ax, si ; 89 f0 5325 call 02f5 0h ; e8 96 015324 call 02f4ch ; e8 90 01 5325 inc cx ; 41 5326 mov dx, cx ; 89 ca 5327 mov ax, si ; 89 f0 5328 call 02f5ah ; e8 96 01 5326 5329 mov bx, ax ; 89 c3 5327 5330 mov dx, 00085h ; ba 85 00 5328 5331 mov ax, strict word 00040h ; b8 40 00 5329 call 02f 5eh ; e8 99 015330 inc cx ; 41 5331 inc cx ; 41 5332 mov dx, cx ; 89 ca 5333 mov ax, si ; 89 f0 5334 call 02f3 4h ; e8 66 015332 call 02f68h ; e8 99 01 5333 inc cx ; 41 5334 inc cx ; 41 5335 mov dx, cx ; 89 ca 5336 mov ax, si ; 89 f0 5337 call 02f3eh ; e8 66 01 5335 5338 movzx bx, al ; 0f b6 d8 5336 5339 mov dx, 00087h ; ba 87 00 5337 5340 mov ax, strict word 00040h ; b8 40 00 5338 call 02f4 2h ; e8 68 015339 inc cx ; 41 5340 mov dx, cx ; 89 ca 5341 mov ax, si ; 89 f0 5342 call 02f3 4h ; e8 52 015341 call 02f4ch ; e8 68 01 5342 inc cx ; 41 5343 mov dx, cx ; 89 ca 5344 mov ax, si ; 89 f0 5345 call 02f3eh ; e8 52 01 5343 5346 movzx bx, al ; 0f b6 d8 5344 5347 mov dx, 00088h ; ba 88 00 5345 5348 mov ax, strict word 00040h ; b8 40 00 5346 call 02f4 2h ; e8 54 015347 inc cx ; 41 5348 mov dx, cx ; 89 ca 5349 mov ax, si ; 89 f0 5350 call 02f3 4h ; e8 3e 015349 call 02f4ch ; e8 54 01 5350 inc cx ; 41 5351 mov dx, cx ; 89 ca 5352 mov ax, si ; 89 f0 5353 call 02f3eh ; e8 3e 01 5351 5354 movzx bx, al ; 0f b6 d8 5352 5355 mov dx, 00089h ; ba 89 00 5353 5356 mov ax, strict word 00040h ; b8 40 00 5354 call 02f4 2h ; e8 40 015355 inc cx ; 41 5356 mov dx, cx ; 89 ca 5357 mov ax, si ; 89 f0 5358 call 02f5 0h ; e8 46 015357 call 02f4ch ; e8 40 01 5358 inc cx ; 41 5359 mov dx, cx ; 89 ca 5360 mov ax, si ; 89 f0 5361 call 02f5ah ; e8 46 01 5359 5362 mov bx, ax ; 89 c3 5360 5363 mov dx, strict word 00060h ; ba 60 00 5361 5364 mov ax, strict word 00040h ; b8 40 00 5362 call 02f 5eh ; e8 49 015365 call 02f68h ; e8 49 01 5363 5366 mov word [bp-008h], strict word 00000h ; c7 46 f8 00 00 5364 5367 inc cx ; 41 5365 5368 inc cx ; 41 5366 jmp short 02e2 4h ; eb 065369 jmp short 02e2eh ; eb 06 5367 5370 cmp word [bp-008h], strict byte 00008h ; 83 7e f8 08 5368 jnc short 02e4 2h ; 73 1e5369 mov dx, cx ; 89 ca 5370 mov ax, si ; 89 f0 5371 call 02f5 0h ; e8 25 015371 jnc short 02e4ch ; 73 1e 5372 mov dx, cx ; 89 ca 5373 mov ax, si ; 89 f0 5374 call 02f5ah ; e8 25 01 5372 5375 mov bx, ax ; 89 c3 5373 5376 mov dx, word [bp-008h] ; 8b 56 f8 … … 5375 5378 add dx, strict byte 00050h ; 83 c2 50 5376 5379 mov ax, strict word 00040h ; b8 40 00 5377 call 02f 5eh ; e8 23 015380 call 02f68h ; e8 23 01 5378 5381 inc cx ; 41 5379 5382 inc cx ; 41 5380 5383 inc word [bp-008h] ; ff 46 f8 5381 jmp short 02e 1eh ; eb dc5382 mov dx, cx ; 89 ca 5383 mov ax, si ; 89 f0 5384 call 02f5 0h ; e8 07 015384 jmp short 02e28h ; eb dc 5385 mov dx, cx ; 89 ca 5386 mov ax, si ; 89 f0 5387 call 02f5ah ; e8 07 01 5385 5388 mov bx, ax ; 89 c3 5386 5389 mov dx, strict word 0004eh ; ba 4e 00 5387 5390 mov ax, strict word 00040h ; b8 40 00 5388 call 02f 5eh ; e8 0a 015389 inc cx ; 41 5390 inc cx ; 41 5391 mov dx, cx ; 89 ca 5392 mov ax, si ; 89 f0 5393 call 02f3 4h ; e8 d7 005391 call 02f68h ; e8 0a 01 5392 inc cx ; 41 5393 inc cx ; 41 5394 mov dx, cx ; 89 ca 5395 mov ax, si ; 89 f0 5396 call 02f3eh ; e8 d7 00 5394 5397 movzx bx, al ; 0f b6 d8 5395 5398 mov dx, strict word 00062h ; ba 62 00 5396 5399 mov ax, strict word 00040h ; b8 40 00 5397 call 02f4 2h ; e8 d9 005398 inc cx ; 41 5399 mov dx, cx ; 89 ca 5400 mov ax, si ; 89 f0 5401 call 02f5 0h ; e8 df 005400 call 02f4ch ; e8 d9 00 5401 inc cx ; 41 5402 mov dx, cx ; 89 ca 5403 mov ax, si ; 89 f0 5404 call 02f5ah ; e8 df 00 5402 5405 mov bx, ax ; 89 c3 5403 5406 mov dx, strict word 0007ch ; ba 7c 00 5404 5407 xor ax, ax ; 31 c0 5405 call 02f 5eh ; e8 e3 005406 inc cx ; 41 5407 inc cx ; 41 5408 mov dx, cx ; 89 ca 5409 mov ax, si ; 89 f0 5410 call 02f5 0h ; e8 cc 005408 call 02f68h ; e8 e3 00 5409 inc cx ; 41 5410 inc cx ; 41 5411 mov dx, cx ; 89 ca 5412 mov ax, si ; 89 f0 5413 call 02f5ah ; e8 cc 00 5411 5414 mov bx, ax ; 89 c3 5412 5415 mov dx, strict word 0007eh ; ba 7e 00 5413 5416 xor ax, ax ; 31 c0 5414 call 02f 5eh ; e8 d0 005415 inc cx ; 41 5416 inc cx ; 41 5417 mov dx, cx ; 89 ca 5418 mov ax, si ; 89 f0 5419 call 02f5 0h ; e8 b9 005417 call 02f68h ; e8 d0 00 5418 inc cx ; 41 5419 inc cx ; 41 5420 mov dx, cx ; 89 ca 5421 mov ax, si ; 89 f0 5422 call 02f5ah ; e8 b9 00 5420 5423 mov bx, ax ; 89 c3 5421 5424 mov dx, 0010ch ; ba 0c 01 5422 5425 xor ax, ax ; 31 c0 5423 call 02f 5eh ; e8 bd 005424 inc cx ; 41 5425 inc cx ; 41 5426 mov dx, cx ; 89 ca 5427 mov ax, si ; 89 f0 5428 call 02f5 0h ; e8 a6 005426 call 02f68h ; e8 bd 00 5427 inc cx ; 41 5428 inc cx ; 41 5429 mov dx, cx ; 89 ca 5430 mov ax, si ; 89 f0 5431 call 02f5ah ; e8 a6 00 5429 5432 mov bx, ax ; 89 c3 5430 5433 mov dx, 0010eh ; ba 0e 01 5431 5434 xor ax, ax ; 31 c0 5432 call 02f 5eh ; e8 aa 005435 call 02f68h ; e8 aa 00 5433 5436 inc cx ; 41 5434 5437 inc cx ; 41 5435 5438 test byte [bp-00eh], 004h ; f6 46 f2 04 5436 je short 02f0 3h ; 74 475437 inc cx ; 41 5438 mov dx, cx ; 89 ca 5439 mov ax, si ; 89 f0 5440 call 02f3 4h ; e8 70 005439 je short 02f0dh ; 74 47 5440 inc cx ; 41 5441 mov dx, cx ; 89 ca 5442 mov ax, si ; 89 f0 5443 call 02f3eh ; e8 70 00 5441 5444 xor ah, ah ; 30 e4 5442 5445 mov word [bp-00ah], ax ; 89 46 f6 … … 5444 5447 mov dx, cx ; 89 ca 5445 5448 mov ax, si ; 89 f0 5446 call 02f3 4h ; e8 63 005449 call 02f3eh ; e8 63 00 5447 5450 mov dx, 003c6h ; ba c6 03 5448 5451 out DX, AL ; ee … … 5453 5456 xor ah, ah ; 30 e4 5454 5457 mov word [bp-008h], ax ; 89 46 f8 5455 jmp short 02e eah ; eb 075458 jmp short 02ef4h ; eb 07 5456 5459 cmp word [bp-008h], 00300h ; 81 7e f8 00 03 5457 jnc short 02 efbh ; 73 115458 mov dx, cx ; 89 ca 5459 mov ax, si ; 89 f0 5460 call 02f3 4h ; e8 43 005460 jnc short 02f05h ; 73 11 5461 mov dx, cx ; 89 ca 5462 mov ax, si ; 89 f0 5463 call 02f3eh ; e8 43 00 5461 5464 mov dx, 003c9h ; ba c9 03 5462 5465 out DX, AL ; ee 5463 5466 inc cx ; 41 5464 5467 inc word [bp-008h] ; ff 46 f8 5465 jmp short 02ee 3h ; eb e85468 jmp short 02eedh ; eb e8 5466 5469 inc cx ; 41 5467 5470 mov al, byte [bp-00ah] ; 8a 46 f6 … … 5475 5478 pop bp ; 5d 5476 5479 retn ; c3 5477 find_vga_entry_: ; 0xc2f 0dLB 0x275480 find_vga_entry_: ; 0xc2f17 LB 0x27 5478 5481 push bx ; 53 5479 5482 push dx ; 52 … … 5483 5486 mov AH, strict byte 0ffh ; b4 ff 5484 5487 xor al, al ; 30 c0 5485 jmp short 02f2 0h ; eb 065488 jmp short 02f2ah ; eb 06 5486 5489 db 0feh, 0c0h 5487 5490 ; inc al ; fe c0 5488 5491 cmp AL, strict byte 00fh ; 3c 0f 5489 jnbe short 02f 2eh ; 77 0e5492 jnbe short 02f38h ; 77 0e 5490 5493 movzx bx, al ; 0f b6 d8 5491 5494 sal bx, 003h ; c1 e3 03 5492 5495 cmp dl, byte [bx+0482fh] ; 3a 97 2f 48 5493 jne short 02f 1ah ; 75 ee5496 jne short 02f24h ; 75 ee 5494 5497 mov ah, al ; 88 c4 5495 5498 mov al, ah ; 88 e0 … … 5498 5501 pop bx ; 5b 5499 5502 retn ; c3 5500 read_byte_: ; 0xc2f3 4LB 0xe5503 read_byte_: ; 0xc2f3e LB 0xe 5501 5504 push bx ; 53 5502 5505 push bp ; 55 … … 5508 5511 pop bx ; 5b 5509 5512 retn ; c3 5510 write_byte_: ; 0xc2f4 2LB 0xe5513 write_byte_: ; 0xc2f4c LB 0xe 5511 5514 push si ; 56 5512 5515 push bp ; 55 … … 5518 5521 pop si ; 5e 5519 5522 retn ; c3 5520 read_word_: ; 0xc2f5 0LB 0xe5523 read_word_: ; 0xc2f5a LB 0xe 5521 5524 push bx ; 53 5522 5525 push bp ; 55 … … 5528 5531 pop bx ; 5b 5529 5532 retn ; c3 5530 write_word_: ; 0xc2f 5eLB 0xe5533 write_word_: ; 0xc2f68 LB 0xe 5531 5534 push si ; 56 5532 5535 push bp ; 55 … … 5538 5541 pop si ; 5e 5539 5542 retn ; c3 5540 read_dword_: ; 0xc2f 6cLB 0x125543 read_dword_: ; 0xc2f76 LB 0x12 5541 5544 push bx ; 53 5542 5545 push bp ; 55 … … 5549 5552 pop bx ; 5b 5550 5553 retn ; c3 5551 write_dword_: ; 0xc2f 7eLB 0x7f5554 write_dword_: ; 0xc2f88 LB 0x7f 5552 5555 push si ; 56 5553 5556 push bp ; 55 … … 5571 5574 add ax, 00304h ; 05 04 03 5572 5575 add al, byte [bx+di] ; 02 01 5573 add al, al ; 00 c0 5574 xor bp, word [bp+di] ; 33 2b 5575 xor byte [bx+di+030h], ch ; 30 69 30 5576 jnl short 02fddh ; 7d 30 5577 db 08eh 5578 xor byte [bp+si-04cd0h], ah ; 30 a2 30 b3 5579 xor byte [di-008d0h], bh ; 30 bd 30 f7 5580 xor bl, bh ; 30 fb 5581 xor byte [si], cl ; 30 0c 5582 xor word [bx+di], bp ; 31 29 5583 xor word [bp+031h], ax ; 31 46 31 5584 xor dword [bp+di-065cfh], eax ; 66 31 83 31 9a 5585 xor word [bp-07ecfh], sp ; 31 a6 31 81 5586 xor bh, byte [si-013ceh] ; 32 bc 32 ec 5587 xor al, byte [bx+di] ; 32 01 5588 xor ax, word [bp+di+033h] ; 33 43 33 5576 add dl, cl ; 00 ca 5577 xor si, word [di] ; 33 35 5578 xor byte [bp+di+030h], dh ; 30 73 30 5579 xchg word [bx+si], si ; 87 30 5580 cbw ; 98 5581 xor byte [si-042d0h], ch ; 30 ac 30 bd 5582 xor bh, al ; 30 c7 5583 xor byte [bx+di], al ; 30 01 5584 xor word [di], ax ; 31 05 5585 xor word [03331h], dx ; 31 16 31 33 5586 xor word [bx+si+031h], dx ; 31 50 31 5587 jo short 02ffch ; 70 31 5588 lea si, [bx+di] ; 8d 31 5589 movsb ; a4 5590 xor word [bx+si-074cfh], si ; 31 b0 31 8b 5591 db 032h, 0c6h 5592 ; xor al, dh ; 32 c6 5593 db 032h, 0f6h 5594 ; xor dh, dh ; 32 f6 5595 xor cl, byte [bp+di] ; 32 0b 5596 xor cx, word [di+033h] ; 33 4d 33 5589 5597 xor byte [si], ah ; 30 24 5590 5598 and sp, word [bp+si] ; 23 22 … … 5594 5602 add AL, strict byte 002h ; 04 02 5595 5603 add word [bx+si], ax ; 01 00 5596 db 0c0h, 033h, 0c7h 5597 ; sal byte [bp+di], 0c7h ; c0 33 c7 5598 xor bp, bp ; 31 ed 5599 xor si, di ; 31 fe 5600 xor word [bx], cx ; 31 0f 5601 db 032h, 0c7h 5602 ; xor al, bh ; 32 c7 5603 xor bp, bp ; 31 ed 5604 xor si, di ; 31 fe 5605 xor word [bx], cx ; 31 0f 5606 xor ah, byte [bx+si] ; 32 20 5607 xor ch, byte [si] ; 32 2c 5608 xor al, byte [bx+032h] ; 32 47 32 5609 push dx ; 52 5610 xor bl, byte [di+032h] ; 32 5d 32 5611 db 068h 5612 db 032h 5613 _int10_func: ; 0xc2ffd LB 0x3ca 5604 retf 0d133h ; ca 33 d1 5605 xor di, si ; 31 f7 5606 xor word [bx+si], cx ; 31 08 5607 xor bl, byte [bx+di] ; 32 19 5608 db 032h, 0d1h 5609 ; xor dl, cl ; 32 d1 5610 xor di, si ; 31 f7 5611 xor word [bx+si], cx ; 31 08 5612 xor bl, byte [bx+di] ; 32 19 5613 xor ch, byte [bp+si] ; 32 2a 5614 xor dh, byte [05132h] ; 32 36 32 51 5615 xor bl, byte [si+032h] ; 32 5c 32 5616 xor dh, byte [edx+032h] ; 67 32 72 32 5617 _int10_func: ; 0xc3007 LB 0x3ca 5614 5618 push bp ; 55 5615 5619 mov bp, sp ; 89 e5 … … 5621 5625 shr ax, 008h ; c1 e8 08 5622 5626 cmp ax, strict word 0004fh ; 3d 4f 00 5623 jnbe near 033c 0h ; 0f 87 ad 035627 jnbe near 033cah ; 0f 87 ad 03 5624 5628 push CS ; 0e 5625 5629 pop ES ; 07 5626 5630 mov cx, strict word 00016h ; b9 16 00 5627 mov di, 02f9 0h ; bf 902f5631 mov di, 02f9ah ; bf 9a 2f 5628 5632 repne scasb ; f2 ae 5629 5633 sal cx, 1 ; d1 e1 5630 5634 mov di, cx ; 89 cf 5631 mov ax, word [cs:di+02fa 5h] ; 2e 8b 85 a52f5635 mov ax, word [cs:di+02fafh] ; 2e 8b 85 af 2f 5632 5636 mov cl, byte [bp+012h] ; 8a 4e 12 5633 5637 jmp ax ; ff e0 5634 5638 mov al, byte [bp+012h] ; 8a 46 12 5635 5639 xor ah, ah ; 30 e4 5636 call 00fdch ; e8 a9df5640 call 00fdch ; e8 9f df 5637 5641 mov ax, word [bp+012h] ; 8b 46 12 5638 5642 and ax, strict word 0007fh ; 25 7f 00 5639 5643 cmp ax, strict word 00007h ; 3d 07 00 5640 je short 0305 3h ; 74 155644 je short 0305dh ; 74 15 5641 5645 cmp ax, strict word 00006h ; 3d 06 00 5642 je short 030 4ah ; 74 075646 je short 03054h ; 74 07 5643 5647 cmp ax, strict word 00005h ; 3d 05 00 5644 jbe short 0305 3h ; 76 0b5645 jmp short 030 5ch ; eb 125648 jbe short 0305dh ; 76 0b 5649 jmp short 03066h ; eb 12 5646 5650 mov ax, word [bp+012h] ; 8b 46 12 5647 5651 xor al, al ; 30 c0 5648 5652 or AL, strict byte 03fh ; 0c 3f 5649 jmp short 0306 3h ; eb 105653 jmp short 0306dh ; eb 10 5650 5654 mov ax, word [bp+012h] ; 8b 46 12 5651 5655 xor al, al ; 30 c0 5652 5656 or AL, strict byte 030h ; 0c 30 5653 jmp short 0306 3h ; eb 075657 jmp short 0306dh ; eb 07 5654 5658 mov ax, word [bp+012h] ; 8b 46 12 5655 5659 xor al, al ; 30 c0 5656 5660 or AL, strict byte 020h ; 0c 20 5657 5661 mov word [bp+012h], ax ; 89 46 12 5658 jmp near 033c 0h ; e9 57 035662 jmp near 033cah ; e9 57 03 5659 5663 mov al, byte [bp+010h] ; 8a 46 10 5660 5664 movzx dx, al ; 0f b6 d0 … … 5662 5666 shr ax, 008h ; c1 e8 08 5663 5667 xor ah, ah ; 30 e4 5664 call 00dbah ; e8 40dd5665 jmp near 033c 0h ; e9 43 035668 call 00dbah ; e8 36 dd 5669 jmp near 033cah ; e9 43 03 5666 5670 mov dx, word [bp+00eh] ; 8b 56 0e 5667 5671 mov ax, word [bp+00ch] ; 8b 46 0c 5668 5672 shr ax, 008h ; c1 e8 08 5669 5673 xor ah, ah ; 30 e4 5670 call 00e5eh ; e8 d3dd5671 jmp near 033c 0h ; e9 32 035674 call 00e5eh ; e8 c9 dd 5675 jmp near 033cah ; e9 32 03 5672 5676 lea bx, [bp+00eh] ; 8d 5e 0e 5673 5677 lea dx, [bp+010h] ; 8d 56 10 … … 5675 5679 shr ax, 008h ; c1 e8 08 5676 5680 xor ah, ah ; 30 e4 5677 call 00a88h ; e8 e9d95678 jmp near 033c 0h ; e9 1e 035681 call 00a88h ; e8 df d9 5682 jmp near 033cah ; e9 1e 03 5679 5683 xor ax, ax ; 31 c0 5680 5684 mov word [bp+012h], ax ; 89 46 12 … … 5682 5686 mov word [bp+010h], ax ; 89 46 10 5683 5687 mov word [bp+00eh], ax ; 89 46 0e 5684 jmp near 033c 0h ; e9 0d 035688 jmp near 033cah ; e9 0d 03 5685 5689 mov al, cl ; 88 c8 5686 5690 xor ah, ah ; 30 e4 5687 call 00f00h ; e8 46de5688 jmp near 033c 0h ; e9 03 035691 call 00f00h ; e8 3c de 5692 jmp near 033cah ; e9 03 03 5689 5693 mov ax, strict word 00001h ; b8 01 00 5690 5694 push ax ; 50 … … 5708 5712 mov al, byte [bp+012h] ; 8a 46 12 5709 5713 xor ah, ah ; 30 e4 5710 call 015 68h ; e8 74 e45711 jmp near 033c 0h ; e9 c9 025714 call 01572h ; e8 74 e4 5715 jmp near 033cah ; e9 c9 02 5712 5716 xor ax, ax ; 31 c0 5713 jmp short 030c 0h ; eb c55717 jmp short 030cah ; eb c5 5714 5718 lea dx, [bp+012h] ; 8d 56 12 5715 5719 mov ax, word [bp+00ch] ; 8b 46 0c 5716 5720 shr ax, 008h ; c1 e8 08 5717 5721 xor ah, ah ; 30 e4 5718 call 00acbh ; e8 c2d95719 jmp near 033c 0h ; e9 b4 025722 call 00acbh ; e8 b8 d9 5723 jmp near 033cah ; e9 b4 02 5720 5724 mov cx, word [bp+010h] ; 8b 4e 10 5721 5725 mov al, byte [bp+00ch] ; 8a 46 0c … … 5726 5730 mov al, byte [bp+012h] ; 8a 46 12 5727 5731 xor ah, ah ; 30 e4 5728 call 01d 08h ; e8 e2 eb5729 jmp near 033c 0h ; e9 97 025732 call 01d12h ; e8 e2 eb 5733 jmp near 033cah ; e9 97 02 5730 5734 mov cx, word [bp+010h] ; 8b 4e 10 5731 5735 mov al, byte [bp+00ch] ; 8a 46 0c … … 5736 5740 mov al, byte [bp+012h] ; 8a 46 12 5737 5741 xor ah, ah ; 30 e4 5738 call 01e7 0h ; e8 2d ed5739 jmp near 033c 0h ; e9 7a 025742 call 01e7ah ; e8 2d ed 5743 jmp near 033cah ; e9 7a 02 5740 5744 mov cx, word [bp+00eh] ; 8b 4e 0e 5741 5745 mov bx, word [bp+010h] ; 8b 5e 10 … … 5747 5751 mov al, byte [bp-006h] ; 8a 46 fa 5748 5752 xor ah, ah ; 30 e4 5749 call 01f dfh ; e8 7c ee5750 jmp near 033c 0h ; e9 5a 025753 call 01fe9h ; e8 7c ee 5754 jmp near 033cah ; e9 5a 02 5751 5755 lea cx, [bp+012h] ; 8d 4e 12 5752 5756 mov bx, word [bp+00eh] ; 8b 5e 0e … … 5757 5761 mov al, byte [bp-006h] ; 8a 46 fa 5758 5762 xor ah, ah ; 30 e4 5759 call 00bf5h ; e8 75da5760 jmp near 033c 0h ; e9 3d 025763 call 00bf5h ; e8 6b da 5764 jmp near 033cah ; e9 3d 02 5761 5765 mov cx, strict word 00002h ; b9 02 00 5762 5766 mov al, byte [bp+00ch] ; 8a 46 0c … … 5765 5769 mov al, byte [bp+012h] ; 8a 46 12 5766 5770 xor ah, ah ; 30 e4 5767 call 021 49h ; e8 b2 ef5768 jmp near 033c 0h ; e9 26 025771 call 02153h ; e8 b2 ef 5772 jmp near 033cah ; e9 26 02 5769 5773 mov dx, word [bp+010h] ; 8b 56 10 5770 5774 mov ax, word [bp+00ch] ; 8b 46 0c 5771 call 00d2eh ; e8 8 bdb5772 jmp near 033c 0h ; e9 1a 025775 call 00d2eh ; e8 81 db 5776 jmp near 033cah ; e9 1a 02 5773 5777 mov ax, word [bp+012h] ; 8b 46 12 5774 5778 xor ah, ah ; 30 e4 5775 5779 cmp ax, strict word 00030h ; 3d 30 00 5776 jnbe near 033c 0h ; 0f 87 0e 025780 jnbe near 033cah ; 0f 87 0e 02 5777 5781 push CS ; 0e 5778 5782 pop ES ; 07 5779 5783 mov cx, strict word 0000fh ; b9 0f 00 5780 mov di, 02fd 1h ; bf d12f5784 mov di, 02fdbh ; bf db 2f 5781 5785 repne scasb ; f2 ae 5782 5786 sal cx, 1 ; d1 e1 5783 5787 mov di, cx ; 89 cf 5784 mov ax, word [cs:di+02f dfh] ; 2e 8b 85 df2f5788 mov ax, word [cs:di+02fe9h] ; 2e 8b 85 e9 2f 5785 5789 jmp ax ; ff e0 5786 5790 mov ax, word [bp+00ch] ; 8b 46 0c … … 5797 5801 mov bx, word [bp+008h] ; 8b 5e 08 5798 5802 mov dx, word [bp+016h] ; 8b 56 16 5799 call 024b 1h ; e8 c7 f25800 jmp near 033c 0h ; e9 d3 015803 call 024bbh ; e8 c7 f2 5804 jmp near 033cah ; e9 d3 01 5801 5805 mov al, byte [bp+00ch] ; 8a 46 0c 5802 5806 movzx dx, al ; 0f b6 d0 5803 5807 mov al, byte [bp+012h] ; 8a 46 12 5804 5808 xor ah, ah ; 30 e4 5805 call 025 2eh ; e8 33 f35806 jmp near 033c 0h ; e9 c2 015809 call 02538h ; e8 33 f3 5810 jmp near 033cah ; e9 c2 01 5807 5811 mov al, byte [bp+00ch] ; 8a 46 0c 5808 5812 movzx dx, al ; 0f b6 d0 5809 5813 mov al, byte [bp+012h] ; 8a 46 12 5810 5814 xor ah, ah ; 30 e4 5811 call 025 9eh ; e8 92 f35812 jmp near 033c 0h ; e9 b1 015815 call 025a8h ; e8 92 f3 5816 jmp near 033cah ; e9 b1 01 5813 5817 mov al, byte [bp+00ch] ; 8a 46 0c 5814 5818 movzx dx, al ; 0f b6 d0 5815 5819 mov al, byte [bp+012h] ; 8a 46 12 5816 5820 xor ah, ah ; 30 e4 5817 call 0261 0h ; e8 f3 f35818 jmp near 033c 0h ; e9 a0 015821 call 0261ah ; e8 f3 f3 5822 jmp near 033cah ; e9 a0 01 5819 5823 mov dx, word [bp+008h] ; 8b 56 08 5820 5824 mov ax, word [bp+016h] ; 8b 46 16 5821 call 0268 2h ; e8 59 f45822 jmp near 033c 0h ; e9 94 015825 call 0268ch ; e8 59 f4 5826 jmp near 033cah ; e9 94 01 5823 5827 mov al, byte [bp+00eh] ; 8a 46 0e 5824 5828 xor ah, ah ; 30 e4 … … 5829 5833 mov dx, word [bp+008h] ; 8b 56 08 5830 5834 mov ax, word [bp+016h] ; 8b 46 16 5831 call 026 87h ; e8 43 f45832 jmp near 033c 0h ; e9 79 015835 call 02691h ; e8 43 f4 5836 jmp near 033cah ; e9 79 01 5833 5837 mov al, byte [bp+00ch] ; 8a 46 0c 5834 5838 xor ah, ah ; 30 e4 5835 call 026 8eh ; e8 3f f45836 jmp near 033c 0h ; e9 6e 015839 call 02698h ; e8 3f f4 5840 jmp near 033cah ; e9 6e 01 5837 5841 mov al, byte [bp+00ch] ; 8a 46 0c 5838 5842 xor ah, ah ; 30 e4 5839 call 0269 3h ; e8 39 f45840 jmp near 033c 0h ; e9 63 015843 call 0269dh ; e8 39 f4 5844 jmp near 033cah ; e9 63 01 5841 5845 mov al, byte [bp+00ch] ; 8a 46 0c 5842 5846 xor ah, ah ; 30 e4 5843 call 026 98h ; e8 33 f45844 jmp near 033c 0h ; e9 58 015847 call 026a2h ; e8 33 f4 5848 jmp near 033cah ; e9 58 01 5845 5849 lea ax, [bp+00eh] ; 8d 46 0e 5846 5850 push ax ; 50 … … 5850 5854 mov ax, word [bp+00ch] ; 8b 46 0c 5851 5855 shr ax, 008h ; c1 e8 08 5852 call 00b73h ; e8 f5d85853 jmp near 033c 0h ; e9 3f 015856 call 00b73h ; e8 eb d8 5857 jmp near 033cah ; e9 3f 01 5854 5858 mov ax, word [bp+00ch] ; 8b 46 0c 5855 5859 xor ah, ah ; 30 e4 5856 5860 cmp ax, strict word 00036h ; 3d 36 00 5857 je short 032b 3h ; 74 285861 je short 032bdh ; 74 28 5858 5862 cmp ax, strict word 00035h ; 3d 35 00 5859 je short 032 9dh ; 74 0d5863 je short 032a7h ; 74 0d 5860 5864 cmp ax, strict word 00020h ; 3d 20 00 5861 jne near 033c 0h ; 0f 85 29 015862 call 026 9dh ; e8 03 f45863 jmp near 033c 0h ; e9 23 015865 jne near 033cah ; 0f 85 29 01 5866 call 026a7h ; e8 03 f4 5867 jmp near 033cah ; e9 23 01 5864 5868 movzx ax, cl ; 0f b6 c1 5865 5869 mov bx, word [bp+00eh] ; 8b 5e 0e 5866 5870 mov dx, word [bp+016h] ; 8b 56 16 5867 call 026a 2h ; e8 f9 f35871 call 026ach ; e8 f9 f3 5868 5872 mov ax, word [bp+012h] ; 8b 46 12 5869 5873 xor al, al ; 30 c0 5870 5874 or AL, strict byte 012h ; 0c 12 5871 jmp near 0306 3h ; e9 b0 fd5875 jmp near 0306dh ; e9 b0 fd 5872 5876 mov al, cl ; 88 c8 5873 5877 xor ah, ah ; 30 e4 5874 call 026 a7h ; e8 ed f35875 jmp short 032 a9h ; eb ed5878 call 026b1h ; e8 ed f3 5879 jmp short 032b3h ; eb ed 5876 5880 push word [bp+008h] ; ff 76 08 5877 5881 push word [bp+016h] ; ff 76 16 … … 5890 5894 movzx ax, cl ; 0f b6 c1 5891 5895 mov cx, word [bp+010h] ; 8b 4e 10 5892 call 026 ach ; e8 c3 f35893 jmp near 033c 0h ; e9 d4 005896 call 026b6h ; e8 c3 f3 5897 jmp near 033cah ; e9 d4 00 5894 5898 mov bx, si ; 89 f3 5895 5899 mov dx, word [bp+016h] ; 8b 56 16 5896 5900 mov ax, word [bp+00ch] ; 8b 46 0c 5897 call 027 48h ; e8 51 f45901 call 02752h ; e8 51 f4 5898 5902 mov ax, word [bp+012h] ; 8b 46 12 5899 5903 xor al, al ; 30 c0 5900 5904 or AL, strict byte 01bh ; 0c 1b 5901 jmp near 0306 3h ; e9 62 fd5905 jmp near 0306dh ; e9 62 fd 5902 5906 mov ax, word [bp+012h] ; 8b 46 12 5903 5907 xor ah, ah ; 30 e4 5904 5908 cmp ax, strict word 00002h ; 3d 02 00 5905 je short 033 2dh ; 74 225909 je short 03337h ; 74 22 5906 5910 cmp ax, strict word 00001h ; 3d 01 00 5907 je short 033 1fh ; 74 0f5911 je short 03329h ; 74 0f 5908 5912 test ax, ax ; 85 c0 5909 jne short 033 39h ; 75 255913 jne short 03343h ; 75 25 5910 5914 lea dx, [bp+00ch] ; 8d 56 0c 5911 5915 mov ax, word [bp+010h] ; 8b 46 10 5912 call 028 6ch ; e8 4f f55913 jmp short 033 39h ; eb 1a5916 call 02876h ; e8 4f f5 5917 jmp short 03343h ; eb 1a 5914 5918 mov bx, word [bp+00ch] ; 8b 5e 0c 5915 5919 mov dx, word [bp+016h] ; 8b 56 16 5916 5920 mov ax, word [bp+010h] ; 8b 46 10 5917 call 028 7eh ; e8 53 f55918 jmp short 033 39h ; eb 0c5921 call 02888h ; e8 53 f5 5922 jmp short 03343h ; eb 0c 5919 5923 mov bx, word [bp+00ch] ; 8b 5e 0c 5920 5924 mov dx, word [bp+016h] ; 8b 56 16 5921 5925 mov ax, word [bp+010h] ; 8b 46 10 5922 call 02b e7h ; e8 ae f85926 call 02bf1h ; e8 ae f8 5923 5927 mov ax, word [bp+012h] ; 8b 46 12 5924 5928 xor al, al ; 30 c0 5925 5929 or AL, strict byte 01ch ; 0c 1c 5926 jmp near 0306 3h ; e9 20 fd5927 call 007a4h ; e8 5 ed45930 jmp near 0306dh ; e9 20 fd 5931 call 007a4h ; e8 54 d4 5928 5932 test ax, ax ; 85 c0 5929 je near 033 bbh ; 0f 84 6f 005933 je near 033c5h ; 0f 84 6f 00 5930 5934 mov ax, word [bp+012h] ; 8b 46 12 5931 5935 xor ah, ah ; 30 e4 5932 5936 cmp ax, strict word 00002h ; 3d 02 00 5933 jc short 033 69h ; 72 135934 jbe short 033 8fh ; 76 375937 jc short 03373h ; 72 13 5938 jbe short 03399h ; 76 37 5935 5939 cmp ax, strict word 0000ah ; 3d 0a 00 5936 je short 033b 4h ; 74 575940 je short 033beh ; 74 57 5937 5941 cmp ax, strict word 00009h ; 3d 09 00 5938 je short 033b 4h ; 74 525942 je short 033beh ; 74 52 5939 5943 cmp ax, strict word 00004h ; 3d 04 00 5940 je short 033 9fh ; 74 385941 jmp short 033b 4h ; eb 4b5944 je short 033a9h ; 74 38 5945 jmp short 033beh ; eb 4b 5942 5946 cmp ax, strict word 00001h ; 3d 01 00 5943 je short 033 7fh ; 74 115947 je short 03389h ; 74 11 5944 5948 test ax, ax ; 85 c0 5945 jne short 033b 4h ; 75 425949 jne short 033beh ; 75 42 5946 5950 mov bx, si ; 89 f3 5947 5951 mov dx, word [bp+016h] ; 8b 56 16 5948 5952 lea ax, [bp+012h] ; 8d 46 12 5949 call 034 edh ; e8 70 015950 jmp short 033c 0h ; eb 415953 call 034f7h ; e8 70 01 5954 jmp short 033cah ; eb 41 5951 5955 mov cx, si ; 89 f1 5952 5956 mov bx, word [bp+016h] ; 8b 5e 16 5953 5957 mov dx, word [bp+010h] ; 8b 56 10 5954 5958 lea ax, [bp+012h] ; 8d 46 12 5955 call 036 16h ; e8 89 025956 jmp short 033c 0h ; eb 315959 call 03620h ; e8 89 02 5960 jmp short 033cah ; eb 31 5957 5961 mov cx, si ; 89 f1 5958 5962 mov bx, word [bp+016h] ; 8b 5e 16 5959 5963 mov dx, word [bp+00ch] ; 8b 56 0c 5960 5964 lea ax, [bp+012h] ; 8d 46 12 5961 call 036 cah ; e8 2d 035962 jmp short 033c 0h ; eb 215965 call 036d4h ; e8 2d 03 5966 jmp short 033cah ; eb 21 5963 5967 lea ax, [bp+00ch] ; 8d 46 0c 5964 5968 push ax ; 50 … … 5967 5971 mov dx, word [bp+010h] ; 8b 56 10 5968 5972 lea ax, [bp+012h] ; 8d 46 12 5969 call 038b 1h ; e8 ff 045970 jmp short 033c 0h ; eb 0c5973 call 038bbh ; e8 ff 04 5974 jmp short 033cah ; eb 0c 5971 5975 mov word [bp+012h], 00100h ; c7 46 12 00 01 5972 jmp short 033c 0h ; eb 055976 jmp short 033cah ; eb 05 5973 5977 mov word [bp+012h], 00100h ; c7 46 12 00 01 5974 5978 lea sp, [bp-004h] ; 8d 66 fc … … 5977 5981 pop bp ; 5d 5978 5982 retn ; c3 5979 dispi_set_xres_: ; 0xc33 c7LB 0x1b5983 dispi_set_xres_: ; 0xc33d1 LB 0x1b 5980 5984 push bp ; 55 5981 5985 mov bp, sp ; 89 e5 … … 5994 5998 pop bp ; 5d 5995 5999 retn ; c3 5996 dispi_set_yres_: ; 0xc33e 2LB 0x1b6000 dispi_set_yres_: ; 0xc33ec LB 0x1b 5997 6001 push bp ; 55 5998 6002 mov bp, sp ; 89 e5 … … 6011 6015 pop bp ; 5d 6012 6016 retn ; c3 6013 dispi_set_bpp_: ; 0xc3 3fdLB 0x1b6017 dispi_set_bpp_: ; 0xc3407 LB 0x1b 6014 6018 push bp ; 55 6015 6019 mov bp, sp ; 89 e5 … … 6028 6032 pop bp ; 5d 6029 6033 retn ; c3 6030 in_word_: ; 0xc34 18LB 0x126034 in_word_: ; 0xc3422 LB 0x12 6031 6035 push bp ; 55 6032 6036 mov bp, sp ; 89 e5 … … 6041 6045 pop bp ; 5d 6042 6046 retn ; c3 6043 in_byte_: ; 0xc34 2aLB 0x146047 in_byte_: ; 0xc3434 LB 0x14 6044 6048 push bp ; 55 6045 6049 mov bp, sp ; 89 e5 … … 6056 6060 pop bp ; 5d 6057 6061 retn ; c3 6058 dispi_get_id_: ; 0xc34 3eLB 0x146062 dispi_get_id_: ; 0xc3448 LB 0x14 6059 6063 push bp ; 55 6060 6064 mov bp, sp ; 89 e5 … … 6069 6073 pop bp ; 5d 6070 6074 retn ; c3 6071 dispi_set_id_: ; 0xc345 2LB 0x1a6075 dispi_set_id_: ; 0xc345c LB 0x1a 6072 6076 push bp ; 55 6073 6077 mov bp, sp ; 89 e5 … … 6086 6090 pop bp ; 5d 6087 6091 retn ; c3 6088 vbe_init_: ; 0xc34 6cLB 0x2c6092 vbe_init_: ; 0xc3476 LB 0x2c 6089 6093 push bp ; 55 6090 6094 mov bp, sp ; 89 e5 … … 6092 6096 push dx ; 52 6093 6097 mov ax, 0b0c0h ; b8 c0 b0 6094 call 0345 2h ; e8 db ff6095 call 034 3eh ; e8 c4 ff6098 call 0345ch ; e8 db ff 6099 call 03448h ; e8 c4 ff 6096 6100 cmp ax, 0b0c0h ; 3d c0 b0 6097 jne short 0349 1h ; 75 126101 jne short 0349bh ; 75 12 6098 6102 mov bx, strict word 00001h ; bb 01 00 6099 6103 mov dx, 000b9h ; ba b9 00 6100 6104 mov ax, strict word 00040h ; b8 40 00 6101 call 02f4 2h ; e8 b7 fa6105 call 02f4ch ; e8 b7 fa 6102 6106 mov ax, 0b0c4h ; b8 c4 b0 6103 call 0345 2h ; e8 c1 ff6107 call 0345ch ; e8 c1 ff 6104 6108 lea sp, [bp-004h] ; 8d 66 fc 6105 6109 pop dx ; 5a … … 6107 6111 pop bp ; 5d 6108 6112 retn ; c3 6109 mode_info_find_mode_: ; 0xc34 98LB 0x556113 mode_info_find_mode_: ; 0xc34a2 LB 0x55 6110 6114 push bp ; 55 6111 6115 mov bp, sp ; 89 e5 … … 6118 6122 xor dx, dx ; 31 d2 6119 6123 mov ax, 003b6h ; b8 b6 03 6120 call 034 18h ; e8 6d ff6124 call 03422h ; e8 6d ff 6121 6125 cmp ax, 077cch ; 3d cc 77 6122 jne short 034e 2h ; 75 326126 jne short 034ech ; 75 32 6123 6127 mov bx, strict word 00004h ; bb 04 00 6124 6128 mov dx, bx ; 89 da 6125 6129 mov ax, 003b6h ; b8 b6 03 6126 call 034 18h ; e8 5d ff6130 call 03422h ; e8 5d ff 6127 6131 mov cx, ax ; 89 c1 6128 6132 cmp cx, strict byte 0ffffh ; 83 f9 ff 6129 je short 034e 2h ; 74 206133 je short 034ech ; 74 20 6130 6134 lea dx, [bx+002h] ; 8d 57 02 6131 6135 mov ax, 003b6h ; b8 b6 03 6132 call 034 18h ; e8 4d ff6136 call 03422h ; e8 4d ff 6133 6137 lea dx, [bx+044h] ; 8d 57 44 6134 6138 cmp cx, di ; 39 f9 6135 jne short 034 deh ; 75 0c6139 jne short 034e8h ; 75 0c 6136 6140 test si, si ; 85 f6 6137 jne short 034 dah ; 75 046141 jne short 034e4h ; 75 04 6138 6142 mov ax, bx ; 89 d8 6139 jmp short 034e 4h ; eb 0a6143 jmp short 034eeh ; eb 0a 6140 6144 test AL, strict byte 080h ; a8 80 6141 jne short 034 d6h ; 75 f86145 jne short 034e0h ; 75 f8 6142 6146 mov bx, dx ; 89 d3 6143 jmp short 034b 5h ; eb d36147 jmp short 034bfh ; eb d3 6144 6148 xor ax, ax ; 31 c0 6145 6149 lea sp, [bp-008h] ; 8d 66 f8 … … 6150 6154 pop bp ; 5d 6151 6155 retn ; c3 6152 vbe_biosfn_return_controller_information_: ; 0xc34 edLB 0x1296156 vbe_biosfn_return_controller_information_: ; 0xc34f7 LB 0x129 6153 6157 push bp ; 55 6154 6158 mov bp, sp ; 89 e5 … … 6161 6165 mov word [bp-00ah], bx ; 89 5e f6 6162 6166 mov word [bp-00ch], strict word 00022h ; c7 46 f4 22 00 6163 call 005a7h ; e8 a2d06167 call 005a7h ; e8 98 d0 6164 6168 mov word [bp-010h], ax ; 89 46 f0 6165 6169 mov bx, word [bp-00ah] ; 8b 5e f6 … … 6167 6171 xor dx, dx ; 31 d2 6168 6172 mov ax, 003b6h ; b8 b6 03 6169 call 034 18h ; e8 02 ff6173 call 03422h ; e8 02 ff 6170 6174 cmp ax, 077cch ; 3d cc 77 6171 je short 0352 5h ; 74 0a6175 je short 0352fh ; 74 0a 6172 6176 push SS ; 16 6173 6177 pop ES ; 07 6174 6178 mov word [es:si], 00100h ; 26 c7 04 00 01 6175 jmp near 036 0eh ; e9 e9 006179 jmp near 03618h ; e9 e9 00 6176 6180 mov cx, strict word 00004h ; b9 04 00 6177 6181 mov word [bp-00eh], strict word 00000h ; c7 46 f2 00 00 6178 6182 mov es, [bp-008h] ; 8e 46 f8 6179 6183 cmp word [es:bx+002h], 03245h ; 26 81 7f 02 45 32 6180 jne short 035 3fh ; 75 076184 jne short 03549h ; 75 07 6181 6185 cmp word [es:bx], 04256h ; 26 81 3f 56 42 6182 je short 035 4eh ; 74 0f6186 je short 03558h ; 74 0f 6183 6187 cmp word [es:bx+002h], 04153h ; 26 81 7f 02 53 41 6184 jne short 0355 3h ; 75 0c6188 jne short 0355dh ; 75 0c 6185 6189 cmp word [es:bx], 04556h ; 26 81 3f 56 45 6186 jne short 0355 3h ; 75 056190 jne short 0355dh ; 75 05 6187 6191 mov word [bp-00eh], strict word 00001h ; c7 46 f2 01 00 6188 6192 mov es, [bp-008h] ; 8e 46 f8 … … 6200 6204 mov dx, strict word 0ffffh ; ba ff ff 6201 6205 mov ax, 003b6h ; b8 b6 03 6202 call 034 18h ; e8 8a fe6206 call 03422h ; e8 8a fe 6203 6207 mov es, [bp-008h] ; 8e 46 f8 6204 6208 mov word [es:bx+012h], ax ; 26 89 47 12 6205 6209 cmp word [bp-00eh], strict byte 00000h ; 83 7e f2 00 6206 je short 035 bfh ; 74 246210 je short 035c9h ; 74 24 6207 6211 mov word [es:bx+014h], strict word 00003h ; 26 c7 47 14 03 00 6208 6212 mov word [es:bx+016h], 07e35h ; 26 c7 47 16 35 7e … … 6215 6219 add dx, strict byte 0001bh ; 83 c2 1b 6216 6220 mov ax, 003b6h ; b8 b6 03 6217 call 034 2ah ; e8 60 fe6221 call 03434h ; e8 60 fe 6218 6222 xor ah, ah ; 30 e4 6219 6223 cmp ax, word [bp-010h] ; 3b 46 f0 6220 jnbe short 035 eah ; 77 196224 jnbe short 035f4h ; 77 19 6221 6225 mov dx, cx ; 89 ca 6222 6226 mov ax, 003b6h ; b8 b6 03 6223 call 034 18h ; e8 3f fe6227 call 03422h ; e8 3f fe 6224 6228 mov bx, ax ; 89 c3 6225 6229 mov dx, word [bp-00ah] ; 8b 56 f6 6226 6230 add dx, word [bp-00ch] ; 03 56 f4 6227 6231 mov ax, di ; 89 f8 6228 call 02f 5eh ; e8 78 f96232 call 02f68h ; e8 78 f9 6229 6233 add word [bp-00ch], strict byte 00002h ; 83 46 f4 02 6230 6234 add cx, strict byte 00044h ; 83 c1 44 6231 6235 mov dx, cx ; 89 ca 6232 6236 mov ax, 003b6h ; b8 b6 03 6233 call 034 18h ; e8 23 fe6237 call 03422h ; e8 23 fe 6234 6238 mov bx, ax ; 89 c3 6235 6239 cmp ax, strict word 0ffffh ; 3d ff ff 6236 jne short 035 bfh ; 75 c36240 jne short 035c9h ; 75 c3 6237 6241 mov dx, word [bp-00ah] ; 8b 56 f6 6238 6242 add dx, word [bp-00ch] ; 03 56 f4 6239 6243 mov ax, di ; 89 f8 6240 call 02f 5eh ; e8 57 f96244 call 02f68h ; e8 57 f9 6241 6245 push SS ; 16 6242 6246 pop ES ; 07 … … 6248 6252 pop bp ; 5d 6249 6253 retn ; c3 6250 vbe_biosfn_return_mode_information_: ; 0xc36 16LB 0xb46254 vbe_biosfn_return_mode_information_: ; 0xc3620 LB 0xb4 6251 6255 push bp ; 55 6252 6256 mov bp, sp ; 89 e5 … … 6264 6268 xor dh, dh ; 30 f6 6265 6269 and ah, 001h ; 80 e4 01 6266 call 034 98h ; e8 65 fe6270 call 034a2h ; e8 65 fe 6267 6271 mov word [bp-008h], ax ; 89 46 f8 6268 6272 test ax, ax ; 85 c0 6269 je near 036 b8h ; 0f 84 7c 006273 je near 036c2h ; 0f 84 7c 00 6270 6274 mov cx, 00100h ; b9 00 01 6271 6275 xor ax, ax ; 31 c0 … … 6273 6277 mov es, bx ; 8e c3 6274 6278 cld ; fc 6275 jcxz 036 4bh ; e3 026279 jcxz 03655h ; e3 02 6276 6280 rep stosb ; f3 aa 6277 6281 xor cx, cx ; 31 c9 6278 jmp short 0365 4h ; eb 056282 jmp short 0365eh ; eb 05 6279 6283 cmp cx, strict byte 00042h ; 83 f9 42 6280 jnc short 0367 1h ; 73 1d6284 jnc short 0367bh ; 73 1d 6281 6285 mov dx, word [bp-008h] ; 8b 56 f8 6282 6286 inc dx ; 42 … … 6284 6288 add dx, cx ; 01 ca 6285 6289 mov ax, 003b6h ; b8 b6 03 6286 call 034 2ah ; e8 c9 fd6290 call 03434h ; e8 c9 fd 6287 6291 movzx bx, al ; 0f b6 d8 6288 6292 mov dx, word [bp-006h] ; 8b 56 fa 6289 6293 add dx, cx ; 01 ca 6290 6294 mov ax, si ; 89 f0 6291 call 02f4 2h ; e8 d4 f86292 inc cx ; 41 6293 jmp short 036 4fh ; eb de6295 call 02f4ch ; e8 d4 f8 6296 inc cx ; 41 6297 jmp short 03659h ; eb de 6294 6298 mov dx, word [bp-006h] ; 8b 56 fa 6295 6299 inc dx ; 42 6296 6300 inc dx ; 42 6297 6301 mov ax, si ; 89 f0 6298 call 02f3 4h ; e8 b9 f86302 call 02f3eh ; e8 b9 f8 6299 6303 test AL, strict byte 001h ; a8 01 6300 je short 036 9bh ; 74 1c6304 je short 036a5h ; 74 1c 6301 6305 mov dx, word [bp-006h] ; 8b 56 fa 6302 6306 add dx, strict byte 0000ch ; 83 c2 0c 6303 6307 mov bx, 00605h ; bb 05 06 6304 6308 mov ax, si ; 89 f0 6305 call 02f 5eh ; e8 d1 f86309 call 02f68h ; e8 d1 f8 6306 6310 mov dx, word [bp-006h] ; 8b 56 fa 6307 6311 add dx, strict byte 0000eh ; 83 c2 0e 6308 6312 mov bx, 0c000h ; bb 00 c0 6309 6313 mov ax, si ; 89 f0 6310 call 02f 5eh ; e8 c3 f86314 call 02f68h ; e8 c3 f8 6311 6315 mov ax, strict word 0000bh ; b8 0b 00 6312 6316 mov dx, 001ceh ; ba ce 01 … … 6318 6322 mov bx, ax ; 89 c3 6319 6323 mov ax, si ; 89 f0 6320 call 02f 5eh ; e8 ab f86324 call 02f68h ; e8 ab f8 6321 6325 mov ax, strict word 0004fh ; b8 4f 00 6322 jmp short 036 bbh ; eb 036326 jmp short 036c5h ; eb 03 6323 6327 mov ax, 00100h ; b8 00 01 6324 6328 push SS ; 16 … … 6331 6335 pop bp ; 5d 6332 6336 retn ; c3 6333 vbe_biosfn_set_mode_: ; 0xc36 caLB 0xe96337 vbe_biosfn_set_mode_: ; 0xc36d4 LB 0xe9 6334 6338 push bp ; 55 6335 6339 mov bp, sp ; 89 e5 … … 6345 6349 mov ax, dx ; 89 d0 6346 6350 test dx, dx ; 85 d2 6347 je short 036 eah ; 74 036351 je short 036f4h ; 74 03 6348 6352 mov dx, strict word 00040h ; ba 40 00 6349 6353 mov byte [bp-006h], dl ; 88 56 fa 6350 6354 test byte [bp-009h], 080h ; f6 46 f7 80 6351 je short 03 6f8h ; 74 056355 je short 03702h ; 74 05 6352 6356 mov dx, 00080h ; ba 80 00 6353 jmp short 03 6fah ; eb 026357 jmp short 03704h ; eb 02 6354 6358 xor dx, dx ; 31 d2 6355 6359 mov byte [bp-008h], dl ; 88 56 f8 6356 6360 and byte [bp-009h], 001h ; 80 66 f7 01 6357 6361 cmp word [bp-00ah], 00100h ; 81 7e f6 00 01 6358 jnc short 037 1ah ; 73 126362 jnc short 03724h ; 73 12 6359 6363 xor ax, ax ; 31 c0 6360 call 005c9h ; e8 b cce6364 call 005c9h ; e8 b2 ce 6361 6365 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6362 call 00fdch ; e8 c8d86366 call 00fdch ; e8 be d8 6363 6367 mov ax, strict word 0004fh ; b8 4f 00 6364 jmp near 037 a9h ; e9 8f 006368 jmp near 037b3h ; e9 8f 00 6365 6369 mov dx, ax ; 89 c2 6366 6370 mov ax, word [bp-00ah] ; 8b 46 f6 6367 call 034 98h ; e8 76 fd6371 call 034a2h ; e8 76 fd 6368 6372 mov bx, ax ; 89 c3 6369 6373 test ax, ax ; 85 c0 6370 je near 037 a6h ; 0f 84 7c 006374 je near 037b0h ; 0f 84 7c 00 6371 6375 lea dx, [bx+014h] ; 8d 57 14 6372 6376 mov ax, 003b6h ; b8 b6 03 6373 call 034 18h ; e8 e5 fc6377 call 03422h ; e8 e5 fc 6374 6378 mov cx, ax ; 89 c1 6375 6379 lea dx, [bx+016h] ; 8d 57 16 6376 6380 mov ax, 003b6h ; b8 b6 03 6377 call 034 18h ; e8 da fc6381 call 03422h ; e8 da fc 6378 6382 mov di, ax ; 89 c7 6379 6383 lea dx, [bx+01bh] ; 8d 57 1b 6380 6384 mov ax, 003b6h ; b8 b6 03 6381 call 034 2ah ; e8 e1 fc6385 call 03434h ; e8 e1 fc 6382 6386 mov bl, al ; 88 c3 6383 6387 mov dl, al ; 88 c2 6384 6388 xor ax, ax ; 31 c0 6385 call 005c9h ; e8 77ce6389 call 005c9h ; e8 6d ce 6386 6390 cmp bl, 004h ; 80 fb 04 6387 jne short 037 5dh ; 75 066391 jne short 03767h ; 75 06 6388 6392 mov ax, strict word 0006ah ; b8 6a 00 6389 call 00fdch ; e8 7 fd86393 call 00fdch ; e8 75 d8 6390 6394 movzx ax, dl ; 0f b6 c2 6391 call 03 3fdh ; e8 9a fc6395 call 03407h ; e8 9a fc 6392 6396 mov ax, cx ; 89 c8 6393 call 033 c7h ; e8 5f fc6397 call 033d1h ; e8 5f fc 6394 6398 mov ax, di ; 89 f8 6395 call 033e 2h ; e8 75 fc6399 call 033ech ; e8 75 fc 6396 6400 xor ax, ax ; 31 c0 6397 call 005e7h ; e8 75ce6401 call 005e7h ; e8 6b ce 6398 6402 mov al, byte [bp-008h] ; 8a 46 f8 6399 6403 or AL, strict byte 001h ; 0c 01 … … 6401 6405 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6402 6406 or ax, dx ; 09 d0 6403 call 005c9h ; e8 46ce6404 call 006c3h ; e8 3 dcf6407 call 005c9h ; e8 3c ce 6408 call 006c3h ; e8 33 cf 6405 6409 mov bx, word [bp-00ah] ; 8b 5e f6 6406 6410 mov dx, 000bah ; ba ba 00 6407 6411 mov ax, strict word 00040h ; b8 40 00 6408 call 02f 5eh ; e8 cc f76412 call 02f68h ; e8 cc f7 6409 6413 mov al, byte [bp-008h] ; 8a 46 f8 6410 6414 or AL, strict byte 060h ; 0c 60 … … 6412 6416 mov dx, 00087h ; ba 87 00 6413 6417 mov ax, strict word 00040h ; b8 40 00 6414 call 02f4 2h ; e8 9f f76415 jmp near 0371 4h ; e9 6e ff6418 call 02f4ch ; e8 9f f7 6419 jmp near 0371eh ; e9 6e ff 6416 6420 mov ax, 00100h ; b8 00 01 6417 6421 mov word [ss:si], ax ; 36 89 04 … … 6421 6425 pop bp ; 5d 6422 6426 retn ; c3 6423 vbe_biosfn_read_video_state_size_: ; 0xc37b 3LB 0x86427 vbe_biosfn_read_video_state_size_: ; 0xc37bd LB 0x8 6424 6428 push bp ; 55 6425 6429 mov bp, sp ; 89 e5 … … 6427 6431 pop bp ; 5d 6428 6432 retn ; c3 6429 vbe_biosfn_save_video_state_: ; 0xc37 bbLB 0x5b6433 vbe_biosfn_save_video_state_: ; 0xc37c5 LB 0x5b 6430 6434 push bp ; 55 6431 6435 mov bp, sp ; 89 e5 … … 6446 6450 mov dx, cx ; 89 ca 6447 6451 mov ax, di ; 89 f8 6448 call 02f 5eh ; e8 80 f76452 call 02f68h ; e8 80 f7 6449 6453 inc cx ; 41 6450 6454 inc cx ; 41 6451 6455 test byte [bp-00ah], 001h ; f6 46 f6 01 6452 je short 038 0dh ; 74 276456 je short 03817h ; 74 27 6453 6457 mov si, strict word 00001h ; be 01 00 6454 jmp short 037f 0h ; eb 056458 jmp short 037fah ; eb 05 6455 6459 cmp si, strict byte 00009h ; 83 fe 09 6456 jnbe short 038 0dh ; 77 1d6460 jnbe short 03817h ; 77 1d 6457 6461 cmp si, strict byte 00004h ; 83 fe 04 6458 je short 038 0ah ; 74 156462 je short 03814h ; 74 15 6459 6463 mov ax, si ; 89 f0 6460 6464 mov dx, 001ceh ; ba ce 01 … … 6465 6469 mov dx, cx ; 89 ca 6466 6470 mov ax, di ; 89 f8 6467 call 02f 5eh ; e8 56 f76471 call 02f68h ; e8 56 f7 6468 6472 inc cx ; 41 6469 6473 inc cx ; 41 6470 6474 inc si ; 46 6471 jmp short 037 ebh ; eb de6475 jmp short 037f5h ; eb de 6472 6476 lea sp, [bp-008h] ; 8d 66 f8 6473 6477 pop di ; 5f … … 6477 6481 pop bp ; 5d 6478 6482 retn ; c3 6479 vbe_biosfn_restore_video_state_: ; 0xc38 16LB 0x9b6483 vbe_biosfn_restore_video_state_: ; 0xc3820 LB 0x9b 6480 6484 push bp ; 55 6481 6485 mov bp, sp ; 89 e5 … … 6486 6490 mov cx, ax ; 89 c1 6487 6491 mov bx, dx ; 89 d3 6488 call 02f5 0h ; e8 2c f76492 call 02f5ah ; e8 2c f7 6489 6493 mov word [bp-008h], ax ; 89 46 f8 6490 6494 inc bx ; 43 6491 6495 inc bx ; 43 6492 6496 test byte [bp-008h], 001h ; f6 46 f8 01 6493 jne short 038 3fh ; 75 106497 jne short 03849h ; 75 10 6494 6498 mov ax, strict word 00004h ; b8 04 00 6495 6499 mov dx, 001ceh ; ba ce 01 … … 6498 6502 mov dx, 001cfh ; ba cf 01 6499 6503 out DX, ax ; ef 6500 jmp short 038 a9h ; eb 6a6504 jmp short 038b3h ; eb 6a 6501 6505 mov ax, strict word 00001h ; b8 01 00 6502 6506 mov dx, 001ceh ; ba ce 01 … … 6504 6508 mov dx, bx ; 89 da 6505 6509 mov ax, cx ; 89 c8 6506 call 02f5 0h ; e8 03 f76510 call 02f5ah ; e8 03 f7 6507 6511 mov dx, 001cfh ; ba cf 01 6508 6512 out DX, ax ; ef … … 6514 6518 mov dx, bx ; 89 da 6515 6519 mov ax, cx ; 89 c8 6516 call 02f5 0h ; e8 ef f66520 call 02f5ah ; e8 ef f6 6517 6521 mov dx, 001cfh ; ba cf 01 6518 6522 out DX, ax ; ef … … 6524 6528 mov dx, bx ; 89 da 6525 6529 mov ax, cx ; 89 c8 6526 call 02f5 0h ; e8 db f66530 call 02f5ah ; e8 db f6 6527 6531 mov dx, 001cfh ; ba cf 01 6528 6532 out DX, ax ; ef … … 6536 6540 out DX, ax ; ef 6537 6541 mov si, strict word 00005h ; be 05 00 6538 jmp short 0389 3h ; eb 056542 jmp short 0389dh ; eb 05 6539 6543 cmp si, strict byte 00009h ; 83 fe 09 6540 jnbe short 038 a9h ; 77 166544 jnbe short 038b3h ; 77 16 6541 6545 mov ax, si ; 89 f0 6542 6546 mov dx, 001ceh ; ba ce 01 … … 6544 6548 mov dx, bx ; 89 da 6545 6549 mov ax, cx ; 89 c8 6546 call 02f5 0h ; e8 b0 f66550 call 02f5ah ; e8 b0 f6 6547 6551 mov dx, 001cfh ; ba cf 01 6548 6552 out DX, ax ; ef … … 6550 6554 inc bx ; 43 6551 6555 inc si ; 46 6552 jmp short 038 8eh ; eb e56556 jmp short 03898h ; eb e5 6553 6557 lea sp, [bp-006h] ; 8d 66 fa 6554 6558 pop si ; 5e … … 6557 6561 pop bp ; 5d 6558 6562 retn ; c3 6559 vbe_biosfn_save_restore_state_: ; 0xc38b 1LB 0x8c6563 vbe_biosfn_save_restore_state_: ; 0xc38bb LB 0x8c 6560 6564 push bp ; 55 6561 6565 mov bp, sp ; 89 e5 … … 6570 6574 xor ah, ah ; 30 e4 6571 6575 cmp ax, strict word 00002h ; 3d 02 00 6572 je short 0391 0h ; 74 456576 je short 0391ah ; 74 45 6573 6577 cmp ax, strict word 00001h ; 3d 01 00 6574 je short 038f 4h ; 74 246578 je short 038feh ; 74 24 6575 6579 test ax, ax ; 85 c0 6576 jne short 039 2ch ; 75 586580 jne short 03936h ; 75 58 6577 6581 mov ax, word [bp-006h] ; 8b 46 fa 6578 call 028 49h ; e8 6f ef6582 call 02853h ; e8 6f ef 6579 6583 mov cx, ax ; 89 c1 6580 6584 test byte [bp-006h], 008h ; f6 46 fa 08 6581 je short 038 e7h ; 74 056582 call 037b 3h ; e8 ce fe6585 je short 038f1h ; 74 05 6586 call 037bdh ; e8 ce fe 6583 6587 add ax, cx ; 01 c8 6584 6588 add ax, strict word 0003fh ; 05 3f 00 … … 6587 6591 pop ES ; 07 6588 6592 mov word [es:bx], ax ; 26 89 07 6589 jmp short 039 2fh ; eb 3b6593 jmp short 03939h ; eb 3b 6590 6594 push SS ; 16 6591 6595 pop ES ; 07 … … 6593 6597 mov dx, cx ; 89 ca 6594 6598 mov ax, word [bp-006h] ; 8b 46 fa 6595 call 028 7eh ; e8 7d ef6599 call 02888h ; e8 7d ef 6596 6600 test byte [bp-006h], 008h ; f6 46 fa 08 6597 je short 039 2fh ; 74 286601 je short 03939h ; 74 28 6598 6602 mov dx, ax ; 89 c2 6599 6603 mov ax, cx ; 89 c8 6600 call 037 bbh ; e8 ad fe6601 jmp short 039 2fh ; eb 1f6604 call 037c5h ; e8 ad fe 6605 jmp short 03939h ; eb 1f 6602 6606 push SS ; 16 6603 6607 pop ES ; 07 … … 6605 6609 mov dx, cx ; 89 ca 6606 6610 mov ax, word [bp-006h] ; 8b 46 fa 6607 call 02b e7h ; e8 ca f26611 call 02bf1h ; e8 ca f2 6608 6612 test byte [bp-006h], 008h ; f6 46 fa 08 6609 je short 039 2fh ; 74 0c6613 je short 03939h ; 74 0c 6610 6614 mov dx, ax ; 89 c2 6611 6615 mov ax, cx ; 89 c8 6612 call 038 16h ; e8 ec fe6613 jmp short 039 2fh ; eb 036616 call 03820h ; e8 ec fe 6617 jmp short 03939h ; eb 03 6614 6618 mov di, 00100h ; bf 00 01 6615 6619 push SS ; 16 … … 6622 6626 retn 00002h ; c2 02 00 6623 6627 6624 ; Padding 0xc c3 bytes at 0xc393d6625 times 32 67 db 06628 ; Padding 0xcb9 bytes at 0xc3947 6629 times 3257 db 0 6626 6630 6627 6631 section VBE32 progbits vstart=0x4600 align=1 ; size=0x115 class=CODE group=AUTO … … 7676 7680 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h 7677 7681 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h 7678 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0 85h7682 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 055h -
trunk/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative.md5sum
r51062 r51255 1 be05e86993fbde08237d26cfc61fb370*VBoxVgaBios.rom1 2abf7b9050be07a06bb5f956042ff4df *VBoxVgaBios.rom -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.asm
r51062 r51255 1058 1058 times 1142 db 0 1059 1059 1060 section _TEXT progbits vstart=0x1600 align=1 ; size=0x 7fd5 class=CODE group=AUTO1060 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8025 class=CODE group=AUTO 1061 1061 rom_scan_: ; 0xf1600 LB 0x50 1062 1062 push bp ; 55 … … 1455 1455 mov bx, strict word 0000ah ; bb 0a 00 1456 1456 xor cx, cx ; 31 c9 1457 call 09 4e0h ; e8 07 7c1457 call 09530h ; e8 57 7c 1458 1458 mov word [bp-008h], ax ; 89 46 f8 1459 1459 mov cx, dx ; 89 d1 … … 4822 4822 mov dx, ss ; 8c d2 4823 4823 lea ax, [bp-026h] ; 8d 46 da 4824 call 095 4ah ; e8 57 5c4824 call 0959ah ; e8 a7 5c 4825 4825 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 4826 4826 mov ax, strict word 00011h ; b8 11 00 … … 5281 5281 xor dl, dl ; 30 d2 5282 5282 xor cx, cx ; 31 c9 5283 call 095 19h ; e8 c5 565283 call 09569h ; e8 15 57 5284 5284 xor bx, bx ; 31 db 5285 5285 add ax, si ; 01 f0 … … 5287 5287 mov bx, di ; 89 fb 5288 5288 xor cx, cx ; 31 c9 5289 call 095 19h ; e8 b8 565289 call 09569h ; e8 08 57 5290 5290 mov bx, ax ; 89 c3 5291 5291 mov ax, word [bp-010h] ; 8b 46 f0 … … 5322 5322 mov dx, ss ; 8c d2 5323 5323 lea ax, [bp-02eh] ; 8d 46 d2 5324 call 095 4ah ; e8 92 565324 call 0959ah ; e8 e2 56 5325 5325 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 5326 5326 mov ax, word [bp-014h] ; 8b 46 ec … … 5629 5629 mov dx, ss ; 8c d2 5630 5630 lea ax, [bp-02ch] ; 8d 46 d4 5631 call 095 4ah ; e8 f7 525631 call 0959ah ; e8 47 53 5632 5632 mov word [bp-02ch], strict word 00028h ; c7 46 d4 28 00 5633 5633 mov ax, word [bp-018h] ; 8b 46 e8 … … 7453 7453 mov bx, strict word 0003fh ; bb 3f 00 7454 7454 xor cx, cx ; 31 c9 7455 call 095 19h ; e8 e3 407455 call 09569h ; e8 33 41 7456 7456 mov bx, ax ; 89 c3 7457 7457 mov cx, dx ; 89 d1 7458 7458 mov ax, word [bp-004h] ; 8b 46 fc 7459 7459 mov dx, word [bp-002h] ; 8b 56 fe 7460 call 09 4e0h ; e8 9d 407460 call 09530h ; e8 ed 40 7461 7461 mov word [es:si+002h], ax ; 26 89 44 02 7462 7462 cmp ax, 00400h ; 3d 00 04 … … 7676 7676 mov bx, cx ; 89 cb 7677 7677 xor cx, cx ; 31 c9 7678 call 095 19h ; e8 b8 3e7678 call 09569h ; e8 08 3f 7679 7679 xor bx, bx ; 31 db 7680 7680 add ax, word [bp-008h] ; 03 46 f8 … … 7682 7682 mov bx, word [bp-00ah] ; 8b 5e f6 7683 7683 xor cx, cx ; 31 c9 7684 call 095 19h ; e8 a9 3e7684 call 09569h ; e8 f9 3e 7685 7685 xor bx, bx ; 31 db 7686 7686 add ax, word [bp-006h] ; 03 46 fa … … 7840 7840 mov bx, word [bp-008h] ; 8b 5e f8 7841 7841 xor cx, cx ; 31 c9 7842 call 095 19h ; e8 ea 3c7842 call 09569h ; e8 3a 3d 7843 7843 mov bx, word [bp-006h] ; 8b 5e fa 7844 7844 xor cx, cx ; 31 c9 7845 call 095 19h ; e8 e2 3c7845 call 09569h ; e8 32 3d 7846 7846 mov word [bp-010h], ax ; 89 46 f0 7847 7847 mov word [bp-00eh], dx ; 89 56 f2 … … 11344 11344 mov dx, ss ; 8c d2 11345 11345 lea ax, [bp-026h] ; 8d 46 da 11346 call 095 4ah ; e8 0c 1a11346 call 0959ah ; e8 5c 1a 11347 11347 mov byte [bp-026h], 025h ; c6 46 da 25 11348 11348 push dword 000000008h ; 66 6a 08 … … 11484 11484 mov dx, word [bp-018h] ; 8b 56 e8 11485 11485 xor cx, cx ; 31 c9 11486 call 09 4e0h ; e8 30 1811486 call 09530h ; e8 80 18 11487 11487 mov di, ax ; 89 c7 11488 11488 mov word [bp-012h], dx ; 89 56 ee … … 12000 12000 mov ax, 00080h ; b8 80 00 12001 12001 mov dx, word [bp-00ah] ; 8b 56 f6 12002 call 095 4ah ; e8 c1 1312002 call 0959ah ; e8 11 14 12003 12003 mov es, [bp-00ah] ; 8e 46 f6 12004 12004 mov word [es:si+00080h], 08027h ; 26 c7 84 80 00 27 80 … … 12041 12041 mov bx, word [bp-016h] ; 8b 5e ea 12042 12042 xor cx, cx ; 31 c9 12043 call 095 19h ; e8 f4 1212043 call 09569h ; e8 44 13 12044 12044 push dx ; 52 12045 12045 push ax ; 50 … … 12049 12049 mov ax, 0026ah ; b8 6a 02 12050 12050 mov dx, word [bp-00ah] ; 8b 56 f6 12051 call 094 2fh ; e8 f4 1112051 call 0947fh ; e8 44 12 12052 12052 mov es, [bp-00ah] ; 8e 46 f6 12053 12053 movzx ax, byte [es:si+00263h] ; 26 0f b6 84 63 02 … … 12110 12110 add ax, 0026ah ; 05 6a 02 12111 12111 mov dx, word [bp-00ch] ; 8b 56 f4 12112 call 094 a8h ; e8 9c 1112112 call 094f8h ; e8 ec 11 12113 12113 lea sp, [bp-006h] ; 8d 66 fa 12114 12114 pop di ; 5f … … 12155 12155 mov ax, di ; 89 f8 12156 12156 mov dx, word [bp-00ch] ; 8b 56 f4 12157 call 095 4ah ; e8 d3 1112157 call 0959ah ; e8 23 12 12158 12158 lea ax, [di+00080h] ; 8d 85 80 00 12159 12159 mov cx, strict word 00040h ; b9 40 00 12160 12160 xor bx, bx ; 31 db 12161 12161 mov dx, word [bp-00ch] ; 8b 56 f4 12162 call 095 4ah ; e8 c4 1112162 call 0959ah ; e8 14 12 12163 12163 lea ax, [di+00200h] ; 8d 85 00 02 12164 12164 mov cx, strict word 00060h ; b9 60 00 12165 12165 xor bx, bx ; 31 db 12166 12166 mov dx, word [bp-00ch] ; 8b 56 f4 12167 call 095 4ah ; e8 b5 1112167 call 0959ah ; e8 05 12 12168 12168 mov ax, word [bp-00eh] ; 8b 46 f2 12169 12169 add ax, 00108h ; 05 08 01 … … 12300 12300 mov ax, si ; 89 f0 12301 12301 mov dx, word [bp-00ah] ; 8b 56 f6 12302 call 095 4ah ; e8 98 1012302 call 0959ah ; e8 e8 10 12303 12303 lea ax, [si+00080h] ; 8d 84 80 00 12304 12304 mov cx, strict word 00040h ; b9 40 00 12305 12305 xor bx, bx ; 31 db 12306 12306 mov dx, word [bp-00ah] ; 8b 56 f6 12307 call 095 4ah ; e8 89 1012307 call 0959ah ; e8 d9 10 12308 12308 mov ax, si ; 89 f0 12309 12309 add ah, 002h ; 80 c4 02 … … 12312 12312 xor bx, bx ; 31 db 12313 12313 mov dx, word [bp-00ah] ; 8b 56 f6 12314 call 095 4ah ; e8 76 1012314 call 0959ah ; e8 c6 10 12315 12315 lea ax, [di+00108h] ; 8d 85 08 01 12316 12316 cwd ; 99 … … 12622 12622 mov dx, word [bp+008h] ; 8b 56 08 12623 12623 xor cx, cx ; 31 c9 12624 call 09 4e0h ; e8 fc 0c12624 call 09530h ; e8 4c 0d 12625 12625 mov word [es:si+00ah], ax ; 26 89 44 0a 12626 12626 xor di, di ; 31 ff … … 12646 12646 mov ax, 000c0h ; b8 c0 00 12647 12647 mov dx, word [bp-00ah] ; 8b 56 f6 12648 call 095 57h ; e8 27 0d12648 call 095a7h ; e8 77 0d 12649 12649 mov es, [bp-008h] ; 8e 46 f8 12650 12650 mov word [es:si+014h], di ; 26 89 7c 14 … … 12702 12702 pop bp ; 5d 12703 12703 retn 0000ch ; c2 0c 00 12704 ahci_port_detect_device_: ; 0xf88d5 LB 0x4 0112704 ahci_port_detect_device_: ; 0xf88d5 LB 0x451 12705 12705 push bp ; 55 12706 12706 mov bp, sp ; 89 e5 … … 12708 12708 push si ; 56 12709 12709 push di ; 57 12710 sub sp, 0022 2h ; 81 ec 220212711 mov di, ax ; 89 c712712 mov word [bp-01 0h], dx ; 89 56 f012713 mov byte [bp-00 ch], bl ; 88 5e f412714 movzx cx, bl ; 0f b6 cb12715 mov bx, cx ; 89 cb12710 sub sp, 00220h ; 81 ec 20 02 12711 mov si, ax ; 89 c6 12712 mov word [bp-012h], dx ; 89 56 ee 12713 mov byte [bp-008h], bl ; 88 5e f8 12714 movzx di, bl ; 0f b6 fb 12715 mov bx, di ; 89 fb 12716 12716 call 08458h ; e8 69 fb 12717 12717 mov dx, strict word 0000eh ; ba 0e 00 12718 12718 mov ax, strict word 00040h ; b8 40 00 12719 12719 call 0166ch ; e8 74 8d 12720 mov word [bp-020h], ax ; 89 46 e0 12721 mov si, 00122h ; be 22 01 12720 mov word [bp-010h], 00122h ; c7 46 f0 22 01 12722 12721 mov word [bp-00eh], ax ; 89 46 f2 12723 mov word [bp-012h], si ; 89 76 ee 12724 mov word [bp-01eh], ax ; 89 46 e2 12725 sal cx, 007h ; c1 e1 07 12726 mov word [bp-016h], cx ; 89 4e ea 12727 mov ax, cx ; 89 c8 12728 add ax, 0012ch ; 05 2c 01 12722 sal di, 007h ; c1 e7 07 12723 mov word [bp-020h], di ; 89 7e e0 12724 lea ax, [di+0012ch] ; 8d 85 2c 01 12729 12725 cwd ; 99 12730 mov word [bp-022h], ax ; 89 46 de12726 mov di, ax ; 89 c7 12731 12727 mov bx, dx ; 89 d3 12732 mov es, [bp-01 0h] ; 8e 46 f012733 mov dx, word [es: di+00260h] ; 26 8b 9560 0212728 mov es, [bp-012h] ; 8e 46 ee 12729 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 12734 12730 mov cx, bx ; 89 d9 12735 12731 xchg cx, ax ; 91 … … 12738 12734 ; mov ax, cx ; 8b c1 12739 12735 out DX, eax ; 66 ef 12740 mov es, [bp-01 0h] ; 8e 46 f012741 mov dx, word [es: di+00260h] ; 26 8b 9560 0212736 mov es, [bp-012h] ; 8e 46 ee 12737 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 12742 12738 add dx, strict byte 00004h ; 83 c2 04 12743 12739 mov ax, strict word 00001h ; b8 01 00 … … 12748 12744 ; mov ax, cx ; 8b c1 12749 12745 out DX, eax ; 66 ef 12750 mov es, [bp-01 0h] ; 8e 46 f012751 mov dx, word [es: di+00260h] ; 26 8b 9560 0212752 mov ax, word [bp-022h] ; 8b 46 de12746 mov es, [bp-012h] ; 8e 46 ee 12747 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 12748 mov ax, di ; 89 f8 12753 12749 mov cx, bx ; 89 d9 12754 12750 xchg cx, ax ; 91 … … 12757 12753 ; mov ax, cx ; 8b c1 12758 12754 out DX, eax ; 66 ef 12759 mov es, [bp-01 0h] ; 8e 46 f012760 mov dx, word [es: di+00260h] ; 26 8b 9560 0212755 mov es, [bp-012h] ; 8e 46 ee 12756 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 12761 12757 add dx, strict byte 00004h ; 83 c2 04 12762 12758 xor ax, ax ; 31 c0 … … 12767 12763 ; mov ax, cx ; 8b c1 12768 12764 out DX, eax ; 66 ef 12769 mov ax, word [bp-0 16h] ; 8b 46 ea12765 mov ax, word [bp-020h] ; 8b 46 e0 12770 12766 add ax, 00128h ; 05 28 01 12771 12767 cwd ; 99 12772 mov es, [bp-01 0h] ; 8e 46 f012773 mov bx, word [es: di+00260h] ; 26 8b 9d60 0212768 mov es, [bp-012h] ; 8e 46 ee 12769 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 12774 12770 mov cx, dx ; 89 d1 12775 12771 mov dx, bx ; 89 da … … 12779 12775 ; mov ax, cx ; 8b c1 12780 12776 out DX, eax ; 66 ef 12781 mov es, [bp-01 0h] ; 8e 46 f012782 mov dx, word [es: di+00260h] ; 26 8b 9560 0212777 mov es, [bp-012h] ; 8e 46 ee 12778 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 12783 12779 add dx, strict byte 00004h ; 83 c2 04 12784 12780 in eax, DX ; 66 ed … … 12790 12786 mov bx, strict word 0000fh ; bb 0f 00 12791 12787 xor cx, cx ; 31 c9 12792 call 0803ch ; e8 90 f6 12793 cmp ax, strict word 00003h ; 3d 03 00 12794 jne near 08cceh ; 0f 85 1b 03 12795 mov ax, word [bp-016h] ; 8b 46 ea 12796 add ax, 00130h ; 05 30 01 12788 call 0803ch ; e8 9a f6 12789 test ax, ax ; 85 c0 12790 je near 08d1eh ; 0f 84 76 03 12791 movzx ax, byte [bp-008h] ; 0f b6 46 f8 12792 sal ax, 007h ; c1 e0 07 12793 mov word [bp-016h], ax ; 89 46 ea 12794 add ax, 00128h ; 05 28 01 12797 12795 cwd ; 99 12798 mov es, [bp-01 0h] ; 8e 46 f012799 mov bx, word [es: di+00260h] ; 26 8b 9d60 0212796 mov es, [bp-012h] ; 8e 46 ee 12797 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 12800 12798 mov cx, dx ; 89 d1 12801 12799 mov dx, bx ; 89 da … … 12805 12803 ; mov ax, cx ; 8b c1 12806 12804 out DX, eax ; 66 ef 12807 mov es, [bp-010h] ; 8e 46 f0 12808 mov dx, word [es:di+00260h] ; 26 8b 95 60 02 12805 mov es, [bp-012h] ; 8e 46 ee 12806 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 12807 add dx, strict byte 00004h ; 83 c2 04 12808 in eax, DX ; 66 ed 12809 db 08bh, 0d0h 12810 ; mov dx, ax ; 8b d0 12811 shr eax, 010h ; 66 c1 e8 10 12812 xchg dx, ax ; 92 12813 mov di, ax ; 89 c7 12814 mov word [bp-01ah], dx ; 89 56 e6 12815 push strict byte 00000h ; 6a 00 12816 mov bx, strict word 0000fh ; bb 0f 00 12817 xor cx, cx ; 31 c9 12818 call 0803ch ; e8 4e f6 12819 cmp ax, strict word 00001h ; 3d 01 00 12820 je short 089a8h ; 74 b5 12821 push strict byte 00000h ; 6a 00 12822 mov bx, strict word 0000fh ; bb 0f 00 12823 xor cx, cx ; 31 c9 12824 mov ax, di ; 89 f8 12825 mov dx, word [bp-01ah] ; 8b 56 e6 12826 call 0803ch ; e8 3a f6 12827 cmp ax, strict word 00003h ; 3d 03 00 12828 jne near 08d1eh ; 0f 85 15 03 12829 mov ax, word [bp-016h] ; 8b 46 ea 12830 add ax, 00130h ; 05 30 01 12831 cwd ; 99 12832 mov es, [bp-012h] ; 8e 46 ee 12833 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 12834 mov cx, dx ; 89 d1 12835 mov dx, bx ; 89 da 12836 xchg cx, ax ; 91 12837 sal eax, 010h ; 66 c1 e0 10 12838 db 08bh, 0c1h 12839 ; mov ax, cx ; 8b c1 12840 out DX, eax ; 66 ef 12841 mov es, [bp-012h] ; 8e 46 ee 12842 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 12809 12843 add dx, strict byte 00004h ; 83 c2 04 12810 12844 mov ax, strict word 0ffffh ; b8 ff ff … … 12815 12849 ; mov ax, cx ; 8b c1 12816 12850 out DX, eax ; 66 ef 12817 mov es, [bp-00eh] ; 8e 46 f212818 mov al, byte [es: si+001edh] ; 26 8a 84ed 0112819 mov byte [bp-00 8h], al ; 88 46 f812851 les bx, [bp-010h] ; c4 5e f0 12852 mov al, byte [es:bx+001edh] ; 26 8a 87 ed 01 12853 mov byte [bp-00ch], al ; 88 46 f4 12820 12854 cmp AL, strict byte 004h ; 3c 04 12821 jnc near 08 cceh ; 0f 83 d50212855 jnc near 08d1eh ; 0f 83 cf 02 12822 12856 mov dx, word [bp-016h] ; 8b 56 ea 12823 12857 add dx, 00118h ; 81 c2 18 01 12824 mov es, [bp-01 0h] ; 8e 46 f012825 mov ax, word [es: di+00260h] ; 26 8b 8560 0212858 mov es, [bp-012h] ; 8e 46 ee 12859 mov ax, word [es:si+00260h] ; 26 8b 84 60 02 12826 12860 mov bx, strict word 00010h ; bb 10 00 12827 12861 xor cx, cx ; 31 c9 12828 call 07f79h ; e8 69f512862 call 07f79h ; e8 13 f5 12829 12863 mov ax, word [bp-016h] ; 8b 46 ea 12830 12864 add ax, 00124h ; 05 24 01 12831 12865 cwd ; 99 12832 mov es, [bp-01 0h] ; 8e 46 f012833 mov bx, word [es: di+00260h] ; 26 8b 9d60 0212866 mov es, [bp-012h] ; 8e 46 ee 12867 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 12834 12868 mov cx, dx ; 89 d1 12835 12869 mov dx, bx ; 89 da … … 12839 12873 ; mov ax, cx ; 8b c1 12840 12874 out DX, eax ; 66 ef 12841 mov es, [bp-01 0h] ; 8e 46 f012842 mov dx, word [es: di+00260h] ; 26 8b 9560 0212875 mov es, [bp-012h] ; 8e 46 ee 12876 mov dx, word [es:si+00260h] ; 26 8b 94 60 02 12843 12877 add dx, strict byte 00004h ; 83 c2 04 12844 12878 in eax, DX ; 66 ed … … 12847 12881 shr eax, 010h ; 66 c1 e8 10 12848 12882 xchg dx, ax ; 92 12849 mov cl, byte [bp-00 8h] ; 8a 4e f812883 mov cl, byte [bp-00ch] ; 8a 4e f4 12850 12884 add cl, 00ch ; 80 c1 0c 12851 12885 test dx, dx ; 85 d2 12852 jne near 08c 20h ; 0f 85 d40112886 jne near 08c7ah ; 0f 85 d8 01 12853 12887 cmp ax, 00101h ; 3d 01 01 12854 jne near 08c 20h ; 0f 85 cd0112855 mov es, [bp-00eh] ; 8e 46 f212856 db 066h, 026h, 0c7h, 00 4h, 000h, 000h, 000h, 000h12857 ; mov dword [es: si], strict dword 000000000h ; 66 26 c7 0400 00 00 0012858 lea dx, [bp-0022 8h] ; 8d 96 d8fd12859 mov word [es: si+004h], dx ; 26 89 540412860 mov [es: si+006h], ss ; 26 8c 540612861 db 066h, 026h, 0c7h, 04 4h, 00ah, 001h, 000h, 000h, 002h12862 ; mov dword [es: si+00ah], strict dword 002000001h ; 66 26 c7 440a 01 00 00 0212888 jne near 08c7ah ; 0f 85 d1 01 12889 les bx, [bp-010h] ; c4 5e f0 12890 db 066h, 026h, 0c7h, 007h, 000h, 000h, 000h, 000h 12891 ; mov dword [es:bx], strict dword 000000000h ; 66 26 c7 07 00 00 00 00 12892 lea dx, [bp-00226h] ; 8d 96 da fd 12893 mov word [es:bx+004h], dx ; 26 89 57 04 12894 mov [es:bx+006h], ss ; 26 8c 57 06 12895 db 066h, 026h, 0c7h, 047h, 00ah, 001h, 000h, 000h, 002h 12896 ; mov dword [es:bx+00ah], strict dword 002000001h ; 66 26 c7 47 0a 01 00 00 02 12863 12897 mov bx, 000ech ; bb ec 00 12864 mov ax, si ; 89f012865 mov dx, word [bp-020h] ; 8b 56 e012866 call 0814ah ; e8 ccf612898 mov ax, word [bp-010h] ; 8b 46 f0 12899 mov dx, es ; 8c c2 12900 call 0814ah ; e8 76 f6 12867 12901 mov byte [bp-00ah], cl ; 88 4e f6 12868 test byte [bp-0022 8h], 080h ; f6 86 d8fd 8012902 test byte [bp-00226h], 080h ; f6 86 da fd 80 12869 12903 db 00fh, 095h, 0c0h 12870 12904 ; setne al ; 0f 95 c0 12871 12905 xor ah, ah ; 30 e4 12872 mov dx, word [bp-00226h] ; 8b 96 da fd 12873 mov word [bp-018h], dx ; 89 56 e8 12874 mov dx, word [bp-00222h] ; 8b 96 de fd 12875 mov word [bp-01ch], dx ; 89 56 e4 12876 mov dx, word [bp-0021ch] ; 8b 96 e4 fd 12877 mov word [bp-01ah], dx ; 89 56 e6 12878 mov di, word [bp-001b0h] ; 8b be 50 fe 12879 mov dx, word [bp-001aeh] ; 8b 96 52 fe 12880 mov word [bp-014h], dx ; 89 56 ec 12881 cmp dx, 00fffh ; 81 fa ff 0f 12882 jne short 08ac1h ; 75 10 12883 cmp di, strict byte 0ffffh ; 83 ff ff 12884 jne short 08ac1h ; 75 0b 12885 mov di, word [bp-00160h] ; 8b be a0 fe 12886 mov dx, word [bp-0015eh] ; 8b 96 a2 fe 12887 mov word [bp-014h], dx ; 89 56 ec 12888 movzx bx, byte [bp-008h] ; 0f b6 5e f8 12889 mov es, [bp-01eh] ; 8e 46 e2 12890 add bx, word [bp-012h] ; 03 5e ee 12891 mov ah, byte [bp-00ch] ; 8a 66 f4 12892 mov byte [es:bx+001e9h], ah ; 26 88 a7 e9 01 12893 movzx dx, byte [bp-00ah] ; 0f b6 56 f6 12894 imul dx, dx, strict byte 00018h ; 6b d2 18 12895 mov si, word [bp-012h] ; 8b 76 ee 12896 add si, dx ; 01 d6 12906 mov dl, al ; 88 c2 12907 mov ax, word [bp-00224h] ; 8b 86 dc fd 12908 mov word [bp-018h], ax ; 89 46 e8 12909 mov ax, word [bp-00220h] ; 8b 86 e0 fd 12910 mov word [bp-01eh], ax ; 89 46 e2 12911 mov ax, word [bp-0021ah] ; 8b 86 e6 fd 12912 mov word [bp-01ch], ax ; 89 46 e4 12913 mov ax, word [bp-001aeh] ; 8b 86 52 fe 12914 mov word [bp-014h], ax ; 89 46 ec 12915 mov di, word [bp-001ach] ; 8b be 54 fe 12916 cmp di, 00fffh ; 81 ff ff 0f 12917 jne short 08b19h ; 75 10 12918 cmp ax, strict word 0ffffh ; 3d ff ff 12919 jne short 08b19h ; 75 0b 12920 mov ax, word [bp-0015eh] ; 8b 86 a2 fe 12921 mov word [bp-014h], ax ; 89 46 ec 12922 mov di, word [bp-0015ch] ; 8b be a4 fe 12923 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 12924 mov es, [bp-00eh] ; 8e 46 f2 12925 add bx, word [bp-010h] ; 03 5e f0 12926 mov al, byte [bp-008h] ; 8a 46 f8 12927 mov byte [es:bx+001e9h], al ; 26 88 87 e9 01 12928 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 12929 imul ax, ax, strict byte 00018h ; 6b c0 18 12930 mov si, word [bp-010h] ; 8b 76 f0 12931 add si, ax ; 01 c6 12897 12932 mov word [es:si+01eh], 0ff05h ; 26 c7 44 1e 05 ff 12898 mov byte [es:si+020h], al ; 26 88 44 2012933 mov byte [es:si+020h], dl ; 26 88 54 20 12899 12934 mov byte [es:si+021h], 000h ; 26 c6 44 21 00 12900 12935 mov word [es:si+024h], 00200h ; 26 c7 44 24 00 02 12901 12936 mov byte [es:si+023h], 001h ; 26 c6 44 23 01 12902 mov word [es:si+032h], di ; 26 89 7c 3212903 12937 mov ax, word [bp-014h] ; 8b 46 ec 12904 mov word [es:si+034h], ax ; 26 89 44 34 12905 mov ax, word [bp-01ch] ; 8b 46 e4 12938 mov word [es:si+032h], ax ; 26 89 44 32 12939 mov word [es:si+034h], di ; 26 89 7c 34 12940 mov ax, word [bp-01eh] ; 8b 46 e2 12906 12941 mov word [es:si+02ch], ax ; 26 89 44 2c 12907 12942 mov ax, word [bp-018h] ; 8b 46 e8 12908 12943 mov word [es:si+02eh], ax ; 26 89 44 2e 12909 mov ax, word [bp-01 ah] ; 8b 46 e612944 mov ax, word [bp-01ch] ; 8b 46 e4 12910 12945 mov word [es:si+030h], ax ; 26 89 44 30 12911 mov al, byte [bp-00 8h] ; 8a 46 f812946 mov al, byte [bp-00ch] ; 8a 46 f4 12912 12947 cmp AL, strict byte 001h ; 3c 01 12913 jc short 08b 2ch ; 72 0c12914 jbe short 08b 34h ; 76 1212948 jc short 08b84h ; 72 0c 12949 jbe short 08b8ch ; 76 12 12915 12950 cmp AL, strict byte 003h ; 3c 03 12916 je short 08b 3ch ; 74 1612951 je short 08b94h ; 74 16 12917 12952 cmp AL, strict byte 002h ; 3c 02 12918 je short 08b 38h ; 74 0e12919 jmp short 08b 85h ; eb 5912953 je short 08b90h ; 74 0e 12954 jmp short 08bddh ; eb 59 12920 12955 test al, al ; 84 c0 12921 jne short 08b 85h ; 75 5512956 jne short 08bddh ; 75 55 12922 12957 mov DL, strict byte 040h ; b2 40 12923 jmp short 08b 3eh ; eb 0a12958 jmp short 08b96h ; eb 0a 12924 12959 mov DL, strict byte 048h ; b2 48 12925 jmp short 08b 3eh ; eb 0612960 jmp short 08b96h ; eb 06 12926 12961 mov DL, strict byte 050h ; b2 50 12927 jmp short 08b 3eh ; eb 0212962 jmp short 08b96h ; eb 02 12928 12963 mov DL, strict byte 058h ; b2 58 12929 12964 mov al, dl ; 88 d0 … … 12931 12966 movzx bx, al ; 0f b6 d8 12932 12967 mov ax, bx ; 89 d8 12933 call 016ach ; e8 628b12968 call 016ach ; e8 0a 8b 12934 12969 test al, al ; 84 c0 12935 je short 08b 85h ; 74 3712970 je short 08bddh ; 74 37 12936 12971 mov al, dl ; 88 d0 12937 12972 db 0feh, 0c0h 12938 12973 ; inc al ; fe c0 12939 12974 xor ah, ah ; 30 e4 12940 call 016ach ; e8 55 8b12975 call 016ach ; e8 fd 8a 12941 12976 xor ah, ah ; 30 e4 12942 mov cx, ax ; 89 c112943 sal cx, 008h ; c1 e10812977 mov si, ax ; 89 c6 12978 sal si, 008h ; c1 e6 08 12944 12979 movzx ax, dl ; 0f b6 c2 12945 call 016ach ; e8 48 8b12980 call 016ach ; e8 f0 8a 12946 12981 xor ah, ah ; 30 e4 12947 add ax, cx ; 01 c812948 mov word [bp-02 6h], ax ; 89 46 da12982 add ax, si ; 01 f0 12983 mov word [bp-024h], ax ; 89 46 dc 12949 12984 mov al, dl ; 88 d0 12950 12985 add AL, strict byte 002h ; 04 02 12951 12986 xor ah, ah ; 30 e4 12952 call 016ach ; e8 38 8b12987 call 016ach ; e8 e0 8a 12953 12988 xor ah, ah ; 30 e4 12954 mov word [bp-02 8h], ax ; 89 46 d812989 mov word [bp-026h], ax ; 89 46 da 12955 12990 mov ax, bx ; 89 d8 12956 call 016ach ; e8 2e 8b12991 call 016ach ; e8 d6 8a 12957 12992 xor ah, ah ; 30 e4 12958 mov word [bp-02 4h], ax ; 89 46 dc12959 jmp short 08b 92h ; eb 0d12960 mov bx, di ; 89 fb12961 mov cx, word [bp-014h] ; 8b 4e ec12993 mov word [bp-022h], ax ; 89 46 de 12994 jmp short 08beah ; eb 0d 12995 mov bx, word [bp-014h] ; 8b 5e ec 12996 mov cx, di ; 89 f9 12962 12997 mov dx, ss ; 8c d2 12963 lea ax, [bp-02 8h] ; 8d 46 d812964 call 053f3h ; e8 61c812998 lea ax, [bp-026h] ; 8d 46 da 12999 call 053f3h ; e8 09 c8 12965 13000 mov bx, 00da2h ; bb a2 0d 12966 13001 mov cx, ds ; 8c d9 12967 13002 mov ax, strict word 00004h ; b8 04 00 12968 call 01931h ; e8 94 8d 13003 call 01931h ; e8 3c 8d 13004 push di ; 57 12969 13005 push word [bp-014h] ; ff 76 ec 12970 push di ; 57 12971 mov ax, word [bp-024h] ; 8b 46 dc 12972 push ax ; 50 12973 mov ax, word [bp-028h] ; 8b 46 d8 13006 mov ax, word [bp-022h] ; 8b 46 de 12974 13007 push ax ; 50 12975 13008 mov ax, word [bp-026h] ; 8b 46 da 12976 13009 push ax ; 50 12977 push dword [bp-01ch] ; 66 ff 76 e4 13010 mov ax, word [bp-024h] ; 8b 46 dc 13011 push ax ; 50 13012 push dword [bp-01eh] ; 66 ff 76 e2 12978 13013 push word [bp-018h] ; ff 76 e8 13014 movzx ax, byte [bp-008h] ; 0f b6 46 f8 13015 push ax ; 50 12979 13016 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 12980 push ax ; 5012981 movzx ax, byte [bp-008h] ; 0f b6 46 f812982 13017 push ax ; 50 12983 13018 push 00cdah ; 68 da 0c 12984 13019 push strict byte 00004h ; 6a 04 12985 call 01972h ; e8 ac8d13020 call 01972h ; e8 54 8d 12986 13021 add sp, strict byte 00018h ; 83 c4 18 12987 movzx di, byte [bp-00ah] ; 0f b6 7e f6 12988 imul di, di, strict byte 00018h ; 6b ff 18 12989 add di, word [bp-012h] ; 03 7e ee 12990 mov es, [bp-01eh] ; 8e 46 e2 13022 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 13023 imul ax, ax, strict byte 00018h ; 6b c0 18 13024 mov di, word [bp-010h] ; 8b 7e f0 13025 add di, ax ; 01 c7 13026 mov es, [bp-00eh] ; 8e 46 f2 12991 13027 lea di, [di+026h] ; 8d 7d 26 12992 13028 push DS ; 1e 12993 13029 push SS ; 16 12994 13030 pop DS ; 1f 12995 lea si, [bp-02 8h] ; 8d 76 d813031 lea si, [bp-026h] ; 8d 76 da 12996 13032 movsw ; a5 12997 13033 movsw ; a5 12998 13034 movsw ; a5 12999 13035 pop DS ; 1f 13000 mov bx, word [bp-01 2h] ; 8b 5e ee13036 mov bx, word [bp-010h] ; 8b 5e f0 13001 13037 mov al, byte [es:bx+0019eh] ; 26 8a 87 9e 01 13002 mov ah, byte [bp-00 8h] ; 8a 66 f813038 mov ah, byte [bp-00ch] ; 8a 66 f4 13003 13039 add ah, 00ch ; 80 c4 0c 13004 13040 movzx bx, al ; 0f b6 d8 13005 add bx, word [bp-01 2h] ; 03 5e ee13041 add bx, word [bp-010h] ; 03 5e f0 13006 13042 mov byte [es:bx+0019fh], ah ; 26 88 a7 9f 01 13007 13043 db 0feh, 0c0h 13008 13044 ; inc al ; fe c0 13009 mov bx, word [bp-01 2h] ; 8b 5e ee13045 mov bx, word [bp-010h] ; 8b 5e f0 13010 13046 mov byte [es:bx+0019eh], al ; 26 88 87 9e 01 13011 13047 mov dx, strict word 00075h ; ba 75 00 13012 13048 mov ax, strict word 00040h ; b8 40 00 13013 call 01650h ; e8 41 8a13049 call 01650h ; e8 e7 89 13014 13050 db 0feh, 0c0h 13015 13051 ; inc al ; fe c0 … … 13017 13053 mov dx, strict word 00075h ; ba 75 00 13018 13054 mov ax, strict word 00040h ; b8 40 00 13019 call 0165eh ; e8 41 8a13020 jmp near 08 cbdh ; e9 9d0013055 call 0165eh ; e8 e7 89 13056 jmp near 08d10h ; e9 96 00 13021 13057 cmp dx, 0eb14h ; 81 fa 14 eb 13022 jne near 08 cbdh ; 0f 85 950013058 jne near 08d10h ; 0f 85 8e 00 13023 13059 cmp ax, 00101h ; 3d 01 01 13024 jne near 08 cbdh ; 0f 85 8e0013025 mov es, [bp-00eh] ; 8e 46 f213026 db 066h, 026h, 0c7h, 00 4h, 000h, 000h, 000h, 000h13027 ; mov dword [es: si], strict dword 000000000h ; 66 26 c7 0400 00 00 0013028 lea dx, [bp-0022 8h] ; 8d 96 d8fd13029 mov word [es: si+004h], dx ; 26 89 540413030 mov [es: si+006h], ss ; 26 8c 540613031 db 066h, 026h, 0c7h, 04 4h, 00ah, 001h, 000h, 000h, 002h13032 ; mov dword [es: si+00ah], strict dword 002000001h ; 66 26 c7 440a 01 00 00 0213060 jne near 08d10h ; 0f 85 87 00 13061 les bx, [bp-010h] ; c4 5e f0 13062 db 066h, 026h, 0c7h, 007h, 000h, 000h, 000h, 000h 13063 ; mov dword [es:bx], strict dword 000000000h ; 66 26 c7 07 00 00 00 00 13064 lea dx, [bp-00226h] ; 8d 96 da fd 13065 mov word [es:bx+004h], dx ; 26 89 57 04 13066 mov [es:bx+006h], ss ; 26 8c 57 06 13067 db 066h, 026h, 0c7h, 047h, 00ah, 001h, 000h, 000h, 002h 13068 ; mov dword [es:bx+00ah], strict dword 002000001h ; 66 26 c7 47 0a 01 00 00 02 13033 13069 mov bx, 000a1h ; bb a1 00 13034 mov ax, si ; 89f013035 mov dx, word [bp-020h] ; 8b 56 e013036 call 0814ah ; e8 f0f413037 test byte [bp-0022 8h], 080h ; f6 86 d8fd 8013070 mov ax, word [bp-010h] ; 8b 46 f0 13071 mov dx, es ; 8c c2 13072 call 0814ah ; e8 96 f4 13073 test byte [bp-00226h], 080h ; f6 86 da fd 80 13038 13074 db 00fh, 095h, 0c0h 13039 13075 ; setne al ; 0f 95 c0 13040 movzx dx, al ; 0f b6 d0 13041 movzx bx, byte [bp-008h] ; 0f b6 5e f8 13042 mov es, [bp-020h] ; 8e 46 e0 13043 add bx, si ; 01 f3 13044 mov al, byte [bp-00ch] ; 8a 46 f4 13076 xor ah, ah ; 30 e4 13077 mov dx, ax ; 89 c2 13078 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 13079 mov es, [bp-00eh] ; 8e 46 f2 13080 add bx, word [bp-010h] ; 03 5e f0 13081 mov al, byte [bp-008h] ; 8a 46 f8 13045 13082 mov byte [es:bx+001e9h], al ; 26 88 87 e9 01 13046 movzx si, cl ; 0f b6 f1 13047 imul si, si, strict byte 00018h ; 6b f6 18 13048 add si, 00122h ; 81 c6 22 01 13083 movzx ax, cl ; 0f b6 c1 13084 imul ax, ax, strict byte 00018h ; 6b c0 18 13085 mov si, word [bp-010h] ; 8b 76 f0 13086 add si, ax ; 01 c6 13049 13087 mov word [es:si+01eh], 00505h ; 26 c7 44 1e 05 05 13050 13088 mov byte [es:si+020h], dl ; 26 88 54 20 13051 13089 mov word [es:si+024h], 00800h ; 26 c7 44 24 00 08 13052 mov es, [bp-01eh] ; 8e 46 e2 13053 mov bx, word [bp-012h] ; 8b 5e ee 13090 mov bx, word [bp-010h] ; 8b 5e f0 13054 13091 mov al, byte [es:bx+001afh] ; 26 8a 87 af 01 13055 mov ah, byte [bp-00 8h] ; 8a 66 f813092 mov ah, byte [bp-00ch] ; 8a 66 f4 13056 13093 add ah, 00ch ; 80 c4 0c 13057 13094 movzx bx, al ; 0f b6 d8 13058 mov es, [bp-020h] ; 8e 46 e0 13059 add bx, 00122h ; 81 c3 22 01 13095 add bx, word [bp-010h] ; 03 5e f0 13060 13096 mov byte [es:bx+001b0h], ah ; 26 88 a7 b0 01 13061 13097 db 0feh, 0c0h 13062 13098 ; inc al ; fe c0 13063 mov es, [bp-01eh] ; 8e 46 e2 13064 mov bx, word [bp-012h] ; 8b 5e ee 13099 mov bx, word [bp-010h] ; 8b 5e f0 13065 13100 mov byte [es:bx+001afh], al ; 26 88 87 af 01 13066 inc byte [bp-008h] ; fe 46 f8 13067 mov al, byte [bp-008h] ; 8a 46 f8 13068 mov es, [bp-01eh] ; 8e 46 e2 13069 mov bx, word [bp-012h] ; 8b 5e ee 13101 inc byte [bp-00ch] ; fe 46 f4 13102 mov al, byte [bp-00ch] ; 8a 46 f4 13103 les bx, [bp-010h] ; c4 5e f0 13070 13104 mov byte [es:bx+001edh], al ; 26 88 87 ed 01 13071 13105 lea sp, [bp-006h] ; 8d 66 fa … … 13075 13109 pop bp ; 5d 13076 13110 retn ; c3 13077 ahci_mem_alloc_: ; 0xf8 cd6 LB 0x4313111 ahci_mem_alloc_: ; 0xf8d26 LB 0x43 13078 13112 push bp ; 55 13079 13113 mov bp, sp ; 89 e5 … … 13085 13119 mov dx, 00413h ; ba 13 04 13086 13120 xor ax, ax ; 31 c0 13087 call 0166ch ; e8 86 8913121 call 0166ch ; e8 36 89 13088 13122 test ax, ax ; 85 c0 13089 je short 08d 0fh ; 74 2513123 je short 08d5fh ; 74 25 13090 13124 dec ax ; 48 13091 13125 mov bx, ax ; 89 c3 … … 13094 13128 sal ax, 1 ; d1 e0 13095 13129 rcl dx, 1 ; d1 d2 13096 loop 08 cf2h ; e2 fa13130 loop 08d42h ; e2 fa 13097 13131 mov si, ax ; 89 c6 13098 13132 mov di, dx ; 89 d7 … … 13100 13134 shr di, 1 ; d1 ef 13101 13135 rcr si, 1 ; d1 de 13102 loop 08 cffh ; e2 fa13136 loop 08d4fh ; e2 fa 13103 13137 mov dx, 00413h ; ba 13 04 13104 13138 xor ax, ax ; 31 c0 13105 call 0167ah ; e8 6d 8913139 call 0167ah ; e8 1d 89 13106 13140 mov ax, si ; 89 f0 13107 13141 lea sp, [bp-00ah] ; 8d 66 f6 … … 13113 13147 pop bp ; 5d 13114 13148 retn ; c3 13115 ahci_hba_init_: ; 0xf8d 19 LB 0x12513149 ahci_hba_init_: ; 0xf8d69 LB 0x125 13116 13150 push bp ; 55 13117 13151 mov bp, sp ; 89 e5 … … 13125 13159 mov dx, strict word 0000eh ; ba 0e 00 13126 13160 mov ax, strict word 00040h ; b8 40 00 13127 call 0166ch ; e8 3d 8913161 call 0166ch ; e8 ed 88 13128 13162 mov bx, 00122h ; bb 22 01 13129 13163 mov word [bp-010h], ax ; 89 46 f0 … … 13142 13176 shr eax, 010h ; 66 c1 e8 10 13143 13177 xchg dx, ax ; 92 13144 call 08 cd6h ; e8 82 ff13178 call 08d26h ; e8 82 ff 13145 13179 mov di, ax ; 89 c7 13146 13180 test ax, ax ; 85 c0 13147 je near 08e 1dh ; 0f 84 c1 0013181 je near 08e6dh ; 0f 84 c1 00 13148 13182 mov es, [bp-010h] ; 8e 46 f0 13149 13183 mov word [es:bx+001eeh], di ; 26 89 bf ee 01 … … 13159 13193 mov dx, strict word 00004h ; ba 04 00 13160 13194 mov ax, si ; 89 f0 13161 call 07f79h ; e8 e9 f113195 call 07f79h ; e8 99 f1 13162 13196 mov ax, strict word 00004h ; b8 04 00 13163 13197 xor cx, cx ; 31 c9 … … 13176 13210 xchg dx, ax ; 92 13177 13211 test AL, strict byte 001h ; a8 01 13178 jne short 08d 90h ; 75 de13212 jne short 08de0h ; 75 de 13179 13213 xor ax, ax ; 31 c0 13180 13214 xor cx, cx ; 31 c9 … … 13194 13228 mov bx, strict word 0001fh ; bb 1f 00 13195 13229 xor cx, cx ; 31 c9 13196 call 0803ch ; e8 66 f213230 call 0803ch ; e8 16 f2 13197 13231 db 0feh, 0c0h 13198 13232 ; inc al ; fe c0 13199 13233 mov byte [bp-00eh], al ; 88 46 f2 13200 13234 mov byte [bp-00ch], 000h ; c6 46 f4 00 13201 jmp short 08 deah ; eb 0913235 jmp short 08e3ah ; eb 09 13202 13236 inc byte [bp-00ch] ; fe 46 f4 13203 13237 cmp byte [bp-00ch], 020h ; 80 7e f4 20 13204 jnc short 08e 1bh ; 73 3113238 jnc short 08e6bh ; 73 31 13205 13239 movzx cx, byte [bp-00ch] ; 0f b6 4e f4 13206 13240 mov ax, strict word 00001h ; b8 01 00 13207 13241 xor dx, dx ; 31 d2 13208 jcxz 08 dfbh ; e3 0613242 jcxz 08e4bh ; e3 06 13209 13243 sal ax, 1 ; d1 e0 13210 13244 rcl dx, 1 ; d1 d2 13211 loop 08 df5h ; e2 fa13245 loop 08e45h ; e2 fa 13212 13246 mov bx, ax ; 89 c3 13213 13247 mov cx, dx ; 89 d1 13214 13248 mov dx, strict word 0000ch ; ba 0c 00 13215 13249 mov ax, si ; 89 f0 13216 call 08003h ; e8 fc f113250 call 08003h ; e8 ac f1 13217 13251 test al, al ; 84 c0 13218 je short 08 de1h ; 74 d613252 je short 08e31h ; 74 d6 13219 13253 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 13220 13254 xor ax, ax ; 31 c0 13221 13255 mov dx, di ; 89 fa 13222 call 088d5h ; e8 bf fa13256 call 088d5h ; e8 6f fa 13223 13257 dec byte [bp-00eh] ; fe 4e f2 13224 jne short 08 de1h ; 75 c613258 jne short 08e31h ; 75 c6 13225 13259 xor ax, ax ; 31 c0 13226 13260 lea sp, [bp-00ah] ; 8d 66 f6 … … 13232 13266 pop bp ; 5d 13233 13267 retn ; c3 13234 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 0dh, 08fh, 0ebh, 08eh, 0f1h, 08eh, 0f7h, 08eh, 0fdh13235 db 08 eh, 003h, 08fh, 009h, 08fh, 00dh, 08fh13236 _ahci_init: ; 0xf8e 3e LB 0xfe13268 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 05dh, 08fh, 03bh, 08fh, 041h, 08fh, 047h, 08fh, 04dh 13269 db 08fh, 053h, 08fh, 059h, 08fh, 05dh, 08fh 13270 _ahci_init: ; 0xf8e8e LB 0xfe 13237 13271 push bp ; 55 13238 13272 mov bp, sp ; 89 e5 … … 13242 13276 mov ax, 00601h ; b8 01 06 13243 13277 mov dx, strict word 00001h ; ba 01 00 13244 call 093 5ch ; e8 0d 0513278 call 093ach ; e8 0d 05 13245 13279 mov dx, ax ; 89 c2 13246 13280 cmp ax, strict word 0ffffh ; 3d ff ff 13247 je near 08f 35h ; 0f 84 dd 0013281 je near 08f85h ; 0f 84 dd 00 13248 13282 xor al, al ; 30 c0 13249 13283 shr ax, 008h ; c1 e8 08 … … 13253 13287 xor ah, ah ; 30 e4 13254 13288 mov bx, strict word 00034h ; bb 34 00 13255 call 093 87h ; e8 1a 0513289 call 093d7h ; e8 1a 05 13256 13290 mov cl, al ; 88 c1 13257 13291 test cl, cl ; 84 c9 13258 je short 08e 96h ; 74 2313292 je short 08ee6h ; 74 23 13259 13293 movzx bx, cl ; 0f b6 d9 13260 13294 movzx di, byte [bp-008h] ; 0f b6 7e f8 … … 13262 13296 mov dx, di ; 89 fa 13263 13297 mov ax, si ; 89 f0 13264 call 093 87h ; e8 02 0513298 call 093d7h ; e8 02 05 13265 13299 cmp AL, strict byte 012h ; 3c 12 13266 je short 08e 96h ; 74 0d13300 je short 08ee6h ; 74 0d 13267 13301 mov al, cl ; 88 c8 13268 13302 db 0feh, 0c0h … … 13271 13305 mov dx, di ; 89 fa 13272 13306 mov ax, si ; 89 f0 13273 jmp short 08e 6ah ; eb d413307 jmp short 08ebah ; eb d4 13274 13308 test cl, cl ; 84 c9 13275 je near 08f 35h ; 0f 84 99 0013309 je near 08f85h ; 0f 84 99 00 13276 13310 add cl, 002h ; 80 c1 02 13277 13311 movzx bx, cl ; 0f b6 d9 … … 13280 13314 mov dx, di ; 89 fa 13281 13315 mov ax, si ; 89 f0 13282 call 093 87h ; e8 d6 0413316 call 093d7h ; e8 d6 04 13283 13317 cmp AL, strict byte 010h ; 3c 10 13284 jne near 08f 35h ; 0f 85 7e 0013318 jne near 08f85h ; 0f 85 7e 00 13285 13319 mov byte [bp-006h], 000h ; c6 46 fa 00 13286 13320 mov al, cl ; 88 c8 … … 13289 13323 mov dx, di ; 89 fa 13290 13324 mov ax, si ; 89 f0 13291 call 093 abh ; e8 e2 0413325 call 093fbh ; e8 e2 04 13292 13326 mov dx, ax ; 89 c2 13293 13327 and ax, strict word 0000fh ; 25 0f 00 13294 13328 sub ax, strict word 00004h ; 2d 04 00 13295 13329 cmp ax, strict word 0000bh ; 3d 0b 00 13296 jnbe short 08f 0dh ; 77 3713330 jnbe short 08f5dh ; 77 37 13297 13331 push CS ; 0e 13298 13332 pop ES ; 07 13299 13333 mov cx, strict word 00008h ; b9 08 00 13300 mov di, 08e 27h ; bf 27 8e13334 mov di, 08e77h ; bf 77 8e 13301 13335 repne scasb ; f2 ae 13302 13336 sal cx, 1 ; d1 e1 13303 13337 mov di, cx ; 89 cf 13304 mov ax, word [cs:di-071 d2h] ; 2e 8b 85 2e 8e13338 mov ax, word [cs:di-07182h] ; 2e 8b 85 7e 8e 13305 13339 jmp ax ; ff e0 13306 13340 mov byte [bp-006h], 010h ; c6 46 fa 10 13307 jmp short 08f 0dh ; eb 1c13341 jmp short 08f5dh ; eb 1c 13308 13342 mov byte [bp-006h], 014h ; c6 46 fa 14 13309 jmp short 08f 0dh ; eb 1613343 jmp short 08f5dh ; eb 16 13310 13344 mov byte [bp-006h], 018h ; c6 46 fa 18 13311 jmp short 08f 0dh ; eb 1013345 jmp short 08f5dh ; eb 10 13312 13346 mov byte [bp-006h], 01ch ; c6 46 fa 1c 13313 jmp short 08f 0dh ; eb 0a13347 jmp short 08f5dh ; eb 0a 13314 13348 mov byte [bp-006h], 020h ; c6 46 fa 20 13315 jmp short 08f 0dh ; eb 0413349 jmp short 08f5dh ; eb 04 13316 13350 mov byte [bp-006h], 024h ; c6 46 fa 24 13317 13351 mov si, dx ; 89 d6 … … 13320 13354 mov al, byte [bp-006h] ; 8a 46 fa 13321 13355 test al, al ; 84 c0 13322 je short 08f 35h ; 74 1913356 je short 08f85h ; 74 19 13323 13357 movzx bx, al ; 0f b6 d8 13324 13358 movzx dx, byte [bp-008h] ; 0f b6 56 f8 13325 13359 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 13326 call 09 3cdh ; e8 a3 0413360 call 0941dh ; e8 a3 04 13327 13361 test AL, strict byte 001h ; a8 01 13328 je short 08f 35h ; 74 0713362 je short 08f85h ; 74 07 13329 13363 and AL, strict byte 0f0h ; 24 f0 13330 13364 add ax, si ; 01 f0 13331 call 08d 19h ; e8 e4 fd13365 call 08d69h ; e8 e4 fd 13332 13366 lea sp, [bp-004h] ; 8d 66 fc 13333 13367 pop di ; 5f … … 13335 13369 pop bp ; 5d 13336 13370 retn ; c3 13337 apm_out_str_: ; 0xf8f 3c LB 0x3913371 apm_out_str_: ; 0xf8f8c LB 0x39 13338 13372 push bp ; 55 13339 13373 mov bp, sp ; 89 e5 … … 13341 13375 mov bx, ax ; 89 c3 13342 13376 cmp byte [bx], 000h ; 80 3f 00 13343 je short 08f 51h ; 74 0a13377 je short 08fa1h ; 74 0a 13344 13378 mov al, byte [bx] ; 8a 07 13345 13379 out DX, AL ; ee … … 13348 13382 db 00ah, 0c0h 13349 13383 ; or al, al ; 0a c0 13350 jne short 08f 49h ; 75 f813384 jne short 08f99h ; 75 f8 13351 13385 lea sp, [bp-002h] ; 8d 66 fe 13352 13386 pop bx ; 5b 13353 13387 pop bp ; 5d 13354 13388 retn ; c3 13355 cbw ; 98 13356 db 08fh, 064h, 090h 13357 ; pop word [si-070h] ; 8f 64 90 13358 stosb ; aa 13359 db 08fh, 0c5h 13360 ; pop bp ; 8f c5 13361 db 08fh, 064h, 090h 13362 ; pop word [si-070h] ; 8f 64 90 13363 db 0f0h, 08fh, 064h, 090h 13364 ; Illegal opcode ; f0 8f 64 90 13365 cmc ; f5 13366 db 08fh, 039h 13367 ; pop word [bx+di] ; 8f 39 13389 call 04439h ; e8 8f b4 13368 13390 nop ; 90 13369 cmp word [bx+si-06fc7h], dx ; 39 90 39 90 13370 xor AL, strict byte 090h ; 34 90 13371 cmp word [bx+si-06fc7h], dx ; 39 90 39 90 13372 db 02dh 13391 cli ; fa 13392 db 08fh, 015h 13393 ; pop word [di] ; 8f 15 13373 13394 nop ; 90 13374 _apm_function: ; 0xf8f75 LB 0xf5 13395 mov AH, strict byte 090h ; b4 90 13396 inc ax ; 40 13397 nop ; 90 13398 mov AH, strict byte 090h ; b4 90 13399 inc bp ; 45 13400 nop ; 90 13401 mov word [bx+si-06f77h], dx ; 89 90 89 90 13402 mov word [bx+si-06f7ch], dx ; 89 90 84 90 13403 mov word [bx+si-06f77h], dx ; 89 90 89 90 13404 jnl short 08f55h ; 7d 90 13405 _apm_function: ; 0xf8fc5 LB 0xf5 13375 13406 push bp ; 55 13376 13407 mov bp, sp ; 89 e5 … … 13380 13411 xor ah, ah ; 30 e4 13381 13412 cmp ax, strict word 0000eh ; 3d 0e 00 13382 jnbe near 090 39h ; 0f 87 b0 0013413 jnbe near 09089h ; 0f 87 b0 00 13383 13414 mov bx, ax ; 89 c3 13384 13415 add bx, ax ; 01 c3 13385 13416 mov dx, word [bp+018h] ; 8b 56 18 13386 13417 or dl, 001h ; 80 ca 01 13387 jmp word [cs:bx-070 a9h] ; 2e ff a7 57 8f13418 jmp word [cs:bx-07059h] ; 2e ff a7 a7 8f 13388 13419 mov word [bp+012h], 00102h ; c7 46 12 02 01 13389 13420 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 13390 13421 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 13391 jmp near 090 64h ; e9 ba 0013422 jmp near 090b4h ; e9 ba 00 13392 13423 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 13393 mov word [bp+00ch], 09 5c4h ; c7 46 0c c4 9513424 mov word [bp+00ch], 09614h ; c7 46 0c 14 96 13394 13425 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 13395 13426 mov ax, strict word 0fff0h ; b8 f0 ff 13396 13427 mov word [bp+006h], ax ; 89 46 06 13397 13428 mov word [bp+004h], ax ; 89 46 04 13398 jmp near 090 64h ; e9 9f 0013429 jmp near 090b4h ; e9 9f 00 13399 13430 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 13400 13431 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 13409 13440 mov si, ax ; 89 c6 13410 13441 sal esi, 010h ; 66 c1 e6 10 13411 jmp near 090 64h ; e9 74 0013442 jmp near 090b4h ; e9 74 00 13412 13443 sti ; fb 13413 13444 hlt ; f4 13414 jmp near 090 64h ; e9 6f 0013445 jmp near 090b4h ; e9 6f 00 13415 13446 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 13416 je short 090 1ah ; 74 1f13447 je short 0906ah ; 74 1f 13417 13448 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 13418 je short 090 12h ; 74 1113449 je short 09062h ; 74 11 13419 13450 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 13420 jne short 090 22h ; 75 1b13451 jne short 09072h ; 75 1b 13421 13452 mov dx, 08900h ; ba 00 89 13422 13453 mov ax, 00d12h ; b8 12 0d 13423 call 08f 3ch ; e8 2c ff13424 jmp short 090 64h ; eb 5213454 call 08f8ch ; e8 2c ff 13455 jmp short 090b4h ; eb 52 13425 13456 mov dx, 08900h ; ba 00 89 13426 13457 mov ax, 00d1ah ; b8 1a 0d 13427 jmp short 090 0dh ; eb f313458 jmp short 0905dh ; eb f3 13428 13459 mov dx, 08900h ; ba 00 89 13429 13460 mov ax, 00d22h ; b8 22 0d 13430 jmp short 090 0dh ; eb eb13461 jmp short 0905dh ; eb eb 13431 13462 or ah, 00ah ; 80 cc 0a 13432 13463 mov word [bp+012h], ax ; 89 46 12 13433 13464 mov word [bp+018h], dx ; 89 56 18 13434 jmp short 090 64h ; eb 3713465 jmp short 090b4h ; eb 37 13435 13466 mov word [bp+012h], 00102h ; c7 46 12 02 01 13436 jmp short 090 64h ; eb 3013467 jmp short 090b4h ; eb 30 13437 13468 or ah, 080h ; 80 cc 80 13438 jmp short 090 25h ; eb ec13469 jmp short 09075h ; eb ec 13439 13470 mov bx, 00da2h ; bb a2 0d 13440 13471 mov cx, ds ; 8c d9 13441 13472 mov ax, strict word 00004h ; b8 04 00 13442 call 01931h ; e8 ed 8813473 call 01931h ; e8 9d 88 13443 13474 push word [bp+00ch] ; ff 76 0c 13444 13475 push word [bp+012h] ; ff 76 12 13445 13476 push 00d2bh ; 68 2b 0d 13446 13477 push strict byte 00004h ; 6a 04 13447 call 01972h ; e8 20 8913478 call 01972h ; e8 d0 88 13448 13479 add sp, strict byte 00008h ; 83 c4 08 13449 13480 mov ax, word [bp+012h] ; 8b 46 12 … … 13456 13487 pop bp ; 5d 13457 13488 retn ; c3 13458 pci16_select_reg_: ; 0xf90 6a LB 0x2413489 pci16_select_reg_: ; 0xf90ba LB 0x24 13459 13490 push bp ; 55 13460 13491 mov bp, sp ; 89 e5 … … 13473 13504 pop bp ; 5d 13474 13505 retn ; c3 13475 pci16_find_device_: ; 0xf90 8e LB 0xf713506 pci16_find_device_: ; 0xf90de LB 0xf7 13476 13507 push bp ; 55 13477 13508 mov bp, sp ; 89 e5 … … 13487 13518 mov byte [bp-008h], 000h ; c6 46 f8 00 13488 13519 test bl, 007h ; f6 c3 07 13489 jne short 09 0d6h ; 75 2d13520 jne short 09126h ; 75 2d 13490 13521 mov dx, strict word 0000eh ; ba 0e 00 13491 13522 mov ax, bx ; 89 d8 13492 call 090 6ah ; e8 b9 ff13523 call 090bah ; e8 b9 ff 13493 13524 mov dx, 00cfeh ; ba fe 0c 13494 13525 in AL, DX ; ec … … 13497 13528 mov byte [bp-006h], al ; 88 46 fa 13498 13529 cmp AL, strict byte 0ffh ; 3c ff 13499 jne short 09 0c4h ; 75 0613530 jne short 09114h ; 75 06 13500 13531 add bx, strict byte 00008h ; 83 c3 08 13501 jmp near 091 57h ; e9 93 0013532 jmp near 091a7h ; e9 93 00 13502 13533 test byte [bp-006h], 080h ; f6 46 fa 80 13503 je short 09 0d1h ; 74 0713534 je short 09121h ; 74 07 13504 13535 mov word [bp-00ah], strict word 00001h ; c7 46 f6 01 00 13505 jmp short 09 0d6h ; eb 0513536 jmp short 09126h ; eb 05 13506 13537 mov word [bp-00ah], strict word 00008h ; c7 46 f6 08 00 13507 13538 mov al, byte [bp-006h] ; 8a 46 fa 13508 13539 and AL, strict byte 007h ; 24 07 13509 13540 cmp AL, strict byte 001h ; 3c 01 13510 jne short 09 0feh ; 75 1f13541 jne short 0914eh ; 75 1f 13511 13542 mov ax, bx ; 89 d8 13512 13543 shr ax, 008h ; c1 e8 08 13513 13544 test ax, ax ; 85 c0 13514 jne short 09 0feh ; 75 1613545 jne short 0914eh ; 75 16 13515 13546 mov dx, strict word 0001ah ; ba 1a 00 13516 13547 mov ax, bx ; 89 d8 13517 call 090 6ah ; e8 7a ff13548 call 090bah ; e8 7a ff 13518 13549 mov dx, 00cfeh ; ba fe 0c 13519 13550 in AL, DX ; ec … … 13521 13552 ; sub ah, ah ; 2a e4 13522 13553 cmp al, byte [bp-008h] ; 3a 46 f8 13523 jbe short 09 0feh ; 76 0313554 jbe short 0914eh ; 76 03 13524 13555 mov byte [bp-008h], al ; 88 46 f8 13525 13556 test di, di ; 85 ff 13526 je short 091 07h ; 74 0513557 je short 09157h ; 74 05 13527 13558 mov dx, strict word 00008h ; ba 08 00 13528 jmp short 091 09h ; eb 0213559 jmp short 09159h ; eb 02 13529 13560 xor dx, dx ; 31 d2 13530 13561 mov ax, bx ; 89 d8 13531 call 090 6ah ; e8 5c ff13562 call 090bah ; e8 5c ff 13532 13563 mov dx, 00cfch ; ba fc 0c 13533 13564 in eax, DX ; 66 ed … … 13540 13571 mov word [bp-010h], strict word 00000h ; c7 46 f0 00 00 13541 13572 test di, di ; 85 ff 13542 je short 091 38h ; 74 0f13573 je short 09188h ; 74 0f 13543 13574 mov cx, strict word 00008h ; b9 08 00 13544 13575 shr dx, 1 ; d1 ea 13545 13576 rcr ax, 1 ; d1 d8 13546 loop 091 2ch ; e2 fa13577 loop 0917ch ; e2 fa 13547 13578 mov word [bp-00eh], ax ; 89 46 f2 13548 13579 mov word [bp-00ch], dx ; 89 56 f4 13549 13580 mov ax, word [bp-00ch] ; 8b 46 f4 13550 13581 cmp ax, word [bp-014h] ; 3b 46 ec 13551 jne short 091 48h ; 75 0813582 jne short 09198h ; 75 08 13552 13583 mov ax, word [bp-00eh] ; 8b 46 f2 13553 13584 cmp ax, word [bp-012h] ; 3b 46 ee 13554 je short 091 4eh ; 74 0613585 je short 0919eh ; 74 06 13555 13586 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 13556 je short 091 54h ; 74 0613587 je short 091a4h ; 74 06 13557 13588 dec si ; 4e 13558 13589 cmp si, strict byte 0ffffh ; 83 fe ff 13559 je short 091 66h ; 74 1213590 je short 091b6h ; 74 12 13560 13591 add bx, word [bp-00ah] ; 03 5e f6 13561 13592 mov dx, bx ; 89 da … … 13563 13594 movzx ax, byte [bp-008h] ; 0f b6 46 f8 13564 13595 cmp dx, ax ; 39 c2 13565 jbe near 090 a4h ; 0f 86 3e ff13596 jbe near 090f4h ; 0f 86 3e ff 13566 13597 cmp si, strict byte 0ffffh ; 83 fe ff 13567 jne short 091 6fh ; 75 0413598 jne short 091bfh ; 75 04 13568 13599 mov ax, bx ; 89 d8 13569 jmp short 091 72h ; eb 0313600 jmp short 091c2h ; eb 03 13570 13601 mov ax, strict word 0ffffh ; b8 ff ff 13571 13602 lea sp, [bp-004h] ; 8d 66 fc … … 13574 13605 pop bp ; 5d 13575 13606 retn ; c3 13576 db 067h, 092h, 081h, 092h, 094h, 092h, 0a9h, 092h, 0bch, 092h, 0cfh, 092h 13577 _pci16_function: ; 0xf9185 LB 0x1d7 13607 mov BH, strict byte 092h ; b7 92 13608 rcl word [bp+si-06d1ch], 1 ; d1 92 e4 92 13609 stc ; f9 13610 xchg dx, ax ; 92 13611 or AL, strict byte 093h ; 0c 93 13612 pop DS ; 1f 13613 xchg bx, ax ; 93 13614 _pci16_function: ; 0xf91d5 LB 0x1d7 13578 13615 push bp ; 55 13579 13616 mov bp, sp ; 89 e5 … … 13589 13626 xor ah, ah ; 30 e4 13590 13627 cmp bx, strict byte 00003h ; 83 fb 03 13591 jc short 09 1beh ; 72 1a13592 jbe short 092 16h ; 76 7013628 jc short 0920eh ; 72 1a 13629 jbe short 09266h ; 76 70 13593 13630 cmp bx, strict byte 0000eh ; 83 fb 0e 13594 je near 09 2e3h ; 0f 84 36 0113631 je near 09333h ; 0f 84 36 01 13595 13632 cmp bx, strict byte 00008h ; 83 fb 08 13596 jc near 093 28h ; 0f 82 74 0113633 jc near 09378h ; 0f 82 74 01 13597 13634 cmp bx, strict byte 0000dh ; 83 fb 0d 13598 jbe near 092 3bh ; 0f 86 80 0013599 jmp near 093 28h ; e9 6a 0113635 jbe near 0928bh ; 0f 86 80 00 13636 jmp near 09378h ; e9 6a 01 13600 13637 cmp bx, strict byte 00002h ; 83 fb 02 13601 je short 09 1e6h ; 74 2313638 je short 09236h ; 74 23 13602 13639 cmp bx, strict byte 00001h ; 83 fb 01 13603 jne near 093 28h ; 0f 85 5e 0113640 jne near 09378h ; 0f 85 5e 01 13604 13641 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 13605 13642 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 13607 13644 mov word [bp+018h], 04350h ; c7 46 18 50 43 13608 13645 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 13609 jmp near 093 55h ; e9 6f 0113646 jmp near 093a5h ; e9 6f 01 13610 13647 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 13611 jne short 09 1f2h ; 75 0613648 jne short 09242h ; 75 06 13612 13649 or ah, 083h ; 80 cc 83 13613 jmp near 093 4eh ; e9 5c 0113650 jmp near 0939eh ; e9 5c 01 13614 13651 mov bx, word [bp+008h] ; 8b 5e 08 13615 13652 mov dx, word [bp+01ch] ; 8b 56 1c 13616 13653 mov ax, word [bp+018h] ; 8b 46 18 13617 13654 xor cx, cx ; 31 c9 13618 call 090 8eh ; e8 8e fe13655 call 090deh ; e8 8e fe 13619 13656 cmp ax, strict word 0ffffh ; 3d ff ff 13620 jne short 092 10h ; 75 0b13657 jne short 09260h ; 75 0b 13621 13658 mov ax, word [bp+020h] ; 8b 46 20 13622 13659 xor ah, ah ; 30 e4 13623 13660 or ah, 086h ; 80 cc 86 13624 jmp near 093 4eh ; e9 3e 0113661 jmp near 0939eh ; e9 3e 01 13625 13662 mov word [bp+014h], ax ; 89 46 14 13626 jmp near 093 55h ; e9 3f 0113663 jmp near 093a5h ; e9 3f 01 13627 13664 mov bx, word [bp+008h] ; 8b 5e 08 13628 13665 mov ax, word [bp+01ch] ; 8b 46 1c 13629 13666 mov dx, word [bp+01eh] ; 8b 56 1e 13630 13667 mov cx, strict word 00001h ; b9 01 00 13631 call 090 8eh ; e8 69 fe13668 call 090deh ; e8 69 fe 13632 13669 cmp ax, strict word 0ffffh ; 3d ff ff 13633 jne short 092 35h ; 75 0b13670 jne short 09285h ; 75 0b 13634 13671 mov ax, word [bp+020h] ; 8b 46 20 13635 13672 xor ah, ah ; 30 e4 13636 13673 or ah, 086h ; 80 cc 86 13637 jmp near 093 4eh ; e9 19 0113674 jmp near 0939eh ; e9 19 01 13638 13675 mov word [bp+014h], ax ; 89 46 14 13639 jmp near 093 55h ; e9 1a 0113676 jmp near 093a5h ; e9 1a 01 13640 13677 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 13641 jc short 092 48h ; 72 0613678 jc short 09298h ; 72 06 13642 13679 or ah, 087h ; 80 cc 87 13643 jmp near 093 4eh ; e9 06 0113680 jmp near 0939eh ; e9 06 01 13644 13681 mov dx, word [bp+004h] ; 8b 56 04 13645 13682 mov ax, word [bp+014h] ; 8b 46 14 13646 call 090 6ah ; e8 19 fe13683 call 090bah ; e8 19 fe 13647 13684 mov bx, word [bp+020h] ; 8b 5e 20 13648 13685 xor bh, bh ; 30 ff 13649 13686 sub bx, strict byte 00008h ; 83 eb 08 13650 13687 cmp bx, strict byte 00005h ; 83 fb 05 13651 jnbe near 093 55h ; 0f 87 f5 0013688 jnbe near 093a5h ; 0f 87 f5 00 13652 13689 add bx, bx ; 01 db 13653 jmp word [cs:bx-06e 87h] ; 2e ff a7 79 9113690 jmp word [cs:bx-06e37h] ; 2e ff a7 c9 91 13654 13691 mov bx, word [bp+01ch] ; 8b 5e 1c 13655 13692 xor bl, bl ; 30 db … … 13662 13699 or bx, ax ; 09 c3 13663 13700 mov word [bp+01ch], bx ; 89 5e 1c 13664 jmp near 093 55h ; e9 d4 0013701 jmp near 093a5h ; e9 d4 00 13665 13702 mov dx, word [bp+004h] ; 8b 56 04 13666 13703 xor dh, dh ; 30 f6 … … 13669 13706 in ax, DX ; ed 13670 13707 mov word [bp+01ch], ax ; 89 46 1c 13671 jmp near 093 55h ; e9 c1 0013708 jmp near 093a5h ; e9 c1 00 13672 13709 mov dx, 00cfch ; ba fc 0c 13673 13710 in eax, DX ; 66 ed … … 13678 13715 mov word [bp+01ch], ax ; 89 46 1c 13679 13716 mov word [bp+01eh], dx ; 89 56 1e 13680 jmp near 093 55h ; e9 ac 0013717 jmp near 093a5h ; e9 ac 00 13681 13718 mov ax, word [bp+01ch] ; 8b 46 1c 13682 13719 mov dx, word [bp+004h] ; 8b 56 04 … … 13685 13722 add dx, 00cfch ; 81 c2 fc 0c 13686 13723 out DX, AL ; ee 13687 jmp near 093 55h ; e9 99 0013724 jmp near 093a5h ; e9 99 00 13688 13725 mov ax, word [bp+01ch] ; 8b 46 1c 13689 13726 mov dx, word [bp+004h] ; 8b 56 04 … … 13692 13729 add dx, 00cfch ; 81 c2 fc 0c 13693 13730 out DX, ax ; ef 13694 jmp near 093 55h ; e9 86 0013731 jmp near 093a5h ; e9 86 00 13695 13732 mov ax, word [bp+01ch] ; 8b 46 1c 13696 13733 mov cx, word [bp+01eh] ; 8b 4e 1e … … 13701 13738 ; mov ax, cx ; 8b c1 13702 13739 out DX, eax ; 66 ef 13703 jmp short 093 55h ; eb 7213740 jmp short 093a5h ; eb 72 13704 13741 mov bx, word [bp+004h] ; 8b 5e 04 13705 13742 mov es, [bp+026h] ; 8e 46 26 … … 13708 13745 mov cx, word [0f4a0h] ; 8b 0e a0 f4 13709 13746 cmp cx, word [es:bx] ; 26 3b 0f 13710 jbe short 093 09h ; 76 1113747 jbe short 09359h ; 76 11 13711 13748 mov ax, word [bp+020h] ; 8b 46 20 13712 13749 xor ah, ah ; 30 e4 … … 13714 13751 mov word [bp+020h], ax ; 89 46 20 13715 13752 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 13716 jmp short 093 1dh ; eb 1413753 jmp short 0936dh ; eb 14 13717 13754 les di, [es:bx+002h] ; 26 c4 7f 02 13718 13755 mov si, 0f2c0h ; be c0 f2 … … 13726 13763 les bx, [bp-008h] ; c4 5e f8 13727 13764 mov word [es:bx], ax ; 26 89 07 13728 jmp short 093 55h ; eb 2d13765 jmp short 093a5h ; eb 2d 13729 13766 mov bx, 00da2h ; bb a2 0d 13730 13767 mov cx, ds ; 8c d9 13731 13768 mov ax, strict word 00004h ; b8 04 00 13732 call 01931h ; e8 fe 8513769 call 01931h ; e8 ae 85 13733 13770 mov ax, word [bp+014h] ; 8b 46 14 13734 13771 push ax ; 50 … … 13737 13774 push 00d5eh ; 68 5e 0d 13738 13775 push strict byte 00004h ; 6a 04 13739 call 01972h ; e8 2f 8613776 call 01972h ; e8 df 85 13740 13777 add sp, strict byte 00008h ; 83 c4 08 13741 13778 mov ax, word [bp+020h] ; 8b 46 20 … … 13749 13786 pop bp ; 5d 13750 13787 retn ; c3 13751 pci_find_classcode_: ; 0xf93 5c LB 0x2b13788 pci_find_classcode_: ; 0xf93ac LB 0x2b 13752 13789 push bp ; 55 13753 13790 mov bp, sp ; 89 e5 … … 13764 13801 int 01ah ; cd 1a 13765 13802 cmp ah, 000h ; 80 fc 00 13766 je near 093 7dh ; 0f 84 03 0013803 je near 093cdh ; 0f 84 03 00 13767 13804 mov bx, strict word 0ffffh ; bb ff ff 13768 13805 mov ax, bx ; 89 d8 … … 13773 13810 pop bp ; 5d 13774 13811 retn ; c3 13775 pci_read_config_byte_: ; 0xf93 87 LB 0x2413812 pci_read_config_byte_: ; 0xf93d7 LB 0x24 13776 13813 push bp ; 55 13777 13814 mov bp, sp ; 89 e5 … … 13792 13829 pop bp ; 5d 13793 13830 retn ; c3 13794 pci_read_config_word_: ; 0xf93 ab LB 0x2213831 pci_read_config_word_: ; 0xf93fb LB 0x22 13795 13832 push bp ; 55 13796 13833 mov bp, sp ; 89 e5 … … 13811 13848 pop bp ; 5d 13812 13849 retn ; c3 13813 pci_read_config_dword_: ; 0xf9 3cd LB 0x2713850 pci_read_config_dword_: ; 0xf941d LB 0x27 13814 13851 push bp ; 55 13815 13852 mov bp, sp ; 89 e5 … … 13832 13869 pop bp ; 5d 13833 13870 retn ; c3 13834 vds_is_present_: ; 0xf9 3f4 LB 0x1d13871 vds_is_present_: ; 0xf9444 LB 0x1d 13835 13872 push bx ; 53 13836 13873 push bp ; 55 … … 13840 13877 mov es, ax ; 8e c0 13841 13878 test byte [es:bx], 020h ; 26 f6 07 20 13842 je short 094 0ch ; 74 0613879 je short 0945ch ; 74 06 13843 13880 mov ax, strict word 00001h ; b8 01 00 13844 13881 pop bp ; 5d … … 13849 13886 pop bx ; 5b 13850 13887 retn ; c3 13851 vds_real_to_lin_: ; 0xf94 11 LB 0x1e13888 vds_real_to_lin_: ; 0xf9461 LB 0x1e 13852 13889 push bx ; 53 13853 13890 push cx ; 51 … … 13860 13897 sal ax, 1 ; d1 e0 13861 13898 rcl dx, 1 ; d1 d2 13862 loop 094 1fh ; e2 fa13899 loop 0946fh ; e2 fa 13863 13900 xor cx, cx ; 31 c9 13864 13901 add ax, bx ; 01 d8 … … 13868 13905 pop bx ; 5b 13869 13906 retn ; c3 13870 vds_build_sg_list_: ; 0xf94 2f LB 0x7913907 vds_build_sg_list_: ; 0xf947f LB 0x79 13871 13908 push bp ; 55 13872 13909 mov bp, sp ; 89 e5 … … 13882 13919 mov bx, word [bp+006h] ; 8b 5e 06 13883 13920 mov word [es:di+002h], bx ; 26 89 5d 02 13884 call 094 11h ; e8 c3 ff13921 call 09461h ; e8 c3 ff 13885 13922 mov es, si ; 8e c6 13886 13923 mov word [es:di+004h], ax ; 26 89 45 04 13887 13924 mov word [es:di+006h], dx ; 26 89 55 06 13888 13925 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 13889 call 09 3f4h ; e8 93 ff13926 call 09444h ; e8 93 ff 13890 13927 test ax, ax ; 85 c0 13891 je short 094 78h ; 74 1313928 je short 094c8h ; 74 13 13892 13929 mov es, si ; 8e c6 13893 13930 mov ax, 08105h ; b8 05 81 13894 13931 mov dx, strict word 00000h ; ba 00 00 13895 13932 int 04bh ; cd 4b 13896 jc near 094 75h ; 0f 82 02 0013933 jc near 094c5h ; 0f 82 02 00 13897 13934 db 032h, 0c0h 13898 13935 ; xor al, al ; 32 c0 13899 13936 cbw ; 98 13900 jmp short 094 9fh ; eb 2713937 jmp short 094efh ; eb 27 13901 13938 mov es, si ; 8e c6 13902 13939 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 13915 13952 pop bp ; 5d 13916 13953 retn 00004h ; c2 04 00 13917 vds_free_sg_list_: ; 0xf94 a8 LB 0x3813954 vds_free_sg_list_: ; 0xf94f8 LB 0x38 13918 13955 push bp ; 55 13919 13956 mov bp, sp ; 89 e5 … … 13921 13958 push di ; 57 13922 13959 mov bx, ax ; 89 c3 13923 call 09 3f4h ; e8 42 ff13960 call 09444h ; e8 42 ff 13924 13961 test ax, ax ; 85 c0 13925 je short 09 4c9h ; 74 1313962 je short 09519h ; 74 13 13926 13963 mov di, bx ; 89 df 13927 13964 mov es, dx ; 8e c2 … … 13929 13966 mov dx, strict word 00000h ; ba 00 00 13930 13967 int 04bh ; cd 4b 13931 jc near 09 4c8h ; 0f 82 02 0013968 jc near 09518h ; 0f 82 02 00 13932 13969 db 032h, 0c0h 13933 13970 ; xor al, al ; 32 c0 … … 13941 13978 retn ; c3 13942 13979 times 0x8 db 0 13943 __U4D: ; 0xf9 4e0 LB 0x3913980 __U4D: ; 0xf9530 LB 0x39 13944 13981 pushfw ; 9c 13945 13982 push eax ; 66 50 … … 13971 14008 popfw ; 9d 13972 14009 retn ; c3 13973 __U4M: ; 0xf95 19 LB 0x3114010 __U4M: ; 0xf9569 LB 0x31 13974 14011 pushfw ; 9c 13975 14012 push eax ; 66 50 … … 13996 14033 popfw ; 9d 13997 14034 retn ; c3 13998 _fmemset_: ; 0xf95 4a LB 0xd14035 _fmemset_: ; 0xf959a LB 0xd 13999 14036 push di ; 57 14000 14037 mov es, dx ; 8e c2 … … 14006 14043 pop di ; 5f 14007 14044 retn ; c3 14008 _fmemcpy_: ; 0xf95 57 LB 0x3314045 _fmemcpy_: ; 0xf95a7 LB 0x33 14009 14046 push bp ; 55 14010 14047 db 08bh, 0ech … … 14026 14063 leave ; c9 14027 14064 retn ; c3 14028 add byte [bx+si-05d6bh], ah ; 00 a0 95 a214065 add al, dh ; 00 f0 14029 14066 xchg bp, ax ; 95 14030 cmpsb ; a6 14067 repne xchg bp, ax ; f2 95 14068 not byte [di-06a0ah] ; f6 95 f6 95 14069 not byte [di-06a08h] ; f6 95 f8 95 14070 clc ; f8 14031 14071 xchg bp, ax ; 95 14032 c mpsb ; a614072 cli ; fa 14033 14073 xchg bp, ax ; 95 14034 cmpsb ; a614074 db 0feh 14035 14075 xchg bp, ax ; 95 14036 test AL, strict byte 095h ; a8 95 14037 test AL, strict byte 095h ; a8 95 14038 stosb ; aa 14076 db 0feh 14039 14077 xchg bp, ax ; 95 14040 scasb ; ae 14041 xchg bp, ax ; 95 14042 scasb ; ae 14043 xchg bp, ax ; 95 14044 mov AL, strict byte 095h ; b0 95 14045 mov CH, strict byte 095h ; b5 95 14046 mov BH, strict byte 095h ; b7 95 14047 apm_worker: ; 0xf958a LB 0x3a 14078 add byte [bp-069fbh], dl ; 00 96 05 96 14079 pop ES ; 07 14080 xchg si, ax ; 96 14081 apm_worker: ; 0xf95da LB 0x3a 14048 14082 sti ; fb 14049 14083 push ax ; 50 … … 14057 14091 pop ax ; 58 14058 14092 mov AH, strict byte 053h ; b4 53 14059 jnc short 09 5c0h ; 73 2514060 jmp word [cs:bp-06a 90h] ; 2e ff a6 70 9514061 jmp short 09 5beh ; eb 1c14093 jnc short 09610h ; 73 25 14094 jmp word [cs:bp-06a40h] ; 2e ff a6 c0 95 14095 jmp short 0960eh ; eb 1c 14062 14096 sti ; fb 14063 14097 hlt ; f4 14064 jmp short 09 5beh ; eb 1814065 jmp short 09 5beh ; eb 1614066 jmp short 09 5c0h ; eb 1614098 jmp short 0960eh ; eb 18 14099 jmp short 0960eh ; eb 16 14100 jmp short 09610h ; eb 16 14067 14101 mov AH, strict byte 080h ; b4 80 14068 jmp short 09 5c2h ; eb 1414069 jmp short 09 5c0h ; eb 1014102 jmp short 09612h ; eb 14 14103 jmp short 09610h ; eb 10 14070 14104 mov ax, 00102h ; b8 02 01 14071 jmp short 09 5beh ; eb 0914072 jmp short 09 5beh ; eb 0714105 jmp short 0960eh ; eb 09 14106 jmp short 0960eh ; eb 07 14073 14107 mov BL, strict byte 000h ; b3 00 14074 14108 mov cx, strict word 00000h ; b9 00 00 14075 jmp short 09 5beh ; eb 0014109 jmp short 0960eh ; eb 00 14076 14110 clc ; f8 14077 14111 retn ; c3 … … 14079 14113 stc ; f9 14080 14114 retn ; c3 14081 apm_pm16_entry: ; 0xf9 5c4 LB 0x1114115 apm_pm16_entry: ; 0xf9614 LB 0x11 14082 14116 mov AH, strict byte 002h ; b4 02 14083 14117 push DS ; 1e … … 14087 14121 add bp, strict byte 00008h ; 83 c5 08 14088 14122 mov ds, bp ; 8e dd 14089 call 095 8ah ; e8 b8 ff14123 call 095dah ; e8 b8 ff 14090 14124 pop bp ; 5d 14091 14125 pop DS ; 1f 14092 14126 retf ; cb 14093 14127 14094 ; Padding 0x4 42b bytes at 0xf95d514095 times 17 451 db 014128 ; Padding 0x43db bytes at 0xf9625 14129 times 17371 db 0 14096 14130 14097 14131 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 14140 14174 add bp, strict byte 00008h ; 83 c5 08 14141 14175 push ebp ; 66 55 14142 mov bp, 09 5c6h ; bd c6 9514176 mov bp, 09616h ; bd 16 96 14143 14177 add byte [bx+si], al ; 00 00 14144 14178 push ebp ; 66 55 … … 14862 14896 call 01badh ; e8 71 38 14863 14897 call 01fa7h ; e8 68 3c 14864 call 08e 3eh ; e8 fc aa14898 call 08e8eh ; e8 4c ab 14865 14899 call 07ee5h ; e8 a0 9b 14866 14900 call 0ed2fh ; e8 e7 09 … … 15860 15894 popfw ; 9d 15861 15895 jmp short 0f895h ; eb 13 15862 call 08f 75h ; e8 f0 9615896 call 08fc5h ; e8 40 97 15863 15897 jmp short 0f87ch ; eb f5 15864 15898 int15_handler_mouse: ; 0xff887 LB 0x5 … … 15989 16023 db 018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h 15990 16024 db 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h 15991 db 080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 0 08h, 093h, 066h16025 db 080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 058h, 093h, 066h 15992 16026 db 061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 007h, 06ch, 061h, 01fh, 007h 15993 16027 db 0cfh … … 16098 16132 cpu_reset: ; 0xffff0 LB 0x10 16099 16133 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 16100 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 e8h16134 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 018h -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.md5sum
r51062 r51255 1 6a940bcf6a5d4747e33d98d6028b3cec*VBoxPcBios.rom1 55ca2fd1a1b0f2f630e123a300b99aa4 *VBoxPcBios.rom
Note:
See TracChangeset
for help on using the changeset viewer.

