00010 ;REDUCE APPLIES SIMPLE ALGEBRAIC IDENTITIES TO TRY AND 00020 ;... REDUCE THE SIZE OF THE TREE HEADED BY CELL (IY). 00030 ; 00040 ORG 7F00H 00050 ; 00060 ; 00070 ; 00080 PLUS EQU 1 00090 MINUS EQU 2 00100 MULT EQU 3 00110 DIVIDE EQU 4 00120 POWER EQU 5 00130 NEGATE EQU 6 00140 SIN EQU 7 00150 COS EQU 8 00160 TAN EQU 9 00170 CSC EQU 10 00180 SEC EQU 11 00190 COT EQU 12 00200 ISIN EQU 13 00210 ICOS EQU 14 00220 ITAN EQU 15 00230 ICOT EQU 16 00240 ISEC EQU 17 00250 ICSC EQU 18 00260 SINH EQU 19 00270 COSH EQU 20 00280 TANH EQU 21 00290 CSCH EQU 22 00300 SECH EQU 23 00310 COTH EQU 24 00320 ISINH EQU 25 00330 ICOSH EQU 26 00340 ITANH EQU 27 00350 ICOTH EQU 28 00360 ICSCH EQU 29 00370 ISECH EQU 30 00380 LOG EQU 31 00390 EXP EQU 32 00400 CONPI EQU 33 00410 CONSTE EQU 34 00420 NUMBER EQU 35 00430 LPAREN EQU 36 00440 RPAREN EQU 37 00450 DIFFER EQU 38 00460 ABS EQU 39 00470 ;'a' through 'z' is stored in ASCII literally 00480 ALOKAT EQU 7002H ;ALOKAT VECTOR 00490 LINK1 EQU 7005H ;LINK1 VECTOR 00500 ; 00510 ; 00520 ;PATCH "REDUCE" TO "DIFFV2" AND EXECUTE 00530 ; 00540 BEGIN LD HL,SMPLFY 00550 LD (700FH),HL ;CHANGE JP VECTORS 00560 LD HL,ENDMEM 00570 LD (7009H),HL 00580 JP 7000H 00590 ; 00600 ;-------------------------------------------------------- 00610 ; 00620 ;TEST IF CELL (IX) IS A NUMBER. SET CARRY IF TRUE. 00630 ; 00640 NUMBR PUSH BC ;SAVE A BUT NOT FLAGS 00650 LD B,A 00660 LD A,(IX) 00670 CP NUMBER 00680 JR Z,NMBR1 00690 OR A ;CARRY=0 00700 JR NMBR2 00710 NMBR1 SCF 00720 NMBR2 LD A,B 00730 POP BC 00740 RET 00750 ; 00760 ;-------------------------------------------------------- 00770 ; 00780 ;SET CARRY FLAG IF CELL (IX) IS ZERO. 00790 ; 00800 TEST0 CALL NUMBR ;RIGHT TYPE? 00810 RET NC 00820 PUSH BC 00830 LD B,A 00840 LD A,(IX+4) ;GET EXPONENT 00850 CP 1 00860 LD A,B 00870 POP BC 00880 RET 00890 ; 00900 ;-------------------------------------------------------- 00910 ; 00920 ;SET CARRY FLAG IF CELL (IX) EQUALS ONE. 00930 ; 00940 TEST1 CALL NUMBR 00950 RET NC 00960 PUSH BC 00970 LD B,A 00980 XOR A ;MANTISSA=.5? 00990 OR (IX+1) 01000 OR (IX+2) 01010 OR (IX+3) 01020 JR NZ,TEST1A 01030 LD A,(IX+4) ;EXPONENT= *2? 01040 CP 129 01050 JR NZ,TEST1A 01060 SCF 01070 JR TEST1B 01080 TEST1A OR A ;CARRY=0 01090 TEST1B LD A,B 01100 POP BC 01110 RET 01120 ; 01130 ;-------------------------------------------------------- 01140 ; 01150 ;MOVE 5 BYTES FROM (IX) TO (IY) 01160 ; 01170 MOVEXY PUSH AF 01180 LD A,(IX) 01190 LD (IY),A 01200 LD A,(IX+1) 01210 LD (IY+1),A 01220 LD A,(IX+2) 01230 LD (IY+2),A 01240 LD A,(IX+3) 01250 LD (IY+3),A 01260 LD A,(IX+4) 01270 LD (IY+4),A 01280 POP AF 01290 RET 01300 ; 01310 ;-------------------------------------------------------- 01320 ; 01330 ;MOVE THE NUMBER IN IY TO FPA1 01340 ; 01350 MOVEYF PUSH AF 01360 LD A,4 01370 LD (40AFH),A 01380 LD A,(IY+1) 01390 LD (4121H),A 01400 LD A,(IY+2) 01410 LD (4122H),A 01420 LD A,(IY+3) 01430 LD (4123H),A 01440 LD A,(IY+4) 01450 LD (4124H),A 01460 POP AF 01470 RET 01480 ; 01490 ;-------------------------------------------------------- 01500 ; 01510 ;MOVE THE NUMBER FROM FPA1 TO (IY) 01520 ; 01530 MOVEFY PUSH AF 01540 LD A,(4121H) 01550 LD (IY+1),A 01560 LD A,(4122H) 01570 LD (IY+2),A 01580 LD A,(4123H) 01590 LD (IY+3),A 01600 LD A,(4124H) 01610 LD (IY+4),A 01620 POP AF 01630 RET 01640 ; 01650 ;-------------------------------------------------------- 01660 ; 01670 ;SIMPLIFY THE TREE REPETITIVELY UNTIL NO CHANGES OCCUR. 01680 ; 01690 SMPLFY PUSH AF 01700 AGAIN XOR A 01710 LD (CHANGE),A ;0=NO CHANGES 01720 CALL REDUCE 01730 LD A,(CHANGE) 01740 OR A 01750 JR NZ,AGAIN 01760 POP AF 01770 RET 01780 ; 01790 ;-------------------------------------------------------- 01800 ; 01810 ; DO THE REDUCTIONS 01820 ; 01830 REDUCE PUSH IY 01840 PUSH IX 01850 PUSH HL 01860 PUSH DE 01870 PUSH BC 01880 PUSH AF 01890 ; 01900 LD A,(IY) ;GET CELL TYPE 01910 CP DIFFER 01920 JP Z,SMPEND 01930 CP CONPI 01940 JP Z,SMPEND 01950 CP CONSTE 01960 JP Z,SMPEND 01970 CP 'a' 01980 JP NC,SMPEND 01990 ; 02000 CP NUMBER ;-u = -(u)? 02010 JP Z,SMPEND ;FOR NOW 02020 JR SIMP1 02030 CALL MOVEYF ;(IY) TO FPA1 02040 CALL 955H ;+,0, OR - ? 02050 JP P,SMPEND 02060 JP Z,SMPEND 02070 CALL 977H ;TAKE ABS(a) 02080 PUSH IY 02090 CALL ALOKAT 02100 CALL MOVEFY ;FPA1 TO (IY) 02110 PUSH IY 02120 POP IX 02130 POP IY 02140 LD (IY),NEGATE 02150 CALL LINK1 ;MAKE -(u) 02160 JP SMPEND 02170 ; 02180 SIMP1 CP POWER+1 ;FUNCTION? 02190 JP C,SIMP2A 02200 LD L,(IY+1) ;GET ARGUMENT 02210 LD H,(IY+2) 02220 PUSH IY 02230 PUSH HL 02240 POP IY 02250 CALL REDUCE ;SIMPLIFY THE ARGUMENT 02260 POP IY 02270 PUSH HL 02280 POP IX 02290 CP NEGATE ;CHECK FOR -(-(u)) 02300 JR NZ,SIMP0 02310 CP (IX) 02320 JR NZ,SIMP1A 02330 LD L,(IX+1) ;GET u 02340 LD H,(IX+2) 02350 PUSH HL 02360 POP IX 02370 CALL MOVEXY 02380 JP SMPDUN 02390 ; 02400 SIMP1A LD A,(IX) 02410 CP MINUS ;-(u-v)=(v-u)? 02420 JR NZ,SIMP0 02430 LD (IY),MINUS 02440 LD A,(IX+1) 02450 LD (IY+3),A 02460 LD A,(IX+2) 02470 LD (IY+4),A 02480 LD A,(IX+3) 02490 LD (IY+1),A 02500 LD A,(IX+4) 02510 LD (IY+2),A 02520 JP SMPDUN 02530 ; 02540 ;CHECK FOR ODD OR EVEN FUNCTIONS 02550 SIMP0 LD A,(IY) ;GET FUNCTION 02560 CP ABS 02570 JR Z,EVEN 02580 CP COS 02590 JR Z,EVEN 02600 CP COSH 02610 JR Z,EVEN 02620 CP SEC 02630 JR Z,EVEN 02640 CP SECH 02650 JR NZ,CKODD 02660 ; 02670 EVEN LD A,(IX) 02680 CP NEGATE 02690 JP NZ,SMPEND 02700 LD A,(IX+1) ;MAKE f(-u) INTO f(u) 02710 LD (IY+1),A 02720 LD A,(IX+2) 02730 LD (IY+2),A 02740 JP SMPDUN 02750 ; 02760 ; 02770 CKODD CP LOG ;CHECK FOR NON-ODD FUNCTIONS 02780 JR NZ,ODD2 02790 LD A,(IX) ;LN(EXP(u))=u? 02800 CP EXP 02810 JR NZ,ODD1 02820 LD L,(IX+1) 02830 LD H,(IX+2) 02840 PUSH HL 02850 POP IX 02860 CALL MOVEXY 02870 JP SMPDUN 02880 ; 02890 ODD1 CP POWER ;LN(u**v)=LN(u)*v? 02900 JP NZ,SMPEND 02910 LD (IY),MULT 02920 LD (IX),LOG 02930 LD A,(IX+3) 02940 LD (IY+3),A 02950 LD A,(IX+4) 02960 LD (IY+4),A 02970 JP SMPDUN 02980 ; 02990 ODD2 CP EXP 03000 JR NZ,ODD3 03010 LD A,(IX) ;EXP(LN(u))=u? 03020 CP LOG 03030 JP NZ,SMPEND 03040 LD L,(IX+1) 03050 LD H,(IX+2) 03060 PUSH HL 03070 POP IX 03080 CALL MOVEXY 03090 JP SMPDUN 03100 ; 03110 ODD3 CP ICOSH 03120 JP Z,SMPEND 03130 CP ISECH 03140 JP Z,SMPEND 03150 CP ICOS 03160 JP Z,SMPEND 03170 LD B,A 03180 LD A,(IX) 03190 CP NEGATE 03200 JP NZ,SMPEND 03210 LD A,B 03220 LD (IX),A ;MAKE -f(u) FROM f(-u) 03230 LD (IY),NEGATE 03240 JP SMPDUN 03250 ; 03260 ; 03270 SIMP2A LD E,(IY+1) 03280 LD D,(IY+2) 03290 LD L,(IY+3) 03300 LD H,(IY+4) 03310 PUSH IY 03320 PUSH DE 03330 POP IY 03340 CALL REDUCE 03350 PUSH HL 03360 POP IY 03370 CALL REDUCE 03380 POP IY 03390 ; 03400 ;CHECK IF BOTH ARE NUMBERS 03410 PUSH DE 03420 POP IX 03430 CALL NUMBR 03440 JR NC,SIMP2 03450 PUSH HL 03460 POP IX 03470 CALL NUMBR 03480 JR NC,SIMP2 03490 PUSH IY ;PERFORM THE OPERATION: 03500 CP POWER ;EXPONENTIATION? 03510 JR NZ,ROM1 03520 POP IY ;DISABLE THIS ROUTINE 03530 JP SMPEND ;... ON THESE TWO LINES 03540 LD IX,RETURN 03550 PUSH IX ;ARTIFICIAL CALL 03560 PUSH DE 03570 POP IY 03580 CALL MOVEYF 03590 CALL 9A4H ;TO STACK 03600 PUSH HL 03610 POP IY 03620 CALL MOVEYF 03630 JP 13F2H ;EXPONENTIATE 03640 ; 03650 ROM1 PUSH HL 03660 POP IY 03670 CALL MOVEYF 03680 PUSH DE 03690 POP IX 03700 LD E,(IX+1) ;LOAD RFPA 03710 LD D,(IX+2) 03720 LD C,(IX+3) 03730 LD B,(IX+4) 03740 LD HL,716H ;ADDITION? 03750 CP PLUS 03760 JR Z,DOCALL 03770 LD HL,713H ;SUBTRACTION? 03780 CP MINUS 03790 JR Z,DOCALL 03800 LD HL,847H ;MULTIPLICATION? 03810 CP MULT 03820 JR Z,DOCALL 03830 POP IY ;DISABLE THE DIVISION 03840 JP SMPEND ;... ON THESE TWO LINES 03850 ; 03860 DOCALL LD IX,RETURN 03870 PUSH IX 03880 JP (HL) 03890 ; 03900 RETURN POP IY ;IY--> ORIGINAL CELL 03910 LD (IY),NUMBER 03920 CALL MOVEFY 03930 JP SMPDUN 03940 ; 03950 ; 03960 SIMP2 CP PLUS ;ADDITION IDENTITIES? 03970 JP NZ,SIMP8 03980 PUSH DE 03990 POP IX 04000 CALL TEST0 ;0+v=v? 04010 JR NC,SIMP3 04020 PUSH HL 04030 POP IX 04040 CALL MOVEXY 04050 JP SMPDUN 04060 ; 04070 SIMP3 PUSH HL ;u+0=u? 04080 POP IX 04090 CALL TEST0 04100 JR NC,SIMP4 04110 PUSH DE 04120 POP IX 04130 CALL MOVEXY 04140 JP SMPDUN 04150 ; 04160 SIMP4 PUSH DE ;-(u)+(-(v))=-(u+v)? 04170 POP IX 04180 LD A,(IX) 04190 CP NEGATE 04200 JR NZ,SIMP6 04210 PUSH HL 04220 POP IX 04230 CP (IX) 04240 JR NZ,SIMP5 04250 LD (IY),NEGATE 04260 PUSH DE 04270 POP IX 04280 LD (IX),PLUS 04290 PUSH HL 04300 POP IY 04310 LD A,(IY+1) 04320 LD (IX+3),A 04330 LD A,(IY+2) 04340 LD (IX+4),A 04350 JP SMPDUN 04360 ; 04370 SIMP5 LD (IY),MINUS ;-(u)+v=v-u 04380 LD (IY+1),L 04390 LD (IY+2),H 04400 PUSH DE 04410 POP IX 04420 LD A,(IX+1) 04430 LD (IY+3),A 04440 LD A,(IX+2) 04450 LD (IY+4),A 04460 JP SMPDUN 04470 ; 04480 SIMP6 PUSH HL ;u+(-v)=u-v? 04490 POP IX 04500 LD A,(IX) 04510 CP NEGATE 04520 JR NZ,SIMP7 04530 LD (IY),MINUS 04540 LD A,(IX+1) 04550 LD (IY+3),A 04560 LD A,(IX+2) 04570 LD (IY+4),A 04580 JP SMPDUN 04590 SIMP7 JP SMPEND 04600 ; 04610 ; 04620 SIMP8 CP MINUS ;SUBTRACTION IDENTITIES? 04630 JP NZ,SIMP14 04640 PUSH DE ;-(u)-(-(v))=v-u? 04650 POP IX 04660 LD A,(IX) 04670 CP NEGATE 04680 JR NZ,SIMP10 04690 PUSH HL 04700 POP IX 04710 CP (IX) 04720 JR NZ,SIMP9 04730 LD A,(IX+1) 04740 LD (IY+1),A 04750 LD A,(IX+2) 04760 LD (IY+2),A 04770 PUSH DE 04780 POP IX 04790 LD A,(IX+1) 04800 LD (IY+3),A 04810 LD A,(IX+2) 04820 LD (IY+4),A 04830 JP SMPDUN 04840 ; 04850 SIMP9 LD (IY),NEGATE ;-(u)-v=-(u+v) 04860 PUSH DE 04870 POP IX 04880 LD (IX),PLUS 04890 LD (IX+3),L 04900 LD (IX+4),H 04910 JP SMPDUN 04920 ; 04930 SIMP10 PUSH HL ;u-(-(v))=u+v 04940 POP IX 04950 LD A,(IX) 04960 CP NEGATE 04970 JR NZ,SMP10A 04980 LD (IY),PLUS 04990 LD A,(IX+1) 05000 LD (IY+3),A 05010 LD A,(IX+2) 05020 LD (IY+4),A 05030 JP SMPDUN 05040 ; 05050 SMP10A CALL TEST0 ;u-0=u? 05060 JR NC,SIMP11 05070 PUSH DE 05080 POP IX 05090 CALL MOVEXY 05100 JP SMPDUN 05110 ; 05120 SIMP11 CP MINUS ;u-(v-w)=u+(w-v)? 05130 JR NZ,SIMP12 05140 LD (IY),PLUS 05150 LD E,(IX+1) 05160 LD D,(IX+2) 05170 LD A,(IX+3) 05180 LD (IX+1),A 05190 LD A,(IX+4) 05200 LD (IX+2),A 05210 LD (IX+3),E 05220 LD (IX+4),D 05230 JP SMPDUN 05240 ; 05250 SIMP12 PUSH DE ;0-v=-(v)? 05260 POP IX 05270 CALL TEST0 05280 JR NC,SIMP13 05290 LD (IY),NEGATE 05300 LD (IY+1),L 05310 LD (IY+2),H 05320 JP SMPDUN 05330 SIMP13 JP SMPEND 05340 ; 05350 ; 05360 SIMP14 CP MULT ;MULTIPLICATION IDENTITIES? 05370 JP NZ,SIMP22 05380 PUSH DE 05390 POP IX ;0*v=0? 05400 CALL TEST0 05410 JR NC,SIMP15 05420 CALL MOVEXY 05430 JP SMPDUN 05440 ; 05450 SIMP15 PUSH HL ;u*0=0? 05460 POP IX 05470 CALL TEST0 05480 JR NC,SIMP16 05490 CALL MOVEXY 05500 JP SMPDUN 05510 ; 05520 SIMP16 CALL TEST1 ;u*1=u? 05530 JR NC,SIMP17 05540 PUSH DE 05550 POP IX 05560 CALL MOVEXY 05570 JP SMPDUN 05580 ; 05590 SIMP17 PUSH DE ;1*v=v? 05600 POP IX 05610 CALL TEST1 05620 JR NZ,SIMP18 05630 PUSH HL 05640 POP IX 05650 CALL MOVEXY 05660 JP SMPDUN 05670 ; 05680 SIMP18 LD A,(IX) ;(-u)*(-v)=u*v? 05690 CP NEGATE 05700 JR NZ,SIMP20 05710 PUSH HL 05720 POP IX 05730 CP (IX) 05740 JR NZ,SIMP19 05750 LD A,(IX+1) 05760 LD (IY+3),A 05770 LD A,(IX+2) 05780 LD (IY+4),A 05790 PUSH DE 05800 POP IX 05810 LD A,(IX+1) 05820 LD (IY+1),A 05830 LD A,(IX+2) 05840 LD (IY+2),A 05850 JP SMPDUN 05860 ; 05870 SIMP19 PUSH DE ;(-u)*v=-(u*v) 05880 POP IX 05890 LD (IX),MULT 05900 LD (IX+3),L 05910 LD (IX+4),H 05920 LD (IY),NEGATE 05930 JP SMPDUN 05940 ; 05950 SIMP20 PUSH HL ;u*(-v)=-(u*v)? 05960 POP IX 05970 LD A,(IX) 05980 CP NEGATE 05990 JR NZ,SIMP21 06000 LD (IX),MULT 06010 LD (IX+3),E 06020 LD (IX+4),D 06030 LD (IY),NEGATE 06040 LD (IY+1),L 06050 LD (IY+2),H 06060 JP SMPDUN 06070 SIMP21 JP SMPEND 06080 ; 06090 ; 06100 SIMP22 CP DIVIDE ;DIVISION IDENTITIES? 06110 JP NZ,SIMP29 06120 PUSH DE ;0/v=0? 06130 POP IX 06140 CALL TEST0 06150 JR NC,SIMP23 06160 CALL MOVEXY 06170 JP SMPDUN 06180 ; 06190 SIMP23 PUSH HL ;u/1=u? 06200 POP IX 06210 CALL TEST1 06220 JR NC,SIMP24 06230 PUSH DE 06240 POP IX 06250 CALL MOVEXY 06260 JP SMPDUN 06270 ; 06280 SIMP24 LD A,(IX) ;(-u)/(-v)=u/v? 06290 CP NEGATE 06300 JR NZ,SIMP26 06310 PUSH DE 06320 POP IX 06330 CP (IX) 06340 JR NZ,SIMP25 06350 LD A,(IX+1) 06360 LD (IY+1),A 06370 LD A,(IX+2) 06380 LD (IY+2),A 06390 PUSH HL 06400 POP IX 06410 LD A,(IX+1) 06420 LD (IY+3),A 06430 LD A,(IX+2) 06440 LD (IY+4),A 06450 JP SMPDUN 06460 ; 06470 SIMP25 LD (IY),NEGATE ;u/(-v)=-(u/v) 06480 PUSH HL 06490 POP IX 06500 LD (IY+1),L 06510 LD (IY+2),H 06520 LD (IX),DIVIDE 06530 LD A,(IX+1) 06540 LD (IX+3),A 06550 LD A,(IX+2) 06560 LD (IX+4),A 06570 LD (IX+1),E 06580 LD (IX+2),D 06590 JP SMPDUN 06600 ; 06610 SIMP26 PUSH DE ;(-u)/v=-(u/v)? 06620 POP IX 06630 LD A,(IX) 06640 CP NEGATE 06650 JR NZ,SIMP27 06660 LD (IY),NEGATE 06670 LD (IX),DIVIDE 06680 LD (IX+3),L 06690 LD (IX+4),H 06700 JP SMPDUN 06710 ; 06720 SIMP27 LD A,(HL) ;u/(v/w)=(u*w)/v? 06730 CP DIVIDE 06740 JR NZ,SMP28A 06750 PUSH HL 06760 POP IX 06770 LD A,(IX+1) 06780 LD (IY+3),A 06790 LD A,(IX+2) 06800 LD (IY+4),A 06810 LD (IX),MULT 06820 LD (IX+1),E 06830 LD (IX+2),D 06840 LD (IY+1),L 06850 LD (IY+2),H 06860 JP SMPDUN 06870 ; 06880 SMP28A LD A,(DE) ;(u/v)/w=u/(w*v)? 06890 CP DIVIDE 06900 JR NZ,SIMP28 06910 PUSH DE 06920 POP IX 06930 LD (IX),MULT 06940 LD (IY+3),E 06950 LD (IY+4),D 06960 LD A,(IX+1) 06970 LD (IY+1),A 06980 LD A,(IX+2) 06990 LD (IY+2),A 07000 LD (IX+1),L 07010 LD (IX+2),H 07020 JP SMPDUN 07030 SIMP28 JP SMPEND 07040 ; 07050 ; 07060 SIMP29 PUSH HL ;EXPONENTIATION IDENTITIES 07070 POP IX 07080 CALL TEST1 ;u**1=u? 07090 JR NC,SIMP30 07100 PUSH DE 07110 POP IX 07120 CALL MOVEXY 07130 JP SMPDUN 07140 ; 07150 SIMP30 CALL TEST0 ;u**0=1? 07160 JR NC,SIMP31 07170 LD (IY),NUMBER 07180 LD (IY+1),0 07190 LD (IY+2),0 07200 LD (IY+3),0 07210 LD (IY+4),129 ;(IY)= 1.0 07220 JP SMPDUN 07230 ; 07240 SIMP31 PUSH DE ;1**v=1 07250 POP IX 07260 CALL TEST1 07270 JR NC,SIMP32 07280 CALL MOVEXY 07290 JP SMPDUN 07300 ; 07310 SIMP32 CALL TEST0 ;0**v=0? 07320 JR NC,SIMP33 07330 CALL MOVEXY 07340 JP SMPDUN 07350 ; 07360 SIMP33 LD A,(DE) ;(u**v)**w=u**(w*v)? 07370 CP POWER 07380 JR NZ,SIMP34 07390 PUSH DE 07400 POP IX 07410 LD (IX),MULT 07420 LD A,(IX+1) 07430 LD (IY+1),A 07440 LD A,(IX+2) 07450 LD (IY+2),A 07460 LD (IY+3),E 07470 LD (IY+4),D 07480 LD (IX+1),L 07490 LD (IX+2),H 07500 JP SMPDUN 07510 ; 07520 SIMP34 JP SMPEND 07530 ; 07540 ; 07550 SMPDUN LD A,1 ;INDICATE THAT A CHANGE WAS MADE 07560 LD (CHANGE),A 07570 ; 07580 SMPEND POP AF 07590 POP BC 07600 POP DE 07610 POP HL 07620 POP IX 07630 POP IY 07640 RET 07650 ; 07660 ;-------------------------------------------------------- 07670 ; 07680 CHANGE DEFB 0 ;=1 IF CHANGE WAS MADE 07690 ENDMEM EQU $ 07700 END BEGIN ;FOR NOW