Displaying text: Difference between revisions
Jump to navigation
Jump to search
(Created page with "Displaying text with a 8x8 pixel font: <pre> ;Displays text pointed by A0 at the VRAM address in D1. $FF:Next line, $00:End of text. ;Uses A0, D0 and REG_VRAMMOD Write8Text: …") |
mNo edit summary |
||
| Line 1: | Line 1: | ||
ASM routine for displaying text with a 8x8 pixel font on the [[fix layer]]: | |||
<pre> | <pre> | ||
| Line 25: | Line 25: | ||
</pre> | </pre> | ||
"ASCIISTART" should be the fix tile number corresponding to ASCII value 0. This depends on what tileset you are using. | "ASCIISTART" should be the fix tile number corresponding to ASCII value 0. This depends on what tileset you are using. Usually, onboard fix tilesets have a full 8x8 font starting at tile #0. | ||
The VRAM address is calculated from the desired text position: D1=#FIXMAP+(Y+2+((X+1)*32))<br> | |||
The VRAM address is calculated from the | |||
[[ASM Defines|"FIXMAP"]] being #$7000. | [[ASM Defines|"FIXMAP"]] being #$7000. | ||
[[Category:HowTo]] | [[Category:HowTo]] | ||
[[Category:Code]] | [[Category:Code]] | ||
Revision as of 08:07, 21 February 2011
ASM routine for displaying text with a 8x8 pixel font on the fix layer:
;Displays text pointed by A0 at the VRAM address in D1. $FF:Next line, $00:End of text.
;Uses A0, D0 and REG_VRAMMOD
Write8Text:
move.w d1,VRAM_ADDR
move.w #$20,VRAM_MOD
clr.w d0
textmaplp:
move.b (a0)+,d0
tst.b d0
beq textmapend
cmp.b #$FF,d0
bne nolinejump
addq.w #1,d1
move.w d1,VRAM_ADDR
bra textmaplp
nolinejump:
addq.w ASCIISTART,d0
move.w d0,VRAM_RW
bra textmaplp
textmapend:
rts
"ASCIISTART" should be the fix tile number corresponding to ASCII value 0. This depends on what tileset you are using. Usually, onboard fix tilesets have a full 8x8 font starting at tile #0.
The VRAM address is calculated from the desired text position: D1=#FIXMAP+(Y+2+((X+1)*32))
"FIXMAP" being #$7000.