; The Ion Include File by Dan Englender ;----> Safe Memory Areas ; saferam1 = 768 bytes (apdram) ; saferam2 = 531 bytes (statram) ; saferam3 = 128 bytes (textmem) ; saferam4 = 66 bytes (ops) ; saferam5 = 10 bytes (imathptrs) #ifdef TI83 #define bcall(xxxx) call xxxx #define bcallz(xxxx) call z,xxxx #define bcallnz(xxxx) call nz,xxxx #define bcallc(xxxx) call c,xxxx #define bcallnc(xxxx) call nc,xxxx #define bjump(xxxx) jp xxxx .addinstr BCALL * CD 3 NOP 1 _htimesl =$4382 usermemoff =$8565 progstart =9327h libstart =$0002 saferam1 =8265h saferam2 =858Fh saferam3 =80C9h saferam4 =8039h _zeroop1 =428Eh _getcsc =$4014 _homeup =$4775 _newline =$473D _darkline =$4AE0 _indicatorOff =$4795 _indicatorOn =$4791 _cleargbuf =515Bh _copygbuf =4B9Ch _clrlcdf =4755h _cleartextshad =4765h _clrscr =4759h _clrscrf =475Dh _cline =4A84h _iline =4AE4h _ipoint =4AE8h _ldhlind =4000h _divhlby10 =4008h _cphlde =4004h _disphl =4709h _divhlbya =400Ch _hltimes9 =4146h _vputmap =477Dh _vputs =4781h _vputsn =4785h _putmap =4701h _puts =470Dh _putps =4715h _parseinp =$4E8C _putc =4705h _getkey =4CFEh _getk =4A18h _rcly =4EE0h _rclx =4EE8h _memfree =441Ah _chksysvar =442Ah _findsym =442Eh _creategdb =4486h _createprog =448Ah _createreal =4452h _createstring =4472h _delvar =44AAh _insertmem =4432h _deletemem =44B2h _lcdbusy =4066h ptemp =9317h op1 =8039h op2 =8044h op3 =804Fh op4 =805Ah op5 =8065h op6 =8070h imathptr1 =8094h imathptr2 =8096h imathptr3 =8098h imathptr4 =809Ah imathptr5 =809Ch progptr =9319h cmdshad =9157h plotsscreen =8E29h symtable =$FE6E currow =800Ch curcol =800Dh pencol =8252h penrow =8253h curgy =886Dh curgx =886Eh _op1toop2 =$418E _op1toop3 =$417E _op1toop4 =$416E _op1toop5 =$41BE _op1toop6 =$41BA _op2toop1 =$41C2 _op2toop3 =$41F6 _op2toop4 =$4172 _op2toop5 =$41B2 _op2toop6 =$41B6 _op3toop1 =$41A2 _op3toop2 =$417A _op3toop4 =$416A _op3toop5 =$41AE _op4toop1 =$419A _op4toop2 =$4176 _op4toop3 =$41FA _op4toop5 =$41AA _op4toop6 =$4202 _op5toop1 =$419E _op5toop2 =$4182 _op5toop3 =$41FE _op5toop4 =$418A _op5toop6 =$4186 _op6toop1 =$4196 _op6toop2 =$4192 _op6toop5 =$41A6 _op1exop2 =$4306 _op1exop3 =$42FE _op1exop4 =$4302 _op1exop5 =$42EE _op1exop6 =$42F2 _op2exop4 =$42F6 _op2exop5 =$42FA _op2exop6 =$42E6 _op5exop6 =$42EA _PUSHREALO1 .EQU 4536h _PUSHREALO4 .EQU 452Ah _POPREALO2 .EQU 44FAh _POPREALO5 .EQU 44EEh _PUSHREALO2 .EQU 4532h _PUSHREALO5 .EQU 4526h _POPREALO3 .EQU 44F6h _POPREALO6 .EQU 44EAh _PUSHREALO3 .EQU 452Eh _PUSHREALO6 .EQU 4522h _POPREALO1 .EQU 44FEh _POPREALO4 .EQU 44F2h _FPMULT .EQU 40AAh _FPADD .EQU 4092h _OP1SET0 .EQU 4286h _SIN .EQU 40F6h _op1set1 =$4232 _op1set2 =$4242 _op1set3 =$423A _op1set4 =$4236 _op2set0 =$4282 _op2set1 =$4252 _op2set2 =$4246 _op2set3 =$422E _op2set4 =$422A _op2set5 =$4222 _op2set8 =$421E _op2set60 =$4EA8 _op2setA =$4226 _op3set0 =$427E _op3set1 =$421A _op3set2 =$423E _op4set0 =$427A _op4set1 =$4216 _op5set0 =$4276 _pushop1 =$454A _pushop3 =$4542 _popop1 =$44E6 _popop3 =$44E2 _setxxop1 =$4A74 _setxxop2 =$4A78 _setxxxxop2 =$4A7C _dispop1a =$51D4 _mov9toop1 =$4206 contrast =$8008 #endif #ifdef TI83P #define bcall(xxxx) rst 28h \ .dw xxxx #define bcallz(xxxx) jr nz,$+5 \ rst 28h \ .dw xxxx #define bcallnz(xxxx) jr z,$+5 \ rst 28h \ .dw xxxx #define bcallc(xxxx) jr nc,$+5 \ rst 28h \ .dw xxxx #define bcallnc(xxxx) jr c,$+5 \ rst 28h \ .dw xxxx #define bjump(xxxx) call 50h \ .dw xxxx .addinstr BCALL * EF 3 NOP 1 appBackupScreen =$9872 ; 768 bytes _ldhlind =$4009 _htimesl =$4276 _convop1 =$4AEF contrast =8447h _darkline =$47DD _darkpoint =$47F2 _archUnarch =$4FD8 _enoughRam =$42FD usermemoff =$89EC libstart =$0004 progstart =9D95h ;saferam1 =86ECh saferam1 =9872h saferam2 =858fh saferam3 =8508h saferam4 =8478h saferamp =9872h saferamp2 =8251h _homeup =$4558 _newline =$452E _cleargbuf =4BD0h _indicatorOn =456Dh _indicatorOff =4570h _copygbuf =486Ah _clrlcdf =4540h _cleartextshad =454Ch _clrscr =4543h _clrscrf =4546h _cline =4798h _iline =47E0h _ipoint =47E3h _ParseInp =4A9Bh _divhlby10 =400Fh _cphlde =400Ch _disphl =4507h _divhlbya =4012h _hltimes9 =40F9h _vputmap =455Eh _vputs =4561h _vputsn =4564h _putmap =4501h _puts =450Ah _putps =4510h _putc =4504h _getkey =4972h _getk =4744h _getcsc =4018h ;_RCLY =4EE0h ;_RCLX =4EE8h _memfree =$42E5 _chksysvar =42F1h _findsym =42F4h ;_CREATEGDB =4486h ;_CREATEREAL =4452h ;_CREATESTRNG =4472h _createprog =$4339 _createprotprog =$4E6D _delvar =4351h _insertmem =42F7h _deletemem =4357h _lcdbusy =4051h op1 =8478h op2 =8483h op3 =8499h op4 =8499h op5 =84A4h op6 =84AFh imathptr1 =84D3h imathptr2 =84D5h imathptr3 =84D7h imathptr4 =84D9h imathptr5 =84DBh progptr =9830h cmdshad =966Eh plotsscreen =9340h symtable =$FE6E currow =844Bh curcol =844Ch pencol =86D7h penrow =86D8h curgy =8D18h curgx =8D19h _PushRealO1 .equ 43BAh _PushRealO2 .equ 43B7h _PushRealO3 .equ 43B4h _PushRealO4 .equ 43B1h _PushRealO5 .equ 43AEh _PushRealO6 .equ 43ABh _FPAdd .equ 4072h _FPDiv .equ 4099h _FPMult .equ 4084h _OP1ExOP4 .equ 421Ch _OP1Set0 .equ 41BFh _OP3SET2 .equ 41A4h _PopRealO1 =4390h _PopRealO2 =438Dh _PopRealO3 =438Ah _PopRealO4 =4387h _PopRealO5 =4384h _PopRealO6 =4381h _op5exop6 =420Ah _op5set0 =41B3h _cpop1op2 =$4111 _op3toop4 =$4114 _op1toop4 =$4117 _op2toop4 =$411A _op4toop2 =$411D _op3toop2 =$4120 _op1toop3 =$4123 _op5toop2 =$4126 _op5toop6 =$4129 _op5toop4 =$412C _op1toop2 =$412F _op6toop2 =$4132 _op6toop1 =$4135 _op4toop1 =$4138 _op5toop1 =$413B _op3toop1 =$413E _op6toop5 =$4141 _op4toop5 =$4144 _op3toop5 =$4147 _op2toop5 =$414A _op2toop6 =$414D _op1toop6 =$4150 _op1toop5 =$4153 _op2toop1 =$4156 _op2toop3 =$416E _op4toop3 =$4171 _op5toop3 =$4174 _op4toop6 =$4177 _OP1Set1 .equ 419Bh _OP1Set2 .equ 41A7h _OP1Set3 .equ 41A1h _OP1Set4 .equ 419Eh _pushop1 =$43C9 _popop1 =$437E _arc_unarc .equ 4FD8h _sin =40BDh _zeroop1 =$41C5 _zeroop2 =$41C8 _zeroop3 =$41CB _setxxop1 =$478C _setxxop2 =$478F _setxxxxop2 =$4792 _dispop1a =4BF7h _mov9toop1 =$417A _delvararc =$4fC6 ptemp =982Eh #endif grbuf =plotsscreen graph_mem =plotsscreen gbuf =plotsscreen sram =saferam1 apdram =saferam1 statram =saferam2 statvars =saferam2 vat =progptr saferam5 =imathptr1 _grbufcpy =_copygbuf _grbufclr =_cleargbuf _clrlcdfull =_clrlcdf _clrscrnfull =_clrscrf _chkfindsym =_chksysvar textshadow =saferam3 savesscreen =saferam1 ;-----> Ion Functions lVectors =cmdshad+80 ionVersion =lVectors ionRandom =lVectors+3 ionPutSprite =lVectors+6 ionLargeSprite =lVectors+9 ionGetPixel =lVectors+12 ionFastCopy =lVectors+15 ionDetect =lVectors+18 ionDecompress =lVectors+21 trigflags .EQU 0 ; IY OFFSET VALUE trigdeg .EQU 2 ; plotflags .EQU 2 ; IY OFFSET VALUE plotloc .EQU 1 plotdisp .EQU 2 ; grfmodeflags .EQU 2 ; IY OFFSET VALUE grffuncm .EQU 4 grfpolarm .EQU 5 grfparamm .EQU 6 grfrecurm .EQU 7 ; graphflags .EQU 3 ; IY OFFSET VALUE graphdraw .EQU 0 graphcursor .EQU 2 ; grfdbflags .EQU 4 ; IY OFFSET VALUE grfdot .EQU 0 grfsimul .EQU 1 grfgrid .EQU 2 grfpolar .EQU 3 grfnocoord .EQU 4 grfnoaxis .EQU 5 grflabel .EQU 6 ; textflags .EQU 5 ; IY OFFSET VALUE textEraseBelow .EQU 1 textScrolled .EQU 2 textInverse .EQU 3 ; onflags .EQU 9 ; IY OFFSET VALUE onRunning .EQU 3 onInterrupt .EQU 4 ; statflags .EQU 9 ; IY OFFSET VALUE statsvalid .EQU 6 ; fmtflags .EQU 10 ; IY OFFSET VALUE fmtExponent .EQU 0 fmtEng .EQU 1 ; nummode .EQU 10 ; IY OFFSET VALUE FMTREAL .EQU 5 FMTRECT .EQU 6 FMTPOLAR .EQU 7 ; curflags .EQU 12 ; IY OFFSET VALUE curAble .EQU 2 curOn .EQU 3 curLock .EQU 4 ; appflags .EQU 13 ; IY OFFSET VALUE appTextSave .EQU 1 appAutoScroll .EQU 2 ; PLOTFLAG2 .EQU 17 ; IY OFFSET VALUE EXPR_PARAM .EQU 3 EXPR_WRITING .EQU 4 ; indicflags .EQU 18 ; IY OFFSET VALUE indicRun .EQU 0 indicOnly .EQU 2 ; shiftflags .EQU 18 ; IY OFFSET VALUE shift2nd .EQU 3 shiftAlpha .EQU 4 shiftALock .EQU 6 ; tblflags .EQU 19 ; IY OFFSET VALUE AutoFill .EQU 4 AutoCalc .EQU 5 ; sgrflags .EQU 20 ; IY OFFSET VALUE grfSplit .EQU 0 VertSplit .EQU 1 WRITE_ON_GRAPH .EQU 4 textwrite .EQU 7 ; asm_flag1 .EQU 33 ; IY OFFSET VALUE asm_flag1_0 .EQU 0 asm_flag1_1 .EQU 1 asm_flag1_2 .EQU 2 asm_flag1_3 .EQU 3 asm_flag1_4 .EQU 4 asm_flag1_5 .EQU 5 asm_flag1_6 .EQU 6 asm_flag1_7 .EQU 7 ; asm_flag2 .EQU 34 ; IY OFFSET VALUE asm_flag2_0 .EQU 0 asm_flag2_1 .EQU 1 asm_flag2_2 .EQU 2 asm_flag2_3 .EQU 3 asm_flag2_4 .EQU 4 asm_flag2_5 .EQU 5 asm_flag2_6 .EQU 6 asm_flag2_7 .EQU 7 ; asm_flag3 .EQU 35 ; IY OFFSET VALUE asm_flag3_0 .EQU 0 asm_flag3_1 .EQU 1 asm_flag3_2 .EQU 2 asm_flag3_3 .EQU 3 asm_flag3_4 .EQU 4 asm_flag3_5 .EQU 5 asm_flag3_6 .EQU 6 asm_flag3_7 .EQU 7