Changeset 603 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS
- Timestamp:
- Nov 6, 2020, 2:49:32 PM (4 years ago)
- Location:
- trunk/XTIDE_Universal_BIOS
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19h.asm
r601 r603 106 106 cli 107 107 mov ax, [es:BOOTVARS.hotkeyVars+HOTKEYVARS.fpPrevTimerHandler] 108 mov [es:BIOS_ SYSTEM_TIMER_TICK_INTERRUPT_1Ch*4], ax108 mov [es:BIOS_USER_TIMER_TICK_INTERRUPT_1Ch*4], ax 109 109 mov ax, [es:BOOTVARS.hotkeyVars+HOTKEYVARS.fpPrevTimerHandler+2] 110 mov [es:BIOS_ SYSTEM_TIMER_TICK_INTERRUPT_1Ch*4+2], ax110 mov [es:BIOS_USER_TIMER_TICK_INTERRUPT_1Ch*4+2], ax 111 111 sti 112 112 %endif -
trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectPrint.asm
r592 r603 32 32 DetectPrint_InitializeDisplayContext: 33 33 JMP_DISPLAY_LIBRARY InitializeDisplayContext 34 35 36 %ifdef MODULE_HOTKEYS37 ;--------------------------------------------------------------------38 ; DetectPrint_GetSoftwareCoordinatesToAX39 ; Parameters:40 ; Nothing41 ; Returns:42 ; Nothing43 ; Corrupts registers:44 ; AX, DI45 ;--------------------------------------------------------------------46 DetectPrint_GetSoftwareCoordinatesToAX:47 JMP_DISPLAY_LIBRARY GetSoftwareCoordinatesToAX48 %endif49 34 50 35 -
trunk/XTIDE_Universal_BIOS/Src/Menus/HotkeyBar.asm
r601 r603 23 23 24 24 ;-------------------------------------------------------------------- 25 ; Handler for INT 1Ch SystemTimer Tick.25 ; Handler for INT 1Ch User Timer Tick. 26 26 ; Reads key presses and draws hotkey bar. 27 27 ; 28 28 ; HotkeyBar_TimerTickHandler 29 29 ; Parameters: 30 ; DS: RAMVARS segment 31 ; ES: BDA segment (zero) 30 ; Nothing 32 31 ; Returns: 33 32 ; Nothing … … 38 37 HotkeyBar_TimerTickHandler: 39 38 push es 39 %ifndef USE_186 ; LOAD_BDA_SEGMENT_TO will corrupt AX on 8088/8086 40 push ax 41 %endif 42 43 ;!!! Keep interrupts disabled so there won't be another 44 ; timer tick call before we are ready 45 46 LOAD_BDA_SEGMENT_TO es, ax 47 48 ; Call previous handler 49 pushf 50 call FAR [es:BOOTVARS.hotkeyVars+HOTKEYVARS.fpPrevTimerHandler] 51 52 ; Update Hotkeybar (process key input and draw) every fourth tick 53 test BYTE [es:BDA.dwTimerTicks], 11b 54 jnz SHORT .ReturnFromHandler 55 40 56 push ds 41 57 %ifdef USE_186 42 ePUSHA58 pusha 43 59 %else 44 60 push di … … 46 62 push dx 47 63 push cx 48 push ax 49 %endif 50 51 ;!!! Keep interrupts disabled so there won't be another 52 ; timer tick call before we are ready 53 54 LOAD_BDA_SEGMENT_TO es, ax 64 %endif 55 65 call RamVars_GetSegmentToDS 56 57 ; Call previous handler 58 pushf 59 call FAR [es:BOOTVARS.hotkeyVars+HOTKEYVARS.fpPrevTimerHandler] 60 61 ; Update Hotkeybar (process key input and draw) every fourth tick 62 test BYTE [es:BDA.dwTimerTicks], 11b 63 jnz SHORT .ReturnFromHandler 64 call UpdateDuringDriveDetection 65 66 .ReturnFromHandler: 66 call HotkeyBar_UpdateDuringDriveDetection 67 67 %ifdef USE_186 68 ePOPA68 popa 69 69 %else 70 pop ax71 70 pop cx 72 71 pop dx … … 75 74 %endif 76 75 pop ds 76 77 .ReturnFromHandler: 78 %ifndef USE_186 79 pop ax 80 %endif 77 81 pop es 78 82 iret … … 91 95 ; AX, CX, DX, SI, DI 92 96 ;-------------------------------------------------------------------- 93 UpdateDuringDriveDetection:97 HotkeyBar_UpdateDuringDriveDetection: 94 98 call ScanHotkeysFromKeyBufferAndStoreToBootvars 95 99 … … 113 117 ;-------------------------------------------------------------------- 114 118 HotkeyBar_DrawToTopOfScreen: 115 ; Store current screen coordinates to be restored116 ; when Hotkey Bar is rendered117 call DetectPrint_GetSoftwareCoordinatesToAX119 ; Store current screen coordinates to stack 120 ; (to be restored when Hotkey Bar is rendered) 121 CALL_DISPLAY_LIBRARY GetSoftwareCoordinatesToAX 118 122 push ax 119 123 120 call MoveCursorToScreenTopLeftCorner 124 ; Move cursor to top left corner (0, 0) 125 xor ax, ax 126 call HotkeyBar_SetCursorCoordinatesFromAX 121 127 ; Fall to .PrintFloppyDriveHotkeys 122 128 … … 230 236 ;-------------------------------------------------------------------- 231 237 .EndHotkeyBarRendering: 232 call HotkeyBar_ClearRestOfTopRow 233 pop ax 234 jmp SHORT HotkeyBar_RestoreCursorCoordinatesFromAX 235 236 237 ;-------------------------------------------------------------------- 238 ; HotkeyBar_ClearRestOfTopRow 239 ; Parameters: 240 ; Nothing 241 ; Returns: 242 ; Nothing 243 ; Corrupts registers: 244 ; AX, CX, DI 245 ;-------------------------------------------------------------------- 246 HotkeyBar_ClearRestOfTopRow: 238 ; Clear the rest of the top row 247 239 CALL_DISPLAY_LIBRARY GetColumnsToALandRowsToAH 248 240 eMOVZX cx, al … … 250 242 sub cl, al 251 243 mov al, ' ' 252 JMP_DISPLAY_LIBRARY PrintRepeatedCharacterFromALwithCountInCX 244 CALL_DISPLAY_LIBRARY PrintRepeatedCharacterFromALwithCountInCX 245 246 ; Restore the saved coordinates from stack 247 pop ax 248 ; Fall to HotkeyBar_SetCursorCoordinatesFromAX 249 250 251 ;-------------------------------------------------------------------- 252 ; HotkeyBar_SetCursorCoordinatesFromAX 253 ; Parameters: 254 ; Nothing 255 ; Returns: 256 ; Nothing 257 ; Corrupts registers: 258 ; AX, DI 259 ;-------------------------------------------------------------------- 260 HotkeyBar_SetCursorCoordinatesFromAX: 261 JMP_DISPLAY_LIBRARY SetCursorCoordinatesFromAX 253 262 254 263 … … 373 382 374 383 ;-------------------------------------------------------------------- 375 ; MoveCursorToScreenTopLeftCorner376 ; Parameters:377 ; Nothing378 ; Returns:379 ; Nothing380 ; Corrupts registers:381 ; AX, DI382 ;--------------------------------------------------------------------383 MoveCursorToScreenTopLeftCorner:384 xor ax, ax ; Top left corner (0, 0)385 ; Fall to HotkeyBar_RestoreCursorCoordinatesFromAX386 387 388 ;--------------------------------------------------------------------389 ; HotkeyBar_RestoreCursorCoordinatesFromAX390 ; Parameters:391 ; Nothing392 ; Returns:393 ; Nothing394 ; Corrupts registers:395 ; AX, DI396 ;--------------------------------------------------------------------397 HotkeyBar_RestoreCursorCoordinatesFromAX:398 JMP_DISPLAY_LIBRARY SetCursorCoordinatesFromAX399 400 401 ;--------------------------------------------------------------------402 384 ; HotkeyBar_StoreDefaultDriveLettersToHotkeyVars 403 385 ; Parameters: … … 432 414 433 415 ; Store system 1Ch Timer Tick handler and install our hotkeybar handler 434 mov ax, [BIOS_ SYSTEM_TIMER_TICK_INTERRUPT_1Ch*4]416 mov ax, [BIOS_USER_TIMER_TICK_INTERRUPT_1Ch*4] 435 417 mov [BOOTVARS.hotkeyVars+HOTKEYVARS.fpPrevTimerHandler], ax 436 mov ax, [BIOS_ SYSTEM_TIMER_TICK_INTERRUPT_1Ch*4+2]418 mov ax, [BIOS_USER_TIMER_TICK_INTERRUPT_1Ch*4+2] 437 419 mov [BOOTVARS.hotkeyVars+HOTKEYVARS.fpPrevTimerHandler+2], ax 438 mov al, BIOS_ SYSTEM_TIMER_TICK_INTERRUPT_1Ch420 mov al, BIOS_USER_TIMER_TICK_INTERRUPT_1Ch 439 421 mov si, HotkeyBar_TimerTickHandler 440 422 call Interrupts_InstallHandlerToVectorInALFromCSSI -
trunk/XTIDE_Universal_BIOS/Src/Strings.asm
r601 r603 54 54 db "%s @ %x",LF,CR ; -=XTIDE ... =- @ Segment 55 55 db "%s",LF,CR ; version string 56 %ifdef MODULE_STRINGS_COMPRESSED 56 57 db "Released under GNU GPL v2",LF,CR 58 %else 59 db "Released under GNU GPL v2",LF 60 %endif 57 61 db LF,CR,NULL 58 62 %ifdef MODULE_BOOT_MENU … … 157 161 %endif ; MODULE_ADVANCED_ATA OR MODULE_8BIT_IDE OR MODULE_8BIT_IDE_ADVANCED OR MODULE_SERIAL 158 162 159 g_szDeviceTypeValues_Displacement equ 3 ; 3 compressed, 4 uncompressed 160 ;g_szDeviceTypeValues_Displacement equ (g_szDeviceTypeValues_32bit - g_szDeviceTypeValues) 163 %ifdef MODULE_STRINGS_COMPRESSED 164 g_szDeviceTypeValues_Displacement equ 3 165 %else 166 g_szDeviceTypeValues_Displacement equ 4 167 %endif 161 168 ; 162 169 ; Ensure that device type strings are correctly spaced in memory -
trunk/XTIDE_Universal_BIOS/Src/StringsCompressed.asm
r601 r603 100 100 db 3dh, 39h ; compressed 101 101 102 %ifdef MODULE_STRINGS_COMPRESSED 102 103 ; db "Released under GNU GPL v2",LF,CR 103 104 ; 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 105 db 58h, 6bh, 72h, 6bh, 67h, 79h, 6bh, 0eah, 7bh, 74h, 6ah, 6bh, 0f8h, 4dh, 54h, 0dbh, 4dh, 56h, 0d2h, 7ch, 2ch, 39h ; compressed 105 106 107 %else 108 db "Released under GNU GPL v2",LF 109 %endif 106 110 ; db LF,CR,NULL 107 111 ; db 0ah, 0dh, 00h ; uncompressed … … 314 318 %endif ; MODULE_ADVANCED_ATA OR MODULE_8BIT_IDE OR MODULE_8BIT_IDE_ADVANCED OR MODULE_SERIAL 315 319 316 g_szDeviceTypeValues_Displacement equ 3 ; 3 compressed, 4 uncompressed 317 ;g_szDeviceTypeValues_Displacement equ (g_szDeviceTypeValues_32bit - g_szDeviceTypeValues) 320 %ifdef MODULE_STRINGS_COMPRESSED 321 g_szDeviceTypeValues_Displacement equ 3 322 %else 323 g_szDeviceTypeValues_Displacement equ 4 324 %endif 318 325 ; 319 326 ; Ensure that device type strings are correctly spaced in memory … … 601 608 602 609 ;; translated usage stats 610 ;; 181:1 611 ;; 48:2 612 ;; 172:2 613 ;; 50:2 614 ;; 171:2 615 ;; 45:2 616 ;; 51:3 617 ;; 200:1 618 ;; 34:3 619 ;; 179:8 620 ;; 33:1 621 ;; 53:2 622 ;; 47:2 603 623 ;; 54:2 604 ;; 172:2 605 ;; 171:2 606 ;; 47:2 607 ;; 53:2 624 ;; 46:3 625 ;; 32:34 626 ;; 56:9 608 627 ;; 175:1 609 ;; 56:9610 ;; 45:2611 ;; 50:2612 ;; 200:1613 ;; 33:1614 ;; 51:3615 ;; 179:8616 ;; 46:3617 ;; 48:2618 ;; 34:3619 628 ;; 49:2 620 ;; 181:1621 629 ;; 44:1 622 ;; 32:34623 630 ;; total translated: 20 624 631 625 632 ;; format usage stats 633 ;; 5-x:1 634 ;; s:14 635 ;; z:2 636 ;; u:6 637 ;; 2-u:1 638 ;; nl:12 639 ;; 2-I:1 640 ;; c:13 626 641 ;; 5-u:2 627 ;; z:2628 ;; nl:12629 642 ;; x:5 630 643 ;; A:4 631 ;; 2-u:1632 ;; s:14633 ;; 2-I:1634 ;; 5-x:1635 ;; u:6636 ;; c:13637 644 ;; total format: 11 638 645 -
trunk/XTIDE_Universal_BIOS/makefile
r598 r603 127 127 ################### 128 128 129 # Target size of the BIOS, used in main.asm for number of 512B blocks (CNT_ROM_BLOCKS) and by checksum Perl script below ('make checksum').129 # Target size of the BIOS, used in Main.asm for number of 512B blocks (CNT_ROM_BLOCKS) and by checksum Perl script below ('make checksum'). 130 130 # Note! The size must be a multiple of 2 KB for compatibility reasons. 131 131 BIOS_SIZE_TINY = 4096
Note:
See TracChangeset
for help on using the changeset viewer.