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 >
Text File  |  1989-08-24  |  1KB  |  106 lines

  1. ;
  2. ; Turbo fast 8x8 font output
  3. ;
  4. ;
  5.  
  6.     csect    text,0,,2,2
  7.  
  8.     xdef    __qf_setfont    ; a0 = font ptr
  9.  
  10. __qf_setfont:
  11.     move.l    a0,fontp(a4)
  12.     rts
  13.  
  14.     xdef    _qf_setplane    ; a0 = first line, d0 = modulo
  15. _qf_setplane:
  16.     move.l    a0,plane(a4)
  17.     move.l    a0,curpos(a4)
  18.     move.w    d0,mod(a4)
  19.     rol.w    #3,d0
  20.     move.w    d0,mod8(a4)
  21.     rts
  22.  
  23.     xdef    __qf_xy    ; d0 = x, d1 = y
  24. __qf_xy:
  25.     add.l    plane(a4),d0
  26.     mulu    mod8(a4),d1
  27.     add.l    d1,d0
  28.     move.l    d0,curpos(a4)
  29.     rts
  30.  
  31.     xdef    __qf_wc    ; d0 = char
  32. __qf_wc:
  33.     move.l    fontp(a4),a1
  34.     move.l    curpos(a4),a0
  35.     addq.l    #1,curpos(a4)
  36.     move.w    mod(a4),d1
  37.     rol.l    #3,d0
  38.     add.l    d0,a1
  39.  
  40.     move.b    (a1)+,(a0)
  41.     add.w    d1,a0
  42.     move.b    (a1)+,(a0)
  43.     add.w    d1,a0
  44.     move.b    (a1)+,(a0)
  45.     add.w    d1,a0
  46.     move.b    (a1)+,(a0)
  47.     add.w    d1,a0
  48.     move.b    (a1)+,(a0)
  49.     add.w    d1,a0
  50.     move.b    (a1)+,(a0)
  51.     add.w    d1,a0
  52.     move.b    (a1)+,(a0)
  53.     add.w    d1,a0
  54.     move.b    (a1),(a0)
  55.  
  56.     rts
  57.  
  58.     xdef    __qf_ws    ; a0 = string, d0 = len
  59. __qf_ws:
  60.     movem.l    a2/d2,-(sp)
  61.     move.l    a0,a2
  62.     move.l    d0,d2
  63.     bra.s    qfl2
  64. qfl1:
  65.     moveq    #0,d0
  66.     move.b    (a2)+,d0
  67.     bsr.s    __qf_wc
  68. qfl2:
  69.     dbf    d2,qfl1
  70.     movem.l    (sp)+,a2/d2
  71. ret:
  72.     rts
  73.  
  74.  
  75.     xdef    __qf_ceol    ; d0 = len
  76. __qf_ceol:
  77.     subq.l    #1,d0
  78.     bmi.s    ret
  79.     movem.l    d2/d3/d4,-(sp)
  80.     move.l    curpos(a4),a0
  81.     move.w    mod(a4),d1    ; modulo
  82.     moveq    #0,d2
  83.     moveq    #7,d3
  84. qfeol1:
  85.     move.l    a0,a1
  86.     move.l    d0,d4
  87. qfeol2:
  88.     move.b    d2,(a1)+
  89.     dbf    d4,qfeol2
  90.     add.w    d1,a0
  91.     dbf    d3,qfeol1
  92.  
  93.     movem.l    (sp)+,d2/d3/d4
  94.     rts
  95.  
  96.  
  97.     csect    data,2,,2,2
  98.  
  99. fontp:    ds.l    1
  100. plane:    ds.l    1
  101. curpos:    ds.l    1
  102. mod:    ds.w    1
  103. mod8:    ds.w    1
  104.  
  105.     end
  106.