Changeset 491 in xtideuniversalbios
- Timestamp:
- Dec 15, 2012, 2:46:29 PM (12 years ago)
- google:author:
- krille_n_@hotmail.com
- Location:
- trunk
- Files:
-
- 40 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Assembly_Library/Inc/Emulate.inc
r489 r491 57 57 58 58 ;========================================================================== 59 60 ;-------------------------------------------------------------------- 61 ; The undocumented instruction SALC (Set AL According to CF). 62 ; Available on all Intel processors and truly compatible clones. 63 ; Does not work on the NEC V20/V30 or Sony CXQ70108 processors. 64 ; 65 ; eSALC 66 ; Parameters: 67 ; Nothing 68 ; Returns: 69 ; AL: FFh if CF=1 70 ; 00h if CF=0 71 ; Corrupts registers: 72 ; Nothing 73 ;-------------------------------------------------------------------- 74 %macro eSALC 0 75 db 0D6h 76 %endmacro 77 78 79 ;-------------------------------------------------------------------- 80 ; The AAD instruction (ASCII Adjust before Division). 81 ; Available on all Intel processors and truly compatible clones. 82 ; Does not work on the NEC V20/V30 or Sony CXQ70108 processors 83 ; unless %1 is 10 (0Ah). 84 ; 85 ; eAAD 86 ; Parameters: 87 ; %1: Any 8 bit number (0...255) 88 ; Returns: 89 ; AL: AH * %1 + AL 90 ; AH: 0 91 ; Flags: Set according to result 92 ; Corrupts registers: 93 ; Nothing 94 ;-------------------------------------------------------------------- 95 %macro eAAD 1 96 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS 97 %if %1 > 255 98 %error Invalid parameter passed to eAAD (%1 > 255) 99 %else 100 db 0D5h, %1 101 %endif 102 %endif 103 %endmacro 104 105 106 ;-------------------------------------------------------------------- 107 ; The AAM instruction (ASCII Adjust after Multiplication). 108 ; Available on all Intel processors and truly compatible clones. 109 ; Does not work on the NEC V20/V30 or Sony CXQ70108 processors 110 ; unless %1 is 10 (0Ah). 111 ; 112 ; eAAM 113 ; Parameters: 114 ; %1: Any 8 bit number except 0 (1...255) 115 ; Returns: 116 ; AL: AL MOD %1 117 ; AH: AL / %1 118 ; Flags: Set according to result 119 ; Corrupts registers: 120 ; Nothing 121 ;-------------------------------------------------------------------- 122 %macro eAAM 1 123 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS 124 %if %1 > 255 125 %error Invalid parameter passed to eAAM (%1 > 255) 126 %elif %1 = 0 127 %error Invalid parameter passed to eAAM (%1 = 0). This would cause a divide-by-zero exception! 128 %else 129 db 0D4h, %1 130 %endif 131 %endif 132 %endmacro 133 59 134 60 135 ;-------------------------------------------------------------------- -
trunk/Assembly_Library/Src/Display/CgaSnow.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 … … 94 94 ret 95 95 96 %ifdef INCLUDE_MENU_LIBRARY 96 97 97 ;-------------------------------------------------------------------- 98 98 ; CgaSnow_RepMovsb … … 107 107 ; AX, CX, DX 108 108 ;-------------------------------------------------------------------- 109 %ifdef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS 110 %ifdef MODULE_STRINGS_COMPRESSED 111 %define EXCLUDE 112 %endif 113 %ifdef MODULE_BOOT_MENU 114 %undef EXCLUDE 115 %endif 116 %endif 117 118 %ifndef EXCLUDE 109 119 ALIGN DISPLAY_JUMP_ALIGN 110 120 CgaSnow_RepMovsb: … … 123 133 ret 124 134 %endif 135 %undef EXCLUDE 136 125 137 126 138 ;-------------------------------------------------------------------- -
trunk/Assembly_Library/Src/Display/DisplayContext.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 … … 102 102 103 103 104 %ifdef INCLUDE_MENU_LIBRARY105 106 104 ;-------------------------------------------------------------------- 107 105 ; DisplayContext_Push 106 ; DisplayContext_Pop 108 107 ; Parameters: 109 108 ; Nothing … … 113 112 ; AX, DI 114 113 ;-------------------------------------------------------------------- 114 %ifdef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS 115 %ifndef MODULE_BOOT_MENU 116 %define EXCLUDE 117 %endif 118 %endif 119 120 %ifndef EXCLUDE 115 121 ALIGN DISPLAY_JUMP_ALIGN 116 122 DisplayContext_Push: … … 126 132 %endrep 127 133 %endif 128 134 129 135 mov ds, di ; Restore DS 130 136 jmp ax 131 137 132 ;-------------------------------------------------------------------- 133 ; DisplayContext_Pop 134 ; Parameters: 135 ; Nothing 136 ; Returns: 137 ; Nothing 138 ; Corrupts registers: 139 ; AX, DI 140 ;-------------------------------------------------------------------- 138 141 139 ALIGN DISPLAY_JUMP_ALIGN 142 140 DisplayContext_Pop: … … 145 143 pop ax ; Pop return address 146 144 147 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS 145 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS 148 146 %assign i DISPLAY_CONTEXT_size-2 149 147 %rep DISPLAY_CONTEXT_size / 2 … … 152 150 %endrep 153 151 %endif 154 152 155 153 push ax ; Push return address 156 154 push dx … … 159 157 mov ds, di ; Restore DS 160 158 ret 161 %endif 159 %endif ; EXCLUDE 160 %undef EXCLUDE 161 162 162 163 163 ;-------------------------------------------------------------------- … … 189 189 pop ds 190 190 ret 191 192 %endif ; INCLUDE_MENU_LIBRARY 191 %endif ; EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS 193 192 194 193 … … 231 230 %endif 232 231 233 %ifdef INCLUDE_MENU_LIBRARY 234 232 233 %ifdef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS 234 %ifndef MODULE_BOOT_MENU 235 %define EXCLUDE 236 %endif 237 %endif 235 238 ;-------------------------------------------------------------------- 236 239 ; DisplayContext_SetCharOutputFunctionFromAXwithAttribFlagInBL … … 244 247 ; BL 245 248 ;-------------------------------------------------------------------- 249 %ifndef EXCLUDE ; 1 of 3 246 250 ALIGN DISPLAY_JUMP_ALIGN 247 251 DisplayContext_SetCharOutputFunctionFromAXwithAttribFlagInBL: … … 251 255 mov [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.fnCharOut], ax 252 256 ret 257 %endif 253 258 254 259 … … 263 268 ; Nothing 264 269 ;-------------------------------------------------------------------- 270 %ifndef EXCLUDE ; 2 of 3 265 271 ALIGN DISPLAY_JUMP_ALIGN 266 272 DisplayContext_SetCharacterAttributeFromAL: 267 273 mov [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.bAttribute], al 268 274 ret 275 %endif 269 276 270 277 … … 279 286 ; Nothing 280 287 ;-------------------------------------------------------------------- 288 %ifndef EXCLUDE ; 3 of 3 281 289 ALIGN DISPLAY_JUMP_ALIGN 282 290 DisplayContext_SetCharacterOutputParameterFromAX: 283 291 mov [VIDEO_BDA.displayContext+DISPLAY_CONTEXT.wCharOutParam], ax 284 292 ret 285 286 %endif ; INCLUDE_MENU_LIBRARY 287 293 %endif 294 295 %undef EXCLUDE 296 297 288 298 ;-------------------------------------------------------------------- 289 299 ; DisplayContext_GetCharacterOutputParameterToDX … … 295 305 ; Nothing 296 306 ;-------------------------------------------------------------------- 297 %ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS OR EXCLUDE_FROM_XTIDECFG ; This is currently unused (dead code)307 %ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS OR EXCLUDE_FROM_XTIDECFG 298 308 ALIGN DISPLAY_JUMP_ALIGN 299 309 DisplayContext_GetCharacterOutputParameterToDX: … … 322 332 %endif 323 333 324 334 325 335 ;-------------------------------------------------------------------- 326 336 ; DisplayContext_GetByteOffsetToAXfromCharacterOffsetInAX -
trunk/Assembly_Library/Src/Display/DisplayCursor.asm
r489 r491 37 37 ret 38 38 39 %ifdef INCLUDE_MENU_LIBRARY 39 40 40 ;-------------------------------------------------------------------- 41 41 ; DisplayCursor_SetShapeFromAX … … 48 48 ; Nothing 49 49 ;-------------------------------------------------------------------- 50 %ifdef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS 51 %ifndef MODULE_BOOT_MENU 52 %define EXCLUDE 53 %endif 54 %endif 55 56 %ifndef EXCLUDE 50 57 ALIGN DISPLAY_JUMP_ALIGN 51 58 DisplayCursor_SetShapeFromAX: … … 53 60 ret 54 61 %endif 55 62 %undef EXCLUDE 63 64 56 65 ;-------------------------------------------------------------------- 57 66 ; DisplayCursor_SetCoordinatesFromAX -
trunk/Assembly_Library/Src/Display/DisplayPrint.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 … … 109 109 110 110 111 %ifndef MODULE_STRINGS_COMPRESSED112 111 ;-------------------------------------------------------------------- 113 112 ; DisplayPrint_WordFromAXWithBaseInBX … … 122 121 ; AX, DX 123 122 ;-------------------------------------------------------------------- 123 %ifndef MODULE_STRINGS_COMPRESSED 124 124 ALIGN DISPLAY_JUMP_ALIGN 125 125 DisplayPrint_WordFromAXWithBaseInBX: … … 152 152 g_rgcDigitToCharacter: db "0123456789ABCDEF" 153 153 154 %endif ; MODULE_STRINGS_COMPRESSED 155 154 156 ;-------------------------------------------------------------------- 155 157 ; DisplayPrint_QWordFromSSBPwithBaseInBX … … 164 166 ; AX, DX, [SS:BP] 165 167 ;-------------------------------------------------------------------- 166 %ifndef EXCLUDE_FROM_XTIDE CFG ; Not used inXTIDECFG168 %ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS OR EXCLUDE_FROM_XTIDECFG 167 169 ALIGN DISPLAY_JUMP_ALIGN 168 170 DisplayPrint_QWordFromSSBPwithBaseInBX: … … 181 183 mov cx, bx ; Character count to CX 182 184 jmp SHORT PrintAllPushedDigits 183 %endif ; EXCLUDE_FROM_XTIDECFG 184 185 %endif ; MODULE_STRINGS_COMPRESSED 185 %endif 186 186 187 187 … … 220 220 221 221 222 %ifdef INCLUDE_MENU_LIBRARY223 222 ;-------------------------------------------------------------------- 224 223 ; DisplayPrint_ClearScreenWithCharInALandAttributeInAH … … 233 232 ; AX, DX 234 233 ;-------------------------------------------------------------------- 234 %ifdef INCLUDE_MENU_LIBRARY 235 235 ALIGN DISPLAY_JUMP_ALIGN 236 236 DisplayPrint_ClearScreenWithCharInALandAttributeInAH: … … 251 251 ret 252 252 %endif 253 253 254 254 255 ;-------------------------------------------------------------------- 255 256 ; DisplayPrint_ClearAreaWithHeightInAHandWidthInAL -
trunk/Assembly_Library/Src/File/FileIO.asm
r446 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 21 21 ; Section containing code … … 37 37 ALIGN JUMP_ALIGN 38 38 FileIO_CreateWithPathInDSSIandAttributesInCX: 39 xchg dx, si ; Path now in DS:DX40 39 mov ah, CREATE_OR_TRUNCATE_FILE 41 jmp SHORT CreateOrOpenFile42 40 SKIP2B bx 41 ; Fall to FileIO_OpenWithPathInDSSIandFileAccessInAL 43 42 44 43 ;-------------------------------------------------------------------- … … 55 54 ; AX, BX 56 55 ;-------------------------------------------------------------------- 57 ALIGN JUMP_ALIGN58 56 FileIO_OpenWithPathInDSSIandFileAccessInAL: 57 mov ah, OPEN_EXISTING_FILE 59 58 xchg dx, si ; Path now in DS:DX 60 mov ah, OPEN_EXISTING_FILE61 CreateOrOpenFile:62 59 int DOS_INTERRUPT_21h 63 60 xchg si, dx … … 87 84 ret 88 85 89 ;--------------------------------------------------------------------90 ; File position is updated so next read will start where91 ; previous read stopped.92 ;93 ; FileIO_ReadCXbytesToDSSIusingHandleFromBX94 ; Parameters:95 ; BX: File handle96 ; CX: Number of bytes to read97 ; DS:SI: Ptr to destination buffer98 ; Returns:99 ; AX: Number of bytes actually read if successful (0 if at EOF before call)100 ; DOS error code if CF set101 ; CF: Clear if successful102 ; Set if error103 ; Corrupts registers:104 ; Nothing105 ;--------------------------------------------------------------------106 ALIGN JUMP_ALIGN107 FileIO_ReadCXbytesToDSSIusingHandleFromBX:108 xchg dx, si ; DS:DX now points to destination buffer109 mov ah, READ_FROM_FILE_OR_DEVICE110 int DOS_INTERRUPT_21h111 xchg si, dx112 ret113 114 86 115 87 ;-------------------------------------------------------------------- … … 134 106 ret 135 107 108 109 ;-------------------------------------------------------------------- 110 ; File position is updated so next read will start where 111 ; previous read stopped. 112 ; 113 ; FileIO_ReadCXbytesToDSSIusingHandleFromBX 114 ; Parameters: 115 ; BX: File handle 116 ; CX: Number of bytes to read 117 ; DS:SI: Ptr to destination buffer 118 ; Returns: 119 ; AX: Number of bytes actually read if successful (0 if at EOF before call) 120 ; DOS error code if CF set 121 ; CF: Clear if successful 122 ; Set if error 123 ; Corrupts registers: 124 ; Nothing 125 ;-------------------------------------------------------------------- 126 ALIGN JUMP_ALIGN 127 FileIO_ReadCXbytesToDSSIusingHandleFromBX: 128 mov ah, READ_FROM_FILE_OR_DEVICE 129 SKIP2B f 130 ; Fall to FileIO_WriteCXbytesFromDSSIusingHandleFromBX 131 136 132 ;-------------------------------------------------------------------- 137 133 ; File position is updated so next write will start where 138 134 ; previous write stopped. 139 135 ; 140 ; FileIO_WriteCXbytesFromDSSIusingHandleFromBX :136 ; FileIO_WriteCXbytesFromDSSIusingHandleFromBX 141 137 ; Parameters: 142 138 ; BX: File handle … … 151 147 ; Nothing 152 148 ;-------------------------------------------------------------------- 153 ALIGN JUMP_ALIGN154 149 FileIO_WriteCXbytesFromDSSIusingHandleFromBX: 155 xchg dx, si ; DS:DX now points to source buffer156 150 mov ah, WRITE_TO_FILE_OR_DEVICE 151 xchg dx, si ; DS:DX now points to buffer 157 152 int DOS_INTERRUPT_21h 158 153 xchg si, dx … … 232 227 233 228 ;-------------------------------------------------------------------- 234 ; FileIO_GetFileSizeToDXAXusingHandleFromBXandResetFilePosition :229 ; FileIO_GetFileSizeToDXAXusingHandleFromBXandResetFilePosition 235 230 ; Parameters: 236 231 ; BX: File handle … … 287 282 288 283 ;-------------------------------------------------------------------- 289 ; FileIO_SeekFromOriginInALtoOffsetInDXAXusingHandleFromBX :284 ; FileIO_SeekFromOriginInALtoOffsetInDXAXusingHandleFromBX 290 285 ; Parameters: 291 286 ; AL: SEEK_FROM.(origin) -
trunk/Assembly_Library/Src/Menu/Dialog/DialogProgress.asm
r376 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 21 21 ; Section containing code … … 99 99 mov [si+PROGRESS_DIALOG_IO.wStartTimeTicks], ax 100 100 101 ; 0 = 65536 but it needs to be adjusted to 65535 prevent division by zero101 ; 0 = 65536 but it needs to be adjusted to 65535 to prevent division by zero 102 102 cmp WORD [si+PROGRESS_DIALOG_IO.wMaxProgressValue], BYTE 0 103 103 jne SHORT CalculateProgressNeededBeforeUpdatingCharacter … … 288 288 div cx ; AX = Estimated ticks left 289 289 xchg dx, ax 290 SKIP2B f ; cmp ax, <next instruction>290 SKIP2B ax 291 291 .PreventDivisionByZero: 292 292 xor dx, dx … … 309 309 mov bp, sp 310 310 mov si, g_szTimeFormat 311 call TimerTicks_GetMinutesToAX fromTicksInDX311 call TimerTicks_GetMinutesToAXandRemainderTicksToDXfromTicksInDX 312 312 push ax 313 313 call TimerTicks_GetSecondsToAXfromTicksInDX -
trunk/Assembly_Library/Src/Menu/MenuScrollbars.asm
r376 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 21 21 ; Section containing code … … 79 79 ; AX: Item line for last thumb character 80 80 ; Corrupts registers: 81 ; CX,DX81 ; DX 82 82 ;-------------------------------------------------------------------- 83 83 ALIGN MENU_JUMP_ALIGN … … 95 95 ; AX: Item line for first thumb character 96 96 ; Corrupts registers: 97 ; CX,DX97 ; DX 98 98 ;-------------------------------------------------------------------- 99 99 ALIGN MENU_JUMP_ALIGN -
trunk/Assembly_Library/Src/Menu/MenuTime.asm
r376 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 21 21 ; Section containing code … … 101 101 ; AX: Seconds until timeout 102 102 ; Corrupts registers: 103 ; AX103 ; Nothing 104 104 ;-------------------------------------------------------------------- 105 105 ALIGN MENU_JUMP_ALIGN … … 116 116 xchg dx, ax 117 117 call TimerTicks_GetSecondsToAXfromTicksInDX 118 SKIP2B f ; cmp ax, <next instruction>118 SKIP2B dx 119 119 .TimeoutHasOccurredSoMakeSureTicksAreNotBelowZero: 120 120 xor ax, ax -
trunk/Assembly_Library/Src/Serial/SerialServer.asm
r376 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 21 21 %include "SerialServer.inc" … … 75 75 76 76 mov al,83h 77 add dl, Serial_UART_lineControl77 add dl, Serial_UART_lineControl ; Clears CF 78 78 out dx,al 79 79 … … 82 82 out dx,al 83 83 84 %ifdef USE_UNDOC_INTEL 85 eSALC ; Clear AL using CF 86 %else 84 87 xor ax,ax 88 %endif 85 89 inc dx ; divisor high 86 90 push dx … … 103 107 104 108 pop dx ; base, interrupts disabled 109 %ifdef USE_UNDOC_INTEL 110 eSALC ; Clear AL using CF 111 %else 105 112 xor ax,ax 113 %endif 106 114 out dx,al 107 115 -
trunk/Assembly_Library/Src/String/Char.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 … … 29 29 ; %3: Last accepted value in range 30 30 ; Returns: 31 ; CF: Set if character i srange31 ; CF: Set if character in range 32 32 ; (Jumps to Char_CharIsNotValid if before range) 33 33 ; Corrupts registers: … … 51 51 ; Nothing 52 52 ;-------------------------------------------------------------------- 53 %ifdef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS 54 %ifndef MODULE_HOTKEYS 55 %define EXCLUDE 56 %endif 57 %endif 58 59 %ifndef EXCLUDE 53 60 ALIGN STRING_JUMP_ALIGN 54 61 Char_IsLowerCaseLetterInAL: 55 62 IS_BETWEEN_IMMEDIATES al, 'a', 'z' 56 63 ret 64 %endif 65 %undef EXCLUDE 66 57 67 58 68 ;-------------------------------------------------------------------- … … 72 82 ret 73 83 %endif 84 74 85 75 86 ;-------------------------------------------------------------------- … … 94 105 %endif 95 106 107 96 108 ;-------------------------------------------------------------------- 97 109 ; Char_IsDecimalDigitInAL … … 110 122 ret 111 123 %endif 124 112 125 113 126 ;-------------------------------------------------------------------- … … 141 154 %endif 142 155 156 143 157 ;-------------------------------------------------------------------- 144 158 ; Char_CharIsValid … … 159 173 %endif 160 174 175 176 %ifdef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS 177 %ifndef MODULE_HOTKEYS 178 %define EXCLUDE 179 %endif 180 %ifndef MODULE_STRINGS_COMPRESSED 181 %undef EXCLUDE 182 %endif 183 %endif 184 185 %ifndef EXCLUDE 161 186 ALIGN STRING_JUMP_ALIGN 162 187 Char_CharIsNotValid: 163 188 clc 164 189 ret 190 %endif 191 %undef EXCLUDE 165 192 166 193 … … 181 208 %endif 182 209 183 210 184 211 ;-------------------------------------------------------------------- 185 212 ; Char_ALtoUpperCaseLetter … … 191 218 ; Nothing 192 219 ;-------------------------------------------------------------------- 193 %ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS 220 %ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS 194 221 ALIGN STRING_JUMP_ALIGN 195 222 Char_ALtoUpperCaseLetter: … … 200 227 %endif 201 228 202 229 203 230 ;-------------------------------------------------------------------- 204 231 ; Char_ChangeCaseInAL … … 210 237 ; Nothing 211 238 ;-------------------------------------------------------------------- 239 %ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS 212 240 Char_ChangeCaseInAL: 213 241 xor al, 32 214 242 .Return: 215 243 ret 244 %endif 245 216 246 217 247 ;-------------------------------------------------------------------- -
trunk/Assembly_Library/Src/Time/TimerTicks.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 ; 19 20 ; System timer ticks 18.2 times per second = 54.9 ms / tick 21 TICKS_PER_HOUR EQU 65520 18 ; 19 20 ; With a PIT input clock of 1193181.6666... Hz and a maximum 21 ; 16 bit divisor of 65536 (if PIT programmed with 0) we get: 22 ; 23 ; Clock / Divisor = ~18.2065 ticks per second 24 ; Clock * SecondsPerMinute / Divisor = ~1092 ticks per minute 25 ; Clock * SecondsPerHour / Divisor = ~65543 ticks per hour 26 ; 27 ; Since 65543 can't fit in a 16 bit register we use the 28 ; maximum possible instead and disregard the last ~8 ticks. 29 30 TICKS_PER_HOUR EQU 65535 22 31 TICKS_PER_MINUTE EQU 1092 23 32 TICKS_PER_SECOND EQU 18 … … 28 37 29 38 ;-------------------------------------------------------------------- 30 ; TimerTicks_GetHoursToAX fromTicksInDXAX31 ; TimerTicks_GetMinutesToAX fromTicksInDX32 ; TimerTicks_GetSecondsToAX fromTicksInDX39 ; TimerTicks_GetHoursToAXandRemainderTicksToDXfromTicksInDXAX 40 ; TimerTicks_GetMinutesToAXandRemainderTicksToDXfromTicksInDX 41 ; TimerTicks_GetSecondsToAXandRemainderTicksToDXfromTicksInDX 33 42 ; Parameters 34 43 ; DX(:AX): Timer ticks to convert … … 42 51 %ifndef EXCLUDE_FROM_XTIDECFG 43 52 ALIGN JUMP_ALIGN 44 TimerTicks_GetHoursToAX fromTicksInDXAX:53 TimerTicks_GetHoursToAXandRemainderTicksToDXfromTicksInDXAX: 45 54 mov cx, TICKS_PER_HOUR 46 55 div cx ; Divide DX:AX by CX, Hours to AX, remainder ticks to DX … … 49 58 50 59 ALIGN JUMP_ALIGN 51 TimerTicks_GetMinutesToAX fromTicksInDX:60 TimerTicks_GetMinutesToAXandRemainderTicksToDXfromTicksInDX: 52 61 xor ax, ax 53 62 xchg ax, dx ; Ticks now in DX:AX … … 57 66 %endif ; EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS 58 67 59 %ifdef INCLUDE_MENU_LIBRARY 60 ALIGN JUMP_ALIGN 61 TimerTicks_GetSecondsToAXfromTicksInDX: 68 %ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS OR EXCLUDE_FROM_XTIDECFG 69 ALIGN JUMP_ALIGN 70 TimerTicks_GetSecondsToAXandRemainderTicksToDXfromTicksInDX: 71 ; This procedure can handle at most 4607 ticks in DX (almost 256 seconds) 72 ; More than 4607 ticks will generate a divide overflow exception! 62 73 xchg ax, dx ; Ticks now in AX 63 74 mov cl, TICKS_PER_SECOND … … 68 79 %endif 69 80 81 82 %ifdef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS 83 %ifndef MODULE_BOOT_MENU 84 %define EXCLUDE 85 %endif 86 %endif 87 ;-------------------------------------------------------------------- 88 ; TimerTicks_GetSecondsToAXfromTicksInDX 89 ; Parameters 90 ; DX: Timer ticks to convert 91 ; Returns: 92 ; AX: Seconds 93 ; Corrupts registers: 94 ; DX 95 ;-------------------------------------------------------------------- 96 %ifndef EXCLUDE ; 1 of 3 97 ALIGN JUMP_ALIGN 98 TimerTicks_GetSecondsToAXfromTicksInDX: 99 mov ax, 3600 ; Approximately 65536 / (Clock / Divisor) 100 mul dx 101 xchg dx, ax 102 ret 103 %endif 104 105 70 106 ;-------------------------------------------------------------------- 71 107 ; First tick might take 0...54.9 ms and remaining ticks … … 82 118 ; AX 83 119 ;-------------------------------------------------------------------- 84 %if def INCLUDE_MENU_LIBRARY120 %ifndef EXCLUDE ; 2 of 3 85 121 ALIGN JUMP_ALIGN 86 122 TimerTicks_InitializeTimeoutFromAX: … … 90 126 ret 91 127 %endif 128 92 129 93 130 ;-------------------------------------------------------------------- … … 102 139 ; Nothing 103 140 ;-------------------------------------------------------------------- 104 %if def INCLUDE_MENU_LIBRARY141 %ifndef EXCLUDE ; 3 of 3 105 142 ALIGN JUMP_ALIGN 106 143 TimerTicks_GetTimeoutTicksLeftToAXfromDSBX: … … 114 151 %endif 115 152 153 %undef EXCLUDE 154 155 116 156 ;-------------------------------------------------------------------- 117 157 ; TimerTicks_GetElapsedToAXandResetDSBX … … 134 174 %endif 135 175 176 136 177 ;-------------------------------------------------------------------- 137 178 ; TimerTicks_GetElapsedToAXfromDSBX … … 161 202 ; Nothing 162 203 ;-------------------------------------------------------------------- 204 %ifdef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS 205 %ifndef MODULE_BOOT_MENU OR MODULE_HOTKEYS 206 %define EXCLUDE 207 %endif 208 %endif 209 210 %ifndef EXCLUDE 163 211 ALIGN JUMP_ALIGN 164 212 TimerTicks_ReadFromBdaToAX: … … 170 218 pop ds 171 219 ret 220 %endif 221 %undef EXCLUDE -
trunk/Assembly_Library/Src/Util/Registers.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 21 21 SECTION .text … … 52 52 ; Nothing 53 53 ;-------------------------------------------------------------------- 54 %ifdef INCLUDE_MENU_LIBRARY 54 55 ALIGN JUMP_ALIGN 55 %ifdef INCLUDE_MENU_LIBRARY56 56 Registers_CopySSBPtoESDI: 57 57 COPY_SSBP_TO_ESDI -
trunk/Assembly_Library/Src/Util/Size.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 %ifdef INCLUDE_MENU_LIBRARY … … 68 68 ; Convert remainder to tenths 69 69 xchg bx, ax ; Store AX 70 mov ax, 10 71 mul cx ; DX:AX = remainder * 10 72 eSHR_IM ax, 10 ; Divide AX by 1024 70 mov ax, 5 71 mul cx ; DX:AX = remainder * (10 / 2) 72 %ifdef USE_186 73 shr ax, 9 ; Divide AX by (1024 / 2) 74 %else 75 shr ax, 1 76 mov al, ah 77 cbw 78 %endif 73 79 xchg cx, ax ; CX = tenths 74 80 xchg ax, bx … … 124 130 ;-------------------------------------------------------------------- 125 131 ALIGN UTIL_SIZE_JUMP_ALIGN 126 Size_ConvertSectorCountInBXDXAXtoKiB: 132 Size_ConvertSectorCountInBXDXAXtoKiB: ; unused entrypoint ok 127 133 Size_DivideBXDXAXbyTwo: 128 134 shr bx, 1 ; Divide sector count by 2... -
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" -
trunk/XTIDE_Universal_BIOS_Configurator_v2/Inc/Help/Configuration_FullMode.txt
r370 r491 3 3 Lite mode supports only one IDE controller (2 drives) and stores parameters to the top of the interrupt vectors (30:0h) so no Conventional memory needs to be reserved. Lite mode cannot be used if some software requires the top of interrupt vectors. Usually this is not a problem since only IBM ROM BASIC uses them. 4 4 5 Tandy 1000 models with 640 kiB or less memory need to use Lite mode since the top of Conventional memory gets dynamically reserved by video hardware. This happens only with Tandy integrated video controller and not when using expansion graphics cards. It is possible to use Full mode if reserving RAM for video memory + what is required for XTIDE Universal BIOS. This would mean 129 kiB but most software should work with 65kiB reserved.5 Tandy 1000 models with 640 kiB or less memory need to use Lite mode since the top of Conventional memory gets dynamically reserved by video hardware. This happens only with Tandy integrated video controller and not when using expansion graphics cards. It is possible to use Full mode if reserving RAM for video memory + what is required for XTIDE Universal BIOS. This would mean 65 kiB but most software should work with 33 kiB reserved. -
trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/IdeControllerMenu.asm
r483 r491 388 388 ja SHORT .EnableMenuitemFromCSBX 389 389 jmp SHORT .DisableMenuitemFromCSBX 390 390 391 391 392 392 ;-------------------------------------------------------------------- … … 452 452 .DisableIRQchannelSelection: 453 453 mov bx, g_MenuitemIdeControllerIdeIRQ 454 jz SHORT .DisableMenuitemFromCSBX455 454 jmp SHORT .DisableMenuitemFromCSBX 456 455
Note:
See TracChangeset
for help on using the changeset viewer.