home *** CD-ROM | disk | FTP | other *** search
/ Team Palmtops 7 / Palmtops_numero07.iso / Ti / Magazine / Tests / DOORSOSD.ZIP / HEXLIB.ASM < prev    next >
Encoding:
Assembly Source File  |  1999-12-23  |  3.9 KB  |  230 lines

  1.     include    "doorsos.h"
  2.     xdef    _library
  3.     xdef    _ti92plus
  4.     xdef    _ti89
  5.     xdef    hexlib@0000
  6.     xdef    hexlib@0001
  7.     xdef    hexlib@0002
  8.  
  9. ;************** Start of Fargo library ***************
  10. ;Originally written by David Ellsworth for Fargo
  11. ;Ported by Xavier VASSOR for Doors OS
  12.  
  13. hexlib@0000:
  14. put_char:
  15.     movem.l d1-d3/a0-a1,-(a7)
  16.  
  17.     lsl.l    #3,d0
  18.     lea    numbers(pc),a0        ; a0 -> numbers + 8*char
  19.     add.l    d0,a0
  20.  
  21.     lea    LCD_MEM,a1
  22.     lsl.l    #4,d1
  23.     move.l    d1,d0
  24.     lsl.l    #4,d0
  25.     sub.l    d1,d0
  26.     add.l    d2,d0
  27.     add.l    d0,a1
  28.  
  29.     moveq.l    #30,d1                  ; 30 bytes per pixel row
  30.     moveq.w    #7,d2            ; 8 bytes per character
  31. put_char_loop:
  32.     move.b    (a0)+,(a1)
  33.     add.l    d1,a1
  34.     dbf.w    d2,put_char_loop
  35.  
  36.     movem.l (a7)+,d1-d3/a0-a1
  37.     rts
  38.  
  39. ;*****************************************************
  40.  
  41. hexlib@0001:                       
  42. put_bin:
  43.     movem.l    d3-d5,-(a7)
  44.  
  45. put_bin_loop:
  46.     move.l    d0,d5            ; save number
  47.     lsr.l    d4,d0
  48.     and.l    #1,d0
  49.     bsr    put_char
  50.     move.l    d5,d0            ; restore number
  51.     addq.l    #1,d2            ; increment column
  52.     dbf.w    d4,put_bin_loop
  53.  
  54.     movem.l    (a7)+,d3-d5
  55.     rts
  56.  
  57. ;*****************************************************
  58.  
  59. hexlib@0002:
  60. put_hex:
  61.     movem.l    d3-d5,-(a7)
  62.  
  63. put_hex_loop:
  64.     move.l    d0,d5            ; save number
  65.     move.l    d4,d3
  66.     lsl.l    #2,d3            ; d3 = 4*loopcount (# bits to shift)
  67.     lsr.l    d3,d0
  68.     and.l    #$0000000F,d0
  69.     bsr    put_char
  70.     move.l    d5,d0            ; restore number
  71.     addq.l    #1,d2            ; increment column
  72.     dbf.w    d4,put_hex_loop
  73.  
  74.     movem.l    (a7)+,d3-d5
  75.     rts
  76.  
  77. ;*****************************************************
  78. ; NUMBER CHARACTER DATA
  79. ;*****************************************************
  80. numbers:
  81.     dc.b %01111100    * 0
  82.     dc.b %11000110
  83.     dc.b %11000110
  84.     dc.b %11010110
  85.     dc.b %11000110
  86.     dc.b %11000110
  87.     dc.b %01111100
  88.     dc.b %00000000
  89.  
  90.     dc.b %00011000    * 1
  91.     dc.b %00111000
  92.     dc.b %01111000
  93.     dc.b %00011000
  94.     dc.b %00011000
  95.     dc.b %00011000
  96.     dc.b %01111110
  97.     dc.b %00000000
  98.  
  99.     dc.b %01111100    * 2
  100.     dc.b %11000110
  101.     dc.b %00000110
  102.     dc.b %00111100
  103.     dc.b %01100000
  104.     dc.b %11000000
  105.     dc.b %11111110
  106.     dc.b %00000000
  107.  
  108.     dc.b %11111110    * 3
  109.     dc.b %00000110
  110.     dc.b %00001100
  111.     dc.b %00111100
  112.     dc.b %00000110
  113.     dc.b %11000110
  114.     dc.b %01111100
  115.     dc.b %00000000
  116.  
  117.     dc.b %00011100    * 4
  118.     dc.b %00111100
  119.     dc.b %01101100
  120.     dc.b %11001100
  121.     dc.b %11111110
  122.     dc.b %00001100
  123.     dc.b %00001100
  124.     dc.b %00000000
  125.  
  126.     dc.b %11111110    * 5
  127.     dc.b %11000000
  128.     dc.b %11000000
  129.     dc.b %11111100
  130.     dc.b %00000110
  131.     dc.b %11000110
  132.     dc.b %01111100
  133.     dc.b %00000000
  134.  
  135.     dc.b %00111100    * 6
  136.         dc.b %01100000
  137.     dc.b %11000000
  138.     dc.b %11111100
  139.     dc.b %11000110
  140.     dc.b %11000110
  141.     dc.b %01111100
  142.     dc.b %00000000
  143.  
  144.     dc.b %11111110    * 7
  145.     dc.b %00000110
  146.     dc.b %00001100
  147.     dc.b %00011000
  148.     dc.b %00110000
  149.     dc.b %01100000
  150.     dc.b %11000000
  151.     dc.b %00000000
  152.  
  153.     dc.b %01111100    * 8
  154.     dc.b %11000110
  155.     dc.b %11000110
  156.     dc.b %01111100
  157.     dc.b %11000110
  158.     dc.b %11000110
  159.     dc.b %01111100
  160.     dc.b %00000000
  161.  
  162.     dc.b %01111100    * 9
  163.     dc.b %11000110
  164.     dc.b %11000110
  165.     dc.b %01111110
  166.     dc.b %00000110
  167.     dc.b %00001100
  168.     dc.b %01111000
  169.     dc.b %00000000
  170.  
  171.     dc.b %00111000    * A
  172.     dc.b %01101100
  173.     dc.b %11000110
  174.     dc.b %11111110
  175.     dc.b %11000110
  176.     dc.b %11000110
  177.     dc.b %11000110
  178.     dc.b %00000000
  179.  
  180.     dc.b %11111100    * B
  181.     dc.b %11000110
  182.     dc.b %11000110
  183.     dc.b %11111100
  184.     dc.b %11000110
  185.     dc.b %11000110
  186.     dc.b %11111100
  187.     dc.b %00000000
  188.  
  189.     dc.b %00111100    * C
  190.     dc.b %01100110
  191.     dc.b %11000000
  192.     dc.b %11000000
  193.     dc.b %11000000
  194.     dc.b %01100110
  195.     dc.b %00111100
  196.     dc.b %00000000
  197.  
  198.     dc.b %11111000    * D
  199.     dc.b %11001100
  200.     dc.b %11000110
  201.     dc.b %11000110
  202.     dc.b %11000110
  203.     dc.b %11001100
  204.     dc.b %11111000
  205.     dc.b %00000000
  206.  
  207.     dc.b %11111110    * E
  208.     dc.b %11000000
  209.     dc.b %11000000
  210.     dc.b %11111000
  211.     dc.b %11000000
  212.     dc.b %11000000
  213.     dc.b %11111110
  214.     dc.b %00000000
  215.  
  216.     dc.b %11111110    * F
  217.     dc.b %11000000
  218.     dc.b %11000000
  219.     dc.b %11111000
  220.     dc.b %11000000
  221.     dc.b %11000000
  222.     dc.b %11000000
  223.     dc.b %00000000
  224.  
  225. ;*****************************************************
  226.  
  227. ;*****************************************************
  228.  
  229.     end
  230.