home *** CD-ROM | disk | FTP | other *** search
/ ticalc.org / ticalc_org_rev_b.iso / archives / 82 / asm / source / ash / chartest.asm < prev    next >
Encoding:
Assembly Source File  |  2001-07-01  |  3.3 KB  |  94 lines

  1. ; *** Chartest ver 1.1 (C) 1997 by Dines Justesen ***
  2. ;
  3. ; This program will let you show all the characters
  4. ; in the TI82's 5x7 font, and the small font. Press
  5. ; up/down to chose which char to show and mode to exit.
  6. ; The program will not show small chars for chars >226
  7. ; because these are not included in the font. Press
  8. ; mode to exit.
  9.  
  10. #include "ti82.h"                  ; Std. include file
  11. .ORG START_ADDR
  12. .DB "Chartest ver 1.1 by DJ",0
  13.        TEXT_START                  ; Std text intro
  14.        SET    3,(IY+05)            ; Display white on black
  15.        LD     HL,TitleStr          ; Display title
  16.        ROM_CALL(D_ZT_STR)
  17.        LD     HL,$0007             ; Goto 7,0
  18.        LD     (CURSOR_POS),HL
  19.        LD     HL,NameStr           ; Display name
  20.        ROM_CALL(D_ZT_STR)
  21.        LD     HL,$0003             ; Goto 3,0
  22.        LD     (CURSOR_POS),HL
  23.        RES    3,(IY+05)            ; Display black on white
  24.        LD     HL,CharStr           ; Display char line
  25.        ROM_CALL(D_ZT_STR)
  26.        LD     HL,$0005             ; Goto 5,0
  27.        LD     (CURSOR_POS),HL
  28.        LD     HL,NumStr            ; Display num line
  29.        ROM_CALL(D_ZT_STR)
  30.        LD     HL,$2000             ; Goto x,y
  31.        LD     (8215h),HL           ; Set graph cursor
  32.        LD     HL,SmallStr          ; Display Str
  33.        ROM_CALL(D_ZM_STR)
  34.  
  35.        LD     A,0                  ; Initialize char number to 0
  36. Main:
  37.        LD     B,A                  ; Save char in b
  38.        LD     HL,$0805             ; Goto position (5,8)
  39.        LD     (CURSOR_POS),HL
  40.        LD     H,0                  ; Show number of char
  41.        LD     L,B
  42.        ROM_CALL(D_HL_DECI)
  43.        LD     A,B                  ; Display char
  44.        LD     HL,$0C03             ; Goto position (3,C)
  45.        LD     (CURSOR_POS),HL
  46.        ROM_CALL(TR_CHARPUT)
  47.        LD     HL,$0C04             ; Delete previus small char
  48.        LD     (CURSOR_POS),HL
  49.        LD     A,32
  50.        ROM_CALL(TR_CHARPUT)
  51.        LD     A,B                  ; Get char
  52.        CP     227
  53.        JR     NC,Keyloop
  54.        LD     HL,$2048             ; Set graph cursor
  55.        LD     ($8215),HL
  56.        ROM_CALL(M_CHARPUT)         ; Display char
  57. Keyloop:
  58.        CALL   GET_KEY              ; Get key
  59.        CP     1                    ; Was down pressed
  60.        JR     Z,Decchar            ; Yes get char below
  61.        CP     4                    ; Was up pressed
  62.        JR     Z,Incchar            ; Yes get char above
  63.        CP     $37                  ; Was mode (quit) pressed?
  64.        JR     NZ,Keyloop           ; No loop until a key has been pressed
  65.        TEXT_END
  66.        RET
  67.  
  68. Decchar:
  69.        LD     A,B          ; Restore char number
  70.        OR     A            ; Set flags
  71.        JR     Z,Main       ; If at char #0 then loop
  72.        DEC    A            ; Get next char
  73.        JR     Main         ; Loop
  74.  
  75. Incchar:
  76.        LD     A,B          ; Restore char number
  77.        INC    A            ; Get next char
  78.        JR     NZ,Main      ; If no overflow then loop
  79.        LD     A,$0FF       ; Set to last char
  80.        JR     Main         ; loop
  81.  
  82. TitleStr:
  83. .DB "Chartest ver 1.1",0
  84. CharStr:
  85. .DB "Char   :        ",0
  86. NumStr:
  87. .DB "Number :        ",0
  88. NameStr:
  89. .DB " Dines Justesen ",0
  90. SmallStr:
  91. .DB "Small char:",0
  92.  
  93. .END
  94.