10DIM P$(50)*10,LA$(10)*1,LA(10),V(4),L$(0)*26,V$(26)*1,LV(26)
50GOSUB "ROM"
90L$(0)="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
110FOR I=0TO 25:V$(I+1)=MID$ (L$(0),I+1,1):LV(I+1)=8*I:NEXT I
150END
200"V":N=0
210CLS :WAIT 0:PRINT N;"";:INPUT P$(N):IF P$(N)=" END"OR N=50END
250N=N+1:GOTO 210
300"B":M=0:WAIT 0:PRINT "List"
310IF INKEY$ ="P"AND M>0LET M=M-1:GOSUB 390:GOTO 310
320IF INKEY$ ="L"AND M<NLET M=M+1:GOSUB 390:GOTO 320
330IF INKEY$ ="Q"END
340IF INKEY$ ="D"INPUT P$(M):IF P$(M)=" END"OR M>49END
350GOTO 310
390PRINT USING "####";M;P$(M):RETURN
800"C":P=&40C5:J=0:WAIT 0
900W=P:FOR I=0TO N-1
910P$=P$(I):Z$=LEFT$ (P$,1):Y$=MID$ (P$,3,1)
920IF Z$="&"GOTO 990
930Q=3*(Y$="O")+33*(Y$="F")+1*(Y$="E")+(Y$="T")+3*(Y$="S")
940Q=Q+(Y$="=")*(23*(LEN P$=4)+29*(LEN P$=6))
944Q=Q+(Y$="L")*3+(MID$ (P$,2,1)="W")*7+(Y$="R")*7
950IF Z$<>" "LET J=J+1:LA$(J)=Z$:LA(J)=W
960W=W+Q
990NEXT I:PRINT W-P;" Bytes. Lines:";:IF W>19900STOP
1010FOR I=0TO N:CURSOR 17:PRINT USING ;I;" /";N:P$=P$(I)
1020Z$=LEFT$ (P$,1):IF Z$="&"GOTO 2000
1030D=LEN P$
1040IF MID$ (P$,3,1)="="AND D=4GOSUB "=4":GOTO 2000
1050IF MID$ (P$,3,1)="="AND D=6GOSUB "=6":GOTO 2000
1060IF MID$ (P$,2,2)="GO"AND D=4GOSUB "GO":GOTO 2000
1070IF MID$ (P$,2,2)="IF"AND D=9GOSUB "IF":GOTO 2000
1080IF MID$ (P$,2,4)="STOP"AND D=5GOSUB "STOP":GOTO 2000
1090IF MID$ (P$,2,3)="RET"AND D=4GOSUB "STOP":GOTO 2000
1095IF MID$ (P$,2,3)="CLS"AND D=4GOSUB "CLS":GOTO 2000
1097IF MID$ (P$,2,2)="WE"AND D=3GOSUB "WE":GOTO 2000
1098IF MID$ (P$,2,2)="PR"AND D=4GOSUB "PR":GOTO 2000
1100IF MID$ (P$,2,2)="GS"AND D=4GOSUB "GO":GOTO 2000
1110IF MID$ (P$,2,3)="END"AND D=4END
1500END
2000NEXT I:END
3000"=4":X=0:Y=0:Y$=MID$ (P$,4,1):X$=MID$ (P$,2,1)
3050FOR K=1TO 26
3100IF V$(K)=X$LET X=LV(K)
3110IF V$(K)=Y$LET Y=LV(K)
3200NEXT K
3500POKE P,&B5,&79,&AE,&38,&D2,&B5,X,&AE,&38,&D3,&B5,&79,&AE,&38,&D0,&B5,Y
3510POKE P+17,&AE,&38,&D1,&BE,&3A,&98
3600P=P+23:RETURN
4000"=6":X=0:Y=0:Z=0:X$=MID$ (P$,2,1):Y$=MID$ (P$,4,1):Z$=MID$ (P$,6,1) 
4010W$=MID$ (P$,5,1)
4200FOR K=1TO 26
4210IF V$(K)=X$LET X=LV(K)
4220IF V$(K)=Y$LET Y=LV(K)
4230IF V$(K)=Z$LET Z=LV(K)
4300NEXT K
4400IF W$="+"LET F=&3A,G=&BA
4401IF W$="-"LET F=&3A,G=&F3
4402IF W$="*"LET F=&3A,G=&FD
4403IF W$="/"LET F=&3B,G=&07
4404IF W$="?"LET F=&3B,G=&11:REM "?" IS THE SYMBOL OF SQUARE ROOT NOT ?
4405IF W$="I"LET F=&3B,G=&1B
4406IF W$="L"LET F=&3B,G=&67: REM LOG, SIN, COS, TAN, ABS
4407IF W$="S"LET F=&3B,G=&77
4408IF W$="C"LET F=&3B,G=&87
4409IF W$="T"LET F=&3B,G=&97
4410IF W$="A"LET F=&3B,G=&A7
4500POKE P,&B5,&79,&AE,&38,&D0,&AE,&38,&D2,&AE,&38,&D4
4510POKE P+11,&B5,Z,&AE,&38,&D1,&B5,Y,&AE,&38,&D3,&B5,X,&AE,&38,&D5,&BE,F,G
4600P=P+29:RETURN
5000"GO":X=0:X$=RIGHT$ (P$,1)
5010FOR H=1TO J
5020IF LA$(H)=X$LET X=LA(H)
5040NEXT H:IF X=0CLS :WAIT :PRINT "Label not found: ";X$:END
5100Q=X:GOSUB "N"
5150U=&BA*(P$="GO")+&BE*(P$="GS")
5200POKE P,U,Y,Z
5600P=P+3:RETURN
6000"IF":F=0:G=0:W=0
6010X$=MID$ (P$,4,1):Y$=MID$ (P$,6,1):Z$=MID$ (P$,5,1):W$=RIGHT$ (P$,1)
6050FOR K=1TO 26
6060IF V$(K)=X$LET F=LV(K)
6070IF V$(K)=Y$LET G=LV(K)
6100NEXT K
6200IF Z$="="LET ZZ=4
6210IF Z$="<"LET ZZ=1
6220IF Z$=">"LET ZZ=2
6230IF Z$="#"LET ZZ=0
6240IF Z$="("LET ZZ=5
6250IF Z$=")"LET ZZ=6
6300FOR H=1TO J
6310IF LA$(H)=W$LET W=LA(H)
6320NEXT H:IF W=0CLS :WAIT :PRINT "Label not found: ";W$:END
6400Q=W:GOSUB "N"
6500POKE P,&B5,&79,&AE,&38,&D0,&AE,&38,&D2,&B5,F,&AE,&38,&D3,&B5,G,&AE,&38,&D1
6510POKE P+18,&BE,&3A,&C4,&B5,ZZ,&BE,&D0,&D2,&89,2,&8E,3,&BA,Y,Z
6600P=P+33:RETURN
7100"CLS"
7110POKE P,&BE,&3B,&27
7120P=P+3
7130RETURN
7200"WE"
7210POKE P,&BE,&E4,&2C,&B7,&0D,&99,&07
7220P=P+7
7230RETURN
7300"PR"
7310X=0:X$=MID$ (P$,4,1)
7320FOR K=1TO 26
7330IF V$(K)=X$LET X=LV(K)
7340NEXT K
7350POKE P,&48,&79,&4A,X,&BE,&3B,&37
7360P=P+7
7370RETURN
9000"STOP":POKE P,&9A:P=P+1:RETURN
10000"Z":BEEP 1,50,5:CALL 16581:BEEP 1,100,5:END
20000"ROM"
21010POKE &3A98,&A5,&38,&D0,&08,&A5,&38,&D1,&0A,&A5,&38,&D2,&18,&A5,&38,&D3,&1A
21020POKE &3A98+16,&BE,&3A,&AC,&9A
21100REM 8*TIN
21110POKE &3AAC,&F5,&F5,&F5,&F5,&F5,&F5,&F5,&F5,&9A
22000REM =6
22010POKE &3ABA,&BE,&3A,&C4,&BE,&EF,&BA,&BE,&3A,&E3,&9A
22100REM ---
22200POKE &3AC4,&A5,&38,&D0,&08,&A5,&38,&D1,&0A,&58,&7A,&5A,&10,&BE,&3A,&AC
22210POKE &3AC4+15,&A5,&38,&D2,&08,&A5,&38,&D3,&0A,&58,&7A,&5A,&00,&BE,&3A,&AC,&9A
22300POKE &3AE3,&A5,&38,&D4,&18,&A5,&38,&D5,&1A,&48,&7A,&4A,&00,&BE,&3A,&AC,&9A
22400POKE &3AF3,&BE,&3A,&C4,&BE,&EF,&B6,&BE,&3A,&E3,&9A
22500POKE &3AFD,&BE,&3A,&C4,&BE,&F0,&1A,&BE,&3A,&E3,&9A
22600POKE &3B07,&BE,&3A,&C4,&BE,&F0,&84,&BE,&3A,&E3,&9A
22700POKE &3B11,&BE,&3A,&C4,&BE,&F0,&E9,&BE,&3A,&E3,&9A
22800POKE &3B1B,&BE,&3A,&C4,&BE,&F5,&BE,&BE,&3A,&E3,&9A
22900POKE &3B27,&68,&78,&6A,&4D,&FD,&62,&B5,&00,&2E,&88,&05,&6C,&77,&93,&0D,&9A
23000"PRINTS a var 
23010POKE &3B37,&58,&7A,&5A,&00,&BE,&3A,&AC,&B5,&10,&AE,&78,&94,&BE,&D9,&CF,&A5
23020POKE &3B47,&7A,&05,&08,&A5,&7A,&06,&0A,&A5,&7A,&07,&2A,&62,&B5,&9C,&FB,&B1
23030POKE &3B57,&06,&88,&05,&AE,&78,&75,&FD,&6A,&A5,&7A,&07,&BE,&ED,&00,&9A
23031 REM New function LOG, SIN, COS, TAN, ABS
23032POKE &3B67,&BE,&3A,&C4,&BE,&F1,&65,&BE,&3A,&E3,&9A
23033POKE &3B77,&BE,&3A,&C4,&BE,&F3,&A2,&BE,&3A,&E3,&9A
23034POKE &3B87,&BE,&3A,&C4,&BE,&F3,&91,&BE,&3A,&E3,&9A
23035POKE &3B97,&BE,&3A,&C4,&BE,&F3,&9E,&BE,&3A,&E3,&9A
23036POKE &3BA7,&BE,&3A,&C4,&BE,&F5,&97,&BE,&3A,&E3,&9A
30000RETURN
35000"N":V=0
35010V=V+1:R=Q:Q=INT (Q/16):R=R-Q*16:V(V)=R:IF Q>0THEN 35010 
35020Y=V(3)+16*V(4):Z=V(1)+16*V(2):RETURN
