home *** CD-ROM | disk | FTP | other *** search
- ;assume a screen which is erm... 40 bytes wide
-
-
- even
-
- letter
- ;Calculate letter to print...
- move.l #0,d0
- move.w d0,ek ;Reset text counter.
- move.l string_adr,a0 :Move to next letter in string.
- move.w (a0),d0
- add.l #2,a0
- move.l a0,string_adr
-
- ;Calculate screen address (always bottom right of screen ram)
- move.l #SCREEN1+$1f44,a0
-
- and.w #$00ff,d0
- cmp.w #32,d0 ;a space
- beq space
- cmp.w #73,d0 ;capital I
- beq eye
- cmp.w #42,d0 ;end of string marker
- beq end_of_string
- eyeback
- sub.w #65,d0
-
- move.l a0,-(sp)
-
- move.l #font,a1
- mulu.w #104,d0
- add.l d0,a1
-
- move.l #20,d0
- l1 move.l (a0),d1
- or.l (a1)+,d1
- move.l d1,(a0)
- add.l #44,a0 ;44 = screen width.
- dbf d0,l1
-
- move.l (sp)+,a0
-
-
-
- space
- rts
-
- eye ;a special case for I 'cos it's so skinny!
- move.w ek,d1
- add.w #4,d1
- move.w d1,ek
- bra eyeback
-
- end_of_string ;called at end of string to make sure it repeats
- move.l #string,a0
- move.l a0,string_adr
- rts
-
- even
- font
- incbin "bigfont.bin"
- even