( A29:AQD$"":NZ%0:TNTP:J%,"QUOTE STRING"oTNTN1:HC(TN):G$(HC)HC34D$D$G$:NZ%NZ%1:48100N%,24;C$;:J%,PC,"CLC"N%,144;C$;:J%,PC1,"BCC =+";NZ%1N%,NZ%1;C$;:K1NZ%G$(D$,K,1):HC(G$):N%,HC;C$;:KDN%,0;C$;:J%,PC3,".BY #'";D$;" 0"vPCPC3:PH(PC256):PLPCPH256:PCPCNZ%1N%,160;C$;:N%,PH;C$;:J%,PC,"LDY #";PH;" ;SET POINTERS" N%,169;C$;:N%,PL;C$; J%,PC2,"LDA #";PL;" ;TO QUOTE STRING"!N%,32;C$;:N%,30;C$;:N%,203;C$;IJ%,PC4,"JSR $CB1E ;PRINT STRING"]PCPC7:TPTN:hX :̿TPTP1:CH(TP):CH3249100࿎&(CH64)(CH91)493000J%,:J%,"***ERROR IN LINE ";LI:61000=Z5(CH65)OV:ZH(Z256):ZLZ256ZH:oN%,169;C$;:N%,ZL;C$;:N%,160;C$;:N%,ZH;C$;J%,PC,"LDA #";ZLJ%,PC2,"LDY #";ZHJ%,PC4,"JSR $DBA2 ;VAR ";(CH);" TO PFAC" N%,32;C$;:N%,162;C$;:N%,219;C$;:PCPC7:57,220,"SGN"%204,220,"INT"788,220,"ABS"F0,0,"USR"Y125,211,"FRE"l158,211,"POS"113,223,"SQR"148,224,"RND"234,217,"LOG"237,223,"EXP"97,226,"COS"104,226,"SIN"ƒ177,226,"TAN"ƒ11,227,"ATN"ƒ13,216,"PEEK"(ƒ103,216,"'+'":ƒ83,216,"'-'"Lƒ40,218,"'*'"^ƒ12,219,"'/'"qƒ123,223,"'^'"8X019:ML%(X,0),ML%(X,1),F$(X):XLX0255:LN%(X)32767:X:LI(TP1)256(TP):LI25560000,LN%(LI)PC32767:J%,:J%,"COMPILING LINE";LI@č49100FTċCH0TPTP4:50200: GET NEXT LINE{hċCH58J%,:J%,"':' STATEMENT SEPARATER":50240|ċCH136J%,:J%,"LET ASIGNMENT STATEMENT":58000ċCH153J%,:J%,"PRINT STATEMENT":59000 ċCH133J%,:J%,"INPUT STATEMENT":595008ċCH139J%,:J%,"IF STATEMENT":58500rċ(CH137)(CH141)J%,:J%,"GOTO OR GOSUB STATEMENT"ċ(CH137)(CH141)58700ċCH143J%,:J%,"REM STATEMENT":56500ċCH142N%,96;C$;:PCPC1:J%,:J%,"RETURN STATEMENT"ċCH142J%,PC1,"RTS":50240PċCH128N%,96;C$;:PCPC1:J%,:J%,"END STATEMENT"rċCH128J%,PC1,"RTS":50240ō49190:VLZL:VHZH:B$(CH)ō49100:CH178492000ō49100:(CH179)(CH195)50725DŋCH171J%,:J%,"NEGATION STATEMENT":55600&Xō49190:WLZL:WHZH:V$(CH):ZZZalō49100:(CH0)(CH58)J%,:J%,"SIMPLE ASIGNMENT A=B"{mŋ(CH0)(CH58)58300ŋ(CH170)(CH174)49200ŘJ%,:J%,"SIMPLE ARITHMETIC OPERATION +,-,*,/,^"FUCH155:49100:49190:49400*ŘN%,169;C$;:N%,WL;C$;:N%,160;C$;:N%,WH;C$;:PCPC4\ŘJ%,PC4,"LDA #";WL;" ; SET PTRS TO VARIABLE"ŘJ%,PC2,"LDY #";WH;" ; "V$;" AT";ZZ Ƌ(FU15)(FU17)51080 ƘN%,32;C$;:N%,140;C$;:N%,218;C$;:PCPC3!ƘJ%,PC3,"JSR $DA8C ;VAR ";V$;" TO SFAC":510802%ƘJ%,:J%,"FUNCTION EVALUATION STATEMENT"U8FUCH180:49100:CH4049200n`Ǎ49100:49190:49400tǍ49100:CH4149200ALML%(FU,0):AHML%(FU,1):AD256AHALǘN%,32;C$;:N%,AL;C$;:N%,AH;C$;ǘJ%,PC,"JSR ";AD;" ";F$(FU);" FUNCTION ROUTINE":PCPC3EǘN%,162;C$;:N%,VL;C$;:N%,160;C$;:N%,VH;C$;sǘJ%,PC,"LDX #";VL;" ;LOW PART OF TO-ADDR"ǘJ%,PC2,"LDY #";VH;" ;HIGH TO-ADDR"ǘN%,32;C$;:N%,212;C$;:N%,219;C$;ǘJ%,PC4,"JSR $DBD4 ;STORE RESULTS IN VARIABLE ";B$PCPC7:50240@0ٍ49100:49190:49400:N%,169;C$;:N%,255;C$;c1٘J%,PC,"LDA #$FF NEGATE PFAC"l٘N%,69;C$;:N%,102;C$;:N%,133;C$;:N%,102;C$;mPCPC6:J%,PC4,"EOR $66 SIGN BTYE OF PFAC"n٘J%,PC2,"STA $66 SIGN FLIPPED":51100* ܍49100:CH056500: "REM" LOOP UNTIL END OF LINE5 ܉50260V "LET" ASSIGNMENT STATEMENTq 49100:49190:V$(CH) 49100:VLTP1:CH17849200 49100:(CH58)(CH0)58080 TPVL60J%,"LINE TO LONG!":49200!LVLTP1:WL(L):XLLVL,WL:L*!049000:LVLTP1:XLLVL,32:LW!DN%,24;C$;:N%,144;C$;:N%,5;C$;:PCPC3v!EVL256(46ZQ)(45ZQ)2!FJ%,PC3,"CLC":J%,PC2,"BCC =+5 SKIP OVER DATA"!GJ%,PC,".BY ";!lLVLVL4:N%,(L);C$;:J%,(L);:L"mWH(PC256):WLPC256WH$"VLZL:VHZH:PCPC5:J%,>"N%,162;C$;:N%,4;C$;d"N%,189;C$;:N%,WL;C$;:N%,WH;C$;"J%,PC,"LDX #04 ;SIMPLE ASSIGNMENT""J%,PC2,"LDA ";PC5;",X ;GET VALUE""N%,157;C$;:N%,VL;C$;:N%,VH;C$;:N%,202;C$;#J%,PC5,"STA ";Z;",X ;MOVE TO VARIABLE ";V$-#J%,PC8,"DEX"H#N%,16;C$;:N%,247;C$;r#J%,PC9,"BPL #";PC2;" ;LOOP AGAIN"#PCPC11:50260# "IF" STATEMENT#49100:49190#N%,173;C$;:N%,ZL;C$;:N%,ZH;C$;:N%,240;C$;$J%,PC,"LDA ";(CH);" ;VARIABLE AFTER 'IF'";$J%,PC3,"BEQ =+3 ;SKIP NEXT 3 BYTES"g$N%,3;C$;:PCPC5:49100:CH16749100$(CH137)(CH141)49200$LCH141N%,32;C$;:J%,PC,"JSR $0000";:58760$tN%,76;C$;:J%,PC,"JMP $0000";%GN%(GC,0)PC32766:N%,0;C$;:N%,0;C$;:PCPC3:TL05%49100:(CH48)(CH57)58830O%TL10TLCH48:58800h%J%," ;TO LINE #";TL%GN%(GC,1)TL:GCGC1:50260%w "PRINT" STATEMENT%x49100:(CH0)(CH58)59400%(CH44)(CH59)59000%CH3448000:59000&J%,"PRINT VARIABLE"C&49190:49400:N%,32;C$;:N%,221;C$;:N%,221;C$;n&J%,PC,"JSR $DDDD ; CONVERT TO ASCII"&N%,162;C$;:N%,0;C$;&N%,189;C$;:N%,0;C$;:N%,1;C$;&J%,PC3,"LDX #0 ;LENGTH=0"&J%,PC5,"LDA $0100,X"'N%,240;C$;:N%,6;C$;0'J%,PC8,"BEQ #";PC16;" ;END OF STRING"h'PCPC10:59300:N%,232;C$;:N%,208;C$;:N%,245;C$;'J%,PC,"INX ;LENGTH=LENGTH+1"'J%,PC1,"BNE #";PC8;" ;LOOP AGAIN":PCPC3'N%,169;C$;:N%,32;C$;'J%,PC,"LDA #32 ;BLANK"(PCPC2:59300:590006(N%,32;C$;:N%,210;C$;:N%,255;C$;Y(J%,PC,"JSR $FFD2 ;PRINT ACC"g(PCPC3:(N%,169;C$;:N%,13;C$;:J%,PC,"LDA #$0D ;CRLF":PCPC2( 59300:50260(k "INPUT" STATEMENT(l49100:(CH0)(CH58)50260)(CH44)(CH59)59500!)CH3448000:59500:)J%,"INPUT VARIABLE"\)49190:N%,169;C$;:N%,CH;C$;)J%,PC,"LDA #'";(CH);" ;INPUT VARIABLE")PCPC2:59300)N%,169;C$;:N%,63;C$;:J%,PC,"LDA #$3F ;ASCII '?'")PCPC2:59300*N%,162;C$;:N%,0;C$;**N%,32;C$;:N%,207;C$;:N%,255;C$;I*J%,PC,"LDX #0 ;LENGTH=0"o*J%,PC2,"JSR $FFCF ; INPUT CHR"*N%,157;C$;:N%,32;C$;:N%,2;C$;*N%,232;C$;:N%,201;C$;:N%,13;C$;*J%,PC5,"STA $220,X ;STORE IN BUFFER" +J%,PC8,"INX ;LENGTH=LENGTH+1",+J%,PC9,"CMP #$D ;CRLF ?"H+ N%,208;C$;:N%,245;C$;+ J%,PC11,"BNE #";PC2;" ;LOOP AGAIN":PCPC13:59300+ N%,169;C$;:N%,2;C$;+!N%,133;C$;:N%,35;C$;:N%,169;C$;+"N%,32;C$;:J%,PC,"LDA #$02":J%,PC2,"STA $23"7,#J%,PC4,"LDA #$20":J%,PC6,"STA $22 ;SET PTRS TO INPUT"R,4N%,133;C$;:N%,34;C$;y,5N%,202;C$;:N%,138;C$;:N%,32;C$;,6N%,181;C$;:J%,PC8,"DEX":J%,PC9,"TXA ;LENGTH TO ACC",7J%,PC10,"JSR $D7B5 STRING TO PFAC",pN%,215;C$;:N%,162;C$;#-qN%,ZL;C$;:N%,160;C$;:N%,ZH;C$;N-rJ%,PC13,"LDX ";ZL;" ;PTRS TO STORE "-sJ%,PC15,"LDY ";ZH;" ;INPUT VALUE IN ";(CH)-N%,32;C$;:N%,212;C$;:N%,219;C$;-J%,PC17,"JSR $DBD4 ;STORE PFAC":PCPC20:59500.`J%,:J%,"FIRST PASS FINISHED!!!"1.aJ%,"SOURCE CODE OCCUPIES ";OC;" TO";PC1[.tJ%,"VARIABLES OCCUPY";OV;"TO";OV129v.N%,1;C$;:GC061000.J%,:J%,"JUMP TABLE".X0GC1:N%,GN%(X,0)32767;C$;:LGN%(X,1):ZLN%(L)32767/Z0J%,"JUMP TO NONEXISTENT LINE #";L:610007/ZH(Z256):ZLZ256ZH:N%,ZL;C$;:N%,ZH;C$;U/J%,GN%(X,0)32767;L;Z:Xn/HN%,1;C$;:N%:J%:/0X,LN%(255),GN%(127,1),ML%(19,1),F$(19): MUST BE FIRST STMT/5"TINY BASIC COMPILER"/:"BY HEITRONIC SOFTWARE"0D"(C)1983 EINDHOVEN "-0I"CORDIS">0NI11536:I0OZQ0: ***** TO COMPILE VIC PROGRAMS ON THE PET SET ZQ=-3 *****0SGC0:N%1:J%3:C$(13)0TP(44ZQ)256(43):TPP30X"LIST ON PRINTER N";A$0bA$(A$,1):A$"Y"J%41v".......JUST A MOMENT"01L(P2)256(P3)W1L49000P(P)256(P1):620801XLP6:49600:"NAME FOR CODE":CC$1"CODE TO DISK":"TAPE":"SCREEN"::" T";A$1 (A$,1)"T" DV%1:FI$CC$:621102 (A$,1)"S" DV%3:FI$CC$:62110=2 (A$,1)"D""":62101[2"DRIVE 0 OR 1 0";K$v2K$"0"K$"1"621052FI$(34)K$":"CC$",S,W":DV%82"CODE ORIGIN 5632";OC:PCOC:J%,J%2"VARIABLE TABLE 5376";OV 3:J%,"COMPILING ";CC$*3N%,DV%,1,FI$:N%,OC;C$;;3TSTI: TIMEF350200