10 SCREEN,0:CLEAR1000:ONERRORGOTO960 20 DIME$(100,1),T(100) 30 CR$=CHR$(13):BS$=CHR$(8):LF$=CHR$(29):RF$=CHR$(28):UP$=CHR$(30):DN$=CHR$(31):M$="0 40 CLS:PRINT" MEMORY CALCULATOR":GOSUB810:GOTO60 50 CLS 60 E=1:T=0 70 FORX=0TO99:E$(X,0)="":E$(X,1)="":NEXT 80 DP=0:C=0:N$="" 90 V=CSRLIN:H=POS(0) 100 IFE=100THENGOSUB860:PRINT"Cannot accept more":LOCATE 21,1:PRINT"than 99 Entries.":LOCATEH,V:GOTO120 110 GOSUB460:PRINTLF$":"TAB(8)SPACE$(10)STRING$(10,LF$);:GOSUB380 120 V=CSRLIN:H=POS(0):GOSUB430:IFX=9THENGOSUB880ELSEIFX=27THENGOSUB920 130 IFX$="?"ORX$="H"THENGOSUB810ELSEIFZ=1THENGOSUB840:IFE=100GOTO100 140 IFX$="P"THENGOSUB740:IFE>1GOTO80 150 IFX$="B"ANDE$(E,0)<>""THEN580 160 IFX$=UP$ANDE>1THENE=E-1:GOSUB510:GOTO80 170 IFX$=DN$ANDE$(E,1)<>""THENX$=E$(E,1):GOTO250 180 IFX$="T"ANDE>1THENE=1:CLS:PRINTCR$;:GOTO80 190 IFE=100THEN120 200 IFX>47ANDX<58THENGOSUB490:GOTO120 210 IFX$="."ANDDP=0THENDP=-1:GOSUB490:GOTO120 220 IFX$=CR$ORX$=";"THENX$="+ 230 IFX$=":"THENX$="* 240 IFX$="@"THENX$="^ 250 IFX$="+"ORX$="-"ORX$="/"ORX$="*"ORX$="^"THEN350 260 IFX$="R"ANDC=0THENX$=M$:C=C+LEN(M$)-1:GOSUB490:GOTO120 270 IFX$="C"THENGOSUB510:E$(E,0)="":E$(E,1)="":GOTO80 280 IFX$<>"M"THEN310 290 M$=N$:IFC=0THEN M$=RIGHT$(STR$(T(E-1)),LEN(STR$(T(E-1)))-1) 300 GOSUB510:PRINT" Memory "M$:GOTO80 310 IF(X$=BS$ORX$=LF$)ANDC>0THENGOSUB520:C=C-1:GOTO330 320 GOTO120 330 IFRIGHT$(N$,1)="."THENDP=0 340 N$=LEFT$(N$,LEN(N$)-1):GOTO120 350 IFC=0ANDE=1THEN120 360 IFC=0THENN$=E$(E-1,0):PRINTN$; 370 GOTO530 380 IFE$(E,0)=""THENRETURN 390 N$=E$(E,0):C=LEN(N$):IFE>1THENPRINTLF$LF$E$(E,1)" "; 400 PRINTN$;:RETURN 410 PRINTCR$STRING$(6,RF$)S$:RETURN 420 V=CSRLIN:LOCATE5,V-1:PRINT"Error": BEEP:FORI=1TO1400:NEXT:LOCATE5,V-1:PRINTSPACE$(14):LOCATE0,V-1:RETURN 430 X$=INKEY$:IFX$=""THEN430 440 X=ASC(X$):IFX>96ANDX<132THENX=X-32:X$=CHR$(X) 450 RETURN 460 IFE<10THENPRINT" "E;ELSEPRINTE; 470 RETURN 480 PRINTX$;:N$=N$+X$:RETURN 490 IFC<10THENC=C+1:GOSUB480 500 RETURN 510 PRINTCR$;SPACE$(32)CR$;:RETURN 520 PRINTLF$" "LF$;:RETURN 530 N=VAL(N$):S$=X$:IFN=0ANDS$="/"THENGOSUB410:GOSUB420:GOTO80 540 E$(E,0)=N$:E$(E,1)=S$ 550 IFE=1THENT(E)=N:E=E+1:PRINT:GOTO80 560 GOSUB410 570 GOSUB660:GOSUB720:GOTO80 580 IFN$<>E$(E,0)THENE$(E,0)=N$:IFE=1THENT(E)=VAL(N$) 590 GOSUB855:PRINT:PRINTTAB(5)"Wait...";:IFE=1THENE=2 600 N$=E$(E,O):IFN$=""THEN630 610 N=VAL(N$):S$=E$(E,1):GOSUB660:E=E+1:IFE<=100THEN600 620 GOTO100 630 IFE>1THENE=E-1:PRINTCR$UP$:GOSUB460:PRINTLF$":"TAB(5)"Recalculated":GOSUB720 640 IFE=100THENGOSUB855:GOSUB870 650 GOTO80 660 IFS$="+"THENT(E)=T(E-1)+N:RETURN 670 IFS$="-"THENT(E)=T(E-1)-N:RETURN 680 IFS$="*"THENT(E)=T(E-1)*N:RETURN 690 IFS$="/"THENT(E)=T(E-1)/N:RETURN 700 IFS$="^"THENT(E)=T(E-1)^N:RETURN 710 RETURN 720 PRINTTAB(5)CHR$(27)"p ="T(E)CHR$(27)"q 730 E=E+1:RETURN 740 IFE=1THENRETURN 750 GOSUB860:PRINT"Printing...":LOCATE21,6:PRINT"if no":LOCATE21,7:PRINT"printer response.";:LPRINT:LPRINT 760 FORQ=1TOE-1 770 IFQ<10THENLPRINTQ": ";ELSELPRINTQ": "; 780 LPRINTE$(Q,1)" "E$(Q,0) 790 IFQ>1THENLPRINT" ="T(Q) 800 NEXTQ:LPRINT:LPRINT:FORI=1TO1000:NEXT:LOCATE21,7:PRINTSPACE$(10);:GOSUB855:RETURN 810 Z=1:GOSUB860:PRINT"/elp menu":LOCATE21,1:PRINT"<+or><-><*><^>":LOCATE21,2:PRINT"lear entry":LOCATE21,3:PRINT"-clear all 820 LOCATE21,4:PRINT"<^>-back -frwd":LOCATE21,5:PRINT"op ottom":LOCATE21,6:PRINT"emory ecall":LOCATE21,7:PRINT"

rint -exit"; 830 LOCATEH,V:RETURN 840 Z=0:GOSUB860:GOSUB870:LOCATE21,1:GOSUB870:LOCATE21,2:GOSUB870:LOCATE21,3:GOSUB870:LOCATE21,4:GOSUB870:LOCATE21,5:GOSUB870:LOCATE21,6:GOSUB870:LOCATE21,7:GOSUB870 850 LOCATEH,V:RETURN 855 LOCATE0,V:RETURN 860 LOCATE21,0:RETURN 870 PRINTSPACE$(18);:RETURN 880 GOSUB840:GOSUB860:PRINT"Clear all? 890 GOSUB430:IFX=89GOTO910 900 GOSUB860:GOSUB870:LOCATEH,V:RETURN 910 GOSUB860:GOSUB870:GOTO50 920 GOSUB840:GOSUB860:PRINT"Exit? 930 GOSUB430:IFX=89THENCLEAR256,-3200ELSEGOTO950 940 MENU:RETURN 950 GOSUB860:GOSUB870:LOCATEH,V:RETURN 960 IFERR=24THENBEEP:GOSUB840:GOSUB860:PRINT"Printer not ready.":FORI=1TO2000:NEXT:GOSUB860:GOSUB870:GOSUB855:RESUME80