Changeset 322 in xtideuniversalbios
- Timestamp:
- Mar 11, 2012, 4:17:46 PM (13 years ago)
- google:author:
- krille_n_@hotmail.com
- Location:
- trunk
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Assembly_Library/Inc/Registers.inc
r154 r322 6 6 struc INTPACK 7 7 %ifdef USE_386 8 .gs resb 29 .fs resb 28 ; .gs resb 2 9 ; .fs resb 2 10 10 %endif 11 11 .es resb 2 … … 60 60 push es 61 61 %ifdef USE_386 62 push fs63 push gs62 ; push fs 63 ; push gs 64 64 %endif 65 65 mov bp, sp … … 77 77 %macro RESTORE_INTPACK_FROM_SSBP 0 78 78 %ifdef USE_386 79 pop gs80 pop fs79 ; pop gs 80 ; pop fs 81 81 %endif 82 82 pop es … … 103 103 push es 104 104 %ifdef USE_386 105 push fs106 push gs105 ; push fs 106 ; push gs 107 107 %endif 108 108 sub sp, BYTE %1 … … 123 123 add sp, BYTE %1 124 124 %ifdef USE_386 125 pop gs126 pop fs125 ; pop gs 126 ; pop fs 127 127 %endif 128 128 pop es -
trunk/XTIDE_Universal_BIOS/Inc/RomVars.inc
r316 r322 42 42 %endif 43 43 %if (ROMVARS.ideVarsEnd - ROMVARS.ideVarsBegin) = 0 44 %error "there must be at le sat one .ideVars structure, it would be bizarre if this were not true, but it is assumed in the ah0h reset code."44 %error "there must be at least one .ideVars structure, it would be bizarre if this were not true, but it is assumed in the ah0h reset code." 45 45 %endif 46 46 %endif -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h.asm
r294 r322 30 30 mov [RAMVARS.xlateVars+XLATEVARS.bXlatedDrv], dl 31 31 32 call FindDPT_ForDriveNumberInDL ; DS:DI points to our DPT, or NULL if not our drive 33 jnc SHORT .OurFunction ; DPT found, this is one of our drives, and thus our function 34 35 test ah, ah 36 jz SHORT .OurFunction ; we handle all function 0h requests (resets) 37 cmp ah, 8 38 jne SHORT Int13h_DirectCallToAnotherBios ; non-8h function, handled by foreign bios 39 40 %ifndef MODULE_SERIAL_FLOPPY 41 ; With floppy support, we handle all traffic for function 08h, as we need to wrap both hard disk and 42 ; floppy drive counts. Without floppy support, we handle only hard disk traffic for function 08h, 43 ; and thus need the check below. 44 ; 45 test dl, dl 46 jns SHORT Int13h_DirectCallToAnotherBios 47 %endif 32 call FindDPT_ForDriveNumberInDL ; DS:DI points to our DPT, or NULL if not our drive 33 jc SHORT .NotOurDrive ; DPT not found so this is not one of our drives 48 34 49 35 .OurFunction: … … 65 51 test BYTE [di+DPT.bFlagsLow], FLG_DRVNHEAD_LBA 66 52 jz SHORT Int13h_UnsupportedFunction ; No eINT 13h for CHS drives 53 sub bl, 41h<<1 ; BX = Offset to eINT 13h jump table 54 jb SHORT Int13h_UnsupportedFunction 67 55 cmp ah, 48h 68 56 ja SHORT Int13h_UnsupportedFunction 69 sub bl, 41h<<1 ; BX = Offset to eINT 13h jump table70 jb SHORT Int13h_UnsupportedFunction71 57 jmp [cs:bx+g_rgwEbiosFunctionJumpTable] 72 58 %endif 73 59 60 ALIGN JUMP_ALIGN 61 .NotOurDrive: 62 test ah, ah 63 jz SHORT .OurFunction ; We handle all function 0h requests (resets) 64 65 %ifndef MODULE_SERIAL_FLOPPY 66 ; Without floppy support, we handle only hard disk traffic for function 08h. 67 test dl, dl 68 jns SHORT Int13h_DirectCallToAnotherBios 69 %endif 70 ; With floppy support, we handle all traffic for function 08h, as we need to wrap both hard disk and floppy drive counts. 71 cmp ah, 8 72 je SHORT .OurFunction 73 ; Fall to Int13h_DirectCallToAnotherBios 74 74 75 75 ;-------------------------------------------------------------------- … … 103 103 pop bp ; Standard INT 13h functions never uses BP as return register 104 104 %ifdef USE_386 105 mov [bp+IDEPACK.intpack+INTPACK.gs], gs106 mov [bp+IDEPACK.intpack+INTPACK.fs], fs105 ; mov [bp+IDEPACK.intpack+INTPACK.gs], gs 106 ; mov [bp+IDEPACK.intpack+INTPACK.fs], fs 107 107 %endif 108 108 mov [bp+IDEPACK.intpack+INTPACK.es], es -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH25h_HDrvID.asm
r305 r322 22 22 ALIGN JUMP_ALIGN 23 23 AH25h_HandlerForGetDriveInformation: 24 mov al, 1 ; Read 1 sector 25 call Prepare_BufferToESSIforOldInt13hTransfer 26 mov ah, COMMAND_IDENTIFY_DEVICE 24 mov ax, (COMMAND_IDENTIFY_DEVICE << 8 | 1) ; Read 1 sector 25 call Prepare_BufferToESSIforOldInt13hTransfer ; Preserves AX 27 26 mov bx, TIMEOUT_AND_STATUS_TO_WAIT(TIMEOUT_DRQ, FLG_STATUS_DRQ) 28 27 %ifdef USE_186 -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Tools/Prepare.asm
r294 r322 111 111 cmp al, 128 112 112 ja SHORT InvalidNumberOfSectorsRequested 113 mov ah, RET_HD_BOUNDARY114 113 test si, si ; Offset must be zero to xfer 128 sectors 115 114 jnz SHORT CannotAlignPointerProperly … … 120 119 Prepare_ReturnFromInt13hWithInvalidFunctionError: 121 120 mov ah, RET_HD_INVALID 121 SKIP2B f 122 CannotAlignPointerProperly: 123 mov ah, RET_HD_BOUNDARY 122 124 ZeroSectorsRequestedSoNoErrors: 123 CannotAlignPointerProperly:124 125 jmp Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH 125 126 -
trunk/XTIDE_Universal_BIOS/Src/Initialization/DriveXlate.asm
r294 r322 20 20 jz SHORT .Return ; Return if translation disabled 21 21 xchg di, ax ; Backup AX 22 call SwapFloppyDriveOrHardDisk23 xchg ax, di24 .Return:25 ret26 22 27 28 ;--------------------------------------------------------------------29 ; SwapFloppyDriveOrHardDisk30 ; Parameters:31 ; DL: Drive number to be possibly swapped32 ; DS: RAMVARS segment33 ; Returns:34 ; DL: Translated drive number35 ; Corrupts registers:36 ; AX37 ;--------------------------------------------------------------------38 ALIGN JUMP_ALIGN39 SwapFloppyDriveOrHardDisk:40 23 mov ah, 80h ; Assume hard disk 41 24 mov al, [RAMVARS.xlateVars+XLATEVARS.bHDSwap] 42 25 test dl, ah ; Hard disk? 43 jnz SHORT SwapDrive; If so, jump to swap26 jnz SHORT .SwapDrive ; If so, jump to swap 44 27 mov al, [RAMVARS.xlateVars+XLATEVARS.bFDSwap] 45 28 cbw 46 ; Fall to SwapDrive47 29 48 ;--------------------------------------------------------------------49 ; SwapDrive50 ; Parameters:51 ; AL: Drive number to swap to 00h/80h52 ; AH: 00h/80h to be swapped to stored drive number53 ; DL: Drive number to be possibly swapped54 ; Returns:55 ; DL: Translated drive number56 ; Corrupts registers:57 ; AL58 ;--------------------------------------------------------------------59 30 ALIGN JUMP_ALIGN 60 SwapDrive:61 cmp ah, dl ; Swap DL from 00h/80h to xxh?31 .SwapDrive: 32 cmp ah, dl ; Swap DL from 00h/80h to xxh? 62 33 je SHORT .SwapToXXhInAL 63 cmp al, dl ; Swap DL from xxh to 00h/80h?64 jne SHORT .Re turn34 cmp al, dl ; Swap DL from xxh to 00h/80h? 35 jne SHORT .RestoreAXandReturn 65 36 mov al, ah 66 37 ALIGN JUMP_ALIGN 67 38 .SwapToXXhInAL: 68 39 mov dl, al 40 ALIGN JUMP_ALIGN 41 .RestoreAXandReturn: 42 xchg ax, di ; Restore AX 69 43 ALIGN JUMP_ALIGN, ret 70 44 .Return: -
trunk/XTIDE_Universal_BIOS/Src/Strings.asm
r294 r322 8 8 ; Section containing code 9 9 SECTION .text 10 11 ; POST drive detection strings 12 g_szRomAt: db "%s @ %x",LF,CR,NULL 13 14 ; Boot loader strings 15 g_szTryToBoot: db "Booting from %s %x",ANGLE_QUOTE_RIGHT,"%x",LF,CR,NULL 16 g_szBootSectorNotFound: db "Boot sector " 17 g_szNotFound: db "not found",LF,CR,NULL 18 g_szReadError: db "Error %x!",LF,CR,NULL 19 20 g_szAddressingModes: 21 g_szLCHS: db "L-CHS",NULL 22 g_szPCHS: db "P-CHS",NULL 23 g_szLBA28: db "LBA28",NULL 24 g_szLBA48: db "LBA48",NULL 25 g_szAddressingModes_Displacement equ (g_szPCHS - g_szAddressingModes) 26 ; 27 ; Ensure that addressing modes are correctly spaced in memory 28 ; 29 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS 30 %if g_szLCHS <> g_szAddressingModes 31 %error "g_szAddressingModes Displacement Incorrect 1" 32 %endif 33 %if g_szPCHS <> g_szLCHS + g_szAddressingModes_Displacement 34 %error "g_szAddressingModes Displacement Incorrect 2" 35 %endif 36 %if g_szLBA28 <> g_szPCHS + g_szAddressingModes_Displacement 37 %error "g_szAddressingModes Displacement Incorrect 3" 38 %endif 39 %if g_szLBA48 <> g_szLBA28 + g_szAddressingModes_Displacement 40 %error "g_szAddressingModes Displacement Incorrect 4" 41 %endif 42 %endif 10 43 11 44 ; Boot Menu Floppy Disk strings … … 53 86 %endif 54 87 55 ; Boot Menu menuitem strings56 ;57 ; The following strings are used by BootMenuPrint_* routines.58 ; To support optimizations in that code, these strings must start on the same 256 byte page,59 ; which is checked at assembly time below.60 ;61 g_szBootMenuPrintStart:62 g_szDriveNum: db "%x %s",NULL63 g_szDriveNumBOOTNFO: db "%x %z",NULL64 g_szFloppyDrv: db "Floppy Drive %c",NULL65 g_szBootMenuPrintEnd:66 g_szForeignHD: db "Foreign Hard Disk",NULL67 68 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS69 %if ((g_szBootMenuPrintStart-$$) & 0xff00) <> ((g_szBootMenuPrintEnd-$$) & 0xff00)70 %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"71 %endif72 %endif73 74 ; POST drive detection strings75 g_szRomAt: db "%s @ %x",LF,CR,NULL76 77 ; Boot loader strings78 g_szTryToBoot: db "Booting from %s %x",ANGLE_QUOTE_RIGHT,"%x",LF,CR,NULL79 g_szBootSectorNotFound: db "Boot sector "80 g_szNotFound: db "not found",LF,CR,NULL81 g_szReadError: db "Error %x!",LF,CR,NULL82 83 g_szAddressingModes:84 g_szLCHS: db "L-CHS",NULL85 g_szPCHS: db "P-CHS",NULL86 g_szLBA28: db "LBA28",NULL87 g_szLBA48: db "LBA48",NULL88 g_szAddressingModes_Displacement equ (g_szPCHS - g_szAddressingModes)89 ;90 ; Ensure that addressing modes are correctly spaced in memory91 ;92 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS93 %if g_szLCHS <> g_szAddressingModes94 %error "g_szAddressingModes Displacement Incorrect 1"95 %endif96 %if g_szPCHS <> g_szLCHS + g_szAddressingModes_Displacement97 %error "g_szAddressingModes Displacement Incorrect 2"98 %endif99 %if g_szLBA28 <> g_szPCHS + g_szAddressingModes_Displacement100 %error "g_szAddressingModes Displacement Incorrect 3"101 %endif102 %if g_szLBA48 <> g_szLBA28 + g_szAddressingModes_Displacement103 %error "g_szAddressingModes Displacement Incorrect 4"104 %endif105 %endif106 107 88 g_szBusTypeValues: 108 89 g_szBusTypeValues_8Dual: db "D8 ",NULL … … 138 119 %if g_szBusTypeValues_8MemMapped <> g_szBusTypeValues_Serial + g_szBusTypeValues_Displacement 139 120 %error "g_szBusTypeValues Displacement Incorrect 7" 121 %endif 122 %endif 123 124 ; Boot Menu menuitem strings 125 ; 126 ; The following strings are used by BootMenuPrint_* routines. 127 ; To support optimizations in that code, these strings must start on the same 256 byte page, 128 ; which is checked at assembly time below. 129 ; 130 g_szBootMenuPrintStart: 131 g_szDriveNum: db "%x %s",NULL 132 g_szDriveNumBOOTNFO: db "%x %z",NULL 133 g_szFloppyDrv: db "Floppy Drive %c",NULL 134 g_szBootMenuPrintEnd: 135 g_szForeignHD: db "Foreign Hard Disk",NULL 136 137 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS 138 %if ((g_szBootMenuPrintStart-$$) & 0xff00) <> ((g_szBootMenuPrintEnd-$$) & 0xff00) 139 %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" 140 140 %endif 141 141 %endif -
trunk/XTIDE_Universal_BIOS/Src/StringsCompressed.asm
r292 r322 17 17 SECTION .text 18 18 19 ; POST drive detection strings 20 g_szRomAt: ; db "%s @ %x",LF,CR,NULL 21 ; db 25h, 73h, 20h, 40h, 20h, 25h, 78h, 0ah, 0dh, 00h ; uncompressed 22 db 3eh, 20h, 0c6h, 39h, 1bh ; compressed 23 24 25 ; Boot loader strings 26 g_szTryToBoot: ; db "Booting from %s %x",ANGLE_QUOTE_RIGHT,"%x",LF,CR,NULL 27 ; db 42h, 6fh, 6fh, 74h, 69h, 6eh, 67h, 20h, 66h, 72h, 6fh, 6dh, 20h, 25h, 73h, 20h, 25h, 78h, 0afh, 25h, 78h, 0ah, 0dh, 00h ; uncompressed 28 db 48h, 75h, 75h, 7ah, 6fh, 74h, 0edh, 6ch, 78h, 75h, 0f3h, 3eh, 20h, 39h, 24h, 39h, 1bh ; compressed 29 30 g_szBootSectorNotFound: ; db "Boot sector " 31 ; db 42h, 6fh, 6fh, 74h, 20h, 73h, 65h, 63h, 74h, 6fh, 72h, 20h ; uncompressed 32 db 48h, 75h, 75h, 0fah, 79h, 6bh, 69h, 7ah, 75h, 0f8h ; compressed 33 34 g_szNotFound: ; db "not found",LF,CR,NULL 35 ; db 6eh, 6fh, 74h, 20h, 66h, 6fh, 75h, 6eh, 64h, 0ah, 0dh, 00h ; uncompressed 36 db 74h, 75h, 0fah, 6ch, 75h, 7bh, 74h, 6ah, 1bh ; compressed 37 38 g_szReadError: ; db "Error %x!",LF,CR,NULL 39 ; db 45h, 72h, 72h, 6fh, 72h, 20h, 25h, 78h, 21h, 0ah, 0dh, 00h ; uncompressed 40 db 4bh, 78h, 78h, 75h, 0f8h, 39h, 25h, 1bh ; compressed 41 42 43 g_szAddressingModes: 44 g_szLCHS: ; db "L-CHS",NULL 45 ; db 4ch, 2dh, 43h, 48h, 53h, 00h ; uncompressed 46 db 52h, 28h, 49h, 4eh, 99h ; compressed 47 48 g_szPCHS: ; db "P-CHS",NULL 49 ; db 50h, 2dh, 43h, 48h, 53h, 00h ; uncompressed 50 db 56h, 28h, 49h, 4eh, 99h ; compressed 51 52 g_szLBA28: ; db "LBA28",NULL 53 ; db 4ch, 42h, 41h, 32h, 38h, 00h ; uncompressed 54 db 52h, 48h, 47h, 2ch, 11h ; compressed 55 56 g_szLBA48: ; db "LBA48",NULL 57 ; db 4ch, 42h, 41h, 34h, 38h, 00h ; uncompressed 58 db 52h, 48h, 47h, 2eh, 11h ; compressed 59 60 g_szAddressingModes_Displacement equ (g_szPCHS - g_szAddressingModes) 61 ; 62 ; Ensure that addressing modes are correctly spaced in memory 63 ; 64 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS 65 %if g_szLCHS <> g_szAddressingModes 66 %error "g_szAddressingModes Displacement Incorrect 1" 67 %endif 68 %if g_szPCHS <> g_szLCHS + g_szAddressingModes_Displacement 69 %error "g_szAddressingModes Displacement Incorrect 2" 70 %endif 71 %if g_szLBA28 <> g_szPCHS + g_szAddressingModes_Displacement 72 %error "g_szAddressingModes Displacement Incorrect 3" 73 %endif 74 %if g_szLBA48 <> g_szLBA28 + g_szAddressingModes_Displacement 75 %error "g_szAddressingModes Displacement Incorrect 4" 76 %endif 77 %endif 78 19 79 ; Boot Menu Floppy Disk strings 20 80 ; … … 52 112 %endif 53 113 54 ; The following strings are used by DetectPrint_StartDetectWithMasterOrSlaveStringIn AXandIdeVarsInCSBP114 ; The following strings are used by DetectPrint_StartDetectWithMasterOrSlaveStringInCXandIdeVarsInCSBP 55 115 ; To support an optimization in that code, these strings must start on the same 256 byte page, 56 116 ; which is checked at assembly time below. … … 99 159 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS 100 160 %if ((g_szDetectEnd-$$) & 0xff00) <> ((g_szDetectStart-$$) & 0xff00) 101 %error "g_szDetect* strings must start on the same 256 byte page, required by DetectPrint_StartDetectWithMasterOrSlaveStringInAXandIdeVarsInCSBP. Please move this block up or down within strings.asm" 161 %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" 162 %endif 163 %endif 164 165 g_szBusTypeValues: 166 g_szBusTypeValues_8Dual: ; db "D8 ",NULL 167 ; db 44h, 38h, 20h, 00h ; uncompressed 168 db 4ah, 31h, 00h ; compressed 169 170 g_szBusTypeValues_8Reversed: ; db "X8 ",NULL 171 ; db 58h, 38h, 20h, 00h ; uncompressed 172 db 5eh, 31h, 00h ; compressed 173 174 g_szBusTypeValues_8Single: ; db "S8 ",NULL 175 ; db 53h, 38h, 20h, 00h ; uncompressed 176 db 59h, 31h, 00h ; compressed 177 178 g_szBusTypeValues_16: ; db " 16",NULL 179 ; db 20h, 31h, 36h, 00h ; uncompressed 180 db 20h, 2bh, 10h ; compressed 181 182 g_szBusTypeValues_32: ; db " 32",NULL 183 ; db 20h, 33h, 32h, 00h ; uncompressed 184 db 20h, 2dh, 0ch ; compressed 185 186 g_szBusTypeValues_Serial: ; db "SER",NULL 187 ; db 53h, 45h, 52h, 00h ; uncompressed 188 db 59h, 4bh, 98h ; compressed 189 190 g_szBusTypeValues_8MemMapped: ; db "M8 ",NULL 191 ; db 4dh, 38h, 20h, 00h ; uncompressed 192 db 53h, 31h, 00h ; compressed 193 194 g_szBusTypeValues_Displacement equ (g_szBusTypeValues_8Reversed - g_szBusTypeValues) 195 ; 196 ; Ensure that bus type strings are correctly spaced in memory 197 ; 198 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS 199 %if g_szBusTypeValues_8Dual <> g_szBusTypeValues 200 %error "g_szBusTypeValues Displacement Incorrect 1" 201 %endif 202 %if g_szBusTypeValues_8Reversed <> g_szBusTypeValues + g_szBusTypeValues_Displacement 203 %error "g_szBusTypeValues Displacement Incorrect 2" 204 %endif 205 %if g_szBusTypeValues_8Single <> g_szBusTypeValues_8Reversed + g_szBusTypeValues_Displacement 206 %error "g_szBusTypeValues Displacement Incorrect 3" 207 %endif 208 %if g_szBusTypeValues_16 <> g_szBusTypeValues_8Single + g_szBusTypeValues_Displacement 209 %error "g_szBusTypeValues Displacement Incorrect 4" 210 %endif 211 %if g_szBusTypeValues_32 <> g_szBusTypeValues_16 + g_szBusTypeValues_Displacement 212 %error "g_szBusTypeValues Displacement Incorrect 5" 213 %endif 214 %if g_szBusTypeValues_Serial <> g_szBusTypeValues_32 + g_szBusTypeValues_Displacement 215 %error "g_szBusTypeValues Displacement Incorrect 6" 216 %endif 217 %if g_szBusTypeValues_8MemMapped <> g_szBusTypeValues_Serial + g_szBusTypeValues_Displacement 218 %error "g_szBusTypeValues Displacement Incorrect 7" 102 219 %endif 103 220 %endif … … 131 248 %if ((g_szBootMenuPrintStart-$$) & 0xff00) <> ((g_szBootMenuPrintEnd-$$) & 0xff00) 132 249 %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" 133 %endif134 %endif135 136 ; POST drive detection strings137 g_szRomAt: ; db "%s @ %x",LF,CR,NULL138 ; db 25h, 73h, 20h, 40h, 20h, 25h, 78h, 0ah, 0dh, 00h ; uncompressed139 db 3eh, 20h, 0c6h, 39h, 1bh ; compressed140 141 142 ; Boot loader strings143 g_szTryToBoot: ; db "Booting from %s %x",ANGLE_QUOTE_RIGHT,"%x",LF,CR,NULL144 ; db 42h, 6fh, 6fh, 74h, 69h, 6eh, 67h, 20h, 66h, 72h, 6fh, 6dh, 20h, 25h, 73h, 20h, 25h, 78h, 0afh, 25h, 78h, 0ah, 0dh, 00h ; uncompressed145 db 48h, 75h, 75h, 7ah, 6fh, 74h, 0edh, 6ch, 78h, 75h, 0f3h, 3eh, 20h, 39h, 24h, 39h, 1bh ; compressed146 147 g_szBootSectorNotFound: ; db "Boot sector "148 ; db 42h, 6fh, 6fh, 74h, 20h, 73h, 65h, 63h, 74h, 6fh, 72h, 20h ; uncompressed149 db 48h, 75h, 75h, 0fah, 79h, 6bh, 69h, 7ah, 75h, 0f8h ; compressed150 151 g_szNotFound: ; db "not found",LF,CR,NULL152 ; db 6eh, 6fh, 74h, 20h, 66h, 6fh, 75h, 6eh, 64h, 0ah, 0dh, 00h ; uncompressed153 db 74h, 75h, 0fah, 6ch, 75h, 7bh, 74h, 6ah, 1bh ; compressed154 155 g_szReadError: ; db "Error %x!",LF,CR,NULL156 ; db 45h, 72h, 72h, 6fh, 72h, 20h, 25h, 78h, 21h, 0ah, 0dh, 00h ; uncompressed157 db 4bh, 78h, 78h, 75h, 0f8h, 39h, 25h, 1bh ; compressed158 159 160 g_szAddressingModes:161 g_szLCHS: ; db "L-CHS",NULL162 ; db 4ch, 2dh, 43h, 48h, 53h, 00h ; uncompressed163 db 52h, 28h, 49h, 4eh, 99h ; compressed164 165 g_szPCHS: ; db "P-CHS",NULL166 ; db 50h, 2dh, 43h, 48h, 53h, 00h ; uncompressed167 db 56h, 28h, 49h, 4eh, 99h ; compressed168 169 g_szLBA28: ; db "LBA28",NULL170 ; db 4ch, 42h, 41h, 32h, 38h, 00h ; uncompressed171 db 52h, 48h, 47h, 2ch, 11h ; compressed172 173 g_szLBA48: ; db "LBA48",NULL174 ; db 4ch, 42h, 41h, 34h, 38h, 00h ; uncompressed175 db 52h, 48h, 47h, 2eh, 11h ; compressed176 177 g_szAddressingModes_Displacement equ (g_szPCHS - g_szAddressingModes)178 ;179 ; Ensure that addressing modes are correctly spaced in memory180 ;181 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS182 %if g_szLCHS <> g_szAddressingModes183 %error "g_szAddressingModes Displacement Incorrect 1"184 %endif185 %if g_szPCHS <> g_szLCHS + g_szAddressingModes_Displacement186 %error "g_szAddressingModes Displacement Incorrect 2"187 %endif188 %if g_szLBA28 <> g_szPCHS + g_szAddressingModes_Displacement189 %error "g_szAddressingModes Displacement Incorrect 3"190 %endif191 %if g_szLBA48 <> g_szLBA28 + g_szAddressingModes_Displacement192 %error "g_szAddressingModes Displacement Incorrect 4"193 %endif194 %endif195 196 g_szBusTypeValues:197 g_szBusTypeValues_8Dual: ; db "D8 ",NULL198 ; db 44h, 38h, 20h, 00h ; uncompressed199 db 4ah, 31h, 00h ; compressed200 201 g_szBusTypeValues_8Reversed: ; db "X8 ",NULL202 ; db 58h, 38h, 20h, 00h ; uncompressed203 db 5eh, 31h, 00h ; compressed204 205 g_szBusTypeValues_8Single: ; db "S8 ",NULL206 ; db 53h, 38h, 20h, 00h ; uncompressed207 db 59h, 31h, 00h ; compressed208 209 g_szBusTypeValues_16: ; db " 16",NULL210 ; db 20h, 31h, 36h, 00h ; uncompressed211 db 20h, 2bh, 10h ; compressed212 213 g_szBusTypeValues_32: ; db " 32",NULL214 ; db 20h, 33h, 32h, 00h ; uncompressed215 db 20h, 2dh, 0ch ; compressed216 217 g_szBusTypeValues_Serial: ; db "SER",NULL218 ; db 53h, 45h, 52h, 00h ; uncompressed219 db 59h, 4bh, 98h ; compressed220 221 g_szBusTypeValues_8MemMapped: ; db "M8 ",NULL222 ; db 4dh, 38h, 20h, 00h ; uncompressed223 db 53h, 31h, 00h ; compressed224 225 g_szBusTypeValues_Displacement equ (g_szBusTypeValues_8Reversed - g_szBusTypeValues)226 ;227 ; Ensure that bus type strings are correctly spaced in memory228 ;229 %ifndef CHECK_FOR_UNUSED_ENTRYPOINTS230 %if g_szBusTypeValues_8Dual <> g_szBusTypeValues231 %error "g_szBusTypeValues Displacement Incorrect 1"232 %endif233 %if g_szBusTypeValues_8Reversed <> g_szBusTypeValues + g_szBusTypeValues_Displacement234 %error "g_szBusTypeValues Displacement Incorrect 2"235 %endif236 %if g_szBusTypeValues_8Single <> g_szBusTypeValues_8Reversed + g_szBusTypeValues_Displacement237 %error "g_szBusTypeValues Displacement Incorrect 3"238 %endif239 %if g_szBusTypeValues_16 <> g_szBusTypeValues_8Single + g_szBusTypeValues_Displacement240 %error "g_szBusTypeValues Displacement Incorrect 4"241 %endif242 %if g_szBusTypeValues_32 <> g_szBusTypeValues_16 + g_szBusTypeValues_Displacement243 %error "g_szBusTypeValues Displacement Incorrect 5"244 %endif245 %if g_szBusTypeValues_Serial <> g_szBusTypeValues_32 + g_szBusTypeValues_Displacement246 %error "g_szBusTypeValues Displacement Incorrect 6"247 %endif248 %if g_szBusTypeValues_8MemMapped <> g_szBusTypeValues_Serial + g_szBusTypeValues_Displacement249 %error "g_szBusTypeValues Displacement Incorrect 7"250 250 %endif 251 251 %endif -
trunk/XTIDE_Universal_BIOS/makefile
r294 r322 169 169 @echo * 8k JR-IDE/ISA version "$(TARGET)_jr8k.bin" built. 170 170 171 strings: src\StringsCompressed.asm 171 strings: src\Strings.asm 172 @$(AS) src\Strings.asm $(ASFLAGS) $(DEFS_XT) -DCHECK_FOR_UNUSED_ENTRYPOINTS -DMODULE_STRINGS_COMPRESSED_PRECOMPRESS -o build\Strings.bin -l build\StringsPrecompress.lst 173 @perl ..\tools\StringsCompress.pl < build\StringsPrecompress.lst > src\StringsCompressed.asm 174 @echo StringsCompressed.asm updated! 172 175 173 176 clean: … … 184 187 @perl ..\tools\checksum.pl $(TARGET)_jr8k.bin $(ROMSIZE) 185 188 186 src\StringsCompressed.asm: src\Strings.asm187 @$(AS) src\Strings.asm $(ASFLAGS) $(DEFS_XT) -DCHECK_FOR_UNUSED_ENTRYPOINTS -DMODULE_STRINGS_COMPRESSED_PRECOMPRESS -o build\Strings.bin -l build\StringsPrecompress.lst188 @perl ..\tools\StringsCompress.pl < build\StringsPrecompress.lst > src\StringsCompressed.asm189 @echo StringsCompressed.asm updated!190 191 189 xt_unused: xt 192 190 $(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_XT) -o"$(TARGET)_xt_unused.asm" -E -DCHECK_FOR_UNUSED_ENTRYPOINTS
Note:
See TracChangeset
for help on using the changeset viewer.