seg000:4000 ; seg000:4000 ; +-------------------------------------------------------------------------+ seg000:4000 ; ¦ This file is generated by The Interactive Disassembler (IDA) ¦ seg000:4000 ; ¦ Copyright (c) 2005 by DataRescue sa/nv, ¦ seg000:4000 ; +-------------------------------------------------------------------------+ seg000:4000 ; seg000:4000 ; File Name : C:\Users\Brandon\Desktop\CalcUtil\UtilRaw.txt seg000:4000 ; Format : Intel Hex Object Format seg000:4000 seg000:4000 ; Processor : z80 [] seg000:4000 ; Target assembler: Zilog Macro Assembler seg000:4000 seg000:4000 ; --------------------------------------------------------------------------- seg000:4000 seg000:4000 ; Segment type: Pure code seg000:4000 segment seg000 seg000:4000 org 4000h seg000:4000 ; appHeader seg000:4080 ; --------------------------------------------------------------------------- seg000:4080 seg000:4080 AppStart: ; CODE XREF: seg000:4229j seg000:4080 ; seg000:42E4j seg000:4080 rst 28h seg000:4080 ; --------------------------------------------------------------------------- seg000:4081 dw _ClrLCDFull seg000:4083 ; --------------------------------------------------------------------------- seg000:4083 ld hl, 0 seg000:4086 ld (curRow), hl seg000:4089 ld hl, aCalcutilV1_0 ; "CalcUtil v1.0" seg000:408C set textInverse, (iy+textFlags) seg000:4090 call PutSApp seg000:4093 res textInverse, (iy+textFlags) seg000:4097 rst 28h seg000:4097 ; --------------------------------------------------------------------------- seg000:4098 dw _newline seg000:409A ; --------------------------------------------------------------------------- seg000:409A ld hl, a1 ; "1:" seg000:409D call PutSApp seg000:40A0 ld hl, aInstall ; "Install" seg000:40A3 call PutSApp seg000:40A6 rst 28h seg000:40A6 ; --------------------------------------------------------------------------- seg000:40A7 dw _newline seg000:40A9 ; --------------------------------------------------------------------------- seg000:40A9 ld hl, a2 ; "2:" seg000:40AC call PutSApp seg000:40AF ld hl, aUninstall ; "Uninstall" seg000:40B2 call PutSApp seg000:40B5 rst 28h seg000:40B5 ; --------------------------------------------------------------------------- seg000:40B6 dw _newline seg000:40B8 ; --------------------------------------------------------------------------- seg000:40B8 ld hl, a3 ; "3:" seg000:40BB call PutSApp seg000:40BE ld hl, aAbout_0 ; "About" seg000:40C1 call PutSApp seg000:40C4 rst 28h seg000:40C4 ; --------------------------------------------------------------------------- seg000:40C5 dw _newline seg000:40C7 ; --------------------------------------------------------------------------- seg000:40C7 ld hl, a4 ; "4:" seg000:40CA call PutSApp seg000:40CD ld hl, aQuit ; "Quit" seg000:40D0 call PutSApp seg000:40D3 ld b, 1 seg000:40D5 seg000:40D5 mainKeyLoop: ; CODE XREF: seg000:40FBj seg000:40D5 res indicOnly, (iy+indicFlags) seg000:40D9 rst 28h seg000:40D9 ; --------------------------------------------------------------------------- seg000:40DA dw GetKeyRetOff seg000:40DC ; --------------------------------------------------------------------------- seg000:40DC res onInterrupt, (iy+onFlags) seg000:40E0 cp kQuit seg000:40E2 jr z, mainQuitPressed seg000:40E4 cp 9 seg000:40E6 jr z, mainQuitPressed seg000:40E8 cp 8Fh ; 'Å' seg000:40EA jp z, main1Pressed seg000:40ED cp 90h ; 'É' seg000:40EF jp z, main2Pressed seg000:40F2 cp 91h ; 'æ' seg000:40F4 jp z, DispAboutScreen seg000:40F7 cp 92h ; 'Æ' seg000:40F9 jr z, mainQuitPressed seg000:40FB jr mainKeyLoop seg000:40FD ; --------------------------------------------------------------------------- seg000:40FD seg000:40FD mainQuitPressed: ; CODE XREF: seg000:40E2j seg000:40FD ; seg000:40E6j ... seg000:40FD rst 28h seg000:40FD ; --------------------------------------------------------------------------- seg000:40FE dw _ClrScrnFull seg000:4100 ; --------------------------------------------------------------------------- seg000:4100 ld hl, 0 seg000:4103 ld (curRow), hl seg000:4106 res appRetKeyOff, (iy+APIFlg) seg000:410A call 50h seg000:410A ; --------------------------------------------------------------------------- seg000:410D dw JForceCmdNoChar seg000:410F ; --------------------------------------------------------------------------- seg000:410F seg000:410F main1Pressed: ; CODE XREF: seg000:40EAj seg000:410F bit parserHookActive, (iy+hookflags4) seg000:4113 jp nz, hooksAlreadyExist seg000:4116 bit appChangeHookActive, (iy+hookflags4) seg000:411A jp nz, hooksAlreadyExist seg000:411D bit rawKeyHookActive, (iy+hookflags2) seg000:4121 jp nz, hooksAlreadyExist seg000:4124 seg000:4124 installApplication: ; CODE XREF: seg000:422Cj seg000:4124 ld hl, aOffscrpt ; "\x15OFFSCRPT" seg000:4127 rst 28h seg000:4127 ; --------------------------------------------------------------------------- seg000:4128 dw _Mov9ToOP1 seg000:412A ; --------------------------------------------------------------------------- seg000:412A rst 28h seg000:412A ; --------------------------------------------------------------------------- seg000:412B dw _ChkFindSym seg000:412D ; --------------------------------------------------------------------------- seg000:412D jr c, OFFSCRPTnotFound seg000:412F rst 28h seg000:412F ; --------------------------------------------------------------------------- seg000:4130 word_4130: dw _DelVarArc ; CODE XREF: seg000:4710j seg000:4132 ; --------------------------------------------------------------------------- seg000:4132 seg000:4132 OFFSCRPTnotFound: ; CODE XREF: seg000:412Dj seg000:4132 ld hl, 29 seg000:4135 rst 28h seg000:4135 ; --------------------------------------------------------------------------- seg000:4136 dw CreateAppVar seg000:4138 ; --------------------------------------------------------------------------- seg000:4138 inc de seg000:4139 inc de seg000:413A ld hl, OFFSCRPTcode seg000:413D ld bc, 29 seg000:4140 ldir seg000:4142 set alt_Off, (iy+hookflags1) seg000:4146 ld hl, aUtilvar ; "\x15UtilVar" seg000:4149 rst 28h seg000:4149 ; --------------------------------------------------------------------------- seg000:414A dw _Mov9ToOP1 seg000:414C ; --------------------------------------------------------------------------- seg000:414C rst 28h seg000:414C ; --------------------------------------------------------------------------- seg000:414D dw _ChkFindSym seg000:414F ; --------------------------------------------------------------------------- seg000:414F jr c, UtilVarNotFound seg000:4151 rst 28h seg000:4151 ; --------------------------------------------------------------------------- seg000:4152 dw _DelVarArc seg000:4154 ; --------------------------------------------------------------------------- seg000:4154 ld hl, aUtilvar ; "\x15UtilVar" seg000:4157 rst 28h seg000:4157 ; --------------------------------------------------------------------------- seg000:4158 dw _Mov9ToOP1 seg000:415A ; --------------------------------------------------------------------------- seg000:415A seg000:415A UtilVarNotFound: ; CODE XREF: seg000:414Fj seg000:415A ld hl, 30 seg000:415D rst 28h seg000:415D ; --------------------------------------------------------------------------- seg000:415E dw CreateAppVar seg000:4160 ; --------------------------------------------------------------------------- seg000:4160 inc de seg000:4161 inc de seg000:4162 xor a seg000:4163 ld b, 30 seg000:4165 seg000:4165 zeroAppVarLoop: ; CODE XREF: seg000:4166j seg000:4165 ld (de), a seg000:4166 djnz zeroAppVarLoop seg000:4168 bit parserHookActive, (iy+hookflags4) seg000:416C jr z, noOldParserHook seg000:416E ld hl, parserHookPtr+2 seg000:4171 ld a, (hl) seg000:4172 ld b, a seg000:4173 in a, (6) seg000:4175 cp b seg000:4176 jr z, noOldParserHook seg000:4178 ld hl, aUtilvar ; "\x15UtilVar" seg000:417B rst 28h seg000:417B ; --------------------------------------------------------------------------- seg000:417C dw _Mov9ToOP1 seg000:417E ; --------------------------------------------------------------------------- seg000:417E rst 28h seg000:417E ; --------------------------------------------------------------------------- seg000:417F dw _ChkFindSym seg000:4181 ; --------------------------------------------------------------------------- seg000:4181 ld hl, parserHookPtr seg000:4184 ld bc, 3 seg000:4187 inc de seg000:4188 inc de seg000:4189 ldir seg000:418B jr noOldParserHook seg000:418D seg000:418D noOldParserHook: ; CODE XREF: seg000:416Cj seg000:418D ; seg000:4176j seg000:418D ld hl, aUtilvar ; "\x15UtilVar" seg000:4190 rst 28h seg000:4190 ; --------------------------------------------------------------------------- seg000:4191 dw _Mov9ToOP1 seg000:4193 ; --------------------------------------------------------------------------- seg000:4193 rst 28h seg000:4193 ; --------------------------------------------------------------------------- seg000:4194 dw _ChkFindSym seg000:4196 ; --------------------------------------------------------------------------- seg000:4196 ld hl, myParserHook seg000:4199 in a, (6) seg000:419B rst 28h seg000:419B ; --------------------------------------------------------------------------- seg000:419C dw _SetParserHook seg000:419E ; --------------------------------------------------------------------------- seg000:419E xor a seg000:419F ld (parserHookPtr+3), a seg000:41A2 bit rawKeyHookActive, (iy+hookflags2) seg000:41A6 jr z, noOldRawKeyHook seg000:41A8 ld hl, rawKeyHookPtr+2 seg000:41AB ld a, (hl) seg000:41AC ld b, a seg000:41AD in a, (6) seg000:41AF cp b seg000:41B0 jr z, noOldRawKeyHook seg000:41B2 ld hl, aUtilvar ; "\x15UtilVar" seg000:41B5 rst 28h seg000:41B5 ; --------------------------------------------------------------------------- seg000:41B6 dw _Mov9ToOP1 seg000:41B8 ; --------------------------------------------------------------------------- seg000:41B8 rst 28h seg000:41B8 ; --------------------------------------------------------------------------- seg000:41B9 dw _ChkFindSym seg000:41BB ; --------------------------------------------------------------------------- seg000:41BB ld bc, 3 seg000:41BE ld hl, 17 seg000:41C1 add hl, de seg000:41C2 ex de, hl seg000:41C3 ld hl, rawKeyHookPtr seg000:41C6 ldir seg000:41C8 jr noOldRawKeyHook seg000:41CA seg000:41CA noOldRawKeyHook: ; CODE XREF: seg000:41A6j seg000:41CA ; seg000:41B0j seg000:41CA ld hl, aUtilvar ; "\x15UtilVar" seg000:41CD rst 28h seg000:41CD ; --------------------------------------------------------------------------- seg000:41CE dw _Mov9ToOP1 seg000:41D0 ; --------------------------------------------------------------------------- seg000:41D0 rst 28h seg000:41D0 ; --------------------------------------------------------------------------- seg000:41D1 dw _ChkFindSym seg000:41D3 ; --------------------------------------------------------------------------- seg000:41D3 ld hl, myRawKeyHook seg000:41D6 in a, (6) seg000:41D8 rst 28h seg000:41D8 ; --------------------------------------------------------------------------- seg000:41D9 dw _SetRawKeyHook seg000:41DB ; --------------------------------------------------------------------------- seg000:41DB xor a seg000:41DC ld (rawKeyHookPtr+3), a seg000:41DF ld hl, myAppChangeHook seg000:41E2 in a, (6) seg000:41E4 rst 28h seg000:41E4 ; --------------------------------------------------------------------------- seg000:41E5 dw _SetAppChangeHook seg000:41E7 ; --------------------------------------------------------------------------- seg000:41E7 xor a seg000:41E8 ld (appChangeHookPtr+3), a seg000:41EB rst 28h seg000:41EB ; --------------------------------------------------------------------------- seg000:41EC dw _ClrScrnFull seg000:41EE ; --------------------------------------------------------------------------- seg000:41EE ld hl, 0 seg000:41F1 ld (curRow), hl seg000:41F4 ld hl, aInstalled ; "Installed!" seg000:41F7 call PutSApp seg000:41FA ld hl, 6 seg000:41FD ld (curRow), hl seg000:4200 ld hl, aPressAnyKey ; "Press any key" seg000:4203 call PutSApp seg000:4206 ld hl, 7 seg000:4209 ld (curRow), hl seg000:420C ld hl, aToContinue___ ; "to continue..." seg000:420F call PutSApp seg000:4212 rst 28h seg000:4212 ; --------------------------------------------------------------------------- seg000:4213 dw GetKey seg000:4215 ; --------------------------------------------------------------------------- seg000:4215 jp mainQuitPressed seg000:4218 ; --------------------------------------------------------------------------- seg000:4218 seg000:4218 hooksAlreadyExist: ; CODE XREF: seg000:4113j seg000:4218 ; seg000:411Aj ... seg000:4218 ld hl, 0 seg000:421B ld (curRow), hl seg000:421E ld hl, aWarningHooksEx ; " Warning! Hooks exist! Press Ent"... seg000:4221 call PutSApp seg000:4224 rst 28h seg000:4224 ; --------------------------------------------------------------------------- seg000:4225 dw GetKey seg000:4227 ; --------------------------------------------------------------------------- seg000:4227 cp 5 seg000:4229 jp nz, AppStart seg000:422C jp installApplication seg000:422F ; --------------------------------------------------------------------------- seg000:422F seg000:422F main2Pressed: ; CODE XREF: seg000:40EFj seg000:422F rst 28h seg000:422F ; --------------------------------------------------------------------------- seg000:4230 dw _ClearParserHook seg000:4232 ; --------------------------------------------------------------------------- seg000:4232 rst 28h seg000:4232 ; --------------------------------------------------------------------------- seg000:4233 dw _ClearAppChangeHook seg000:4235 ; --------------------------------------------------------------------------- seg000:4235 rst 28h seg000:4235 ; --------------------------------------------------------------------------- seg000:4236 dw _ClrHomescreenHook seg000:4238 ; --------------------------------------------------------------------------- seg000:4238 rst 28h seg000:4238 ; --------------------------------------------------------------------------- seg000:4239 dw _ClrRawKeyHook seg000:423B ; --------------------------------------------------------------------------- seg000:423B ld hl, aUtilvar ; "\x15UtilVar" seg000:423E rst 28h seg000:423E ; --------------------------------------------------------------------------- seg000:423F dw _Mov9ToOP1 seg000:4241 ; --------------------------------------------------------------------------- seg000:4241 rst 28h seg000:4241 ; --------------------------------------------------------------------------- seg000:4242 dw _ChkFindSym seg000:4244 ; --------------------------------------------------------------------------- seg000:4244 jr c, UtilVarNotFound_2 seg000:4246 rst 28h seg000:4246 ; --------------------------------------------------------------------------- seg000:4247 dw _DelVarArc seg000:4249 ; --------------------------------------------------------------------------- seg000:4249 seg000:4249 UtilVarNotFound_2: ; CODE XREF: seg000:4244j seg000:4249 rst 28h seg000:4249 ; --------------------------------------------------------------------------- seg000:424A dw _ClrScrnFull seg000:424C ; --------------------------------------------------------------------------- seg000:424C ld hl, 0 seg000:424F ld (curRow), hl seg000:4252 ld hl, aUninstalled ; "Uninstalled!" seg000:4255 call PutSApp seg000:4258 ld hl, 6 seg000:425B ld (curRow), hl seg000:425E ld hl, aPressAnyKey ; "Press any key" seg000:4261 call PutSApp seg000:4264 ld hl, 7 seg000:4267 ld (curRow), hl seg000:426A ld hl, aToContinue___ ; "to continue..." seg000:426D call PutSApp seg000:4270 rst 28h seg000:4270 ; --------------------------------------------------------------------------- seg000:4271 dw GetKey seg000:4273 ; --------------------------------------------------------------------------- seg000:4273 jp mainQuitPressed seg000:4276 ; --------------------------------------------------------------------------- seg000:4276 or a seg000:4277 ret seg000:4278 ; --------------------------------------------------------------------------- seg000:4278 seg000:4278 DispAboutScreen: ; CODE XREF: seg000:40F4j seg000:4278 rst 28h seg000:4278 ; --------------------------------------------------------------------------- seg000:4279 dw ClrLCDFull seg000:427B ; --------------------------------------------------------------------------- seg000:427B ld hl, 0 seg000:427E ld (penCol), hl seg000:4281 ld hl, aAbout ; "About:" seg000:4284 call VPutSApp seg000:4287 xor a seg000:4288 ld (penCol), a seg000:428B ld a, 10 seg000:428D ld (penRow), a seg000:4290 ld hl, aThisProgramWas ; "This program was created" seg000:4293 call VPutSApp seg000:4296 xor a seg000:4297 ld (penCol), a seg000:429A ld a, 17 seg000:429C ld (penRow), a seg000:429F ld hl, aByDanielWeiszT ; "by Daniel Weisz to add" seg000:42A2 call VPutSApp seg000:42A5 xor a seg000:42A6 ld (penCol), a seg000:42A9 ld a, 24 seg000:42AB ld (penRow), a seg000:42AE ld hl, aFeaturesToTheT ; "features to the TI-83+" seg000:42B1 call VPutSApp seg000:42B4 xor a seg000:42B5 ld (penCol), a seg000:42B8 ld a, 31 seg000:42BA ld (penRow), a seg000:42BD ld hl, aIncludingAddit ; "including additional" seg000:42C0 call VPutSApp seg000:42C3 xor a seg000:42C4 ld (penCol), a seg000:42C7 ld a, 38 seg000:42C9 ld (penRow), a seg000:42CC ld hl, aArchiveAbiliti ; "archive abilities. See" seg000:42CF call VPutSApp seg000:42D2 xor a seg000:42D3 ld (penCol), a seg000:42D6 ld a, 45 seg000:42D8 ld (penRow), a seg000:42DB ld hl, aReadme_txtForD ; "readme.txt for details." seg000:42DE call VPutSApp seg000:42E1 rst 28h seg000:42E1 ; --------------------------------------------------------------------------- seg000:42E2 dw GetKey seg000:42E4 ; --------------------------------------------------------------------------- seg000:42E4 jp AppStart seg000:42E4 ; --------------------------------------------------------------------------- seg000:42E7 aAbout: .ascii 'About:',0 ; DATA XREF: seg000:4281o seg000:42EE aThisProgramWas:.ascii 'This program was created',0 ; DATA XREF: seg000:4290o seg000:4307 aByDanielWeiszT:.ascii 'by Daniel Weisz to add',0 ; DATA XREF: seg000:429Fo seg000:431E aFeaturesToTheT:.ascii 'features to the TI-83+',0 ; DATA XREF: seg000:42AEo seg000:4335 aIncludingAddit:.ascii 'including additional',0 ; DATA XREF: seg000:42BDo seg000:434A aArchiveAbiliti:.ascii 'archive abilities. See',0 ; DATA XREF: seg000:42CCo seg000:4362 aReadme_txtForD:.ascii 'readme.txt for details.',0 ; DATA XREF: seg000:42DBo seg000:437A aUtilvar: .ascii '\x15UtilVar',0 ; DATA XREF: seg000:4146o seg000:437A ; seg000:4154o ... seg000:4383 aWarningHooksEx:.ascii ' Warning! Hooks exist! Press Enter to attem' seg000:4383 ; DATA XREF: seg000:421Eo seg000:4383 .ascii 'pt to chain hooks or any other key to cancel.',0 seg000:43F0 aInstalled: .ascii 'Installed!',0 ; DATA XREF: seg000:41F4o seg000:43FB aUninstalled: .ascii 'Uninstalled!',0 ; DATA XREF: seg000:4252o seg000:4408 aPressAnyKey: .ascii 'Press any key',0 ; DATA XREF: seg000:4200o seg000:4408 ; seg000:425Eo seg000:4416 aToContinue___: .ascii 'to continue...',0 ; DATA XREF: seg000:420Co seg000:4416 ; seg000:426Ao seg000:4425 aCalcutilV1_0: .ascii 'CalcUtil v1.0',0 ; DATA XREF: seg000:4089o seg000:4433 a1: .ascii '1:',0 ; DATA XREF: seg000:409Ao seg000:4436 aInstall: .ascii 'Install',0 ; DATA XREF: seg000:40A0o seg000:443E a2: .ascii '2:',0 ; DATA XREF: seg000:40A9o seg000:4441 aUninstall: .ascii 'Uninstall',0 ; DATA XREF: seg000:40AFo seg000:444B a3: .ascii '3:',0 ; DATA XREF: seg000:40B8o seg000:444E aAbout_0: .ascii 'About',0 ; DATA XREF: seg000:40BEo seg000:4454 a4: .ascii '4:',0 ; DATA XREF: seg000:40C7o seg000:4457 aQuit: .ascii 'Quit',0 ; DATA XREF: seg000:40CDo seg000:445C ; --------------------------------------------------------------------------- seg000:445C seg000:445C myParserHook: ; DATA XREF: seg000:4196o seg000:445C add a, e seg000:445D push af seg000:445E push bc seg000:445F push de seg000:4460 push hl seg000:4461 rst 28h seg000:4461 ; --------------------------------------------------------------------------- seg000:4462 dw _GetBaseVer seg000:4464 ; --------------------------------------------------------------------------- seg000:4464 cp 2 seg000:4466 jr nc, definitelySE seg000:4468 cp 1 seg000:446A jr nz, definitelyNotSE seg000:446C ld a, b seg000:446D cp 13 seg000:446F jr c, definitelyNotSE seg000:4471 seg000:4471 definitelySE: ; CODE XREF: seg000:4466j seg000:4471 ld a, 0FFh seg000:4473 rst 28h seg000:4473 ; --------------------------------------------------------------------------- seg000:4474 dw _SetExSpeed seg000:4476 ; --------------------------------------------------------------------------- seg000:4476 seg000:4476 definitelyNotSE: ; CODE XREF: seg000:446Aj seg000:4476 ; seg000:446Fj seg000:4476 pop hl seg000:4477 pop de seg000:4478 pop bc seg000:4479 pop af seg000:447A or a seg000:447B jr nz, executingToken seg000:447D ld hl, basic_prog seg000:4480 ld de, basic_prog seg000:4483 inc de seg000:4484 ld a, (de) seg000:4485 cp 23h ; '#' seg000:4487 jr nz, returnZ seg000:4489 rst 28h seg000:4489 ; --------------------------------------------------------------------------- seg000:448A dw _Mov9ToOP1 seg000:448C ; --------------------------------------------------------------------------- seg000:448C rst 28h seg000:448C ; --------------------------------------------------------------------------- seg000:448D dw _ChkFindSym seg000:448F ; --------------------------------------------------------------------------- seg000:448F jr c, returnZ seg000:4491 ld a, (de) seg000:4492 ld c, a seg000:4493 inc de seg000:4494 ld a, (de) seg000:4495 ld b, a seg000:4496 dec bc seg000:4497 inc de seg000:4498 ld a, (de) seg000:4499 cp 5Fh ; '_' seg000:449B jp z, executingAsBasic seg000:449E cp 0BBh ; '+' seg000:44A0 jr nz, returnZ seg000:44A2 inc de seg000:44A3 ld a, (de) seg000:44A4 cp 6Ah ; 'j' seg000:44A6 jr nz, returnZ seg000:44A8 inc de seg000:44A9 ld a, (de) seg000:44AA cp 5Fh ; '_' seg000:44AC jp z, executingAsAsm seg000:44AF seg000:44AF returnZ: ; CODE XREF: seg000:4487j seg000:44AF ; seg000:448Fj ... seg000:44AF cp a seg000:44B0 ret seg000:44B1 ; --------------------------------------------------------------------------- seg000:44B1 seg000:44B1 executingToken: ; CODE XREF: seg000:447Bj seg000:44B1 push hl seg000:44B2 ld hl, 0C0C0h seg000:44B5 sbc hl, bc seg000:44B7 jr nz, notLogToken seg000:44B9 pop hl seg000:44BA ld a, 2 seg000:44BC cp l seg000:44BD jr nz, returnZ seg000:44BF dec hl seg000:44C0 rst 28h seg000:44C0 ; --------------------------------------------------------------------------- seg000:44C1 dw _popOP3 seg000:44C3 ; --------------------------------------------------------------------------- seg000:44C3 rst 28h seg000:44C3 ; --------------------------------------------------------------------------- seg000:44C4 dw _PushOP3 seg000:44C6 ; --------------------------------------------------------------------------- seg000:44C6 ld a, (OP3) seg000:44C9 cp 0Ch seg000:44CB jr z, is_complex seg000:44CD rst 28h seg000:44CD ; --------------------------------------------------------------------------- seg000:44CE dw _LogX seg000:44D0 ; --------------------------------------------------------------------------- seg000:44D0 rst 28h seg000:44D0 ; --------------------------------------------------------------------------- seg000:44D1 dw _OP1ExOP2 seg000:44D3 ; --------------------------------------------------------------------------- seg000:44D3 rst 28h seg000:44D3 ; --------------------------------------------------------------------------- seg000:44D4 dw _popRealO1 seg000:44D6 ; --------------------------------------------------------------------------- seg000:44D6 ld hl, 0 seg000:44D9 rst 28h seg000:44D9 ; --------------------------------------------------------------------------- seg000:44DA dw _PushRealO2 seg000:44DC ; --------------------------------------------------------------------------- seg000:44DC rst 28h seg000:44DC ; --------------------------------------------------------------------------- seg000:44DD dw _LogX seg000:44DF ; --------------------------------------------------------------------------- seg000:44DF rst 28h seg000:44DF ; --------------------------------------------------------------------------- seg000:44E0 dw _popRealO2 seg000:44E2 ; --------------------------------------------------------------------------- seg000:44E2 rst 28h seg000:44E2 ; --------------------------------------------------------------------------- seg000:44E3 dw _FPDiv seg000:44E5 ; --------------------------------------------------------------------------- seg000:44E5 or 1 seg000:44E7 ret seg000:44E8 ; --------------------------------------------------------------------------- seg000:44E8 seg000:44E8 is_complex: ; CODE XREF: seg000:44CBj seg000:44E8 rst 28h seg000:44E8 ; --------------------------------------------------------------------------- seg000:44E9 dw _LogX seg000:44EB ; --------------------------------------------------------------------------- seg000:44EB rst 28h seg000:44EB ; --------------------------------------------------------------------------- seg000:44EC dw _OP1ExOP6 seg000:44EE ; --------------------------------------------------------------------------- seg000:44EE rst 28h seg000:44EE ; --------------------------------------------------------------------------- seg000:44EF dw _POPMCPLXO1 seg000:44F1 ; --------------------------------------------------------------------------- seg000:44F1 rst 28h seg000:44F1 ; --------------------------------------------------------------------------- seg000:44F2 dw _PushRealO6 seg000:44F4 ; --------------------------------------------------------------------------- seg000:44F4 rst 28h seg000:44F4 ; --------------------------------------------------------------------------- seg000:44F5 dw _CLog seg000:44F7 ; --------------------------------------------------------------------------- seg000:44F7 rst 28h seg000:44F7 ; --------------------------------------------------------------------------- seg000:44F8 dw _popRealO3 seg000:44FA ; --------------------------------------------------------------------------- seg000:44FA rst 28h seg000:44FA ; --------------------------------------------------------------------------- seg000:44FB dw _CplxDiv seg000:44FD ; --------------------------------------------------------------------------- seg000:44FD ld hl, 0 seg000:4500 or 1 seg000:4502 ret seg000:4503 ; --------------------------------------------------------------------------- seg000:4503 seg000:4503 notLogToken: ; CODE XREF: seg000:44B7j seg000:4503 ld hl, 5B01h seg000:4506 sbc hl, bc seg000:4508 jr nz, notArchiveToken seg000:450A pop hl seg000:450B push af seg000:450C push bc seg000:450D push de seg000:450E push hl seg000:450F ld hl, (basic_pc) seg000:4512 push hl seg000:4513 ld hl, archiveErrorHandler seg000:4516 call APP_PUSH_ERRORH seg000:4519 rst 28h seg000:4519 ; --------------------------------------------------------------------------- seg000:451A dw _ParsePrgmName seg000:451C ; --------------------------------------------------------------------------- seg000:451C call APP_POP_ERRORH seg000:451F rst 28h seg000:451F ; --------------------------------------------------------------------------- seg000:4520 dw _ChkFindSym seg000:4522 ; --------------------------------------------------------------------------- seg000:4522 jr c, archiveErrorHandler seg000:4524 xor a seg000:4525 cp b seg000:4526 jr nz, P5returnNZ seg000:4528 rst 28h seg000:4528 ; --------------------------------------------------------------------------- seg000:4529 dw Arc_Unarc seg000:452B ; --------------------------------------------------------------------------- seg000:452B jr P5returnNZ seg000:452D ; --------------------------------------------------------------------------- seg000:452D seg000:452D archiveErrorHandler: ; CODE XREF: seg000:4522j seg000:452D ; seg000:4562j seg000:452D ; DATA XREF: ... seg000:452D pop hl seg000:452E seg000:452E loc_452E: seg000:452E ld (basic_pc), hl seg000:4531 pop hl seg000:4532 pop de seg000:4533 pop bc seg000:4534 pop af seg000:4535 jp returnZ seg000:4538 ; --------------------------------------------------------------------------- seg000:4538 seg000:4538 P5returnNZ: ; CODE XREF: seg000:4526j seg000:4538 ; seg000:452Bj ... seg000:4538 pop hl seg000:4539 pop hl seg000:453A pop de seg000:453B pop bc seg000:453C pop af seg000:453D xor a seg000:453E cp 1 seg000:4540 ret seg000:4541 ; --------------------------------------------------------------------------- seg000:4541 seg000:4541 notArchiveToken: ; CODE XREF: seg000:4508j seg000:4541 scf seg000:4542 ccf seg000:4543 ld hl, 5C01h seg000:4546 sbc hl, bc seg000:4548 jr nz, notUnarchiveToken seg000:454A pop hl seg000:454B push af seg000:454C push bc seg000:454D push de seg000:454E push hl seg000:454F ld hl, (basic_pc) seg000:4552 push hl seg000:4553 ld hl, archiveErrorHandler seg000:4556 call 59h seg000:4559 rst 28h seg000:4559 ; --------------------------------------------------------------------------- seg000:455A dw _ParsePrgmName seg000:455C ; --------------------------------------------------------------------------- seg000:455C call 5Ch seg000:455F rst 28h seg000:455F ; --------------------------------------------------------------------------- seg000:4560 dw _ChkFindSym seg000:4562 ; --------------------------------------------------------------------------- seg000:4562 jr c, archiveErrorHandler seg000:4564 xor a seg000:4565 cp b seg000:4566 jr z, P5returnNZ seg000:4568 rst 28h seg000:4568 ; --------------------------------------------------------------------------- seg000:4569 dw Arc_Unarc seg000:456B ; --------------------------------------------------------------------------- seg000:456B jr P5returnNZ seg000:456D ; --------------------------------------------------------------------------- seg000:456D seg000:456D notUnarchiveToken: ; CODE XREF: seg000:4548j seg000:456D push af seg000:456E push bc seg000:456F rst 28h seg000:456F ; --------------------------------------------------------------------------- seg000:4570 dw _PushRealO1 seg000:4572 ; --------------------------------------------------------------------------- seg000:4572 ld hl, aUtilvar ; "\x15UtilVar" seg000:4575 rst 28h seg000:4575 ; --------------------------------------------------------------------------- seg000:4576 dw _Mov9ToOP1 seg000:4578 ; --------------------------------------------------------------------------- seg000:4578 rst 28h seg000:4578 ; --------------------------------------------------------------------------- seg000:4579 dw _ChkFindSym seg000:457B ; --------------------------------------------------------------------------- seg000:457B jr c, UtilVarNotFound_3 seg000:457D push hl seg000:457E push de seg000:457F rst 28h seg000:457F ; --------------------------------------------------------------------------- seg000:4580 dw _popRealO1 seg000:4582 ; --------------------------------------------------------------------------- seg000:4582 pop de seg000:4583 pop hl seg000:4584 pop bc seg000:4585 inc de seg000:4586 inc de seg000:4587 ex de, hl seg000:4588 ld e, (hl) seg000:4589 inc hl seg000:458A ld d, (hl) seg000:458B xor a seg000:458C cp d seg000:458D jr z, P2returnZ seg000:458F inc hl seg000:4590 ld a, (hl) seg000:4591 push de seg000:4592 push bc seg000:4593 ld hl, hookChainLoader seg000:4596 ld de, appBackUpScreen seg000:4599 ld bc, 25 seg000:459C ldir seg000:459E jp appBackUpScreen seg000:45A1 ; --------------------------------------------------------------------------- seg000:45A1 seg000:45A1 P2returnZ: ; CODE XREF: seg000:458Dj seg000:45A1 pop af seg000:45A2 pop hl seg000:45A3 jp returnZ seg000:45A6 ; --------------------------------------------------------------------------- seg000:45A6 seg000:45A6 UtilVarNotFound_3: ; CODE XREF: seg000:457Bj seg000:45A6 push hl seg000:45A7 push de seg000:45A8 rst 28h seg000:45A8 ; --------------------------------------------------------------------------- seg000:45A9 dw _popRealO1 seg000:45AB ; --------------------------------------------------------------------------- seg000:45AB pop de seg000:45AC pop hl seg000:45AD pop bc seg000:45AE pop af seg000:45AF pop hl seg000:45B0 jp returnZ seg000:45B3 ; --------------------------------------------------------------------------- seg000:45B3 seg000:45B3 hookChainLoader: ; DATA XREF: seg000:4593o seg000:45B3 out (6), a seg000:45B5 pop bc seg000:45B6 pop hl seg000:45B7 ld a, (hl) seg000:45B8 cp 83h ; 'â' seg000:45BA jr nz, P2returnZ_2 seg000:45BC inc hl seg000:45BD ex de, hl seg000:45BE ld ix, 0 seg000:45C2 add ix, de seg000:45C4 pop af seg000:45C5 pop hl seg000:45C6 jp (ix) seg000:45C8 ; --------------------------------------------------------------------------- seg000:45C8 seg000:45C8 P2returnZ_2: ; CODE XREF: seg000:45BAj seg000:45C8 pop af seg000:45C9 pop hl seg000:45CA cp a seg000:45CB ret seg000:45CC ; --------------------------------------------------------------------------- seg000:45CC seg000:45CC executingAsAsm: ; CODE XREF: seg000:44ACj seg000:45CC dec bc seg000:45CD dec bc seg000:45CE push de seg000:45CF pop hl seg000:45D0 add hl, bc seg000:45D1 ld a, (hl) seg000:45D2 cp 11h seg000:45D4 jr nz, executingAsBasic seg000:45D6 dec bc seg000:45D7 seg000:45D7 executingAsBasic: ; CODE XREF: seg000:449Bj seg000:45D7 ; seg000:45D4j seg000:45D7 inc de seg000:45D8 rst 28h seg000:45D8 ; --------------------------------------------------------------------------- seg000:45D9 dw _ZeroOP1 seg000:45DB ; --------------------------------------------------------------------------- seg000:45DB ex de, hl seg000:45DC ld a, 5 seg000:45DE ld (OP1), a seg000:45E1 ld de, OP1+1 seg000:45E4 ldir seg000:45E6 seg000:45E6 executeProgram: ; CODE XREF: seg000:49D5p seg000:45E6 rst 28h seg000:45E6 ; --------------------------------------------------------------------------- seg000:45E7 dw _OP1ToOP6 seg000:45E9 ; --------------------------------------------------------------------------- seg000:45E9 rst 28h seg000:45E9 ; --------------------------------------------------------------------------- seg000:45EA dw _ChkFindSym seg000:45EC ; --------------------------------------------------------------------------- seg000:45EC jr nc, programFound seg000:45EE ld a, 6 seg000:45F0 ld (OP1), a seg000:45F3 rst 28h seg000:45F3 ; --------------------------------------------------------------------------- seg000:45F4 dw _ChkFindSym seg000:45F6 ; --------------------------------------------------------------------------- seg000:45F6 jp c, returnZ seg000:45F9 seg000:45F9 programFound: ; CODE XREF: seg000:45ECj seg000:45F9 xor a seg000:45FA ld (appBackUpScreen), a seg000:45FD cp b seg000:45FE jr z, in_RAM seg000:4600 ex de, hl seg000:4601 call myLoadCIndPaged seg000:4604 call myLoadDEIndPaged seg000:4607 ld de, 6 seg000:460A call BHL_plus_DE seg000:460D call myLoadCIndPaged seg000:4610 ld e, c seg000:4611 call BHL_plus_DE seg000:4614 call myLoadDEIndPaged seg000:4617 xor a seg000:4618 cp d seg000:4619 jr nz, size_is_nonzero seg000:461B cp e seg000:461C jr nz, size_is_nonzero seg000:461E cp 1 seg000:4620 ret seg000:4621 ; --------------------------------------------------------------------------- seg000:4621 seg000:4621 size_is_nonzero: ; CODE XREF: seg000:4619j seg000:4621 ; seg000:461Cj seg000:4621 rst 28h seg000:4621 ; --------------------------------------------------------------------------- seg000:4622 dw _ChkFindSym seg000:4624 ; --------------------------------------------------------------------------- seg000:4624 call copyArchivedCalcUtilToTempRAMProgram seg000:4627 ld a, 1 seg000:4629 ld (appBackUpScreen), a seg000:462C seg000:462C in_RAM: ; CODE XREF: seg000:45FEj seg000:462C inc de seg000:462D inc de seg000:462E ld a, (de) seg000:462F cp 0BBh ; '+' seg000:4631 jr nz, notAsmPrgmToken seg000:4633 inc de seg000:4634 ld a, (de) seg000:4635 cp 6Ch ; 'l' seg000:4637 jp z, runAssemblyProgram seg000:463A cp 6Dh ; 'm' seg000:463C jp z, runAssemblyProgram seg000:463F seg000:463F notAsmPrgmToken: ; CODE XREF: seg000:4631j seg000:463F ld a, (appBackUpScreen) seg000:4642 cp 0 seg000:4644 jr z, was_in_RAM seg000:4646 ld hl, aA234567 ; "\x16A234567+" seg000:4649 rst 28h seg000:4649 ; --------------------------------------------------------------------------- seg000:464A dw _Mov9ToOP1 seg000:464C ; --------------------------------------------------------------------------- seg000:464C seg000:464C was_in_RAM: ; CODE XREF: seg000:4644j seg000:464C push de seg000:464D push hl seg000:464E rst 28h seg000:464E ; --------------------------------------------------------------------------- seg000:464F dw _OP1ToOP5 seg000:4651 ; --------------------------------------------------------------------------- seg000:4651 pop hl seg000:4652 pop de seg000:4653 rst 28h seg000:4653 ; --------------------------------------------------------------------------- seg000:4654 dw _ChkFindSym seg000:4656 ; --------------------------------------------------------------------------- seg000:4656 ex de, hl seg000:4657 ld c, (hl) seg000:4658 inc hl seg000:4659 inc bc seg000:465A seg000:465A parseLoop: ; CODE XREF: seg000:4666j seg000:465A ; seg000:466Bj seg000:465A dec bc seg000:465B xor a seg000:465C cp b seg000:465D jr nz, parseContinue seg000:465F cp c seg000:4660 jr z, parseDone seg000:4662 seg000:4662 parseContinue: ; CODE XREF: seg000:465Dj seg000:4662 inc hl seg000:4663 ld a, 0D9h ; '+' seg000:4665 cp (hl) seg000:4666 jr nz, parseLoop seg000:4668 ld a, 0D5h ; '+' seg000:466A ld (hl), a seg000:466B jr parseLoop seg000:466D ; --------------------------------------------------------------------------- seg000:466D seg000:466D parseDone: ; CODE XREF: seg000:4660j seg000:466D ld hl, aUtilvar ; "\x15UtilVar" seg000:4670 rst 28h seg000:4670 ; --------------------------------------------------------------------------- seg000:4671 dw _Mov9ToOP1 seg000:4673 ; --------------------------------------------------------------------------- seg000:4673 rst 28h seg000:4673 ; --------------------------------------------------------------------------- seg000:4674 dw _ChkFindSym seg000:4676 ; --------------------------------------------------------------------------- seg000:4676 ld hl, 5 seg000:4679 add hl, de seg000:467A ld a, 1 seg000:467C inc hl seg000:467D ex de, hl seg000:467E push de seg000:467F rst 28h seg000:467F ; --------------------------------------------------------------------------- seg000:4680 dw _OP1ExOP6 seg000:4682 ; --------------------------------------------------------------------------- seg000:4682 pop de seg000:4683 ld hl, OP1+1 seg000:4686 ld bc, 8 seg000:4689 ldir seg000:468B ld hl, aA234567 ; "\x16A234567+" seg000:468E rst 28h seg000:468E ; --------------------------------------------------------------------------- seg000:468F dw _Mov9ToOP1 seg000:4691 ; --------------------------------------------------------------------------- seg000:4691 rst 28h seg000:4691 ; --------------------------------------------------------------------------- seg000:4692 dw _OP5ToOP1 seg000:4694 ; --------------------------------------------------------------------------- seg000:4694 set appRetKeyOff, (iy+APIFlg) seg000:4698 set allowProgTokens, (iy+newDispF) seg000:469C set 6, (iy+curFlags) seg000:46A0 rst 28h seg000:46A0 ; --------------------------------------------------------------------------- seg000:46A1 dw _ParseInp seg000:46A3 ; --------------------------------------------------------------------------- seg000:46A3 res allowProgTokens, (iy+newDispF) seg000:46A7 res 6, (iy+curFlags) seg000:46AB res appRetKeyOff, (iy+APIFlg) seg000:46AF seg000:46AF doneExecutingProgram: ; CODE XREF: seg000:46DDj seg000:46AF ld hl, aUtilvar ; "\x15UtilVar" seg000:46B2 rst 28h seg000:46B2 ; --------------------------------------------------------------------------- seg000:46B3 dw _Mov9ToOP1 seg000:46B5 ; --------------------------------------------------------------------------- seg000:46B5 rst 28h seg000:46B5 ; --------------------------------------------------------------------------- seg000:46B6 dw _ChkFindSym seg000:46B8 ; --------------------------------------------------------------------------- seg000:46B8 jp c, UtilVarNotFound_4 seg000:46BB ld hl, 5 seg000:46BE add hl, de seg000:46BF ld a, (hl) seg000:46C0 xor a seg000:46C1 ld (hl), a seg000:46C2 rst 28h seg000:46C2 ; --------------------------------------------------------------------------- seg000:46C3 dw _CleanAll seg000:46C5 ; --------------------------------------------------------------------------- seg000:46C5 ld hl, aA234567 ; "\x16A234567+" seg000:46C8 rst 28h seg000:46C8 ; --------------------------------------------------------------------------- seg000:46C9 dw _Mov9ToOP1 seg000:46CB ; --------------------------------------------------------------------------- seg000:46CB rst 28h seg000:46CB ; --------------------------------------------------------------------------- seg000:46CC dw _ChkFindSym seg000:46CE ; --------------------------------------------------------------------------- seg000:46CE jr c, funkyProgramNotFound_2 seg000:46D0 rst 28h seg000:46D0 ; --------------------------------------------------------------------------- seg000:46D1 dw _DelVarArc seg000:46D3 ; --------------------------------------------------------------------------- seg000:46D3 seg000:46D3 funkyProgramNotFound_2: ; CODE XREF: seg000:46CEj seg000:46D3 xor a seg000:46D4 cp 1 seg000:46D6 ret seg000:46D6 ; --------------------------------------------------------------------------- seg000:46D7 .ascii '\x05#',0 seg000:46DA ; --------------------------------------------------------------------------- seg000:46DA seg000:46DA runAssemblyProgram: ; CODE XREF: seg000:4637j seg000:46DA ; seg000:463Cj seg000:46DA rst 28h seg000:46DA ; --------------------------------------------------------------------------- seg000:46DB dw ExecutePrgm seg000:46DD ; --------------------------------------------------------------------------- seg000:46DD jr doneExecutingProgram seg000:46DF ; --------------------------------------------------------------------------- seg000:46DF ld hl, MirageOSLoader seg000:46E2 ld de, appBackUpScreen seg000:46E5 ld bc, 12 seg000:46E8 ldir seg000:46EA rst 28h seg000:46EA ; --------------------------------------------------------------------------- seg000:46EB dw _ChkFindSym seg000:46ED ; --------------------------------------------------------------------------- seg000:46ED ld (plotSScreen), hl seg000:46F0 ld hl, aMirageos ; "\x14MirageOS" seg000:46F3 rst 20h seg000:46F4 rst 28h seg000:46F4 ; --------------------------------------------------------------------------- seg000:46F5 dw 704h seg000:46F7 ; --------------------------------------------------------------------------- seg000:46F7 xor a seg000:46F8 cp 1 seg000:46FA ret seg000:46FA ; --------------------------------------------------------------------------- seg000:46FB aMirageos: .ascii '\x14MirageOS' ; DATA XREF: seg000:46F0o seg000:4704 dw 9872h seg000:4706 db 0 seg000:4707 ; --------------------------------------------------------------------------- seg000:4707 seg000:4707 MirageOSLoader: ; DATA XREF: seg000:46DFo seg000:4707 rst 28h seg000:4707 ; --------------------------------------------------------------------------- seg000:4708 dw _FindApp seg000:470A ; --------------------------------------------------------------------------- seg000:470A ret c seg000:470B out (6), a seg000:470D ld hl, (plotSScreen) seg000:4710 jp runprog seg000:4710 ; --------------------------------------------------------------------------- seg000:4713 aA234567: .ascii '\x16A234567+' ; DATA XREF: seg000:4646o seg000:4713 ; seg000:468Bo ... seg000:471C seg000:471C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ seg000:471C seg000:471C seg000:471C myLoadCIndPaged: ; CODE XREF: seg000:4601p seg000:471C ; seg000:460Dp ... seg000:471C rst 28h seg000:471C ; --------------------------------------------------------------------------- seg000:471D dw _LoadCIndPaged seg000:471F ; --------------------------------------------------------------------------- seg000:471F seg000:471F inc_BHL: ; CODE XREF: myLoadDEIndPaged+3j seg000:471F inc hl seg000:4720 bit 7, h seg000:4722 ret z seg000:4723 inc b seg000:4724 res 7, h seg000:4726 set 6, h seg000:4728 ret seg000:4728 ; End of function myLoadCIndPaged seg000:4728 seg000:4729 seg000:4729 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ seg000:4729 seg000:4729 seg000:4729 myLoadDEIndPaged: ; CODE XREF: seg000:4604p seg000:4729 ; seg000:4614p ... seg000:4729 rst 28h seg000:4729 ; --------------------------------------------------------------------------- seg000:472A dw _LoadDEIndPaged seg000:472C ; --------------------------------------------------------------------------- seg000:472C jr inc_BHL seg000:472C ; End of function myLoadDEIndPaged seg000:472C seg000:472E seg000:472E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ seg000:472E seg000:472E seg000:472E BHL_plus_DE: ; CODE XREF: seg000:460Ap seg000:472E ; seg000:4611p ... seg000:472E add hl, de seg000:472F bit 7, h seg000:4731 ret z seg000:4732 inc b seg000:4733 res 7, h seg000:4735 set 6, h seg000:4737 ret seg000:4737 ; End of function BHL_plus_DE seg000:4737 seg000:4738 ; --------------------------------------------------------------------------- seg000:4738 seg000:4738 myAppChangeHook: ; DATA XREF: seg000:41DFo seg000:4738 add a, e seg000:4739 set appRetKeyOff, (iy+APIFlg) seg000:473D cp kPrgmEd seg000:473F jp nz, notProgramEdit seg000:4742 set appRetKeyOff, (iy+APIFlg) seg000:4746 push af seg000:4747 push bc seg000:4748 push de seg000:4749 push hl seg000:474A ld hl, aUtilvar ; "\x15UtilVar" seg000:474D rst 28h seg000:474D ; --------------------------------------------------------------------------- seg000:474E dw _Mov9ToOP1 seg000:4750 ; --------------------------------------------------------------------------- seg000:4750 rst 28h seg000:4750 ; --------------------------------------------------------------------------- seg000:4751 dw _ChkFindSym seg000:4753 ; --------------------------------------------------------------------------- seg000:4753 jr c, UtilVarNotFound_4 seg000:4755 ld a, 5 seg000:4757 ld (OP1), a seg000:475A ld hl, progToEdit seg000:475D ld de, OP1+1 seg000:4760 ld bc, 8 seg000:4763 ldir seg000:4765 rst 28h seg000:4765 ; --------------------------------------------------------------------------- seg000:4766 dw _PushRealO1 seg000:4768 ; --------------------------------------------------------------------------- seg000:4768 rst 28h seg000:4768 ; --------------------------------------------------------------------------- seg000:4769 dw _ChkFindSym seg000:476B ; --------------------------------------------------------------------------- seg000:476B jr c, VarNotFound seg000:476D xor a seg000:476E cp b seg000:476F jr z, VarNotFound seg000:4771 call copyArchivedCalcUtilToTempRAMProgram seg000:4774 ld hl, aA234567+1 ; "\x16A234567+" seg000:4777 ld de, progToEdit seg000:477A ld bc, 8 seg000:477D ldir seg000:477F ld hl, aUtilvar ; "\x15UtilVar" seg000:4782 rst 28h seg000:4782 ; --------------------------------------------------------------------------- seg000:4783 dw _Mov9ToOP1 seg000:4785 ; --------------------------------------------------------------------------- seg000:4785 rst 28h seg000:4785 ; --------------------------------------------------------------------------- seg000:4786 dw _ChkFindSym seg000:4788 ; --------------------------------------------------------------------------- seg000:4788 ld hl, 5 seg000:478B add hl, de seg000:478C ld a, 1 seg000:478E ld (hl), a seg000:478F inc hl seg000:4790 ex de, hl seg000:4791 push de seg000:4792 rst 28h seg000:4792 ; --------------------------------------------------------------------------- seg000:4793 dw _popRealO1 seg000:4795 ; --------------------------------------------------------------------------- seg000:4795 pop de seg000:4796 ld hl, OP1+1 seg000:4799 ld bc, 8 seg000:479C ldir seg000:479E jr UtilVarNotFound_4 seg000:47A0 ; --------------------------------------------------------------------------- seg000:47A0 seg000:47A0 VarNotFound: ; CODE XREF: seg000:476Bj seg000:47A0 ; seg000:476Fj seg000:47A0 rst 28h seg000:47A0 ; --------------------------------------------------------------------------- seg000:47A1 dw _popRealO1 seg000:47A3 ; --------------------------------------------------------------------------- seg000:47A3 seg000:47A3 UtilVarNotFound_4: ; CODE XREF: seg000:46B8j seg000:47A3 ; seg000:4753j ... seg000:47A3 ld hl, aUtilvar ; "\x15UtilVar" seg000:47A6 rst 28h seg000:47A6 ; --------------------------------------------------------------------------- seg000:47A7 dw _Mov9ToOP1 seg000:47A9 ; --------------------------------------------------------------------------- seg000:47A9 rst 28h seg000:47A9 ; --------------------------------------------------------------------------- seg000:47AA dw _ChkFindSym seg000:47AC ; --------------------------------------------------------------------------- seg000:47AC jr c, P4returnZ seg000:47AE ld hl, 14 seg000:47B1 add hl, de seg000:47B2 ld a, (hl) seg000:47B3 cp 2Ah ; '*' seg000:47B5 jr nz, P4returnZ seg000:47B7 xor a seg000:47B8 ld (hl), a seg000:47B9 ld hl, aUtilvar ; "\x15UtilVar" seg000:47BC rst 28h seg000:47BC ; --------------------------------------------------------------------------- seg000:47BD dw _Mov9ToOP1 seg000:47BF ; --------------------------------------------------------------------------- seg000:47BF rst 28h seg000:47BF ; --------------------------------------------------------------------------- seg000:47C0 dw _ChkFindSym seg000:47C2 ; --------------------------------------------------------------------------- seg000:47C2 rst 28h seg000:47C2 ; --------------------------------------------------------------------------- seg000:47C3 dw GetKeyRetOff seg000:47C5 ; --------------------------------------------------------------------------- seg000:47C5 seg000:47C5 P4returnZ: ; CODE XREF: seg000:47ACj seg000:47C5 ; seg000:47B5j seg000:47C5 pop hl seg000:47C6 pop de seg000:47C7 pop bc seg000:47C8 pop af seg000:47C9 jp returnZ seg000:47CC ; --------------------------------------------------------------------------- seg000:47CC seg000:47CC notProgramEdit: ; CODE XREF: seg000:473Fj seg000:47CC cp kQuit seg000:47CE jr z, validKey seg000:47D0 cp kYequ seg000:47D2 jr z, validKey seg000:47D4 cp kWindow seg000:47D6 jr z, validKey seg000:47D8 cp kGraph seg000:47DA jr z, validKey seg000:47DC cp kTable seg000:47DE jr z, validKey seg000:47E0 cp kLinkIO seg000:47E2 jr z, validKey seg000:47E4 cp kAppsMenu seg000:47E6 jr z, validKey seg000:47E8 jp returnZ seg000:47EB ; --------------------------------------------------------------------------- seg000:47EB seg000:47EB validKey: ; CODE XREF: seg000:47CEj seg000:47EB ; seg000:47D2j ... seg000:47EB push af seg000:47EC push bc seg000:47ED push de seg000:47EE push hl seg000:47EF ld a, b seg000:47F0 cp kPrgmEd seg000:47F2 jp nz, exitAppChangeHook seg000:47F5 ld hl, textShadow+2 seg000:47F8 ld de, aA234567+1 ; "\x16A234567+" seg000:47FB ld b, 8 seg000:47FD call cmpstrb seg000:4800 jr nz, notFunkyProgram seg000:4802 ld hl, aUtilvar ; "\x15UtilVar" seg000:4805 rst 28h seg000:4805 ; --------------------------------------------------------------------------- seg000:4806 dw _Mov9ToOP1 seg000:4808 ; --------------------------------------------------------------------------- seg000:4808 rst 28h seg000:4808 ; --------------------------------------------------------------------------- seg000:4809 dw _ChkFindSym seg000:480B ; --------------------------------------------------------------------------- seg000:480B jp c, exitAppChangeHook seg000:480E ld hl, 5 seg000:4811 add hl, de seg000:4812 ld a, 1 seg000:4814 ld (hl), a seg000:4815 seg000:4815 notFunkyProgram: ; CODE XREF: seg000:4800j seg000:4815 ld hl, aUtilvar ; "\x15UtilVar" seg000:4818 rst 28h seg000:4818 ; --------------------------------------------------------------------------- seg000:4819 dw _Mov9ToOP1 seg000:481B ; --------------------------------------------------------------------------- seg000:481B rst 28h seg000:481B ; --------------------------------------------------------------------------- seg000:481C dw _ChkFindSym seg000:481E ; --------------------------------------------------------------------------- seg000:481E jp c, exitAppChangeHook seg000:4821 ld hl, 5 seg000:4824 add hl, de seg000:4825 ld a, (hl) seg000:4826 cp 1 seg000:4828 jp nz, exitAppChangeHook seg000:482B xor a seg000:482C ld (hl), a seg000:482D ld a, 5 seg000:482F ld (OP1), a seg000:4832 inc hl seg000:4833 ld de, OP1+1 seg000:4836 ld bc, 8 seg000:4839 ldir seg000:483B rst 28h seg000:483B ; --------------------------------------------------------------------------- seg000:483C dw _ChkFindSym seg000:483E ; --------------------------------------------------------------------------- seg000:483E jp c, exitAppChangeHook seg000:4841 xor a seg000:4842 cp b seg000:4843 jr z, exitAppChangeHook seg000:4845 rst 28h seg000:4845 ; --------------------------------------------------------------------------- seg000:4846 dw _ClrLCDFull seg000:4848 ; --------------------------------------------------------------------------- seg000:4848 ld hl, 0 seg000:484B ld (curRow), hl seg000:484E ld hl, aDoYouWantToSav ; " Do you want to save changes?" seg000:4851 call PutSApp seg000:4854 ld hl, 6 seg000:4857 ld (curRow), hl seg000:485A ld hl, aYesNo ; "---------------- Yes | | No" seg000:485D call PutSApp seg000:4860 seg000:4860 saveKeyLoop: ; CODE XREF: seg000:4871j seg000:4860 rst 28h seg000:4860 ; --------------------------------------------------------------------------- seg000:4861 dw GetKey seg000:4863 ; --------------------------------------------------------------------------- seg000:4863 cp kGraph seg000:4865 jr z, exitAppChangeHook seg000:4867 cp kTrace seg000:4869 jr z, exitAppChangeHook seg000:486B cp kWindow seg000:486D jr z, windowPressed seg000:486F cp kYequ seg000:4871 jr nz, saveKeyLoop seg000:4873 seg000:4873 windowPressed: ; CODE XREF: seg000:486Dj seg000:4873 rst 28h seg000:4873 ; --------------------------------------------------------------------------- seg000:4874 dw _ChkFindSym seg000:4876 ; --------------------------------------------------------------------------- seg000:4876 jr c, exitAppChangeHook seg000:4878 xor a seg000:4879 cp b seg000:487A jr z, exitAppChangeHook seg000:487C push af seg000:487D push bc seg000:487E push de seg000:487F push hl seg000:4880 rst 28h seg000:4880 ; --------------------------------------------------------------------------- seg000:4881 dw _OP1ToOP3 seg000:4883 ; --------------------------------------------------------------------------- seg000:4883 pop hl seg000:4884 pop de seg000:4885 pop bc seg000:4886 pop af seg000:4887 rst 28h seg000:4887 ; --------------------------------------------------------------------------- seg000:4888 dw _DelVarArc seg000:488A ; --------------------------------------------------------------------------- seg000:488A ld hl, aA234567 ; "\x16A234567+" seg000:488D rst 28h seg000:488D ; --------------------------------------------------------------------------- seg000:488E dw _Mov9ToOP1 seg000:4890 ; --------------------------------------------------------------------------- seg000:4890 rst 28h seg000:4890 ; --------------------------------------------------------------------------- seg000:4891 dw _ChkFindSym seg000:4893 ; --------------------------------------------------------------------------- seg000:4893 ld a, (de) seg000:4894 ld l, a seg000:4895 inc de seg000:4896 ld a, (de) seg000:4897 ld h, a seg000:4898 push hl seg000:4899 rst 28h seg000:4899 ; --------------------------------------------------------------------------- seg000:489A dw _OP3ToOP1 seg000:489C ; --------------------------------------------------------------------------- seg000:489C pop hl seg000:489D rst 28h seg000:489D ; --------------------------------------------------------------------------- seg000:489E dw _CreateProg seg000:48A0 ; --------------------------------------------------------------------------- seg000:48A0 push de seg000:48A1 ld hl, aA234567 ; "\x16A234567+" seg000:48A4 rst 28h seg000:48A4 ; --------------------------------------------------------------------------- seg000:48A5 dw _Mov9ToOP1 seg000:48A7 ; --------------------------------------------------------------------------- seg000:48A7 rst 28h seg000:48A7 ; --------------------------------------------------------------------------- seg000:48A8 dw _ChkFindSym seg000:48AA ; --------------------------------------------------------------------------- seg000:48AA ld a, (de) seg000:48AB ld c, a seg000:48AC inc de seg000:48AD ld a, (de) seg000:48AE ld b, a seg000:48AF pop hl seg000:48B0 inc hl seg000:48B1 inc hl seg000:48B2 inc de seg000:48B3 ex de, hl seg000:48B4 xor a seg000:48B5 cp c seg000:48B6 jr nz, size_nonzero seg000:48B8 cp b seg000:48B9 jr z, size_zero seg000:48BB seg000:48BB size_nonzero: ; CODE XREF: seg000:48B6j seg000:48BB ldir seg000:48BD seg000:48BD size_zero: ; CODE XREF: seg000:48B9j seg000:48BD rst 28h seg000:48BD ; --------------------------------------------------------------------------- seg000:48BE dw _OP3ToOP1 seg000:48C0 ; --------------------------------------------------------------------------- seg000:48C0 rst 28h seg000:48C0 ; --------------------------------------------------------------------------- seg000:48C1 dw Arc_Unarc seg000:48C3 ; --------------------------------------------------------------------------- seg000:48C3 seg000:48C3 exitAppChangeHook: ; CODE XREF: seg000:47F2j seg000:48C3 ; seg000:480Bj ... seg000:48C3 rst 28h seg000:48C3 ; --------------------------------------------------------------------------- seg000:48C4 dw _CleanAll seg000:48C6 ; --------------------------------------------------------------------------- seg000:48C6 ld hl, aA234567 ; "\x16A234567+" seg000:48C9 rst 28h seg000:48C9 ; --------------------------------------------------------------------------- seg000:48CA dw _Mov9ToOP1 seg000:48CC ; --------------------------------------------------------------------------- seg000:48CC rst 28h seg000:48CC ; --------------------------------------------------------------------------- seg000:48CD dw _ChkFindSym seg000:48CF ; --------------------------------------------------------------------------- seg000:48CF jp c, UtilVarNotFound_4 seg000:48D2 rst 28h seg000:48D2 ; --------------------------------------------------------------------------- seg000:48D3 dw _DelVarArc seg000:48D5 ; --------------------------------------------------------------------------- seg000:48D5 jp UtilVarNotFound_4 seg000:48D8 ; --------------------------------------------------------------------------- seg000:48D8 pop de seg000:48D9 rst 28h seg000:48D9 ; --------------------------------------------------------------------------- seg000:48DA dw _popRealO1 seg000:48DC ; --------------------------------------------------------------------------- seg000:48DC jp UtilVarNotFound_4 seg000:48DF seg000:48DF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ seg000:48DF seg000:48DF seg000:48DF cmpstrb: ; CODE XREF: seg000:47FDp seg000:48DF ; cmpstrb+5j seg000:48DF ld a, (de) seg000:48E0 cp (hl) seg000:48E1 ret nz seg000:48E2 inc de seg000:48E3 inc hl seg000:48E4 djnz cmpstrb seg000:48E6 cp a seg000:48E7 ret seg000:48E7 ; End of function cmpstrb seg000:48E7 seg000:48E7 ; --------------------------------------------------------------------------- seg000:48E8 aDoYouWantToSav:.ascii ' Do you want to save changes?',0 seg000:48E8 ; DATA XREF: seg000:484Eo seg000:4907 aYesNo: .ascii '---------------- Yes | | No',0 seg000:4907 ; DATA XREF: seg000:485Ao seg000:4927 ; --------------------------------------------------------------------------- seg000:4927 seg000:4927 myRawKeyHook: ; DATA XREF: seg000:41D3o seg000:4927 add a, e seg000:4928 set appRetKeyOff, (iy+APIFlg) seg000:492C ld (appBackUpScreen), a seg000:492F cp kInputDone seg000:4931 jr z, inputDone seg000:4933 cp kAppsMenu seg000:4935 jr z, appsKeyPressed seg000:4937 cp kMem seg000:4939 jr nz, tryONprgmRun seg000:493B ld a, (cxCurApp) seg000:493E cp kPrgmEd seg000:4940 jr nz, notProgramEdit_2 seg000:4942 xor a seg000:4943 ret seg000:4944 ; --------------------------------------------------------------------------- seg000:4944 seg000:4944 appsKeyPressed: ; CODE XREF: seg000:4935j seg000:4944 ld a, (cxCurApp) seg000:4947 cp kPrgmEd seg000:4949 jr nz, notProgramEdit_2 seg000:494B ld a, kFin seg000:494D cp 1 seg000:494F ret seg000:4950 ; --------------------------------------------------------------------------- seg000:4950 seg000:4950 notProgramEdit_2: ; CODE XREF: seg000:4940j seg000:4950 ; seg000:4949j seg000:4950 ld a, (appBackUpScreen) seg000:4953 cp a seg000:4954 ret seg000:4955 ; --------------------------------------------------------------------------- seg000:4955 seg000:4955 inputDone: ; CODE XREF: seg000:4931j seg000:4955 ld hl, aUtilvar ; "\x15UtilVar" seg000:4958 rst 28h seg000:4958 ; --------------------------------------------------------------------------- seg000:4959 dw _Mov9ToOP1 seg000:495B ; --------------------------------------------------------------------------- seg000:495B rst 28h seg000:495B ; --------------------------------------------------------------------------- seg000:495C dw _ChkFindSym seg000:495E ; --------------------------------------------------------------------------- seg000:495E jr c, UtilVarNotFound_5 seg000:4960 ld hl, 14 seg000:4963 add hl, de seg000:4964 ld a, 2Ah ; '*' seg000:4966 ld (hl), a seg000:4967 seg000:4967 UtilVarNotFound_5: ; CODE XREF: seg000:495Ej seg000:4967 ld a, kQuit seg000:4969 cp 1 seg000:496B res appRetKeyOff, (iy+APIFlg) seg000:496F ret seg000:4970 ; --------------------------------------------------------------------------- seg000:4970 seg000:4970 tryONprgmRun: ; CODE XREF: seg000:4939j seg000:4970 ; seg000:4ABCp seg000:4970 cp 0B1h ; '¦' seg000:4972 jr z, kCapX seg000:4974 cp 8Fh ; 'Å' seg000:4976 jp c, notNumberKeyPressed seg000:4979 cp 98h ; 'ÿ' seg000:497B jp nc, notNumberKeyPressed seg000:497E push af seg000:497F in a, (4) seg000:4981 bit 3, a seg000:4983 jr nz, ONnotPressed seg000:4985 pop af seg000:4986 seg000:4986 loc_4986: ; CODE XREF: seg000:4972j seg000:4986 add a, 0A2h ; 'ó' ; converts to ASCII number seg000:4988 ld (appBackUpScreen), a seg000:498B rst 28h seg000:498B ; --------------------------------------------------------------------------- seg000:498C dw _closeEditBuf seg000:498E ; --------------------------------------------------------------------------- seg000:498E ld hl, aProglist ; "\x05PROGLIST" seg000:4991 rst 28h seg000:4991 ; --------------------------------------------------------------------------- seg000:4992 dw _Mov9ToOP1 seg000:4994 ; --------------------------------------------------------------------------- seg000:4994 rst 28h seg000:4994 ; --------------------------------------------------------------------------- seg000:4995 dw _ChkFindSym seg000:4997 ; --------------------------------------------------------------------------- seg000:4997 jr c, progListNotFound seg000:4999 xor a seg000:499A cp b seg000:499B call nz, copyArchivedCalcUtilToTempRAMProgram seg000:499E ex de, hl seg000:499F ld c, (hl) seg000:49A0 inc hl seg000:49A1 ld b, (hl) seg000:49A2 inc hl seg000:49A3 seg000:49A3 parseProgListLoop: ; CODE XREF: seg000:49B2j seg000:49A3 ; seg000:49BDj ... seg000:49A3 ld a, (appBackUpScreen) seg000:49A6 cp (hl) seg000:49A7 jr nz, skipThisEntry seg000:49A9 inc hl seg000:49AA dec bc seg000:49AB ld a, b seg000:49AC or c seg000:49AD jr z, progListNotFound seg000:49AF ld a, 3Eh ; '>' seg000:49B1 cp (hl) seg000:49B2 jr nz, parseProgListLoop seg000:49B4 inc hl seg000:49B5 dec bc seg000:49B6 ld a, b seg000:49B7 or c seg000:49B8 jr z, progListNotFound seg000:49BA ld a, 5Fh ; '_' seg000:49BC cp (hl) seg000:49BD jr nz, parseProgListLoop seg000:49BF dec hl seg000:49C0 inc bc seg000:49C1 ld (basic_pc), hl seg000:49C4 seg000:49C4 findEndLineLoop: ; CODE XREF: seg000:49CDj seg000:49C4 ld a, 3Fh ; '?' seg000:49C6 inc hl seg000:49C7 dec bc seg000:49C8 cp (hl) seg000:49C9 jr z, foundEndLine seg000:49CB ld a, b seg000:49CC or c seg000:49CD jr nz, findEndLineLoop seg000:49CF seg000:49CF foundEndLine: ; CODE XREF: seg000:49C9j seg000:49CF ld (basic_end), hl seg000:49D2 rst 28h seg000:49D2 ; --------------------------------------------------------------------------- seg000:49D3 dw _ParsePrgmName seg000:49D5 ; --------------------------------------------------------------------------- seg000:49D5 call executeProgram seg000:49D8 ld a, kQuit seg000:49DA cp a seg000:49DB ret seg000:49DC ; --------------------------------------------------------------------------- seg000:49DC seg000:49DC skipThisEntry: ; CODE XREF: seg000:49A7j seg000:49DC inc hl seg000:49DD dec bc seg000:49DE ld a, b seg000:49DF or c seg000:49E0 jr nz, parseProgListLoop seg000:49E2 seg000:49E2 progListNotFound: ; CODE XREF: seg000:4997j seg000:49E2 ; seg000:49ADj ... seg000:49E2 rst 28h seg000:49E2 ; --------------------------------------------------------------------------- seg000:49E3 dw _CleanAll seg000:49E5 ; --------------------------------------------------------------------------- seg000:49E5 ld hl, aA234567 ; "\x16A234567+" seg000:49E8 rst 28h seg000:49E8 ; --------------------------------------------------------------------------- seg000:49E9 dw _Mov9ToOP1 seg000:49EB ; --------------------------------------------------------------------------- seg000:49EB rst 28h seg000:49EB ; --------------------------------------------------------------------------- seg000:49EC dw _ChkFindSym seg000:49EE ; --------------------------------------------------------------------------- seg000:49EE jr c, funkyProgramNotFound seg000:49F0 rst 28h seg000:49F0 ; --------------------------------------------------------------------------- seg000:49F1 dw _DelVarArc seg000:49F3 ; --------------------------------------------------------------------------- seg000:49F3 seg000:49F3 funkyProgramNotFound: ; CODE XREF: seg000:49EEj seg000:49F3 ld a, (appBackUpScreen) seg000:49F6 add a, 5Eh ; '^' ; converts back to keypress seg000:49F8 cp a seg000:49F9 ret seg000:49F9 ; --------------------------------------------------------------------------- seg000:49FA aProglist: .ascii '\x05PROGLIST' ; DATA XREF: seg000:498Eo seg000:49FA ; seg000:4AABo seg000:4A03 ; --------------------------------------------------------------------------- seg000:4A03 seg000:4A03 ONnotPressed: ; CODE XREF: seg000:4983j seg000:4A03 pop af seg000:4A04 seg000:4A04 notNumberKeyPressed: ; CODE XREF: seg000:4976j seg000:4A04 ; seg000:497Bj seg000:4A04 push af seg000:4A05 ld hl, aUtilvar ; "\x15UtilVar" seg000:4A08 rst 28h seg000:4A08 ; --------------------------------------------------------------------------- seg000:4A09 dw _Mov9ToOP1 seg000:4A0B ; --------------------------------------------------------------------------- seg000:4A0B rst 28h seg000:4A0B ; --------------------------------------------------------------------------- seg000:4A0C dw _ChkFindSym seg000:4A0E ; --------------------------------------------------------------------------- seg000:4A0E jr c, noKeyHookChaining seg000:4A10 ld hl, 17 seg000:4A13 add hl, de seg000:4A14 ld e, (hl) seg000:4A15 inc hl seg000:4A16 ld d, (hl) seg000:4A17 xor a seg000:4A18 cp d seg000:4A19 jr z, noKeyHookChaining seg000:4A1B inc hl seg000:4A1C ld a, (hl) seg000:4A1D push de seg000:4A1E ld hl, 4A30h seg000:4A21 ld de, appBackUpScreen seg000:4A24 ld bc, 14 seg000:4A27 ldir seg000:4A29 jp appBackUpScreen seg000:4A2C ; --------------------------------------------------------------------------- seg000:4A2C seg000:4A2C noKeyHookChaining: ; CODE XREF: seg000:4A0Ej seg000:4A2C ; seg000:4A19j seg000:4A2C pop af seg000:4A2D jp returnZ seg000:4A30 ; --------------------------------------------------------------------------- seg000:4A30 out (6), a seg000:4A32 pop hl seg000:4A33 ld a, (hl) seg000:4A34 cp 83h ; 'â' seg000:4A36 jr nz, hookInvalid seg000:4A38 inc hl seg000:4A39 pop af seg000:4A3A jp (hl) seg000:4A3B ; --------------------------------------------------------------------------- seg000:4A3B seg000:4A3B hookInvalid: ; CODE XREF: seg000:4A36j seg000:4A3B pop af seg000:4A3C cp a seg000:4A3D ret seg000:4A3E seg000:4A3E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ seg000:4A3E seg000:4A3E seg000:4A3E PutSApp: ; CODE XREF: seg000:4090p seg000:4A3E ; seg000:409Dp ... seg000:4A3E ld a, (hl) seg000:4A3F inc hl seg000:4A40 or a seg000:4A41 ret z seg000:4A42 rst 28h seg000:4A42 ; --------------------------------------------------------------------------- seg000:4A43 dw _PutC seg000:4A45 ; --------------------------------------------------------------------------- seg000:4A45 jr PutSApp seg000:4A45 ; End of function PutSApp seg000:4A45 seg000:4A47 seg000:4A47 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ seg000:4A47 seg000:4A47 seg000:4A47 VPutSApp: ; CODE XREF: seg000:4284p seg000:4A47 ; seg000:4293p ... seg000:4A47 ld a, (hl) seg000:4A48 inc hl seg000:4A49 or a seg000:4A4A ret z seg000:4A4B push de seg000:4A4C rst 28h seg000:4A4C ; --------------------------------------------------------------------------- seg000:4A4D dw VPutMap seg000:4A4F ; --------------------------------------------------------------------------- seg000:4A4F pop de seg000:4A50 ret c seg000:4A51 jr VPutSApp seg000:4A51 ; End of function VPutSApp seg000:4A51 seg000:4A53 seg000:4A53 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ seg000:4A53 seg000:4A53 seg000:4A53 copyArchivedCalcUtilToTempRAMProgram: ; CODE XREF: seg000:4624p seg000:4A53 ; seg000:4771p ... seg000:4A53 ex de, hl seg000:4A54 call myLoadCIndPaged seg000:4A57 call myLoadDEIndPaged seg000:4A5A ld de, 6 seg000:4A5D call BHL_plus_DE seg000:4A60 call myLoadCIndPaged seg000:4A63 ld e, c seg000:4A64 call BHL_plus_DE seg000:4A67 call myLoadDEIndPaged seg000:4A6A push bc seg000:4A6B push hl seg000:4A6C push de seg000:4A6D push de seg000:4A6E rst 28h seg000:4A6E ; --------------------------------------------------------------------------- seg000:4A6F dw _OP1ToOP3 seg000:4A71 ; --------------------------------------------------------------------------- seg000:4A71 ld hl, aA234567 ; "\x16A234567+" seg000:4A74 rst 28h seg000:4A74 ; --------------------------------------------------------------------------- seg000:4A75 dw _Mov9ToOP1 seg000:4A77 ; --------------------------------------------------------------------------- seg000:4A77 rst 28h seg000:4A77 ; --------------------------------------------------------------------------- seg000:4A78 dw _ChkFindSym seg000:4A7A ; --------------------------------------------------------------------------- seg000:4A7A jr c, funkyProgramNotFound seg000:4A7C rst 28h seg000:4A7C ; --------------------------------------------------------------------------- seg000:4A7D dw _DelVarArc seg000:4A7F ; --------------------------------------------------------------------------- seg000:4A7F seg000:4A7F funkyProgramNotFound: ; CODE XREF: copyArchivedCalcUtilToTempRAMProgram+27j seg000:4A7F ld hl, aA234567 ; "\x16A234567+" seg000:4A82 rst 28h seg000:4A82 ; --------------------------------------------------------------------------- seg000:4A83 dw _Mov9ToOP1 seg000:4A85 ; --------------------------------------------------------------------------- seg000:4A85 pop hl seg000:4A86 rst 28h seg000:4A86 ; --------------------------------------------------------------------------- seg000:4A87 dw _CreateProg seg000:4A89 ; --------------------------------------------------------------------------- seg000:4A89 pop bc seg000:4A8A pop hl seg000:4A8B ld a, (de) seg000:4A8C cp 0 seg000:4A8E jr nz, sizeNonZero1 seg000:4A90 inc de seg000:4A91 cp 0 seg000:4A93 jr nz, sizeNonZero2 seg000:4A95 pop af seg000:4A96 ret seg000:4A97 ; --------------------------------------------------------------------------- seg000:4A97 seg000:4A97 sizeNonZero1: ; CODE XREF: copyArchivedCalcUtilToTempRAMProgram+3Bj seg000:4A97 inc de seg000:4A98 seg000:4A98 sizeNonZero2: ; CODE XREF: copyArchivedCalcUtilToTempRAMProgram+40j seg000:4A98 inc de seg000:4A99 pop af seg000:4A9A rst 28h seg000:4A9A ; --------------------------------------------------------------------------- seg000:4A9B dw _FlashToRam seg000:4A9D ; --------------------------------------------------------------------------- seg000:4A9D ld hl, aA234567 ; "\x16A234567+" seg000:4AA0 rst 28h seg000:4AA0 ; --------------------------------------------------------------------------- seg000:4AA1 dw _Mov9ToOP1 seg000:4AA3 ; --------------------------------------------------------------------------- seg000:4AA3 rst 28h seg000:4AA3 ; --------------------------------------------------------------------------- seg000:4AA4 dw _ChkFindSym seg000:4AA6 ; --------------------------------------------------------------------------- seg000:4AA6 ret seg000:4AA6 ; End of function copyArchivedCalcUtilToTempRAMProgram seg000:4AA6 seg000:4AA7 ; --------------------------------------------------------------------------- seg000:4AA7 seg000:4AA7 getCSCHook: ; DATA XREF: seg000:4AD8o seg000:4AA7 add a, e seg000:4AA8 rst 28h seg000:4AA8 ; --------------------------------------------------------------------------- seg000:4AA9 dw _ClrGetKeyHook seg000:4AAB ; --------------------------------------------------------------------------- seg000:4AAB ld hl, aProglist ; "\x05PROGLIST" seg000:4AAE rst 28h seg000:4AAE ; --------------------------------------------------------------------------- seg000:4AAF dw _Mov9ToOP1 seg000:4AB1 ; --------------------------------------------------------------------------- seg000:4AB1 rst 28h seg000:4AB1 ; --------------------------------------------------------------------------- seg000:4AB2 dw _ChkFindSym seg000:4AB4 ; --------------------------------------------------------------------------- seg000:4AB4 jp c, returnZ seg000:4AB7 rst 28h seg000:4AB7 ; --------------------------------------------------------------------------- seg000:4AB8 dw _CursorOff seg000:4ABA ; --------------------------------------------------------------------------- seg000:4ABA ld a, 0B1h ; '¦' seg000:4ABC call tryONprgmRun seg000:4ABF rst 28h seg000:4ABF ; --------------------------------------------------------------------------- seg000:4AC0 dw _CursorOn seg000:4AC2 ; --------------------------------------------------------------------------- seg000:4AC2 ld a, kQuit seg000:4AC4 rst 28h seg000:4AC4 ; --------------------------------------------------------------------------- seg000:4AC5 dw _newContext0 seg000:4AC7 ; --------------------------------------------------------------------------- seg000:4AC7 ld a, 1Ah seg000:4AC9 cp 0 seg000:4ACB ret seg000:4ACC ; --------------------------------------------------------------------------- seg000:4ACC seg000:4ACC OFFSCRPTcode: ; DATA XREF: seg000:413Ao seg000:4ACC ld hl, 8014h ; CalcUtil application seg000:4ACF rst 28h seg000:4ACF ; --------------------------------------------------------------------------- seg000:4AD0 dw _Mov9ToOP1 seg000:4AD2 ; --------------------------------------------------------------------------- seg000:4AD2 rst 28h seg000:4AD2 ; --------------------------------------------------------------------------- seg000:4AD3 dw _FindApp seg000:4AD5 ; --------------------------------------------------------------------------- seg000:4AD5 ret c seg000:4AD6 out (6), a seg000:4AD8 ld hl, getCSCHook seg000:4ADB rst 28h seg000:4ADB ; --------------------------------------------------------------------------- seg000:4ADC dw _SetGetCSCHook seg000:4ADE ; --------------------------------------------------------------------------- seg000:4ADE ret seg000:4ADE ; --------------------------------------------------------------------------- seg000:4ADF aCalcutil: .ascii '\x14CalcUtil' seg000:4AE8 aOffscrpt: .ascii '\x15OFFSCRPT' ; DATA XREF: seg000:installApplicationo seg000:4AF1 ; validationData RAM:8000 ; --------------------------------------------------------------------------- RAM:8000 RAM:8000 ; [00007FFF BYTES: COLLAPSED SEGMENT RAM. PRESS KEYPAD "+" TO EXPAND]