Changeset 589 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages
- Timestamp:
- May 22, 2016, 12:26:57 PM (9 years ago)
- Location:
- trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/ConfigurationMenu.asm
r567 r589 177 177 %assign i i+1 178 178 %endrep 179 ; dw NULL ; Is this needed? *FIXME* 179 dw NULL 180 180 181 181 182 ; Section containing code … … 285 286 call Buffers_GetRomvarsFlagsToAX 286 287 mov bx, g_MenuitemConfigurationIdleTimeout 287 test a x, FLG_ROMVARS_MODULE_POWER_MANAGEMENT288 test al, FLG_ROMVARS_MODULE_POWER_MANAGEMENT 288 289 jz SHORT .DisableMenuitemFromCSBX 289 290 ; Fall to .EnableMenuitemFromCSBX … … 393 394 push es 394 395 pop ds 395 xor ch, ch ; clearing high order of CX and notification flag 396 mov dx, cx ; (probably unnecessary, CX should be less than 127, but just to be sure) 397 jcxz .done ; probably unnecessary, but make sure there is at least one controller 396 mov dx, cx ; Controller count to DL (will always be at least 1) while also clearing notification flag in DH 398 397 399 398 lea bx, [di+ROMVARS.ideVars0] ; add in offset of first idevars … … 404 403 xor ax, ax ; first non-serial found 405 404 mov cl, dl ; idevars count 406 xor ch, ch407 405 408 406 .loop: 409 cmp byte[di+IDEVARS.bDevice], DEVICE_SERIAL_PORT410 jn z.notSerial407 cmp BYTE [di+IDEVARS.bDevice], DEVICE_SERIAL_PORT 408 jne SHORT .notSerial 411 409 412 410 test si, si ; record the first serial controller that we find 413 jnz .next411 jnz SHORT .next 414 412 mov si, di 415 413 SKIP2B f … … 423 421 424 422 test si, si ; no serial drives, nothing to do 425 jz .done423 jz SHORT .done 426 424 cmp si, ax ; serial port is already later on the list than any other controllers 427 ja .done; (also takes care of the case where there are no other controllers)425 ja SHORT .done ; (also takes care of the case where there are no other controllers) 428 426 429 427 ; … … 438 436 mov di, sp 439 437 440 mov cx, IDEVARS_size441 438 push ss 442 439 pop es 443 440 441 %if IDEVARS_size & 1 442 mov cl, IDEVARS_size 444 443 rep movsb 444 %else 445 mov cl, IDEVARS_size / 2 446 rep movsw 447 %endif 445 448 446 449 lea di, [si-IDEVARS_size] ; move up all the idevars below the serial, by one slot … … 457 460 push ss 458 461 pop ds 459 mov cx, IDEVARS_size460 462 ; di is already at last IDEVARS position 461 463 464 %if IDEVARS_size & 1 465 mov cl, IDEVARS_size 462 466 rep movsb 467 %else 468 mov cl, IDEVARS_size / 2 469 rep movsw 470 %endif 463 471 464 472 add sp, IDEVARS_size … … 469 477 mov dh, 1 ; set flag that we have done a relocation 470 478 471 jmp .outerLoop479 jmp SHORT .outerLoop 472 480 473 481 .done: … … 478 486 479 487 test dh, dh 480 jz .noWorkDone488 jz SHORT .noWorkDone 481 489 482 490 mov dx, g_szSerialMoved -
trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/FlashMenu.asm
r568 r589 328 328 call .GetSelectedEepromSizeInWordsToAX 329 329 xor dx, dx 330 shlax, 1 ; Size in bytes to...331 rcldx, 1 ; ...DX:AX330 eSHL_IM ax, 1 ; Size in bytes to... 331 eRCL_IM dx, 1 ; ...DX:AX 332 332 333 333 cmp WORD [si+FLASHVARS.wEepromPageSize], BYTE 1 -
trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/IdeControllerMenu.asm
r588 r589 571 571 572 572 573 ;574 ; No change to Device byte, but use this opportunity to change defaults stored in wPort and wPortCtrl if we are575 ; changing in/out of a Serial device (since we use these bytes in radically different ways).576 ;577 573 ALIGN JUMP_ALIGN 578 574 IdeControllerMenu_WriteDevice: … … 581 577 push ax 582 578 579 mov bl, [es:di] ; What is the current Device we are changing from? 580 sub di, BYTE IDEVARS.bDevice - IDEVARS.wBasePort ; Get ready to set the Port addresses 581 583 582 ; Note! AL is the choice index, not device code 584 shl ax, 1 ; Selection to device code 585 mov bl, [es:di] ; what is the current Device we are changing from? 586 sub di, BYTE IDEVARS.bDevice - IDEVARS.wBasePort ; Get ready to set the Port addresses 583 shl al, 1 ; Selection to device code 584 585 ; Restore ports and other stuff to default values 586 jz SHORT .StandardIdeDevice ; DEVICE_16BIT_ATA 587 588 cmp al, DEVICE_8BIT_ATA 589 ja SHORT .NotStandardIdeDevice 590 jb SHORT .AdvancedAtaDevice ; DEVICE_32BIT_ATA 591 test BYTE [es:ROMVARS.wFlags], FLG_ROMVARS_MODULE_8BIT_IDE 592 jmp SHORT .CheckZF 593 594 .AdvancedAtaDevice: 595 test BYTE [es:ROMVARS.wFlags+1], FLG_ROMVARS_MODULE_ADVANCED_ATA >> 8 596 .CheckZF: 597 jz SHORT .SupportForDeviceNotAvailable 598 599 ; Standard ATA controllers, including 8-bit mode 600 .StandardIdeDevice: 601 lea ax, [di-ROMVARS.ideVars0+IDEVARS.wBasePort] 602 mov bl, IDEVARS_size 603 div bl 604 mov bx, .rgbLowByteOfStdIdeInterfacePorts 605 xlat 606 mov ah, 1 ; DEVICE_ATA_*_PORT >> 8 607 mov bh, 3 ; DEVICE_ATA_*_PORTCTRL >> 8 608 mov bl, al 609 jmp SHORT .WriteNonSerial 610 611 .rgbLowByteOfStdIdeInterfacePorts: ; Defaults for 16-bit and better ATA devices 612 db DEVICE_ATA_PRIMARY_PORT & 0FFh 613 db DEVICE_ATA_SECONDARY_PORT & 0FFh 614 db DEVICE_ATA_TERTIARY_PORT & 0FFh 615 db DEVICE_ATA_QUATERNARY_PORT & 0FFh 616 617 .NotStandardIdeDevice: 587 618 cmp al, DEVICE_SERIAL_PORT 588 je SHORT .ChangingToSerial 619 jb SHORT .NotSerialDevice 620 test BYTE [es:ROMVARS.wFlags+1], FLG_ROMVARS_MODULE_SERIAL >> 8 621 jnz SHORT .ChangingToSerial 622 623 .SupportForDeviceNotAvailable: 624 push dx 625 mov dx, g_szUnsupportedDevice 626 call Dialogs_DisplayErrorFromCSDX 627 pop dx 628 629 ; Restore device type to the previous value 630 pop ax ; Get choice index from stack 631 mov al, bl ; Previous device type to AL 632 shr al, 1 ; Device code to choice index 633 jmp SHORT .DoneWithNoChangeOfDevice 634 635 .NotSerialDevice: 636 ; Remaining device types all require MODULE_8BIT_IDE or MODULE_8BIT_IDE_ADVANCED 637 test BYTE [es:ROMVARS.wFlags], FLG_ROMVARS_MODULE_8BIT_IDE | FLG_ROMVARS_MODULE_8BIT_IDE_ADVANCED 638 jz SHORT .SupportForDeviceNotAvailable 639 640 ; We know MODULE_8BIT_IDE is included 641 lahf ; Save the PF 642 cmp al, DEVICE_8BIT_XTIDE_REV2 643 jbe SHORT .ChangingToXTIDEorXTCF 644 sahf ; Restore the PF 645 jpo SHORT .SupportForDeviceNotAvailable ; Jump if no MODULE_8BIT_IDE_ADVANCED 589 646 cmp al, DEVICE_8BIT_JRIDE_ISA 590 647 je SHORT .ChangingToJrIdeIsa … … 592 649 je SHORT .ChangingToADP50L 593 650 594 ; Restore ports to default values 595 cmp al, DEVICE_8BIT_ATA ; Standard ATA controllers, including 8-bit mode 596 mov ax, DEVICE_ATA_PRIMARY_PORT ; Defaults for 16-bit and better ATA devices 597 mov bx, DEVICE_ATA_PRIMARY_PORTCTRL 598 jbe SHORT .WriteNonSerial 599 651 .ChangingToXTIDEorXTCF: 600 652 mov ax, DEVICE_XTIDE_DEFAULT_PORT ; Defaults for 8-bit XTIDE and XT-CF devices 601 653 mov bx, DEVICE_XTIDE_DEFAULT_PORTCTRL … … 631 683 .Done: 632 684 pop ax 685 .DoneWithNoChangeOfDevice: 633 686 pop di ; IDEVARS.bDevice 634 687 pop bx
Note:
See TracChangeset
for help on using the changeset viewer.