Changeset 42053 in vbox for trunk/src/VBox
- Timestamp:
- Jul 9, 2012 12:43:31 PM (12 years ago)
- Location:
- trunk/src/VBox/Devices/PC/BIOS-new
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/BIOS-new/VBoxBiosAlternative.asm
r41512 r42053 1 ; $Id$ 2 ;; @file 3 ; Auto Generated source file. Do not edit. 4 ; 5 6 ; 7 ; Source file: bios.c 8 ; 9 ; 10 ; Copyright (C) 2006-2011 Oracle Corporation 11 ; 12 ; This file is part of VirtualBox Open Source Edition (OSE), as 13 ; available from http://www.virtualbox.org. This file is free software; 14 ; you can redistribute it and/or modify it under the terms of the GNU 15 ; General Public License (GPL) as published by the Free Software 16 ; Foundation, in version 2 as it comes in the "COPYING" file of the 17 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 18 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 19 ; -------------------------------------------------------------------- 20 ; 21 ; This code is based on: 22 ; 23 ; ROM BIOS for use with Bochs/Plex86/QEMU emulation environment 24 ; 25 ; Copyright (C) 2002 MandrakeSoft S.A. 26 ; 27 ; MandrakeSoft S.A. 28 ; 43, rue d'Aboukir 29 ; 75002 Paris - France 30 ; http://www.linux-mandrake.com/ 31 ; http://www.mandrakesoft.com/ 32 ; 33 ; This library is free software; you can redistribute it and/or 34 ; modify it under the terms of the GNU Lesser General Public 35 ; License as published by the Free Software Foundation; either 36 ; version 2 of the License, or (at your option) any later version. 37 ; 38 ; This library is distributed in the hope that it will be useful, 39 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 40 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 41 ; Lesser General Public License for more details. 42 ; 43 ; You should have received a copy of the GNU Lesser General Public 44 ; License along with this library; if not, write to the Free Software 45 ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 46 ; 47 48 ; 49 ; Source file: print.c 50 ; 51 ; 52 ; Copyright (C) 2006-2011 Oracle Corporation 53 ; 54 ; This file is part of VirtualBox Open Source Edition (OSE), as 55 ; available from http://www.virtualbox.org. This file is free software; 56 ; you can redistribute it and/or modify it under the terms of the GNU 57 ; General Public License (GPL) as published by the Free Software 58 ; Foundation, in version 2 as it comes in the "COPYING" file of the 59 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 60 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 61 ; -------------------------------------------------------------------- 62 ; 63 ; This code is based on: 64 ; 65 ; ROM BIOS for use with Bochs/Plex86/QEMU emulation environment 66 ; 67 ; Copyright (C) 2002 MandrakeSoft S.A. 68 ; 69 ; MandrakeSoft S.A. 70 ; 43, rue d'Aboukir 71 ; 75002 Paris - France 72 ; http://www.linux-mandrake.com/ 73 ; http://www.mandrakesoft.com/ 74 ; 75 ; This library is free software; you can redistribute it and/or 76 ; modify it under the terms of the GNU Lesser General Public 77 ; License as published by the Free Software Foundation; either 78 ; version 2 of the License, or (at your option) any later version. 79 ; 80 ; This library is distributed in the hope that it will be useful, 81 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 82 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 83 ; Lesser General Public License for more details. 84 ; 85 ; You should have received a copy of the GNU Lesser General Public 86 ; License along with this library; if not, write to the Free Software 87 ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 88 ; 89 90 ; 91 ; Source file: ata.c 92 ; 93 ; 94 ; Copyright (C) 2006-2011 Oracle Corporation 95 ; 96 ; This file is part of VirtualBox Open Source Edition (OSE), as 97 ; available from http://www.virtualbox.org. This file is free software; 98 ; you can redistribute it and/or modify it under the terms of the GNU 99 ; General Public License (GPL) as published by the Free Software 100 ; Foundation, in version 2 as it comes in the "COPYING" file of the 101 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 102 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 103 ; -------------------------------------------------------------------- 104 ; 105 ; This code is based on: 106 ; 107 ; ROM BIOS for use with Bochs/Plex86/QEMU emulation environment 108 ; 109 ; Copyright (C) 2002 MandrakeSoft S.A. 110 ; 111 ; MandrakeSoft S.A. 112 ; 43, rue d'Aboukir 113 ; 75002 Paris - France 114 ; http://www.linux-mandrake.com/ 115 ; http://www.mandrakesoft.com/ 116 ; 117 ; This library is free software; you can redistribute it and/or 118 ; modify it under the terms of the GNU Lesser General Public 119 ; License as published by the Free Software Foundation; either 120 ; version 2 of the License, or (at your option) any later version. 121 ; 122 ; This library is distributed in the hope that it will be useful, 123 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 124 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 125 ; Lesser General Public License for more details. 126 ; 127 ; You should have received a copy of the GNU Lesser General Public 128 ; License along with this library; if not, write to the Free Software 129 ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 130 ; 131 132 ; 133 ; Source file: floppy.c 134 ; 135 ; 136 ; Copyright (C) 2006-2011 Oracle Corporation 137 ; 138 ; This file is part of VirtualBox Open Source Edition (OSE), as 139 ; available from http://www.virtualbox.org. This file is free software; 140 ; you can redistribute it and/or modify it under the terms of the GNU 141 ; General Public License (GPL) as published by the Free Software 142 ; Foundation, in version 2 as it comes in the "COPYING" file of the 143 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 144 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 145 ; -------------------------------------------------------------------- 146 ; 147 ; This code is based on: 148 ; 149 ; ROM BIOS for use with Bochs/Plex86/QEMU emulation environment 150 ; 151 ; Copyright (C) 2002 MandrakeSoft S.A. 152 ; 153 ; MandrakeSoft S.A. 154 ; 43, rue d'Aboukir 155 ; 75002 Paris - France 156 ; http://www.linux-mandrake.com/ 157 ; http://www.mandrakesoft.com/ 158 ; 159 ; This library is free software; you can redistribute it and/or 160 ; modify it under the terms of the GNU Lesser General Public 161 ; License as published by the Free Software Foundation; either 162 ; version 2 of the License, or (at your option) any later version. 163 ; 164 ; This library is distributed in the hope that it will be useful, 165 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 166 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 167 ; Lesser General Public License for more details. 168 ; 169 ; You should have received a copy of the GNU Lesser General Public 170 ; License along with this library; if not, write to the Free Software 171 ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 172 ; 173 174 ; 175 ; Source file: eltorito.c 176 ; 177 ; 178 ; Copyright (C) 2006-2011 Oracle Corporation 179 ; 180 ; This file is part of VirtualBox Open Source Edition (OSE), as 181 ; available from http://www.virtualbox.org. This file is free software; 182 ; you can redistribute it and/or modify it under the terms of the GNU 183 ; General Public License (GPL) as published by the Free Software 184 ; Foundation, in version 2 as it comes in the "COPYING" file of the 185 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 186 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 187 ; -------------------------------------------------------------------- 188 ; 189 ; This code is based on: 190 ; 191 ; ROM BIOS for use with Bochs/Plex86/QEMU emulation environment 192 ; 193 ; Copyright (C) 2002 MandrakeSoft S.A. 194 ; 195 ; MandrakeSoft S.A. 196 ; 43, rue d'Aboukir 197 ; 75002 Paris - France 198 ; http://www.linux-mandrake.com/ 199 ; http://www.mandrakesoft.com/ 200 ; 201 ; This library is free software; you can redistribute it and/or 202 ; modify it under the terms of the GNU Lesser General Public 203 ; License as published by the Free Software Foundation; either 204 ; version 2 of the License, or (at your option) any later version. 205 ; 206 ; This library is distributed in the hope that it will be useful, 207 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 208 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 209 ; Lesser General Public License for more details. 210 ; 211 ; You should have received a copy of the GNU Lesser General Public 212 ; License along with this library; if not, write to the Free Software 213 ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 214 ; 215 216 ; 217 ; Source file: boot.c 218 ; 219 ; 220 ; Copyright (C) 2006-2011 Oracle Corporation 221 ; 222 ; This file is part of VirtualBox Open Source Edition (OSE), as 223 ; available from http://www.virtualbox.org. This file is free software; 224 ; you can redistribute it and/or modify it under the terms of the GNU 225 ; General Public License (GPL) as published by the Free Software 226 ; Foundation, in version 2 as it comes in the "COPYING" file of the 227 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 228 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 229 ; -------------------------------------------------------------------- 230 ; 231 ; This code is based on: 232 ; 233 ; ROM BIOS for use with Bochs/Plex86/QEMU emulation environment 234 ; 235 ; Copyright (C) 2002 MandrakeSoft S.A. 236 ; 237 ; MandrakeSoft S.A. 238 ; 43, rue d'Aboukir 239 ; 75002 Paris - France 240 ; http://www.linux-mandrake.com/ 241 ; http://www.mandrakesoft.com/ 242 ; 243 ; This library is free software; you can redistribute it and/or 244 ; modify it under the terms of the GNU Lesser General Public 245 ; License as published by the Free Software Foundation; either 246 ; version 2 of the License, or (at your option) any later version. 247 ; 248 ; This library is distributed in the hope that it will be useful, 249 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 250 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 251 ; Lesser General Public License for more details. 252 ; 253 ; You should have received a copy of the GNU Lesser General Public 254 ; License along with this library; if not, write to the Free Software 255 ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 256 ; 257 258 ; 259 ; Source file: keyboard.c 260 ; 261 ; 262 ; Copyright (C) 2006-2011 Oracle Corporation 263 ; 264 ; This file is part of VirtualBox Open Source Edition (OSE), as 265 ; available from http://www.virtualbox.org. This file is free software; 266 ; you can redistribute it and/or modify it under the terms of the GNU 267 ; General Public License (GPL) as published by the Free Software 268 ; Foundation, in version 2 as it comes in the "COPYING" file of the 269 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 270 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 271 ; -------------------------------------------------------------------- 272 ; 273 ; This code is based on: 274 ; 275 ; ROM BIOS for use with Bochs/Plex86/QEMU emulation environment 276 ; 277 ; Copyright (C) 2002 MandrakeSoft S.A. 278 ; 279 ; MandrakeSoft S.A. 280 ; 43, rue d'Aboukir 281 ; 75002 Paris - France 282 ; http://www.linux-mandrake.com/ 283 ; http://www.mandrakesoft.com/ 284 ; 285 ; This library is free software; you can redistribute it and/or 286 ; modify it under the terms of the GNU Lesser General Public 287 ; License as published by the Free Software Foundation; either 288 ; version 2 of the License, or (at your option) any later version. 289 ; 290 ; This library is distributed in the hope that it will be useful, 291 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 292 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 293 ; Lesser General Public License for more details. 294 ; 295 ; You should have received a copy of the GNU Lesser General Public 296 ; License along with this library; if not, write to the Free Software 297 ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 298 ; 299 300 ; 301 ; Source file: disk.c 302 ; 303 ; 304 ; Copyright (C) 2006-2011 Oracle Corporation 305 ; 306 ; This file is part of VirtualBox Open Source Edition (OSE), as 307 ; available from http://www.virtualbox.org. This file is free software; 308 ; you can redistribute it and/or modify it under the terms of the GNU 309 ; General Public License (GPL) as published by the Free Software 310 ; Foundation, in version 2 as it comes in the "COPYING" file of the 311 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 312 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 313 ; -------------------------------------------------------------------- 314 ; 315 ; This code is based on: 316 ; 317 ; ROM BIOS for use with Bochs/Plex86/QEMU emulation environment 318 ; 319 ; Copyright (C) 2002 MandrakeSoft S.A. 320 ; 321 ; MandrakeSoft S.A. 322 ; 43, rue d'Aboukir 323 ; 75002 Paris - France 324 ; http://www.linux-mandrake.com/ 325 ; http://www.mandrakesoft.com/ 326 ; 327 ; This library is free software; you can redistribute it and/or 328 ; modify it under the terms of the GNU Lesser General Public 329 ; License as published by the Free Software Foundation; either 330 ; version 2 of the License, or (at your option) any later version. 331 ; 332 ; This library is distributed in the hope that it will be useful, 333 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 334 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 335 ; Lesser General Public License for more details. 336 ; 337 ; You should have received a copy of the GNU Lesser General Public 338 ; License along with this library; if not, write to the Free Software 339 ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 340 ; 341 342 ; 343 ; Source file: serial.c 344 ; 345 ; 346 ; Copyright (C) 2006-2011 Oracle Corporation 347 ; 348 ; This file is part of VirtualBox Open Source Edition (OSE), as 349 ; available from http://www.virtualbox.org. This file is free software; 350 ; you can redistribute it and/or modify it under the terms of the GNU 351 ; General Public License (GPL) as published by the Free Software 352 ; Foundation, in version 2 as it comes in the "COPYING" file of the 353 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 354 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 355 ; -------------------------------------------------------------------- 356 ; 357 ; This code is based on: 358 ; 359 ; ROM BIOS for use with Bochs/Plex86/QEMU emulation environment 360 ; 361 ; Copyright (C) 2002 MandrakeSoft S.A. 362 ; 363 ; MandrakeSoft S.A. 364 ; 43, rue d'Aboukir 365 ; 75002 Paris - France 366 ; http://www.linux-mandrake.com/ 367 ; http://www.mandrakesoft.com/ 368 ; 369 ; This library is free software; you can redistribute it and/or 370 ; modify it under the terms of the GNU Lesser General Public 371 ; License as published by the Free Software Foundation; either 372 ; version 2 of the License, or (at your option) any later version. 373 ; 374 ; This library is distributed in the hope that it will be useful, 375 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 376 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 377 ; Lesser General Public License for more details. 378 ; 379 ; You should have received a copy of the GNU Lesser General Public 380 ; License along with this library; if not, write to the Free Software 381 ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 382 ; 383 384 ; 385 ; Source file: system.c 386 ; 387 ; 388 ; Copyright (C) 2006-2011 Oracle Corporation 389 ; 390 ; This file is part of VirtualBox Open Source Edition (OSE), as 391 ; available from http://www.virtualbox.org. This file is free software; 392 ; you can redistribute it and/or modify it under the terms of the GNU 393 ; General Public License (GPL) as published by the Free Software 394 ; Foundation, in version 2 as it comes in the "COPYING" file of the 395 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 396 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 397 ; -------------------------------------------------------------------- 398 ; 399 ; This code is based on: 400 ; 401 ; ROM BIOS for use with Bochs/Plex86/QEMU emulation environment 402 ; 403 ; Copyright (C) 2002 MandrakeSoft S.A. 404 ; 405 ; MandrakeSoft S.A. 406 ; 43, rue d'Aboukir 407 ; 75002 Paris - France 408 ; http://www.linux-mandrake.com/ 409 ; http://www.mandrakesoft.com/ 410 ; 411 ; This library is free software; you can redistribute it and/or 412 ; modify it under the terms of the GNU Lesser General Public 413 ; License as published by the Free Software Foundation; either 414 ; version 2 of the License, or (at your option) any later version. 415 ; 416 ; This library is distributed in the hope that it will be useful, 417 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 418 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 419 ; Lesser General Public License for more details. 420 ; 421 ; You should have received a copy of the GNU Lesser General Public 422 ; License along with this library; if not, write to the Free Software 423 ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 424 ; 425 426 ; 427 ; Source file: timepci.c 428 ; 429 ; 430 ; Copyright (C) 2006-2011 Oracle Corporation 431 ; 432 ; This file is part of VirtualBox Open Source Edition (OSE), as 433 ; available from http://www.virtualbox.org. This file is free software; 434 ; you can redistribute it and/or modify it under the terms of the GNU 435 ; General Public License (GPL) as published by the Free Software 436 ; Foundation, in version 2 as it comes in the "COPYING" file of the 437 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 438 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 439 ; -------------------------------------------------------------------- 440 ; 441 ; This code is based on: 442 ; 443 ; ROM BIOS for use with Bochs/Plex86/QEMU emulation environment 444 ; 445 ; Copyright (C) 2002 MandrakeSoft S.A. 446 ; 447 ; MandrakeSoft S.A. 448 ; 43, rue d'Aboukir 449 ; 75002 Paris - France 450 ; http://www.linux-mandrake.com/ 451 ; http://www.mandrakesoft.com/ 452 ; 453 ; This library is free software; you can redistribute it and/or 454 ; modify it under the terms of the GNU Lesser General Public 455 ; License as published by the Free Software Foundation; either 456 ; version 2 of the License, or (at your option) any later version. 457 ; 458 ; This library is distributed in the hope that it will be useful, 459 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 460 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 461 ; Lesser General Public License for more details. 462 ; 463 ; You should have received a copy of the GNU Lesser General Public 464 ; License along with this library; if not, write to the Free Software 465 ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 466 ; 467 468 ; 469 ; Source file: ps2mouse.c 470 ; 471 ; 472 ; Copyright (C) 2006-2011 Oracle Corporation 473 ; 474 ; This file is part of VirtualBox Open Source Edition (OSE), as 475 ; available from http://www.virtualbox.org. This file is free software; 476 ; you can redistribute it and/or modify it under the terms of the GNU 477 ; General Public License (GPL) as published by the Free Software 478 ; Foundation, in version 2 as it comes in the "COPYING" file of the 479 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 480 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 481 ; -------------------------------------------------------------------- 482 ; 483 ; This code is based on: 484 ; 485 ; ROM BIOS for use with Bochs/Plex86/QEMU emulation environment 486 ; 487 ; Copyright (C) 2002 MandrakeSoft S.A. 488 ; 489 ; MandrakeSoft S.A. 490 ; 43, rue d'Aboukir 491 ; 75002 Paris - France 492 ; http://www.linux-mandrake.com/ 493 ; http://www.mandrakesoft.com/ 494 ; 495 ; This library is free software; you can redistribute it and/or 496 ; modify it under the terms of the GNU Lesser General Public 497 ; License as published by the Free Software Foundation; either 498 ; version 2 of the License, or (at your option) any later version. 499 ; 500 ; This library is distributed in the hope that it will be useful, 501 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 502 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 503 ; Lesser General Public License for more details. 504 ; 505 ; You should have received a copy of the GNU Lesser General Public 506 ; License along with this library; if not, write to the Free Software 507 ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 508 ; 509 510 ; 511 ; Source file: parallel.c 512 ; 513 ; 514 ; Copyright (C) 2006-2011 Oracle Corporation 515 ; 516 ; This file is part of VirtualBox Open Source Edition (OSE), as 517 ; available from http://www.virtualbox.org. This file is free software; 518 ; you can redistribute it and/or modify it under the terms of the GNU 519 ; General Public License (GPL) as published by the Free Software 520 ; Foundation, in version 2 as it comes in the "COPYING" file of the 521 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 522 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 523 ; -------------------------------------------------------------------- 524 ; 525 ; This code is based on: 526 ; 527 ; ROM BIOS for use with Bochs/Plex86/QEMU emulation environment 528 ; 529 ; Copyright (C) 2002 MandrakeSoft S.A. 530 ; 531 ; MandrakeSoft S.A. 532 ; 43, rue d'Aboukir 533 ; 75002 Paris - France 534 ; http://www.linux-mandrake.com/ 535 ; http://www.mandrakesoft.com/ 536 ; 537 ; This library is free software; you can redistribute it and/or 538 ; modify it under the terms of the GNU Lesser General Public 539 ; License as published by the Free Software Foundation; either 540 ; version 2 of the License, or (at your option) any later version. 541 ; 542 ; This library is distributed in the hope that it will be useful, 543 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 544 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 545 ; Lesser General Public License for more details. 546 ; 547 ; You should have received a copy of the GNU Lesser General Public 548 ; License along with this library; if not, write to the Free Software 549 ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 550 ; 551 552 ; 553 ; Source file: logo.c 554 ; 555 ; $Id$ 556 ; Stuff for drawing the BIOS logo. 557 ; 558 ; 559 ; 560 ; Copyright (C) 2004-2011 Oracle Corporation 561 ; 562 ; This file is part of VirtualBox Open Source Edition (OSE), as 563 ; available from http://www.virtualbox.org. This file is free software; 564 ; you can redistribute it and/or modify it under the terms of the GNU 565 ; General Public License (GPL) as published by the Free Software 566 ; Foundation, in version 2 as it comes in the "COPYING" file of the 567 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 568 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 569 570 ; 571 ; Source file: scsi.c 572 ; 573 ; $Id$ 574 ; SCSI host adapter driver to boot from SCSI disks 575 ; 576 ; 577 ; 578 ; Copyright (C) 2004-2011 Oracle Corporation 579 ; 580 ; This file is part of VirtualBox Open Source Edition (OSE), as 581 ; available from http://www.virtualbox.org. This file is free software; 582 ; you can redistribute it and/or modify it under the terms of the GNU 583 ; General Public License (GPL) as published by the Free Software 584 ; Foundation, in version 2 as it comes in the "COPYING" file of the 585 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 586 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 587 588 ; 589 ; Source file: ahci.c 590 ; 591 ; $Id$ 592 ; AHCI host adapter driver to boot from SATA disks. 593 ; 594 ; 595 ; 596 ; Copyright (C) 2011 Oracle Corporation 597 ; 598 ; This file is part of VirtualBox Open Source Edition (OSE), as 599 ; available from http://www.virtualbox.org. This file is free software; 600 ; you can redistribute it and/or modify it under the terms of the GNU 601 ; General Public License (GPL) as published by the Free Software 602 ; Foundation, in version 2 as it comes in the "COPYING" file of the 603 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 604 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 605 606 ; 607 ; Source file: pciutil.c 608 ; 609 ; Utility routines for calling the PCI BIOS. 610 ; 611 ; 612 ; 613 ; Copyright (C) 2011 Oracle Corporation 614 ; 615 ; This file is part of VirtualBox Open Source Edition (OSE), as 616 ; available from http://www.virtualbox.org. This file is free software; 617 ; you can redistribute it and/or modify it under the terms of the GNU 618 ; General Public License (GPL) as published by the Free Software 619 ; Foundation, in version 2 as it comes in the "COPYING" file of the 620 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 621 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 622 623 ; 624 ; Source file: vds.c 625 ; 626 ; Utility routines for calling the Virtual DMA Services. 627 ; 628 ; 629 ; 630 ; Copyright (C) 2011 Oracle Corporation 631 ; 632 ; This file is part of VirtualBox Open Source Edition (OSE), as 633 ; available from http://www.virtualbox.org. This file is free software; 634 ; you can redistribute it and/or modify it under the terms of the GNU 635 ; General Public License (GPL) as published by the Free Software 636 ; Foundation, in version 2 as it comes in the "COPYING" file of the 637 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 638 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 639 640 ; 641 ; Source file: support.asm 642 ; 643 ; $Id$ 644 ; Compiler support routines. 645 ; 646 ; 647 ; 648 ; Copyright (C) 2012 Oracle Corporation 649 ; 650 ; This file is part of VirtualBox Open Source Edition (OSE), as 651 ; available from http://www.virtualbox.org. This file is free software; 652 ; you can redistribute it and/or modify it under the terms of the GNU 653 ; General Public License (GPL) as published by the Free Software 654 ; Foundation, in version 2 as it comes in the "COPYING" file of the 655 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 656 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 657 ; 658 659 ; 660 ; Source file: pcibio32.asm 661 ; 662 ; 663 ; Copyright (C) 2006-2011 Oracle Corporation 664 ; 665 ; This file is part of VirtualBox Open Source Edition (OSE), as 666 ; available from http://www.virtualbox.org. This file is free software; 667 ; you can redistribute it and/or modify it under the terms of the GNU 668 ; General Public License (GPL) as published by the Free Software 669 ; Foundation, in version 2 as it comes in the "COPYING" file of the 670 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 671 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 672 ; -------------------------------------------------------------------- 673 ; 674 ; This code is based on: 675 ; 676 ; ROM BIOS for use with Bochs/Plex86/QEMU emulation environment 677 ; 678 ; Copyright (C) 2002 MandrakeSoft S.A. 679 ; 680 ; MandrakeSoft S.A. 681 ; 43, rue d'Aboukir 682 ; 75002 Paris - France 683 ; http://www.linux-mandrake.com/ 684 ; http://www.mandrakesoft.com/ 685 ; 686 ; This library is free software; you can redistribute it and/or 687 ; modify it under the terms of the GNU Lesser General Public 688 ; License as published by the Free Software Foundation; either 689 ; version 2 of the License, or (at your option) any later version. 690 ; 691 ; This library is distributed in the hope that it will be useful, 692 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 693 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 694 ; Lesser General Public License for more details. 695 ; 696 ; You should have received a copy of the GNU Lesser General Public 697 ; License along with this library; if not, write to the Free Software 698 ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 699 ; 700 ; 701 702 ; 703 ; Source file: orgs.asm 704 ; 705 ; 706 ; Copyright (C) 2006-2011 Oracle Corporation 707 ; 708 ; This file is part of VirtualBox Open Source Edition (OSE), as 709 ; available from http://www.virtualbox.org. This file is free software; 710 ; you can redistribute it and/or modify it under the terms of the GNU 711 ; General Public License (GPL) as published by the Free Software 712 ; Foundation, in version 2 as it comes in the "COPYING" file of the 713 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 714 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 715 ; -------------------------------------------------------------------- 716 ; 717 ; This code is based on: 718 ; 719 ; ROM BIOS for use with Bochs/Plex86/QEMU emulation environment 720 ; 721 ; Copyright (C) 2002 MandrakeSoft S.A. 722 ; 723 ; MandrakeSoft S.A. 724 ; 43, rue d'Aboukir 725 ; 75002 Paris - France 726 ; http://www.linux-mandrake.com/ 727 ; http://www.mandrakesoft.com/ 728 ; 729 ; This library is free software; you can redistribute it and/or 730 ; modify it under the terms of the GNU Lesser General Public 731 ; License as published by the Free Software Foundation; either 732 ; version 2 of the License, or (at your option) any later version. 733 ; 734 ; This library is distributed in the hope that it will be useful, 735 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 736 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 737 ; Lesser General Public License for more details. 738 ; 739 ; You should have received a copy of the GNU Lesser General Public 740 ; License along with this library; if not, write to the Free Software 741 ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 742 ; 743 ; 744 745 746 1 747 2 748 section _DATA progbits vstart=0x0 align=1 ; size=0x18 class=DATA group=DGROUP 3 749 _dskacc: ; 0xf0000 LB 0x18 4 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0 2bh, 028h, 0a1h, 028h, 000h, 000h, 000h, 000h5 db 04 4h, 077h, 0fch, 077h, 0e3h, 082h, 079h, 083h750 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 059h, 027h, 0d0h, 027h, 000h, 000h, 000h, 000h 751 db 041h, 073h, 0e3h, 073h, 05eh, 07eh, 0e9h, 07eh 6 752 7 753 section CONST progbits vstart=0x18 align=1 ; size=0xbde class=DATA group=DGROUP … … 111 857 db '%s: DATA_OUT not supported yet', 00ah, 000h 112 858 113 section CONST2 progbits vstart=0xbf6 align=1 ; size=0x 408class=DATA group=DGROUP114 _bios_cvs_version_string: ; 0xf0bf6 LB 0x 20115 db 'VirtualBox VBOX_VERSION_STRING', 000h, 000h116 _bios_prefix_string: ; 0xf0c 16LB 0x8859 section CONST2 progbits vstart=0xbf6 align=1 ; size=0x3fa class=DATA group=DGROUP 860 _bios_cvs_version_string: ; 0xf0bf6 LB 0x12 861 db 'VirtualBox 4.1.51', 000h 862 _bios_prefix_string: ; 0xf0c08 LB 0x8 117 863 db 'BIOS: ', 000h, 000h 118 _isotag: ; 0xf0c1 eLB 0x6864 _isotag: ; 0xf0c10 LB 0x6 119 865 db 'CD001', 000h 120 _eltorito: ; 0xf0c 24LB 0x18866 _eltorito: ; 0xf0c16 LB 0x18 121 867 db 'EL TORITO SPECIFICATION', 000h 122 _drivetypes: ; 0xf0c 3cLB 0x28868 _drivetypes: ; 0xf0c2e LB 0x28 123 869 db 046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h 124 870 db 069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h 125 871 db 04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h 126 _scan_to_scanascii: ; 0xf0c 64LB 0x37a872 _scan_to_scanascii: ; 0xf0c56 LB 0x37a 127 873 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h 128 874 db 000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h … … 181 927 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h 182 928 db 000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h 183 _panic_msg_keyb_buffer_full: ; 0xf0fd eLB 0x20929 _panic_msg_keyb_buffer_full: ; 0xf0fd0 LB 0x20 184 930 db '%s: keyboard input buffer full', 00ah, 000h 185 931 186 ; Padding 0x6 02 bytes at 0xf0ffe187 times 15 38db 0932 ; Padding 0x610 bytes at 0xf0ff0 933 times 1552 db 0 188 934 189 section _TEXT progbits vstart=0x1600 align=1 ; size=0x7 80f class=CODE group=AUTO935 section _TEXT progbits vstart=0x1600 align=1 ; size=0x727f class=CODE group=AUTO 190 936 read_byte_: ; 0xf1600 LB 0xe 191 937 push bx ; 53 … … 274 1020 pop bp ; 5d 275 1021 retn ; c3 276 _dummy_isr_function: ; 0xf167e LB 0x65 277 push bp ; 55 278 mov bp, sp ; 89 e5 279 push ax ; 50 1022 _dummy_isr_function: ; 0xf167e LB 0x69 1023 enter 00002h, 000h ; c8 02 00 00 280 1024 mov CL, strict byte 0ffh ; b1 ff 281 1025 mov AL, strict byte 00bh ; b0 0b … … 288 1032 mov byte [bp-002h], al ; 88 46 fe 289 1033 test al, al ; 84 c0 290 je short 016d 2h ; 74 3c1034 je short 016d9h ; 74 43 291 1035 mov AL, strict byte 00bh ; b0 0b 292 1036 mov dx, 000a0h ; ba a0 00 … … 297 1041 mov cx, ax ; 89 c1 298 1042 test al, al ; 84 c0 299 je short 016b ah ; 74 151043 je short 016bbh ; 74 16 300 1044 mov dx, 000a1h ; ba a1 00 301 1045 in AL, DX ; ec 302 1046 db 02ah, 0e4h 303 1047 ; sub ah, ah ; 2a e4 304 mov bl, al ; 88 c3305 mov al, cl ; 88 c8306 or a l, bl ; 08d81048 xor ah, ah ; 30 e4 1049 movzx bx, cl ; 0f b6 d9 1050 or ax, bx ; 09 d8 307 1051 out DX, AL ; ee 308 1052 mov AL, strict byte 020h ; b0 20 309 1053 mov dx, 000a0h ; ba a0 00 310 1054 out DX, AL ; ee 311 jmp short 016 c9h ; eb 0f1055 jmp short 016d0h ; eb 15 312 1056 mov dx, strict word 00021h ; ba 21 00 313 1057 in AL, DX ; ec … … 316 1060 and bl, 0fbh ; 80 e3 fb 317 1061 mov byte [bp-002h], bl ; 88 5e fe 318 or al, bl ; 08 d8 1062 xor ah, ah ; 30 e4 1063 movzx bx, byte [bp-002h] ; 0f b6 5e fe 1064 or ax, bx ; 09 d8 319 1065 out DX, AL ; ee 320 1066 mov AL, strict byte 020h ; b0 20 … … 322 1068 out DX, AL ; ee 323 1069 mov cl, byte [bp-002h] ; 8a 4e fe 324 mov bl, cl ; 88 cb 325 xor bh, bh ; 30 ff 1070 movzx bx, cl ; 0f b6 d9 326 1071 mov dx, strict word 0006bh ; ba 6b 00 327 1072 mov ax, strict word 00040h ; b8 40 00 328 call 0160eh ; e8 2f ff 329 mov sp, bp ; 89 ec 330 pop bp ; 5d 331 retn ; c3 332 _nmi_handler_msg: ; 0xf16e3 LB 0x13 1073 call 0160eh ; e8 29 ff 1074 leave ; c9 1075 retn ; c3 1076 _nmi_handler_msg: ; 0xf16e7 LB 0x10 333 1077 push bp ; 55 334 1078 mov bp, sp ; 89 e5 335 mov ax, strict word 00018h ; b8 18 00 336 push ax ; 50 337 mov ax, strict word 00007h ; b8 07 00 338 push ax ; 50 339 call 018fah ; e8 09 02 1079 push strict word 00018h ; 68 18 00 1080 push strict byte 00007h ; 6a 07 1081 call 018e9h ; e8 f7 01 340 1082 add sp, strict byte 00004h ; 83 c4 04 341 1083 pop bp ; 5d 342 1084 retn ; c3 343 _int18_panic_msg: ; 0xf16f 6 LB 0x131085 _int18_panic_msg: ; 0xf16f7 LB 0x10 344 1086 push bp ; 55 345 1087 mov bp, sp ; 89 e5 346 mov ax, strict word 0002ch ; b8 2c 00 347 push ax ; 50 348 mov ax, strict word 00007h ; b8 07 00 349 push ax ; 50 350 call 018fah ; e8 f6 01 1088 push strict word 0002ch ; 68 2c 00 1089 push strict byte 00007h ; 6a 07 1090 call 018e9h ; e8 e7 01 351 1091 add sp, strict byte 00004h ; 83 c4 04 352 1092 pop bp ; 5d 353 1093 retn ; c3 354 _log_bios_start: ; 0xf170 9 LB 0x221094 _log_bios_start: ; 0xf1707 LB 0x1e 355 1095 push bp ; 55 356 1096 mov bp, sp ; 89 e5 357 mov bx, 00c 16h ; bb 160c1097 mov bx, 00c08h ; bb 08 0c 358 1098 mov cx, ds ; 8c d9 359 1099 mov ax, strict word 00004h ; b8 04 00 360 call 018bdh ; e8 a6 01 361 mov ax, 00bf6h ; b8 f6 0b 362 push ax ; 50 363 mov ax, strict word 00041h ; b8 41 00 364 push ax ; 50 365 mov ax, strict word 00004h ; b8 04 00 366 push ax ; 50 367 call 018fah ; e8 d4 01 1100 call 018aeh ; e8 99 01 1101 push 00bf6h ; 68 f6 0b 1102 push strict word 00041h ; 68 41 00 1103 push strict byte 00004h ; 6a 04 1104 call 018e9h ; e8 c9 01 368 1105 add sp, strict byte 00006h ; 83 c4 06 369 1106 pop bp ; 5d 370 1107 retn ; c3 371 _print_bios_banner: ; 0xf172 bLB 0x2c1108 _print_bios_banner: ; 0xf1725 LB 0x2c 372 1109 push bp ; 55 373 1110 mov bp, sp ; 89 e5 374 1111 mov dx, strict word 00072h ; ba 72 00 375 1112 mov ax, strict word 00040h ; b8 40 00 376 call 0161ch ; e8 e 5fe1113 call 0161ch ; e8 eb fe 377 1114 mov cx, ax ; 89 c1 378 1115 xor bx, bx ; 31 db 379 1116 mov dx, strict word 00072h ; ba 72 00 380 1117 mov ax, strict word 00040h ; b8 40 00 381 call 0162ah ; e8 e 6fe1118 call 0162ah ; e8 ec fe 382 1119 cmp cx, 01234h ; 81 f9 34 12 383 jne short 017 52h ; 75 081120 jne short 0174ch ; 75 08 384 1121 mov AL, strict byte 003h ; b0 03 385 1122 mov AH, strict byte 000h ; b4 00 … … 387 1124 pop bp ; 5d 388 1125 retn ; c3 389 call 07 3e3h ; e8 8e 5c1126 call 0700fh ; e8 c0 58 390 1127 pop bp ; 5d 391 1128 retn ; c3 392 send_: ; 0xf175 7LB 0x381129 send_: ; 0xf1751 LB 0x38 393 1130 push bx ; 53 394 1131 push cx ; 51 … … 398 1135 mov cl, dl ; 88 d1 399 1136 test AL, strict byte 008h ; a8 08 400 je short 0176 ah ; 74 061137 je short 01764h ; 74 06 401 1138 mov al, dl ; 88 d0 402 1139 mov dx, 00403h ; ba 03 04 403 1140 out DX, AL ; ee 404 1141 test bl, 004h ; f6 c3 04 405 je short 017 75h ; 74 061142 je short 0176fh ; 74 06 406 1143 mov al, cl ; 88 c8 407 1144 mov dx, 00504h ; ba 04 05 408 1145 out DX, AL ; ee 409 1146 test bl, 002h ; f6 c3 02 410 je short 0178 bh ; 74 111147 je short 01785h ; 74 11 411 1148 cmp cl, 00ah ; 80 f9 0a 412 jne short 017 85h ; 75 061149 jne short 0177fh ; 75 06 413 1150 mov AL, strict byte 00dh ; b0 0d 414 1151 mov AH, strict byte 00eh ; b4 0e … … 421 1158 pop bx ; 5b 422 1159 retn ; c3 423 put_int_: ; 0xf178 f LB 0x621160 put_int_: ; 0xf1789 LB 0x5b 424 1161 push si ; 56 425 1162 push di ; 57 426 push bp ; 55 427 mov bp, sp ; 89 e5 428 push ax ; 50 429 push ax ; 50 1163 enter 00004h, 000h ; c8 04 00 00 430 1164 mov si, ax ; 89 c6 431 1165 mov word [bp-004h], dx ; 89 56 fc 432 mov di, bx ; 89 df 433 mov bx, strict word 0000ah ; bb 0a 00 1166 mov di, strict word 0000ah ; bf 0a 00 434 1167 mov ax, dx ; 89 d0 435 1168 cwd ; 99 436 idiv bx ; f7 fb1169 idiv di ; f7 ff 437 1170 mov word [bp-002h], ax ; 89 46 fe 438 1171 test ax, ax ; 85 c0 439 je short 017 b8h ; 74 0c440 lea bx, [di-001h] ; 8d 5d ff1172 je short 017adh ; 74 0a 1173 dec bx ; 4b 441 1174 mov dx, ax ; 89 c2 442 1175 mov ax, si ; 89 f0 443 call 0178 fh ; e8 d9ff444 jmp short 017 d3h ; eb 1b445 dec di ; 4f446 test di, di ; 85 ff447 jle short 017 c7h ; 7e 0a1176 call 01789h ; e8 de ff 1177 jmp short 017c8h ; eb 1b 1178 dec bx ; 4b 1179 test bx, bx ; 85 db 1180 jle short 017bch ; 7e 0a 448 1181 mov dx, strict word 00020h ; ba 20 00 449 1182 mov ax, si ; 89 f0 450 call 0175 7h ; e8 92ff451 jmp short 017 b8h ; eb f11183 call 01751h ; e8 97 ff 1184 jmp short 017adh ; eb f1 452 1185 test cx, cx ; 85 c9 453 je short 017 d3h ; 74 081186 je short 017c8h ; 74 08 454 1187 mov dx, strict word 0002dh ; ba 2d 00 455 1188 mov ax, si ; 89 f0 456 call 0175 7h ; e8 84ff1189 call 01751h ; e8 89 ff 457 1190 mov al, byte [bp-002h] ; 8a 46 fe 458 mov BL, strict byte 00ah ; b30a459 mul bl ; f6 e3460 mov bl, byte [bp-004h] ; 8a 5efc461 sub bl, al ; 28 c3462 add bl, 030h ; 80 c3 30463 xor bh, bh ; 30 ff464 mov dx, bx ; 89 da1191 mov DL, strict byte 00ah ; b2 0a 1192 mul dl ; f6 e2 1193 mov dl, byte [bp-004h] ; 8a 56 fc 1194 sub dl, al ; 28 c2 1195 mov al, dl ; 88 d0 1196 add AL, strict byte 030h ; 04 30 1197 movzx dx, al ; 0f b6 d0 465 1198 mov ax, si ; 89 f0 466 call 01757h ; e8 6c ff 467 mov sp, bp ; 89 ec 468 pop bp ; 5d 1199 call 01751h ; e8 71 ff 1200 leave ; c9 469 1201 pop di ; 5f 470 1202 pop si ; 5e 471 1203 retn ; c3 472 put_uint_: ; 0xf17 f1 LB 0x5d1204 put_uint_: ; 0xf17e4 LB 0x5c 473 1205 push si ; 56 474 1206 push di ; 57 475 push bp ; 55 476 mov bp, sp ; 89 e5 477 push ax ; 50 478 push ax ; 50 1207 enter 00004h, 000h ; c8 04 00 00 479 1208 mov si, ax ; 89 c6 480 1209 mov word [bp-004h], dx ; 89 56 fc … … 485 1214 mov word [bp-002h], ax ; 89 46 fe 486 1215 test ax, ax ; 85 c0 487 je short 018 17h ; 74 0a1216 je short 01809h ; 74 0a 488 1217 dec bx ; 4b 489 1218 mov dx, ax ; 89 c2 490 1219 mov ax, si ; 89 f0 491 call 017 f1h ; e8 dcff492 jmp short 018 32h ; eb 1b1220 call 017e4h ; e8 dd ff 1221 jmp short 01824h ; eb 1b 493 1222 dec bx ; 4b 494 1223 test bx, bx ; 85 db 495 jle short 018 26h ; 7e 0a1224 jle short 01818h ; 7e 0a 496 1225 mov dx, strict word 00020h ; ba 20 00 497 1226 mov ax, si ; 89 f0 498 call 0175 7h ; e8 33ff499 jmp short 018 17h ; eb f11227 call 01751h ; e8 3b ff 1228 jmp short 01809h ; eb f1 500 1229 test cx, cx ; 85 c9 501 je short 018 32h ; 74 081230 je short 01824h ; 74 08 502 1231 mov dx, strict word 0002dh ; ba 2d 00 503 1232 mov ax, si ; 89 f0 504 call 0175 7h ; e8 25ff1233 call 01751h ; e8 2d ff 505 1234 mov al, byte [bp-002h] ; 8a 46 fe 506 1235 mov DL, strict byte 00ah ; b2 0a … … 508 1237 mov dl, byte [bp-004h] ; 8a 56 fc 509 1238 sub dl, al ; 28 c2 510 add dl, 030h ; 80 c2 30 511 xor dh, dh ; 30 f6 1239 mov al, dl ; 88 d0 1240 add AL, strict byte 030h ; 04 30 1241 movzx dx, al ; 0f b6 d0 512 1242 mov ax, si ; 89 f0 513 call 01757h ; e8 0f ff 514 mov sp, bp ; 89 ec 515 pop bp ; 5d 1243 call 01751h ; e8 15 ff 1244 leave ; c9 516 1245 pop di ; 5f 517 1246 pop si ; 5e 518 1247 retn ; c3 519 put_luint_: ; 0xf184 e LB 0x6f1248 put_luint_: ; 0xf1840 LB 0x6e 520 1249 push si ; 56 521 1250 push di ; 57 522 push bp ; 55 523 mov bp, sp ; 89 e5 524 push ax ; 50 525 push ax ; 50 1251 enter 00004h, 000h ; c8 04 00 00 526 1252 mov si, ax ; 89 c6 527 1253 mov word [bp-002h], bx ; 89 5e fe … … 531 1257 mov bx, strict word 0000ah ; bb 0a 00 532 1258 xor cx, cx ; 31 c9 533 call 08 d37h ; e8 cf 741259 call 087f0h ; e8 97 6f 534 1260 mov word [bp-004h], ax ; 89 46 fc 535 1261 mov cx, dx ; 89 d1 536 1262 mov dx, ax ; 89 c2 537 1263 or dx, cx ; 09 ca 538 je short 018 82h ; 74 0f1264 je short 01873h ; 74 0f 539 1265 push word [bp+008h] ; ff 76 08 540 1266 lea dx, [di-001h] ; 8d 55 ff 541 1267 mov bx, ax ; 89 c3 542 1268 mov ax, si ; 89 f0 543 call 0184 eh ; e8 ceff544 jmp short 0189 fh ; eb 1d1269 call 01840h ; e8 cf ff 1270 jmp short 01890h ; eb 1d 545 1271 dec di ; 4f 546 1272 test di, di ; 85 ff 547 jle short 018 91h ; 7e 0a1273 jle short 01882h ; 7e 0a 548 1274 mov dx, strict word 00020h ; ba 20 00 549 1275 mov ax, si ; 89 f0 550 call 0175 7h ; e8 c8fe551 jmp short 018 82h ; eb f11276 call 01751h ; e8 d1 fe 1277 jmp short 01873h ; eb f1 552 1278 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 553 je short 0189 fh ; 74 081279 je short 01890h ; 74 08 554 1280 mov dx, strict word 0002dh ; ba 2d 00 555 1281 mov ax, si ; 89 f0 556 call 0175 7h ; e8 b8fe1282 call 01751h ; e8 c1 fe 557 1283 mov al, byte [bp-004h] ; 8a 46 fc 558 1284 mov DL, strict byte 00ah ; b2 0a … … 560 1286 mov dl, byte [bp-002h] ; 8a 56 fe 561 1287 sub dl, al ; 28 c2 562 add dl, 030h ; 80 c2 30 563 xor dh, dh ; 30 f6 1288 mov al, dl ; 88 d0 1289 add AL, strict byte 030h ; 04 30 1290 movzx dx, al ; 0f b6 d0 564 1291 mov ax, si ; 89 f0 565 call 01757h ; e8 a2 fe 566 mov sp, bp ; 89 ec 567 pop bp ; 5d 1292 call 01751h ; e8 a9 fe 1293 leave ; c9 568 1294 pop di ; 5f 569 1295 pop si ; 5e 570 1296 retn 00002h ; c2 02 00 571 put_str_: ; 0xf18 bdLB 0x1e1297 put_str_: ; 0xf18ae LB 0x1e 572 1298 push dx ; 52 573 1299 push si ; 56 … … 578 1304 mov dl, byte [es:bx] ; 26 8a 17 579 1305 test dl, dl ; 84 d2 580 je short 018 d7h ; 74 0a1306 je short 018c8h ; 74 0a 581 1307 xor dh, dh ; 30 f6 582 1308 mov ax, si ; 89 f0 583 call 0175 7h ; e8 83fe1309 call 01751h ; e8 8c fe 584 1310 inc bx ; 43 585 jmp short 018 c4h ; eb ed1311 jmp short 018b5h ; eb ed 586 1312 pop bp ; 5d 587 1313 pop si ; 5e 588 1314 pop dx ; 5a 589 1315 retn ; c3 590 put_str_near_: ; 0xf18 db LB 0x1f1316 put_str_near_: ; 0xf18cc LB 0x1d 591 1317 push bx ; 53 592 1318 push cx ; 51 … … 595 1321 mov cx, ax ; 89 c1 596 1322 mov bx, dx ; 89 d3 597 mov al, byte [bx] ; 8a 07 598 test al, al ; 84 c0 599 je short 018f6h ; 74 0c 600 xor ah, ah ; 30 e4 601 mov dx, ax ; 89 c2 1323 mov dl, byte [bx] ; 8a 17 1324 test dl, dl ; 84 d2 1325 je short 018e5h ; 74 0a 1326 xor dh, dh ; 30 f6 602 1327 mov ax, cx ; 89 c8 603 call 0175 7h ; e8 64fe1328 call 01751h ; e8 6f fe 604 1329 inc bx ; 43 605 jmp short 018 e4h ; eb ee1330 jmp short 018d5h ; eb f0 606 1331 pop bp ; 5d 607 1332 pop cx ; 59 608 1333 pop bx ; 5b 609 1334 retn ; c3 610 bios_printf_: ; 0xf18 fa LB 0x24f1335 bios_printf_: ; 0xf18e9 LB 0x23c 611 1336 push bx ; 53 612 1337 push cx ; 51 … … 614 1339 push si ; 56 615 1340 push di ; 57 616 push bp ; 55 617 mov bp, sp ; 89 e5 618 sub sp, strict byte 00008h ; 83 ec 08 1341 enter 00008h, 000h ; c8 08 00 00 619 1342 lea bx, [bp+012h] ; 8d 5e 12 620 1343 mov word [bp-008h], bx ; 89 5e f8 … … 625 1348 and ax, strict word 00007h ; 25 07 00 626 1349 cmp ax, strict word 00007h ; 3d 07 00 627 jne short 019 31h ; 75 141350 jne short 0191bh ; 75 11 628 1351 xor al, al ; 30 c0 629 1352 mov dx, 00401h ; ba 01 04 630 1353 out DX, AL ; ee 631 mov ax, strict word 00046h ; b8 46 00 632 push ax ; 50 633 mov ax, strict word 00002h ; b8 02 00 634 push ax ; 50 635 call 018fah ; e8 cc ff 1354 push strict word 00046h ; 68 46 00 1355 push strict byte 00002h ; 6a 02 1356 call 018e9h ; e8 d1 ff 636 1357 add sp, strict byte 00004h ; 83 c4 04 637 1358 mov bx, word [bp+010h] ; 8b 5e 10 638 1359 mov dl, byte [bx] ; 8a 17 639 1360 test dl, dl ; 84 d2 640 je short 01999h ; 74 5f1361 je near 01b0ch ; 0f 84 e6 01 641 1362 cmp dl, 025h ; 80 fa 25 642 jne short 019 47h ; 75 081363 jne short 01933h ; 75 08 643 1364 mov cx, strict word 00001h ; b9 01 00 644 1365 xor si, si ; 31 f6 645 jmp near 01b 28h ; e9 e1011366 jmp near 01b06h ; e9 d3 01 646 1367 test cx, cx ; 85 c9 647 je short 0199ch ; 74 511368 je near 01afeh ; 0f 84 c5 01 648 1369 cmp dl, 030h ; 80 fa 30 649 jc short 019 6ah ; 72 1a1370 jc short 01951h ; 72 13 650 1371 cmp dl, 039h ; 80 fa 39 651 jnbe short 0196ah ; 77 15 652 mov bl, dl ; 88 d3 653 xor bh, bh ; 30 ff 654 mov ax, si ; 89 f0 655 mov dx, strict word 0000ah ; ba 0a 00 656 mul dx ; f7 e2 657 sub bx, strict byte 00030h ; 83 eb 30 658 mov si, ax ; 89 c6 659 add si, bx ; 01 de 660 jmp near 01b28h ; e9 be 01 1372 jnbe short 01951h ; 77 0e 1373 movzx ax, dl ; 0f b6 c2 1374 imul si, si, strict byte 0000ah ; 6b f6 0a 1375 sub ax, strict word 00030h ; 2d 30 00 1376 add si, ax ; 01 c6 1377 jmp near 01b06h ; e9 b5 01 661 1378 mov ax, word [bp-006h] ; 8b 46 fa 662 1379 mov word [bp-006h], ax ; 89 46 fa … … 666 1383 mov word [bp-002h], ax ; 89 46 fe 667 1384 cmp dl, 078h ; 80 fa 78 668 je short 019 88h ; 74 051385 je short 0196fh ; 74 05 669 1386 cmp dl, 058h ; 80 fa 58 670 jne short 019 d6h ; 75 4e1387 jne short 019b8h ; 75 49 671 1388 test si, si ; 85 f6 672 jne short 019 8fh ; 75 031389 jne short 01976h ; 75 03 673 1390 mov si, strict word 00004h ; be 04 00 674 1391 cmp dl, 078h ; 80 fa 78 675 jne short 019 9fh ; 75 0b1392 jne short 01980h ; 75 05 676 1393 mov di, strict word 00061h ; bf 61 00 677 jmp short 019a2h ; eb 09 678 jmp near 01b2eh ; e9 92 01 679 jmp near 01b20h ; e9 81 01 1394 jmp short 01983h ; eb 03 680 1395 mov di, strict word 00041h ; bf 41 00 681 1396 lea bx, [si-001h] ; 8d 5c ff 682 1397 test bx, bx ; 85 db 683 jl short 019e7h ; 7c 3e1398 jl near 01afah ; 0f 8c 6e 01 684 1399 mov cx, bx ; 89 d9 685 sal cx, 1 ; d1 e1 686 sal cx, 1 ; d1 e1 1400 sal cx, 002h ; c1 e1 02 687 1401 mov ax, word [bp-002h] ; 8b 46 fe 688 1402 shr ax, CL ; d3 e8 … … 690 1404 and AL, strict byte 00fh ; 24 0f 691 1405 cmp ax, strict word 00009h ; 3d 09 00 692 jnbe short 019 c4h ; 77 071406 jnbe short 019a6h ; 77 07 693 1407 mov dx, ax ; 89 c2 694 1408 add dx, strict byte 00030h ; 83 c2 30 695 jmp short 019 cbh ; eb 071409 jmp short 019adh ; eb 07 696 1410 mov dx, ax ; 89 c2 697 1411 sub dx, strict byte 0000ah ; 83 ea 0a … … 699 1413 xor dh, dh ; 30 f6 700 1414 mov ax, word [bp+00eh] ; 8b 46 0e 701 call 0175 7h ; e8 84fd1415 call 01751h ; e8 9c fd 702 1416 dec bx ; 4b 703 jmp short 019 a5h ; eb cf1417 jmp short 01986h ; eb ce 704 1418 cmp dl, 075h ; 80 fa 75 705 jne short 019 eah ; 75 0f1419 jne short 019cch ; 75 0f 706 1420 xor cx, cx ; 31 c9 707 1421 mov bx, si ; 89 f3 708 1422 mov dx, ax ; 89 c2 709 1423 mov ax, word [bp+00eh] ; 8b 46 0e 710 call 017 f1h ; e8 0afe711 jmp near 01 b1ch ; e9 32011424 call 017e4h ; e8 1b fe 1425 jmp near 01afah ; e9 2e 01 712 1426 lea bx, [si-001h] ; 8d 5c ff 713 1427 cmp dl, 06ch ; 80 fa 6c 714 jne short 01a4ah ; 75 581428 jne near 01a88h ; 0f 85 b2 00 715 1429 inc word [bp+010h] ; ff 46 10 716 1430 mov di, word [bp+010h] ; 8b 7e 10 … … 723 1437 mov word [bp-004h], ax ; 89 46 fc 724 1438 cmp dl, 064h ; 80 fa 64 725 jne short 01a 43h ; 75 301439 jne short 01a24h ; 75 2d 726 1440 test byte [bp-003h], 080h ; f6 46 fd 80 727 je short 01a30h ; 74 17 728 mov ax, strict word 00001h ; b8 01 00 729 push ax ; 50 1441 je short 01a12h ; 74 15 1442 push strict byte 00001h ; 6a 01 730 1443 mov ax, word [bp-002h] ; 8b 46 fe 731 1444 mov cx, word [bp-004h] ; 8b 4e fc … … 735 1448 mov dx, bx ; 89 da 736 1449 mov bx, ax ; 89 c3 737 jmp short 01a3bh ; eb 0b 738 xor ax, ax ; 31 c0 739 push ax ; 50 1450 jmp short 01a1bh ; eb 09 1451 push strict byte 00000h ; 6a 00 740 1452 mov bx, word [bp-002h] ; 8b 5e fe 741 1453 mov dx, si ; 89 f2 742 mov cx, word [bp-004h] ; 8b 4e fc1454 mov cx, ax ; 89 c1 743 1455 mov ax, word [bp+00eh] ; 8b 46 0e 744 call 0184 eh ; e8 0dfe745 jmp short 019e7h ; eb a41456 call 01840h ; e8 1f fe 1457 jmp near 01afah ; e9 d6 00 746 1458 cmp dl, 075h ; 80 fa 75 747 jne short 01a4ch ; 75 04 748 jmp short 01a30h ; eb e6 749 jmp short 01aa6h ; eb 5a 1459 jne short 01a2bh ; 75 02 1460 jmp short 01a12h ; eb e7 750 1461 cmp dl, 078h ; 80 fa 78 751 je short 01a 56h ; 74 051462 je short 01a37h ; 74 07 752 1463 cmp dl, 058h ; 80 fa 58 753 jne short 019e7h ; 75 911464 jne near 01afah ; 0f 85 c3 00 754 1465 test si, si ; 85 f6 755 jne short 01a 5dh ; 75 031466 jne short 01a3eh ; 75 03 756 1467 mov si, strict word 00008h ; be 08 00 757 1468 cmp dl, 078h ; 80 fa 78 758 jne short 01a 67h ; 75 051469 jne short 01a48h ; 75 05 759 1470 mov di, strict word 00061h ; bf 61 00 760 jmp short 01a 6ah ; eb 031471 jmp short 01a4bh ; eb 03 761 1472 mov di, strict word 00041h ; bf 41 00 762 1473 lea bx, [si-001h] ; 8d 5c ff 763 1474 test bx, bx ; 85 db 764 jl short 01ad7h ; 7c 661475 jl near 01afah ; 0f 8c a6 00 765 1476 mov ax, word [bp-002h] ; 8b 46 fe 766 1477 mov cx, bx ; 89 d9 767 sal cx, 1 ; d1 e1 768 sal cx, 1 ; d1 e1 1478 sal cx, 002h ; c1 e1 02 769 1479 mov dx, word [bp-004h] ; 8b 56 fc 770 jcxz 01a 85h ; e3 061480 jcxz 01a67h ; e3 06 771 1481 shr dx, 1 ; d1 ea 772 1482 rcr ax, 1 ; d1 d8 773 loop 01a 7fh ; e2 fa1483 loop 01a61h ; e2 fa 774 1484 and ax, strict word 0000fh ; 25 0f 00 775 1485 cmp ax, strict word 00009h ; 3d 09 00 776 jnbe short 01a 94h ; 77 071486 jnbe short 01a76h ; 77 07 777 1487 mov dx, ax ; 89 c2 778 1488 add dx, strict byte 00030h ; 83 c2 30 779 jmp short 01a 9bh ; eb 071489 jmp short 01a7dh ; eb 07 780 1490 mov dx, ax ; 89 c2 781 1491 sub dx, strict byte 0000ah ; 83 ea 0a … … 783 1493 xor dh, dh ; 30 f6 784 1494 mov ax, word [bp+00eh] ; 8b 46 0e 785 call 0175 7h ; e8 b4fc1495 call 01751h ; e8 cc fc 786 1496 dec bx ; 4b 787 jmp short 01a 6dh ; eb c71497 jmp short 01a4eh ; eb c6 788 1498 cmp dl, 064h ; 80 fa 64 789 jne short 01a c8h ; 75 1d1499 jne short 01aaah ; 75 1d 790 1500 test byte [bp-001h], 080h ; f6 46 ff 80 791 je short 01a bah ; 74 091501 je short 01a9ch ; 74 09 792 1502 mov dx, ax ; 89 c2 793 1503 neg dx ; f7 da 794 1504 mov cx, strict word 00001h ; b9 01 00 795 jmp short 01a c0h ; eb 061505 jmp short 01aa2h ; eb 06 796 1506 xor cx, cx ; 31 c9 797 1507 mov bx, si ; 89 f3 798 1508 mov dx, ax ; 89 c2 799 1509 mov ax, word [bp+00eh] ; 8b 46 0e 800 call 0178 fh ; e8 c9fc801 jmp short 01 b1ch ; eb 541510 call 01789h ; e8 e1 fc 1511 jmp short 01afah ; eb 50 802 1512 cmp dl, 073h ; 80 fa 73 803 jne short 01a d9h ; 75 0c1513 jne short 01abbh ; 75 0c 804 1514 mov cx, ds ; 8c d9 805 1515 mov bx, ax ; 89 c3 806 1516 mov ax, word [bp+00eh] ; 8b 46 0e 807 call 018 bdh ; e8 e6fd808 jmp short 01 b1ch ; eb 431517 call 018aeh ; e8 f5 fd 1518 jmp short 01afah ; eb 3f 809 1519 cmp dl, 053h ; 80 fa 53 810 jne short 01a fch ; 75 1e1520 jne short 01adeh ; 75 1e 811 1521 mov word [bp-004h], ax ; 89 46 fc 812 1522 mov ax, word [bp-006h] ; 8b 46 fa … … 818 1528 mov bx, ax ; 89 c3 819 1529 mov cx, word [bp-004h] ; 8b 4e fc 820 jmp short 01a d1h ; eb d51530 jmp short 01ab3h ; eb d5 821 1531 cmp dl, 063h ; 80 fa 63 822 jne short 01b0eh ; 75 0d 823 mov dl, byte [bp-002h] ; 8a 56 fe 1532 jne short 01aefh ; 75 0c 1533 movzx dx, byte [bp-002h] ; 0f b6 56 fe 1534 mov ax, word [bp+00eh] ; 8b 46 0e 1535 call 01751h ; e8 64 fc 1536 jmp short 01afah ; eb 0b 1537 push strict word 0004eh ; 68 4e 00 1538 push strict byte 00007h ; 6a 07 1539 call 018e9h ; e8 f2 fd 1540 add sp, strict byte 00004h ; 83 c4 04 1541 xor cx, cx ; 31 c9 1542 jmp short 01b06h ; eb 08 824 1543 xor dh, dh ; 30 f6 825 1544 mov ax, word [bp+00eh] ; 8b 46 0e 826 call 01757h ; e8 4b fc 827 jmp short 01b1ch ; eb 0e 828 mov ax, strict word 0004eh ; b8 4e 00 829 push ax ; 50 830 mov ax, strict word 00007h ; b8 07 00 831 push ax ; 50 832 call 018fah ; e8 e1 fd 833 add sp, strict byte 00004h ; 83 c4 04 834 xor cx, cx ; 31 c9 835 jmp short 01b28h ; eb 08 836 xor dh, dh ; 30 f6 837 mov ax, word [bp+00eh] ; 8b 46 0e 838 call 01757h ; e8 2f fc 1545 call 01751h ; e8 4b fc 839 1546 inc word [bp+010h] ; ff 46 10 840 jmp near 019 31h ; e9 03fe1547 jmp near 0191bh ; e9 0f fe 841 1548 xor ax, ax ; 31 c0 842 1549 mov word [bp-008h], ax ; 89 46 f8 843 1550 mov word [bp-006h], ax ; 89 46 fa 844 1551 test byte [bp+00eh], 001h ; f6 46 0e 01 845 je short 01b 40h ; 74 041552 je short 01b1eh ; 74 04 846 1553 cli ; fa 847 1554 hlt ; f4 848 jmp short 01b3dh ; eb fd 849 mov sp, bp ; 89 ec 850 pop bp ; 5d 1555 jmp short 01b1bh ; eb fd 1556 leave ; c9 851 1557 pop di ; 5f 852 1558 pop si ; 5e … … 855 1561 pop bx ; 5b 856 1562 retn ; c3 857 _ata_init: ; 0xf1b 49 LB 0xe41563 _ata_init: ; 0xf1b25 LB 0xc1 858 1564 push si ; 56 859 push di ; 57860 1565 push bp ; 55 861 1566 mov bp, sp ; 89 e5 862 1567 mov dx, strict word 0000eh ; ba 0e 00 863 1568 mov ax, strict word 00040h ; b8 40 00 864 call 0161ch ; e8 c5fa1569 call 0161ch ; e8 ea fa 865 1570 mov si, 00122h ; be 22 01 866 mov di, ax ; 89 c7 867 xor cl, cl ; 30 c9 868 jmp short 01b65h ; eb 05 869 cmp cl, 004h ; 80 f9 04 870 jnc short 01b92h ; 73 2d 871 mov al, cl ; 88 c8 872 xor ah, ah ; 30 e4 873 mov bx, strict word 00006h ; bb 06 00 874 imul bx ; f7 eb 875 mov es, di ; 8e c7 876 mov bx, si ; 89 f3 877 add bx, ax ; 01 c3 1571 mov dx, ax ; 89 c2 1572 xor al, al ; 30 c0 1573 jmp short 01b3fh ; eb 04 1574 cmp AL, strict byte 004h ; 3c 04 1575 jnc short 01b63h ; 73 24 1576 movzx bx, al ; 0f b6 d8 1577 imul bx, bx, strict byte 00006h ; 6b db 06 1578 mov es, dx ; 8e c2 1579 add bx, si ; 01 f3 878 1580 mov byte [es:bx+001c0h], 000h ; 26 c6 87 c0 01 00 879 mov word [es:bx+001c2h], strict word 00000h ; 26 c7 87 c2 01 00 00880 mov word [es:bx+001c4h], strict word 00000h ; 26 c7 87 c4 0100 001581 db 066h, 026h, 0c7h, 087h, 0c2h, 001h, 000h, 000h, 000h, 000h 1582 ; mov dword [es:bx+001c2h], strict dword 000000000h ; 66 26 c7 87 c2 01 00 00 00 00 881 1583 mov byte [es:bx+001c1h], 000h ; 26 c6 87 c1 01 00 882 db 0feh, 0c1h 883 ; inc cl ; fe c1 884 jmp short 01b60h ; eb ce 885 xor cl, cl ; 30 c9 886 jmp short 01b9bh ; eb 05 887 cmp cl, 008h ; 80 f9 08 888 jnc short 01bfah ; 73 5f 889 mov al, cl ; 88 c8 890 xor ah, ah ; 30 e4 891 mov bx, strict word 00018h ; bb 18 00 892 imul bx ; f7 eb 893 mov es, di ; 8e c7 894 mov bx, si ; 89 f3 895 add bx, ax ; 01 c3 896 mov word [es:bx+01eh], strict word 00000h ; 26 c7 47 1e 00 00 897 mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00 1584 db 0feh, 0c0h 1585 ; inc al ; fe c0 1586 jmp short 01b3bh ; eb d8 1587 xor al, al ; 30 c0 1588 jmp short 01b6bh ; eb 04 1589 cmp AL, strict byte 008h ; 3c 08 1590 jnc short 01bb6h ; 73 4b 1591 movzx bx, al ; 0f b6 d8 1592 imul bx, bx, strict byte 00018h ; 6b db 18 1593 mov es, dx ; 8e c2 1594 add bx, si ; 01 f3 1595 db 066h, 026h, 0c7h, 047h, 01eh, 000h, 000h, 000h, 000h 1596 ; mov dword [es:bx+01eh], strict dword 000000000h ; 66 26 c7 47 1e 00 00 00 00 898 1597 mov byte [es:bx+022h], 000h ; 26 c6 47 22 00 899 1598 mov word [es:bx+024h], 00200h ; 26 c7 47 24 00 02 900 1599 mov byte [es:bx+023h], 000h ; 26 c6 47 23 00 901 mov word [es:bx+026h], strict word 00000h ; 26 c7 47 26 00 00 902 mov word [es:bx+028h], strict word 00000h ; 26 c7 47 28 00 00 903 mov word [es:bx+02ah], strict word 00000h ; 26 c7 47 2a 00 00 904 mov word [es:bx+02ch], strict word 00000h ; 26 c7 47 2c 00 00 905 mov word [es:bx+02eh], strict word 00000h ; 26 c7 47 2e 00 00 906 mov word [es:bx+030h], strict word 00000h ; 26 c7 47 30 00 00 907 mov word [es:bx+032h], strict word 00000h ; 26 c7 47 32 00 00 908 mov word [es:bx+034h], strict word 00000h ; 26 c7 47 34 00 00 909 db 0feh, 0c1h 910 ; inc cl ; fe c1 911 jmp short 01b96h ; eb 9c 912 xor cl, cl ; 30 c9 913 jmp short 01c03h ; eb 05 914 cmp cl, 010h ; 80 f9 10 915 jnc short 01c1bh ; 73 18 916 mov bl, cl ; 88 cb 917 xor bh, bh ; 30 ff 918 mov es, di ; 8e c7 1600 db 066h, 026h, 0c7h, 047h, 026h, 000h, 000h, 000h, 000h 1601 ; mov dword [es:bx+026h], strict dword 000000000h ; 66 26 c7 47 26 00 00 00 00 1602 db 066h, 026h, 0c7h, 047h, 02ah, 000h, 000h, 000h, 000h 1603 ; mov dword [es:bx+02ah], strict dword 000000000h ; 66 26 c7 47 2a 00 00 00 00 1604 db 066h, 026h, 0c7h, 047h, 02eh, 000h, 000h, 000h, 000h 1605 ; mov dword [es:bx+02eh], strict dword 000000000h ; 66 26 c7 47 2e 00 00 00 00 1606 db 066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h 1607 ; mov dword [es:bx+032h], strict dword 000000000h ; 66 26 c7 47 32 00 00 00 00 1608 db 0feh, 0c0h 1609 ; inc al ; fe c0 1610 jmp short 01b67h ; eb b1 1611 xor al, al ; 30 c0 1612 jmp short 01bbeh ; eb 04 1613 cmp AL, strict byte 010h ; 3c 10 1614 jnc short 01bd5h ; 73 17 1615 movzx bx, al ; 0f b6 d8 1616 mov es, dx ; 8e c2 919 1617 add bx, si ; 01 f3 920 1618 mov byte [es:bx+0019fh], 010h ; 26 c6 87 9f 01 10 921 1619 mov byte [es:bx+001b0h], 010h ; 26 c6 87 b0 01 10 922 db 0feh, 0c 1h923 ; inc cl ; fe c1924 jmp short 01b feh ; eb e3925 mov es, d i ; 8e c71620 db 0feh, 0c0h 1621 ; inc al ; fe c0 1622 jmp short 01bbah ; eb e5 1623 mov es, dx ; 8e c2 926 1624 mov byte [es:si+0019eh], 000h ; 26 c6 84 9e 01 00 927 1625 mov byte [es:si+001afh], 000h ; 26 c6 84 af 01 00 928 1626 pop bp ; 5d 929 pop di ; 5f930 1627 pop si ; 5e 931 1628 retn ; c3 932 ata_reset_: ; 0xf1 c2d LB 0xe41629 ata_reset_: ; 0xf1be6 LB 0xda 933 1630 push bx ; 53 934 1631 push cx ; 51 … … 936 1633 push si ; 56 937 1634 push di ; 57 938 push bp ; 55 939 mov bp, sp ; 89 e5 940 push ax ; 50 941 push ax ; 50 1635 enter 00004h, 000h ; c8 04 00 00 942 1636 push ax ; 50 943 1637 mov dx, strict word 0000eh ; ba 0e 00 944 1638 mov ax, strict word 00040h ; b8 40 00 945 call 0161ch ; e8 db f9 1639 call 0161ch ; e8 23 fa 1640 mov word [bp-004h], 00122h ; c7 46 fc 22 01 1641 mov di, ax ; 89 c7 1642 mov bx, word [bp-006h] ; 8b 5e fa 1643 shr bx, 1 ; d1 eb 1644 mov dl, byte [bp-006h] ; 8a 56 fa 1645 and dl, 001h ; 80 e2 01 1646 mov byte [bp-002h], dl ; 88 56 fe 1647 xor bh, bh ; 30 ff 1648 imul bx, bx, strict byte 00006h ; 6b db 06 946 1649 mov es, ax ; 8e c0 947 mov di, 00122h ; bf 22 01 948 mov word [bp-004h], ax ; 89 46 fc 949 mov ax, word [bp-006h] ; 8b 46 fa 950 shr ax, 1 ; d1 e8 951 mov ah, byte [bp-006h] ; 8a 66 fa 952 and ah, 001h ; 80 e4 01 953 mov byte [bp-002h], ah ; 88 66 fe 954 xor ah, ah ; 30 e4 955 mov dx, strict word 00006h ; ba 06 00 956 imul dx ; f7 ea 957 mov bx, ax ; 89 c3 958 add bx, di ; 01 fb 1650 add bx, 00122h ; 81 c3 22 01 959 1651 mov cx, word [es:bx+001c2h] ; 26 8b 8f c2 01 960 1652 mov si, word [es:bx+001c4h] ; 26 8b b7 c4 01 … … 965 1657 dec bx ; 4b 966 1658 test bx, bx ; 85 db 967 jbe short 01c 86h ; 76 0c1659 jbe short 01c3dh ; 76 0c 968 1660 mov dx, cx ; 89 ca 969 1661 add dx, strict byte 00007h ; 83 c2 07 … … 972 1664 ; sub ah, ah ; 2a e4 973 1665 test AL, strict byte 080h ; a8 80 974 je short 01c 75h ; 74 ef1666 je short 01c2ch ; 74 ef 975 1667 lea dx, [si+006h] ; 8d 54 06 976 1668 mov AL, strict byte 00ah ; b0 0a 977 1669 out DX, AL ; ee 978 mov ax, word [bp-006h] ; 8b 46 fa 979 mov dx, strict word 00018h ; ba 18 00 980 imul dx ; f7 ea 981 mov es, [bp-004h] ; 8e 46 fc 982 mov bx, di ; 89 fb 983 add bx, ax ; 01 c3 1670 imul bx, word [bp-006h], strict byte 00018h ; 6b 5e fa 18 1671 mov es, di ; 8e c7 1672 add bx, word [bp-004h] ; 03 5e fc 984 1673 cmp byte [es:bx+01eh], 000h ; 26 80 7f 1e 00 985 je short 01c eeh ; 74 4c1674 je short 01c9fh ; 74 4c 986 1675 cmp byte [bp-002h], 000h ; 80 7e fe 00 987 je short 01c adh ; 74 051676 je short 01c5eh ; 74 05 988 1677 mov ax, 000b0h ; b8 b0 00 989 jmp short 01c b0h ; eb 031678 jmp short 01c61h ; eb 03 990 1679 mov ax, 000a0h ; b8 a0 00 991 1680 mov dx, cx ; 89 ca … … 1005 1694 ; sub ah, ah ; 2a e4 1006 1695 cmp bl, 001h ; 80 fb 01 1007 jne short 01c eeh ; 75 221696 jne short 01c9fh ; 75 22 1008 1697 cmp al, bl ; 38 d8 1009 jne short 01c eeh ; 75 1e1698 jne short 01c9fh ; 75 1e 1010 1699 mov bx, strict word 0ffffh ; bb ff ff 1011 1700 dec bx ; 4b 1012 1701 test bx, bx ; 85 db 1013 jbe short 01c eeh ; 76 161702 jbe short 01c9fh ; 76 16 1014 1703 mov dx, cx ; 89 ca 1015 1704 add dx, strict byte 00007h ; 83 c2 07 … … 1018 1707 ; sub ah, ah ; 2a e4 1019 1708 test AL, strict byte 080h ; a8 80 1020 je short 01c eeh ; 74 0a1709 je short 01c9fh ; 74 0a 1021 1710 mov ax, strict word 0ffffh ; b8 ff ff 1022 1711 dec ax ; 48 1023 1712 test ax, ax ; 85 c0 1024 jnbe short 01c e7h ; 77 fb1025 jmp short 01c d3h ; eb e51713 jnbe short 01c98h ; 77 fb 1714 jmp short 01c84h ; eb e5 1026 1715 mov bx, strict word 00010h ; bb 10 00 1027 1716 dec bx ; 4b 1028 1717 test bx, bx ; 85 db 1029 jbe short 01 d02h ; 76 0c1718 jbe short 01cb3h ; 76 0c 1030 1719 mov dx, cx ; 89 ca 1031 1720 add dx, strict byte 00007h ; 83 c2 07 … … 1034 1723 ; sub ah, ah ; 2a e4 1035 1724 test AL, strict byte 040h ; a8 40 1036 je short 01c f1h ; 74 ef1725 je short 01ca2h ; 74 ef 1037 1726 lea dx, [si+006h] ; 8d 54 06 1038 1727 mov AL, strict byte 008h ; b0 08 1039 1728 out DX, AL ; ee 1040 mov sp, bp ; 89 ec 1041 pop bp ; 5d 1729 leave ; c9 1042 1730 pop di ; 5f 1043 1731 pop si ; 5e … … 1046 1734 pop bx ; 5b 1047 1735 retn ; c3 1048 ata_cmd_data_in_: ; 0xf1 d11 LB 0x2681736 ata_cmd_data_in_: ; 0xf1cc0 LB 0x263 1049 1737 push si ; 56 1050 1738 push di ; 57 1051 push bp ; 55 1052 mov bp, sp ; 89 e5 1053 sub sp, strict byte 0001ch ; 83 ec 1c 1739 enter 0001ch, 000h ; c8 1c 00 00 1054 1740 mov si, ax ; 89 c6 1055 mov word [bp-0 16h], dx ; 89 56 ea1056 mov word [bp-0 0eh], bx ; 89 5e f21057 mov word [bp-01 8h], cx ; 89 4e e81741 mov word [bp-006h], dx ; 89 56 fa 1742 mov word [bp-012h], bx ; 89 5e ee 1743 mov word [bp-010h], cx ; 89 4e f0 1058 1744 mov es, dx ; 8e c2 1059 mov cl, byte [es:si+008h] ; 26 8a 4c 08 1060 xor ch, ch ; 30 ed 1061 mov ax, cx ; 89 c8 1062 mov dx, cx ; 89 ca 1745 movzx ax, byte [es:si+008h] ; 26 0f b6 44 08 1746 mov dx, ax ; 89 c2 1063 1747 shr dx, 1 ; d1 ea 1064 and AL, strict byte 001h ; 24 01 1065 mov byte [bp-004h], al ; 88 46 fc 1066 mov al, dl ; 88 d0 1067 mov dx, strict word 00006h ; ba 06 00 1068 imul dx ; f7 ea 1069 mov di, si ; 89 f7 1070 add di, ax ; 01 c7 1748 mov dh, al ; 88 c6 1749 and dh, 001h ; 80 e6 01 1750 mov byte [bp-004h], dh ; 88 76 fc 1751 movzx di, dl ; 0f b6 fa 1752 imul di, di, strict byte 00006h ; 6b ff 06 1753 add di, si ; 01 f7 1071 1754 mov bx, word [es:di+001c2h] ; 26 8b 9d c2 01 1072 mov ax, word [es:di+001c4h] ; 26 8b 85 c4 01 1073 mov word [bp-00ch], ax ; 89 46 f4 1074 mov ax, cx ; 89 c8 1075 mov dx, strict word 00018h ; ba 18 00 1076 imul dx ; f7 ea 1755 mov dx, word [es:di+001c4h] ; 26 8b 95 c4 01 1756 mov word [bp-018h], dx ; 89 56 e8 1757 imul ax, ax, strict byte 00018h ; 6b c0 18 1077 1758 mov di, si ; 89 f7 1078 1759 add di, ax ; 01 c7 … … 1080 1761 mov byte [bp-002h], al ; 88 46 fe 1081 1762 mov ax, word [es:di+024h] ; 26 8b 45 24 1082 mov word [bp-00 6h], ax ; 89 46 fa1763 mov word [bp-008h], ax ; 89 46 f8 1083 1764 test ax, ax ; 85 c0 1084 jne short 01d 80h ; 75 141765 jne short 01d26h ; 75 14 1085 1766 cmp byte [bp-002h], 001h ; 80 7e fe 01 1086 jne short 01d 79h ; 75 071087 mov word [bp-00 6h], 04000h ; c7 46 fa00 401088 jmp short 01d 8ch ; eb 131089 mov word [bp-00 6h], 08000h ; c7 46 fa00 801090 jmp short 01d 8ch ; eb 0c1767 jne short 01d1fh ; 75 07 1768 mov word [bp-008h], 04000h ; c7 46 f8 00 40 1769 jmp short 01d35h ; eb 16 1770 mov word [bp-008h], 08000h ; c7 46 f8 00 80 1771 jmp short 01d35h ; eb 0f 1091 1772 cmp byte [bp-002h], 001h ; 80 7e fe 01 1092 jne short 01d89h ; 75 03 1093 shr word [bp-006h], 1 ; d1 6e fa 1094 shr word [bp-006h], 1 ; d1 6e fa 1773 jne short 01d32h ; 75 06 1774 shr word [bp-008h], 002h ; c1 6e f8 02 1775 jmp short 01d35h ; eb 03 1776 shr word [bp-008h], 1 ; d1 6e f8 1095 1777 lea dx, [bx+007h] ; 8d 57 07 1096 1778 in AL, DX ; ec … … 1098 1780 ; sub ah, ah ; 2a e4 1099 1781 test AL, strict byte 080h ; a8 80 1100 je short 01d a5h ; 74 0f1101 mov dx, word [bp-0 0ch] ; 8b 56 f41782 je short 01d4eh ; 74 0f 1783 mov dx, word [bp-018h] ; 8b 56 e8 1102 1784 add dx, strict byte 00006h ; 83 c2 06 1103 1785 mov AL, strict byte 008h ; b0 08 1104 1786 out DX, AL ; ee 1105 1787 mov dx, strict word 00001h ; ba 01 00 1106 jmp near 01f 61h ; e9 bc011107 mov es, [bp-0 16h] ; 8e 46 ea1788 jmp near 01f0dh ; e9 bf 01 1789 mov es, [bp-006h] ; 8e 46 fa 1108 1790 mov ax, word [es:si] ; 26 8b 04 1109 1791 mov word [bp-01ch], ax ; 89 46 e4 … … 1112 1794 mov di, word [es:si+004h] ; 26 8b 7c 04 1113 1795 mov ax, word [es:si+006h] ; 26 8b 44 06 1114 mov word [bp-00 8h], ax ; 89 46 f81796 mov word [bp-00ah], ax ; 89 46 f6 1115 1797 mov ax, word [es:si+012h] ; 26 8b 44 12 1116 mov word [bp-00 ah], ax ; 89 46 f61798 mov word [bp-00ch], ax ; 89 46 f4 1117 1799 mov ax, word [es:si+00eh] ; 26 8b 44 0e 1118 mov word [bp-0 12h], ax ; 89 46 ee1800 mov word [bp-00eh], ax ; 89 46 f2 1119 1801 mov ax, word [es:si+010h] ; 26 8b 44 10 1120 1802 mov word [bp-014h], ax ; 89 46 ec 1121 mov ax, word [bp-00 ah] ; 8b 46 f61803 mov ax, word [bp-00ch] ; 8b 46 f4 1122 1804 test ax, ax ; 85 c0 1123 jne short 01 e3fh ; 75 631805 jne short 01dech ; 75 67 1124 1806 mov dx, word [bp-01ch] ; 8b 56 e4 1125 add dx, word [bp-01 8h] ; 03 56 e81807 add dx, word [bp-010h] ; 03 56 f0 1126 1808 adc ax, word [bp-01ah] ; 13 46 e6 1127 1809 cmp ax, 01000h ; 3d 00 10 1128 jnbe short 01d ech ; 77 021129 jne short 01 e13h ; 75 271810 jnbe short 01d95h ; 77 02 1811 jne short 01dc0h ; 75 2b 1130 1812 mov ax, word [bp-01ah] ; 8b 46 e6 1131 mov al, ah ; 88 e0 1132 xor ah, ah ; 30 e4 1133 mov word [bp-00ah], ax ; 89 46 f6 1134 mov ax, word [bp-018h] ; 8b 46 e8 1135 mov al, ah ; 88 e0 1813 xor al, al ; 30 c0 1814 shr ax, 008h ; c1 e8 08 1815 mov word [bp-00ch], ax ; 89 46 f4 1816 mov ax, word [bp-010h] ; 8b 46 f0 1817 xor al, al ; 30 c0 1818 shr ax, 008h ; c1 e8 08 1136 1819 lea dx, [bx+002h] ; 8d 57 02 1137 1820 out DX, AL ; ee 1138 1821 lea dx, [bx+003h] ; 8d 57 03 1139 mov al, byte [bp-00 ah] ; 8a 46 f61822 mov al, byte [bp-00ch] ; 8a 46 f4 1140 1823 out DX, AL ; ee 1141 1824 lea dx, [bx+004h] ; 8d 57 04 … … 1147 1830 mov ax, word [bp-01ch] ; 8b 46 e4 1148 1831 xor ah, ah ; 30 e4 1149 mov word [bp-00 ah], ax ; 89 46 f61832 mov word [bp-00ch], ax ; 89 46 f4 1150 1833 mov cx, strict word 00008h ; b9 08 00 1151 1834 shr word [bp-01ah], 1 ; d1 6e e6 1152 1835 rcr word [bp-01ch], 1 ; d1 5e e4 1153 loop 01 e1eh ; e2 f81836 loop 01dcbh ; e2 f8 1154 1837 mov ax, word [bp-01ch] ; 8b 46 e4 1155 mov word [bp-0 12h], ax ; 89 46 ee1838 mov word [bp-00eh], ax ; 89 46 f2 1156 1839 mov ax, word [bp-01ah] ; 8b 46 e6 1157 1840 mov word [bp-01ch], ax ; 89 46 e4 … … 1160 1843 or AL, strict byte 040h ; 0c 40 1161 1844 mov word [bp-014h], ax ; 89 46 ec 1162 mov dx, word [bp-0 0ch] ; 8b 56 f41845 mov dx, word [bp-018h] ; 8b 56 e8 1163 1846 add dx, strict byte 00006h ; 83 c2 06 1164 1847 mov AL, strict byte 00ah ; b0 0a … … 1168 1851 out DX, AL ; ee 1169 1852 lea dx, [bx+002h] ; 8d 57 02 1170 mov al, byte [bp-01 8h] ; 8a 46 e81853 mov al, byte [bp-010h] ; 8a 46 f0 1171 1854 out DX, AL ; ee 1172 1855 lea dx, [bx+003h] ; 8d 57 03 1173 mov al, byte [bp-00 ah] ; 8a 46 f61174 out DX, AL ; ee 1175 mov ax, word [bp-0 12h] ; 8b 46 ee1856 mov al, byte [bp-00ch] ; 8a 46 f4 1857 out DX, AL ; ee 1858 mov ax, word [bp-00eh] ; 8b 46 f2 1176 1859 lea dx, [bx+004h] ; 8d 57 04 1177 1860 out DX, AL ; ee 1178 mov al, byte [bp-011h] ; 8a 46 ef1861 shr ax, 008h ; c1 e8 08 1179 1862 lea dx, [bx+005h] ; 8d 57 05 1180 1863 out DX, AL ; ee 1181 1864 cmp byte [bp-004h], 000h ; 80 7e fc 00 1182 je short 01e 75h ; 74 051865 je short 01e22h ; 74 05 1183 1866 mov ax, 000b0h ; b8 b0 00 1184 jmp short 01e 78h ; eb 031867 jmp short 01e25h ; eb 03 1185 1868 mov ax, 000a0h ; b8 a0 00 1186 mov dl, byte [bp-014h] ; 8a 56 ec 1187 xor dh, dh ; 30 f6 1869 movzx dx, byte [bp-014h] ; 0f b6 56 ec 1188 1870 or ax, dx ; 09 d0 1189 1871 lea dx, [bx+006h] ; 8d 57 06 1190 1872 out DX, AL ; ee 1191 1873 lea dx, [bx+007h] ; 8d 57 07 1192 mov al, byte [bp-0 0eh] ; 8a 46 f21193 out DX, AL ; ee 1194 mov ax, word [bp-0 0eh] ; 8b 46 f21874 mov al, byte [bp-012h] ; 8a 46 ee 1875 out DX, AL ; ee 1876 mov ax, word [bp-012h] ; 8b 46 ee 1195 1877 cmp ax, 000c4h ; 3d c4 00 1196 je short 01e 97h ; 74 051878 je short 01e43h ; 74 05 1197 1879 cmp ax, strict word 00029h ; 3d 29 00 1198 jne short 01ea4h ; 75 0d 1199 mov ax, word [bp-018h] ; 8b 46 e8 1200 mov word [bp-010h], ax ; 89 46 f0 1201 mov word [bp-018h], strict word 00001h ; c7 46 e8 01 00 1202 jmp short 01ea9h ; eb 05 1880 jne short 01e50h ; 75 0d 1881 mov ax, word [bp-010h] ; 8b 46 f0 1882 mov word [bp-016h], ax ; 89 46 ea 1203 1883 mov word [bp-010h], strict word 00001h ; c7 46 f0 01 00 1884 jmp short 01e55h ; eb 05 1885 mov word [bp-016h], strict word 00001h ; c7 46 ea 01 00 1204 1886 lea dx, [bx+007h] ; 8d 57 07 1205 1887 in AL, DX ; ec … … 1208 1890 mov dl, al ; 88 c2 1209 1891 test AL, strict byte 080h ; a8 80 1210 jne short 01e a9h ; 75 f41892 jne short 01e55h ; 75 f4 1211 1893 test AL, strict byte 001h ; a8 01 1212 je short 01e c8h ; 74 0f1213 mov dx, word [bp-0 0ch] ; 8b 56 f41894 je short 01e74h ; 74 0f 1895 mov dx, word [bp-018h] ; 8b 56 e8 1214 1896 add dx, strict byte 00006h ; 83 c2 06 1215 1897 mov AL, strict byte 008h ; b0 08 1216 1898 out DX, AL ; ee 1217 1899 mov dx, strict word 00002h ; ba 02 00 1218 jmp near 01f 61h ; e9 99 001900 jmp near 01f0dh ; e9 99 00 1219 1901 test dl, 008h ; f6 c2 08 1220 jne short 01e dch ; 75 0f1221 mov dx, word [bp-0 0ch] ; 8b 56 f41902 jne short 01e88h ; 75 0f 1903 mov dx, word [bp-018h] ; 8b 56 e8 1222 1904 add dx, strict byte 00006h ; 83 c2 06 1223 1905 mov AL, strict byte 008h ; b0 08 1224 1906 out DX, AL ; ee 1225 1907 mov dx, strict word 00003h ; ba 03 00 1226 jmp near 01f 61h ; e9 85 001908 jmp near 01f0dh ; e9 85 00 1227 1909 sti ; fb 1228 1910 cmp di, 0f800h ; 81 ff 00 f8 1229 jc short 01e f0h ; 72 0d1911 jc short 01e9ch ; 72 0d 1230 1912 sub di, 00800h ; 81 ef 00 08 1231 mov ax, word [bp-00 8h] ; 8b 46 f81913 mov ax, word [bp-00ah] ; 8b 46 f6 1232 1914 add ax, 00080h ; 05 80 00 1233 mov word [bp-00 8h], ax ; 89 46 f81915 mov word [bp-00ah], ax ; 89 46 f6 1234 1916 cmp byte [bp-002h], 001h ; 80 7e fe 01 1235 jne short 01 f03h ; 75 0d1917 jne short 01eafh ; 75 0d 1236 1918 mov dx, bx ; 89 da 1237 mov cx, word [bp-00 6h] ; 8b 4e fa1238 mov es, [bp-00 8h] ; 8e 46 f81919 mov cx, word [bp-008h] ; 8b 4e f8 1920 mov es, [bp-00ah] ; 8e 46 f6 1239 1921 db 0f3h, 066h, 06dh 1240 1922 ; rep insd ; f3 66 6d 1241 jmp short 01 f0dh ; eb 0a1923 jmp short 01eb9h ; eb 0a 1242 1924 mov dx, bx ; 89 da 1243 mov cx, word [bp-00 6h] ; 8b 4e fa1244 mov es, [bp-00 8h] ; 8e 46 f81925 mov cx, word [bp-008h] ; 8b 4e f8 1926 mov es, [bp-00ah] ; 8e 46 f6 1245 1927 rep insw ; f3 6d 1246 mov ax, word [bp-01 0h] ; 8b 46 f01247 mov es, [bp-0 16h] ; 8e 46 ea1928 mov ax, word [bp-016h] ; 8b 46 ea 1929 mov es, [bp-006h] ; 8e 46 fa 1248 1930 add word [es:si+014h], ax ; 26 01 44 14 1249 dec word [bp-01 8h] ; ff 4e e81931 dec word [bp-010h] ; ff 4e f0 1250 1932 lea dx, [bx+007h] ; 8d 57 07 1251 1933 in AL, DX ; ec … … 1254 1936 mov dl, al ; 88 c2 1255 1937 test AL, strict byte 080h ; a8 80 1256 jne short 01 f1ah ; 75 f41257 cmp word [bp-01 8h], strict byte 00000h ; 83 7e e8001258 jne short 01 f40h ; 75 141938 jne short 01ec6h ; 75 f4 1939 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 1940 jne short 01eech ; 75 14 1259 1941 and AL, strict byte 0c9h ; 24 c9 1260 1942 cmp AL, strict byte 040h ; 3c 40 1261 je short 01f 56h ; 74 241262 mov dx, word [bp-0 0ch] ; 8b 56 f41943 je short 01f02h ; 74 24 1944 mov dx, word [bp-018h] ; 8b 56 e8 1263 1945 add dx, strict byte 00006h ; 83 c2 06 1264 1946 mov AL, strict byte 008h ; b0 08 1265 1947 out DX, AL ; ee 1266 1948 mov dx, strict word 00004h ; ba 04 00 1267 jmp short 01f 61h ; eb 211949 jmp short 01f0dh ; eb 21 1268 1950 mov al, dl ; 88 d0 1269 1951 and AL, strict byte 0c9h ; 24 c9 1270 1952 cmp AL, strict byte 048h ; 3c 48 1271 je short 01e ddh ; 74 951272 mov dx, word [bp-0 0ch] ; 8b 56 f41953 je short 01e89h ; 74 95 1954 mov dx, word [bp-018h] ; 8b 56 e8 1273 1955 add dx, strict byte 00006h ; 83 c2 06 1274 1956 mov AL, strict byte 008h ; b0 08 1275 1957 out DX, AL ; ee 1276 1958 mov dx, strict word 00005h ; ba 05 00 1277 jmp short 01f 61h ; eb 0b1278 mov dx, word [bp-0 0ch] ; 8b 56 f41959 jmp short 01f0dh ; eb 0b 1960 mov dx, word [bp-018h] ; 8b 56 e8 1279 1961 add dx, strict byte 00006h ; 83 c2 06 1280 1962 mov AL, strict byte 008h ; b0 08 … … 1282 1964 xor dx, dx ; 31 d2 1283 1965 mov ax, dx ; 89 d0 1284 mov sp, bp ; 89 ec 1285 pop bp ; 5d 1966 leave ; c9 1286 1967 pop di ; 5f 1287 1968 pop si ; 5e 1288 1969 retn ; c3 1289 sal word [bx+di], 0f7h ; c1 21 f7 1290 and bx, di ; 21 fb 1291 and di, di ; 21 ff 1292 and word [bp+di], ax ; 21 03 1293 and al, byte [bx] ; 22 07 1294 and cl, byte [bp+di] ; 22 0b 1295 and cl, byte [bx] ; 22 0f 1296 db 022h 1297 _ata_detect: ; 0xf1f79 LB 0x695 1970 dec bp ; 4d 1971 and word [di-076dfh], ax ; 21 85 21 89 1972 and word [di-06edfh], cx ; 21 8d 21 91 1973 and word [di-066dfh], dx ; 21 95 21 99 1974 db 021h 1975 popfw ; 9d 1976 db 021h 1977 _ata_detect: ; 0xf1f23 LB 0x621 1298 1978 push si ; 56 1299 1979 push di ; 57 1300 push bp ; 55 1301 mov bp, sp ; 89 e5 1302 sub sp, 00262h ; 81 ec 62 02 1980 enter 0025ah, 000h ; c8 5a 02 00 1303 1981 mov dx, strict word 0000eh ; ba 0e 00 1304 1982 mov ax, strict word 00040h ; b8 40 00 1305 call 0161ch ; e8 91f61306 mov word [bp-0 1eh], ax ; 89 46 e21983 call 0161ch ; e8 ea f6 1984 mov word [bp-022h], ax ; 89 46 de 1307 1985 mov bx, 00122h ; bb 22 01 1308 1986 mov es, ax ; 8e c0 1309 1987 mov si, bx ; 89 de 1310 mov word [bp-02 2h], ax ; 89 46 de1988 mov word [bp-026h], ax ; 89 46 da 1311 1989 mov byte [es:bx+001c0h], 000h ; 26 c6 87 c0 01 00 1312 mov word [es:bx+001c2h], 001f0h ; 26 c7 87 c2 01 f0 011313 mov word [es:bx+001c4h], 003f0h ; 26 c7 87 c401 f0 031990 db 066h, 026h, 0c7h, 087h, 0c2h, 001h, 0f0h, 001h, 0f0h, 003h 1991 ; mov dword [es:bx+001c2h], strict dword 003f001f0h ; 66 26 c7 87 c2 01 f0 01 f0 03 1314 1992 mov byte [es:bx+001c1h], 00eh ; 26 c6 87 c1 01 0e 1315 1993 mov byte [es:bx+001c6h], 000h ; 26 c6 87 c6 01 00 1316 mov word [es:bx+001c8h], 00170h ; 26 c7 87 c8 01 70 011317 mov word [es:bx+001cah], 00370h ; 26 c7 87 ca01 70 031994 db 066h, 026h, 0c7h, 087h, 0c8h, 001h, 070h, 001h, 070h, 003h 1995 ; mov dword [es:bx+001c8h], strict dword 003700170h ; 66 26 c7 87 c8 01 70 01 70 03 1318 1996 mov byte [es:bx+001c7h], 00fh ; 26 c6 87 c7 01 0f 1319 1997 xor al, al ; 30 c0 1320 mov byte [bp-00 8h], al ; 88 46 f81998 mov byte [bp-006h], al ; 88 46 fa 1321 1999 mov byte [bp-014h], al ; 88 46 ec 1322 mov byte [bp-0 0ch], al ; 88 46 f41323 jmp near 02 591h ; e9 b7052000 mov byte [bp-016h], al ; 88 46 ea 2001 jmp near 024cfh ; e9 56 05 1324 2002 mov ax, 000a0h ; b8 a0 00 1325 2003 lea dx, [bx+006h] ; 8d 57 06 1326 2004 out DX, AL ; ee 1327 lea cx, [bx+002h] ; 8d 4f 02 2005 lea di, [bx+002h] ; 8d 7f 02 2006 mov AL, strict byte 055h ; b0 55 2007 mov dx, di ; 89 fa 2008 out DX, AL ; ee 2009 lea cx, [bx+003h] ; 8d 4f 03 2010 mov AL, strict byte 0aah ; b0 aa 2011 mov dx, cx ; 89 ca 2012 out DX, AL ; ee 2013 mov dx, di ; 89 fa 2014 out DX, AL ; ee 1328 2015 mov AL, strict byte 055h ; b0 55 1329 2016 mov dx, cx ; 89 ca 1330 2017 out DX, AL ; ee 1331 lea di, [bx+003h] ; 8d 7f 03 2018 mov dx, di ; 89 fa 2019 out DX, AL ; ee 1332 2020 mov AL, strict byte 0aah ; b0 aa 2021 mov dx, cx ; 89 ca 2022 out DX, AL ; ee 1333 2023 mov dx, di ; 89 fa 1334 out DX, AL ; ee 1335 mov dx, cx ; 89 ca 1336 out DX, AL ; ee 1337 mov AL, strict byte 055h ; b0 55 1338 mov dx, di ; 89 fa 1339 out DX, AL ; ee 1340 mov dx, cx ; 89 ca 1341 out DX, AL ; ee 1342 mov AL, strict byte 0aah ; b0 aa 1343 mov dx, di ; 89 fa 1344 out DX, AL ; ee 2024 in AL, DX ; ec 2025 db 02ah, 0e4h 2026 ; sub ah, ah ; 2a e4 2027 mov word [bp-028h], ax ; 89 46 d8 1345 2028 mov dx, cx ; 89 ca 1346 2029 in AL, DX ; ec 1347 2030 db 02ah, 0e4h 1348 2031 ; sub ah, ah ; 2a e4 1349 mov cx, ax ; 89 c1 1350 mov dx, di ; 89 fa 1351 in AL, DX ; ec 1352 db 02ah, 0e4h 1353 ; sub ah, ah ; 2a e4 1354 cmp cl, 055h ; 80 f9 55 1355 jne short 0205dh ; 75 4b 2032 cmp byte [bp-028h], 055h ; 80 7e d8 55 2033 jne near 02084h ; 0f 85 cf 00 1356 2034 cmp AL, strict byte 0aah ; 3c aa 1357 jne short 0205dh ; 75 47 1358 mov al, byte [bp-00ch] ; 8a 46 f4 1359 xor ah, ah ; 30 e4 1360 mov dx, strict word 00018h ; ba 18 00 1361 imul dx ; f7 ea 1362 mov es, [bp-022h] ; 8e 46 de 2035 jne near 02084h ; 0f 85 c9 00 2036 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2037 imul ax, ax, strict byte 00018h ; 6b c0 18 2038 mov es, [bp-026h] ; 8e 46 da 1363 2039 mov di, si ; 89 f7 1364 2040 add di, ax ; 01 c7 1365 2041 mov byte [es:di+01eh], 001h ; 26 c6 45 1e 01 1366 mov al, byte [bp-00ch] ; 8a 46 f4 1367 xor ah, ah ; 30 e4 1368 call 01c2dh ; e8 f9 fb 1369 cmp byte [bp-00ah], 000h ; 80 7e f6 00 1370 je short 0203fh ; 74 05 2042 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2043 call 01be6h ; e8 11 fc 2044 cmp byte [bp-004h], 000h ; 80 7e fc 00 2045 je short 01fe0h ; 74 05 1371 2046 mov ax, 000b0h ; b8 b0 00 1372 jmp short 0 2042h ; eb 032047 jmp short 01fe3h ; eb 03 1373 2048 mov ax, 000a0h ; b8 a0 00 1374 2049 lea dx, [bx+006h] ; 8d 57 06 … … 1384 2059 ; sub ah, ah ; 2a e4 1385 2060 cmp cl, 001h ; 80 f9 01 1386 jne short 0209fh ; 75 462061 jne near 02084h ; 0f 85 88 00 1387 2062 cmp al, cl ; 38 c8 1388 je short 0205fh ; 74 02 1389 jmp short 0209fh ; eb 40 2063 jne near 02084h ; 0f 85 82 00 1390 2064 lea dx, [bx+004h] ; 8d 57 04 1391 2065 in AL, DX ; ec 1392 2066 db 02ah, 0e4h 1393 2067 ; sub ah, ah ; 2a e4 1394 mov cx, ax ; 89 c1 1395 mov ch, al ; 88 c5 2068 mov word [bp-028h], ax ; 89 46 d8 2069 mov al, byte [bp-028h] ; 8a 46 d8 2070 mov byte [bp-00ch], al ; 88 46 f4 1396 2071 lea dx, [bx+005h] ; 8d 57 05 1397 2072 in AL, DX ; ec 1398 2073 db 02ah, 0e4h 1399 2074 ; sub ah, ah ; 2a e4 1400 mov word [bp-01ah], ax ; 89 46 e6 1401 mov al, byte [bp-01ah] ; 8a 46 e6 1402 mov byte [bp-002h], al ; 88 46 fe 2075 mov cx, ax ; 89 c1 2076 mov byte [bp-00ah], al ; 88 46 f6 1403 2077 lea dx, [bx+007h] ; 8d 57 07 1404 2078 in AL, DX ; ec 1405 2079 db 02ah, 0e4h 1406 2080 ; sub ah, ah ; 2a e4 1407 cmp cl, 014h ; 80 f9 14 1408 jne short 020a1h ; 75 1e 1409 cmp byte [bp-01ah], 0ebh ; 80 7e e6 eb 1410 jne short 020a1h ; 75 18 1411 mov al, byte [bp-00ch] ; 8a 46 f4 1412 xor ah, ah ; 30 e4 1413 mov dx, strict word 00018h ; ba 18 00 1414 imul dx ; f7 ea 1415 mov es, [bp-022h] ; 8e 46 de 1416 mov bx, si ; 89 f3 1417 add bx, ax ; 01 c3 2081 cmp byte [bp-028h], 014h ; 80 7e d8 14 2082 jne short 02040h ; 75 18 2083 cmp cl, 0ebh ; 80 f9 eb 2084 jne short 02040h ; 75 13 2085 movzx bx, byte [bp-016h] ; 0f b6 5e ea 2086 imul bx, bx, strict byte 00018h ; 6b db 18 2087 mov es, [bp-026h] ; 8e 46 da 2088 add bx, si ; 01 f3 1418 2089 mov byte [es:bx+01eh], 003h ; 26 c6 47 1e 03 1419 jmp short 020 e7h ; eb 461420 test ch, ch ; 84 ed1421 jne short 020 c7h ; 75 221422 cmp byte [bp-00 2h], 000h ; 80 7e fe001423 jne short 020 c7h ; 75 1c2090 jmp short 02084h ; eb 44 2091 cmp byte [bp-00ch], 000h ; 80 7e f4 00 2092 jne short 02065h ; 75 1f 2093 cmp byte [bp-00ah], 000h ; 80 7e f6 00 2094 jne short 02065h ; 75 19 1424 2095 test al, al ; 84 c0 1425 je short 020c7h ; 74 18 1426 mov al, byte [bp-00ch] ; 8a 46 f4 1427 xor ah, ah ; 30 e4 1428 mov dx, strict word 00018h ; ba 18 00 1429 imul dx ; f7 ea 1430 mov es, [bp-022h] ; 8e 46 de 2096 je short 02065h ; 74 15 2097 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2098 imul ax, ax, strict byte 00018h ; 6b c0 18 2099 mov es, [bp-026h] ; 8e 46 da 1431 2100 mov bx, si ; 89 f3 1432 2101 add bx, ax ; 01 c3 1433 2102 mov byte [es:bx+01eh], 002h ; 26 c6 47 1e 02 1434 jmp short 020e7h ; eb 20 1435 cmp ch, 0ffh ; 80 fd ff 1436 jne short 020e7h ; 75 1b 1437 cmp ch, byte [bp-002h] ; 3a 6e fe 1438 jne short 020e7h ; 75 16 1439 mov al, byte [bp-00ch] ; 8a 46 f4 1440 xor ah, ah ; 30 e4 1441 mov dx, strict word 00018h ; ba 18 00 1442 imul dx ; f7 ea 1443 mov es, [bp-022h] ; 8e 46 de 2103 jmp short 02084h ; eb 1f 2104 cmp byte [bp-00ch], 0ffh ; 80 7e f4 ff 2105 jne short 02084h ; 75 19 2106 cmp byte [bp-00ah], 0ffh ; 80 7e f6 ff 2107 jne short 02084h ; 75 13 2108 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2109 imul ax, ax, strict byte 00018h ; 6b c0 18 2110 mov es, [bp-026h] ; 8e 46 da 1444 2111 mov bx, si ; 89 f3 1445 2112 add bx, ax ; 01 c3 1446 2113 mov byte [es:bx+01eh], 000h ; 26 c6 47 1e 00 1447 mov dx, word [bp-0 30h] ; 8b 56 d02114 mov dx, word [bp-02ch] ; 8b 56 d4 1448 2115 add dx, strict byte 00006h ; 83 c2 06 1449 2116 mov AL, strict byte 008h ; b0 08 1450 2117 out DX, AL ; ee 1451 mov al, byte [bp-00ch] ; 8a 46 f4 1452 xor ah, ah ; 30 e4 1453 mov dx, strict word 00018h ; ba 18 00 1454 imul dx ; f7 ea 1455 mov es, [bp-022h] ; 8e 46 de 2118 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2119 imul ax, ax, strict byte 00018h ; 6b c0 18 2120 mov es, [bp-026h] ; 8e 46 da 1456 2121 mov bx, si ; 89 f3 1457 2122 add bx, ax ; 01 c3 1458 2123 mov al, byte [es:bx+01eh] ; 26 8a 47 1e 1459 mov byte [bp-00 eh], al ; 88 46 f22124 mov byte [bp-002h], al ; 88 46 fe 1460 2125 cmp AL, strict byte 002h ; 3c 02 1461 jne short 02166h ; 75 5a2126 jne near 022a3h ; 0f 85 fb 01 1462 2127 mov byte [es:bx+01fh], 0ffh ; 26 c6 47 1f ff 1463 2128 mov byte [es:bx+022h], 000h ; 26 c6 47 22 00 1464 lea dx, [bp-002 62h] ; 8d 96 9efd2129 lea dx, [bp-0025ah] ; 8d 96 a6 fd 1465 2130 mov word [es:si+004h], dx ; 26 89 54 04 1466 2131 mov [es:si+006h], ss ; 26 8c 54 06 1467 mov al, byte [bp-0 0ch] ; 8a 46 f42132 mov al, byte [bp-016h] ; 8a 46 ea 1468 2133 mov byte [es:si+008h], al ; 26 88 44 08 1469 2134 mov cx, strict word 00001h ; b9 01 00 … … 1471 2136 mov ax, si ; 89 f0 1472 2137 mov dx, es ; 8c c2 1473 call 01 d11h ; e8 dbfb2138 call 01cc0h ; e8 ee fb 1474 2139 test ax, ax ; 85 c0 1475 je short 02148h ; 74 0e 1476 mov ax, strict word 0006ch ; b8 6c 00 1477 push ax ; 50 1478 mov ax, strict word 00007h ; b8 07 00 1479 push ax ; 50 1480 call 018fah ; e8 b5 f7 2140 je short 020e1h ; 74 0b 2141 push strict word 0006ch ; 68 6c 00 2142 push strict byte 00007h ; 6a 07 2143 call 018e9h ; e8 0b f8 1481 2144 add sp, strict byte 00004h ; 83 c4 04 1482 test byte [bp-00262h], 080h ; f6 86 9e fd 80 1483 je short 02154h ; 74 05 1484 mov ax, strict word 00001h ; b8 01 00 1485 jmp short 02156h ; eb 02 1486 xor ax, ax ; 31 c0 1487 mov byte [bp-018h], al ; 88 46 e8 1488 mov al, byte [bp-00202h] ; 8a 86 fe fd 1489 test al, al ; 84 c0 1490 je short 02169h ; 74 08 1491 mov ax, strict word 00001h ; b8 01 00 1492 jmp short 0216bh ; eb 05 1493 jmp near 0232fh ; e9 c6 01 2145 test byte [bp-0025ah], 080h ; f6 86 a6 fd 80 2146 db 00fh, 095h, 0c0h 2147 ; setne al ; 0f 95 c0 1494 2148 xor ah, ah ; 30 e4 1495 mov byte [bp-012h], al ; 88 46 ee 1496 mov word [bp-032h], 00200h ; c7 46 ce 00 02 1497 mov ax, word [bp-00260h] ; 8b 86 a0 fd 1498 mov word [bp-024h], ax ; 89 46 dc 1499 mov ax, word [bp-0025ch] ; 8b 86 a4 fd 1500 mov word [bp-02eh], ax ; 89 46 d2 1501 mov ax, word [bp-00256h] ; 8b 86 aa fd 1502 mov word [bp-028h], ax ; 89 46 d8 1503 mov ax, word [bp-001eah] ; 8b 86 16 fe 2149 mov byte [bp-008h], al ; 88 46 f8 2150 cmp byte [bp-001fah], 000h ; 80 be 06 fe 00 2151 db 00fh, 095h, 0c0h 2152 ; setne al ; 0f 95 c0 2153 xor ah, ah ; 30 e4 2154 mov byte [bp-00eh], al ; 88 46 f2 2155 mov word [bp-024h], 00200h ; c7 46 dc 00 02 2156 mov ax, word [bp-00258h] ; 8b 86 a8 fd 2157 mov word [bp-01eh], ax ; 89 46 e2 2158 mov ax, word [bp-00254h] ; 8b 86 ac fd 1504 2159 mov word [bp-01ch], ax ; 89 46 e4 1505 mov ax, word [bp-001e8h] ; 8b 86 18 fe 1506 mov word [bp-02ch], ax ; 89 46 d4 2160 mov ax, word [bp-0024eh] ; 8b 86 b2 fd 2161 mov word [bp-018h], ax ; 89 46 e8 2162 mov ax, word [bp-001e2h] ; 8b 86 1e fe 2163 mov word [bp-020h], ax ; 89 46 e0 2164 mov ax, word [bp-001e0h] ; 8b 86 20 fe 2165 mov word [bp-02ah], ax ; 89 46 d6 1507 2166 cmp ax, 00fffh ; 3d ff 0f 1508 jne short 021 afh ; 75 141509 cmp word [bp-0 1ch], strict byte 0ffffh ; 83 7e e4ff1510 jne short 021 afh ; 75 0e1511 mov ax, word [bp-0019 ah] ; 8b 86 66fe1512 mov word [bp-0 1ch], ax ; 89 46 e41513 mov ax, word [bp-0019 8h] ; 8b 86 68fe1514 mov word [bp-02 ch], ax ; 89 46 d41515 mov al, byte [bp-0 0ch] ; 8a 46 f42167 jne short 0213ch ; 75 14 2168 cmp word [bp-020h], strict byte 0ffffh ; 83 7e e0 ff 2169 jne short 0213ch ; 75 0e 2170 mov ax, word [bp-00192h] ; 8b 86 6e fe 2171 mov word [bp-020h], ax ; 89 46 e0 2172 mov ax, word [bp-00190h] ; 8b 86 70 fe 2173 mov word [bp-02ah], ax ; 89 46 d6 2174 mov al, byte [bp-016h] ; 8a 46 ea 1516 2175 cmp AL, strict byte 007h ; 3c 07 1517 jnbe short 02213h ; 77 5d 1518 mov bl, al ; 88 c3 1519 xor bh, bh ; 30 ff 1520 sal bx, 1 ; d1 e3 1521 jmp word [cs:bx+01f69h] ; 2e ff a7 69 1f 2176 jnbe short 021a1h ; 77 5e 2177 movzx bx, al ; 0f b6 d8 2178 add bx, bx ; 01 db 2179 jmp word [cs:bx+01f13h] ; 2e ff a7 13 1f 1522 2180 mov BL, strict byte 01eh ; b3 1e 1523 2181 mov al, bl ; 88 d8 … … 1525 2183 ; inc al ; fe c0 1526 2184 xor ah, ah ; 30 e4 1527 call 0165ch ; e8 90 f4 1528 mov dh, al ; 88 c6 1529 xor dl, dl ; 30 d2 1530 mov al, bl ; 88 d8 1531 xor ah, ah ; 30 e4 1532 call 0165ch ; e8 85 f4 2185 call 0165ch ; e8 04 f5 1533 2186 xor ah, ah ; 30 e4 1534 2187 mov di, ax ; 89 c7 1535 add di, dx ; 01 d7 2188 sal di, 008h ; c1 e7 08 2189 movzx ax, bl ; 0f b6 c3 2190 call 0165ch ; e8 f7 f4 2191 xor ah, ah ; 30 e4 2192 add di, ax ; 01 c7 1536 2193 mov al, bl ; 88 d8 1537 2194 add AL, strict byte 002h ; 04 02 1538 call 0165ch ; e8 78 f41539 2195 xor ah, ah ; 30 e4 1540 mov word [bp-02ah], ax ; 89 46 d6 2196 call 0165ch ; e8 ea f4 2197 movzx dx, al ; 0f b6 d0 1541 2198 mov al, bl ; 88 d8 1542 2199 add AL, strict byte 007h ; 04 07 1543 call 0165ch ; e8 6c f41544 2200 xor ah, ah ; 30 e4 1545 mov word [bp-020h], ax ; 89 46 e0 1546 jmp short 0221bh ; eb 24 2201 call 0165ch ; e8 de f4 2202 xor ah, ah ; 30 e4 2203 mov word [bp-01ah], ax ; 89 46 e6 2204 jmp short 021a8h ; eb 23 1547 2205 mov BL, strict byte 026h ; b3 26 1548 jmp short 021 c3h ; eb c82206 jmp short 0214fh ; eb c6 1549 2207 mov BL, strict byte 067h ; b3 67 1550 jmp short 021 c3h ; eb c42208 jmp short 0214fh ; eb c2 1551 2209 mov BL, strict byte 070h ; b3 70 1552 jmp short 021 c3h ; eb c02210 jmp short 0214fh ; eb be 1553 2211 mov BL, strict byte 040h ; b3 40 1554 jmp short 021 c3h ; eb bc2212 jmp short 0214fh ; eb ba 1555 2213 mov BL, strict byte 048h ; b3 48 1556 jmp short 021 c3h ; eb b82214 jmp short 0214fh ; eb b6 1557 2215 mov BL, strict byte 050h ; b3 50 1558 jmp short 021 c3h ; eb b42216 jmp short 0214fh ; eb b2 1559 2217 mov BL, strict byte 058h ; b3 58 1560 jmp short 021 c3h ; eb b02218 jmp short 0214fh ; eb ae 1561 2219 xor di, di ; 31 ff 1562 mov word [bp-02ah], di ; 89 7e d61563 mov word [bp-0 20h], di ; 89 7e e01564 mov bx, 00c 16h ; bb 160c2220 xor dx, dx ; 31 d2 2221 mov word [bp-01ah], di ; 89 7e e6 2222 mov bx, 00c08h ; bb 08 0c 1565 2223 mov cx, ds ; 8c d9 1566 2224 mov ax, strict word 00004h ; b8 04 00 1567 call 018 bdh ; e8 97f61568 push word [bp-0 20h] ; ff 76 e01569 push word [bp-02ah] ; ff 76 d62225 call 018aeh ; e8 fb f6 2226 push word [bp-01ah] ; ff 76 e6 2227 push dx ; 52 1570 2228 push di ; 57 1571 push word [bp-028h] ; ff 76 d8 1572 push word [bp-02eh] ; ff 76 d2 1573 push word [bp-024h] ; ff 76 dc 1574 mov al, byte [bp-00ah] ; 8a 46 f6 1575 xor ah, ah ; 30 e4 2229 push word [bp-018h] ; ff 76 e8 2230 push dword [bp-01eh] ; 66 ff 76 e2 2231 movzx ax, byte [bp-004h] ; 0f b6 46 fc 1576 2232 push ax ; 50 1577 mov al, byte [bp-010h] ; 8a 46 f02233 movzx ax, byte [bp-012h] ; 0f b6 46 ee 1578 2234 push ax ; 50 1579 mov ax, 00095h ; b8 95 00 1580 push ax ; 50 1581 mov ax, strict word 00004h ; b8 04 00 1582 push ax ; 50 1583 call 018fah ; e8 af f6 2235 push 00095h ; 68 95 00 2236 push strict byte 00004h ; 6a 04 2237 call 018e9h ; e8 18 f7 1584 2238 add sp, strict byte 00014h ; 83 c4 14 1585 mov al, byte [bp-00ch] ; 8a 46 f4 1586 xor ah, ah ; 30 e4 1587 mov dx, strict word 00018h ; ba 18 00 1588 imul dx ; f7 ea 1589 mov es, [bp-022h] ; 8e 46 de 2239 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2240 imul ax, ax, strict byte 00018h ; 6b c0 18 2241 mov es, [bp-026h] ; 8e 46 da 1590 2242 mov bx, si ; 89 f3 1591 2243 add bx, ax ; 01 c3 1592 2244 mov byte [es:bx+01fh], 0ffh ; 26 c6 47 1f ff 2245 mov al, byte [bp-008h] ; 8a 46 f8 2246 mov byte [es:bx+020h], al ; 26 88 47 20 2247 mov al, byte [bp-00eh] ; 8a 46 f2 2248 mov byte [es:bx+022h], al ; 26 88 47 22 2249 mov ax, word [bp-024h] ; 8b 46 dc 2250 mov word [es:bx+024h], ax ; 26 89 47 24 2251 mov ax, word [bp-01ch] ; 8b 46 e4 2252 mov word [es:bx+02ch], ax ; 26 89 47 2c 2253 mov ax, word [bp-01eh] ; 8b 46 e2 2254 mov word [es:bx+02eh], ax ; 26 89 47 2e 2255 mov ax, word [bp-018h] ; 8b 46 e8 2256 mov word [es:bx+030h], ax ; 26 89 47 30 2257 mov ax, word [bp-020h] ; 8b 46 e0 2258 mov word [es:bx+032h], ax ; 26 89 47 32 2259 mov ax, word [bp-02ah] ; 8b 46 d6 2260 mov word [es:bx+034h], ax ; 26 89 47 34 2261 mov word [es:bx+026h], dx ; 26 89 57 26 2262 mov word [es:bx+028h], di ; 26 89 7f 28 2263 mov ax, word [bp-01ah] ; 8b 46 e6 2264 mov word [es:bx+02ah], ax ; 26 89 47 2a 2265 mov al, byte [bp-016h] ; 8a 46 ea 2266 cmp AL, strict byte 002h ; 3c 02 2267 jnc short 0228fh ; 73 5a 2268 test al, al ; 84 c0 2269 jne short 0223eh ; 75 05 2270 mov bx, strict word 0003dh ; bb 3d 00 2271 jmp short 02241h ; eb 03 2272 mov bx, strict word 0004dh ; bb 4d 00 2273 mov cx, word [bp-022h] ; 8b 4e de 2274 mov es, cx ; 8e c1 2275 mov word [es:bx], di ; 26 89 3f 2276 mov byte [es:bx+002h], dl ; 26 88 57 02 2277 mov byte [es:bx+003h], 0a0h ; 26 c6 47 03 a0 1593 2278 mov al, byte [bp-018h] ; 8a 46 e8 1594 mov byte [es:bx+020h], al ; 26 88 47 20 1595 mov al, byte [bp-012h] ; 8a 46 ee 1596 mov byte [es:bx+022h], al ; 26 88 47 22 1597 mov ax, word [bp-032h] ; 8b 46 ce 1598 mov word [es:bx+024h], ax ; 26 89 47 24 1599 mov ax, word [bp-02eh] ; 8b 46 d2 1600 mov word [es:bx+02ch], ax ; 26 89 47 2c 1601 mov ax, word [bp-024h] ; 8b 46 dc 1602 mov word [es:bx+02eh], ax ; 26 89 47 2e 1603 mov ax, word [bp-028h] ; 8b 46 d8 1604 mov word [es:bx+030h], ax ; 26 89 47 30 1605 mov ax, word [bp-01ch] ; 8b 46 e4 1606 mov word [es:bx+032h], ax ; 26 89 47 32 1607 mov ax, word [bp-02ch] ; 8b 46 d4 1608 mov word [es:bx+034h], ax ; 26 89 47 34 1609 mov ax, word [bp-02ah] ; 8b 46 d6 1610 mov word [es:bx+026h], ax ; 26 89 47 26 1611 mov word [es:bx+028h], di ; 26 89 7f 28 1612 mov ax, word [bp-020h] ; 8b 46 e0 1613 mov word [es:bx+02ah], ax ; 26 89 47 2a 1614 mov al, byte [bp-00ch] ; 8a 46 f4 1615 cmp AL, strict byte 002h ; 3c 02 1616 jnc short 0231ah ; 73 65 1617 test al, al ; 84 c0 1618 jne short 022beh ; 75 05 1619 mov bx, strict word 0003dh ; bb 3d 00 1620 jmp short 022c1h ; eb 03 1621 mov bx, strict word 0004dh ; bb 4d 00 2279 mov byte [es:bx+004h], al ; 26 88 47 04 1622 2280 mov ax, word [bp-01eh] ; 8b 46 e2 1623 mov word [bp-026h], ax ; 89 46 da 2281 mov word [es:bx+009h], ax ; 26 89 47 09 2282 mov al, byte [bp-01ch] ; 8a 46 e4 2283 mov byte [es:bx+00bh], al ; 26 88 47 0b 2284 mov al, byte [bp-018h] ; 8a 46 e8 2285 mov byte [es:bx+00eh], al ; 26 88 47 0e 2286 xor al, al ; 30 c0 2287 xor ah, ah ; 30 e4 2288 jmp short 02279h ; eb 05 2289 cmp ah, 00fh ; 80 fc 0f 2290 jnc short 02287h ; 73 0e 2291 movzx di, ah ; 0f b6 fc 2292 mov es, cx ; 8e c1 2293 add di, bx ; 01 df 2294 add al, byte [es:di] ; 26 02 05 2295 db 0feh, 0c4h 2296 ; inc ah ; fe c4 2297 jmp short 02274h ; eb ed 2298 neg al ; f6 d8 2299 mov es, cx ; 8e c1 2300 mov byte [es:bx+00fh], al ; 26 88 47 0f 2301 movzx bx, byte [bp-014h] ; 0f b6 5e ec 1624 2302 mov es, [bp-026h] ; 8e 46 da 1625 mov word [es:bx], di ; 26 89 3f1626 mov al, byte [bp-02ah] ; 8a 46 d61627 mov byte [es:bx+002h], al ; 26 88 47 021628 mov byte [es:bx+003h], 0a0h ; 26 c6 47 03 a01629 mov al, byte [bp-028h] ; 8a 46 d81630 mov byte [es:bx+004h], al ; 26 88 47 041631 mov ax, word [bp-024h] ; 8b 46 dc1632 mov word [es:bx+009h], ax ; 26 89 47 091633 mov al, byte [bp-02eh] ; 8a 46 d21634 mov byte [es:bx+00bh], al ; 26 88 47 0b1635 mov al, byte [bp-028h] ; 8a 46 d81636 mov byte [es:bx+00eh], al ; 26 88 47 0e1637 xor cl, cl ; 30 c91638 xor al, al ; 30 c01639 jmp short 022ffh ; eb 041640 cmp AL, strict byte 00fh ; 3c 0f1641 jnc short 02311h ; 73 121642 mov dl, al ; 88 c21643 xor dh, dh ; 30 f61644 mov es, [bp-026h] ; 8e 46 da1645 mov di, bx ; 89 df1646 add di, dx ; 01 d71647 add cl, byte [es:di] ; 26 02 0d1648 db 0feh, 0c0h1649 ; inc al ; fe c01650 jmp short 022fbh ; eb ea1651 neg cl ; f6 d91652 mov es, [bp-026h] ; 8e 46 da1653 mov byte [es:bx+00fh], cl ; 26 88 4f 0f1654 mov bl, byte [bp-014h] ; 8a 5e ec1655 xor bh, bh ; 30 ff1656 mov es, [bp-022h] ; 8e 46 de1657 2303 add bx, si ; 01 f3 1658 mov al, byte [bp-0 0ch] ; 8a 46 f42304 mov al, byte [bp-016h] ; 8a 46 ea 1659 2305 mov byte [es:bx+0019fh], al ; 26 88 87 9f 01 1660 2306 inc byte [bp-014h] ; fe 46 ec 1661 cmp byte [bp-00eh], 003h ; 80 7e f2 03 1662 jne short 02397h ; 75 62 1663 mov al, byte [bp-00ch] ; 8a 46 f4 1664 xor ah, ah ; 30 e4 1665 mov dx, strict word 00018h ; ba 18 00 1666 imul dx ; f7 ea 1667 mov es, [bp-022h] ; 8e 46 de 2307 cmp byte [bp-002h], 003h ; 80 7e fe 03 2308 jne near 0233eh ; 0f 85 93 00 2309 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2310 imul ax, ax, strict byte 00018h ; 6b c0 18 2311 mov es, [bp-026h] ; 8e 46 da 1668 2312 mov bx, si ; 89 f3 1669 2313 add bx, ax ; 01 c3 1670 2314 mov byte [es:bx+01fh], 005h ; 26 c6 47 1f 05 1671 2315 mov byte [es:bx+022h], 000h ; 26 c6 47 22 00 1672 lea dx, [bp-002 62h] ; 8d 96 9efd2316 lea dx, [bp-0025ah] ; 8d 96 a6 fd 1673 2317 mov word [es:si+004h], dx ; 26 89 54 04 1674 2318 mov [es:si+006h], ss ; 26 8c 54 06 1675 mov al, byte [bp-0 0ch] ; 8a 46 f42319 mov al, byte [bp-016h] ; 8a 46 ea 1676 2320 mov byte [es:si+008h], al ; 26 88 44 08 1677 2321 mov cx, strict word 00001h ; b9 01 00 … … 1679 2323 mov ax, si ; 89 f0 1680 2324 mov dx, es ; 8c c2 1681 call 01 d11h ; e8 a1f92325 call 01cc0h ; e8 dd f9 1682 2326 test ax, ax ; 85 c0 1683 je short 02382h ; 74 0e 1684 mov ax, 000bch ; b8 bc 00 1685 push ax ; 50 1686 mov ax, strict word 00007h ; b8 07 00 1687 push ax ; 50 1688 call 018fah ; e8 7b f5 2327 je short 022f2h ; 74 0b 2328 push 000bch ; 68 bc 00 2329 push strict byte 00007h ; 6a 07 2330 call 018e9h ; e8 fa f5 1689 2331 add sp, strict byte 00004h ; 83 c4 04 1690 mov al, byte [bp-00261h] ; 8a 86 9f fd 1691 and AL, strict byte 01fh ; 24 1f 1692 mov byte [bp-016h], al ; 88 46 ea 1693 test byte [bp-00262h], 080h ; f6 86 9e fd 80 1694 je short 02399h ; 74 07 1695 mov ax, strict word 00001h ; b8 01 00 1696 jmp short 0239bh ; eb 04 1697 jmp short 023e7h ; eb 4e 1698 xor ax, ax ; 31 c0 1699 mov byte [bp-004h], al ; 88 46 fc 1700 cmp byte [bp-00202h], 000h ; 80 be fe fd 00 1701 je short 023aah ; 74 05 1702 mov cx, strict word 00001h ; b9 01 00 1703 jmp short 023ach ; eb 02 1704 xor cx, cx ; 31 c9 1705 mov al, byte [bp-00ch] ; 8a 46 f4 2332 mov dl, byte [bp-00259h] ; 8a 96 a7 fd 2333 and dl, 01fh ; 80 e2 1f 2334 test byte [bp-0025ah], 080h ; f6 86 a6 fd 80 2335 db 00fh, 095h, 0c0h 2336 ; setne al ; 0f 95 c0 1706 2337 xor ah, ah ; 30 e4 1707 mov dx, strict word 00018h ; ba 18 00 1708 imul dx ; f7 ea 1709 mov es, [bp-022h] ; 8e 46 de 1710 mov bx, si ; 89 f3 1711 add bx, ax ; 01 c3 2338 mov cx, ax ; 89 c1 2339 cmp byte [bp-001fah], 000h ; 80 be 06 fe 00 2340 db 00fh, 095h, 0c0h 2341 ; setne al ; 0f 95 c0 2342 xor ah, ah ; 30 e4 2343 movzx bx, byte [bp-016h] ; 0f b6 5e ea 2344 imul bx, bx, strict byte 00018h ; 6b db 18 2345 mov es, [bp-026h] ; 8e 46 da 2346 add bx, si ; 01 f3 2347 mov byte [es:bx+01fh], dl ; 26 88 57 1f 2348 mov byte [es:bx+020h], cl ; 26 88 4f 20 2349 mov byte [es:bx+022h], al ; 26 88 47 22 2350 mov word [es:bx+024h], 00800h ; 26 c7 47 24 00 08 2351 movzx bx, byte [bp-006h] ; 0f b6 5e fa 2352 add bx, si ; 01 f3 1712 2353 mov al, byte [bp-016h] ; 8a 46 ea 1713 mov byte [es:bx+01fh], al ; 26 88 47 1f1714 mov al, byte [bp-004h] ; 8a 46 fc1715 mov byte [es:bx+020h], al ; 26 88 47 201716 mov byte [es:bx+022h], cl ; 26 88 4f 221717 mov word [es:bx+024h], 00800h ; 26 c7 47 24 00 081718 mov bl, byte [bp-008h] ; 8a 5e f81719 xor bh, bh ; 30 ff1720 add bx, si ; 01 f31721 mov al, byte [bp-00ch] ; 8a 46 f41722 2354 mov byte [es:bx+001b0h], al ; 26 88 87 b0 01 1723 inc byte [bp-00 8h] ; fe 46 f81724 mov al, byte [bp-00 eh] ; 8a 46 f22355 inc byte [bp-006h] ; fe 46 fa 2356 mov al, byte [bp-002h] ; 8a 46 fe 1725 2357 cmp AL, strict byte 003h ; 3c 03 1726 je short 02 41ch ; 74 2e2358 je short 02372h ; 74 2d 1727 2359 cmp AL, strict byte 002h ; 3c 02 1728 jne short 0245dh ; 75 6b 1729 mov al, byte [bp-00ch] ; 8a 46 f4 1730 xor ah, ah ; 30 e4 1731 mov dx, strict word 00018h ; ba 18 00 1732 imul dx ; f7 ea 1733 mov es, [bp-022h] ; 8e 46 de 2360 jne near 023d7h ; 0f 85 8c 00 2361 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2362 imul ax, ax, strict byte 00018h ; 6b c0 18 2363 mov es, [bp-026h] ; 8e 46 da 1734 2364 mov bx, si ; 89 f3 1735 2365 add bx, ax ; 01 c3 1736 2366 mov ax, word [es:bx+032h] ; 26 8b 47 32 1737 mov word [bp-03 8h], ax ; 89 46 c82367 mov word [bp-030h], ax ; 89 46 d0 1738 2368 mov ax, word [es:bx+034h] ; 26 8b 47 34 1739 mov word [bp-0 36h], ax ; 89 46 ca2369 mov word [bp-02eh], ax ; 89 46 d2 1740 2370 mov cx, strict word 0000bh ; b9 0b 00 1741 shr word [bp-036h], 1 ; d1 6e ca 1742 rcr word [bp-038h], 1 ; d1 5e c8 1743 loop 02414h ; e2 f8 1744 mov ah, byte [bp-001c1h] ; 8a a6 3f fe 1745 mov al, byte [bp-001c2h] ; 8a 86 3e fe 1746 mov byte [bp-006h], 00fh ; c6 46 fa 0f 1747 jmp short 02433h ; eb 09 1748 dec byte [bp-006h] ; fe 4e fa 1749 cmp byte [bp-006h], 000h ; 80 7e fa 00 1750 jbe short 0243fh ; 76 0c 1751 mov cl, byte [bp-006h] ; 8a 4e fa 1752 mov dx, strict word 00001h ; ba 01 00 1753 sal dx, CL ; d3 e2 1754 test ax, dx ; 85 d0 1755 je short 0242ah ; 74 eb 2371 shr word [bp-02eh], 1 ; d1 6e d2 2372 rcr word [bp-030h], 1 ; d1 5e d0 2373 loop 0236ah ; e2 f8 2374 movzx dx, byte [bp-001b9h] ; 0f b6 96 47 fe 2375 sal dx, 008h ; c1 e2 08 2376 movzx ax, byte [bp-001bah] ; 0f b6 86 46 fe 2377 or dx, ax ; 09 c2 2378 mov byte [bp-010h], 00fh ; c6 46 f0 0f 2379 jmp short 02390h ; eb 09 2380 dec byte [bp-010h] ; fe 4e f0 2381 cmp byte [bp-010h], 000h ; 80 7e f0 00 2382 jbe short 0239dh ; 76 0d 2383 movzx cx, byte [bp-010h] ; 0f b6 4e f0 2384 mov ax, strict word 00001h ; b8 01 00 2385 sal ax, CL ; d3 e0 2386 test dx, ax ; 85 c2 2387 je short 02387h ; 74 ea 1756 2388 xor bx, bx ; 31 db 1757 jmp short 02 448h ; eb 052389 jmp short 023a6h ; eb 05 1758 2390 cmp bx, strict byte 00014h ; 83 fb 14 1759 jnl short 02 45fh ; 7d 172391 jnl short 023bbh ; 7d 15 1760 2392 mov di, bx ; 89 df 1761 sal di, 1 ; d1 e71762 mov al, byte [bp+di-0022 bh] ; 8a 83 d5fd1763 mov byte [bp+di-0 62h], al ; 88 43 9e1764 mov al, byte [bp+di-0022 ch] ; 8a 83 d4fd1765 mov byte [bp+di-0 61h], al ; 88 43 9f2393 add di, bx ; 01 df 2394 mov al, byte [bp+di-00223h] ; 8a 83 dd fd 2395 mov byte [bp+di-05ah], al ; 88 43 a6 2396 mov al, byte [bp+di-00224h] ; 8a 83 dc fd 2397 mov byte [bp+di-059h], al ; 88 43 a7 1766 2398 inc bx ; 43 1767 jmp short 02443h ; eb e6 1768 jmp short 0247bh ; eb 1c 1769 mov byte [bp-03ah], 000h ; c6 46 c6 00 2399 jmp short 023a1h ; eb e6 2400 mov byte [bp-032h], 000h ; c6 46 ce 00 1770 2401 mov bx, strict word 00027h ; bb 27 00 1771 jmp short 02 46dh ; eb 052402 jmp short 023c9h ; eb 05 1772 2403 dec bx ; 4b 1773 2404 test bx, bx ; 85 db 1774 jle short 02 47bh ; 7e 0e2405 jle short 023d7h ; 7e 0e 1775 2406 mov di, bx ; 89 df 1776 cmp byte [bp+di-0 62h], 020h ; 80 7b 9e201777 jne short 02 47bh ; 75 061778 mov byte [bp+di-0 62h], 000h ; c6 43 9e001779 jmp short 02 468h ; eb ed1780 mov al, byte [bp-00 eh] ; 8a 46 f22407 cmp byte [bp+di-05ah], 020h ; 80 7b a6 20 2408 jne short 023d7h ; 75 06 2409 mov byte [bp+di-05ah], 000h ; c6 43 a6 00 2410 jmp short 023c4h ; eb ed 2411 mov al, byte [bp-002h] ; 8a 46 fe 1781 2412 cmp AL, strict byte 003h ; 3c 03 1782 je short 024 eah ; 74 682413 je short 0243ch ; 74 5e 1783 2414 cmp AL, strict byte 002h ; 3c 02 1784 je short 02 48dh ; 74 072415 je short 023ebh ; 74 09 1785 2416 cmp AL, strict byte 001h ; 3c 01 1786 je short 024f5h ; 74 6b1787 jmp near 02 588h ; e9 fb 001788 cmp byte [bp-00 ah], 000h ; 80 7e f6001789 je short 02 498h ; 74 052417 je near 024a7h ; 0f 84 bf 00 2418 jmp near 024c6h ; e9 db 00 2419 cmp byte [bp-004h], 000h ; 80 7e fc 00 2420 je short 023f6h ; 74 05 1790 2421 mov ax, 000e7h ; b8 e7 00 1791 jmp short 02 49bh ; eb 032422 jmp short 023f9h ; eb 03 1792 2423 mov ax, 000eeh ; b8 ee 00 1793 2424 push ax ; 50 1794 mov al, byte [bp-010h] ; 8a 46 f0 1795 xor ah, ah ; 30 e4 2425 movzx ax, byte [bp-012h] ; 0f b6 46 ee 1796 2426 push ax ; 50 1797 mov ax, 000f5h ; b8 f5 00 1798 push ax ; 50 1799 mov ax, strict word 00002h ; b8 02 00 1800 push ax ; 50 1801 call 018fah ; e8 4d f4 2427 push 000f5h ; 68 f5 00 2428 push strict byte 00002h ; 6a 02 2429 call 018e9h ; e8 e2 f4 1802 2430 add sp, strict byte 00008h ; 83 c4 08 1803 2431 xor bx, bx ; 31 db 1804 2432 mov di, bx ; 89 df 1805 mov al, byte [bp+di-062h] ; 8a 43 9e 1806 xor ah, ah ; 30 e4 2433 movzx ax, byte [bp+di-05ah] ; 0f b6 43 a6 1807 2434 inc bx ; 43 1808 2435 test ax, ax ; 85 c0 1809 je short 024 cfh ; 74 112436 je short 02425h ; 74 0e 1810 2437 push ax ; 50 1811 mov ax, 00100h ; b8 00 01 2438 push 00100h ; 68 00 01 2439 push strict byte 00002h ; 6a 02 2440 call 018e9h ; e8 c9 f4 2441 add sp, strict byte 00006h ; 83 c4 06 2442 jmp short 0240ch ; eb e7 2443 push dword [bp-030h] ; 66 ff 76 d0 2444 movzx ax, byte [bp-010h] ; 0f b6 46 f0 1812 2445 push ax ; 50 1813 mov ax, strict word 00002h ; b8 02 00 1814 push ax ; 50 1815 call 018fah ; e8 30 f4 1816 add sp, strict byte 00006h ; 83 c4 06 1817 jmp short 024b2h ; eb e3 1818 push word [bp-036h] ; ff 76 ca 1819 push word [bp-038h] ; ff 76 c8 1820 mov al, byte [bp-006h] ; 8a 46 fa 1821 push ax ; 50 1822 mov ax, 00103h ; b8 03 01 1823 push ax ; 50 1824 mov ax, strict word 00002h ; b8 02 00 1825 push ax ; 50 1826 call 018fah ; e8 16 f4 2446 push 00103h ; 68 03 01 2447 push strict byte 00002h ; 6a 02 2448 call 018e9h ; e8 b3 f4 1827 2449 add sp, strict byte 0000ah ; 83 c4 0a 1828 jmp near 02 588h ; e9 9e001829 cmp byte [bp-00 ah], 000h ; 80 7e f6001830 je short 024 f7h ; 74 072450 jmp near 024c6h ; e9 8a 00 2451 cmp byte [bp-004h], 000h ; 80 7e fc 00 2452 je short 02447h ; 74 05 1831 2453 mov ax, 000e7h ; b8 e7 00 1832 jmp short 024fah ; eb 05 1833 jmp short 02565h ; eb 6e 2454 jmp short 0244ah ; eb 03 1834 2455 mov ax, 000eeh ; b8 ee 00 1835 2456 push ax ; 50 1836 mov al, byte [bp-010h] ; 8a 46 f0 1837 xor ah, ah ; 30 e4 2457 movzx ax, byte [bp-012h] ; 0f b6 46 ee 1838 2458 push ax ; 50 1839 mov ax, 000f5h ; b8 f5 00 1840 push ax ; 50 1841 mov ax, strict word 00002h ; b8 02 00 1842 push ax ; 50 1843 call 018fah ; e8 ee f3 2459 push 000f5h ; 68 f5 00 2460 push strict byte 00002h ; 6a 02 2461 call 018e9h ; e8 91 f4 1844 2462 add sp, strict byte 00008h ; 83 c4 08 1845 2463 xor bx, bx ; 31 db 1846 2464 mov di, bx ; 89 df 1847 mov al, byte [bp+di-062h] ; 8a 43 9e 1848 xor ah, ah ; 30 e4 2465 movzx ax, byte [bp+di-05ah] ; 0f b6 43 a6 1849 2466 inc bx ; 43 1850 2467 test ax, ax ; 85 c0 1851 je short 02 52eh ; 74 112468 je short 02476h ; 74 0e 1852 2469 push ax ; 50 1853 mov ax, 00100h ; b8 00 01 1854 push ax ; 50 1855 mov ax, strict word 00002h ; b8 02 00 1856 push ax ; 50 1857 call 018fah ; e8 d1 f3 2470 push 00100h ; 68 00 01 2471 push strict byte 00002h ; 6a 02 2472 call 018e9h ; e8 78 f4 1858 2473 add sp, strict byte 00006h ; 83 c4 06 1859 jmp short 02511h ; eb e3 1860 mov al, byte [bp-00ch] ; 8a 46 f4 1861 mov dx, strict word 00018h ; ba 18 00 1862 imul dx ; f7 ea 1863 mov es, [bp-022h] ; 8e 46 de 2474 jmp short 0245dh ; eb e7 2475 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2476 imul ax, ax, strict byte 00018h ; 6b c0 18 2477 mov es, [bp-026h] ; 8e 46 da 1864 2478 mov bx, si ; 89 f3 1865 2479 add bx, ax ; 01 c3 1866 2480 cmp byte [es:bx+01fh], 005h ; 26 80 7f 1f 05 1867 jne short 0254fh ; 75 0b 1868 mov al, byte [bp-006h] ; 8a 46 fa 1869 xor ah, ah ; 30 e4 2481 jne short 02495h ; 75 0a 2482 movzx ax, byte [bp-010h] ; 0f b6 46 f0 1870 2483 push ax ; 50 1871 mov ax, 00123h ; b8 23 01 1872 jmp short 02558h ; eb 09 1873 mov al, byte [bp-006h] ; 8a 46 fa 1874 xor ah, ah ; 30 e4 2484 push 00123h ; 68 23 01 2485 jmp short 0249dh ; eb 08 2486 movzx ax, byte [bp-010h] ; 0f b6 46 f0 1875 2487 push ax ; 50 1876 mov ax, 0013dh ; b8 3d 01 1877 push ax ; 50 1878 mov ax, strict word 00002h ; b8 02 00 1879 push ax ; 50 1880 call 018fah ; e8 9a f3 2488 push 0013dh ; 68 3d 01 2489 push strict byte 00002h ; 6a 02 2490 call 018e9h ; e8 47 f4 1881 2491 add sp, strict byte 00006h ; 83 c4 06 1882 jmp short 02 588h ; eb 231883 cmp byte [bp-00 ah], 000h ; 80 7e f6001884 je short 02 570h ; 74 052492 jmp short 024c6h ; eb 1f 2493 cmp byte [bp-004h], 000h ; 80 7e fc 00 2494 je short 024b2h ; 74 05 1885 2495 mov ax, 000e7h ; b8 e7 00 1886 jmp short 02 573h ; eb 032496 jmp short 024b5h ; eb 03 1887 2497 mov ax, 000eeh ; b8 ee 00 1888 2498 push ax ; 50 1889 mov al, byte [bp-010h] ; 8a 46 f0 1890 xor ah, ah ; 30 e4 2499 movzx ax, byte [bp-012h] ; 0f b6 46 ee 1891 2500 push ax ; 50 1892 mov ax, 0014fh ; b8 4f 01 1893 push ax ; 50 1894 mov ax, strict word 00002h ; b8 02 00 1895 push ax ; 50 1896 call 018fah ; e8 75 f3 2501 push 0014fh ; 68 4f 01 2502 push strict byte 00002h ; 6a 02 2503 call 018e9h ; e8 26 f4 1897 2504 add sp, strict byte 00008h ; 83 c4 08 1898 inc byte [bp-00ch] ; fe 46 f4 1899 cmp byte [bp-00ch], 008h ; 80 7e f4 08 1900 jnc short 025e7h ; 73 56 1901 mov bl, byte [bp-00ch] ; 8a 5e f4 1902 xor bh, bh ; 30 ff 2505 inc byte [bp-016h] ; fe 46 ea 2506 cmp byte [bp-016h], 008h ; 80 7e ea 08 2507 jnc short 02520h ; 73 51 2508 movzx bx, byte [bp-016h] ; 0f b6 5e ea 1903 2509 mov ax, bx ; 89 d8 1904 2510 cwd ; 99 … … 1907 2513 sar ax, 1 ; d1 f8 1908 2514 mov cx, ax ; 89 c1 1909 mov byte [bp-01 0h], al ; 88 46 f02515 mov byte [bp-012h], al ; 88 46 ee 1910 2516 mov ax, bx ; 89 d8 1911 2517 cwd ; 99 1912 2518 mov bx, strict word 00002h ; bb 02 00 1913 2519 idiv bx ; f7 fb 1914 mov word [bp-034h], dx ; 89 56 cc 1915 mov al, byte [bp-034h] ; 8a 46 cc 1916 mov byte [bp-00ah], al ; 88 46 f6 1917 mov al, cl ; 88 c8 1918 xor ah, ah ; 30 e4 1919 mov dx, strict word 00006h ; ba 06 00 1920 imul dx ; f7 ea 1921 mov es, [bp-022h] ; 8e 46 de 2520 mov word [bp-028h], dx ; 89 56 d8 2521 mov al, byte [bp-028h] ; 8a 46 d8 2522 mov byte [bp-004h], al ; 88 46 fc 2523 movzx ax, cl ; 0f b6 c1 2524 imul ax, ax, strict byte 00006h ; 6b c0 06 2525 mov es, [bp-026h] ; 8e 46 da 1922 2526 mov di, si ; 89 f7 1923 2527 add di, ax ; 01 c7 1924 2528 mov bx, word [es:di+001c2h] ; 26 8b 9d c2 01 1925 2529 mov ax, word [es:di+001c4h] ; 26 8b 85 c4 01 1926 mov word [bp-0 30h], ax ; 89 46 d02530 mov word [bp-02ch], ax ; 89 46 d4 1927 2531 mov dx, ax ; 89 c2 1928 2532 add dx, strict byte 00006h ; 83 c2 06 1929 2533 mov AL, strict byte 00ah ; b0 0a 1930 2534 out DX, AL ; ee 1931 cmp byte [bp-034h], 000h ; 80 7e cc 00 1932 jne short 025e1h ; 75 03 1933 jmp near 01fdah ; e9 f9 f9 2535 cmp byte [bp-028h], 000h ; 80 7e d8 00 2536 je near 01f79h ; 0f 84 5f fa 1934 2537 mov ax, 000b0h ; b8 b0 00 1935 jmp near 01f ddh ; e9 f6 f92538 jmp near 01f7ch ; e9 5c fa 1936 2539 mov al, byte [bp-014h] ; 8a 46 ec 1937 mov es, [bp-02 2h] ; 8e 46 de2540 mov es, [bp-026h] ; 8e 46 da 1938 2541 mov byte [es:si+0019eh], al ; 26 88 84 9e 01 1939 mov al, byte [bp-00 8h] ; 8a 46 f82542 mov al, byte [bp-006h] ; 8a 46 fa 1940 2543 mov byte [es:si+001afh], al ; 26 88 84 af 01 1941 mov bl, byte [bp-014h] ; 8a 5e ec 1942 xor bh, bh ; 30 ff 2544 movzx bx, byte [bp-014h] ; 0f b6 5e ec 1943 2545 mov dx, strict word 00075h ; ba 75 00 1944 2546 mov ax, strict word 00040h ; b8 40 00 1945 call 0160eh ; e8 06 f0 1946 mov sp, bp ; 89 ec 1947 pop bp ; 5d 2547 call 0160eh ; e8 ce f0 2548 leave ; c9 1948 2549 pop di ; 5f 1949 2550 pop si ; 5e 1950 2551 retn ; c3 1951 ata_cmd_data_out_: ; 0xf2 60e LB 0x21d2552 ata_cmd_data_out_: ; 0xf2544 LB 0x215 1952 2553 push si ; 56 1953 2554 push di ; 57 1954 push bp ; 55 1955 mov bp, sp ; 89 e5 1956 sub sp, strict byte 0001ah ; 83 ec 1a 2555 enter 0001ah, 000h ; c8 1a 00 00 1957 2556 mov di, ax ; 89 c7 1958 mov word [bp-0 16h], dx ; 89 56 ea1959 mov word [bp-01 2h], bx ; 89 5e ee1960 mov word [bp-0 14h], cx ; 89 4e ec2557 mov word [bp-006h], dx ; 89 56 fa 2558 mov word [bp-016h], bx ; 89 5e ea 2559 mov word [bp-00ah], cx ; 89 4e f6 1961 2560 mov es, dx ; 8e c2 1962 mov cl, byte [es:di+008h] ; 26 8a 4d 08 1963 xor ch, ch ; 30 ed 1964 mov ax, cx ; 89 c8 1965 mov dx, cx ; 89 ca 2561 movzx ax, byte [es:di+008h] ; 26 0f b6 45 08 2562 mov dx, ax ; 89 c2 1966 2563 shr dx, 1 ; d1 ea 1967 and AL, strict byte 001h ; 24 01 1968 mov byte [bp-004h], al ; 88 46 fc 1969 mov al, dl ; 88 d0 1970 mov dx, strict word 00006h ; ba 06 00 1971 imul dx ; f7 ea 1972 mov si, di ; 89 fe 1973 add si, ax ; 01 c6 2564 mov dh, al ; 88 c6 2565 and dh, 001h ; 80 e6 01 2566 mov byte [bp-002h], dh ; 88 76 fe 2567 movzx si, dl ; 0f b6 f2 2568 imul si, si, strict byte 00006h ; 6b f6 06 2569 add si, di ; 01 fe 1974 2570 mov bx, word [es:si+001c2h] ; 26 8b 9c c2 01 1975 mov ax, word [es:si+001c4h] ; 26 8b 84 c4 01 1976 mov word [bp-006h], ax ; 89 46 fa 1977 mov ax, cx ; 89 c8 1978 mov dx, strict word 00018h ; ba 18 00 1979 imul dx ; f7 ea 2571 mov dx, word [es:si+001c4h] ; 26 8b 94 c4 01 2572 mov word [bp-008h], dx ; 89 56 f8 2573 imul ax, ax, strict byte 00018h ; 6b c0 18 1980 2574 mov si, di ; 89 fe 1981 2575 add si, ax ; 01 c6 1982 2576 mov al, byte [es:si+022h] ; 26 8a 44 22 1983 mov byte [bp-00 2h], al ; 88 46 fe2577 mov byte [bp-004h], al ; 88 46 fc 1984 2578 cmp AL, strict byte 001h ; 3c 01 1985 jne short 02 669h ; 75 071986 mov word [bp-00 ch], 00080h ; c7 46 f480 001987 jmp short 02 66eh ; eb 051988 mov word [bp-00 ch], 00100h ; c7 46 f400 012579 jne short 02596h ; 75 07 2580 mov word [bp-00eh], 00080h ; c7 46 f2 80 00 2581 jmp short 0259bh ; eb 05 2582 mov word [bp-00eh], 00100h ; c7 46 f2 00 01 1989 2583 lea dx, [bx+007h] ; 8d 57 07 1990 2584 in AL, DX ; ec … … 1992 2586 ; sub ah, ah ; 2a e4 1993 2587 test AL, strict byte 080h ; a8 80 1994 je short 02 687h ; 74 0f1995 mov dx, word [bp-00 6h] ; 8b 56 fa2588 je short 025b4h ; 74 0f 2589 mov dx, word [bp-008h] ; 8b 56 f8 1996 2590 add dx, strict byte 00006h ; 83 c2 06 1997 2591 mov AL, strict byte 008h ; b0 08 1998 2592 out DX, AL ; ee 1999 2593 mov dx, strict word 00001h ; ba 01 00 2000 jmp near 02 823h ; e9 9c012001 mov es, [bp-0 16h] ; 8e 46 ea2594 jmp near 02753h ; e9 9f 01 2595 mov es, [bp-006h] ; 8e 46 fa 2002 2596 mov ax, word [es:di] ; 26 8b 05 2003 2597 mov word [bp-01ah], ax ; 89 46 e6 … … 2006 2600 mov si, word [es:di+004h] ; 26 8b 75 04 2007 2601 mov ax, word [es:di+006h] ; 26 8b 45 06 2008 mov word [bp-0 08h], ax ; 89 46 f82602 mov word [bp-014h], ax ; 89 46 ec 2009 2603 mov ax, word [es:di+012h] ; 26 8b 45 12 2010 mov word [bp-00 ah], ax ; 89 46 f62604 mov word [bp-00ch], ax ; 89 46 f4 2011 2605 mov ax, word [es:di+00eh] ; 26 8b 45 0e 2606 mov word [bp-012h], ax ; 89 46 ee 2607 mov ax, word [es:di+010h] ; 26 8b 45 10 2012 2608 mov word [bp-010h], ax ; 89 46 f0 2013 mov ax, word [es:di+010h] ; 26 8b 45 10 2014 mov word [bp-00eh], ax ; 89 46 f2 2015 mov ax, word [bp-00ah] ; 8b 46 f6 2609 mov ax, word [bp-00ch] ; 8b 46 f4 2016 2610 test ax, ax ; 85 c0 2017 jne short 02 721h ; 75 632611 jne short 02652h ; 75 67 2018 2612 mov dx, word [bp-01ah] ; 8b 56 e6 2019 add dx, word [bp-0 14h] ; 03 56 ec2613 add dx, word [bp-00ah] ; 03 56 f6 2020 2614 adc ax, word [bp-018h] ; 13 46 e8 2021 2615 cmp ax, 01000h ; 3d 00 10 2022 jnbe short 02 6ceh ; 77 022023 jne short 026 f5h ; 75 272616 jnbe short 025fbh ; 77 02 2617 jne short 02626h ; 75 2b 2024 2618 mov ax, word [bp-018h] ; 8b 46 e8 2025 mov al, ah ; 88 e0 2026 xor ah, ah ; 30 e4 2027 mov word [bp-00ah], ax ; 89 46 f6 2028 mov ax, word [bp-014h] ; 8b 46 ec 2029 mov al, ah ; 88 e0 2619 xor al, al ; 30 c0 2620 shr ax, 008h ; c1 e8 08 2621 mov word [bp-00ch], ax ; 89 46 f4 2622 mov ax, word [bp-00ah] ; 8b 46 f6 2623 xor al, al ; 30 c0 2624 shr ax, 008h ; c1 e8 08 2030 2625 lea dx, [bx+002h] ; 8d 57 02 2031 2626 out DX, AL ; ee 2032 2627 lea dx, [bx+003h] ; 8d 57 03 2033 mov al, byte [bp-00 ah] ; 8a 46 f62628 mov al, byte [bp-00ch] ; 8a 46 f4 2034 2629 out DX, AL ; ee 2035 2630 lea dx, [bx+004h] ; 8d 57 04 … … 2041 2636 mov ax, word [bp-01ah] ; 8b 46 e6 2042 2637 xor ah, ah ; 30 e4 2043 mov word [bp-00 ah], ax ; 89 46 f62638 mov word [bp-00ch], ax ; 89 46 f4 2044 2639 mov cx, strict word 00008h ; b9 08 00 2045 2640 shr word [bp-018h], 1 ; d1 6e e8 2046 2641 rcr word [bp-01ah], 1 ; d1 5e e6 2047 loop 02 700h ; e2 f82642 loop 02631h ; e2 f8 2048 2643 mov ax, word [bp-01ah] ; 8b 46 e6 2049 mov word [bp-01 0h], ax ; 89 46 f02644 mov word [bp-012h], ax ; 89 46 ee 2050 2645 mov ax, word [bp-018h] ; 8b 46 e8 2051 2646 mov word [bp-01ah], ax ; 89 46 e6 … … 2053 2648 and ax, strict word 0000fh ; 25 0f 00 2054 2649 or AL, strict byte 040h ; 0c 40 2055 mov word [bp-0 0eh], ax ; 89 46 f22056 mov dx, word [bp-00 6h] ; 8b 56 fa2650 mov word [bp-010h], ax ; 89 46 f0 2651 mov dx, word [bp-008h] ; 8b 56 f8 2057 2652 add dx, strict byte 00006h ; 83 c2 06 2058 2653 mov AL, strict byte 00ah ; b0 0a … … 2062 2657 out DX, AL ; ee 2063 2658 lea dx, [bx+002h] ; 8d 57 02 2064 mov al, byte [bp-0 14h] ; 8a 46 ec2659 mov al, byte [bp-00ah] ; 8a 46 f6 2065 2660 out DX, AL ; ee 2066 2661 lea dx, [bx+003h] ; 8d 57 03 2067 mov al, byte [bp-00 ah] ; 8a 46 f62068 out DX, AL ; ee 2069 mov ax, word [bp-01 0h] ; 8b 46 f02662 mov al, byte [bp-00ch] ; 8a 46 f4 2663 out DX, AL ; ee 2664 mov ax, word [bp-012h] ; 8b 46 ee 2070 2665 lea dx, [bx+004h] ; 8d 57 04 2071 2666 out DX, AL ; ee 2072 mov al, byte [bp-00fh] ; 8a 46 f12667 shr ax, 008h ; c1 e8 08 2073 2668 lea dx, [bx+005h] ; 8d 57 05 2074 2669 out DX, AL ; ee 2075 cmp byte [bp-00 4h], 000h ; 80 7e fc002076 je short 02 757h ; 74 052670 cmp byte [bp-002h], 000h ; 80 7e fe 00 2671 je short 02688h ; 74 05 2077 2672 mov ax, 000b0h ; b8 b0 00 2078 jmp short 02 75ah ; eb 032673 jmp short 0268bh ; eb 03 2079 2674 mov ax, 000a0h ; b8 a0 00 2080 mov dl, byte [bp-00eh] ; 8a 56 f2 2081 xor dh, dh ; 30 f6 2675 movzx dx, byte [bp-010h] ; 0f b6 56 f0 2082 2676 or ax, dx ; 09 d0 2083 2677 lea dx, [bx+006h] ; 8d 57 06 2084 2678 out DX, AL ; ee 2085 2679 lea dx, [bx+007h] ; 8d 57 07 2086 mov al, byte [bp-01 2h] ; 8a 46 ee2680 mov al, byte [bp-016h] ; 8a 46 ea 2087 2681 out DX, AL ; ee 2088 2682 lea dx, [bx+007h] ; 8d 57 07 … … 2092 2686 mov dl, al ; 88 c2 2093 2687 test AL, strict byte 080h ; a8 80 2094 jne short 02 76ch ; 75 f42688 jne short 0269ch ; 75 f4 2095 2689 test AL, strict byte 001h ; a8 01 2096 je short 02 78bh ; 74 0f2097 mov dx, word [bp-00 6h] ; 8b 56 fa2690 je short 026bbh ; 74 0f 2691 mov dx, word [bp-008h] ; 8b 56 f8 2098 2692 add dx, strict byte 00006h ; 83 c2 06 2099 2693 mov AL, strict byte 008h ; b0 08 2100 2694 out DX, AL ; ee 2101 2695 mov dx, strict word 00002h ; ba 02 00 2102 jmp near 02 823h ; e9 98 002696 jmp near 02753h ; e9 98 00 2103 2697 test dl, 008h ; f6 c2 08 2104 jne short 02 79fh ; 75 0f2105 mov dx, word [bp-00 6h] ; 8b 56 fa2698 jne short 026cfh ; 75 0f 2699 mov dx, word [bp-008h] ; 8b 56 f8 2106 2700 add dx, strict byte 00006h ; 83 c2 06 2107 2701 mov AL, strict byte 008h ; b0 08 2108 2702 out DX, AL ; ee 2109 2703 mov dx, strict word 00003h ; ba 03 00 2110 jmp near 02 823h ; e9 84 002704 jmp near 02753h ; e9 84 00 2111 2705 sti ; fb 2112 2706 cmp si, 0f800h ; 81 fe 00 f8 2113 jc short 02 7b3h ; 72 0d2707 jc short 026e3h ; 72 0d 2114 2708 sub si, 00800h ; 81 ee 00 08 2115 mov ax, word [bp-0 08h] ; 8b 46 f82709 mov ax, word [bp-014h] ; 8b 46 ec 2116 2710 add ax, 00080h ; 05 80 00 2117 mov word [bp-0 08h], ax ; 89 46 f82118 cmp byte [bp-00 2h], 001h ; 80 7e fe012119 jne short 02 7c7h ; 75 0e2711 mov word [bp-014h], ax ; 89 46 ec 2712 cmp byte [bp-004h], 001h ; 80 7e fc 01 2713 jne short 026f7h ; 75 0e 2120 2714 mov dx, bx ; 89 da 2121 mov cx, word [bp-00 ch] ; 8b 4e f42122 mov es, [bp-0 08h] ; 8e 46 f82715 mov cx, word [bp-00eh] ; 8b 4e f2 2716 mov es, [bp-014h] ; 8e 46 ec 2123 2717 db 0f3h, 066h, 026h, 06fh 2124 2718 ; rep es outsd ; f3 66 26 6f 2125 jmp short 027 d2h ; eb 0b2719 jmp short 02702h ; eb 0b 2126 2720 mov dx, bx ; 89 da 2127 mov cx, word [bp-00 ch] ; 8b 4e f42128 mov es, [bp-0 08h] ; 8e 46 f82721 mov cx, word [bp-00eh] ; 8b 4e f2 2722 mov es, [bp-014h] ; 8e 46 ec 2129 2723 db 0f3h, 026h, 06fh 2130 2724 ; rep es outsw ; f3 26 6f 2131 mov es, [bp-0 16h] ; 8e 46 ea2725 mov es, [bp-006h] ; 8e 46 fa 2132 2726 inc word [es:di+014h] ; 26 ff 45 14 2133 dec word [bp-0 14h] ; ff 4e ec2727 dec word [bp-00ah] ; ff 4e f6 2134 2728 lea dx, [bx+007h] ; 8d 57 07 2135 2729 in AL, DX ; ec … … 2138 2732 mov dl, al ; 88 c2 2139 2733 test AL, strict byte 080h ; a8 80 2140 jne short 027 dch ; 75 f42141 cmp word [bp-0 14h], strict byte 00000h ; 83 7e ec002142 jne short 02 802h ; 75 142734 jne short 0270ch ; 75 f4 2735 cmp word [bp-00ah], strict byte 00000h ; 83 7e f6 00 2736 jne short 02732h ; 75 14 2143 2737 and AL, strict byte 0e9h ; 24 e9 2144 2738 cmp AL, strict byte 040h ; 3c 40 2145 je short 02 818h ; 74 242146 mov dx, word [bp-00 6h] ; 8b 56 fa2739 je short 02748h ; 74 24 2740 mov dx, word [bp-008h] ; 8b 56 f8 2147 2741 add dx, strict byte 00006h ; 83 c2 06 2148 2742 mov AL, strict byte 008h ; b0 08 2149 2743 out DX, AL ; ee 2150 2744 mov dx, strict word 00006h ; ba 06 00 2151 jmp short 02 823h ; eb 212745 jmp short 02753h ; eb 21 2152 2746 mov al, dl ; 88 d0 2153 2747 and AL, strict byte 0c9h ; 24 c9 2154 2748 cmp AL, strict byte 048h ; 3c 48 2155 je short 02 7a0h ; 74 962156 mov dx, word [bp-00 6h] ; 8b 56 fa2749 je short 026d0h ; 74 96 2750 mov dx, word [bp-008h] ; 8b 56 f8 2157 2751 add dx, strict byte 00006h ; 83 c2 06 2158 2752 mov AL, strict byte 008h ; b0 08 2159 2753 out DX, AL ; ee 2160 2754 mov dx, strict word 00007h ; ba 07 00 2161 jmp short 02 823h ; eb 0b2162 mov dx, word [bp-00 6h] ; 8b 56 fa2755 jmp short 02753h ; eb 0b 2756 mov dx, word [bp-008h] ; 8b 56 f8 2163 2757 add dx, strict byte 00006h ; 83 c2 06 2164 2758 mov AL, strict byte 008h ; b0 08 … … 2166 2760 xor dx, dx ; 31 d2 2167 2761 mov ax, dx ; 89 d0 2168 mov sp, bp ; 89 ec 2169 pop bp ; 5d 2762 leave ; c9 2170 2763 pop di ; 5f 2171 2764 pop si ; 5e 2172 2765 retn ; c3 2173 @ata_read_sectors: ; 0xf2 82b LB 0x762766 @ata_read_sectors: ; 0xf2759 LB 0x77 2174 2767 push si ; 56 2175 2768 push di ; 57 2176 push bp ; 55 2177 mov bp, sp ; 89 e5 2178 push ax ; 50 2769 enter 00002h, 000h ; c8 02 00 00 2179 2770 mov si, word [bp+008h] ; 8b 76 08 2180 2771 mov es, [bp+00ah] ; 8e 46 0a 2181 mov al, byte [es:si+008h] ; 26 8a 44 08 2182 mov bx, word [es:si+00ah] ; 26 8b 5c 0a 2183 mov CL, strict byte 009h ; b1 09 2184 mov dx, bx ; 89 da 2185 sal dx, CL ; d3 e2 2186 mov cx, dx ; 89 d1 2187 cmp word [es:si+012h], strict byte 00000h ; 26 83 7c 12 00 2188 jne short 02872h ; 75 24 2189 xor di, di ; 31 ff 2190 mov dx, word [es:si] ; 26 8b 14 2191 add dx, bx ; 01 da 2192 mov word [bp-002h], dx ; 89 56 fe 2193 adc di, word [es:si+002h] ; 26 13 7c 02 2194 cmp di, 01000h ; 81 ff 00 10 2195 jnbe short 02864h ; 77 02 2196 jne short 02872h ; 75 0e 2197 mov cx, bx ; 89 d9 2772 mov bl, byte [es:si+008h] ; 26 8a 5c 08 2773 mov cx, word [es:si+00ah] ; 26 8b 4c 0a 2774 mov dx, cx ; 89 ca 2775 sal dx, 009h ; c1 e2 09 2776 mov ax, word [es:si+012h] ; 26 8b 44 12 2777 test ax, ax ; 85 c0 2778 je short 02787h ; 74 0d 2779 movzx di, bl ; 0f b6 fb 2780 imul di, di, strict byte 00018h ; 6b ff 18 2781 mov [bp-002h], es ; 8c 46 fe 2782 add di, si ; 01 f7 2783 jmp short 027b3h ; eb 2c 2784 mov di, word [es:si] ; 26 8b 3c 2785 add di, cx ; 01 cf 2786 mov word [bp-002h], di ; 89 7e fe 2787 adc ax, word [es:si+002h] ; 26 13 44 02 2788 cmp ax, 01000h ; 3d 00 10 2789 jnbe short 0279ah ; 77 02 2790 jne short 027a6h ; 75 0c 2198 2791 mov bx, strict word 00024h ; bb 24 00 2199 2792 mov ax, si ; 89 f0 2200 2793 mov dx, es ; 8c c2 2201 call 01d11h ; e8 a1 f4 2202 jmp short 02899h ; eb 27 2203 xor ah, ah ; 30 e4 2204 mov di, strict word 00018h ; bf 18 00 2205 imul di ; f7 ef 2206 mov dx, es ; 8c c2 2794 call 01cc0h ; e8 1c f5 2795 jmp short 027cah ; eb 24 2796 movzx ax, bl ; 0f b6 c3 2797 imul ax, ax, strict byte 00018h ; 6b c0 18 2207 2798 mov [bp-002h], es ; 8c 46 fe 2208 2799 mov di, si ; 89 f7 2209 2800 add di, ax ; 01 c7 2210 mov word [es:di+024h], cx ; 26 89 4d 24 2211 mov cx, bx ; 89 d9 2801 mov word [es:di+024h], dx ; 26 89 55 24 2212 2802 mov bx, 000c4h ; bb c4 00 2213 2803 mov ax, si ; 89 f0 2214 call 01d11h ; e8 81 f4 2804 mov dx, es ; 8c c2 2805 call 01cc0h ; e8 ff f4 2215 2806 mov es, [bp-002h] ; 8e 46 fe 2216 2807 mov word [es:di+024h], 00200h ; 26 c7 45 24 00 02 2217 mov sp, bp ; 89 ec 2218 pop bp ; 5d 2808 leave ; c9 2219 2809 pop di ; 5f 2220 2810 pop si ; 5e 2221 2811 retn 00004h ; c2 04 00 2222 @ata_write_sectors: ; 0xf2 8a1LB 0x3a2812 @ata_write_sectors: ; 0xf27d0 LB 0x3a 2223 2813 push si ; 56 2224 2814 push bp ; 55 … … 2227 2817 mov cx, word [es:si+00ah] ; 26 8b 4c 0a 2228 2818 cmp word [es:si+012h], strict byte 00000h ; 26 83 7c 12 00 2229 je short 02 8bfh ; 74 0c2819 je short 027eeh ; 74 0c 2230 2820 mov bx, strict word 00030h ; bb 30 00 2231 2821 mov ax, si ; 89 f0 2232 2822 mov dx, es ; 8c c2 2233 call 02 60eh ; e8 51fd2234 jmp short 028 d6h ; eb 172823 call 02544h ; e8 58 fd 2824 jmp short 02805h ; eb 17 2235 2825 xor ax, ax ; 31 c0 2236 2826 mov dx, word [es:si] ; 26 8b 14 … … 2238 2828 adc ax, word [es:si+002h] ; 26 13 44 02 2239 2829 cmp ax, 01000h ; 3d 00 10 2240 jnbe short 028 d1h ; 77 022241 jne short 02 8b3h ; 75 e22830 jnbe short 02800h ; 77 02 2831 jne short 027e2h ; 75 e2 2242 2832 mov bx, strict word 00034h ; bb 34 00 2243 jmp short 02 8b6h ; eb e02833 jmp short 027e5h ; eb e0 2244 2834 pop bp ; 5d 2245 2835 pop si ; 5e 2246 2836 retn 00004h ; c2 04 00 2247 ata_cmd_packet_: ; 0xf28 db LB 0x2ef2837 ata_cmd_packet_: ; 0xf280a LB 0x2e3 2248 2838 push si ; 56 2249 2839 push di ; 57 2250 push bp ; 55 2251 mov bp, sp ; 89 e5 2252 sub sp, strict byte 00014h ; 83 ec 14 2840 enter 00014h, 000h ; c8 14 00 00 2253 2841 push ax ; 50 2254 2842 mov byte [bp-004h], dl ; 88 56 fc 2255 2843 mov di, bx ; 89 df 2256 mov word [bp-010h], cx ; 89 4e f02257 2844 mov dx, strict word 0000eh ; ba 0e 00 2258 2845 mov ax, strict word 00040h ; b8 40 00 2259 call 0161ch ; e8 27ed2260 mov word [bp-00 ah], 00122h ; c7 46 f622 012261 mov word [bp-00 8h], ax ; 89 46 f82846 call 0161ch ; e8 fd ed 2847 mov word [bp-00eh], 00122h ; c7 46 f2 22 01 2848 mov word [bp-00ah], ax ; 89 46 f6 2262 2849 mov ax, word [bp-016h] ; 8b 46 ea 2263 2850 shr ax, 1 ; d1 e8 2264 mov cl, byte [bp-016h] ; 8a 4e ea 2265 and cl, 001h ; 80 e1 01 2851 mov ah, byte [bp-016h] ; 8a 66 ea 2852 and ah, 001h ; 80 e4 01 2853 mov byte [bp-002h], ah ; 88 66 fe 2266 2854 cmp byte [bp+00eh], 002h ; 80 7e 0e 02 2267 jne short 02 931h ; 75 232268 mov bx, 00c 16h ; bb 160c2855 jne short 0285ah ; 75 1f 2856 mov bx, 00c08h ; bb 08 0c 2269 2857 mov cx, ds ; 8c d9 2270 2858 mov ax, strict word 00004h ; b8 04 00 2271 call 018bdh ; e8 a4 ef 2272 mov ax, 00169h ; b8 69 01 2273 push ax ; 50 2274 mov ax, 00178h ; b8 78 01 2275 push ax ; 50 2276 mov ax, strict word 00004h ; b8 04 00 2277 push ax ; 50 2278 call 018fah ; e8 d2 ef 2859 call 018aeh ; e8 68 f0 2860 push 00169h ; 68 69 01 2861 push 00178h ; 68 78 01 2862 push strict byte 00004h ; 6a 04 2863 call 018e9h ; e8 98 f0 2279 2864 add sp, strict byte 00006h ; 83 c4 06 2280 2865 mov dx, strict word 00001h ; ba 01 00 2281 jmp near 02 bc0h ; e9 8f022866 jmp near 02ae5h ; e9 8b 02 2282 2867 test byte [bp+008h], 001h ; f6 46 08 01 2283 jne short 02 92bh ; 75 f42868 jne short 02854h ; 75 f4 2284 2869 xor ah, ah ; 30 e4 2285 mov dx, strict word 00006h ; ba 06 002286 imul dx ; f7 ea2287 les si, [bp-00ah] ; c4 76 f62870 imul ax, ax, strict byte 00006h ; 6b c0 06 2871 mov es, [bp-00ah] ; 8e 46 f6 2872 mov si, word [bp-00eh] ; 8b 76 f2 2288 2873 add si, ax ; 01 c6 2289 2874 mov bx, word [es:si+001c2h] ; 26 8b 9c c2 01 2290 2875 mov ax, word [es:si+001c4h] ; 26 8b 84 c4 01 2291 2876 mov word [bp-00ch], ax ; 89 46 f4 2292 mov ax, word [bp-016h] ; 8b 46 ea 2293 mov dx, strict word 00018h ; ba 18 00 2294 imul dx ; f7 ea 2295 mov si, word [bp-00ah] ; 8b 76 f6 2296 add si, ax ; 01 c6 2877 imul si, word [bp-016h], strict byte 00018h ; 6b 76 ea 18 2878 add si, word [bp-00eh] ; 03 76 f2 2297 2879 mov al, byte [es:si+022h] ; 26 8a 44 22 2298 mov byte [bp-00 2h], al ; 88 46 fe2880 mov byte [bp-006h], al ; 88 46 fa 2299 2881 xor ax, ax ; 31 c0 2882 mov word [bp-014h], ax ; 89 46 ec 2300 2883 mov word [bp-012h], ax ; 89 46 ee 2301 mov word [bp-00eh], ax ; 89 46 f22302 2884 mov al, byte [bp-004h] ; 8a 46 fc 2303 2885 cmp AL, strict byte 00ch ; 3c 0c 2304 jnc short 02 979h ; 73 062886 jnc short 0289dh ; 73 06 2305 2887 mov byte [bp-004h], 00ch ; c6 46 fc 0c 2306 jmp short 02 97fh ; eb 062307 jbe short 02 97fh ; 76 042888 jmp short 028a3h ; eb 06 2889 jbe short 028a3h ; 76 04 2308 2890 mov byte [bp-004h], 010h ; c6 46 fc 10 2309 2891 shr byte [bp-004h], 1 ; d0 6e fc 2310 les si, [bp-00ah] ; c4 76 f6 2311 mov word [es:si+014h], strict word 00000h ; 26 c7 44 14 00 00 2312 mov word [es:si+016h], strict word 00000h ; 26 c7 44 16 00 00 2892 mov es, [bp-00ah] ; 8e 46 f6 2893 mov si, word [bp-00eh] ; 8b 76 f2 2894 db 066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h 2895 ; mov dword [es:si+014h], strict dword 000000000h ; 66 26 c7 44 14 00 00 00 00 2313 2896 mov word [es:si+018h], strict word 00000h ; 26 c7 44 18 00 00 2314 2897 lea dx, [bx+007h] ; 8d 57 07 … … 2317 2900 ; sub ah, ah ; 2a e4 2318 2901 test AL, strict byte 080h ; a8 80 2319 je short 02 9a7h ; 74 062902 je short 028cbh ; 74 06 2320 2903 mov dx, strict word 00002h ; ba 02 00 2321 jmp near 02 bc0h ; e9 19022904 jmp near 02ae5h ; e9 1a 02 2322 2905 mov dx, word [bp-00ch] ; 8b 56 f4 2323 2906 add dx, strict byte 00006h ; 83 c2 06 … … 2330 2913 mov AL, strict byte 0ffh ; b0 ff 2331 2914 out DX, AL ; ee 2332 test cl, cl ; 84 c92333 je short 02 9c5h ; 74 052915 cmp byte [bp-002h], 000h ; 80 7e fe 00 2916 je short 028ebh ; 74 05 2334 2917 mov ax, 000b0h ; b8 b0 00 2335 jmp short 02 9c8h ; eb 032918 jmp short 028eeh ; eb 03 2336 2919 mov ax, 000a0h ; b8 a0 00 2337 2920 lea dx, [bx+006h] ; 8d 57 06 … … 2346 2929 mov dl, al ; 88 c2 2347 2930 test AL, strict byte 080h ; a8 80 2348 jne short 02 9d2h ; 75 f42931 jne short 028f8h ; 75 f4 2349 2932 test AL, strict byte 001h ; a8 01 2350 je short 029 f1h ; 74 0f2933 je short 02917h ; 74 0f 2351 2934 mov dx, word [bp-00ch] ; 8b 56 f4 2352 2935 add dx, strict byte 00006h ; 83 c2 06 … … 2354 2937 out DX, AL ; ee 2355 2938 mov dx, strict word 00003h ; ba 03 00 2356 jmp near 02 bc0h ; e9 cf012939 jmp near 02ae5h ; e9 ce 01 2357 2940 test dl, 008h ; f6 c2 08 2358 jne short 02 a05h ; 75 0f2941 jne short 0292bh ; 75 0f 2359 2942 mov dx, word [bp-00ch] ; 8b 56 f4 2360 2943 add dx, strict byte 00006h ; 83 c2 06 … … 2362 2945 out DX, AL ; ee 2363 2946 mov dx, strict word 00004h ; ba 04 00 2364 jmp near 02 bc0h ; e9 bb012947 jmp near 02ae5h ; e9 ba 01 2365 2948 sti ; fb 2366 mov CL, strict byte 004h ; b1 042367 2949 mov ax, di ; 89 f8 2368 shr ax, CL ; d3 e82369 add ax, word [bp-010h] ; 03 46 f02950 shr ax, 004h ; c1 e8 04 2951 add ax, cx ; 01 c8 2370 2952 mov si, di ; 89 fe 2371 2953 and si, strict byte 0000fh ; 83 e6 0f 2372 mov cl, byte [bp-004h] ; 8a 4e fc 2373 xor ch, ch ; 30 ed 2954 movzx cx, byte [bp-004h] ; 0f b6 4e fc 2374 2955 mov dx, bx ; 89 da 2375 2956 mov es, ax ; 8e c0 … … 2377 2958 ; rep es outsw ; f3 26 6f 2378 2959 cmp byte [bp+00eh], 000h ; 80 7e 0e 00 2379 jne short 02 a31h ; 75 0b2960 jne short 02954h ; 75 0b 2380 2961 lea dx, [bx+007h] ; 8d 57 07 2381 2962 in AL, DX ; ec … … 2383 2964 ; sub ah, ah ; 2a e4 2384 2965 mov dl, al ; 88 c2 2385 jmp near 02 ba1h ; e9 70012966 jmp near 02ac6h ; e9 72 01 2386 2967 lea dx, [bx+007h] ; 8d 57 07 2387 2968 in AL, DX ; ec … … 2390 2971 mov dl, al ; 88 c2 2391 2972 test AL, strict byte 080h ; a8 80 2392 jne short 02 a31h ; 75 f42973 jne short 02954h ; 75 f4 2393 2974 test AL, strict byte 088h ; a8 88 2394 je short 02aa1h ; 74 602975 je near 02ac6h ; 0f 84 60 01 2395 2976 test AL, strict byte 001h ; a8 01 2396 je short 02 a50h ; 74 0b2977 je short 02975h ; 74 0b 2397 2978 mov dx, word [bp-00ch] ; 8b 56 f4 2398 2979 add dx, strict byte 00006h ; 83 c2 06 2399 2980 mov AL, strict byte 008h ; b0 08 2400 2981 out DX, AL ; ee 2401 jmp short 029 ebh ; eb 9b2982 jmp short 02911h ; eb 9c 2402 2983 mov al, dl ; 88 d0 2403 2984 and AL, strict byte 0c9h ; 24 c9 2404 2985 cmp AL, strict byte 048h ; 3c 48 2405 je short 02 a63h ; 74 0b2986 je short 02988h ; 74 0b 2406 2987 mov dx, word [bp-00ch] ; 8b 56 f4 2407 2988 add dx, strict byte 00006h ; 83 c2 06 2408 2989 mov AL, strict byte 008h ; b0 08 2409 2990 out DX, AL ; ee 2410 jmp short 029ffh ; eb 9c 2411 mov CL, strict byte 004h ; b1 04 2991 jmp short 02925h ; eb 9d 2412 2992 mov ax, word [bp+010h] ; 8b 46 10 2413 shr ax, CL ; d3 e8 2414 add ax, word [bp+012h] ; 03 46 12 2415 mov dx, word [bp+010h] ; 8b 56 10 2416 and dx, strict byte 0000fh ; 83 e2 0f 2417 mov word [bp+010h], dx ; 89 56 10 2418 mov word [bp+012h], ax ; 89 46 12 2993 shr ax, 004h ; c1 e8 04 2994 mov dx, word [bp+012h] ; 8b 56 12 2995 add dx, ax ; 01 c2 2996 mov ax, word [bp+010h] ; 8b 46 10 2997 and ax, strict word 0000fh ; 25 0f 00 2998 mov word [bp+010h], ax ; 89 46 10 2999 mov word [bp+012h], dx ; 89 56 12 2419 3000 lea dx, [bx+005h] ; 8d 57 05 2420 3001 in AL, DX ; ec 2421 3002 db 02ah, 0e4h 2422 3003 ; sub ah, ah ; 2a e4 2423 mov c h, al ; 88 c52424 xor cl, cl ; 30 c93004 mov cx, ax ; 89 c1 3005 sal cx, 008h ; c1 e1 08 2425 3006 lea dx, [bx+004h] ; 8d 57 04 2426 3007 in AL, DX ; ec … … 2428 3009 ; sub ah, ah ; 2a e4 2429 3010 add cx, ax ; 01 c1 2430 mov word [bp-0 06h], cx ; 89 4e fa3011 mov word [bp-010h], cx ; 89 4e f0 2431 3012 mov ax, word [bp+008h] ; 8b 46 08 2432 3013 cmp ax, cx ; 39 c8 2433 jbe short 02 aa4h ; 76 0f3014 jbe short 029c8h ; 76 0c 2434 3015 mov ax, cx ; 89 c8 2435 3016 sub word [bp+008h], cx ; 29 4e 08 2436 3017 xor ax, cx ; 31 c8 2437 mov word [bp-006h], ax ; 89 46 fa 2438 jmp short 02aaeh ; eb 0d 2439 jmp near 02ba1h ; e9 fd 00 3018 mov word [bp-010h], ax ; 89 46 f0 3019 jmp short 029d2h ; eb 0a 2440 3020 mov cx, ax ; 89 c1 2441 3021 mov word [bp+008h], strict word 00000h ; c7 46 08 00 00 2442 sub word [bp-0 06h], ax ; 29 46 fa3022 sub word [bp-010h], ax ; 29 46 f0 2443 3023 xor ax, ax ; 31 c0 2444 3024 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 2445 jne short 02 ad7h ; 75 212446 mov dx, word [bp-0 06h] ; 8b 56 fa3025 jne short 029fbh ; 75 21 3026 mov dx, word [bp-010h] ; 8b 56 f0 2447 3027 cmp dx, word [bp+00ah] ; 3b 56 0a 2448 jbe short 02 ad7h ; 76 192449 mov ax, word [bp-0 06h] ; 8b 46 fa3028 jbe short 029fbh ; 76 19 3029 mov ax, word [bp-010h] ; 8b 46 f0 2450 3030 sub ax, word [bp+00ah] ; 2b 46 0a 2451 mov word [bp-0 14h], ax ; 89 46 ec3031 mov word [bp-008h], ax ; 89 46 f8 2452 3032 mov ax, word [bp+00ah] ; 8b 46 0a 2453 mov word [bp-0 06h], ax ; 89 46 fa3033 mov word [bp-010h], ax ; 89 46 f0 2454 3034 xor ax, ax ; 31 c0 2455 3035 mov word [bp+00ah], ax ; 89 46 0a 2456 3036 mov word [bp+00ch], ax ; 89 46 0c 2457 jmp short 02a e3h ; eb 0c2458 mov word [bp-0 14h], ax ; 89 46 ec2459 mov dx, word [bp-0 06h] ; 8b 56 fa3037 jmp short 02a07h ; eb 0c 3038 mov word [bp-008h], ax ; 89 46 f8 3039 mov dx, word [bp-010h] ; 8b 56 f0 2460 3040 sub word [bp+00ah], dx ; 29 56 0a 2461 3041 sbb word [bp+00ch], ax ; 19 46 0c 2462 mov si, word [bp-0 06h] ; 8b 76 fa2463 mov al, byte [bp-00 2h] ; 8a 46 fe3042 mov si, word [bp-010h] ; 8b 76 f0 3043 mov al, byte [bp-006h] ; 8a 46 fa 2464 3044 test cl, 003h ; f6 c1 03 2465 je short 02a f0h ; 74 023045 je short 02a14h ; 74 02 2466 3046 xor al, al ; 30 c0 2467 test byte [bp-0 06h], 003h ; f6 46 fa032468 je short 02a f8h ; 74 023047 test byte [bp-010h], 003h ; f6 46 f0 03 3048 je short 02a1ch ; 74 02 2469 3049 xor al, al ; 30 c0 2470 test byte [bp-0 14h], 003h ; f6 46 ec032471 je short 02 b00h ; 74 023050 test byte [bp-008h], 003h ; f6 46 f8 03 3051 je short 02a24h ; 74 02 2472 3052 xor al, al ; 30 c0 2473 test byte [bp-0 06h], 001h ; f6 46 fa012474 je short 02 b18h ; 74 122475 inc word [bp-0 06h] ; ff 46 fa2476 cmp word [bp-0 14h], strict byte 00000h ; 83 7e ec002477 jbe short 02 b18h ; 76 092478 test byte [bp-0 14h], 001h ; f6 46 ec012479 je short 02 b18h ; 74 032480 dec word [bp-0 14h] ; ff 4e ec3053 test byte [bp-010h], 001h ; f6 46 f0 01 3054 je short 02a3ch ; 74 12 3055 inc word [bp-010h] ; ff 46 f0 3056 cmp word [bp-008h], strict byte 00000h ; 83 7e f8 00 3057 jbe short 02a3ch ; 76 09 3058 test byte [bp-008h], 001h ; f6 46 f8 01 3059 je short 02a3ch ; 74 03 3060 dec word [bp-008h] ; ff 4e f8 2481 3061 cmp AL, strict byte 001h ; 3c 01 2482 jne short 02b2bh ; 75 0f 2483 shr word [bp-006h], 1 ; d1 6e fa 2484 shr word [bp-006h], 1 ; d1 6e fa 3062 jne short 02a4dh ; 75 0d 3063 shr word [bp-010h], 002h ; c1 6e f0 02 3064 shr cx, 002h ; c1 e9 02 3065 shr word [bp-008h], 002h ; c1 6e f8 02 3066 jmp short 02a55h ; eb 08 3067 shr word [bp-010h], 1 ; d1 6e f0 2485 3068 shr cx, 1 ; d1 e9 2486 shr cx, 1 ; d1 e9 2487 shr word [bp-014h], 1 ; d1 6e ec 2488 jmp short 02b30h ; eb 05 2489 shr word [bp-006h], 1 ; d1 6e fa 2490 shr cx, 1 ; d1 e9 2491 shr word [bp-014h], 1 ; d1 6e ec 3069 shr word [bp-008h], 1 ; d1 6e f8 2492 3070 cmp AL, strict byte 001h ; 3c 01 2493 jne short 02 b63h ; 75 2c3071 jne short 02a85h ; 75 2c 2494 3072 test cx, cx ; 85 c9 2495 je short 02 b45h ; 74 0a3073 je short 02a67h ; 74 0a 2496 3074 mov dx, bx ; 89 da 2497 3075 push eax ; 66 50 2498 3076 in eax, DX ; 66 ed 2499 loop 02 b3fh ; e2 fc3077 loop 02a61h ; e2 fc 2500 3078 pop eax ; 66 58 2501 3079 mov dx, bx ; 89 da 2502 mov cx, word [bp-0 06h] ; 8b 4e fa3080 mov cx, word [bp-010h] ; 8b 4e f0 2503 3081 les di, [bp+010h] ; c4 7e 10 2504 3082 db 0f3h, 066h, 06dh 2505 3083 ; rep insd ; f3 66 6d 2506 mov ax, word [bp-0 14h] ; 8b 46 ec3084 mov ax, word [bp-008h] ; 8b 46 f8 2507 3085 test ax, ax ; 85 c0 2508 je short 02 b82h ; 74 2b3086 je short 02aa4h ; 74 2b 2509 3087 mov cx, ax ; 89 c1 2510 3088 push eax ; 66 50 2511 3089 in eax, DX ; 66 ed 2512 loop 02 b5bh ; e2 fc3090 loop 02a7dh ; e2 fc 2513 3091 pop eax ; 66 58 2514 jmp short 02 b82h ; eb 1f3092 jmp short 02aa4h ; eb 1f 2515 3093 test cx, cx ; 85 c9 2516 je short 02 b6ch ; 74 053094 je short 02a8eh ; 74 05 2517 3095 mov dx, bx ; 89 da 2518 3096 in ax, DX ; ed 2519 loop 02 b69h ; e2 fd3097 loop 02a8bh ; e2 fd 2520 3098 mov dx, bx ; 89 da 2521 mov cx, word [bp-0 06h] ; 8b 4e fa3099 mov cx, word [bp-010h] ; 8b 4e f0 2522 3100 les di, [bp+010h] ; c4 7e 10 2523 3101 rep insw ; f3 6d 2524 mov ax, word [bp-0 14h] ; 8b 46 ec3102 mov ax, word [bp-008h] ; 8b 46 f8 2525 3103 test ax, ax ; 85 c0 2526 je short 02 b82h ; 74 053104 je short 02aa4h ; 74 05 2527 3105 mov cx, ax ; 89 c1 2528 3106 in ax, DX ; ed 2529 loop 02 b7fh ; e2 fd3107 loop 02aa1h ; e2 fd 2530 3108 add word [bp+010h], si ; 01 76 10 2531 3109 xor ax, ax ; 31 c0 2532 add word [bp-012h], si ; 01 76 ee 2533 adc word [bp-00eh], ax ; 11 46 f2 3110 add word [bp-014h], si ; 01 76 ec 3111 adc word [bp-012h], ax ; 11 46 ee 3112 mov ax, word [bp-014h] ; 8b 46 ec 3113 mov es, [bp-00ah] ; 8e 46 f6 3114 mov si, word [bp-00eh] ; 8b 76 f2 3115 mov word [es:si+016h], ax ; 26 89 44 16 2534 3116 mov ax, word [bp-012h] ; 8b 46 ee 2535 les si, [bp-00ah] ; c4 76 f62536 mov word [es:si+016h], ax ; 26 89 44 162537 mov ax, word [bp-00eh] ; 8b 46 f22538 3117 mov word [es:si+018h], ax ; 26 89 44 18 2539 jmp near 02 a31h ; e9 90fe3118 jmp near 02954h ; e9 8e fe 2540 3119 mov al, dl ; 88 d0 2541 3120 and AL, strict byte 0e9h ; 24 e9 2542 3121 cmp AL, strict byte 040h ; 3c 40 2543 je short 02 bb5h ; 74 0c3122 je short 02adah ; 74 0c 2544 3123 mov dx, word [bp-00ch] ; 8b 56 f4 2545 3124 add dx, strict byte 00006h ; 83 c2 06 2546 3125 mov AL, strict byte 008h ; b0 08 2547 3126 out DX, AL ; ee 2548 jmp near 029 ffh ; e9 4afe3127 jmp near 02925h ; e9 4b fe 2549 3128 mov dx, word [bp-00ch] ; 8b 56 f4 2550 3129 add dx, strict byte 00006h ; 83 c2 06 … … 2553 3132 xor dx, dx ; 31 d2 2554 3133 mov ax, dx ; 89 d0 2555 mov sp, bp ; 89 ec 2556 pop bp ; 5d 3134 leave ; c9 2557 3135 pop di ; 5f 2558 3136 pop si ; 5e 2559 3137 retn 0000ch ; c2 0c 00 2560 set_diskette_ret_status_: ; 0xf2 bca LB 0x163138 set_diskette_ret_status_: ; 0xf2aed LB 0x15 2561 3139 push bx ; 53 2562 3140 push dx ; 52 2563 3141 push bp ; 55 2564 3142 mov bp, sp ; 89 e5 2565 xor ah, ah ; 30 e4 2566 mov bx, ax ; 89 c3 3143 movzx bx, al ; 0f b6 d8 2567 3144 mov dx, strict word 00041h ; ba 41 00 2568 3145 mov ax, strict word 00040h ; b8 40 00 2569 call 0160eh ; e8 32 ea3146 call 0160eh ; e8 10 eb 2570 3147 pop bp ; 5d 2571 3148 pop dx ; 5a 2572 3149 pop bx ; 5b 2573 3150 retn ; c3 2574 set_diskette_current_cyl_: ; 0xf2b e0 LB 0x333151 set_diskette_current_cyl_: ; 0xf2b02 LB 0x2a 2575 3152 push bx ; 53 2576 push cx ; 512577 3153 push bp ; 55 2578 3154 mov bp, sp ; 89 e5 2579 3155 mov bl, al ; 88 c3 2580 3156 cmp AL, strict byte 001h ; 3c 01 2581 jbe short 02bf9h ; 76 0e 2582 mov ax, 00198h ; b8 98 01 2583 push ax ; 50 2584 mov ax, strict word 00007h ; b8 07 00 2585 push ax ; 50 2586 call 018fah ; e8 04 ed 3157 jbe short 02b17h ; 76 0b 3158 push 00198h ; 68 98 01 3159 push strict byte 00007h ; 6a 07 3160 call 018e9h ; e8 d5 ed 2587 3161 add sp, strict byte 00004h ; 83 c4 04 2588 mov al, dl ; 88 d0 2589 xor ah, ah ; 30 e4 2590 mov cx, ax ; 89 c1 2591 mov al, bl ; 88 d8 2592 mov dx, ax ; 89 c2 3162 movzx ax, dl ; 0f b6 c2 3163 movzx dx, bl ; 0f b6 d3 2593 3164 add dx, 00094h ; 81 c2 94 00 2594 mov bx, cx ; 89 cb2595 mov ax, strict word 00040h ; b8 40 00 2596 call 0160eh ; e8 ff e93165 mov bx, ax ; 89 c3 3166 mov ax, strict word 00040h ; b8 40 00 3167 call 0160eh ; e8 e5 ea 2597 3168 pop bp ; 5d 2598 pop cx ; 592599 3169 pop bx ; 5b 2600 3170 retn ; c3 2601 floppy_reset_controller_: ; 0xf2 c13 LB 0x253171 floppy_reset_controller_: ; 0xf2b2c LB 0x28 2602 3172 push bx ; 53 2603 3173 push dx ; 52 … … 2609 3179 ; sub ah, ah ; 2a e4 2610 3180 mov bx, ax ; 89 c3 3181 movzx ax, bl ; 0f b6 c3 2611 3182 and AL, strict byte 0fbh ; 24 fb 2612 3183 out DX, AL ; ee … … 2620 3191 and AL, strict byte 0c0h ; 24 c0 2621 3192 cmp AL, strict byte 080h ; 3c 80 2622 jne short 02 c28h ; 75 f43193 jne short 02b44h ; 75 f4 2623 3194 pop bp ; 5d 2624 3195 pop dx ; 5a 2625 3196 pop bx ; 5b 2626 3197 retn ; c3 2627 floppy_prepare_controller_: ; 0xf2 c38 LB 0x933198 floppy_prepare_controller_: ; 0xf2b54 LB 0x8c 2628 3199 push bx ; 53 2629 3200 push cx ; 51 2630 3201 push dx ; 52 2631 push bp ; 55 2632 mov bp, sp ; 89 e5 2633 push ax ; 50 3202 enter 00002h, 000h ; c8 02 00 00 2634 3203 mov cx, ax ; 89 c1 2635 3204 mov dx, strict word 0003eh ; ba 3e 00 2636 3205 mov ax, strict word 00040h ; b8 40 00 2637 call 01600h ; e8 b6 e93206 call 01600h ; e8 9a ea 2638 3207 and AL, strict byte 07fh ; 24 7f 2639 xor ah, ah ; 30 e4 2640 mov bx, ax ; 89 c3 3208 movzx bx, al ; 0f b6 d8 2641 3209 mov dx, strict word 0003eh ; ba 3e 00 2642 3210 mov ax, strict word 00040h ; b8 40 00 2643 call 0160eh ; e8 b5 e93211 call 0160eh ; e8 9a ea 2644 3212 mov dx, 003f2h ; ba f2 03 2645 3213 in AL, DX ; ec … … 2649 3217 mov byte [bp-002h], al ; 88 46 fe 2650 3218 test cx, cx ; 85 c9 2651 je short 02 c6ch ; 74 043219 je short 02b87h ; 74 04 2652 3220 mov AL, strict byte 020h ; b0 20 2653 jmp short 02 c6eh ; eb 023221 jmp short 02b89h ; eb 02 2654 3222 mov AL, strict byte 010h ; b0 10 2655 3223 or AL, strict byte 00ch ; 0c 0c … … 2660 3228 mov dx, strict word 00040h ; ba 40 00 2661 3229 mov ax, dx ; 89 d0 2662 call 0160eh ; e8 8d e93230 call 0160eh ; e8 72 ea 2663 3231 mov dx, 0008bh ; ba 8b 00 2664 3232 mov ax, strict word 00040h ; b8 40 00 2665 call 01600h ; e8 76 e9 2666 mov CL, strict byte 006h ; b1 06 2667 shr al, CL ; d2 e8 3233 call 01600h ; e8 5b ea 3234 shr al, 006h ; c0 e8 06 2668 3235 mov dx, 003f7h ; ba f7 03 2669 3236 out DX, AL ; ee … … 2674 3241 and AL, strict byte 0c0h ; 24 c0 2675 3242 cmp AL, strict byte 080h ; 3c 80 2676 jne short 02 c92h ; 75 f43243 jne short 02bach ; 75 f4 2677 3244 cmp byte [bp-002h], 000h ; 80 7e fe 00 2678 jne short 02 cc4h ; 75 203245 jne short 02bdbh ; 75 1d 2679 3246 sti ; fb 2680 3247 mov dx, strict word 0003eh ; ba 3e 00 2681 3248 mov ax, strict word 00040h ; b8 40 00 2682 call 01600h ; e8 52 e93249 call 01600h ; e8 38 ea 2683 3250 test AL, strict byte 080h ; a8 80 2684 je short 02 ca5h ; 74 f33251 je short 02bbfh ; 74 f3 2685 3252 and AL, strict byte 07fh ; 24 7f 2686 3253 cli ; fa 2687 mov cl, al ; 88 c1 2688 xor ch, ch ; 30 ed 2689 mov bx, cx ; 89 cb 3254 movzx bx, al ; 0f b6 d8 2690 3255 mov dx, strict word 0003eh ; ba 3e 00 2691 3256 mov ax, strict word 00040h ; b8 40 00 2692 call 0160eh ; e8 4a e9 2693 mov sp, bp ; 89 ec 2694 pop bp ; 5d 3257 call 0160eh ; e8 33 ea 3258 leave ; c9 2695 3259 pop dx ; 5a 2696 3260 pop cx ; 59 2697 3261 pop bx ; 5b 2698 3262 retn ; c3 2699 floppy_media_known_: ; 0xf2ccb LB 0x43 3263 floppy_media_known_: ; 0xf2be0 LB 0x40 3264 push bx ; 53 3265 push dx ; 52 3266 push bp ; 55 3267 mov bp, sp ; 89 e5 3268 mov bx, ax ; 89 c3 3269 mov dx, strict word 0003eh ; ba 3e 00 3270 mov ax, strict word 00040h ; b8 40 00 3271 call 01600h ; e8 10 ea 3272 mov ah, al ; 88 c4 3273 test bx, bx ; 85 db 3274 je short 02bf8h ; 74 02 3275 shr al, 1 ; d0 e8 3276 and AL, strict byte 001h ; 24 01 3277 jne short 02c00h ; 75 04 3278 xor ah, ah ; 30 e4 3279 jmp short 02c1ch ; eb 1c 3280 mov dx, 00090h ; ba 90 00 3281 test bx, bx ; 85 db 3282 je short 02c0ah ; 74 03 3283 mov dx, 00091h ; ba 91 00 3284 mov ax, strict word 00040h ; b8 40 00 3285 call 01600h ; e8 f0 e9 3286 xor ah, ah ; 30 e4 3287 sar ax, 004h ; c1 f8 04 3288 and AL, strict byte 001h ; 24 01 3289 je short 02bfch ; 74 e3 3290 mov ax, strict word 00001h ; b8 01 00 3291 pop bp ; 5d 3292 pop dx ; 5a 3293 pop bx ; 5b 3294 retn ; c3 3295 floppy_read_id_: ; 0xf2c20 LB 0x49 3296 push bx ; 53 3297 push dx ; 52 3298 push si ; 56 3299 enter 00008h, 000h ; c8 08 00 00 3300 mov bx, ax ; 89 c3 3301 call 02b54h ; e8 28 ff 3302 mov AL, strict byte 04ah ; b0 4a 3303 mov dx, 003f5h ; ba f5 03 3304 out DX, AL ; ee 3305 mov al, bl ; 88 d8 3306 out DX, AL ; ee 3307 sti ; fb 3308 mov dx, strict word 0003eh ; ba 3e 00 3309 mov ax, strict word 00040h ; b8 40 00 3310 call 01600h ; e8 c1 e9 3311 and AL, strict byte 080h ; 24 80 3312 test al, al ; 84 c0 3313 je short 02c36h ; 74 f1 3314 cli ; fa 3315 xor si, si ; 31 f6 3316 jmp short 02c4fh ; eb 05 3317 cmp si, strict byte 00007h ; 83 fe 07 3318 jnl short 02c5bh ; 7d 0c 3319 mov dx, 003f5h ; ba f5 03 3320 in AL, DX ; ec 3321 db 02ah, 0e4h 3322 ; sub ah, ah ; 2a e4 3323 mov byte [bp+si-008h], al ; 88 42 f8 3324 inc si ; 46 3325 jmp short 02c4ah ; eb ef 3326 test byte [bp-008h], 0c0h ; f6 46 f8 c0 3327 db 00fh, 094h, 0c0h 3328 ; sete al ; 0f 94 c0 3329 xor ah, ah ; 30 e4 3330 leave ; c9 3331 pop si ; 5e 3332 pop dx ; 5a 3333 pop bx ; 5b 3334 retn ; c3 3335 floppy_drive_recal_: ; 0xf2c69 LB 0x5e 2700 3336 push bx ; 53 2701 3337 push cx ; 51 … … 2704 3340 mov bp, sp ; 89 e5 2705 3341 mov bx, ax ; 89 c3 3342 call 02b54h ; e8 e0 fe 3343 mov AL, strict byte 007h ; b0 07 3344 mov dx, 003f5h ; ba f5 03 3345 out DX, AL ; ee 3346 mov al, bl ; 88 d8 3347 out DX, AL ; ee 3348 sti ; fb 2706 3349 mov dx, strict word 0003eh ; ba 3e 00 2707 3350 mov ax, strict word 00040h ; b8 40 00 2708 call 01600h ; e8 24 e9 2709 mov ah, al ; 88 c4 3351 call 01600h ; e8 79 e9 3352 and AL, strict byte 080h ; 24 80 3353 test al, al ; 84 c0 3354 je short 02c7eh ; 74 f1 3355 cli ; fa 3356 mov dx, strict word 0003eh ; ba 3e 00 3357 mov ax, strict word 00040h ; b8 40 00 3358 call 01600h ; e8 69 e9 3359 and AL, strict byte 07fh ; 24 7f 2710 3360 test bx, bx ; 85 db 2711 je short 02ce4h ; 74 02 2712 shr al, 1 ; d0 e8 2713 and AL, strict byte 001h ; 24 01 2714 jne short 02cech ; 75 04 2715 xor ah, ah ; 30 e4 2716 jmp short 02d09h ; eb 1d 2717 mov dx, 00090h ; ba 90 00 2718 test bx, bx ; 85 db 2719 je short 02cf6h ; 74 03 2720 mov dx, 00091h ; ba 91 00 2721 mov ax, strict word 00040h ; b8 40 00 2722 call 01600h ; e8 04 e9 2723 xor ah, ah ; 30 e4 2724 mov CL, strict byte 004h ; b1 04 2725 sar ax, CL ; d3 f8 2726 and AL, strict byte 001h ; 24 01 2727 je short 02ce8h ; 74 e2 3361 je short 02ca4h ; 74 07 3362 or AL, strict byte 002h ; 0c 02 3363 mov cx, 00095h ; b9 95 00 3364 jmp short 02ca9h ; eb 05 3365 or AL, strict byte 001h ; 0c 01 3366 mov cx, 00094h ; b9 94 00 3367 movzx bx, al ; 0f b6 d8 3368 mov dx, strict word 0003eh ; ba 3e 00 3369 mov ax, strict word 00040h ; b8 40 00 3370 call 0160eh ; e8 59 e9 3371 xor bx, bx ; 31 db 3372 mov dx, cx ; 89 ca 3373 mov ax, strict word 00040h ; b8 40 00 3374 call 0160eh ; e8 4f e9 2728 3375 mov ax, strict word 00001h ; b8 01 00 2729 3376 pop bp ; 5d … … 2732 3379 pop bx ; 5b 2733 3380 retn ; c3 2734 floppy_read_id_: ; 0xf2d0e LB 0x51 2735 push bx ; 53 2736 push dx ; 52 2737 push si ; 56 2738 push bp ; 55 2739 mov bp, sp ; 89 e5 2740 sub sp, strict byte 00008h ; 83 ec 08 2741 mov bx, ax ; 89 c3 2742 call 02c38h ; e8 1c ff 2743 mov AL, strict byte 04ah ; b0 4a 2744 mov dx, 003f5h ; ba f5 03 2745 out DX, AL ; ee 2746 mov al, bl ; 88 d8 2747 out DX, AL ; ee 2748 sti ; fb 2749 mov dx, strict word 0003eh ; ba 3e 00 2750 mov ax, strict word 00040h ; b8 40 00 2751 call 01600h ; e8 d1 e8 2752 and AL, strict byte 080h ; 24 80 2753 test al, al ; 84 c0 2754 je short 02d26h ; 74 f1 2755 cli ; fa 2756 xor si, si ; 31 f6 2757 jmp short 02d3fh ; eb 05 2758 cmp si, strict byte 00007h ; 83 fe 07 2759 jnl short 02d4bh ; 7d 0c 2760 mov dx, 003f5h ; ba f5 03 2761 in AL, DX ; ec 2762 db 02ah, 0e4h 2763 ; sub ah, ah ; 2a e4 2764 mov byte [bp+si-008h], al ; 88 42 f8 2765 inc si ; 46 2766 jmp short 02d3ah ; eb ef 2767 test byte [bp-008h], 0c0h ; f6 46 f8 c0 2768 je short 02d55h ; 74 04 2769 xor ax, ax ; 31 c0 2770 jmp short 02d58h ; eb 03 2771 mov ax, strict word 00001h ; b8 01 00 2772 mov sp, bp ; 89 ec 2773 pop bp ; 5d 2774 pop si ; 5e 2775 pop dx ; 5a 2776 pop bx ; 5b 2777 retn ; c3 2778 floppy_drive_recal_: ; 0xf2d5f LB 0x5f 2779 push bx ; 53 2780 push cx ; 51 2781 push dx ; 52 2782 push bp ; 55 2783 mov bp, sp ; 89 e5 2784 mov bx, ax ; 89 c3 2785 call 02c38h ; e8 ce fe 2786 mov AL, strict byte 007h ; b0 07 2787 mov dx, 003f5h ; ba f5 03 2788 out DX, AL ; ee 2789 mov al, bl ; 88 d8 2790 out DX, AL ; ee 2791 sti ; fb 2792 mov dx, strict word 0003eh ; ba 3e 00 2793 mov ax, strict word 00040h ; b8 40 00 2794 call 01600h ; e8 83 e8 2795 and AL, strict byte 080h ; 24 80 2796 test al, al ; 84 c0 2797 je short 02d74h ; 74 f1 2798 cli ; fa 2799 mov dx, strict word 0003eh ; ba 3e 00 2800 mov ax, strict word 00040h ; b8 40 00 2801 call 01600h ; e8 73 e8 2802 and AL, strict byte 07fh ; 24 7f 2803 test bx, bx ; 85 db 2804 je short 02d9ah ; 74 07 2805 or AL, strict byte 002h ; 0c 02 2806 mov cx, 00095h ; b9 95 00 2807 jmp short 02d9fh ; eb 05 2808 or AL, strict byte 001h ; 0c 01 2809 mov cx, 00094h ; b9 94 00 2810 mov bl, al ; 88 c3 2811 xor bh, bh ; 30 ff 2812 mov dx, strict word 0003eh ; ba 3e 00 2813 mov ax, strict word 00040h ; b8 40 00 2814 call 0160eh ; e8 62 e8 2815 xor bx, bx ; 31 db 2816 mov dx, cx ; 89 ca 2817 mov ax, strict word 00040h ; b8 40 00 2818 call 0160eh ; e8 58 e8 2819 mov ax, strict word 00001h ; b8 01 00 2820 pop bp ; 5d 2821 pop dx ; 5a 2822 pop cx ; 59 2823 pop bx ; 5b 2824 retn ; c3 2825 floppy_media_sense_: ; 0xf2dbe LB 0x104 3381 floppy_media_sense_: ; 0xf2cc7 LB 0xfa 2826 3382 push bx ; 53 2827 3383 push cx ; 51 … … 2832 3388 mov bp, sp ; 89 e5 2833 3389 mov di, ax ; 89 c7 2834 call 02 d5fh ; e8 94ff3390 call 02c69h ; e8 95 ff 2835 3391 test ax, ax ; 85 c0 2836 jne short 02 dd4h ; 75 053392 jne short 02cddh ; 75 05 2837 3393 xor cx, cx ; 31 c9 2838 jmp near 02 eb9h ; e9 e5003394 jmp near 02db8h ; e9 db 00 2839 3395 mov ax, strict word 00010h ; b8 10 00 2840 call 0165ch ; e8 82 e83396 call 0165ch ; e8 79 e9 2841 3397 test di, di ; 85 ff 2842 jne short 02de6h ; 75 08 2843 mov CL, strict byte 004h ; b1 04 2844 shr al, CL ; d2 e8 3398 jne short 02ceeh ; 75 07 2845 3399 mov cl, al ; 88 c1 2846 jmp short 02debh ; eb 05 3400 shr cl, 004h ; c0 e9 04 3401 jmp short 02cf3h ; eb 05 2847 3402 mov cl, al ; 88 c1 2848 3403 and cl, 00fh ; 80 e1 0f 2849 3404 cmp cl, 001h ; 80 f9 01 2850 jne short 02d f9h ; 75 093405 jne short 02d01h ; 75 09 2851 3406 xor cl, cl ; 30 c9 2852 3407 mov CH, strict byte 015h ; b5 15 2853 3408 mov si, strict word 00001h ; be 01 00 2854 jmp short 02 e44h ; eb 4b3409 jmp short 02d4ch ; eb 4b 2855 3410 cmp cl, 002h ; 80 f9 02 2856 jne short 02 e04h ; 75 063411 jne short 02d0ch ; 75 06 2857 3412 xor cl, cl ; 30 c9 2858 3413 mov CH, strict byte 035h ; b5 35 2859 jmp short 02 df4h ; eb f03414 jmp short 02cfch ; eb f0 2860 3415 cmp cl, 003h ; 80 f9 03 2861 jne short 02 e0fh ; 75 063416 jne short 02d17h ; 75 06 2862 3417 xor cl, cl ; 30 c9 2863 3418 mov CH, strict byte 017h ; b5 17 2864 jmp short 02 df4h ; eb e53419 jmp short 02cfch ; eb e5 2865 3420 cmp cl, 004h ; 80 f9 04 2866 jne short 02 e1ah ; 75 063421 jne short 02d22h ; 75 06 2867 3422 xor cl, cl ; 30 c9 2868 3423 mov CH, strict byte 017h ; b5 17 2869 jmp short 02 df4h ; eb da3424 jmp short 02cfch ; eb da 2870 3425 cmp cl, 005h ; 80 f9 05 2871 jne short 02 e25h ; 75 063426 jne short 02d2dh ; 75 06 2872 3427 mov CL, strict byte 0cch ; b1 cc 2873 3428 mov CH, strict byte 0d7h ; b5 d7 2874 jmp short 02 df4h ; eb cf3429 jmp short 02cfch ; eb cf 2875 3430 cmp cl, 006h ; 80 f9 06 2876 jne short 02 e30h ; 75 063431 jne short 02d38h ; 75 06 2877 3432 xor cl, cl ; 30 c9 2878 3433 mov CH, strict byte 027h ; b5 27 2879 jmp short 02 df4h ; eb c43434 jmp short 02cfch ; eb c4 2880 3435 cmp cl, 007h ; 80 f9 07 2881 jne short 02 e37h ; 75 022882 jmp short 02 e2ah ; eb f33436 jne short 02d3fh ; 75 02 3437 jmp short 02d32h ; eb f3 2883 3438 cmp cl, 008h ; 80 f9 08 2884 jne short 02 e3eh ; 75 022885 jmp short 02 e2ah ; eb ec3439 jne short 02d46h ; 75 02 3440 jmp short 02d32h ; eb ec 2886 3441 xor cl, cl ; 30 c9 2887 3442 xor ch, ch ; 30 ed 2888 3443 xor si, si ; 31 f6 2889 mov al, cl ; 88 c8 2890 xor ah, ah ; 30 e4 2891 mov bx, ax ; 89 c3 3444 movzx bx, cl ; 0f b6 d9 2892 3445 mov dx, 0008bh ; ba 8b 00 2893 3446 mov ax, strict word 00040h ; b8 40 00 2894 call 0160eh ; e8 b b e73447 call 0160eh ; e8 b6 e8 2895 3448 mov ax, di ; 89 f8 2896 call 02 d0eh ; e8 b6fe3449 call 02c20h ; e8 c3 fe 2897 3450 test ax, ax ; 85 c0 2898 jne short 02 e8eh ; 75 323451 jne short 02d93h ; 75 32 2899 3452 mov al, cl ; 88 c8 2900 3453 and AL, strict byte 0c0h ; 24 c0 2901 3454 cmp AL, strict byte 080h ; 3c 80 2902 je short 02 e8eh ; 74 2a3455 je short 02d93h ; 74 2a 2903 3456 mov al, cl ; 88 c8 2904 3457 and AL, strict byte 0c0h ; 24 c0 2905 3458 cmp AL, strict byte 0c0h ; 3c c0 2906 je short 02 e7bh ; 74 0f3459 je short 02d80h ; 74 0f 2907 3460 mov ah, cl ; 88 cc 2908 3461 and ah, 03fh ; 80 e4 3f 2909 3462 cmp AL, strict byte 040h ; 3c 40 2910 je short 02 e87h ; 74 123463 je short 02d8ch ; 74 12 2911 3464 test al, al ; 84 c0 2912 je short 02 e80h ; 74 072913 jmp short 02 e44h ; eb c93465 je short 02d85h ; 74 07 3466 jmp short 02d4ch ; eb cc 2914 3467 and cl, 03fh ; 80 e1 3f 2915 jmp short 02 e44h ; eb c43468 jmp short 02d4ch ; eb c7 2916 3469 mov cl, ah ; 88 e1 2917 3470 or cl, 040h ; 80 c9 40 2918 jmp short 02 e44h ; eb bd3471 jmp short 02d4ch ; eb c0 2919 3472 mov cl, ah ; 88 e1 2920 3473 or cl, 080h ; 80 c9 80 2921 jmp short 02 e44h ; eb b63474 jmp short 02d4ch ; eb b9 2922 3475 test di, di ; 85 ff 2923 jne short 02e97h ; 75 05 2924 mov di, 00090h ; bf 90 00 2925 jmp short 02e9ah ; eb 03 2926 mov di, 00091h ; bf 91 00 2927 mov al, cl ; 88 c8 2928 xor ah, ah ; 30 e4 2929 mov bx, ax ; 89 c3 3476 db 00fh, 095h, 0c0h 3477 ; setne al ; 0f 95 c0 3478 movzx di, al ; 0f b6 f8 3479 add di, 00090h ; 81 c7 90 00 3480 movzx bx, cl ; 0f b6 d9 2930 3481 mov dx, 0008bh ; ba 8b 00 2931 3482 mov ax, strict word 00040h ; b8 40 00 2932 call 0160eh ; e8 65 e7 2933 mov al, ch ; 88 e8 2934 xor ah, ah ; 30 e4 2935 mov bx, ax ; 89 c3 3483 call 0160eh ; e8 63 e8 3484 movzx bx, ch ; 0f b6 dd 2936 3485 mov dx, di ; 89 fa 2937 3486 mov ax, strict word 00040h ; b8 40 00 2938 call 0160eh ; e8 5 7 e73487 call 0160eh ; e8 58 e8 2939 3488 mov cx, si ; 89 f1 2940 3489 mov ax, cx ; 89 c8 … … 2946 3495 pop bx ; 5b 2947 3496 retn ; c3 2948 floppy_drive_exists_: ; 0xf2ec2 LB 0x3a 2949 push cx ; 51 3497 floppy_drive_exists_: ; 0xf2dc1 LB 0x33 2950 3498 push dx ; 52 2951 3499 push bp ; 55 … … 2953 3501 mov dx, ax ; 89 c2 2954 3502 mov ax, strict word 00010h ; b8 10 00 2955 call 0165ch ; e8 8 d e73503 call 0165ch ; e8 8f e8 2956 3504 test dx, dx ; 85 d2 2957 jne short 02ed9h ; 75 06 2958 mov CL, strict byte 004h ; b1 04 2959 shr al, CL ; d2 e8 2960 jmp short 02edbh ; eb 02 3505 jne short 02dd6h ; 75 05 3506 shr al, 004h ; c0 e8 04 3507 jmp short 02dd8h ; eb 02 2961 3508 and AL, strict byte 00fh ; 24 0f 2962 3509 test al, al ; 84 c0 2963 je short 02ee4h ; 74 05 2964 mov ax, strict word 00001h ; b8 01 00 2965 jmp short 02ee6h ; eb 02 3510 db 00fh, 095h, 0c0h 3511 ; setne al ; 0f 95 c0 2966 3512 xor ah, ah ; 30 e4 2967 3513 pop bp ; 5d 2968 3514 pop dx ; 5a 2969 pop cx ; 59 2970 retn ; c3 2971 or AL, strict byte 036h ; 0c 36 2972 pop SS ; 17 2973 and word [ss:03628h], si ; 36 21 36 28 36 2974 das ; 2f 2975 db 036h, 036h, 036h, 03dh, 036h, 047h 2976 ; ss cmp ax, 04736h ; 36 36 36 3d 36 47 2977 db 036h, 04eh 2978 ; ss dec si ; 36 4e 2979 db 036h 2980 _int13_diskette_function: ; 0xf2efc LB 0x7fd 3515 retn ; c3 3516 test AL, strict byte 034h ; a8 34 3517 mov BL, strict byte 034h ; b3 34 3518 mov bp, 0c434h ; bd 34 c4 3519 xor AL, strict byte 0cbh ; 34 cb 3520 xor AL, strict byte 0d2h ; 34 d2 3521 xor AL, strict byte 0d9h ; 34 d9 3522 xor AL, strict byte 0e3h ; 34 e3 3523 xor AL, strict byte 0eah ; 34 ea 3524 db 034h 3525 _int13_diskette_function: ; 0xf2df4 LB 0x799 2981 3526 push si ; 56 2982 3527 push di ; 57 2983 push bp ; 55 2984 mov bp, sp ; 89 e5 2985 sub sp, strict byte 00018h ; 83 ec 18 2986 mov bl, byte [bp+01bh] ; 8a 5e 1b 2987 xor bh, bh ; 30 ff 2988 mov cl, bl ; 88 d9 3528 enter 00012h, 000h ; c8 12 00 00 3529 mov bx, word [bp+01ah] ; 8b 5e 1a 3530 shr bx, 008h ; c1 eb 08 3531 mov ch, bl ; 88 dd 2989 3532 mov si, word [bp+01ah] ; 8b 76 1a 2990 3533 and si, 000ffh ; 81 e6 ff 00 2991 3534 mov ah, byte [bp+012h] ; 8a 66 12 2992 3535 cmp bl, 008h ; 80 fb 08 2993 jc short 02 f4ah ; 72 303536 jc short 02e4bh ; 72 3a 2994 3537 mov dx, word [bp+020h] ; 8b 56 20 2995 3538 or dl, 001h ; 80 ca 01 2996 3539 cmp bl, 008h ; 80 fb 08 2997 jbe short 02f65h ; 76 403540 jbe near 03429h ; 0f 86 0b 06 2998 3541 cmp bl, 016h ; 80 fb 16 2999 jc short 02 f42h ; 72 183542 jc short 02e41h ; 72 1e 3000 3543 or si, 00100h ; 81 ce 00 01 3001 3544 mov cx, si ; 89 f1 3002 3545 cmp bl, 016h ; 80 fb 16 3003 jbe short 02f86h ; 76 513546 jbe near 03548h ; 0f 86 18 07 3004 3547 cmp bl, 018h ; 80 fb 18 3005 je short 02f89h ; 74 4f3548 je near 0354dh ; 0f 84 16 07 3006 3549 cmp bl, 017h ; 80 fb 17 3007 je short 02f89h ; 74 4a3008 jmp near 03 6d3h ; e9 91073550 je near 0354dh ; 0f 84 0f 07 3551 jmp near 0356ah ; e9 29 07 3009 3552 cmp bl, 015h ; 80 fb 15 3010 je short 02fa0h ; 74 593011 jmp near 03 6d3h ; e9 89073553 je near 0350ch ; 0f 84 c4 06 3554 jmp near 0356ah ; e9 1f 07 3012 3555 cmp bl, 001h ; 80 fb 01 3013 jc short 02 f5eh ; 72 0f3014 jbe short 02fa3h ; 76 523556 jc short 02e65h ; 72 15 3557 jbe near 02edbh ; 0f 86 87 00 3015 3558 cmp bl, 005h ; 80 fb 05 3016 je short 02fbeh ; 74 683559 je near 03282h ; 0f 84 27 04 3017 3560 cmp bl, 004h ; 80 fb 04 3018 jbe short 02fc1h ; 76 663019 jmp near 03 6d3h ; e9 75 073561 jbe near 02ef9h ; 0f 86 97 00 3562 jmp near 0356ah ; e9 05 07 3020 3563 test bl, bl ; 84 db 3021 je short 02f68h ; 74 06 3022 jmp near 036d3h ; e9 6e 07 3023 jmp near 03585h ; e9 1d 06 3564 jne near 0356ah ; 0f 85 ff 06 3024 3565 mov al, byte [bp+012h] ; 8a 46 12 3025 mov byte [bp-00 2h], al ; 88 46 fe3566 mov byte [bp-00ah], al ; 88 46 f6 3026 3567 cmp AL, strict byte 001h ; 3c 01 3027 jbe short 02 f8ch ; 76 1a3568 jbe short 02e89h ; 76 14 3028 3569 mov ax, word [bp+01ah] ; 8b 46 1a 3029 3570 xor ah, ah ; 30 e4 … … 3031 3572 mov word [bp+01ah], ax ; 89 46 1a 3032 3573 mov ax, strict word 00001h ; b8 01 00 3033 call 02bcah ; e8 47 fc 3034 jmp near 03391h ; e9 0b 04 3035 jmp near 036b1h ; e9 28 07 3036 jmp near 036b6h ; e9 2a 07 3574 call 02aedh ; e8 67 fc 3575 jmp near 03254h ; e9 cb 03 3037 3576 mov ax, strict word 00010h ; b8 10 00 3038 call 0165ch ; e8 ca e6 3039 cmp byte [bp-002h], 000h ; 80 7e fe 00 3040 jne short 02fa5h ; 75 0d 3041 mov CL, strict byte 004h ; b1 04 3577 call 0165ch ; e8 cd e7 3578 cmp byte [bp-00ah], 000h ; 80 7e f6 00 3579 jne short 02e9ch ; 75 07 3042 3580 mov bl, al ; 88 c3 3043 shr bl, CL ; d2 eb 3044 jmp short 02faah ; eb 0a 3045 jmp near 03674h ; e9 d1 06 3046 jmp short 02fe9h ; eb 44 3581 shr bl, 004h ; c0 eb 04 3582 jmp short 02ea1h ; eb 05 3047 3583 mov bl, al ; 88 c3 3048 3584 and bl, 00fh ; 80 e3 0f 3049 3585 test bl, bl ; 84 db 3050 jne short 02 fc3h ; 75 153586 jne short 02eb5h ; 75 10 3051 3587 mov ax, word [bp+01ah] ; 8b 46 1a 3052 3588 xor ah, ah ; 30 e4 … … 3054 3590 mov word [bp+01ah], ax ; 89 46 1a 3055 3591 mov ax, 00080h ; b8 80 00 3056 jmp short 02f80h ; eb c2 3057 jmp near 033c4h ; e9 03 04 3058 jmp short 03005h ; eb 42 3592 jmp short 02e83h ; eb ce 3059 3593 xor bx, bx ; 31 db 3060 3594 mov dx, strict word 0003eh ; ba 3e 00 3061 3595 mov ax, strict word 00040h ; b8 40 00 3062 call 0160eh ; e8 4 0 e63596 call 0160eh ; e8 4e e7 3063 3597 xor al, al ; 30 c0 3064 3598 mov byte [bp+01bh], al ; 88 46 1b 3065 3599 xor ah, ah ; 30 e4 3066 call 02 bcah ; e8 f2 fb3600 call 02aedh ; e8 23 fc 3067 3601 and byte [bp+020h], 0feh ; 80 66 20 fe 3068 mov al, byte [bp-002h] ; 8a 46 fe 3069 xor ah, ah ; 30 e4 3602 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3070 3603 xor dx, dx ; 31 d2 3071 call 02be0h ; e8 fa fb 3072 jmp near 03243h ; e9 5a 02 3604 call 02b02h ; e8 2b fc 3605 leave ; c9 3606 pop di ; 5f 3607 pop si ; 5e 3608 retn ; c3 3073 3609 and byte [bp+020h], 0feh ; 80 66 20 fe 3074 3610 mov dx, 00441h ; ba 41 04 3075 3611 xor ax, ax ; 31 c0 3076 call 01600h ; e8 0b e63077 mov dh, al ; 88 c63078 xor dl, dl ; 30 d23612 call 01600h ; e8 19 e7 3613 movzx dx, al ; 0f b6 d0 3614 sal dx, 008h ; c1 e2 08 3079 3615 or si, dx ; 09 d6 3080 3616 mov word [bp+01ah], si ; 89 76 1a 3081 3617 test al, al ; 84 c0 3082 je short 03060h ; 74 5e 3083 jmp near 03391h ; e9 8c 03 3084 mov ch, byte [bp+01ah] ; 8a 6e 1a 3085 mov dl, byte [bp+019h] ; 8a 56 19 3086 mov byte [bp-008h], dl ; 88 56 f8 3618 je short 02ed7h ; 74 e1 3619 jmp near 03254h ; e9 5b 03 3620 mov al, byte [bp+01ah] ; 8a 46 1a 3621 mov byte [bp-008h], al ; 88 46 f8 3622 mov dx, word [bp+018h] ; 8b 56 18 3623 shr dx, 008h ; c1 ea 08 3624 mov byte [bp-004h], dl ; 88 56 fc 3087 3625 mov al, byte [bp+018h] ; 8a 46 18 3088 mov byte [bp-00 4h], al ; 88 46 fc3089 mov d l, byte [bp+017h] ; 8a 56 173090 xor dh, dh ; 30 f63091 mov byte [bp-00 6h], dl ; 88 56 fa3092 mov byte [bp-00 2h], ah ; 88 66 fe3626 mov byte [bp-006h], al ; 88 46 fa 3627 mov dx, word [bp+016h] ; 8b 56 16 3628 shr dx, 008h ; c1 ea 08 3629 mov byte [bp-002h], dl ; 88 56 fe 3630 mov byte [bp-00ah], ah ; 88 66 f6 3093 3631 cmp ah, 001h ; 80 fc 01 3094 jnbe short 0 3032h ; 77 0e3632 jnbe short 02f2fh ; 77 10 3095 3633 cmp dl, 001h ; 80 fa 01 3096 jnbe short 03032h ; 77 09 3097 test ch, ch ; 84 ed 3098 je short 03032h ; 74 05 3099 cmp ch, 048h ; 80 fd 48 3100 jbe short 03063h ; 76 31 3101 mov bx, 00c16h ; bb 16 0c 3634 jnbe short 02f2fh ; 77 0b 3635 mov al, byte [bp-008h] ; 8a 46 f8 3636 test al, al ; 84 c0 3637 je short 02f2fh ; 74 04 3638 cmp AL, strict byte 048h ; 3c 48 3639 jbe short 02f58h ; 76 29 3640 mov bx, 00c08h ; bb 08 0c 3102 3641 mov cx, ds ; 8c d9 3103 3642 mov ax, strict word 00004h ; b8 04 00 3104 call 018bdh ; e8 80 e8 3105 mov ax, 001bdh ; b8 bd 01 3106 push ax ; 50 3107 mov ax, 001d5h ; b8 d5 01 3108 push ax ; 50 3109 mov ax, strict word 00004h ; b8 04 00 3110 push ax ; 50 3111 call 018fah ; e8 ae e8 3643 call 018aeh ; e8 74 e9 3644 push 001bdh ; 68 bd 01 3645 push 001d5h ; 68 d5 01 3646 push strict byte 00004h ; 6a 04 3647 call 018e9h ; e8 a4 e9 3112 3648 add sp, strict byte 00006h ; 83 c4 06 3113 3649 mov ax, word [bp+01ah] ; 8b 46 1a … … 3116 3652 mov word [bp+01ah], ax ; 89 46 1a 3117 3653 mov ax, strict word 00001h ; b8 01 00 3118 jmp near 030e1h ; e9 81 00 3119 jmp near 03243h ; e9 e0 01 3120 mov al, byte [bp-002h] ; 8a 46 fe 3121 xor ah, ah ; 30 e4 3122 call 02ec2h ; e8 57 fe 3654 jmp short 02fc9h ; eb 71 3655 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3656 call 02dc1h ; e8 62 fe 3123 3657 test ax, ax ; 85 c0 3124 je short 0309dh ; 74 2e 3125 mov dl, byte [bp-002h] ; 8a 56 fe 3126 xor dh, dh ; 30 f6 3658 je near 03062h ; 0f 84 fd 00 3659 movzx dx, byte [bp-00ah] ; 0f b6 56 f6 3127 3660 mov ax, dx ; 89 d0 3128 call 02 ccbh ; e8 52 fc3661 call 02be0h ; e8 72 fc 3129 3662 test ax, ax ; 85 c0 3130 jne short 0 30a0h ; 75 233663 jne short 02f8bh ; 75 19 3131 3664 mov ax, dx ; 89 d0 3132 call 02 dbeh ; e8 3cfd3665 call 02cc7h ; e8 50 fd 3133 3666 test ax, ax ; 85 c0 3134 jne short 0 30a0h ; 75 1a3667 jne short 02f8bh ; 75 10 3135 3668 mov ax, word [bp+01ah] ; 8b 46 1a 3136 3669 xor ah, ah ; 30 e4 … … 3138 3671 mov word [bp+01ah], ax ; 89 46 1a 3139 3672 mov ax, strict word 0000ch ; b8 0c 00 3140 call 02bcah ; e8 33 fb 3141 mov byte [bp+01ah], dh ; 88 76 1a 3142 jmp near 03391h ; e9 f4 02 3143 jmp near 0317eh ; e9 de 00 3144 cmp cl, 002h ; 80 f9 02 3145 jne short 030ebh ; 75 46 3146 mov CL, strict byte 00ch ; b1 0c 3147 mov ax, word [bp+00ah] ; 8b 46 0a 3148 shr ax, CL ; d3 e8 3149 mov word [bp-00eh], ax ; 89 46 f2 3150 mov ah, byte [bp-00eh] ; 8a 66 f2 3151 mov CL, strict byte 004h ; b1 04 3673 jmp short 02fc9h ; eb 3e 3674 cmp ch, 002h ; 80 fd 02 3675 jne near 03120h ; 0f 85 8e 01 3152 3676 mov dx, word [bp+00ah] ; 8b 56 0a 3153 sal dx, CL ; d3 e2 3677 shr dx, 00ch ; c1 ea 0c 3678 mov ah, dl ; 88 d4 3679 mov cx, word [bp+00ah] ; 8b 4e 0a 3680 sal cx, 004h ; c1 e1 04 3154 3681 mov bx, word [bp+014h] ; 8b 5e 14 3155 add bx, dx ; 01 d33156 cmp bx, dx ; 39 d33157 jnc short 0 30c4h ; 73 023682 add bx, cx ; 01 cb 3683 cmp bx, cx ; 39 cb 3684 jnc short 02fabh ; 73 02 3158 3685 db 0feh, 0c4h 3159 3686 ; inc ah ; fe c4 3160 mov dl, ch ; 88 ea 3161 xor dh, dh ; 30 f6 3162 mov CL, strict byte 009h ; b1 09 3163 sal dx, CL ; d3 e2 3164 dec dx ; 4a 3165 mov word [bp-00ch], dx ; 89 56 f4 3166 add dx, bx ; 01 da 3687 movzx cx, byte [bp-008h] ; 0f b6 4e f8 3688 sal cx, 009h ; c1 e1 09 3689 dec cx ; 49 3690 mov dx, bx ; 89 da 3691 add dx, cx ; 01 ca 3167 3692 cmp dx, bx ; 39 da 3168 jnc short 0 30eeh ; 73 183693 jnc short 02fd3h ; 73 18 3169 3694 mov ax, word [bp+01ah] ; 8b 46 1a 3170 mov ah, cl ; 88 cc 3695 xor ah, ah ; 30 e4 3696 or ah, 009h ; 80 cc 09 3171 3697 mov word [bp+01ah], ax ; 89 46 1a 3172 3698 mov ax, strict word 00009h ; b8 09 00 3173 call 02 bcah ; e8 e6 fa3699 call 02aedh ; e8 21 fb 3174 3700 mov byte [bp+01ah], 000h ; c6 46 1a 00 3175 jmp near 03391h ; e9 a6 02 3176 jmp near 03249h ; e9 5b 01 3701 jmp near 03254h ; e9 81 02 3177 3702 mov AL, strict byte 006h ; b0 06 3178 3703 mov dx, strict word 0000ah ; ba 0a 00 … … 3184 3709 mov dx, strict word 00004h ; ba 04 00 3185 3710 out DX, AL ; ee 3186 mov al, bh ; 88 f8 3187 out DX, AL ; ee 3188 xor al, bh ; 30 f8 3711 shr bx, 008h ; c1 eb 08 3712 mov al, bl ; 88 d8 3713 out DX, AL ; ee 3714 xor al, bl ; 30 d8 3189 3715 mov dx, strict word 0000ch ; ba 0c 00 3190 3716 out DX, AL ; ee 3191 mov al, byte [bp-00ch] ; 8a 46 f43717 mov al, cl ; 88 c8 3192 3718 mov dx, strict word 00005h ; ba 05 00 3193 3719 out DX, AL ; ee 3194 mov al, byte [bp-00bh] ; 8a 46 f5 3720 shr cx, 008h ; c1 e9 08 3721 mov al, cl ; 88 c8 3195 3722 out DX, AL ; ee 3196 3723 mov AL, strict byte 046h ; b0 46 … … 3204 3731 out DX, AL ; ee 3205 3732 out DX, AL ; ee 3206 mov al, byte [bp-002h] ; 8a 46 fe 3207 xor ah, ah ; 30 e4 3208 call 02c38h ; e8 09 fb 3733 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3734 call 02b54h ; e8 3d fb 3209 3735 mov AL, strict byte 0e6h ; b0 e6 3210 3736 mov dx, 003f5h ; ba f5 03 3211 3737 out DX, AL ; ee 3212 mov al, byte [bp-006h] ; 8a 46 fa 3213 xor ah, ah ; 30 e4 3214 mov dx, ax ; 89 c2 3215 sal dx, 1 ; d1 e2 3216 sal dx, 1 ; d1 e2 3217 mov al, byte [bp-002h] ; 8a 46 fe 3738 movzx dx, byte [bp-002h] ; 0f b6 56 fe 3739 sal dx, 002h ; c1 e2 02 3740 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3218 3741 or ax, dx ; 09 d0 3219 3742 mov dx, 003f5h ; ba f5 03 3220 3743 out DX, AL ; ee 3221 mov al, byte [bp-008h] ; 8a 46 f8 3744 mov al, byte [bp-004h] ; 8a 46 fc 3745 out DX, AL ; ee 3746 mov al, byte [bp-002h] ; 8a 46 fe 3222 3747 out DX, AL ; ee 3223 3748 mov al, byte [bp-006h] ; 8a 46 fa 3224 3749 out DX, AL ; ee 3225 mov al, byte [bp-004h] ; 8a 46 fc3226 out DX, AL ; ee3227 3750 mov AL, strict byte 002h ; b0 02 3228 3751 out DX, AL ; ee 3229 mov dl, byte [bp-004h] ; 8a 56 fc 3230 xor dh, dh ; 30 f6 3231 mov al, ch ; 88 e8 3232 xor ah, ah ; 30 e4 3752 movzx ax, byte [bp-006h] ; 0f b6 46 fa 3753 movzx dx, byte [bp-008h] ; 0f b6 56 f8 3233 3754 add ax, dx ; 01 d0 3234 3755 dec ax ; 48 … … 3242 3763 mov dx, strict word 00040h ; ba 40 00 3243 3764 mov ax, dx ; 89 d0 3244 call 01600h ; e8 89 e43765 call 01600h ; e8 a5 e5 3245 3766 test al, al ; 84 c0 3246 jne short 03 18fh ; 75 143247 call 02 c13h ; e8 95fa3767 jne short 03073h ; 75 14 3768 call 02b2ch ; e8 ca fa 3248 3769 mov ax, word [bp+01ah] ; 8b 46 1a 3249 3770 xor ah, ah ; 30 e4 … … 3251 3772 mov word [bp+01ah], ax ; 89 46 1a 3252 3773 mov ax, 00080h ; b8 80 00 3253 jmp near 0 30e1h ; e9 52ff3774 jmp near 02fc9h ; e9 56 ff 3254 3775 mov dx, strict word 0003eh ; ba 3e 00 3255 3776 mov ax, strict word 00040h ; b8 40 00 3256 call 01600h ; e8 68 e43777 call 01600h ; e8 84 e5 3257 3778 and AL, strict byte 080h ; 24 80 3258 3779 test al, al ; 84 c0 3259 je short 03 16fh ; 74 d13780 je short 03053h ; 74 d1 3260 3781 cli ; fa 3261 3782 mov dx, strict word 0003eh ; ba 3e 00 3262 3783 mov ax, strict word 00040h ; b8 40 00 3263 call 01600h ; e8 58 e4 3264 mov bl, al ; 88 c3 3265 and bl, 07fh ; 80 e3 7f 3266 xor bh, bh ; 30 ff 3784 call 01600h ; e8 74 e5 3785 and AL, strict byte 07fh ; 24 7f 3786 movzx bx, al ; 0f b6 d8 3267 3787 mov dx, strict word 0003eh ; ba 3e 00 3268 3788 mov ax, strict word 00040h ; b8 40 00 3269 call 0160eh ; e8 56 e43789 call 0160eh ; e8 74 e5 3270 3790 mov dx, 003f4h ; ba f4 03 3271 3791 in AL, DX ; ec … … 3274 3794 and AL, strict byte 0c0h ; 24 c0 3275 3795 cmp AL, strict byte 0c0h ; 3c c0 3276 je short 031d6h ; 74 12 3277 mov ax, 001bdh ; b8 bd 01 3278 push ax ; 50 3279 mov ax, 001f0h ; b8 f0 01 3280 push ax ; 50 3281 mov ax, strict word 00007h ; b8 07 00 3282 push ax ; 50 3283 call 018fah ; e8 27 e7 3796 je short 030b4h ; 74 0e 3797 push 001bdh ; 68 bd 01 3798 push 001f0h ; 68 f0 01 3799 push strict byte 00007h ; 6a 07 3800 call 018e9h ; e8 38 e8 3284 3801 add sp, strict byte 00006h ; 83 c4 06 3285 3802 xor si, si ; 31 f6 3286 jmp short 03 1dfh ; eb 053803 jmp short 030bdh ; eb 05 3287 3804 cmp si, strict byte 00007h ; 83 fe 07 3288 jnl short 03 1f8h ; 7d 193805 jnl short 030d5h ; 7d 18 3289 3806 mov dx, 003f5h ; ba f5 03 3290 3807 in AL, DX ; ec 3291 3808 db 02ah, 0e4h 3292 3809 ; sub ah, ah ; 2a e4 3293 mov byte [bp+si-018h], al ; 88 42 e8 3294 mov bl, al ; 88 c3 3295 xor bh, bh ; 30 ff 3810 mov byte [bp+si-012h], al ; 88 42 ee 3811 movzx bx, al ; 0f b6 d8 3296 3812 lea dx, [si+042h] ; 8d 54 42 3297 3813 mov ax, strict word 00040h ; b8 40 00 3298 call 0160eh ; e8 19 e43814 call 0160eh ; e8 3c e5 3299 3815 inc si ; 46 3300 jmp short 03 1dah ; eb e23301 test byte [bp-01 8h], 0c0h ; f6 46 e8c03302 je short 03 20fh ; 74 113816 jmp short 030b8h ; eb e3 3817 test byte [bp-012h], 0c0h ; f6 46 ee c0 3818 je short 030ech ; 74 11 3303 3819 mov ax, word [bp+01ah] ; 8b 46 1a 3304 3820 xor ah, ah ; 30 e4 … … 3306 3822 mov word [bp+01ah], ax ; 89 46 1a 3307 3823 mov ax, strict word 00020h ; b8 20 00 3308 jmp near 030e1h ; e9 d2 fe 3309 mov al, ch ; 88 e8 3310 xor ah, ah ; 30 e4 3311 mov CL, strict byte 009h ; b1 09 3312 sal ax, CL ; d3 e0 3824 jmp near 02fc9h ; e9 dd fe 3825 movzx ax, byte [bp-008h] ; 0f b6 46 f8 3826 sal ax, 009h ; c1 e0 09 3313 3827 cwd ; 99 3314 3828 db 02bh, 0c2h 3315 3829 ; sub ax, dx ; 2b c2 3316 3830 sar ax, 1 ; d1 f8 3831 mov cx, ax ; 89 c1 3317 3832 mov si, word [bp+014h] ; 8b 76 14 3318 3833 mov dx, word [bp+00ah] ; 8b 56 0a 3319 3834 mov di, si ; 89 f7 3320 3835 mov es, dx ; 8e c2 3321 mov cx, ax ; 89 c13322 3836 push DS ; 1e 3323 3837 mov ds, dx ; 8e da 3324 3838 rep movsw ; f3 a5 3325 3839 pop DS ; 1f 3326 mov dl, byte [bp-008h] ; 8a 56 f8 3327 xor dh, dh ; 30 f6 3328 mov al, byte [bp-002h] ; 8a 46 fe 3329 xor ah, ah ; 30 e4 3330 call 02be0h ; e8 a5 f9 3840 movzx dx, byte [bp-004h] ; 0f b6 56 fc 3841 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3842 call 02b02h ; e8 ed f9 3331 3843 mov byte [bp+01bh], 000h ; c6 46 1b 00 3332 3844 and byte [bp+020h], 0feh ; 80 66 20 fe 3333 mov sp, bp ; 89 ec 3334 pop bp ; 5d 3335 pop di ; 5f 3336 pop si ; 5e 3337 retn ; c3 3338 cmp cl, 003h ; 80 f9 03 3339 je short 03251h ; 74 03 3340 jmp near 033ach ; e9 5b 01 3341 mov CL, strict byte 00ch ; b1 0c 3342 mov ax, word [bp+00ah] ; 8b 46 0a 3343 shr ax, CL ; d3 e8 3344 mov word [bp-00ah], ax ; 89 46 f6 3345 mov ah, byte [bp-00ah] ; 8a 66 f6 3346 mov CL, strict byte 004h ; b1 04 3845 jmp near 02ed7h ; e9 b7 fd 3846 cmp ch, 003h ; 80 fd 03 3847 jne near 0326ch ; 0f 85 45 01 3347 3848 mov dx, word [bp+00ah] ; 8b 56 0a 3348 sal dx, CL ; d3 e2 3849 shr dx, 00ch ; c1 ea 0c 3850 mov ah, dl ; 88 d4 3851 mov cx, word [bp+00ah] ; 8b 4e 0a 3852 sal cx, 004h ; c1 e1 04 3349 3853 mov bx, word [bp+014h] ; 8b 5e 14 3350 add bx, dx ; 01 d33351 cmp bx, dx ; 39 d33352 jnc short 03 270h ; 73 023854 add bx, cx ; 01 cb 3855 cmp bx, cx ; 39 cb 3856 jnc short 03140h ; 73 02 3353 3857 db 0feh, 0c4h 3354 3858 ; inc ah ; fe c4 3355 mov dl, ch ; 88 ea 3356 xor dh, dh ; 30 f6 3357 mov CL, strict byte 009h ; b1 09 3358 sal dx, CL ; d3 e2 3359 dec dx ; 4a 3360 mov word [bp-00ch], dx ; 89 56 f4 3361 add dx, bx ; 01 da 3859 movzx cx, byte [bp-008h] ; 0f b6 4e f8 3860 sal cx, 009h ; c1 e1 09 3861 dec cx ; 49 3862 mov dx, bx ; 89 da 3863 add dx, cx ; 01 ca 3362 3864 cmp dx, bx ; 39 da 3363 jnc short 03285h ; 73 03 3364 jmp near 030d6h ; e9 51 fe 3865 jc near 02fbbh ; 0f 82 69 fe 3365 3866 mov AL, strict byte 006h ; b0 06 3366 3867 mov dx, strict word 0000ah ; ba 0a 00 … … 3372 3873 mov dx, strict word 00004h ; ba 04 00 3373 3874 out DX, AL ; ee 3374 mov al, bh ; 88 f8 3375 out DX, AL ; ee 3376 xor al, bh ; 30 f8 3875 shr bx, 008h ; c1 eb 08 3876 mov al, bl ; 88 d8 3877 out DX, AL ; ee 3878 xor al, bl ; 30 d8 3377 3879 mov dx, strict word 0000ch ; ba 0c 00 3378 3880 out DX, AL ; ee 3379 mov al, byte [bp-00ch] ; 8a 46 f43881 mov al, cl ; 88 c8 3380 3882 mov dx, strict word 00005h ; ba 05 00 3381 3883 out DX, AL ; ee 3382 mov al, byte [bp-00bh] ; 8a 46 f5 3884 shr cx, 008h ; c1 e9 08 3885 mov al, cl ; 88 c8 3383 3886 out DX, AL ; ee 3384 3887 mov AL, strict byte 04ah ; b0 4a … … 3391 3894 mov dx, strict word 0000ah ; ba 0a 00 3392 3895 out DX, AL ; ee 3393 mov al, byte [bp-002h] ; 8a 46 fe 3394 xor ah, ah ; 30 e4 3395 call 02c38h ; e8 73 f9 3896 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3897 call 02b54h ; e8 bf f9 3396 3898 mov AL, strict byte 0c5h ; b0 c5 3397 3899 mov dx, 003f5h ; ba f5 03 3398 3900 out DX, AL ; ee 3399 mov al, byte [bp-006h] ; 8a 46 fa 3400 xor ah, ah ; 30 e4 3401 mov dx, ax ; 89 c2 3402 sal dx, 1 ; d1 e2 3403 sal dx, 1 ; d1 e2 3404 mov al, byte [bp-002h] ; 8a 46 fe 3901 movzx dx, byte [bp-002h] ; 0f b6 56 fe 3902 sal dx, 002h ; c1 e2 02 3903 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3405 3904 or ax, dx ; 09 d0 3406 3905 mov dx, 003f5h ; ba f5 03 3407 3906 out DX, AL ; ee 3408 mov al, byte [bp-008h] ; 8a 46 f8 3907 mov al, byte [bp-004h] ; 8a 46 fc 3908 out DX, AL ; ee 3909 mov al, byte [bp-002h] ; 8a 46 fe 3409 3910 out DX, AL ; ee 3410 3911 mov al, byte [bp-006h] ; 8a 46 fa 3411 3912 out DX, AL ; ee 3412 mov al, byte [bp-004h] ; 8a 46 fc3413 out DX, AL ; ee3414 3913 mov AL, strict byte 002h ; b0 02 3415 3914 out DX, AL ; ee 3416 mov al, byte [bp-004h] ; 8a 46 fc 3417 xor ah, ah ; 30 e4 3418 mov dl, ch ; 88 ea 3419 xor dh, dh ; 30 f6 3915 movzx dx, byte [bp-006h] ; 0f b6 56 fa 3916 movzx ax, byte [bp-008h] ; 0f b6 46 f8 3420 3917 add ax, dx ; 01 d0 3421 3918 dec ax ; 48 … … 3429 3926 mov dx, strict word 00040h ; ba 40 00 3430 3927 mov ax, dx ; 89 d0 3431 call 01600h ; e8 f3 e23928 call 01600h ; e8 27 e4 3432 3929 test al, al ; 84 c0 3433 jne short 03314h ; 75 03 3434 jmp near 0317bh ; e9 67 fe 3930 je near 0305fh ; 0f 84 80 fe 3435 3931 mov dx, strict word 0003eh ; ba 3e 00 3436 3932 mov ax, strict word 00040h ; b8 40 00 3437 call 01600h ; e8 e3 e23933 call 01600h ; e8 18 e4 3438 3934 and AL, strict byte 080h ; 24 80 3439 3935 test al, al ; 84 c0 3440 je short 03 305h ; 74 e23936 je short 031d1h ; 74 e3 3441 3937 cli ; fa 3442 3938 mov dx, strict word 0003eh ; ba 3e 00 3443 3939 mov ax, strict word 00040h ; b8 40 00 3444 call 01600h ; e8 d3 e2 3445 mov bl, al ; 88 c3 3446 and bl, 07fh ; 80 e3 7f 3447 xor bh, bh ; 30 ff 3940 call 01600h ; e8 08 e4 3941 and AL, strict byte 07fh ; 24 7f 3942 movzx bx, al ; 0f b6 d8 3448 3943 mov dx, strict word 0003eh ; ba 3e 00 3449 3944 mov ax, strict word 00040h ; b8 40 00 3450 call 0160eh ; e8 d1 e23945 call 0160eh ; e8 08 e4 3451 3946 mov dx, 003f4h ; ba f4 03 3452 3947 in AL, DX ; ec … … 3455 3950 and AL, strict byte 0c0h ; 24 c0 3456 3951 cmp AL, strict byte 0c0h ; 3c c0 3457 je short 0335bh ; 74 12 3458 mov ax, 001bdh ; b8 bd 01 3459 push ax ; 50 3460 mov ax, 001f0h ; b8 f0 01 3461 push ax ; 50 3462 mov ax, strict word 00007h ; b8 07 00 3463 push ax ; 50 3464 call 018fah ; e8 a2 e5 3952 je short 03220h ; 74 0e 3953 push 001bdh ; 68 bd 01 3954 push 001f0h ; 68 f0 01 3955 push strict byte 00007h ; 6a 07 3956 call 018e9h ; e8 cc e6 3465 3957 add sp, strict byte 00006h ; 83 c4 06 3466 3958 xor si, si ; 31 f6 3467 jmp short 03 364h ; eb 053959 jmp short 03229h ; eb 05 3468 3960 cmp si, strict byte 00007h ; 83 fe 07 3469 jnl short 03 37dh ; 7d 193961 jnl short 03241h ; 7d 18 3470 3962 mov dx, 003f5h ; ba f5 03 3471 3963 in AL, DX ; ec 3472 3964 db 02ah, 0e4h 3473 3965 ; sub ah, ah ; 2a e4 3474 mov byte [bp+si-018h], al ; 88 42 e8 3475 mov bl, al ; 88 c3 3476 xor bh, bh ; 30 ff 3966 mov byte [bp+si-012h], al ; 88 42 ee 3967 movzx bx, al ; 0f b6 d8 3477 3968 lea dx, [si+042h] ; 8d 54 42 3478 3969 mov ax, strict word 00040h ; b8 40 00 3479 call 0160eh ; e8 94 e23970 call 0160eh ; e8 d0 e3 3480 3971 inc si ; 46 3481 jmp short 0335fh ; eb e2 3482 test byte [bp-018h], 0c0h ; f6 46 e8 c0 3483 jne short 03386h ; 75 03 3484 jmp near 0322eh ; e9 a8 fe 3485 test byte [bp-017h], 002h ; f6 46 e9 02 3486 je short 03398h ; 74 0c 3972 jmp short 03224h ; eb e3 3973 test byte [bp-012h], 0c0h ; f6 46 ee c0 3974 je near 0310ah ; 0f 84 c1 fe 3975 test byte [bp-011h], 002h ; f6 46 ef 02 3976 je short 0325bh ; 74 0c 3487 3977 mov word [bp+01ah], 00300h ; c7 46 1a 00 03 3488 3978 or byte [bp+020h], 001h ; 80 4e 20 01 3489 jmp near 03243h ; e9 ab fe 3490 mov ax, 001bdh ; b8 bd 01 3491 push ax ; 50 3492 mov ax, 00204h ; b8 04 02 3493 push ax ; 50 3494 mov ax, strict word 00007h ; b8 07 00 3495 push ax ; 50 3496 call 018fah ; e8 53 e5 3979 jmp near 02ed7h ; e9 7c fc 3980 push 001bdh ; 68 bd 01 3981 push 00204h ; 68 04 02 3982 push strict byte 00007h ; 6a 07 3983 call 018e9h ; e8 83 e6 3497 3984 add sp, strict byte 00006h ; 83 c4 06 3498 jmp short 03383h ; eb d7 3499 mov dl, byte [bp-008h] ; 8a 56 f8 3500 xor dh, dh ; 30 f6 3501 mov al, byte [bp-002h] ; 8a 46 fe 3502 xor ah, ah ; 30 e4 3503 call 02be0h ; e8 27 f8 3985 jmp near 0310ah ; e9 9e fe 3986 movzx dx, byte [bp-004h] ; 0f b6 56 fc 3987 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3988 call 02b02h ; e8 8b f8 3504 3989 and byte [bp+020h], 0feh ; 80 66 20 fe 3505 3990 mov byte [bp+01bh], 000h ; c6 46 1b 00 3506 jmp near 03243h ; e9 7f fe 3507 mov ch, byte [bp+01ah] ; 8a 6e 1a 3508 mov al, byte [bp+019h] ; 8a 46 19 3509 xor ah, ah ; 30 e4 3510 mov dx, ax ; 89 c2 3511 mov al, byte [bp+017h] ; 8a 46 17 3512 mov byte [bp-006h], al ; 88 46 fa 3991 jmp near 02ed7h ; e9 55 fc 3992 mov al, byte [bp+01ah] ; 8a 46 1a 3993 mov byte [bp-008h], al ; 88 46 f8 3994 mov dx, word [bp+018h] ; 8b 56 18 3995 shr dx, 008h ; c1 ea 08 3996 mov ax, word [bp+016h] ; 8b 46 16 3997 shr ax, 008h ; c1 e8 08 3998 mov byte [bp-002h], al ; 88 46 fe 3513 3999 mov bl, byte [bp+012h] ; 8a 5e 12 3514 mov byte [bp-00 2h], bl ; 88 5e fe4000 mov byte [bp-00ah], bl ; 88 5e f6 3515 4001 cmp bl, 001h ; 80 fb 01 3516 jnbe short 03 3f1h ; 77 124002 jnbe short 032b6h ; 77 14 3517 4003 cmp AL, strict byte 001h ; 3c 01 3518 jnbe short 03 3f1h ; 77 0e4004 jnbe short 032b6h ; 77 10 3519 4005 cmp dl, 04fh ; 80 fa 4f 3520 jnbe short 033f1h ; 77 09 3521 test ch, ch ; 84 ed 3522 je short 033f1h ; 74 05 3523 cmp ch, 012h ; 80 fd 12 3524 jbe short 03406h ; 76 15 4006 jnbe short 032b6h ; 77 0b 4007 mov al, byte [bp-008h] ; 8a 46 f8 4008 test al, al ; 84 c0 4009 je short 032b6h ; 74 04 4010 cmp AL, strict byte 012h ; 3c 12 4011 jbe short 032cbh ; 76 15 3525 4012 mov ax, word [bp+01ah] ; 8b 46 1a 3526 4013 xor ah, ah ; 30 e4 … … 3528 4015 mov word [bp+01ah], ax ; 89 46 1a 3529 4016 mov ax, strict word 00001h ; b8 01 00 3530 call 02 bcah ; e8 c8 f74017 call 02aedh ; e8 26 f8 3531 4018 or byte [bp+020h], 001h ; 80 4e 20 01 3532 mov al, byte [bp-002h] ; 8a 46 fe 3533 xor ah, ah ; 30 e4 3534 call 02ec2h ; e8 b4 fa 4019 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 4020 call 02dc1h ; e8 ef fa 3535 4021 test ax, ax ; 85 c0 3536 jne short 03415h ; 75 03 3537 jmp near 02faeh ; e9 99 fb 3538 mov dl, byte [bp-002h] ; 8a 56 fe 3539 xor dh, dh ; 30 f6 4022 je near 02ea5h ; 0f 84 cd fb 4023 movzx dx, byte [bp-00ah] ; 0f b6 56 f6 3540 4024 mov ax, dx ; 89 d0 3541 call 02 ccbh ; e8 acf84025 call 02be0h ; e8 ff f8 3542 4026 test ax, ax ; 85 c0 3543 jne short 03 42fh ; 75 0c4027 jne short 032f0h ; 75 0b 3544 4028 mov ax, dx ; 89 d0 3545 call 02 dbeh ; e8 96f94029 call 02cc7h ; e8 dd f9 3546 4030 test ax, ax ; 85 c0 3547 jne short 0342fh ; 75 03 3548 jmp near 03086h ; e9 57 fc 3549 mov CL, strict byte 00ch ; b1 0c 3550 mov ax, word [bp+00ah] ; 8b 46 0a 3551 shr ax, CL ; d3 e8 3552 mov word [bp-010h], ax ; 89 46 f0 3553 mov ah, byte [bp-010h] ; 8a 66 f0 3554 mov CL, strict byte 004h ; b1 04 4031 je near 02f7bh ; 0f 84 8b fc 3555 4032 mov dx, word [bp+00ah] ; 8b 56 0a 3556 sal dx, CL ; d3 e2 4033 shr dx, 00ch ; c1 ea 0c 4034 mov ah, dl ; 88 d4 4035 mov cx, word [bp+00ah] ; 8b 4e 0a 4036 sal cx, 004h ; c1 e1 04 3557 4037 mov bx, word [bp+014h] ; 8b 5e 14 3558 add bx, dx ; 01 d33559 cmp bx, dx ; 39 d33560 jnc short 03 44eh ; 73 024038 add bx, cx ; 01 cb 4039 cmp bx, cx ; 39 cb 4040 jnc short 03309h ; 73 02 3561 4041 db 0feh, 0c4h 3562 4042 ; inc ah ; fe c4 3563 mov dl, ch ; 88 ea 3564 xor dh, dh ; 30 f6 3565 sal dx, 1 ; d1 e2 3566 sal dx, 1 ; d1 e2 3567 dec dx ; 4a 3568 mov word [bp-00ch], dx ; 89 56 f4 3569 add dx, bx ; 01 da 4043 movzx cx, byte [bp-008h] ; 0f b6 4e f8 4044 sal cx, 002h ; c1 e1 02 4045 dec cx ; 49 4046 mov dx, bx ; 89 da 4047 add dx, cx ; 01 ca 3570 4048 cmp dx, bx ; 39 da 3571 jnc short 0346bh ; 73 0b 3572 mov ax, word [bp+01ah] ; 8b 46 1a 3573 xor ah, ah ; 30 e4 3574 or ah, 009h ; 80 cc 09 3575 jmp near 030dbh ; e9 70 fc 4049 jc near 02fbbh ; 0f 82 a0 fc 3576 4050 mov AL, strict byte 006h ; b0 06 3577 4051 mov dx, strict word 0000ah ; ba 0a 00 … … 3583 4057 mov dx, strict word 00004h ; ba 04 00 3584 4058 out DX, AL ; ee 3585 mov al, bh ; 88 f8 3586 out DX, AL ; ee 3587 xor al, bh ; 30 f8 4059 shr bx, 008h ; c1 eb 08 4060 mov al, bl ; 88 d8 4061 out DX, AL ; ee 4062 xor al, bl ; 30 d8 3588 4063 mov dx, strict word 0000ch ; ba 0c 00 3589 4064 out DX, AL ; ee 3590 mov al, byte [bp-00ch] ; 8a 46 f44065 mov al, cl ; 88 c8 3591 4066 mov dx, strict word 00005h ; ba 05 00 3592 4067 out DX, AL ; ee 3593 mov al, byte [bp-00bh] ; 8a 46 f5 4068 shr cx, 008h ; c1 e9 08 4069 mov al, cl ; 88 c8 3594 4070 out DX, AL ; ee 3595 4071 mov AL, strict byte 04ah ; b0 4a … … 3602 4078 mov dx, strict word 0000ah ; ba 0a 00 3603 4079 out DX, AL ; ee 3604 mov al, byte [bp-002h] ; 8a 46 fe 3605 xor ah, ah ; 30 e4 3606 call 02c38h ; e8 8d f7 4080 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 4081 call 02b54h ; e8 f6 f7 3607 4082 mov AL, strict byte 04dh ; b0 4d 3608 4083 mov dx, 003f5h ; ba f5 03 3609 4084 out DX, AL ; ee 3610 mov al, byte [bp-006h] ; 8a 46 fa 3611 xor ah, ah ; 30 e4 3612 mov dx, ax ; 89 c2 3613 sal dx, 1 ; d1 e2 3614 sal dx, 1 ; d1 e2 3615 mov al, byte [bp-002h] ; 8a 46 fe 4085 movzx dx, byte [bp-002h] ; 0f b6 56 fe 4086 sal dx, 002h ; c1 e2 02 4087 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3616 4088 or ax, dx ; 09 d0 3617 4089 mov dx, 003f5h ; ba f5 03 … … 3619 4091 mov AL, strict byte 002h ; b0 02 3620 4092 out DX, AL ; ee 3621 mov al, ch ; 88 e83622 out DX, AL ; ee 3623 xor al, ch ; 30 e84093 mov al, byte [bp-008h] ; 8a 46 f8 4094 out DX, AL ; ee 4095 xor al, al ; 30 c0 3624 4096 out DX, AL ; ee 3625 4097 mov AL, strict byte 0f6h ; b0 f6 … … 3628 4100 mov dx, strict word 00040h ; ba 40 00 3629 4101 mov ax, dx ; 89 d0 3630 call 01600h ; e8 26 e14102 call 01600h ; e8 75 e2 3631 4103 test al, al ; 84 c0 3632 jne short 03 4e4h ; 75 063633 call 02 c13h ; e8 32f73634 jmp near 02 faeh ; e9 ca fa4104 jne short 03395h ; 75 06 4105 call 02b2ch ; e8 9a f7 4106 jmp near 02ea5h ; e9 10 fb 3635 4107 mov dx, strict word 0003eh ; ba 3e 00 3636 4108 mov ax, strict word 00040h ; b8 40 00 3637 call 01600h ; e8 13 e14109 call 01600h ; e8 62 e2 3638 4110 and AL, strict byte 080h ; 24 80 3639 4111 test al, al ; 84 c0 3640 je short 03 4d2h ; 74 df4112 je short 03383h ; 74 df 3641 4113 cli ; fa 3642 4114 mov dx, strict word 0003eh ; ba 3e 00 3643 4115 mov ax, strict word 00040h ; b8 40 00 3644 call 01600h ; e8 03 e1 3645 mov bl, al ; 88 c3 3646 and bl, 07fh ; 80 e3 7f 3647 xor bh, bh ; 30 ff 4116 call 01600h ; e8 52 e2 4117 and AL, strict byte 07fh ; 24 7f 4118 movzx bx, al ; 0f b6 d8 3648 4119 mov dx, strict word 0003eh ; ba 3e 00 3649 4120 mov ax, strict word 00040h ; b8 40 00 3650 call 0160eh ; e8 01 e14121 call 0160eh ; e8 52 e2 3651 4122 mov dx, 003f4h ; ba f4 03 3652 4123 in AL, DX ; ec … … 3655 4126 and AL, strict byte 0c0h ; 24 c0 3656 4127 cmp AL, strict byte 0c0h ; 3c c0 3657 je short 0352bh ; 74 12 3658 mov ax, 001bdh ; b8 bd 01 3659 push ax ; 50 3660 mov ax, 001f0h ; b8 f0 01 3661 push ax ; 50 3662 mov ax, strict word 00007h ; b8 07 00 3663 push ax ; 50 3664 call 018fah ; e8 d2 e3 4128 je short 033d6h ; 74 0e 4129 push 001bdh ; 68 bd 01 4130 push 001f0h ; 68 f0 01 4131 push strict byte 00007h ; 6a 07 4132 call 018e9h ; e8 16 e5 3665 4133 add sp, strict byte 00006h ; 83 c4 06 3666 4134 xor si, si ; 31 f6 3667 jmp short 03 534h ; eb 054135 jmp short 033dfh ; eb 05 3668 4136 cmp si, strict byte 00007h ; 83 fe 07 3669 jnl short 03 54dh ; 7d 194137 jnl short 033f7h ; 7d 18 3670 4138 mov dx, 003f5h ; ba f5 03 3671 4139 in AL, DX ; ec 3672 4140 db 02ah, 0e4h 3673 4141 ; sub ah, ah ; 2a e4 3674 mov byte [bp+si-018h], al ; 88 42 e8 3675 mov bl, al ; 88 c3 3676 xor bh, bh ; 30 ff 4142 mov byte [bp+si-012h], al ; 88 42 ee 4143 movzx bx, al ; 0f b6 d8 3677 4144 lea dx, [si+042h] ; 8d 54 42 3678 4145 mov ax, strict word 00040h ; b8 40 00 3679 call 0160eh ; e8 c4 e04146 call 0160eh ; e8 1a e2 3680 4147 inc si ; 46 3681 jmp short 0352fh ; eb e2 3682 test byte [bp-018h], 0c0h ; f6 46 e8 c0 3683 je short 0356eh ; 74 1b 3684 test byte [bp-017h], 002h ; f6 46 e9 02 3685 je short 0355ch ; 74 03 3686 jmp near 0338ch ; e9 30 fe 3687 mov ax, 001bdh ; b8 bd 01 3688 push ax ; 50 3689 mov ax, 00214h ; b8 14 02 3690 push ax ; 50 3691 mov ax, strict word 00007h ; b8 07 00 3692 push ax ; 50 3693 call 018fah ; e8 8f e3 4148 jmp short 033dah ; eb e3 4149 test byte [bp-012h], 0c0h ; f6 46 ee c0 4150 je short 03413h ; 74 16 4151 test byte [bp-011h], 002h ; f6 46 ef 02 4152 jne near 0324fh ; 0f 85 4a fe 4153 push 001bdh ; 68 bd 01 4154 push 00214h ; 68 14 02 4155 push strict byte 00007h ; 6a 07 4156 call 018e9h ; e8 d9 e4 3694 4157 add sp, strict byte 00006h ; 83 c4 06 3695 4158 xor al, al ; 30 c0 3696 4159 mov byte [bp+01bh], al ; 88 46 1b 3697 4160 xor ah, ah ; 30 e4 3698 call 02bcah ; e8 52 f6 3699 mov al, byte [bp-002h] ; 8a 46 fe 3700 xor ah, ah ; 30 e4 4161 call 02aedh ; e8 d0 f6 4162 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 3701 4163 xor dx, dx ; 31 d2 3702 call 02b e0h ; e8 5ef63703 jmp near 03 23fh ; e9 bafc3704 mov byte [bp-00 2h], ah ; 88 66 fe4164 call 02b02h ; e8 dc f6 4165 jmp near 03119h ; e9 f0 fc 4166 mov byte [bp-00ah], ah ; 88 66 f6 3705 4167 cmp ah, 001h ; 80 fc 01 3706 jbe short 03 5aeh ; 76 214168 jbe short 03451h ; 76 20 3707 4169 xor ax, ax ; 31 c0 3708 4170 mov word [bp+01ah], ax ; 89 46 1a … … 3712 4174 mov word [bp+00ah], ax ; 89 46 0a 3713 4175 mov word [bp+00ch], ax ; 89 46 0c 3714 mov al, ch ; 88 e8 3715 xor ah, ah ; 30 e4 4176 movzx ax, cl ; 0f b6 c1 3716 4177 mov word [bp+016h], ax ; 89 46 16 3717 4178 mov word [bp+020h], dx ; 89 56 20 3718 jmp near 0 3243h ; e9 95 fc4179 jmp near 02ed7h ; e9 86 fa 3719 4180 mov ax, strict word 00010h ; b8 10 00 3720 call 0165ch ; e8 a8 e04181 call 0165ch ; e8 05 e2 3721 4182 mov bl, al ; 88 c3 3722 xor c h, ch ; 30 ed4183 xor cl, cl ; 30 c9 3723 4184 test AL, strict byte 0f0h ; a8 f0 3724 je short 03 5beh ; 74 023725 mov C H, strict byte 001h ; b5014185 je short 03461h ; 74 02 4186 mov CL, strict byte 001h ; b1 01 3726 4187 test bl, 00fh ; f6 c3 0f 3727 je short 035c5h ; 74 02 3728 db 0feh, 0c5h 3729 ; inc ch ; fe c5 3730 cmp byte [bp-002h], 000h ; 80 7e fe 00 3731 jne short 035d1h ; 75 06 3732 mov CL, strict byte 004h ; b1 04 3733 shr bl, CL ; d2 eb 3734 jmp short 035d4h ; eb 03 4188 je short 03468h ; 74 02 4189 db 0feh, 0c1h 4190 ; inc cl ; fe c1 4191 cmp byte [bp-00ah], 000h ; 80 7e f6 00 4192 jne short 03473h ; 75 05 4193 shr bl, 004h ; c0 eb 04 4194 jmp short 03476h ; eb 03 3735 4195 and bl, 00fh ; 80 e3 0f 3736 mov byte [bp+015h], 000h ; c6 46 15 00 3737 mov al, bl ; 88 d8 4196 xor al, al ; 30 c0 4197 mov byte [bp+015h], al ; 88 46 15 4198 movzx si, bl ; 0f b6 f3 4199 mov word [bp+014h], si ; 89 76 14 3738 4200 xor ah, ah ; 30 e4 3739 mov word [bp+014h], ax ; 89 46 14 3740 mov word [bp+01ah], strict word 00000h ; c7 46 1a 00 00 3741 mov si, word [bp+016h] ; 8b 76 16 3742 and si, 0ff00h ; 81 e6 00 ff 3743 mov dl, ch ; 88 ea 3744 xor dh, dh ; 30 f6 3745 or si, dx ; 09 d6 3746 mov word [bp+016h], si ; 89 76 16 4201 mov word [bp+01ah], ax ; 89 46 1a 4202 mov dx, word [bp+016h] ; 8b 56 16 4203 xor dl, dl ; 30 d2 4204 movzx ax, cl ; 0f b6 c1 4205 or dx, ax ; 09 c2 4206 mov word [bp+016h], dx ; 89 56 16 3747 4207 cmp bl, 008h ; 80 fb 08 3748 jnbe short 03655h ; 77 5c 3749 mov si, ax ; 89 c6 3750 sal si, 1 ; d1 e6 3751 mov ax, word [bp+016h] ; 8b 46 16 3752 xor ah, ah ; 30 e4 4208 jnbe short 034f1h ; 77 59 4209 add si, si ; 01 f6 4210 mov ax, dx ; 89 d0 4211 xor ah, dh ; 30 f4 3753 4212 mov bx, ax ; 89 c3 3754 4213 or bh, 001h ; 80 cf 01 3755 jmp word [cs:si+02 eeah] ; 2e ff a4 ea 2e4214 jmp word [cs:si+02de2h] ; 2e ff a4 e2 2d 3756 4215 mov word [bp+018h], strict word 00000h ; c7 46 18 00 00 3757 4216 mov byte [bp+017h], 000h ; c6 46 17 00 3758 jmp short 03 667h ; eb 504217 jmp short 034ffh ; eb 4c 3759 4218 mov word [bp+018h], 02709h ; c7 46 18 09 27 3760 4219 mov word [bp+016h], bx ; 89 5e 16 3761 jmp short 03 667h ; eb 464220 jmp short 034ffh ; eb 42 3762 4221 mov word [bp+018h], 04f0fh ; c7 46 18 0f 4f 3763 jmp short 03 61ch ; eb f44222 jmp short 034b8h ; eb f4 3764 4223 mov word [bp+018h], 04f09h ; c7 46 18 09 4f 3765 jmp short 03 61ch ; eb ed4224 jmp short 034b8h ; eb ed 3766 4225 mov word [bp+018h], 04f12h ; c7 46 18 12 4f 3767 jmp short 03 61ch ; eb e64226 jmp short 034b8h ; eb e6 3768 4227 mov word [bp+018h], 04f24h ; c7 46 18 24 4f 3769 jmp short 03 61ch ; eb df4228 jmp short 034b8h ; eb df 3770 4229 mov word [bp+018h], 02708h ; c7 46 18 08 27 3771 4230 mov word [bp+016h], ax ; 89 46 16 3772 jmp short 03 667h ; eb 204231 jmp short 034ffh ; eb 1c 3773 4232 mov word [bp+018h], 02709h ; c7 46 18 09 27 3774 jmp short 03 642h ; eb f44233 jmp short 034deh ; eb f4 3775 4234 mov word [bp+018h], 02708h ; c7 46 18 08 27 3776 jmp short 0361ch ; eb c7 3777 mov ax, 001bdh ; b8 bd 01 3778 push ax ; 50 3779 mov ax, 00225h ; b8 25 02 3780 push ax ; 50 3781 mov ax, strict word 00007h ; b8 07 00 3782 push ax ; 50 3783 call 018fah ; e8 96 e2 4235 jmp short 034b8h ; eb c7 4236 push 001bdh ; 68 bd 01 4237 push 00225h ; 68 25 02 4238 push strict byte 00007h ; 6a 07 4239 call 018e9h ; e8 ed e3 3784 4240 add sp, strict byte 00006h ; 83 c4 06 3785 4241 mov word [bp+00ah], 0f000h ; c7 46 0a 00 f0 3786 4242 mov word [bp+00ch], 0efc7h ; c7 46 0c c7 ef 3787 jmp near 03 23fh ; e9 cb fb3788 mov byte [bp-00 2h], ah ; 88 66 fe4243 jmp near 03119h ; e9 0d fc 4244 mov byte [bp-00ah], ah ; 88 66 f6 3789 4245 cmp ah, 001h ; 80 fc 01 3790 jbe short 03 682h ; 76 064246 jbe short 0351ah ; 76 06 3791 4247 mov word [bp+01ah], si ; 89 76 1a 3792 jmp near 03 5a8h ; e9 26ff4248 jmp near 0344bh ; e9 31 ff 3793 4249 mov ax, strict word 00010h ; b8 10 00 3794 call 0165ch ; e8 d4 df 3795 cmp byte [bp-002h], 000h ; 80 7e fe 00 3796 jne short 03696h ; 75 08 3797 mov CL, strict byte 004h ; b1 04 4250 call 0165ch ; e8 3c e1 4251 cmp byte [bp-00ah], 000h ; 80 7e f6 00 4252 jne short 0352dh ; 75 07 3798 4253 mov bl, al ; 88 c3 3799 shr bl, CL ; d2 eb3800 jmp short 03 69bh ; eb 054254 shr bl, 004h ; c0 eb 04 4255 jmp short 03532h ; eb 05 3801 4256 mov bl, al ; 88 c3 3802 4257 and bl, 00fh ; 80 e3 0f … … 3805 4260 xor ah, ah ; 30 e4 3806 4261 test bl, bl ; 84 db 3807 je short 03 6abh ; 74 034262 je short 03542h ; 74 03 3808 4263 or ah, 001h ; 80 cc 01 3809 4264 mov word [bp+01ah], ax ; 89 46 1a 3810 jmp near 0 3243h ; e9 92 fb4265 jmp near 02ed7h ; e9 8f f9 3811 4266 cmp ah, 001h ; 80 fc 01 3812 jbe short 03 6c2h ; 76 0c4267 jbe short 03559h ; 76 0c 3813 4268 mov word [bp+01ah], si ; 89 76 1a 3814 4269 mov ax, strict word 00001h ; b8 01 00 3815 call 02 bcah ; e8 0bf53816 jmp near 03 5a8h ; e9 e6fe4270 call 02aedh ; e8 97 f5 4271 jmp near 0344bh ; e9 f2 fe 3817 4272 mov ax, word [bp+01ah] ; 8b 46 1a 3818 4273 xor ah, ah ; 30 e4 … … 3820 4275 mov word [bp+01ah], ax ; 89 46 1a 3821 4276 mov ax, strict word 00006h ; b8 06 00 3822 jmp near 02 f80h ; e9 ad f83823 mov bx, 00c 16h ; bb 160c4277 jmp near 02e83h ; e9 19 f9 4278 mov bx, 00c08h ; bb 08 0c 3824 4279 mov cx, ds ; 8c d9 3825 4280 mov ax, strict word 00004h ; b8 04 00 3826 call 018 bdh ; e8 df e13827 mov a l, byte [bp+01bh] ; 8a 46 1b3828 xor ah, ah ; 30 e44281 call 018aeh ; e8 39 e3 4282 mov ax, word [bp+01ah] ; 8b 46 1a 4283 shr ax, 008h ; c1 e8 08 3829 4284 push ax ; 50 3830 mov ax, 001bdh ; b8 bd 01 3831 push ax ; 50 3832 mov ax, 0023ah ; b8 3a 02 3833 push ax ; 50 3834 mov ax, strict word 00004h ; b8 04 00 3835 push ax ; 50 3836 call 018fah ; e8 07 e2 4285 push 001bdh ; 68 bd 01 4286 push 0023ah ; 68 3a 02 4287 push strict byte 00004h ; 6a 04 4288 call 018e9h ; e8 62 e3 3837 4289 add sp, strict byte 00008h ; 83 c4 08 3838 jmp near 02 f72h ; e9 79f83839 _cdemu_init: ; 0xf3 6f9LB 0x164290 jmp near 02e75h ; e9 e8 f8 4291 _cdemu_init: ; 0xf358d LB 0x16 3840 4292 push bp ; 55 3841 4293 mov bp, sp ; 89 e5 3842 4294 mov dx, strict word 0000eh ; ba 0e 00 3843 4295 mov ax, strict word 00040h ; b8 40 00 3844 call 0161ch ; e8 17 df4296 call 0161ch ; e8 83 e0 3845 4297 xor bx, bx ; 31 db 3846 4298 mov dx, 00322h ; ba 22 03 3847 call 0160eh ; e8 01 df4299 call 0160eh ; e8 6d e0 3848 4300 pop bp ; 5d 3849 4301 retn ; c3 3850 _cdemu_isactive: ; 0xf3 70fLB 0x144302 _cdemu_isactive: ; 0xf35a3 LB 0x14 3851 4303 push bp ; 55 3852 4304 mov bp, sp ; 89 e5 3853 4305 mov dx, strict word 0000eh ; ba 0e 00 3854 4306 mov ax, strict word 00040h ; b8 40 00 3855 call 0161ch ; e8 01 df4307 call 0161ch ; e8 6d e0 3856 4308 mov dx, 00322h ; ba 22 03 3857 call 01600h ; e8 df de4309 call 01600h ; e8 4b e0 3858 4310 pop bp ; 5d 3859 4311 retn ; c3 3860 _cdemu_emulated_drive: ; 0xf3 723LB 0x144312 _cdemu_emulated_drive: ; 0xf35b7 LB 0x14 3861 4313 push bp ; 55 3862 4314 mov bp, sp ; 89 e5 3863 4315 mov dx, strict word 0000eh ; ba 0e 00 3864 4316 mov ax, strict word 00040h ; b8 40 00 3865 call 0161ch ; e8 ed de4317 call 0161ch ; e8 59 e0 3866 4318 mov dx, 00324h ; ba 24 03 3867 call 01600h ; e8 cb de4319 call 01600h ; e8 37 e0 3868 4320 pop bp ; 5d 3869 4321 retn ; c3 3870 _int13_eltorito: ; 0xf3 737 LB 0x1874322 _int13_eltorito: ; 0xf35cb LB 0x17d 3871 4323 push si ; 56 3872 4324 push di ; 57 … … 3875 4327 mov dx, strict word 0000eh ; ba 0e 00 3876 4328 mov ax, strict word 00040h ; b8 40 00 3877 call 0161ch ; e8 d7 de4329 call 0161ch ; e8 43 e0 3878 4330 mov si, 00322h ; be 22 03 3879 4331 mov di, ax ; 89 c7 3880 mov a l, byte [bp+01bh] ; 8a 46 1b3881 xor ah, ah ; 30 e44332 mov ax, word [bp+01ah] ; 8b 46 1a 4333 shr ax, 008h ; c1 e8 08 3882 4334 cmp ax, strict word 0004bh ; 3d 4b 00 3883 jc short 03 75eh ; 72 0a3884 jbe short 03 77eh ; 76 284335 jc short 035f3h ; 72 0a 4336 jbe short 0360eh ; 76 23 3885 4337 cmp ax, strict word 0004dh ; 3d 4d 00 3886 jbe short 03 763h ; 76 083887 jmp near 03 880h ; e9 22014338 jbe short 035fah ; 76 0a 4339 jmp near 0370ah ; e9 17 01 3888 4340 cmp ax, strict word 0004ah ; 3d 4a 00 3889 jne short 0377bh ; 75 184341 jne near 0370ah ; 0f 85 10 01 3890 4342 push word [bp+01ah] ; ff 76 1a 3891 mov ax, 00254h ; b8 54 02 3892 push ax ; 50 3893 mov ax, 00263h ; b8 63 02 3894 push ax ; 50 3895 mov ax, strict word 00007h ; b8 07 00 3896 push ax ; 50 3897 call 018fah ; e8 85 e1 4343 push 00254h ; 68 54 02 4344 push 00263h ; 68 63 02 4345 push strict byte 00007h ; 6a 07 4346 call 018e9h ; e8 e1 e2 3898 4347 add sp, strict byte 00008h ; 83 c4 08 3899 jmp near 0389fh ; e9 24 01 3900 jmp near 03880h ; e9 02 01 4348 jmp near 03727h ; e9 19 01 3901 4349 mov dx, word [bp+00eh] ; 8b 56 0e 3902 4350 mov ax, word [bp+008h] ; 8b 46 08 3903 4351 mov bx, strict word 00013h ; bb 13 00 3904 call 0160eh ; e8 84 de4352 call 0160eh ; e8 f4 df 3905 4353 mov es, di ; 8e c7 3906 mov bl, byte [es:si+001h] ; 26 8a 5c 01 3907 xor bh, bh ; 30 ff 4354 movzx bx, byte [es:si+001h] ; 26 0f b6 5c 01 3908 4355 mov dx, word [bp+00eh] ; 8b 56 0e 3909 4356 inc dx ; 42 3910 4357 mov ax, word [bp+008h] ; 8b 46 08 3911 call 0160eh ; e8 72 de4358 call 0160eh ; e8 e3 df 3912 4359 mov es, di ; 8e c7 3913 mov bl, byte [es:si+002h] ; 26 8a 5c 02 3914 xor bh, bh ; 30 ff 4360 movzx bx, byte [es:si+002h] ; 26 0f b6 5c 02 3915 4361 mov dx, word [bp+00eh] ; 8b 56 0e 3916 4362 inc dx ; 42 3917 4363 inc dx ; 42 3918 4364 mov ax, word [bp+008h] ; 8b 46 08 3919 call 0160eh ; e8 5f de4365 call 0160eh ; e8 d1 df 3920 4366 mov es, di ; 8e c7 3921 mov bl, byte [es:si+003h] ; 26 8a 5c 03 3922 xor bh, bh ; 30 ff 4367 movzx bx, byte [es:si+003h] ; 26 0f b6 5c 03 3923 4368 mov dx, word [bp+00eh] ; 8b 56 0e 3924 4369 add dx, strict byte 00003h ; 83 c2 03 3925 4370 mov ax, word [bp+008h] ; 8b 46 08 3926 call 0160eh ; e8 4b de4371 call 0160eh ; e8 be df 3927 4372 mov es, di ; 8e c7 3928 4373 mov bx, word [es:si+008h] ; 26 8b 5c 08 … … 3931 4376 add dx, strict byte 00004h ; 83 c2 04 3932 4377 mov ax, word [bp+008h] ; 8b 46 08 3933 call 0164ah ; e8 71 de4378 call 0164ah ; e8 e4 df 3934 4379 mov es, di ; 8e c7 3935 4380 mov bx, word [es:si+004h] ; 26 8b 5c 04 … … 3937 4382 add dx, strict byte 00008h ; 83 c2 08 3938 4383 mov ax, word [bp+008h] ; 8b 46 08 3939 call 0162ah ; e8 3f de4384 call 0162ah ; e8 b2 df 3940 4385 mov es, di ; 8e c7 3941 4386 mov bx, word [es:si+006h] ; 26 8b 5c 06 … … 3943 4388 add dx, strict byte 0000ah ; 83 c2 0a 3944 4389 mov ax, word [bp+008h] ; 8b 46 08 3945 call 0162ah ; e8 2d de4390 call 0162ah ; e8 a0 df 3946 4391 mov es, di ; 8e c7 3947 4392 mov bx, word [es:si+00ch] ; 26 8b 5c 0c … … 3949 4394 add dx, strict byte 0000ch ; 83 c2 0c 3950 4395 mov ax, word [bp+008h] ; 8b 46 08 3951 call 0162ah ; e8 1b de4396 call 0162ah ; e8 8e df 3952 4397 mov es, di ; 8e c7 3953 4398 mov bx, word [es:si+00eh] ; 26 8b 5c 0e … … 3955 4400 add dx, strict byte 0000eh ; 83 c2 0e 3956 4401 mov ax, word [bp+008h] ; 8b 46 08 3957 call 0162ah ; e8 09 de4402 call 0162ah ; e8 7c df 3958 4403 mov es, di ; 8e c7 3959 mov bl, byte [es:si+012h] ; 26 8a 5c 12 3960 xor bh, bh ; 30 ff 4404 movzx bx, byte [es:si+012h] ; 26 0f b6 5c 12 3961 4405 mov dx, word [bp+00eh] ; 8b 56 0e 3962 4406 add dx, strict byte 00010h ; 83 c2 10 3963 4407 mov ax, word [bp+008h] ; 8b 46 08 3964 call 0160eh ; e8 d9 dd4408 call 0160eh ; e8 4d df 3965 4409 mov es, di ; 8e c7 3966 mov bl, byte [es:si+014h] ; 26 8a 5c 14 3967 xor bh, bh ; 30 ff 4410 movzx bx, byte [es:si+014h] ; 26 0f b6 5c 14 3968 4411 mov dx, word [bp+00eh] ; 8b 56 0e 3969 4412 add dx, strict byte 00011h ; 83 c2 11 3970 4413 mov ax, word [bp+008h] ; 8b 46 08 3971 call 0160eh ; e8 c5 dd4414 call 0160eh ; e8 3a df 3972 4415 mov es, di ; 8e c7 3973 mov bl, byte [es:si+010h] ; 26 8a 5c 10 3974 xor bh, bh ; 30 ff 4416 movzx bx, byte [es:si+010h] ; 26 0f b6 5c 10 3975 4417 mov dx, word [bp+00eh] ; 8b 56 0e 3976 4418 add dx, strict byte 00012h ; 83 c2 12 3977 4419 mov ax, word [bp+008h] ; 8b 46 08 3978 call 0160eh ; e8 b1 dd4420 call 0160eh ; e8 27 df 3979 4421 test byte [bp+01ah], 0ffh ; f6 46 1a ff 3980 jne short 03 869h ; 75 064422 jne short 036f3h ; 75 06 3981 4423 mov es, di ; 8e c7 3982 4424 mov byte [es:si], 000h ; 26 c6 04 00 … … 3985 4427 mov dx, strict word 00074h ; ba 74 00 3986 4428 mov ax, strict word 00040h ; b8 40 00 3987 call 0160eh ; e8 96 dd4429 call 0160eh ; e8 0c df 3988 4430 and byte [bp+020h], 0feh ; 80 66 20 fe 3989 4431 pop bp ; 5d … … 3991 4433 pop si ; 5e 3992 4434 retn ; c3 3993 mov bx, 00c 16h ; bb 160c4435 mov bx, 00c08h ; bb 08 0c 3994 4436 mov cx, ds ; 8c d9 3995 4437 mov ax, strict word 00004h ; b8 04 00 3996 call 018 bdh ; e8 32 e03997 mov a l, byte [bp+01bh] ; 8a 46 1b3998 xor ah, ah ; 30 e44438 call 018aeh ; e8 99 e1 4439 mov ax, word [bp+01ah] ; 8b 46 1a 4440 shr ax, 008h ; c1 e8 08 3999 4441 push ax ; 50 4000 mov ax, 00254h ; b8 54 02 4001 push ax ; 50 4002 mov ax, 00289h ; b8 89 02 4003 push ax ; 50 4004 mov ax, strict word 00004h ; b8 04 00 4005 jmp near 03771h ; e9 d2 fe 4442 push 00254h ; 68 54 02 4443 push 00289h ; 68 89 02 4444 push strict byte 00004h ; 6a 04 4445 jmp near 03605h ; e9 de fe 4006 4446 mov ax, word [bp+01ah] ; 8b 46 1a 4007 4447 xor ah, ah ; 30 e4 4008 4448 or ah, 001h ; 80 cc 01 4009 4449 mov word [bp+01ah], ax ; 89 46 1a 4010 mov bl, byte [bp+01bh] ; 8a 5e 1b 4450 mov bx, ax ; 89 c3 4451 shr bx, 008h ; c1 eb 08 4011 4452 xor bh, bh ; 30 ff 4012 4453 mov dx, strict word 00074h ; ba 74 00 4013 4454 mov ax, strict word 00040h ; b8 40 00 4014 call 0160eh ; e8 56 dd4455 call 0160eh ; e8 cc de 4015 4456 or byte [bp+020h], 001h ; 80 4e 20 01 4016 jmp short 03 87ch ; eb be4017 device_is_cdrom_: ; 0xf3 8be LB 0x3c4457 jmp short 03706h ; eb be 4458 device_is_cdrom_: ; 0xf3748 LB 0x32 4018 4459 push bx ; 53 4019 push cx ; 514020 4460 push dx ; 52 4021 4461 push bp ; 55 … … 4024 4464 mov dx, strict word 0000eh ; ba 0e 00 4025 4465 mov ax, strict word 00040h ; b8 40 00 4026 call 0161ch ; e8 4d dd 4027 mov cx, ax ; 89 c1 4466 call 0161ch ; e8 c4 de 4028 4467 cmp bl, 010h ; 80 fb 10 4029 jc short 03 8dah ; 72 044468 jc short 03761h ; 72 04 4030 4469 xor ax, ax ; 31 c0 4031 jmp short 038f5h ; eb 1b 4032 mov al, bl ; 88 d8 4033 xor ah, ah ; 30 e4 4034 mov bx, strict word 00018h ; bb 18 00 4035 imul bx ; f7 eb 4036 mov es, cx ; 8e c1 4037 mov bx, ax ; 89 c3 4470 jmp short 03776h ; eb 15 4471 xor bh, bh ; 30 ff 4472 imul bx, bx, strict byte 00018h ; 6b db 18 4473 mov es, ax ; 8e c0 4038 4474 add bx, 00122h ; 81 c3 22 01 4039 4475 cmp byte [es:bx+01fh], 005h ; 26 80 7f 1f 05 4040 jne short 03 8d6h ; 75 e44476 jne short 0375dh ; 75 ea 4041 4477 mov ax, strict word 00001h ; b8 01 00 4042 4478 pop bp ; 5d 4043 4479 pop dx ; 5a 4044 pop cx ; 594045 4480 pop bx ; 5b 4046 4481 retn ; c3 4047 cdrom_boot_: ; 0xf3 8fa LB 0x4684482 cdrom_boot_: ; 0xf377a LB 0x42f 4048 4483 push bx ; 53 4049 4484 push cx ; 51 … … 4051 4486 push si ; 56 4052 4487 push di ; 57 4053 push bp ; 55 4054 mov bp, sp ; 89 e5 4055 sub sp, 0081ch ; 81 ec 1c 08 4488 enter 0081ah, 000h ; c8 1a 08 00 4056 4489 mov dx, strict word 0000eh ; ba 0e 00 4057 4490 mov ax, strict word 00040h ; b8 40 00 4058 call 0161ch ; e8 0d dd4491 call 0161ch ; e8 90 de 4059 4492 mov word [bp-00ch], ax ; 89 46 f4 4060 4493 mov si, 00322h ; be 22 03 4061 mov word [bp-00 8h], ax ; 89 46 f84062 mov word [bp-00 ah], 00122h ; c7 46 f622 014494 mov word [bp-00eh], ax ; 89 46 f2 4495 mov word [bp-008h], 00122h ; c7 46 f8 22 01 4063 4496 mov word [bp-006h], ax ; 89 46 fa 4064 4497 mov byte [bp-004h], 000h ; c6 46 fc 00 4065 jmp short 03 92fh ; eb 094498 jmp short 037ach ; eb 09 4066 4499 inc byte [bp-004h] ; fe 46 fc 4067 4500 cmp byte [bp-004h], 010h ; 80 7e fc 10 4068 jnc short 0393bh ; 73 0c 4069 mov al, byte [bp-004h] ; 8a 46 fc 4070 xor ah, ah ; 30 e4 4071 call 038beh ; e8 87 ff 4501 jnc short 037b7h ; 73 0b 4502 movzx ax, byte [bp-004h] ; 0f b6 46 fc 4503 call 03748h ; e8 95 ff 4072 4504 test ax, ax ; 85 c0 4073 je short 03 926h ; 74 eb4505 je short 037a3h ; 74 ec 4074 4506 cmp byte [bp-004h], 010h ; 80 7e fc 10 4075 jc short 03 947h ; 72 064507 jc short 037c3h ; 72 06 4076 4508 mov ax, strict word 00002h ; b8 02 00 4077 jmp near 03 d00h ; e9 b9034509 jmp near 03b49h ; e9 86 03 4078 4510 mov cx, strict word 0000ch ; b9 0c 00 4079 4511 xor bx, bx ; 31 db 4080 4512 mov dx, ss ; 8c d2 4081 lea ax, [bp-01 ch] ; 8d 46 e44082 call 08 dbbh ; e8 67 544083 mov word [bp-01 ch], strict word 00028h ; c7 46 e428 004513 lea ax, [bp-01ah] ; 8d 46 e6 4514 call 0885ah ; e8 8a 50 4515 mov word [bp-01ah], strict word 00028h ; c7 46 e6 28 00 4084 4516 mov ax, strict word 00011h ; b8 11 00 4085 4517 xor dx, dx ; 31 d2 … … 4087 4519 xchg dh, dl ; 86 d6 4088 4520 xchg dx, ax ; 92 4089 mov word [bp-01 ah], ax ; 89 46 e64090 mov word [bp-01 8h], dx ; 89 56 e84521 mov word [bp-018h], ax ; 89 46 e8 4522 mov word [bp-016h], dx ; 89 56 ea 4091 4523 mov ax, strict word 00001h ; b8 01 00 4092 4524 xchg ah, al ; 86 c4 4093 mov word [bp-015h], ax ; 89 46 eb 4094 mov es, [bp-006h] ; 8e 46 fa 4095 mov bx, word [bp-00ah] ; 8b 5e f6 4096 mov word [es:bx+00ah], strict word 00001h ; 26 c7 47 0a 01 00 4097 mov word [es:bx+00ch], 00800h ; 26 c7 47 0c 00 08 4525 mov word [bp-013h], ax ; 89 46 ed 4526 les bx, [bp-008h] ; c4 5e f8 4527 db 066h, 026h, 0c7h, 047h, 00ah, 001h, 000h, 000h, 008h 4528 ; mov dword [es:bx+00ah], strict dword 008000001h ; 66 26 c7 47 0a 01 00 00 08 4098 4529 mov byte [bp-002h], 000h ; c6 46 fe 00 4099 jmp short 03 9bah ; eb 314100 lea dx, [bp-0081 ch] ; 8d 96 e4f74530 jmp short 0382ah ; eb 2b 4531 lea dx, [bp-0081ah] ; 8d 96 e6 f7 4101 4532 push SS ; 16 4102 4533 push dx ; 52 4103 mov ax, strict word 00001h ; b8 01 00 4104 push ax ; 50 4105 xor ax, ax ; 31 c0 4106 push ax ; 50 4107 mov ax, 00800h ; b8 00 08 4108 push ax ; 50 4109 xor ax, ax ; 31 c0 4110 push ax ; 50 4111 mov al, byte [bp-004h] ; 8a 46 fc 4112 xor ah, ah ; 30 e4 4534 push strict byte 00001h ; 6a 01 4535 push strict byte 00000h ; 6a 00 4536 push 00800h ; 68 00 08 4537 push strict byte 00000h ; 6a 00 4538 movzx ax, byte [bp-004h] ; 0f b6 46 fc 4113 4539 mov cx, ss ; 8c d1 4114 lea bx, [bp-01 ch] ; 8d 5e e44540 lea bx, [bp-01ah] ; 8d 5e e6 4115 4541 mov dx, strict word 0000ch ; ba 0c 00 4116 call 028 dbh ; e8 2eef4542 call 0280ah ; e8 ed ef 4117 4543 test ax, ax ; 85 c0 4118 je short 03 9e6h ; 74 354544 je short 03850h ; 74 2f 4119 4545 inc byte [bp-002h] ; fe 46 fe 4120 4546 cmp byte [bp-002h], 004h ; 80 7e fe 04 4121 jnbe short 03 9e6h ; 77 2c4547 jnbe short 03850h ; 77 26 4122 4548 cmp byte [bp-004h], 008h ; 80 7e fc 08 4123 jbe short 03 989h ; 76 c94124 lea dx, [bp-0081 ch] ; 8d 96 e4f74549 jbe short 037ffh ; 76 cf 4550 lea dx, [bp-0081ah] ; 8d 96 e6 f7 4125 4551 push SS ; 16 4126 4552 push dx ; 52 4127 mov ax, strict word 00001h ; b8 01 00 4128 push ax ; 50 4129 xor ax, ax ; 31 c0 4130 push ax ; 50 4131 mov ax, 00800h ; b8 00 08 4132 push ax ; 50 4133 xor ax, ax ; 31 c0 4134 push ax ; 50 4135 mov al, byte [bp-004h] ; 8a 46 fc 4136 xor ah, ah ; 30 e4 4553 push strict byte 00001h ; 6a 01 4554 push strict byte 00000h ; 6a 00 4555 push 00800h ; 68 00 08 4556 push strict byte 00000h ; 6a 00 4557 movzx ax, byte [bp-004h] ; 0f b6 46 fc 4137 4558 mov cx, ss ; 8c d1 4138 lea bx, [bp-01 ch] ; 8d 5e e44559 lea bx, [bp-01ah] ; 8d 5e e6 4139 4560 mov dx, strict word 0000ch ; ba 0c 00 4140 call 0 83e4h ; e8 00 4a4141 jmp short 03 9adh ; eb c74561 call 07f4eh ; e8 00 47 4562 jmp short 0381dh ; eb cd 4142 4563 test ax, ax ; 85 c0 4143 je short 03 9f0h ; 74 064564 je short 0385ah ; 74 06 4144 4565 mov ax, strict word 00003h ; b8 03 00 4145 jmp near 03 d00h ; e9 10 034146 cmp byte [bp-0081 ch], 000h ; 80 be e4f7 004147 je short 03 9fdh ; 74 064566 jmp near 03b49h ; e9 ef 02 4567 cmp byte [bp-0081ah], 000h ; 80 be e6 f7 00 4568 je short 03867h ; 74 06 4148 4569 mov ax, strict word 00004h ; b8 04 00 4149 jmp near 03 d00h ; e9 03 034570 jmp near 03b49h ; e9 e2 02 4150 4571 xor di, di ; 31 ff 4151 jmp short 03 a07h ; eb 064572 jmp short 03871h ; eb 06 4152 4573 inc di ; 47 4153 4574 cmp di, strict byte 00005h ; 83 ff 05 4154 jnc short 03 a17h ; 73 104155 mov al, byte [bp+di-0081 bh] ; 8a 83 e5f74156 cmp al, byte [di+00c1 eh] ; 3a 85 1e0c4157 je short 03 a01h ; 74 f04575 jnc short 03881h ; 73 10 4576 mov al, byte [bp+di-00819h] ; 8a 83 e7 f7 4577 cmp al, byte [di+00c10h] ; 3a 85 10 0c 4578 je short 0386bh ; 74 f0 4158 4579 mov ax, strict word 00005h ; b8 05 00 4159 jmp near 03 d00h ; e9 e9024580 jmp near 03b49h ; e9 c8 02 4160 4581 xor di, di ; 31 ff 4161 jmp short 03 a21h ; eb 064582 jmp short 0388bh ; eb 06 4162 4583 inc di ; 47 4163 4584 cmp di, strict byte 00017h ; 83 ff 17 4164 jnc short 03 a31h ; 73 104165 mov al, byte [bp+di-0081 5h] ; 8a 83 ebf74166 cmp al, byte [di+00c 24h] ; 3a 85 240c4167 je short 03 a1bh ; 74 f04585 jnc short 0389bh ; 73 10 4586 mov al, byte [bp+di-00813h] ; 8a 83 ed f7 4587 cmp al, byte [di+00c16h] ; 3a 85 16 0c 4588 je short 03885h ; 74 f0 4168 4589 mov ax, strict word 00006h ; b8 06 00 4169 jmp near 03 d00h ; e9 cf024170 mov ax, word [bp-007d 5h] ; 8b 86 2bf84171 mov dx, word [bp-007d 3h] ; 8b 96 2df84172 mov word [bp-01 ch], strict word 00028h ; c7 46 e428 004590 jmp near 03b49h ; e9 ae 02 4591 mov ax, word [bp-007d3h] ; 8b 86 2d f8 4592 mov dx, word [bp-007d1h] ; 8b 96 2f f8 4593 mov word [bp-01ah], strict word 00028h ; c7 46 e6 28 00 4173 4594 xchg ah, al ; 86 c4 4174 4595 xchg dh, dl ; 86 d6 4175 4596 xchg dx, ax ; 92 4176 mov word [bp-01 ah], ax ; 89 46 e64177 mov word [bp-01 8h], dx ; 89 56 e84597 mov word [bp-018h], ax ; 89 46 e8 4598 mov word [bp-016h], dx ; 89 56 ea 4178 4599 mov ax, strict word 00001h ; b8 01 00 4179 4600 xchg ah, al ; 86 c4 4180 mov word [bp-01 5h], ax ; 89 46 eb4601 mov word [bp-013h], ax ; 89 46 ed 4181 4602 cmp byte [bp-004h], 008h ; 80 7e fc 08 4182 jbe short 03 a7dh ; 76 264183 lea dx, [bp-0081 ch] ; 8d 96 e4f74603 jbe short 038e1h ; 76 20 4604 lea dx, [bp-0081ah] ; 8d 96 e6 f7 4184 4605 push SS ; 16 4185 4606 push dx ; 52 4186 mov ax, strict word 00001h ; b8 01 00 4187 push ax ; 50 4188 xor ax, ax ; 31 c0 4189 push ax ; 50 4190 mov ax, 00800h ; b8 00 08 4191 push ax ; 50 4192 xor ax, ax ; 31 c0 4193 push ax ; 50 4194 mov al, byte [bp-004h] ; 8a 46 fc 4195 xor ah, ah ; 30 e4 4607 push strict byte 00001h ; 6a 01 4608 push strict byte 00000h ; 6a 00 4609 push 00800h ; 68 00 08 4610 push strict byte 00000h ; 6a 00 4611 movzx ax, byte [bp-004h] ; 0f b6 46 fc 4196 4612 mov cx, ss ; 8c d1 4197 lea bx, [bp-01 ch] ; 8d 5e e44613 lea bx, [bp-01ah] ; 8d 5e e6 4198 4614 mov dx, strict word 0000ch ; ba 0c 00 4199 call 0 83e4h ; e8 69 494200 jmp short 03 aa1h ; eb 244201 lea dx, [bp-0081 ch] ; 8d 96 e4f74615 call 07f4eh ; e8 6f 46 4616 jmp short 038ffh ; eb 1e 4617 lea dx, [bp-0081ah] ; 8d 96 e6 f7 4202 4618 push SS ; 16 4203 4619 push dx ; 52 4204 mov ax, strict word 00001h ; b8 01 00 4205 push ax ; 50 4206 xor ax, ax ; 31 c0 4207 push ax ; 50 4208 mov ax, 00800h ; b8 00 08 4209 push ax ; 50 4210 xor ax, ax ; 31 c0 4211 push ax ; 50 4212 mov al, byte [bp-004h] ; 8a 46 fc 4213 xor ah, ah ; 30 e4 4620 push strict byte 00001h ; 6a 01 4621 push strict byte 00000h ; 6a 00 4622 push 00800h ; 68 00 08 4623 push strict byte 00000h ; 6a 00 4624 movzx ax, byte [bp-004h] ; 0f b6 46 fc 4214 4625 mov cx, ss ; 8c d1 4215 lea bx, [bp-01 ch] ; 8d 5e e44626 lea bx, [bp-01ah] ; 8d 5e e6 4216 4627 mov dx, strict word 0000ch ; ba 0c 00 4217 call 028 dbh ; e8 3a ee4628 call 0280ah ; e8 0b ef 4218 4629 test ax, ax ; 85 c0 4219 je short 03 aabh ; 74 064630 je short 03909h ; 74 06 4220 4631 mov ax, strict word 00007h ; b8 07 00 4221 jmp near 03 d00h ; e9 55024222 cmp byte [bp-0081 ch], 001h ; 80 be e4f7 014223 je short 03 ab8h ; 74 064632 jmp near 03b49h ; e9 40 02 4633 cmp byte [bp-0081ah], 001h ; 80 be e6 f7 01 4634 je short 03916h ; 74 06 4224 4635 mov ax, strict word 00008h ; b8 08 00 4225 jmp near 03 d00h ; e9 48024226 cmp byte [bp-0081 bh], 000h ; 80 be e5f7 004227 je short 03 ac5h ; 74 064636 jmp near 03b49h ; e9 33 02 4637 cmp byte [bp-00819h], 000h ; 80 be e7 f7 00 4638 je short 03923h ; 74 06 4228 4639 mov ax, strict word 00009h ; b8 09 00 4229 jmp near 03 d00h ; e9 3b024230 cmp byte [bp-007f eh], 055h ; 80 be 02f8 554231 je short 03 ad2h ; 74 064640 jmp near 03b49h ; e9 26 02 4641 cmp byte [bp-007fch], 055h ; 80 be 04 f8 55 4642 je short 03930h ; 74 06 4232 4643 mov ax, strict word 0000ah ; b8 0a 00 4233 jmp near 03 d00h ; e9 2e024234 cmp byte [bp-007f dh], 0aah ; 80 be 03f8 aa4235 jne short 03 acch ; 75 f34236 cmp byte [bp-007f ch], 088h ; 80 be 04f8 884237 je short 03 ae6h ; 74 064644 jmp near 03b49h ; e9 19 02 4645 cmp byte [bp-007fbh], 0aah ; 80 be 05 f8 aa 4646 jne short 0392ah ; 75 f3 4647 cmp byte [bp-007fah], 088h ; 80 be 06 f8 88 4648 je short 03944h ; 74 06 4238 4649 mov ax, strict word 0000bh ; b8 0b 00 4239 jmp near 03 d00h ; e9 1a024240 mov al, byte [bp-007f bh] ; 8a 86 05f84241 mov es, [bp-00 8h] ; 8e 46 f84650 jmp near 03b49h ; e9 05 02 4651 mov al, byte [bp-007f9h] ; 8a 86 07 f8 4652 mov es, [bp-00eh] ; 8e 46 f2 4242 4653 mov byte [es:si+001h], al ; 26 88 44 01 4243 cmp byte [bp-007f bh], 000h ; 80 be 05f8 004244 jne short 03 affh ; 75 074654 cmp byte [bp-007f9h], 000h ; 80 be 07 f8 00 4655 jne short 0395dh ; 75 07 4245 4656 mov byte [es:si+002h], 0e0h ; 26 c6 44 02 e0 4246 jmp short 03 b12h ; eb 134247 cmp byte [bp-007f bh], 004h ; 80 be 05f8 044248 jnc short 03 b0dh ; 73 074657 jmp short 03970h ; eb 13 4658 cmp byte [bp-007f9h], 004h ; 80 be 07 f8 04 4659 jnc short 0396bh ; 73 07 4249 4660 mov byte [es:si+002h], 000h ; 26 c6 44 02 00 4250 jmp short 03 b12h ; eb 054661 jmp short 03970h ; eb 05 4251 4662 mov byte [es:si+002h], 080h ; 26 c6 44 02 80 4252 mov bl, byte [bp-004h] ; 8a 5e fc 4253 xor bh, bh ; 30 ff 4254 mov ax, bx ; 89 d8 4663 movzx di, byte [bp-004h] ; 0f b6 7e fc 4664 mov ax, di ; 89 f8 4255 4665 cwd ; 99 4256 4666 db 02bh, 0c2h 4257 4667 ; sub ax, dx ; 2b c2 4258 4668 sar ax, 1 ; d1 f8 4259 mov es, [bp-00 8h] ; 8e 46 f84669 mov es, [bp-00eh] ; 8e 46 f2 4260 4670 mov byte [es:si+003h], al ; 26 88 44 03 4261 mov ax, bx ; 89 d84671 mov ax, di ; 89 f8 4262 4672 cwd ; 99 4263 4673 mov bx, strict word 00002h ; bb 02 00 4264 4674 idiv bx ; f7 fb 4265 4675 mov word [es:si+004h], dx ; 26 89 54 04 4266 mov di, word [bp-007f ah] ; 8b be 06f84676 mov di, word [bp-007f8h] ; 8b be 08 f8 4267 4677 test di, di ; 85 ff 4268 jne short 03 b3ch ; 75 034678 jne short 03999h ; 75 03 4269 4679 mov di, 007c0h ; bf c0 07 4270 mov es, [bp-00 8h] ; 8e 46 f84680 mov es, [bp-00eh] ; 8e 46 f2 4271 4681 mov word [es:si+00ch], di ; 26 89 7c 0c 4272 4682 mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00 4273 mov cx, word [bp-007f6h] ; 8b 8e 0a f84274 mov word [es:si+00eh], cx ; 26 89 4c 0e4275 4683 mov ax, word [bp-007f4h] ; 8b 86 0c f8 4276 mov dx, word [bp-007f2h] ; 8b 96 0e f8 4684 mov word [bp-00ah], ax ; 89 46 f6 4685 mov word [es:si+00eh], ax ; 26 89 44 0e 4686 mov ax, word [bp-007f2h] ; 8b 86 0e f8 4687 mov dx, word [bp-007f0h] ; 8b 96 10 f8 4277 4688 mov word [es:si+008h], ax ; 26 89 44 08 4278 4689 mov word [es:si+00ah], dx ; 26 89 54 0a 4279 mov word [bp-01 ch], strict word 00028h ; c7 46 e428 004690 mov word [bp-01ah], strict word 00028h ; c7 46 e6 28 00 4280 4691 xchg ah, al ; 86 c4 4281 4692 xchg dh, dl ; 86 d6 4282 4693 xchg dx, ax ; 92 4283 mov word [bp-01 ah], ax ; 89 46 e64284 mov word [bp-01 8h], dx ; 89 56 e84285 mov dx, cx ; 89 ca4694 mov word [bp-018h], ax ; 89 46 e8 4695 mov word [bp-016h], dx ; 89 56 ea 4696 mov dx, word [bp-00ah] ; 8b 56 f6 4286 4697 dec dx ; 4a 4287 shr dx, 1 ; d1 ea 4288 shr dx, 1 ; d1 ea 4698 shr dx, 002h ; c1 ea 02 4289 4699 inc dx ; 42 4290 4700 mov ax, dx ; 89 d0 4291 4701 xchg ah, al ; 86 c4 4292 mov word [bp-015h], ax ; 89 46 eb 4293 mov es, [bp-006h] ; 8e 46 fa 4294 mov bx, word [bp-00ah] ; 8b 5e f6 4702 mov word [bp-013h], ax ; 89 46 ed 4703 les bx, [bp-008h] ; c4 5e f8 4295 4704 mov word [es:bx+00ah], dx ; 26 89 57 0a 4296 4705 mov word [es:bx+00ch], 00200h ; 26 c7 47 0c 00 02 4297 mov word [bp-010h], cx ; 89 4e f0 4298 mov word [bp-00eh], strict word 00000h ; c7 46 f2 00 00 4706 mov ax, word [bp-00ah] ; 8b 46 f6 4707 sal ax, 009h ; c1 e0 09 4708 and ah, 007h ; 80 e4 07 4709 mov dx, 00800h ; ba 00 08 4710 sub dx, ax ; 29 c2 4711 mov word [es:bx+01ch], dx ; 26 89 57 1c 4712 cmp byte [bp-004h], 008h ; 80 7e fc 08 4713 jbe short 03a2ch ; 76 27 4714 push di ; 57 4715 push dword 000000001h ; 66 6a 01 4716 mov ax, word [bp-00ah] ; 8b 46 f6 4717 xor dx, dx ; 31 d2 4299 4718 mov cx, strict word 00009h ; b9 09 00 4300 sal word [bp-010h], 1 ; d1 66 f0 4301 rcl word [bp-00eh], 1 ; d1 56 f2 4302 loop 03b9bh ; e2 f8 4303 mov ax, word [bp-010h] ; 8b 46 f0 4304 mov dx, word [bp-00eh] ; 8b 56 f2 4305 mov bx, 00800h ; bb 00 08 4306 xor cx, cx ; 31 c9 4307 call 08ceeh ; e8 3d 51 4308 mov ax, 00800h ; b8 00 08 4309 sub ax, bx ; 29 d8 4310 mov bx, word [bp-00ah] ; 8b 5e f6 4311 mov word [es:bx+01ch], ax ; 26 89 47 1c 4312 cmp byte [bp-004h], 008h ; 80 7e fc 08 4313 jbe short 03be6h ; 76 23 4719 sal ax, 1 ; d1 e0 4720 rcl dx, 1 ; d1 d2 4721 loop 03a11h ; e2 fa 4722 push dx ; 52 4723 push ax ; 50 4724 push strict byte 00000h ; 6a 00 4725 movzx ax, byte [bp-004h] ; 0f b6 46 fc 4726 mov cx, ss ; 8c d1 4727 lea bx, [bp-01ah] ; 8d 5e e6 4728 mov dx, strict word 0000ch ; ba 0c 00 4729 call 07f4eh ; e8 24 45 4730 jmp short 03a51h ; eb 25 4314 4731 push di ; 57 4315 xor ax, ax ; 31 c0 4732 push dword 000000001h ; 66 6a 01 4733 mov ax, word [bp-00ah] ; 8b 46 f6 4734 xor dx, dx ; 31 d2 4735 mov cx, strict word 00009h ; b9 09 00 4736 sal ax, 1 ; d1 e0 4737 rcl dx, 1 ; d1 d2 4738 loop 03a38h ; e2 fa 4739 push dx ; 52 4316 4740 push ax ; 50 4317 mov ax, strict word 00001h ; b8 01 00 4318 push ax ; 50 4319 push word [bp-00eh] ; ff 76 f2 4320 push word [bp-010h] ; ff 76 f0 4321 xor ax, ax ; 31 c0 4322 push ax ; 50 4323 mov al, byte [bp-004h] ; 8a 46 fc 4324 xor ah, ah ; 30 e4 4741 push strict byte 00000h ; 6a 00 4742 movzx ax, byte [bp-004h] ; 0f b6 46 fc 4325 4743 mov cx, ss ; 8c d1 4326 lea bx, [bp-01 ch] ; 8d 5e e44744 lea bx, [bp-01ah] ; 8d 5e e6 4327 4745 mov dx, strict word 0000ch ; ba 0c 00 4328 call 083e4h ; e8 00 48 4329 jmp short 03c07h ; eb 21 4330 push di ; 57 4331 xor ax, ax ; 31 c0 4332 push ax ; 50 4333 mov ax, strict word 00001h ; b8 01 00 4334 push ax ; 50 4335 push word [bp-00eh] ; ff 76 f2 4336 push word [bp-010h] ; ff 76 f0 4337 xor ax, ax ; 31 c0 4338 push ax ; 50 4339 mov al, byte [bp-004h] ; 8a 46 fc 4340 xor ah, ah ; 30 e4 4341 mov cx, ss ; 8c d1 4342 lea bx, [bp-01ch] ; 8d 5e e4 4343 mov dx, strict word 0000ch ; ba 0c 00 4344 call 028dbh ; e8 d4 ec 4345 mov es, [bp-006h] ; 8e 46 fa 4346 mov bx, word [bp-00ah] ; 8b 5e f6 4746 call 0280ah ; e8 b9 ed 4747 les bx, [bp-008h] ; c4 5e f8 4347 4748 mov word [es:bx+01ch], strict word 00000h ; 26 c7 47 1c 00 00 4348 4749 test ax, ax ; 85 c0 4349 je short 03 c1dh ; 74 064750 je short 03a64h ; 74 06 4350 4751 mov ax, strict word 0000ch ; b8 0c 00 4351 jmp near 03 d00h ; e9 e3004352 mov es, [bp-00 8h] ; 8e 46 f84752 jmp near 03b49h ; e9 e5 00 4753 mov es, [bp-00eh] ; 8e 46 f2 4353 4754 mov al, byte [es:si+001h] ; 26 8a 44 01 4354 4755 cmp AL, strict byte 002h ; 3c 02 4355 jc short 03 c34h ; 72 0c4356 jbe short 03 c4fh ; 76 254756 jc short 03a7ch ; 72 0d 4757 jbe short 03a94h ; 76 23 4357 4758 cmp AL, strict byte 004h ; 3c 04 4358 je short 03 c5fh ; 74 314759 je short 03aaah ; 74 35 4359 4760 cmp AL, strict byte 003h ; 3c 03 4360 je short 03 c57h ; 74 254361 jmp short 03ca8h ; eb 744761 je short 03a9fh ; 74 26 4762 jmp near 03af2h ; e9 76 00 4362 4763 cmp AL, strict byte 001h ; 3c 01 4363 jne short 03 ca8h ; 75 704364 mov es, [bp-00 8h] ; 8e 46 f84365 mov word [es:si+014h], strict word 0000fh ; 26 c7 44 14 0f 004366 mov word [es:si+012h], strict word 00050h ; 26 c7 44 12 50004764 jne short 03af2h ; 75 72 4765 mov es, [bp-00eh] ; 8e 46 f2 4766 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h 4767 ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00 4367 4768 mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00 4368 jmp short 03ca8h ; eb 59 4369 mov word [es:si+014h], strict word 00012h ; 26 c7 44 14 12 00 4370 jmp short 03c41h ; eb ea 4371 mov word [es:si+014h], strict word 00024h ; 26 c7 44 14 24 00 4372 jmp short 03c41h ; eb e2 4769 jmp short 03af2h ; eb 5e 4770 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h 4771 ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00 4772 jmp short 03a8ch ; eb ed 4773 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h 4774 ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00 4775 jmp short 03a8ch ; eb e2 4373 4776 mov dx, 001c4h ; ba c4 01 4374 4777 mov ax, di ; 89 f8 4375 call 01600h ; e8 99 d94778 call 01600h ; e8 4e db 4376 4779 and AL, strict byte 03fh ; 24 3f 4377 4780 xor ah, ah ; 30 e4 4378 mov es, [bp-00 8h] ; 8e 46 f84781 mov es, [bp-00eh] ; 8e 46 f2 4379 4782 mov word [es:si+014h], ax ; 26 89 44 14 4380 4783 mov dx, 001c4h ; ba c4 01 4381 4784 mov ax, di ; 89 f8 4382 call 01600h ; e8 86 d94785 call 01600h ; e8 3b db 4383 4786 xor ah, ah ; 30 e4 4384 4787 mov bx, ax ; 89 c3 4385 sal bx, 1 ; d1 e3 4386 sal bx, 1 ; d1 e3 4788 sal bx, 002h ; c1 e3 02 4387 4789 mov dx, 001c5h ; ba c5 01 4388 4790 mov ax, di ; 89 f8 4389 call 01600h ; e8 76 d94791 call 01600h ; e8 2c db 4390 4792 xor ah, ah ; 30 e4 4391 4793 add ax, bx ; 01 d8 4392 4794 inc ax ; 40 4393 mov es, [bp-00 8h] ; 8e 46 f84795 mov es, [bp-00eh] ; 8e 46 f2 4394 4796 mov word [es:si+012h], ax ; 26 89 44 12 4395 4797 mov dx, 001c3h ; ba c3 01 4396 4798 mov ax, di ; 89 f8 4397 call 01600h ; e8 62 d94799 call 01600h ; e8 18 db 4398 4800 xor ah, ah ; 30 e4 4399 4801 inc ax ; 40 4400 mov es, [bp-00 8h] ; 8e 46 f84802 mov es, [bp-00eh] ; 8e 46 f2 4401 4803 mov word [es:si+010h], ax ; 26 89 44 10 4402 mov es, [bp-00 8h] ; 8e 46 f84804 mov es, [bp-00eh] ; 8e 46 f2 4403 4805 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 4404 je short 03 ce9h ; 74 374806 je short 03b30h ; 74 34 4405 4807 cmp byte [es:si+002h], 000h ; 26 80 7c 02 00 4406 jne short 03 cd1h ; 75 184808 jne short 03b19h ; 75 16 4407 4809 mov dx, strict word 00010h ; ba 10 00 4408 4810 mov ax, strict word 00040h ; b8 40 00 4409 call 01600h ; e8 3e d9 4410 mov bl, al ; 88 c3 4411 or bl, 041h ; 80 cb 41 4412 xor bh, bh ; 30 ff 4811 call 01600h ; e8 f4 da 4812 or AL, strict byte 041h ; 0c 41 4813 movzx bx, al ; 0f b6 d8 4413 4814 mov dx, strict word 00010h ; ba 10 00 4414 4815 mov ax, strict word 00040h ; b8 40 00 4415 jmp short 03 ce6h ; eb 154816 jmp short 03b2dh ; eb 14 4416 4817 mov dx, 002c0h ; ba c0 02 4417 4818 mov ax, word [bp-00ch] ; 8b 46 f4 4418 call 01600h ; e8 26 d9 4419 mov bl, al ; 88 c3 4420 db 0feh, 0c3h 4421 ; inc bl ; fe c3 4422 xor bh, bh ; 30 ff 4819 call 01600h ; e8 de da 4820 db 0feh, 0c0h 4821 ; inc al ; fe c0 4822 movzx bx, al ; 0f b6 d8 4423 4823 mov dx, 002c0h ; ba c0 02 4424 4824 mov ax, word [bp-00ch] ; 8b 46 f4 4425 call 0160eh ; e8 25 d94426 mov es, [bp-00 8h] ; 8e 46 f84825 call 0160eh ; e8 de da 4826 mov es, [bp-00eh] ; 8e 46 f2 4427 4827 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 4428 je short 03 cf7h ; 74 044828 je short 03b3eh ; 74 04 4429 4829 mov byte [es:si], 001h ; 26 c6 04 01 4430 mov es, [bp-008h] ; 8e 46 f8 4431 mov ah, byte [es:si+002h] ; 26 8a 64 02 4432 xor al, al ; 30 c0 4433 mov sp, bp ; 89 ec 4434 pop bp ; 5d 4830 mov es, [bp-00eh] ; 8e 46 f2 4831 movzx ax, byte [es:si+002h] ; 26 0f b6 44 02 4832 sal ax, 008h ; c1 e0 08 4833 leave ; c9 4435 4834 pop di ; 5f 4436 4835 pop si ; 5e … … 4457 4856 add AL, strict byte 003h ; 04 03 4458 4857 add al, byte [bx+di] ; 02 01 4459 add dh, ah ; 00 e6 4460 inc ax ; 40 4461 das ; 2f 4462 inc ax ; 40 4463 push SS ; 16 4464 db 03eh, 03fh 4465 ; ds aas ; 3e 3f 4466 or di, word [ds:03e3fh] ; 3e 0b 3e 3f 3e 4467 or di, word [04048h] ; 0b 3e 48 40 4468 das ; 2f 4469 inc ax ; 40 4470 out strict byte 040h, AL ; e6 40 4471 out strict byte 040h, AL ; e6 40 4472 das ; 2f 4473 inc ax ; 40 4474 das ; 2f 4475 inc ax ; 40 4476 das ; 2f 4477 inc ax ; 40 4478 das ; 2f 4479 inc ax ; 40 4480 das ; 2f 4481 inc ax ; 40 4482 fadd qword [bx+si+02fh] ; dc 40 2f 4483 inc ax ; 40 4484 out strict byte 040h, AL ; e6 40 4485 out strict byte 040h, AL ; e6 40 4486 out strict byte 040h, AL ; e6 40 4487 out strict byte 040h, AL ; e6 40 4488 out strict byte 040h, AL ; e6 40 4489 out strict byte 040h, AL ; e6 40 4490 out strict byte 040h, AL ; e6 40 4491 out strict byte 040h, AL ; e6 40 4492 out strict byte 040h, AL ; e6 40 4493 out strict byte 040h, AL ; e6 40 4494 out strict byte 040h, AL ; e6 40 4495 out strict byte 040h, AL ; e6 40 4496 _int13_cdemu: ; 0xf3d62 LB 0x420 4858 add byte [di], ch ; 00 2d 4859 aas ; 3f 4860 push CS ; 0e 4861 aas ; 3f 4862 pop ax ; 58 4863 cmp AL, strict byte 082h ; 3c 82 4864 cmp AL, strict byte 04dh ; 3c 4d 4865 cmp AL, strict byte 082h ; 3c 82 4866 cmp AL, strict byte 04dh ; 3c 4d 4867 cmp AL, strict byte 074h ; 3c 74 4868 db 03eh, 00eh 4869 ; ds push CS ; 3e 0e 4870 aas ; 3f 4871 sub ax, 02d3fh ; 2d 3f 2d 4872 aas ; 3f 4873 push CS ; 0e 4874 aas ; 3f 4875 push CS ; 0e 4876 aas ; 3f 4877 push CS ; 0e 4878 aas ; 3f 4879 push CS ; 0e 4880 aas ; 3f 4881 push CS ; 0e 4882 aas ; 3f 4883 and ax, 00e3fh ; 25 3f 0e 4884 aas ; 3f 4885 sub ax, 02d3fh ; 2d 3f 2d 4886 aas ; 3f 4887 sub ax, 02d3fh ; 2d 3f 2d 4888 aas ; 3f 4889 sub ax, 02d3fh ; 2d 3f 2d 4890 aas ; 3f 4891 sub ax, 02d3fh ; 2d 3f 2d 4892 aas ; 3f 4893 sub ax, 02d3fh ; 2d 3f 2d 4894 aas ; 3f 4895 sub ax, 02d3fh ; 2d 3f 2d 4896 aas ; 3f 4897 _int13_cdemu: ; 0xf3ba9 LB 0x41f 4497 4898 push si ; 56 4498 4899 push di ; 57 4499 push bp ; 55 4500 mov bp, sp ; 89 e5 4501 sub sp, strict byte 0002ch ; 83 ec 2c 4900 enter 0002ah, 000h ; c8 2a 00 00 4502 4901 mov dx, strict word 0000eh ; ba 0e 00 4503 4902 mov ax, strict word 00040h ; b8 40 00 4504 call 0161ch ; e8 a9 d84903 call 0161ch ; e8 64 da 4505 4904 mov di, 00322h ; bf 22 03 4506 4905 mov cx, ax ; 89 c1 4507 4906 mov si, di ; 89 fe 4508 mov word [bp-0 12h], ax ; 89 46 ee4509 mov word [bp-0 16h], 00122h ; c7 46 ea22 014510 mov word [bp-0 14h], ax ; 89 46 ec4907 mov word [bp-004h], ax ; 89 46 fc 4908 mov word [bp-008h], 00122h ; c7 46 f8 22 01 4909 mov word [bp-006h], ax ; 89 46 fa 4511 4910 mov es, ax ; 8e c0 4512 4911 mov al, byte [es:di+003h] ; 26 8a 45 03 4513 sal al, 1 ; d0 e04912 add al, al ; 00 c0 4514 4913 mov byte [bp-002h], al ; 88 46 fe 4515 4914 mov al, byte [es:di+004h] ; 26 8a 45 04 … … 4518 4917 mov dx, strict word 00074h ; ba 74 00 4519 4918 mov ax, strict word 00040h ; b8 40 00 4520 call 0160eh ; e8 6c d84919 call 0160eh ; e8 27 da 4521 4920 mov es, cx ; 8e c1 4522 4921 cmp byte [es:di], 000h ; 26 80 3d 00 4523 je short 03db9h ; 74 0f 4524 mov al, byte [es:di+002h] ; 26 8a 45 02 4525 xor ah, ah ; 30 e4 4922 je short 03bfdh ; 74 0e 4923 movzx ax, byte [es:di+002h] ; 26 0f b6 45 02 4526 4924 mov dx, word [bp+016h] ; 8b 56 16 4527 4925 xor dh, dh ; 30 f6 4528 4926 cmp ax, dx ; 39 d0 4529 je short 03 de3h ; 74 2a4530 mov bx, 00c 16h ; bb 160c4927 je short 03c26h ; 74 29 4928 mov bx, 00c08h ; bb 08 0c 4531 4929 mov cx, ds ; 8c d9 4532 4930 mov ax, strict word 00004h ; b8 04 00 4533 call 018 bdh ; e8 f9 da4931 call 018aeh ; e8 a6 dc 4534 4932 mov ax, word [bp+016h] ; 8b 46 16 4535 4933 xor ah, ah ; 30 e4 4536 4934 push ax ; 50 4537 mov al, byte [bp+01bh] ; 8a 46 1b 4935 mov ax, word [bp+01ah] ; 8b 46 1a 4936 shr ax, 008h ; c1 e8 08 4538 4937 push ax ; 50 4539 mov ax, 002a2h ; b8 a2 02 4540 push ax ; 50 4541 mov ax, 002aeh ; b8 ae 02 4542 push ax ; 50 4543 mov ax, strict word 00004h ; b8 04 00 4544 push ax ; 50 4545 call 018fah ; e8 1d db 4938 push 002a2h ; 68 a2 02 4939 push 002aeh ; 68 ae 02 4940 push strict byte 00004h ; 6a 04 4941 call 018e9h ; e8 c9 dc 4546 4942 add sp, strict byte 0000ah ; 83 c4 0a 4547 jmp near 04109h ; e9 26 03 4548 mov al, byte [bp+01bh] ; 8a 46 1b 4549 xor ah, ah ; 30 e4 4550 mov dx, ax ; 89 c2 4943 jmp near 03f4dh ; e9 27 03 4944 mov ax, word [bp+01ah] ; 8b 46 1a 4945 shr ax, 008h ; c1 e8 08 4551 4946 cmp ax, strict word 00050h ; 3d 50 00 4552 jnbe short 03e3ch ; 77 4d4947 jnbe near 03f2dh ; 0f 87 fa 02 4553 4948 push CS ; 0e 4554 4949 pop ES ; 07 4555 4950 mov cx, strict word 0001eh ; b9 1e 00 4556 mov di, 03 d09h ; bf 09 3d4951 mov di, 03b50h ; bf 50 3b 4557 4952 repne scasb ; f2 ae 4558 4953 sal cx, 1 ; d1 e1 4559 4954 mov di, cx ; 89 cf 4560 mov ax, word [cs:di+03 d26h] ; 2e 8b 85 26 3d4561 mov di, word [bp+01ah] ; 8b 7e 1a4562 and di, 000ffh ; 81 e7 ff 004955 mov ax, word [cs:di+03b6dh] ; 2e 8b 85 6d 3b 4956 mov bx, word [bp+01ah] ; 8b 5e 1a 4957 xor bh, bh ; 30 ff 4563 4958 jmp ax ; ff e0 4564 4959 mov ax, word [bp+01ah] ; 8b 46 1a 4565 4960 xor ah, ah ; 30 e4 4566 4961 or ah, 003h ; 80 cc 03 4567 jmp near 0 4111h ; e9 fb024962 jmp near 03f55h ; e9 fd 02 4568 4963 mov dx, strict word 00074h ; ba 74 00 4569 4964 mov ax, strict word 00040h ; b8 40 00 4570 call 01600h ; e8 e1 d74965 call 01600h ; e8 9f d9 4571 4966 mov cl, al ; 88 c1 4572 mov ah, al ; 88 c44573 xor al, al ; 30 c04574 or di, ax ; 09 c74575 mov word [bp+01ah], di ; 89 7e 1a4967 movzx ax, cl ; 0f b6 c1 4968 sal ax, 008h ; c1 e0 08 4969 or bx, ax ; 09 c3 4970 mov word [bp+01ah], bx ; 89 5e 1a 4576 4971 xor bx, bx ; 31 db 4577 4972 mov dx, strict word 00074h ; ba 74 00 4578 4973 mov ax, strict word 00040h ; b8 40 00 4579 call 0160eh ; e8 d9 d74974 call 0160eh ; e8 95 d9 4580 4975 test cl, cl ; 84 c9 4581 je short 03e9ch ; 74 63 4582 jmp near 04122h ; e9 e6 02 4583 jmp near 040e6h ; e9 a7 02 4584 mov es, [bp-012h] ; 8e 46 ee 4976 je near 03f12h ; 0f 84 93 02 4977 jmp near 03f69h ; e9 e7 02 4978 mov es, [bp-004h] ; 8e 46 fc 4585 4979 mov di, word [es:si+014h] ; 26 8b 7c 14 4586 4980 mov dx, word [es:si+012h] ; 26 8b 54 12 4587 mov ax, word [es:si+010h] ; 26 8b 44 10 4588 mov word [bp-004h], ax ; 89 46 fc 4981 mov bx, word [es:si+010h] ; 26 8b 5c 10 4589 4982 mov ax, word [es:si+008h] ; 26 8b 44 08 4590 mov word [bp-0 0eh], ax ; 89 46 f24983 mov word [bp-014h], ax ; 89 46 ec 4591 4984 mov ax, word [es:si+00ah] ; 26 8b 44 0a 4592 mov word [bp-0 0ch], ax ; 89 46 f44985 mov word [bp-012h], ax ; 89 46 ee 4593 4986 mov ax, word [bp+018h] ; 8b 46 18 4594 4987 and ax, strict word 0003fh ; 25 3f 00 4595 mov word [bp-0 0ah], ax ; 89 46 f64596 mov bx, word [bp+018h] ; 8b 5e184597 and bx, 000c0h ; 81 e3 c0 004598 sal bx, 1 ; d1 e34599 sal bx, 1 ; d1 e34600 mov al, byte [bp+019h] ; 8a 46 194601 or ax, bx ; 09 d84602 mov bl, byte [bp+017h] ; 8a 5e 174603 xor bh, bh ; 30 ff4604 mov si, bx ; 89 de4988 mov word [bp-010h], ax ; 89 46 f0 4989 mov ax, word [bp+018h] ; 8b 46 18 4990 xor ah, ah ; 30 e4 4991 and AL, strict byte 0c0h ; 24 c0 4992 sal ax, 002h ; c1 e0 02 4993 mov cx, word [bp+018h] ; 8b 4e 18 4994 shr cx, 008h ; c1 e9 08 4995 or ax, cx ; 09 c8 4996 mov si, word [bp+016h] ; 8b 76 16 4997 shr si, 008h ; c1 ee 08 4605 4998 mov cx, word [bp+01ah] ; 8b 4e 1a 4606 4999 xor ch, ch ; 30 ed 4607 mov word [bp-0 18h], cx ; 89 4e e85000 mov word [bp-00ah], cx ; 89 4e f6 4608 5001 test cx, cx ; 85 c9 4609 je short 03ea9h ; 74 1e4610 cmp di, word [bp-0 0ah] ; 3b 7e f64611 jc short 03e99h ; 72 095002 je near 03f0eh ; 0f 84 40 02 5003 cmp di, word [bp-010h] ; 3b 7e f0 5004 jc near 03f4dh ; 0f 82 78 02 4612 5005 cmp ax, dx ; 39 d0 4613 jnc short 03e99h ; 73 05 4614 cmp bx, word [bp-004h] ; 3b 5e fc 4615 jc short 03e9fh ; 72 06 4616 jmp near 04109h ; e9 6d 02 4617 jmp near 04033h ; e9 94 01 4618 mov dl, byte [bp+01bh] ; 8a 56 1b 4619 xor dh, dh ; 30 f6 5006 jnc near 03f4dh ; 0f 83 72 02 5007 cmp si, bx ; 39 de 5008 jnc near 03f4dh ; 0f 83 6c 02 5009 mov dx, word [bp+01ah] ; 8b 56 1a 5010 shr dx, 008h ; c1 ea 08 4620 5011 cmp dx, strict byte 00004h ; 83 fa 04 4621 jne short 03each ; 75 03 4622 jmp near 0402fh ; e9 83 01 4623 mov CL, strict byte 004h ; b1 04 5012 je near 03f0eh ; 0f 84 20 02 4624 5013 mov dx, word [bp+014h] ; 8b 56 14 4625 shr dx, CL ; d3 ea4626 mov bx, word [bp+00ah] ; 8b 5e 0a4627 add bx, dx ; 01 d34628 mov word [bp-00 6h], bx ; 89 5e fa5014 shr dx, 004h ; c1 ea 04 5015 mov cx, word [bp+00ah] ; 8b 4e 0a 5016 add cx, dx ; 01 d1 5017 mov word [bp-00eh], cx ; 89 4e f2 4629 5018 mov dx, word [bp+014h] ; 8b 56 14 4630 5019 and dx, strict byte 0000fh ; 83 e2 0f 4631 mov word [bp-00 8h], dx ; 89 56 f85020 mov word [bp-00ch], dx ; 89 56 f4 4632 5021 xor dl, dl ; 30 d2 4633 mov bx, word [bp-004h] ; 8b 5e fc4634 5022 xor cx, cx ; 31 c9 4635 call 08 dd2h ; e8 04 4f5023 call 08829h ; e8 1d 4b 4636 5024 xor bx, bx ; 31 db 4637 5025 add ax, si ; 01 f0 … … 4639 5027 mov bx, di ; 89 fb 4640 5028 xor cx, cx ; 31 c9 4641 call 08 dd2h ; e8 f7 4e4642 mov bx, word [bp-0 0ah] ; 8b 5e f65029 call 08829h ; e8 10 4b 5030 mov bx, word [bp-010h] ; 8b 5e f0 4643 5031 dec bx ; 4b 4644 5032 xor cx, cx ; 31 c9 … … 4647 5035 mov bx, word [bp+01ah] ; 8b 5e 1a 4648 5036 xor bl, bl ; 30 db 4649 mov cx, word [bp-0 18h] ; 8b 4e e85037 mov cx, word [bp-00ah] ; 8b 4e f6 4650 5038 or cx, bx ; 09 d9 4651 5039 mov word [bp+01ah], cx ; 89 4e 1a … … 4656 5044 shr di, 1 ; d1 ef 4657 5045 rcr si, 1 ; d1 de 4658 mov word [bp-01 ch], di ; 89 7e e45046 mov word [bp-01ah], di ; 89 7e e6 4659 5047 mov di, ax ; 89 c7 4660 5048 and di, strict byte 00003h ; 83 e7 03 4661 5049 xor bh, bh ; 30 ff 4662 add ax, word [bp-018h] ; 03 46 e8 4663 db 011h, 0dah, 005h, 0ffh, 0ffh, 083h, 0d2h, 0ffh, 089h, 046h, 0e0h, 089h, 056h, 0e2h, 0d1h, 06eh 4664 db 0e2h, 0d1h, 05eh, 0e0h, 0d1h, 06eh, 0e2h, 0d1h, 05eh, 0e0h, 0b9h, 00ch, 000h, 08ch, 0d2h, 08dh 4665 db 046h, 0d4h, 0e8h, 08bh, 04eh, 0c7h, 046h, 0d4h, 028h, 000h, 08bh, 046h, 0f2h, 001h, 0f0h, 08bh 4666 db 056h, 0f4h, 013h, 056h, 0e4h, 086h, 0c4h, 086h, 0d6h, 092h, 089h, 046h, 0d6h, 089h, 056h, 0d8h 4667 db 08bh, 056h, 0e0h, 029h, 0f2h, 042h, 089h, 0d0h, 086h, 0c4h, 089h, 046h, 0dbh, 0c4h, 05eh, 0eah 4668 db 026h, 089h, 057h, 00ah, 026h, 0c7h, 047h, 00ch, 000h, 002h, 0b1h, 009h, 0d3h, 0e7h, 089h, 07eh 4669 db 0f0h, 026h, 089h, 07fh, 01ah, 08bh, 076h, 0e8h, 031h, 0ffh, 0b9h, 009h, 000h, 0d1h, 0e6h, 0d1h 4670 db 0d7h, 0e2h, 0fah, 089h, 0f0h, 089h, 0fah, 0bbh, 000h, 008h, 031h, 0c9h, 0e8h, 064h, 04dh, 0bah 4671 db 000h, 008h, 029h, 0dah, 08bh, 05eh, 0eah, 026h, 08bh, 047h, 01ah, 029h, 0c2h, 026h, 089h, 057h 4672 db 01ch, 080h, 07eh, 0feh, 008h, 076h, 021h, 0ffh, 076h, 0fah, 0ffh, 076h, 0f8h, 0b8h, 001h, 000h 4673 db 050h, 057h, 056h, 0ffh, 076h, 0f0h, 08ah, 046h, 0feh, 030h, 0e4h, 08ch, 0d1h, 08dh, 05eh, 0d4h 4674 db 0bah, 00ch, 000h, 0e8h, 023h, 044h, 0ebh, 01fh, 0ffh, 076h, 0fah, 0ffh, 076h, 0f8h, 0b8h, 001h 4675 db 000h, 050h, 057h, 056h, 0ffh, 076h, 0f0h, 08ah, 046h, 0feh, 030h, 0e4h, 08ch, 0d1h, 08dh, 05eh 4676 db 0d4h, 0bah, 00ch, 000h, 0e8h, 0f9h, 0e8h, 088h, 0c2h, 0c4h, 05eh, 0eah, 026h, 0c7h, 047h, 01ah 4677 db 000h, 000h, 026h, 0c7h, 047h, 01ch, 000h, 000h, 084h, 0d2h, 074h, 038h, 0bbh, 016h, 00ch, 08ch 4678 db 0d9h, 0b8h, 004h, 000h, 0e8h, 0bbh, 0d8h, 088h, 0d0h, 030h, 0e4h, 050h, 08ah, 046h, 01bh, 050h 4679 db 0b8h, 0a2h, 002h, 050h, 0b8h, 0e4h, 002h, 050h, 0b8h, 004h, 000h, 050h, 0e8h, 0e0h, 0d8h, 083h 4680 db 0c4h, 00ah, 08bh, 046h, 01ah, 030h, 0e4h, 080h, 0cch, 002h, 089h, 046h, 01ah, 0c6h, 046h, 01ah 4681 db 000h, 0e9h, 0e5h, 000h, 0c6h, 046h, 01bh, 000h, 031h, 0dbh, 0bah, 074h, 000h, 0b8h, 040h, 000h 4682 db 0e8h, 0d0h, 0d5h, 080h, 066h, 020h, 0feh, 089h, 0ech, 05dh, 05fh, 05eh, 0c3h, 08eh, 046h, 0eeh 4683 db 026h, 08bh, 07ch, 014h, 026h, 08bh, 054h, 012h, 04ah, 026h, 08bh, 044h, 010h, 048h, 089h, 046h 4684 db 0fch, 0c6h, 046h, 01ah, 000h, 08bh, 046h, 014h, 030h, 0c0h, 08bh, 05eh, 018h, 030h, 0ffh, 089h 4685 db 05eh, 0e6h, 089h, 0d3h, 088h, 0d7h, 030h, 0d3h, 08bh, 04eh, 0e6h, 009h, 0d9h, 089h, 04eh, 018h 4686 db 0d1h, 0eah, 0d1h, 0eah, 030h, 0f6h, 080h, 0e2h, 0c0h, 083h, 0e7h, 03fh, 009h, 0d7h, 089h, 0cah 4687 db 030h, 0cah, 009h, 0fah, 089h, 056h, 018h, 08bh, 05eh, 016h, 08ah, 07eh, 0fch, 089h, 05eh, 016h 4688 db 089h, 0dah, 030h, 0dah, 080h, 0cah, 002h, 089h, 056h, 016h, 026h, 08ah, 054h, 001h, 089h, 046h 4689 db 014h, 080h, 0fah, 003h, 074h, 01ah, 080h, 0fah, 002h, 074h, 011h, 080h, 0fah, 001h, 075h, 014h 4690 db 08bh, 046h, 014h, 030h, 0c0h, 00ch, 002h, 089h, 046h, 014h, 0ebh, 008h, 00ch, 004h, 0ebh, 0f7h 4691 db 00ch, 006h, 0ebh, 0f3h, 0c7h, 046h, 00ch, 0c7h, 0efh, 0c7h, 046h, 00ah, 000h, 0f0h, 0e9h, 053h 4692 db 0ffh, 081h, 0cfh, 000h, 003h, 089h, 07eh, 01ah, 0e9h, 04dh, 0ffh, 0bbh, 016h, 00ch, 08ch, 0d9h 4693 db 0b8h, 004h, 000h, 0e8h, 0cch, 0d7h, 08ah, 046h, 01bh, 030h, 0e4h, 050h, 0b8h, 0a2h, 002h, 050h 4694 db 0b8h, 005h, 003h, 050h, 0b8h, 004h, 000h, 050h, 0e8h, 0f4h, 0d7h, 083h, 0c4h, 008h, 08bh, 046h 4695 db 01ah, 030h, 0e4h, 080h, 0cch, 001h, 089h, 046h, 01ah, 08ah, 05eh, 01bh, 030h, 0ffh, 0bah, 074h 4696 db 000h, 0b8h, 040h, 000h, 0e8h, 0ech, 0d4h, 080h, 04eh, 020h, 001h, 0e9h, 019h, 0ffh, 050h, 04eh 4697 db 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h, 010h, 00dh 4698 db 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 06eh, 042h, 017h, 047h, 030h 4699 db 042h, 06eh, 042h, 025h, 042h, 06eh, 042h, 025h, 042h, 06eh, 042h, 017h, 047h, 06eh, 042h, 06eh 4700 db 042h, 017h, 047h, 017h, 047h, 017h, 047h, 017h, 047h, 017h, 047h, 052h, 042h, 017h, 047h, 06eh 4701 db 042h, 05bh, 042h, 08ch, 042h, 025h, 042h, 08ch, 042h, 0edh, 043h, 098h, 044h, 08ch, 042h, 0c9h 4702 db 044h, 030h, 047h, 038h, 047h, 06eh, 042h 4703 _int13_cdrom: ; 0xf4182 LB 0x5eb 5050 add ax, word [bp-00ah] ; 03 46 f6 5051 adc dx, bx ; 11 da 5052 mov bx, ax ; 89 c3 5053 add bx, strict byte 0ffffh ; 83 c3 ff 5054 mov ax, dx ; 89 d0 5055 adc ax, strict word 0ffffh ; 15 ff ff 5056 mov word [bp-01eh], bx ; 89 5e e2 5057 mov word [bp-01ch], ax ; 89 46 e4 5058 shr word [bp-01ch], 1 ; d1 6e e4 5059 rcr word [bp-01eh], 1 ; d1 5e e2 5060 shr word [bp-01ch], 1 ; d1 6e e4 5061 rcr word [bp-01eh], 1 ; d1 5e e2 5062 mov cx, strict word 0000ch ; b9 0c 00 5063 xor bx, bx ; 31 db 5064 mov dx, ss ; 8c d2 5065 lea ax, [bp-02ah] ; 8d 46 d6 5066 call 0885ah ; e8 e6 4a 5067 mov word [bp-02ah], strict word 00028h ; c7 46 d6 28 00 5068 mov ax, word [bp-014h] ; 8b 46 ec 5069 add ax, si ; 01 f0 5070 mov dx, word [bp-012h] ; 8b 56 ee 5071 adc dx, word [bp-01ah] ; 13 56 e6 5072 xchg ah, al ; 86 c4 5073 xchg dh, dl ; 86 d6 5074 xchg dx, ax ; 92 5075 mov word [bp-028h], ax ; 89 46 d8 5076 mov word [bp-026h], dx ; 89 56 da 5077 mov dx, word [bp-01eh] ; 8b 56 e2 5078 sub dx, si ; 29 f2 5079 inc dx ; 42 5080 mov ax, dx ; 89 d0 5081 xchg ah, al ; 86 c4 5082 mov word [bp-023h], ax ; 89 46 dd 5083 les bx, [bp-008h] ; c4 5e f8 5084 mov word [es:bx+00ah], dx ; 26 89 57 0a 5085 mov word [es:bx+00ch], 00200h ; 26 c7 47 0c 00 02 5086 mov ax, di ; 89 f8 5087 sal ax, 009h ; c1 e0 09 5088 mov word [es:bx+01ah], ax ; 26 89 47 1a 5089 mov dx, word [bp-00ah] ; 8b 56 f6 5090 sal dx, 009h ; c1 e2 09 5091 and dh, 007h ; 80 e6 07 5092 mov bx, 00800h ; bb 00 08 5093 sub bx, dx ; 29 d3 5094 mov dx, bx ; 89 da 5095 mov bx, word [bp-008h] ; 8b 5e f8 5096 mov bx, word [es:bx+01ah] ; 26 8b 5f 1a 5097 sub dx, bx ; 29 da 5098 mov bx, word [bp-008h] ; 8b 5e f8 5099 mov word [es:bx+01ch], dx ; 26 89 57 1c 5100 cmp byte [bp-002h], 008h ; 80 7e fe 08 5101 jbe short 03e02h ; 76 2a 5102 push word [bp-00eh] ; ff 76 f2 5103 push word [bp-00ch] ; ff 76 f4 5104 push strict byte 00001h ; 6a 01 5105 mov si, word [bp-00ah] ; 8b 76 f6 5106 xor di, di ; 31 ff 5107 mov cx, strict word 00009h ; b9 09 00 5108 sal si, 1 ; d1 e6 5109 rcl di, 1 ; d1 d7 5110 loop 03de8h ; e2 fa 5111 push di ; 57 5112 push si ; 56 5113 push ax ; 50 5114 movzx ax, byte [bp-002h] ; 0f b6 46 fe 5115 mov cx, ss ; 8c d1 5116 lea bx, [bp-02ah] ; 8d 5e d6 5117 mov dx, strict word 0000ch ; ba 0c 00 5118 call 07f4eh ; e8 4e 41 5119 jmp short 03e2ah ; eb 28 5120 push word [bp-00eh] ; ff 76 f2 5121 push word [bp-00ch] ; ff 76 f4 5122 push strict byte 00001h ; 6a 01 5123 mov si, word [bp-00ah] ; 8b 76 f6 5124 xor di, di ; 31 ff 5125 mov cx, strict word 00009h ; b9 09 00 5126 sal si, 1 ; d1 e6 5127 rcl di, 1 ; d1 d7 5128 loop 03e12h ; e2 fa 5129 push di ; 57 5130 push si ; 56 5131 push ax ; 50 5132 movzx ax, byte [bp-002h] ; 0f b6 46 fe 5133 mov cx, ss ; 8c d1 5134 lea bx, [bp-02ah] ; 8d 5e d6 5135 mov dx, strict word 0000ch ; ba 0c 00 5136 call 0280ah ; e8 e0 e9 5137 mov dl, al ; 88 c2 5138 les bx, [bp-008h] ; c4 5e f8 5139 db 066h, 026h, 0c7h, 047h, 01ah, 000h, 000h, 000h, 000h 5140 ; mov dword [es:bx+01ah], strict dword 000000000h ; 66 26 c7 47 1a 00 00 00 00 5141 test dl, dl ; 84 d2 5142 je near 03f0eh ; 0f 84 d0 00 5143 mov bx, 00c08h ; bb 08 0c 5144 mov cx, ds ; 8c d9 5145 mov ax, strict word 00004h ; b8 04 00 5146 call 018aeh ; e8 65 da 5147 movzx ax, dl ; 0f b6 c2 5148 push ax ; 50 5149 mov ax, word [bp+01ah] ; 8b 46 1a 5150 shr ax, 008h ; c1 e8 08 5151 push ax ; 50 5152 push 002a2h ; 68 a2 02 5153 push 002e4h ; 68 e4 02 5154 push strict byte 00004h ; 6a 04 5155 call 018e9h ; e8 8a da 5156 add sp, strict byte 0000ah ; 83 c4 0a 5157 mov ax, word [bp+01ah] ; 8b 46 1a 5158 xor ah, ah ; 30 e4 5159 or ah, 002h ; 80 cc 02 5160 mov word [bp+01ah], ax ; 89 46 1a 5161 mov byte [bp+01ah], 000h ; c6 46 1a 00 5162 jmp near 03f58h ; e9 e4 00 5163 mov es, [bp-004h] ; 8e 46 fc 5164 mov di, word [es:si+014h] ; 26 8b 7c 14 5165 mov dx, word [es:si+012h] ; 26 8b 54 12 5166 dec dx ; 4a 5167 mov bx, word [es:si+010h] ; 26 8b 5c 10 5168 dec bx ; 4b 5169 mov byte [bp+01ah], 000h ; c6 46 1a 00 5170 mov ax, word [bp+014h] ; 8b 46 14 5171 xor al, al ; 30 c0 5172 mov cx, word [bp+018h] ; 8b 4e 18 5173 xor ch, ch ; 30 ed 5174 mov word [bp-018h], cx ; 89 4e e8 5175 mov cx, dx ; 89 d1 5176 xor ch, dh ; 30 f5 5177 sal cx, 008h ; c1 e1 08 5178 mov word [bp-016h], cx ; 89 4e ea 5179 mov cx, word [bp-018h] ; 8b 4e e8 5180 or cx, word [bp-016h] ; 0b 4e ea 5181 mov word [bp+018h], cx ; 89 4e 18 5182 shr dx, 002h ; c1 ea 02 5183 xor dh, dh ; 30 f6 5184 and dl, 0c0h ; 80 e2 c0 5185 mov word [bp-016h], dx ; 89 56 ea 5186 mov dx, di ; 89 fa 5187 xor dh, dh ; 30 f6 5188 and dl, 03fh ; 80 e2 3f 5189 or dx, word [bp-016h] ; 0b 56 ea 5190 xor cl, cl ; 30 c9 5191 or cx, dx ; 09 d1 5192 mov word [bp+018h], cx ; 89 4e 18 5193 mov dx, word [bp+016h] ; 8b 56 16 5194 xor dh, dh ; 30 f6 5195 sal bx, 008h ; c1 e3 08 5196 or dx, bx ; 09 da 5197 mov word [bp+016h], dx ; 89 56 16 5198 xor dl, dl ; 30 d2 5199 or dl, 002h ; 80 ca 02 5200 mov word [bp+016h], dx ; 89 56 16 5201 mov dl, byte [es:si+001h] ; 26 8a 54 01 5202 mov word [bp+014h], ax ; 89 46 14 5203 cmp dl, 003h ; 80 fa 03 5204 je short 03f00h ; 74 1a 5205 cmp dl, 002h ; 80 fa 02 5206 je short 03efch ; 74 11 5207 cmp dl, 001h ; 80 fa 01 5208 jne short 03f04h ; 75 14 5209 mov ax, word [bp+014h] ; 8b 46 14 5210 xor al, al ; 30 c0 5211 or AL, strict byte 002h ; 0c 02 5212 mov word [bp+014h], ax ; 89 46 14 5213 jmp short 03f04h ; eb 08 5214 or AL, strict byte 004h ; 0c 04 5215 jmp short 03ef7h ; eb f7 5216 or AL, strict byte 006h ; 0c 06 5217 jmp short 03ef7h ; eb f3 5218 mov word [bp+00ch], 0efc7h ; c7 46 0c c7 ef 5219 mov word [bp+00ah], 0f000h ; c7 46 0a 00 f0 5220 mov byte [bp+01bh], 000h ; c6 46 1b 00 5221 xor bx, bx ; 31 db 5222 mov dx, strict word 00074h ; ba 74 00 5223 mov ax, strict word 00040h ; b8 40 00 5224 call 0160eh ; e8 f1 d6 5225 and byte [bp+020h], 0feh ; 80 66 20 fe 5226 leave ; c9 5227 pop di ; 5f 5228 pop si ; 5e 5229 retn ; c3 5230 or bh, 003h ; 80 cf 03 5231 mov word [bp+01ah], bx ; 89 5e 1a 5232 jmp short 03f12h ; eb e5 5233 mov bx, 00c08h ; bb 08 0c 5234 mov cx, ds ; 8c d9 5235 mov ax, strict word 00004h ; b8 04 00 5236 call 018aeh ; e8 76 d9 5237 mov ax, word [bp+01ah] ; 8b 46 1a 5238 shr ax, 008h ; c1 e8 08 5239 push ax ; 50 5240 push 002a2h ; 68 a2 02 5241 push 00305h ; 68 05 03 5242 push strict byte 00004h ; 6a 04 5243 call 018e9h ; e8 9f d9 5244 add sp, strict byte 00008h ; 83 c4 08 5245 mov ax, word [bp+01ah] ; 8b 46 1a 5246 xor ah, ah ; 30 e4 5247 or ah, 001h ; 80 cc 01 5248 mov word [bp+01ah], ax ; 89 46 1a 5249 mov bx, word [bp+01ah] ; 8b 5e 1a 5250 shr bx, 008h ; c1 eb 08 5251 xor bh, bh ; 30 ff 5252 mov dx, strict word 00074h ; ba 74 00 5253 mov ax, strict word 00040h ; b8 40 00 5254 call 0160eh ; e8 a5 d6 5255 or byte [bp+020h], 001h ; 80 4e 20 01 5256 jmp short 03f21h ; eb b2 5257 push ax ; 50 5258 dec si ; 4e 5259 dec cx ; 49 5260 dec ax ; 48 5261 inc di ; 47 5262 inc si ; 46 5263 inc bp ; 45 5264 inc sp ; 44 5265 inc bx ; 43 5266 inc dx ; 42 5267 inc cx ; 41 5268 sbb byte [01415h], dl ; 18 16 15 14 5269 adc word [bx+si], dx ; 11 10 5270 or ax, 00b0ch ; 0d 0c 0b 5271 or cl, byte [bx+di] ; 0a 09 5272 or byte [di], al ; 08 05 5273 add AL, strict byte 003h ; 04 03 5274 add al, byte [bx+di] ; 02 01 5275 add byte [bx+si], bl ; 00 18 5276 inc bp ; 45 5277 xchg si, ax ; 96 5278 inc dx ; 42 5279 jnc short 03fd2h ; 73 40 5280 sbb byte [di+068h], al ; 18 45 68 5281 inc ax ; 40 5282 sbb byte [di+068h], al ; 18 45 68 5283 inc ax ; 40 5284 sbb byte [di-06ah], al ; 18 45 96 5285 inc dx ; 42 5286 sbb byte [di+018h], al ; 18 45 18 5287 inc bp ; 45 5288 xchg si, ax ; 96 5289 inc dx ; 42 5290 xchg si, ax ; 96 5291 inc dx ; 42 5292 xchg si, ax ; 96 5293 inc dx ; 42 5294 xchg si, ax ; 96 5295 inc dx ; 42 5296 xchg si, ax ; 96 5297 inc dx ; 42 5298 popfw ; 9d 5299 inc ax ; 40 5300 xchg si, ax ; 96 5301 inc dx ; 42 5302 sbb byte [di-05ah], al ; 18 45 a6 5303 inc ax ; 40 5304 mov cx, 06840h ; b9 40 68 5305 inc ax ; 40 5306 mov cx, 00740h ; b9 40 07 5307 inc dx ; 42 5308 lodsw ; ad 5309 inc dx ; 42 5310 mov cx, 0d840h ; b9 40 d8 5311 inc dx ; 42 5312 rol word [si-027h], 1 ; d1 44 d9 5313 inc sp ; 44 5314 db 018h 5315 inc bp ; 45 5316 _int13_cdrom: ; 0xf3fc8 LB 0x56d 4704 5317 push si ; 56 4705 5318 push di ; 57 4706 push bp ; 55 4707 mov bp, sp ; 89 e5 4708 sub sp, strict byte 0002ah ; 83 ec 2a 5319 enter 00028h, 000h ; c8 28 00 00 4709 5320 mov dx, strict word 0000eh ; ba 0e 00 4710 5321 mov ax, strict word 00040h ; b8 40 00 4711 call 0161ch ; e8 89 d4 4712 mov word [bp-01eh], ax ; 89 46 e2 4713 mov word [bp-00ah], 00122h ; c7 46 f6 22 01 5322 call 0161ch ; e8 45 d6 4714 5323 mov word [bp-018h], ax ; 89 46 e8 5324 mov si, 00122h ; be 22 01 5325 mov word [bp-00ah], ax ; 89 46 f6 4715 5326 xor bx, bx ; 31 db 4716 5327 mov dx, strict word 00074h ; ba 74 00 4717 5328 mov ax, strict word 00040h ; b8 40 00 4718 call 0160eh ; e8 65 d45329 call 0160eh ; e8 23 d6 4719 5330 mov ax, word [bp+014h] ; 8b 46 14 4720 5331 xor ah, ah ; 30 e4 4721 5332 cmp ax, 000e0h ; 3d e0 00 4722 jc short 0 41b8h ; 72 055333 jc short 03ffah ; 72 05 4723 5334 cmp ax, 000f0h ; 3d f0 00 4724 jc short 04 1d7h ; 72 1f5335 jc short 04018h ; 72 1e 4725 5336 mov ax, word [bp+014h] ; 8b 46 14 4726 5337 xor ah, ah ; 30 e4 4727 5338 push ax ; 50 4728 mov al, byte [bp+01dh] ; 8a 46 1d 5339 mov ax, word [bp+01ch] ; 8b 46 1c 5340 shr ax, 008h ; c1 e8 08 4729 5341 push ax ; 50 4730 mov ax, 00335h ; b8 35 03 4731 push ax ; 50 4732 mov ax, 00341h ; b8 41 03 4733 push ax ; 50 4734 mov ax, strict word 00004h ; b8 04 00 4735 push ax ; 50 4736 call 018fah ; e8 29 d7 5342 push 00335h ; 68 35 03 5343 push 00341h ; 68 41 03 5344 push strict byte 00004h ; 6a 04 5345 call 018e9h ; e8 d7 d8 4737 5346 add sp, strict byte 0000ah ; 83 c4 0a 4738 jmp near 04 74eh ; e9 77 055347 jmp near 044f5h ; e9 dd 04 4739 5348 mov ax, word [bp+014h] ; 8b 46 14 4740 5349 xor ah, ah ; 30 e4 4741 mov es, [bp-0 18h] ; 8e 46 e84742 mov bx, word [bp-00ah] ; 8b 5e f65350 mov es, [bp-00ah] ; 8e 46 f6 5351 mov bx, si ; 89 f3 4743 5352 add bx, ax ; 01 c3 4744 5353 mov dl, byte [es:bx+000d0h] ; 26 8a 97 d0 00 4745 mov byte [bp-00 2h], dl ; 88 56 fe5354 mov byte [bp-006h], dl ; 88 56 fa 4746 5355 cmp dl, 010h ; 80 fa 10 4747 jc short 04 1ffh ; 72 0e5356 jc short 04041h ; 72 10 4748 5357 push ax ; 50 4749 mov al, byte [bp+01dh] ; 8a 46 1d 5358 mov ax, word [bp+01ch] ; 8b 46 1c 5359 shr ax, 008h ; c1 e8 08 4750 5360 push ax ; 50 4751 mov ax, 00335h ; b8 35 03 4752 push ax ; 50 4753 mov ax, 0036ch ; b8 6c 03 4754 jmp short 041c9h ; eb ca 4755 mov al, byte [bp+01dh] ; 8a 46 1d 4756 xor ah, ah ; 30 e4 4757 mov dx, ax ; 89 c2 5361 push 00335h ; 68 35 03 5362 push 0036ch ; 68 6c 03 5363 jmp short 0400dh ; eb cc 5364 mov ax, word [bp+01ch] ; 8b 46 1c 5365 shr ax, 008h ; c1 e8 08 4758 5366 cmp ax, strict word 00050h ; 3d 50 00 4759 jnbe short 0426eh ; 77 635367 jnbe near 04518h ; 0f 87 ca 04 4760 5368 push CS ; 0e 4761 5369 pop ES ; 07 4762 5370 mov cx, strict word 0001eh ; b9 1e 00 4763 mov di, 0 4129h ; bf 29 415371 mov di, 03f6fh ; bf 6f 3f 4764 5372 repne scasb ; f2 ae 4765 5373 sal cx, 1 ; d1 e1 4766 5374 mov di, cx ; 89 cf 4767 mov ax, word [cs:di+0 4146h] ; 2e 8b 85 46 415375 mov ax, word [cs:di+03f8ch] ; 2e 8b 85 8c 3f 4768 5376 mov bx, word [bp+01ch] ; 8b 5e 1c 4769 5377 xor bh, bh ; 30 ff … … 4772 5380 xor ah, ah ; 30 e4 4773 5381 or ah, 003h ; 80 cc 03 4774 jmp near 04 756h ; e9 26 055382 jmp near 044fdh ; e9 8a 04 4775 5383 mov dx, strict word 00074h ; ba 74 00 4776 5384 mov ax, strict word 00040h ; b8 40 00 4777 call 01600h ; e8 c7 d35385 call 01600h ; e8 84 d5 4778 5386 mov cl, al ; 88 c1 4779 mov bh, al ; 88 c7 5387 movzx ax, cl ; 0f b6 c1 5388 sal ax, 008h ; c1 e0 08 5389 or bx, ax ; 09 c3 4780 5390 mov word [bp+01ch], bx ; 89 5e 1c 4781 5391 xor bx, bx ; 31 db 4782 5392 mov dx, strict word 00074h ; ba 74 00 4783 5393 mov ax, strict word 00040h ; b8 40 00 4784 call 0160eh ; e8 c3 d35394 call 0160eh ; e8 7a d5 4785 5395 test cl, cl ; 84 c9 4786 je short 0426bh ; 74 1c4787 jmp near 04 767h ; e9 15 055396 je near 0429ah ; 0f 84 00 02 5397 jmp near 04511h ; e9 74 04 4788 5398 or bh, 002h ; 80 cf 02 4789 5399 mov word [bp+01ch], bx ; 89 5e 1c 4790 jmp near 04 759h ; e9 fe045400 jmp near 04500h ; e9 5a 04 4791 5401 mov word [bp+016h], 0aa55h ; c7 46 16 55 aa 4792 5402 or bh, 030h ; 80 cf 30 4793 5403 mov word [bp+01ch], bx ; 89 5e 1c 4794 5404 mov word [bp+01ah], strict word 00007h ; c7 46 1a 07 00 4795 jmp near 0471bh ; e9 ad 04 4796 mov bx, 00c16h ; bb 16 0c 4797 mov cx, ds ; 8c d9 4798 mov ax, strict word 00004h ; b8 04 00 4799 call 018bdh ; e8 44 d6 4800 mov al, byte [bp+01dh] ; 8a 46 1d 4801 xor ah, ah ; 30 e4 4802 push ax ; 50 4803 mov ax, 00335h ; b8 35 03 4804 push ax ; 50 4805 mov ax, 00289h ; b8 89 02 4806 push ax ; 50 4807 mov ax, strict word 00004h ; b8 04 00 4808 jmp short 042cdh ; eb 41 5405 jmp near 0429ah ; e9 e1 01 4809 5406 mov bx, word [bp+010h] ; 8b 5e 10 4810 5407 mov es, [bp+00ah] ; 8e 46 0a 4811 5408 mov di, bx ; 89 df 4812 mov [bp-01ah], es ; 8c 46 e6 4813 mov si, word [es:bx+002h] ; 26 8b 77 02 5409 mov [bp-012h], es ; 8c 46 ee 5410 mov ax, word [es:bx+002h] ; 26 8b 47 02 5411 mov word [bp-00ch], ax ; 89 46 f4 4814 5412 mov ax, word [es:bx+006h] ; 26 8b 47 06 4815 mov word [bp-01 ch], ax ; 89 46 e45413 mov word [bp-014h], ax ; 89 46 ec 4816 5414 mov ax, word [es:bx+004h] ; 26 8b 47 04 4817 mov word [bp-01 2h], ax ; 89 46 ee5415 mov word [bp-016h], ax ; 89 46 ea 4818 5416 mov ax, word [es:bx+00ch] ; 26 8b 47 0c 4819 5417 mov word [bp-010h], ax ; 89 46 f0 4820 5418 mov ax, word [es:bx+00eh] ; 26 8b 47 0e 4821 mov word [bp-0 0eh], ax ; 89 46 f25419 mov word [bp-01ch], ax ; 89 46 e4 4822 5420 or ax, word [bp-010h] ; 0b 46 f0 4823 je short 04 2d7h ; 74 1b4824 mov a l, byte [bp+01dh] ; 8a 46 1d4825 xor ah, ah ; 30 e45421 je short 04104h ; 74 18 5422 mov ax, word [bp+01ch] ; 8b 46 1c 5423 shr ax, 008h ; c1 e8 08 4826 5424 push ax ; 50 4827 mov ax, 00335h ; b8 35 03 4828 push ax ; 50 4829 mov ax, 0039eh ; b8 9e 03 4830 push ax ; 50 4831 mov ax, strict word 00007h ; b8 07 00 4832 push ax ; 50 4833 call 018fah ; e8 29 d6 5425 push 00335h ; 68 35 03 5426 push 0039eh ; 68 9e 03 5427 push strict byte 00007h ; 6a 07 5428 call 018e9h ; e8 eb d7 4834 5429 add sp, strict byte 00008h ; 83 c4 08 4835 jmp near 04 74eh ; e9 77 044836 mov es, [bp-01 ah] ; 8e 46 e65430 jmp near 044f5h ; e9 f1 03 5431 mov es, [bp-012h] ; 8e 46 ee 4837 5432 mov ax, word [es:di+008h] ; 26 8b 45 08 4838 5433 mov word [bp-010h], ax ; 89 46 f0 4839 5434 mov ax, word [es:di+00ah] ; 26 8b 45 0a 4840 mov word [bp-0 0eh], ax ; 89 46 f24841 mov a l, byte [bp+01dh] ; 8a 46 1d4842 xor ah, ah ; 30 e45435 mov word [bp-01ch], ax ; 89 46 e4 5436 mov ax, word [bp+01ch] ; 8b 46 1c 5437 shr ax, 008h ; c1 e8 08 4843 5438 cmp ax, strict word 00044h ; 3d 44 00 4844 je short 042f7h ; 74 055439 je near 04296h ; 0f 84 74 01 4845 5440 cmp ax, strict word 00047h ; 3d 47 00 4846 jne short 042fah ; 75 03 4847 jmp near 04717h ; e9 1d 04 5441 je near 04296h ; 0f 84 6d 01 4848 5442 mov cx, strict word 0000ch ; b9 0c 00 4849 5443 xor bx, bx ; 31 db 4850 5444 mov dx, ss ; 8c d2 4851 lea ax, [bp-02 ah] ; 8d 46 d64852 call 08 dbbh ; e8 b4 4a4853 mov word [bp-02 ah], strict word 00028h ; c7 46 d628 005445 lea ax, [bp-028h] ; 8d 46 d8 5446 call 0885ah ; e8 24 47 5447 mov word [bp-028h], strict word 00028h ; c7 46 d8 28 00 4854 5448 mov ax, word [bp-010h] ; 8b 46 f0 4855 mov dx, word [bp-0 0eh] ; 8b 56 f25449 mov dx, word [bp-01ch] ; 8b 56 e4 4856 5450 xchg ah, al ; 86 c4 4857 5451 xchg dh, dl ; 86 d6 4858 5452 xchg dx, ax ; 92 4859 mov word [bp-02 8h], ax ; 89 46 d84860 mov word [bp-02 6h], dx ; 89 56 da4861 mov ax, si ; 89 f05453 mov word [bp-026h], ax ; 89 46 da 5454 mov word [bp-024h], dx ; 89 56 dc 5455 mov ax, word [bp-00ch] ; 8b 46 f4 4862 5456 xchg ah, al ; 86 c4 4863 mov word [bp-023h], ax ; 89 46 dd 4864 mov es, [bp-018h] ; 8e 46 e8 4865 mov bx, word [bp-00ah] ; 8b 5e f6 4866 mov word [es:bx+00ah], si ; 26 89 77 0a 4867 mov word [es:bx+00ch], 00800h ; 26 c7 47 0c 00 08 4868 cmp byte [bp-002h], 008h ; 80 7e fe 08 4869 jbe short 04368h ; 76 2e 4870 push word [bp-01ch] ; ff 76 e4 4871 push word [bp-012h] ; ff 76 ee 4872 mov ax, strict word 00001h ; b8 01 00 5457 mov word [bp-021h], ax ; 89 46 df 5458 les ax, [bp-00ch] ; c4 46 f4 5459 mov word [es:si+00ah], ax ; 26 89 44 0a 5460 mov word [es:si+00ch], 00800h ; 26 c7 44 0c 00 08 5461 cmp byte [bp-006h], 008h ; 80 7e fa 08 5462 jbe short 0418dh ; 76 26 5463 push dword [bp-016h] ; 66 ff 76 ea 5464 push strict byte 00001h ; 6a 01 5465 xor bx, bx ; 31 db 5466 mov cx, strict word 0000bh ; b9 0b 00 5467 sal ax, 1 ; d1 e0 5468 rcl bx, 1 ; d1 d3 5469 loop 04172h ; e2 fa 5470 push bx ; 53 4873 5471 push ax ; 50 4874 mov bx, si ; 89 f3 4875 xor si, si ; 31 f6 5472 push strict byte 00000h ; 6a 00 5473 movzx ax, byte [bp-006h] ; 0f b6 46 fa 5474 mov cx, ss ; 8c d1 5475 lea bx, [bp-028h] ; 8d 5e d8 5476 mov dx, strict word 0000ch ; ba 0c 00 5477 call 07f4eh ; e8 c3 3d 5478 jmp short 041b1h ; eb 24 5479 push dword [bp-016h] ; 66 ff 76 ea 5480 push strict byte 00001h ; 6a 01 5481 xor bx, bx ; 31 db 4876 5482 mov cx, strict word 0000bh ; b9 0b 00 4877 sal bx, 1 ; d1 e3 4878 rcl si, 1 ; d1 d6 4879 loop 0434bh ; e2 fa 4880 push si ; 56 5483 sal ax, 1 ; d1 e0 5484 rcl bx, 1 ; d1 d3 5485 loop 04198h ; e2 fa 4881 5486 push bx ; 53 4882 xor ax, ax ; 31 c04883 5487 push ax ; 50 4884 mov al, byte [bp-002h] ; 8a 46 fe4885 xor ah, ah ; 30 e45488 push strict byte 00000h ; 6a 00 5489 movzx ax, byte [bp-006h] ; 0f b6 46 fa 4886 5490 mov cx, ss ; 8c d1 4887 lea bx, [bp-02 ah] ; 8d 5e d65491 lea bx, [bp-028h] ; 8d 5e d8 4888 5492 mov dx, strict word 0000ch ; ba 0c 00 4889 call 083e4h ; e8 7e 40 4890 jmp short 04394h ; eb 2c 4891 push word [bp-01ch] ; ff 76 e4 4892 push word [bp-012h] ; ff 76 ee 4893 mov ax, strict word 00001h ; b8 01 00 4894 push ax ; 50 4895 mov bx, si ; 89 f3 4896 xor si, si ; 31 f6 5493 call 0280ah ; e8 59 e6 5494 mov byte [bp-004h], al ; 88 46 fc 5495 mov es, [bp-00ah] ; 8e 46 f6 5496 mov ax, word [es:si+016h] ; 26 8b 44 16 5497 mov bx, word [es:si+018h] ; 26 8b 5c 18 4897 5498 mov cx, strict word 0000bh ; b9 0b 00 4898 sal bx, 1 ; d1 e3 4899 rcl si, 1 ; d1 d6 4900 loop 04379h ; e2 fa 4901 push si ; 56 4902 push bx ; 53 4903 xor ax, ax ; 31 c0 4904 push ax ; 50 4905 mov al, byte [bp-002h] ; 8a 46 fe 4906 xor ah, ah ; 30 e4 4907 mov cx, ss ; 8c d1 4908 lea bx, [bp-02ah] ; 8d 5e d6 4909 mov dx, strict word 0000ch ; ba 0c 00 4910 call 028dbh ; e8 47 e5 4911 mov byte [bp-004h], al ; 88 46 fc 4912 mov es, [bp-018h] ; 8e 46 e8 4913 mov bx, word [bp-00ah] ; 8b 5e f6 4914 mov ax, word [es:bx+016h] ; 26 8b 47 16 4915 mov dx, word [es:bx+018h] ; 26 8b 57 18 4916 mov cx, strict word 0000bh ; b9 0b 00 4917 shr dx, 1 ; d1 ea 5499 shr bx, 1 ; d1 eb 4918 5500 rcr ax, 1 ; d1 d8 4919 loop 04 3a8h ; e2 fa4920 mov es, [bp-01 ah] ; 8e 46 e65501 loop 041c2h ; e2 fa 5502 mov es, [bp-012h] ; 8e 46 ee 4921 5503 mov word [es:di+002h], ax ; 26 89 45 02 4922 5504 cmp byte [bp-004h], 000h ; 80 7e fc 00 4923 je short 04416h ; 74 5b4924 mov bx, 00c 16h ; bb 160c5505 je near 04296h ; 0f 84 bf 00 5506 mov bx, 00c08h ; bb 08 0c 4925 5507 mov cx, ds ; 8c d9 4926 5508 mov ax, strict word 00004h ; b8 04 00 4927 call 018bdh ; e8 f7 d4 4928 mov al, byte [bp-004h] ; 8a 46 fc 4929 xor ah, ah ; 30 e4 5509 call 018aeh ; e8 cc d6 5510 movzx ax, byte [bp-004h] ; 0f b6 46 fc 4930 5511 push ax ; 50 4931 mov al, byte [bp+01dh] ; 8a 46 1d 5512 mov ax, word [bp+01ch] ; 8b 46 1c 5513 shr ax, 008h ; c1 e8 08 4932 5514 push ax ; 50 4933 mov ax, 00335h ; b8 35 03 4934 push ax ; 50 4935 mov ax, 003c7h ; b8 c7 03 4936 push ax ; 50 4937 mov ax, strict word 00004h ; b8 04 00 4938 push ax ; 50 4939 call 018fah ; e8 1b d5 5515 push 00335h ; 68 35 03 5516 push 003c7h ; 68 c7 03 5517 push strict byte 00004h ; 6a 04 5518 call 018e9h ; e8 f0 d6 4940 5519 add sp, strict byte 0000ah ; 83 c4 0a 4941 5520 mov ax, word [bp+01ch] ; 8b 46 1c 4942 5521 xor ah, ah ; 30 e4 4943 5522 or ah, 00ch ; 80 cc 0c 4944 jmp near 04 756h ; e9 69 035523 jmp near 044fdh ; e9 f6 02 4945 5524 cmp bx, strict byte 00002h ; 83 fb 02 4946 jnbe short 04454h ; 77 62 4947 mov al, byte [bp-002h] ; 8a 46 fe 4948 xor ah, ah ; 30 e4 4949 mov dx, strict word 00018h ; ba 18 00 4950 imul dx ; f7 ea 4951 mov es, [bp-018h] ; 8e 46 e8 4952 mov si, word [bp-00ah] ; 8b 76 f6 4953 add si, ax ; 01 c6 4954 mov cl, byte [es:si+021h] ; 26 8a 4c 21 5525 jnbe near 044f5h ; 0f 87 e7 02 5526 movzx ax, byte [bp-006h] ; 0f b6 46 fa 5527 imul ax, ax, strict byte 00018h ; 6b c0 18 5528 mov es, [bp-00ah] ; 8e 46 f6 5529 mov di, si ; 89 f7 5530 add di, ax ; 01 c7 5531 mov al, byte [es:di+021h] ; 26 8a 45 21 4955 5532 cmp bx, strict byte 00002h ; 83 fb 02 4956 je short 04 467h ; 74 5a5533 je short 04287h ; 74 62 4957 5534 cmp bx, strict byte 00001h ; 83 fb 01 4958 je short 04 457h ; 74 455535 je short 04265h ; 74 3b 4959 5536 test bx, bx ; 85 db 4960 je short 04419h ; 74 03 4961 jmp near 04717h ; e9 fe 02 4962 cmp cl, 0ffh ; 80 f9 ff 4963 jne short 04430h ; 75 12 5537 jne near 04296h ; 0f 85 66 00 5538 cmp AL, strict byte 0ffh ; 3c ff 5539 jne short 04246h ; 75 12 4964 5540 mov ax, word [bp+01ch] ; 8b 46 1c 4965 5541 xor ah, ah ; 30 e4 … … 4968 5544 xor al, al ; 30 c0 4969 5545 or AL, strict byte 001h ; 0c 01 4970 jmp near 04756h ; e9 26 03 4971 mov al, byte [bp-002h] ; 8a 46 fe 4972 xor ah, ah ; 30 e4 4973 mov dx, strict word 00018h ; ba 18 00 4974 imul dx ; f7 ea 4975 db 0feh, 0c1h 4976 ; inc cl ; fe c1 4977 mov es, [bp-018h] ; 8e 46 e8 4978 mov bx, word [bp-00ah] ; 8b 5e f6 4979 add bx, ax ; 01 c3 4980 mov byte [es:bx+021h], cl ; 26 88 4f 21 5546 jmp near 044fdh ; e9 b7 02 5547 movzx dx, byte [bp-006h] ; 0f b6 56 fa 5548 imul dx, dx, strict byte 00018h ; 6b d2 18 5549 db 0feh, 0c0h 5550 ; inc al ; fe c0 5551 mov es, [bp-00ah] ; 8e 46 f6 5552 add si, dx ; 01 d6 5553 mov byte [es:si+021h], al ; 26 88 44 21 4981 5554 mov ax, word [bp+01ch] ; 8b 46 1c 4982 5555 xor al, al ; 30 c0 4983 5556 or AL, strict byte 001h ; 0c 01 4984 5557 mov word [bp+01ch], ax ; 89 46 1c 4985 jmp short 04416h ; eb c2 4986 jmp near 0474eh ; e9 f7 02 4987 test cl, cl ; 84 c9 4988 jne short 04469h ; 75 0e 5558 jmp near 04296h ; e9 31 00 5559 test al, al ; 84 c0 5560 jne short 04275h ; 75 0c 4989 5561 or bh, 0b0h ; 80 cf b0 4990 5562 mov word [bp+01ch], bx ; 89 5e 1c 4991 mov byte [bp+01ch], cl ; 88 4e 1c 4992 jmp near 04759h ; e9 f2 02 4993 jmp short 04481h ; eb 18 4994 mov al, byte [bp-002h] ; 8a 46 fe 5563 mov byte [bp+01ch], al ; 88 46 1c 5564 jmp near 04500h ; e9 8b 02 5565 movzx dx, byte [bp-006h] ; 0f b6 56 fa 5566 imul dx, dx, strict byte 00018h ; 6b d2 18 5567 db 0feh, 0c8h 5568 ; dec al ; fe c8 5569 mov es, [bp-00ah] ; 8e 46 f6 5570 add si, dx ; 01 d6 5571 mov byte [es:si+021h], al ; 26 88 44 21 5572 test al, al ; 84 c0 5573 db 00fh, 095h, 0c0h 5574 ; setne al ; 0f 95 c0 4995 5575 xor ah, ah ; 30 e4 4996 mov dx, strict word 00018h ; ba 18 004997 imul dx ; f7 ea4998 db 0feh, 0c9h4999 ; dec cl ; fe c95000 mov es, [bp-018h] ; 8e 46 e85001 mov bx, word [bp-00ah] ; 8b 5e f65002 add bx, ax ; 01 c35003 mov byte [es:bx+021h], cl ; 26 88 4f 215004 test cl, cl ; 84 c95005 jne short 04493h ; 75 0e5006 xor ax, ax ; 31 c05007 5576 mov dx, word [bp+01ch] ; 8b 56 1c 5008 xor dl, dl ; 30 d2 5009 or dx, ax ; 09 c2 5577 mov dl, al ; 88 c2 5010 5578 mov word [bp+01ch], dx ; 89 56 1c 5011 jmp short 04416h ; eb 83 5012 mov ax, strict word 00001h ; b8 01 00 5013 jmp short 04487h ; eb ef 5014 mov al, byte [bp-002h] ; 8a 46 fe 5015 xor ah, ah ; 30 e4 5016 mov dx, strict word 00018h ; ba 18 00 5017 imul dx ; f7 ea 5018 mov es, [bp-018h] ; 8e 46 e8 5019 mov si, word [bp-00ah] ; 8b 76 f6 5579 mov byte [bp+01dh], 000h ; c6 46 1d 00 5580 xor bx, bx ; 31 db 5581 mov dx, strict word 00074h ; ba 74 00 5582 mov ax, strict word 00040h ; b8 40 00 5583 call 0160eh ; e8 69 d3 5584 and byte [bp+022h], 0feh ; 80 66 22 fe 5585 leave ; c9 5586 pop di ; 5f 5587 pop si ; 5e 5588 retn ; c3 5589 movzx ax, byte [bp-006h] ; 0f b6 46 fa 5590 imul ax, ax, strict byte 00018h ; 6b c0 18 5591 mov es, [bp-00ah] ; 8e 46 f6 5020 5592 add si, ax ; 01 c6 5021 mov cl, byte [es:si+021h] ; 26 8a 4c215022 test cl, cl ; 84 c95023 je short 04 4b8h ; 74 065593 mov al, byte [es:si+021h] ; 26 8a 44 21 5594 test al, al ; 84 c0 5595 je short 042c7h ; 74 06 5024 5596 or bh, 0b1h ; 80 cf b1 5025 jmp near 04 255h ; e9 9dfd5597 jmp near 040a0h ; e9 d9 fd 5026 5598 cmp byte [bp-004h], 000h ; 80 7e fc 00 5027 je short 04 4e4h ; 74 265599 je short 04296h ; 74 c9 5028 5600 mov ax, word [bp+01ch] ; 8b 46 1c 5029 5601 xor ah, ah ; 30 e4 5030 5602 or ah, 0b1h ; 80 cc b1 5031 jmp near 04 756h ; e9 8d025032 mov bx, word [bp+010h] ; 8b 5e105603 jmp near 044fdh ; e9 25 02 5604 mov dx, word [bp+010h] ; 8b 56 10 5033 5605 mov cx, word [bp+00ah] ; 8b 4e 0a 5034 mov si, bx ; 89 de5606 mov bx, dx ; 89 d3 5035 5607 mov word [bp-008h], cx ; 89 4e f8 5036 5608 mov es, cx ; 8e c1 5037 mov ax, word [es:bx] ; 26 8b 07 5038 mov word [bp-00ch], ax ; 89 46 f4 5609 mov di, dx ; 89 d7 5610 mov ax, word [es:di] ; 26 8b 05 5611 mov word [bp-00eh], ax ; 89 46 f2 5039 5612 cmp ax, strict word 0001ah ; 3d 1a 00 5040 jnc short 044e7h ; 73 06 5041 jmp near 0474eh ; e9 6a 02 5042 jmp near 04717h ; e9 30 02 5043 jc short 0454ch ; 72 63 5044 mov al, byte [bp-002h] ; 8a 46 fe 5045 xor ah, ah ; 30 e4 5046 mov dx, strict word 00018h ; ba 18 00 5047 imul dx ; f7 ea 5048 mov es, [bp-018h] ; 8e 46 e8 5049 mov di, word [bp-00ah] ; 8b 7e f6 5050 add di, ax ; 01 c7 5613 jc near 044f5h ; 0f 82 01 02 5614 jc short 04343h ; 72 4d 5615 movzx di, byte [bp-006h] ; 0f b6 7e fa 5616 imul di, di, strict byte 00018h ; 6b ff 18 5617 mov es, [bp-00ah] ; 8e 46 f6 5618 add di, si ; 01 f7 5051 5619 mov ax, word [es:di+024h] ; 26 8b 45 24 5052 5620 mov es, cx ; 8e c1 5053 mov word [es:bx], strict word 0001ah ; 26 c7 07 1a 00 5054 mov word [es:bx+002h], strict word 00074h ; 26 c7 47 02 74 00 5055 mov word [es:bx+004h], strict word 0ffffh ; 26 c7 47 04 ff ff 5056 mov word [es:bx+006h], strict word 0ffffh ; 26 c7 47 06 ff ff 5057 mov word [es:bx+008h], strict word 0ffffh ; 26 c7 47 08 ff ff 5058 mov word [es:bx+00ah], strict word 0ffffh ; 26 c7 47 0a ff ff 5059 mov word [es:bx+00ch], strict word 0ffffh ; 26 c7 47 0c ff ff 5060 mov word [es:bx+00eh], strict word 0ffffh ; 26 c7 47 0e ff ff 5061 mov word [es:bx+018h], ax ; 26 89 47 18 5062 mov word [es:bx+010h], strict word 0ffffh ; 26 c7 47 10 ff ff 5063 mov word [es:bx+012h], strict word 0ffffh ; 26 c7 47 12 ff ff 5064 mov word [es:bx+014h], strict word 0ffffh ; 26 c7 47 14 ff ff 5065 mov word [es:bx+016h], strict word 0ffffh ; 26 c7 47 16 ff ff 5066 cmp word [bp-00ch], strict byte 0001eh ; 83 7e f4 1e 5067 jc short 045b6h ; 72 64 5621 mov di, dx ; 89 d7 5622 db 066h, 026h, 0c7h, 005h, 01ah, 000h, 074h, 000h 5623 ; mov dword [es:di], strict dword 00074001ah ; 66 26 c7 05 1a 00 74 00 5624 db 066h, 026h, 0c7h, 045h, 004h, 0ffh, 0ffh, 0ffh, 0ffh 5625 ; mov dword [es:di+004h], strict dword 0ffffffffh ; 66 26 c7 45 04 ff ff ff ff 5626 db 066h, 026h, 0c7h, 045h, 008h, 0ffh, 0ffh, 0ffh, 0ffh 5627 ; mov dword [es:di+008h], strict dword 0ffffffffh ; 66 26 c7 45 08 ff ff ff ff 5628 db 066h, 026h, 0c7h, 045h, 00ch, 0ffh, 0ffh, 0ffh, 0ffh 5629 ; mov dword [es:di+00ch], strict dword 0ffffffffh ; 66 26 c7 45 0c ff ff ff ff 5630 mov word [es:di+018h], ax ; 26 89 45 18 5631 db 066h, 026h, 0c7h, 045h, 010h, 0ffh, 0ffh, 0ffh, 0ffh 5632 ; mov dword [es:di+010h], strict dword 0ffffffffh ; 66 26 c7 45 10 ff ff ff ff 5633 db 066h, 026h, 0c7h, 045h, 014h, 0ffh, 0ffh, 0ffh, 0ffh 5634 ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff 5635 cmp word [bp-00eh], strict byte 0001eh ; 83 7e f2 1e 5636 jc near 04419h ; 0f 82 ce 00 5068 5637 mov es, [bp-008h] ; 8e 46 f8 5069 mov word [es:si], strict word 0001eh ; 26 c7 04 1e 00 5070 mov ax, word [bp-01eh] ; 8b 46 e2 5071 mov word [es:si+01ch], ax ; 26 89 44 1c 5072 mov word [es:si+01ah], 00312h ; 26 c7 44 1a 12 03 5073 mov cl, byte [bp-002h] ; 8a 4e fe 5074 xor ch, ch ; 30 ed 5638 mov word [es:bx], strict word 0001eh ; 26 c7 07 1e 00 5639 mov ax, word [bp-018h] ; 8b 46 e8 5640 mov word [es:bx+01ch], ax ; 26 89 47 1c 5641 mov word [es:bx+01ah], 00312h ; 26 c7 47 1a 12 03 5642 movzx cx, byte [bp-006h] ; 0f b6 4e fa 5075 5643 mov ax, cx ; 89 c8 5076 5644 cwd ; 99 … … 5079 5647 sar ax, 1 ; d1 f8 5080 5648 xor ah, ah ; 30 e4 5081 mov dx, strict word 00006h ; ba 06 00 5082 imul dx ; f7 ea 5083 mov es, [bp-018h] ; 8e 46 e8 5084 mov bx, word [bp-00ah] ; 8b 5e f6 5085 add bx, ax ; 01 c3 5086 mov ax, word [es:bx+001c2h] ; 26 8b 87 c2 01 5087 mov word [bp-016h], ax ; 89 46 ea 5088 mov ax, word [es:bx+001c4h] ; 26 8b 87 c4 01 5089 mov word [bp-014h], ax ; 89 46 ec 5090 mov al, byte [es:bx+001c1h] ; 26 8a 87 c1 01 5091 mov byte [bp-006h], al ; 88 46 fa 5092 mov ax, cx ; 89 c8 5093 mov dx, strict word 00018h ; ba 18 00 5094 imul dx ; f7 ea 5095 mov bx, word [bp-00ah] ; 8b 5e f6 5096 add bx, ax ; 01 c3 5097 mov al, byte [es:bx+022h] ; 26 8a 47 22 5098 mov di, strict word 00070h ; bf 70 00 5649 imul ax, ax, strict byte 00006h ; 6b c0 06 5650 mov es, [bp-00ah] ; 8e 46 f6 5651 mov di, si ; 89 f7 5652 add di, ax ; 01 c7 5653 mov dx, word [es:di+001c2h] ; 26 8b 95 c2 01 5654 mov ax, word [es:di+001c4h] ; 26 8b 85 c4 01 5655 mov word [bp-01ah], ax ; 89 46 e6 5656 mov al, byte [es:di+001c1h] ; 26 8a 85 c1 01 5657 mov byte [bp-002h], al ; 88 46 fe 5658 imul cx, cx, strict byte 00018h ; 6b c9 18 5659 mov di, si ; 89 f7 5660 add di, cx ; 01 cf 5661 mov al, byte [es:di+022h] ; 26 8a 45 22 5099 5662 cmp AL, strict byte 001h ; 3c 01 5100 jne short 045b9h ; 75 08 5101 mov ax, strict word 00001h ; b8 01 00 5102 jmp short 045bbh ; eb 05 5103 jmp near 04648h ; e9 8f 00 5104 xor ax, ax ; 31 c0 5105 or di, ax ; 09 c7 5106 mov ax, word [bp-016h] ; 8b 46 ea 5107 mov es, [bp-018h] ; 8e 46 e8 5108 mov bx, word [bp-00ah] ; 8b 5e f6 5109 mov word [es:bx+001f0h], ax ; 26 89 87 f0 01 5110 mov ax, word [bp-014h] ; 8b 46 ec 5111 mov word [es:bx+001f2h], ax ; 26 89 87 f2 01 5663 db 00fh, 094h, 0c0h 5664 ; sete al ; 0f 94 c0 5665 xor ah, ah ; 30 e4 5666 or AL, strict byte 070h ; 0c 70 5667 mov di, ax ; 89 c7 5668 mov word [es:si+001f0h], dx ; 26 89 94 f0 01 5669 mov ax, word [bp-01ah] ; 8b 46 e6 5670 mov word [es:si+001f2h], ax ; 26 89 84 f2 01 5671 movzx ax, byte [bp-006h] ; 0f b6 46 fa 5672 cwd ; 99 5673 mov cx, strict word 00002h ; b9 02 00 5674 idiv cx ; f7 f9 5675 or dl, 00eh ; 80 ca 0e 5676 sal dx, 004h ; c1 e2 04 5677 mov byte [es:si+001f4h], dl ; 26 88 94 f4 01 5678 mov byte [es:si+001f5h], 0cbh ; 26 c6 84 f5 01 cb 5112 5679 mov al, byte [bp-002h] ; 8a 46 fe 5113 xor ah, ah ; 30 e4 5114 cwd ; 99 5115 mov bx, strict word 00002h ; bb 02 00 5116 idiv bx ; f7 fb 5117 or dl, 00eh ; 80 ca 0e 5118 mov ax, dx ; 89 d0 5119 mov CL, strict byte 004h ; b1 04 5120 sal ax, CL ; d3 e0 5121 mov bx, word [bp-00ah] ; 8b 5e f6 5122 mov byte [es:bx+001f4h], al ; 26 88 87 f4 01 5123 mov byte [es:bx+001f5h], 0cbh ; 26 c6 87 f5 01 cb 5124 mov al, byte [bp-006h] ; 8a 46 fa 5125 mov byte [es:bx+001f6h], al ; 26 88 87 f6 01 5126 mov word [es:bx+001f7h], strict word 00001h ; 26 c7 87 f7 01 01 00 5127 mov byte [es:bx+001f9h], 000h ; 26 c6 87 f9 01 00 5128 mov word [es:bx+001fah], di ; 26 89 bf fa 01 5129 mov word [es:bx+001fch], strict word 00000h ; 26 c7 87 fc 01 00 00 5130 mov byte [es:bx+001feh], 011h ; 26 c6 87 fe 01 11 5131 xor bl, bl ; 30 db 5132 xor bh, bh ; 30 ff 5133 jmp short 04627h ; eb 05 5134 cmp bh, 00fh ; 80 ff 0f 5135 jnc short 0463bh ; 73 14 5136 mov dl, bh ; 88 fa 5137 xor dh, dh ; 30 f6 5680 mov byte [es:si+001f6h], al ; 26 88 84 f6 01 5681 mov word [es:si+001f7h], strict word 00001h ; 26 c7 84 f7 01 01 00 5682 mov byte [es:si+001f9h], 000h ; 26 c6 84 f9 01 00 5683 mov word [es:si+001fah], di ; 26 89 bc fa 01 5684 mov word [es:si+001fch], strict word 00000h ; 26 c7 84 fc 01 00 00 5685 mov byte [es:si+001feh], 011h ; 26 c6 84 fe 01 11 5686 xor cl, cl ; 30 c9 5687 xor ch, ch ; 30 ed 5688 jmp short 043fch ; eb 05 5689 cmp ch, 00fh ; 80 fd 0f 5690 jnc short 0440fh ; 73 13 5691 movzx dx, ch ; 0f b6 d5 5138 5692 add dx, 00312h ; 81 c2 12 03 5139 mov ax, word [bp-01eh] ; 8b 46 e2 5140 call 01600h ; e8 cb cf 5141 add bl, al ; 00 c3 5142 db 0feh, 0c7h 5143 ; inc bh ; fe c7 5144 jmp short 04622h ; eb e7 5145 neg bl ; f6 db 5146 mov es, [bp-018h] ; 8e 46 e8 5147 mov di, word [bp-00ah] ; 8b 7e f6 5148 mov byte [es:di+001ffh], bl ; 26 88 9d ff 01 5149 cmp word [bp-00ch], strict byte 00042h ; 83 7e f4 42 5150 jnc short 04651h ; 73 03 5151 jmp near 04717h ; e9 c6 00 5152 mov al, byte [bp-002h] ; 8a 46 fe 5153 xor ah, ah ; 30 e4 5693 mov ax, word [bp-018h] ; 8b 46 e8 5694 call 01600h ; e8 f7 d1 5695 add cl, al ; 00 c1 5696 db 0feh, 0c5h 5697 ; inc ch ; fe c5 5698 jmp short 043f7h ; eb e8 5699 neg cl ; f6 d9 5700 mov es, [bp-00ah] ; 8e 46 f6 5701 mov byte [es:si+001ffh], cl ; 26 88 8c ff 01 5702 cmp word [bp-00eh], strict byte 00042h ; 83 7e f2 42 5703 jc near 04296h ; 0f 82 75 fe 5704 movzx ax, byte [bp-006h] ; 0f b6 46 fa 5154 5705 cwd ; 99 5155 5706 db 02bh, 0c2h … … 5157 5708 sar ax, 1 ; d1 f8 5158 5709 xor ah, ah ; 30 e4 5159 mov dx, strict word 00006h ; ba 06 00 5160 imul dx ; f7 ea 5161 mov es, [bp-018h] ; 8e 46 e8 5162 mov bx, word [bp-00ah] ; 8b 5e f6 5163 add bx, ax ; 01 c3 5164 mov al, byte [es:bx+001c0h] ; 26 8a 87 c0 01 5165 mov dx, word [es:bx+001c2h] ; 26 8b 97 c2 01 5710 imul ax, ax, strict byte 00006h ; 6b c0 06 5711 mov es, [bp-00ah] ; 8e 46 f6 5712 add si, ax ; 01 c6 5713 mov al, byte [es:si+001c0h] ; 26 8a 84 c0 01 5714 mov dx, word [es:si+001c2h] ; 26 8b 94 c2 01 5166 5715 mov es, [bp-008h] ; 8e 46 f8 5167 mov word [es: si], strict word 00042h ; 26 c7 0442 005168 mov word [es:si+01eh], 0beddh ; 26 c7 44 1e dd be5169 mov word [es:si+020h], strict word 00024h ; 26 c7 44 2024 005170 mov word [es: si+022h], strict word 00000h ; 26 c7 4422 00 005716 mov word [es:bx], strict word 00042h ; 26 c7 07 42 00 5717 db 066h, 026h, 0c7h, 047h, 01eh, 0ddh, 0beh, 024h, 000h 5718 ; mov dword [es:bx+01eh], strict dword 00024beddh ; 66 26 c7 47 1e dd be 24 00 5719 mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00 5171 5720 test al, al ; 84 c0 5172 jne short 04 69eh ; 75 0c5173 mov word [es:si+024h], 05349h ; 26 c7 44 24 49 535174 mov word [es:si+026h], 02041h ; 26 c7 44 2641 205721 jne short 04462h ; 75 09 5722 db 066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h 5723 ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20 5175 5724 mov es, [bp-008h] ; 8e 46 f8 5176 mov word [es:si+028h], 05441h ; 26 c7 44 28 41 545177 mov word [es:si+02ah], 02041h ; 26 c7 44 2a41 205178 mov word [es:si+02ch], 02020h ; 26 c7 44 2c 20 205179 mov word [es:si+02eh], 02020h ; 26 c7 44 2e20 205725 db 066h, 026h, 0c7h, 047h, 028h, 041h, 054h, 041h, 020h 5726 ; mov dword [es:bx+028h], strict dword 020415441h ; 66 26 c7 47 28 41 54 41 20 5727 db 066h, 026h, 0c7h, 047h, 02ch, 020h, 020h, 020h, 020h 5728 ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20 5180 5729 test al, al ; 84 c0 5181 jne short 04 6d3h ; 75 165182 mov word [es: si+030h], dx ; 26 89 54305183 mov word [es:si+032h], strict word 00000h ; 26 c7 44 32 00 005184 mov word [es:si+034h], strict word 00000h ; 26 c7 44 3400 005185 mov word [es: si+036h], strict word 00000h ; 26 c7 4436 00 005186 mov al, byte [bp-00 2h] ; 8a 46 fe5730 jne short 0448eh ; 75 13 5731 mov word [es:bx+030h], dx ; 26 89 57 30 5732 db 066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h 5733 ; mov dword [es:bx+032h], strict dword 000000000h ; 66 26 c7 47 32 00 00 00 00 5734 mov word [es:bx+036h], strict word 00000h ; 26 c7 47 36 00 00 5735 mov al, byte [bp-006h] ; 8a 46 fa 5187 5736 and AL, strict byte 001h ; 24 01 5188 5737 xor ah, ah ; 30 e4 5189 5738 mov es, [bp-008h] ; 8e 46 f8 5190 mov word [es: si+038h], ax ; 26 89 44385191 mov word [es:si+03ah], strict word 00000h ; 26 c7 44 3a 00 005192 mov word [es:si+03ch], strict word 00000h ; 26 c7 44 3c00 005193 mov word [es: si+03eh], strict word 00000h ; 26 c7 443e 00 005739 mov word [es:bx+038h], ax ; 26 89 47 38 5740 db 066h, 026h, 0c7h, 047h, 03ah, 000h, 000h, 000h, 000h 5741 ; mov dword [es:bx+03ah], strict dword 000000000h ; 66 26 c7 47 3a 00 00 00 00 5742 mov word [es:bx+03eh], strict word 00000h ; 26 c7 47 3e 00 00 5194 5743 xor al, al ; 30 c0 5195 5744 mov AH, strict byte 01eh ; b4 1e 5196 jmp short 04 6feh ; eb 055745 jmp short 044b6h ; eb 05 5197 5746 cmp ah, 040h ; 80 fc 40 5198 jnc short 0470eh ; 73 10 5199 mov bl, ah ; 88 e3 5200 xor bh, bh ; 30 ff 5747 jnc short 044c5h ; 73 0f 5748 movzx si, ah ; 0f b6 f4 5201 5749 mov es, [bp-008h] ; 8e 46 f8 5202 add bx, si ; 01 f35203 add al, byte [es: bx] ; 26 02 075750 add si, bx ; 01 de 5751 add al, byte [es:si] ; 26 02 04 5204 5752 db 0feh, 0c4h 5205 5753 ; inc ah ; fe c4 5206 jmp short 04 6f9h ; eb eb5754 jmp short 044b1h ; eb ec 5207 5755 neg al ; f6 d8 5208 5756 mov es, [bp-008h] ; 8e 46 f8 5209 mov byte [es:si+041h], al ; 26 88 44 41 5210 mov byte [bp+01dh], 000h ; c6 46 1d 00 5211 xor bx, bx ; 31 db 5212 mov dx, strict word 00074h ; ba 74 00 5213 mov ax, strict word 00040h ; b8 40 00 5214 call 0160eh ; e8 e8 ce 5215 and byte [bp+022h], 0feh ; 80 66 22 fe 5216 mov sp, bp ; 89 ec 5217 pop bp ; 5d 5218 pop di ; 5f 5219 pop si ; 5e 5220 retn ; c3 5757 mov byte [es:bx+041h], al ; 26 88 47 41 5758 jmp near 04296h ; e9 c5 fd 5221 5759 or bh, 006h ; 80 cf 06 5222 5760 mov word [bp+01ch], bx ; 89 5e 1c 5223 jmp short 04 767h ; eb 2f5761 jmp short 04511h ; eb 38 5224 5762 cmp bx, strict byte 00006h ; 83 fb 06 5225 je short 04717h ; 74 da5763 je near 04296h ; 0f 84 b6 fd 5226 5764 cmp bx, strict byte 00001h ; 83 fb 01 5227 jc short 04 74eh ; 72 0c5228 jbe short 04717h ; 76 d35765 jc short 044f5h ; 72 10 5766 jbe near 04296h ; 0f 86 ad fd 5229 5767 cmp bx, strict byte 00003h ; 83 fb 03 5230 jc short 04 74eh ; 72 055768 jc short 044f5h ; 72 07 5231 5769 cmp bx, strict byte 00004h ; 83 fb 04 5232 jbe short 04717h ; 76 c95770 jbe near 04296h ; 0f 86 a1 fd 5233 5771 mov ax, word [bp+01ch] ; 8b 46 1c 5234 5772 xor ah, ah ; 30 e4 5235 5773 or ah, 001h ; 80 cc 01 5236 5774 mov word [bp+01ch], ax ; 89 46 1c 5237 mov bl, byte [bp+01dh] ; 8a 5e 1d 5775 mov bx, word [bp+01ch] ; 8b 5e 1c 5776 shr bx, 008h ; c1 eb 08 5238 5777 xor bh, bh ; 30 ff 5239 5778 mov dx, strict word 00074h ; ba 74 00 5240 5779 mov ax, strict word 00040h ; b8 40 00 5241 call 0160eh ; e8 a7 ce5780 call 0160eh ; e8 fd d0 5242 5781 or byte [bp+022h], 001h ; 80 4e 22 01 5243 jmp short 0472ah ; eb bd 5244 print_boot_device_: ; 0xf476d LB 0x4e 5782 jmp near 042a9h ; e9 91 fd 5783 mov bx, 00c08h ; bb 08 0c 5784 mov cx, ds ; 8c d9 5785 mov ax, strict word 00004h ; b8 04 00 5786 call 018aeh ; e8 8b d3 5787 mov ax, word [bp+01ch] ; 8b 46 1c 5788 shr ax, 008h ; c1 e8 08 5789 push ax ; 50 5790 push 00335h ; 68 35 03 5791 push 00289h ; 68 89 02 5792 push strict byte 00004h ; 6a 04 5793 jmp near 040fbh ; e9 c6 fb 5794 print_boot_device_: ; 0xf4535 LB 0x48 5245 5795 push cx ; 51 5246 5796 push bp ; 55 5247 5797 mov bp, sp ; 89 e5 5248 5798 test al, al ; 84 c0 5249 je short 04 77ah ; 74 055799 je short 04542h ; 74 05 5250 5800 mov dx, strict word 00002h ; ba 02 00 5251 jmp short 04 794h ; eb 1a5801 jmp short 0455ch ; eb 1a 5252 5802 test dl, dl ; 84 d2 5253 je short 04 783h ; 74 055803 je short 0454bh ; 74 05 5254 5804 mov dx, strict word 00003h ; ba 03 00 5255 jmp short 04 794h ; eb 115805 jmp short 0455ch ; eb 11 5256 5806 test bl, 080h ; f6 c3 80 5257 jne short 04 78ch ; 75 045807 jne short 04554h ; 75 04 5258 5808 xor dh, dh ; 30 f6 5259 jmp short 04 794h ; eb 085809 jmp short 0455ch ; eb 08 5260 5810 test bl, 080h ; f6 c3 80 5261 je short 04 7b8h ; 74 275811 je short 0457ah ; 74 21 5262 5812 mov dx, strict word 00001h ; ba 01 00 5263 mov bx, 00c 16h ; bb 160c5813 mov bx, 00c08h ; bb 08 0c 5264 5814 mov cx, ds ; 8c d9 5265 5815 mov ax, strict word 00004h ; b8 04 00 5266 call 018bdh ; e8 1e d1 5267 mov ax, dx ; 89 d0 5268 mov dx, strict word 0000ah ; ba 0a 00 5269 imul dx ; f7 ea 5270 add ax, 00c3ch ; 05 3c 0c 5271 push ax ; 50 5272 mov ax, 003eah ; b8 ea 03 5273 push ax ; 50 5274 mov ax, strict word 00004h ; b8 04 00 5275 push ax ; 50 5276 call 018fah ; e8 45 d1 5816 call 018aeh ; e8 47 d3 5817 imul dx, dx, strict byte 0000ah ; 6b d2 0a 5818 add dx, 00c2eh ; 81 c2 2e 0c 5819 push dx ; 52 5820 push 003eah ; 68 ea 03 5821 push strict byte 00004h ; 6a 04 5822 call 018e9h ; e8 72 d3 5277 5823 add sp, strict byte 00006h ; 83 c4 06 5278 5824 pop bp ; 5d 5279 5825 pop cx ; 59 5280 5826 retn ; c3 5281 print_boot_failure_: ; 0xf4 7bb LB 0x9c5827 print_boot_failure_: ; 0xf457d LB 0x90 5282 5828 push si ; 56 5283 5829 push bp ; 55 5284 5830 mov bp, sp ; 89 e5 5285 5831 mov dh, cl ; 88 ce 5286 mov cl, bl ; 88 d9 5287 and cl, 07fh ; 80 e1 7f 5288 xor ch, ch ; 30 ed 5289 mov si, cx ; 89 ce 5832 mov ah, bl ; 88 dc 5833 and ah, 07fh ; 80 e4 7f 5834 movzx si, ah ; 0f b6 f4 5290 5835 test al, al ; 84 c0 5291 je short 04 7edh ; 74 1f5292 mov bx, 00c 16h ; bb 160c5836 je short 045aah ; 74 1b 5837 mov bx, 00c08h ; bb 08 0c 5293 5838 mov cx, ds ; 8c d9 5294 5839 mov ax, strict word 00004h ; b8 04 00 5295 call 018bdh ; e8 e4 d0 5296 mov cx, 00c50h ; b9 50 0c 5297 push cx ; 51 5298 mov cx, 003feh ; b9 fe 03 5299 push cx ; 51 5300 mov cx, strict word 00004h ; b9 04 00 5301 push cx ; 51 5302 call 018fah ; e8 12 d1 5840 call 018aeh ; e8 14 d3 5841 push 00c42h ; 68 42 0c 5842 push 003feh ; 68 fe 03 5843 push strict byte 00004h ; 6a 04 5844 call 018e9h ; e8 44 d3 5303 5845 add sp, strict byte 00006h ; 83 c4 06 5304 jmp short 04 835h ; eb 485846 jmp short 045eeh ; eb 44 5305 5847 test dl, dl ; 84 d2 5306 je short 04 801h ; 74 105307 mov bx, 00c 16h ; bb 160c5848 je short 045beh ; 74 10 5849 mov bx, 00c08h ; bb 08 0c 5308 5850 mov cx, ds ; 8c d9 5309 5851 mov ax, strict word 00004h ; b8 04 00 5310 call 018 bdh ; e8 c1 d05311 mov cx, 00c5ah ; b9 5a0c5312 jmp short 04 7dch ; eb db5852 call 018aeh ; e8 f5 d2 5853 push 00c4ch ; 68 4c 0c 5854 jmp short 0459dh ; eb df 5313 5855 test bl, 080h ; f6 c3 80 5314 je short 04 817h ; 74 115315 mov bx, 00c 16h ; bb 160c5856 je short 045d4h ; 74 11 5857 mov bx, 00c08h ; bb 08 0c 5316 5858 mov cx, ds ; 8c d9 5317 5859 mov ax, strict word 00004h ; b8 04 00 5318 call 018 bdh ; e8 ac d05860 call 018aeh ; e8 e0 d2 5319 5861 push si ; 56 5320 mov cx, 00c46h ; b9 460c5321 jmp short 04 826h ; eb 0f5322 mov bx, 00c 16h ; bb 160c5862 push 00c38h ; 68 38 0c 5863 jmp short 045e3h ; eb 0f 5864 mov bx, 00c08h ; bb 08 0c 5323 5865 mov cx, ds ; 8c d9 5324 5866 mov ax, strict word 00004h ; b8 04 00 5325 call 018 bdh ; e8 9b d05867 call 018aeh ; e8 cf d2 5326 5868 push si ; 56 5327 mov cx, 00c3ch ; b9 3c 0c 5328 push cx ; 51 5329 mov cx, 00413h ; b9 13 04 5330 push cx ; 51 5331 mov cx, strict word 00004h ; b9 04 00 5332 push cx ; 51 5333 call 018fah ; e8 c8 d0 5869 push 00c2eh ; 68 2e 0c 5870 push 00413h ; 68 13 04 5871 push strict byte 00004h ; 6a 04 5872 call 018e9h ; e8 fe d2 5334 5873 add sp, strict byte 00008h ; 83 c4 08 5335 5874 cmp byte [bp+006h], 001h ; 80 7e 06 01 5336 jne short 04 852h ; 75 175875 jne short 04608h ; 75 14 5337 5876 test dh, dh ; 84 f6 5338 jne short 04844h ; 75 05 5339 mov dx, 0042bh ; ba 2b 04 5340 jmp short 04847h ; eb 03 5341 mov dx, 00455h ; ba 55 04 5342 push dx ; 52 5343 mov dx, strict word 00007h ; ba 07 00 5344 push dx ; 52 5345 call 018fah ; e8 ab d0 5877 jne short 045fdh ; 75 05 5878 push 0042bh ; 68 2b 04 5879 jmp short 04600h ; eb 03 5880 push 00455h ; 68 55 04 5881 push strict byte 00007h ; 6a 07 5882 call 018e9h ; e8 e4 d2 5346 5883 add sp, strict byte 00004h ; 83 c4 04 5347 5884 pop bp ; 5d 5348 5885 pop si ; 5e 5349 5886 retn 00002h ; c2 02 00 5350 print_cdromboot_failure_: ; 0xf4 857 LB 0x275887 print_cdromboot_failure_: ; 0xf460d LB 0x24 5351 5888 push bx ; 53 5352 5889 push cx ; 51 … … 5355 5892 mov bp, sp ; 89 e5 5356 5893 mov dx, ax ; 89 c2 5357 mov bx, 00c 16h ; bb 160c5894 mov bx, 00c08h ; bb 08 0c 5358 5895 mov cx, ds ; 8c d9 5359 5896 mov ax, strict word 00004h ; b8 04 00 5360 call 018 bdh ; e8 53 d05897 call 018aeh ; e8 8e d2 5361 5898 push dx ; 52 5362 mov dx, 0048ah ; ba 8a 04 5363 push dx ; 52 5364 mov dx, strict word 00004h ; ba 04 00 5365 push dx ; 52 5366 call 018fah ; e8 84 d0 5899 push 0048ah ; 68 8a 04 5900 push strict byte 00004h ; 6a 04 5901 call 018e9h ; e8 c0 d2 5367 5902 add sp, strict byte 00006h ; 83 c4 06 5368 5903 pop bp ; 5d … … 5371 5906 pop bx ; 5b 5372 5907 retn ; c3 5373 _int19_function: ; 0xf4 87e LB 0x2965908 _int19_function: ; 0xf4631 LB 0x251 5374 5909 push si ; 56 5375 5910 push di ; 57 5376 push bp ; 55 5377 mov bp, sp ; 89 e5 5378 sub sp, strict byte 00010h ; 83 ec 10 5911 enter 0000eh, 000h ; c8 0e 00 00 5379 5912 mov dx, strict word 0000eh ; ba 0e 00 5380 5913 mov ax, strict word 00040h ; b8 40 00 5381 call 0161ch ; e8 8d cd5914 call 0161ch ; e8 dc cf 5382 5915 mov bx, ax ; 89 c3 5383 mov di, ax ; 89 c75384 mov byte [bp-00 8h], 000h ; c6 46 f8005916 mov word [bp-00ah], ax ; 89 46 f6 5917 mov byte [bp-004h], 000h ; c6 46 fc 00 5385 5918 mov ax, strict word 0003dh ; b8 3d 00 5386 call 0165ch ; e8 bf cd 5387 mov dl, al ; 88 c2 5388 xor dh, dh ; 30 f6 5389 mov word [bp-00ch], dx ; 89 56 f4 5919 call 0165ch ; e8 0d d0 5920 movzx si, al ; 0f b6 f0 5390 5921 mov ax, strict word 00038h ; b8 38 00 5391 call 0165ch ; e8 b2 cd5922 call 0165ch ; e8 04 d0 5392 5923 and AL, strict byte 0f0h ; 24 f0 5393 mov byte [bp-00ah], al ; 88 46 f6 5394 mov byte [bp-009h], dh ; 88 76 f7 5395 mov CL, strict byte 004h ; b1 04 5396 mov ax, word [bp-00ah] ; 8b 46 f6 5397 sal ax, CL ; d3 e0 5398 or dx, ax ; 09 c2 5399 mov word [bp-00ch], dx ; 89 56 f4 5924 xor ah, ah ; 30 e4 5925 sal ax, 004h ; c1 e0 04 5926 or si, ax ; 09 c6 5400 5927 mov ax, strict word 0003ch ; b8 3c 00 5401 call 0165ch ; e8 98 cd5928 call 0165ch ; e8 f5 cf 5402 5929 and AL, strict byte 00fh ; 24 0f 5403 5930 xor ah, ah ; 30 e4 5404 mov CL, strict byte 00ch ; b1 0c 5405 sal ax, CL ; d3 e0 5406 or word [bp-00ch], ax ; 09 46 f4 5931 sal ax, 00ch ; c1 e0 0c 5932 or si, ax ; 09 c6 5407 5933 mov dx, 00339h ; ba 39 03 5408 5934 mov ax, bx ; 89 d8 5409 call 01600h ; e8 29 cd5935 call 01600h ; e8 88 cf 5410 5936 test al, al ; 84 c0 5411 je short 04 8e8h ; 74 0d5937 je short 04687h ; 74 0b 5412 5938 mov dx, 00339h ; ba 39 03 5413 5939 mov ax, bx ; 89 d8 5414 call 01600h ; e8 1d cd 5415 xor ah, ah ; 30 e4 5416 mov word [bp-00ch], ax ; 89 46 f4 5940 call 01600h ; e8 7c cf 5941 movzx si, al ; 0f b6 f0 5417 5942 cmp byte [bp+008h], 001h ; 80 7e 08 01 5418 jne short 04 8ffh ; 75 115943 jne short 0469dh ; 75 10 5419 5944 mov ax, strict word 0003ch ; b8 3c 00 5420 call 0165ch ; e8 68 cd5945 call 0165ch ; e8 c9 cf 5421 5946 and AL, strict byte 0f0h ; 24 f0 5422 5947 xor ah, ah ; 30 e4 5423 mov CL, strict byte 004h ; b1 04 5424 sar ax, CL ; d3 f8 5425 call 07610h ; e8 11 2d 5948 sar ax, 004h ; c1 f8 04 5949 call 07216h ; e8 79 2b 5426 5950 cmp byte [bp+008h], 002h ; 80 7e 08 02 5427 jne short 0490ah ; 75 05 5428 mov CL, strict byte 004h ; b1 04 5429 shr word [bp-00ch], CL ; d3 6e f4 5951 jne short 046a6h ; 75 03 5952 shr si, 004h ; c1 ee 04 5430 5953 cmp byte [bp+008h], 003h ; 80 7e 08 03 5431 jne short 04918h ; 75 08 5432 mov al, byte [bp-00bh] ; 8a 46 f5 5433 xor ah, ah ; 30 e4 5434 mov word [bp-00ch], ax ; 89 46 f4 5954 jne short 046afh ; 75 03 5955 shr si, 008h ; c1 ee 08 5435 5956 cmp byte [bp+008h], 004h ; 80 7e 08 04 5436 jne short 04923h ; 75 05 5437 mov CL, strict byte 00ch ; b1 0c 5438 shr word [bp-00ch], CL ; d3 6e f4 5439 cmp word [bp-00ch], strict byte 00010h ; 83 7e f4 10 5440 jnc short 0492dh ; 73 04 5441 mov byte [bp-008h], 001h ; c6 46 f8 01 5957 jne short 046b8h ; 75 03 5958 shr si, 00ch ; c1 ee 0c 5959 cmp si, strict byte 00010h ; 83 fe 10 5960 jnc short 046c1h ; 73 04 5961 mov byte [bp-004h], 001h ; c6 46 fc 01 5442 5962 xor al, al ; 30 c0 5443 5963 mov byte [bp-002h], al ; 88 46 fe 5444 mov byte [bp-004h], al ; 88 46 fc5445 5964 mov byte [bp-006h], al ; 88 46 fa 5446 mov bx, 00c16h ; bb 16 0c 5965 mov byte [bp-008h], al ; 88 46 f8 5966 mov bx, 00c08h ; bb 08 0c 5447 5967 mov cx, ds ; 8c d9 5448 5968 mov ax, strict word 00004h ; b8 04 00 5449 call 018bdh ; e8 7a cf 5450 push word [bp-00ch] ; ff 76 f4 5451 mov al, byte [bp+008h] ; 8a 46 08 5452 xor ah, ah ; 30 e4 5969 call 018aeh ; e8 d7 d1 5970 push si ; 56 5971 movzx ax, byte [bp+008h] ; 0f b6 46 08 5453 5972 push ax ; 50 5454 mov ax, 004aah ; b8 aa 04 5455 push ax ; 50 5456 mov ax, strict word 00004h ; b8 04 00 5457 push ax ; 50 5458 call 018fah ; e8 a3 cf 5973 push 004aah ; 68 aa 04 5974 push strict byte 00004h ; 6a 04 5975 call 018e9h ; e8 04 d2 5459 5976 add sp, strict byte 00008h ; 83 c4 08 5460 mov ax, word [bp-00ch] ; 8b 46 f4 5461 and ax, strict word 0000fh ; 25 0f 00 5462 cmp ax, strict word 00002h ; 3d 02 00 5463 jc short 04973h ; 72 0e 5464 jbe short 04982h ; 76 1b 5465 cmp ax, strict word 00004h ; 3d 04 00 5466 je short 0499fh ; 74 33 5467 cmp ax, strict word 00003h ; 3d 03 00 5468 je short 04995h ; 74 24 5469 jmp short 049ceh ; eb 5b 5470 cmp ax, strict word 00001h ; 3d 01 00 5471 jne short 049ceh ; 75 56 5977 and si, strict byte 0000fh ; 83 e6 0f 5978 cmp si, strict byte 00002h ; 83 fe 02 5979 jc short 046feh ; 72 0e 5980 jbe short 0470dh ; 76 1b 5981 cmp si, strict byte 00004h ; 83 fe 04 5982 je short 0472bh ; 74 34 5983 cmp si, strict byte 00003h ; 83 fe 03 5984 je short 04721h ; 74 25 5985 jmp short 04758h ; eb 5a 5986 cmp si, strict byte 00001h ; 83 fe 01 5987 jne short 04758h ; 75 55 5472 5988 xor al, al ; 30 c0 5473 5989 mov byte [bp-002h], al ; 88 46 fe 5474 mov byte [bp-00 4h], al ; 88 46 fc5475 jmp short 04 9e2h ; eb 605990 mov byte [bp-006h], al ; 88 46 fa 5991 jmp short 04770h ; eb 63 5476 5992 mov dx, 00338h ; ba 38 03 5477 mov ax, di ; 89 f85478 call 01600h ; e8 76 cc5993 mov ax, word [bp-00ah] ; 8b 46 f6 5994 call 01600h ; e8 ea ce 5479 5995 add AL, strict byte 080h ; 04 80 5480 5996 mov byte [bp-002h], al ; 88 46 fe 5481 mov byte [bp-00 4h], 000h ; c6 46 fc005482 jmp short 04 9e2h ; eb 4d5997 mov byte [bp-006h], 000h ; c6 46 fa 00 5998 jmp short 04770h ; eb 4f 5483 5999 mov byte [bp-002h], 000h ; c6 46 fe 00 5484 mov byte [bp-004h], 001h ; c6 46 fc 015485 jmp short 049a9h ; eb 0a5486 6000 mov byte [bp-006h], 001h ; c6 46 fa 01 5487 cmp byte [bp-004h], 000h ; 80 7e fc 00 5488 je short 049e2h ; 74 39 5489 call 038fah ; e8 4e ef 6001 jmp short 04735h ; eb 0a 6002 mov byte [bp-008h], 001h ; c6 46 f8 01 6003 cmp byte [bp-006h], 000h ; 80 7e fa 00 6004 je short 04770h ; 74 3b 6005 call 0377ah ; e8 42 f0 5490 6006 mov bx, ax ; 89 c3 5491 6007 test AL, strict byte 0ffh ; a8 ff 5492 je short 049d5h ; 74 23 5493 call 04857h ; e8 a2 fe 5494 mov al, byte [bp-008h] ; 8a 46 f8 5495 xor ah, ah ; 30 e4 6008 je short 0475fh ; 74 21 6009 call 0460dh ; e8 cc fe 6010 movzx ax, byte [bp-004h] ; 0f b6 46 fc 5496 6011 push ax ; 50 5497 mov bl, byte [bp-002h] ; 8a 5e fe 5498 xor bh, bh ; 30 ff 5499 mov dl, byte [bp-006h] ; 8a 56 fa 5500 xor dh, dh ; 30 f6 5501 mov al, byte [bp-004h] ; 8a 46 fc 6012 movzx bx, byte [bp-002h] ; 0f b6 5e fe 6013 movzx dx, byte [bp-008h] ; 0f b6 56 f8 6014 movzx ax, byte [bp-006h] ; 0f b6 46 fa 5502 6015 mov cx, strict word 00001h ; b9 01 00 5503 call 04 7bbh ; e8 ed fd6016 call 0457dh ; e8 25 fe 5504 6017 xor ax, ax ; 31 c0 5505 6018 xor dx, dx ; 31 d2 5506 jmp near 04 b0eh ; e9 39016019 jmp near 0487eh ; e9 1f 01 5507 6020 mov dx, 0032eh ; ba 2e 03 5508 mov ax, di ; 89 f8 5509 call 0161ch ; e8 3f cc 5510 mov si, ax ; 89 c6 5511 mov byte [bp-002h], bh ; 88 7e fe 5512 cmp byte [bp-006h], 001h ; 80 7e fa 01 5513 jne short 04a3dh ; 75 55 6021 mov ax, word [bp-00ah] ; 8b 46 f6 6022 call 0161ch ; e8 b4 ce 6023 mov di, ax ; 89 c7 6024 shr bx, 008h ; c1 eb 08 6025 mov byte [bp-002h], bl ; 88 5e fe 6026 cmp byte [bp-008h], 001h ; 80 7e f8 01 6027 jne near 047ech ; 0f 85 74 00 5514 6028 xor si, si ; 31 f6 5515 6029 mov ax, 0e200h ; b8 00 e2 5516 6030 mov es, ax ; 8e c0 5517 6031 cmp word [es:si], 0aa55h ; 26 81 3c 55 aa 5518 jne short 04 9b5h ; 75 bf6032 jne short 04741h ; 75 bb 5519 6033 mov cx, ax ; 89 c1 5520 6034 mov si, word [es:si+01ah] ; 26 8b 74 1a 5521 6035 cmp word [es:si+002h], 0506eh ; 26 81 7c 02 6e 50 5522 jne short 04 9b5h ; 75 b16036 jne short 04741h ; 75 ad 5523 6037 cmp word [es:si], 05024h ; 26 81 3c 24 50 5524 jne short 04 9b5h ; 75 aa5525 mov bx, word [es:si+00eh] ; 26 8b 5c 0e5526 mov dx, word [es: bx] ; 26 8b 175527 mov ax, word [es: bx+002h] ; 26 8b 47026038 jne short 04741h ; 75 a6 6039 mov di, word [es:si+00eh] ; 26 8b 7c 0e 6040 mov dx, word [es:di] ; 26 8b 15 6041 mov ax, word [es:di+002h] ; 26 8b 45 02 5528 6042 cmp ax, 06568h ; 3d 68 65 5529 jne short 04 a3fh ; 75 246043 jne short 047cah ; 75 1f 5530 6044 cmp dx, 07445h ; 81 fa 45 74 5531 jne short 04a3fh ; 75 1e 5532 mov bl, byte [bp-002h] ; 8a 5e fe 5533 xor bh, bh ; 30 ff 5534 mov dl, byte [bp-006h] ; 8a 56 fa 5535 xor dh, dh ; 30 f6 5536 mov al, byte [bp-004h] ; 8a 46 fc 5537 xor ah, ah ; 30 e4 5538 call 0476dh ; e8 3a fd 5539 mov word [bp-010h], strict word 00006h ; c7 46 f0 06 00 5540 mov word [bp-00eh], cx ; 89 4e f2 5541 jmp short 04a6ch ; eb 2f 5542 jmp short 04a71h ; eb 32 5543 cmp ax, 06574h ; 3d 74 65 5544 je short 04a47h ; 74 03 5545 jmp near 049b5h ; e9 6e ff 5546 cmp dx, 06e49h ; 81 fa 49 6e 5547 jne short 04a44h ; 75 f7 5548 mov bl, byte [bp-002h] ; 8a 5e fe 5549 xor bh, bh ; 30 ff 5550 mov dl, byte [bp-006h] ; 8a 56 fa 5551 xor dh, dh ; 30 f6 5552 mov al, byte [bp-004h] ; 8a 46 fc 5553 xor ah, ah ; 30 e4 5554 call 0476dh ; e8 0e fd 6045 jne short 047cah ; 75 19 6046 movzx bx, byte [bp-002h] ; 0f b6 5e fe 6047 movzx dx, byte [bp-008h] ; 0f b6 56 f8 6048 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6049 call 04535h ; e8 75 fd 6050 mov word [bp-00eh], strict word 00006h ; c7 46 f2 06 00 6051 mov word [bp-00ch], cx ; 89 4e f4 6052 jmp short 047e6h ; eb 1c 6053 movzx bx, byte [bp-002h] ; 0f b6 5e fe 6054 movzx dx, byte [bp-008h] ; 0f b6 56 f8 6055 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6056 call 04535h ; e8 5c fd 5555 6057 sti ; fb 5556 mov word [bp-00 eh], cx ; 89 4e f26058 mov word [bp-00ch], cx ; 89 4e f4 5557 6059 mov es, cx ; 8e c1 5558 6060 mov ax, word [es:si+01ah] ; 26 8b 44 1a 5559 mov word [bp-010h], ax ; 89 46 f0 5560 call far [bp-010h] ; ff 5e f0 5561 jmp short 04a44h ; eb d3 5562 cmp byte [bp-004h], 000h ; 80 7e fc 00 5563 jne short 04a9bh ; 75 24 6061 mov word [bp-00eh], ax ; 89 46 f2 6062 call far [bp-00eh] ; ff 5e f2 6063 jmp near 04741h ; e9 55 ff 5564 6064 cmp byte [bp-006h], 000h ; 80 7e fa 00 5565 jne short 04a9bh ; 75 1e 5566 mov si, 007c0h ; be c0 07 5567 mov es, si ; 8e c6 6065 jne short 04818h ; 75 26 6066 cmp byte [bp-008h], 000h ; 80 7e f8 00 6067 jne short 04818h ; 75 20 6068 mov di, 007c0h ; bf c0 07 6069 mov es, di ; 8e c7 5568 6070 mov dl, byte [bp-002h] ; 8a 56 fe 5569 6071 mov ax, 00201h ; b8 01 02 … … 5576 6078 sbb ax, strict byte 00000h ; 83 d8 00 5577 6079 test ax, ax ; 85 c0 5578 jne short 04a44h ; 75 a96080 jne near 04741h ; 0f 85 29 ff 5579 6081 cmp byte [bp-002h], 000h ; 80 7e fe 00 5580 je short 04aa5h ; 74 04 5581 xor bl, bl ; 30 db 5582 jmp short 04aa7h ; eb 02 5583 mov BL, strict byte 001h ; b3 01 5584 cmp byte [bp-004h], 000h ; 80 7e fc 00 5585 je short 04aafh ; 74 02 5586 mov BL, strict byte 001h ; b3 01 6082 db 00fh, 094h, 0c1h 6083 ; sete cl ; 0f 94 c1 6084 cmp byte [bp-006h], 000h ; 80 7e fa 00 6085 je short 04827h ; 74 02 6086 mov CL, strict byte 001h ; b1 01 5587 6087 xor dx, dx ; 31 d2 5588 mov ax, si ; 89 f05589 call 0161ch ; e8 66 cb5590 mov di, ax ; 89 c76088 mov ax, di ; 89 f8 6089 call 0161ch ; e8 ee cd 6090 mov bx, ax ; 89 c3 5591 6091 mov dx, strict word 00002h ; ba 02 00 5592 mov ax, si ; 89 f05593 call 0161ch ; e8 5c cb5594 cmp di, ax ; 39 c75595 je short 04 ad5h ; 74 115596 test bl, bl ; 84 db5597 jne short 04 aedh ; 75 256092 mov ax, di ; 89 f8 6093 call 0161ch ; e8 e4 cd 6094 cmp bx, ax ; 39 c3 6095 je short 0484dh ; 74 11 6096 test cl, cl ; 84 c9 6097 jne short 04863h ; 75 23 5598 6098 mov dx, 001feh ; ba fe 01 5599 mov ax, si ; 89 f05600 call 0161ch ; e8 4c cb6099 mov ax, di ; 89 f8 6100 call 0161ch ; e8 d4 cd 5601 6101 cmp ax, 0aa55h ; 3d 55 aa 5602 je short 04aedh ; 74 18 5603 mov al, byte [bp-008h] ; 8a 46 f8 5604 xor ah, ah ; 30 e4 6102 je short 04863h ; 74 16 6103 movzx ax, byte [bp-004h] ; 0f b6 46 fc 5605 6104 push ax ; 50 5606 mov bl, byte [bp-002h] ; 8a 5e fe 5607 xor bh, bh ; 30 ff 5608 mov dl, byte [bp-006h] ; 8a 56 fa 5609 xor dh, dh ; 30 f6 5610 mov al, byte [bp-004h] ; 8a 46 fc 6105 movzx bx, byte [bp-002h] ; 0f b6 5e fe 6106 movzx dx, byte [bp-008h] ; 0f b6 56 f8 6107 movzx ax, byte [bp-006h] ; 0f b6 46 fa 5611 6108 xor cx, cx ; 31 c9 5612 jmp near 049cbh ; e9 de fe 5613 mov bl, byte [bp-002h] ; 8a 5e fe 5614 xor bh, bh ; 30 ff 5615 mov dl, byte [bp-006h] ; 8a 56 fa 5616 xor dh, dh ; 30 f6 5617 mov al, byte [bp-004h] ; 8a 46 fc 5618 xor ah, ah ; 30 e4 5619 call 0476dh ; e8 6e fc 5620 mov al, byte [bp-002h] ; 8a 46 fe 5621 xor ah, ah ; 30 e4 5622 mov bx, ax ; 89 c3 6109 jmp near 04755h ; e9 f2 fe 6110 movzx bx, byte [bp-002h] ; 0f b6 5e fe 6111 movzx dx, byte [bp-008h] ; 0f b6 56 f8 6112 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6113 call 04535h ; e8 c3 fc 6114 movzx bx, byte [bp-002h] ; 0f b6 5e fe 5623 6115 xor dx, dx ; 31 d2 5624 xor a l, al ; 30c05625 add ax, si ; 01 f06116 xor ax, ax ; 31 c0 6117 add ax, di ; 01 f8 5626 6118 adc dx, bx ; 11 da 5627 mov sp, bp ; 89 ec 5628 pop bp ; 5d 6119 leave ; c9 5629 6120 pop di ; 5f 5630 6121 pop si ; 5e 5631 6122 retn ; c3 5632 keyboard_panic_: ; 0xf4 b14 LB 0x146123 keyboard_panic_: ; 0xf4882 LB 0x11 5633 6124 push bp ; 55 5634 6125 mov bp, sp ; 89 e5 5635 6126 push ax ; 50 5636 mov ax, 004cah ; b8 ca 04 5637 push ax ; 50 5638 mov ax, strict word 00007h ; b8 07 00 5639 push ax ; 50 5640 call 018fah ; e8 d7 cd 6127 push 004cah ; 68 ca 04 6128 push strict byte 00007h ; 6a 07 6129 call 018e9h ; e8 5b d0 5641 6130 add sp, strict byte 00006h ; 83 c4 06 5642 6131 pop bp ; 5d 5643 6132 retn ; c3 5644 _keyboard_init: ; 0xf4 b28LB 0x27a6133 _keyboard_init: ; 0xf4893 LB 0x27a 5645 6134 push bp ; 55 5646 6135 mov bp, sp ; 89 e5 … … 5654 6143 ; sub ah, ah ; 2a e4 5655 6144 test AL, strict byte 002h ; a8 02 5656 je short 04 b4bh ; 74 0d6145 je short 048b6h ; 74 0d 5657 6146 dec bx ; 4b 5658 6147 test bx, bx ; 85 db 5659 jbe short 04 b4bh ; 76 086148 jbe short 048b6h ; 76 08 5660 6149 xor al, al ; 30 c0 5661 6150 mov dx, 00080h ; ba 80 00 5662 6151 out DX, AL ; ee 5663 jmp short 04 b34h ; eb e96152 jmp short 0489fh ; eb e9 5664 6153 test bx, bx ; 85 db 5665 jne short 04 b54h ; 75 056154 jne short 048bfh ; 75 05 5666 6155 xor ax, ax ; 31 c0 5667 call 04 b14h ; e8 c0ff6156 call 04882h ; e8 c3 ff 5668 6157 mov bx, strict word 0ffffh ; bb ff ff 5669 6158 mov dx, strict word 00064h ; ba 64 00 … … 5672 6161 ; sub ah, ah ; 2a e4 5673 6162 test AL, strict byte 001h ; a8 01 5674 jne short 04 b6eh ; 75 0d6163 jne short 048d9h ; 75 0d 5675 6164 dec bx ; 4b 5676 6165 test bx, bx ; 85 db 5677 jbe short 04 b6eh ; 76 086166 jbe short 048d9h ; 76 08 5678 6167 mov AL, strict byte 001h ; b0 01 5679 6168 mov dx, 00080h ; ba 80 00 5680 6169 out DX, AL ; ee 5681 jmp short 04 b57h ; eb e96170 jmp short 048c2h ; eb e9 5682 6171 test bx, bx ; 85 db 5683 jne short 04 b78h ; 75 066172 jne short 048e3h ; 75 06 5684 6173 mov ax, strict word 00001h ; b8 01 00 5685 call 04 b14h ; e8 9cff6174 call 04882h ; e8 9f ff 5686 6175 mov dx, strict word 00060h ; ba 60 00 5687 6176 in AL, DX ; ec … … 5689 6178 ; sub ah, ah ; 2a e4 5690 6179 cmp ax, strict word 00055h ; 3d 55 00 5691 je short 04 b89h ; 74 066180 je short 048f4h ; 74 06 5692 6181 mov ax, 003dfh ; b8 df 03 5693 call 04 b14h ; e8 8bff6182 call 04882h ; e8 8e ff 5694 6183 mov AL, strict byte 0abh ; b0 ab 5695 6184 mov dx, strict word 00064h ; ba 64 00 … … 5701 6190 ; sub ah, ah ; 2a e4 5702 6191 test AL, strict byte 002h ; a8 02 5703 je short 04 ba9h ; 74 0d6192 je short 04914h ; 74 0d 5704 6193 dec bx ; 4b 5705 6194 test bx, bx ; 85 db 5706 jbe short 04 ba9h ; 76 086195 jbe short 04914h ; 76 08 5707 6196 mov AL, strict byte 010h ; b0 10 5708 6197 mov dx, 00080h ; ba 80 00 5709 6198 out DX, AL ; ee 5710 jmp short 04 b92h ; eb e96199 jmp short 048fdh ; eb e9 5711 6200 test bx, bx ; 85 db 5712 jne short 04 bb3h ; 75 066201 jne short 0491eh ; 75 06 5713 6202 mov ax, strict word 0000ah ; b8 0a 00 5714 call 04 b14h ; e8 61ff6203 call 04882h ; e8 64 ff 5715 6204 mov bx, strict word 0ffffh ; bb ff ff 5716 6205 mov dx, strict word 00064h ; ba 64 00 … … 5719 6208 ; sub ah, ah ; 2a e4 5720 6209 test AL, strict byte 001h ; a8 01 5721 jne short 04 bcdh ; 75 0d6210 jne short 04938h ; 75 0d 5722 6211 dec bx ; 4b 5723 6212 test bx, bx ; 85 db 5724 jbe short 04 bcdh ; 76 086213 jbe short 04938h ; 76 08 5725 6214 mov AL, strict byte 011h ; b0 11 5726 6215 mov dx, 00080h ; ba 80 00 5727 6216 out DX, AL ; ee 5728 jmp short 04 bb6h ; eb e96217 jmp short 04921h ; eb e9 5729 6218 test bx, bx ; 85 db 5730 jne short 04 bd7h ; 75 066219 jne short 04942h ; 75 06 5731 6220 mov ax, strict word 0000bh ; b8 0b 00 5732 call 04 b14h ; e8 3dff6221 call 04882h ; e8 40 ff 5733 6222 mov dx, strict word 00060h ; ba 60 00 5734 6223 in AL, DX ; ec … … 5736 6225 ; sub ah, ah ; 2a e4 5737 6226 test ax, ax ; 85 c0 5738 je short 04 be7h ; 74 066227 je short 04952h ; 74 06 5739 6228 mov ax, 003e0h ; b8 e0 03 5740 call 04 b14h ; e8 2dff6229 call 04882h ; e8 30 ff 5741 6230 mov AL, strict byte 0ffh ; b0 ff 5742 6231 mov dx, strict word 00060h ; ba 60 00 … … 5748 6237 ; sub ah, ah ; 2a e4 5749 6238 test AL, strict byte 002h ; a8 02 5750 je short 04 c07h ; 74 0d6239 je short 04972h ; 74 0d 5751 6240 dec bx ; 4b 5752 6241 test bx, bx ; 85 db 5753 jbe short 04 c07h ; 76 086242 jbe short 04972h ; 76 08 5754 6243 mov AL, strict byte 020h ; b0 20 5755 6244 mov dx, 00080h ; ba 80 00 5756 6245 out DX, AL ; ee 5757 jmp short 04 bf0h ; eb e96246 jmp short 0495bh ; eb e9 5758 6247 test bx, bx ; 85 db 5759 jne short 04 c11h ; 75 066248 jne short 0497ch ; 75 06 5760 6249 mov ax, strict word 00014h ; b8 14 00 5761 call 04 b14h ; e8 03ff6250 call 04882h ; e8 06 ff 5762 6251 mov bx, strict word 0ffffh ; bb ff ff 5763 6252 mov dx, strict word 00064h ; ba 64 00 … … 5766 6255 ; sub ah, ah ; 2a e4 5767 6256 test AL, strict byte 001h ; a8 01 5768 jne short 04 c2bh ; 75 0d6257 jne short 04996h ; 75 0d 5769 6258 dec bx ; 4b 5770 6259 test bx, bx ; 85 db 5771 jbe short 04 c2bh ; 76 086260 jbe short 04996h ; 76 08 5772 6261 mov AL, strict byte 021h ; b0 21 5773 6262 mov dx, 00080h ; ba 80 00 5774 6263 out DX, AL ; ee 5775 jmp short 04 c14h ; eb e96264 jmp short 0497fh ; eb e9 5776 6265 test bx, bx ; 85 db 5777 jne short 04 c35h ; 75 066266 jne short 049a0h ; 75 06 5778 6267 mov ax, strict word 00015h ; b8 15 00 5779 call 04 b14h ; e8 dffe6268 call 04882h ; e8 e2 fe 5780 6269 mov dx, strict word 00060h ; ba 60 00 5781 6270 in AL, DX ; ec … … 5783 6272 ; sub ah, ah ; 2a e4 5784 6273 cmp ax, 000fah ; 3d fa 00 5785 je short 04 c46h ; 74 066274 je short 049b1h ; 74 06 5786 6275 mov ax, 003e1h ; b8 e1 03 5787 call 04 b14h ; e8 cefe6276 call 04882h ; e8 d1 fe 5788 6277 mov bx, strict word 0ffffh ; bb ff ff 5789 6278 mov dx, strict word 00064h ; ba 64 00 … … 5792 6281 ; sub ah, ah ; 2a e4 5793 6282 test AL, strict byte 001h ; a8 01 5794 jne short 04 c60h ; 75 0d6283 jne short 049cbh ; 75 0d 5795 6284 dec bx ; 4b 5796 6285 test bx, bx ; 85 db 5797 jbe short 04 c60h ; 76 086286 jbe short 049cbh ; 76 08 5798 6287 mov AL, strict byte 031h ; b0 31 5799 6288 mov dx, 00080h ; ba 80 00 5800 6289 out DX, AL ; ee 5801 jmp short 04 c49h ; eb e96290 jmp short 049b4h ; eb e9 5802 6291 test bx, bx ; 85 db 5803 jne short 04 c6ah ; 75 066292 jne short 049d5h ; 75 06 5804 6293 mov ax, strict word 0001fh ; b8 1f 00 5805 call 04 b14h ; e8 aafe6294 call 04882h ; e8 ad fe 5806 6295 mov dx, strict word 00060h ; ba 60 00 5807 6296 in AL, DX ; ec … … 5809 6298 ; sub ah, ah ; 2a e4 5810 6299 cmp ax, 000aah ; 3d aa 00 5811 je short 04 c83h ; 74 0e6300 je short 049eeh ; 74 0e 5812 6301 in AL, DX ; ec 5813 6302 db 02ah, 0e4h 5814 6303 ; sub ah, ah ; 2a e4 5815 6304 cmp ax, 000aah ; 3d aa 00 5816 je short 04 c83h ; 74 066305 je short 049eeh ; 74 06 5817 6306 mov ax, 003e2h ; b8 e2 03 5818 call 04 b14h ; e8 91fe6307 call 04882h ; e8 94 fe 5819 6308 mov AL, strict byte 0f5h ; b0 f5 5820 6309 mov dx, strict word 00060h ; ba 60 00 … … 5826 6315 ; sub ah, ah ; 2a e4 5827 6316 test AL, strict byte 002h ; a8 02 5828 je short 04 ca3h ; 74 0d6317 je short 04a0eh ; 74 0d 5829 6318 dec bx ; 4b 5830 6319 test bx, bx ; 85 db 5831 jbe short 04 ca3h ; 76 086320 jbe short 04a0eh ; 76 08 5832 6321 mov AL, strict byte 040h ; b0 40 5833 6322 mov dx, 00080h ; ba 80 00 5834 6323 out DX, AL ; ee 5835 jmp short 04 c8ch ; eb e96324 jmp short 049f7h ; eb e9 5836 6325 test bx, bx ; 85 db 5837 jne short 04 cadh ; 75 066326 jne short 04a18h ; 75 06 5838 6327 mov ax, strict word 00028h ; b8 28 00 5839 call 04 b14h ; e8 67fe6328 call 04882h ; e8 6a fe 5840 6329 mov bx, strict word 0ffffh ; bb ff ff 5841 6330 mov dx, strict word 00064h ; ba 64 00 … … 5844 6333 ; sub ah, ah ; 2a e4 5845 6334 test AL, strict byte 001h ; a8 01 5846 jne short 04 cc7h ; 75 0d6335 jne short 04a32h ; 75 0d 5847 6336 dec bx ; 4b 5848 6337 test bx, bx ; 85 db 5849 jbe short 04 cc7h ; 76 086338 jbe short 04a32h ; 76 08 5850 6339 mov AL, strict byte 041h ; b0 41 5851 6340 mov dx, 00080h ; ba 80 00 5852 6341 out DX, AL ; ee 5853 jmp short 04 cb0h ; eb e96342 jmp short 04a1bh ; eb e9 5854 6343 test bx, bx ; 85 db 5855 jne short 04 cd1h ; 75 066344 jne short 04a3ch ; 75 06 5856 6345 mov ax, strict word 00029h ; b8 29 00 5857 call 04 b14h ; e8 43fe6346 call 04882h ; e8 46 fe 5858 6347 mov dx, strict word 00060h ; ba 60 00 5859 6348 in AL, DX ; ec … … 5861 6350 ; sub ah, ah ; 2a e4 5862 6351 cmp ax, 000fah ; 3d fa 00 5863 je short 04 ce2h ; 74 066352 je short 04a4dh ; 74 06 5864 6353 mov ax, 003e3h ; b8 e3 03 5865 call 04 b14h ; e8 32fe6354 call 04882h ; e8 35 fe 5866 6355 mov AL, strict byte 060h ; b0 60 5867 6356 mov dx, strict word 00064h ; ba 64 00 … … 5873 6362 ; sub ah, ah ; 2a e4 5874 6363 test AL, strict byte 002h ; a8 02 5875 je short 04 d02h ; 74 0d6364 je short 04a6dh ; 74 0d 5876 6365 dec bx ; 4b 5877 6366 test bx, bx ; 85 db 5878 jbe short 04 d02h ; 76 086367 jbe short 04a6dh ; 76 08 5879 6368 mov AL, strict byte 050h ; b0 50 5880 6369 mov dx, 00080h ; ba 80 00 5881 6370 out DX, AL ; ee 5882 jmp short 04 cebh ; eb e96371 jmp short 04a56h ; eb e9 5883 6372 test bx, bx ; 85 db 5884 jne short 04 d0ch ; 75 066373 jne short 04a77h ; 75 06 5885 6374 mov ax, strict word 00032h ; b8 32 00 5886 call 04 b14h ; e8 08fe6375 call 04882h ; e8 0b fe 5887 6376 mov AL, strict byte 065h ; b0 65 5888 6377 mov dx, strict word 00060h ; ba 60 00 … … 5894 6383 ; sub ah, ah ; 2a e4 5895 6384 test AL, strict byte 002h ; a8 02 5896 je short 04 d2ch ; 74 0d6385 je short 04a97h ; 74 0d 5897 6386 dec bx ; 4b 5898 6387 test bx, bx ; 85 db 5899 jbe short 04 d2ch ; 76 086388 jbe short 04a97h ; 76 08 5900 6389 mov AL, strict byte 060h ; b0 60 5901 6390 mov dx, 00080h ; ba 80 00 5902 6391 out DX, AL ; ee 5903 jmp short 04 d15h ; eb e96392 jmp short 04a80h ; eb e9 5904 6393 test bx, bx ; 85 db 5905 jne short 04 d36h ; 75 066394 jne short 04aa1h ; 75 06 5906 6395 mov ax, strict word 0003ch ; b8 3c 00 5907 call 04 b14h ; e8 defd6396 call 04882h ; e8 e1 fd 5908 6397 mov AL, strict byte 0f4h ; b0 f4 5909 6398 mov dx, strict word 00060h ; ba 60 00 … … 5915 6404 ; sub ah, ah ; 2a e4 5916 6405 test AL, strict byte 002h ; a8 02 5917 je short 04 d56h ; 74 0d6406 je short 04ac1h ; 74 0d 5918 6407 dec bx ; 4b 5919 6408 test bx, bx ; 85 db 5920 jbe short 04 d56h ; 76 086409 jbe short 04ac1h ; 76 08 5921 6410 mov AL, strict byte 070h ; b0 70 5922 6411 mov dx, 00080h ; ba 80 00 5923 6412 out DX, AL ; ee 5924 jmp short 04 d3fh ; eb e96413 jmp short 04aaah ; eb e9 5925 6414 test bx, bx ; 85 db 5926 jne short 04 d60h ; 75 066415 jne short 04acbh ; 75 06 5927 6416 mov ax, strict word 00046h ; b8 46 00 5928 call 04 b14h ; e8 b4fd6417 call 04882h ; e8 b7 fd 5929 6418 mov bx, strict word 0ffffh ; bb ff ff 5930 6419 mov dx, strict word 00064h ; ba 64 00 … … 5933 6422 ; sub ah, ah ; 2a e4 5934 6423 test AL, strict byte 001h ; a8 01 5935 jne short 04 d7ah ; 75 0d6424 jne short 04ae5h ; 75 0d 5936 6425 dec bx ; 4b 5937 6426 test bx, bx ; 85 db 5938 jbe short 04 d7ah ; 76 086427 jbe short 04ae5h ; 76 08 5939 6428 mov AL, strict byte 071h ; b0 71 5940 6429 mov dx, 00080h ; ba 80 00 5941 6430 out DX, AL ; ee 5942 jmp short 04 d63h ; eb e96431 jmp short 04aceh ; eb e9 5943 6432 test bx, bx ; 85 db 5944 jne short 04 d84h ; 75 066433 jne short 04aefh ; 75 06 5945 6434 mov ax, strict word 00046h ; b8 46 00 5946 call 04 b14h ; e8 90fd6435 call 04882h ; e8 93 fd 5947 6436 mov dx, strict word 00060h ; ba 60 00 5948 6437 in AL, DX ; ec … … 5950 6439 ; sub ah, ah ; 2a e4 5951 6440 cmp ax, 000fah ; 3d fa 00 5952 je short 04 d95h ; 74 066441 je short 04b00h ; 74 06 5953 6442 mov ax, 003e4h ; b8 e4 03 5954 call 04 b14h ; e8 7ffd6443 call 04882h ; e8 82 fd 5955 6444 mov AL, strict byte 0a8h ; b0 a8 5956 6445 mov dx, strict word 00064h ; ba 64 00 5957 6446 out DX, AL ; ee 5958 6447 xor ax, ax ; 31 c0 5959 call 0 6040h ; e8 a0 126448 call 05cf1h ; e8 e6 11 5960 6449 pop bp ; 5d 5961 6450 retn ; c3 5962 enqueue_key_: ; 0xf4 da2 LB 0x976451 enqueue_key_: ; 0xf4b0d LB 0x90 5963 6452 push bx ; 53 5964 6453 push cx ; 51 5965 6454 push si ; 56 5966 6455 push di ; 57 5967 push bp ; 55 5968 mov bp, sp ; 89 e5 5969 push ax ; 50 6456 enter 00002h, 000h ; c8 02 00 00 5970 6457 mov byte [bp-002h], al ; 88 46 fe 5971 6458 mov bl, dl ; 88 d3 5972 6459 mov dx, strict word 0001ah ; ba 1a 00 5973 6460 mov ax, strict word 00040h ; b8 40 00 5974 call 0161ch ; e8 64 c86461 call 0161ch ; e8 f9 ca 5975 6462 mov di, ax ; 89 c7 5976 6463 mov dx, strict word 0001ch ; ba 1c 00 5977 6464 mov ax, strict word 00040h ; b8 40 00 5978 call 0161ch ; e8 59 c86465 call 0161ch ; e8 ee ca 5979 6466 mov si, ax ; 89 c6 5980 6467 lea cx, [si+002h] ; 8d 4c 02 5981 6468 cmp cx, strict byte 0003eh ; 83 f9 3e 5982 jc short 04 dd0h ; 72 036469 jc short 04b3bh ; 72 03 5983 6470 mov cx, strict word 0001eh ; b9 1e 00 5984 6471 cmp cx, di ; 39 f9 5985 jne short 04 dd8h ; 75 046472 jne short 04b43h ; 75 04 5986 6473 xor ax, ax ; 31 c0 5987 jmp short 04e02h ; eb 2a 5988 mov al, bl ; 88 d8 5989 xor ah, ah ; 30 e4 5990 mov bx, ax ; 89 c3 6474 jmp short 04b68h ; eb 25 6475 xor bh, bh ; 30 ff 5991 6476 mov dx, si ; 89 f2 5992 6477 mov ax, strict word 00040h ; b8 40 00 5993 call 0160eh ; e8 28 c8 5994 mov bl, byte [bp-002h] ; 8a 5e fe 5995 xor bh, bh ; 30 ff 6478 call 0160eh ; e8 c1 ca 6479 movzx bx, byte [bp-002h] ; 0f b6 5e fe 5996 6480 lea dx, [si+001h] ; 8d 54 01 5997 6481 mov ax, strict word 00040h ; b8 40 00 5998 call 0160eh ; e8 1a c86482 call 0160eh ; e8 b4 ca 5999 6483 mov bx, cx ; 89 cb 6000 6484 mov dx, strict word 0001ch ; ba 1c 00 6001 6485 mov ax, strict word 00040h ; b8 40 00 6002 call 0162ah ; e8 2b c86486 call 0162ah ; e8 c5 ca 6003 6487 mov ax, strict word 00001h ; b8 01 00 6004 mov sp, bp ; 89 ec 6005 pop bp ; 5d 6488 leave ; c9 6006 6489 pop di ; 5f 6007 6490 pop si ; 5e … … 6018 6501 cmp bh, byte [bx+si] ; 3a 38 6019 6502 sub bl, byte [ss:di] ; 36 2a 1d 6020 jnle short 04e6bh ; 7f 50 6021 pop ES ; 07 6022 dec di ; 4f 6023 aam 04eh ; d4 4e 6024 aam 04eh ; d4 4e 6025 db 08fh, 04fh, 0abh 6026 ; pop word [bx-055h] ; 8f 4f ab 6027 dec si ; 4e 6028 add dx, word [bx+si+04fh] ; 03 50 4f 6029 push ax ; 50 6030 jc short 04e7bh ; 72 50 6031 dec bx ; 4b 6032 dec di ; 4f 6033 aam 04eh ; d4 4e 6034 aam 04eh ; d4 4e 6035 leave ; c9 6036 dec di ; 4f 6037 lds cx, [bp+032h] ; c5 4e 32 6038 push ax ; 50 6039 db 06bh 6040 push ax ; 50 6041 _int09_function: ; 0xf4e39 LB 0x3a2 6503 aad 04dh ; d5 4d 6504 bound cx, [si+031h] ; 62 4c 31 6505 dec sp ; 4c 6506 xor word [si-01ch], cx ; 31 4c e4 6507 dec sp ; 4c 6508 or cl, byte [si+056h] ; 0a 4c 56 6509 dec bp ; 4d 6510 movsw ; a5 6511 dec bp ; 4d 6512 enter 0a34dh, 04ch ; c8 4d a3 4c 6513 xor word [si+031h], cx ; 31 4c 31 6514 dec sp ; 4c 6515 sbb ax, 0234dh ; 1d 4d 23 6516 dec sp ; 4c 6517 xchg byte [di-03fh], cl ; 86 4d c1 6518 dec bp ; 4d 6519 _int09_function: ; 0xf4b9d LB 0x358 6042 6520 push si ; 56 6043 6521 push di ; 57 6044 push bp ; 55 6045 mov bp, sp ; 89 e5 6046 sub sp, strict byte 0000eh ; 83 ec 0e 6522 enter 0000ch, 000h ; c8 0c 00 00 6047 6523 mov al, byte [bp+018h] ; 8a 46 18 6048 mov byte [bp-00 ah], al ; 88 46 f66524 mov byte [bp-006h], al ; 88 46 fa 6049 6525 test al, al ; 84 c0 6050 jne short 04 e67h ; 75 1c6051 mov bx, 00c 16h ; bb 160c6526 jne short 04bc6h ; 75 19 6527 mov bx, 00c08h ; bb 08 0c 6052 6528 mov cx, ds ; 8c d9 6053 6529 mov ax, strict word 00004h ; b8 04 00 6054 call 018bdh ; e8 67 ca 6055 mov ax, 004ddh ; b8 dd 04 6056 push ax ; 50 6057 mov ax, strict word 00004h ; b8 04 00 6058 push ax ; 50 6059 call 018fah ; e8 99 ca 6530 call 018aeh ; e8 f6 cc 6531 push 004ddh ; 68 dd 04 6532 push strict byte 00004h ; 6a 04 6533 call 018e9h ; e8 29 cd 6060 6534 add sp, strict byte 00004h ; 83 c4 04 6061 jmp near 0 51d5h ; e9 6e036535 jmp near 04ef1h ; e9 2b 03 6062 6536 mov dx, strict word 00017h ; ba 17 00 6063 6537 mov ax, strict word 00040h ; b8 40 00 6064 call 01600h ; e8 90 c76065 mov byte [bp-00 4h], al ; 88 46 fc6538 call 01600h ; e8 31 ca 6539 mov byte [bp-00ah], al ; 88 46 f6 6066 6540 mov bl, al ; 88 c3 6067 6541 mov dx, strict word 00018h ; ba 18 00 6068 6542 mov ax, strict word 00040h ; b8 40 00 6069 call 01600h ; e8 82 c7 6543 call 01600h ; e8 23 ca 6544 mov byte [bp-00ch], al ; 88 46 f4 6070 6545 mov byte [bp-008h], al ; 88 46 f8 6071 mov byte [bp-006h], al ; 88 46 fa6072 6546 mov dx, 00096h ; ba 96 00 6073 6547 mov ax, strict word 00040h ; b8 40 00 6074 call 01600h ; e8 73 c76075 mov byte [bp-00 eh], al ; 88 46 f26548 call 01600h ; e8 14 ca 6549 mov byte [bp-004h], al ; 88 46 fc 6076 6550 mov byte [bp-002h], al ; 88 46 fe 6077 mov al, byte [bp-00 ah] ; 8a 46 f66551 mov al, byte [bp-006h] ; 8a 46 fa 6078 6552 push CS ; 0e 6079 6553 pop ES ; 07 6080 6554 mov cx, strict word 00010h ; b9 10 00 6081 mov di, 04 e0ah ; bf 0a 4e6555 mov di, 04b6eh ; bf 6e 4b 6082 6556 repne scasb ; f2 ae 6083 6557 sal cx, 1 ; d1 e1 6084 6558 mov di, cx ; 89 cf 6085 mov ax, word [cs:di+04 e19h] ; 2e 8b 85 19 4e6559 mov ax, word [cs:di+04b7dh] ; 2e 8b 85 7d 4b 6086 6560 jmp ax ; ff e0 6087 6561 xor bl, 040h ; 80 f3 40 … … 6089 6563 mov dx, strict word 00017h ; ba 17 00 6090 6564 mov ax, strict word 00040h ; b8 40 00 6091 call 0160eh ; e8 55 c7 6092 or byte [bp-006h], 040h ; 80 4e fa 40 6093 mov bl, byte [bp-006h] ; 8a 5e fa 6094 xor bh, bh ; 30 ff 6095 jmp near 05044h ; e9 7f 01 6096 mov al, byte [bp-008h] ; 8a 46 f8 6565 call 0160eh ; e8 f6 c9 6566 or byte [bp-008h], 040h ; 80 4e f8 40 6567 movzx bx, byte [bp-008h] ; 0f b6 5e f8 6568 jmp near 04d99h ; e9 76 01 6569 mov al, byte [bp-00ch] ; 8a 46 f4 6097 6570 and AL, strict byte 0bfh ; 24 bf 6098 mov byte [bp-006h], al ; 88 46 fa 6099 xor ah, ah ; 30 e4 6100 mov bx, ax ; 89 c3 6101 jmp near 05044h ; e9 70 01 6571 mov byte [bp-008h], al ; 88 46 f8 6572 movzx bx, al ; 0f b6 d8 6573 jmp near 04d99h ; e9 68 01 6102 6574 test byte [bp-002h], 002h ; f6 46 fe 02 6103 jne short 04f04h ; 75 2a6104 mov al, byte [bp-00 ah] ; 8a 46 f66575 jne near 04ed3h ; 0f 85 9a 02 6576 mov al, byte [bp-006h] ; 8a 46 fa 6105 6577 and AL, strict byte 07fh ; 24 7f 6106 6578 cmp AL, strict byte 02ah ; 3c 2a 6107 jne short 04ee8h ; 75 056108 mov ax, strict word 00002h ; b8 02 006109 jmp short 04eebh ; eb 036110 mov ax, strict word 00001h ; b8 01 006111 test byte [bp-00 ah], 080h ; f6 46 f6806112 je short 04 ef7h ; 74 066579 db 00fh, 094h, 0c0h 6580 ; sete al ; 0f 94 c0 6581 xor ah, ah ; 30 e4 6582 inc ax ; 40 6583 test byte [bp-006h], 080h ; f6 46 fa 80 6584 je short 04c52h ; 74 06 6113 6585 not al ; f6 d0 6114 6586 and bl, al ; 20 c3 6115 jmp short 04 ef9h ; eb 026587 jmp short 04c54h ; eb 02 6116 6588 or bl, al ; 08 c3 6117 6589 xor bh, bh ; 30 ff 6118 6590 mov dx, strict word 00017h ; ba 17 00 6119 6591 mov ax, strict word 00040h ; b8 40 00 6120 call 0160eh ; e8 0a c7 6121 jmp near 051b4h ; e9 ad 02 6122 test byte [bp-00eh], 001h ; f6 46 f2 01 6123 jne short 04f48h ; 75 3b 6124 mov al, bl ; 88 d8 6125 or AL, strict byte 004h ; 0c 04 6126 xor ah, ah ; 30 e4 6127 mov bx, ax ; 89 c3 6592 call 0160eh ; e8 af c9 6593 jmp near 04ed3h ; e9 71 02 6594 test byte [bp-004h], 001h ; f6 46 fc 01 6595 jne near 04ed3h ; 0f 85 69 02 6596 or bl, 004h ; 80 cb 04 6597 xor bh, bh ; 30 ff 6128 6598 mov dx, strict word 00017h ; ba 17 00 6129 6599 mov ax, strict word 00040h ; b8 40 00 6130 call 0160eh ; e8 f0 c66131 mov al, byte [bp-00 eh] ; 8a 46 f26600 call 0160eh ; e8 96 c9 6601 mov al, byte [bp-004h] ; 8a 46 fc 6132 6602 test AL, strict byte 002h ; a8 02 6133 je short 04 f33h ; 74 0e6603 je short 04c8ch ; 74 0d 6134 6604 or AL, strict byte 004h ; 0c 04 6135 6605 mov byte [bp-002h], al ; 88 46 fe 6136 mov bl, al ; 88 c3 6606 movzx bx, al ; 0f b6 d8 6607 mov dx, 00096h ; ba 96 00 6608 jmp short 04c9ah ; eb 0e 6609 mov al, byte [bp-00ch] ; 8a 46 f4 6610 or AL, strict byte 001h ; 0c 01 6611 mov byte [bp-008h], al ; 88 46 f8 6612 movzx bx, al ; 0f b6 d8 6613 mov dx, strict word 00018h ; ba 18 00 6614 mov ax, strict word 00040h ; b8 40 00 6615 call 0160eh ; e8 6e c9 6616 jmp near 04ed3h ; e9 30 02 6617 test byte [bp-004h], 001h ; f6 46 fc 01 6618 jne near 04ed3h ; 0f 85 28 02 6619 and bl, 0fbh ; 80 e3 fb 6137 6620 xor bh, bh ; 30 ff 6138 mov dx, 00096h ; ba 96 006139 jmp short 04f42h ; eb 0f6140 mov al, byte [bp-008h] ; 8a 46 f86141 or AL, strict byte 001h ; 0c 016142 mov byte [bp-006h], al ; 88 46 fa6143 xor ah, ah ; 30 e46144 mov bx, ax ; 89 c36145 mov dx, strict word 00018h ; ba 18 006146 mov ax, strict word 00040h ; b8 40 006147 call 0160eh ; e8 c6 c66148 jmp near 051b4h ; e9 69 026149 test byte [bp-00eh], 001h ; f6 46 f2 016150 jne short 04f8ch ; 75 3b6151 mov al, bl ; 88 d86152 and AL, strict byte 0fbh ; 24 fb6153 xor ah, ah ; 30 e46154 mov bx, ax ; 89 c36155 6621 mov dx, strict word 00017h ; ba 17 00 6156 6622 mov ax, strict word 00040h ; b8 40 00 6157 call 0160eh ; e8 ac c66158 mov al, byte [bp-00 eh] ; 8a 46 f26623 call 0160eh ; e8 55 c9 6624 mov al, byte [bp-004h] ; 8a 46 fc 6159 6625 test AL, strict byte 002h ; a8 02 6160 je short 04 f77h ; 74 0e6626 je short 04ccdh ; 74 0d 6161 6627 and AL, strict byte 0fbh ; 24 fb 6162 6628 mov byte [bp-002h], al ; 88 46 fe 6163 xor ah, ah ; 30 e4 6164 mov bx, ax ; 89 c3 6629 movzx bx, al ; 0f b6 d8 6165 6630 mov dx, 00096h ; ba 96 00 6166 jmp short 04 f86h ; eb 0f6167 mov al, byte [bp-00 8h] ; 8a 46 f86631 jmp short 04cdbh ; eb 0e 6632 mov al, byte [bp-00ch] ; 8a 46 f4 6168 6633 and AL, strict byte 0feh ; 24 fe 6169 mov byte [bp-006h], al ; 88 46 fa 6170 xor ah, ah ; 30 e4 6171 mov bx, ax ; 89 c3 6634 mov byte [bp-008h], al ; 88 46 f8 6635 movzx bx, al ; 0f b6 d8 6172 6636 mov dx, strict word 00018h ; ba 18 00 6173 6637 mov ax, strict word 00040h ; b8 40 00 6174 call 0160eh ; e8 82 c66175 jmp near 0 51b4h ; e9 25 026638 call 0160eh ; e8 2d c9 6639 jmp near 04ed3h ; e9 ef 01 6176 6640 or bl, 008h ; 80 cb 08 6177 6641 xor bh, bh ; 30 ff 6178 6642 mov dx, strict word 00017h ; ba 17 00 6179 6643 mov ax, strict word 00040h ; b8 40 00 6180 call 0160eh ; e8 71 c66181 mov al, byte [bp-00 eh] ; 8a 46 f26644 call 0160eh ; e8 1c c9 6645 mov al, byte [bp-004h] ; 8a 46 fc 6182 6646 test AL, strict byte 002h ; a8 02 6183 je short 04 fb2h ; 74 0e6647 je short 04d06h ; 74 0d 6184 6648 or AL, strict byte 008h ; 0c 08 6185 6649 mov byte [bp-002h], al ; 88 46 fe 6186 xor ah, ah ; 30 e4 6187 mov bx, ax ; 89 c3 6650 movzx bx, al ; 0f b6 d8 6188 6651 mov dx, 00096h ; ba 96 00 6189 jmp short 04 fc1h ; eb 0f6190 mov al, byte [bp-00 8h] ; 8a 46 f86652 jmp short 04d14h ; eb 0e 6653 mov al, byte [bp-00ch] ; 8a 46 f4 6191 6654 or AL, strict byte 002h ; 0c 02 6192 mov byte [bp-006h], al ; 88 46 fa 6193 mov bl, al ; 88 c3 6194 xor bh, bh ; 30 ff 6655 mov byte [bp-008h], al ; 88 46 f8 6656 movzx bx, al ; 0f b6 d8 6195 6657 mov dx, strict word 00018h ; ba 18 00 6196 6658 mov ax, strict word 00040h ; b8 40 00 6197 call 0160eh ; e8 47 c66198 jmp short 04f8ch ; eb c36659 call 0160eh ; e8 f4 c8 6660 jmp near 04ed3h ; e9 b6 01 6199 6661 and bl, 0f7h ; 80 e3 f7 6200 6662 xor bh, bh ; 30 ff 6201 6663 mov dx, strict word 00017h ; ba 17 00 6202 6664 mov ax, strict word 00040h ; b8 40 00 6203 call 0160eh ; e8 37 c66204 mov al, byte [bp-00 eh] ; 8a 46 f26665 call 0160eh ; e8 e3 c8 6666 mov al, byte [bp-004h] ; 8a 46 fc 6205 6667 test AL, strict byte 002h ; a8 02 6206 je short 04 fech ; 74 0e6668 je short 04d3fh ; 74 0d 6207 6669 and AL, strict byte 0f7h ; 24 f7 6208 6670 mov byte [bp-002h], al ; 88 46 fe 6209 xor ah, ah ; 30 e4 6210 mov bx, ax ; 89 c3 6671 movzx bx, al ; 0f b6 d8 6211 6672 mov dx, 00096h ; ba 96 00 6212 jmp short 04 ffbh ; eb 0f6213 mov al, byte [bp-00 8h] ; 8a 46 f86673 jmp short 04d4dh ; eb 0e 6674 mov al, byte [bp-00ch] ; 8a 46 f4 6214 6675 and AL, strict byte 0fdh ; 24 fd 6215 mov byte [bp-006h], al ; 88 46 fa 6216 xor ah, ah ; 30 e4 6217 mov bx, ax ; 89 c3 6676 mov byte [bp-008h], al ; 88 46 f8 6677 movzx bx, al ; 0f b6 d8 6218 6678 mov dx, strict word 00018h ; ba 18 00 6219 6679 mov ax, strict word 00040h ; b8 40 00 6220 call 0160eh ; e8 0d c66221 jmp short 04f8ch ; eb 896222 test byte [bp-00 eh], 003h ; f6 46 f2036223 jne short 0504dh ; 75 446224 mov al, byte [bp-00 8h] ; 8a 46 f86680 call 0160eh ; e8 bb c8 6681 jmp near 04ed3h ; e9 7d 01 6682 test byte [bp-004h], 003h ; f6 46 fc 03 6683 jne near 04ed3h ; 0f 85 75 01 6684 mov al, byte [bp-00ch] ; 8a 46 f4 6225 6685 or AL, strict byte 020h ; 0c 20 6226 mov byte [bp-006h], al ; 88 46 fa 6227 xor ah, ah ; 30 e4 6228 mov bx, ax ; 89 c3 6686 mov byte [bp-008h], al ; 88 46 f8 6687 movzx bx, al ; 0f b6 d8 6229 6688 mov dx, strict word 00018h ; ba 18 00 6230 6689 mov ax, strict word 00040h ; b8 40 00 6231 call 0160eh ; e8 f0 c5 6232 mov al, byte [bp-004h] ; 8a 46 fc 6233 xor AL, strict byte 020h ; 34 20 6234 xor ah, ah ; 30 e4 6235 mov bx, ax ; 89 c3 6690 call 0160eh ; e8 9c c8 6691 mov bl, byte [bp-00ah] ; 8a 5e f6 6692 xor bl, 020h ; 80 f3 20 6693 xor bh, bh ; 30 ff 6236 6694 mov dx, strict word 00017h ; ba 17 00 6237 6695 mov ax, strict word 00040h ; b8 40 00 6238 call 0160eh ; e8 de c56239 jmp short 0504dh ; eb 1b6240 test byte [bp-00 eh], 003h ; f6 46 f2036241 jne short 05085h ; 75 4d6242 mov al, byte [bp-00 8h] ; 8a 46 f86696 call 0160eh ; e8 8b c8 6697 jmp near 04ed3h ; e9 4d 01 6698 test byte [bp-004h], 003h ; f6 46 fc 03 6699 jne near 04ed3h ; 0f 85 45 01 6700 mov al, byte [bp-00ch] ; 8a 46 f4 6243 6701 and AL, strict byte 0dfh ; 24 df 6244 mov byte [bp-006h], al ; 88 46 fa 6245 xor ah, ah ; 30 e4 6246 mov bx, ax ; 89 c3 6702 mov byte [bp-008h], al ; 88 46 f8 6703 movzx bx, al ; 0f b6 d8 6247 6704 mov dx, strict word 00018h ; ba 18 00 6248 6705 mov ax, strict word 00040h ; b8 40 00 6249 call 0160eh ; e8 c1 c56250 jmp short 05085h ; eb 366251 mov al, byte [bp-00 8h] ; 8a 46 f86706 call 0160eh ; e8 6c c8 6707 jmp near 04ed3h ; e9 2e 01 6708 mov al, byte [bp-00ch] ; 8a 46 f4 6252 6709 or AL, strict byte 010h ; 0c 10 6253 mov byte [bp-006h], al ; 88 46 fa 6254 xor ah, ah ; 30 e4 6255 mov bx, ax ; 89 c3 6710 mov byte [bp-008h], al ; 88 46 f8 6711 movzx bx, al ; 0f b6 d8 6256 6712 mov dx, strict word 00018h ; ba 18 00 6257 6713 mov ax, strict word 00040h ; b8 40 00 6258 call 0160eh ; e8 aa c56259 mov al, byte [bp-004h] ; 8a 46 fc6260 xor AL, strict byte 010h ; 34106261 jmp short 0 5023h ; eb b86262 mov al, byte [bp-00 8h] ; 8a 46 f86714 call 0160eh ; e8 55 c8 6715 mov bl, byte [bp-00ah] ; 8a 5e f6 6716 xor bl, 010h ; 80 f3 10 6717 jmp short 04d78h ; eb b7 6718 mov al, byte [bp-00ch] ; 8a 46 f4 6263 6719 and AL, strict byte 0efh ; 24 ef 6264 jmp short 0 503dh ; eb cb6720 jmp short 04d93h ; eb cb 6265 6721 mov al, bl ; 88 d8 6266 6722 and AL, strict byte 00ch ; 24 0c 6267 6723 cmp AL, strict byte 00ch ; 3c 0c 6268 jne short 0 507fh ; 75 056724 jne short 04dd5h ; 75 05 6269 6725 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 6270 test byte [bp-00ah], 080h ; f6 46 f6 80 6271 je short 05088h ; 74 03 6272 jmp near 051b4h ; e9 2c 01 6273 cmp byte [bp-00ah], 058h ; 80 7e f6 58 6274 jbe short 050b0h ; 76 22 6275 mov bx, 00c16h ; bb 16 0c 6726 test byte [bp-006h], 080h ; f6 46 fa 80 6727 jne near 04ed3h ; 0f 85 f6 00 6728 cmp byte [bp-006h], 058h ; 80 7e fa 58 6729 jbe short 04e01h ; 76 1e 6730 mov bx, 00c08h ; bb 08 0c 6276 6731 mov cx, ds ; 8c d9 6277 6732 mov ax, strict word 00004h ; b8 04 00 6278 call 018bdh ; e8 24 c8 6279 mov al, byte [bp-00ah] ; 8a 46 f6 6280 xor ah, ah ; 30 e4 6733 call 018aeh ; e8 c0 ca 6734 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6281 6735 push ax ; 50 6282 mov ax, 004f7h ; b8 f7 04 6283 push ax ; 50 6284 mov ax, strict word 00004h ; b8 04 00 6285 push ax ; 50 6286 call 018fah ; e8 50 c8 6736 push 004f7h ; 68 f7 04 6737 push strict byte 00004h ; 6a 04 6738 call 018e9h ; e8 ee ca 6287 6739 add sp, strict byte 00006h ; 83 c4 06 6288 jmp near 0 51d5h ; e9 25 016740 jmp near 04ef1h ; e9 f0 00 6289 6741 test bl, 008h ; f6 c3 08 6290 je short 050cfh ; 74 1a 6291 mov al, byte [bp-00ah] ; 8a 46 f6 6292 xor ah, ah ; 30 e4 6293 mov dx, strict word 0000ah ; ba 0a 00 6294 imul dx ; f7 ea 6295 mov si, ax ; 89 c6 6296 mov al, byte [si+00c6ah] ; 8a 84 6a 0c 6297 mov byte [bp-00ch], al ; 88 46 f4 6298 mov al, byte [si+00c6bh] ; 8a 84 6b 0c 6299 jmp near 0517fh ; e9 b0 00 6742 je short 04e18h ; 74 12 6743 movzx si, byte [bp-006h] ; 0f b6 76 fa 6744 imul si, si, strict byte 0000ah ; 6b f6 0a 6745 mov dl, byte [si+00c5ch] ; 8a 94 5c 0c 6746 mov ax, word [si+00c5ch] ; 8b 84 5c 0c 6747 jmp near 04ea4h ; e9 8c 00 6300 6748 test bl, 004h ; f6 c3 04 6301 je short 050eeh ; 74 1a 6302 mov al, byte [bp-00ah] ; 8a 46 f6 6303 xor ah, ah ; 30 e4 6304 mov dx, strict word 0000ah ; ba 0a 00 6305 imul dx ; f7 ea 6306 mov si, ax ; 89 c6 6307 mov al, byte [si+00c68h] ; 8a 84 68 0c 6308 mov byte [bp-00ch], al ; 88 46 f4 6309 mov al, byte [si+00c69h] ; 8a 84 69 0c 6310 jmp near 0517fh ; e9 91 00 6749 je short 04e2fh ; 74 12 6750 movzx si, byte [bp-006h] ; 0f b6 76 fa 6751 imul si, si, strict byte 0000ah ; 6b f6 0a 6752 mov dl, byte [si+00c5ah] ; 8a 94 5a 0c 6753 mov ax, word [si+00c5ah] ; 8b 84 5a 0c 6754 jmp near 04ea4h ; e9 75 00 6311 6755 mov al, byte [bp-002h] ; 8a 46 fe 6312 6756 and AL, strict byte 002h ; 24 02 6313 6757 test al, al ; 84 c0 6314 jbe short 0 5111h ; 76 1a6315 mov al, byte [bp-00 ah] ; 8a 46 f66758 jbe short 04e4dh ; 76 15 6759 mov al, byte [bp-006h] ; 8a 46 fa 6316 6760 cmp AL, strict byte 047h ; 3c 47 6317 jc short 0 5111h ; 72 136761 jc short 04e4dh ; 72 0e 6318 6762 cmp AL, strict byte 053h ; 3c 53 6319 jnbe short 05111h ; 77 0f 6320 mov byte [bp-00ch], 0e0h ; c6 46 f4 e0 6321 xor ah, ah ; 30 e4 6322 mov dx, strict word 0000ah ; ba 0a 00 6323 imul dx ; f7 ea 6324 mov si, ax ; 89 c6 6325 jmp short 0517bh ; eb 6a 6763 jnbe short 04e4dh ; 77 0a 6764 mov DL, strict byte 0e0h ; b2 e0 6765 movzx si, al ; 0f b6 f0 6766 imul si, si, strict byte 0000ah ; 6b f6 0a 6767 jmp short 04ea0h ; eb 53 6326 6768 test bl, 003h ; f6 c3 03 6327 je short 0514dh ; 74 37 6328 mov al, byte [bp-00ah] ; 8a 46 f6 6329 xor ah, ah ; 30 e4 6330 mov dx, strict word 0000ah ; ba 0a 00 6331 imul dx ; f7 ea 6332 mov si, ax ; 89 c6 6333 mov al, byte [si+00c6ch] ; 8a 84 6c 0c 6334 xor ah, ah ; 30 e4 6335 mov dx, ax ; 89 c2 6336 mov al, bl ; 88 d8 6337 test ax, dx ; 85 d0 6338 je short 0513dh ; 74 0d 6339 mov al, byte [si+00c64h] ; 8a 84 64 0c 6340 mov byte [bp-00ch], al ; 88 46 f4 6341 mov al, byte [si+00c65h] ; 8a 84 65 0c 6342 jmp short 05148h ; eb 0b 6343 mov al, byte [si+00c66h] ; 8a 84 66 0c 6344 mov byte [bp-00ch], al ; 88 46 f4 6345 mov al, byte [si+00c67h] ; 8a 84 67 0c 6346 mov byte [bp-00ah], al ; 88 46 f6 6347 jmp short 05182h ; eb 35 6348 mov al, byte [bp-00ah] ; 8a 46 f6 6349 xor ah, ah ; 30 e4 6350 mov dx, strict word 0000ah ; ba 0a 00 6351 imul dx ; f7 ea 6352 mov si, ax ; 89 c6 6353 mov al, byte [si+00c6ch] ; 8a 84 6c 0c 6354 xor ah, ah ; 30 e4 6355 mov dx, ax ; 89 c2 6356 mov al, bl ; 88 d8 6357 test ax, dx ; 85 d0 6358 je short 05174h ; 74 0d 6359 mov al, byte [si+00c66h] ; 8a 84 66 0c 6360 mov byte [bp-00ch], al ; 88 46 f4 6361 mov al, byte [si+00c67h] ; 8a 84 67 0c 6362 jmp short 0517fh ; eb 0b 6363 mov al, byte [si+00c64h] ; 8a 84 64 0c 6364 mov byte [bp-00ch], al ; 88 46 f4 6365 mov al, byte [si+00c65h] ; 8a 84 65 0c 6366 mov byte [bp-00ah], al ; 88 46 f6 6367 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6368 jne short 051a7h ; 75 1f 6369 cmp byte [bp-00ch], 000h ; 80 7e f4 00 6370 jne short 051a7h ; 75 19 6371 mov bx, 00c16h ; bb 16 0c 6769 je short 04e7fh ; 74 2d 6770 movzx si, byte [bp-006h] ; 0f b6 76 fa 6771 imul si, si, strict byte 0000ah ; 6b f6 0a 6772 movzx ax, byte [si+00c5eh] ; 0f b6 84 5e 0c 6773 movzx dx, bl ; 0f b6 d3 6774 test dx, ax ; 85 c2 6775 je short 04e6fh ; 74 0a 6776 mov dl, byte [si+00c56h] ; 8a 94 56 0c 6777 mov ax, word [si+00c56h] ; 8b 84 56 0c 6778 jmp short 04e77h ; eb 08 6779 mov dl, byte [si+00c58h] ; 8a 94 58 0c 6780 mov ax, word [si+00c58h] ; 8b 84 58 0c 6781 shr ax, 008h ; c1 e8 08 6782 mov byte [bp-006h], al ; 88 46 fa 6783 jmp short 04eaah ; eb 2b 6784 movzx si, byte [bp-006h] ; 0f b6 76 fa 6785 imul si, si, strict byte 0000ah ; 6b f6 0a 6786 movzx ax, byte [si+00c5eh] ; 0f b6 84 5e 0c 6787 movzx dx, bl ; 0f b6 d3 6788 test dx, ax ; 85 c2 6789 je short 04e9ch ; 74 0a 6790 mov dl, byte [si+00c58h] ; 8a 94 58 0c 6791 mov ax, word [si+00c58h] ; 8b 84 58 0c 6792 jmp short 04ea4h ; eb 08 6793 mov dl, byte [si+00c56h] ; 8a 94 56 0c 6794 mov ax, word [si+00c56h] ; 8b 84 56 0c 6795 shr ax, 008h ; c1 e8 08 6796 mov byte [bp-006h], al ; 88 46 fa 6797 cmp byte [bp-006h], 000h ; 80 7e fa 00 6798 jne short 04ecah ; 75 1a 6799 test dl, dl ; 84 d2 6800 jne short 04ecah ; 75 16 6801 mov bx, 00c08h ; bb 08 0c 6372 6802 mov cx, ds ; 8c d9 6373 6803 mov ax, strict word 00004h ; b8 04 00 6374 call 018bdh ; e8 24 c7 6375 mov ax, 0052eh ; b8 2e 05 6376 push ax ; 50 6377 mov ax, strict word 00004h ; b8 04 00 6378 push ax ; 50 6379 call 018fah ; e8 56 c7 6804 call 018aeh ; e8 ef c9 6805 push 0052eh ; 68 2e 05 6806 push strict byte 00004h ; 6a 04 6807 call 018e9h ; e8 22 ca 6380 6808 add sp, strict byte 00004h ; 83 c4 04 6381 mov al, byte [bp-00ch] ; 8a 46 f4 6382 xor ah, ah ; 30 e4 6383 mov dx, ax ; 89 c2 6384 mov al, byte [bp-00ah] ; 8a 46 f6 6385 call 04da2h ; e8 ee fb 6386 mov al, byte [bp-00ah] ; 8a 46 f6 6809 xor dh, dh ; 30 f6 6810 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6811 call 04b0dh ; e8 3a fc 6812 mov al, byte [bp-006h] ; 8a 46 fa 6387 6813 and AL, strict byte 07fh ; 24 7f 6388 6814 cmp AL, strict byte 01dh ; 3c 1d 6389 je short 0 51c1h ; 74 046815 je short 04ee0h ; 74 04 6390 6816 and byte [bp-002h], 0feh ; 80 66 fe fe 6391 6817 and byte [bp-002h], 0fdh ; 80 66 fe fd 6392 mov al, byte [bp-002h] ; 8a 46 fe 6393 xor ah, ah ; 30 e4 6394 mov bx, ax ; 89 c3 6818 movzx bx, byte [bp-002h] ; 0f b6 5e fe 6395 6819 mov dx, 00096h ; ba 96 00 6396 6820 mov ax, strict word 00040h ; b8 40 00 6397 call 0160eh ; e8 39 c4 6398 mov sp, bp ; 89 ec 6399 pop bp ; 5d 6821 call 0160eh ; e8 1d c7 6822 leave ; c9 6400 6823 pop di ; 5f 6401 6824 pop si ; 5e 6402 6825 retn ; c3 6403 dequeue_key_: ; 0xf 51db LB 0x936826 dequeue_key_: ; 0xf4ef5 LB 0x90 6404 6827 push si ; 56 6405 6828 push di ; 57 6406 push bp ; 55 6407 mov bp, sp ; 89 e5 6408 push ax ; 50 6409 push ax ; 50 6829 enter 00004h, 000h ; c8 04 00 00 6410 6830 mov di, ax ; 89 c7 6411 6831 mov word [bp-002h], dx ; 89 56 fe … … 6414 6834 mov dx, strict word 0001ah ; ba 1a 00 6415 6835 mov ax, strict word 00040h ; b8 40 00 6416 call 0161ch ; e8 27 c46836 call 0161ch ; e8 0e c7 6417 6837 mov bx, ax ; 89 c3 6418 6838 mov dx, strict word 0001ch ; ba 1c 00 6419 6839 mov ax, strict word 00040h ; b8 40 00 6420 call 0161ch ; e8 1c c46840 call 0161ch ; e8 03 c7 6421 6841 cmp bx, ax ; 39 c3 6422 je short 0 5241h ; 74 3d6842 je short 04f5ah ; 74 3d 6423 6843 mov dx, bx ; 89 da 6424 6844 mov ax, strict word 00040h ; b8 40 00 6425 call 01600h ; e8 f4 c36845 call 01600h ; e8 db c6 6426 6846 mov cl, al ; 88 c1 6427 6847 lea dx, [bx+001h] ; 8d 57 01 6428 6848 mov ax, strict word 00040h ; b8 40 00 6429 call 01600h ; e8 e9 c36849 call 01600h ; e8 d0 c6 6430 6850 mov es, [bp-004h] ; 8e 46 fc 6431 6851 mov byte [es:si], cl ; 26 88 0c … … 6433 6853 mov byte [es:di], al ; 26 88 05 6434 6854 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 6435 je short 0 523ch ; 74 136855 je short 04f55h ; 74 13 6436 6856 inc bx ; 43 6437 6857 inc bx ; 43 6438 6858 cmp bx, strict byte 0003eh ; 83 fb 3e 6439 jc short 0 5233h ; 72 036859 jc short 04f4ch ; 72 03 6440 6860 mov bx, strict word 0001eh ; bb 1e 00 6441 6861 mov dx, strict word 0001ah ; ba 1a 00 6442 6862 mov ax, strict word 00040h ; b8 40 00 6443 call 0162ah ; e8 ee c36863 call 0162ah ; e8 d5 c6 6444 6864 mov ax, strict word 00001h ; b8 01 00 6445 jmp short 0 5243h ; eb 026865 jmp short 04f5ch ; eb 02 6446 6866 xor ax, ax ; 31 c0 6447 mov sp, bp ; 89 ec 6448 pop bp ; 5d 6867 leave ; c9 6449 6868 pop di ; 5f 6450 6869 pop si ; 5e … … 6454 6873 or cl, byte [bx+di] ; 0a 09 6455 6874 add ax, 00102h ; 05 02 01 6456 add byte [si+053h], dh ; 00 74 53 6457 das ; 2f 6458 push bx ; 53 6459 retn ; c3 6460 push bx ; 53 6461 pop ES ; 07 6462 push sp ; 54 6463 sbb dl, byte [si+041h] ; 1a 54 41 6464 push sp ; 54 6465 dec bx ; 4b 6466 push sp ; 54 6467 mov dx, 0f154h ; ba 54 f1 6468 push sp ; 54 6469 and word [di+058h], dx ; 21 55 58 6470 push bp ; 55 6471 db 0beh 6472 push bx ; 53 6473 _int16_function: ; 0xf526e LB 0x327 6875 add byte [bx+di], ah ; 00 21 6876 push dx ; 52 6877 aaa ; 37 6878 push ax ; 50 6879 jle short 04fc3h ; 7e 50 6880 retf 0da50h ; ca 50 da 6881 push ax ; 50 6882 add AL, strict byte 051h ; 04 51 6883 or ax, 07e51h ; 0d 51 7e 6884 push cx ; 51 6885 scasw ; af 6886 push cx ; 51 6887 fcom qword [bx+di+016h] ; dc 51 16 6888 push dx ; 52 6889 db 064h, 052h 6890 ; fs push dx ; 64 52 6891 _int16_function: ; 0xf4f85 LB 0x314 6474 6892 push di ; 57 6475 push bp ; 55 6476 mov bp, sp ; 89 e5 6477 sub sp, strict byte 00006h ; 83 ec 06 6893 enter 00006h, 000h ; c8 06 00 00 6478 6894 mov dx, strict word 00017h ; ba 17 00 6479 6895 mov ax, strict word 00040h ; b8 40 00 6480 call 01600h ; e8 82 c36896 call 01600h ; e8 6d c6 6481 6897 mov cl, al ; 88 c1 6482 6898 mov bh, al ; 88 c7 6483 6899 mov dx, 00097h ; ba 97 00 6484 6900 mov ax, strict word 00040h ; b8 40 00 6485 call 01600h ; e8 75 c36901 call 01600h ; e8 60 c6 6486 6902 mov bl, al ; 88 c3 6487 mov dl, cl ; 88 ca 6488 xor dh, dh ; 30 f6 6489 mov CL, strict byte 004h ; b1 04 6490 sar dx, CL ; d3 fa 6903 movzx dx, cl ; 0f b6 d1 6904 sar dx, 004h ; c1 fa 04 6491 6905 and dl, 007h ; 80 e2 07 6492 6906 and AL, strict byte 007h ; 24 07 … … 6494 6908 xor al, dl ; 30 d0 6495 6909 test ax, ax ; 85 c0 6496 je short 05 30eh ; 74 6c6910 je short 05015h ; 74 60 6497 6911 cli ; fa 6498 6912 mov AL, strict byte 0edh ; b0 ed … … 6504 6918 ; sub ah, ah ; 2a e4 6505 6919 test AL, strict byte 001h ; a8 01 6506 jne short 0 52bbh ; 75 086920 jne short 04fceh ; 75 08 6507 6921 mov AL, strict byte 021h ; b0 21 6508 6922 mov dx, 00080h ; ba 80 00 6509 6923 out DX, AL ; ee 6510 jmp short 0 52a9h ; eb ee6924 jmp short 04fbch ; eb ee 6511 6925 mov dx, strict word 00060h ; ba 60 00 6512 6926 in AL, DX ; ec … … 6514 6928 ; sub ah, ah ; 2a e4 6515 6929 cmp ax, 000fah ; 3d fa 00 6516 jne short 05 30dh ; 75 476930 jne short 05014h ; 75 3b 6517 6931 and bl, 0f8h ; 80 e3 f8 6518 mov al, bh ; 88 f8 6519 xor ah, ah ; 30 e4 6520 mov CL, strict byte 004h ; b1 04 6521 sar ax, CL ; d3 f8 6522 mov cx, ax ; 89 c1 6523 xor ch, ah ; 30 e5 6524 and cl, 007h ; 80 e1 07 6525 mov al, bl ; 88 d8 6526 xor ah, ah ; 30 e4 6527 mov dx, ax ; 89 c2 6528 or dx, cx ; 09 ca 6529 mov bl, dl ; 88 d3 6530 mov al, dl ; 88 d0 6932 movzx ax, bh ; 0f b6 c7 6933 sar ax, 004h ; c1 f8 04 6934 and ax, strict word 00007h ; 25 07 00 6935 movzx cx, bl ; 0f b6 cb 6936 or cx, ax ; 09 c1 6937 mov bl, cl ; 88 cb 6938 mov al, cl ; 88 c8 6531 6939 and AL, strict byte 007h ; 24 07 6532 mov dx, strict word 00060h ; ba 60 006533 6940 out DX, AL ; ee 6534 6941 mov dx, strict word 00064h ; ba 64 00 … … 6537 6944 ; sub ah, ah ; 2a e4 6538 6945 test AL, strict byte 001h ; a8 01 6539 jne short 05 2fch ; 75 086946 jne short 05003h ; 75 08 6540 6947 mov AL, strict byte 021h ; b0 21 6541 6948 mov dx, 00080h ; ba 80 00 6542 6949 out DX, AL ; ee 6543 jmp short 0 52eah ; eb ee6950 jmp short 04ff1h ; eb ee 6544 6951 mov dx, strict word 00060h ; ba 60 00 6545 6952 in AL, DX ; ec … … 6549 6956 mov dx, 00097h ; ba 97 00 6550 6957 mov ax, strict word 00040h ; b8 40 00 6551 call 0160eh ; e8 01 c36958 call 0160eh ; e8 fa c5 6552 6959 sti ; fb 6553 mov CL, strict byte 008h ; b1 086554 6960 mov ax, word [bp+014h] ; 8b 46 14 6555 shr ax, CL ; d3 e86961 shr ax, 008h ; c1 e8 08 6556 6962 cmp ax, 000a2h ; 3d a2 00 6557 jnbe short 05374h ; 77 5a6963 jnbe near 05221h ; 0f 87 ff 01 6558 6964 push CS ; 0e 6559 6965 pop ES ; 07 6560 6966 mov cx, strict word 0000ch ; b9 0c 00 6561 mov di, 0 524bh ; bf 4b 526967 mov di, 04f62h ; bf 62 4f 6562 6968 repne scasb ; f2 ae 6563 6969 sal cx, 1 ; d1 e1 6564 6970 mov di, cx ; 89 cf 6565 mov ax, word [cs:di+0 5256h] ; 2e 8b 85 56 526971 mov ax, word [cs:di+04f6dh] ; 2e 8b 85 6d 4f 6566 6972 jmp ax ; ff e0 6567 mov ax, strict word 00001h ; b8 01 00 6568 push ax ; 50 6973 push strict byte 00001h ; 6a 01 6569 6974 mov cx, ss ; 8c d1 6570 lea bx, [bp-00 4h] ; 8d 5e fc6975 lea bx, [bp-006h] ; 8d 5e fa 6571 6976 mov dx, ss ; 8c d2 6572 lea ax, [bp-00 6h] ; 8d 46 fa6573 call 0 51dbh ; e8 9bfe6977 lea ax, [bp-004h] ; 8d 46 fc 6978 call 04ef5h ; e8 af fe 6574 6979 test ax, ax ; 85 c0 6575 jne short 05352h ; 75 0e 6576 mov ax, 00565h ; b8 65 05 6577 push ax ; 50 6578 mov ax, strict word 00007h ; b8 07 00 6579 push ax ; 50 6580 call 018fah ; e8 ab c5 6980 jne short 05055h ; 75 0b 6981 push 00565h ; 68 65 05 6982 push strict byte 00007h ; 6a 07 6983 call 018e9h ; e8 97 c8 6581 6984 add sp, strict byte 00004h ; 83 c4 04 6582 cmp byte [bp-006h], 000h ; 80 7e fa 00 6583 je short 0535eh ; 74 06 6584 cmp byte [bp-004h], 0f0h ; 80 7e fc f0 6585 je short 05364h ; 74 06 6586 cmp byte [bp-004h], 0e0h ; 80 7e fc e0 6587 jne short 05368h ; 75 04 6588 mov byte [bp-004h], 000h ; c6 46 fc 00 6589 mov ah, byte [bp-006h] ; 8a 66 fa 6590 mov al, byte [bp-004h] ; 8a 46 fc 6985 cmp byte [bp-004h], 000h ; 80 7e fc 00 6986 je short 05061h ; 74 06 6987 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 6988 je short 05067h ; 74 06 6989 cmp byte [bp-006h], 0e0h ; 80 7e fa e0 6990 jne short 0506bh ; 75 04 6991 mov byte [bp-006h], 000h ; c6 46 fa 00 6992 movzx dx, byte [bp-004h] ; 0f b6 56 fc 6993 sal dx, 008h ; c1 e2 08 6994 movzx ax, byte [bp-006h] ; 0f b6 46 fa 6995 or dx, ax ; 09 c2 6996 mov word [bp+014h], dx ; 89 56 14 6997 leave ; c9 6998 pop di ; 5f 6999 retn ; c3 7000 or word [bp+01eh], 00200h ; 81 4e 1e 00 02 7001 push strict byte 00000h ; 6a 00 7002 mov cx, ss ; 8c d1 7003 lea bx, [bp-006h] ; 8d 5e fa 7004 mov dx, ss ; 8c d2 7005 lea ax, [bp-004h] ; 8d 46 fc 7006 call 04ef5h ; e8 63 fe 7007 test ax, ax ; 85 c0 7008 jne short 0509dh ; 75 07 7009 or word [bp+01eh], strict byte 00040h ; 83 4e 1e 40 7010 leave ; c9 7011 pop di ; 5f 7012 retn ; c3 7013 cmp byte [bp-004h], 000h ; 80 7e fc 00 7014 je short 050a9h ; 74 06 7015 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 7016 je short 050afh ; 74 06 7017 cmp byte [bp-006h], 0e0h ; 80 7e fa e0 7018 jne short 050b3h ; 75 04 7019 mov byte [bp-006h], 000h ; c6 46 fa 00 7020 movzx dx, byte [bp-004h] ; 0f b6 56 fc 7021 sal dx, 008h ; c1 e2 08 7022 movzx ax, byte [bp-006h] ; 0f b6 46 fa 7023 or dx, ax ; 09 c2 7024 mov word [bp+014h], dx ; 89 56 14 7025 and word [bp+01eh], strict byte 0ffbfh ; 83 66 1e bf 7026 leave ; c9 7027 pop di ; 5f 7028 retn ; c3 7029 mov dx, strict word 00017h ; ba 17 00 7030 mov ax, strict word 00040h ; b8 40 00 7031 call 01600h ; e8 2d c5 7032 mov dx, word [bp+014h] ; 8b 56 14 7033 mov dl, al ; 88 c2 7034 jmp short 05078h ; eb 9e 7035 mov al, byte [bp+012h] ; 8a 46 12 7036 movzx dx, al ; 0f b6 d0 7037 mov ax, word [bp+012h] ; 8b 46 12 7038 shr ax, 008h ; c1 e8 08 7039 xor ah, ah ; 30 e4 7040 call 04b0dh ; e8 22 fa 7041 test ax, ax ; 85 c0 7042 jne short 050fch ; 75 0d 7043 mov ax, word [bp+014h] ; 8b 46 14 7044 xor al, al ; 30 c0 7045 or AL, strict byte 001h ; 0c 01 6591 7046 mov word [bp+014h], ax ; 89 46 14 6592 jmp near 053beh ; e9 4a 00 6593 mov bx, 00c16h ; bb 16 0c 7047 leave ; c9 7048 pop di ; 5f 7049 retn ; c3 7050 and word [bp+014h], 0ff00h ; 81 66 14 00 ff 7051 leave ; c9 7052 pop di ; 5f 7053 retn ; c3 7054 mov ax, word [bp+014h] ; 8b 46 14 7055 xor al, al ; 30 c0 7056 or AL, strict byte 030h ; 0c 30 7057 jmp short 050f6h ; eb e9 7058 mov byte [bp-002h], 002h ; c6 46 fe 02 7059 xor cx, cx ; 31 c9 7060 cli ; fa 7061 mov AL, strict byte 0f2h ; b0 f2 7062 mov dx, strict word 00060h ; ba 60 00 7063 out DX, AL ; ee 7064 mov bx, strict word 0ffffh ; bb ff ff 7065 mov dx, strict word 00064h ; ba 64 00 7066 in AL, DX ; ec 7067 db 02ah, 0e4h 7068 ; sub ah, ah ; 2a e4 7069 test AL, strict byte 001h ; a8 01 7070 jne short 05134h ; 75 0d 7071 dec bx ; 4b 7072 test bx, bx ; 85 db 7073 jbe short 05134h ; 76 08 7074 mov dx, 00080h ; ba 80 00 7075 in AL, DX ; ec 7076 db 02ah, 0e4h 7077 ; sub ah, ah ; 2a e4 7078 jmp short 0511dh ; eb e9 7079 test bx, bx ; 85 db 7080 jbe short 05178h ; 76 40 7081 mov dx, strict word 00060h ; ba 60 00 7082 in AL, DX ; ec 7083 db 02ah, 0e4h 7084 ; sub ah, ah ; 2a e4 7085 cmp ax, 000fah ; 3d fa 00 7086 jne short 05178h ; 75 35 7087 mov bx, strict word 0ffffh ; bb ff ff 7088 mov dx, strict word 00064h ; ba 64 00 7089 in AL, DX ; ec 7090 db 02ah, 0e4h 7091 ; sub ah, ah ; 2a e4 7092 test AL, strict byte 001h ; a8 01 7093 jne short 0515dh ; 75 0d 7094 dec bx ; 4b 7095 test bx, bx ; 85 db 7096 jbe short 0515dh ; 76 08 7097 mov dx, 00080h ; ba 80 00 7098 in AL, DX ; ec 7099 db 02ah, 0e4h 7100 ; sub ah, ah ; 2a e4 7101 jmp short 05146h ; eb e9 7102 test bx, bx ; 85 db 7103 jbe short 0516fh ; 76 0e 7104 shr cx, 008h ; c1 e9 08 7105 mov dx, strict word 00060h ; ba 60 00 7106 in AL, DX ; ec 7107 db 02ah, 0e4h 7108 ; sub ah, ah ; 2a e4 7109 sal ax, 008h ; c1 e0 08 7110 or cx, ax ; 09 c1 7111 dec byte [bp-002h] ; fe 4e fe 7112 cmp byte [bp-002h], 000h ; 80 7e fe 00 7113 jnbe short 05143h ; 77 cb 7114 mov word [bp+00eh], cx ; 89 4e 0e 7115 leave ; c9 7116 pop di ; 5f 7117 retn ; c3 7118 push strict byte 00001h ; 6a 01 7119 mov cx, ss ; 8c d1 7120 lea bx, [bp-006h] ; 8d 5e fa 7121 mov dx, ss ; 8c d2 7122 lea ax, [bp-004h] ; 8d 46 fc 7123 call 04ef5h ; e8 68 fd 7124 test ax, ax ; 85 c0 7125 jne short 0519ch ; 75 0b 7126 push 00565h ; 68 65 05 7127 push strict byte 00007h ; 6a 07 7128 call 018e9h ; e8 50 c7 7129 add sp, strict byte 00004h ; 83 c4 04 7130 cmp byte [bp-004h], 000h ; 80 7e fc 00 7131 je near 0506bh ; 0f 84 c7 fe 7132 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 7133 je near 05067h ; 0f 84 bb fe 7134 jmp near 0506bh ; e9 bc fe 7135 or word [bp+01eh], 00200h ; 81 4e 1e 00 02 7136 push strict byte 00000h ; 6a 00 7137 mov cx, ss ; 8c d1 7138 lea bx, [bp-006h] ; 8d 5e fa 7139 mov dx, ss ; 8c d2 7140 lea ax, [bp-004h] ; 8d 46 fc 7141 call 04ef5h ; e8 32 fd 7142 test ax, ax ; 85 c0 7143 je near 05096h ; 0f 84 cd fe 7144 cmp byte [bp-004h], 000h ; 80 7e fc 00 7145 je near 050b3h ; 0f 84 e2 fe 7146 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 7147 je near 050afh ; 0f 84 d6 fe 7148 jmp near 050b3h ; e9 d7 fe 7149 mov dx, strict word 00017h ; ba 17 00 7150 mov ax, strict word 00040h ; b8 40 00 7151 call 01600h ; e8 1b c4 7152 mov dx, word [bp+014h] ; 8b 56 14 7153 mov dl, al ; 88 c2 7154 mov word [bp+014h], dx ; 89 56 14 7155 mov dx, strict word 00018h ; ba 18 00 7156 mov ax, strict word 00040h ; b8 40 00 7157 call 01600h ; e8 0a c4 7158 mov bh, al ; 88 c7 7159 and bh, 073h ; 80 e7 73 7160 mov dx, 00096h ; ba 96 00 7161 mov ax, strict word 00040h ; b8 40 00 7162 call 01600h ; e8 fc c3 7163 and AL, strict byte 00ch ; 24 0c 7164 or bh, al ; 08 c7 7165 mov dx, word [bp+014h] ; 8b 56 14 7166 xor dh, dh ; 30 f6 7167 movzx ax, bh ; 0f b6 c7 7168 sal ax, 008h ; c1 e0 08 7169 jmp near 05076h ; e9 60 fe 7170 mov ax, word [bp+014h] ; 8b 46 14 7171 xor ah, ah ; 30 e4 7172 or ah, 080h ; 80 cc 80 7173 jmp near 050f6h ; e9 d5 fe 7174 mov bx, 00c08h ; bb 08 0c 6594 7175 mov cx, ds ; 8c d9 6595 7176 mov ax, strict word 00004h ; b8 04 00 6596 call 018bdh ; e8 3e c5 6597 mov CL, strict byte 008h ; b1 08 7177 call 018aeh ; e8 82 c6 6598 7178 mov ax, word [bp+014h] ; 8b 46 14 6599 shr ax, CL ; d3 e87179 shr ax, 008h ; c1 e8 08 6600 7180 push ax ; 50 6601 mov ax, 00589h ; b8 89 05 6602 push ax ; 50 6603 mov ax, strict word 00004h ; b8 04 00 6604 push ax ; 50 6605 call 018fah ; e8 68 c5 7181 push 00589h ; 68 89 05 7182 push strict byte 00004h ; 6a 04 7183 call 018e9h ; e8 ae c6 6606 7184 add sp, strict byte 00006h ; 83 c4 06 6607 mov bx, 00c 16h ; bb 160c7185 mov bx, 00c08h ; bb 08 0c 6608 7186 mov cx, ds ; 8c d9 6609 7187 mov ax, strict word 00004h ; b8 04 00 6610 call 018 bdh ; e8 1d c57188 call 018aeh ; e8 65 c6 6611 7189 mov ax, word [bp+010h] ; 8b 46 10 6612 7190 push ax ; 50 … … 6617 7195 mov ax, word [bp+014h] ; 8b 46 14 6618 7196 push ax ; 50 6619 mov ax, 005b1h ; b8 b1 05 6620 push ax ; 50 6621 mov ax, strict word 00004h ; b8 04 00 6622 push ax ; 50 6623 call 018fah ; e8 3f c5 7197 push 005b1h ; 68 b1 05 7198 push strict byte 00004h ; 6a 04 7199 call 018e9h ; e8 88 c6 6624 7200 add sp, strict byte 0000ch ; 83 c4 0c 6625 mov sp, bp ; 89 ec 6626 pop bp ; 5d 7201 leave ; c9 6627 7202 pop di ; 5f 6628 7203 retn ; c3 6629 or word [bp+01eh], 00200h ; 81 4e 1e 00 02 6630 xor ax, ax ; 31 c0 6631 push ax ; 50 6632 mov cx, ss ; 8c d1 6633 lea bx, [bp-004h] ; 8d 5e fc 6634 mov dx, ss ; 8c d2 6635 lea ax, [bp-006h] ; 8d 46 fa 6636 call 051dbh ; e8 03 fe 6637 test ax, ax ; 85 c0 6638 jne short 053e2h ; 75 06 6639 or word [bp+01eh], strict byte 00040h ; 83 4e 1e 40 6640 jmp short 053beh ; eb dc 6641 cmp byte [bp-006h], 000h ; 80 7e fa 00 6642 je short 053eeh ; 74 06 6643 cmp byte [bp-004h], 0f0h ; 80 7e fc f0 6644 je short 053f4h ; 74 06 6645 cmp byte [bp-004h], 0e0h ; 80 7e fc e0 6646 jne short 053f8h ; 75 04 6647 mov byte [bp-004h], 000h ; c6 46 fc 00 6648 mov dh, byte [bp-006h] ; 8a 76 fa 6649 mov dl, byte [bp-004h] ; 8a 56 fc 6650 mov word [bp+014h], dx ; 89 56 14 6651 and word [bp+01eh], strict byte 0ffbfh ; 83 66 1e bf 6652 jmp short 053beh ; eb b7 6653 mov dx, strict word 00017h ; ba 17 00 6654 mov ax, strict word 00040h ; b8 40 00 6655 call 01600h ; e8 f0 c1 6656 mov dx, word [bp+014h] ; 8b 56 14 6657 mov dl, al ; 88 c2 6658 mov word [bp+014h], dx ; 89 56 14 6659 jmp short 053beh ; eb a4 6660 mov dl, byte [bp+012h] ; 8a 56 12 6661 xor dh, dh ; 30 f6 6662 mov CL, strict byte 008h ; b1 08 6663 mov ax, word [bp+012h] ; 8b 46 12 6664 shr ax, CL ; d3 e8 6665 xor ah, ah ; 30 e4 6666 call 04da2h ; e8 77 f9 6667 test ax, ax ; 85 c0 6668 jne short 05439h ; 75 0a 6669 mov ax, word [bp+014h] ; 8b 46 14 6670 xor al, al ; 30 c0 6671 or AL, strict byte 001h ; 0c 01 6672 jmp near 0536eh ; e9 35 ff 6673 and word [bp+014h], 0ff00h ; 81 66 14 00 ff 6674 jmp near 053beh ; e9 7d ff 6675 mov ax, word [bp+014h] ; 8b 46 14 6676 xor al, al ; 30 c0 6677 or AL, strict byte 030h ; 0c 30 6678 jmp near 0536eh ; e9 23 ff 6679 mov byte [bp-002h], 002h ; c6 46 fe 02 6680 xor cx, cx ; 31 c9 6681 cli ; fa 6682 mov AL, strict byte 0f2h ; b0 f2 6683 mov dx, strict word 00060h ; ba 60 00 6684 out DX, AL ; ee 6685 mov bx, strict word 0ffffh ; bb ff ff 6686 mov dx, strict word 00064h ; ba 64 00 6687 in AL, DX ; ec 6688 db 02ah, 0e4h 6689 ; sub ah, ah ; 2a e4 6690 test AL, strict byte 001h ; a8 01 6691 jne short 05472h ; 75 0d 6692 dec bx ; 4b 6693 test bx, bx ; 85 db 6694 jbe short 05472h ; 76 08 6695 mov dx, 00080h ; ba 80 00 6696 in AL, DX ; ec 6697 db 02ah, 0e4h 6698 ; sub ah, ah ; 2a e4 6699 jmp short 0545bh ; eb e9 6700 test bx, bx ; 85 db 6701 jbe short 054b4h ; 76 3e 6702 mov dx, strict word 00060h ; ba 60 00 6703 in AL, DX ; ec 6704 db 02ah, 0e4h 6705 ; sub ah, ah ; 2a e4 6706 cmp ax, 000fah ; 3d fa 00 6707 jne short 054b4h ; 75 33 6708 mov bx, strict word 0ffffh ; bb ff ff 6709 mov dx, strict word 00064h ; ba 64 00 6710 in AL, DX ; ec 6711 db 02ah, 0e4h 6712 ; sub ah, ah ; 2a e4 6713 test AL, strict byte 001h ; a8 01 6714 jne short 0549bh ; 75 0d 6715 dec bx ; 4b 6716 test bx, bx ; 85 db 6717 jbe short 0549bh ; 76 08 6718 mov dx, 00080h ; ba 80 00 6719 in AL, DX ; ec 6720 db 02ah, 0e4h 6721 ; sub ah, ah ; 2a e4 6722 jmp short 05484h ; eb e9 6723 test bx, bx ; 85 db 6724 jbe short 054abh ; 76 0c 6725 mov bl, ch ; 88 eb 6726 mov dx, strict word 00060h ; ba 60 00 6727 in AL, DX ; ec 6728 db 02ah, 0e4h 6729 ; sub ah, ah ; 2a e4 6730 mov ch, al ; 88 c5 6731 mov cl, bl ; 88 d9 6732 dec byte [bp-002h] ; fe 4e fe 6733 cmp byte [bp-002h], 000h ; 80 7e fe 00 6734 jnbe short 05481h ; 77 cd 6735 mov word [bp+00eh], cx ; 89 4e 0e 6736 jmp near 053beh ; e9 04 ff 6737 mov ax, strict word 00001h ; b8 01 00 6738 push ax ; 50 6739 mov cx, ss ; 8c d1 6740 lea bx, [bp-004h] ; 8d 5e fc 6741 mov dx, ss ; 8c d2 6742 lea ax, [bp-006h] ; 8d 46 fa 6743 call 051dbh ; e8 10 fd 6744 test ax, ax ; 85 c0 6745 jne short 054ddh ; 75 0e 6746 mov ax, 00565h ; b8 65 05 6747 push ax ; 50 6748 mov ax, strict word 00007h ; b8 07 00 6749 push ax ; 50 6750 call 018fah ; e8 20 c4 6751 add sp, strict byte 00004h ; 83 c4 04 6752 cmp byte [bp-006h], 000h ; 80 7e fa 00 6753 jne short 054e6h ; 75 03 6754 jmp near 05368h ; e9 82 fe 6755 cmp byte [bp-004h], 0f0h ; 80 7e fc f0 6756 jne short 054efh ; 75 03 6757 jmp near 05364h ; e9 75 fe 6758 jmp short 054e3h ; eb f2 6759 or word [bp+01eh], 00200h ; 81 4e 1e 00 02 6760 xor ax, ax ; 31 c0 6761 push ax ; 50 6762 mov cx, ss ; 8c d1 6763 lea bx, [bp-004h] ; 8d 5e fc 6764 mov dx, ss ; 8c d2 6765 lea ax, [bp-006h] ; 8d 46 fa 6766 call 051dbh ; e8 d5 fc 6767 test ax, ax ; 85 c0 6768 jne short 0550dh ; 75 03 6769 jmp near 053dch ; e9 cf fe 6770 cmp byte [bp-006h], 000h ; 80 7e fa 00 6771 jne short 05516h ; 75 03 6772 jmp near 053f8h ; e9 e2 fe 6773 cmp byte [bp-004h], 0f0h ; 80 7e fc f0 6774 jne short 0551fh ; 75 03 6775 jmp near 053f4h ; e9 d5 fe 6776 jmp short 05513h ; eb f2 6777 mov dx, strict word 00017h ; ba 17 00 6778 mov ax, strict word 00040h ; b8 40 00 6779 call 01600h ; e8 d6 c0 6780 mov dx, word [bp+014h] ; 8b 56 14 6781 mov dl, al ; 88 c2 6782 mov word [bp+014h], dx ; 89 56 14 6783 mov dx, strict word 00018h ; ba 18 00 6784 mov ax, strict word 00040h ; b8 40 00 6785 call 01600h ; e8 c5 c0 6786 mov bh, al ; 88 c7 6787 and bh, 073h ; 80 e7 73 6788 mov dx, 00096h ; ba 96 00 6789 mov ax, strict word 00040h ; b8 40 00 6790 call 01600h ; e8 b7 c0 6791 mov ah, al ; 88 c4 6792 and ah, 00ch ; 80 e4 0c 6793 or ah, bh ; 08 fc 6794 mov dx, word [bp+014h] ; 8b 56 14 6795 mov dh, ah ; 88 e6 6796 jmp near 05415h ; e9 bd fe 6797 mov ax, word [bp+014h] ; 8b 46 14 6798 xor ah, ah ; 30 e4 6799 or ah, 080h ; 80 cc 80 6800 jmp near 0536eh ; e9 0b fe 6801 sbb ax, 02e56h ; 1d 56 2e 7204 and word [bp+di+045h], dx ; 21 53 45 7205 push bx ; 53 7206 jc short 052c0h ; 72 53 7207 jc short 052c2h ; 72 53 7208 jc short 052c4h ; 72 53 7209 dec dx ; 4a 7210 push bp ; 55 7211 js short 052cbh ; 78 56 7212 js short 052cdh ; 78 56 7213 arpl word [di+055h], dx ; 63 55 55 6802 7214 push si ; 56 7215 js short 052d3h ; 78 56 7216 js short 052d5h ; 78 56 7217 push bp ; 55 6803 7218 push si ; 56 7219 push bp ; 55 6804 7220 push si ; 56 7221 js short 052dbh ; 78 56 7222 js short 052ddh ; 78 56 7223 fst dword [di+055h] ; d9 55 55 6805 7224 push si ; 56 7225 js short 052e3h ; 78 56 7226 js short 052e5h ; 78 56 7227 push bp ; 55 6806 7228 push si ; 56 7229 or word [bp+078h], dx ; 09 56 78 6807 7230 push si ; 56 6808 push si ; 56 6809 cmp byte [bx+si+074h], bl ; 38 58 74 6810 pop cx ; 59 6811 je short 055cch ; 74 59 6812 push 04e58h ; 68 58 4e 6813 pop cx ; 59 6814 je short 055d2h ; 74 59 6815 je short 055d4h ; 74 59 6816 dec si ; 4e 6817 pop cx ; 59 6818 dec si ; 4e 6819 pop cx ; 59 6820 je short 055dah ; 74 59 6821 je short 055dch ; 74 59 6822 into ; ce 6823 pop ax ; 58 6824 dec si ; 4e 6825 pop cx ; 59 6826 je short 055e2h ; 74 59 6827 je short 055e4h ; 74 59 6828 dec si ; 4e 6829 pop cx ; 59 6830 call far [bx+si+074h] ; ff 58 74 6831 pop cx ; 59 6832 je short 055ech ; 74 59 6833 je short 055eeh ; 74 59 6834 _int13_harddisk: ; 0xf5595 LB 0x43a 6835 push bp ; 55 6836 mov bp, sp ; 89 e5 6837 sub sp, strict byte 00010h ; 83 ec 10 7231 js short 052edh ; 78 56 7232 js short 052efh ; 78 56 7233 _int13_harddisk: ; 0xf5299 LB 0x43c 7234 enter 00010h, 000h ; c8 10 00 00 6838 7235 mov dx, strict word 0000eh ; ba 0e 00 6839 7236 mov ax, strict word 00040h ; b8 40 00 6840 call 0161ch ; e8 7 8 c07237 call 0161ch ; e8 76 c3 6841 7238 mov si, 00122h ; be 22 01 6842 7239 mov word [bp-004h], ax ; 89 46 fc … … 6844 7241 mov dx, 0008eh ; ba 8e 00 6845 7242 mov ax, strict word 00040h ; b8 40 00 6846 call 0160eh ; e8 5 9 c07243 call 0160eh ; e8 57 c3 6847 7244 mov ax, word [bp+00eh] ; 8b 46 0e 6848 7245 xor ah, ah ; 30 e4 6849 7246 cmp ax, 00080h ; 3d 80 00 6850 jc short 05 5c4h ; 72 057247 jc short 052c6h ; 72 05 6851 7248 cmp ax, 00090h ; 3d 90 00 6852 jc short 05 5e3h ; 72 1f7249 jc short 052e4h ; 72 1e 6853 7250 mov ax, word [bp+00eh] ; 8b 46 0e 6854 7251 xor ah, ah ; 30 e4 6855 7252 push ax ; 50 6856 mov al, byte [bp+017h] ; 8a 46 17 7253 mov ax, word [bp+016h] ; 8b 46 16 7254 shr ax, 008h ; c1 e8 08 6857 7255 push ax ; 50 6858 mov ax, 005d4h ; b8 d4 05 6859 push ax ; 50 6860 mov ax, 005e3h ; b8 e3 05 6861 push ax ; 50 6862 mov ax, strict word 00004h ; b8 04 00 6863 push ax ; 50 6864 call 018fah ; e8 1d c3 7256 push 005d4h ; 68 d4 05 7257 push 005e3h ; 68 e3 05 7258 push strict byte 00004h ; 6a 04 7259 call 018e9h ; e8 0b c6 6865 7260 add sp, strict byte 0000ah ; 83 c4 0a 6866 jmp near 05 98fh ; e9 ac037261 jmp near 05693h ; e9 af 03 6867 7262 mov ax, word [bp+00eh] ; 8b 46 0e 6868 7263 xor ah, ah ; 30 e4 … … 6873 7268 mov byte [bp-002h], dl ; 88 56 fe 6874 7269 cmp dl, 010h ; 80 fa 10 6875 jc short 05 60ah ; 72 0e7270 jc short 0530dh ; 72 10 6876 7271 push ax ; 50 6877 mov al, byte [bp+017h] ; 8a 46 17 7272 mov ax, word [bp+016h] ; 8b 46 16 7273 shr ax, 008h ; c1 e8 08 6878 7274 push ax ; 50 6879 mov ax, 005d4h ; b8 d4 05 6880 push ax ; 50 6881 mov ax, 0060eh ; b8 0e 06 6882 jmp short 055d5h ; eb cb 6883 mov al, byte [bp+017h] ; 8a 46 17 6884 xor ah, ah ; 30 e4 6885 cmp ax, strict word 00018h ; 3d 18 00 6886 jnbe short 05653h ; 77 3f 6887 mov bx, ax ; 89 c3 6888 sal bx, 1 ; d1 e3 6889 jmp word [cs:bx+05563h] ; 2e ff a7 63 55 7275 push 005d4h ; 68 d4 05 7276 push 0060eh ; 68 0e 06 7277 jmp short 052d9h ; eb cc 7278 mov bx, word [bp+016h] ; 8b 5e 16 7279 shr bx, 008h ; c1 eb 08 7280 cmp bx, strict byte 00018h ; 83 fb 18 7281 jnbe near 05678h ; 0f 87 5e 03 7282 add bx, bx ; 01 db 7283 jmp word [cs:bx+05267h] ; 2e ff a7 67 52 6890 7284 cmp byte [bp-002h], 008h ; 80 7e fe 08 6891 jnc short 0562bh ; 73 086892 mov al, byte [bp-002h] ; 8a46 fe6893 xor ah, ah ; 30 e46894 call 01c2dh ; e8 02 c66895 jmp near 05851h ; e9 23 027285 jnc near 05330h ; 0f 83 07 00 7286 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7287 call 01be6h ; e8 b6 c8 7288 mov byte [bp+017h], 000h ; c6 46 17 00 7289 xor bx, bx ; 31 db 6896 7290 mov dx, strict word 00074h ; ba 74 00 6897 7291 mov ax, strict word 00040h ; b8 40 00 6898 call 01600h ; e8 c9 bf 7292 call 0160eh ; e8 cf c2 7293 and byte [bp+01ch], 0feh ; 80 66 1c fe 7294 leave ; c9 7295 retn ; c3 7296 mov dx, strict word 00074h ; ba 74 00 7297 mov ax, strict word 00040h ; b8 40 00 7298 call 01600h ; e8 b2 c2 6899 7299 mov cl, al ; 88 c1 6900 7300 mov dx, word [bp+016h] ; 8b 56 16 6901 mov dh, al ; 88 c6 7301 xor dh, dh ; 30 f6 7302 movzx ax, cl ; 0f b6 c1 7303 sal ax, 008h ; c1 e0 08 7304 or dx, ax ; 09 c2 6902 7305 mov word [bp+016h], dx ; 89 56 16 6903 7306 xor bx, bx ; 31 db 6904 7307 mov dx, strict word 00074h ; ba 74 00 6905 7308 mov ax, strict word 00040h ; b8 40 00 6906 call 0160eh ; e8 c2 bf7309 call 0160eh ; e8 a3 c2 6907 7310 test cl, cl ; 84 c9 6908 je short 056b2h ; 74 62 6909 jmp near 059a8h ; e9 55 03 6910 jmp near 05974h ; e9 1e 03 7311 je short 05334h ; 74 c5 7312 jmp near 056afh ; e9 3d 03 6911 7313 mov ax, word [bp+016h] ; 8b 46 16 6912 7314 xor ah, ah ; 30 e4 6913 mov word [bp-00ah], ax ; 89 46 f6 6914 mov al, byte [bp+015h] ; 8a 46 15 6915 mov dx, word [bp+014h] ; 8b 56 14 6916 xor dh, dh ; 30 f6 6917 sal dx, 1 ; d1 e2 6918 sal dx, 1 ; d1 e2 6919 and dh, 003h ; 80 e6 03 6920 mov ah, dh ; 88 f4 7315 mov word [bp-00ch], ax ; 89 46 f4 7316 mov di, word [bp+014h] ; 8b 7e 14 7317 shr di, 008h ; c1 ef 08 7318 mov ax, word [bp+014h] ; 8b 46 14 7319 xor ah, ah ; 30 e4 7320 sal ax, 002h ; c1 e0 02 7321 xor al, al ; 30 c0 7322 and ah, 003h ; 80 e4 03 7323 or di, ax ; 09 c7 7324 mov ax, word [bp+014h] ; 8b 46 14 7325 and ax, strict word 0003fh ; 25 3f 00 6921 7326 mov word [bp-006h], ax ; 89 46 fa 6922 mov di, word [bp+014h] ; 8b 7e 14 6923 and di, strict byte 0003fh ; 83 e7 3f 6924 mov al, byte [bp+013h] ; 8a 46 13 6925 xor ah, dh ; 30 f4 7327 mov ax, word [bp+012h] ; 8b 46 12 7328 shr ax, 008h ; c1 e8 08 6926 7329 mov word [bp-008h], ax ; 89 46 f8 6927 mov ax, word [bp-00 ah] ; 8b 46 f67330 mov ax, word [bp-00ch] ; 8b 46 f4 6928 7331 cmp ax, 00080h ; 3d 80 00 6929 jnbe short 05 68ch ; 77 047332 jnbe short 053adh ; 77 04 6930 7333 test ax, ax ; 85 c0 6931 jne short 05 6b5h ; 75 296932 mov bx, 00c 16h ; bb 160c7334 jne short 053d0h ; 75 23 7335 mov bx, 00c08h ; bb 08 0c 6933 7336 mov cx, ds ; 8c d9 6934 7337 mov ax, strict word 00004h ; b8 04 00 6935 call 018 bdh ; e8 26 c26936 mov a l, byte [bp+017h] ; 8a 46 176937 xor ah, ah ; 30 e47338 call 018aeh ; e8 f6 c4 7339 mov ax, word [bp+016h] ; 8b 46 16 7340 shr ax, 008h ; c1 e8 08 6938 7341 push ax ; 50 6939 mov ax, 005d4h ; b8 d4 05 6940 push ax ; 50 6941 mov ax, 00640h ; b8 40 06 6942 push ax ; 50 6943 mov ax, strict word 00004h ; b8 04 00 6944 push ax ; 50 6945 call 018fah ; e8 4e c2 7342 push 005d4h ; 68 d4 05 7343 push 00640h ; 68 40 06 7344 push strict byte 00004h ; 6a 04 7345 call 018e9h ; e8 1f c5 6946 7346 add sp, strict byte 00008h ; 83 c4 08 6947 jmp near 0598fh ; e9 dd 02 6948 jmp near 05855h ; e9 a0 01 6949 mov al, byte [bp-002h] ; 8a 46 fe 6950 xor ah, ah ; 30 e4 6951 mov dx, strict word 00018h ; ba 18 00 6952 imul dx ; f7 ea 7347 jmp near 05693h ; e9 c3 02 7348 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7349 imul ax, ax, strict byte 00018h ; 6b c0 18 6953 7350 mov es, [bp-004h] ; 8e 46 fc 6954 7351 mov bx, si ; 89 f3 … … 6957 7354 mov cx, word [es:bx+026h] ; 26 8b 4f 26 6958 7355 mov dx, word [es:bx+02ah] ; 26 8b 57 2a 6959 mov word [bp-00 eh], dx ; 89 56 f26960 cmp ax, word [bp-006h] ; 3b 46 fa6961 j be short 056e3h ; 76 097356 mov word [bp-00ah], dx ; 89 56 f6 7357 cmp di, ax ; 39 c7 7358 jnc short 053fdh ; 73 0c 6962 7359 cmp cx, word [bp-008h] ; 3b 4e f8 6963 jbe short 056e3h ; 76 04 6964 cmp di, dx ; 39 d7 6965 jbe short 05714h ; 76 31 6966 mov bx, 00c16h ; bb 16 0c 7360 jbe short 053fdh ; 76 07 7361 mov ax, word [bp-006h] ; 8b 46 fa 7362 cmp ax, dx ; 39 d0 7363 jbe short 0542bh ; 76 2e 7364 mov bx, 00c08h ; bb 08 0c 6967 7365 mov cx, ds ; 8c d9 6968 7366 mov ax, strict word 00004h ; b8 04 00 6969 call 018bdh ; e8 cf c1 7367 call 018aeh ; e8 a6 c4 7368 push dword [bp-008h] ; 66 ff 76 f8 6970 7369 push di ; 57 6971 push word [bp-008h] ; ff 76 f86972 push word [bp-006h] ; ff 76 fa6973 7370 mov ax, word [bp+012h] ; 8b 46 12 6974 7371 xor ah, ah ; 30 e4 6975 7372 push ax ; 50 6976 mov al, byte [bp+017h] ; 8a 46 17 7373 mov ax, word [bp+016h] ; 8b 46 16 7374 shr ax, 008h ; c1 e8 08 6977 7375 push ax ; 50 6978 mov ax, 005d4h ; b8 d4 05 6979 push ax ; 50 6980 mov ax, 00668h ; b8 68 06 6981 push ax ; 50 6982 mov ax, strict word 00004h ; b8 04 00 6983 push ax ; 50 6984 call 018fah ; e8 ec c1 7376 push 005d4h ; 68 d4 05 7377 push 00668h ; 68 68 06 7378 push strict byte 00004h ; 6a 04 7379 call 018e9h ; e8 c4 c4 6985 7380 add sp, strict byte 00010h ; 83 c4 10 6986 jmp near 05 98fh ; e9 7b026987 mov a l, byte [bp+017h] ; 8a 46 176988 xor ah, ah ; 30 e47381 jmp near 05693h ; e9 68 02 7382 mov ax, word [bp+016h] ; 8b 46 16 7383 shr ax, 008h ; c1 e8 08 6989 7384 cmp ax, strict word 00004h ; 3d 04 00 6990 j e short 0573eh ; 74 206991 mov al, byte [bp-002h] ; 8a 46fe6992 mov dx, strict word 00018h ; ba 18 006993 imul dx ; f7 ea7385 jne short 05439h ; 75 03 7386 jmp near 05330h ; e9 f7 fe 7387 movzx bx, byte [bp-002h] ; 0f b6 5e fe 7388 imul bx, bx, strict byte 00018h ; 6b db 18 6994 7389 mov es, [bp-004h] ; 8e 46 fc 6995 mov bx, si ; 89 f3 6996 add bx, ax ; 01 c3 7390 add bx, si ; 01 f3 6997 7391 cmp cx, word [es:bx+02ch] ; 26 3b 4f 2c 6998 jne short 05 747h ; 75 147392 jne short 0545ah ; 75 0f 6999 7393 mov ax, word [es:bx+030h] ; 26 8b 47 30 7000 cmp ax, word [bp-00eh] ; 3b 46 f2 7001 je short 05741h ; 74 05 7002 jmp short 05747h ; eb 09 7003 jmp near 05851h ; e9 10 01 7394 cmp ax, word [bp-00ah] ; 3b 46 f6 7395 jne short 0545ah ; 75 06 7004 7396 cmp byte [bp-002h], 008h ; 80 7e fe 08 7005 jc short 05 776h ; 72 2f7006 mov ax, word [bp-006h] ; 8b 46 fa7397 jc short 0548ah ; 72 30 7398 mov ax, di ; 89 f8 7007 7399 xor dx, dx ; 31 d2 7008 7400 mov bx, cx ; 89 cb 7009 7401 xor cx, cx ; 31 c9 7010 call 08 dd2h ; e8 7f 367402 call 08829h ; e8 c4 33 7011 7403 xor bx, bx ; 31 db 7012 7404 add ax, word [bp-008h] ; 03 46 f8 7013 7405 adc dx, bx ; 11 da 7014 mov bx, word [bp-00 eh] ; 8b 5e f27406 mov bx, word [bp-00ah] ; 8b 5e f6 7015 7407 xor cx, cx ; 31 c9 7016 call 08 dd2h ; e8 70 367408 call 08829h ; e8 b5 33 7017 7409 xor bx, bx ; 31 db 7018 add ax, di ; 01 f8 7019 db 011h, 0dah, 005h, 0ffh, 0ffh, 089h, 046h, 0f4h, 083h, 0d2h, 0ffh, 089h, 056h, 0f0h, 031h, 0ffh 7020 db 08eh, 046h, 0fch, 026h, 0c7h, 044h, 014h, 000h, 000h, 026h, 0c7h, 044h, 016h, 000h, 000h, 026h 7021 db 0c7h, 044h, 018h, 000h, 000h, 08bh, 046h, 0f4h, 026h, 089h, 004h, 08bh, 046h, 0f0h, 026h, 089h 7022 db 044h, 002h, 08bh, 056h, 010h, 08bh, 046h, 006h, 026h, 089h, 054h, 004h, 026h, 089h, 044h, 006h 7023 db 08bh, 046h, 0f6h, 026h, 089h, 044h, 00ah, 026h, 0c7h, 044h, 00ch, 000h, 002h, 08bh, 046h, 0fah 7024 db 026h, 089h, 044h, 00eh, 08bh, 046h, 0f8h, 026h, 089h, 044h, 010h, 026h, 089h, 07ch, 012h, 08ah 7025 db 046h, 0feh, 026h, 088h, 044h, 008h, 030h, 0e4h, 0bah, 018h, 000h, 0f7h, 0eah, 089h, 0f3h, 001h 7026 db 0c3h, 026h, 08ah, 047h, 01eh, 030h, 0e4h, 089h, 0c3h, 0d1h, 0e3h, 0d1h, 0e3h, 08ah, 046h, 017h 7027 db 0d1h, 0e0h, 001h, 0c3h, 006h, 056h, 0ffh, 097h, 0fch, 0ffh, 089h, 0c2h, 08bh, 046h, 016h, 030h 7028 db 0c0h, 08eh, 046h, 0fch, 026h, 08bh, 05ch, 014h, 009h, 0c3h, 089h, 05eh, 016h, 084h, 0d2h, 074h 7029 db 04ah, 0bbh, 016h, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 0abh, 0c0h, 088h, 0d0h, 030h, 0e4h 7030 db 050h, 08ah, 046h, 017h, 050h, 0b8h, 0d4h, 005h, 050h, 0b8h, 0afh, 006h, 050h, 0b8h, 004h, 000h 7031 db 050h, 0e8h, 0d0h, 0c0h, 083h, 0c4h, 00ah, 08bh, 046h, 016h, 030h, 0e4h, 080h, 0cch, 00ch, 0e9h 7032 db 05fh, 001h, 0bbh, 016h, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 07ah, 0c0h, 0b8h, 0d0h, 006h 7033 db 050h, 0b8h, 004h, 000h, 050h, 0e8h, 0ach, 0c0h, 083h, 0c4h, 004h, 0c6h, 046h, 017h, 000h, 031h 7034 db 0dbh, 0bah, 074h, 000h, 0b8h, 040h, 000h, 0e8h, 0aeh, 0bdh, 080h, 066h, 01ch, 0feh, 089h, 0ech 7035 db 05dh, 0c3h, 08ah, 046h, 0feh, 0bah, 018h, 000h, 0f7h, 0eah, 08eh, 046h, 0fch, 089h, 0f3h, 001h 7036 db 0c3h, 026h, 08bh, 07fh, 028h, 026h, 08bh, 04fh, 026h, 026h, 08bh, 047h, 02ah, 089h, 046h, 0f2h 7037 db 026h, 08ah, 094h, 09eh, 001h, 030h, 0f6h, 088h, 076h, 016h, 08bh, 05eh, 014h, 04fh, 089h, 0f8h 7038 db 088h, 0c7h, 089h, 05eh, 014h, 0d1h, 0efh, 0d1h, 0efh, 081h, 0e7h, 0c0h, 000h, 08bh, 046h, 0f2h 7039 db 025h, 03fh, 000h, 009h, 0f8h, 030h, 0dbh, 009h, 0c3h, 089h, 05eh, 014h, 08bh, 05eh, 012h, 030h 7040 db 0ffh, 088h, 0cch, 030h, 0c0h, 02dh, 000h, 001h, 009h, 0c3h, 089h, 05eh, 012h, 089h, 0d8h, 030h 7041 db 0d8h, 009h, 0d0h, 089h, 046h, 012h, 0ebh, 083h, 08ah, 046h, 0feh, 099h, 02bh, 0c2h, 0d1h, 0f8h 7042 db 0bah, 006h, 000h, 0f7h, 0eah, 08eh, 046h, 0fch, 001h, 0c6h, 026h, 08bh, 094h, 0c2h, 001h, 083h 7043 db 0c2h, 007h, 0ech, 02ah, 0e4h, 024h, 0c0h, 03ch, 040h, 075h, 003h, 0e9h, 05dh, 0ffh, 08bh, 046h 7044 db 016h, 030h, 0e4h, 080h, 0cch, 0aah, 0e9h, 098h, 000h, 08ah, 046h, 0feh, 030h, 0e4h, 0bah, 018h 7045 db 000h, 0f7h, 0eah, 08eh, 046h, 0fch, 001h, 0c6h, 026h, 08bh, 044h, 02eh, 089h, 046h, 0fah, 026h 7046 db 08bh, 044h, 02ch, 089h, 046h, 0f8h, 026h, 08bh, 07ch, 030h, 08bh, 046h, 0fah, 031h, 0d2h, 08bh 7047 db 05eh, 0f8h, 031h, 0c9h, 0e8h, 0a5h, 034h, 089h, 0fbh, 031h, 0c9h, 0e8h, 09eh, 034h, 089h, 046h 7048 db 0f4h, 089h, 056h, 0f0h, 089h, 056h, 014h, 089h, 046h, 012h, 08bh, 046h, 016h, 030h, 0e4h, 080h 7049 db 0cch, 003h, 089h, 046h, 016h, 0e9h, 007h, 0ffh, 0bbh, 016h, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h 7050 db 0e8h, 064h, 0bfh, 08ah, 046h, 017h, 030h, 0e4h, 050h, 0b8h, 0d4h, 005h, 050h, 0b8h, 0eah, 006h 7051 db 050h, 0b8h, 004h, 000h, 050h, 0e8h, 08ch, 0bfh, 083h, 0c4h, 008h, 0e9h, 0ddh, 0feh, 0bbh, 016h 7052 db 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 03eh, 0bfh, 08ah, 046h, 017h, 030h, 0e4h, 050h, 0b8h 7053 db 0d4h, 005h, 050h, 0b8h, 01dh, 007h, 0e9h, 015h, 0fdh, 08bh, 046h, 016h, 030h, 0e4h, 080h, 0cch 7054 db 001h, 089h, 046h, 016h, 08ah, 05eh, 017h, 030h, 0ffh, 0bah, 074h, 000h, 0b8h, 040h, 000h, 0e8h 7055 db 066h, 0bch, 080h, 04eh, 01ch, 001h, 0e9h, 0b5h, 0feh, 066h, 05ah, 07eh, 05ah, 07eh, 05ah, 07eh 7056 db 05ah, 083h, 05eh, 0e0h, 05bh, 07eh, 05ah, 0e6h, 05bh, 083h, 05eh, 0cfh, 05eh, 0cfh, 05eh, 0cfh 7057 db 05eh, 0cfh, 05eh, 09ah, 05eh, 0cfh, 05eh, 0cfh, 05eh 7058 _int13_harddisk_ext: ; 0xf59cf LB 0x51b 7059 push bp ; 55 7060 mov bp, sp ; 89 e5 7061 sub sp, strict byte 00026h ; 83 ec 26 7410 add ax, word [bp-006h] ; 03 46 fa 7411 db 011h, 0dah, 005h, 0ffh, 0ffh, 089h, 046h, 0f0h, 083h, 0d2h, 0ffh, 089h, 056h, 0f2h, 089h, 05eh 7412 db 0fah, 08eh, 046h, 0fch, 066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h, 026h, 0c7h, 044h 7413 db 018h, 000h, 000h, 08bh, 046h, 0f0h, 026h, 089h, 004h, 08bh, 046h, 0f2h, 026h, 089h, 044h, 002h 7414 db 08bh, 046h, 010h, 08bh, 056h, 006h, 026h, 089h, 044h, 004h, 026h, 089h, 054h, 006h, 08bh, 046h 7415 db 0f4h, 026h, 089h, 044h, 00ah, 026h, 0c7h, 044h, 00ch, 000h, 002h, 026h, 089h, 07ch, 00eh, 08bh 7416 db 046h, 0f8h, 026h, 089h, 044h, 010h, 08bh, 046h, 0fah, 026h, 089h, 044h, 012h, 08ah, 046h, 0feh 7417 db 026h, 088h, 044h, 008h, 00fh, 0b6h, 046h, 0feh, 06bh, 0c0h, 018h, 089h, 0f3h, 001h, 0c3h, 026h 7418 db 00fh, 0b6h, 047h, 01eh, 089h, 0c3h, 0c1h, 0e3h, 002h, 08bh, 046h, 016h, 0c1h, 0e8h, 008h, 001h 7419 db 0c0h, 001h, 0c3h, 006h, 056h, 0ffh, 097h, 0fch, 0ffh, 089h, 0c2h, 08bh, 046h, 016h, 030h, 0c0h 7420 db 08eh, 046h, 0fch, 026h, 08bh, 05ch, 014h, 009h, 0c3h, 089h, 05eh, 016h, 084h, 0d2h, 00fh, 084h 7421 db 015h, 0feh, 0bbh, 008h, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 088h, 0c3h, 00fh, 0b6h, 0c2h 7422 db 050h, 08bh, 046h, 016h, 0c1h, 0e8h, 008h, 050h, 068h, 0d4h, 005h, 068h, 0afh, 006h, 06ah, 004h 7423 db 0e8h, 0adh, 0c3h, 083h, 0c4h, 00ah, 08bh, 046h, 016h, 030h, 0e4h, 080h, 0cch, 00ch, 0e9h, 051h 7424 db 001h, 0bbh, 008h, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 059h, 0c3h, 068h, 0d0h, 006h, 06ah 7425 db 004h, 0e8h, 08ch, 0c3h, 083h, 0c4h, 004h, 0e9h, 0cdh, 0fdh, 00fh, 0b6h, 046h, 0feh, 06bh, 0c0h 7426 db 018h, 08eh, 046h, 0fch, 089h, 0f3h, 001h, 0c3h, 026h, 08bh, 07fh, 028h, 026h, 08bh, 04fh, 026h 7427 db 026h, 08bh, 047h, 02ah, 089h, 046h, 0f6h, 026h, 00fh, 0b6h, 084h, 09eh, 001h, 089h, 046h, 0f4h 7428 db 0c6h, 046h, 016h, 000h, 08bh, 056h, 014h, 030h, 0f6h, 04fh, 089h, 0f8h, 030h, 0e4h, 0c1h, 0e0h 7429 db 008h, 009h, 0c2h, 089h, 056h, 014h, 0c1h, 0efh, 002h, 081h, 0e7h, 0c0h, 000h, 08bh, 046h, 0f6h 7430 db 030h, 0e4h, 024h, 03fh, 009h, 0c7h, 089h, 0d0h, 030h, 0d0h, 009h, 0f8h, 089h, 046h, 014h, 08bh 7431 db 056h, 012h, 030h, 0f6h, 089h, 0c8h, 0c1h, 0e0h, 008h, 02dh, 000h, 001h, 009h, 0c2h, 089h, 056h 7432 db 012h, 089h, 0d0h, 030h, 0d0h, 08bh, 056h, 0f4h, 009h, 0c2h, 089h, 056h, 012h, 0e9h, 057h, 0fdh 7433 db 00fh, 0b6h, 046h, 0feh, 099h, 02bh, 0c2h, 0d1h, 0f8h, 06bh, 0c0h, 006h, 08eh, 046h, 0fch, 001h 7434 db 0c6h, 026h, 08bh, 094h, 0c2h, 001h, 083h, 0c2h, 007h, 0ech, 02ah, 0e4h, 024h, 0c0h, 03ch, 040h 7435 db 075h, 003h, 0e9h, 032h, 0fdh, 08bh, 046h, 016h, 030h, 0e4h, 080h, 0cch, 0aah, 0e9h, 092h, 000h 7436 db 00fh, 0b6h, 046h, 0feh, 06bh, 0c0h, 018h, 08eh, 046h, 0fch, 001h, 0c6h, 026h, 08bh, 07ch, 02eh 7437 db 026h, 08bh, 044h, 02ch, 089h, 046h, 0f8h, 026h, 08bh, 044h, 030h, 089h, 046h, 0fah, 089h, 0f8h 7438 db 031h, 0d2h, 08bh, 05eh, 0f8h, 031h, 0c9h, 0e8h, 0f6h, 031h, 08bh, 05eh, 0fah, 031h, 0c9h, 0e8h 7439 db 0eeh, 031h, 089h, 046h, 0f0h, 089h, 056h, 0f2h, 089h, 056h, 014h, 089h, 046h, 012h, 08bh, 046h 7440 db 016h, 030h, 0e4h, 080h, 0cch, 003h, 089h, 046h, 016h, 0e9h, 0dfh, 0fch, 0bbh, 008h, 00ch, 08ch 7441 db 0d9h, 0b8h, 004h, 000h, 0e8h, 04eh, 0c2h, 08bh, 046h, 016h, 0c1h, 0e8h, 008h, 050h, 068h, 0d4h 7442 db 005h, 068h, 0eah, 006h, 06ah, 004h, 0e8h, 077h, 0c2h, 083h, 0c4h, 008h, 0e9h, 0b8h, 0fch, 0bbh 7443 db 008h, 00ch, 08ch, 0d9h, 0b8h, 004h, 000h, 0e8h, 02bh, 0c2h, 08bh, 046h, 016h, 0c1h, 0e8h, 008h 7444 db 050h, 068h, 0d4h, 005h, 068h, 01dh, 007h, 0e9h, 032h, 0fdh, 08bh, 046h, 016h, 030h, 0e4h, 080h 7445 db 0cch, 001h, 089h, 046h, 016h, 08bh, 05eh, 016h, 0c1h, 0ebh, 008h, 030h, 0ffh, 0bah, 074h, 000h 7446 db 0b8h, 040h, 000h, 0e8h, 05fh, 0bfh, 080h, 04eh, 01ch, 001h, 0c9h, 0c3h, 06eh, 057h, 086h, 057h 7447 db 086h, 057h, 086h, 057h, 035h, 05bh, 0c9h, 058h, 086h, 057h, 0cfh, 058h, 035h, 05bh, 082h, 05bh 7448 db 082h, 05bh, 082h, 05bh, 082h, 05bh, 04ah, 05bh, 082h, 05bh, 082h, 05bh 7449 _int13_harddisk_ext: ; 0xf56d5 LB 0x4c8 7450 enter 00028h, 000h ; c8 28 00 00 7062 7451 mov dx, strict word 0000eh ; ba 0e 00 7063 7452 mov ax, strict word 00040h ; b8 40 00 7064 call 0161ch ; e8 3 e bc7065 mov word [bp-01 8h], ax ; 89 46 e87453 call 0161ch ; e8 3a bf 7454 mov word [bp-014h], ax ; 89 46 ec 7066 7455 mov dx, strict word 0000eh ; ba 0e 00 7067 7456 mov ax, strict word 00040h ; b8 40 00 7068 call 0161ch ; e8 32 bc7069 mov di, 00122h ; bf22 017070 mov word [bp-0 04h], ax ; 89 46 fc7457 call 0161ch ; e8 2e bf 7458 mov si, 00122h ; be 22 01 7459 mov word [bp-026h], ax ; 89 46 da 7071 7460 xor bx, bx ; 31 db 7072 7461 mov dx, 0008eh ; ba 8e 00 7073 7462 mov ax, strict word 00040h ; b8 40 00 7074 call 0160eh ; e8 13 bc7463 call 0160eh ; e8 0f bf 7075 7464 mov ax, word [bp+00eh] ; 8b 46 0e 7076 7465 xor ah, ah ; 30 e4 7077 7466 cmp ax, 00080h ; 3d 80 00 7078 jc short 05 a0ah ; 72 057467 jc short 0570eh ; 72 05 7079 7468 cmp ax, 00090h ; 3d 90 00 7080 jc short 05 a29h ; 72 1f7469 jc short 0572ch ; 72 1e 7081 7470 mov ax, word [bp+00eh] ; 8b 46 0e 7082 7471 xor ah, ah ; 30 e4 7083 7472 push ax ; 50 7084 mov al, byte [bp+017h] ; 8a 46 17 7473 mov ax, word [bp+016h] ; 8b 46 16 7474 shr ax, 008h ; c1 e8 08 7085 7475 push ax ; 50 7086 mov ax, 0074bh ; b8 4b 07 7087 push ax ; 50 7088 mov ax, 005e3h ; b8 e3 05 7089 push ax ; 50 7090 mov ax, strict word 00004h ; b8 04 00 7091 push ax ; 50 7092 call 018fah ; e8 d7 be 7476 push 0074bh ; 68 4b 07 7477 push 005e3h ; 68 e3 05 7478 push strict byte 00004h ; 6a 04 7479 call 018e9h ; e8 c3 c1 7093 7480 add sp, strict byte 0000ah ; 83 c4 0a 7094 jmp near 05 eb0h ; e9 87047481 jmp near 05b60h ; e9 34 04 7095 7482 mov ax, word [bp+00eh] ; 8b 46 0e 7096 7483 xor ah, ah ; 30 e4 7097 mov es, [bp-0 04h] ; 8e 46 fc7098 mov bx, di ; 89 fb7484 mov es, [bp-026h] ; 8e 46 da 7485 mov bx, si ; 89 f3 7099 7486 add bx, ax ; 01 c3 7100 mov c h, byte [es:bx+0011fh] ; 26 8a af 1f 017101 cmp c h, 010h ; 80 fd107102 jc short 05 a4dh ; 72 0e7487 mov cl, byte [es:bx+0011fh] ; 26 8a 8f 1f 01 7488 cmp cl, 010h ; 80 f9 10 7489 jc short 05752h ; 72 10 7103 7490 push ax ; 50 7104 mov al, byte [bp+017h] ; 8a 46 17 7491 mov ax, word [bp+016h] ; 8b 46 16 7492 shr ax, 008h ; c1 e8 08 7105 7493 push ax ; 50 7106 mov ax, 0074bh ; b8 4b 07 7107 push ax ; 50 7108 mov ax, 0060eh ; b8 0e 06 7109 jmp short 05a1bh ; eb ce 7110 mov bl, byte [bp+017h] ; 8a 5e 17 7111 xor bh, bh ; 30 ff 7494 push 0074bh ; 68 4b 07 7495 push 0060eh ; 68 0e 06 7496 jmp short 05721h ; eb cf 7497 mov bx, word [bp+016h] ; 8b 5e 16 7498 shr bx, 008h ; c1 eb 08 7112 7499 sub bx, strict byte 00041h ; 83 eb 41 7113 7500 cmp bx, strict byte 0000fh ; 83 fb 0f 7114 jnbe short 05ac4h ; 77 6a7115 sal bx, 1 ; d1 e37501 jnbe near 05b82h ; 0f 87 20 04 7502 add bx, bx ; 01 db 7116 7503 mov ax, word [bp+016h] ; 8b 46 16 7117 7504 xor ah, ah ; 30 e4 7118 jmp word [cs:bx+05 9afh] ; 2e ff a7 af 597505 jmp word [cs:bx+056b5h] ; 2e ff a7 b5 56 7119 7506 mov word [bp+010h], 0aa55h ; c7 46 10 55 aa 7120 7507 mov ax, word [bp+016h] ; 8b 46 16 … … 7123 7510 mov word [bp+016h], ax ; 89 46 16 7124 7511 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 7125 jmp near 05 e87h ; e9 09 047512 jmp near 05b39h ; e9 b3 03 7126 7513 mov bx, word [bp+00ah] ; 8b 5e 0a 7127 7514 mov es, [bp+004h] ; 8e 46 04 7128 mov si, bx ; 89 de7129 mov [bp-01 4h], es ; 8c 46 ec7515 mov di, bx ; 89 df 7516 mov [bp-010h], es ; 8c 46 f0 7130 7517 mov ax, word [es:bx+002h] ; 26 8b 47 02 7518 mov word [bp-012h], ax ; 89 46 ee 7519 mov ax, word [es:bx+006h] ; 26 8b 47 06 7520 mov word [bp-018h], ax ; 89 46 e8 7521 mov ax, word [es:bx+004h] ; 26 8b 47 04 7131 7522 mov word [bp-016h], ax ; 89 46 ea 7132 mov ax, word [es:bx+006h] ; 26 8b 47 067133 mov word [bp-01ah], ax ; 89 46 e67134 mov ax, word [es:bx+004h] ; 26 8b 47 047135 mov word [bp-024h], ax ; 89 46 dc7136 7523 mov ax, word [es:bx+00ch] ; 26 8b 47 0c 7137 mov word [bp-00 eh], ax ; 89 46 f27524 mov word [bp-00ah], ax ; 89 46 f6 7138 7525 mov ax, word [es:bx+00eh] ; 26 8b 47 0e 7526 or ax, word [bp-00ah] ; 0b 46 f6 7527 je short 057c7h ; 74 11 7528 mov ax, word [bp+016h] ; 8b 46 16 7529 shr ax, 008h ; c1 e8 08 7530 push ax ; 50 7531 push 0074bh ; 68 4b 07 7532 push 0075eh ; 68 5e 07 7533 push strict byte 00007h ; 6a 07 7534 jmp short 05811h ; eb 4a 7535 mov es, [bp-010h] ; 8e 46 f0 7536 mov ax, word [es:di+008h] ; 26 8b 45 08 7139 7537 mov word [bp-00ah], ax ; 89 46 f6 7140 or ax, word [bp-00eh] ; 0b 46 f2 7141 je short 05ac7h ; 74 16 7142 mov al, byte [bp+017h] ; 8a 46 17 7143 xor ah, ah ; 30 e4 7144 push ax ; 50 7145 mov ax, 0074bh ; b8 4b 07 7146 push ax ; 50 7147 mov ax, 0075eh ; b8 5e 07 7148 push ax ; 50 7149 mov ax, strict word 00007h ; b8 07 00 7150 jmp short 05b1ch ; eb 58 7151 jmp near 05ecfh ; e9 08 04 7152 mov es, [bp-014h] ; 8e 46 ec 7153 mov ax, word [es:si+008h] ; 26 8b 44 08 7154 mov word [bp-00eh], ax ; 89 46 f2 7155 mov ax, word [es:si+00ah] ; 26 8b 44 0a 7156 mov word [bp-00ah], ax ; 89 46 f6 7157 mov al, ch ; 88 e8 7158 xor ah, ah ; 30 e4 7159 mov dx, strict word 00018h ; ba 18 00 7160 imul dx ; f7 ea 7161 mov es, [bp-004h] ; 8e 46 fc 7162 mov bx, di ; 89 fb 7163 add bx, ax ; 01 c3 7164 mov al, byte [es:bx+01eh] ; 26 8a 47 1e 7538 mov ax, word [es:di+00ah] ; 26 8b 45 0a 7539 movzx dx, cl ; 0f b6 d1 7540 imul dx, dx, strict byte 00018h ; 6b d2 18 7541 mov es, [bp-026h] ; 8e 46 da 7542 mov bx, si ; 89 f3 7543 add bx, dx ; 01 d3 7544 mov ch, byte [es:bx+01eh] ; 26 8a 6f 1e 7545 cmp ax, word [es:bx+034h] ; 26 3b 47 34 7546 jnbe short 057f7h ; 77 0b 7547 jne short 0581ah ; 75 2c 7165 7548 mov dx, word [bp-00ah] ; 8b 56 f6 7166 cmp dx, word [es:bx+034h] ; 26 3b 57 347167 jnbe short 05b00h ; 77 0b7168 jne short 05b26h ; 75 2f7169 mov dx, word [bp-00eh] ; 8b 56 f27170 7549 cmp dx, word [es:bx+032h] ; 26 3b 57 32 7171 jc short 05 b26h ; 72 267172 mov bx, 00c 16h ; bb 160c7550 jc short 0581ah ; 72 23 7551 mov bx, 00c08h ; bb 08 0c 7173 7552 mov cx, ds ; 8c d9 7174 7553 mov ax, strict word 00004h ; b8 04 00 7175 call 018 bdh ; e8 b2 bd7176 mov a l, byte [bp+017h] ; 8a 46 177177 xor ah, ah ; 30 e47554 call 018aeh ; e8 ac c0 7555 mov ax, word [bp+016h] ; 8b 46 16 7556 shr ax, 008h ; c1 e8 08 7178 7557 push ax ; 50 7179 mov ax, 0074bh ; b8 4b 07 7180 push ax ; 50 7181 mov ax, 00787h ; b8 87 07 7182 push ax ; 50 7183 mov ax, strict word 00004h ; b8 04 00 7184 push ax ; 50 7185 call 018fah ; e8 da bd 7558 push 0074bh ; 68 4b 07 7559 push 00787h ; 68 87 07 7560 push strict byte 00004h ; 6a 04 7561 call 018e9h ; e8 d5 c0 7186 7562 add sp, strict byte 00008h ; 83 c4 08 7187 jmp near 05eb0h ; e9 8a 03 7188 mov ah, byte [bp+017h] ; 8a 66 17 7189 mov byte [bp-010h], ah ; 88 66 f0 7190 mov byte [bp-00fh], 000h ; c6 46 f1 00 7191 cmp word [bp-010h], strict byte 00044h ; 83 7e f0 44 7192 je short 05b3ch ; 74 06 7193 cmp word [bp-010h], strict byte 00047h ; 83 7e f0 47 7194 jne short 05b3fh ; 75 03 7195 jmp near 05e83h ; e9 44 03 7196 mov es, [bp-004h] ; 8e 46 fc 7197 mov word [es:di+014h], strict word 00000h ; 26 c7 45 14 00 00 7198 mov word [es:di+016h], strict word 00000h ; 26 c7 45 16 00 00 7199 mov word [es:di+018h], strict word 00000h ; 26 c7 45 18 00 00 7200 mov dx, word [bp-00eh] ; 8b 56 f2 7201 mov word [es:di], dx ; 26 89 15 7563 jmp near 05b60h ; e9 46 03 7564 mov dx, word [bp+016h] ; 8b 56 16 7565 shr dx, 008h ; c1 ea 08 7566 mov word [bp-00ch], dx ; 89 56 f4 7567 cmp dx, strict byte 00044h ; 83 fa 44 7568 je near 05b35h ; 0f 84 0b 03 7569 cmp dx, strict byte 00047h ; 83 fa 47 7570 je near 05b35h ; 0f 84 04 03 7571 mov es, [bp-026h] ; 8e 46 da 7572 db 066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h 7573 ; mov dword [es:si+014h], strict dword 000000000h ; 66 26 c7 44 14 00 00 00 00 7574 mov word [es:si+018h], strict word 00000h ; 26 c7 44 18 00 00 7202 7575 mov dx, word [bp-00ah] ; 8b 56 f6 7203 mov word [es: di+002h], dx ; 26 89 55 027204 mov dx, word [bp-024h] ; 8b 56 dc7205 mov word [es:di+004h], dx ; 26 89 55 047206 mov dx, word [bp-01ah] ; 8b 56 e67207 mov word [es:di+006h], dx ; 26 89 55 067208 mov dx, word [bp-016h] ; 8b 56 ea7209 mov word [es:di+00ah], dx ; 26 89 55 0a7210 mov word [es: di+00ch], 00200h ; 26 c7 45 0c 00 027211 mov word [es: di+012h], strict word 00000h ; 26 c7 45 12 00 007212 mov byte [es:di+008h], ch ; 26 88 6d 087213 mov b x, word [bp-010h] ; 8b 5e f07214 sal bx, 1 ; d1 e37215 xor ah, ah ; 30 e47216 sal ax, 1 ; d1 e07217 sal ax, 1 ; d1 e07576 mov word [es:si], dx ; 26 89 14 7577 mov word [es:si+002h], ax ; 26 89 44 02 7578 mov ax, word [bp-016h] ; 8b 46 ea 7579 mov word [es:si+004h], ax ; 26 89 44 04 7580 mov ax, word [bp-018h] ; 8b 46 e8 7581 mov word [es:si+006h], ax ; 26 89 44 06 7582 mov ax, word [bp-012h] ; 8b 46 ee 7583 mov word [es:si+00ah], ax ; 26 89 44 0a 7584 mov word [es:si+00ch], 00200h ; 26 c7 44 0c 00 02 7585 mov word [es:si+012h], strict word 00000h ; 26 c7 44 12 00 00 7586 mov byte [es:si+008h], cl ; 26 88 4c 08 7587 mov bx, word [bp-00ch] ; 8b 5e f4 7588 add bx, bx ; 01 db 7589 movzx ax, ch ; 0f b6 c5 7590 sal ax, 002h ; c1 e0 02 7218 7591 add bx, ax ; 01 c3 7219 7592 push ES ; 06 7220 push di ; 577593 push si ; 56 7221 7594 call word [bx-00084h] ; ff 97 7c ff 7222 7595 mov dx, ax ; 89 c2 7223 mov es, [bp-0 04h] ; 8e 46 fc7224 mov ax, word [es: di+014h] ; 26 8b 45147225 mov word [bp-01 6h], ax ; 89 46 ea7226 mov es, [bp-01 4h] ; 8e 46 ec7227 mov word [es: si+002h], ax ; 26 89 44027596 mov es, [bp-026h] ; 8e 46 da 7597 mov ax, word [es:si+014h] ; 26 8b 44 14 7598 mov word [bp-012h], ax ; 89 46 ee 7599 mov es, [bp-010h] ; 8e 46 f0 7600 mov word [es:di+002h], ax ; 26 89 45 02 7228 7601 test dl, dl ; 84 d2 7229 je short 05b3ch ; 74 8c7230 mov bx, 00c 16h ; bb 160c7602 je near 05b35h ; 0f 84 97 02 7603 mov bx, 00c08h ; bb 08 0c 7231 7604 mov cx, ds ; 8c d9 7232 7605 mov ax, strict word 00004h ; b8 04 00 7233 call 018bdh ; e8 02 bd 7234 mov al, dl ; 88 d0 7235 xor ah, ah ; 30 e4 7606 call 018aeh ; e8 05 c0 7607 movzx ax, dl ; 0f b6 c2 7236 7608 push ax ; 50 7237 push word [bp-010h] ; ff 76 f0 7238 mov ax, 0074bh ; b8 4b 07 7239 push ax ; 50 7240 mov ax, 006afh ; b8 af 06 7241 push ax ; 50 7242 mov ax, strict word 00004h ; b8 04 00 7243 push ax ; 50 7244 call 018fah ; e8 28 bd 7609 push word [bp-00ch] ; ff 76 f4 7610 push 0074bh ; 68 4b 07 7611 push 006afh ; 68 af 06 7612 push strict byte 00004h ; 6a 04 7613 call 018e9h ; e8 2e c0 7245 7614 add sp, strict byte 0000ah ; 83 c4 0a 7246 7615 mov ax, word [bp+016h] ; 8b 46 16 7247 7616 xor ah, ah ; 30 e4 7248 7617 or ah, 00ch ; 80 cc 0c 7249 jmp near 05 eb8h ; e9 d8027618 jmp near 05b68h ; e9 9f 02 7250 7619 or ah, 0b2h ; 80 cc b2 7251 jmp near 05 eb8h ; e9 d2027620 jmp near 05b68h ; e9 99 02 7252 7621 mov bx, word [bp+00ah] ; 8b 5e 0a 7253 7622 mov ax, word [bp+004h] ; 8b 46 04 7254 mov word [bp-008h], ax ; 89 46 f87255 mov si, bx ; 89 de7256 7623 mov word [bp-006h], ax ; 89 46 fa 7624 mov word [bp-004h], ax ; 89 46 fc 7257 7625 mov es, ax ; 8e c0 7258 mov ax, word [es:bx] ; 26 8b 07 7259 mov word [bp-012h], ax ; 89 46 ee 7626 mov di, bx ; 89 df 7627 mov ax, word [es:di] ; 26 8b 05 7628 mov word [bp-00eh], ax ; 89 46 f2 7260 7629 cmp ax, strict word 0001ah ; 3d 1a 00 7261 jnc short 05c04h ; 73 03 7262 jmp near 05eb0h ; e9 ac 02 7263 jnc short 05c09h ; 73 03 7264 jmp near 05c8fh ; e9 86 00 7265 mov al, ch ; 88 e8 7266 xor ah, ah ; 30 e4 7267 mov dx, strict word 00018h ; ba 18 00 7268 imul dx ; f7 ea 7630 jc near 05b60h ; 0f 82 74 02 7631 jc near 05973h ; 0f 82 83 00 7632 movzx ax, cl ; 0f b6 c1 7633 imul ax, ax, strict byte 00018h ; 6b c0 18 7634 mov es, [bp-026h] ; 8e 46 da 7635 mov di, si ; 89 f7 7636 add di, ax ; 01 c7 7637 mov ax, word [es:di+02eh] ; 26 8b 45 2e 7638 mov word [bp-028h], ax ; 89 46 d8 7639 mov ax, word [es:di+02ch] ; 26 8b 45 2c 7640 mov word [bp-01eh], ax ; 89 46 e2 7641 mov ax, word [es:di+030h] ; 26 8b 45 30 7642 mov word [bp-024h], ax ; 89 46 dc 7643 mov ax, word [es:di+032h] ; 26 8b 45 32 7644 mov word [bp-00ah], ax ; 89 46 f6 7645 mov ax, word [es:di+034h] ; 26 8b 45 34 7646 mov dx, word [es:di+024h] ; 26 8b 55 24 7647 mov word [bp-022h], dx ; 89 56 de 7648 mov es, [bp-006h] ; 8e 46 fa 7649 mov di, bx ; 89 df 7650 db 066h, 026h, 0c7h, 005h, 01ah, 000h, 002h, 000h 7651 ; mov dword [es:di], strict dword 00002001ah ; 66 26 c7 05 1a 00 02 00 7652 mov dx, word [bp-028h] ; 8b 56 d8 7653 mov word [es:di+004h], dx ; 26 89 55 04 7654 mov word [es:di+006h], strict word 00000h ; 26 c7 45 06 00 00 7655 mov dx, word [bp-01eh] ; 8b 56 e2 7656 mov word [es:di+008h], dx ; 26 89 55 08 7657 mov word [es:di+00ah], strict word 00000h ; 26 c7 45 0a 00 00 7658 mov dx, word [bp-024h] ; 8b 56 dc 7659 mov word [es:di+00ch], dx ; 26 89 55 0c 7660 mov word [es:di+00eh], strict word 00000h ; 26 c7 45 0e 00 00 7661 mov dx, word [bp-022h] ; 8b 56 de 7662 mov word [es:di+018h], dx ; 26 89 55 18 7663 mov dx, word [bp-00ah] ; 8b 56 f6 7664 mov word [es:di+010h], dx ; 26 89 55 10 7665 mov word [es:di+012h], ax ; 26 89 45 12 7666 db 066h, 026h, 0c7h, 045h, 014h, 000h, 000h, 000h, 000h 7667 ; mov dword [es:di+014h], strict dword 000000000h ; 66 26 c7 45 14 00 00 00 00 7668 cmp word [bp-00eh], strict byte 0001eh ; 83 7e f2 1e 7669 jc near 05a7fh ; 0f 82 04 01 7269 7670 mov es, [bp-004h] ; 8e 46 fc 7270 mov bx, di ; 89 fb 7271 add bx, ax ; 01 c3 7272 mov ax, word [es:bx+02eh] ; 26 8b 47 2e 7273 mov dx, word [es:bx+02ch] ; 26 8b 57 2c 7274 mov word [bp-022h], dx ; 89 56 de 7275 mov dx, word [es:bx+030h] ; 26 8b 57 30 7276 mov word [bp-026h], dx ; 89 56 da 7277 mov dx, word [es:bx+032h] ; 26 8b 57 32 7278 mov word [bp-00eh], dx ; 89 56 f2 7279 mov dx, word [es:bx+034h] ; 26 8b 57 34 7280 mov word [bp-00ah], dx ; 89 56 f6 7281 mov dx, word [es:bx+024h] ; 26 8b 57 24 7282 mov es, [bp-008h] ; 8e 46 f8 7283 mov bx, si ; 89 f3 7284 mov word [es:bx], strict word 0001ah ; 26 c7 07 1a 00 7285 mov word [es:bx+002h], strict word 00002h ; 26 c7 47 02 02 00 7286 mov word [es:bx+004h], ax ; 26 89 47 04 7287 mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00 7288 mov ax, word [bp-022h] ; 8b 46 de 7289 mov word [es:bx+008h], ax ; 26 89 47 08 7290 mov word [es:bx+00ah], strict word 00000h ; 26 c7 47 0a 00 00 7291 mov ax, word [bp-026h] ; 8b 46 da 7292 mov word [es:bx+00ch], ax ; 26 89 47 0c 7293 mov word [es:bx+00eh], strict word 00000h ; 26 c7 47 0e 00 00 7294 mov word [es:bx+018h], dx ; 26 89 57 18 7295 mov ax, word [bp-00eh] ; 8b 46 f2 7296 mov word [es:bx+010h], ax ; 26 89 47 10 7297 mov ax, word [bp-00ah] ; 8b 46 f6 7298 mov word [es:bx+012h], ax ; 26 89 47 12 7299 mov word [es:bx+014h], strict word 00000h ; 26 c7 47 14 00 00 7300 mov word [es:bx+016h], strict word 00000h ; 26 c7 47 16 00 00 7301 cmp word [bp-012h], strict byte 0001eh ; 83 7e ee 1e 7302 jc short 05cfbh ; 72 66 7303 mov es, [bp-006h] ; 8e 46 fa 7304 mov word [es:si], strict word 0001eh ; 26 c7 04 1e 00 7305 mov ax, word [bp-018h] ; 8b 46 e8 7306 mov word [es:si+01ch], ax ; 26 89 44 1c 7307 mov word [es:si+01ah], 00312h ; 26 c7 44 1a 12 03 7308 mov byte [bp-020h], ch ; 88 6e e0 7309 mov byte [bp-01fh], 000h ; c6 46 e1 00 7310 mov ax, word [bp-020h] ; 8b 46 e0 7671 mov word [es:bx], strict word 0001eh ; 26 c7 07 1e 00 7672 mov ax, word [bp-014h] ; 8b 46 ec 7673 mov word [es:bx+01ch], ax ; 26 89 47 1c 7674 mov word [es:bx+01ah], 00312h ; 26 c7 47 1a 12 03 7675 movzx ax, cl ; 0f b6 c1 7676 mov word [bp-020h], ax ; 89 46 e0 7677 cwd ; 99 7678 db 02bh, 0c2h 7679 ; sub ax, dx ; 2b c2 7680 sar ax, 1 ; d1 f8 7681 movzx di, al ; 0f b6 f8 7682 imul di, di, strict byte 00006h ; 6b ff 06 7683 mov es, [bp-026h] ; 8e 46 da 7684 add di, si ; 01 f7 7685 mov ax, word [es:di+001c2h] ; 26 8b 85 c2 01 7686 mov word [bp-01ah], ax ; 89 46 e6 7687 mov ax, word [es:di+001c4h] ; 26 8b 85 c4 01 7688 mov word [bp-01ch], ax ; 89 46 e4 7689 mov ch, byte [es:di+001c1h] ; 26 8a ad c1 01 7690 imul di, word [bp-020h], strict byte 00018h ; 6b 7e e0 18 7691 add di, si ; 01 f7 7692 mov ah, byte [es:di+022h] ; 26 8a 65 22 7693 mov al, byte [es:di+023h] ; 26 8a 45 23 7694 test al, al ; 84 c0 7695 jne short 059d1h ; 75 04 7696 xor dx, dx ; 31 d2 7697 jmp short 059d4h ; eb 03 7698 mov dx, strict word 00008h ; ba 08 00 7699 or dl, 010h ; 80 ca 10 7700 mov word [bp-008h], dx ; 89 56 f8 7701 cmp ah, 001h ; 80 fc 01 7702 db 00fh, 094h, 0c4h 7703 ; sete ah ; 0f 94 c4 7704 movzx dx, ah ; 0f b6 d4 7705 or word [bp-008h], dx ; 09 56 f8 7706 cmp AL, strict byte 001h ; 3c 01 7707 db 00fh, 094h, 0c4h 7708 ; sete ah ; 0f 94 c4 7709 movzx dx, ah ; 0f b6 d4 7710 or word [bp-008h], dx ; 09 56 f8 7711 cmp AL, strict byte 003h ; 3c 03 7712 jne short 059fah ; 75 05 7713 mov ax, strict word 00003h ; b8 03 00 7714 jmp short 059fch ; eb 02 7715 xor ax, ax ; 31 c0 7716 or word [bp-008h], ax ; 09 46 f8 7717 mov ax, word [bp-01ah] ; 8b 46 e6 7718 mov es, [bp-026h] ; 8e 46 da 7719 mov word [es:si+001f0h], ax ; 26 89 84 f0 01 7720 mov ax, word [bp-01ch] ; 8b 46 e4 7721 mov word [es:si+001f2h], ax ; 26 89 84 f2 01 7722 movzx ax, cl ; 0f b6 c1 7723 cwd ; 99 7724 mov di, strict word 00002h ; bf 02 00 7725 idiv di ; f7 ff 7726 or dl, 00eh ; 80 ca 0e 7727 sal dx, 004h ; c1 e2 04 7728 mov byte [es:si+001f4h], dl ; 26 88 94 f4 01 7729 mov byte [es:si+001f5h], 0cbh ; 26 c6 84 f5 01 cb 7730 mov byte [es:si+001f6h], ch ; 26 88 ac f6 01 7731 mov word [es:si+001f7h], strict word 00001h ; 26 c7 84 f7 01 01 00 7732 mov byte [es:si+001f9h], 000h ; 26 c6 84 f9 01 00 7733 mov ax, word [bp-008h] ; 8b 46 f8 7734 mov word [es:si+001fah], ax ; 26 89 84 fa 01 7735 mov word [es:si+001fch], strict word 00000h ; 26 c7 84 fc 01 00 00 7736 mov byte [es:si+001feh], 011h ; 26 c6 84 fe 01 11 7737 xor ch, ch ; 30 ed 7738 mov byte [bp-002h], ch ; 88 6e fe 7739 jmp short 05a60h ; eb 06 7740 cmp byte [bp-002h], 00fh ; 80 7e fe 0f 7741 jnc short 05a75h ; 73 15 7742 movzx dx, byte [bp-002h] ; 0f b6 56 fe 7743 add dx, 00312h ; 81 c2 12 03 7744 mov ax, word [bp-014h] ; 8b 46 ec 7745 call 01600h ; e8 92 bb 7746 add ch, al ; 00 c5 7747 inc byte [bp-002h] ; fe 46 fe 7748 jmp short 05a5ah ; eb e5 7749 neg ch ; f6 dd 7750 mov es, [bp-026h] ; 8e 46 da 7751 mov byte [es:si+001ffh], ch ; 26 88 ac ff 01 7752 cmp word [bp-00eh], strict byte 00042h ; 83 7e f2 42 7753 jc near 05b35h ; 0f 82 ae 00 7754 movzx ax, cl ; 0f b6 c1 7311 7755 cwd ; 99 7312 7756 db 02bh, 0c2h … … 7314 7758 sar ax, 1 ; d1 f8 7315 7759 xor ah, ah ; 30 e4 7316 mov dx, strict word 00006h ; ba 06 00 7317 imul dx ; f7 ea 7760 imul ax, ax, strict byte 00006h ; 6b c0 06 7761 mov es, [bp-026h] ; 8e 46 da 7762 add si, ax ; 01 c6 7763 mov al, byte [es:si+001c0h] ; 26 8a 84 c0 01 7764 mov dx, word [es:si+001c2h] ; 26 8b 94 c2 01 7318 7765 mov es, [bp-004h] ; 8e 46 fc 7319 mov bx, di ; 89 fb 7320 add bx, ax ; 01 c3 7321 mov ax, word [es:bx+001c2h] ; 26 8b 87 c2 01 7322 mov word [bp-01ch], ax ; 89 46 e4 7323 mov ax, word [es:bx+001c4h] ; 26 8b 87 c4 01 7324 mov word [bp-01eh], ax ; 89 46 e2 7325 mov al, byte [es:bx+001c1h] ; 26 8a 87 c1 01 7326 mov byte [bp-002h], al ; 88 46 fe 7327 mov ax, word [bp-020h] ; 8b 46 e0 7328 mov dx, strict word 00018h ; ba 18 00 7329 imul dx ; f7 ea 7330 mov bx, di ; 89 fb 7331 add bx, ax ; 01 c3 7332 mov ah, byte [es:bx+022h] ; 26 8a 67 22 7333 mov al, byte [es:bx+023h] ; 26 8a 47 23 7766 mov word [es:bx], strict word 00042h ; 26 c7 07 42 00 7767 db 066h, 026h, 0c7h, 047h, 01eh, 0ddh, 0beh, 024h, 000h 7768 ; mov dword [es:bx+01eh], strict dword 00024beddh ; 66 26 c7 47 1e dd be 24 00 7769 mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00 7334 7770 test al, al ; 84 c0 7335 jne short 05cfeh ; 75 07 7336 xor dx, dx ; 31 d2 7337 jmp short 05d01h ; eb 06 7338 jmp near 05db4h ; e9 b6 00 7339 mov dx, strict word 00008h ; ba 08 00 7340 or dl, 010h ; 80 ca 10 7341 mov word [bp-00ch], dx ; 89 56 f4 7342 cmp ah, 001h ; 80 fc 01 7343 jne short 05d11h ; 75 05 7344 mov dx, strict word 00001h ; ba 01 00 7345 jmp short 05d13h ; eb 02 7346 xor dx, dx ; 31 d2 7347 or word [bp-00ch], dx ; 09 56 f4 7348 cmp AL, strict byte 001h ; 3c 01 7349 jne short 05d1fh ; 75 05 7350 mov dx, strict word 00001h ; ba 01 00 7351 jmp short 05d21h ; eb 02 7352 xor dx, dx ; 31 d2 7353 or word [bp-00ch], dx ; 09 56 f4 7354 cmp AL, strict byte 003h ; 3c 03 7355 jne short 05d2dh ; 75 05 7356 mov ax, strict word 00003h ; b8 03 00 7357 jmp short 05d2fh ; eb 02 7358 xor ax, ax ; 31 c0 7359 or word [bp-00ch], ax ; 09 46 f4 7360 mov ax, word [bp-01ch] ; 8b 46 e4 7771 jne short 05ac7h ; 75 09 7772 db 066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h 7773 ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20 7361 7774 mov es, [bp-004h] ; 8e 46 fc 7362 mov word [es:di+001f0h], ax ; 26 89 85 f0 01 7363 mov ax, word [bp-01eh] ; 8b 46 e2 7364 mov word [es:di+001f2h], ax ; 26 89 85 f2 01 7365 mov al, ch ; 88 e8 7366 xor ah, ah ; 30 e4 7367 cwd ; 99 7368 mov bx, strict word 00002h ; bb 02 00 7369 idiv bx ; f7 fb 7370 or dl, 00eh ; 80 ca 0e 7371 mov CL, strict byte 004h ; b1 04 7372 sal dx, CL ; d3 e2 7373 mov byte [es:di+001f4h], dl ; 26 88 95 f4 01 7374 mov byte [es:di+001f5h], 0cbh ; 26 c6 85 f5 01 cb 7375 mov al, byte [bp-002h] ; 8a 46 fe 7376 mov byte [es:di+001f6h], al ; 26 88 85 f6 01 7377 mov word [es:di+001f7h], strict word 00001h ; 26 c7 85 f7 01 01 00 7378 mov byte [es:di+001f9h], 000h ; 26 c6 85 f9 01 00 7379 mov ax, word [bp-00ch] ; 8b 46 f4 7380 mov word [es:di+001fah], ax ; 26 89 85 fa 01 7381 mov word [es:di+001fch], strict word 00000h ; 26 c7 85 fc 01 00 00 7382 mov byte [es:di+001feh], 011h ; 26 c6 85 fe 01 11 7383 xor bl, bl ; 30 db 7384 xor bh, bh ; 30 ff 7385 jmp short 05d96h ; eb 05 7386 cmp bh, 00fh ; 80 ff 0f 7387 jnc short 05daah ; 73 14 7388 mov dl, bh ; 88 fa 7389 xor dh, dh ; 30 f6 7390 add dx, 00312h ; 81 c2 12 03 7391 mov ax, word [bp-018h] ; 8b 46 e8 7392 call 01600h ; e8 5c b8 7393 add bl, al ; 00 c3 7394 db 0feh, 0c7h 7395 ; inc bh ; fe c7 7396 jmp short 05d91h ; eb e7 7397 neg bl ; f6 db 7398 mov es, [bp-004h] ; 8e 46 fc 7399 mov byte [es:di+001ffh], bl ; 26 88 9d ff 01 7400 cmp word [bp-012h], strict byte 00042h ; 83 7e ee 42 7401 jnc short 05dbdh ; 73 03 7402 jmp near 05e83h ; e9 c6 00 7403 mov al, ch ; 88 e8 7404 xor ah, ah ; 30 e4 7405 cwd ; 99 7406 db 02bh, 0c2h 7407 ; sub ax, dx ; 2b c2 7408 sar ax, 1 ; d1 f8 7409 xor ah, ah ; 30 e4 7410 mov dx, strict word 00006h ; ba 06 00 7411 imul dx ; f7 ea 7412 mov es, [bp-004h] ; 8e 46 fc 7413 add di, ax ; 01 c7 7414 mov al, byte [es:di+001c0h] ; 26 8a 85 c0 01 7415 mov dx, word [es:di+001c2h] ; 26 8b 95 c2 01 7416 mov es, [bp-006h] ; 8e 46 fa 7417 mov word [es:si], strict word 00042h ; 26 c7 04 42 00 7418 mov word [es:si+01eh], 0beddh ; 26 c7 44 1e dd be 7419 mov word [es:si+020h], strict word 00024h ; 26 c7 44 20 24 00 7420 mov word [es:si+022h], strict word 00000h ; 26 c7 44 22 00 00 7775 db 066h, 026h, 0c7h, 047h, 028h, 041h, 054h, 041h, 020h 7776 ; mov dword [es:bx+028h], strict dword 020415441h ; 66 26 c7 47 28 41 54 41 20 7777 db 066h, 026h, 0c7h, 047h, 02ch, 020h, 020h, 020h, 020h 7778 ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20 7421 7779 test al, al ; 84 c0 7422 jne short 05e06h ; 75 0c 7423 mov word [es:si+024h], 05349h ; 26 c7 44 24 49 53 7424 mov word [es:si+026h], 02041h ; 26 c7 44 26 41 20 7425 mov es, [bp-006h] ; 8e 46 fa 7426 mov word [es:si+028h], 05441h ; 26 c7 44 28 41 54 7427 mov word [es:si+02ah], 02041h ; 26 c7 44 2a 41 20 7428 mov word [es:si+02ch], 02020h ; 26 c7 44 2c 20 20 7429 mov word [es:si+02eh], 02020h ; 26 c7 44 2e 20 20 7430 test al, al ; 84 c0 7431 jne short 05e3bh ; 75 16 7432 mov word [es:si+030h], dx ; 26 89 54 30 7433 mov word [es:si+032h], strict word 00000h ; 26 c7 44 32 00 00 7434 mov word [es:si+034h], strict word 00000h ; 26 c7 44 34 00 00 7435 mov word [es:si+036h], strict word 00000h ; 26 c7 44 36 00 00 7436 mov al, ch ; 88 e8 7780 jne short 05af3h ; 75 13 7781 mov word [es:bx+030h], dx ; 26 89 57 30 7782 db 066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h 7783 ; mov dword [es:bx+032h], strict dword 000000000h ; 66 26 c7 47 32 00 00 00 00 7784 mov word [es:bx+036h], strict word 00000h ; 26 c7 47 36 00 00 7785 mov al, cl ; 88 c8 7437 7786 and AL, strict byte 001h ; 24 01 7438 7787 xor ah, ah ; 30 e4 7439 mov es, [bp-006h] ; 8e 46 fa 7440 mov word [es:si+038h], ax ; 26 89 44 38 7441 mov word [es:si+03ah], strict word 00000h ; 26 c7 44 3a 00 00 7442 mov word [es:si+03ch], strict word 00000h ; 26 c7 44 3c 00 00 7443 mov word [es:si+03eh], strict word 00000h ; 26 c7 44 3e 00 00 7444 xor bl, bl ; 30 db 7445 mov BH, strict byte 01eh ; b7 1e 7446 jmp short 05e65h ; eb 05 7447 cmp bh, 040h ; 80 ff 40 7448 jnc short 05e7ah ; 73 15 7449 mov al, bh ; 88 f8 7450 xor ah, ah ; 30 e4 7451 mov dx, word [bp+00ah] ; 8b 56 0a 7452 add dx, ax ; 01 c2 7788 mov es, [bp-004h] ; 8e 46 fc 7789 mov word [es:bx+038h], ax ; 26 89 47 38 7790 db 066h, 026h, 0c7h, 047h, 03ah, 000h, 000h, 000h, 000h 7791 ; mov dword [es:bx+03ah], strict dword 000000000h ; 66 26 c7 47 3a 00 00 00 00 7792 mov word [es:bx+03eh], strict word 00000h ; 26 c7 47 3e 00 00 7793 xor cl, cl ; 30 c9 7794 mov CH, strict byte 01eh ; b5 1e 7795 jmp short 05b1ah ; eb 05 7796 cmp ch, 040h ; 80 fd 40 7797 jnc short 05b2ch ; 73 12 7798 movzx dx, ch ; 0f b6 d5 7799 add dx, word [bp+00ah] ; 03 56 0a 7453 7800 mov ax, word [bp+004h] ; 8b 46 04 7454 call 01600h ; e8 8c b77455 add bl, al ; 00 c37456 db 0feh, 0c 7h7457 ; inc bh ; fe c77458 jmp short 05 e60h ; eb e67459 neg bl ; f6 db7460 mov es, [bp-00 6h] ; 8e 46 fa7461 mov byte [es: si+041h], bl ; 26 88 5c417801 call 01600h ; e8 da ba 7802 add cl, al ; 00 c1 7803 db 0feh, 0c5h 7804 ; inc ch ; fe c5 7805 jmp short 05b15h ; eb e9 7806 neg cl ; f6 d9 7807 mov es, [bp-004h] ; 8e 46 fc 7808 mov byte [es:bx+041h], cl ; 26 88 4f 41 7462 7809 mov byte [bp+017h], 000h ; c6 46 17 00 7463 7810 xor bx, bx ; 31 db 7464 7811 mov dx, strict word 00074h ; ba 74 00 7465 7812 mov ax, strict word 00040h ; b8 40 00 7466 call 0160eh ; e8 7c b77813 call 0160eh ; e8 ca ba 7467 7814 and byte [bp+01ch], 0feh ; 80 66 1c fe 7468 mov sp, bp ; 89 ec 7469 pop bp ; 5d 7815 leave ; c9 7470 7816 retn ; c3 7471 7817 cmp ax, strict word 00006h ; 3d 06 00 7472 je short 05 e83h ; 74 e47818 je short 05b35h ; 74 e6 7473 7819 cmp ax, strict word 00001h ; 3d 01 00 7474 jc short 05 eb0h ; 72 0c7475 jbe short 05 e83h ; 76 dd7820 jc short 05b60h ; 72 0c 7821 jbe short 05b35h ; 76 df 7476 7822 cmp ax, strict word 00003h ; 3d 03 00 7477 jc short 05 eb0h ; 72 057823 jc short 05b60h ; 72 05 7478 7824 cmp ax, strict word 00004h ; 3d 04 00 7479 jbe short 05 e83h ; 76 d37825 jbe short 05b35h ; 76 d5 7480 7826 mov ax, word [bp+016h] ; 8b 46 16 7481 7827 xor ah, ah ; 30 e4 7482 7828 or ah, 001h ; 80 cc 01 7483 7829 mov word [bp+016h], ax ; 89 46 16 7484 mov bl, byte [bp+017h] ; 8a 5e 17 7830 mov bx, word [bp+016h] ; 8b 5e 16 7831 shr bx, 008h ; c1 eb 08 7485 7832 xor bh, bh ; 30 ff 7486 7833 mov dx, strict word 00074h ; ba 74 00 7487 7834 mov ax, strict word 00040h ; b8 40 00 7488 call 0160eh ; e8 45 b77835 call 0160eh ; e8 92 ba 7489 7836 or byte [bp+01ch], 001h ; 80 4e 1c 01 7490 jmp short 05e96h ; eb c7 7491 mov bx, 00c16h ; bb 16 0c 7837 leave ; c9 7838 retn ; c3 7839 mov bx, 00c08h ; bb 08 0c 7492 7840 mov cx, ds ; 8c d9 7493 7841 mov ax, strict word 00004h ; b8 04 00 7494 call 018 bdh ; e8 e3 b97495 mov a l, byte [bp+017h] ; 8a 46 177496 xor ah, ah ; 30 e47842 call 018aeh ; e8 21 bd 7843 mov ax, word [bp+016h] ; 8b 46 16 7844 shr ax, 008h ; c1 e8 08 7497 7845 push ax ; 50 7498 mov ax, 0074bh ; b8 4b 07 7499 push ax ; 50 7500 mov ax, 0071dh ; b8 1d 07 7501 jmp near 05b18h ; e9 2e fc 7502 _int14_function: ; 0xf5eea LB 0x156 7846 push 0074bh ; 68 4b 07 7847 push 0071dh ; 68 1d 07 7848 jmp near 0580fh ; e9 72 fc 7849 _int14_function: ; 0xf5b9d LB 0x154 7503 7850 push si ; 56 7504 7851 push bp ; 55 … … 7506 7853 sti ; fb 7507 7854 mov dx, word [bp+010h] ; 8b 56 10 7508 sal dx, 1 ; d1 e27509 mov ax, strict word 00040h ; b8 40 00 7510 call 0161ch ; e8 22 b77855 add dx, dx ; 01 d2 7856 mov ax, strict word 00040h ; b8 40 00 7857 call 0161ch ; e8 6f ba 7511 7858 mov si, ax ; 89 c6 7512 7859 mov bx, ax ; 89 c3 … … 7514 7861 add dx, strict byte 0007ch ; 83 c2 7c 7515 7862 mov ax, strict word 00040h ; b8 40 00 7516 call 01600h ; e8 f6 b67863 call 01600h ; e8 43 ba 7517 7864 mov cl, al ; 88 c1 7518 7865 cmp word [bp+010h], strict byte 00004h ; 83 7e 10 04 7519 jnc short 05f16h ; 73 047866 jnc near 05ceah ; 0f 83 23 01 7520 7867 test si, si ; 85 f6 7521 jnbe short 05f19h ; 77 03 7522 jmp near 06039h ; e9 20 01 7868 jbe near 05ceah ; 0f 86 1d 01 7523 7869 mov al, byte [bp+015h] ; 8a 46 15 7524 7870 cmp AL, strict byte 001h ; 3c 01 7525 jc short 05 f2dh ; 72 0d7526 jbe short 05 f88h ; 76 667871 jc short 05be5h ; 72 11 7872 jbe short 05c39h ; 76 63 7527 7873 cmp AL, strict byte 003h ; 3c 03 7528 je short 05f80h ; 74 5a7874 je near 05cd2h ; 0f 84 f6 00 7529 7875 cmp AL, strict byte 002h ; 3c 02 7530 je short 05f83h ; 74 597531 jmp near 0 6032h ; e9 05 017876 je near 05c87h ; 0f 84 a5 00 7877 jmp near 05ce3h ; e9 fe 00 7532 7878 test al, al ; 84 c0 7533 jne short 05f85h ; 75 547879 jne near 05ce3h ; 0f 85 f8 00 7534 7880 lea dx, [bx+003h] ; 8d 57 03 7535 7881 in AL, DX ; ec … … 7540 7886 mov al, byte [bp+014h] ; 8a 46 14 7541 7887 and AL, strict byte 0e0h ; 24 e0 7542 xor ah, ah ; 30 e4 7543 mov CL, strict byte 005h ; b1 05 7544 sar ax, CL ; d3 f8 7545 mov cx, ax ; 89 c1 7888 movzx cx, al ; 0f b6 c8 7889 sar cx, 005h ; c1 f9 05 7546 7890 mov ax, 00600h ; b8 00 06 7547 7891 sar ax, CL ; d3 f8 7548 7892 mov dx, bx ; 89 da 7549 7893 out DX, AL ; ee 7550 mov al, ah ; 88 e07894 shr ax, 008h ; c1 e8 08 7551 7895 lea dx, [bx+001h] ; 8d 57 01 7552 7896 out DX, AL ; ee … … 7565 7909 ; sub ah, ah ; 2a e4 7566 7910 mov byte [bp+014h], al ; 88 46 14 7567 jmp near 0 6012h ; e9 9f007911 jmp near 05cc3h ; e9 97 00 7568 7912 mov AL, strict byte 017h ; b0 17 7569 7913 mov dx, bx ; 89 da … … 7572 7916 mov AL, strict byte 004h ; b0 04 7573 7917 out DX, AL ; ee 7574 jmp short 05f55h ; eb d5 7575 jmp near 06021h ; e9 9e 00 7576 jmp short 05fd6h ; eb 51 7577 jmp near 06032h ; e9 aa 00 7918 jmp short 05c0eh ; eb d5 7578 7919 mov dx, strict word 0006ch ; ba 6c 00 7579 7920 mov ax, strict word 00040h ; b8 40 00 7580 call 0161ch ; e8 8b b67921 call 0161ch ; e8 da b9 7581 7922 mov si, ax ; 89 c6 7582 7923 lea dx, [bx+005h] ; 8d 57 05 … … 7586 7927 and ax, strict word 00060h ; 25 60 00 7587 7928 cmp ax, strict word 00060h ; 3d 60 00 7588 je short 05 fb8h ; 74 177929 je short 05c69h ; 74 17 7589 7930 test cl, cl ; 84 c9 7590 je short 05 fb8h ; 74 137931 je short 05c69h ; 74 13 7591 7932 mov dx, strict word 0006ch ; ba 6c 00 7592 7933 mov ax, strict word 00040h ; b8 40 00 7593 call 0161ch ; e8 6e b67934 call 0161ch ; e8 bd b9 7594 7935 cmp ax, si ; 39 f0 7595 je short 05 f93h ; 74 e17936 je short 05c44h ; 74 e1 7596 7937 mov si, ax ; 89 c6 7597 7938 db 0feh, 0c9h 7598 7939 ; dec cl ; fe c9 7599 jmp short 05 f93h ; eb db7940 jmp short 05c44h ; eb db 7600 7941 test cl, cl ; 84 c9 7601 je short 05 fc2h ; 74 067942 je short 05c73h ; 74 06 7602 7943 mov al, byte [bp+014h] ; 8a 46 14 7603 7944 mov dx, bx ; 89 da … … 7609 7950 mov byte [bp+015h], al ; 88 46 15 7610 7951 test cl, cl ; 84 c9 7611 jne short 0 6012h ; 75 437952 jne short 05cc3h ; 75 43 7612 7953 or AL, strict byte 080h ; 0c 80 7613 7954 mov byte [bp+015h], al ; 88 46 15 7614 jmp short 0 6012h ; eb 3c7955 jmp short 05cc3h ; eb 3c 7615 7956 mov dx, strict word 0006ch ; ba 6c 00 7616 7957 mov ax, strict word 00040h ; b8 40 00 7617 call 0161ch ; e8 3d b67958 call 0161ch ; e8 8c b9 7618 7959 mov si, ax ; 89 c6 7619 7960 lea dx, [bx+005h] ; 8d 57 05 … … 7622 7963 ; sub ah, ah ; 2a e4 7623 7964 test AL, strict byte 001h ; a8 01 7624 jne short 0 6002h ; 75 177965 jne short 05cb3h ; 75 17 7625 7966 test cl, cl ; 84 c9 7626 je short 0 6002h ; 74 137967 je short 05cb3h ; 74 13 7627 7968 mov dx, strict word 0006ch ; ba 6c 00 7628 7969 mov ax, strict word 00040h ; b8 40 00 7629 call 0161ch ; e8 24 b67970 call 0161ch ; e8 73 b9 7630 7971 cmp ax, si ; 39 f0 7631 je short 05 fe1h ; 74 e57972 je short 05c92h ; 74 e5 7632 7973 mov si, ax ; 89 c6 7633 7974 db 0feh, 0c9h 7634 7975 ; dec cl ; fe c9 7635 jmp short 05 fe1h ; eb df7976 jmp short 05c92h ; eb df 7636 7977 test cl, cl ; 84 c9 7637 je short 0 6019h ; 74 137978 je short 05ccah ; 74 13 7638 7979 mov byte [bp+015h], 000h ; c6 46 15 00 7639 7980 mov dx, bx ; 89 da … … 7650 7991 db 02ah, 0e4h 7651 7992 ; sub ah, ah ; 2a e4 7652 jmp short 05 fd1h ; eb b07993 jmp short 05c82h ; eb b0 7653 7994 lea dx, [si+005h] ; 8d 54 05 7654 7995 in AL, DX ; ec … … 7660 8001 db 02ah, 0e4h 7661 8002 ; sub ah, ah ; 2a e4 7662 jmp short 0 600fh ; eb dd8003 jmp short 05cc0h ; eb dd 7663 8004 or byte [bp+01eh], 001h ; 80 4e 1e 01 7664 8005 pop bp ; 5d … … 7669 8010 pop si ; 5e 7670 8011 retn ; c3 7671 set_enable_a20_: ; 0xf 6040 LB 0x2d8012 set_enable_a20_: ; 0xf5cf1 LB 0x29 7672 8013 push bx ; 53 7673 8014 push cx ; 51 … … 7682 8023 mov cl, al ; 88 c1 7683 8024 test bx, bx ; 85 db 7684 je short 0 6059h ; 74 058025 je short 05d0ah ; 74 05 7685 8026 or AL, strict byte 002h ; 0c 02 7686 8027 out DX, AL ; ee 7687 jmp short 0 605ch ; eb 038028 jmp short 05d0dh ; eb 03 7688 8029 and AL, strict byte 0fdh ; 24 fd 7689 8030 out DX, AL ; ee 7690 8031 test cl, 002h ; f6 c1 02 7691 je short 06066h ; 74 05 7692 mov ax, strict word 00001h ; b8 01 00 7693 jmp short 06068h ; eb 02 7694 xor ax, ax ; 31 c0 8032 db 00fh, 095h, 0c0h 8033 ; setne al ; 0f 95 c0 8034 xor ah, ah ; 30 e4 7695 8035 pop bp ; 5d 7696 8036 pop dx ; 5a … … 7698 8038 pop bx ; 5b 7699 8039 retn ; c3 7700 set_e820_range_: ; 0xf 606d LB 0x8b8040 set_e820_range_: ; 0xf5d1a LB 0x8c 7701 8041 push si ; 56 7702 8042 push bp ; 55 7703 8043 mov bp, sp ; 89 e5 8044 mov es, ax ; 8e c0 7704 8045 mov si, dx ; 89 d6 7705 mov es, ax ; 8e c07706 8046 mov word [es:si], bx ; 26 89 1c 7707 8047 mov word [es:si+002h], cx ; 26 89 4c 02 7708 mov al, byte [bp+00ah] ; 8a 46 0a 7709 xor ah, ah ; 30 e4 8048 movzx ax, byte [bp+00ah] ; 0f b6 46 0a 7710 8049 mov word [es:si+004h], ax ; 26 89 44 04 7711 8050 mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00 7712 8051 sub word [bp+006h], bx ; 29 5e 06 7713 8052 sbb word [bp+008h], cx ; 19 4e 08 8053 mov al, byte [bp+00ah] ; 8a 46 0a 7714 8054 sub byte [bp+00ch], al ; 28 46 0c 7715 8055 mov ax, word [bp+006h] ; 8b 46 06 … … 7717 8057 mov ax, word [bp+008h] ; 8b 46 08 7718 8058 mov word [es:si+00ah], ax ; 26 89 44 0a 7719 mov al, byte [bp+00ch] ; 8a 46 0c 7720 xor ah, ah ; 30 e4 8059 movzx ax, byte [bp+00ch] ; 0f b6 46 0c 7721 8060 mov word [es:si+00ch], ax ; 26 89 44 0c 7722 8061 mov word [es:si+00eh], strict word 00000h ; 26 c7 44 0e 00 00 … … 7728 8067 retn 0000ah ; c2 0a 00 7729 8068 in AL, DX ; ec 7730 jmp near 0 229fh ; e9 d8 c18069 jmp near 01f4dh ; e9 d8 c1 7731 8070 sar byte [bx-06f6fh], 089h ; c0 bf 91 90 89 7732 8071 mov byte [bx+05283h], al ; 88 87 83 52 … … 7734 8073 inc cx ; 41 7735 8074 and AL, strict byte 000h ; 24 00 7736 xchg bx, ax ; 93 7737 db 065h, 034h, 061h 7738 ; gs xor AL, strict byte 061h ; 65 34 61 7739 dec ax ; 48 8075 inc cx ; 41 8076 db 062h 8077 in AL, strict byte 05dh ; e4 5d 8078 neg word [di-077h] ; f7 5d 89 8079 pop si ; 5e 8080 db 08fh, 05eh, 094h 8081 ; pop word [bp-06ch] ; 8f 5e 94 8082 pop si ; 5e 8083 cwd ; 99 8084 pop si ; 5e 8085 cmp bx, word [bx-028h] ; 3b 5f d8 8086 pushaw ; 60 8087 db 0feh 8088 pushaw ; 60 8089 test word [bp-07bh], bx ; 85 5e 85 8090 pop si ; 5e 8091 retf ; cb 7740 8092 popaw ; 61 7741 frstor [bx+di-01dh] ; dd 61 e3 7742 popaw ; 61 7743 call 04e42h ; e8 61 ed 7744 popaw ; 61 7745 xchg bp, ax ; 95 7746 bound bp, [bx] ; 62 2f 7747 db 064h, 04eh 7748 ; fs dec si ; 64 4e 7749 fldenv [fs:bx+di-027h] ; 64 d9 61 d9 7750 popaw ; 61 7751 sbb byte [di+043h], ah ; 18 65 43 7752 db 065h, 056h 7753 ; gs push si ; 65 56 7754 db 065h, 065h, 065h, 0ddh, 061h, 06eh 7755 ; frstor [gs:bx+di+06eh] ; 65 65 65 dd 61 6e 7756 db 065h 7757 _int15_function: ; 0xf60f8 LB 0x4ce 8093 db 0f3h, 061h 8094 ; rep popaw ; f3 61 8095 push ES ; 06 8096 bound dx, [di] ; 62 15 8097 bound cx, [bx+di+01c5eh] ; 62 89 5e 1c 8098 db 062h 8099 _int15_function: ; 0xf5da6 LB 0x4c9 7758 8100 push si ; 56 7759 8101 push di ; 57 7760 push bp ; 55 7761 mov bp, sp ; 89 e5 7762 mov al, byte [bp+017h] ; 8a 46 17 7763 xor ah, ah ; 30 e4 7764 mov dx, ax ; 89 c2 8102 enter 00004h, 000h ; c8 04 00 00 8103 mov ax, word [bp+016h] ; 8b 46 16 8104 shr ax, 008h ; c1 e8 08 7765 8105 cmp ax, 000ech ; 3d ec 00 7766 jnbe short 0613eh ; 77 358106 jnbe near 06241h ; 0f 87 88 04 7767 8107 push CS ; 0e 7768 8108 pop ES ; 07 7769 8109 mov cx, strict word 00012h ; b9 12 00 7770 mov di, 0 60c3h ; bf c3 608110 mov di, 05d71h ; bf 71 5d 7771 8111 repne scasb ; f2 ae 7772 8112 sal cx, 1 ; d1 e1 7773 8113 mov di, cx ; 89 cf 7774 mov si, word [cs:di+0 60d4h] ; 2e 8b b5 d4 608114 mov si, word [cs:di+05d82h] ; 2e 8b b5 82 5d 7775 8115 mov ax, word [bp+016h] ; 8b 46 16 7776 8116 xor ah, ah ; 30 e4 … … 7785 8125 xor ah, ah ; 30 e4 7786 8126 cmp ax, 000c0h ; 3d c0 00 7787 je short 06141h ; 74 03 7788 jmp near 06593h ; e9 52 04 8127 jne near 06241h ; 0f 85 51 04 7789 8128 or byte [bp+01ch], 001h ; 80 4e 1c 01 7790 jmp near 06 53ah ; e9 f2038129 jmp near 061eah ; e9 f3 03 7791 8130 mov dx, ax ; 89 c2 7792 8131 cmp ax, strict word 00001h ; 3d 01 00 7793 jc short 0 615dh ; 72 0e7794 jbe short 0 6171h ; 76 208132 jc short 05e0ch ; 72 0e 8133 jbe short 05e20h ; 76 20 7795 8134 cmp ax, strict word 00003h ; 3d 03 00 7796 je short 0 619eh ; 74 488135 je short 05e4dh ; 74 48 7797 8136 cmp ax, strict word 00002h ; 3d 02 00 7798 je short 0 6181h ; 74 267799 jmp short 0 61abh ; eb 4e8137 je short 05e30h ; 74 26 8138 jmp short 05e5ah ; eb 4e 7800 8139 test ax, ax ; 85 c0 7801 jne short 0 61abh ; 75 4a8140 jne short 05e5ah ; 75 4a 7802 8141 xor ax, ax ; 31 c0 7803 call 0 6040h ; e8 dafe8142 call 05cf1h ; e8 dc fe 7804 8143 and byte [bp+01ch], 0feh ; 80 66 1c fe 7805 8144 mov byte [bp+017h], 000h ; c6 46 17 00 7806 jmp near 0 61d9h ; e9 68008145 jmp near 05e85h ; e9 65 00 7807 8146 mov ax, strict word 00001h ; b8 01 00 7808 call 0 6040h ; e8 c9fe8147 call 05cf1h ; e8 cb fe 7809 8148 and byte [bp+01ch], 0feh ; 80 66 1c fe 7810 8149 mov byte [bp+017h], dh ; 88 76 17 7811 jmp near 0 61d9h ; e9 58008150 jmp near 05e85h ; e9 55 00 7812 8151 mov dx, 00092h ; ba 92 00 7813 8152 in AL, DX ; ec … … 7821 8160 and byte [bp+01ch], 0feh ; 80 66 1c fe 7822 8161 mov byte [bp+017h], ah ; 88 66 17 7823 jmp near 0 61d9h ; e9 3b008162 jmp near 05e85h ; e9 38 00 7824 8163 and byte [bp+01ch], 0feh ; 80 66 1c fe 7825 8164 mov byte [bp+017h], ah ; 88 66 17 7826 8165 mov word [bp+010h], ax ; 89 46 10 7827 jmp near 0 61d9h ; e9 2e007828 mov bx, 00c 16h ; bb 160c8166 jmp near 05e85h ; e9 2b 00 8167 mov bx, 00c08h ; bb 08 0c 7829 8168 mov cx, ds ; 8c d9 7830 8169 mov ax, strict word 00004h ; b8 04 00 7831 call 018 bdh ; e8 07 b78170 call 018aeh ; e8 49 ba 7832 8171 mov ax, word [bp+016h] ; 8b 46 16 7833 8172 xor ah, ah ; 30 e4 7834 8173 push ax ; 50 7835 mov ax, 007ach ; b8 ac 07 7836 push ax ; 50 7837 mov ax, strict word 00004h ; b8 04 00 7838 push ax ; 50 7839 call 018fah ; e8 33 b7 8174 push 007ach ; 68 ac 07 8175 push strict byte 00004h ; 6a 04 8176 call 018e9h ; e8 76 ba 7840 8177 add sp, strict byte 00006h ; 83 c4 06 7841 8178 or byte [bp+01ch], 001h ; 80 4e 1c 01 … … 7844 8181 or ah, 086h ; 80 cc 86 7845 8182 mov word [bp+016h], ax ; 89 46 16 7846 pop bp ; 5d8183 leave ; c9 7847 8184 pop di ; 5f 7848 8185 pop si ; 5e 7849 8186 retn ; c3 7850 8187 mov word [bp+01ch], bx ; 89 5e 1c 7851 jmp near 0 628fh ; e9 ac008188 jmp near 05f35h ; e9 a6 00 7852 8189 mov word [bp+01ch], bx ; 89 5e 1c 7853 jmp short 0 61d9h ; eb f18190 jmp short 05e85h ; eb f1 7854 8191 mov word [bp+01ch], cx ; 89 4e 1c 7855 jmp short 0 61d6h ; eb e98192 jmp short 05e82h ; eb e9 7856 8193 test byte [bp+016h], 0ffh ; f6 46 16 ff 7857 je short 0 6262h ; 74 6f8194 je short 05f0bh ; 74 6c 7858 8195 mov dx, 000a0h ; ba a0 00 7859 8196 mov ax, strict word 00040h ; b8 40 00 7860 call 01600h ; e8 04 b48197 call 01600h ; e8 58 b7 7861 8198 test AL, strict byte 001h ; a8 01 7862 jne short 0625fh ; 75 5f8199 jne near 061e1h ; 0f 85 33 03 7863 8200 mov bx, strict word 00001h ; bb 01 00 7864 8201 mov dx, 000a0h ; ba a0 00 7865 8202 mov ax, strict word 00040h ; b8 40 00 7866 call 0160eh ; e8 02 b48203 call 0160eh ; e8 54 b7 7867 8204 mov bx, word [bp+018h] ; 8b 5e 18 7868 8205 mov dx, 00098h ; ba 98 00 7869 8206 mov ax, strict word 00040h ; b8 40 00 7870 call 0162ah ; e8 12 b48207 call 0162ah ; e8 64 b7 7871 8208 mov bx, word [bp+010h] ; 8b 5e 10 7872 8209 mov dx, 0009ah ; ba 9a 00 7873 8210 mov ax, strict word 00040h ; b8 40 00 7874 call 0162ah ; e8 06 b48211 call 0162ah ; e8 58 b7 7875 8212 mov bx, word [bp+012h] ; 8b 5e 12 7876 8213 mov dx, 0009ch ; ba 9c 00 7877 8214 mov ax, strict word 00040h ; b8 40 00 7878 call 0162ah ; e8 fa b38215 call 0162ah ; e8 4c b7 7879 8216 mov bx, word [bp+014h] ; 8b 5e 14 7880 8217 mov dx, 0009eh ; ba 9e 00 7881 8218 mov ax, strict word 00040h ; b8 40 00 7882 call 0162ah ; e8 ee b38219 call 0162ah ; e8 40 b7 7883 8220 and byte [bp+01ch], 0feh ; 80 66 1c fe 7884 8221 mov dx, 000a1h ; ba a1 00 … … 7889 8226 out DX, AL ; ee 7890 8227 mov ax, strict word 0000bh ; b8 0b 00 7891 call 0165ch ; e8 0d b4 7892 mov dl, al ; 88 c2 7893 or dl, 040h ; 80 ca 40 7894 xor dh, dh ; 30 f6 8228 call 0165ch ; e8 5f b7 8229 or AL, strict byte 040h ; 0c 40 8230 movzx dx, al ; 0f b6 d0 7895 8231 mov ax, strict word 0000bh ; b8 0b 00 7896 call 0166dh ; e8 11 b4 7897 jmp near 061d9h ; e9 7a ff 7898 jmp near 06531h ; e9 cf 02 8232 call 0166dh ; e8 65 b7 8233 jmp near 05e85h ; e9 7a ff 7899 8234 cmp ax, strict word 00001h ; 3d 01 00 7900 jne short 0 6283h ; 75 1c8235 jne short 05f29h ; 75 19 7901 8236 xor bx, bx ; 31 db 7902 8237 mov dx, 000a0h ; ba a0 00 7903 8238 mov ax, strict word 00040h ; b8 40 00 7904 call 0160eh ; e8 9c b38239 call 0160eh ; e8 f3 b6 7905 8240 and byte [bp+01ch], 0feh ; 80 66 1c fe 7906 8241 mov ax, strict word 0000bh ; b8 0b 00 7907 call 0165ch ; e8 e0 b3 7908 mov dl, al ; 88 c2 7909 and dl, 0bfh ; 80 e2 bf 7910 jmp short 06254h ; eb d1 8242 call 0165ch ; e8 37 b7 8243 and AL, strict byte 0bfh ; 24 bf 8244 jmp short 05effh ; eb d6 7911 8245 mov word [bp+01ch], bx ; 89 5e 1c 7912 8246 mov ax, dx ; 89 d0 … … 7916 8250 or dx, ax ; 09 c2 7917 8251 mov word [bp+016h], dx ; 89 56 16 7918 jmp near 0 61d9h ; e9 44ff8252 jmp near 05e85h ; e9 4a ff 7919 8253 cli ; fa 7920 8254 mov ax, strict word 00001h ; b8 01 00 7921 call 0 6040h ; e8 a4fd8255 call 05cf1h ; e8 af fd 7922 8256 mov di, ax ; 89 c7 7923 mov CL, strict byte 004h ; b1 047924 8257 mov ax, word [bp+018h] ; 8b 46 18 7925 sal ax, CL ; d3 e0 7926 mov si, word [bp+00ah] ; 8b 76 0a 7927 add si, ax ; 01 c6 7928 mov CL, strict byte 00ch ; b1 0c 8258 sal ax, 004h ; c1 e0 04 8259 mov cx, word [bp+00ah] ; 8b 4e 0a 8260 add cx, ax ; 01 c1 7929 8261 mov dx, word [bp+018h] ; 8b 56 18 7930 shr dx, CL ; d3 ea 7931 mov cl, dl ; 88 d1 7932 cmp si, ax ; 39 c6 7933 jnc short 062b9h ; 73 02 7934 db 0feh, 0c1h 7935 ; inc cl ; fe c1 8262 shr dx, 00ch ; c1 ea 0c 8263 mov byte [bp-002h], dl ; 88 56 fe 8264 cmp cx, ax ; 39 c1 8265 jnc short 05f61h ; 73 05 8266 db 0feh, 0c2h 8267 ; inc dl ; fe c2 8268 mov byte [bp-002h], dl ; 88 56 fe 7936 8269 mov dx, word [bp+00ah] ; 8b 56 0a 7937 8270 add dx, strict byte 00008h ; 83 c2 08 7938 8271 mov ax, word [bp+018h] ; 8b 46 18 7939 8272 mov bx, strict word 0002fh ; bb 2f 00 7940 call 0162ah ; e8 62 b38273 call 0162ah ; e8 ba b6 7941 8274 mov dx, word [bp+00ah] ; 8b 56 0a 7942 8275 add dx, strict byte 0000ah ; 83 c2 0a 7943 8276 mov ax, word [bp+018h] ; 8b 46 18 7944 mov bx, si ; 89 f3 7945 call 0162ah ; e8 54 b3 7946 mov bl, cl ; 88 cb 7947 xor bh, bh ; 30 ff 8277 mov bx, cx ; 89 cb 8278 call 0162ah ; e8 ac b6 8279 movzx bx, byte [bp-002h] ; 0f b6 5e fe 7948 8280 mov dx, word [bp+00ah] ; 8b 56 0a 7949 8281 add dx, strict byte 0000ch ; 83 c2 0c 7950 8282 mov ax, word [bp+018h] ; 8b 46 18 7951 call 0160eh ; e8 28 b38283 call 0160eh ; e8 80 b6 7952 8284 mov dx, word [bp+00ah] ; 8b 56 0a 7953 8285 add dx, strict byte 0000dh ; 83 c2 0d 7954 8286 mov ax, word [bp+018h] ; 8b 46 18 7955 8287 mov bx, 00093h ; bb 93 00 7956 call 0160eh ; e8 19 b38288 call 0160eh ; e8 71 b6 7957 8289 mov dx, word [bp+00ah] ; 8b 56 0a 7958 8290 add dx, strict byte 0000eh ; 83 c2 0e 7959 8291 mov ax, word [bp+018h] ; 8b 46 18 7960 8292 xor bx, bx ; 31 db 7961 call 0162ah ; e8 27 b38293 call 0162ah ; e8 7f b6 7962 8294 mov dx, word [bp+00ah] ; 8b 56 0a 7963 8295 add dx, strict byte 00020h ; 83 c2 20 7964 8296 mov ax, word [bp+018h] ; 8b 46 18 7965 8297 mov bx, strict word 0ffffh ; bb ff ff 7966 call 0162ah ; e8 18 b38298 call 0162ah ; e8 70 b6 7967 8299 mov dx, word [bp+00ah] ; 8b 56 0a 7968 8300 add dx, strict byte 00022h ; 83 c2 22 7969 8301 mov ax, word [bp+018h] ; 8b 46 18 7970 8302 xor bx, bx ; 31 db 7971 call 0162ah ; e8 0a b38303 call 0162ah ; e8 62 b6 7972 8304 mov dx, word [bp+00ah] ; 8b 56 0a 7973 8305 add dx, strict byte 00024h ; 83 c2 24 7974 8306 mov ax, word [bp+018h] ; 8b 46 18 7975 8307 mov bx, strict word 0000fh ; bb 0f 00 7976 call 0160eh ; e8 df b28308 call 0160eh ; e8 37 b6 7977 8309 mov dx, word [bp+00ah] ; 8b 56 0a 7978 8310 add dx, strict byte 00025h ; 83 c2 25 7979 8311 mov ax, word [bp+018h] ; 8b 46 18 7980 8312 mov bx, 0009bh ; bb 9b 00 7981 call 0160eh ; e8 d0 b28313 call 0160eh ; e8 28 b6 7982 8314 mov dx, word [bp+00ah] ; 8b 56 0a 7983 8315 add dx, strict byte 00026h ; 83 c2 26 7984 8316 mov ax, word [bp+018h] ; 8b 46 18 7985 8317 xor bx, bx ; 31 db 7986 call 0162ah ; e8 de b28318 call 0162ah ; e8 36 b6 7987 8319 mov ax, ss ; 8c d0 7988 mov CL, strict byte 004h ; b1 047989 mov si, ax ; 89 c67990 sal si, CL ; d3 e67991 mov CL, strict byte 00ch ; b1 0c7992 shr ax, CL ; d3 e87993 8320 mov cx, ax ; 89 c1 8321 sal cx, 004h ; c1 e1 04 8322 shr ax, 00ch ; c1 e8 0c 8323 mov word [bp-004h], ax ; 89 46 fc 7994 8324 mov dx, word [bp+00ah] ; 8b 56 0a 7995 8325 add dx, strict byte 00028h ; 83 c2 28 7996 8326 mov ax, word [bp+018h] ; 8b 46 18 7997 8327 mov bx, strict word 0ffffh ; bb ff ff 7998 call 0162ah ; e8 c1 b28328 call 0162ah ; e8 1a b6 7999 8329 mov dx, word [bp+00ah] ; 8b 56 0a 8000 8330 add dx, strict byte 0002ah ; 83 c2 2a 8001 8331 mov ax, word [bp+018h] ; 8b 46 18 8002 mov bx, si ; 89 f3 8003 call 0162ah ; e8 b3 b2 8004 mov bl, cl ; 88 cb 8005 xor bh, bh ; 30 ff 8332 mov bx, cx ; 89 cb 8333 call 0162ah ; e8 0c b6 8334 movzx bx, byte [bp-004h] ; 0f b6 5e fc 8006 8335 mov dx, word [bp+00ah] ; 8b 56 0a 8007 8336 add dx, strict byte 0002ch ; 83 c2 2c 8008 8337 mov ax, word [bp+018h] ; 8b 46 18 8009 call 0160eh ; e8 87 b28338 call 0160eh ; e8 e0 b5 8010 8339 mov dx, word [bp+00ah] ; 8b 56 0a 8011 8340 add dx, strict byte 0002dh ; 83 c2 2d 8012 8341 mov ax, word [bp+018h] ; 8b 46 18 8013 8342 mov bx, 00093h ; bb 93 00 8014 call 0160eh ; e8 78 b28343 call 0160eh ; e8 d1 b5 8015 8344 mov dx, word [bp+00ah] ; 8b 56 0a 8016 8345 add dx, strict byte 0002eh ; 83 c2 2e 8017 8346 mov ax, word [bp+018h] ; 8b 46 18 8018 8347 xor bx, bx ; 31 db 8019 call 0162ah ; e8 86 b28348 call 0162ah ; e8 df b5 8020 8349 mov si, word [bp+00ah] ; 8b 76 0a 8021 8350 mov es, [bp+018h] ; 8e 46 18 … … 8028 8357 mov word [00467h], sp ; 89 26 67 04 8029 8358 mov [00469h], ss ; 8c 16 69 04 8030 call 06 3c0h ; e8 00 008359 call 06067h ; e8 00 00 8031 8360 pop di ; 5f 8032 8361 add di, strict byte 0001bh ; 83 c7 1b … … 8051 8380 cld ; fc 8052 8381 rep movsw ; f3 a5 8053 call 06 3f4h ; e8 00 008382 call 0609bh ; e8 00 00 8054 8383 pop ax ; 58 8055 8384 push 0f000h ; 68 00 f0 … … 8067 8396 ; xor ax, ax ; 33 c0 8068 8397 mov ds, ax ; 8e d8 8398 mov es, ax ; 8e c0 8069 8399 lss sp, [00467h] ; 0f b2 26 67 04 8070 8400 pop eax ; 66 58 8071 8401 pop DS ; 1f 8072 8402 mov ax, di ; 89 f8 8073 call 0 6040h ; e8 1dfc8403 call 05cf1h ; e8 25 fc 8074 8404 sti ; fb 8075 8405 mov byte [bp+017h], 000h ; c6 46 17 00 8076 8406 and byte [bp+01ch], 0feh ; 80 66 1c fe 8077 jmp near 0 61d9h ; e9 aafd8407 jmp near 05e85h ; e9 ad fd 8078 8408 mov ax, strict word 00031h ; b8 31 00 8079 call 0165ch ; e8 27 b2 8080 mov dh, al ; 88 c6 8409 call 0165ch ; e8 7e b5 8410 xor ah, ah ; 30 e4 8411 mov dx, ax ; 89 c2 8412 sal dx, 008h ; c1 e2 08 8081 8413 mov ax, strict word 00030h ; b8 30 00 8082 call 0165ch ; e8 1f b2 8083 mov dl, al ; 88 c2 8414 call 0165ch ; e8 71 b5 8415 xor ah, ah ; 30 e4 8416 or dx, ax ; 09 c2 8084 8417 mov word [bp+016h], dx ; 89 56 16 8085 8418 cmp dx, strict byte 0ffc0h ; 83 fa c0 8086 jbe short 06 428h ; 76 e18419 jbe short 060d1h ; 76 da 8087 8420 mov word [bp+016h], strict word 0ffc0h ; c7 46 16 c0 ff 8088 jmp short 06 428h ; eb da8421 jmp short 060d1h ; eb d3 8089 8422 cli ; fa 8090 8423 mov ax, strict word 00001h ; b8 01 00 8091 call 0 6040h ; e8 ebfb8424 call 05cf1h ; e8 ec fb 8092 8425 mov dx, word [bp+00ah] ; 8b 56 0a 8093 8426 add dx, strict byte 00038h ; 83 c2 38 8094 8427 mov ax, word [bp+018h] ; 8b 46 18 8095 8428 mov bx, strict word 0ffffh ; bb ff ff 8096 call 0162ah ; e8 c6 b18429 call 0162ah ; e8 16 b5 8097 8430 mov dx, word [bp+00ah] ; 8b 56 0a 8098 8431 add dx, strict byte 0003ah ; 83 c2 3a 8099 8432 mov ax, word [bp+018h] ; 8b 46 18 8100 8433 xor bx, bx ; 31 db 8101 call 0162ah ; e8 b8 b18434 call 0162ah ; e8 08 b5 8102 8435 mov dx, word [bp+00ah] ; 8b 56 0a 8103 8436 add dx, strict byte 0003ch ; 83 c2 3c 8104 8437 mov ax, word [bp+018h] ; 8b 46 18 8105 8438 mov bx, strict word 0000fh ; bb 0f 00 8106 call 0160eh ; e8 8d b18439 call 0160eh ; e8 dd b4 8107 8440 mov dx, word [bp+00ah] ; 8b 56 0a 8108 8441 add dx, strict byte 0003dh ; 83 c2 3d 8109 8442 mov ax, word [bp+018h] ; 8b 46 18 8110 8443 mov bx, 0009bh ; bb 9b 00 8111 call 0160eh ; e8 7e b18444 call 0160eh ; e8 ce b4 8112 8445 mov dx, word [bp+00ah] ; 8b 56 0a 8113 8446 add dx, strict byte 0003eh ; 83 c2 3e 8114 8447 mov ax, word [bp+018h] ; 8b 46 18 8115 8448 xor bx, bx ; 31 db 8116 call 0162ah ; e8 8c b18449 call 0162ah ; e8 dc b4 8117 8450 mov AL, strict byte 011h ; b0 11 8118 8451 mov dx, strict word 00020h ; ba 20 00 … … 8120 8453 mov dx, 000a0h ; ba a0 00 8121 8454 out DX, AL ; ee 8122 mov al, byte [bp+011h] ; 8a 46 11 8455 mov ax, word [bp+010h] ; 8b 46 10 8456 shr ax, 008h ; c1 e8 08 8123 8457 mov dx, strict word 00021h ; ba 21 00 8124 8458 out DX, AL ; ee … … 8143 8477 out DX, AL ; ee 8144 8478 mov si, word [bp+00ah] ; 8b 76 0a 8145 call 06 4dch ; e8 00 008479 call 0618fh ; e8 00 00 8146 8480 pop di ; 5f 8147 8481 add di, strict byte 00018h ; 83 c7 18 … … 8171 8505 push cx ; 51 8172 8506 retf ; cb 8173 jmp near 0 61d9h ; e9 c1fc8174 mov bx, 00c 16h ; bb 160c8507 jmp near 05e85h ; e9 ba fc 8508 mov bx, 00c08h ; bb 08 0c 8175 8509 mov cx, ds ; 8c d9 8176 8510 mov ax, strict word 00004h ; b8 04 00 8177 call 018bdh ; e8 9a b3 8178 mov ax, 007ech ; b8 ec 07 8179 push ax ; 50 8180 mov ax, strict word 00004h ; b8 04 00 8181 push ax ; 50 8182 call 018fah ; e8 cc b3 8511 call 018aeh ; e8 d8 b6 8512 push 007ech ; 68 ec 07 8513 push strict byte 00004h ; 6a 04 8514 call 018e9h ; e8 0b b7 8183 8515 add sp, strict byte 00004h ; 83 c4 04 8184 8516 or byte [bp+01ch], 001h ; 80 4e 1c 01 … … 8187 8519 or ah, 086h ; 80 cc 86 8188 8520 mov word [bp+016h], ax ; 89 46 16 8189 jmp near 0 61d9h ; e9 96fc8521 jmp near 05e85h ; e9 92 fc 8190 8522 mov word [bp+01ch], cx ; 89 4e 1c 8191 8523 mov word [bp+016h], ax ; 89 46 16 8192 8524 mov word [bp+010h], 0e6f5h ; c7 46 10 f5 e6 8193 8525 mov word [bp+018h], 0f000h ; c7 46 18 00 f0 8194 jmp near 0 61d9h ; e9 83fc8526 jmp near 05e85h ; e9 7f fc 8195 8527 mov dx, strict word 0000eh ; ba 0e 00 8196 8528 mov ax, strict word 00040h ; b8 40 00 8197 call 0161ch ; e8 bd b08529 call 0161ch ; e8 0d b4 8198 8530 mov word [bp+018h], ax ; 89 46 18 8199 jmp near 06428h ; e9 c3 fe 8200 mov ax, 0081bh ; b8 1b 08 8201 push ax ; 50 8202 mov ax, strict word 00008h ; b8 08 00 8203 jmp short 0652ah ; eb bc 8531 jmp near 060d1h ; e9 bc fe 8532 push 0081bh ; 68 1b 08 8533 push strict byte 00008h ; 6a 08 8534 jmp short 061dbh ; eb bf 8204 8535 test byte [bp+016h], 0ffh ; f6 46 16 ff 8205 jne short 06 593h ; 75 1f8536 jne short 06241h ; 75 1f 8206 8537 mov word [bp+016h], ax ; 89 46 16 8207 8538 mov ax, word [bp+010h] ; 8b 46 10 8208 8539 xor ah, ah ; 30 e4 8209 8540 cmp ax, strict word 00001h ; 3d 01 00 8210 jc short 06 58ch ; 72 0b8541 jc short 0623ah ; 72 0b 8211 8542 cmp ax, strict word 00003h ; 3d 03 00 8212 jnbe short 06 58ch ; 77 068543 jnbe short 0623ah ; 77 06 8213 8544 mov word [bp+01ch], cx ; 89 4e 1c 8214 jmp near 0 61d9h ; e9 4dfc8545 jmp near 05e85h ; e9 4b fc 8215 8546 or byte [bp+01ch], 001h ; 80 4e 1c 01 8216 jmp near 0 61d9h ; e9 46fc8217 mov bx, 00c 16h ; bb 160c8547 jmp near 05e85h ; e9 44 fc 8548 mov bx, 00c08h ; bb 08 0c 8218 8549 mov cx, ds ; 8c d9 8219 8550 mov ax, strict word 00004h ; b8 04 00 8220 call 018bdh ; e8 1f b3 8221 mov ax, strict word 00001h ; b8 01 00 8222 push ax ; 50 8551 call 018aeh ; e8 62 b6 8552 push word [bp+010h] ; ff 76 10 8223 8553 push word [bp+016h] ; ff 76 16 8224 mov ax, 00832h ; b8 32 08 8225 push ax ; 50 8226 mov ax, strict word 00004h ; b8 04 00 8227 push ax ; 50 8228 call 018fah ; e8 4a b3 8554 push 00832h ; 68 32 08 8555 push strict byte 00004h ; 6a 04 8556 call 018e9h ; e8 8f b6 8229 8557 add sp, strict byte 00008h ; 83 c4 08 8230 jmp near 06531h ; e9 7b ff8231 hlt ; f48232 db 066h, 01eh8233 ; push DS ; 66 1e8234 db 067h, 075h, 067h8235 ; jne short 06623h ; 67 75 678236 call far 0d967h:0ba67h ; 9a 67 ba 67 d98237 db 06 7h, 016h8238 ; push SS ; 67 168239 push 0684ah ; 68 4a 688240 _int15_function32: ; 0xf6 5c6 LB 0x3178558 jmp short 061e1h ; eb 82 8559 mov ax, word [0d763h] ; a1 63 d7 8560 arpl cx, di ; 63 f9 8561 arpl word [bp+si], bx ; 63 1a 8562 cmp word [fs:si+058h], sp ; 64 39 64 58 8563 db 064h 8564 db 09ah 8565 db 064h 8566 db 0c7h 8567 db 064h 8568 _int15_function32: ; 0xf626f LB 0x309 8241 8569 push si ; 56 8242 push bp ; 55 8243 mov bp, sp ; 89 e5 8244 sub sp, strict byte 00008h ; 83 ec 08 8245 mov al, byte [bp+023h] ; 8a 46 23 8246 xor ah, ah ; 30 e4 8570 enter 00008h, 000h ; c8 08 00 00 8571 mov ax, word [bp+022h] ; 8b 46 22 8572 shr ax, 008h ; c1 e8 08 8247 8573 cmp ax, 000e8h ; 3d e8 00 8248 je short 06 616h ; 74 3f8574 je short 062c0h ; 74 41 8249 8575 cmp ax, 00086h ; 3d 86 00 8250 jne short 06625h ; 75 498576 jne near 0654bh ; 0f 85 c5 02 8251 8577 sti ; fb 8252 8578 mov ax, word [bp+01eh] ; 8b 46 1e … … 8267 8593 db 066h, 00bh, 0c9h 8268 8594 ; or ecx, ecx ; 66 0b c9 8269 je near 06 613h ; 0f 84 0e 008595 je near 062bdh ; 0f 84 0e 00 8270 8596 in AL, strict byte 061h ; e4 61 8271 8597 and AL, strict byte 010h ; 24 10 8272 8598 db 03ah, 0c4h 8273 8599 ; cmp al, ah ; 3a c4 8274 je short 06 605h ; 74 f88600 je short 062afh ; 74 f8 8275 8601 db 08ah, 0e0h 8276 8602 ; mov ah, al ; 8a e0 8277 8603 dec ecx ; 66 49 8278 jne short 06605h ; 75 f2 8279 jmp near 06770h ; e9 5a 01 8604 jne short 062afh ; 75 f2 8605 leave ; c9 8606 pop si ; 5e 8607 retn ; c3 8280 8608 mov ax, word [bp+022h] ; 8b 46 22 8281 8609 xor ah, ah ; 30 e4 8282 8610 cmp ax, strict word 00020h ; 3d 20 00 8283 je short 06 62bh ; 74 0b8611 je short 062d4h ; 74 0a 8284 8612 cmp ax, strict word 00001h ; 3d 01 00 8285 je short 06628h ; 74 03 8286 jmp near 06743h ; e9 1b 01 8287 jmp near 0689ch ; e9 71 02 8613 je near 064fdh ; 0f 84 2c 02 8614 jmp near 0654bh ; e9 77 02 8288 8615 cmp word [bp+01ch], 0534dh ; 81 7e 1c 4d 53 8289 jne short 06625h ; 75 f38616 jne near 0654bh ; 0f 85 6e 02 8290 8617 cmp word [bp+01ah], 04150h ; 81 7e 1a 50 41 8291 jne short 06625h ; 75 ec8618 jne near 0654bh ; 0f 85 65 02 8292 8619 mov ax, strict word 00035h ; b8 35 00 8293 call 0165ch ; e8 1d b0 8294 mov bl, al ; 88 c3 8295 xor bh, bh ; 30 ff 8620 call 0165ch ; e8 70 b3 8621 movzx bx, al ; 0f b6 d8 8296 8622 xor dx, dx ; 31 d2 8297 8623 mov cx, strict word 00008h ; b9 08 00 8298 8624 sal bx, 1 ; d1 e3 8299 8625 rcl dx, 1 ; d1 d2 8300 loop 06 648h ; e2 fa8626 loop 062f4h ; e2 fa 8301 8627 mov ax, strict word 00034h ; b8 34 00 8302 call 0165ch ; e8 08 b08628 call 0165ch ; e8 5c b3 8303 8629 xor ah, ah ; 30 e4 8304 8630 mov dx, bx ; 89 da … … 8308 8634 adc dx, 00100h ; 81 d2 00 01 8309 8635 cmp dx, 00100h ; 81 fa 00 01 8310 jc short 06 66eh ; 72 068311 jne short 06 69ch ; 75 328636 jc short 0631ah ; 72 06 8637 jne short 06347h ; 75 31 8312 8638 test bx, bx ; 85 db 8313 jnbe short 06 69ch ; 77 2e8639 jnbe short 06347h ; 77 2d 8314 8640 mov ax, strict word 00031h ; b8 31 00 8315 call 0165ch ; e8 e8 af 8316 mov bl, al ; 88 c3 8317 xor bh, bh ; 30 ff 8641 call 0165ch ; e8 3c b3 8642 movzx bx, al ; 0f b6 d8 8318 8643 xor dx, dx ; 31 d2 8319 8644 mov cx, strict word 00008h ; b9 08 00 8320 8645 sal bx, 1 ; d1 e3 8321 8646 rcl dx, 1 ; d1 d2 8322 loop 06 67dh ; e2 fa8647 loop 06328h ; e2 fa 8323 8648 mov ax, strict word 00030h ; b8 30 00 8324 call 0165ch ; e8 d3 af8649 call 0165ch ; e8 28 b3 8325 8650 xor ah, ah ; 30 e4 8326 8651 or bx, ax ; 09 c3 … … 8328 8653 sal bx, 1 ; d1 e3 8329 8654 rcl dx, 1 ; d1 d2 8330 loop 06 690h ; e2 fa8655 loop 0633bh ; e2 fa 8331 8656 add bx, strict byte 00000h ; 83 c3 00 8332 8657 adc dx, strict byte 00010h ; 83 d2 10 8333 8658 mov ax, strict word 00062h ; b8 62 00 8334 call 0165ch ; e8 ba af8659 call 0165ch ; e8 0f b3 8335 8660 xor ah, ah ; 30 e4 8336 8661 mov word [bp-008h], ax ; 89 46 f8 … … 8340 8665 sal word [bp-008h], 1 ; d1 66 f8 8341 8666 rcl word [bp-006h], 1 ; d1 56 fa 8342 loop 06 6afh ; e2 f88667 loop 0635ah ; e2 f8 8343 8668 mov ax, strict word 00061h ; b8 61 00 8344 call 0165ch ; e8 9f af8669 call 0165ch ; e8 f4 b2 8345 8670 xor ah, ah ; 30 e4 8346 8671 or word [bp-008h], ax ; 09 46 f8 … … 8349 8674 mov word [bp-008h], strict word 00000h ; c7 46 f8 00 00 8350 8675 mov ax, strict word 00063h ; b8 63 00 8351 call 0165ch ; e8 89 af 8676 call 0165ch ; e8 de b2 8677 mov byte [bp-004h], al ; 88 46 fc 8352 8678 mov byte [bp-002h], al ; 88 46 fe 8353 mov byte [bp-004h], al ; 88 46 fc8354 8679 mov ax, word [bp+016h] ; 8b 46 16 8355 8680 cmp ax, strict word 00007h ; 3d 07 00 8356 jnbe short 06743h ; 77 628681 jnbe near 0654bh ; 0f 87 bd 01 8357 8682 mov si, ax ; 89 c6 8358 sal si, 1 ; d1 e68683 add si, ax ; 01 c6 8359 8684 mov ax, bx ; 89 d8 8360 8685 add ax, strict word 00000h ; 05 00 00 8361 8686 mov cx, dx ; 89 d1 8362 8687 adc cx, strict byte 0ffffh ; 83 d1 ff 8363 jmp word [cs:si+065b6h] ; 2e ff a4 b6 65 8364 mov ax, strict word 00001h ; b8 01 00 8365 push ax ; 50 8366 xor ax, ax ; 31 c0 8367 push ax ; 50 8368 push ax ; 50 8369 mov ax, strict word 00009h ; b8 09 00 8370 push ax ; 50 8371 mov ax, 0fc00h ; b8 00 fc 8688 jmp word [cs:si+0625fh] ; 2e ff a4 5f 62 8689 push strict byte 00001h ; 6a 01 8690 push dword 000000000h ; 66 6a 00 8691 push strict byte 00009h ; 6a 09 8692 push 0fc00h ; 68 00 fc 8693 mov dx, word [bp+006h] ; 8b 56 06 8694 mov ax, word [bp+026h] ; 8b 46 26 8695 xor bx, bx ; 31 db 8696 xor cx, cx ; 31 c9 8697 call 05d1ah ; e8 62 f9 8698 mov dword [bp+016h], strict dword 000000001h ; 66 c7 46 16 01 00 00 00 8699 mov dword [bp+022h], strict dword 0534d4150h ; 66 c7 46 22 50 41 4d 53 8700 mov dword [bp+01eh], strict dword 000000014h ; 66 c7 46 1e 14 00 00 00 8701 and byte [bp+02ah], 0feh ; 80 66 2a fe 8702 leave ; c9 8703 pop si ; 5e 8704 retn ; c3 8705 push strict byte 00002h ; 6a 02 8706 push dword 000000000h ; 66 6a 00 8707 push strict byte 0000ah ; 6a 0a 8708 push strict byte 00000h ; 6a 00 8709 mov dx, word [bp+006h] ; 8b 56 06 8710 mov ax, word [bp+026h] ; 8b 46 26 8711 mov bx, 0fc00h ; bb 00 fc 8712 mov cx, strict word 00009h ; b9 09 00 8713 call 05d1ah ; e8 2b f9 8714 mov dword [bp+016h], strict dword 000000002h ; 66 c7 46 16 02 00 00 00 8715 jmp short 063c0h ; eb c7 8716 push strict byte 00002h ; 6a 02 8717 push dword 000000000h ; 66 6a 00 8718 push strict byte 00010h ; 6a 10 8719 push strict byte 00000h ; 6a 00 8720 mov dx, word [bp+006h] ; 8b 56 06 8721 mov ax, word [bp+026h] ; 8b 46 26 8722 xor bx, bx ; 31 db 8723 mov cx, strict word 0000fh ; b9 0f 00 8724 call 05d1ah ; e8 0a f9 8725 mov dword [bp+016h], strict dword 000000003h ; 66 c7 46 16 03 00 00 00 8726 jmp short 063c0h ; eb a6 8727 push strict byte 00001h ; 6a 01 8728 push dword 000000000h ; 66 6a 00 8729 push cx ; 51 8372 8730 push ax ; 50 8373 8731 mov dx, word [bp+006h] ; 8b 56 06 8374 8732 mov ax, word [bp+026h] ; 8b 46 26 8375 8733 xor bx, bx ; 31 db 8376 xor cx, cx ; 31 c9 8377 call 0606dh ; e8 5c f9 8378 mov word [bp+016h], strict word 00001h ; c7 46 16 01 00 8379 mov word [bp+018h], strict word 00000h ; c7 46 18 00 00 8380 jmp near 06881h ; e9 63 01 8381 mov ax, strict word 00002h ; b8 02 00 8382 push ax ; 50 8383 xor ax, ax ; 31 c0 8384 push ax ; 50 8385 push ax ; 50 8386 mov ax, strict word 0000ah ; b8 0a 00 8387 push ax ; 50 8388 xor ax, ax ; 31 c0 8389 push ax ; 50 8734 mov cx, strict word 00010h ; b9 10 00 8735 call 05d1ah ; e8 eb f8 8736 mov dword [bp+016h], strict dword 000000004h ; 66 c7 46 16 04 00 00 00 8737 jmp short 063c0h ; eb 87 8738 push strict byte 00003h ; 6a 03 8739 push dword 000000000h ; 66 6a 00 8740 push dx ; 52 8741 push bx ; 53 8742 mov dx, word [bp+006h] ; 8b 56 06 8743 mov si, word [bp+026h] ; 8b 76 26 8744 mov bx, ax ; 89 c3 8745 mov ax, si ; 89 f0 8746 call 05d1ah ; e8 cd f8 8747 mov dword [bp+016h], strict dword 000000005h ; 66 c7 46 16 05 00 00 00 8748 jmp near 063c0h ; e9 68 ff 8749 push strict byte 00002h ; 6a 02 8750 push dword 000000000h ; 66 6a 00 8751 push dword 000000000h ; 66 6a 00 8390 8752 mov dx, word [bp+006h] ; 8b 56 06 8391 8753 mov ax, word [bp+026h] ; 8b 46 26 8392 mov bx, 0fc00h ; bb 00 fc 8393 mov cx, strict word 00009h ; b9 09 00 8394 call 0606dh ; e8 31 f9 8395 mov word [bp+016h], strict word 00002h ; c7 46 16 02 00 8396 jmp short 06716h ; eb d3 8397 mov bx, 00c16h ; bb 16 0c 8754 xor bx, bx ; 31 db 8755 mov cx, strict word 0fffch ; b9 fc ff 8756 call 05d1ah ; e8 ac f8 8757 cmp byte [bp-004h], 000h ; 80 7e fc 00 8758 jne short 0647bh ; 75 07 8759 mov ax, word [bp-006h] ; 8b 46 fa 8760 test ax, ax ; 85 c0 8761 je short 06491h ; 74 16 8762 mov dword [bp+016h], strict dword 000000007h ; 66 c7 46 16 07 00 00 00 8763 jmp near 063c0h ; e9 3a ff 8764 mov dword [bp+016h], strict dword 000000006h ; 66 c7 46 16 06 00 00 00 8765 jmp near 063c0h ; e9 2f ff 8766 mov word [bp+016h], ax ; 89 46 16 8767 mov word [bp+018h], ax ; 89 46 18 8768 jmp near 063c0h ; e9 26 ff 8769 push strict byte 00002h ; 6a 02 8770 push dword 000000000h ; 66 6a 00 8771 push dword 000000000h ; 66 6a 00 8772 mov dx, word [bp+006h] ; 8b 56 06 8773 mov ax, word [bp+026h] ; 8b 46 26 8774 xor bx, bx ; 31 db 8775 xor cx, cx ; 31 c9 8776 call 05d1ah ; e8 6b f8 8777 cmp byte [bp-004h], 000h ; 80 7e fc 00 8778 jne short 064bch ; 75 07 8779 mov ax, word [bp-006h] ; 8b 46 fa 8780 test ax, ax ; 85 c0 8781 je short 064beh ; 74 02 8782 jmp short 0647bh ; eb bd 8783 mov word [bp+016h], ax ; 89 46 16 8784 mov word [bp+018h], ax ; 89 46 18 8785 jmp near 063c0h ; e9 f9 fe 8786 cmp byte [bp-004h], 000h ; 80 7e fc 00 8787 jne short 064d5h ; 75 08 8788 cmp word [bp-006h], strict byte 00000h ; 83 7e fa 00 8789 je near 063c0h ; 0f 84 eb fe 8790 push strict byte 00001h ; 6a 01 8791 mov al, byte [bp-002h] ; 8a 46 fe 8792 db 0feh, 0c0h 8793 ; inc al ; fe c0 8794 xor ah, ah ; 30 e4 8795 push ax ; 50 8796 push strict byte 00001h ; 6a 01 8797 push dword [bp-008h] ; 66 ff 76 f8 8798 mov dx, word [bp+006h] ; 8b 56 06 8799 mov ax, word [bp+026h] ; 8b 46 26 8800 xor bx, bx ; 31 db 8801 xor cx, cx ; 31 c9 8802 call 05d1ah ; e8 28 f8 8803 xor ax, ax ; 31 c0 8804 mov word [bp+016h], ax ; 89 46 16 8805 mov word [bp+018h], ax ; 89 46 18 8806 jmp near 063c0h ; e9 c3 fe 8807 and byte [bp+02ah], 0feh ; 80 66 2a fe 8808 mov ax, strict word 00031h ; b8 31 00 8809 call 0165ch ; e8 55 b1 8810 xor ah, ah ; 30 e4 8811 mov dx, ax ; 89 c2 8812 sal dx, 008h ; c1 e2 08 8813 mov ax, strict word 00030h ; b8 30 00 8814 call 0165ch ; e8 48 b1 8815 xor ah, ah ; 30 e4 8816 or dx, ax ; 09 c2 8817 mov word [bp+01eh], dx ; 89 56 1e 8818 cmp dx, 03c00h ; 81 fa 00 3c 8819 jbe short 06526h ; 76 05 8820 mov word [bp+01eh], 03c00h ; c7 46 1e 00 3c 8821 mov ax, strict word 00035h ; b8 35 00 8822 call 0165ch ; e8 30 b1 8823 movzx dx, al ; 0f b6 d0 8824 sal dx, 008h ; c1 e2 08 8825 mov ax, strict word 00034h ; b8 34 00 8826 call 0165ch ; e8 24 b1 8827 xor ah, ah ; 30 e4 8828 or dx, ax ; 09 c2 8829 mov word [bp+01ah], dx ; 89 56 1a 8830 mov ax, word [bp+01eh] ; 8b 46 1e 8831 mov word [bp+022h], ax ; 89 46 22 8832 mov word [bp+016h], dx ; 89 56 16 8833 leave ; c9 8834 pop si ; 5e 8835 retn ; c3 8836 mov bx, 00c08h ; bb 08 0c 8398 8837 mov cx, ds ; 8c d9 8399 8838 mov ax, strict word 00004h ; b8 04 00 8400 call 018 bdh ; e8 6f b18839 call 018aeh ; e8 58 b3 8401 8840 push word [bp+016h] ; ff 76 16 8402 8841 push word [bp+022h] ; ff 76 22 8403 mov ax, 00832h ; b8 32 08 8404 push ax ; 50 8405 mov ax, strict word 00004h ; b8 04 00 8406 push ax ; 50 8407 call 018fah ; e8 9b b1 8842 push 00832h ; 68 32 08 8843 push strict byte 00004h ; 6a 04 8844 call 018e9h ; e8 85 b3 8408 8845 add sp, strict byte 00008h ; 83 c4 08 8409 8846 or byte [bp+02ah], 001h ; 80 4e 2a 01 … … 8412 8849 or AL, strict byte 086h ; 0c 86 8413 8850 mov word [bp+022h], ax ; 89 46 22 8414 mov sp, bp ; 89 ec 8415 pop bp ; 5d 8851 leave ; c9 8416 8852 pop si ; 5e 8417 8853 retn ; c3 8418 mov ax, strict word 00002h ; b8 02 00 8419 push ax ; 50 8420 xor ax, ax ; 31 c0 8421 push ax ; 50 8422 push ax ; 50 8423 mov ax, strict word 00010h ; b8 10 00 8424 push ax ; 50 8425 xor ax, ax ; 31 c0 8426 push ax ; 50 8427 mov dx, word [bp+006h] ; 8b 56 06 8428 mov ax, word [bp+026h] ; 8b 46 26 8429 xor bx, bx ; 31 db 8430 mov cx, strict word 0000fh ; b9 0f 00 8431 call 0606dh ; e8 db f8 8432 mov word [bp+016h], strict word 00003h ; c7 46 16 03 00 8433 jmp near 06716h ; e9 7c ff 8434 mov dx, strict word 00001h ; ba 01 00 8435 push dx ; 52 8436 xor dx, dx ; 31 d2 8437 push dx ; 52 8438 push dx ; 52 8439 push cx ; 51 8440 push ax ; 50 8441 mov dx, word [bp+006h] ; 8b 56 06 8442 mov ax, word [bp+026h] ; 8b 46 26 8443 xor bx, bx ; 31 db 8444 mov cx, strict word 00010h ; b9 10 00 8445 call 0606dh ; e8 bb f8 8446 mov word [bp+016h], strict word 00004h ; c7 46 16 04 00 8447 jmp near 06716h ; e9 5c ff 8448 mov si, strict word 00003h ; be 03 00 8449 push si ; 56 8450 xor si, si ; 31 f6 8451 push si ; 56 8452 push si ; 56 8453 push dx ; 52 8454 push bx ; 53 8455 mov dx, word [bp+006h] ; 8b 56 06 8456 mov si, word [bp+026h] ; 8b 76 26 8457 mov bx, ax ; 89 c3 8458 mov ax, si ; 89 f0 8459 call 0606dh ; e8 9c f8 8460 mov word [bp+016h], strict word 00005h ; c7 46 16 05 00 8461 jmp near 06716h ; e9 3d ff 8462 mov ax, strict word 00002h ; b8 02 00 8463 push ax ; 50 8464 xor ax, ax ; 31 c0 8465 push ax ; 50 8466 push ax ; 50 8467 push ax ; 50 8468 push ax ; 50 8469 mov dx, word [bp+006h] ; 8b 56 06 8470 mov ax, word [bp+026h] ; 8b 46 26 8471 xor bx, bx ; 31 db 8472 mov cx, strict word 0fffch ; b9 fc ff 8473 call 0606dh ; e8 7c f8 8474 cmp byte [bp-002h], 000h ; 80 7e fe 00 8475 jne short 067feh ; 75 07 8476 mov ax, word [bp-006h] ; 8b 46 fa 8477 test ax, ax ; 85 c0 8478 je short 0680eh ; 74 10 8479 mov word [bp+016h], strict word 00007h ; c7 46 16 07 00 8480 jmp near 06716h ; e9 10 ff 8481 mov word [bp+016h], strict word 00006h ; c7 46 16 06 00 8482 jmp near 06716h ; e9 08 ff 8483 mov word [bp+016h], ax ; 89 46 16 8484 mov word [bp+018h], ax ; 89 46 18 8485 jmp short 06881h ; eb 6b 8486 mov ax, strict word 00002h ; b8 02 00 8487 push ax ; 50 8488 xor ax, ax ; 31 c0 8489 push ax ; 50 8490 push ax ; 50 8491 push ax ; 50 8492 push ax ; 50 8493 mov dx, word [bp+006h] ; 8b 56 06 8494 mov ax, word [bp+026h] ; 8b 46 26 8495 xor bx, bx ; 31 db 8496 xor cx, cx ; 31 c9 8497 call 0606dh ; e8 40 f8 8498 cmp byte [bp-002h], 000h ; 80 7e fe 00 8499 jne short 0683ah ; 75 07 8500 mov ax, word [bp-006h] ; 8b 46 fa 8501 test ax, ax ; 85 c0 8502 je short 06842h ; 74 08 8503 mov word [bp+016h], strict word 00007h ; c7 46 16 07 00 8504 jmp near 06716h ; e9 d4 fe 8505 mov word [bp+016h], ax ; 89 46 16 8506 mov word [bp+018h], ax ; 89 46 18 8507 jmp short 06881h ; eb 37 8508 cmp byte [bp-002h], 000h ; 80 7e fe 00 8509 jne short 06856h ; 75 06 8510 cmp word [bp-006h], strict byte 00000h ; 83 7e fa 00 8511 je short 06881h ; 74 2b 8512 mov ax, strict word 00001h ; b8 01 00 8513 push ax ; 50 8514 mov al, byte [bp-004h] ; 8a 46 fc 8515 db 0feh, 0c0h 8516 ; inc al ; fe c0 8517 xor ah, ah ; 30 e4 8518 push ax ; 50 8519 mov ax, strict word 00001h ; b8 01 00 8520 push ax ; 50 8521 push word [bp-006h] ; ff 76 fa 8522 push word [bp-008h] ; ff 76 f8 8523 mov dx, word [bp+006h] ; 8b 56 06 8524 mov ax, word [bp+026h] ; 8b 46 26 8525 xor bx, bx ; 31 db 8526 xor cx, cx ; 31 c9 8527 call 0606dh ; e8 f4 f7 8528 xor ax, ax ; 31 c0 8529 mov word [bp+016h], ax ; 89 46 16 8530 mov word [bp+018h], ax ; 89 46 18 8531 mov word [bp+022h], 04150h ; c7 46 22 50 41 8532 mov word [bp+024h], 0534dh ; c7 46 24 4d 53 8533 mov word [bp+01eh], strict word 00014h ; c7 46 1e 14 00 8534 mov word [bp+020h], strict word 00000h ; c7 46 20 00 00 8535 and byte [bp+02ah], 0feh ; 80 66 2a fe 8536 jmp near 06770h ; e9 d4 fe 8537 and byte [bp+02ah], 0feh ; 80 66 2a fe 8538 mov ax, strict word 00031h ; b8 31 00 8539 call 0165ch ; e8 b6 ad 8540 mov dh, al ; 88 c6 8541 mov ax, strict word 00030h ; b8 30 00 8542 call 0165ch ; e8 ae ad 8543 mov dl, al ; 88 c2 8544 mov word [bp+01eh], dx ; 89 56 1e 8545 cmp dx, 03c00h ; 81 fa 00 3c 8546 jbe short 068beh ; 76 05 8547 mov word [bp+01eh], 03c00h ; c7 46 1e 00 3c 8548 mov ax, strict word 00035h ; b8 35 00 8549 call 0165ch ; e8 98 ad 8550 mov dh, al ; 88 c6 8551 mov ax, strict word 00034h ; b8 34 00 8552 call 0165ch ; e8 90 ad 8553 mov dl, al ; 88 c2 8554 mov word [bp+01ah], dx ; 89 56 1a 8555 mov ax, word [bp+01eh] ; 8b 46 1e 8556 mov word [bp+022h], ax ; 89 46 22 8557 mov word [bp+016h], dx ; 89 56 16 8558 jmp near 06770h ; e9 93 fe 8559 init_rtc_: ; 0xf68dd LB 0x25 8854 init_rtc_: ; 0xf6578 LB 0x25 8560 8855 push dx ; 52 8561 8856 push bp ; 55 … … 8563 8858 mov dx, strict word 00026h ; ba 26 00 8564 8859 mov ax, strict word 0000ah ; b8 0a 00 8565 call 0166dh ; e8 83 ad8860 call 0166dh ; e8 e8 b0 8566 8861 mov dx, strict word 00002h ; ba 02 00 8567 8862 mov ax, strict word 0000bh ; b8 0b 00 8568 call 0166dh ; e8 7a ad8863 call 0166dh ; e8 df b0 8569 8864 mov ax, strict word 0000ch ; b8 0c 00 8570 call 0165ch ; e8 63 ad8865 call 0165ch ; e8 c8 b0 8571 8866 mov ax, strict word 0000dh ; b8 0d 00 8572 call 0165ch ; e8 5d ad8867 call 0165ch ; e8 c2 b0 8573 8868 pop bp ; 5d 8574 8869 pop dx ; 5a 8575 8870 retn ; c3 8576 rtc_updating_: ; 0xf6 902LB 0x1f8871 rtc_updating_: ; 0xf659d LB 0x1f 8577 8872 push dx ; 52 8578 8873 push bp ; 55 … … 8580 8875 mov dx, 061a8h ; ba a8 61 8581 8876 dec dx ; 4a 8582 je short 06 91bh ; 74 0f8877 je short 065b6h ; 74 0f 8583 8878 mov ax, strict word 0000ah ; b8 0a 00 8584 call 0165ch ; e8 4a ad8879 call 0165ch ; e8 af b0 8585 8880 test AL, strict byte 080h ; a8 80 8586 jne short 06 909h ; 75 f38881 jne short 065a4h ; 75 f3 8587 8882 xor ax, ax ; 31 c0 8588 8883 pop bp ; 5d … … 8593 8888 pop dx ; 5a 8594 8889 retn ; c3 8595 _int70_function: ; 0xf6 921 LB 0xae8890 _int70_function: ; 0xf65bc LB 0xab 8596 8891 push si ; 56 8597 push bp ; 55 8598 mov bp, sp ; 89 e5 8599 push ax ; 50 8892 enter 00002h, 000h ; c8 02 00 00 8600 8893 mov ax, strict word 0000bh ; b8 0b 00 8601 call 0165ch ; e8 30 ad8602 mov bl, al ; 88 c38894 call 0165ch ; e8 95 b0 8895 mov dl, al ; 88 c2 8603 8896 mov byte [bp-002h], al ; 88 46 fe 8604 8897 mov ax, strict word 0000ch ; b8 0c 00 8605 call 0165ch ; e8 25 ad 8606 mov dl, al ; 88 c2 8607 test bl, 060h ; f6 c3 60 8608 jne short 06941h ; 75 03 8609 jmp near 069c7h ; e9 86 00 8898 call 0165ch ; e8 8a b0 8899 mov dh, al ; 88 c6 8900 test dl, 060h ; f6 c2 60 8901 je near 06661h ; 0f 84 86 00 8610 8902 test AL, strict byte 020h ; a8 20 8611 je short 06 949h ; 74 048903 je short 065e3h ; 74 04 8612 8904 sti ; fb 8613 8905 int 04ah ; cd 4a 8614 8906 cli ; fa 8615 test d l, 040h ; f6 c2408616 je short 069b1h ; 74 638907 test dh, 040h ; f6 c6 40 8908 je near 06661h ; 0f 84 77 00 8617 8909 mov dx, 000a0h ; ba a0 00 8618 8910 mov ax, strict word 00040h ; b8 40 00 8619 call 01600h ; e8 a9 ac8911 call 01600h ; e8 0d b0 8620 8912 test al, al ; 84 c0 8621 je short 06 9c7h ; 74 6c8913 je short 06661h ; 74 6a 8622 8914 mov dx, 0009ch ; ba 9c 00 8623 8915 mov ax, strict word 00040h ; b8 40 00 8624 call 01638h ; e8 d4 ac8916 call 01638h ; e8 38 b0 8625 8917 test dx, dx ; 85 d2 8626 jne short 06 9b3h ; 75 4b8918 jne short 0664dh ; 75 49 8627 8919 cmp ax, 003d1h ; 3d d1 03 8628 jnc short 06 9b3h ; 73 468920 jnc short 0664dh ; 73 44 8629 8921 mov dx, 00098h ; ba 98 00 8630 8922 mov ax, strict word 00040h ; b8 40 00 8631 call 0161ch ; e8 a6 ac8923 call 0161ch ; e8 0a b0 8632 8924 mov si, ax ; 89 c6 8633 8925 mov dx, 0009ah ; ba 9a 00 8634 8926 mov ax, strict word 00040h ; b8 40 00 8635 call 0161ch ; e8 9b ac8927 call 0161ch ; e8 ff af 8636 8928 mov cx, ax ; 89 c1 8637 8929 xor bx, bx ; 31 db 8638 8930 mov dx, 000a0h ; ba a0 00 8639 8931 mov ax, strict word 00040h ; b8 40 00 8640 call 0160eh ; e8 80 ac8641 mov dl, byte [bp-002h] ; 8a 56 fe8642 and dl, 037h ; 80 e2378643 xor dh, dh ; 30 f68932 call 0160eh ; e8 e4 af 8933 mov al, byte [bp-002h] ; 8a 46 fe 8934 and AL, strict byte 037h ; 24 37 8935 movzx dx, al ; 0f b6 d0 8644 8936 mov ax, strict word 0000bh ; b8 0b 00 8645 call 0166dh ; e8 d1 ac8937 call 0166dh ; e8 35 b0 8646 8938 mov dx, cx ; 89 ca 8647 8939 mov ax, si ; 89 f0 8648 call 01600h ; e8 5d ac 8649 mov bl, al ; 88 c3 8650 or bl, 080h ; 80 cb 80 8651 xor bh, bh ; 30 ff 8940 call 01600h ; e8 c1 af 8941 or AL, strict byte 080h ; 0c 80 8942 movzx bx, al ; 0f b6 d8 8652 8943 mov dx, cx ; 89 ca 8653 8944 mov ax, si ; 89 f0 8654 call 0160eh ; e8 5d ac8655 jmp short 06 9c7h ; eb 148945 call 0160eh ; e8 c3 af 8946 jmp short 06661h ; eb 14 8656 8947 mov bx, ax ; 89 c3 8657 8948 add bx, 0fc2fh ; 81 c3 2f fc … … 8660 8951 mov dx, 0009ch ; ba 9c 00 8661 8952 mov ax, strict word 00040h ; b8 40 00 8662 call 0164ah ; e8 83 ac 8663 call 0e03bh ; e8 71 76 8664 mov sp, bp ; 89 ec 8665 pop bp ; 5d 8953 call 0164ah ; e8 e9 af 8954 call 0e03bh ; e8 d7 79 8955 leave ; c9 8666 8956 pop si ; 5e 8667 8957 retn ; c3 8668 _int1a_function_pci: ; 0xf6 9cfLB 0x318958 _int1a_function_pci: ; 0xf6667 LB 0x31 8669 8959 push bp ; 55 8670 8960 mov bp, sp ; 89 e5 8671 8961 mov dx, strict word 00021h ; ba 21 00 8672 8962 mov ax, strict word 00004h ; b8 04 00 8673 call 0175 7h ; e8 7c ad8963 call 01751h ; e8 de b0 8674 8964 mov dx, strict word 0000ah ; ba 0a 00 8675 8965 mov ax, strict word 00004h ; b8 04 00 8676 call 0175 7h ; e8 73 ad8966 call 01751h ; e8 d5 b0 8677 8967 test byte [bp+018h], 001h ; f6 46 18 01 8678 jne short 06 9eeh ; 75 048968 jne short 06686h ; 75 04 8679 8969 or byte [bp+018h], 001h ; 80 4e 18 01 8680 8970 pop bp ; 5d 8681 8971 retn ; c3 8682 push SS ; 16 8683 push strict byte 0003dh ; 6a 3d 8684 push strict byte 00062h ; 6a 62 8685 push strict byte 0ff9bh ; 6a 9b 8686 push strict byte 0ffedh ; 6a ed 8687 push strict byte 00023h ; 6a 23 8688 imul bp, word [bx+di+06bh], strict byte 0ffc2h ; 6b 69 6b c2 8689 db 06bh 8690 _int1a_function: ; 0xf6a00 LB 0x1d4 8972 scasw ; af 8973 db 066h 8974 db 0d6h 8975 db 066h, 0fbh 8976 ; sti ; 66 fb 8977 sub eax, strict dword 0b1677b67h ; 66 2d 67 7b 67 b1 8978 db 067h, 0f3h, 067h, 048h 8979 ; rep dec ax ; 67 f3 67 48 8980 db 068h 8981 _int1a_function: ; 0xf6698 LB 0x1c0 8691 8982 push bp ; 55 8692 8983 mov bp, sp ; 89 e5 … … 8694 8985 mov al, byte [bp+013h] ; 8a 46 13 8695 8986 cmp AL, strict byte 007h ; 3c 07 8696 jnbe short 06a69h ; 77 5e 8697 mov bl, al ; 88 c3 8698 xor bh, bh ; 30 ff 8699 sal bx, 1 ; d1 e3 8700 jmp word [cs:bx+069f0h] ; 2e ff a7 f0 69 8987 jnbe near 066d4h ; 0f 87 2f 00 8988 movzx bx, al ; 0f b6 d8 8989 add bx, bx ; 01 db 8990 jmp word [cs:bx+06688h] ; 2e ff a7 88 66 8701 8991 cli ; fa 8702 8992 mov bx, 0046eh ; bb 6e 04 … … 8730 9020 pop bp ; 5d 8731 9021 retn ; c3 8732 call 06 902h ; e8 9dfe9022 call 0659dh ; e8 9f fe 8733 9023 test ax, ax ; 85 c0 8734 je short 06 a6bh ; 74 029024 je short 06704h ; 74 02 8735 9025 pop bp ; 5d 8736 9026 retn ; c3 8737 9027 xor ax, ax ; 31 c0 8738 call 0165ch ; e8 ec ab9028 call 0165ch ; e8 53 af 8739 9029 mov byte [bp+00fh], al ; 88 46 0f 8740 9030 mov ax, strict word 00002h ; b8 02 00 8741 call 0165ch ; e8 e3 ab9031 call 0165ch ; e8 4a af 8742 9032 mov byte [bp+010h], al ; 88 46 10 8743 9033 mov ax, strict word 00004h ; b8 04 00 8744 call 0165ch ; e8 da ab8745 mov dl, al ; 88 c29034 call 0165ch ; e8 41 af 9035 mov bl, al ; 88 c3 8746 9036 mov byte [bp+011h], al ; 88 46 11 8747 9037 mov ax, strict word 0000bh ; b8 0b 00 8748 call 0165ch ; e8 cf ab9038 call 0165ch ; e8 36 af 8749 9039 and AL, strict byte 001h ; 24 01 8750 9040 mov byte [bp+00eh], al ; 88 46 0e 8751 mov byte [bp+013h], 000h ; c6 46 13 00 8752 mov byte [bp+012h], dl ; 88 56 12 8753 pop bp ; 5d 8754 retn ; c3 8755 call 06902h ; e8 64 fe 9041 jmp short 06772h ; eb 45 9042 call 0659dh ; e8 6d fe 8756 9043 test ax, ax ; 85 c0 8757 je short 06aa5h ; 74 03 8758 call 068ddh ; e8 38 fe 8759 mov dl, byte [bp+00fh] ; 8a 56 0f 8760 xor dh, dh ; 30 f6 9044 je short 06737h ; 74 03 9045 call 06578h ; e8 41 fe 9046 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 8761 9047 xor ax, ax ; 31 c0 8762 call 0166dh ; e8 be ab 8763 mov dl, byte [bp+010h] ; 8a 56 10 8764 xor dh, dh ; 30 f6 9048 call 0166dh ; e8 2d af 9049 movzx dx, byte [bp+010h] ; 0f b6 56 10 8765 9050 mov ax, strict word 00002h ; b8 02 00 8766 call 0166dh ; e8 b3 ab 8767 mov dl, byte [bp+011h] ; 8a 56 11 8768 xor dh, dh ; 30 f6 9051 call 0166dh ; e8 23 af 9052 movzx dx, byte [bp+011h] ; 0f b6 56 11 8769 9053 mov ax, strict word 00004h ; b8 04 00 8770 call 0166dh ; e8 a8 ab9054 call 0166dh ; e8 19 af 8771 9055 mov ax, strict word 0000bh ; b8 0b 00 8772 call 0165ch ; e8 91 ab9056 call 0165ch ; e8 02 af 8773 9057 mov bl, al ; 88 c3 8774 9058 and bl, 060h ; 80 e3 60 … … 8777 9061 and AL, strict byte 001h ; 24 01 8778 9062 or bl, al ; 08 c3 8779 mov dl, bl ; 88 da 8780 xor dh, dh ; 30 f6 9063 movzx dx, bl ; 0f b6 d3 8781 9064 mov ax, strict word 0000bh ; b8 0b 00 8782 call 0166dh ; e8 89 ab9065 call 0166dh ; e8 fb ae 8783 9066 mov byte [bp+013h], 000h ; c6 46 13 00 8784 9067 mov byte [bp+012h], bl ; 88 5e 12 … … 8786 9069 retn ; c3 8787 9070 mov byte [bp+013h], 000h ; c6 46 13 00 8788 call 06 902h ; e8 0efe9071 call 0659dh ; e8 1b fe 8789 9072 test ax, ax ; 85 c0 8790 je short 06 afah ; 74 029073 je short 06788h ; 74 02 8791 9074 pop bp ; 5d 8792 9075 retn ; c3 8793 9076 mov ax, strict word 00009h ; b8 09 00 8794 call 0165ch ; e8 5c ab9077 call 0165ch ; e8 ce ae 8795 9078 mov byte [bp+010h], al ; 88 46 10 8796 9079 mov ax, strict word 00008h ; b8 08 00 8797 call 0165ch ; e8 53 ab9080 call 0165ch ; e8 c5 ae 8798 9081 mov byte [bp+00fh], al ; 88 46 0f 8799 9082 mov ax, strict word 00007h ; b8 07 00 8800 call 0165ch ; e8 4a ab9083 call 0165ch ; e8 bc ae 8801 9084 mov byte [bp+00eh], al ; 88 46 0e 8802 9085 mov ax, strict word 00032h ; b8 32 00 8803 call 0165ch ; e8 41 ab9086 call 0165ch ; e8 b3 ae 8804 9087 mov byte [bp+011h], al ; 88 46 11 8805 9088 mov byte [bp+012h], al ; 88 46 12 8806 9089 pop bp ; 5d 8807 9090 retn ; c3 8808 call 06 902h ; e8 dcfd9091 call 0659dh ; e8 e9 fd 8809 9092 test ax, ax ; 85 c0 8810 je short 06 b2fh ; 74 058811 call 06 8ddh ; e8 b0fd9093 je short 067bdh ; 74 05 9094 call 06578h ; e8 bd fd 8812 9095 pop bp ; 5d 8813 9096 retn ; c3 8814 mov dl, byte [bp+010h] ; 8a 56 10 8815 xor dh, dh ; 30 f6 9097 movzx dx, byte [bp+010h] ; 0f b6 56 10 8816 9098 mov ax, strict word 00009h ; b8 09 00 8817 call 0166dh ; e8 33 ab 8818 mov dl, byte [bp+00fh] ; 8a 56 0f 8819 xor dh, dh ; 30 f6 9099 call 0166dh ; e8 a6 ae 9100 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 8820 9101 mov ax, strict word 00008h ; b8 08 00 8821 call 0166dh ; e8 28 ab 8822 mov dl, byte [bp+00eh] ; 8a 56 0e 8823 xor dh, dh ; 30 f6 9102 call 0166dh ; e8 9c ae 9103 movzx dx, byte [bp+00eh] ; 0f b6 56 0e 8824 9104 mov ax, strict word 00007h ; b8 07 00 8825 call 0166dh ; e8 1d ab 8826 mov dl, byte [bp+011h] ; 8a 56 11 8827 xor dh, dh ; 30 f6 9105 call 0166dh ; e8 92 ae 9106 movzx dx, byte [bp+011h] ; 0f b6 56 11 8828 9107 mov ax, strict word 00032h ; b8 32 00 8829 call 0166dh ; e8 12 ab9108 call 0166dh ; e8 88 ae 8830 9109 mov ax, strict word 0000bh ; b8 0b 00 8831 call 0165ch ; e8 fb aa9110 call 0165ch ; e8 71 ae 8832 9111 mov bl, al ; 88 c3 8833 9112 and bl, 07fh ; 80 e3 7f 8834 jmp near 06 adah ; e9 71ff9113 jmp near 06769h ; e9 76 ff 8835 9114 mov ax, strict word 0000bh ; b8 0b 00 8836 call 0165ch ; e8 ed aa9115 call 0165ch ; e8 63 ae 8837 9116 mov bl, al ; 88 c3 8838 9117 mov word [bp+012h], strict word 00000h ; c7 46 12 00 00 8839 9118 test AL, strict byte 020h ; a8 20 8840 je short 06 b7ch ; 74 029119 je short 06806h ; 74 02 8841 9120 pop bp ; 5d 8842 9121 retn ; c3 8843 call 06 902h ; e8 83fd9122 call 0659dh ; e8 94 fd 8844 9123 test ax, ax ; 85 c0 8845 je short 06b86h ; 74 03 8846 call 068ddh ; e8 57 fd 8847 mov dl, byte [bp+00fh] ; 8a 56 0f 8848 xor dh, dh ; 30 f6 9124 je short 06810h ; 74 03 9125 call 06578h ; e8 68 fd 9126 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 8849 9127 mov ax, strict word 00001h ; b8 01 00 8850 call 0166dh ; e8 dc aa 8851 mov dl, byte [bp+010h] ; 8a 56 10 8852 xor dh, dh ; 30 f6 9128 call 0166dh ; e8 53 ae 9129 movzx dx, byte [bp+010h] ; 0f b6 56 10 8853 9130 mov ax, strict word 00003h ; b8 03 00 8854 call 0166dh ; e8 d1 aa 8855 mov dl, byte [bp+011h] ; 8a 56 11 8856 xor dh, dh ; 30 f6 9131 call 0166dh ; e8 49 ae 9132 movzx dx, byte [bp+011h] ; 0f b6 56 11 8857 9133 mov ax, strict word 00005h ; b8 05 00 8858 call 0166dh ; e8 c6 aa9134 call 0166dh ; e8 3f ae 8859 9135 mov dx, 000a1h ; ba a1 00 8860 9136 in AL, DX ; ec … … 8863 9139 and AL, strict byte 0feh ; 24 fe 8864 9140 out DX, AL ; ee 8865 mov dl, bl ; 88 da8866 and dl, 05fh ; 80 e25f8867 or dl, 020h ; 80 ca208868 xor dh, dh ; 30 f69141 mov al, bl ; 88 d8 9142 and AL, strict byte 05fh ; 24 5f 9143 or AL, strict byte 020h ; 0c 20 9144 movzx dx, al ; 0f b6 d0 8869 9145 mov ax, strict word 0000bh ; b8 0b 00 8870 call 0166dh ; e8 ad aa9146 call 0166dh ; e8 27 ae 8871 9147 pop bp ; 5d 8872 9148 retn ; c3 8873 9149 mov ax, strict word 0000bh ; b8 0b 00 8874 call 0165ch ; e8 94 aa9150 call 0165ch ; e8 0e ae 8875 9151 mov bl, al ; 88 c3 8876 mov dl, al ; 88 c2 8877 and dl, 057h ; 80 e2 57 8878 jmp near 06adch ; e9 0a ff 8879 pop bp ; 5d 8880 retn ; c3 8881 send_to_mouse_ctrl_: ; 0xf6bd4 LB 0x35 9152 and AL, strict byte 057h ; 24 57 9153 movzx dx, al ; 0f b6 d0 9154 jmp near 0676ch ; e9 14 ff 9155 send_to_mouse_ctrl_: ; 0xf6858 LB 0x31 8882 9156 push bx ; 53 8883 9157 push dx ; 52 … … 8890 9164 ; sub ah, ah ; 2a e4 8891 9165 test AL, strict byte 002h ; a8 02 8892 je short 06bf7h ; 74 12 8893 mov ax, 0086ch ; b8 6c 08 8894 push ax ; 50 8895 mov ax, 00fdeh ; b8 de 0f 8896 push ax ; 50 8897 mov ax, strict word 00007h ; b8 07 00 8898 push ax ; 50 8899 call 018fah ; e8 06 ad 9166 je short 06877h ; 74 0e 9167 push 0086ch ; 68 6c 08 9168 push 00fd0h ; 68 d0 0f 9169 push strict byte 00007h ; 6a 07 9170 call 018e9h ; e8 75 b0 8900 9171 add sp, strict byte 00006h ; 83 c4 06 8901 9172 mov AL, strict byte 0d4h ; b0 d4 … … 8910 9181 pop bx ; 5b 8911 9182 retn ; c3 8912 get_mouse_data_: ; 0xf6 c09 LB 0x389183 get_mouse_data_: ; 0xf6889 LB 0x38 8913 9184 push bx ; 53 8914 9185 push cx ; 51 … … 8924 9195 and ax, strict word 00021h ; 25 21 00 8925 9196 cmp ax, strict word 00021h ; 3d 21 00 8926 je short 06 c2ah ; 74 079197 je short 068aah ; 74 07 8927 9198 test cx, cx ; 85 c9 8928 je short 06 c2ah ; 74 039199 je short 068aah ; 74 03 8929 9200 dec cx ; 49 8930 jmp short 06 c15h ; eb eb9201 jmp short 06895h ; eb eb 8931 9202 test cx, cx ; 85 c9 8932 jne short 06 c32h ; 75 049203 jne short 068b2h ; 75 04 8933 9204 mov AL, strict byte 001h ; b0 01 8934 jmp short 06 c3dh ; eb 0b9205 jmp short 068bdh ; eb 0b 8935 9206 mov dx, strict word 00060h ; ba 60 00 8936 9207 in AL, DX ; ec … … 8943 9214 pop bx ; 5b 8944 9215 retn ; c3 8945 set_kbd_command_byte_: ; 0xf6 c41 LB 0x339216 set_kbd_command_byte_: ; 0xf68c1 LB 0x2f 8946 9217 push bx ; 53 8947 9218 push dx ; 52 … … 8954 9225 ; sub ah, ah ; 2a e4 8955 9226 test AL, strict byte 002h ; a8 02 8956 je short 06c64h ; 74 12 8957 mov ax, 00876h ; b8 76 08 8958 push ax ; 50 8959 mov ax, 00fdeh ; b8 de 0f 8960 push ax ; 50 8961 mov ax, strict word 00007h ; b8 07 00 8962 push ax ; 50 8963 call 018fah ; e8 99 ac 9227 je short 068e0h ; 74 0e 9228 push 00876h ; 68 76 08 9229 push 00fd0h ; 68 d0 0f 9230 push strict byte 00007h ; 6a 07 9231 call 018e9h ; e8 0c b0 8964 9232 add sp, strict byte 00006h ; 83 c4 06 8965 9233 mov AL, strict byte 060h ; b0 60 … … 8973 9241 pop bx ; 5b 8974 9242 retn ; c3 8975 _int74_function: ; 0xf6c74 LB 0xd2 8976 push bp ; 55 8977 mov bp, sp ; 89 e5 8978 sub sp, strict byte 00008h ; 83 ec 08 9243 _int74_function: ; 0xf68f0 LB 0xc6 9244 enter 00008h, 000h ; c8 08 00 00 8979 9245 mov dx, strict word 0000eh ; ba 0e 00 8980 9246 mov ax, strict word 00040h ; b8 40 00 8981 call 0161ch ; e8 99 a99247 call 0161ch ; e8 1f ad 8982 9248 mov cx, ax ; 89 c1 8983 9249 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 8988 9254 and AL, strict byte 021h ; 24 21 8989 9255 cmp AL, strict byte 021h ; 3c 21 8990 jne short 06cb8h ; 75 229256 jne near 069a4h ; 0f 85 92 00 8991 9257 mov dx, strict word 00060h ; ba 60 00 8992 9258 in AL, DX ; ec … … 8996 9262 mov dx, strict word 00026h ; ba 26 00 8997 9263 mov ax, cx ; 89 c8 8998 call 01600h ; e8 5a a98999 mov byte [bp-00 2h], al ; 88 46 fe9264 call 01600h ; e8 de ac 9265 mov byte [bp-006h], al ; 88 46 fa 9000 9266 mov dx, strict word 00027h ; ba 27 00 9001 9267 mov ax, cx ; 89 c8 9002 call 01600h ; e8 4f a99003 mov byte [bp-00 6h], al ; 88 46 fa9268 call 01600h ; e8 d3 ac 9269 mov byte [bp-008h], al ; 88 46 f8 9004 9270 test AL, strict byte 080h ; a8 80 9005 jne short 06cbbh ; 75 03 9006 jmp near 06d32h ; e9 77 00 9271 je short 069a4h ; 74 70 9272 mov al, byte [bp-008h] ; 8a 46 f8 9273 and AL, strict byte 007h ; 24 07 9274 mov byte [bp-002h], al ; 88 46 fe 9007 9275 mov al, byte [bp-006h] ; 8a 46 fa 9008 9276 and AL, strict byte 007h ; 24 07 9009 9277 mov byte [bp-004h], al ; 88 46 fc 9010 mov al, byte [bp-002h] ; 8a 46 fe 9011 and AL, strict byte 007h ; 24 07 9012 mov byte [bp-008h], al ; 88 46 f8 9013 mov al, bl ; 88 d8 9014 xor ah, ah ; 30 e4 9015 mov bx, ax ; 89 c3 9016 mov al, byte [bp-008h] ; 8a 46 f8 9017 mov dx, ax ; 89 c2 9278 xor bh, bh ; 30 ff 9279 movzx dx, al ; 0f b6 d0 9018 9280 add dx, strict byte 00028h ; 83 c2 28 9019 9281 mov ax, cx ; 89 c8 9020 call 0160eh ; e8 30 a99021 mov al, byte [bp-00 8h] ; 8a 46 f89022 cmp al, byte [bp-00 4h] ; 3a 46 fc9023 jc short 06 d22h ; 72 3c9282 call 0160eh ; e8 bd ac 9283 mov al, byte [bp-004h] ; 8a 46 fc 9284 cmp al, byte [bp-002h] ; 3a 46 fe 9285 jc short 06995h ; 72 3c 9024 9286 mov dx, strict word 00028h ; ba 28 00 9025 9287 mov ax, cx ; 89 c8 9026 call 01600h ; e8 12 a99288 call 01600h ; e8 9f ac 9027 9289 xor ah, ah ; 30 e4 9028 9290 mov word [bp+00ch], ax ; 89 46 0c 9029 9291 mov dx, strict word 00029h ; ba 29 00 9030 9292 mov ax, cx ; 89 c8 9031 call 01600h ; e8 05 a99293 call 01600h ; e8 92 ac 9032 9294 xor ah, ah ; 30 e4 9033 9295 mov word [bp+00ah], ax ; 89 46 0a 9034 9296 mov dx, strict word 0002ah ; ba 2a 00 9035 9297 mov ax, cx ; 89 c8 9036 call 01600h ; e8 f8 a89298 call 01600h ; e8 85 ac 9037 9299 xor ah, ah ; 30 e4 9038 9300 mov word [bp+008h], ax ; 89 46 08 9039 9301 xor al, al ; 30 c0 9040 9302 mov word [bp+006h], ax ; 89 46 06 9041 mov byte [bp-00 2h], ah ; 88 66 fe9042 test byte [bp-00 6h], 080h ; f6 46 fa809043 je short 06 d25h ; 74 0a9303 mov byte [bp-006h], ah ; 88 66 fa 9304 test byte [bp-008h], 080h ; f6 46 f8 80 9305 je short 06998h ; 74 0a 9044 9306 mov word [bp+004h], strict word 00001h ; c7 46 04 01 00 9045 jmp short 06d25h ; eb 03 9046 inc byte [bp-002h] ; fe 46 fe 9047 mov bl, byte [bp-002h] ; 8a 5e fe 9048 xor bh, bh ; 30 ff 9307 jmp short 06998h ; eb 03 9308 inc byte [bp-006h] ; fe 46 fa 9309 movzx bx, byte [bp-006h] ; 0f b6 5e fa 9049 9310 mov dx, strict word 00026h ; ba 26 00 9050 9311 mov ax, cx ; 89 c8 9051 call 0160eh ; e8 dc a8 9052 mov sp, bp ; 89 ec 9053 pop bp ; 5d 9054 retn ; c3 9055 mov byte [di+004h], ch ; 88 6d 04 9056 outsb ; 6e 9057 test byte [bp+019h], ch ; 84 6e 19 9058 outsw ; 6f 9059 mov bp, word [bx-031h] ; 8b 6f cf 9060 insw ; 6d 9061 mov BL, strict byte 06fh ; b3 6f 9062 db 080h 9063 db 070h 9064 _int15_function_mouse: ; 0xf6d46 LB 0x39f 9312 call 0160eh ; e8 6a ac 9313 leave ; c9 9314 retn ; c3 9315 clc ; f8 9316 imul bp, word [bp+06ah], 06af1h ; 69 6e 6a f1 6a 9317 db 082h, 06bh, 0f0h, 06bh 9318 ; sub byte [bp+di-010h], 06bh ; 82 6b f0 6b 9319 inc sp ; 44 9320 push strict byte 00018h ; 6a 18 9321 insb ; 6c 9322 db 0ddh 9323 insb ; 6c 9324 _int15_function_mouse: ; 0xf69b6 LB 0x386 9065 9325 push si ; 56 9066 push bp ; 55 9067 mov bp, sp ; 89 e5 9068 sub sp, strict byte 00006h ; 83 ec 06 9326 enter 00006h, 000h ; c8 06 00 00 9069 9327 mov dx, strict word 0000eh ; ba 0e 00 9070 9328 mov ax, strict word 00040h ; b8 40 00 9071 call 0161ch ; e8 c6 a89329 call 0161ch ; e8 58 ac 9072 9330 mov cx, ax ; 89 c1 9073 9331 cmp byte [bp+014h], 007h ; 80 7e 14 07 9074 jbe short 06 d69h ; 76 0b9332 jbe short 069d7h ; 76 0b 9075 9333 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9076 9334 mov byte [bp+015h], 001h ; c6 46 15 01 9077 jmp near 070e0h ; e9 77 03 9335 leave ; c9 9336 pop si ; 5e 9337 retn ; c3 9078 9338 mov ax, strict word 00065h ; b8 65 00 9079 call 06 c41h ; e8 d2fe9339 call 068c1h ; e8 e4 fe 9080 9340 and word [bp+01ah], strict byte 0fffeh ; 83 66 1a fe 9081 9341 mov byte [bp+015h], 000h ; c6 46 15 00 9082 mov bl, byte [bp+014h] ; 8a 5e149083 cmp bl, 007h ; 80 fb079084 jnbe short 06dddh ; 77 5e9085 xor bh, bh ; 30 ff9086 sal bx, 1 ; d1 e39087 jmp word [cs: bx+06d36h] ; 2e ff a7 36 6d9342 mov al, byte [bp+014h] ; 8a 46 14 9343 cmp AL, strict byte 007h ; 3c 07 9344 jnbe near 06d20h ; 0f 87 32 03 9345 movzx si, al ; 0f b6 f0 9346 add si, si ; 01 f6 9347 jmp word [cs:si+069a6h] ; 2e ff a4 a6 69 9088 9348 cmp byte [bp+00fh], 001h ; 80 7e 0f 01 9089 jnbe short 06de0h ; 77 529349 jnbe near 06d2bh ; 0f 87 2b 03 9090 9350 mov dx, strict word 00027h ; ba 27 00 9091 9351 mov ax, cx ; 89 c8 9092 call 01600h ; e8 6a a89352 call 01600h ; e8 f8 ab 9093 9353 test AL, strict byte 080h ; a8 80 9094 jne short 06 da5h ; 75 0b9354 jne short 06a17h ; 75 0b 9095 9355 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9096 9356 mov byte [bp+015h], 005h ; c6 46 15 05 9097 jmp near 0 70dah ; e9 35039357 jmp near 06d33h ; e9 1c 03 9098 9358 cmp byte [bp+00fh], 000h ; 80 7e 0f 00 9099 jne short 06dafh ; 75 04 9100 mov AL, strict byte 0f5h ; b0 f5 9101 jmp short 06db1h ; eb 02 9102 mov AL, strict byte 0f4h ; b0 f4 9359 db 00fh, 094h, 0c0h 9360 ; sete al ; 0f 94 c0 9361 add AL, strict byte 0f4h ; 04 f4 9103 9362 xor ah, ah ; 30 e4 9104 call 06 bd4h ; e8 1efe9363 call 06858h ; e8 33 fe 9105 9364 test al, al ; 84 c0 9106 jne short 06de3h ; 75 299365 jne near 06cb9h ; 0f 85 8e 02 9107 9366 mov dx, ss ; 8c d2 9108 lea ax, [bp-00 4h] ; 8d 46 fc9109 call 06 c09h ; e8 47fe9367 lea ax, [bp-006h] ; 8d 46 fa 9368 call 06889h ; e8 56 fe 9110 9369 test al, al ; 84 c0 9111 je short 06dcch ; 74 069112 cmp byte [bp-00 4h], 0fah ; 80 7e fcfa9113 jne short 06de3h ; 75 179114 jmp near 0 70dah ; e9 0b 039370 je near 06d33h ; 0f 84 fa 02 9371 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9372 jne near 06cb9h ; 0f 85 78 02 9373 jmp near 06d33h ; e9 ef 02 9115 9374 mov al, byte [bp+00fh] ; 8a 46 0f 9116 9375 cmp AL, strict byte 001h ; 3c 01 9117 jc short 06 ddah ; 72 049376 jc short 06a4fh ; 72 04 9118 9377 cmp AL, strict byte 008h ; 3c 08 9119 jbe short 06de6h ; 76 0c 9120 jmp near 06f81h ; e9 a4 01 9121 jmp near 070c4h ; e9 e4 02 9122 jmp near 070d2h ; e9 ef 02 9123 jmp near 07058h ; e9 72 02 9378 jbe short 06a52h ; 76 03 9379 jmp near 06be5h ; e9 93 01 9124 9380 mov dx, strict word 00027h ; ba 27 00 9125 9381 mov ax, cx ; 89 c8 9126 call 01600h ; e8 12 a89382 call 01600h ; e8 a6 ab 9127 9383 mov ah, byte [bp+00fh] ; 8a 66 0f 9128 9384 db 0feh, 0cch 9129 9385 ; dec ah ; fe cc 9130 mov bl, al ; 88 c3 9131 and bl, 0f8h ; 80 e3 f8 9132 or bl, ah ; 08 e3 9133 xor bh, bh ; 30 ff 9386 and AL, strict byte 0f8h ; 24 f8 9387 or al, ah ; 08 e0 9388 movzx bx, al ; 0f b6 d8 9134 9389 mov dx, strict word 00027h ; ba 27 00 9135 9390 mov ax, cx ; 89 c8 9136 call 0160eh ; e8 0a a89391 call 0160eh ; e8 a0 ab 9137 9392 mov dx, strict word 00026h ; ba 26 00 9138 9393 mov ax, cx ; 89 c8 9139 call 01600h ; e8 f4 a7 9140 mov bl, al ; 88 c3 9141 and bl, 0f8h ; 80 e3 f8 9142 xor bh, bh ; 30 ff 9394 call 01600h ; e8 8a ab 9395 and AL, strict byte 0f8h ; 24 f8 9396 movzx bx, al ; 0f b6 d8 9143 9397 mov dx, strict word 00026h ; ba 26 00 9144 9398 mov ax, cx ; 89 c8 9145 call 0160eh ; e8 f3 a79399 call 0160eh ; e8 8b ab 9146 9400 mov ax, 000ffh ; b8 ff 00 9147 call 06 bd4h ; e8 b3fd9401 call 06858h ; e8 cf fd 9148 9402 test al, al ; 84 c0 9149 jne short 06de3h ; 75 be 9403 jne near 06cb9h ; 0f 85 2a 02 9404 mov dx, ss ; 8c d2 9405 lea ax, [bp-002h] ; 8d 46 fe 9406 call 06889h ; e8 f2 fd 9407 mov cl, al ; 88 c1 9408 cmp byte [bp-002h], 0feh ; 80 7e fe fe 9409 jne short 06aaah ; 75 0b 9410 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9411 mov byte [bp+015h], 004h ; c6 46 15 04 9412 jmp near 06d33h ; e9 89 02 9413 cmp byte [bp-002h], 0fah ; 80 7e fe fa 9414 je short 06ac0h ; 74 10 9415 movzx ax, byte [bp-002h] ; 0f b6 46 fe 9416 push ax ; 50 9417 push 00881h ; 68 81 08 9418 push strict byte 00007h ; 6a 07 9419 call 018e9h ; e8 2c ae 9420 add sp, strict byte 00006h ; 83 c4 06 9421 test cl, cl ; 84 c9 9422 jne near 06cb9h ; 0f 85 f3 01 9150 9423 mov dx, ss ; 8c d2 9151 9424 lea ax, [bp-006h] ; 8d 46 fa 9152 call 06c09h ; e8 dc fd 9425 call 06889h ; e8 bb fd 9426 test al, al ; 84 c0 9427 jne near 06cb9h ; 0f 85 e5 01 9428 mov dx, ss ; 8c d2 9429 lea ax, [bp-004h] ; 8d 46 fc 9430 call 06889h ; e8 ad fd 9431 test al, al ; 84 c0 9432 jne near 06cb9h ; 0f 85 d7 01 9433 mov al, byte [bp-006h] ; 8a 46 fa 9434 mov byte [bp+00eh], al ; 88 46 0e 9435 mov al, byte [bp-004h] ; 8a 46 fc 9436 mov byte [bp+00fh], al ; 88 46 0f 9437 jmp near 06d33h ; e9 42 02 9438 mov al, byte [bp+00fh] ; 8a 46 0f 9439 cmp AL, strict byte 003h ; 3c 03 9440 jc short 06b08h ; 72 10 9441 jbe short 06b26h ; 76 2c 9442 cmp AL, strict byte 006h ; 3c 06 9443 je short 06b38h ; 74 3a 9444 cmp AL, strict byte 005h ; 3c 05 9445 je short 06b32h ; 74 30 9446 cmp AL, strict byte 004h ; 3c 04 9447 je short 06b2ch ; 74 26 9448 jmp short 06b3eh ; eb 36 9449 cmp AL, strict byte 002h ; 3c 02 9450 je short 06b20h ; 74 14 9451 cmp AL, strict byte 001h ; 3c 01 9452 je short 06b1ah ; 74 0a 9453 test al, al ; 84 c0 9454 jne short 06b3eh ; 75 2a 9455 mov byte [bp-006h], 00ah ; c6 46 fa 0a 9456 jmp short 06b42h ; eb 28 9457 mov byte [bp-006h], 014h ; c6 46 fa 14 9458 jmp short 06b42h ; eb 22 9459 mov byte [bp-006h], 028h ; c6 46 fa 28 9460 jmp short 06b42h ; eb 1c 9461 mov byte [bp-006h], 03ch ; c6 46 fa 3c 9462 jmp short 06b42h ; eb 16 9463 mov byte [bp-006h], 050h ; c6 46 fa 50 9464 jmp short 06b42h ; eb 10 9465 mov byte [bp-006h], 064h ; c6 46 fa 64 9466 jmp short 06b42h ; eb 0a 9467 mov byte [bp-006h], 0c8h ; c6 46 fa c8 9468 jmp short 06b42h ; eb 04 9469 mov byte [bp-006h], 000h ; c6 46 fa 00 9470 cmp byte [bp-006h], 000h ; 80 7e fa 00 9471 jbe short 06b77h ; 76 2f 9472 mov ax, 000f3h ; b8 f3 00 9473 call 06858h ; e8 0a fd 9474 test al, al ; 84 c0 9475 jne short 06b6ch ; 75 1a 9476 mov dx, ss ; 8c d2 9477 lea ax, [bp-004h] ; 8d 46 fc 9478 call 06889h ; e8 2f fd 9479 movzx ax, byte [bp-006h] ; 0f b6 46 fa 9480 call 06858h ; e8 f7 fc 9481 mov dx, ss ; 8c d2 9482 lea ax, [bp-004h] ; 8d 46 fc 9483 call 06889h ; e8 20 fd 9484 jmp near 06d33h ; e9 c7 01 9485 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9486 mov byte [bp+015h], 003h ; c6 46 15 03 9487 jmp near 06d33h ; e9 bc 01 9488 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9489 mov byte [bp+015h], 002h ; c6 46 15 02 9490 jmp near 06d33h ; e9 b1 01 9491 cmp byte [bp+00fh], 004h ; 80 7e 0f 04 9492 jnc short 06be5h ; 73 5d 9493 mov ax, 000e8h ; b8 e8 00 9494 call 06858h ; e8 ca fc 9495 test al, al ; 84 c0 9496 jne short 06bdah ; 75 48 9497 mov dx, ss ; 8c d2 9498 lea ax, [bp-006h] ; 8d 46 fa 9499 call 06889h ; e8 ef fc 9500 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9501 je short 06bb0h ; 74 10 9502 movzx ax, byte [bp-006h] ; 0f b6 46 fa 9503 push ax ; 50 9504 push 008ach ; 68 ac 08 9505 push strict byte 00007h ; 6a 07 9506 call 018e9h ; e8 3c ad 9507 add sp, strict byte 00006h ; 83 c4 06 9508 movzx ax, byte [bp+00fh] ; 0f b6 46 0f 9509 call 06858h ; e8 a1 fc 9510 mov dx, ss ; 8c d2 9511 lea ax, [bp-006h] ; 8d 46 fa 9512 call 06889h ; e8 ca fc 9513 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9514 je near 06d33h ; 0f 84 6c 01 9515 movzx ax, byte [bp-006h] ; 0f b6 46 fa 9516 push ax ; 50 9517 push 008ach ; 68 ac 08 9518 push strict byte 00007h ; 6a 07 9519 call 018e9h ; e8 15 ad 9520 add sp, strict byte 00006h ; 83 c4 06 9521 jmp near 06d33h ; e9 59 01 9522 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9523 mov byte [bp+015h], 003h ; c6 46 15 03 9524 jmp near 06d33h ; e9 4e 01 9525 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9526 mov byte [bp+015h], 002h ; c6 46 15 02 9527 jmp near 06d33h ; e9 43 01 9528 mov ax, 000f2h ; b8 f2 00 9529 call 06858h ; e8 62 fc 9530 test al, al ; 84 c0 9531 jne short 06c0dh ; 75 13 9532 mov dx, ss ; 8c d2 9533 lea ax, [bp-006h] ; 8d 46 fa 9534 call 06889h ; e8 87 fc 9535 mov dx, ss ; 8c d2 9536 lea ax, [bp-004h] ; 8d 46 fc 9537 call 06889h ; e8 7f fc 9538 jmp near 06ae8h ; e9 db fe 9539 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9540 mov byte [bp+015h], 003h ; c6 46 15 03 9541 jmp near 06d33h ; e9 1b 01 9542 mov al, byte [bp+00fh] ; 8a 46 0f 9543 test al, al ; 84 c0 9544 jbe short 06c26h ; 76 07 9545 cmp AL, strict byte 002h ; 3c 02 9546 jbe short 06c8fh ; 76 6c 9547 jmp near 06cc3h ; e9 9d 00 9548 mov ax, 000e9h ; b8 e9 00 9549 call 06858h ; e8 2c fc 9550 test al, al ; 84 c0 9551 jne near 06cb9h ; 0f 85 87 00 9552 mov dx, ss ; 8c d2 9553 lea ax, [bp-006h] ; 8d 46 fa 9554 call 06889h ; e8 4f fc 9153 9555 mov cl, al ; 88 c1 9154 cmp byte [bp-006h], 0feh ; 80 7e fa fe9155 jne short 06e3fh ; 75 0a9156 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 019157 mov byte [bp+015h], 004h ; c6 46 15 049158 jmp short 06dcch ; eb 8d9159 9556 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9160 je short 06e59h ; 74 14 9161 mov al, byte [bp-006h] ; 8a 46 fa 9162 xor ah, ah ; 30 e4 9557 je short 06c52h ; 74 10 9558 movzx ax, byte [bp-006h] ; 0f b6 46 fa 9163 9559 push ax ; 50 9164 mov ax, 00881h ; b8 81 08 9165 push ax ; 50 9166 mov ax, strict word 00007h ; b8 07 00 9167 push ax ; 50 9168 call 018fah ; e8 a4 aa 9560 push 008ach ; 68 ac 08 9561 push strict byte 00007h ; 6a 07 9562 call 018e9h ; e8 9a ac 9169 9563 add sp, strict byte 00006h ; 83 c4 06 9170 9564 test cl, cl ; 84 c9 9171 jne short 06de3h ; 75 86 9565 jne short 06cb9h ; 75 63 9566 mov dx, ss ; 8c d2 9567 lea ax, [bp-006h] ; 8d 46 fa 9568 call 06889h ; e8 2b fc 9569 test al, al ; 84 c0 9570 jne short 06cb9h ; 75 57 9172 9571 mov dx, ss ; 8c d2 9173 9572 lea ax, [bp-004h] ; 8d 46 fc 9174 call 06 c09h ; e8 a4 fd9573 call 06889h ; e8 1f fc 9175 9574 test al, al ; 84 c0 9176 jne short 06 ebfh ; 75 569575 jne short 06cb9h ; 75 4b 9177 9576 mov dx, ss ; 8c d2 9178 9577 lea ax, [bp-002h] ; 8d 46 fe 9179 call 06 c09h ; e8 98 fd9578 call 06889h ; e8 13 fc 9180 9579 test al, al ; 84 c0 9181 jne short 06ebfh ; 75 4a 9580 jne short 06cb9h ; 75 3f 9581 mov al, byte [bp-006h] ; 8a 46 fa 9582 mov byte [bp+00eh], al ; 88 46 0e 9182 9583 mov al, byte [bp-004h] ; 8a 46 fc 9183 mov byte [bp+0 0eh], al ; 88 46 0e9584 mov byte [bp+012h], al ; 88 46 12 9184 9585 mov al, byte [bp-002h] ; 8a 46 fe 9185 mov byte [bp+00fh], al ; 88 46 0f 9186 jmp near 070dah ; e9 56 02 9187 mov al, byte [bp+00fh] ; 8a 46 0f 9188 cmp AL, strict byte 003h ; 3c 03 9189 jc short 06e9bh ; 72 10 9190 jbe short 06eb9h ; 76 2c 9191 cmp AL, strict byte 006h ; 3c 06 9192 je short 06eceh ; 74 3d 9193 cmp AL, strict byte 005h ; 3c 05 9194 je short 06ec8h ; 74 33 9195 cmp AL, strict byte 004h ; 3c 04 9196 je short 06ec2h ; 74 29 9197 jmp short 06ed4h ; eb 39 9198 cmp AL, strict byte 002h ; 3c 02 9199 je short 06eb3h ; 74 14 9586 mov byte [bp+010h], al ; 88 46 10 9587 jmp near 06d33h ; e9 a4 00 9200 9588 cmp AL, strict byte 001h ; 3c 01 9201 je short 06eadh ; 74 0a 9202 test al, al ; 84 c0 9203 jne short 06ed4h ; 75 2d 9204 mov byte [bp-004h], 00ah ; c6 46 fc 0a 9205 jmp short 06ed8h ; eb 2b 9206 mov byte [bp-004h], 014h ; c6 46 fc 14 9207 jmp short 06ed8h ; eb 25 9208 mov byte [bp-004h], 028h ; c6 46 fc 28 9209 jmp short 06ed8h ; eb 1f 9210 mov byte [bp-004h], 03ch ; c6 46 fc 3c 9211 jmp short 06ed8h ; eb 19 9212 jmp near 07058h ; e9 96 01 9213 mov byte [bp-004h], 050h ; c6 46 fc 50 9214 jmp short 06ed8h ; eb 10 9215 mov byte [bp-004h], 064h ; c6 46 fc 64 9216 jmp short 06ed8h ; eb 0a 9217 mov byte [bp-004h], 0c8h ; c6 46 fc c8 9218 jmp short 06ed8h ; eb 04 9219 mov byte [bp-004h], 000h ; c6 46 fc 00 9220 cmp byte [bp-004h], 000h ; 80 7e fc 00 9221 jbe short 06f0eh ; 76 30 9222 mov ax, 000f3h ; b8 f3 00 9223 call 06bd4h ; e8 f0 fc 9224 test al, al ; 84 c0 9225 jne short 06f03h ; 75 1b 9589 jne short 06c98h ; 75 05 9590 mov ax, 000e6h ; b8 e6 00 9591 jmp short 06c9bh ; eb 03 9592 mov ax, 000e7h ; b8 e7 00 9593 call 06858h ; e8 ba fb 9594 mov cl, al ; 88 c1 9595 test cl, cl ; 84 c9 9596 jne short 06cb3h ; 75 0f 9226 9597 mov dx, ss ; 8c d2 9227 lea ax, [bp-002h] ; 8d 46 fe 9228 call 06c09h ; e8 19 fd 9229 mov al, byte [bp-004h] ; 8a 46 fc 9230 xor ah, ah ; 30 e4 9231 call 06bd4h ; e8 dc fc 9232 mov dx, ss ; 8c d2 9233 lea ax, [bp-002h] ; 8d 46 fe 9234 call 06c09h ; e8 09 fd 9235 jmp near 070dah ; e9 d7 01 9598 lea ax, [bp-006h] ; 8d 46 fa 9599 call 06889h ; e8 dd fb 9600 cmp byte [bp-006h], 0fah ; 80 7e fa fa 9601 db 00fh, 095h, 0c1h 9602 ; setne cl ; 0f 95 c1 9603 test cl, cl ; 84 c9 9604 je near 06d33h ; 0f 84 7a 00 9236 9605 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9237 9606 mov byte [bp+015h], 003h ; c6 46 15 03 9238 jmp near 070dah ; e9 cc 01 9239 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9240 mov byte [bp+015h], 002h ; c6 46 15 02 9241 jmp near 070dah ; e9 c1 01 9242 cmp byte [bp+00fh], 004h ; 80 7e 0f 04 9243 jnc short 06f81h ; 73 62 9244 mov ax, 000e8h ; b8 e8 00 9245 call 06bd4h ; e8 af fc 9246 test al, al ; 84 c0 9247 jne short 06f77h ; 75 4e 9248 mov dx, ss ; 8c d2 9249 lea ax, [bp-004h] ; 8d 46 fc 9250 call 06c09h ; e8 d8 fc 9251 cmp byte [bp-004h], 0fah ; 80 7e fc fa 9252 je short 06f4bh ; 74 14 9253 mov al, byte [bp-004h] ; 8a 46 fc 9254 xor ah, ah ; 30 e4 9607 jmp short 06d33h ; eb 70 9608 movzx ax, byte [bp+00fh] ; 0f b6 46 0f 9255 9609 push ax ; 50 9256 mov ax, 008ach ; b8 ac 08 9257 push ax ; 50 9258 mov ax, strict word 00007h ; b8 07 00 9259 push ax ; 50 9260 call 018fah ; e8 b2 a9 9261 add sp, strict byte 00006h ; 83 c4 06 9262 mov al, byte [bp+00fh] ; 8a 46 0f 9263 xor ah, ah ; 30 e4 9264 call 06bd4h ; e8 81 fc 9265 mov dx, ss ; 8c d2 9266 lea ax, [bp-004h] ; 8d 46 fc 9267 call 06c09h ; e8 ae fc 9268 cmp byte [bp-004h], 0fah ; 80 7e fc fa 9269 je short 06fb0h ; 74 4f 9270 mov al, byte [bp-004h] ; 8a 46 fc 9271 xor ah, ah ; 30 e4 9272 push ax ; 50 9273 mov ax, 008ach ; b8 ac 08 9274 push ax ; 50 9275 mov ax, strict word 00007h ; b8 07 00 9276 push ax ; 50 9277 call 018fah ; e8 88 a9 9278 add sp, strict byte 00006h ; 83 c4 06 9279 jmp short 06fb0h ; eb 39 9280 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9281 mov byte [bp+015h], 003h ; c6 46 15 03 9282 jmp short 06fb0h ; eb 2f 9283 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9284 mov byte [bp+015h], 002h ; c6 46 15 02 9285 jmp short 06fb0h ; eb 25 9286 mov ax, 000f2h ; b8 f2 00 9287 call 06bd4h ; e8 43 fc 9288 test al, al ; 84 c0 9289 jne short 06fa8h ; 75 13 9290 mov dx, ss ; 8c d2 9291 lea ax, [bp-004h] ; 8d 46 fc 9292 call 06c09h ; e8 6c fc 9293 mov dx, ss ; 8c d2 9294 lea ax, [bp-002h] ; 8d 46 fe 9295 call 06c09h ; e8 64 fc 9296 jmp near 06e7bh ; e9 d3 fe 9297 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9298 mov byte [bp+015h], 003h ; c6 46 15 03 9299 jmp near 070dah ; e9 27 01 9300 mov al, byte [bp+00fh] ; 8a 46 0f 9301 test al, al ; 84 c0 9302 jbe short 06fc3h ; 76 09 9303 cmp AL, strict byte 002h ; 3c 02 9304 jbe short 06fc1h ; 76 03 9305 jmp near 07062h ; e9 a1 00 9306 jmp short 0702dh ; eb 6a 9307 mov ax, 000e9h ; b8 e9 00 9308 call 06bd4h ; e8 0b fc 9309 test al, al ; 84 c0 9310 jne short 07036h ; 75 69 9311 mov dx, ss ; 8c d2 9312 lea ax, [bp-004h] ; 8d 46 fc 9313 call 06c09h ; e8 34 fc 9314 mov cl, al ; 88 c1 9315 cmp byte [bp-004h], 0fah ; 80 7e fc fa 9316 je short 06ff1h ; 74 14 9317 mov al, byte [bp-004h] ; 8a 46 fc 9318 xor ah, ah ; 30 e4 9319 push ax ; 50 9320 mov ax, 008ach ; b8 ac 08 9321 push ax ; 50 9322 mov ax, strict word 00007h ; b8 07 00 9323 push ax ; 50 9324 call 018fah ; e8 0c a9 9325 add sp, strict byte 00006h ; 83 c4 06 9326 test cl, cl ; 84 c9 9327 jne short 07058h ; 75 63 9328 mov dx, ss ; 8c d2 9329 lea ax, [bp-004h] ; 8d 46 fc 9330 call 06c09h ; e8 0c fc 9331 test al, al ; 84 c0 9332 jne short 07058h ; 75 57 9333 mov dx, ss ; 8c d2 9334 lea ax, [bp-002h] ; 8d 46 fe 9335 call 06c09h ; e8 00 fc 9336 test al, al ; 84 c0 9337 jne short 07058h ; 75 4b 9338 mov dx, ss ; 8c d2 9339 lea ax, [bp-006h] ; 8d 46 fa 9340 call 06c09h ; e8 f4 fb 9341 test al, al ; 84 c0 9342 jne short 07058h ; 75 3f 9343 mov al, byte [bp-004h] ; 8a 46 fc 9344 mov byte [bp+00eh], al ; 88 46 0e 9345 mov al, byte [bp-002h] ; 8a 46 fe 9346 mov byte [bp+012h], al ; 88 46 12 9347 mov al, byte [bp-006h] ; 8a 46 fa 9348 mov byte [bp+010h], al ; 88 46 10 9349 jmp short 06fb0h ; eb 83 9350 cmp AL, strict byte 001h ; 3c 01 9351 jne short 07038h ; 75 07 9352 mov ax, 000e6h ; b8 e6 00 9353 jmp short 0703bh ; eb 05 9354 jmp short 07058h ; eb 20 9355 mov ax, 000e7h ; b8 e7 00 9356 call 06bd4h ; e8 96 fb 9357 mov cl, al ; 88 c1 9358 test cl, cl ; 84 c9 9359 jne short 07054h ; 75 10 9360 mov dx, ss ; 8c d2 9361 lea ax, [bp-004h] ; 8d 46 fc 9362 call 06c09h ; e8 bd fb 9363 cmp byte [bp-004h], 0fah ; 80 7e fc fa 9364 je short 07054h ; 74 02 9365 mov CL, strict byte 001h ; b1 01 9366 test cl, cl ; 84 c9 9367 je short 070c2h ; 74 6a 9368 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9369 mov byte [bp+015h], 003h ; c6 46 15 03 9370 jmp short 070c2h ; eb 60 9371 mov al, byte [bp+00fh] ; 8a 46 0f 9372 xor ah, ah ; 30 e4 9373 push ax ; 50 9374 mov ax, 008d8h ; b8 d8 08 9375 push ax ; 50 9376 mov ax, strict word 00007h ; b8 07 00 9377 push ax ; 50 9378 call 018fah ; e8 87 a8 9610 push 008d8h ; 68 d8 08 9611 push strict byte 00007h ; 6a 07 9612 call 018e9h ; e8 19 ac 9379 9613 add sp, strict byte 00006h ; 83 c4 06 9380 9614 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9381 9615 mov byte [bp+015h], 001h ; c6 46 15 01 9382 jmp short 0 70dah ; eb 5a9616 jmp short 06d33h ; eb 56 9383 9617 mov si, word [bp+00eh] ; 8b 76 0e 9384 9618 mov bx, si ; 89 f3 9385 9619 mov dx, strict word 00022h ; ba 22 00 9386 9620 mov ax, cx ; 89 c8 9387 call 0162ah ; e8 9d a59621 call 0162ah ; e8 40 a9 9388 9622 mov bx, word [bp+016h] ; 8b 5e 16 9389 9623 mov dx, strict word 00024h ; ba 24 00 9390 9624 mov ax, cx ; 89 c8 9391 call 0162ah ; e8 92 a59625 call 0162ah ; e8 35 a9 9392 9626 mov dx, strict word 00027h ; ba 27 00 9393 9627 mov ax, cx ; 89 c8 9394 call 01600h ; e8 60 a59628 call 01600h ; e8 03 a9 9395 9629 mov ah, al ; 88 c4 9396 9630 test si, si ; 85 f6 9397 jne short 0 70b4h ; 75 0e9631 jne short 06d11h ; 75 0e 9398 9632 cmp word [bp+016h], strict byte 00000h ; 83 7e 16 00 9399 jne short 0 70b4h ; 75 089633 jne short 06d11h ; 75 08 9400 9634 test AL, strict byte 080h ; a8 80 9401 je short 0 70b6h ; 74 069635 je short 06d13h ; 74 06 9402 9636 and AL, strict byte 07fh ; 24 7f 9403 jmp short 0 70b6h ; eb 029637 jmp short 06d13h ; eb 02 9404 9638 or AL, strict byte 080h ; 0c 80 9405 mov bl, al ; 88 c3 9406 xor bh, bh ; 30 ff 9639 movzx bx, al ; 0f b6 d8 9407 9640 mov dx, strict word 00027h ; ba 27 00 9408 9641 mov ax, cx ; 89 c8 9409 call 0160eh ; e8 4c a5 9410 jmp short 070dah ; eb 16 9411 mov ax, 008f2h ; b8 f2 08 9412 push ax ; 50 9413 mov ax, strict word 00007h ; b8 07 00 9414 push ax ; 50 9415 call 018fah ; e8 2b a8 9642 call 0160eh ; e8 f0 a8 9643 jmp short 06d33h ; eb 13 9644 push 008f2h ; 68 f2 08 9645 push strict byte 00007h ; 6a 07 9646 call 018e9h ; e8 c1 ab 9416 9647 add sp, strict byte 00004h ; 83 c4 04 9417 9648 or word [bp+01ah], strict byte 00001h ; 83 4e 1a 01 9418 9649 mov byte [bp+015h], 001h ; c6 46 15 01 9419 9650 mov ax, strict word 00047h ; b8 47 00 9420 call 06c41h ; e8 61 fb 9421 mov sp, bp ; 89 ec 9422 pop bp ; 5d 9651 call 068c1h ; e8 88 fb 9652 leave ; c9 9423 9653 pop si ; 5e 9424 9654 retn ; c3 9425 _int17_function: ; 0xf 70e5 LB 0xab9655 _int17_function: ; 0xf6d3c LB 0xb1 9426 9656 push si ; 56 9427 push bp ; 55 9428 mov bp, sp ; 89 e5 9429 push ax ; 50 9657 enter 00002h, 000h ; c8 02 00 00 9430 9658 sti ; fb 9431 9659 mov dx, word [bp+010h] ; 8b 56 10 9432 sal dx, 1 ; d1 e29660 add dx, dx ; 01 d2 9433 9661 add dx, strict byte 00008h ; 83 c2 08 9434 9662 mov ax, strict word 00040h ; b8 40 00 9435 call 0161ch ; e8 23 a59663 call 0161ch ; e8 cc a8 9436 9664 mov bx, ax ; 89 c3 9437 9665 mov si, ax ; 89 c6 9438 9666 cmp byte [bp+015h], 003h ; 80 7e 15 03 9439 jnc short 0710fh ; 73 0c9667 jnc near 06de6h ; 0f 83 8a 00 9440 9668 mov ax, word [bp+010h] ; 8b 46 10 9441 9669 cmp ax, strict word 00003h ; 3d 03 00 9442 jnc short 0710fh ; 73 049670 jnc near 06de6h ; 0f 83 80 00 9443 9671 test bx, bx ; 85 db 9444 jnbe short 07112h ; 77 03 9445 jmp near 07187h ; e9 75 00 9672 jbe near 06de6h ; 0f 86 7a 00 9446 9673 mov dx, ax ; 89 c2 9447 9674 add dx, strict byte 00078h ; 83 c2 78 9448 9675 mov ax, strict word 00040h ; b8 40 00 9449 call 01600h ; e8 e3 a49450 mov ch, al ; 88 c59451 xor cl, cl ; 30 c99676 call 01600h ; e8 89 a8 9677 movzx cx, al ; 0f b6 c8 9678 sal cx, 008h ; c1 e1 08 9452 9679 cmp byte [bp+015h], 000h ; 80 7e 15 00 9453 jne short 0 7153h ; 75 2c9680 jne short 06db0h ; 75 2d 9454 9681 mov al, byte [bp+014h] ; 8a 46 14 9455 9682 mov dx, bx ; 89 da … … 9463 9690 or AL, strict byte 001h ; 0c 01 9464 9691 out DX, AL ; ee 9465 mov al, byte [bp-002h] ; 8a46 fe9692 movzx ax, byte [bp-002h] ; 0f b6 46 fe 9466 9693 and AL, strict byte 0feh ; 24 fe 9467 9694 out DX, AL ; ee … … 9471 9698 ; sub ah, ah ; 2a e4 9472 9699 test AL, strict byte 040h ; a8 40 9473 je short 0 7153h ; 74 079700 je short 06db0h ; 74 07 9474 9701 test cx, cx ; 85 c9 9475 je short 0 7153h ; 74 039702 je short 06db0h ; 74 03 9476 9703 dec cx ; 49 9477 jmp short 0 7142h ; eb ef9704 jmp short 06d9fh ; eb ef 9478 9705 cmp byte [bp+015h], 001h ; 80 7e 15 01 9479 jne short 0 716eh ; 75 159706 jne short 06dcch ; 75 16 9480 9707 lea dx, [si+002h] ; 8d 54 02 9481 9708 in AL, DX ; ec … … 9483 9710 ; sub ah, ah ; 2a e4 9484 9711 mov word [bp-002h], ax ; 89 46 fe 9485 mov al, byte [bp-002h] ; 8a46 fe9712 movzx ax, byte [bp-002h] ; 0f b6 46 fe 9486 9713 and AL, strict byte 0fbh ; 24 fb 9487 9714 out DX, AL ; ee … … 9496 9723 mov byte [bp+015h], al ; 88 46 15 9497 9724 test cx, cx ; 85 c9 9498 jne short 0 7181h ; 75 049725 jne short 06ddfh ; 75 04 9499 9726 or byte [bp+015h], 001h ; 80 4e 15 01 9500 9727 and byte [bp+01eh], 0feh ; 80 66 1e fe 9501 jmp short 0718bh ; eb 04 9728 leave ; c9 9729 pop si ; 5e 9730 retn ; c3 9502 9731 or byte [bp+01eh], 001h ; 80 4e 1e 01 9503 mov sp, bp ; 89 ec 9504 pop bp ; 5d 9732 leave ; c9 9505 9733 pop si ; 5e 9506 9734 retn ; c3 9507 wait_: ; 0xf 7190 LB 0xb19735 wait_: ; 0xf6ded LB 0xad 9508 9736 push bx ; 53 9509 9737 push cx ; 51 9510 9738 push si ; 56 9511 9739 push di ; 57 9512 push bp ; 55 9513 mov bp, sp ; 89 e5 9514 sub sp, strict byte 0000ah ; 83 ec 0a 9740 enter 0000ah, 000h ; c8 0a 00 00 9515 9741 mov si, ax ; 89 c6 9516 mov byte [bp-00 2h], dl ; 88 56 fe9517 mov byte [bp-00 4h], 000h ; c6 46 fc009742 mov byte [bp-004h], dl ; 88 56 fc 9743 mov byte [bp-002h], 000h ; c6 46 fe 00 9518 9744 pushfw ; 9c 9519 9745 pop ax ; 58 … … 9523 9749 mov dx, 0046ch ; ba 6c 04 9524 9750 xor ax, ax ; 31 c0 9525 call 01638h ; e8 85 a49751 call 01638h ; e8 2a a8 9526 9752 mov word [bp-006h], ax ; 89 46 fa 9527 9753 mov bx, dx ; 89 d3 … … 9529 9755 mov dx, 0046ch ; ba 6c 04 9530 9756 xor ax, ax ; 31 c0 9531 call 01638h ; e8 77 a49757 call 01638h ; e8 1c a8 9532 9758 mov word [bp-00ah], ax ; 89 46 f6 9533 9759 mov di, dx ; 89 d7 9534 9760 cmp dx, bx ; 39 da 9535 jnbe short 0 71d1h ; 77 079536 jne short 0 71d8h ; 75 0c9761 jnbe short 06e2ch ; 77 07 9762 jne short 06e33h ; 75 0c 9537 9763 cmp ax, word [bp-006h] ; 3b 46 fa 9538 jbe short 0 71d8h ; 76 079764 jbe short 06e33h ; 76 07 9539 9765 sub ax, word [bp-006h] ; 2b 46 fa 9540 9766 sbb dx, bx ; 19 da 9541 jmp short 0 71e3h ; eb 0b9767 jmp short 06e3eh ; eb 0b 9542 9768 cmp dx, bx ; 39 da 9543 jc short 0 71e3h ; 72 079544 jne short 0 71e7h ; 75 099769 jc short 06e3eh ; 72 07 9770 jne short 06e42h ; 75 09 9545 9771 cmp ax, word [bp-006h] ; 3b 46 fa 9546 jnc short 0 71e7h ; 73 049772 jnc short 06e42h ; 73 04 9547 9773 sub si, ax ; 29 c6 9548 9774 sbb cx, dx ; 19 d1 … … 9552 9778 mov ax, 00100h ; b8 00 01 9553 9779 int 016h ; cd 16 9554 je short 071fbh ; 74 059780 je near 06e58h ; 0f 84 05 00 9555 9781 mov AL, strict byte 001h ; b0 01 9556 jmp near 0 71fdh ; e9 02 009782 jmp near 06e5ah ; e9 02 00 9557 9783 db 032h, 0c0h 9558 9784 ; xor al, al ; 32 c0 9559 9785 test al, al ; 84 c0 9560 je short 0 7227h ; 74 269786 je short 06e82h ; 74 24 9561 9787 db 033h, 0c0h 9562 9788 ; xor ax, ax ; 33 c0 … … 9564 9790 xchg ah, al ; 86 c4 9565 9791 mov dl, al ; 88 c2 9566 mov byte [bp-00 4h], al ; 88 46 fc9567 xor ah, ah ; 30 e49792 mov byte [bp-002h], al ; 88 46 fe 9793 movzx ax, dl ; 0f b6 c2 9568 9794 push ax ; 50 9569 mov ax, 00914h ; b8 14 09 9570 push ax ; 50 9571 mov ax, strict word 00004h ; b8 04 00 9572 push ax ; 50 9573 call 018fah ; e8 e0 a6 9795 push 00914h ; 68 14 09 9796 push strict byte 00004h ; 6a 04 9797 call 018e9h ; e8 74 aa 9574 9798 add sp, strict byte 00006h ; 83 c4 06 9575 cmp byte [bp-00 2h], 000h ; 80 7e fe009576 je short 0 7227h ; 74 049799 cmp byte [bp-004h], 000h ; 80 7e fc 00 9800 je short 06e82h ; 74 04 9577 9801 mov al, dl ; 88 d0 9578 jmp short 0 7239h ; eb 129802 jmp short 06e94h ; eb 12 9579 9803 test cx, cx ; 85 c9 9580 jnle short 0 71b8h ; 7f 8d9581 jne short 0 7231h ; 75 049804 jnle short 06e13h ; 7f 8d 9805 jne short 06e8ch ; 75 04 9582 9806 test si, si ; 85 f6 9583 jnbe short 0 71b8h ; 77 879807 jnbe short 06e13h ; 77 87 9584 9808 mov ax, word [bp-008h] ; 8b 46 f8 9585 9809 push ax ; 50 9586 9810 popfw ; 9d 9587 mov al, byte [bp-004h] ; 8a 46 fc 9588 mov sp, bp ; 89 ec 9589 pop bp ; 5d 9811 mov al, byte [bp-002h] ; 8a 46 fe 9812 leave ; c9 9590 9813 pop di ; 5f 9591 9814 pop si ; 5e … … 9593 9816 pop bx ; 5b 9594 9817 retn ; c3 9595 read_logo_byte_: ; 0xf 7241LB 0x139818 read_logo_byte_: ; 0xf6e9a LB 0x13 9596 9819 push dx ; 52 9597 9820 push bp ; 55 … … 9607 9830 pop dx ; 5a 9608 9831 retn ; c3 9609 read_logo_word_: ; 0xf 7254LB 0x119832 read_logo_word_: ; 0xf6ead LB 0x11 9610 9833 push dx ; 52 9611 9834 push bp ; 55 … … 9619 9842 pop dx ; 5a 9620 9843 retn ; c3 9621 print_detected_harddisks_: ; 0xf 7265 LB 0x1599844 print_detected_harddisks_: ; 0xf6ebe LB 0x12c 9622 9845 push bx ; 53 9623 9846 push cx ; 51 9624 9847 push dx ; 52 9625 9848 push si ; 56 9626 push bp ; 55 9627 mov bp, sp ; 89 e5 9628 sub sp, strict byte 00006h ; 83 ec 06 9849 push di ; 57 9850 enter 00004h, 000h ; c8 04 00 00 9629 9851 mov dx, strict word 0000eh ; ba 0e 00 9630 9852 mov ax, strict word 00040h ; b8 40 00 9631 call 0161ch ; e8 a4 a39853 call 0161ch ; e8 4c a7 9632 9854 mov si, ax ; 89 c6 9633 mov byte [bp-006h], 000h ; c6 46 fa 00 9855 mov byte [bp-002h], 000h ; c6 46 fe 00 9856 xor cl, cl ; 30 c9 9634 9857 xor ch, ch ; 30 ed 9635 mov byte [bp-004h], ch ; 88 6e fc9636 9858 mov dx, 002c0h ; ba c0 02 9637 call 01600h ; e8 77 a3 9638 mov byte [bp-002h], al ; 88 46 fe 9639 xor cl, cl ; 30 c9 9640 cmp cl, byte [bp-002h] ; 3a 4e fe 9641 jnc short 072f1h ; 73 5e 9642 mov al, cl ; 88 c8 9643 xor ah, ah ; 30 e4 9644 mov dx, ax ; 89 c2 9859 call 01600h ; e8 20 a7 9860 mov byte [bp-004h], al ; 88 46 fc 9861 xor bl, bl ; 30 db 9862 cmp bl, byte [bp-004h] ; 3a 5e fc 9863 jnc near 06fbfh ; 0f 83 d3 00 9864 movzx dx, bl ; 0f b6 d3 9645 9865 add dx, 002c1h ; 81 c2 c1 02 9646 9866 mov ax, si ; 89 f0 9647 call 01600h ; e8 5e a39648 mov b l, al ; 88 c39867 call 01600h ; e8 08 a7 9868 mov bh, al ; 88 c7 9649 9869 cmp AL, strict byte 00ch ; 3c 0c 9650 jc short 072d3h ; 72 2b 9870 jc short 06f22h ; 72 24 9871 test cl, cl ; 84 c9 9872 jne short 06f0fh ; 75 0d 9873 push 00925h ; 68 25 09 9874 push strict byte 00002h ; 6a 02 9875 call 018e9h ; e8 df a9 9876 add sp, strict byte 00004h ; 83 c4 04 9877 mov CL, strict byte 001h ; b1 01 9878 movzx ax, bl ; 0f b6 c3 9879 inc ax ; 40 9880 push ax ; 50 9881 push 00939h ; 68 39 09 9882 push strict byte 00002h ; 6a 02 9883 call 018e9h ; e8 cd a9 9884 add sp, strict byte 00006h ; 83 c4 06 9885 jmp near 06fbah ; e9 98 00 9886 cmp AL, strict byte 008h ; 3c 08 9887 jc short 06f39h ; 72 13 9651 9888 test ch, ch ; 84 ed 9652 jne short 072bch ; 75 10 9653 mov ax, 00925h ; b8 25 09 9654 push ax ; 50 9655 mov ax, strict word 00002h ; b8 02 00 9656 push ax ; 50 9657 call 018fah ; e8 43 a6 9889 jne short 06f37h ; 75 0d 9890 push 0094ch ; 68 4c 09 9891 push strict byte 00002h ; 6a 02 9892 call 018e9h ; e8 b7 a9 9658 9893 add sp, strict byte 00004h ; 83 c4 04 9659 9894 mov CH, strict byte 001h ; b5 01 9660 mov al, cl ; 88 c8 9661 xor ah, ah ; 30 e4 9895 jmp short 06f0fh ; eb d6 9896 cmp AL, strict byte 004h ; 3c 04 9897 jnc short 06f54h ; 73 17 9898 cmp byte [bp-002h], 000h ; 80 7e fe 00 9899 jne short 06f54h ; 75 11 9900 push 00960h ; 68 60 09 9901 push strict byte 00002h ; 6a 02 9902 call 018e9h ; e8 9e a9 9903 add sp, strict byte 00004h ; 83 c4 04 9904 mov byte [bp-002h], 001h ; c6 46 fe 01 9905 jmp short 06f6ah ; eb 16 9906 cmp bh, 004h ; 80 ff 04 9907 jc short 06f6ah ; 72 11 9908 test cl, cl ; 84 c9 9909 jne short 06f6ah ; 75 0d 9910 push 00925h ; 68 25 09 9911 push strict byte 00002h ; 6a 02 9912 call 018e9h ; e8 84 a9 9913 add sp, strict byte 00004h ; 83 c4 04 9914 mov CL, strict byte 001h ; b1 01 9915 movzx ax, bl ; 0f b6 c3 9662 9916 inc ax ; 40 9663 9917 push ax ; 50 9664 mov ax, 00939h ; b8 39 09 9665 push ax ; 50 9666 mov ax, strict word 00002h ; b8 02 00 9667 push ax ; 50 9668 call 018fah ; e8 2d a6 9918 push 00971h ; 68 71 09 9919 push strict byte 00002h ; 6a 02 9920 call 018e9h ; e8 72 a9 9669 9921 add sp, strict byte 00006h ; 83 c4 06 9670 jmp near 07385h ; e9 b2 00 9671 cmp AL, strict byte 008h ; 3c 08 9672 jc short 072f4h ; 72 1d 9673 cmp byte [bp-004h], 000h ; 80 7e fc 00 9674 jne short 072efh ; 75 12 9675 mov ax, 0094ch ; b8 4c 09 9676 push ax ; 50 9677 mov ax, strict word 00002h ; b8 02 00 9678 push ax ; 50 9679 call 018fah ; e8 12 a6 9680 add sp, strict byte 00004h ; 83 c4 04 9681 mov byte [bp-004h], 001h ; c6 46 fc 01 9682 jmp short 072bch ; eb cb 9683 jmp near 0738ah ; e9 96 00 9684 cmp AL, strict byte 004h ; 3c 04 9685 jnc short 07312h ; 73 1a 9686 cmp byte [bp-006h], 000h ; 80 7e fa 00 9687 jne short 07312h ; 75 14 9688 mov ax, 00960h ; b8 60 09 9689 push ax ; 50 9690 mov ax, strict word 00002h ; b8 02 00 9691 push ax ; 50 9692 call 018fah ; e8 f1 a5 9693 add sp, strict byte 00004h ; 83 c4 04 9694 mov byte [bp-006h], 001h ; c6 46 fa 01 9695 jmp short 0732bh ; eb 19 9696 cmp bl, 004h ; 80 fb 04 9697 jc short 0732bh ; 72 14 9698 test ch, ch ; 84 ed 9699 jne short 0732bh ; 75 10 9700 mov ax, 00925h ; b8 25 09 9701 push ax ; 50 9702 mov ax, strict word 00002h ; b8 02 00 9703 push ax ; 50 9704 call 018fah ; e8 d4 a5 9705 add sp, strict byte 00004h ; 83 c4 04 9706 mov CH, strict byte 001h ; b5 01 9707 mov al, cl ; 88 c8 9708 xor ah, ah ; 30 e4 9709 inc ax ; 40 9710 push ax ; 50 9711 mov ax, 00971h ; b8 71 09 9712 push ax ; 50 9713 mov ax, strict word 00002h ; b8 02 00 9714 push ax ; 50 9715 call 018fah ; e8 be a5 9716 add sp, strict byte 00006h ; 83 c4 06 9717 cmp bl, 004h ; 80 fb 04 9718 jc short 07347h ; 72 03 9719 sub bl, 004h ; 80 eb 04 9720 mov al, bl ; 88 d8 9721 xor ah, ah ; 30 e4 9922 cmp bh, 004h ; 80 ff 04 9923 jc short 06f82h ; 72 03 9924 sub bh, 004h ; 80 ef 04 9925 movzx ax, bh ; 0f b6 c7 9722 9926 cwd ; 99 9723 9927 db 02bh, 0c2h … … 9725 9929 sar ax, 1 ; d1 f8 9726 9930 test ax, ax ; 85 c0 9727 je short 07359h ; 74 05 9728 mov ax, 0097bh ; b8 7b 09 9729 jmp short 0735ch ; eb 03 9730 mov ax, 00986h ; b8 86 09 9731 push ax ; 50 9732 mov ax, strict word 00002h ; b8 02 00 9733 push ax ; 50 9734 call 018fah ; e8 96 a5 9931 je short 06f93h ; 74 05 9932 push 0097bh ; 68 7b 09 9933 jmp short 06f96h ; eb 03 9934 push 00986h ; 68 86 09 9935 push strict byte 00002h ; 6a 02 9936 call 018e9h ; e8 4e a9 9735 9937 add sp, strict byte 00004h ; 83 c4 04 9736 mov al, bl ; 88 d8 9737 xor ah, ah ; 30 e4 9738 mov bx, strict word 00002h ; bb 02 00 9938 movzx ax, bh ; 0f b6 c7 9939 mov di, strict word 00002h ; bf 02 00 9739 9940 cwd ; 99 9740 idiv bx ; f7 fb9941 idiv di ; f7 ff 9741 9942 test dx, dx ; 85 d2 9742 je short 0737ah ; 74 05 9743 mov ax, 0098fh ; b8 8f 09 9744 jmp short 0737dh ; eb 03 9745 mov ax, 00995h ; b8 95 09 9746 push ax ; 50 9747 push bx ; 53 9748 call 018fah ; e8 78 a5 9943 je short 06fb0h ; 74 05 9944 push 0098fh ; 68 8f 09 9945 jmp short 06fb3h ; eb 03 9946 push 00995h ; 68 95 09 9947 push di ; 57 9948 call 018e9h ; e8 32 a9 9749 9949 add sp, strict byte 00004h ; 83 c4 04 9750 db 0feh, 0c1h 9751 ; inc cl ; fe c1 9752 jmp near 0728eh ; e9 04 ff 9753 cmp byte [bp-006h], 000h ; 80 7e fa 00 9754 jne short 073a8h ; 75 18 9950 db 0feh, 0c3h 9951 ; inc bl ; fe c3 9952 jmp near 06ee5h ; e9 26 ff 9953 cmp byte [bp-002h], 000h ; 80 7e fe 00 9954 jne short 06fd8h ; 75 13 9955 test cl, cl ; 84 c9 9956 jne short 06fd8h ; 75 0f 9755 9957 test ch, ch ; 84 ed 9756 jne short 073a8h ; 75 14 9757 cmp byte [bp-004h], 000h ; 80 7e fc 00 9758 jne short 073a8h ; 75 0e 9759 mov ax, 0099ch ; b8 9c 09 9760 push ax ; 50 9761 mov ax, strict word 00002h ; b8 02 00 9762 push ax ; 50 9763 call 018fah ; e8 55 a5 9958 jne short 06fd8h ; 75 0b 9959 push 0099ch ; 68 9c 09 9960 push strict byte 00002h ; 6a 02 9961 call 018e9h ; e8 14 a9 9764 9962 add sp, strict byte 00004h ; 83 c4 04 9765 mov ax, 009b0h ; b8 b0 09 9766 push ax ; 50 9767 mov ax, strict word 00002h ; b8 02 00 9768 push ax ; 50 9769 call 018fah ; e8 47 a5 9963 push 009b0h ; 68 b0 09 9964 push strict byte 00002h ; 6a 02 9965 call 018e9h ; e8 09 a9 9770 9966 add sp, strict byte 00004h ; 83 c4 04 9771 mov sp, bp ; 89 ec9772 pop bp ; 5d9967 leave ; c9 9968 pop di ; 5f 9773 9969 pop si ; 5e 9774 9970 pop dx ; 5a … … 9776 9972 pop bx ; 5b 9777 9973 retn ; c3 9778 get_boot_drive_: ; 0xf 73beLB 0x259974 get_boot_drive_: ; 0xf6fea LB 0x25 9779 9975 push bx ; 53 9780 9976 push dx ; 52 … … 9784 9980 mov dx, strict word 0000eh ; ba 0e 00 9785 9981 mov ax, strict word 00040h ; b8 40 00 9786 call 0161ch ; e8 4e a29982 call 0161ch ; e8 22 a6 9787 9983 mov dx, 002c0h ; ba c0 02 9788 call 01600h ; e8 2c a29984 call 01600h ; e8 00 a6 9789 9985 sub bl, 002h ; 80 eb 02 9790 9986 cmp bl, al ; 38 c3 9791 jc short 07 3ddh ; 72 029987 jc short 07009h ; 72 02 9792 9988 mov BL, strict byte 0ffh ; b3 ff 9793 9989 mov al, bl ; 88 d8 … … 9796 9992 pop bx ; 5b 9797 9993 retn ; c3 9798 show_logo_: ; 0xf7 3e3 LB 0x22d9994 show_logo_: ; 0xf700f LB 0x207 9799 9995 push bx ; 53 9800 9996 push cx ; 51 … … 9802 9998 push si ; 56 9803 9999 push di ; 57 9804 push bp ; 55 9805 mov bp, sp ; 89 e5 9806 sub sp, strict byte 0000ah ; 83 ec 0a 10000 enter 00008h, 000h ; c8 08 00 00 9807 10001 mov dx, strict word 0000eh ; ba 0e 00 9808 10002 mov ax, strict word 00040h ; b8 40 00 9809 call 0161ch ; e8 25 a210003 call 0161ch ; e8 fb a5 9810 10004 mov si, ax ; 89 c6 9811 mov byte [bp-002h], 000h ; c6 46 fe 009812 xor cx, cx ; 31 c910005 xor cl, cl ; 30 c9 10006 xor bx, bx ; 31 db 9813 10007 mov AL, strict byte 034h ; b0 34 9814 10008 out strict byte 043h, AL ; e6 43 … … 9817 10011 mov AL, strict byte 048h ; b0 48 9818 10012 out strict byte 040h, AL ; e6 40 9819 mov al, cl ; 88 c8 9820 xor ah, ah ; 30 e4 9821 call 07254h ; e8 42 fe 10013 movzx ax, bl ; 0f b6 c3 10014 call 06eadh ; e8 74 fe 9822 10015 cmp ax, 066bbh ; 3d bb 66 9823 jne short 0746ah ; 75 539824 mov al, cl ; 88 c810016 jne near 070fbh ; 0f 85 bb 00 10017 mov al, bl ; 88 d8 9825 10018 add AL, strict byte 004h ; 04 04 9826 10019 xor ah, ah ; 30 e4 9827 call 0 7241h ; e8 21 fe9828 mov ch, al ; 88 c510020 call 06e9ah ; e8 51 fe 10021 mov bh, al ; 88 c7 9829 10022 mov byte [bp-006h], al ; 88 46 fa 9830 mov al, cl ; 88 c810023 mov al, bl ; 88 d8 9831 10024 add AL, strict byte 005h ; 04 05 9832 10025 xor ah, ah ; 30 e4 9833 call 0 7241h ; e8 13 fe9834 mov bl, al ; 88 c310026 call 06e9ah ; e8 43 fe 10027 mov ch, al ; 88 c5 9835 10028 mov byte [bp-008h], al ; 88 46 f8 9836 mov al, cl ; 88 c810029 mov al, bl ; 88 d8 9837 10030 add AL, strict byte 002h ; 04 02 9838 10031 xor ah, ah ; 30 e4 9839 call 0 7254h ; e8 18 fe10032 call 06eadh ; e8 48 fe 9840 10033 mov dx, ax ; 89 c2 9841 10034 mov di, ax ; 89 c7 9842 mov al, cl ; 88 c8 9843 add AL, strict byte 006h ; 04 06 9844 xor ah, ah ; 30 e4 9845 call 07241h ; e8 f8 fd 9846 mov byte [bp-00ah], al ; 88 46 f6 10035 add bl, 006h ; 80 c3 06 10036 movzx ax, bl ; 0f b6 c3 10037 call 06e9ah ; e8 28 fe 10038 mov byte [bp-004h], al ; 88 46 fc 10039 test bh, bh ; 84 ff 10040 jne short 07083h ; 75 0a 9847 10041 test ch, ch ; 84 ed 9848 jne short 07458h ; 75 08 9849 test bl, bl ; 84 db 9850 jne short 07458h ; 75 04 10042 jne short 07083h ; 75 06 9851 10043 test dx, dx ; 85 d2 9852 je short 0746ah ; 74 1210044 je near 070fbh ; 0f 84 78 00 9853 10045 mov bx, 00142h ; bb 42 01 9854 10046 mov ax, 04f02h ; b8 02 4f 9855 10047 int 010h ; cd 10 9856 10048 cmp byte [bp-006h], 000h ; 80 7e fa 00 9857 je short 07 490h ; 74 2a9858 xor cx, cx ; 31 c99859 jmp short 07 472h ; eb 089860 jmp near 074e0h ; e9 73 009861 cmp cx, strict byte 00010h ; 83 f9109862 jnbe short 07 497h ; 77 259863 mov ax, cx ; 89 c810049 je short 070b4h ; 74 23 10050 xor bx, bx ; 31 db 10051 jmp short 0709bh ; eb 06 10052 inc bx ; 43 10053 cmp bx, strict byte 00010h ; 83 fb 10 10054 jnbe short 070bbh ; 77 20 10055 mov ax, bx ; 89 d8 9864 10056 or ah, 002h ; 80 cc 02 9865 10057 mov dx, 003b8h ; ba b8 03 … … 9867 10059 xor dx, dx ; 31 d2 9868 10060 mov ax, strict word 00001h ; b8 01 00 9869 call 0 7190h ; e8 0dfd10061 call 06dedh ; e8 41 fd 9870 10062 cmp AL, strict byte 086h ; 3c 86 9871 jne short 0748dh ; 75 06 9872 mov byte [bp-002h], 001h ; c6 46 fe 01 9873 jmp short 07497h ; eb 0a 9874 inc cx ; 41 9875 jmp short 0746dh ; eb dd 10063 jne short 07095h ; 75 e5 10064 mov CL, strict byte 001h ; b1 01 10065 jmp short 070bbh ; eb 07 9876 10066 mov ax, 00210h ; b8 10 02 9877 10067 mov dx, 003b8h ; ba b8 03 9878 10068 out DX, ax ; ef 9879 cmp byte [bp-002h], 000h ; 80 7e fe 00 9880 jne short 074b1h ; 75 14 9881 mov CL, strict byte 004h ; b1 04 10069 test cl, cl ; 84 c9 10070 jne short 070d0h ; 75 11 9882 10071 mov ax, di ; 89 f8 9883 shr ax, CL ; d3 e810072 shr ax, 004h ; c1 e8 04 9884 10073 mov dx, strict word 00001h ; ba 01 00 9885 call 0 7190h ; e8 e7 fc10074 call 06dedh ; e8 23 fd 9886 10075 cmp AL, strict byte 086h ; 3c 86 9887 jne short 07 4b1h ; 75 049888 mov byte [bp-002h], 001h ; c6 46 fe0110076 jne short 070d0h ; 75 02 10077 mov CL, strict byte 001h ; b1 01 9889 10078 cmp byte [bp-008h], 000h ; 80 7e f8 00 9890 je short 07 4e0h ; 74 299891 cmp byte [bp-002h], 000h ; 80 7e fe 009892 jne short 07 4e0h ; 75 239893 mov cx, strict word 00010h ; b910 009894 jmp short 07 4c7h ; eb 059895 dec cx ; 499896 test cx, cx ; 85 c99897 jbe short 07 4e0h ; 76 199898 mov ax, cx ; 89 c810079 je short 070fbh ; 74 25 10080 test cl, cl ; 84 c9 10081 jne short 070fbh ; 75 21 10082 mov bx, strict word 00010h ; bb 10 00 10083 jmp short 070e4h ; eb 05 10084 dec bx ; 4b 10085 test bx, bx ; 85 db 10086 jbe short 070fbh ; 76 17 10087 mov ax, bx ; 89 d8 9899 10088 or ah, 002h ; 80 cc 02 9900 10089 mov dx, 003b8h ; ba b8 03 … … 9902 10091 xor dx, dx ; 31 d2 9903 10092 mov ax, strict word 00001h ; b8 01 00 9904 call 0 7190h ; e8 b8 fc10093 call 06dedh ; e8 f8 fc 9905 10094 cmp AL, strict byte 086h ; 3c 86 9906 jne short 07 4c2h ; 75 e69907 mov byte [bp-002h], 001h ; c6 46 fe0110095 jne short 070dfh ; 75 e6 10096 mov CL, strict byte 001h ; b1 01 9908 10097 xor bx, bx ; 31 db 9909 10098 mov dx, 00339h ; ba 39 03 9910 10099 mov ax, si ; 89 f0 9911 call 0160eh ; e8 24 a110100 call 0160eh ; e8 09 a5 9912 10101 mov AL, strict byte 003h ; b0 03 9913 10102 mov AH, strict byte 000h ; b4 00 9914 10103 int 010h ; cd 10 9915 cmp byte [bp-00 ah], 000h ; 80 7e f6009916 je short 07508h ; 74 1210104 cmp byte [bp-004h], 000h ; 80 7e fc 00 10105 je near 071fah ; 0f 84 e7 00 9917 10106 cmp byte [bp-006h], 000h ; 80 7e fa 00 9918 jne short 07 536h ; 75 3a10107 jne short 07147h ; 75 2e 9919 10108 cmp byte [bp-008h], 000h ; 80 7e f8 00 9920 jne short 07 536h ; 75 3410109 jne short 07147h ; 75 28 9921 10110 test di, di ; 85 ff 9922 je short 0750bh ; 74 05 9923 jmp short 07536h ; eb 2e 9924 jmp near 075f2h ; e9 e7 00 9925 cmp byte [bp-00ah], 002h ; 80 7e f6 02 9926 jne short 0751fh ; 75 0e 9927 mov ax, 009b2h ; b8 b2 09 9928 push ax ; 50 9929 mov ax, strict word 00002h ; b8 02 00 9930 push ax ; 50 9931 call 018fah ; e8 de a3 10111 jne short 07147h ; 75 24 10112 cmp byte [bp-004h], 002h ; 80 7e fc 02 10113 jne short 07134h ; 75 0b 10114 push 009b2h ; 68 b2 09 10115 push strict byte 00002h ; 6a 02 10116 call 018e9h ; e8 b8 a7 9932 10117 add sp, strict byte 00004h ; 83 c4 04 9933 cmp byte [bp-002h], 000h ; 80 7e fe 009934 jne short 07 536h ; 75 1110118 test cl, cl ; 84 c9 10119 jne short 07147h ; 75 0f 9935 10120 mov dx, strict word 00001h ; ba 01 00 9936 10121 mov ax, 000c0h ; b8 c0 00 9937 call 0 7190h ; e8 62fc10122 call 06dedh ; e8 ac fc 9938 10123 cmp AL, strict byte 086h ; 3c 86 9939 jne short 07 536h ; 75 049940 mov byte [bp-002h], 001h ; c6 46 fe019941 cmp byte [bp-002h], 000h ; 80 7e fe 009942 je short 07508h ; 74 cc9943 mov byte [bp-00 4h], 000h ; c6 46 fc0010124 jne short 07147h ; 75 02 10125 mov CL, strict byte 001h ; b1 01 10126 test cl, cl ; 84 c9 10127 je near 071fah ; 0f 84 ad 00 10128 mov byte [bp-002h], 000h ; c6 46 fe 00 9944 10129 mov ax, 00100h ; b8 00 01 9945 10130 mov cx, 01000h ; b9 00 10 … … 9957 10142 ; xor dx, dx ; 33 d2 9958 10143 int 010h ; cd 10 9959 mov ax, 009d4h ; b8 d4 09 9960 push ax ; 50 9961 mov ax, strict word 00002h ; b8 02 00 9962 push ax ; 50 9963 call 018fah ; e8 92 a3 10144 push 009d4h ; 68 d4 09 10145 push strict byte 00002h ; 6a 02 10146 call 018e9h ; e8 73 a7 9964 10147 add sp, strict byte 00004h ; 83 c4 04 9965 call 07265h ; e8 f7 fc 9966 mov ax, 00a18h ; b8 18 0a 9967 push ax ; 50 9968 mov ax, strict word 00002h ; b8 02 00 9969 push ax ; 50 9970 call 018fah ; e8 81 a3 10148 call 06ebeh ; e8 42 fd 10149 push 00a18h ; 68 18 0a 10150 push strict byte 00002h ; 6a 02 10151 call 018e9h ; e8 65 a7 9971 10152 add sp, strict byte 00004h ; 83 c4 04 9972 10153 mov dx, strict word 00001h ; ba 01 00 9973 10154 mov ax, strict word 00040h ; b8 40 00 9974 call 0 7190h ; e8 0bfc9975 mov cl, al ; 88 c110155 call 06dedh ; e8 5d fc 10156 mov bl, al ; 88 c3 9976 10157 test al, al ; 84 c0 9977 je short 07 57ch ; 74 f110158 je short 07187h ; 74 f1 9978 10159 cmp AL, strict byte 030h ; 3c 30 9979 je short 075dfh ; 74 50 9980 cmp cl, 002h ; 80 f9 02 9981 jc short 075b8h ; 72 24 9982 cmp cl, 009h ; 80 f9 09 9983 jnbe short 075b8h ; 77 1f 9984 mov al, cl ; 88 c8 9985 xor ah, ah ; 30 e4 9986 call 073beh ; e8 1e fe 10160 je short 071e8h ; 74 4e 10161 cmp bl, 002h ; 80 fb 02 10162 jc short 071c1h ; 72 22 10163 cmp bl, 009h ; 80 fb 09 10164 jnbe short 071c1h ; 77 1d 10165 movzx ax, bl ; 0f b6 c3 10166 call 06feah ; e8 40 fe 9987 10167 cmp AL, strict byte 0ffh ; 3c ff 9988 jne short 075a6h ; 75 02 9989 jmp short 0757ch ; eb d6 9990 xor ah, ah ; 30 e4 9991 mov bx, ax ; 89 c3 10168 jne short 071b0h ; 75 02 10169 jmp short 07187h ; eb d7 10170 movzx bx, al ; 0f b6 d8 9992 10171 mov dx, 00338h ; ba 38 03 9993 10172 mov ax, si ; 89 f0 9994 call 0160eh ; e8 5c a0 9995 mov byte [bp-004h], 002h ; c6 46 fc 02 9996 jmp short 075dfh ; eb 27 9997 cmp cl, 02eh ; 80 f9 2e 9998 je short 075cdh ; 74 10 9999 cmp cl, 026h ; 80 f9 26 10000 je short 075d3h ; 74 11 10001 cmp cl, 021h ; 80 f9 21 10002 jne short 075d9h ; 75 12 10003 mov byte [bp-004h], 001h ; c6 46 fc 01 10004 jmp short 075dfh ; eb 12 10005 mov byte [bp-004h], 003h ; c6 46 fc 03 10006 jmp short 075dfh ; eb 0c 10007 mov byte [bp-004h], 004h ; c6 46 fc 04 10008 jmp short 075dfh ; eb 06 10009 cmp byte [bp-004h], 000h ; 80 7e fc 00 10010 je short 0757ch ; 74 9d 10011 mov bl, byte [bp-004h] ; 8a 5e fc 10012 xor bh, bh ; 30 ff 10173 call 0160eh ; e8 53 a4 10174 mov byte [bp-002h], 002h ; c6 46 fe 02 10175 jmp short 071e8h ; eb 27 10176 cmp bl, 02eh ; 80 fb 2e 10177 je short 071d6h ; 74 10 10178 cmp bl, 026h ; 80 fb 26 10179 je short 071dch ; 74 11 10180 cmp bl, 021h ; 80 fb 21 10181 jne short 071e2h ; 75 12 10182 mov byte [bp-002h], 001h ; c6 46 fe 01 10183 jmp short 071e8h ; eb 12 10184 mov byte [bp-002h], 003h ; c6 46 fe 03 10185 jmp short 071e8h ; eb 0c 10186 mov byte [bp-002h], 004h ; c6 46 fe 04 10187 jmp short 071e8h ; eb 06 10188 cmp byte [bp-002h], 000h ; 80 7e fe 00 10189 je short 07187h ; 74 9f 10190 movzx bx, byte [bp-002h] ; 0f b6 5e fe 10013 10191 mov dx, 00339h ; ba 39 03 10014 10192 mov ax, si ; 89 f0 10015 call 0160eh ; e8 22 a010193 call 0160eh ; e8 1a a4 10016 10194 mov AL, strict byte 003h ; b0 03 10017 10195 mov AH, strict byte 000h ; b4 00 … … 10026 10204 push DS ; 1e 10027 10205 mov ds, ax ; 8e d8 10028 call 0edbfh ; e8 b b 7710206 call 0edbfh ; e8 b3 7b 10029 10207 pop DS ; 1f 10030 10208 popad ; 66 61 10031 mov sp, bp ; 89 ec 10032 pop bp ; 5d 10209 leave ; c9 10033 10210 pop di ; 5f 10034 10211 pop si ; 5e … … 10037 10214 pop bx ; 5b 10038 10215 retn ; c3 10039 delay_boot_: ; 0xf7 610 LB 0x6b10216 delay_boot_: ; 0xf7216 LB 0x64 10040 10217 push bx ; 53 10041 10218 push dx ; 52 10042 10219 push bp ; 55 10043 10220 mov bp, sp ; 89 e5 10044 mov bx, ax ; 89 c310221 mov dx, ax ; 89 c2 10045 10222 test ax, ax ; 85 c0 10046 je short 07 677h ; 74 5c10223 je short 07276h ; 74 55 10047 10224 mov AL, strict byte 034h ; b0 34 10048 10225 out strict byte 043h, AL ; e6 43 … … 10051 10228 mov AL, strict byte 048h ; b0 48 10052 10229 out strict byte 040h, AL ; e6 40 10230 push dx ; 52 10231 push 00a62h ; 68 62 0a 10232 push strict byte 00002h ; 6a 02 10233 call 018e9h ; e8 b3 a6 10234 add sp, strict byte 00006h ; 83 c4 06 10235 mov bx, dx ; 89 d3 10236 test bx, bx ; 85 db 10237 jbe short 07256h ; 76 17 10053 10238 push bx ; 53 10054 mov ax, 00a62h ; b8 62 0a 10055 push ax ; 50 10056 mov ax, strict word 00002h ; b8 02 00 10057 push ax ; 50 10058 call 018fah ; e8 c7 a2 10059 add sp, strict byte 00006h ; 83 c4 06 10060 test bx, bx ; 85 db 10061 jbe short 07654h ; 76 1a 10062 push bx ; 53 10063 mov ax, 00a80h ; b8 80 0a 10064 push ax ; 50 10065 mov ax, strict word 00002h ; b8 02 00 10066 push ax ; 50 10067 call 018fah ; e8 b4 a2 10239 push 00a80h ; 68 80 0a 10240 push strict byte 00002h ; 6a 02 10241 call 018e9h ; e8 a1 a6 10068 10242 add sp, strict byte 00006h ; 83 c4 06 10069 10243 xor dx, dx ; 31 d2 10070 10244 mov ax, strict word 00040h ; b8 40 00 10071 call 0 7190h ; e8 3ffb10245 call 06dedh ; e8 9a fb 10072 10246 dec bx ; 4b 10073 jmp short 07636h ; eb e2 10074 mov bx, 009b0h ; bb b0 09 10075 push bx ; 53 10076 mov bx, strict word 00002h ; bb 02 00 10077 push bx ; 53 10078 call 018fah ; e8 9b a2 10247 jmp short 0723bh ; eb e5 10248 push 009b0h ; 68 b0 09 10249 push strict byte 00002h ; 6a 02 10250 call 018e9h ; e8 8b a6 10079 10251 add sp, strict byte 00004h ; 83 c4 04 10080 10252 mov AL, strict byte 034h ; b0 34 … … 10087 10259 push DS ; 1e 10088 10260 mov ds, ax ; 8e d8 10089 call 0edbfh ; e8 4 b 7710261 call 0edbfh ; e8 4c 7b 10090 10262 pop DS ; 1f 10091 10263 popad ; 66 61 … … 10094 10266 pop bx ; 5b 10095 10267 retn ; c3 10096 scsi_cmd_data_in_: ; 0xf7 67b LB 0x6410268 scsi_cmd_data_in_: ; 0xf727a LB 0x63 10097 10269 push si ; 56 10098 10270 push di ; 57 10099 push bp ; 55 10100 mov bp, sp ; 89 e5 10101 push ax ; 50 10102 push ax ; 50 10271 enter 00004h, 000h ; c8 04 00 00 10103 10272 mov si, ax ; 89 c6 10104 10273 mov byte [bp-002h], dl ; 88 56 fe … … 10109 10278 ; sub ah, ah ; 2a e4 10110 10279 test AL, strict byte 001h ; a8 01 10111 jne short 07 68ah ; 75 f710280 jne short 07288h ; 75 f7 10112 10281 mov al, byte [bp-002h] ; 8a 46 fe 10113 10282 out DX, AL ; ee … … 10118 10287 mov al, byte [bp+00eh] ; 8a 46 0e 10119 10288 out DX, AL ; ee 10120 mov al, byte [bp+00fh] ; 8a 46 0f 10289 mov ax, word [bp+00eh] ; 8b 46 0e 10290 shr ax, 008h ; c1 e8 08 10121 10291 out DX, AL ; ee 10122 10292 xor bx, bx ; 31 db 10123 mov al, byte [bp+008h] ; 8a 46 08 10124 xor ah, ah ; 30 e4 10293 movzx ax, byte [bp+008h] ; 0f b6 46 08 10125 10294 cmp bx, ax ; 39 c3 10126 jnc short 07 6c1h ; 73 1010295 jnc short 072c1h ; 73 10 10127 10296 mov es, cx ; 8e c1 10128 10297 mov di, word [bp-004h] ; 8b 7e fc … … 10132 10301 out DX, AL ; ee 10133 10302 inc bx ; 43 10134 jmp short 07 6a8h ; eb e710303 jmp short 072a9h ; eb e8 10135 10304 mov dx, si ; 89 f2 10136 10305 in AL, DX ; ec … … 10138 10307 ; sub ah, ah ; 2a e4 10139 10308 test AL, strict byte 001h ; a8 01 10140 jne short 07 6c1h ; 75 f710309 jne short 072c1h ; 75 f7 10141 10310 lea dx, [si+001h] ; 8d 54 01 10142 10311 mov cx, word [bp+00eh] ; 8b 4e 0e … … 10144 10313 rep insb ; f3 6c 10145 10314 xor ax, ax ; 31 c0 10146 mov sp, bp ; 89 ec 10147 pop bp ; 5d 10315 leave ; c9 10148 10316 pop di ; 5f 10149 10317 pop si ; 5e 10150 10318 retn 00008h ; c2 08 00 10151 scsi_cmd_data_out_: ; 0xf7 6df LB 0x6510319 scsi_cmd_data_out_: ; 0xf72dd LB 0x64 10152 10320 push si ; 56 10153 10321 push di ; 57 10154 push bp ; 55 10155 mov bp, sp ; 89 e5 10156 push ax ; 50 10157 push ax ; 50 10322 enter 00004h, 000h ; c8 04 00 00 10158 10323 mov di, ax ; 89 c7 10159 10324 mov byte [bp-002h], dl ; 88 56 fe … … 10164 10329 ; sub ah, ah ; 2a e4 10165 10330 test AL, strict byte 001h ; a8 01 10166 jne short 07 6eeh ; 75 f710331 jne short 072ebh ; 75 f7 10167 10332 mov al, byte [bp-002h] ; 8a 46 fe 10168 10333 out DX, AL ; ee … … 10173 10338 mov al, byte [bp+00eh] ; 8a 46 0e 10174 10339 out DX, AL ; ee 10175 mov al, byte [bp+00fh] ; 8a 46 0f 10340 mov ax, word [bp+00eh] ; 8b 46 0e 10341 shr ax, 008h ; c1 e8 08 10176 10342 out DX, AL ; ee 10177 10343 xor bx, bx ; 31 db 10178 mov al, byte [bp+008h] ; 8a 46 08 10179 xor ah, ah ; 30 e4 10344 movzx ax, byte [bp+008h] ; 0f b6 46 08 10180 10345 cmp bx, ax ; 39 c3 10181 jnc short 07 725h ; 73 1010346 jnc short 07324h ; 73 10 10182 10347 mov es, cx ; 8e c1 10183 10348 mov si, word [bp-004h] ; 8b 76 fc … … 10187 10352 out DX, AL ; ee 10188 10353 inc bx ; 43 10189 jmp short 07 70ch ; eb e710354 jmp short 0730ch ; eb e8 10190 10355 lea dx, [di+001h] ; 8d 55 01 10191 10356 mov cx, word [bp+00eh] ; 8b 4e 0e … … 10198 10363 ; sub ah, ah ; 2a e4 10199 10364 test AL, strict byte 001h ; a8 01 10200 jne short 07 731h ; 75 f710365 jne short 07330h ; 75 f7 10201 10366 xor ax, ax ; 31 c0 10202 mov sp, bp ; 89 ec 10203 pop bp ; 5d 10367 leave ; c9 10204 10368 pop di ; 5f 10205 10369 pop si ; 5e 10206 10370 retn 00008h ; c2 08 00 10207 @scsi_read_sectors: ; 0xf7 744 LB 0xb810371 @scsi_read_sectors: ; 0xf7341 LB 0xa2 10208 10372 push si ; 56 10209 10373 push di ; 57 10210 push bp ; 55 10211 mov bp, sp ; 89 e5 10212 sub sp, strict byte 0000ch ; 83 ec 0c 10374 enter 0000ch, 000h ; c8 0c 00 00 10213 10375 mov si, word [bp+008h] ; 8b 76 08 10214 10376 mov es, [bp+00ah] ; 8e 46 0a … … 10216 10378 sub bl, 008h ; 80 eb 08 10217 10379 cmp bl, 004h ; 80 fb 04 10218 jbe short 07771h ; 76 13 10219 mov al, bl ; 88 d8 10220 xor ah, ah ; 30 e4 10380 jbe short 07368h ; 76 0f 10381 movzx ax, bl ; 0f b6 c3 10221 10382 push ax ; 50 10222 mov ax, 00a84h ; b8 84 0a 10223 push ax ; 50 10224 mov ax, strict word 00007h ; b8 07 00 10225 push ax ; 50 10226 call 018fah ; e8 8c a1 10383 push 00a84h ; 68 84 0a 10384 push strict byte 00007h ; 6a 07 10385 call 018e9h ; e8 84 a5 10227 10386 add sp, strict byte 00006h ; 83 c4 06 10228 10387 mov es, [bp+00ah] ; 8e 46 0a … … 10241 10400 mov word [bp-005h], ax ; 89 46 fb 10242 10401 mov byte [bp-003h], 000h ; c6 46 fd 00 10243 mov al, bl ; 88 d8 10244 xor ah, ah ; 30 e4 10245 sal ax, 1 ; d1 e0 10246 sal ax, 1 ; d1 e0 10247 mov bx, si ; 89 f3 10248 add bx, ax ; 01 c3 10402 xor bh, bh ; 30 ff 10403 sal bx, 002h ; c1 e3 02 10404 add bx, si ; 01 f3 10249 10405 mov ax, word [es:bx+001d8h] ; 26 8b 87 d8 01 10250 mov bl, byte [es:bx+001dah] ; 26 8a 9f da 01 10251 mov CL, strict byte 009h ; b1 09 10252 mov dx, di ; 89 fa 10253 sal dx, CL ; d3 e2 10254 mov word [bp-002h], dx ; 89 56 fe 10255 push dx ; 52 10256 push word [es:si+006h] ; 26 ff 74 06 10257 push word [es:si+004h] ; 26 ff 74 04 10258 mov dx, strict word 0000ah ; ba 0a 00 10259 push dx ; 52 10260 mov dl, bl ; 88 da 10406 mov dl, byte [es:bx+001dah] ; 26 8a 97 da 01 10407 mov bx, di ; 89 fb 10408 sal bx, 009h ; c1 e3 09 10409 mov word [bp-002h], bx ; 89 5e fe 10410 push bx ; 53 10411 db 066h, 026h, 0ffh, 074h, 004h 10412 ; push dword [es:si+004h] ; 66 26 ff 74 04 10413 push strict byte 0000ah ; 6a 0a 10261 10414 xor dh, dh ; 30 f6 10262 10415 mov cx, ss ; 8c d1 10263 10416 lea bx, [bp-00ch] ; 8d 5e f4 10264 call 07 67bh ; e8 a5fe10417 call 0727ah ; e8 ba fe 10265 10418 mov ah, al ; 88 c4 10266 10419 test al, al ; 84 c0 10267 jne short 07 7f0h ; 75 1410420 jne short 073dah ; 75 14 10268 10421 mov es, [bp+00ah] ; 8e 46 0a 10269 10422 mov word [es:si+014h], di ; 26 89 7c 14 … … 10271 10424 mov word [es:si+016h], dx ; 26 89 54 16 10272 10425 mov word [es:si+018h], strict word 00000h ; 26 c7 44 18 00 00 10273 mov al, ah ; 88 e0 10274 xor ah, ah ; 30 e4 10275 mov sp, bp ; 89 ec 10276 pop bp ; 5d 10426 movzx ax, ah ; 0f b6 c4 10427 leave ; c9 10277 10428 pop di ; 5f 10278 10429 pop si ; 5e 10279 10430 retn 00004h ; c2 04 00 10280 @scsi_write_sectors: ; 0xf7 7fc LB 0xb810431 @scsi_write_sectors: ; 0xf73e3 LB 0xa2 10281 10432 push si ; 56 10282 10433 push di ; 57 10283 push bp ; 55 10284 mov bp, sp ; 89 e5 10285 sub sp, strict byte 0000ch ; 83 ec 0c 10434 enter 0000ch, 000h ; c8 0c 00 00 10286 10435 mov si, word [bp+008h] ; 8b 76 08 10287 10436 mov es, [bp+00ah] ; 8e 46 0a … … 10289 10438 sub bl, 008h ; 80 eb 08 10290 10439 cmp bl, 004h ; 80 fb 04 10291 jbe short 07829h ; 76 13 10292 mov al, bl ; 88 d8 10293 xor ah, ah ; 30 e4 10440 jbe short 0740ah ; 76 0f 10441 movzx ax, bl ; 0f b6 c3 10294 10442 push ax ; 50 10295 mov ax, 00ab2h ; b8 b2 0a 10296 push ax ; 50 10297 mov ax, strict word 00007h ; b8 07 00 10298 push ax ; 50 10299 call 018fah ; e8 d4 a0 10443 push 00ab2h ; 68 b2 0a 10444 push strict byte 00007h ; 6a 07 10445 call 018e9h ; e8 e2 a4 10300 10446 add sp, strict byte 00006h ; 83 c4 06 10301 10447 mov es, [bp+00ah] ; 8e 46 0a … … 10314 10460 mov word [bp-005h], ax ; 89 46 fb 10315 10461 mov byte [bp-003h], 000h ; c6 46 fd 00 10316 mov al, bl ; 88 d8 10317 xor ah, ah ; 30 e4 10318 sal ax, 1 ; d1 e0 10319 sal ax, 1 ; d1 e0 10320 mov bx, si ; 89 f3 10321 add bx, ax ; 01 c3 10462 xor bh, bh ; 30 ff 10463 sal bx, 002h ; c1 e3 02 10464 add bx, si ; 01 f3 10322 10465 mov ax, word [es:bx+001d8h] ; 26 8b 87 d8 01 10323 mov bl, byte [es:bx+001dah] ; 26 8a 9f da 01 10324 mov CL, strict byte 009h ; b1 09 10325 mov dx, di ; 89 fa 10326 sal dx, CL ; d3 e2 10327 mov word [bp-002h], dx ; 89 56 fe 10328 push dx ; 52 10329 push word [es:si+006h] ; 26 ff 74 06 10330 push word [es:si+004h] ; 26 ff 74 04 10331 mov dx, strict word 0000ah ; ba 0a 00 10332 push dx ; 52 10333 mov dl, bl ; 88 da 10466 mov dl, byte [es:bx+001dah] ; 26 8a 97 da 01 10467 mov bx, di ; 89 fb 10468 sal bx, 009h ; c1 e3 09 10469 mov word [bp-002h], bx ; 89 5e fe 10470 push bx ; 53 10471 db 066h, 026h, 0ffh, 074h, 004h 10472 ; push dword [es:si+004h] ; 66 26 ff 74 04 10473 push strict byte 0000ah ; 6a 0a 10334 10474 xor dh, dh ; 30 f6 10335 10475 mov cx, ss ; 8c d1 10336 10476 lea bx, [bp-00ch] ; 8d 5e f4 10337 call 07 6dfh ; e8 51fe10477 call 072ddh ; e8 7b fe 10338 10478 mov ah, al ; 88 c4 10339 10479 test al, al ; 84 c0 10340 jne short 07 8a8h ; 75 1410480 jne short 0747ch ; 75 14 10341 10481 mov es, [bp+00ah] ; 8e 46 0a 10342 10482 mov word [es:si+014h], di ; 26 89 7c 14 … … 10344 10484 mov word [es:si+016h], dx ; 26 89 54 16 10345 10485 mov word [es:si+018h], strict word 00000h ; 26 c7 44 18 00 00 10346 mov al, ah ; 88 e0 10347 xor ah, ah ; 30 e4 10348 mov sp, bp ; 89 ec 10349 pop bp ; 5d 10486 movzx ax, ah ; 0f b6 c4 10487 leave ; c9 10350 10488 pop di ; 5f 10351 10489 pop si ; 5e 10352 10490 retn 00004h ; c2 04 00 10353 scsi_enumerate_attached_devices_: ; 0xf7 8b4 LB 0x2aa10491 scsi_enumerate_attached_devices_: ; 0xf7485 LB 0x285 10354 10492 push bx ; 53 10355 10493 push cx ; 51 … … 10357 10495 push si ; 56 10358 10496 push di ; 57 10359 push bp ; 55 10360 mov bp, sp ; 89 e5 10361 sub sp, 0021eh ; 81 ec 1e 02 10362 mov di, ax ; 89 c7 10497 enter 0021ah, 000h ; c8 1a 02 00 10498 push ax ; 50 10363 10499 mov dx, strict word 0000eh ; ba 0e 00 10364 10500 mov ax, strict word 00040h ; b8 40 00 10365 call 0161ch ; e8 51 9d10501 call 0161ch ; e8 84 a1 10366 10502 mov si, 00122h ; be 22 01 10367 mov word [bp-0 14h], ax ; 89 46 ec10368 mov word [bp-00 ah], strict word 00000h ; c7 46 f600 0010369 jmp near 07 afdh ; e9 240210370 mov es, [bp-0 14h] ; 8e 46 ec10503 mov word [bp-006h], ax ; 89 46 fa 10504 mov word [bp-008h], strict word 00000h ; c7 46 f8 00 00 10505 jmp near 076b2h ; e9 0c 02 10506 mov es, [bp-006h] ; 8e 46 fa 10371 10507 cmp byte [es:si+001e8h], 004h ; 26 80 bc e8 01 04 10372 jc short 078e7h ; 72 03 10373 jmp near 07b55h ; e9 6e 02 10508 jnc near 07703h ; 0f 83 50 02 10374 10509 mov cx, strict word 0000ah ; b9 0a 00 10375 10510 xor bx, bx ; 31 db 10376 10511 mov dx, ss ; 8c d2 10377 lea ax, [bp-01eh] ; 8d 46 e2 10378 call 08dbbh ; e8 c7 14 10379 mov byte [bp-01eh], 025h ; c6 46 e2 25 10380 mov ax, strict word 00008h ; b8 08 00 10381 push ax ; 50 10382 lea dx, [bp-0021eh] ; 8d 96 e2 fd 10512 lea ax, [bp-01ah] ; 8d 46 e6 10513 call 0885ah ; e8 9a 13 10514 mov byte [bp-01ah], 025h ; c6 46 e6 25 10515 push strict byte 00008h ; 6a 08 10516 lea dx, [bp-0021ah] ; 8d 96 e6 fd 10383 10517 push SS ; 16 10384 10518 push dx ; 52 10385 mov ax, strict word 0000ah ; b8 0a 00 10386 push ax ; 50 10387 mov dl, byte [bp-00ah] ; 8a 56 f6 10388 xor dh, dh ; 30 f6 10519 push strict byte 0000ah ; 6a 0a 10520 movzx dx, byte [bp-008h] ; 0f b6 56 f8 10389 10521 mov cx, ss ; 8c d1 10390 lea bx, [bp-01 eh] ; 8d 5e e210391 mov ax, di ; 89 f810392 call 07 67bh ; e8 66fd10522 lea bx, [bp-01ah] ; 8d 5e e6 10523 mov ax, word [bp-0021ch] ; 8b 86 e4 fd 10524 call 0727ah ; e8 9c fd 10393 10525 test al, al ; 84 c0 10394 je short 07927h ; 74 0e 10395 mov ax, 00b17h ; b8 17 0b 10396 push ax ; 50 10397 mov ax, strict word 00007h ; b8 07 00 10398 push ax ; 50 10399 call 018fah ; e8 d6 9f 10526 je short 074edh ; 74 0b 10527 push 00b17h ; 68 17 0b 10528 push strict byte 00007h ; 6a 07 10529 call 018e9h ; e8 ff a3 10400 10530 add sp, strict byte 00004h ; 83 c4 04 10401 mov al, byte [bp-0021dh] ; 8a 86 e3fd10402 xor dh, dh ; 30 f610403 mov ah, byte [bp-0021eh] ; 8a a6 e2 fd10531 movzx dx, byte [bp-00219h] ; 0f b6 96 e7 fd 10532 movzx di, byte [bp-0021ah] ; 0f b6 be e6 fd 10533 sal di, 008h ; c1 e7 08 10404 10534 xor bx, bx ; 31 db 10405 mov word [bp-008h], ax ; 89 46 f8 10406 mov al, byte [bp-0021ch] ; 8a 86 e4 fd 10407 xor ah, ah ; 30 e4 10408 xor dl, dl ; 30 d2 10409 mov cx, strict word 00008h ; b9 08 00 10410 sal ax, 1 ; d1 e0 10411 rcl dx, 1 ; d1 d2 10412 loop 07941h ; e2 fa 10413 or bx, ax ; 09 c3 10414 or dx, word [bp-008h] ; 0b 56 f8 10415 mov al, byte [bp-0021bh] ; 8a 86 e5 fd 10416 xor ah, ah ; 30 e4 10417 or bx, ax ; 09 c3 10418 mov word [bp-012h], bx ; 89 5e ee 10419 mov word [bp-010h], dx ; 89 56 f0 10420 mov dh, byte [bp-0021ah] ; 8a b6 e6 fd 10421 mov dl, byte [bp-00219h] ; 8a 96 e7 fd 10422 xor bx, bx ; 31 db 10423 mov word [bp-008h], dx ; 89 56 f8 10424 mov al, byte [bp-00218h] ; 8a 86 e8 fd 10535 or di, dx ; 09 d7 10536 movzx ax, byte [bp-00218h] ; 0f b6 86 e8 fd 10425 10537 xor dx, dx ; 31 d2 10426 10538 mov cx, strict word 00008h ; b9 08 00 10427 10539 sal ax, 1 ; d1 e0 10428 10540 rcl dx, 1 ; d1 d2 10429 loop 07 970h ; e2 fa10541 loop 07508h ; e2 fa 10430 10542 or bx, ax ; 09 c3 10431 or dx, word [bp-008h] ; 0b 56 f8 10432 mov al, byte [bp-00217h] ; 8a 86 e9 fd 10433 xor ah, ah ; 30 e4 10543 or di, dx ; 09 d7 10544 movzx ax, byte [bp-00217h] ; 0f b6 86 e9 fd 10434 10545 or bx, ax ; 09 c3 10435 mov word [bp-00eh], bx ; 89 5e f2 10546 mov word [bp-00ah], bx ; 89 5e f6 10547 movzx ax, byte [bp-00216h] ; 0f b6 86 ea fd 10548 sal ax, 008h ; c1 e0 08 10549 movzx bx, byte [bp-00215h] ; 0f b6 9e eb fd 10550 mov word [bp-010h], strict word 00000h ; c7 46 f0 00 00 10551 or bx, ax ; 09 c3 10552 movzx ax, byte [bp-00214h] ; 0f b6 86 ec fd 10553 xor dx, dx ; 31 d2 10554 mov cx, strict word 00008h ; b9 08 00 10555 sal ax, 1 ; d1 e0 10556 rcl dx, 1 ; d1 d2 10557 loop 0753ah ; e2 fa 10558 mov cx, word [bp-010h] ; 8b 4e f0 10559 or cx, ax ; 09 c1 10560 or dx, bx ; 09 da 10561 movzx ax, byte [bp-00213h] ; 0f b6 86 ed fd 10562 mov bx, cx ; 89 cb 10563 or bx, ax ; 09 c3 10564 mov word [bp-00ch], bx ; 89 5e f4 10436 10565 test dx, dx ; 85 d2 10437 jne short 07 990h ; 75 0610566 jne short 0755dh ; 75 06 10438 10567 cmp bx, 00200h ; 81 fb 00 02 10439 je short 07 9b3h ; 74 2310440 mov bx, 00c 16h ; bb 160c10568 je short 0757dh ; 74 20 10569 mov bx, 00c08h ; bb 08 0c 10441 10570 mov cx, ds ; 8c d9 10442 10571 mov ax, strict word 00004h ; b8 04 00 10443 call 018 bdh ; e8 22 9f10572 call 018aeh ; e8 46 a3 10444 10573 push dx ; 52 10445 push word [bp-00eh] ; ff 76 f2 10446 push word [bp-00ah] ; ff 76 f6 10447 mov ax, 00b53h ; b8 53 0b 10448 push ax ; 50 10449 mov ax, strict word 00004h ; b8 04 00 10450 push ax ; 50 10451 call 018fah ; e8 4d 9f 10574 push word [bp-00ch] ; ff 76 f4 10575 push word [bp-008h] ; ff 76 f8 10576 push 00b53h ; 68 53 0b 10577 push strict byte 00004h ; 6a 04 10578 call 018e9h ; e8 72 a3 10452 10579 add sp, strict byte 0000ah ; 83 c4 0a 10453 jmp near 07af4h ; e9 41 01 10454 mov word [bp-004h], 000ffh ; c7 46 fc ff 00 10455 mov word [bp-002h], strict word 0003fh ; c7 46 fe 3f 00 10456 jmp short 079d0h ; eb 11 10457 mov word [bp-004h], 00080h ; c7 46 fc 80 00 10458 jmp short 079cbh ; eb 05 10459 mov word [bp-004h], strict word 00040h ; c7 46 fc 40 00 10460 mov word [bp-002h], strict word 00020h ; c7 46 fe 20 00 10461 mov ax, word [bp-004h] ; 8b 46 fc 10462 mul word [bp-002h] ; f7 66 fe 10463 mov bx, ax ; 89 c3 10464 mov ax, word [bp-012h] ; 8b 46 ee 10465 mov dx, word [bp-010h] ; 8b 56 f0 10580 jmp near 076a9h ; e9 2c 01 10581 cmp di, strict byte 00040h ; 83 ff 40 10582 jnbe short 07584h ; 77 02 10583 jne short 0758eh ; 75 0a 10584 mov dword [bp-004h], strict dword 000ff003fh ; 66 c7 46 fc 3f 00 ff 00 10585 jmp short 075a7h ; eb 19 10586 cmp di, strict byte 00020h ; 83 ff 20 10587 jnbe short 07595h ; 77 02 10588 jne short 0759fh ; 75 0a 10589 mov dword [bp-004h], strict dword 000800020h ; 66 c7 46 fc 20 00 80 00 10590 jmp short 075a7h ; eb 08 10591 mov dword [bp-004h], strict dword 000400020h ; 66 c7 46 fc 20 00 40 00 10592 mov bx, word [bp-002h] ; 8b 5e fe 10593 imul bx, word [bp-004h] ; 0f af 5e fc 10594 mov ax, word [bp-00ah] ; 8b 46 f6 10595 mov dx, di ; 89 fa 10466 10596 xor cx, cx ; 31 c9 10467 call 08d37h ; e8 54 13 10468 mov word [bp-00ch], ax ; 89 46 f4 10469 mov word [bp-006h], dx ; 89 56 fa 10470 mov es, [bp-014h] ; 8e 46 ec 10597 call 087f0h ; e8 38 12 10598 mov word [bp-00eh], dx ; 89 56 f2 10599 mov es, [bp-006h] ; 8e 46 fa 10471 10600 mov cl, byte [es:si+001e8h] ; 26 8a 8c e8 01 10472 10601 mov ch, cl ; 88 cd 10473 10602 add ch, 008h ; 80 c5 08 10474 mov al, cl ; 88 c8 10475 xor ah, ah ; 30 e4 10476 sal ax, 1 ; d1 e0 10477 sal ax, 1 ; d1 e0 10603 movzx dx, cl ; 0f b6 d1 10604 sal dx, 002h ; c1 e2 02 10478 10605 mov bx, si ; 89 f3 10479 add bx, ax ; 01 c3 10480 mov word [es:bx+001d8h], di ; 26 89 bf d8 01 10481 mov al, byte [bp-00ah] ; 8a 46 f6 10482 mov byte [es:bx+001dah], al ; 26 88 87 da 01 10483 mov al, ch ; 88 e8 10484 xor ah, ah ; 30 e4 10485 mov dx, strict word 00018h ; ba 18 00 10486 imul dx ; f7 ea 10606 add bx, dx ; 01 d3 10607 mov dx, word [bp-0021ch] ; 8b 96 e4 fd 10608 mov word [es:bx+001d8h], dx ; 26 89 97 d8 01 10609 mov dl, byte [bp-008h] ; 8a 56 f8 10610 mov byte [es:bx+001dah], dl ; 26 88 97 da 01 10611 movzx dx, ch ; 0f b6 d5 10612 imul dx, dx, strict byte 00018h ; 6b d2 18 10487 10613 mov bx, si ; 89 f3 10488 add bx, ax ; 01 c310489 mov word [es:bx+01eh], 0ff04h ; 26 c7 47 1e 04 ff10490 mov word [es:bx+020h], strict word 00000h ; 26 c7 47 2000 0010491 mov ax, word [bp-00eh] ; 8b 46 f210492 mov word [es:bx+024h], ax ; 26 89 47 2410614 add bx, dx ; 01 d3 10615 db 066h, 026h, 0c7h, 047h, 01eh, 004h, 0ffh, 000h, 000h 10616 ; mov dword [es:bx+01eh], strict dword 00000ff04h ; 66 26 c7 47 1e 04 ff 00 00 10617 mov dx, word [bp-00ch] ; 8b 56 f4 10618 mov word [es:bx+024h], dx ; 26 89 57 24 10493 10619 mov byte [es:bx+023h], 001h ; 26 c6 47 23 01 10494 mov ax, word [bp-004h] ; 8b 46 fc10495 mov word [es:bx+026h], ax ; 26 89 47 2610496 mov ax, word [bp-002h] ; 8b 46 fe10497 mov word [es:bx+02ah], ax ; 26 89 47 2a10498 cmp word [bp-00 6h], strict byte 00000h ; 83 7e fa0010499 jne short 07 a4fh ; 75 0710500 cmp word [bp-00ch], 00400h ; 81 7e f400 0410501 jbe short 07 a57h ; 76 0810620 mov dx, word [bp-002h] ; 8b 56 fe 10621 mov word [es:bx+026h], dx ; 26 89 57 26 10622 mov dx, word [bp-004h] ; 8b 56 fc 10623 mov word [es:bx+02ah], dx ; 26 89 57 2a 10624 cmp word [bp-00eh], strict byte 00000h ; 83 7e f2 00 10625 jne short 0761bh ; 75 05 10626 cmp ax, 00400h ; 3d 00 04 10627 jbe short 07623h ; 76 08 10502 10628 mov word [es:bx+028h], 00400h ; 26 c7 47 28 00 04 10503 jmp short 07a5eh ; eb 07 10504 mov ax, word [bp-00ch] ; 8b 46 f4 10629 jmp short 07627h ; eb 04 10505 10630 mov word [es:bx+028h], ax ; 26 89 47 28 10506 mov al, ch ; 88 e8 10507 xor ah, ah ; 30 e4 10508 mov dx, strict word 00018h ; ba 18 00 10509 imul dx ; f7 ea 10510 mov es, [bp-014h] ; 8e 46 ec 10511 mov bx, si ; 89 f3 10512 add bx, ax ; 01 c3 10513 mov ax, word [bp-004h] ; 8b 46 fc 10514 mov word [es:bx+02ch], ax ; 26 89 47 2c 10515 mov ax, word [bp-002h] ; 8b 46 fe 10516 mov word [es:bx+030h], ax ; 26 89 47 30 10517 cmp word [bp-006h], strict byte 00000h ; 83 7e fa 00 10518 jne short 07a89h ; 75 07 10519 cmp word [bp-00ch], 00400h ; 81 7e f4 00 04 10520 jbe short 07a91h ; 76 08 10631 movzx bx, ch ; 0f b6 dd 10632 imul bx, bx, strict byte 00018h ; 6b db 18 10633 mov es, [bp-006h] ; 8e 46 fa 10634 add bx, si ; 01 f3 10635 mov dx, word [bp-002h] ; 8b 56 fe 10636 mov word [es:bx+02ch], dx ; 26 89 57 2c 10637 mov dx, word [bp-004h] ; 8b 56 fc 10638 mov word [es:bx+030h], dx ; 26 89 57 30 10639 cmp word [bp-00eh], strict byte 00000h ; 83 7e f2 00 10640 jne short 0764bh ; 75 05 10641 cmp ax, 00400h ; 3d 00 04 10642 jbe short 07653h ; 76 08 10521 10643 mov word [es:bx+02eh], 00400h ; 26 c7 47 2e 00 04 10522 jmp short 07a98h ; eb 07 10523 mov ax, word [bp-00ch] ; 8b 46 f4 10644 jmp short 07657h ; eb 04 10524 10645 mov word [es:bx+02eh], ax ; 26 89 47 2e 10525 mov al, ch ; 88 e8 10526 xor ah, ah ; 30 e4 10527 mov dx, strict word 00018h ; ba 18 00 10528 imul dx ; f7 ea 10529 mov es, [bp-014h] ; 8e 46 ec 10530 mov bx, si ; 89 f3 10531 add bx, ax ; 01 c3 10532 mov ax, word [bp-012h] ; 8b 46 ee 10646 movzx bx, ch ; 0f b6 dd 10647 imul bx, bx, strict byte 00018h ; 6b db 18 10648 mov es, [bp-006h] ; 8e 46 fa 10649 add bx, si ; 01 f3 10650 mov ax, word [bp-00ah] ; 8b 46 f6 10533 10651 mov word [es:bx+032h], ax ; 26 89 47 32 10534 mov ax, word [bp-010h] ; 8b 46 f0 10535 mov word [es:bx+034h], ax ; 26 89 47 34 10652 mov word [es:bx+034h], di ; 26 89 7f 34 10536 10653 mov al, byte [es:si+0019eh] ; 26 8a 84 9e 01 10537 10654 mov ah, cl ; 88 cc 10538 10655 add ah, 008h ; 80 c4 08 10539 mov bl, al ; 88 c3 10540 xor bh, bh ; 30 ff 10656 movzx bx, al ; 0f b6 d8 10541 10657 add bx, si ; 01 f3 10542 10658 mov byte [es:bx+0019fh], ah ; 26 88 a7 9f 01 … … 10546 10662 mov dx, strict word 00075h ; ba 75 00 10547 10663 mov ax, strict word 00040h ; b8 40 00 10548 call 01600h ; e8 25 9b 10549 mov bl, al ; 88 c3 10550 db 0feh, 0c3h 10551 ; inc bl ; fe c3 10552 xor bh, bh ; 30 ff 10664 call 01600h ; e8 6f 9f 10665 db 0feh, 0c0h 10666 ; inc al ; fe c0 10667 movzx bx, al ; 0f b6 d8 10553 10668 mov dx, strict word 00075h ; ba 75 00 10554 10669 mov ax, strict word 00040h ; b8 40 00 10555 call 0160eh ; e8 24 9b10670 call 0160eh ; e8 6f 9f 10556 10671 db 0feh, 0c1h 10557 10672 ; inc cl ; fe c1 10558 mov es, [bp-0 14h] ; 8e 46 ec10673 mov es, [bp-006h] ; 8e 46 fa 10559 10674 mov byte [es:si+001e8h], cl ; 26 88 8c e8 01 10560 inc word [bp-00 ah] ; ff 46 f610561 cmp word [bp-00 ah], strict byte 00010h ; 83 7e f61010562 jnl short 07 b55h ; 7d 5810563 mov byte [bp-01 eh], 012h ; c6 46 e21210675 inc word [bp-008h] ; ff 46 f8 10676 cmp word [bp-008h], strict byte 00010h ; 83 7e f8 10 10677 jnl short 07703h ; 7d 51 10678 mov byte [bp-01ah], 012h ; c6 46 e6 12 10564 10679 xor al, al ; 30 c0 10565 mov byte [bp-01dh], al ; 88 46 e310566 mov byte [bp-01ch], al ; 88 46 e410567 mov byte [bp-01bh], al ; 88 46 e510568 mov byte [bp-01ah], 005h ; c6 46 e6 0510569 10680 mov byte [bp-019h], al ; 88 46 e7 10570 mov ax, strict word 00005h ; b8 05 00 10571 push ax ; 50 10572 lea dx, [bp-0021eh] ; 8d 96 e2 fd 10681 mov byte [bp-018h], al ; 88 46 e8 10682 mov byte [bp-017h], al ; 88 46 e9 10683 mov byte [bp-016h], 005h ; c6 46 ea 05 10684 mov byte [bp-015h], al ; 88 46 eb 10685 push strict byte 00005h ; 6a 05 10686 lea dx, [bp-0021ah] ; 8d 96 e6 fd 10573 10687 push SS ; 16 10574 10688 push dx ; 52 10575 mov ax, strict word 00006h ; b8 06 00 10576 push ax ; 50 10577 mov dl, byte [bp-00ah] ; 8a 56 f6 10578 xor dh, dh ; 30 f6 10689 push strict byte 00006h ; 6a 06 10690 movzx dx, byte [bp-008h] ; 0f b6 56 f8 10579 10691 mov cx, ss ; 8c d1 10580 lea bx, [bp-01 eh] ; 8d 5e e210581 mov ax, di ; 89 f810582 call 07 67bh ; e8 4bfb10692 lea bx, [bp-01ah] ; 8d 5e e6 10693 mov ax, word [bp-0021ch] ; 8b 86 e4 fd 10694 call 0727ah ; e8 98 fb 10583 10695 test al, al ; 84 c0 10584 je short 07b42h ; 74 0e 10585 mov ax, 00ae1h ; b8 e1 0a 10586 push ax ; 50 10587 mov ax, strict word 00007h ; b8 07 00 10588 push ax ; 50 10589 call 018fah ; e8 bb 9d 10696 je short 076f1h ; 74 0b 10697 push 00ae1h ; 68 e1 0a 10698 push strict byte 00007h ; 6a 07 10699 call 018e9h ; e8 fb a1 10590 10700 add sp, strict byte 00004h ; 83 c4 04 10591 test byte [bp-0021eh], 0e0h ; f6 86 e2 fd e0 10592 jne short 07af4h ; 75 ab 10593 test byte [bp-0021eh], 01fh ; f6 86 e2 fd 1f 10594 jne short 07b53h ; 75 03 10595 jmp near 078d9h ; e9 86 fd 10596 jmp short 07af4h ; eb 9f 10597 mov sp, bp ; 89 ec 10598 pop bp ; 5d 10701 test byte [bp-0021ah], 0e0h ; f6 86 e6 fd e0 10702 jne short 076a9h ; 75 b1 10703 test byte [bp-0021ah], 01fh ; f6 86 e6 fd 1f 10704 je near 074a6h ; 0f 84 a5 fd 10705 jmp short 076a9h ; eb a6 10706 leave ; c9 10599 10707 pop di ; 5f 10600 10708 pop si ; 5e … … 10603 10711 pop bx ; 5b 10604 10712 retn ; c3 10605 _scsi_init: ; 0xf7 b5eLB 0x6410713 _scsi_init: ; 0xf770a LB 0x64 10606 10714 push bp ; 55 10607 10715 mov bp, sp ; 89 e5 10608 10716 mov dx, strict word 0000eh ; ba 0e 00 10609 10717 mov ax, strict word 00040h ; b8 40 00 10610 call 0161ch ; e8 b2 9a10718 call 0161ch ; e8 06 9f 10611 10719 mov bx, 00122h ; bb 22 01 10612 10720 mov es, ax ; 8e c0 … … 10619 10727 ; sub ah, ah ; 2a e4 10620 10728 cmp AL, strict byte 055h ; 3c 55 10621 jne short 07 b8eh ; 75 0c10729 jne short 0773ah ; 75 0c 10622 10730 xor al, al ; 30 c0 10623 10731 mov dx, 00333h ; ba 33 03 10624 10732 out DX, AL ; ee 10625 10733 mov ax, 00330h ; b8 30 03 10626 call 07 8b4h ; e8 26fd10734 call 07485h ; e8 4b fd 10627 10735 mov AL, strict byte 055h ; b0 55 10628 10736 mov dx, 00342h ; ba 42 03 … … 10632 10740 ; sub ah, ah ; 2a e4 10633 10741 cmp AL, strict byte 055h ; 3c 55 10634 jne short 07 ba7h ; 75 0c10742 jne short 07753h ; 75 0c 10635 10743 xor al, al ; 30 c0 10636 10744 mov dx, 00343h ; ba 43 03 10637 10745 out DX, AL ; ee 10638 10746 mov ax, 00340h ; b8 40 03 10639 call 07 8b4h ; e8 0dfd10747 call 07485h ; e8 32 fd 10640 10748 mov AL, strict byte 055h ; b0 55 10641 10749 mov dx, 00352h ; ba 52 03 … … 10645 10753 ; sub ah, ah ; 2a e4 10646 10754 cmp AL, strict byte 055h ; 3c 55 10647 jne short 07 bc0h ; 75 0c10755 jne short 0776ch ; 75 0c 10648 10756 xor al, al ; 30 c0 10649 10757 mov dx, 00353h ; ba 53 03 10650 10758 out DX, AL ; ee 10651 10759 mov ax, 00350h ; b8 50 03 10652 call 07 8b4h ; e8 f4 fc10760 call 07485h ; e8 19 fd 10653 10761 pop bp ; 5d 10654 10762 retn ; c3 10655 high_bits_save_: ; 0xf7 bc2LB 0x1410763 high_bits_save_: ; 0xf776e LB 0x14 10656 10764 push bx ; 53 10657 10765 push bp ; 55 … … 10664 10772 pop bx ; 5b 10665 10773 retn ; c3 10666 high_bits_restore_: ; 0xf7 bd6LB 0x1410774 high_bits_restore_: ; 0xf7782 LB 0x14 10667 10775 push bx ; 53 10668 10776 push bp ; 55 … … 10675 10783 pop bx ; 5b 10676 10784 retn ; c3 10677 ahci_ctrl_set_bits_: ; 0xf7 bea LB 0x4210785 ahci_ctrl_set_bits_: ; 0xf7796 LB 0x40 10678 10786 push si ; 56 10679 10787 push di ; 57 10680 push bp ; 55 10681 mov bp, sp ; 89 e5 10682 push ax ; 50 10788 enter 00002h, 000h ; c8 02 00 00 10683 10789 mov si, ax ; 89 c6 10684 10790 mov ax, dx ; 89 d0 … … 10708 10814 ; mov ax, cx ; 8b c1 10709 10815 out DX, eax ; 66 ef 10710 mov sp, bp ; 89 ec 10711 pop bp ; 5d 10816 leave ; c9 10712 10817 pop di ; 5f 10713 10818 pop si ; 5e 10714 10819 retn ; c3 10715 ahci_ctrl_clear_bits_: ; 0xf7 c2c LB 0x4610820 ahci_ctrl_clear_bits_: ; 0xf77d6 LB 0x44 10716 10821 push si ; 56 10717 10822 push di ; 57 10718 push bp ; 55 10719 mov bp, sp ; 89 e5 10720 push ax ; 50 10823 enter 00002h, 000h ; c8 02 00 00 10721 10824 mov si, ax ; 89 c6 10722 10825 mov ax, dx ; 89 d0 … … 10748 10851 ; mov ax, cx ; 8b c1 10749 10852 out DX, eax ; 66 ef 10750 mov sp, bp ; 89 ec 10751 pop bp ; 5d 10853 leave ; c9 10752 10854 pop di ; 5f 10753 10855 pop si ; 5e 10754 10856 retn ; c3 10755 ahci_ctrl_is_bit_set_: ; 0xf7 c72LB 0x3610857 ahci_ctrl_is_bit_set_: ; 0xf781a LB 0x36 10756 10858 push si ; 56 10757 10859 push di ; 57 … … 10775 10877 xchg dx, ax ; 92 10776 10878 test dx, di ; 85 fa 10777 jne short 07 c9eh ; 75 0410879 jne short 07846h ; 75 04 10778 10880 test ax, bx ; 85 d8 10779 je short 07 ca2h ; 74 0410881 je short 0784ah ; 74 04 10780 10882 mov AL, strict byte 001h ; b0 01 10781 jmp short 07 ca4h ; eb 0210883 jmp short 0784ch ; eb 02 10782 10884 xor al, al ; 30 c0 10783 10885 pop bp ; 5d … … 10785 10887 pop si ; 5e 10786 10888 retn ; c3 10787 ahci_ctrl_extract_bits_: ; 0xf7 ca8 LB 0x1c10889 ahci_ctrl_extract_bits_: ; 0xf7850 LB 0x1b 10788 10890 push si ; 56 10789 10891 push bp ; 55 10790 10892 mov bp, sp ; 89 e5 10791 mov si, ax ; 89 c610893 mov si, bx ; 89 de 10792 10894 and ax, bx ; 21 d8 10793 10895 and dx, cx ; 21 ca 10794 mov cl, byte [bp+006h] ; 8a 4e 06 10795 xor ch, ch ; 30 ed 10796 jcxz 07cbfh ; e3 06 10896 movzx cx, byte [bp+006h] ; 0f b6 4e 06 10897 jcxz 07866h ; e3 06 10797 10898 shr dx, 1 ; d1 ea 10798 10899 rcr ax, 1 ; d1 d8 10799 loop 07 cb9h ; e2 fa10900 loop 07860h ; e2 fa 10800 10901 pop bp ; 5d 10801 10902 pop si ; 5e 10802 10903 retn 00002h ; c2 02 00 10803 ahci_addr_to_phys_: ; 0xf7 cc4LB 0x1e10904 ahci_addr_to_phys_: ; 0xf786b LB 0x1e 10804 10905 push bx ; 53 10805 10906 push cx ; 51 … … 10812 10913 sal ax, 1 ; d1 e0 10813 10914 rcl dx, 1 ; d1 d2 10814 loop 07 cd2h ; e2 fa10915 loop 07879h ; e2 fa 10815 10916 xor cx, cx ; 31 c9 10816 10917 add ax, bx ; 01 d8 … … 10820 10921 pop bx ; 5b 10821 10922 retn ; c3 10822 ahci_port_cmd_sync_: ; 0xf7 ce2 LB 0xdd10923 ahci_port_cmd_sync_: ; 0xf7889 LB 0xd0 10823 10924 push cx ; 51 10824 10925 push si ; 56 10825 10926 push di ; 57 10826 push bp ; 55 10827 mov bp, sp ; 89 e5 10828 push ax ; 50 10829 push ax ; 50 10927 enter 00006h, 000h ; c8 06 00 00 10830 10928 mov si, ax ; 89 c6 10831 mov cx, dx ; 89 d1 10832 mov dl, bl ; 88 da 10833 mov es, cx ; 8e c1 10929 mov word [bp-004h], dx ; 89 56 fc 10930 mov es, dx ; 8e c2 10834 10931 mov al, byte [es:si+00262h] ; 26 8a 84 62 02 10835 10932 mov byte [bp-002h], al ; 88 46 fe 10836 10933 mov di, word [es:si+00260h] ; 26 8b bc 60 02 10837 10934 cmp AL, strict byte 0ffh ; 3c ff 10838 jne short 07d06h ; 75 03 10839 jmp near 07db8h ; e9 b2 00 10840 mov al, byte [es:si+00263h] ; 26 8a 84 63 02 10841 xor ah, ah ; 30 e4 10842 xor bx, bx ; 31 db 10843 or bl, 080h ; 80 cb 80 10844 xor dh, dh ; 30 f6 10845 or bx, dx ; 09 d3 10846 mov word [es:si], bx ; 26 89 1c 10847 mov word [es:si+002h], ax ; 26 89 44 02 10848 mov word [es:si+004h], strict word 00000h ; 26 c7 44 04 00 00 10849 mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00 10935 je near 07954h ; 0f 84 aa 00 10936 movzx cx, byte [es:si+00263h] ; 26 0f b6 8c 63 02 10937 xor dx, dx ; 31 d2 10938 or dl, 080h ; 80 ca 80 10939 movzx ax, bl ; 0f b6 c3 10940 or dx, ax ; 09 c2 10941 mov word [es:si], dx ; 26 89 14 10942 mov word [es:si+002h], cx ; 26 89 4c 02 10943 db 066h, 026h, 0c7h, 044h, 004h, 000h, 000h, 000h, 000h 10944 ; mov dword [es:si+004h], strict dword 000000000h ; 66 26 c7 44 04 00 00 00 00 10850 10945 lea ax, [si+00080h] ; 8d 84 80 00 10851 mov dx, cx ; 89 ca10852 call 07 cc4h ; e8 92ff10853 mov es, cx ; 8e c110946 mov dx, es ; 8c c2 10947 call 0786bh ; e8 98 ff 10948 mov es, [bp-004h] ; 8e 46 fc 10854 10949 mov word [es:si+008h], ax ; 26 89 44 08 10855 10950 mov word [es:si+00ah], dx ; 26 89 54 0a 10856 mov al, byte [bp-002h] ; 8a 46 fe 10857 xor ah, ah ; 30 e4 10858 mov CL, strict byte 007h ; b1 07 10859 mov si, ax ; 89 c6 10860 sal si, CL ; d3 e6 10951 movzx si, byte [bp-002h] ; 0f b6 76 fe 10952 sal si, 007h ; c1 e6 07 10861 10953 lea dx, [si+00118h] ; 8d 94 18 01 10862 10954 mov bx, strict word 00011h ; bb 11 00 10863 10955 xor cx, cx ; 31 c9 10864 10956 mov ax, di ; 89 f8 10865 call 07 beah ; e8 95fe10957 call 07796h ; e8 a3 fe 10866 10958 lea ax, [si+00138h] ; 8d 84 38 01 10867 10959 cwd ; 99 … … 10881 10973 ; mov ax, cx ; 8b c1 10882 10974 out DX, eax ; 66 ef 10883 mov al, byte [bp-002h] ; 8a 46 fe 10884 xor ah, ah ; 30 e4 10885 mov CL, strict byte 007h ; b1 07 10886 sal ax, CL ; d3 e0 10887 mov word [bp-004h], ax ; 89 46 fc 10975 movzx ax, byte [bp-002h] ; 0f b6 46 fe 10976 sal ax, 007h ; c1 e0 07 10977 mov word [bp-006h], ax ; 89 46 fa 10888 10978 mov si, ax ; 89 c6 10889 10979 add si, 00110h ; 81 c6 10 01 … … 10892 10982 mov dx, si ; 89 f2 10893 10983 mov ax, di ; 89 f8 10894 call 07 c72h ; e8 dbfe10984 call 0781ah ; e8 e7 fe 10895 10985 test al, al ; 84 c0 10896 je short 07 d78h ; 74 dd10986 je short 07916h ; 74 df 10897 10987 mov bx, strict word 00001h ; bb 01 00 10898 10988 xor cx, cx ; 31 c9 10899 10989 mov dx, si ; 89 f2 10900 10990 mov ax, di ; 89 f8 10901 call 07 beah ; e8 43 fe10902 mov dx, word [bp-00 4h] ; 8b 56 fc10991 call 07796h ; e8 53 fe 10992 mov dx, word [bp-006h] ; 8b 56 fa 10903 10993 add dx, 00118h ; 81 c2 18 01 10904 10994 mov bx, strict word 00001h ; bb 01 00 10905 10995 xor cx, cx ; 31 c9 10906 10996 mov ax, di ; 89 f8 10907 call 07c2ch ; e8 74 fe 10908 mov sp, bp ; 89 ec 10909 pop bp ; 5d 10997 call 077d6h ; e8 82 fe 10998 leave ; c9 10910 10999 pop di ; 5f 10911 11000 pop si ; 5e 10912 11001 pop cx ; 59 10913 11002 retn ; c3 10914 ahci_cmd_data_: ; 0xf7 dbf LB 0x1cf11003 ahci_cmd_data_: ; 0xf7959 LB 0x1c5 10915 11004 push cx ; 51 10916 11005 push si ; 56 10917 11006 push di ; 57 10918 push bp ; 55 10919 mov bp, sp ; 89 e5 10920 sub sp, strict byte 00010h ; 83 ec 10 11007 enter 00010h, 000h ; c8 10 00 00 10921 11008 mov di, ax ; 89 c7 10922 mov word [bp-00 6h], dx ; 89 56 fa11009 mov word [bp-00ch], dx ; 89 56 f4 10923 11010 mov byte [bp-002h], bl ; 88 5e fe 10924 11011 xor si, si ; 31 f6 … … 10926 11013 mov ax, word [es:di+001eeh] ; 26 8b 85 ee 01 10927 11014 mov word [bp-004h], ax ; 89 46 fc 10928 mov word [bp-0 10h], si ; 89 76 f010929 mov word [bp-00 8h], ax ; 89 46 f811015 mov word [bp-008h], si ; 89 76 f8 11016 mov word [bp-006h], ax ; 89 46 fa 10930 11017 mov ax, word [es:di+00ah] ; 26 8b 45 0a 10931 11018 mov word [bp-00ah], ax ; 89 46 f6 10932 11019 mov ax, word [es:di+00ch] ; 26 8b 45 0c 10933 mov word [bp-0 0ch], ax ; 89 46 f411020 mov word [bp-010h], ax ; 89 46 f0 10934 11021 mov cx, strict word 00040h ; b9 40 00 10935 11022 xor bx, bx ; 31 db 10936 11023 mov ax, 00080h ; b8 80 00 10937 11024 mov dx, word [bp-004h] ; 8b 56 fc 10938 call 08 dbbh ; e8 bd 0f11025 call 0885ah ; e8 c4 0e 10939 11026 mov es, [bp-004h] ; 8e 46 fc 10940 11027 mov word [es:si+00080h], 08027h ; 26 c7 84 80 00 27 80 … … 10942 11029 mov byte [es:si+00082h], al ; 26 88 84 82 00 10943 11030 mov byte [es:si+00083h], 000h ; 26 c6 84 83 00 00 10944 mov es, [bp-00 6h] ; 8e 46 fa11031 mov es, [bp-00ch] ; 8e 46 f4 10945 11032 mov al, byte [es:di] ; 26 8a 05 10946 11033 mov es, [bp-004h] ; 8e 46 fc 10947 11034 mov byte [es:si+00084h], al ; 26 88 84 84 00 10948 mov es, [bp-00 6h] ; 8e 46 fa11035 mov es, [bp-00ch] ; 8e 46 f4 10949 11036 mov ax, word [es:di] ; 26 8b 05 10950 mov dx, word [es:di+002h] ; 26 8b 550211037 mov bx, word [es:di+002h] ; 26 8b 5d 02 10951 11038 mov cx, strict word 00008h ; b9 08 00 10952 shr dx, 1 ; d1 ea11039 shr bx, 1 ; d1 eb 10953 11040 rcr ax, 1 ; d1 d8 10954 loop 07 e31h ; e2 fa11041 loop 079c9h ; e2 fa 10955 11042 mov es, [bp-004h] ; 8e 46 fc 10956 11043 mov byte [es:si+00085h], al ; 26 88 84 85 00 10957 mov es, [bp-00 6h] ; 8e 46 fa11044 mov es, [bp-00ch] ; 8e 46 f4 10958 11045 mov ax, word [es:di+002h] ; 26 8b 45 02 10959 11046 mov es, [bp-004h] ; 8e 46 fc 10960 11047 mov byte [es:si+00086h], al ; 26 88 84 86 00 10961 11048 mov byte [es:si+00087h], 040h ; 26 c6 84 87 00 40 10962 mov es, [bp-006h] ; 8e 46 fa 10963 mov al, byte [es:di+003h] ; 26 8a 45 03 11049 mov es, [bp-00ch] ; 8e 46 f4 11050 mov ax, word [es:di+002h] ; 26 8b 45 02 11051 shr ax, 008h ; c1 e8 08 10964 11052 mov es, [bp-004h] ; 8e 46 fc 10965 11053 mov byte [es:si+00088h], al ; 26 88 84 88 00 … … 10968 11056 mov al, byte [bp-00ah] ; 8a 46 f6 10969 11057 mov byte [es:si+0008ch], al ; 26 88 84 8c 00 10970 mov al, byte [bp-009h] ; 8a 46 f7 11058 mov ax, word [bp-00ah] ; 8b 46 f6 11059 shr ax, 008h ; c1 e8 08 10971 11060 mov byte [es:si+0008dh], al ; 26 88 84 8d 00 10972 11061 mov word [es:si+00276h], strict word 00010h ; 26 c7 84 76 02 10 00 10973 11062 mov ax, word [bp-00ah] ; 8b 46 f6 10974 11063 xor dx, dx ; 31 d2 10975 mov bx, word [bp-0 0ch] ; 8b 5e f411064 mov bx, word [bp-010h] ; 8b 5e f0 10976 11065 xor cx, cx ; 31 c9 10977 call 08 dd2h ; e8 3e 0f11066 call 08829h ; e8 f7 0d 10978 11067 push dx ; 52 10979 11068 push ax ; 50 10980 mov es, [bp-00 6h] ; 8e 46 fa11069 mov es, [bp-00ch] ; 8e 46 f4 10981 11070 mov bx, word [es:di+004h] ; 26 8b 5d 04 10982 11071 mov cx, word [es:di+006h] ; 26 8b 4d 06 10983 11072 mov ax, 0026ah ; b8 6a 02 10984 11073 mov dx, word [bp-004h] ; 8b 56 fc 10985 call 08 c4eh ; e8 a4 0d11074 call 08744h ; e8 fc 0c 10986 11075 mov es, [bp-004h] ; 8e 46 fc 10987 mov dl, byte [es:si+00263h] ; 26 8a 94 63 02 10988 xor dh, dh ; 30 f6 10989 mov ax, word [es:si+0027eh] ; 26 8b 84 7e 02 10990 add ax, strict word 0ffffh ; 05 ff ff 11076 movzx ax, byte [es:si+00263h] ; 26 0f b6 84 63 02 11077 mov dx, word [es:si+0027eh] ; 26 8b 94 7e 02 11078 add dx, strict byte 0ffffh ; 83 c2 ff 10991 11079 mov bx, word [es:si+00280h] ; 26 8b 9c 80 02 10992 11080 adc bx, strict byte 0ffffh ; 83 d3 ff 10993 11081 mov word [bp-00eh], bx ; 89 5e f2 10994 mov CL, strict byte 004h ; b1 04 10995 mov bx, dx ; 89 d3 10996 sal bx, CL ; d3 e3 10997 mov word [es:bx+0010ch], ax ; 26 89 87 0c 01 10998 mov ax, word [bp-00eh] ; 8b 46 f2 10999 mov word [es:bx+0010eh], ax ; 26 89 87 0e 01 11000 mov ax, word [es:si+0027ah] ; 26 8b 84 7a 02 11001 mov cx, word [es:si+0027ch] ; 26 8b 8c 7c 02 11002 mov word [es:bx+00100h], ax ; 26 89 87 00 01 11003 mov word [es:bx+00102h], cx ; 26 89 8f 02 01 11004 mov ax, dx ; 89 d0 11082 mov bx, ax ; 89 c3 11083 sal bx, 004h ; c1 e3 04 11084 mov word [es:bx+0010ch], dx ; 26 89 97 0c 01 11085 mov dx, word [bp-00eh] ; 8b 56 f2 11086 mov word [es:bx+0010eh], dx ; 26 89 97 0e 01 11087 mov cx, word [es:si+0027ah] ; 26 8b 8c 7a 02 11088 mov dx, word [es:si+0027ch] ; 26 8b 94 7c 02 11089 mov word [es:bx+00100h], cx ; 26 89 8f 00 01 11090 mov word [es:bx+00102h], dx ; 26 89 97 02 01 11005 11091 inc ax ; 40 11006 mov es, [bp-00 6h] ; 8e 46 fa11092 mov es, [bp-00ch] ; 8e 46 f4 11007 11093 cmp word [es:di+01ch], strict byte 00000h ; 26 83 7d 1c 00 11008 je short 07 f28h ; 74 2d11094 je short 07ac1h ; 74 2c 11009 11095 mov dx, word [es:di+01ch] ; 26 8b 55 1c 11010 11096 dec dx ; 4a 11011 mov CL, strict byte 004h ; b1 0411012 11097 mov di, ax ; 89 c7 11013 sal di, CL ; d3 e711098 sal di, 004h ; c1 e7 04 11014 11099 mov es, [bp-004h] ; 8e 46 fc 11015 11100 mov word [es:di+0010ch], dx ; 26 89 95 0c 01 11016 11101 mov word [es:di+0010eh], si ; 26 89 b5 0e 01 11017 mov bx, word [es:si+00264h] ; 26 8b 9c64 0211018 mov dx, word [es:si+00266h] ; 26 8b 9466 0211019 mov word [es:di+00100h], bx ; 26 89 9d00 0111020 mov word [es:di+00102h], dx ; 26 89 9502 0111102 mov dx, word [es:si+00264h] ; 26 8b 94 64 02 11103 mov bx, word [es:si+00266h] ; 26 8b 9c 66 02 11104 mov word [es:di+00100h], dx ; 26 89 95 00 01 11105 mov word [es:di+00102h], bx ; 26 89 9d 02 01 11021 11106 inc ax ; 40 11022 mov es, [bp-008h] ; 8e 46 f8 11023 mov bx, word [bp-010h] ; 8b 5e f0 11107 les bx, [bp-008h] ; c4 5e f8 11024 11108 mov byte [es:bx+00263h], al ; 26 88 87 63 02 11025 11109 xor ax, ax ; 31 c0 11026 mov es, [bp-008h] ; 8e 46 f8 11027 mov bx, word [bp-010h] ; 8b 5e f0 11028 mov dl, byte [es:bx+00263h] ; 26 8a 97 63 02 11029 xor dh, dh ; 30 f6 11110 les bx, [bp-008h] ; c4 5e f8 11111 movzx dx, byte [es:bx+00263h] ; 26 0f b6 97 63 02 11030 11112 cmp ax, dx ; 39 d0 11031 jnc short 07 f49h ; 73 0311113 jnc short 07adbh ; 73 03 11032 11114 inc ax ; 40 11033 jmp short 07 f35h ; eb ec11115 jmp short 07acbh ; eb f0 11034 11116 mov al, byte [bp-002h] ; 8a 46 fe 11035 11117 cmp AL, strict byte 035h ; 3c 35 11036 jne short 07 f56h ; 75 0611118 jne short 07ae8h ; 75 06 11037 11119 mov byte [bp-002h], 040h ; c6 46 fe 40 11038 jmp short 07 f69h ; eb 1311120 jmp short 07afch ; eb 14 11039 11121 cmp AL, strict byte 0a0h ; 3c a0 11040 jne short 07 f66h ; 75 0c11122 jne short 07af8h ; 75 0c 11041 11123 or byte [bp-002h], 020h ; 80 4e fe 20 11042 11124 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 11043 jmp short 07 f69h ; eb 0311044 mov byte [bp-002h], dh ; 88 76 fe11125 jmp short 07afch ; eb 04 11126 mov byte [bp-002h], 000h ; c6 46 fe 00 11045 11127 or byte [bp-002h], 005h ; 80 4e fe 05 11046 mov bl, byte [bp-002h] ; 8a 5e fe 11047 xor bh, bh ; 30 ff 11048 mov ax, word [bp-010h] ; 8b 46 f0 11049 mov dx, word [bp-008h] ; 8b 56 f8 11050 call 07ce2h ; e8 67 fd 11051 mov ax, word [bp-010h] ; 8b 46 f0 11128 movzx bx, byte [bp-002h] ; 0f b6 5e fe 11129 mov ax, word [bp-008h] ; 8b 46 f8 11130 mov dx, word [bp-006h] ; 8b 56 fa 11131 call 07889h ; e8 7c fd 11132 mov ax, word [bp-008h] ; 8b 46 f8 11052 11133 add ax, 0026ah ; 05 6a 02 11053 mov dx, word [bp-008h] ; 8b 56 f8 11054 call 08cc2h ; e8 3b 0d 11055 mov sp, bp ; 89 ec 11056 pop bp ; 5d 11134 mov dx, word [bp-006h] ; 8b 56 fa 11135 call 087bah ; e8 a1 0c 11136 leave ; c9 11057 11137 pop di ; 5f 11058 11138 pop si ; 5e 11059 11139 pop cx ; 59 11060 11140 retn ; c3 11061 ahci_port_deinit_current_: ; 0xf7 f8e LB 0x14811141 ahci_port_deinit_current_: ; 0xf7b1e LB 0x13f 11062 11142 push bx ; 53 11063 11143 push cx ; 51 11064 11144 push si ; 56 11065 11145 push di ; 57 11066 push bp ; 55 11067 mov bp, sp ; 89 e5 11068 sub sp, strict byte 00006h ; 83 ec 06 11146 enter 00006h, 000h ; c8 06 00 00 11069 11147 mov di, ax ; 89 c7 11070 11148 mov word [bp-004h], dx ; 89 56 fc … … 11074 11152 mov byte [bp-002h], al ; 88 46 fe 11075 11153 cmp AL, strict byte 0ffh ; 3c ff 11076 jne short 07fb3h ; 75 03 11077 jmp near 080ceh ; e9 1b 01 11078 xor ah, ah ; 30 e4 11079 mov CL, strict byte 007h ; b1 07 11080 mov dx, ax ; 89 c2 11081 sal dx, CL ; d3 e2 11154 je near 07c57h ; 0f 84 17 01 11155 movzx dx, al ; 0f b6 d0 11156 sal dx, 007h ; c1 e2 07 11082 11157 add dx, 00118h ; 81 c2 18 01 11083 11158 mov bx, strict word 00011h ; bb 11 00 11084 11159 xor cx, cx ; 31 c9 11085 11160 mov ax, si ; 89 f0 11086 call 07c2ch ; e8 63 fc 11087 mov al, byte [bp-002h] ; 8a 46 fe 11088 xor ah, ah ; 30 e4 11089 mov CL, strict byte 007h ; b1 07 11090 sal ax, CL ; d3 e0 11161 call 077d6h ; e8 82 fc 11162 movzx ax, byte [bp-002h] ; 0f b6 46 fe 11163 sal ax, 007h ; c1 e0 07 11091 11164 mov word [bp-006h], ax ; 89 46 fa 11092 11165 mov dx, ax ; 89 c2 … … 11095 11168 xor cx, cx ; 31 c9 11096 11169 mov ax, si ; 89 f0 11097 call 07 c72h ; e8 8dfc11170 call 0781ah ; e8 ac fc 11098 11171 cmp AL, strict byte 001h ; 3c 01 11099 je short 07 fc9h ; 74 e011172 je short 07b54h ; 74 e2 11100 11173 mov cx, strict word 00020h ; b9 20 00 11101 11174 xor bx, bx ; 31 db 11102 11175 mov ax, di ; 89 f8 11103 11176 mov dx, word [bp-004h] ; 8b 56 fc 11104 call 08 dbbh ; e8 c5 0d11177 call 0885ah ; e8 db 0c 11105 11178 lea ax, [di+00080h] ; 8d 85 80 00 11106 11179 mov cx, strict word 00040h ; b9 40 00 11107 11180 xor bx, bx ; 31 db 11108 11181 mov dx, word [bp-004h] ; 8b 56 fc 11109 call 08 dbbh ; e8 b6 0d11182 call 0885ah ; e8 cc 0c 11110 11183 lea ax, [di+00200h] ; 8d 85 00 02 11111 11184 mov cx, strict word 00060h ; b9 60 00 11112 11185 xor bx, bx ; 31 db 11113 11186 mov dx, word [bp-004h] ; 8b 56 fc 11114 call 08 dbbh ; e8 a7 0d11187 call 0885ah ; e8 bd 0c 11115 11188 mov ax, word [bp-006h] ; 8b 46 fa 11116 11189 add ax, 00108h ; 05 08 01 … … 11207 11280 mov es, [bp-004h] ; 8e 46 fc 11208 11281 mov byte [es:di+00262h], 0ffh ; 26 c6 85 62 02 ff 11209 mov sp, bp ; 89 ec 11210 pop bp ; 5d 11282 leave ; c9 11211 11283 pop di ; 5f 11212 11284 pop si ; 5e … … 11214 11286 pop bx ; 5b 11215 11287 retn ; c3 11216 ahci_port_init_: ; 0xf 80d6 LB 0x20d11288 ahci_port_init_: ; 0xf7c5d LB 0x201 11217 11289 push cx ; 51 11218 11290 push si ; 56 11219 11291 push di ; 57 11220 push bp ; 55 11221 mov bp, sp ; 89 e5 11222 sub sp, strict byte 00006h ; 83 ec 06 11292 enter 00006h, 000h ; c8 06 00 00 11223 11293 mov si, ax ; 89 c6 11224 11294 mov word [bp-004h], dx ; 89 56 fc 11225 11295 mov byte [bp-002h], bl ; 88 5e fe 11226 call 07f8eh ; e8 a4 fe 11227 mov al, bl ; 88 d8 11228 xor ah, ah ; 30 e4 11229 mov CL, strict byte 007h ; b1 07 11230 mov dx, ax ; 89 c2 11231 sal dx, CL ; d3 e2 11296 call 07b1eh ; e8 af fe 11297 movzx dx, bl ; 0f b6 d3 11298 sal dx, 007h ; c1 e2 07 11232 11299 add dx, 00118h ; 81 c2 18 01 11233 11300 mov es, [bp-004h] ; 8e 46 fc … … 11235 11302 mov bx, strict word 00011h ; bb 11 00 11236 11303 xor cx, cx ; 31 c9 11237 call 07c2ch ; e8 24 fb 11238 mov al, byte [bp-002h] ; 8a 46 fe 11239 xor ah, ah ; 30 e4 11240 mov CL, strict byte 007h ; b1 07 11241 mov di, ax ; 89 c7 11242 sal di, CL ; d3 e7 11304 call 077d6h ; e8 4d fb 11305 movzx di, byte [bp-002h] ; 0f b6 7e fe 11306 sal di, 007h ; c1 e7 07 11243 11307 lea dx, [di+00118h] ; 8d 95 18 01 11244 11308 mov es, [bp-004h] ; 8e 46 fc … … 11246 11310 mov bx, 0c011h ; bb 11 c0 11247 11311 xor cx, cx ; 31 c9 11248 call 07 c72h ; e8 4bfb11312 call 0781ah ; e8 76 fb 11249 11313 cmp AL, strict byte 001h ; 3c 01 11250 je short 0 8108h ; 74 dd11314 je short 07c89h ; 74 e1 11251 11315 mov cx, strict word 00020h ; b9 20 00 11252 11316 xor bx, bx ; 31 db 11253 11317 mov ax, si ; 89 f0 11254 11318 mov dx, word [bp-004h] ; 8b 56 fc 11255 call 08 dbbh ; e8 83 0c11319 call 0885ah ; e8 a5 0b 11256 11320 lea ax, [si+00080h] ; 8d 84 80 00 11257 11321 mov cx, strict word 00040h ; b9 40 00 11258 11322 xor bx, bx ; 31 db 11259 11323 mov dx, word [bp-004h] ; 8b 56 fc 11260 call 08 dbbh ; e8 74 0c11324 call 0885ah ; e8 96 0b 11261 11325 mov ax, si ; 89 f0 11262 11326 add ah, 002h ; 80 c4 02 … … 11265 11329 xor bx, bx ; 31 db 11266 11330 mov dx, word [bp-004h] ; 8b 56 fc 11267 call 08 dbbh ; e8 61 0c11331 call 0885ah ; e8 83 0b 11268 11332 lea ax, [di+00108h] ; 8d 85 08 01 11269 11333 cwd ; 99 … … 11279 11343 mov ax, word [bp-006h] ; 8b 46 fa 11280 11344 mov dx, word [bp-004h] ; 8b 56 fc 11281 call 07 cc4h ; e8 47fb11345 call 0786bh ; e8 71 fb 11282 11346 mov es, [bp-004h] ; 8e 46 fc 11283 11347 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 … … 11324 11388 mov ax, si ; 89 f0 11325 11389 mov dx, word [bp-004h] ; 8b 56 fc 11326 call 07 cc4h ; e8 db fa11390 call 0786bh ; e8 05 fb 11327 11391 mov es, [bp-004h] ; 8e 46 fc 11328 11392 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 … … 11423 11487 mov byte [es:si+00262h], al ; 26 88 84 62 02 11424 11488 mov byte [es:si+00263h], 000h ; 26 c6 84 63 02 00 11425 mov sp, bp ; 89 ec 11426 pop bp ; 5d 11489 leave ; c9 11427 11490 pop di ; 5f 11428 11491 pop si ; 5e 11429 11492 pop cx ; 59 11430 11493 retn ; c3 11431 @ahci_read_sectors: ; 0xf 82e3 LB 0x9611494 @ahci_read_sectors: ; 0xf7e5e LB 0x8b 11432 11495 push si ; 56 11433 11496 push di ; 57 11434 11497 push bp ; 55 11435 11498 mov bp, sp ; 89 e5 11436 les bx, [bp+008h] ; c4 5e 08 11437 mov al, byte [es:bx+008h] ; 26 8a 47 08 11438 xor ah, ah ; 30 e4 11439 mov di, ax ; 89 c7 11499 les di, [bp+008h] ; c4 7e 08 11500 movzx di, byte [es:di+008h] ; 26 0f b6 7d 08 11440 11501 sub di, strict byte 0000ch ; 83 ef 0c 11441 11502 cmp di, strict byte 00004h ; 83 ff 04 11442 jbe short 0 830eh ; 76 1311503 jbe short 07e82h ; 76 0f 11443 11504 push di ; 57 11444 mov ax, 00b82h ; b8 82 0b 11445 push ax ; 50 11446 mov ax, 00b94h ; b8 94 0b 11447 push ax ; 50 11448 mov ax, strict word 00007h ; b8 07 00 11449 push ax ; 50 11450 call 018fah ; e8 ef 95 11505 push 00b82h ; 68 82 0b 11506 push 00b94h ; 68 94 0b 11507 push strict byte 00007h ; 6a 07 11508 call 018e9h ; e8 6a 9a 11451 11509 add sp, strict byte 00008h ; 83 c4 08 11452 11510 les bx, [bp+008h] ; c4 5e 08 11453 11511 mov dx, word [es:bx+001eeh] ; 26 8b 97 ee 01 11454 11512 xor ax, ax ; 31 c0 11455 call 07 bc2h ; e8 a7f811513 call 0776eh ; e8 df f8 11456 11514 mov es, [bp+00ah] ; 8e 46 0a 11457 add bx, di ; 01 fb 11458 mov bl, byte [es:bx+001e9h] ; 26 8a 9f e9 01 11459 xor bh, bh ; 30 ff 11515 add di, bx ; 01 df 11516 movzx bx, byte [es:di+001e9h] ; 26 0f b6 9d e9 01 11460 11517 mov di, word [bp+008h] ; 8b 7e 08 11461 11518 mov dx, word [es:di+001eeh] ; 26 8b 95 ee 01 11462 11519 xor ax, ax ; 31 c0 11463 call 0 80d6h ; e8 a2fd11520 call 07c5dh ; e8 b6 fd 11464 11521 mov bx, strict word 00025h ; bb 25 00 11465 11522 mov ax, di ; 89 f8 11466 11523 mov dx, word [bp+00ah] ; 8b 56 0a 11467 call 07dbfh ; e8 80 fa 11468 mov CL, strict byte 009h ; b1 09 11524 call 07959h ; e8 a7 fa 11469 11525 mov es, [bp+00ah] ; 8e 46 0a 11470 11526 mov bx, di ; 89 fb 11471 mov ax, word [es:bx+00ah] ; 26 8b 47 0a 11472 sal ax, CL ; d3 e0 11473 mov cx, ax ; 89 c1 11527 mov cx, word [es:bx+00ah] ; 26 8b 4f 0a 11528 sal cx, 009h ; c1 e1 09 11474 11529 shr cx, 1 ; d1 e9 11475 11530 mov di, word [es:di+004h] ; 26 8b 7d 04 … … 11485 11540 mov dx, word [es:bx+001eeh] ; 26 8b 97 ee 01 11486 11541 xor ax, ax ; 31 c0 11487 call 07 bd6h ; e8 65f811542 call 07782h ; e8 a1 f8 11488 11543 xor ax, ax ; 31 c0 11489 11544 pop bp ; 5d … … 11491 11546 pop si ; 5e 11492 11547 retn 00004h ; c2 04 00 11493 @ahci_write_sectors: ; 0xf 8379 LB 0x6b11548 @ahci_write_sectors: ; 0xf7ee9 LB 0x65 11494 11549 push si ; 56 11495 11550 push bp ; 55 … … 11498 11553 mov cx, word [bp+008h] ; 8b 4e 08 11499 11554 mov es, cx ; 8e c1 11500 mov bl, byte [es:si+008h] ; 26 8a 5c 08 11501 xor bh, bh ; 30 ff 11555 movzx bx, byte [es:si+008h] ; 26 0f b6 5c 08 11502 11556 sub bx, strict byte 0000ch ; 83 eb 0c 11503 11557 cmp bx, strict byte 00004h ; 83 fb 04 11504 jbe short 0 83a6h ; 76 1311558 jbe short 07f11h ; 76 0f 11505 11559 push bx ; 53 11506 mov dx, 00bb3h ; ba b3 0b 11507 push dx ; 52 11508 mov dx, 00b94h ; ba 94 0b 11509 push dx ; 52 11510 mov dx, strict word 00007h ; ba 07 00 11511 push dx ; 52 11512 call 018fah ; e8 57 95 11560 push 00bb3h ; 68 b3 0b 11561 push 00b94h ; 68 94 0b 11562 push strict byte 00007h ; 6a 07 11563 call 018e9h ; e8 db 99 11513 11564 add sp, strict byte 00008h ; 83 c4 08 11514 11565 mov es, cx ; 8e c1 11515 11566 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 11516 11567 xor ax, ax ; 31 c0 11517 call 07 bc2h ; e8 10f811568 call 0776eh ; e8 51 f8 11518 11569 mov es, cx ; 8e c1 11519 11570 add bx, si ; 01 f3 11520 mov bl, byte [es:bx+001e9h] ; 26 8a 9f e9 01 11521 xor bh, bh ; 30 ff 11571 movzx bx, byte [es:bx+001e9h] ; 26 0f b6 9f e9 01 11522 11572 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 11523 11573 xor ax, ax ; 31 c0 11524 call 0 80d6h ; e8 0ffd11574 call 07c5dh ; e8 2c fd 11525 11575 mov bx, strict word 00035h ; bb 35 00 11526 11576 mov ax, si ; 89 f0 11527 11577 mov dx, cx ; 89 ca 11528 call 07 dbfh ; e8 ee f911578 call 07959h ; e8 1e fa 11529 11579 mov es, cx ; 8e c1 11530 11580 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 11531 11581 xor ax, ax ; 31 c0 11532 call 07 bd6h ; e8 f9 f711582 call 07782h ; e8 3b f8 11533 11583 xor ax, ax ; 31 c0 11534 11584 pop bp ; 5d 11535 11585 pop si ; 5e 11536 11586 retn 00004h ; c2 04 00 11537 ahci_cmd_packet_: ; 0xf 83e4 LB 0x17811587 ahci_cmd_packet_: ; 0xf7f4e LB 0x16e 11538 11588 push si ; 56 11539 11589 push di ; 57 11540 push bp ; 55 11541 mov bp, sp ; 89 e5 11542 sub sp, strict byte 0000eh ; 83 ec 0e 11590 enter 0000eh, 000h ; c8 0e 00 00 11543 11591 push ax ; 50 11544 11592 mov byte [bp-002h], dl ; 88 56 fe … … 11547 11595 mov dx, strict word 0000eh ; ba 0e 00 11548 11596 mov ax, strict word 00040h ; b8 40 00 11549 call 0161ch ; e8 1d 9211597 call 0161ch ; e8 b5 96 11550 11598 mov si, 00122h ; be 22 01 11551 11599 mov word [bp-004h], ax ; 89 46 fc 11552 11600 cmp byte [bp+00eh], 002h ; 80 7e 0e 02 11553 jne short 0 842eh ; 75 2311554 mov bx, 00c 16h ; bb 160c11601 jne short 07f92h ; 75 1f 11602 mov bx, 00c08h ; bb 08 0c 11555 11603 mov cx, ds ; 8c d9 11556 11604 mov ax, strict word 00004h ; b8 04 00 11557 call 018bdh ; e8 a7 94 11558 mov ax, 00bc6h ; b8 c6 0b 11559 push ax ; 50 11560 mov ax, 00bd6h ; b8 d6 0b 11561 push ax ; 50 11562 mov ax, strict word 00004h ; b8 04 00 11563 push ax ; 50 11564 call 018fah ; e8 d5 94 11605 call 018aeh ; e8 30 99 11606 push 00bc6h ; 68 c6 0b 11607 push 00bd6h ; 68 d6 0b 11608 push strict byte 00004h ; 6a 04 11609 call 018e9h ; e8 60 99 11565 11610 add sp, strict byte 00006h ; 83 c4 06 11566 11611 mov ax, strict word 00001h ; b8 01 00 11567 jmp near 08 554h ; e9 260111612 jmp near 080b6h ; e9 24 01 11568 11613 test byte [bp+008h], 001h ; f6 46 08 01 11569 jne short 0 8428h ; 75 f411570 mov bx, word [bp+00ah] ; 8b 5e0a11571 mov d i, word [bp+00ch] ; 8b 7e0c11614 jne short 07f8ch ; 75 f4 11615 mov ax, word [bp+00ah] ; 8b 46 0a 11616 mov dx, word [bp+00ch] ; 8b 56 0c 11572 11617 mov cx, strict word 00008h ; b9 08 00 11573 sal bx, 1 ; d1 e311574 rcl d i, 1 ; d1 d711575 loop 0 843dh ; e2 fa11618 sal ax, 1 ; d1 e0 11619 rcl dx, 1 ; d1 d2 11620 loop 07fa1h ; e2 fa 11576 11621 mov es, [bp-004h] ; 8e 46 fc 11577 mov word [es:si], bx ; 26 89 1c11578 mov word [es:si+002h], d i ; 26 89 7c0211622 mov word [es:si], ax ; 26 89 04 11623 mov word [es:si+002h], dx ; 26 89 54 02 11579 11624 mov ax, word [bp+010h] ; 8b 46 10 11580 11625 mov word [es:si+004h], ax ; 26 89 44 04 … … 11585 11630 mov dx, word [bp+00ch] ; 8b 56 0c 11586 11631 xor cx, cx ; 31 c9 11587 call 08 d37h ; e8 cd0811632 call 087f0h ; e8 22 08 11588 11633 mov word [es:si+00ah], ax ; 26 89 44 0a 11589 11634 xor di, di ; 31 ff … … 11595 11640 xor ax, ax ; 31 c0 11596 11641 mov dx, word [bp-006h] ; 8b 56 fa 11597 call 07 bc2h ; e8 38f711642 call 0776eh ; e8 80 f7 11598 11643 mov es, [bp-004h] ; 8e 46 fc 11599 11644 mov bx, word [bp-010h] ; 8b 5e f0 11600 11645 add bx, si ; 01 f3 11601 mov bl, byte [es:bx+001e9h] ; 26 8a 9f e9 01 11602 xor bh, bh ; 30 ff 11646 movzx bx, byte [es:bx+001e9h] ; 26 0f b6 9f e9 01 11603 11647 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 11604 11648 xor ax, ax ; 31 c0 11605 call 080d6h ; e8 33 fc 11606 mov al, byte [bp-002h] ; 8a 46 fe 11607 xor ah, ah ; 30 e4 11649 call 07c5dh ; e8 57 fc 11650 movzx ax, byte [bp-002h] ; 0f b6 46 fe 11608 11651 push ax ; 50 11609 11652 mov bx, word [bp-00eh] ; 8b 5e f2 … … 11611 11654 mov ax, 000c0h ; b8 c0 00 11612 11655 mov dx, word [bp-006h] ; 8b 56 fa 11613 call 08 deah ; e8 32 0911656 call 08867h ; e8 4d 08 11614 11657 mov es, [bp-004h] ; 8e 46 fc 11615 11658 mov word [es:si+014h], di ; 26 89 7c 14 … … 11618 11661 mov ax, word [es:si+01ah] ; 26 8b 44 1a 11619 11662 test ax, ax ; 85 c0 11620 je short 08 4f6h ; 74 2711663 je short 08058h ; 74 27 11621 11664 dec ax ; 48 11622 11665 mov es, [bp-006h] ; 8e 46 fa … … 11631 11674 mov ax, si ; 89 f0 11632 11675 mov dx, word [bp-004h] ; 8b 56 fc 11633 call 07 dbfh ; e8 bef811676 call 07959h ; e8 f6 f8 11634 11677 les bx, [bp-00ah] ; c4 5e f6 11635 11678 mov ax, word [es:bx+004h] ; 26 8b 47 04 … … 11654 11697 mov ax, word [bp-00ah] ; 8b 46 f6 11655 11698 mov dx, word [bp-008h] ; 8b 56 f8 11656 call 07 bd6h ; e8 96f611699 call 07782h ; e8 e0 f6 11657 11700 les bx, [bp-00ah] ; c4 5e f6 11658 11701 mov ax, word [es:bx+006h] ; 26 8b 47 06 11659 11702 or ax, word [es:bx+004h] ; 26 0b 47 04 11660 jne short 08 552h ; 75 0511703 jne short 080b4h ; 75 05 11661 11704 mov ax, strict word 00004h ; b8 04 00 11662 jmp short 08 554h ; eb 0211705 jmp short 080b6h ; eb 02 11663 11706 xor ax, ax ; 31 c0 11664 mov sp, bp ; 89 ec 11665 pop bp ; 5d 11707 leave ; c9 11666 11708 pop di ; 5f 11667 11709 pop si ; 5e 11668 11710 retn 0000ch ; c2 0c 00 11669 ahci_port_detect_device_: ; 0xf8 55c LB 0x3a011711 ahci_port_detect_device_: ; 0xf80bc LB 0x368 11670 11712 push cx ; 51 11671 11713 push si ; 56 11672 11714 push di ; 57 11673 push bp ; 55 11674 mov bp, sp ; 89 e5 11675 sub sp, 0021ah ; 81 ec 1a 02 11715 enter 00218h, 000h ; c8 18 02 00 11676 11716 mov di, ax ; 89 c7 11677 11717 mov word [bp-014h], dx ; 89 56 ec 11678 11718 mov byte [bp-004h], bl ; 88 5e fc 11679 mov al, bl ; 88 d8 11680 mov byte [bp-016h], bl ; 88 5e ea 11681 xor al, bl ; 30 d8 11682 mov byte [bp-015h], al ; 88 46 eb 11683 mov bx, word [bp-016h] ; 8b 5e ea 11684 mov ax, di ; 89 f8 11685 call 080d6h ; e8 56 fb 11719 movzx cx, bl ; 0f b6 cb 11720 mov bx, cx ; 89 cb 11721 call 07c5dh ; e8 8a fb 11686 11722 mov dx, strict word 0000eh ; ba 0e 00 11687 11723 mov ax, strict word 00040h ; b8 40 00 11688 call 0161ch ; e8 93 9011689 mov word [bp-01 0h], ax ; 89 46 f011724 call 0161ch ; e8 40 95 11725 mov word [bp-016h], ax ; 89 46 ea 11690 11726 mov si, 00122h ; be 22 01 11691 mov word [bp-012h], ax ; 89 46 ee 11692 mov word [bp-01ah], si ; 89 76 e6 11693 mov word [bp-018h], ax ; 89 46 e8 11694 mov CL, strict byte 007h ; b1 07 11695 mov ax, word [bp-016h] ; 8b 46 ea 11696 sal ax, CL ; d3 e0 11697 mov word [bp-00eh], ax ; 89 46 f2 11727 mov word [bp-008h], ax ; 89 46 f8 11728 mov word [bp-00ch], si ; 89 76 f4 11729 mov word [bp-00ah], ax ; 89 46 f6 11730 sal cx, 007h ; c1 e1 07 11731 mov word [bp-00eh], cx ; 89 4e f2 11732 mov ax, cx ; 89 c8 11698 11733 add ax, 0012ch ; 05 2c 01 11699 11734 cwd ; 99 11700 mov word [bp-01 6h], ax ; 89 46 ea11735 mov word [bp-018h], ax ; 89 46 e8 11701 11736 mov bx, dx ; 89 d3 11702 11737 mov es, [bp-014h] ; 8e 46 ec … … 11720 11755 mov es, [bp-014h] ; 8e 46 ec 11721 11756 mov dx, word [es:di+00260h] ; 26 8b 95 60 02 11722 mov ax, word [bp-01 6h] ; 8b 46 ea11757 mov ax, word [bp-018h] ; 8b 46 e8 11723 11758 mov cx, bx ; 89 d9 11724 11759 xchg cx, ax ; 91 … … 11757 11792 shr eax, 010h ; 66 c1 e8 10 11758 11793 xchg dx, ax ; 92 11759 xor bx, bx ; 31 db 11760 push bx ; 53 11794 push strict byte 00000h ; 6a 00 11761 11795 mov bx, strict word 0000fh ; bb 0f 00 11762 11796 xor cx, cx ; 31 c9 11763 call 07 ca8h ; e8 68f611797 call 07850h ; e8 c0 f6 11764 11798 cmp ax, strict word 00003h ; 3d 03 00 11765 je short 08648h ; 74 03 11766 jmp near 088f5h ; e9 ad 02 11767 mov es, [bp-012h] ; 8e 46 ee 11799 jne near 0841fh ; 0f 85 88 02 11800 mov es, [bp-008h] ; 8e 46 f8 11768 11801 mov al, byte [es:si+001edh] ; 26 8a 84 ed 01 11769 mov byte [bp-00 2h], al ; 88 46 fe11802 mov byte [bp-006h], al ; 88 46 fa 11770 11803 cmp AL, strict byte 004h ; 3c 04 11771 jnc short 08645h ; 73 ee11804 jnc near 0841fh ; 0f 83 77 02 11772 11805 mov dx, word [bp-00eh] ; 8b 56 f2 11773 11806 add dx, 00118h ; 81 c2 18 01 … … 11776 11809 mov bx, strict word 00010h ; bb 10 00 11777 11810 xor cx, cx ; 31 c9 11778 call 07 beah ; e8 7cf511811 call 07796h ; e8 d7 f5 11779 11812 mov ax, word [bp-00eh] ; 8b 46 f2 11780 11813 add ax, 00124h ; 05 24 01 … … 11797 11830 shr eax, 010h ; 66 c1 e8 10 11798 11831 xchg dx, ax ; 92 11799 mov cl, byte [bp-00 2h] ; 8a 4e fe11832 mov cl, byte [bp-006h] ; 8a 4e fa 11800 11833 add cl, 00ch ; 80 c1 0c 11801 11834 test dx, dx ; 85 d2 11802 jne short 086eah ; 75 4211835 jne near 0837ch ; 0f 85 81 01 11803 11836 cmp ax, 00101h ; 3d 01 01 11804 jne short 086eah ; 75 3d11805 mov es, [bp-0 12h] ; 8e 46 ee11806 mov word [es:si], strict word 00000h ; 26 c7 04 00 0011807 mov word [es:si+002h], strict word 00000h ; 26 c7 44 0200 0011808 lea dx, [bp-0021 ah] ; 8d 96 e6fd11837 jne near 0837ch ; 0f 85 7a 01 11838 mov es, [bp-008h] ; 8e 46 f8 11839 db 066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h 11840 ; mov dword [es:si], strict dword 000000000h ; 66 26 c7 04 00 00 00 00 11841 lea dx, [bp-00218h] ; 8d 96 e8 fd 11809 11842 mov word [es:si+004h], dx ; 26 89 54 04 11810 11843 mov [es:si+006h], ss ; 26 8c 54 06 11811 mov word [es:si+00ah], strict word 00001h ; 26 c7 44 0a 01 0011812 mov word [es:si+00ch], 00200h ; 26 c7 44 0c00 0211844 db 066h, 026h, 0c7h, 044h, 00ah, 001h, 000h, 000h, 002h 11845 ; mov dword [es:si+00ah], strict dword 002000001h ; 66 26 c7 44 0a 01 00 00 02 11813 11846 mov bx, 000ech ; bb ec 00 11814 11847 mov ax, si ; 89 f0 11815 mov dx, word [bp-010h] ; 8b 56 f0 11816 call 07dbfh ; e8 e1 f6 11817 test byte [bp-0021ah], 080h ; f6 86 e6 fd 80 11818 je short 086edh ; 74 08 11819 mov ax, strict word 00001h ; b8 01 00 11820 jmp short 086efh ; eb 05 11821 jmp near 0883fh ; e9 52 01 11822 xor ax, ax ; 31 c0 11823 mov ch, al ; 88 c5 11824 mov ax, word [bp-00218h] ; 8b 86 e8 fd 11825 mov word [bp-00ch], ax ; 89 46 f4 11826 mov ax, word [bp-00214h] ; 8b 86 ec fd 11827 mov word [bp-008h], ax ; 89 46 f8 11828 mov di, word [bp-0020eh] ; 8b be f2 fd 11829 mov ax, word [bp-001a2h] ; 8b 86 5e fe 11830 mov word [bp-006h], ax ; 89 46 fa 11831 mov bx, word [bp-001a0h] ; 8b 9e 60 fe 11848 mov dx, word [bp-016h] ; 8b 56 ea 11849 call 07959h ; e8 2c f7 11850 mov dh, cl ; 88 ce 11851 test byte [bp-00218h], 080h ; f6 86 e8 fd 80 11852 db 00fh, 095h, 0c0h 11853 ; setne al ; 0f 95 c0 11854 xor ah, ah ; 30 e4 11855 mov byte [bp-002h], al ; 88 46 fe 11856 mov ax, word [bp-00216h] ; 8b 86 ea fd 11857 mov word [bp-010h], ax ; 89 46 f0 11858 mov di, word [bp-00212h] ; 8b be ee fd 11859 mov cx, word [bp-0020ch] ; 8b 8e f4 fd 11860 mov ax, word [bp-001a0h] ; 8b 86 60 fe 11861 mov bx, word [bp-0019eh] ; 8b 9e 62 fe 11862 mov word [bp-012h], bx ; 89 5e ee 11832 11863 cmp bx, 00fffh ; 81 fb ff 0f 11833 jne short 08 722h ; 75 0e11864 jne short 0826ah ; 75 0e 11834 11865 cmp ax, strict word 0ffffh ; 3d ff ff 11835 jne short 08722h ; 75 09 11836 mov ax, word [bp-00152h] ; 8b 86 ae fe 11837 mov word [bp-006h], ax ; 89 46 fa 11838 xor bx, bx ; 31 db 11839 mov al, byte [bp-002h] ; 8a 46 fe 11840 xor ah, ah ; 30 e4 11841 les si, [bp-01ah] ; c4 76 e6 11842 add si, ax ; 01 c6 11843 mov al, byte [bp-004h] ; 8a 46 fc 11844 mov byte [es:si+001e9h], al ; 26 88 84 e9 01 11845 mov al, cl ; 88 c8 11846 mov dx, strict word 00018h ; ba 18 00 11847 imul dx ; f7 ea 11848 mov si, word [bp-01ah] ; 8b 76 e6 11849 add si, ax ; 01 c6 11866 jne short 0826ah ; 75 09 11867 mov ax, word [bp-00150h] ; 8b 86 b0 fe 11868 mov word [bp-012h], strict word 00000h ; c7 46 ee 00 00 11869 movzx bx, byte [bp-006h] ; 0f b6 5e fa 11870 mov es, [bp-00ah] ; 8e 46 f6 11871 add bx, word [bp-00ch] ; 03 5e f4 11872 mov dl, byte [bp-004h] ; 8a 56 fc 11873 mov byte [es:bx+001e9h], dl ; 26 88 97 e9 01 11874 movzx bx, dh ; 0f b6 de 11875 imul bx, bx, strict byte 00018h ; 6b db 18 11876 mov si, word [bp-00ch] ; 8b 76 f4 11877 add si, bx ; 01 de 11850 11878 mov word [es:si+01eh], 0ff05h ; 26 c7 44 1e 05 ff 11851 mov byte [es:si+020h], ch ; 26 88 6c 20 11879 mov dl, byte [bp-002h] ; 8a 56 fe 11880 mov byte [es:si+020h], dl ; 26 88 54 20 11852 11881 mov byte [es:si+021h], 000h ; 26 c6 44 21 00 11853 11882 mov word [es:si+024h], 00200h ; 26 c7 44 24 00 02 11854 11883 mov byte [es:si+023h], 001h ; 26 c6 44 23 01 11855 mov ax, word [bp-006h] ; 8b 46 fa11856 11884 mov word [es:si+032h], ax ; 26 89 44 32 11857 mov word [es:si+034h], bx ; 26 89 5c 3411858 mov ax, word [bp-008h] ; 8b 46 f811859 mov word [es:si+02ch], ax ; 26 89 442c11860 mov ax, word [bp-0 0ch] ; 8b 46 f411885 mov ax, word [bp-012h] ; 8b 46 ee 11886 mov word [es:si+034h], ax ; 26 89 44 34 11887 mov word [es:si+02ch], di ; 26 89 7c 2c 11888 mov ax, word [bp-010h] ; 8b 46 f0 11861 11889 mov word [es:si+02eh], ax ; 26 89 44 2e 11862 mov word [es:si+030h], di ; 26 89 7c 3011863 mov al, byte [bp-00 2h] ; 8a 46 fe11890 mov word [es:si+030h], cx ; 26 89 4c 30 11891 mov al, byte [bp-006h] ; 8a 46 fa 11864 11892 cmp AL, strict byte 001h ; 3c 01 11865 jc short 08 78ah ; 72 0c11866 jbe short 08 792h ; 76 1211893 jc short 082d1h ; 72 0c 11894 jbe short 082d9h ; 76 12 11867 11895 cmp AL, strict byte 003h ; 3c 03 11868 je short 08 79ah ; 74 1611896 je short 082e1h ; 74 16 11869 11897 cmp AL, strict byte 002h ; 3c 02 11870 je short 08 796h ; 74 0e11871 jmp short 08 7e1h ; eb 5711898 je short 082ddh ; 74 0e 11899 jmp short 08323h ; eb 52 11872 11900 test al, al ; 84 c0 11873 jne short 08 7e1h ; 75 5311901 jne short 08323h ; 75 4e 11874 11902 mov DL, strict byte 040h ; b2 40 11875 jmp short 08 79ch ; eb 0a11903 jmp short 082e3h ; eb 0a 11876 11904 mov DL, strict byte 048h ; b2 48 11877 jmp short 08 79ch ; eb 0611905 jmp short 082e3h ; eb 06 11878 11906 mov DL, strict byte 050h ; b2 50 11879 jmp short 08 79ch ; eb 0211907 jmp short 082e3h ; eb 02 11880 11908 mov DL, strict byte 058h ; b2 58 11881 mov bl, dl ; 88 d311882 add bl, 007h ; 80 c30711883 xor bh, bh ; 30 ff11909 mov al, dl ; 88 d0 11910 add AL, strict byte 007h ; 04 07 11911 movzx bx, al ; 0f b6 d8 11884 11912 mov ax, bx ; 89 d8 11885 call 0165ch ; e8 b4 8e11913 call 0165ch ; e8 6d 93 11886 11914 test al, al ; 84 c0 11887 je short 08 7e1h ; 74 3511915 je short 08323h ; 74 30 11888 11916 mov al, dl ; 88 d0 11889 11917 db 0feh, 0c0h 11890 11918 ; inc al ; fe c0 11891 11919 xor ah, ah ; 30 e4 11892 call 0165ch ; e8 a7 8e 11893 mov byte [bp-015h], al ; 88 46 eb 11894 mov byte [bp-016h], bh ; 88 7e ea 11895 mov al, dl ; 88 d0 11920 call 0165ch ; e8 60 93 11921 movzx cx, al ; 0f b6 c8 11922 sal cx, 008h ; c1 e1 08 11923 movzx ax, dl ; 0f b6 c2 11924 call 0165ch ; e8 54 93 11896 11925 xor ah, ah ; 30 e4 11897 call 0165ch ; e8 9a 8e 11898 xor ah, ah ; 30 e4 11899 mov si, word [bp-016h] ; 8b 76 ea 11900 add si, ax ; 01 c6 11901 mov word [bp-00ch], si ; 89 76 f4 11926 add ax, cx ; 01 c8 11927 mov word [bp-010h], ax ; 89 46 f0 11902 11928 mov al, dl ; 88 d0 11903 11929 add AL, strict byte 002h ; 04 02 11904 call 0165ch ; e8 89 8e11905 11930 xor ah, ah ; 30 e4 11906 mov word [bp-008h], ax ; 89 46 f8 11931 call 0165ch ; e8 44 93 11932 movzx di, al ; 0f b6 f8 11907 11933 mov ax, bx ; 89 d8 11908 call 0165ch ; e8 7f 8e 11909 xor ah, ah ; 30 e4 11910 mov di, ax ; 89 c7 11911 mov al, cl ; 88 c8 11912 xor ah, ah ; 30 e4 11913 mov dx, strict word 00018h ; ba 18 00 11914 imul dx ; f7 ea 11915 les si, [bp-01ah] ; c4 76 e6 11916 add si, ax ; 01 c6 11917 mov ax, word [bp-008h] ; 8b 46 f8 11918 mov word [es:si+026h], ax ; 26 89 44 26 11919 mov ax, word [bp-00ch] ; 8b 46 f4 11934 call 0165ch ; e8 3c 93 11935 movzx cx, al ; 0f b6 c8 11936 movzx si, dh ; 0f b6 f6 11937 imul si, si, strict byte 00018h ; 6b f6 18 11938 mov es, [bp-00ah] ; 8e 46 f6 11939 add si, word [bp-00ch] ; 03 76 f4 11940 mov word [es:si+026h], di ; 26 89 7c 26 11941 mov ax, word [bp-010h] ; 8b 46 f0 11920 11942 mov word [es:si+028h], ax ; 26 89 44 28 11921 mov word [es:si+02ah], di ; 26 89 7c 2a11922 mov bx, word [bp-0 1ah] ; 8b 5e e611943 mov word [es:si+02ah], cx ; 26 89 4c 2a 11944 mov bx, word [bp-00ch] ; 8b 5e f4 11923 11945 mov dl, byte [es:bx+0019eh] ; 26 8a 97 9e 01 11924 mov al, byte [bp-00 2h] ; 8a 46 fe11946 mov al, byte [bp-006h] ; 8a 46 fa 11925 11947 add AL, strict byte 00ch ; 04 0c 11926 mov bl, dl ; 88 d3 11927 xor bh, bh ; 30 ff 11928 add bx, word [bp-01ah] ; 03 5e e6 11948 movzx bx, dl ; 0f b6 da 11949 add bx, word [bp-00ch] ; 03 5e f4 11929 11950 mov byte [es:bx+0019fh], al ; 26 88 87 9f 01 11930 11951 db 0feh, 0c2h 11931 11952 ; inc dl ; fe c2 11932 mov bx, word [bp-0 1ah] ; 8b 5e e611953 mov bx, word [bp-00ch] ; 8b 5e f4 11933 11954 mov byte [es:bx+0019eh], dl ; 26 88 97 9e 01 11934 11955 mov dx, strict word 00075h ; ba 75 00 11935 11956 mov ax, strict word 00040h ; b8 40 00 11936 call 01600h ; e8 d3 8d11937 mov bl, al ; 88 c311938 db 0feh, 0c 3h11939 ; inc bl ; fe c311940 xor bh, bh ; 30 ff11957 call 01600h ; e8 97 92 11958 mov dl, al ; 88 c2 11959 db 0feh, 0c2h 11960 ; inc dl ; fe c2 11961 movzx bx, dl ; 0f b6 da 11941 11962 mov dx, strict word 00075h ; ba 75 00 11942 11963 mov ax, strict word 00040h ; b8 40 00 11943 call 0160eh ; e8 d2 8d11944 jmp near 08 8e7h ; e9 a80011964 call 0160eh ; e8 95 92 11965 jmp near 08411h ; e9 95 00 11945 11966 cmp dx, 0eb14h ; 81 fa 14 eb 11946 jne short 08889h ; 75 4411967 jne near 08411h ; 0f 85 8d 00 11947 11968 cmp ax, 00101h ; 3d 01 01 11948 jne short 08889h ; 75 3f11949 mov es, [bp-0 12h] ; 8e 46 ee11950 mov word [es:si], strict word 00000h ; 26 c7 04 00 0011951 mov word [es:si+002h], strict word 00000h ; 26 c7 44 0200 0011952 lea dx, [bp-0021 ah] ; 8d 96 e6fd11969 jne near 08411h ; 0f 85 86 00 11970 mov es, [bp-008h] ; 8e 46 f8 11971 db 066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h 11972 ; mov dword [es:si], strict dword 000000000h ; 66 26 c7 04 00 00 00 00 11973 lea dx, [bp-00218h] ; 8d 96 e8 fd 11953 11974 mov word [es:si+004h], dx ; 26 89 54 04 11954 11975 mov [es:si+006h], ss ; 26 8c 54 06 11955 mov word [es:si+00ah], strict word 00001h ; 26 c7 44 0a 01 0011956 mov word [es:si+00ch], 00200h ; 26 c7 44 0c00 0211976 db 066h, 026h, 0c7h, 044h, 00ah, 001h, 000h, 000h, 002h 11977 ; mov dword [es:si+00ah], strict dword 002000001h ; 66 26 c7 44 0a 01 00 00 02 11957 11978 mov bx, 000a1h ; bb a1 00 11958 11979 mov ax, si ; 89 f0 11959 mov dx, word [bp-010h] ; 8b 56 f0 11960 call 07dbfh ; e8 44 f5 11961 test byte [bp-0021ah], 080h ; f6 86 e6 fd 80 11962 je short 0888bh ; 74 09 11963 mov word [bp-00ah], strict word 00001h ; c7 46 f6 01 00 11964 jmp short 08890h ; eb 07 11965 jmp short 088e7h ; eb 5c 11966 mov word [bp-00ah], strict word 00000h ; c7 46 f6 00 00 11967 mov bl, byte [bp-002h] ; 8a 5e fe 11968 xor bh, bh ; 30 ff 11969 mov es, [bp-018h] ; 8e 46 e8 11970 add bx, word [bp-01ah] ; 03 5e e6 11971 mov al, byte [bp-004h] ; 8a 46 fc 11972 mov byte [es:bx+001e9h], al ; 26 88 87 e9 01 11973 mov al, cl ; 88 c8 11980 mov dx, word [bp-016h] ; 8b 56 ea 11981 call 07959h ; e8 a3 f5 11982 test byte [bp-00218h], 080h ; f6 86 e8 fd 80 11983 db 00fh, 095h, 0c0h 11984 ; setne al ; 0f 95 c0 11974 11985 xor ah, ah ; 30 e4 11975 mov dx, strict word 00018h ; ba 18 00 11976 imul dx ; f7 ea 11977 mov si, word [bp-01ah] ; 8b 76 e6 11978 add si, ax ; 01 c6 11986 movzx bx, byte [bp-006h] ; 0f b6 5e fa 11987 mov es, [bp-016h] ; 8e 46 ea 11988 add bx, si ; 01 f3 11989 mov ah, byte [bp-004h] ; 8a 66 fc 11990 mov byte [es:bx+001e9h], ah ; 26 88 a7 e9 01 11991 movzx si, cl ; 0f b6 f1 11992 imul si, si, strict byte 00018h ; 6b f6 18 11993 add si, 00122h ; 81 c6 22 01 11979 11994 mov word [es:si+01eh], 00505h ; 26 c7 44 1e 05 05 11980 mov al, byte [bp-00ah] ; 8a 46 f611981 11995 mov byte [es:si+020h], al ; 26 88 44 20 11982 11996 mov word [es:si+024h], 00800h ; 26 c7 44 24 00 08 11983 mov bx, word [bp-01ah] ; 8b 5e e611997 les bx, [bp-00ch] ; c4 5e f4 11984 11998 mov dl, byte [es:bx+001afh] ; 26 8a 97 af 01 11985 mov al, byte [bp-00 2h] ; 8a 46 fe11999 mov al, byte [bp-006h] ; 8a 46 fa 11986 12000 add AL, strict byte 00ch ; 04 0c 11987 mov bl, dl ; 88 d311988 xor bh, bh ; 30 ff11989 add bx, word [bp-01ah] ; 03 5e e612001 movzx bx, dl ; 0f b6 da 12002 mov es, [bp-016h] ; 8e 46 ea 12003 add bx, 00122h ; 81 c3 22 01 11990 12004 mov byte [es:bx+001b0h], al ; 26 88 87 b0 01 11991 12005 db 0feh, 0c2h 11992 12006 ; inc dl ; fe c2 11993 mov bx, word [bp-01ah] ; 8b 5e e612007 les bx, [bp-00ch] ; c4 5e f4 11994 12008 mov byte [es:bx+001afh], dl ; 26 88 97 af 01 11995 inc byte [bp-00 2h] ; fe 46 fe11996 mov al, byte [bp-00 2h] ; 8a 46 fe11997 les bx, [bp-0 1ah] ; c4 5e e612009 inc byte [bp-006h] ; fe 46 fa 12010 mov al, byte [bp-006h] ; 8a 46 fa 12011 les bx, [bp-00ch] ; c4 5e f4 11998 12012 mov byte [es:bx+001edh], al ; 26 88 87 ed 01 11999 mov sp, bp ; 89 ec 12000 pop bp ; 5d 12013 leave ; c9 12001 12014 pop di ; 5f 12002 12015 pop si ; 5e 12003 12016 pop cx ; 59 12004 12017 retn ; c3 12005 ahci_mem_alloc_: ; 0xf8 8fcLB 0x4012018 ahci_mem_alloc_: ; 0xf8424 LB 0x40 12006 12019 push bx ; 53 12007 12020 push cx ; 51 … … 12013 12026 mov dx, 00413h ; ba 13 04 12014 12027 xor ax, ax ; 31 c0 12015 call 0161ch ; e8 10 8d12028 call 0161ch ; e8 e8 91 12016 12029 test ax, ax ; 85 c0 12017 je short 08 935h ; 74 2512030 je short 0845dh ; 74 25 12018 12031 dec ax ; 48 12019 12032 mov bx, ax ; 89 c3 … … 12022 12035 sal ax, 1 ; d1 e0 12023 12036 rcl dx, 1 ; d1 d2 12024 loop 08 918h ; e2 fa12037 loop 08440h ; e2 fa 12025 12038 mov si, ax ; 89 c6 12026 12039 mov di, dx ; 89 d7 … … 12028 12041 shr di, 1 ; d1 ef 12029 12042 rcr si, 1 ; d1 de 12030 loop 08 925h ; e2 fa12043 loop 0844dh ; e2 fa 12031 12044 mov dx, 00413h ; ba 13 04 12032 12045 xor ax, ax ; 31 c0 12033 call 0162ah ; e8 f7 8c12046 call 0162ah ; e8 cf 91 12034 12047 mov ax, si ; 89 f0 12035 12048 pop bp ; 5d … … 12040 12053 pop bx ; 5b 12041 12054 retn ; c3 12042 ahci_hba_init_: ; 0xf8 93c LB 0x12c12055 ahci_hba_init_: ; 0xf8464 LB 0x120 12043 12056 push bx ; 53 12044 12057 push cx ; 51 … … 12046 12059 push si ; 56 12047 12060 push di ; 57 12048 push bp ; 55 12049 mov bp, sp ; 89 e5 12050 sub sp, strict byte 00006h ; 83 ec 06 12061 enter 00006h, 000h ; c8 06 00 00 12051 12062 mov si, ax ; 89 c6 12052 12063 mov dx, strict word 0000eh ; ba 0e 00 12053 12064 mov ax, strict word 00040h ; b8 40 00 12054 call 0161ch ; e8 ca 8c12065 call 0161ch ; e8 a4 91 12055 12066 mov bx, 00122h ; bb 22 01 12056 12067 mov word [bp-006h], ax ; 89 46 fa … … 12069 12080 shr eax, 010h ; 66 c1 e8 10 12070 12081 xchg dx, ax ; 92 12071 call 08 8fch ; e8 85ff12082 call 08424h ; e8 87 ff 12072 12083 mov di, ax ; 89 c7 12073 12084 test ax, ax ; 85 c0 12074 jne short 08980h ; 75 03 12075 jmp near 08a48h ; e9 c8 00 12085 je near 08566h ; 0f 84 c1 00 12076 12086 mov es, [bp-006h] ; 8e 46 fa 12077 12087 mov word [es:bx+001eeh], di ; 26 89 bf ee 01 … … 12081 12091 mov byte [es:bx+00262h], 0ffh ; 26 c6 87 62 02 ff 12082 12092 mov word [es:bx+00260h], si ; 26 89 b7 60 02 12083 mov word [es:bx+00264h], 0c000h ; 26 c7 87 64 02 00 c012084 mov word [es:bx+00266h], strict word 0000ch ; 26 c7 87 66 020c 0012093 db 066h, 026h, 0c7h, 087h, 064h, 002h, 000h, 0c0h, 00ch, 000h 12094 ; mov dword [es:bx+00264h], strict dword 0000cc000h ; 66 26 c7 87 64 02 00 c0 0c 00 12085 12095 mov bx, strict word 00001h ; bb 01 00 12086 12096 xor cx, cx ; 31 c9 12087 12097 mov dx, strict word 00004h ; ba 04 00 12088 12098 mov ax, si ; 89 f0 12089 call 07 beah ; e8 32f212099 call 07796h ; e8 bd f2 12090 12100 mov ax, strict word 00004h ; b8 04 00 12091 12101 xor cx, cx ; 31 c9 … … 12104 12114 xchg dx, ax ; 92 12105 12115 test AL, strict byte 001h ; a8 01 12106 jne short 08 9b8h ; 75 de12116 jne short 084d9h ; 75 de 12107 12117 xor ax, ax ; 31 c0 12108 12118 xor cx, cx ; 31 c9 … … 12119 12129 shr eax, 010h ; 66 c1 e8 10 12120 12130 xchg dx, ax ; 92 12121 xor bx, bx ; 31 db 12122 push bx ; 53 12131 push strict byte 00000h ; 6a 00 12123 12132 mov bx, strict word 0001fh ; bb 1f 00 12124 12133 xor cx, cx ; 31 c9 12125 call 07 ca8h ; e8 a9 f212134 call 07850h ; e8 31 f3 12126 12135 db 0feh, 0c0h 12127 12136 ; inc al ; fe c0 12128 mov byte [bp-002h], al ; 88 46 fe 12129 mov byte [bp-004h], 000h ; c6 46 fc 00 12130 jmp short 08a13h ; eb 09 12131 inc byte [bp-004h] ; fe 46 fc 12132 cmp byte [bp-004h], 020h ; 80 7e fc 20 12133 jnc short 08a46h ; 73 33 12134 mov cl, byte [bp-004h] ; 8a 4e fc 12135 xor ch, ch ; 30 ed 12137 mov byte [bp-004h], al ; 88 46 fc 12138 mov byte [bp-002h], 000h ; c6 46 fe 00 12139 jmp short 08533h ; eb 09 12140 inc byte [bp-002h] ; fe 46 fe 12141 cmp byte [bp-002h], 020h ; 80 7e fe 20 12142 jnc short 08564h ; 73 31 12143 movzx cx, byte [bp-002h] ; 0f b6 4e fe 12136 12144 mov ax, strict word 00001h ; b8 01 00 12137 12145 xor dx, dx ; 31 d2 12138 jcxz 08 a25h ; e3 0612146 jcxz 08544h ; e3 06 12139 12147 sal ax, 1 ; d1 e0 12140 12148 rcl dx, 1 ; d1 d2 12141 loop 08 a1fh ; e2 fa12149 loop 0853eh ; e2 fa 12142 12150 mov bx, ax ; 89 c3 12143 12151 mov cx, dx ; 89 d1 12144 12152 mov dx, strict word 0000ch ; ba 0c 00 12145 12153 mov ax, si ; 89 f0 12146 call 07 c72h ; e8 41f212154 call 0781ah ; e8 ca f2 12147 12155 test al, al ; 84 c0 12148 je short 08a0ah ; 74 d5 12149 mov bl, byte [bp-004h] ; 8a 5e fc 12150 xor bh, bh ; 30 ff 12156 je short 0852ah ; 74 d6 12157 movzx bx, byte [bp-002h] ; 0f b6 5e fe 12151 12158 xor ax, ax ; 31 c0 12152 12159 mov dx, di ; 89 fa 12153 call 08 55ch ; e8 1bfb12154 dec byte [bp-00 2h] ; fe 4e fe12155 jne short 08 a0ah ; 75 c412160 call 080bch ; e8 5d fb 12161 dec byte [bp-004h] ; fe 4e fc 12162 jne short 0852ah ; 75 c6 12156 12163 xor ax, ax ; 31 c0 12157 mov sp, bp ; 89 ec 12158 pop bp ; 5d 12164 leave ; c9 12159 12165 pop di ; 5f 12160 12166 pop si ; 5e … … 12166 12172 add AL, strict byte 003h ; 04 03 12167 12173 add al, byte [bx+di] ; 02 01 12168 add byte [di-075h], cl ; 00 4d 8b 12169 sub cx, word [bp+di-074cfh] ; 2b 8b 31 8b 12170 aaa ; 37 12171 mov di, word [di] ; 8b 3d 12172 mov ax, word [bp+di-075h] ; 8b 43 8b 12173 dec cx ; 49 12174 mov cx, word [di-075h] ; 8b 4d 8b 12175 _ahci_init: ; 0xf8a68 LB 0x119 12174 add byte [bx+di-07ah], dl ; 00 51 86 12175 das ; 2f 12176 xchg byte [di], dh ; 86 35 12177 xchg byte [bp+di], bh ; 86 3b 12178 xchg byte [bx+di-07ah], al ; 86 41 86 12179 inc di ; 47 12180 xchg byte [di-07ah], cl ; 86 4d 86 12181 push cx ; 51 12182 db 086h 12183 _ahci_init: ; 0xf8584 LB 0xf9 12184 push si ; 56 12176 12185 push di ; 57 12177 push bp ; 55 12178 mov bp, sp ; 89 e5 12179 sub sp, strict byte 0000eh ; 83 ec 0e 12186 enter 00006h, 000h ; c8 06 00 00 12180 12187 mov ax, 00601h ; b8 01 06 12181 12188 mov dx, strict word 00001h ; ba 01 00 12182 call 08 b81h ; e8 09 0112189 call 0867dh ; e8 ea 00 12183 12190 mov dx, ax ; 89 c2 12184 12191 cmp ax, strict word 0ffffh ; 3d ff ff 12185 je short 08ac8h ; 74 49 12186 mov al, ah ; 88 e0 12187 mov byte [bp-004h], ah ; 88 66 fc 12188 mov byte [bp-006h], dl ; 88 56 fa 12189 xor dh, ah ; 30 e6 12192 je near 08679h ; 0f 84 dd 00 12193 xor al, al ; 30 c0 12194 shr ax, 008h ; c1 e8 08 12195 mov byte [bp-006h], al ; 88 46 fa 12196 mov byte [bp-004h], dl ; 88 56 fc 12197 xor dh, dh ; 30 f6 12190 12198 xor ah, ah ; 30 e4 12191 12199 mov bx, strict word 00034h ; bb 34 00 12192 call 08 ba9h ; e8 18 0112200 call 086a5h ; e8 f4 00 12193 12201 mov cl, al ; 88 c1 12194 12202 test cl, cl ; 84 c9 12195 je short 08acbh ; 74 34 12196 mov bl, cl ; 88 cb 12197 xor bh, bh ; 30 ff 12198 mov al, byte [bp-006h] ; 8a 46 fa 12199 mov byte [bp-00ah], al ; 88 46 f6 12200 mov byte [bp-009h], bh ; 88 7e f7 12201 mov al, byte [bp-004h] ; 8a 46 fc 12202 mov byte [bp-00eh], al ; 88 46 f2 12203 mov byte [bp-00dh], bh ; 88 7e f3 12204 mov dx, word [bp-00ah] ; 8b 56 f6 12205 mov ax, word [bp-00eh] ; 8b 46 f2 12206 call 08ba9h ; e8 f3 00 12203 je short 085dah ; 74 23 12204 movzx bx, cl ; 0f b6 d9 12205 movzx di, byte [bp-004h] ; 0f b6 7e fc 12206 movzx si, byte [bp-006h] ; 0f b6 76 fa 12207 mov dx, di ; 89 fa 12208 mov ax, si ; 89 f0 12209 call 086a5h ; e8 dc 00 12207 12210 cmp AL, strict byte 012h ; 3c 12 12208 je short 08acbh ; 74 11 12209 mov bl, cl ; 88 cb 12210 db 0feh, 0c3h 12211 ; inc bl ; fe c3 12212 xor bh, bh ; 30 ff 12213 mov dx, word [bp-00ah] ; 8b 56 f6 12214 mov ax, word [bp-00eh] ; 8b 46 f2 12215 jmp short 08a8eh ; eb c6 12216 jmp near 08b7ch ; e9 b1 00 12211 je short 085dah ; 74 0d 12212 mov al, cl ; 88 c8 12213 db 0feh, 0c0h 12214 ; inc al ; fe c0 12215 movzx bx, al ; 0f b6 d8 12216 mov dx, di ; 89 fa 12217 mov ax, si ; 89 f0 12218 jmp short 085aeh ; eb d4 12217 12219 test cl, cl ; 84 c9 12218 je short 08ac8h ; 74 f912220 je near 08679h ; 0f 84 99 00 12219 12221 add cl, 002h ; 80 c1 02 12220 mov bl, cl ; 88 cb 12221 xor bh, bh ; 30 ff 12222 mov al, byte [bp-006h] ; 8a 46 fa 12223 mov byte [bp-00ch], al ; 88 46 f4 12224 mov byte [bp-00bh], bh ; 88 7e f5 12225 mov al, byte [bp-004h] ; 8a 46 fc 12226 mov byte [bp-008h], al ; 88 46 f8 12227 mov byte [bp-007h], bh ; 88 7e f9 12228 mov dx, word [bp-00ch] ; 8b 56 f4 12229 mov ax, word [bp-008h] ; 8b 46 f8 12230 call 08ba9h ; e8 b8 00 12222 movzx bx, cl ; 0f b6 d9 12223 movzx di, byte [bp-004h] ; 0f b6 7e fc 12224 movzx si, byte [bp-006h] ; 0f b6 76 fa 12225 mov dx, di ; 89 fa 12226 mov ax, si ; 89 f0 12227 call 086a5h ; e8 b0 00 12231 12228 cmp AL, strict byte 010h ; 3c 10 12232 jne short 08ac8h ; 75 d312229 jne near 08679h ; 0f 85 7e 00 12233 12230 mov byte [bp-002h], 000h ; c6 46 fe 00 12234 mov bl, cl ; 88 cb12235 add bl, 002h ; 80 c30212236 xor bh, bh ; 30 ff12237 mov dx, word [bp-00ch] ; 8b 56 f412238 mov ax, word [bp-008h] ; 8b 46 f812239 call 08 bcdh ; e8 c40012231 mov al, cl ; 88 c8 12232 add AL, strict byte 002h ; 04 02 12233 movzx bx, al ; 0f b6 d8 12234 mov dx, di ; 89 fa 12235 mov ax, si ; 89 f0 12236 call 086c6h ; e8 b9 00 12240 12237 mov dx, ax ; 89 c2 12241 12238 and ax, strict word 0000fh ; 25 0f 00 12242 12239 sub ax, strict word 00004h ; 2d 04 00 12243 12240 cmp ax, strict word 0000bh ; 3d 0b 00 12244 jnbe short 08 b4dh ; 77 3712241 jnbe short 08651h ; 77 37 12245 12242 push CS ; 0e 12246 12243 pop ES ; 07 12247 12244 mov cx, strict word 00008h ; b9 08 00 12248 mov di, 08 a51h ; bf 51 8a12245 mov di, 0856dh ; bf 6d 85 12249 12246 repne scasb ; f2 ae 12250 12247 sal cx, 1 ; d1 e1 12251 12248 mov di, cx ; 89 cf 12252 mov ax, word [cs:di-07 5a8h] ; 2e 8b 85 58 8a12249 mov ax, word [cs:di-07a8ch] ; 2e 8b 85 74 85 12253 12250 jmp ax ; ff e0 12254 12251 mov byte [bp-002h], 010h ; c6 46 fe 10 12255 jmp short 08 b4dh ; eb 1c12252 jmp short 08651h ; eb 1c 12256 12253 mov byte [bp-002h], 014h ; c6 46 fe 14 12257 jmp short 08 b4dh ; eb 1612254 jmp short 08651h ; eb 16 12258 12255 mov byte [bp-002h], 018h ; c6 46 fe 18 12259 jmp short 08 b4dh ; eb 1012256 jmp short 08651h ; eb 10 12260 12257 mov byte [bp-002h], 01ch ; c6 46 fe 1c 12261 jmp short 08 b4dh ; eb 0a12258 jmp short 08651h ; eb 0a 12262 12259 mov byte [bp-002h], 020h ; c6 46 fe 20 12263 jmp short 08 b4dh ; eb 0412260 jmp short 08651h ; eb 04 12264 12261 mov byte [bp-002h], 024h ; c6 46 fe 24 12265 mov CL, strict byte 004h ; b1 04 12266 mov ax, dx ; 89 d0 12267 shr ax, CL ; d3 e8 12268 mov cx, ax ; 89 c1 12269 sal cx, 1 ; d1 e1 12270 sal cx, 1 ; d1 e1 12262 mov si, dx ; 89 d6 12263 shr si, 004h ; c1 ee 04 12264 sal si, 002h ; c1 e6 02 12271 12265 mov al, byte [bp-002h] ; 8a 46 fe 12272 12266 test al, al ; 84 c0 12273 je short 08b7ch ; 74 1c 12274 mov bl, al ; 88 c3 12275 xor bh, bh ; 30 ff 12276 mov dl, byte [bp-006h] ; 8a 56 fa 12277 xor dh, dh ; 30 f6 12278 mov al, byte [bp-004h] ; 8a 46 fc 12279 xor ah, ah ; 30 e4 12280 call 08befh ; e8 7e 00 12267 je short 08679h ; 74 19 12268 movzx bx, al ; 0f b6 d8 12269 movzx dx, byte [bp-004h] ; 0f b6 56 fc 12270 movzx ax, byte [bp-006h] ; 0f b6 46 fa 12271 call 086e5h ; e8 77 00 12281 12272 test AL, strict byte 001h ; a8 01 12282 je short 08 b7ch ; 74 0712273 je short 08679h ; 74 07 12283 12274 and AL, strict byte 0f0h ; 24 f0 12284 add ax, cx ; 01 c8 12285 call 0893ch ; e8 c0 fd 12286 mov sp, bp ; 89 ec 12287 pop bp ; 5d 12275 add ax, si ; 01 f0 12276 call 08464h ; e8 eb fd 12277 leave ; c9 12288 12278 pop di ; 5f 12289 retn ; c3 12290 pci_find_classcode_: ; 0xf8b81 LB 0x28 12279 pop si ; 5e 12280 retn ; c3 12281 pci_find_classcode_: ; 0xf867d LB 0x28 12291 12282 push bx ; 53 12292 12283 push cx ; 51 … … 12303 12294 int 01ah ; cd 1a 12304 12295 cmp ah, 000h ; 80 fc 00 12305 je near 08 ba2h ; 0f 84 03 0012296 je near 0869eh ; 0f 84 03 00 12306 12297 mov bx, strict word 0ffffh ; bb ff ff 12307 12298 mov ax, bx ; 89 d8 … … 12311 12302 pop bx ; 5b 12312 12303 retn ; c3 12313 pci_read_config_byte_: ; 0xf8 ba9 LB 0x2412304 pci_read_config_byte_: ; 0xf86a5 LB 0x21 12314 12305 push cx ; 51 12315 12306 push di ; 57 12316 12307 push bp ; 55 12317 12308 mov bp, sp ; 89 e5 12318 mov dh, al ; 88 c6 12319 mov bh, dl ; 88 d7 12320 mov al, bl ; 88 d8 12321 xor ah, ah ; 30 e4 12322 xor dl, dl ; 30 d2 12323 mov bl, bh ; 88 fb 12324 mov bh, dh ; 88 f7 12325 mov di, ax ; 89 c7 12309 movzx di, bl ; 0f b6 fb 12310 movzx bx, al ; 0f b6 d8 12311 sal bx, 008h ; c1 e3 08 12312 movzx ax, dl ; 0f b6 c2 12313 or bx, ax ; 09 c3 12326 12314 mov ax, 0b108h ; b8 08 b1 12327 12315 int 01ah ; cd 1a 12328 mov al, cl ; 88 c8 12329 xor ah, ah ; 30 e4 12330 xor dh, dh ; 30 f6 12316 movzx ax, cl ; 0f b6 c1 12317 xor dx, dx ; 31 d2 12331 12318 pop bp ; 5d 12332 12319 pop di ; 5f 12333 12320 pop cx ; 59 12334 12321 retn ; c3 12335 pci_read_config_word_: ; 0xf8 bcd LB 0x2212322 pci_read_config_word_: ; 0xf86c6 LB 0x1f 12336 12323 push cx ; 51 12337 12324 push di ; 57 12338 12325 push bp ; 55 12339 12326 mov bp, sp ; 89 e5 12340 mov dh, al ; 88 c6 12341 mov cl, dl ; 88 d1 12342 mov al, bl ; 88 d8 12327 movzx di, bl ; 0f b6 fb 12343 12328 xor ah, ah ; 30 e4 12344 mov bh, dh ; 88 f7 12345 xor dh, dh ; 30 f6 12346 mov bl, dl ; 88 d3 12347 mov di, ax ; 89 c7 12329 sal ax, 008h ; c1 e0 08 12330 movzx bx, dl ; 0f b6 da 12331 or bx, ax ; 09 c3 12348 12332 mov ax, 0b109h ; b8 09 b1 12349 12333 int 01ah ; cd 1a 12350 12334 mov ax, cx ; 89 c8 12351 xor d l, dl ; 30d212335 xor dx, dx ; 31 d2 12352 12336 pop bp ; 5d 12353 12337 pop di ; 5f 12354 12338 pop cx ; 59 12355 12339 retn ; c3 12356 pci_read_config_dword_: ; 0xf8 befLB 0x2412340 pci_read_config_dword_: ; 0xf86e5 LB 0x24 12357 12341 push cx ; 51 12358 12342 push di ; 57 12359 12343 push bp ; 55 12360 12344 mov bp, sp ; 89 e5 12361 mov dh, al ; 88 c6 12362 mov bh, dl ; 88 d7 12363 mov al, bl ; 88 d8 12364 xor ah, ah ; 30 e4 12365 mov bh, dh ; 88 f7 12366 mov bl, dl ; 88 d3 12367 mov di, ax ; 89 c7 12345 movzx di, bl ; 0f b6 fb 12346 movzx bx, al ; 0f b6 d8 12347 sal bx, 008h ; c1 e3 08 12348 movzx ax, dl ; 0f b6 c2 12349 or bx, ax ; 09 c3 12368 12350 mov ax, 0b10ah ; b8 0a b1 12369 12351 int 01ah ; cd 1a … … 12376 12358 pop cx ; 59 12377 12359 retn ; c3 12378 vds_is_present_: ; 0xf8 c13LB 0x1d12360 vds_is_present_: ; 0xf8709 LB 0x1d 12379 12361 push bx ; 53 12380 12362 push bp ; 55 … … 12384 12366 mov es, ax ; 8e c0 12385 12367 test byte [es:bx], 020h ; 26 f6 07 20 12386 je short 08 c2bh ; 74 0612368 je short 08721h ; 74 06 12387 12369 mov ax, strict word 00001h ; b8 01 00 12388 12370 pop bp ; 5d … … 12393 12375 pop bx ; 5b 12394 12376 retn ; c3 12395 vds_real_to_lin_: ; 0xf8 c30LB 0x1e12377 vds_real_to_lin_: ; 0xf8726 LB 0x1e 12396 12378 push bx ; 53 12397 12379 push cx ; 51 … … 12404 12386 sal ax, 1 ; d1 e0 12405 12387 rcl dx, 1 ; d1 d2 12406 loop 08 c3eh ; e2 fa12388 loop 08734h ; e2 fa 12407 12389 xor cx, cx ; 31 c9 12408 12390 add ax, bx ; 01 d8 … … 12412 12394 pop bx ; 5b 12413 12395 retn ; c3 12414 vds_build_sg_list_: ; 0xf8 c4e LB 0x7412396 vds_build_sg_list_: ; 0xf8744 LB 0x76 12415 12397 push si ; 56 12416 12398 push di ; 57 … … 12426 12408 mov bx, word [bp+00ah] ; 8b 5e 0a 12427 12409 mov word [es:di+002h], bx ; 26 89 5d 02 12428 call 08 c30h ; e8 c3 ff12410 call 08726h ; e8 c3 ff 12429 12411 mov es, si ; 8e c6 12430 12412 mov word [es:di+004h], ax ; 26 89 45 04 12431 12413 mov word [es:di+006h], dx ; 26 89 55 06 12432 12414 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 12433 call 08 c13h ; e8 93 ff12415 call 08709h ; e8 93 ff 12434 12416 test ax, ax ; 85 c0 12435 je short 08 c95h ; 74 1112417 je short 0878dh ; 74 13 12436 12418 mov es, si ; 8e c6 12437 12419 mov ax, 08105h ; b8 05 81 12438 12420 mov dx, strict word 00000h ; ba 00 00 12439 12421 int 04bh ; cd 4b 12440 jc short 08c92h ; 72 0212422 jc near 0878ah ; 0f 82 02 00 12441 12423 db 032h, 0c0h 12442 12424 ; xor al, al ; 32 c0 12443 12425 cbw ; 98 12444 jmp short 08 cbch ; eb 2712426 jmp short 087b4h ; eb 27 12445 12427 mov es, si ; 8e c6 12446 12428 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 12458 12440 pop si ; 5e 12459 12441 retn 00004h ; c2 04 00 12460 vds_free_sg_list_: ; 0xf8 cc2 LB 0x2c12442 vds_free_sg_list_: ; 0xf87ba LB 0x36 12461 12443 push bx ; 53 12462 12444 push di ; 57 … … 12464 12446 mov bp, sp ; 89 e5 12465 12447 mov bx, ax ; 89 c3 12466 call 08 c13h ; e8 47ff12448 call 08709h ; e8 45 ff 12467 12449 test ax, ax ; 85 c0 12468 je short 08 ce1h ; 74 1112450 je short 087dbh ; 74 13 12469 12451 mov di, bx ; 89 df 12470 12452 mov es, dx ; 8e c2 … … 12472 12454 mov dx, strict word 00000h ; ba 00 00 12473 12455 int 04bh ; cd 4b 12474 jc short 08ce0h ; 72 0212456 jc near 087dah ; 0f 82 02 00 12475 12457 db 032h, 0c0h 12476 12458 ; xor al, al ; 32 c0 … … 12482 12464 pop bx ; 5b 12483 12465 retn ; c3 12484 times 0x1 db 0 12485 _small_code_: ; 0xf8cee LB 0x49 12486 db 00bh, 0d2h 12487 ; or dx, dx ; 0b d2 12488 js short 08d08h ; 78 16 12489 db 00bh, 0c9h 12490 ; or cx, cx ; 0b c9 12491 jns short 08d37h ; 79 41 12492 neg cx ; f7 d9 12493 neg bx ; f7 db 12494 sbb cx, strict byte 00000h ; 83 d9 00 12495 call 08d37h ; e8 37 00 12496 neg dx ; f7 da 12497 neg ax ; f7 d8 12498 sbb dx, strict byte 00000h ; 83 da 00 12499 retn ; c3 12500 neg dx ; f7 da 12501 neg ax ; f7 d8 12502 sbb dx, strict byte 00000h ; 83 da 00 12503 db 00bh, 0c9h 12504 ; or cx, cx ; 0b c9 12505 jns short 08d25h ; 79 12 12506 neg cx ; f7 d9 12507 neg bx ; f7 db 12508 sbb cx, strict byte 00000h ; 83 d9 00 12509 call 08d37h ; e8 1a 00 12510 neg cx ; f7 d9 12511 neg bx ; f7 db 12512 sbb cx, strict byte 00000h ; 83 d9 00 12513 retn ; c3 12514 call 08d37h ; e8 0f 00 12515 neg cx ; f7 d9 12516 neg bx ; f7 db 12517 sbb cx, strict byte 00000h ; 83 d9 00 12518 neg dx ; f7 da 12519 neg ax ; f7 d8 12520 sbb dx, strict byte 00000h ; 83 da 00 12521 retn ; c3 12522 __U4D: ; 0xf8d37 LB 0x84 12523 db 00bh, 0c9h 12524 ; or cx, cx ; 0b c9 12525 jne short 08d55h ; 75 1a 12526 dec bx ; 4b 12527 je short 08d54h ; 74 16 12528 inc bx ; 43 12529 db 03bh, 0dah 12530 ; cmp bx, dx ; 3b da 12531 jnbe short 08d4ch ; 77 09 12532 db 08bh, 0c8h 12533 ; mov cx, ax ; 8b c8 12466 times 0x9 db 0 12467 __U4D: ; 0xf87f0 LB 0x39 12468 pushfw ; 9c 12469 push eax ; 66 50 12470 push edx ; 66 52 12471 push ecx ; 66 51 12472 rol eax, 010h ; 66 c1 c0 10 12534 12473 db 08bh, 0c2h 12535 12474 ; mov ax, dx ; 8b c2 12536 db 02bh, 0d2h 12537 ; sub dx, dx ; 2b d2 12538 div bx ; f7 f3 12539 xchg cx, ax ; 91 12540 div bx ; f7 f3 12475 ror eax, 010h ; 66 c1 c8 10 12476 db 066h, 033h, 0d2h 12477 ; xor edx, edx ; 66 33 d2 12478 shr ecx, 010h ; 66 c1 e9 10 12479 db 08bh, 0cbh 12480 ; mov cx, bx ; 8b cb 12481 div ecx ; 66 f7 f1 12541 12482 db 08bh, 0dah 12542 12483 ; mov bx, dx ; 8b da 12543 db 08bh, 0d1h 12544 ; mov dx, cx ; 8b d1 12545 db 02bh, 0c9h 12546 ; sub cx, cx ; 2b c9 12547 retn ; c3 12548 db 03bh, 0cah 12549 ; cmp cx, dx ; 3b ca 12550 jc short 08d73h ; 72 1a 12551 jne short 08d6bh ; 75 10 12552 db 03bh, 0d8h 12553 ; cmp bx, ax ; 3b d8 12554 jnbe short 08d6bh ; 77 0c 12555 db 02bh, 0c3h 12556 ; sub ax, bx ; 2b c3 12557 db 08bh, 0d8h 12558 ; mov bx, ax ; 8b d8 12559 db 02bh, 0c9h 12560 ; sub cx, cx ; 2b c9 12561 db 02bh, 0d2h 12562 ; sub dx, dx ; 2b d2 12563 mov ax, strict word 00001h ; b8 01 00 12564 retn ; c3 12565 db 02bh, 0c9h 12566 ; sub cx, cx ; 2b c9 12567 db 02bh, 0dbh 12568 ; sub bx, bx ; 2b db 12569 xchg bx, ax ; 93 12570 xchg dx, cx ; 87 ca 12571 retn ; c3 12572 push bp ; 55 12573 push si ; 56 12574 db 02bh, 0f6h 12575 ; sub si, si ; 2b f6 12576 db 08bh, 0eeh 12577 ; mov bp, si ; 8b ee 12578 db 003h, 0dbh 12579 ; add bx, bx ; 03 db 12580 db 013h, 0c9h 12581 ; adc cx, cx ; 13 c9 12582 jc short 08d90h ; 72 11 12583 inc bp ; 45 12584 db 03bh, 0cah 12585 ; cmp cx, dx ; 3b ca 12586 jc short 08d79h ; 72 f5 12587 jnbe short 08d8ah ; 77 04 12588 db 03bh, 0d8h 12589 ; cmp bx, ax ; 3b d8 12590 jbe short 08d79h ; 76 ef 12591 clc ; f8 12592 db 013h, 0f6h 12593 ; adc si, si ; 13 f6 12594 dec bp ; 4d 12595 js short 08db0h ; 78 20 12596 rcr cx, 1 ; d1 d9 12597 rcr bx, 1 ; d1 db 12598 db 02bh, 0c3h 12599 ; sub ax, bx ; 2b c3 12600 sbb dx, cx ; 19 ca 12601 cmc ; f5 12602 jc short 08d8bh ; 72 f0 12603 db 003h, 0f6h 12604 ; add si, si ; 03 f6 12605 dec bp ; 4d 12606 js short 08dach ; 78 0c 12607 shr cx, 1 ; d1 e9 12608 rcr bx, 1 ; d1 db 12609 db 003h, 0c3h 12610 ; add ax, bx ; 03 c3 12611 db 013h, 0d1h 12612 ; adc dx, cx ; 13 d1 12613 jnc short 08d9bh ; 73 f1 12614 jmp short 08d8bh ; eb df 12615 db 003h, 0c3h 12616 ; add ax, bx ; 03 c3 12617 db 013h, 0d1h 12618 ; adc dx, cx ; 13 d1 12619 db 08bh, 0d8h 12620 ; mov bx, ax ; 8b d8 12484 pop ecx ; 66 59 12485 shr edx, 010h ; 66 c1 ea 10 12621 12486 db 08bh, 0cah 12622 12487 ; mov cx, dx ; 8b ca 12623 db 08bh, 0c6h 12624 ; mov ax, si ; 8b c6 12625 db 033h, 0d2h 12626 ; xor dx, dx ; 33 d2 12488 pop edx ; 66 5a 12489 ror eax, 010h ; 66 c1 c8 10 12490 db 08bh, 0d0h 12491 ; mov dx, ax ; 8b d0 12492 add sp, strict byte 00002h ; 83 c4 02 12493 pop ax ; 58 12494 rol eax, 010h ; 66 c1 c0 10 12495 popfw ; 9d 12496 retn ; c3 12497 __U4M: ; 0xf8829 LB 0x31 12498 pushfw ; 9c 12499 push eax ; 66 50 12500 push edx ; 66 52 12501 push ecx ; 66 51 12502 rol eax, 010h ; 66 c1 c0 10 12503 db 08bh, 0c2h 12504 ; mov ax, dx ; 8b c2 12505 ror eax, 010h ; 66 c1 c8 10 12506 db 066h, 033h, 0d2h 12507 ; xor edx, edx ; 66 33 d2 12508 shr ecx, 010h ; 66 c1 e9 10 12509 db 08bh, 0cbh 12510 ; mov cx, bx ; 8b cb 12511 mul ecx ; 66 f7 e1 12512 pop ecx ; 66 59 12513 pop edx ; 66 5a 12514 ror eax, 010h ; 66 c1 c8 10 12515 db 08bh, 0d0h 12516 ; mov dx, ax ; 8b d0 12517 add sp, strict byte 00002h ; 83 c4 02 12518 pop ax ; 58 12519 rol eax, 010h ; 66 c1 c0 10 12520 popfw ; 9d 12521 retn ; c3 12522 _fmemset_: ; 0xf885a LB 0xd 12523 push di ; 57 12524 mov es, dx ; 8e c2 12525 db 08bh, 0f8h 12526 ; mov di, ax ; 8b f8 12527 xchg al, bl ; 86 d8 12528 rep stosb ; f3 aa 12529 xchg al, bl ; 86 d8 12530 pop di ; 5f 12531 retn ; c3 12532 _fmemcpy_: ; 0xf8867 LB 0x18 12533 push bp ; 55 12534 db 08bh, 0ech 12535 ; mov bp, sp ; 8b ec 12536 push di ; 57 12537 push DS ; 1e 12538 push si ; 56 12539 mov es, dx ; 8e c2 12540 db 08bh, 0f8h 12541 ; mov di, ax ; 8b f8 12542 mov ds, cx ; 8e d9 12543 db 08bh, 0f3h 12544 ; mov si, bx ; 8b f3 12545 mov cx, word [bp+004h] ; 8b 4e 04 12546 rep movsb ; f3 a4 12627 12547 pop si ; 5e 12628 pop bp ; 5d 12629 retn ; c3 12630 _fmemset_: ; 0xf8dbb LB 0x17 12631 push di ; 57 12632 mov di, ax ; 89 c7 12633 mov al, bl ; 88 d8 12634 mov es, dx ; 8e c2 12635 push di ; 57 12636 db 08ah, 0e0h 12637 ; mov ah, al ; 8a e0 12638 shr cx, 1 ; d1 e9 12639 rep stosw ; f3 ab 12640 db 013h, 0c9h 12641 ; adc cx, cx ; 13 c9 12642 rep stosb ; f3 aa 12548 pop DS ; 1f 12643 12549 pop di ; 5f 12644 mov ax, di ; 89 f8 12645 pop di ; 5f 12646 retn ; c3 12647 __I4M: ; 0xf8dd2 LB 0x18 12648 xchg bx, ax ; 93 12649 push ax ; 50 12650 xchg dx, ax ; 92 12651 db 00bh, 0c0h 12652 ; or ax, ax ; 0b c0 12653 je short 08ddbh ; 74 02 12654 mul dx ; f7 e2 12655 xchg cx, ax ; 91 12656 db 00bh, 0c0h 12657 ; or ax, ax ; 0b c0 12658 je short 08de4h ; 74 04 12659 mul bx ; f7 e3 12660 db 003h, 0c8h 12661 ; add cx, ax ; 03 c8 12662 pop ax ; 58 12663 mul bx ; f7 e3 12664 db 003h, 0d1h 12665 ; add dx, cx ; 03 d1 12666 retn ; c3 12667 _fmemcpy_: ; 0xf8dea LB 0x25 12668 push si ; 56 12669 push di ; 57 12670 push bp ; 55 12671 mov bp, sp ; 89 e5 12672 mov di, ax ; 89 c7 12673 mov ax, word [bp+008h] ; 8b 46 08 12674 mov si, bx ; 89 de 12675 mov es, dx ; 8e c2 12676 push DS ; 1e 12677 push di ; 57 12678 xchg cx, ax ; 91 12679 mov ds, ax ; 8e d8 12680 shr cx, 1 ; d1 e9 12681 rep movsw ; f3 a5 12682 db 013h, 0c9h 12683 ; adc cx, cx ; 13 c9 12684 rep movsb ; f3 a4 12685 pop di ; 5f 12686 pop DS ; 1f 12687 mov ax, di ; 89 f8 12688 pop bp ; 5d 12689 pop di ; 5f 12690 pop si ; 5e 12691 retn 00002h ; c2 02 00 12550 leave ; c9 12551 retn ; c3 12692 12552 12693 ; Padding 0x 4ff1 bytes at 0xf8e0f12694 times 2 0465db 012553 ; Padding 0x5581 bytes at 0xf887f 12554 times 21889 db 0 12695 12555 12696 section BIOS32 progbits vstart=0xde00 align=1 ; size=0x1b7 class=CODE group=AUTO 12697 db 05fh, 033h, 032h, 05fh, 010h, 0deh, 00fh, 000h, 000h, 001h, 000h, 000h, 000h, 000h, 000h, 000h 12698 db 09ch, 03dh, 024h, 050h, 043h, 049h, 075h, 041h, 0b8h, 000h, 000h, 000h, 080h, 066h, 0bah, 0f8h 12699 db 00ch, 0efh, 066h, 0bah, 0fch, 00ch, 0edh, 03dh, 086h, 080h, 037h, 012h, 074h, 018h, 0b8h, 000h 12700 db 0f0h, 000h, 080h, 066h, 0bah, 0f8h, 00ch, 0efh, 066h, 0bah, 0fch, 00ch, 0edh, 03dh, 086h, 080h 12701 db 04eh, 024h, 074h, 002h, 0ebh, 013h, 0bbh, 000h, 000h, 00fh, 000h, 0b9h, 000h, 000h, 000h, 000h 12702 db 0bah, 060h, 0deh, 000h, 000h, 032h, 0c0h, 0ebh, 002h, 0b0h, 080h, 09dh, 0cbh, 08dh, 040h, 000h 12703 pcibios_protected: ; 0xfde60 LB 0x157 12556 section BIOS32 progbits vstart=0xde00 align=1 ; size=0x1d7 class=CODE group=AUTO 12557 db 05fh, 033h, 032h, 05fh, 010h, 0deh, 00fh, 000h, 000h, 001h, 0dfh, 000h, 000h, 000h, 000h, 000h 12558 db 09ch, 03dh, 024h, 050h, 043h, 049h, 075h, 057h, 0b8h, 000h, 000h, 000h, 080h, 066h, 0bah, 0f8h 12559 db 00ch, 0efh, 066h, 0bah, 0fch, 00ch, 0edh, 03dh, 086h, 080h, 037h, 012h, 074h, 02eh, 0b8h, 000h 12560 db 0c0h, 000h, 080h, 066h, 0bah, 0f8h, 00ch, 0efh, 066h, 0bah, 0fch, 00ch, 0edh, 03dh, 086h, 080h 12561 db 048h, 024h, 074h, 018h, 0b8h, 000h, 0c8h, 000h, 080h, 066h, 0bah, 0f8h, 00ch, 0efh, 066h, 0bah 12562 db 0fch, 00ch, 0edh, 03dh, 086h, 080h, 048h, 024h, 074h, 002h, 0ebh, 013h, 0bbh, 000h, 000h, 00fh 12563 db 000h, 0b9h, 000h, 000h, 000h, 000h, 0bah, 080h, 0deh, 000h, 000h, 032h, 0c0h, 0ebh, 002h, 0b0h 12564 db 080h, 09dh, 0cbh, 08dh, 080h, 000h, 000h, 000h, 000h, 08dh, 080h, 000h, 000h, 000h, 000h, 090h 12565 pcibios_protected: ; 0xfde80 LB 0x157 12704 12566 pushfw ; 9c 12705 12567 cli ; fa … … 12707 12569 push di ; 57 12708 12570 cmp AL, strict byte 001h ; 3c 01 12709 jne short 0de 7ch ; 75 1412571 jne short 0de9ch ; 75 14 12710 12572 mov ebx, strict dword 0b9660210h ; 66 bb 10 02 66 b9 12711 12573 add byte [bx+si], al ; 00 00 … … 12729 12591 db 03bh, 0c1h 12730 12592 ; cmp ax, cx ; 3b c1 12731 jne short 0de a6h ; 75 0c12593 jne short 0dec6h ; 75 0c 12732 12594 cmp esi, strict byte 000000000h ; 66 83 fe 00 12733 je near 0df 91h ; 0f 84 ef 0012595 je near 0dfb1h ; 0f 84 ef 00 12734 12596 add byte [bx+si], al ; 00 00 12735 12597 dec esi ; 66 4e … … 12737 12599 cmp bx, strict word 00000h ; 81 fb 00 00 12738 12600 add word [bx+si], ax ; 01 00 12739 jne short 0de 8ch ; 75 dd12601 jne short 0deach ; 75 dd 12740 12602 mov AH, strict byte 086h ; b4 86 12741 jmp near 0df 8ch ; e9 d8 0012603 jmp near 0dfach ; e9 d8 00 12742 12604 add byte [bx+si], al ; 00 00 12743 12605 cmp AL, strict byte 003h ; 3c 03 12744 jne short 0d eedh ; 75 3312606 jne short 0df0dh ; 75 33 12745 12607 db 033h, 0dbh 12746 12608 ; xor bx, bx ; 33 db … … 12753 12615 db 03bh, 0c1h 12754 12616 ; cmp ax, cx ; 3b c1 12755 jne short 0de ddh ; 75 0c12617 jne short 0defdh ; 75 0c 12756 12618 cmp esi, strict byte 000000000h ; 66 83 fe 00 12757 je near 0df 91h ; 0f 84 b8 0012619 je near 0dfb1h ; 0f 84 b8 00 12758 12620 add byte [bx+si], al ; 00 00 12759 12621 dec esi ; 66 4e … … 12761 12623 cmp bx, strict word 00000h ; 81 fb 00 00 12762 12624 add word [bx+si], ax ; 01 00 12763 jne short 0de c0h ; 75 da12625 jne short 0dee0h ; 75 da 12764 12626 mov AH, strict byte 086h ; b4 86 12765 jmp near 0df 8ch ; e9 a1 0012627 jmp near 0dfach ; e9 a1 00 12766 12628 add byte [bx+si], al ; 00 00 12767 12629 cmp AL, strict byte 008h ; 3c 08 12768 jne short 0df 0ch ; 75 1b12769 call 0df 98h ; e8 a4 0012630 jne short 0df2ch ; 75 1b 12631 call 0dfb8h ; e8 a4 00 12770 12632 add byte [bx+si], al ; 00 00 12771 12633 push dx ; 52 … … 12776 12638 db 08ah, 0c8h 12777 12639 ; mov cl, al ; 8a c8 12778 jmp near 0df 91h ; e9 87 0012640 jmp near 0dfb1h ; e9 87 00 12779 12641 add byte [bx+si], al ; 00 00 12780 12642 cmp AL, strict byte 009h ; 3c 09 12781 jne short 0df 2ah ; 75 1a12782 call 0df 98h ; e8 85 0012643 jne short 0df4ah ; 75 1a 12644 call 0dfb8h ; e8 85 00 12783 12645 add byte [bx+si], al ; 00 00 12784 12646 push dx ; 52 … … 12790 12652 db 066h, 08bh, 0c8h 12791 12653 ; mov ecx, eax ; 66 8b c8 12792 jmp short 0df 93h ; eb 6912654 jmp short 0dfb3h ; eb 69 12793 12655 cmp AL, strict byte 00ah ; 3c 0a 12794 jne short 0df 3eh ; 75 1012795 call 0df 98h ; e8 67 0012656 jne short 0df5eh ; 75 10 12657 call 0dfb8h ; e8 67 00 12796 12658 add byte [bx+si], al ; 00 00 12797 12659 push dx ; 52 … … 12799 12661 db 08bh, 0c8h 12800 12662 ; mov cx, ax ; 8b c8 12801 jmp short 0df 93h ; eb 5512663 jmp short 0dfb3h ; eb 55 12802 12664 cmp AL, strict byte 00bh ; 3c 0b 12803 jne short 0df 5ah ; 75 1812804 call 0df 98h ; e8 53 0012665 jne short 0df7ah ; 75 18 12666 call 0dfb8h ; e8 53 00 12805 12667 add byte [bx+si], al ; 00 00 12806 12668 push dx ; 52 … … 12811 12673 out DX, AL ; ee 12812 12674 pop dx ; 5a 12813 jmp short 0df 93h ; eb 3912675 jmp short 0dfb3h ; eb 39 12814 12676 cmp AL, strict byte 00ch ; 3c 0c 12815 jne short 0df 78h ; 75 1a12816 call 0df 98h ; e8 37 0012677 jne short 0df98h ; 75 1a 12678 call 0dfb8h ; e8 37 00 12817 12679 add byte [bx+si], al ; 00 00 12818 12680 push dx ; 52 … … 12822 12684 add edx, strict dword 08b660cfch ; 66 81 c2 fc 0c 66 8b 12823 12685 sal word [bp-011h], 05ah ; c1 66 ef 5a 12824 jmp short 0df 93h ; eb 1b12686 jmp short 0dfb3h ; eb 1b 12825 12687 cmp AL, strict byte 00dh ; 3c 0d 12826 jne short 0df 8ch ; 75 1012827 call 0df 98h ; e8 19 0012688 jne short 0dfach ; 75 10 12689 call 0dfb8h ; e8 19 00 12828 12690 add byte [bx+si], al ; 00 00 12829 12691 push dx ; 52 … … 12831 12693 out DX, ax ; ef 12832 12694 pop dx ; 5a 12833 jmp short 0df 93h ; eb 0712695 jmp short 0dfb3h ; eb 07 12834 12696 mov AH, strict byte 081h ; b4 81 12835 12697 pop di ; 5f … … 12859 12721 retn ; c3 12860 12722 12861 ; Padding 0x 49 bytes at 0xfdfb712862 times 73db 012723 ; Padding 0x29 bytes at 0xfdfd7 12724 times 41 db 0 12863 12725 12864 12726 section BIOSSEG progbits vstart=0xe000 align=1 ; size=0x2000 class=CODE group=AUTO … … 12881 12743 times 0x15 db 0 12882 12744 db 'XM' 12883 post: ; 0xfe05b LB 0x3 012745 post: ; 0xfe05b LB 0x32 12884 12746 db 033h, 0c0h 12885 12747 ; xor ax, ax ; 33 c0 … … 12902 12764 ; mov al, bl ; 8a c3 12903 12765 cmp AL, strict byte 000h ; 3c 00 12904 je short 0e0 8bh ; 74 0c12766 je short 0e098h ; 74 19 12905 12767 cmp AL, strict byte 00dh ; 3c 0d 12906 jnc short 0e0 8bh ; 73 0812768 jnc short 0e098h ; 73 15 12907 12769 cmp AL, strict byte 009h ; 3c 09 12908 je short 0e0 8bh ; 74 0412770 je short 0e098h ; 74 11 12909 12771 cmp AL, strict byte 005h ; 3c 05 12910 12772 je short 0e030h ; 74 a5 12911 normal_post: ; 0xfe08b LB 0x238 12773 jmp short 0e098h ; eb 0b 12774 set_int_vects: ; 0xfe08d LB 0xb 12775 mov word [bx], ax ; 89 07 12776 mov word [bx+002h], dx ; 89 57 02 12777 add bx, strict byte 00004h ; 83 c3 04 12778 loop 0e08dh ; e2 f6 12779 retn ; c3 12780 normal_post: ; 0xfe098 LB 0x22b 12912 12781 cli ; fa 12913 12782 mov ax, 07800h ; b8 00 78 … … 12932 12801 add bx, 01000h ; 81 c3 00 10 12933 12802 cmp bx, 09000h ; 81 fb 00 90 12934 jnc short 0e0 bfh ; 73 0b12803 jnc short 0e0cch ; 73 0b 12935 12804 mov es, bx ; 8e c3 12936 12805 db 033h, 0ffh … … 12938 12807 mov cx, 08000h ; b9 00 80 12939 12808 rep stosw ; f3 ab 12940 jmp short 0e0 aah ; eb eb12809 jmp short 0e0b7h ; eb eb 12941 12810 mov es, bx ; 8e c3 12942 12811 db 033h, 0ffh … … 12949 12818 pop DS ; 1f 12950 12819 cld ; fc 12951 call 0170 9h ; e8 393612952 call 0e8 c8h ; e8 f5 0712820 call 01707h ; e8 2a 36 12821 call 0e8e0h ; e8 00 08 12953 12822 db 033h, 0dbh 12954 12823 ; xor bx, bx ; 33 db 12955 12824 mov ds, bx ; 8e db 12956 mov cx, strict word 000 78h ; b9 780012825 mov cx, strict word 00060h ; b9 60 00 12957 12826 mov ax, 0ff53h ; b8 53 ff 12958 12827 mov dx, 0f000h ; ba 00 f0 12959 mov word [bx], ax ; 89 0712960 mov word [bx+002h], dx ; 89 57 0212961 add bx, strict byte 00004h ; 83 c3 0412962 loop 0e0e0h ; e2 f612828 call 0e08dh ; e8 9d ff 12829 mov bx, 001a0h ; bb a0 01 12830 mov cx, strict word 00010h ; b9 10 00 12831 call 0e08dh ; e8 94 ff 12963 12832 mov ax, 0027fh ; b8 7f 02 12964 12833 mov word [00413h], ax ; a3 13 04 … … 12991 12860 mov ax, 0f000h ; b8 00 f0 12992 12861 mov word [00072h], ax ; a3 72 00 12993 call 0e7c0h ; e8 790612862 call 0e7c0h ; e8 6a 06 12994 12863 mov ax, 0fea5h ; b8 a5 fe 12995 12864 mov word [00020h], ax ; a3 20 00 … … 13029 12898 pop DS ; 1f 13030 12899 cld ; fc 13031 call 04 b28h ; e8 7e 6912900 call 04893h ; e8 da 66 13032 12901 pop DS ; 1f 13033 12902 mov AL, strict byte 014h ; b0 14 … … 13046 12915 mov CL, strict byte 014h ; b1 14 13047 12916 mov dx, 00378h ; ba 78 03 13048 call 0ecedh ; e8 1 f0b12917 call 0ecedh ; e8 10 0b 13049 12918 mov dx, 00278h ; ba 78 02 13050 call 0ecedh ; e8 190b12919 call 0ecedh ; e8 0a 0b 13051 12920 sal bx, 00eh ; c1 e3 0e 13052 12921 mov ax, word [00410h] ; a1 10 04 … … 13071 12940 mov CL, strict byte 00ah ; b1 0a 13072 12941 mov dx, 003f8h ; ba f8 03 13073 call 0ed0bh ; e8 fb0a12942 call 0ed0bh ; e8 ec 0a 13074 12943 mov dx, 002f8h ; ba f8 02 13075 call 0ed0bh ; e8 f50a12944 call 0ed0bh ; e8 e6 0a 13076 12945 mov dx, 003e8h ; ba e8 03 13077 call 0ed0bh ; e8 e f0a12946 call 0ed0bh ; e8 e0 0a 13078 12947 mov dx, 002e8h ; ba e8 02 13079 call 0ed0bh ; e8 e90a12948 call 0ed0bh ; e8 da 0a 13080 12949 sal bx, 009h ; c1 e3 09 13081 12950 mov ax, word [00410h] ; a1 10 04 … … 13096 12965 mov ax, 0f000h ; b8 00 f0 13097 12966 mov word [001c2h], ax ; a3 c2 01 13098 call 0edbfh ; e8 680b12967 call 0edbfh ; e8 59 0b 13099 12968 mov ax, 0f8a3h ; b8 a3 f8 13100 12969 mov word [001d0h], ax ; a3 d0 01 … … 13109 12978 mov ax, 0f000h ; b8 00 f0 13110 12979 mov word [00042h], ax ; a3 42 00 13111 call 0e79bh ; e8 1d0513112 call 0f 2feh ; e8 7d1013113 call 0f3 83h ; e8 ff 1013114 call 0e758h ; e8 d10412980 call 0e79bh ; e8 0e 05 12981 call 0f316h ; e8 86 10 12982 call 0f39bh ; e8 08 11 12983 call 0e758h ; e8 c2 04 13115 12984 push CS ; 0e 13116 12985 pop DS ; 1f 13117 12986 cld ; fc 13118 call 01b 49h ; e8 bc3813119 call 01f 79h ; e8 e93c13120 call 07 b5eh ; e8 cb 9813121 call 08 a68h ; e8 d2 a713122 call 0ed2fh ; e8 960a13123 call 0e2d2h ; e8 360012987 call 01b25h ; e8 89 38 12988 call 01f23h ; e8 84 3c 12989 call 0770ah ; e8 68 94 12990 call 08584h ; e8 df a2 12991 call 0ed2fh ; e8 87 0a 12992 call 0e2d2h ; e8 27 00 13124 12993 push CS ; 0e 13125 12994 pop DS ; 1f 13126 12995 cld ; fc 13127 call 0172 bh ; e8 893413128 call 03 6f9h ; e8 54 5412996 call 01725h ; e8 74 34 12997 call 0358dh ; e8 d9 52 13129 12998 sti ; fb 13130 12999 int 019h ; cd 19 13131 13000 sti ; fb 13132 13001 hlt ; f4 13133 jmp short 0e2 a9h ; eb fd13002 jmp short 0e2b8h ; eb fd 13134 13003 cli ; fa 13135 13004 hlt ; f4 13136 times 0x13 db 0 13137 db 'XM' 13005 add byte [bx+si], al ; 00 00 13006 add byte [bx+si], al ; 00 00 13007 pop ax ; 58 13008 dec bp ; 4d 13138 13009 nmi: ; 0xfe2c3 LB 0x7 13139 13010 push CS ; 0e 13140 13011 pop DS ; 1f 13141 13012 cld ; fc 13142 call 016e 3h ; e8 1a3413013 call 016e7h ; e8 1e 34 13143 13014 iret ; cf 13144 13015 int75_handler: ; 0xfe2ca LB 0x8 … … 13249 13120 pop DS ; 1f 13250 13121 cld ; fc 13251 call 05 eeah ; e8 a8 7713122 call 05b9dh ; e8 5b 74 13252 13123 popaw ; 61 13253 13124 pop ES ; 07 … … 13365 13236 pop DS ; 1f 13366 13237 cld ; fc 13367 call 0 526eh ; e8 2c 6a13238 call 04f85h ; e8 43 67 13368 13239 popaw ; 61 13369 13240 pop DS ; 1f … … 13382 13253 pop DS ; 1f 13383 13254 cld ; fc 13384 call 0 526eh ; e8 0e 6a13255 call 04f85h ; e8 25 67 13385 13256 popaw ; 61 13386 13257 pop DS ; 1f … … 13399 13270 retn ; c3 13400 13271 pmode_exit: ; 0xfe87f LB 0x13 13401 mov ax, strict word 000 28h ; b8 280013272 mov ax, strict word 00040h ; b8 40 00 13402 13273 mov ds, ax ; 8e d8 13403 13274 mov eax, cr0 ; 0f 20 c0 … … 13407 13278 retn ; c3 13408 13279 pmbios_gdt_desc: ; 0xfe892 LB 0x6 13409 db 0 30h, 000h, 098h, 0e8h, 00fh, 000h13410 pmbios_gdt: ; 0xfe898 LB 0x 3013280 db 047h, 000h, 098h, 0e8h, 00fh, 000h 13281 pmbios_gdt: ; 0xfe898 LB 0x48 13411 13282 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h 13412 13283 db 0ffh, 0ffh, 000h, 000h, 000h, 09bh, 0cfh, 000h, 0ffh, 0ffh, 000h, 000h, 000h, 093h, 0cfh, 000h 13413 13284 db 0ffh, 0ffh, 000h, 000h, 00fh, 09bh, 000h, 000h, 0ffh, 0ffh, 000h, 000h, 000h, 093h, 000h, 000h 13414 pmode_setup: ; 0xfe8c8 LB 0x393 13285 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h 13286 db 0ffh, 0ffh, 000h, 004h, 000h, 093h, 000h, 000h 13287 pmode_setup: ; 0xfe8e0 LB 0x37b 13415 13288 push eax ; 66 50 13416 13289 push esi ; 66 56 13417 13290 pushfw ; 9c 13418 13291 cli ; fa 13419 call 0e864h ; e8 93ff13292 call 0e864h ; e8 7b ff 13420 13293 mov eax, cr0 ; 0f 20 c0 13421 13294 and eax, strict dword 09fffffffh ; 66 25 ff ff ff 9f … … 13431 13304 or ah, 004h ; 80 cc 04 13432 13305 mov dword [esi], eax ; 67 66 89 06 13433 call 0e87fh ; e8 71ff13306 call 0e87fh ; e8 59 ff 13434 13307 popfw ; 9d 13435 13308 pop esi ; 66 5e 13436 13309 pop eax ; 66 58 13437 13310 retn ; c3 13438 times 0x 71db 013311 times 0x59 db 0 13439 13312 pop ax ; 58 13440 13313 dec bp ; 4d … … 13479 13352 pop DS ; 1f 13480 13353 cld ; fc 13481 call 04 e39h ; e8 6a 6413354 call 04b9dh ; e8 ce 61 13482 13355 pop ES ; 07 13483 13356 popaw ; 61 … … 13505 13378 cld ; fc 13506 13379 push 0ece9h ; 68 e9 ec 13507 jmp near 03 737h ; e9 c6 4a13380 jmp near 035cbh ; e9 5a 49 13508 13381 push ES ; 06 13509 13382 push ax ; 50 … … 13511 13384 push cx ; 51 13512 13385 push dx ; 52 13513 call 03 70fh ; e8 96 4a13386 call 035a3h ; e8 2a 49 13514 13387 cmp AL, strict byte 000h ; 3c 00 13515 13388 je short 0ecabh ; 74 2e 13516 call 03 723h ; e8 a3 4a13389 call 035b7h ; e8 37 49 13517 13390 pop dx ; 5a 13518 13391 push dx ; 52 … … 13532 13405 cld ; fc 13533 13406 push 0ece9h ; 68 e9 ec 13534 jmp near 03 d62h ; e9 cb 5013407 jmp near 03ba9h ; e9 12 4f 13535 13408 and dl, 0e0h ; 80 e2 e0 13536 13409 db 03ah, 0c2h … … 13572 13445 jne short 0ecc8h ; 75 06 13573 13446 push 0ece9h ; 68 e9 ec 13574 jmp near 02 efch ; e9 34 4213447 jmp near 02df4h ; e9 2c 41 13575 13448 int13_notfloppy: ; 0xfecc8 LB 0x14 13576 13449 cmp dl, 0e0h ; 80 fa e0 … … 13578 13451 shr ebx, 010h ; 66 c1 eb 10 13579 13452 push bx ; 53 13580 call 0 4182h ; e8 ad 5413453 call 03fc8h ; e8 f3 52 13581 13454 pop bx ; 5b 13582 13455 sal ebx, 010h ; 66 c1 e3 10 … … 13585 13458 cmp ah, 040h ; 80 fc 40 13586 13459 jnbe short 0ece6h ; 77 05 13587 call 05 595h ; e8 b1 6813460 call 05299h ; e8 b5 65 13588 13461 jmp short 0ece9h ; eb 03 13589 call 05 9cfh ; e8 e6 6c13462 call 056d5h ; e8 ec 69 13590 13463 int13_out: ; 0xfece9 LB 0x4 13591 13464 pop DS ; 1f … … 13790 13663 ; sbb di, di ; 1b ff 13791 13664 insb ; 6c 13792 db 0f6h, 00fh 13793 ; ; f6 0f 13794 db 008h 13665 db 0f6h 13666 invd ; 0f 08 13795 13667 int17_handler: ; 0xfefd2 LB 0xd 13796 13668 push DS ; 1e … … 13800 13672 pop DS ; 1f 13801 13673 cld ; fc 13802 call 0 70e5h ; e8 0a 8113674 call 06d3ch ; e8 61 7d 13803 13675 popaw ; 61 13804 13676 pop ES ; 07 … … 13825 13697 pop DS ; 1f 13826 13698 cld ; fc 13827 call 016f 6h ; e8 4c2613699 call 016f7h ; e8 4d 26 13828 13700 hlt ; f4 13829 13701 iret ; cf … … 13848 13720 mov ax, strict word 00001h ; b8 01 00 13849 13721 push ax ; 50 13850 call 04 87eh ; e8 ae 5713722 call 04631h ; e8 61 55 13851 13723 inc sp ; 44 13852 13724 inc sp ; 44 … … 13855 13727 mov ax, strict word 00002h ; b8 02 00 13856 13728 push ax ; 50 13857 call 04 87eh ; e8 a1 5713729 call 04631h ; e8 54 55 13858 13730 inc sp ; 44 13859 13731 inc sp ; 44 … … 13862 13734 mov ax, strict word 00003h ; b8 03 00 13863 13735 push strict byte 00003h ; 6a 03 13864 call 04 87eh ; e8 93 5713736 call 04631h ; e8 46 55 13865 13737 inc sp ; 44 13866 13738 inc sp ; 44 … … 13869 13741 mov ax, strict word 00004h ; b8 04 00 13870 13742 push ax ; 50 13871 call 04 87eh ; e8 86 5713743 call 04631h ; e8 39 55 13872 13744 inc sp ; 44 13873 13745 inc sp ; 44 … … 13887 13759 pop bp ; 5d 13888 13760 iret ; cf 13889 pcibios_real: ; 0xff11d LB 0x 3a13761 pcibios_real: ; 0xff11d LB 0x52 13890 13762 push eax ; 66 50 13891 13763 push dx ; 52 … … 13896 13768 in eax, DX ; 66 ed 13897 13769 cmp eax, strict dword 012378086h ; 66 3d 86 80 37 12 13898 je short 0f1 57h ; 74 1f13899 mov eax, strict dword 08000 f000h ; 66 b8 00 f0 00 8013770 je short 0f16fh ; 74 37 13771 mov eax, strict dword 08000c000h ; 66 b8 00 c0 00 80 13900 13772 mov dx, 00cf8h ; ba f8 0c 13901 13773 out DX, eax ; 66 ef 13902 13774 mov dx, 00cfch ; ba fc 0c 13903 13775 in eax, DX ; 66 ed 13904 cmp eax, strict dword 0244e8086h ; 66 3d 86 80 4e 24 13905 je short 0f157h ; 74 07 13776 cmp eax, strict dword 024488086h ; 66 3d 86 80 48 24 13777 je short 0f16fh ; 74 1f 13778 mov eax, strict dword 08000c800h ; 66 b8 00 c8 00 80 13779 mov dx, 00cf8h ; ba f8 0c 13780 out DX, eax ; 66 ef 13781 mov dx, 00cfch ; ba fc 0c 13782 in eax, DX ; 66 ed 13783 cmp eax, strict dword 024488086h ; 66 3d 86 80 48 24 13784 je short 0f16fh ; 74 07 13906 13785 pop dx ; 5a 13907 13786 pop eax ; 66 58 … … 13909 13788 stc ; f9 13910 13789 retn ; c3 13911 pci_present: ; 0xff1 57LB 0x1e13790 pci_present: ; 0xff16f LB 0x1e 13912 13791 pop dx ; 5a 13913 13792 pop eax ; 66 58 13914 13793 cmp AL, strict byte 001h ; 3c 01 13915 jne short 0f1 75h ; 75 1713794 jne short 0f18dh ; 75 17 13916 13795 mov ax, strict word 00001h ; b8 01 00 13917 13796 mov bx, 00210h ; bb 10 02 13918 13797 mov cx, strict word 00000h ; b9 00 00 13919 13798 mov edx, strict dword 020494350h ; 66 ba 50 43 49 20 13920 mov edi, strict dword 00000de 60h ; 66 bf 60 de 00 0013799 mov edi, strict dword 00000de80h ; 66 bf 80 de 00 00 13921 13800 clc ; f8 13922 13801 retn ; c3 13923 pci_real_f02: ; 0xff1 75LB 0x1613802 pci_real_f02: ; 0xff18d LB 0x16 13924 13803 push esi ; 66 56 13925 13804 push edi ; 66 57 13926 13805 push edx ; 66 52 13927 13806 cmp AL, strict byte 002h ; 3c 02 13928 jne short 0f1 b7h ; 75 3813807 jne short 0f1cfh ; 75 38 13929 13808 sal ecx, 010h ; 66 c1 e1 10 13930 13809 db 08bh, 0cah … … 13933 13812 ; xor ebx, ebx ; 66 33 db 13934 13813 mov di, strict word 00000h ; bf 00 00 13935 pci_real_devloop: ; 0xff1 8bLB 0x1513936 call 0f2 c3h ; e8 35 0113814 pci_real_devloop: ; 0xff1a3 LB 0x15 13815 call 0f2dbh ; e8 35 01 13937 13816 mov dx, 00cfch ; ba fc 0c 13938 13817 in eax, DX ; 66 ed 13939 13818 db 066h, 03bh, 0c1h 13940 13819 ; cmp eax, ecx ; 66 3b c1 13941 jne short 0f1 a0h ; 75 0813820 jne short 0f1b8h ; 75 08 13942 13821 cmp si, strict byte 00000h ; 83 fe 00 13943 je near 0f2 b9h ; 0f 84 1a 0113822 je near 0f2d1h ; 0f 84 1a 01 13944 13823 dec si ; 4e 13945 pci_real_nextdev: ; 0xff1 a0LB 0x1713824 pci_real_nextdev: ; 0xff1b8 LB 0x17 13946 13825 inc ebx ; 66 43 13947 13826 cmp ebx, strict dword 000010000h ; 66 81 fb 00 00 01 00 13948 jne short 0f1 8bh ; 75 e013827 jne short 0f1a3h ; 75 e0 13949 13828 db 08bh, 0d1h 13950 13829 ; mov dx, cx ; 8b d1 13951 13830 shr ecx, 010h ; 66 c1 e9 10 13952 13831 mov ax, 08602h ; b8 02 86 13953 jmp near 0f2 b1h ; e9 fa 0013954 pci_real_f03: ; 0xff1 b7LB 0xa13832 jmp near 0f2c9h ; e9 fa 00 13833 pci_real_f03: ; 0xff1cf LB 0xa 13955 13834 cmp AL, strict byte 003h ; 3c 03 13956 jne short 0f 1ebh ; 75 3013835 jne short 0f203h ; 75 30 13957 13836 db 066h, 033h, 0dbh 13958 13837 ; xor ebx, ebx ; 66 33 db 13959 13838 mov di, strict word 00008h ; bf 08 00 13960 pci_real_devloop2: ; 0xff1 c1LB 0x1913961 call 0f2 c3h ; e8 ff 0013839 pci_real_devloop2: ; 0xff1d9 LB 0x19 13840 call 0f2dbh ; e8 ff 00 13962 13841 mov dx, 00cfch ; ba fc 0c 13963 13842 in eax, DX ; 66 ed … … 13965 13844 db 066h, 03bh, 0c1h 13966 13845 ; cmp eax, ecx ; 66 3b c1 13967 jne short 0f1 dah ; 75 0813846 jne short 0f1f2h ; 75 08 13968 13847 cmp si, strict byte 00000h ; 83 fe 00 13969 je near 0f2 b9h ; 0f 84 e0 0013848 je near 0f2d1h ; 0f 84 e0 00 13970 13849 dec si ; 4e 13971 pci_real_nextdev2: ; 0xff1 daLB 0xd713850 pci_real_nextdev2: ; 0xff1f2 LB 0xd7 13972 13851 inc ebx ; 66 43 13973 13852 cmp ebx, strict dword 000010000h ; 66 81 fb 00 00 01 00 13974 jne short 0f1 c1h ; 75 dc13853 jne short 0f1d9h ; 75 dc 13975 13854 mov ax, 08603h ; b8 03 86 13976 jmp near 0f2 b1h ; e9 c6 0013855 jmp near 0f2c9h ; e9 c6 00 13977 13856 cmp AL, strict byte 008h ; 3c 08 13978 jne short 0f2 03h ; 75 1413979 call 0f2 c3h ; e8 d1 0013857 jne short 0f21bh ; 75 14 13858 call 0f2dbh ; e8 d1 00 13980 13859 push dx ; 52 13981 13860 db 08bh, 0d7h … … 13987 13866 db 08ah, 0c8h 13988 13867 ; mov cl, al ; 8a c8 13989 jmp near 0f2 b9h ; e9 b6 0013868 jmp near 0f2d1h ; e9 b6 00 13990 13869 cmp AL, strict byte 009h ; 3c 09 13991 jne short 0f2 1bh ; 75 1413992 call 0f2 c3h ; e8 b9 0013870 jne short 0f233h ; 75 14 13871 call 0f2dbh ; e8 b9 00 13993 13872 push dx ; 52 13994 13873 db 08bh, 0d7h … … 14000 13879 db 08bh, 0c8h 14001 13880 ; mov cx, ax ; 8b c8 14002 jmp near 0f2 b9h ; e9 9e 0013881 jmp near 0f2d1h ; e9 9e 00 14003 13882 cmp AL, strict byte 00ah ; 3c 0a 14004 jne short 0f2 2fh ; 75 1014005 call 0f2 c3h ; e8 a1 0013883 jne short 0f247h ; 75 10 13884 call 0f2dbh ; e8 a1 00 14006 13885 push dx ; 52 14007 13886 mov dx, 00cfch ; ba fc 0c … … 14010 13889 db 066h, 08bh, 0c8h 14011 13890 ; mov ecx, eax ; 66 8b c8 14012 jmp near 0f2 b9h ; e9 8a 0013891 jmp near 0f2d1h ; e9 8a 00 14013 13892 cmp AL, strict byte 00bh ; 3c 0b 14014 jne short 0f2 46h ; 75 1314015 call 0f2 c3h ; e8 8d 0013893 jne short 0f25eh ; 75 13 13894 call 0f2dbh ; e8 8d 00 14016 13895 push dx ; 52 14017 13896 db 08bh, 0d7h … … 14023 13902 out DX, AL ; ee 14024 13903 pop dx ; 5a 14025 jmp short 0f2 b9h ; eb 7313904 jmp short 0f2d1h ; eb 73 14026 13905 cmp AL, strict byte 00ch ; 3c 0c 14027 jne short 0f2 5dh ; 75 1314028 call 0f2 c3h ; e8 76 0013906 jne short 0f275h ; 75 13 13907 call 0f2dbh ; e8 76 00 14029 13908 push dx ; 52 14030 13909 db 08bh, 0d7h … … 14036 13915 out DX, ax ; ef 14037 13916 pop dx ; 5a 14038 jmp short 0f2 b9h ; eb 5c13917 jmp short 0f2d1h ; eb 5c 14039 13918 cmp AL, strict byte 00dh ; 3c 0d 14040 jne short 0f2 70h ; 75 0f14041 call 0f2 c3h ; e8 5f 0013919 jne short 0f288h ; 75 0f 13920 call 0f2dbh ; e8 5f 00 14042 13921 push dx ; 52 14043 13922 mov dx, 00cfch ; ba fc 0c … … 14046 13925 out DX, eax ; 66 ef 14047 13926 pop dx ; 5a 14048 jmp short 0f2 b9h ; eb 4913927 jmp short 0f2d1h ; eb 49 14049 13928 cmp AL, strict byte 00eh ; 3c 0e 14050 jne short 0f2 afh ; 75 3b13929 jne short 0f2c7h ; 75 3b 14051 13930 cmp word [es:di], 001e0h ; 26 81 3d e0 01 14052 jc short 0f2 a6h ; 72 2b13931 jc short 0f2beh ; 72 2b 14053 13932 mov word [es:di], 001e0h ; 26 c7 05 e0 01 14054 13933 pushfw ; 9c … … 14059 13938 push di ; 57 14060 13939 cld ; fc 14061 mov si, 0f4 80h ; be 80 f413940 mov si, 0f490h ; be 90 f4 14062 13941 push CS ; 0e 14063 13942 pop DS ; 1f … … 14075 13954 popfw ; 9d 14076 13955 mov bx, 00a00h ; bb 00 0a 14077 jmp short 0f2 b9h ; eb 1313956 jmp short 0f2d1h ; eb 13 14078 13957 mov word [es:di], 001e0h ; 26 c7 05 e0 01 14079 13958 mov AH, strict byte 089h ; b4 89 14080 jmp short 0f2 b1h ; eb 0213959 jmp short 0f2c9h ; eb 02 14081 13960 mov AH, strict byte 081h ; b4 81 14082 pci_real_fail: ; 0xff2 b1LB 0x813961 pci_real_fail: ; 0xff2c9 LB 0x8 14083 13962 pop edx ; 66 5a 14084 13963 pop edi ; 66 5f … … 14086 13965 stc ; f9 14087 13966 retn ; c3 14088 pci_real_ok: ; 0xff2 b9LB 0xa13967 pci_real_ok: ; 0xff2d1 LB 0xa 14089 13968 db 032h, 0e4h 14090 13969 ; xor ah, ah ; 32 e4 … … 14094 13973 clc ; f8 14095 13974 retn ; c3 14096 pci_real_select_reg: ; 0xff2 c3LB 0x3b13975 pci_real_select_reg: ; 0xff2db LB 0x3b 14097 13976 push dx ; 52 14098 13977 mov eax, strict dword 000800000h ; 66 b8 00 00 80 00 … … 14122 14001 pop eax ; 66 58 14123 14002 retn ; c3 14124 pcibios_init_iomem_bases: ; 0xff 2feLB 0x1614003 pcibios_init_iomem_bases: ; 0xff316 LB 0x16 14125 14004 push bp ; 55 14126 14005 db 08bh, 0ech … … 14133 14012 push ax ; 50 14134 14013 mov bx, strict word 00008h ; bb 08 00 14135 pci_init_io_loop1: ; 0xff3 14LB 0xe14014 pci_init_io_loop1: ; 0xff32c LB 0xe 14136 14015 mov DL, strict byte 000h ; b2 00 14137 call 0f2 e3h ; e8 ca ff14016 call 0f2fbh ; e8 ca ff 14138 14017 mov dx, 00cfch ; ba fc 0c 14139 14018 in ax, DX ; ed 14140 14019 cmp ax, strict byte 0ffffh ; 83 f8 ff 14141 je short 0f3 5bh ; 74 3914142 enable_iomem_space: ; 0xff3 22LB 0x3914020 je short 0f373h ; 74 39 14021 enable_iomem_space: ; 0xff33a LB 0x39 14143 14022 mov DL, strict byte 004h ; b2 04 14144 call 0f2 e3h ; e8 bc ff14023 call 0f2fbh ; e8 bc ff 14145 14024 mov dx, 00cfch ; ba fc 0c 14146 14025 in AL, DX ; ec … … 14148 14027 out DX, AL ; ee 14149 14028 mov DL, strict byte 000h ; b2 00 14150 call 0f2 e3h ; e8 b0 ff14029 call 0f2fbh ; e8 b0 ff 14151 14030 mov dx, 00cfch ; ba fc 0c 14152 14031 in eax, DX ; 66 ed 14153 14032 cmp eax, strict dword 020001022h ; 66 3d 22 10 00 20 14154 jne short 0f3 5bh ; 75 1b14033 jne short 0f373h ; 75 1b 14155 14034 mov DL, strict byte 010h ; b2 10 14156 call 0f2 e3h ; e8 9e ff14035 call 0f2fbh ; e8 9e ff 14157 14036 mov dx, 00cfch ; ba fc 0c 14158 14037 in ax, DX ; ed … … 14168 14047 add dx, strict byte 00018h ; 83 c2 18 14169 14048 in eax, DX ; 66 ed 14170 next_pci_dev: ; 0xff3 5bLB 0xf14049 next_pci_dev: ; 0xff373 LB 0xf 14171 14050 mov byte [bp-008h], 010h ; c6 46 f8 10 14172 14051 inc bx ; 43 14173 14052 cmp bx, 00100h ; 81 fb 00 01 14174 jne short 0f3 14h ; 75 ae14053 jne short 0f32ch ; 75 ae 14175 14054 db 08bh, 0e5h 14176 14055 ; mov sp, bp ; 8b e5 14177 14056 pop bp ; 5d 14178 14057 retn ; c3 14179 pcibios_init_set_elcr: ; 0xff3 6aLB 0xc14058 pcibios_init_set_elcr: ; 0xff382 LB 0xc 14180 14059 push ax ; 50 14181 14060 push cx ; 51 14182 14061 mov dx, 004d0h ; ba d0 04 14183 14062 test AL, strict byte 008h ; a8 08 14184 je short 0f3 76h ; 74 0314063 je short 0f38eh ; 74 03 14185 14064 inc dx ; 42 14186 14065 and AL, strict byte 007h ; 24 07 14187 is_master_pic: ; 0xff3 76LB 0xd14066 is_master_pic: ; 0xff38e LB 0xd 14188 14067 db 08ah, 0c8h 14189 14068 ; mov cl, al ; 8a c8 … … 14197 14076 pop ax ; 58 14198 14077 retn ; c3 14199 pcibios_init_irqs: ; 0xff3 83LB 0x5314078 pcibios_init_irqs: ; 0xff39b LB 0x53 14200 14079 push DS ; 1e 14201 14080 push bp ; 55 … … 14207 14086 inc dx ; 42 14208 14087 out DX, AL ; ee 14209 mov si, 0f4 60h ; be 60 f414088 mov si, 0f470h ; be 70 f4 14210 14089 mov bh, byte [si+008h] ; 8a 7c 08 14211 14090 mov bl, byte [si+009h] ; 8a 5c 09 14212 14091 mov DL, strict byte 000h ; b2 00 14213 call 0f2 e3h ; e8 43 ff14092 call 0f2fbh ; e8 43 ff 14214 14093 mov dx, 00cfch ; ba fc 0c 14215 14094 in eax, DX ; 66 ed 14216 14095 cmp eax, dword [si+00ch] ; 66 3b 44 0c 14217 jne near 0f4 53h ; 0f 85 a6 0014096 jne near 0f46bh ; 0f 85 a6 00 14218 14097 mov dl, byte [si+022h] ; 8a 54 22 14219 call 0f2 e3h ; e8 30 ff14098 call 0f2fbh ; e8 30 ff 14220 14099 push bx ; 53 14221 14100 mov dx, 00cfch ; ba fc 0c … … 14232 14111 db 08bh, 0ech 14233 14112 ; mov bp, sp ; 8b ec 14234 mov ax, 0f2 dfh ; b8 dff214113 mov ax, 0f2f7h ; b8 f7 f2 14235 14114 push ax ; 50 14236 14115 db 033h, 0c0h 14237 14116 ; xor ax, ax ; 33 c0 14238 14117 push ax ; 50 14239 pci_init_irq_loop1: ; 0xff3 d6LB 0x514118 pci_init_irq_loop1: ; 0xff3ee LB 0x5 14240 14119 mov bh, byte [si] ; 8a 3c 14241 14120 mov bl, byte [si+001h] ; 8a 5c 01 14242 pci_init_irq_loop2: ; 0xff3 dbLB 0x1514121 pci_init_irq_loop2: ; 0xff3f3 LB 0x15 14243 14122 mov DL, strict byte 000h ; b2 00 14244 call 0f2 e3h ; e8 03 ff14123 call 0f2fbh ; e8 03 ff 14245 14124 mov dx, 00cfch ; ba fc 0c 14246 14125 in ax, DX ; ed 14247 14126 cmp ax, strict byte 0ffffh ; 83 f8 ff 14248 jne short 0f 3f0h ; 75 0714127 jne short 0f408h ; 75 07 14249 14128 test bl, 007h ; f6 c3 07 14250 je short 0f4 47h ; 74 5914251 jmp short 0f4 3dh ; eb 4d14252 pci_test_int_pin: ; 0xff 3f0LB 0x3c14129 je short 0f45fh ; 74 59 14130 jmp short 0f455h ; eb 4d 14131 pci_test_int_pin: ; 0xff408 LB 0x3c 14253 14132 mov DL, strict byte 03ch ; b2 3c 14254 call 0f2 e3h ; e8 ee fe14133 call 0f2fbh ; e8 ee fe 14255 14134 mov dx, 00cfdh ; ba fd 0c 14256 14135 in AL, DX ; ec 14257 14136 and AL, strict byte 007h ; 24 07 14258 je short 0f4 3dh ; 74 4014137 je short 0f455h ; 74 40 14259 14138 db 0feh, 0c8h 14260 14139 ; dec al ; fe c8 … … 14270 14149 ; mov dl, al ; 8a d0 14271 14150 mov bx, word [byte bp+000h] ; 8b 5e 00 14272 call 0f2 e3h ; e8 d0 fe14151 call 0f2fbh ; e8 d0 fe 14273 14152 mov dx, 00cfch ; ba fc 0c 14274 14153 and AL, strict byte 003h ; 24 03 … … 14277 14156 in AL, DX ; ec 14278 14157 cmp AL, strict byte 080h ; 3c 80 14279 jc short 0f4 2ch ; 72 0d14158 jc short 0f444h ; 72 0d 14280 14159 mov bx, word [bp-002h] ; 8b 5e fe 14281 14160 mov al, byte [bx] ; 8a 07 … … 14283 14162 inc bx ; 43 14284 14163 mov word [bp-002h], bx ; 89 5e fe 14285 call 0f3 6ah ; e8 3e ff14286 pirq_found: ; 0xff4 2cLB 0x1114164 call 0f382h ; e8 3e ff 14165 pirq_found: ; 0xff444 LB 0x11 14287 14166 mov bh, byte [si] ; 8a 3c 14288 14167 mov bl, byte [si+001h] ; 8a 5c 01 14289 14168 add bl, byte [bp-003h] ; 02 5e fd 14290 14169 mov DL, strict byte 03ch ; b2 3c 14291 call 0f2 e3h ; e8 aa fe14170 call 0f2fbh ; e8 aa fe 14292 14171 mov dx, 00cfch ; ba fc 0c 14293 14172 out DX, AL ; ee 14294 next_pci_func: ; 0xff4 3dLB 0xa14173 next_pci_func: ; 0xff455 LB 0xa 14295 14174 inc byte [bp-003h] ; fe 46 fd 14296 14175 db 0feh, 0c3h 14297 14176 ; inc bl ; fe c3 14298 14177 test bl, 007h ; f6 c3 07 14299 jne short 0f3 dbh ; 75 9414300 next_pir_entry: ; 0xff4 47LB 0xc14178 jne short 0f3f3h ; 75 94 14179 next_pir_entry: ; 0xff45f LB 0xc 14301 14180 add si, strict byte 00010h ; 83 c6 10 14302 14181 mov byte [bp-003h], 000h ; c6 46 fd 00 14303 loop 0f3 d6h ; e2 8614182 loop 0f3eeh ; e2 86 14304 14183 db 08bh, 0e5h 14305 14184 ; mov sp, bp ; 8b e5 14306 14185 pop bx ; 5b 14307 pci_init_end: ; 0xff4 53 LB 0xd14186 pci_init_end: ; 0xff46b LB 0x5 14308 14187 pop bp ; 5d 14309 14188 pop DS ; 1f 14310 14189 retn ; c3 14311 db 089h, 0c0h , 089h, 0c0h, 089h, 0c0h, 089h, 0c0h, 089h, 0c0h14312 pci_routing_table_structure: ; 0xff4 60 LB 0x3e114190 db 089h, 0c0h 14191 pci_routing_table_structure: ; 0xff470 LB 0x3d1 14313 14192 db 024h, 050h, 049h, 052h, 000h, 001h, 000h, 002h, 000h, 008h, 000h, 000h, 086h, 080h, 000h, 070h 14314 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0 00h14193 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 031h 14315 14194 db 000h, 008h, 060h, 0f8h, 0deh, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 000h, 000h 14316 14195 db 000h, 010h, 061h, 0f8h, 0deh, 062h, 0f8h, 0deh, 063h, 0f8h, 0deh, 060h, 0f8h, 0deh, 001h, 000h … … 14371 14250 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h 14372 14251 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h 14373 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h14374 14252 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 058h 14375 14253 db 04dh … … 14406 14284 cmp ah, 0c2h ; 80 fc c2 14407 14285 je short 0f881h ; 74 0d 14408 call 0 60f8h ; e8 81 6814286 call 05da6h ; e8 2f 65 14409 14287 popaw ; 61 14410 14288 pop ES ; 07 … … 14416 14294 jmp short 0f88fh ; eb 0e 14417 14295 int15_handler_mouse: ; 0xff881 LB 0x5 14418 call 06 d46h ; e8 c2 7414296 call 069b6h ; e8 32 71 14419 14297 jmp short 0f877h ; eb f1 14420 14298 int15_handler32: ; 0xff886 LB 0x9 14421 14299 pushad ; 66 60 14422 call 06 5c6h ; e8 3b 6d14300 call 0626fh ; e8 e4 69 14423 14301 popad ; 66 61 14424 14302 jmp short 0f878h ; eb e9 … … 14450 14328 pop DS ; 1f 14451 14329 cld ; fc 14452 call 06 c74h ; e8 bd 7314330 call 068f0h ; e8 39 70 14453 14331 pop cx ; 59 14454 14332 jcxz 0f8c6h ; e3 0c … … 14542 14420 db 018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h 14543 14421 db 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h 14544 db 080h, 0fch, 0b1h, 075h, 00eh, 0e8h, 0a7h, 0f2h, 072h, 003h, 0e9h, 014h, 0fah, 060h, 0e8h, 0 50h14545 db 06 bh, 061h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 076h, 06bh, 061h, 01fh, 007h, 0cfh14422 db 080h, 0fch, 0b1h, 075h, 00eh, 0e8h, 0a7h, 0f2h, 072h, 003h, 0e9h, 014h, 0fah, 060h, 0e8h, 0e8h 14423 db 067h, 061h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 00eh, 068h, 061h, 01fh, 007h, 0cfh 14546 14424 int70_handler: ; 0xffe8e LB 0x17 14547 14425 push ES ; 06 … … 14551 14429 pop DS ; 1f 14552 14430 cld ; fc 14553 call 06 921h ; e8 8a 6a14431 call 065bch ; e8 25 67 14554 14432 popaw ; 61 14555 14433 pop DS ; 1f … … 14625 14503 dec bp ; 4d 14626 14504 pop di ; 5f 14627 add byte [bx], bl ; 001f14505 jnl short 0ff85h ; 7d 1f 14628 14506 add al, byte [di] ; 02 05 14629 14507 inc word [bx+si] ; ff 00 … … 14636 14514 dec cx ; 49 14637 14515 pop di ; 5f 14638 add byte [bx+si+001h], ah ; 0060 0114516 mov di, 00160h ; bf 60 01 14639 14517 add byte [bx+si], dl ; 00 10 14640 14518 push CS ; 0e … … 14645 14523 cpu_reset: ; 0xffff0 LB 0x10 14646 14524 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 14647 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 ffh14525 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 005h -
trunk/src/VBox/Devices/PC/BIOS-new/VBoxBiosAlternative.md5sum
r41513 r42053 1 76025087e3ecf3738a573074c6955457*VBoxPcBios.rom1 e550fec5c488fd7c2362c348dbf107d9 *VBoxPcBios.rom
Note:
See TracChangeset
for help on using the changeset viewer.