tb.lst

download raw

 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