AS V1.42 Beta [Bld 300] - Source File tb.asm - Page 1 - 04/13/2026 09:48:57 PM 1/ 0 : cpu tbil 2/ 0 : 3/ 0 : 4/ 0 : 5/ 0 : ; ORIGINAL TINY BASIC INTERMEDIATE INTERPRETER 6/ 0 : ; 7/ 0 : ; EXECUTIVE INITIALIZATION 8/ 0 : ; 9/ 0 : 24 3A 91 STRT: PC ":Q^" ;COLON, X-ON 10/ 3 : 11/ 3 : 27 GL 12/ 4 : 10 SB 13/ 5 : E1 BE L0 ;BRANCH IF NOT EMPTY 14/ 6 : 59 BR STRT ;TRY AGAIN IF NULL LINE 15/ 7 : C5 L0: BN STMT ;TEST FOR LINE NUMBER 16/ 8 : 2A IL ;IF SO, INSERT INTO PROGRAM 17/ 9 : 56 BR STRT ;GO GET NEXT 18/ A : 10 XEC: SB ;SAVE POINTERS FOR RUN WITH 19/ B : 11 RB ; CONCATENATED INPUT 20/ C : 2C XQ 21/ D : ; 22/ D : ; STATEMENT EXECUTOR 23/ D : ; 24/ D : 88 4C 45 D4 STMT: BC GOTO "LET" 25/ 11 : 26/ 11 : A0 BV * ;MUST BE A VARIABLE NAME 27/ 12 : 80 BD BC * "=" 28/ 14 : 30 BC LET: JS EXPR ;GO GET EXPRESSION 29/ 16 : E0 BE * ;IF STATEMENT END, 30/ 17 : 13 SV ; STORE RESULT 31/ 18 : 1D NX 32/ 19 : ; 33/ 19 : 92 47 CF GOTO: BC PRNT "GO" 34/ 1C : 35/ 1C : 86 54 CF BC GOSB "TO" 36/ 1F : 37/ 1F : 30 BC JS EXPR ;GET LINE NUMBER 38/ 21 : E0 BE * 39/ 22 : 10 SB ;(DO THIS FOR STARTING) 40/ 23 : 11 RB 41/ 24 : 16 GO ;GO THERE 42/ 25 : ; 43/ 25 : 80 53 55 C2 GOSB: BC * "SUB" ;NO OTHER WORD BEGINS "GO..." 44/ 29 : 45/ 29 : 30 BC JS EXPR 46/ 2B : E0 BE * 47/ 2C : 14 GS 48/ 2D : 16 GO 49/ 2E : ; 50/ 2E : 8E 50 D2 PRNT: BC SKIP "PR" 51/ 31 : 52/ 31 : 80 49 4E D4 BC P0 "INT" ;OPTIONALLY OMIT "INT" 53/ 35 : 54/ 35 : E5 P0: BE P3 55/ 36 : 71 BR P6 ;IF DONE, GO TO END 56/ 37 : 87 BB P1: BC P4 ";" 57/ 39 : E1 P2: BE P3 58/ 3A : 1D NX ;NO CRLF IF ENDED BY ; OR , 59/ 3B : 8E A2 P3: BC P7 '"' 60/ 3D : AS V1.42 Beta [Bld 300] - Source File tb.asm - Page 2 - 04/13/2026 09:48:57 PM 61/ 3D : 62/ 3D : ; 36 63/ 3D : 64/ 3D : 21 PQ ;QUOTE MARKS STRING 65/ 3E : 58 BR P1 ;GO CHECK DELIMITER 66/ 3F : 6F SKIP: BR IF ;(ON THE WAY THRU) 67/ 40 : 82 AC P4: BC P5 "," 68/ 42 : 22 PT ;COMMA SPACING 69/ 43 : 55 BR P2 70/ 44 : 82 BA P5: BC P6 ":" 71/ 46 : 24 93 PC "S^" ;OUTPUT X-OFF 72/ 48 : E0 P6: BE * 73/ 49 : 23 NL ;THEN CRLF 74/ 4A : 1D NX 75/ 4B : 30 BC P7: JS EXPR ;TRY FOR AN EXPRESSION 76/ 4D : 20 PN 77/ 4E : 48 BR P1 78/ 4F : ; 79/ 4F : 8F 49 C6 IF: BC INPT "IF" 80/ 52 : 81/ 52 : 30 BC JS EXPR 82/ 54 : 31 34 JS RELO 83/ 56 : 30 BC JS EXPR 84/ 58 : 80 54 48 45 CE BC I1 "THEN" ;OPTIONAL NOISEWORD 85/ 5D : ; 86/ 5D : 1C I1: CP ;COMPARE SKIPS NEXT IF TRUE 87/ 5E : 1D NX ;FALSE. 88/ 5F : 38 0D J STMT ;TRUE. GO PROCESS STATEMENT 89/ 61 : ; 90/ 61 : 95 49 4E 50 55 D4 INPT: BC RETN "INPUT" 91/ 67 : D4; 92/ 67 : A0 I2: BV * ;GET VARIABLE 93/ 68 : 10 SB ;SWAP POINTERS 94/ 69 : E7 BE I4 95/ 6A : 24 3F 20 91 I3: PC "? Q^" ;LINE IS EMPTY; TYPE PROMPT 96/ 6E : 97/ 6E : 27 GL ;READ INPUT LINE 98/ 6F : E1 BE I4 ;DID ANYTHING COME? 99/ 70 : 59 BR I3 ;NO, TRY AGAIN 100/ 71 : 80 AC I4: BC I5 "," ;OPTIONAL COMMA 101/ 73 : 30 BC I5: JS EXPR ;READ A NUMBER 102/ 75 : 13 SV ;STORE INTO VARIABLE 103/ 76 : 11 RB ;SWAP BACK 104/ 77 : 81 AC BC I6 "," ;ANOTHER? 105/ 79 : 4D BR I2 ;YES IF COMMA 106/ 7A : E0 I6: BE * ;OTHERWISE QUIT 107/ 7B : 1D NX 108/ 7C : ; 109/ 7C : 83 52 45 54 55 52 CE RETN: BC ENDP "RETURN" 110/ 83 : E0 BE * 111/ 84 : 15 RS ;RECOVER SAVED LINE 112/ 85 : 1D NX 113/ 86 : ; 114/ 86 : 82 45 4E C4 ENDP: BC LIST "END" 115/ 8A : 116/ 8A : E0 BE * 117/ 8B : 2D WS 118/ 8C : ; 119/ 8C : 94 4C 49 53 D4 LIST: BC RUN "LIST" 120/ 91 : ; AS V1.42 Beta [Bld 300] - Source File tb.asm - Page 3 - 04/13/2026 09:48:57 PM 121/ 91 : EC BE L2 122/ 92 : 24 00 00 00 00 0A 80 L1: PC "@^@^@^@^J^@^" ;PUNCH LEADER 123/ 99 : 124/ 99 : 1F LS ;LIST 125/ 9A : 24 93 PC "S^" ;PUNCH X-OFF 126/ 9C : 23 NL 127/ 9D : 1D NX 128/ 9E : 30 BC L2: JS EXPR ;GET A LINE NUMBER 129/ A0 : E1 BE L3 130/ A1 : 50 BR L1 131/ A2 : 80 AC L3: BC * "," ;SEPARATED BY COMMAS 132/ A4 : 59 BR L2 133/ A5 : ; 134/ A5 : 82 52 55 CE RUN: BC CLER "RUN" 135/ A9 : 136/ A9 : 38 0A J XEC 137/ AB : ; 138/ AB : 81 43 4C 45 41 D2 CLER: BC REM "CLEAR" 139/ B1 : D2; 140/ B1 : 2B MT 141/ B2 : ; 142/ B2 : 81 52 45 CD REM: BC DFLT "REM" 143/ B6 : 144/ B6 : 1D NX 145/ B7 : ; 146/ B7 : A0 DFLT: BV * ;NO KEYWORD... 147/ B8 : 80 BD BC * "=" ;TRY FOR LET 148/ BA : 38 14 J LET ;IT'S A GOOD BET. 149/ BC : ; 150/ BC : ; SUBROUTINES 151/ BC : ; 152/ BC : 84 AD EXPR: BC E0 "-" ;TRY FOR UNARY MINUS 153/ BE : 30 D3 JS TERM ;AHA 154/ C0 : 17 NE 155/ C1 : 64 BR E1 156/ C2 : 80 AB E0: BC E4 "+" ;IGNORE UNARY PLUS 157/ C4 : 30 D3 E4: JS TERM 158/ C6 : 84 AB E1: BC E2 "+" ;TERMS SEPARATED BY PLUS 159/ C8 : 30 D3 JS TERM 160/ CA : 18 AD 161/ CB : 5A BR E1 162/ CC : 84 AD E2: BC E3 "-" ;TERMS SEPARATED BY MINUS 163/ CE : 30 D3 JS TERM 164/ D0 : 19 SU 165/ D1 : 54 BR E1 166/ D2 : 2F E3: RT 167/ D3 : ; 168/ D3 : 30 E2 TERM: JS FACT 169/ D5 : 84 AA T0: BC T1 "*" ;FACTORS SEPARATED BY TIMES 170/ D7 : 30 E2 JS FACT 171/ D9 : 1A MP 172/ DA : 5A BR T0 173/ DB : 84 AF T1: BC T2 "/" ;FACTORS SEPARATED BY DIVIDE 174/ DD : 30 E2 JS FACT 175/ DF : 1B DV 176/ E0 : 54 BR T0 177/ E1 : 2F T2: RT 178/ E2 : ; 179/ E2 : 94 52 4E C4 FACT: BC F0 "RND" ;*RND FUNCTION* 180/ E6 : AS V1.42 Beta [Bld 300] - Source File tb.asm - Page 4 - 04/13/2026 09:48:57 PM 181/ E6 : 00 80 80 LN 257*128 ;STACK POINTER FOR STORE 182/ E9 : 183/ E9 : 12 FV ;THEN GET RNDM 184/ EA : 00 09 29 LN 2345 ;R:=R*2345+6789 185/ ED : 186/ ED : 1A MP 187/ EE : 00 1A 85 LN 6789 188/ F1 : 189/ F1 : 18 AD 190/ F2 : 13 SV 191/ F3 : 00 80 LB 128 ;GET IT AGAIN 192/ F5 : 12 FV 193/ F6 : 0B DS 194/ F7 : 31 30 JS FUNC ;GET ARGUMENT 195/ F9 : 61 BR F1 196/ FA : 73 F0: BR F2 ;(SKIPPING) 197/ FB : 0B F1: DS 198/ FC : 02 SX 2 ;PUSH TOP INTO STACK 199/ FD : 04 SX 4 200/ FE : 02 SX 2 201/ FF : 03 SX 3 202/ 100 : 05 SX 5 203/ 101 : 03 SX 3 204/ 102 : 1B DV ;PERFORM MOD FUNCTION 205/ 103 : 1A MP 206/ 104 : 19 SU 207/ 105 : 0B DS ;PERFORM ABS FUNCTION 208/ 106 : 00 06 LB 6 209/ 108 : 00 00 00 LN 0 210/ 10B : 211/ 10B : 1C CP ;(SKIP IF + OR 0) 212/ 10C : 17 NE 213/ 10D : 2F RT 214/ 10E : 8C 55 53 D2 F2: BC F3 "USR" ;*USR FUNCTION* 215/ 112 : 216/ 112 : 80 A8 BC * "(" ;3 ARGUMENTS POSSIBLE 217/ 114 : 30 BC JS EXPR ;ONE REQUIRED 218/ 116 : 31 2A JS ARG 219/ 118 : 31 2A JS ARG 220/ 11A : 80 A9 BC * ")" 221/ 11C : 2E US ;GO DO IT 222/ 11D : 2F RT 223/ 11E : A2 F3: BV F4 ;VARIABLE? 224/ 11F : 12 FV ;YES. GET IT 225/ 120 : 2F RT 226/ 121 : C1 F4: BN F5 ;NUMBER? 227/ 122 : 2F RT ;GOT IT. 228/ 123 : 80 A8 F5: BC * "(" ;OTHERWISE MUST BE (EXPR) 229/ 125 : 30 BC F6: JS EXPR 230/ 127 : 80 A9 BC * ")" 231/ 129 : 2F RT 232/ 12A : ; 233/ 12A : 82 AC ARG: BC A0 "," ; COMMA? 234/ 12C : 38 BC J EXPR ; YES, GET EXPRESSION 235/ 12E : 0B A0: DS ; NO, DUPLICATE STACK TOP 236/ 12F : 2F RT 237/ 130 : ; 238/ 130 : 80 A8 FUNC: BC * "(" 239/ 132 : 52 BR F6 240/ 133 : 2F RT AS V1.42 Beta [Bld 300] - Source File tb.asm - Page 5 - 04/13/2026 09:48:57 PM 241/ 134 : ; 242/ 134 : 83 BD RELO: BC R0 "=" ; CONVERT RELATION OPERATORS 243/ 136 : 00 02 LB 2 ; TO CODE BYTE ON STACK 244/ 138 : 2F RT ; = 245/ 139 : 8D BC R0: BC R4 "<" 246/ 13B : 83 BD BC R1 "=" 247/ 13D : 00 03 LB 3 ; <= 248/ 13F : 2F RT 249/ 140 : 83 BE R1: BC R3 ">" 250/ 142 : 00 05 LB 5 ; <> 251/ 144 : 2F RT 252/ 145 : 00 01 R3: LB 1 ; < 253/ 147 : 2F RT 254/ 148 : 80 BE R4: BC * ">" 255/ 14A : 83 BD BC R5 "=" 256/ 14C : 00 06 LB 6 ; >= 257/ 14E : 2F RT 258/ 14F : 83 BC R5: BC R6 "<" 259/ 151 : 00 05 LB 5 ; ; >< 260/ 153 : 2F RT 261/ 154 : 00 04 R6: LB 4 ; ; > 262/ 156 : 2F RT 263/ 157 : ; 264/ 157 : AS V1.42 Beta [Bld 300] - Source File tb.asm - Page 6 - 04/13/2026 09:48:57 PM Symbol Table (* = unused): -------------------------- A0 : 12E C | *ARCHITECTURE : "x86_64-unknown-linux" - | ARG : 12A C | *CASESENSITIVE : 0 - | CLER : AB C | *CONSTPI : 3.141592653589793239 - | *D2 : B1 C | *D4 : 67 C | *DATE : "04/13/2026" - | DFLT : B7 C | E0 : C2 C | E1 : C6 C | E2 : CC C | E3 : D2 C | E4 : C4 C | ENDP : 86 C | EXPR : BC C | F0 : FA C | F1 : FB C | F2 : 10E C | F3 : 11E C | F4 : 121 C | F5 : 123 C | F6 : 125 C | FACT : E2 C | *FALSE : 0 - | *FLOATMAX : 1.18973149535725E4932 - | FUNC : 130 C | GOSB : 25 C | GOTO : 19 C | *HAS64 : 1 - | I1 : 5D C | I2 : 67 C | I3 : 6A C | I4 : 71 C | I5 : 73 C | I6 : 7A C | IF : 4F C | INPT : 61 C | *INTWIDTH : 80 - | L0 : 7 C | L1 : 92 C | L2 : 9E C | L3 : A2 C | LET : 14 C | LIST : 8C C | *LISTON : 1 - | *MACEXP : 7 - | *MOMCPU : 0 - | *MOMCPUNAME : "TBIL" - | *NESTMAX : 100 - | P0 : 35 C | P1 : 37 C | P2 : 39 C | P3 : 3B C | P4 : 40 C | P5 : 44 C | P6 : 48 C | P7 : 4B C | *PADDING : 0 - | PRNT : 2E C | R0 : 139 C | R1 : 140 C | R3 : 145 C | R4 : 148 C | R5 : 14F C | R6 : 154 C | *RELAXED : 0 - | RELO : 134 C | REM : B2 C | RETN : 7C C | RUN : A5 C | SKIP : 3F C | STMT : D C | STRT : 0 C | T0 : D5 C | T1 : DB C | T2 : E1 C | TERM : D3 C | *TIME : "09:48:57 PM" - | *TRUE : 1 - | *VERSION : 142F - | XEC : A C | 83 symbols 20 unused symbols AS V1.42 Beta [Bld 300] - Source File tb.asm - Page 7 - 04/13/2026 09:48:57 PM Code Pages: ---------- STANDARD (0 changed characters) 1 code page 0.01 seconds assembly time 264 lines source file 2 passes 0 errors 0 warnings