;Send X-Link-compatible variables include "settings.inc" include "ti83plus.inc" include "equates.inc" SEGMENT Main GLOBALS ON EXTERN ExitApp,PutSApp,previousMenu,machineID,menuTable,prevMenu,SendVars,StartApp,curVarType,DispHexA,IGetKey EXTERN curChoice,maxChoice Send83Plus: ld a,74h ld (machineID),a jr SelectVars Send85: ld a,85h ld (machineID),a jr SelectVars Send86: ld a,86h ld (machineID),a jr SelectVars Send89: ld a,98h ld (machineID),a jr SelectVars Send92: ld a,92h ld (machineID),a jr SelectVars Send92Plus: SendVoyage200: ld a,89h ld (machineID),a SelectVars: ; ld hl,SendVars ; ld (prevMenu),hl res curMenu,(iy+linkmanFlags) SelectVarsRedraw: B_CALL ClrLCDFull B_CALL HomeUp bit curMenu,(iy+linkmanFlags) jr nz,$F set textInverse,(iy+textFlags) $$: ld hl,sSelect call PutSApp res textInverse,(iy+textFlags) ld hl,curCol inc (hl) bit curMenu,(iy+linkmanFlags) jr z,$F set textInverse,(iy+textFlags) $$: ld hl,sTransmit call PutSApp res textInverse,(iy+textFlags) B_CALL NewLine bit curMenu,(iy+linkmanFlags) jr z,$F set textInverse,(iy+textFlags) ld a,'1' B_CALL PutC ld a,':' B_CALL PutC res textInverse,(iy+textFlags) ld hl,sTransmitOption call PutSApp jr sendKeyLoop $$: B_CALL ZeroOP1 ld a,ProgObj ;AppVarObj ld (OP1),a ld b,7 xor a ld (maxChoice),a ld (curChoice),a dispVarsLoop: push bc call findCompatibleAppVar pop bc jr c,dispVarsLoopDone push bc ld a,1 ld (curCol),a ld hl,OP1+1 call PutSApp call DispVarType B_CALL NewLine pop bc ld a,(maxChoice) inc a ld (maxChoice),a djnz dispVarsLoop dispVarsLoopDone: ld a,b cp 7 jr z,sendKeyLoop ld hl,1 ld (curRow),hl ld a,Lconvert B_CALL PutMap sendKeyLoop: B_CALL GetKey bit curMenu,(iy+linkmanFlags) jr z,$F cp kEnter jr z,transmitSelectedVars cp k1 jr z,transmitSelectedVars jr keyLoopSelect $$: ld b,a ld a,(maxChoice) or a ld a,b jr z,keyLoopSelect cp kUp jr z,moveUp cp kDown jr z,moveDown keyLoopSelect: cp kLeft jr z,switchMenu cp kRight jr z,switchMenu cp kClear jr z,previousMenu cp kQuit jr z,ExitApp jr sendKeyLoop moveUp: ld a,(curChoice) or a jr z,sendKeyLoop dec a ld (curChoice),a inc a push af inc a ld (curRow),a ld a,' ' B_CALL PutMap pop af ld (curRow),a ld a,Lconvert B_CALL PutMap jr sendKeyLoop moveDown: ld a,(maxChoice) ld b,a ld a,(curChoice) inc a cp b jr z,sendKeyLoop inc a ld (curRow),a ld (curChoice),a push af ld a,' ' B_CALL PutMap pop af inc a ld (curRow),a ld a,Lconvert B_CALL PutMap jr sendKeyLoop switchMenu: ld a,(iy+linkmanFlags) xor 1 ld (iy+linkmanFlags),a jr SelectVarsRedraw transmitSelectedVars: B_CALL ClrLCDFull B_CALL HomeUp ld hl,sSending call PutSApp B_CALL NewLine B_CALL DispDone B_CALL GetKey cp kQuit jr z,ExitApp jr StartApp findCompatibleAppVar: B_CALL FindAlphaUp ret c B_CALL ChkFindSym ld a,(hl) and 1Fh ld (curVarType),a ex de,hl ld c,(hl) inc hl ld b,(hl) inc hl ld a,b or c scf ret z ld a,(hl) cp 26h scf ret nz inc hl ld a,(hl) cp 58h scf ret nz ld a,(de) and 80h ret DispVarType: ld a,(curVarType) inc a ld b,a ld hl,bTypeTable-6 ld de,6 $$: add hl,de djnz $B ld a,10 ld (curCol),a jr PutSApp bTypeTable: DB "REAL",0,0 DB "LIST",0,0 DB "MATRX",0 DB "EQU",0,0,0 DB "STRNG",0 DB "PRGM",0,0 DB "PRGM",0,0 DB "PIC",0,0,0 DB "GDB",0,0,0 DB 0,0,0,0,0,0 DB 0,0,0,0,0,0 DB "WIND",0,0 DB "CPLX",0,0 DB "LIST",0,0 DB 0,0,0,0,0,0 DB "WIND",0,0 DB "WIND",0,0 DB "TBLST",0 sSelect: DB "SELECT",0 sTransmit: DB "TRANSMIT",0 sTransmitOption: DB "Transmit",0 sSending: DB "Sending",0CEh,0