; ;============================================================================= ; ROMFONTS.ASM - ROM HOSTED FONTS ;============================================================================= ; ; THIS ASSEMBLY IS PURELY A DATA ASSEMBLY USED TO INCLUDE THE ROM-HOSTED ; FONTS. ; ; FOR NOW, WE ARE JUST INCLUDING 3 FONTS AND THEY ARE NOT COMPRESSED. ; #INCLUDE "std.asm" ; COMP .EQU $80 ; BIT MASK FOR COMPRESSED FONT RAW .EQU $00 ; BIT MASK FOR RAW FONT ; ; FONT INCLUSION CONTROLS. THE FMT_XXX SETTING CONTROLS WHETHER THE ; FONT DATA WILL BE COMPRESSED OR NOT. GENERALLY, COMPRESSED IS USED ; TO SAVE SPACE. THE 6X8 FONT IS AN EXCEPTION BECAUSE IT IS USED BY ; THE TMS DRIVER WHICH RELOADS THE FONT ON-THE-FLY DURING SYSTEM ; OPERATION. SEE TMS.ASM. ; USEFONT6X8 .EQU TRUE FMT_6X8 .EQU RAW ; USEFONT8X8 .EQU TRUE FMT_8X8 .EQU COMP ; USEFONT8X11 .EQU TRUE FMT_8X11 .EQU COMP ; USEFONT8X16 .EQU TRUE FMT_8X16 .EQU COMP ; .ORG FONTS_LOC ; ; FONT LOCATION MAP ; .DB 'F','M' ; TABLE SIGNATURE #IF USEFONT6X8 .DB FONTID_6X8 | FMT_6X8 .DW FONT6X8 #ENDIF ; #IF USEFONT8X8 .DB FONTID_8X8 | FMT_8X8 .DW FONT8X8 #ENDIF ; #IF USEFONT8X11 .DB FONTID_8X11 | FMT_8X11 .DW FONT8X11 #ENDIF ; #IF USEFONT8X16 .DB FONTID_8X16 | FMT_8X16 .DW FONT8X16 #ENDIF ; .DB 0 ; END OF TABLE ; ; INCLUDE ACTUAL FONT FILES ; #IF USEFONT6X8 .ECHO "FONT6X8: " FONT6X8: #IF (FMT_6X8 == COMP) .ECHO "COMPRESSED " #INCLUDE "font6x8c.asm" #ELSE .ECHO "RAW " #INCLUDE "font6x8u.asm" #ENDIF .ECHO $ - FONT6X8 .ECHO " BYTES\n" #ENDIF ; #IF USEFONT8X8 .ECHO "FONT8X8: " FONT8X8: #IF (FMT_8X8 == COMP) .ECHO "COMPRESSED " #INCLUDE "font8x8c.asm" #ELSE .ECHO "RAW " #INCLUDE "font8x8u.asm" #ENDIF .ECHO $ - FONT8X8 .ECHO " BYTES\n" #ENDIF ; #IF USEFONT8X11 .ECHO "FONT8X11: " FONT8X11: #IF (FMT_8X11 == COMP) .ECHO "COMPRESSED " #INCLUDE "font8x11c.asm" #ELSE .ECHO "RAW " #INCLUDE "font8x11u.asm" #ENDIF .ECHO $ - FONT8X11 .ECHO " BYTES\n" #ENDIF ; #IF USEFONT8X16 .ECHO "FONT8X16: " FONT8X16: #IF (FMT_8X16 == COMP) .ECHO "COMPRESSED " #INCLUDE "font8x16c.asm" #ELSE .ECHO "RAW " #INCLUDE "font8x16u.asm" #ENDIF .ECHO $ - FONT8X16 .ECHO " BYTES\n" #ENDIF ; ; IT IS CRITICAL THAT THE FINAL BINARY BE EXACTLY USR_SIZ BYTES. ; THIS GENERATES FILLER AS NEEDED. IT WILL ALSO FORCE AN ASSEMBLY ; ERROR IF THE SIZE EXCEEDS THE SPACE ALLOCATED. ; SLACK .EQU (FONTS_END - $) ; #IF (SLACK < 0) .ECHO "*** FONTS IS TOO BIG!!!\n" !!! ; FORCE AN ASSEMBLY ERROR #ENDIF ; .FILL SLACK,$00 .ECHO "FONTS space remaining: " .ECHO SLACK .ECHO " bytes.\n" ; .END