home *** CD-ROM | disk | FTP | other *** search
/ ticalc.org / ticalc_org_rev_b.iso / archives / 85 / asm / source / zshell / battest.asm < prev    next >
Encoding:
Assembly Source File  |  2001-07-01  |  2.6 KB  |  113 lines

  1. ;Battery test v1.0 by Philip Graf
  2. ;12.2.97
  3.  
  4. #include "TI-85.H"
  5. .org 0
  6. title:  .db "BATTERY TEST V1.0",0
  7.  
  8.     ROM_CALL(CLEARLCD)
  9.     ld hl,$0200                 ;X=2,Y=0
  10.     ld de,title
  11.     CALL_(writexy)
  12.     ld hl,$0107
  13.     ld de,copystr
  14.     CALL_(writexy)
  15.     ld b,$FF                    ;Bitmap blackline
  16.     ld hl,$FC80                 ;row 8 (FC00h+8*16)
  17.     CALL_(horizline)
  18.     ld hl,$FF60                 ;row 54
  19.     CALL_(horizline)
  20.     ld hl,$0A08                 ;X=9,Y=10
  21.     ld de,infostr
  22.     CALL_(writexymnu)
  23. desk:   ld hl,$1E08
  24.     ld de,batstr
  25.     CALL_(writexymnu)
  26. chkbat:                             ;check battery (in fact contrast :)!)
  27.     ld a,($8007)                ;load contrast value (between 0 and 31)
  28.     ld de,min
  29.     cp $18
  30.     jr nc,cl1
  31.     ld de,bad        
  32. cl1:    cp $0F
  33.     jr nc,cl2
  34.     ld de,mod
  35. cl2:    cp $08
  36.     jr nc,cl3
  37.     ld de,good
  38. cl3:    cp $00 
  39.     jr nc,cl4
  40.     ld de,fant
  41. cl4:    cp $1F
  42.     jr nz,cl5
  43.     ld de,newones
  44. cl5:    ld hl,$1E46
  45.     CALL_(writexymnu)           ;write battery condition
  46. keyloop:                            ;repeat until keypressed
  47.     call GET_KEY
  48.     cp $37                      ;Exit key
  49.     ret z
  50.     cp $04                      ;Up-arrow key
  51.     jr z,up
  52.     cp $01                      ;Down-arrow key
  53.     jr z,down
  54.     jr keyloop
  55. writexy:                            ;write text in normal style
  56.     ld ($800C),hl
  57.     ld hl,(PROGRAM_ADDR)
  58.     add hl,de
  59.     ROM_CALL(D_ZT_STR)
  60.     ret
  61. writexymnu:                         ;write text in menu style
  62.     ld ($8333),hl
  63.     ld hl,(PROGRAM_ADDR)
  64.     add hl,de
  65.     ROM_CALL(D_ZM_STR)
  66.     ret
  67. horizline:
  68.     ld a,16                     ;set 16 bytes (a horizontal line) to 
  69. hlo:    ld (hl),b                   ;bitmap stored in b    
  70.     inc hl
  71.     dec a
  72.     cp 0
  73.     jr nz,hlo
  74.     ret
  75. up:                                 
  76.     ld a,($8007)                 
  77.     cp $1F                      ;1Fh is maximum contrast
  78.     jr z,keyloop
  79.     inc a
  80. upndown:ld ($8007),a
  81.     out (2),a                   ;update contrast
  82.     ld b,$00                    ;Bitmap whiteline   
  83.     ld hl,$FDF0                 ;clear old battery condition
  84.     CALL_(horizline)
  85.     ld hl,$FE00
  86.     CALL_(horizline)
  87.     ld hl,$FE10
  88.     CALL_(horizline)
  89.     ld hl,$FE20
  90.     CALL_(horizline)
  91.     ld hl,$FE30
  92.     CALL_(horizline)
  93.     JUMP_(desk)                 ;write new battery condition
  94. down:
  95.     ld a,($8007)
  96.     cp $00                      ;0 is minimum contrast
  97.     jr z,keyloop
  98.     dec a
  99.     jr upndown
  100.  
  101. infostr:.db "Use arrowkeys to" 
  102.     .db " change contrast.",0
  103. batstr: .db "Battery condition:",0
  104. min:    .db "Minimum",0
  105. bad:    .db "Bad",0
  106. mod:    .db "Moderate",0
  107. good:   .db "Good",0
  108. fant:   .db "Fantastic",0
  109. newones:.db "Insert new ones",0
  110. copystr:.db "(c) by  Philip Graf",0
  111.  
  112. .END
  113.