tb.lst
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