Advertisement
arriopolis

CursorBlink

Oct 6th, 2011
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .nolist
  2. #include    "ti83plus.inc"
  3. #define    ProgStart    $9D95
  4. .list
  5. .org    ProgStart - 2
  6.     .db t2ByteTok, tAsmCmp
  7.     b_call(_getKey)
  8.     b_call(_ClrLCDFull)
  9.     LD HL, 0
  10.     LD (CurRow), HL
  11.     SET CurOn, (IY + CurFlags)
  12.     LD A, 0
  13.     LD (CurTime), A
  14.     DI
  15.     LD HL, CurTime
  16.     EXX
  17.     IM 2
  18.     LD A, %00000010
  19.     OUT (3), A
  20.     LD A, $98               ;AppBackupScreen is at $9872
  21.     LD I, A
  22.     LD HL, $9900            ;Load Vector Table, $9900 - $99FF
  23.     LD (HL), $98
  24.     LD D, H
  25.     LD E, 1
  26.     LD BC, 255
  27.     LDIR
  28.     LD HL, InputISREnd
  29.     LD DE, $9898
  30.     LD BC, 3
  31.     LDIR
  32.     EI                  ;Enable the interrupts again.
  33. InputKey:
  34.     BIT CurOn, (IY + CurFlags)
  35.     JR NZ, InputCursorOn
  36.     LD A, " "
  37.     JR InputKeyCont
  38. InputCursorOn:
  39.     LD A, $E0               ;$E0 = Cursor
  40. InputKeyCont:
  41.     b_call(_PutMap)
  42.     LD A, $FD
  43.     OUT (1), A
  44.     NOP
  45.     NOP
  46.     IN A, (1)
  47.     CP $FE
  48.     JR NZ, InputKey
  49.     IM 1
  50.     RET
  51. InputISR:
  52.     DI
  53.     EX AF, AF'
  54.    EXX
  55.    LD HL, CurTime
  56.    INC (HL)
  57.    LD A, 32
  58.    CP (HL)
  59.    JR NZ, InputNoblink
  60.    LD (HL), 0
  61.    LD A, (IY + CurFlags)
  62.    XOR %00001000
  63.    LD (IY + CurFlags), A
  64. InputNoblink:
  65.    EXX
  66.    EX AF, AF'
  67.     EI
  68.     RET
  69. InputISREnd:
  70.     JP InputISR
  71. ;Keyport (1):
  72. ;                  +-------------------------------------------------------------------------------------------------------------------------------+
  73. ;                  ¦                                                             Read:                                                             ¦
  74. ;                  +-------------------------------------------------------------------------------------------------------------------------------¦
  75. ;                  ¦$FE = %11111110¦$FD = %11111101¦$FB = %11111011¦$F7 = %11110111¦$EF = %11101111¦$DF = %11011111¦$BF = %10111111¦$7F = %01111111¦
  76. ;+-----------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------¦
  77. ;¦ ¦$BF = %10111111¦    [GRAPH]    ¦    [TRACE]    ¦    [ZOOM]     ¦   [WINDOW]    ¦     [Y=]      ¦     [2nd]     ¦    [MODE]     ¦     [DEL]     ¦
  78. ;¦W¦$DF = %11011111¦               ¦     [STO]     ¦     [LN]      ¦     [LOG]     ¦     [X²]      ¦     [X-1]     ¦    [MATH]     ¦    [ALPHA]    ¦
  79. ;¦R¦$EF = %11101111¦      [0]      ¦      [1]      ¦      [4]      ¦      [7]      ¦      [,]      ¦     [SIN]     ¦    [APPS]     ¦   [X,T,Q,n]   ¦
  80. ;¦I¦$F7 = %11110111¦      [.]      ¦      [2]      ¦      [5]      ¦      [8]      ¦      [)]      ¦     [COS]     ¦    [PRGM]     ¦    [STAT]     ¦
  81. ;¦T¦$FB = %11111011¦     [(-)]     ¦      [3]      ¦      [6]      ¦      [9]      ¦      [(]      ¦     [TAN]     ¦    [VARS]     ¦               ¦
  82. ;¦E¦$FD = %11111101¦    [ENTER]    ¦      [+]      ¦      [-]      ¦      [X]      ¦      [/]      ¦      [^]      ¦    [CLEAR]    ¦               ¦
  83. ;¦ ¦$FE = %11111110¦    [DOWN]     ¦    [LEFT]     ¦    [RIGHT]    ¦     [UP]      ¦               ¦               ¦               ¦               ¦
  84. ;+-------------------------------------------------------------------------------------------------------------------------------------------------+
  85. .end
  86. .end
  87.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement