home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
back2roots/padua
/
padua.7z
/
padua
/
ftp.vapor.com
/
microdot-1
/
md1_src_02.lzx
/
qfont.a
< prev
next >
Wrap
Text File
|
1989-08-24
|
1KB
|
106 lines
;
; Turbo fast 8x8 font output
;
;
csect text,0,,2,2
xdef __qf_setfont ; a0 = font ptr
__qf_setfont:
move.l a0,fontp(a4)
rts
xdef _qf_setplane ; a0 = first line, d0 = modulo
_qf_setplane:
move.l a0,plane(a4)
move.l a0,curpos(a4)
move.w d0,mod(a4)
rol.w #3,d0
move.w d0,mod8(a4)
rts
xdef __qf_xy ; d0 = x, d1 = y
__qf_xy:
add.l plane(a4),d0
mulu mod8(a4),d1
add.l d1,d0
move.l d0,curpos(a4)
rts
xdef __qf_wc ; d0 = char
__qf_wc:
move.l fontp(a4),a1
move.l curpos(a4),a0
addq.l #1,curpos(a4)
move.w mod(a4),d1
rol.l #3,d0
add.l d0,a1
move.b (a1)+,(a0)
add.w d1,a0
move.b (a1)+,(a0)
add.w d1,a0
move.b (a1)+,(a0)
add.w d1,a0
move.b (a1)+,(a0)
add.w d1,a0
move.b (a1)+,(a0)
add.w d1,a0
move.b (a1)+,(a0)
add.w d1,a0
move.b (a1)+,(a0)
add.w d1,a0
move.b (a1),(a0)
rts
xdef __qf_ws ; a0 = string, d0 = len
__qf_ws:
movem.l a2/d2,-(sp)
move.l a0,a2
move.l d0,d2
bra.s qfl2
qfl1:
moveq #0,d0
move.b (a2)+,d0
bsr.s __qf_wc
qfl2:
dbf d2,qfl1
movem.l (sp)+,a2/d2
ret:
rts
xdef __qf_ceol ; d0 = len
__qf_ceol:
subq.l #1,d0
bmi.s ret
movem.l d2/d3/d4,-(sp)
move.l curpos(a4),a0
move.w mod(a4),d1 ; modulo
moveq #0,d2
moveq #7,d3
qfeol1:
move.l a0,a1
move.l d0,d4
qfeol2:
move.b d2,(a1)+
dbf d4,qfeol2
add.w d1,a0
dbf d3,qfeol1
movem.l (sp)+,d2/d3/d4
rts
csect data,2,,2,2
fontp: ds.l 1
plane: ds.l 1
curpos: ds.l 1
mod: ds.w 1
mod8: ds.w 1
end