Advertisement
arriopolis

CursorBlink2

Oct 7th, 2011
170
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.     JR Start
  10. InputISR:               ;$9D9D
  11.     DI
  12.     EX AF, AF'
  13.    EXX
  14.    XOR A
  15.    OUT (3), A
  16.    LD HL, CurTime
  17.    INC (HL)
  18.    LD A, 32
  19.    CP (HL)
  20.    JR NZ, InputNoblink
  21.    LD (HL), 0
  22.    LD A, (IY + CurFlags)
  23.    XOR %00001000
  24.    LD (IY + CurFlags), A
  25. InputNoblink:
  26.    LD A, %00000010
  27.    OUT (3), A
  28.    EXX
  29.    EX AF, AF'
  30.     EI
  31.     RET
  32. Start:
  33.     LD HL, 0
  34.     LD (CurRow), HL
  35.     SET CurOn, (IY + CurFlags)
  36.     DI
  37.     LD A, 0
  38.     LD (CurTime), A
  39.     LD A, $99               ;AppBackupScreen is at $9872
  40.     LD I, A
  41.     LD HL, $9900            ;Load Vector Table, $9900 - $99FF
  42.     LD (HL), $9D
  43.     LD D, H
  44.     LD E, 1
  45.     LD BC, 255
  46.     LDIR
  47.     LD A, %00000010
  48.     OUT (3), A
  49.     IM 2
  50.     EI                  ;Enable the interrupts again.
  51. InputKey:
  52.     BIT CurOn, (IY + CurFlags)
  53.     JR NZ, InputCursorOn
  54.     LD A, " "
  55.     JR InputKeyCont
  56. InputCursorOn:
  57.     LD A, $E0               ;$E0 = Cursor
  58. InputKeyCont:
  59.     b_call(_PutMap)
  60.     LD A, $FD
  61.     OUT (1), A
  62.     NOP
  63.     NOP
  64.     IN A, (1)
  65.     CP $FE
  66.     JR NZ, InputKey
  67.     LD A, %00010011
  68.     OUT (3), A
  69.     IM 1
  70.     RET
  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