mirror of https://github.com/wwarthen/RomWBW.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
134 lines
2.6 KiB
134 lines
2.6 KiB
;
|
|
;=============================================================================
|
|
; 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
|
|
;
|
|
#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
|
|
|