Displaying text

From NeoGeo Development Wiki
Revision as of 08:07, 21 February 2011 by Furrtek (talk | contribs)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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.