Changeset 491 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS
- Timestamp:
- Dec 15, 2012, 2:46:29 PM (12 years ago)
- google:author:
- krille_n_@hotmail.com
- Location:
- trunk/XTIDE_Universal_BIOS
- Files:
-
- 24 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Inc/Controllers/XTCF.inc
r487 r491 5 5 6 6 ; 7 ; XTIDE Universal BIOS and Associated Tools 7 ; XTIDE Universal BIOS and Associated Tools 8 8 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team. 9 9 ; … … 12 12 ; the Free Software Foundation; either version 2 of the License, or 13 13 ; (at your option) any later version. 14 ; 14 ; 15 15 ; This program is distributed in the hope that it will be useful, 16 16 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 17 17 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 ; GNU General Public License for more details. 18 ; GNU General Public License for more details. 19 19 ; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 20 20 ; … … 34 34 ; Possible base addresses. Note that all XT-CF IDE registers are SHL 1 compared 35 35 ; to standard IDE registers. 36 XTCF_BASE_PORT_DETECTION_SEED EQU 140h ; Not a valid base address but needed for autodetection 36 37 XTCF_BASE_PORT_1 EQU 200h 37 38 XTCF_BASE_PORT_2 EQU 240h … … 42 43 ; XT-CF Control Register (do not SHL 1 these!) 43 44 XTCF_CONTROL_REGISTER EQU 1Fh 44 XTC T_CONTROL_REGISTER_INVERTED_in EQU 1Eh45 XTCF_CONTROL_REGISTER_INVERTED_in EQU 1Eh 45 46 46 47 ; Control Register contents: … … 48 49 ; Control Register holds high byte from Sector Window segment if >= A0h 49 50 ; (First possible segment for Sector Window is A000h) 50 ; 51 ; 51 52 ; 8-bit PIO transfers (port I/O) are used if Control Register is zero. 52 53 ; Any other value means DMA transfers (using DMA channel 3). -
trunk/XTIDE_Universal_BIOS/Inc/CustomDPT.inc
r488 r491 45 45 .twLbaSectors resb 6 ; 48-bit sector count for LBA addressing 46 46 %endif 47 alignb 2 ; WORD align ent for DPT_SERIAL or DPT_ATA47 alignb 2 ; WORD alignment for DPT_SERIAL or DPT_ATA 48 48 endstruc 49 49 … … 133 133 ; first! DPT_ATA.bDevice uses small values so there will be no problems. 134 134 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS 135 %if DPT_SERIAL.bSerialPort <> DPT_ATA.bDevice 136 %error "DPT_ATA.bDevice and DPT_SERIAL.bSerialPort must be in same offsets!" 135 %if DPT_SERIAL.bSerialPort <> DPT_ATA.bDevice 136 %error "DPT_ATA.bDevice and DPT_SERIAL.bSerialPort must be in same offsets!" 137 %endif 137 138 %endif 138 %endif 139 %endif 139 %endif ; MODULE_SERIAL 140 140 141 141 -
trunk/XTIDE_Universal_BIOS/Inc/IDE_8bit.inc
r445 r491 55 55 shl cx, 5 56 56 %else 57 UNROLL_SECTORS_IN_CX_TO_QWORDS 58 shr cx, 1 57 ; UNROLL_SECTORS_IN_CX_TO_QWORDS 58 ; shr cx, 1 59 mov ch, cl ; 2 bytes shorter but possibly slower 60 mov cl, 3 61 shr cx, cl 59 62 %endif 60 63 %endmacro -
trunk/XTIDE_Universal_BIOS/Inc/ModuleDependency.inc
r477 r491 1 ; /*2 1 ; Project name : XTIDE Universal BIOS 3 2 ; Description : Dependencies for optional modules. 4 3 5 4 ; 6 ; XTIDE Universal BIOS and Associated Tools 5 ; XTIDE Universal BIOS and Associated Tools 7 6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team. 8 7 ; … … 11 10 ; the Free Software Foundation; either version 2 of the License, or 12 11 ; (at your option) any later version. 13 ; 12 ; 14 13 ; This program is distributed in the hope that it will be useful, 15 14 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 16 15 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 ; GNU General Public License for more details. 16 ; GNU General Public License for more details. 18 17 ; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 19 18 ; … … 31 30 %endif 32 31 %endif 33 34 32 35 33 … … 53 51 %include "HotkeyBar.inc" ; For Hotkeys 54 52 %ifdef MODULE_BOOT_MENU 55 %include "BootMenu.inc" 53 %include "BootMenu.inc" ; For Boot Menu 56 54 %endif 57 55 %endif … … 60 58 %include "IntController.inc" 61 59 %endif 62 63 60 64 61 -
trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeDmaBlock.asm
r486 r491 74 74 ;-------------------------------------------------------------------- 75 75 TransferBlockToOrFromXTCF: 76 ; 8-bit DMA transfers must be done within g64k physical page.76 ; 8-bit DMA transfers must be done within 64k physical page. 77 77 ; XT-CF support maximum of 64 sector (32768 bytes) blocks in DMA mode 78 78 ; so we never need to separate transfer to more than 2 separate DMA operations. -
trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeIO.asm
r473 r491 53 53 IdeIO_InputToALfromIdeRegisterInDL: 54 54 xor dh, dh ; IDE Register index now in DX 55 55 mov bx, dx ; and BX 56 56 mov al, [di+DPT_ATA.bDevice] 57 57 cmp al, DEVICE_8BIT_XTIDE_REV2 … … 63 63 64 64 .InputToALfromMemoryMappedRegisterInDX: 65 mov bx, JRIDE_COMMAND_BLOCK_REGISTER_WINDOW_OFFSET66 add bx, dx67 65 push ds 68 66 mov ds, [di+DPT.wBasePort] ; Segment for JR-IDE/ISA 69 mov al, [bx ]67 mov al, [bx+JRIDE_COMMAND_BLOCK_REGISTER_WINDOW_OFFSET] 70 68 pop ds 71 69 ret 72 70 73 71 .ReverseA0andA3fromRegisterIndexInDX: 74 mov bx, dx75 72 mov dl, [cs:bx+g_rgbSwapA0andA3fromIdeRegisterIndex] 76 73 SKIP2B bx ; Skip shl dx, 1 77 74 78 75 .ShlRegisterIndexInDX: 79 shldx, 176 eSHL_IM dx, 1 80 77 ; Fall to .InputToALfromRegisterInDX 81 78 … … 116 113 .ShlRegisterIndexInDX: 117 114 add dl, OFFSET_TO_CONTROL_BLOCK_REGISTERS 118 shldx, 1115 eSHL_IM dx, 1 119 116 jmp SHORT OutputALtoRegisterInDX 120 117 … … 164 161 165 162 .ShlRegisterIndexInDX: 166 shldx, 1163 eSHL_IM dx, 1 167 164 ; Fall to OutputALtoRegisterInDX 168 165 -
trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeTransfer.asm
r480 r491 231 231 232 232 ; Convert ES:SI to physical address 233 xor dx, dx 234 mov ax, es 233 %ifdef USE_186 ; Bytes EU Cycles(286) 234 mov ax, es ; 2 2 235 rol ax, 4 ; 3 9 236 mov dx, ax ; 2 2 237 and ax, BYTE 0Fh; 3 3 238 xor dx, ax ; 2 2 239 add si, dx ; 2 2 240 adc al, ah ; 2 2 241 mov es, ax ; 2 2 242 ;------------------------------------ 243 ; 18 24 244 %else ; 808x 245 246 %if 0 247 ; Bytes EU Cycles(808x) 248 mov al, 4 ; 2 4 249 mov dx, es ; 2 2 250 xchg cx, ax ; 1 3 251 rol dx, cl ; 2 24 252 mov cx, dx ; 2 2 253 xchg cx, ax ; 1 3 254 and ax, BYTE 0Fh; 3 4 255 xor dx, ax ; 2 3 256 add si, dx ; 2 3 257 adc al, ah ; 2 3 258 mov es, ax ; 2 2 259 ;------------------------------------ 260 ; 21 53 261 ; 262 ; Judging by the Execution Unit cycle count the above block of code is 263 ; apparently slower. However, the shifts and rotates in the block below 264 ; execute faster than the Bus Interface Unit on an 8088 can fetch them, 265 ; thus causing the EU to starve. The difference in true execution speed 266 ; (if any) might not be worth the extra 5 bytes. 267 ; In other words, we could use a real world test here. 268 ; 269 %endif ; 0 270 ; Bytes EU Cycles(808x/286) 271 xor dx, dx ; 2 3/2 272 mov ax, es ; 2 2/2 235 273 %rep 4 236 shl ax, 1 237 rcl dx, 1 274 shl ax, 1 ; 8 8/8 275 rcl dx, 1 ; 8 8/8 238 276 %endrep 239 add si, ax 240 adc dl, dh 241 mov es, dx 277 add si, ax ; 2 3/2 278 adc dl, dh ; 2 3/2 279 mov es, dx ; 2 2/2 280 ;------------------------------------ 281 %endif ; 26 29/26 242 282 ret 243 283 %endif ; MODULE_8BIT_IDE … … 266 306 %ifdef MODULE_8BIT_IDE 267 307 dw IdePioBlock_ReadFrom8bitDataPort ; 2, DEVICE_8BIT_ATA 268 dw IdePioBlock_ReadFromXtideRev1 ; 3, DEVICE_8BIT_XTIDE_REV1 308 dw IdePioBlock_ReadFromXtideRev1 ; 3, DEVICE_8BIT_XTIDE_REV1 269 309 dw IdePioBlock_ReadFromXtideRev2 ; 4, DEVICE_8BIT_XTIDE_REV2 270 310 dw IdePioBlock_ReadFrom8bitDataPort ; 5, DEVICE_8BIT_XTCF_PIO8 -
trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeWait.asm
r489 r491 3 3 4 4 ; 5 ; XTIDE Universal BIOS and Associated Tools 5 ; XTIDE Universal BIOS and Associated Tools 6 6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team. 7 7 ; … … 10 10 ; the Free Software Foundation; either version 2 of the License, or 11 11 ; (at your option) any later version. 12 ; 12 ; 13 13 ; This program is distributed in the hope that it will be useful, 14 14 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 15 15 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 ; GNU General Public License for more details. 16 ; GNU General Public License for more details. 17 17 ; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 18 ; 18 ; 19 19 20 20 ; Section containing code … … 93 93 ; AL, BX, CX, DX 94 94 ;-------------------------------------------------------------------- 95 .IdePollBsyAndFlgInAH:95 PollBsyAndFlgInAH: 96 96 call IdeIO_InputStatusRegisterToAL ; Discard contents of first read 97 97 -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH0h_HReset.asm
r489 r491 3 3 4 4 ; 5 ; XTIDE Universal BIOS and Associated Tools 5 ; XTIDE Universal BIOS and Associated Tools 6 6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team. 7 7 ; … … 10 10 ; the Free Software Foundation; either version 2 of the License, or 11 11 ; (at your option) any later version. 12 ; 12 ; 13 13 ; This program is distributed in the hope that it will be useful, 14 14 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 15 15 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 ; GNU General Public License for more details. 16 ; GNU General Public License for more details. 17 17 ; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 18 ; 18 ; 19 19 20 20 ; Section containing code … … 155 155 mov dl, ROMVARS.ideVars0 ; starting Idevars offset 156 156 157 ; Get count of ALL Idevars structures, not just the ones that are configured. This may seem odd, 157 ; Get count of ALL Idevars structures, not just the ones that are configured. This may seem odd, 158 158 ; but it catches the .ideVarsSerialAuto structure, which would not be scanned if the count from 159 159 ; RamVars_GetIdeControllerCountToCX was used. Unused controllers won't make a difference, since no DPT … … 174 174 175 175 .done: 176 .NoForeignDrivesToReset:177 176 ret -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH1Eh_XTCF.asm
r477 r491 3 3 4 4 ; 5 ; XTIDE Universal BIOS and Associated Tools 5 ; XTIDE Universal BIOS and Associated Tools 6 6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team. 7 7 ; … … 10 10 ; the Free Software Foundation; either version 2 of the License, or 11 11 ; (at your option) any later version. 12 ; 12 ; 13 13 ; This program is distributed in the hope that it will be useful, 14 14 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 15 15 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 ; GNU General Public License for more details. 16 ; GNU General Public License for more details. 17 17 ; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 18 ; 18 ; 19 19 20 20 ; Section containing code … … 63 63 call AccessDPT_IsThisDeviceXTCF 64 64 jne SHORT XTCFnotFound 65 and ax, BYTE 7Fh ; Subcommand now in AX 65 and ax, BYTE 7Fh ; Subcommand now in AX (clears AH and CF) 66 66 jz SHORT .ReturnWithSuccess ; IS_THIS_DRIVE_XTCF 67 67 … … 70 70 jnz SHORT .SkipReadXtcfControlRegisterToDH 71 71 mov dx, [di+DPT.wBasePort] 72 add dl, XTCF_CONTROL_REGISTER 72 add dl, XTCF_CONTROL_REGISTER ; Will never overflow (keeps CF cleared) 73 73 in al, dx 74 74 mov [bp+IDEPACK.intpack+INTPACK.dh], al 75 75 .ReturnWithSuccess: 76 xor ah, ah77 ret 76 ret ; With AH and CF cleared 77 78 78 .SkipReadXtcfControlRegisterToDH: 79 80 79 ; WRITE_DH_TO_XTCF_CONTROL_REGISTER 81 80 dec ax ; Subcommand … … 122 121 mov BYTE [di+DPT_ATA.bDevice], DEVICE_8BIT_XTCF_PIO8 123 122 ; Fall to .Enable8bitPioMode 124 123 125 124 ; We always need to enable 8-bit mode since 16-bit mode is restored 126 ; when controller is reset (AH=0 h orDh)127 .Enable8bitPioMode: 125 ; when controller is reset (AH=00h or 0Dh) 126 .Enable8bitPioMode: 128 127 jmp AH23h_Enable8bitPioMode 129 128 … … 143 142 AH1Eh_DetectXTCFwithBasePortInDX: 144 143 push dx 145 add dl, XTC T_CONTROL_REGISTER_INVERTED_in ; set DX to XT-CF config register (inverted)144 add dl, XTCF_CONTROL_REGISTER_INVERTED_in ; set DX to XT-CF config register (inverted) 146 145 in al, dx ; get value 147 146 mov ah, al ; save in ah -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH24h_HSetBlocks.asm
r473 r491 3 3 4 4 ; 5 ; XTIDE Universal BIOS and Associated Tools 5 ; XTIDE Universal BIOS and Associated Tools 6 6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team. 7 7 ; … … 10 10 ; the Free Software Foundation; either version 2 of the License, or 11 11 ; (at your option) any later version. 12 ; 12 ; 13 13 ; This program is distributed in the hope that it will be useful, 14 14 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 15 15 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 ; GNU General Public License for more details. 16 ; GNU General Public License for more details. 17 17 ; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 18 ; 18 ; 19 19 20 20 ; Section containing code … … 59 59 ;-------------------------------------------------------------------- 60 60 AH24h_SetBlockSize: 61 %ifdef MODULE_8BIT_IDE 61 62 ; XT-CF does not support largest block size in DMA mode. 62 %ifdef MODULE_8BIT_IDE63 call AccessDPT_IsThisDeviceXTCF64 cmp ah, DEVICE_8BIT_XTCF_DMA65 jne SHORT .NoNeedToLimitBlockSize66 63 cmp al, XTCF_DMA_MODE_MAX_BLOCK_SIZE 67 ja SHORT AH1Eh_LoadInvalidCommandToAHandSetCF 64 jbe SHORT .NoNeedToLimitBlockSize 65 cmp BYTE [di+DPT_ATA.bDevice], DEVICE_8BIT_XTCF_DMA 66 je SHORT AH1Eh_LoadInvalidCommandToAHandSetCF 68 67 .NoNeedToLimitBlockSize: 69 68 %endif ; MODULE_8BIT_IDE -
trunk/XTIDE_Universal_BIOS/Src/Initialization/AtaID.asm
r487 r491 36 36 ; corrupted. We start by making sure P-CHS values are valid. 37 37 ; If they are, we assume the ATA ID to be valid. Fortunately we can do 38 ; fu ther checking for ATA-5 and later since they contain signature and38 ; further checking for ATA-5 and later since they contain signature and 39 39 ; checksum bytes. Those are not available for ATA-4 and older. 40 40 -
trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectDrives.asm
r474 r491 3 3 4 4 ; 5 ; XTIDE Universal BIOS and Associated Tools 5 ; XTIDE Universal BIOS and Associated Tools 6 6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team. 7 7 ; … … 10 10 ; the Free Software Foundation; either version 2 of the License, or 11 11 ; (at your option) any later version. 12 ; 12 ; 13 13 ; This program is distributed in the hope that it will be useful, 14 14 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 15 15 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 ; GNU General Public License for more details. 16 ; GNU General Public License for more details. 17 17 ; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 18 ; 18 ; 19 19 20 20 ; Section containing code … … 153 153 ;-------------------------------------------------------------------- 154 154 StartDetectionWithDriveSelectByteInBHandStringInCX: 155 %ifdef MODULE_8BIT_IDE 155 156 ; Autodetect port for XT-CF 156 %ifdef MODULE_8BIT_IDE157 157 call DetectDrives_DoesIdevarsInCSBPbelongToXTCF 158 158 jne SHORT .SkipXTCFportDetection … … 165 165 ; for next drive (another XT-CF card on same system) 166 166 .DetectNextPort: 167 call BootVars_GetNextXTCFportToDetectToDX 168 cmp dx, XTCF_BASE_PORT_4 167 mov dx, [es:BOOTVARS.wNextXTCFportToScan] 168 xor dl, 40h 169 jnz SHORT .StoreNextXTCFportToScan 170 inc dh 171 cmp dh, XTCF_BASE_PORT_4 >> 8 169 172 ja SHORT .SkipXTCFportDetection ; XT-CF not found from any port 173 .StoreNextXTCFportToScan: 174 mov [es:BOOTVARS.wNextXTCFportToScan], dx 170 175 171 176 call AH1Eh_DetectXTCFwithBasePortInDX … … 178 183 jmp SHORT .DriveDetectionStringPrintedOnScreen 179 184 180 ; Print detect string for devices that do not support autodetection 185 ; Print detect string for devices that do not support autodetection 181 186 .SkipXTCFportDetection: 182 187 push dx -
trunk/XTIDE_Universal_BIOS/Src/Initialization/Interrupts.asm
r489 r491 3 3 4 4 ; 5 ; XTIDE Universal BIOS and Associated Tools 5 ; XTIDE Universal BIOS and Associated Tools 6 6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team. 7 7 ; … … 10 10 ; the Free Software Foundation; either version 2 of the License, or 11 11 ; (at your option) any later version. 12 ; 12 ; 13 13 ; This program is distributed in the hope that it will be useful, 14 14 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 15 15 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 ; GNU General Public License for more details. 16 ; GNU General Public License for more details. 17 17 ; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 18 ; 18 ; 19 19 20 20 ; Section containing code … … 97 97 .InitializeHardwareIrqHandlers: 98 98 call RamVars_GetIdeControllerCountToCX 99 mov di, ROMVARS.ideVars0 99 mov di, ROMVARS.ideVars0+IDEVARS.bIRQ ; CS:SI points to first IDEVARS 100 100 .IdeControllerLoop: 101 mov al, [cs:di +IDEVARS.bIRQ]101 mov al, [cs:di] 102 102 add di, BYTE IDEVARS_size ; Increment to next controller 103 103 call .InstallLowOrHighIrqHandler -
trunk/XTIDE_Universal_BIOS/Src/Main.asm
r489 r491 80 80 at ROMVARS.wDisplayMode, dw DEFAULT_TEXT_MODE 81 81 %ifdef MODULE_BOOT_MENU 82 82 at ROMVARS.wBootTimeout, dw BOOT_MENU_DEFAULT_TIMEOUT 83 83 %endif 84 84 at ROMVARS.bIdeCnt, db 2 ; Number of supported controllers … … 88 88 at ROMVARS.bIdleTimeout, db 0 ; Standby timer disabled by default 89 89 90 at ROMVARS.ideVars0+IDEVARS.wBasePort, dw 300h; Controller Command Block base port91 at ROMVARS.ideVars0+IDEVARS.wControlBlockPort, dw 310h; Controller Control Block base port90 at ROMVARS.ideVars0+IDEVARS.wBasePort, dw DEVICE_ATA_PRIMARY_PORT ; Controller Command Block base port 91 at ROMVARS.ideVars0+IDEVARS.wControlBlockPort, dw DEVICE_ATA_PRIMARY_PORTCTRL ; Controller Control Block base port 92 92 at ROMVARS.ideVars0+IDEVARS.bDevice, db DEVICE_16BIT_ATA 93 93 at ROMVARS.ideVars0+IDEVARS.bIRQ, db 0 … … 126 126 at ROMVARS.wDisplayMode, dw DEFAULT_TEXT_MODE 127 127 %ifdef MODULE_BOOT_MENU 128 128 at ROMVARS.wBootTimeout, dw BOOT_MENU_DEFAULT_TIMEOUT 129 129 %endif 130 130 at ROMVARS.bIdeCnt, db 2 ; Number of supported controllers -
trunk/XTIDE_Universal_BIOS/Src/Menus/BootMenu/BootMenuPrint.asm
r489 r491 76 76 ;-------------------------------------------------------------------- 77 77 BootMenuPrint_TitleStrings: 78 xor di,di ; Null character will be eaten 78 xor di,di ; Null character will be eaten 79 79 mov si, g_szBootMenuTitle 80 80 jmp DetectPrint_RomFoundAtSegment.BootMenuEntry 81 81 82 82 83 83 ;-------------------------------------------------------------------- 84 84 ; BootMenuPrint_RefreshInformation … … 203 203 jz SHORT BootMenuPrint_RefreshInformation.FormatRelay 204 204 205 %include "BootMenuPrintCfg.asm" ; inline of code to fill out remainder of information string205 %include "BootMenuPrintCfg.asm" ; Inline of code to fill out remainder of information string 206 206 jmp DetectPrint_FormatCSSIfromParamsInSSBP 207 207 208 208 209 209 FloppyTypes: 210 .rgbCapacityMultiplier equ 20; Multiplier to reduce word sized values to byte size210 .rgbCapacityMultiplier equ 120 ; Multiplier to reduce word sized values to byte size 211 211 .rgbCapacity: 212 212 db 360 / FloppyTypes.rgbCapacityMultiplier ; type 1 -
trunk/XTIDE_Universal_BIOS/Src/Menus/BootMenu/BootMenuPrintCfg.asm
r473 r491 51 51 ; CS:BX: Ptr to IDEVARS 52 52 ; Returns: 53 ; Nothing ( jumps to next push below)53 ; Nothing (falls to next push below) 54 54 ; Corrupts registers: 55 55 ; AX, CX, DX … … 86 86 .PushBlockSizeFromAX: 87 87 push ax 88 ; Fall to .PushDeviceType 88 89 89 90 ;-------------------------------------------------------------------- 90 ; PushDeviceType 91 ; Parameters: 92 ; DS:DI: Ptr to DPT 93 ; CS:BX: Ptr to IDEVARS 94 ; Returns: 95 ; Nothing (jumps to next push below) 96 ; Corrupts registers: 97 ; AX, DX 98 ;-------------------------------------------------------------------- 99 .PushDeviceType: 100 mov al,g_szDeviceTypeValues_Displacement 101 %ifdef MODULE_SERIAL 102 mov ah, [cs:bx+IDEVARS.bDevice] 103 test BYTE [di+DPT.bFlagsHigh], FLGH_DPT_SERIAL_DEVICE 104 eCMOVZ ah, [di+DPT_ATA.bDevice] ; DPT_ATA contains up to date device information for IDE drives 105 mul ah 106 %else 107 mul BYTE [di+DPT_ATA.bDevice] 108 %endif 109 110 shr ax,1 ; divide by 2 since IDEVARS.bDevice is multiplied by 2 111 112 add ax, g_szDeviceTypeValues 113 push ax 114 115 ;-------------------------------------------------------------------- 116 ; PushIRQ 91 ; .PushDeviceType 117 92 ; Parameters: 118 93 ; DS:DI: Ptr to DPT … … 121 96 ; Nothing (falls to next push below) 122 97 ; Corrupts registers: 123 ; AX, DX 98 ; AX 99 ;-------------------------------------------------------------------- 100 .PushDeviceType: 101 %ifndef MODULE_SERIAL 102 mov al, g_szDeviceTypeValues_Displacement 103 mul BYTE [di+DPT_ATA.bDevice] 104 %else 105 mov ah, [cs:bx+IDEVARS.bDevice] 106 test BYTE [di+DPT.bFlagsHigh], FLGH_DPT_SERIAL_DEVICE ; Clears CF 107 eCMOVZ ah, [di+DPT_ATA.bDevice] ; DPT_ATA contains up to date device information for IDE drives 108 %ifdef USE_UNDOC_INTEL 109 eSALC ; Clear AL using CF (from TEST above) 110 eAAD g_szDeviceTypeValues_Displacement 111 %else 112 mov al, g_szDeviceTypeValues_Displacement 113 mul ah 114 %endif ; USE_UNDOC_INTEL 115 %endif ; MODULE_SERIAL 116 117 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS 118 %if (COUNT_OF_ALL_IDE_DEVICES * 2 * g_szDeviceTypeValues_Displacement) > 255 119 %error "The USE_UNDOC_INTEL block in .PushDeviceType needs to be removed (would cause an overflow)!" 120 %endif 121 %endif 122 123 shr ax, 1 ; Divide by 2 since IDEVARS.bDevice is multiplied by 2 124 add ax, g_szDeviceTypeValues 125 push ax 126 ; Fall to .PushIRQ 127 128 ;-------------------------------------------------------------------- 129 ; .PushIRQ 130 ; Parameters: 131 ; DS:DI: Ptr to DPT 132 ; CS:BX: Ptr to IDEVARS 133 ; Returns: 134 ; Nothing (falls to next push below) 135 ; Corrupts registers: 136 ; AX 124 137 ;-------------------------------------------------------------------- 125 138 .PushIRQ: … … 127 140 cbw 128 141 push ax 142 ; Fall to .PushResetStatus 129 143 130 144 ;-------------------------------------------------------------------- 131 ; PushResetStatus145 ; .PushResetStatus 132 146 ; Parameters: 133 147 ; DS:DI: Ptr to DPT -
trunk/XTIDE_Universal_BIOS/Src/Menus/HotkeyBar.asm
r410 r491 327 327 HotkeyBar_StoreHotkeyToBootvarsForDriveLetterInDL: 328 328 eMOVZX ax, dl 329 call Char_ChangeCaseInAL; Upper case drive letter to lower case keystroke329 xor al, 32 ; Upper case drive letter to lower case keystroke 330 330 jmp SHORT HotkeyBar_StoreHotkeyToBootvarsIfValidKeystrokeInAX 331 331 … … 376 376 call Char_IsLowerCaseLetterInAL 377 377 jnc SHORT .KeystrokeIsNotValidHotkey 378 call Char_ChangeCaseInAL; We want to print upper case letters378 xor al, 32 ; We want to print upper case letters 379 379 380 380 ; Clear HD First flag to assume Floppy Drive hotkey -
trunk/XTIDE_Universal_BIOS/Src/Strings.asm
r489 r491 3 3 4 4 ; 5 ; XTIDE Universal BIOS and Associated Tools 5 ; XTIDE Universal BIOS and Associated Tools 6 6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team. 7 7 ; … … 10 10 ; the Free Software Foundation; either version 2 of the License, or 11 11 ; (at your option) any later version. 12 ; 12 ; 13 13 ; This program is distributed in the hope that it will be useful, 14 14 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 15 15 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 16 ; GNU General Public License for more details. 17 ; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 18 ; 17 ; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 18 ; 19 19 20 20 %ifdef MODULE_STRINGS_COMPRESSED_PRECOMPRESS … … 24 24 ; Section containing code 25 25 SECTION .text 26 27 ; POST drive detection strings28 g_szDashForZero: db "- ",NULL ; Required by Display Library29 g_szRomAt: db LF,CR30 db "%s @ %x",LF,CR ; -=XTIDE ... =- @ Segment31 db "%s",LF,CR ; version string32 db "Released under GNU GPL v2",LF,CR33 db LF,CR,NULL34 %ifdef MODULE_BOOT_MENU35 g_szBootMenuTitle: db "%s%c",LF,CR ; -=XTIDE ... =- and null (eaten)36 db "%s",NULL ; version string37 %endif38 g_szDriveName: db "%z",LF,CR,NULL39 26 40 27 ; The following strings are used by DetectPrint_StartDetectWithMasterOrSlaveStringInCXandIdeVarsInCSBP … … 47 34 g_szDetectOuter: db "%s at %s: ",NULL 48 35 %ifdef MODULE_SERIAL 49 g_szDetectCOM: db 36 g_szDetectCOM: db "COM%c%s",NULL 50 37 g_szDetectCOMAuto: db " Detect",NULL 51 38 g_szDetectCOMSmall: db "/%u%u00",NULL ; IDE Master at COM1/9600: … … 53 40 %endif 54 41 g_szDetectEnd: 55 g_szDetectPort: db "%x",NULL 42 g_szDetectPort: db "%x",NULL ; IDE Master at 1F0h: 56 43 57 44 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS 58 45 %if ((g_szDetectEnd-$$) & 0xff00) <> ((g_szDetectStart-$$) & 0xff00) 59 %error "g_szDetect* strings must start on the same 256 byte page, required by DetectPrint_StartDetectWithMasterOrSlaveStringInCXandIdeVarsInCSBP. Please move this block up or down within strings.asm" 60 %endif 61 %endif 46 %error "g_szDetect* strings must start on the same 256 byte page, required by DetectPrint_StartDetectWithMasterOrSlaveStringInCXandIdeVarsInCSBP. Please move this block up or down within Strings.asm" 47 %endif 48 %endif 49 50 51 ; POST drive detection strings 52 g_szDashForZero: db "- ",NULL ; Required by Display Library 53 g_szRomAt: db LF,CR 54 db "%s @ %x",LF,CR ; -=XTIDE ... =- @ Segment 55 db "%s",LF,CR ; version string 56 db "Released under GNU GPL v2",LF,CR 57 db LF,CR,NULL 58 %ifdef MODULE_BOOT_MENU 59 g_szBootMenuTitle: db "%s%c",LF,CR ; -=XTIDE ... =- and null (eaten) 60 db "%s",NULL ; version string 61 %endif 62 g_szDriveName: db "%z",LF,CR,NULL 62 63 63 64 … … 70 71 71 72 %ifdef MODULE_HOTKEYS 72 73 73 ; Hotkey Bar strings 74 74 g_szFDD: db "FDD [%c]",NULL ; "FDD [A]" … … 81 81 82 82 %ifdef MODULE_BOOT_MENU 83 84 83 ; Boot Menu Floppy Disk strings 85 84 ; … … 89 88 ; 90 89 g_szFddStart: 91 g_szFddUnknown: db "Unknown",NULL92 g_szFddSizeOr: db "5",ONE_QUARTER,QUOTATION_MARK," or 3",ONE_HALF,QUOTATION_MARK," DD",NULL93 g_szFddSize: db "%s",QUOTATION_MARK,", %u kiB",NULL ; 3½", 1440 kiB94 g_szFddThreeHalf: db"3",ONE_HALF,NULL90 g_szFddUnknown: db "Unknown",NULL 91 g_szFddSizeOr: db "5",ONE_QUARTER,QUOTATION_MARK," or 3",ONE_HALF,QUOTATION_MARK," DD",NULL 92 g_szFddSize: db "%s",QUOTATION_MARK,", %u kiB",NULL ; 3½", 1440 kiB 93 g_szFddThreeHalf: db "3",ONE_HALF,NULL 95 94 g_szFddEnd: 96 g_szFddFiveQuarter: db"5",ONE_QUARTER,NULL95 g_szFddFiveQuarter: db "5",ONE_QUARTER,NULL 97 96 98 97 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS 99 98 %if ((g_szFddStart-$$) & 0xff00) <> ((g_szFddEnd-$$) & 0xff00) 100 %error "g_szFdd* strings must start on the same 256 byte page, required by the BootMenuPrint_RefreshInformation routines for floppy drives. Please move this block up or down within strings.asm"99 %error "g_szFdd* strings must start on the same 256 byte page, required by the BootMenuPrint_RefreshInformation routines for floppy drives. Please move this block up or down within Strings.asm" 101 100 %endif 102 101 %endif … … 123 122 %endif 124 123 124 125 125 g_szDeviceTypeValues: 126 g_szDeviceTypeValues_16bit: db 127 g_szDeviceTypeValues_32bit: db 128 g_szDeviceTypeValues_8bit: db 129 g_szDeviceTypeValues_XTIDEr1: db 130 g_szDeviceTypeValues_XTIDEr2: db 131 g_szDeviceTypeValues_XTCFpio8: db 132 g_szDeviceTypeValues_XTCFdma: db 133 g_szDeviceTypeValues_XTCFmem: db 134 g_szDeviceTypeValues_JrIde: db 135 g_szDeviceTypeValues_Serial: db 126 g_szDeviceTypeValues_16bit: db " 16",NULL 127 g_szDeviceTypeValues_32bit: db " 32",NULL 128 g_szDeviceTypeValues_8bit: db " 8",NULL 129 g_szDeviceTypeValues_XTIDEr1: db "D8 ",NULL ; Dual 8-bit 130 g_szDeviceTypeValues_XTIDEr2: db "X8 ",NULL ; A0<->A3 swapped 8-bit 131 g_szDeviceTypeValues_XTCFpio8: db "T8 ",NULL ; True 8-bit 132 g_szDeviceTypeValues_XTCFdma: db "8MA",NULL ; DMA 8-bit 133 g_szDeviceTypeValues_XTCFmem: db "M8 ",NULL ; Memory Mapped 8-bit 134 g_szDeviceTypeValues_JrIde: db "M8 ",NULL 135 g_szDeviceTypeValues_Serial: db "SER",NULL 136 136 137 137 g_szDeviceTypeValues_Displacement equ (g_szDeviceTypeValues_32bit - g_szDeviceTypeValues) … … 172 172 %endif 173 173 174 g_szSelectionTimeout: db DOUBLE_BOTTOM_LEFT_CORNER,DOUBLE_LEFT_HORIZONTAL_TO_SINGLE_VERTICAL,"%ASelection in %2-u s",NULL 175 174 175 g_szSelectionTimeout: db DOUBLE_BOTTOM_LEFT_CORNER,DOUBLE_LEFT_HORIZONTAL_TO_SINGLE_VERTICAL,"%ASelection in %2-u s",NULL 176 176 177 177 … … 180 180 g_szCapacityNum: db "%5-u.%u %ciB",NULL 181 181 g_szInformation: db "%s",LF,CR 182 db "Addr. ",SINGLE_VERTICAL,"Block",SINGLE_VERTICAL,"Bus",SINGLE_VERTICAL, 183 db "%s",SINGLE_VERTICAL, "%5-u",SINGLE_VERTICAL, "%s",SINGLE_VERTICAL," %2-I",SINGLE_VERTICAL,"%5-x",NULL182 db "Addr. ",SINGLE_VERTICAL,"Block",SINGLE_VERTICAL,"Bus",SINGLE_VERTICAL,"IRQ",SINGLE_VERTICAL,"Reset",LF,CR 183 db "%s",SINGLE_VERTICAL,"%5-u",SINGLE_VERTICAL,"%s",SINGLE_VERTICAL," %2-I",SINGLE_VERTICAL,"%5-x",NULL 184 184 185 185 … … 199 199 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS 200 200 %if ((g_szBootMenuPrintStart-$$) & 0xff00) <> ((g_szBootMenuPrintEnd-$$) & 0xff00) 201 %error "g_szBootMenuPrint* strings must start on the same 256 byte page, required by the BootMenuPrint_* routines. Please move this block up or down within strings.asm"201 %error "g_szBootMenuPrint* strings must start on the same 256 byte page, required by the BootMenuPrint_* routines. Please move this block up or down within Strings.asm" 202 202 %endif 203 203 %endif … … 221 221 ; * There can only be 32 of these (0-31). 222 222 ; * Keeping the list short is good - this translates to a table in the compressed version. 223 ; An error will be reported if a character or format is no longer being used by any 223 ; An error will be reported if a character or format is no longer being used by any 224 224 ; strings above. 225 225 ; * Please keep items sequential for ease of further editing. -
trunk/XTIDE_Universal_BIOS/Src/StringsCompressed.asm
r489 r491 13 13 14 14 ; 15 ; XTIDE Universal BIOS and Associated Tools 15 ; XTIDE Universal BIOS and Associated Tools 16 16 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team. 17 17 ; … … 20 20 ; the Free Software Foundation; either version 2 of the License, or 21 21 ; (at your option) any later version. 22 ; 22 ; 23 23 ; This program is distributed in the hope that it will be useful, 24 24 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 25 25 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 26 26 ; GNU General Public License for more details. 27 ; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 28 ; 27 ; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 28 ; 29 29 30 30 %ifdef MODULE_STRINGS_COMPRESSED_PRECOMPRESS … … 34 34 ; Section containing code 35 35 SECTION .text 36 37 ; The following strings are used by DetectPrint_StartDetectWithMasterOrSlaveStringInCXandIdeVarsInCSBP 38 ; To support an optimization in that code, these strings must start on the same 256 byte page, 39 ; which is checked at assembly time below. 40 ; 41 g_szDetectStart: 42 g_szDetectMaster: ; db "Master",NULL 43 ; db 4dh, 61h, 73h, 74h, 65h, 72h, 00h ; uncompressed 44 db 53h, 67h, 79h, 7ah, 6bh, 0b8h ; compressed 45 46 g_szDetectSlave: ; db "Slave ",NULL 47 ; db 53h, 6ch, 61h, 76h, 65h, 20h, 00h ; uncompressed 48 db 59h, 72h, 67h, 7ch, 6bh, 00h ; compressed 49 50 g_szDetectOuter: ; db "%s at %s: ",NULL 51 ; db 25h, 73h, 20h, 61h, 74h, 20h, 25h, 73h, 3ah, 20h, 00h ; uncompressed 52 db 3dh, 20h, 67h, 0fah, 3dh, 40h, 00h ; compressed 53 54 %ifdef MODULE_SERIAL 55 g_szDetectCOM: ; db "COM%c%s",NULL 56 ; db 43h, 4fh, 4dh, 25h, 63h, 25h, 73h, 00h ; uncompressed 57 db 49h, 55h, 53h, 3ch, 1dh ; compressed 58 59 g_szDetectCOMAuto: ; db " Detect",NULL 60 ; db 20h, 44h, 65h, 74h, 65h, 63h, 74h, 00h ; uncompressed 61 db 20h, 4ah, 6bh, 7ah, 6bh, 69h, 0bah ; compressed 62 63 g_szDetectCOMSmall: ; db "/%u%u00",NULL ; IDE Master at COM1/9600: 64 ; db 2fh, 25h, 75h, 25h, 75h, 30h, 30h, 00h ; uncompressed 65 db 2ah, 35h, 35h, 33h, 13h ; compressed 66 67 g_szDetectCOMLarge: ; db "/%u.%uK",NULL ; IDE Master at COM1/19.2K: 68 ; db 2fh, 25h, 75h, 2eh, 25h, 75h, 4bh, 00h ; uncompressed 69 db 2ah, 35h, 29h, 35h, 91h ; compressed 70 71 %endif 72 g_szDetectEnd: 73 g_szDetectPort: ; db "%x",NULL ; IDE Master at 1F0h: 74 ; db 25h, 78h, 00h ; uncompressed 75 db 17h ; compressed 76 77 78 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS 79 %if ((g_szDetectEnd-$$) & 0xff00) <> ((g_szDetectStart-$$) & 0xff00) 80 %error "g_szDetect* strings must start on the same 256 byte page, required by DetectPrint_StartDetectWithMasterOrSlaveStringInCXandIdeVarsInCSBP. Please move this block up or down within Strings.asm" 81 %endif 82 %endif 83 36 84 37 85 ; POST drive detection strings … … 48 96 db 3dh, 20h, 0c6h, 37h, 39h ; compressed 49 97 50 ; db "%s",LF,CR ; version string 98 ; db "%s",LF,CR ; version string 51 99 ; db 25h, 73h, 0ah, 0dh ; uncompressed 52 100 db 3dh, 39h ; compressed 53 101 54 ; db "Released under GNU GPL v2",LF,CR55 ; db 56 db 102 ; db "Released under GNU GPL v2",LF,CR 103 ; db 52h, 65h, 6ch, 65h, 61h, 73h, 65h, 64h, 20h, 75h, 6eh, 64h, 65h, 72h, 20h, 47h, 4eh, 55h, 20h, 47h, 50h, 4ch, 20h, 76h, 32h, 0ah, 0dh ; uncompressed 104 db 58h, 6bh, 72h, 6bh, 67h, 79h, 6bh, 0eah, 7bh, 74h, 6ah, 6bh, 0f8h, 4dh, 54h, 0dbh, 4dh, 56h, 0d2h, 7ch, 2ch, 39h ; compressed 57 105 58 106 ; db LF,CR,NULL … … 75 123 76 124 77 ; The following strings are used by DetectPrint_StartDetectWithMasterOrSlaveStringInCXandIdeVarsInCSBP78 ; To support an optimization in that code, these strings must start on the same 256 byte page,79 ; which is checked at assembly time below.80 ;81 g_szDetectStart:82 g_szDetectMaster: ; db "Master",NULL83 ; db 4dh, 61h, 73h, 74h, 65h, 72h, 00h ; uncompressed84 db 53h, 67h, 79h, 7ah, 6bh, 0b8h ; compressed85 86 g_szDetectSlave: ; db "Slave ",NULL87 ; db 53h, 6ch, 61h, 76h, 65h, 20h, 00h ; uncompressed88 db 59h, 72h, 67h, 7ch, 6bh, 00h ; compressed89 90 g_szDetectOuter: ; db "%s at %s: ",NULL91 ; db 25h, 73h, 20h, 61h, 74h, 20h, 25h, 73h, 3ah, 20h, 00h ; uncompressed92 db 3dh, 20h, 67h, 0fah, 3dh, 40h, 00h ; compressed93 94 %ifdef MODULE_SERIAL95 g_szDetectCOM: ; db "COM%c%s",NULL96 ; db 43h, 4fh, 4dh, 25h, 63h, 25h, 73h, 00h ; uncompressed97 db 49h, 55h, 53h, 3ch, 1dh ; compressed98 99 g_szDetectCOMAuto: ; db " Detect",NULL100 ; db 20h, 44h, 65h, 74h, 65h, 63h, 74h, 00h ; uncompressed101 db 20h, 4ah, 6bh, 7ah, 6bh, 69h, 0bah ; compressed102 103 g_szDetectCOMSmall: ; db "/%u%u00",NULL ; IDE Master at COM1/9600:104 ; db 2fh, 25h, 75h, 25h, 75h, 30h, 30h, 00h ; uncompressed105 db 2ah, 35h, 35h, 33h, 13h ; compressed106 107 g_szDetectCOMLarge: ; db "/%u.%uK",NULL ; IDE Master at COM1/19.2K:108 ; db 2fh, 25h, 75h, 2eh, 25h, 75h, 4bh, 00h ; uncompressed109 db 2ah, 35h, 29h, 35h, 91h ; compressed110 111 %endif112 g_szDetectEnd:113 g_szDetectPort: ; db "%x",NULL ; IDE Master at 1F0h:114 ; db 25h, 78h, 00h ; uncompressed115 db 17h ; compressed116 117 118 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS119 %if ((g_szDetectEnd-$$) & 0xff00) <> ((g_szDetectStart-$$) & 0xff00)120 %error "g_szDetect* strings must start on the same 256 byte page, required by DetectPrint_StartDetectWithMasterOrSlaveStringInCXandIdeVarsInCSBP. Please move this block up or down within strings.asm"121 %endif122 %endif123 124 125 125 126 ; Boot loader strings … … 143 144 144 145 %ifdef MODULE_HOTKEYS 145 146 146 ; Hotkey Bar strings 147 147 g_szFDD: ; db "FDD [%c]",NULL ; "FDD [A]" … … 172 172 173 173 %ifdef MODULE_BOOT_MENU 174 175 174 ; Boot Menu Floppy Disk strings 176 175 ; … … 180 179 ; 181 180 g_szFddStart: 182 g_szFddUnknown: ; db "Unknown",NULL183 ; db 55h, 6eh, 6bh, 6eh, 6fh, 77h, 6eh, 00h ; uncompressed184 db 5bh, 74h, 71h, 74h, 75h, 7dh, 0b4h ; compressed185 186 g_szFddSizeOr: ; db "5",ONE_QUARTER,QUOTATION_MARK," or 3",ONE_HALF,QUOTATION_MARK," DD",NULL187 ; db 35h, 0ach, 22h, 20h, 6fh, 72h, 20h, 33h, 0abh, 22h, 20h, 44h, 44h, 00h ; uncompressed188 db 2eh, 21h, 26h, 20h, 75h, 0f8h, 2dh, 22h, 26h, 20h, 4ah, 8ah ; compressed189 190 g_szFddSize: ; db "%s",QUOTATION_MARK,", %u kiB",NULL ; 3½", 1440 kiB191 ; db 25h, 73h, 22h, 2ch, 20h, 25h, 75h, 20h, 6bh, 69h, 42h, 00h ; uncompressed192 db 3dh, 26h, 27h, 20h, 35h, 20h, 71h, 6fh, 88h ; compressed193 194 g_szFddThreeHalf: ; db"3",ONE_HALF,NULL195 ; db33h, 0abh, 00h ; uncompressed196 db2dh, 02h ; compressed181 g_szFddUnknown: ; db "Unknown",NULL 182 ; db 55h, 6eh, 6bh, 6eh, 6fh, 77h, 6eh, 00h ; uncompressed 183 db 5bh, 74h, 71h, 74h, 75h, 7dh, 0b4h ; compressed 184 185 g_szFddSizeOr: ; db "5",ONE_QUARTER,QUOTATION_MARK," or 3",ONE_HALF,QUOTATION_MARK," DD",NULL 186 ; db 35h, 0ach, 22h, 20h, 6fh, 72h, 20h, 33h, 0abh, 22h, 20h, 44h, 44h, 00h ; uncompressed 187 db 2eh, 21h, 26h, 20h, 75h, 0f8h, 2dh, 22h, 26h, 20h, 4ah, 8ah ; compressed 188 189 g_szFddSize: ; db "%s",QUOTATION_MARK,", %u kiB",NULL ; 3½", 1440 kiB 190 ; db 25h, 73h, 22h, 2ch, 20h, 25h, 75h, 20h, 6bh, 69h, 42h, 00h ; uncompressed 191 db 3dh, 26h, 27h, 20h, 35h, 20h, 71h, 6fh, 88h ; compressed 192 193 g_szFddThreeHalf: ; db "3",ONE_HALF,NULL 194 ; db 33h, 0abh, 00h ; uncompressed 195 db 2dh, 02h ; compressed 197 196 198 197 g_szFddEnd: 199 g_szFddFiveQuarter: ; db"5",ONE_QUARTER,NULL200 ; db35h, 0ach, 00h ; uncompressed201 db2eh, 01h ; compressed198 g_szFddFiveQuarter: ; db "5",ONE_QUARTER,NULL 199 ; db 35h, 0ach, 00h ; uncompressed 200 db 2eh, 01h ; compressed 202 201 203 202 204 203 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS 205 204 %if ((g_szFddStart-$$) & 0xff00) <> ((g_szFddEnd-$$) & 0xff00) 206 %error "g_szFdd* strings must start on the same 256 byte page, required by the BootMenuPrint_RefreshInformation routines for floppy drives. Please move this block up or down within strings.asm"205 %error "g_szFdd* strings must start on the same 256 byte page, required by the BootMenuPrint_RefreshInformation routines for floppy drives. Please move this block up or down within Strings.asm" 207 206 %endif 208 207 %endif … … 238 237 %endif 239 238 239 240 240 g_szDeviceTypeValues: 241 g_szDeviceTypeValues_16bit: ; db 242 ; db 243 db 244 245 g_szDeviceTypeValues_32bit: ; db 246 ; db 247 db 248 249 g_szDeviceTypeValues_8bit: ; db 250 ; db 251 db 252 253 g_szDeviceTypeValues_XTIDEr1: ; db 254 ; db 255 db 256 257 g_szDeviceTypeValues_XTIDEr2: ; db 258 ; db 259 db 260 261 g_szDeviceTypeValues_XTCFpio8: ; db 262 ; db 263 db 264 265 g_szDeviceTypeValues_XTCFdma: ; db 266 ; db 267 db 268 269 g_szDeviceTypeValues_XTCFmem: ; db 270 ; db 271 db 272 273 g_szDeviceTypeValues_JrIde: ; db 274 ; db 275 db 276 277 g_szDeviceTypeValues_Serial: ; db 278 ; db 279 db 241 g_szDeviceTypeValues_16bit: ; db " 16",NULL 242 ; db 20h, 31h, 36h, 00h ; uncompressed 243 db 20h, 2bh, 0fh ; compressed 244 245 g_szDeviceTypeValues_32bit: ; db " 32",NULL 246 ; db 20h, 33h, 32h, 00h ; uncompressed 247 db 20h, 2dh, 0ch ; compressed 248 249 g_szDeviceTypeValues_8bit: ; db " 8",NULL 250 ; db 20h, 20h, 38h, 00h ; uncompressed 251 db 20h, 20h, 10h ; compressed 252 253 g_szDeviceTypeValues_XTIDEr1: ; db "D8 ",NULL ; Dual 8-bit 254 ; db 44h, 38h, 20h, 00h ; uncompressed 255 db 4ah, 30h, 00h ; compressed 256 257 g_szDeviceTypeValues_XTIDEr2: ; db "X8 ",NULL ; A0<->A3 swapped 8-bit 258 ; db 58h, 38h, 20h, 00h ; uncompressed 259 db 5eh, 30h, 00h ; compressed 260 261 g_szDeviceTypeValues_XTCFpio8: ; db "T8 ",NULL ; True 8-bit 262 ; db 54h, 38h, 20h, 00h ; uncompressed 263 db 5ah, 30h, 00h ; compressed 264 265 g_szDeviceTypeValues_XTCFdma: ; db "8MA",NULL ; DMA 8-bit 266 ; db 38h, 4dh, 41h, 00h ; uncompressed 267 db 30h, 53h, 87h ; compressed 268 269 g_szDeviceTypeValues_XTCFmem: ; db "M8 ",NULL ; Memory Mapped 8-bit 270 ; db 4dh, 38h, 20h, 00h ; uncompressed 271 db 53h, 30h, 00h ; compressed 272 273 g_szDeviceTypeValues_JrIde: ; db "M8 ",NULL 274 ; db 4dh, 38h, 20h, 00h ; uncompressed 275 db 53h, 30h, 00h ; compressed 276 277 g_szDeviceTypeValues_Serial: ; db "SER",NULL 278 ; db 53h, 45h, 52h, 00h ; uncompressed 279 db 59h, 4bh, 98h ; compressed 280 280 281 281 … … 317 317 %endif 318 318 319 g_szSelectionTimeout: ; db DOUBLE_BOTTOM_LEFT_CORNER,DOUBLE_LEFT_HORIZONTAL_TO_SINGLE_VERTICAL,"%ASelection in %2-u s",NULL 320 ; db 0c8h, 0b5h, 25h, 41h, 53h, 65h, 6ch, 65h, 63h, 74h, 69h, 6fh, 6eh, 20h, 69h, 6eh, 20h, 25h, 32h, 2dh, 75h, 20h, 73h, 00h ; uncompressed 321 db 31h, 32h, 3bh, 59h, 6bh, 72h, 6bh, 69h, 7ah, 6fh, 75h, 0f4h, 6fh, 0f4h, 3ah, 20h, 0b9h ;compressed322 319 320 g_szSelectionTimeout: ; db DOUBLE_BOTTOM_LEFT_CORNER,DOUBLE_LEFT_HORIZONTAL_TO_SINGLE_VERTICAL,"%ASelection in %2-u s",NULL 321 ; db 0c8h, 0b5h, 25h, 41h, 53h, 65h, 6ch, 65h, 63h, 74h, 69h, 6fh, 6eh, 20h, 69h, 6eh, 20h, 25h, 32h, 2dh, 75h, 20h, 73h, 00h ; uncompressed 322 db 31h, 32h, 3bh, 59h, 6bh, 72h, 6bh, 69h, 7ah, 6fh, 75h, 0f4h, 6fh, 0f4h, 3ah, 20h, 0b9h ; compressed 323 323 324 324 … … 337 337 db 3dh, 39h ; compressed 338 338 339 ; db "Addr. ",SINGLE_VERTICAL,"Block",SINGLE_VERTICAL,"Bus",SINGLE_VERTICAL, 339 ; db "Addr. ",SINGLE_VERTICAL,"Block",SINGLE_VERTICAL,"Bus",SINGLE_VERTICAL,"IRQ",SINGLE_VERTICAL,"Reset",LF,CR 340 340 ; db 41h, 64h, 64h, 72h, 2eh, 20h, 0b3h, 42h, 6ch, 6fh, 63h, 6bh, 0b3h, 42h, 75h, 73h, 0b3h, 49h, 52h, 51h, 0b3h, 52h, 65h, 73h, 65h, 74h, 0ah, 0dh ; uncompressed 341 341 db 47h, 6ah, 6ah, 78h, 29h, 20h, 23h, 48h, 72h, 75h, 69h, 71h, 23h, 48h, 7bh, 79h, 23h, 4fh, 58h, 57h, 23h, 58h, 6bh, 79h, 6bh, 7ah, 39h ; compressed 342 342 343 ; db "%s",SINGLE_VERTICAL, "%5-u",SINGLE_VERTICAL, "%s",SINGLE_VERTICAL," %2-I",SINGLE_VERTICAL,"%5-x",NULL344 ; db 345 db 343 ; db "%s",SINGLE_VERTICAL,"%5-u",SINGLE_VERTICAL,"%s",SINGLE_VERTICAL," %2-I",SINGLE_VERTICAL,"%5-x",NULL 344 ; db 25h, 73h, 0b3h, 25h, 35h, 2dh, 75h, 0b3h, 25h, 73h, 0b3h, 20h, 25h, 32h, 2dh, 49h, 0b3h, 25h, 35h, 2dh, 78h, 00h ; uncompressed 345 db 3dh, 23h, 36h, 23h, 3dh, 23h, 20h, 34h, 23h, 18h ; compressed 346 346 347 347 … … 374 374 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS 375 375 %if ((g_szBootMenuPrintStart-$$) & 0xff00) <> ((g_szBootMenuPrintEnd-$$) & 0xff00) 376 %error "g_szBootMenuPrint* strings must start on the same 256 byte page, required by the BootMenuPrint_* routines. Please move this block up or down within strings.asm"376 %error "g_szBootMenuPrint* strings must start on the same 256 byte page, required by the BootMenuPrint_* routines. Please move this block up or down within Strings.asm" 377 377 %endif 378 378 %endif … … 396 396 ; * There can only be 32 of these (0-31). 397 397 ; * Keeping the list short is good - this translates to a table in the compressed version. 398 ; An error will be reported if a character or format is no longer being used by any 398 ; An error will be reported if a character or format is no longer being used by any 399 399 ; strings above. 400 400 ; * Please keep items sequential for ease of further editing. -
trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/AccessDPT.asm
r473 r491 3 3 4 4 ; 5 ; XTIDE Universal BIOS and Associated Tools 5 ; XTIDE Universal BIOS and Associated Tools 6 6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team. 7 7 ; … … 10 10 ; the Free Software Foundation; either version 2 of the License, or 11 11 ; (at your option) any later version. 12 ; 12 ; 13 13 ; This program is distributed in the hope that it will be useful, 14 14 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 15 15 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 ; GNU General Public License for more details. 16 ; GNU General Public License for more details. 17 17 ; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 18 ; 18 ; 19 19 20 20 ; Section containing code … … 67 67 AccessDPT_GetDeviceControlByteToAL: 68 68 %ifdef MODULE_IRQ 69 70 %ifndef USE_UNDOC_INTEL 69 71 xor al, al 70 test BYTE [di+DPT.bFlagsLow], FLGL_DPT_ENABLE_IRQ 72 %endif 73 74 test BYTE [di+DPT.bFlagsLow], FLGL_DPT_ENABLE_IRQ ; Clears CF 75 76 %ifdef USE_UNDOC_INTEL 77 eSALC ; Clears AL using CF while preserving flags 78 %endif 79 71 80 jnz SHORT .EnableDeviceIrq 72 81 or al, FLG_DEVCONTROL_nIEN ; Disable IRQ … … 74 83 %else 75 84 mov al, FLG_DEVCONTROL_nIEN ; Disable IRQ 76 %endif 85 %endif ; MODULE_IRQ 77 86 ret 78 87 -
trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/AtaGeometry.asm
r445 r491 81 81 AtaGeometry_GetLCHStoAXBLBHfromAtaInfoInESSIandTranslateModeInDX: 82 82 call AtaGeometry_GetPCHStoAXBLBHfromAtaInfoInESSI 83 ; Fall to AtaGeometry_GetLCHStoAXBLBHfromPCHSinAXBLBH 83 ; Fall to AtaGeometry_GetLCHStoAXBLBHfromPCHSinAXBLBHandTranslateModeInDX 84 84 85 85 AtaGeometry_GetLCHStoAXBLBHfromPCHSinAXBLBHandTranslateModeInDX: 86 86 ; Check if user defined translate mode 87 test dx, dx88 jn zSHORT .CheckIfLargeTranslationWanted87 dec dx ; Set ZF if TRANSLATEMODE_LARGE, SF if TRANSLATEMODE_NORMAL 88 jns SHORT .CheckIfLargeTranslationWanted 89 89 MIN_U ax, MAX_LCHS_CYLINDERS ; TRANSLATEMODE_NORMAL maximum cylinders 90 90 inc dx 91 91 .CheckIfLargeTranslationWanted: 92 dec dx ; Set ZF if TRANSLATEMODE_LARGE93 92 jz SHORT ConvertPCHfromAXBLtoRevisedEnhancedCHinAXBL 94 93 dec dx ; Set ZF if TRANSLATEMODE_ASSISTED_LBA -
trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/BootVars.asm
r489 r491 3 3 4 4 ; 5 ; XTIDE Universal BIOS and Associated Tools 5 ; XTIDE Universal BIOS and Associated Tools 6 6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team. 7 7 ; … … 10 10 ; the Free Software Foundation; either version 2 of the License, or 11 11 ; (at your option) any later version. 12 ; 12 ; 13 13 ; This program is distributed in the hope that it will be useful, 14 14 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 15 15 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 ; GNU General Public License for more details. 16 ; GNU General Public License for more details. 17 17 ; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 18 ; 18 ; 19 19 20 20 ; Section containing code … … 33 33 BootVars_Initialize: 34 34 %ifdef MODULE_8BIT_IDE 35 mov WORD [es:BOOTVARS.wNextXTCFportToScan], XTCF_BASE_PORT_ 135 mov WORD [es:BOOTVARS.wNextXTCFportToScan], XTCF_BASE_PORT_DETECTION_SEED 36 36 %endif 37 37 … … 72 72 73 73 %endif ; MODULE_HOTKEYS 74 75 76 %ifdef MODULE_8BIT_IDE77 ;--------------------------------------------------------------------78 ; BootVars_GetNextXTCFportToDetectToDX79 ; Parameters:80 ; ES: BDA Segment81 ; Returns:82 ; DX: Next XT-CF port to detect83 ; Corrupts registers:84 ; AX85 ;--------------------------------------------------------------------86 BootVars_GetNextXTCFportToDetectToDX:87 mov dx, [es:BOOTVARS.wNextXTCFportToScan]88 test dl, dl89 jz SHORT .NextOneIs240hor340h90 add WORD [es:BOOTVARS.wNextXTCFportToScan], XTCF_BASE_PORT_3 - XTCF_BASE_PORT_291 ret92 .NextOneIs240hor340h:93 mov BYTE [es:BOOTVARS.wNextXTCFportToScan], XTCF_BASE_PORT_2 & 0FFh ; 40h94 ret95 %endif ; MODULE_8BIT_IDE -
trunk/XTIDE_Universal_BIOS/makefile
r489 r491 34 34 # USE_386 Use instructions supported by 386 and later # 35 35 # USE_AT Use features supported on AT and later systems (not available on XT) # 36 # USE_UNDOC_INTEL Optimizations for Intel CPU:s - do NOT use on NEC V20/V30/Sony CPU:s # 36 37 # # 37 38 #################################################################################################### … … 99 100 DEFINES_XT = $(DEFINES_COMMON) ELIMINATE_CGA_SNOW MODULE_8BIT_IDE MODULE_SERIAL MODULE_SERIAL_FLOPPY 100 101 DEFINES_XTPLUS = $(DEFINES_COMMON) $(DEFINES_XT) USE_186 101 DEFINES_AT = $(DEFINES_COMMON) USE_AT USE_286 RELOCATE_INT13H_STACK MODULE_IRQ MODULE_SERIAL MODULE_SERIAL_FLOPPY MODULE_ADVANCED_ATA102 DEFINES_AT = $(DEFINES_COMMON) USE_AT USE_286 USE_UNDOC_INTEL RELOCATE_INT13H_STACK MODULE_IRQ MODULE_SERIAL MODULE_SERIAL_FLOPPY MODULE_ADVANCED_ATA 102 103 103 104 DEFINES_XT_LARGE = $(DEFINES_XT) $(DEFINES_COMMON_LARGE) … … 108 109 DEFINES_386_8K = $(DEFINES_AT) USE_386 109 110 110 DEFINES_ALL_FEATURES = MODULE_8BIT_IDE MODULE_ADVANCED_ATA MODULE_BOOT_MENU MODULE_EBIOS MODULE_HOTKEYS MODULE_IRQ MODULE_SERIAL MODULE_SERIAL_FLOPPY MODULE_STRINGS_COMPRESSED MODULE_FEATURE_SETS 111 DEFINES_ALL_FEATURES = MODULE_8BIT_IDE MODULE_ADVANCED_ATA MODULE_BOOT_MENU MODULE_EBIOS MODULE_HOTKEYS MODULE_IRQ MODULE_SERIAL MODULE_SERIAL_FLOPPY MODULE_STRINGS_COMPRESSED MODULE_FEATURE_SETS 111 112 112 113 … … 225 226 @perl ..\tools\checksum.pl $(TARGET)_386.bin $(ROMSIZE) 226 227 227 unused: 228 unused: 228 229 @echo "All Features" 229 230 @$(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_ALL_FEATURES) $(DEFS_XT) $(DEFS_XT_PLUS) $(DEFS_AT) $(DEFS_XT_LARGE) $(DEFS_XTPLUS_LARGE) $(DEFS_AT_LARGE) $(DEFS_XT_TINY) $(DEFS_386_8K) -o"$(TARGET)_unused.asm" -l"$(TARGET)_unused.lst"
Note:
See TracChangeset
for help on using the changeset viewer.