#include "C:/ASM/TASM/ti83plus.inc"
#define bcall(label)    RST 28h \ .dw label

    .org    $9D93
    .db     $BB,$6D

    B_CALL(_zeroOp1)
    B_CALL(_rclans)
    B_CALL(_convop1)
    ex de,hl
    cp 0
    jp z, normtext
    cp 1
    jp z, inverse
    cp 2
    jp z, textscroll
    cp 3
    jp z, insertext
    cp 4
    jp z, Run_indic_on
    cp 5
    jp z, Run_indic_off
    cp 6
    jp z, alpha_lock_temp
    cp 7
    jp z, alpha_lock_perm
    cp 8
    jp z, lwrcase_on
    cp 9
    jp z, lwrcase_off
    cp 10
    jp z, Clrhome
    cp 11
    jp z, Clrdraw
    cp 12
    jp z, Clrall
    cp 13
    jp z, free_ram
    cp 14
    jp z, battery
    cp 15
    jp z, cursoron
    cp 16
    jp z, cursoroff
    cp 17
    jp z, power_down
    cp 18 
    jp z, turn_on
    cp 19
    jp z, regraph
    cp 20
    jp z, extra_speed
    jp nz, exit
    
normtext:
    res textinverse, (iy+textflags)
    ret

inverse:
    set textinverse, (iy+textflags)
    ret

textscroll:
    set textScrolled, (iy+textFlags)
    ret

insertext:
    set textInsMode, (iy+textFlags)
    ret

Run_indic_on:
    B_CALL(_RunIndicOn)
    ret

Run_indic_off:
    B_CALL(_RunIndicOff)
    ret

alpha_lock_temp:
    set shiftAlpha, (iy+shiftFlags)
    set shiftALock, (iy+shiftFlags)
    ret

alpha_lock_perm:
    set shiftAlpha, (iy+shiftFlags)
    set shiftKeepAlph, (iy+shiftFlags)
    ret

lwrcase_on:
    set lwrCaseActive, (iy+appLwrCaseFlag)
    ret

lwrcase_off:
    res lwrCaseActive, (iy+appLwrCaseFlag)
    ret

Clrhome:
    B_CALL(_ClrLCDFull)
    B_CALL(_Disp)
    ret

Clrdraw:
    B_CALL(_Grbufclr)
    B_CALL(_PDspGrph)
    ret

Clrall:
    B_CALL(_ClrLCDFull)
    B_CALL(_Grbufclr)
    ret

free_ram:
    B_CALL(_memchk)
    B_CALL(_dispHL)
    B_CALL(_puts)
    B_CALL(_newline)
    ld hl, msg0
    B_CALL(_puts)
    B_CALL(_newline)
    ret

msg0:
    .db "Bytes of RAM    Remain", 0

battery:
    B_CALL(_Chk_Batt_Low)
    cp 1
    jp z, batt_low
    jp nz, batt_not_low
    ret

batt_low:
    ld hl, msg1
    B_CALL(_puts)
    B_CALL(_newline)
    ret

msg1:
    .db "Change your     batteries!", 0

batt_not_low:
    ld hl, msg2
    B_CALL(_puts)
    B_CALL(_newline)
    ret

msg2:
    .db "Your batteries  are fine.", 0

cursoron:
    res curLock, (iy+curFlags)
    ret

cursoroff:
    set curLock, (iy+curFlags)
    ret

power_down:
    DI
    ld a, 001H
    Out (003h), a
    ld a, 000H
    out (004H), a
    ex af, af'
    exx
    ei
    ret

turn_on:
    set onRunning, (iy+onflags)
    ret

regraph:
    B_CALL(_SetExSpeed)
    set graphDraw, (iy+graphFlags)
    B_CALL(_PdspGrph)
    ret

extra_speed:
    B_CALL(_SetExSpeed)
    ret

exit:
    ret

.end
.end
END


















