1 " ***********************************************************
   2 " *                                                         *
   3 " * Copyright, (C) Honeywell Information Systems Inc., 1982 *
   4 " *                                                         *
   5 " * Copyright (c) 1972 by Massachusetts Institute of        *
   6 " * Technology and Honeywell Information Systems, Inc.      *
   7 " *                                                         *
   8 " ***********************************************************
   9 
  10 "         Modified: 15 May 1984 by DWL to add new string function mid$
  11 "         Modified: 19 May 1984 by D. Leskiw to add new string function left$
  12 "         Modified: 23 May 1984 by D. Leskiw to add new string function right$
  13 "         Modified: 23 May 1984 by D. Leskiw to allow pos to have optional # of args
  14 "         Modified: 25 May 1984 by D. Leskiw to fix problem when left$, right$, or pos is passed
  15 "                   as functions argument, as on page 5-3 of basic manual
  16 "
  17 "         Table of valid BASIC statements
  18 "
  19           segdef    statement_spelling
  20 statement_spelling:
  21           dec       0,-1                a
  22           dec       0,-1                b
  23           dec       1,3                 c
  24           dec       4,6                 d
  25           dec       7,7                 e
  26           dec       8,10                f
  27           dec       11,12               g
  28           dec       0,-1                h
  29           dec       13,14               i
  30           dec       0,-1                j
  31           dec       0,-1                k
  32           dec       15,17               l
  33           dec       18,19               m
  34           dec       20,20               n
  35           dec       21,21               o
  36           dec       22,22               p
  37           dec       0,-1                q
  38           dec       23,27               r
  39           dec       28,32               s
  40           dec       33,34               t
  41           dec       0,-1                u
  42           dec       0,-1                v
  43           dec       35,35               w
  44           dec       0,-1                x
  45           dec       0,-1                y
  46           dec       0,-1                z
  47 "
  48           segdef    statement_list
  49 statement_list:
  50           aci       "cal "              call
  51           aci       "l       "
  52           dec       1
  53           aci       "cha "              chain
  54           aci       "in      "
  55           dec       2
  56           aci       "cha "              change
  57           aci       "nge     "
  58           dec       3
  59           aci       "dat "              data
  60           aci       "a       "
  61           dec       1
  62           aci       "def "              def
  63           aci       "        "
  64           dec       0
  65           aci       "dim "              dim
  66           aci       "        "
  67           dec       0
  68           aci       "end "              end
  69           aci       "        "
  70           dec       0
  71           aci       "fil "              file
  72           aci       "e       "
  73           dec       1
  74           aci       "fne "              fnend
  75           aci       "nd      "
  76           dec       2
  77           aci       "for "              for
  78           aci       "        "
  79           dec       0
  80           aci       "got "              goto
  81           aci       "o       "
  82           dec       1
  83           aci       "gos "              gosub
  84           aci       "ub      "
  85           dec       2
  86           aci       "if  "              if
  87           aci       "        "
  88           dec       0
  89           aci       "inp "              input
  90           aci       "ut      "
  91           dec       2
  92           aci       "let "              let
  93           aci       "        "
  94           dec       0
  95           aci       "lib "              library
  96           aci       "rary    "
  97           dec       4
  98           aci       "lin "              linput
  99           aci       "put     "
 100           dec       3
 101           aci       "mar "              margin
 102           aci       "gin     "
 103           dec       3
 104           aci       "mat "              mat
 105           aci       "        "
 106           dec       0
 107           aci       "nex "              next
 108           aci       "t       "
 109           dec       1
 110           aci       "on  "              on
 111           aci       "        "
 112           dec       0
 113           aci       "pri "              print
 114           aci       "nt      "
 115           dec       2
 116           aci       "ran "              randomize
 117           aci       "domize  "
 118           dec       6
 119           aci       "rea "              read
 120           aci       "d       "
 121           dec       1
 122           aci       "rem "              rem
 123           aci       "        "
 124           dec       0
 125           aci       "res "              reset
 126           aci       "et      "
 127           dec       2
 128           aci       "ret "              return
 129           aci       "urn     "
 130           dec       3
 131           aci       "scr "              scratch
 132           aci       "atch    "
 133           dec       4
 134           aci       "set "              setdigits
 135           aci       "digits  "
 136           dec       6
 137           aci       "sto "              stop
 138           aci       "p       "
 139           dec       1
 140           aci       "sub "              sub
 141           aci       "        "
 142           dec       0
 143           aci       "sub "              subend
 144           aci       "end     "
 145           dec       3
 146           aci       "tea "              teach
 147           aci       "ch      "
 148           dec       2
 149           aci       "tim "              time
 150           aci       "e       "
 151           dec       1
 152           aci       "wri "              write
 153           aci       "te      "
 154           dec       2
 155 "
 156           include   basic_xfer_vector
 157 "
 158 "         Information tables giving predefined BASIC functions
 159 "
 160           equ       n.0,1               numeric   no arguments
 161           equ       n.n,2               numeric   one numeric arg
 162           equ       n.s,3               numeric   one string arg
 163           equ       n.f,4               numeric   one file arg
 164           equ       s.0,5               string    no arguments
 165           equ       s.n,6               string    one numeric arg
 166           equ       s.nn,7              string    two numeric args
 167           equ       n.nn,8              numeric   two numeric args
 168           equ       n.fs,9              numeric   one file arg, one string arg
 169           equ       n.ssn,10            numeric   two string args, one numeric arg
 170           equ       s.snn,11            string    one string arg, two numeric args
 171           equ       n.var,12            numeric   variable number of args
 172           equ       matrix,13           matrix function
 173           equ       print_fun,14        print function (tab & spc)
 174           equ       matrix_constant,15  con, idn, zer, nul$
 175           equ       s.sn,16             string    one string arg, one numeric arg
 176           equ       pos_args,17         pos$(a$,b$,[i])
 177 "
 178 "         Table of basic functions
 179 "
 180           segdef    functions
 181 "
 182 "         Numeric valued functions
 183 "
 184 functions:
 185           aci       "abs "              abs(x)
 186           vfd       36/n.n
 187           tsx7      ap|abs_fun
 188           aci       "atn "              atn(x)
 189           vfd       36/n.n
 190           tsx7      ap|atn_fun
 191           aci       "clg "              clg(x)
 192           vfd       36/n.n
 193           tsx7      ap|clg_fun
 194           aci       "cnt "              cnt
 195           vfd       36/n.0
 196           tsx7      ap|argcnt_fun
 197           aci       "con "              con
 198           vfd       36/matrix_constant
 199           tsx7      ap|con_fun
 200           aci       "cos "              cos(x)
 201           vfd       36/n.n
 202           tsx7      ap|cos_fun
 203           aci       "cot "              cot(x)
 204           vfd       36/n.n
 205           tsx7      ap|cot_fun
 206           aci       "det "              det
 207           vfd       36/n.0
 208           tsx7      ap|det_fun
 209           aci       "exp "              exp(x)
 210           vfd       36/n.n
 211           tsx7      ap|exp_fun
 212           aci       "hps "              hps(#f)
 213           vfd       36/n.f
 214           tsx7      ap|hps_fun
 215           aci       "idn "              idn
 216           vfd       36/matrix_constant
 217           tsx7      ap|idn_fun
 218           aci       "int "              int(x)
 219           vfd       36/n.n
 220           tsx7      ap|int_fun
 221           aci       "inv "              inv
 222           vfd       36/matrix
 223           tsx7      ap|inv_fun
 224           aci       "len "              len(a$)
 225           vfd       36/n.s
 226           tsx7      ap|len_fun
 227           aci       "lin "              lin(#f)
 228           vfd       36/n.f
 229           tsx7      ap|lin_fun
 230           aci       "loc "              loc(#f)
 231           vfd       36/n.f
 232           tsx7      ap|loc_fun
 233           aci       "lof "              lof(#f)
 234           vfd       36/n.f
 235           tsx7      ap|lof_fun
 236           aci       "log "              log(x)
 237           vfd       36/n.n
 238           tsx7      ap|log_fun
 239           aci       "mar "              mar(#f)
 240           vfd       36/n.f
 241           tsx7      ap|mar_fun
 242           aci       "max "              max(x,y,...,z)
 243           vfd       36/n.var
 244           tsx7      ap|max_fun
 245           aci       "min "              min(x,y,...,z)
 246           vfd       36/n.var
 247           tsx7      ap|min_fun
 248           aci       "mod "              mod(x,y)
 249           vfd       36/n.nn
 250           tsx7      ap|mod_fun
 251           aci       "num "              num
 252           vfd       36/n.0
 253           tsx7      ap|num_fun
 254           aci       "per "              per(#f,a$)
 255           vfd       36/n.fs
 256           tsx7      ap|per_fun
 257           aci       "pos "              pos(a$,b$,x)
 258           vfd       36/pos_args
 259           tsx7      ap|pos_fun
 260           aci       "rnd "              rnd
 261           vfd       36/n.0
 262           tsx7      ap|rnd_fun
 263           aci       "sgn "              sgn(x)
 264           vfd       36/n.n
 265           tsx7      ap|sgn_fun
 266           aci       "sin "              sin(x)
 267           vfd       36/n.n
 268           tsx7      ap|sin_fun
 269           aci       "spc "              spc(x)
 270           vfd       36/print_fun
 271           tsx7      ap|spc_fun
 272           aci       "sqr "              sqr(x)
 273           vfd       36/n.n
 274           tsx7      ap|sqr_fun
 275           aci       "tab "              tab(x)
 276           vfd       36/print_fun
 277           tsx7      ap|tab_fun
 278           aci       "tan "              tan(x)
 279           vfd       36/n.n
 280           tsx7      ap|tan_fun
 281           aci       "tim "              tim
 282           vfd       36/n.0
 283           tsx7      ap|tim_fun
 284           aci       "trn "              trn
 285           vfd       36/matrix
 286           tsx7      ap|trn_fun
 287           aci       "tst "              tst(a$)
 288           vfd       36/n.s
 289           tsx7      ap|tst_fun
 290           aci       "typ "              typ(#f,a$)
 291           vfd       36/n.fs
 292           tsx7      ap|typ_fun
 293           aci       "val "              val(a$)
 294           vfd       36/n.s
 295           tsx7      ap|val_fun
 296           aci       "zer "              zer
 297           vfd       36/matrix_constant
 298           tsx7      ap|zer_fun
 299 "
 300 "         string valued functions
 301 "
 302           aci       "arg "              arg$(x)
 303           vfd       36/s.n
 304           tsx7      ap|argval_fun
 305           aci       "chr "              chr$(x)
 306           vfd       36/s.n
 307           tsx7      ap|chr_fun
 308           aci       "clk "              clk$
 309           vfd       36/s.0
 310           tsx7      ap|clk_fun
 311           aci       "dat "              dat$
 312           vfd       36/s.0
 313           tsx7      ap|dat_fun
 314           aci       "nul "              nul$
 315           vfd       36/matrix_constant
 316           tsx7      ap|nul_fun
 317           aci       "seg "              seg$(a$,x,y)
 318           vfd       36/s.snn
 319           tsx7      ap|seg_fun
 320           aci       "sst "              sst$(a$,x,y)
 321           vfd       36/s.snn
 322           tsx7      ap|sst_fun
 323           aci       "str "              str$(x)
 324           vfd       36/s.n
 325           tsx7      ap|str_fun
 326           aci       "usr "              usr$
 327           vfd       36/s.0
 328           tsx7      ap|usr_fun
 329           aci       "mid "              mid$(a$,x,y)
 330           vfd       36/s.snn
 331           tsx7      ap|mid_fun
 332           aci       "left"              left$(a$,n)
 333           vfd       36/s.sn
 334           tsx7      ap|left_fun
 335           aci       "righ"              right$(a$,n)
 336           vfd       36/s.sn
 337           tsx7      ap|right_fun
 338 "
 339 "         Spelling table for numeric functions
 340 "
 341           segdef    numeric_spelling
 342 numeric_spelling:
 343           dec       1,2                 a
 344           dec       0,-1                b
 345           dec       3,7                 c
 346           dec       8,8                 d
 347           dec       9,9                 e
 348           dec       0,-1                f
 349           dec       0,-1                g
 350           dec       10,10               h
 351           dec       11,13               i
 352           dec       0,-1                j
 353           dec       0,-1                k
 354           dec       14,18               l
 355           dec       19,22               m
 356           dec       23,23               n
 357           dec       0,-1                o
 358           dec       24,25               p
 359           dec       0,-1                q
 360           dec       26,26               r
 361           dec       27,30               s
 362           dec       31,36               t
 363           dec       0,-1                u
 364           dec       37,37               v
 365           dec       0,-1                w
 366           dec       0,-1                x
 367           dec       0,-1                y
 368           dec       38,38               z
 369 "
 370 "         Spelling table for string functions
 371 "
 372           segdef    string_spelling
 373 string_spelling:
 374           dec       39,39               a
 375           dec       0,-1                b
 376           dec       40,41               c
 377           dec       42,42               d
 378           dec       0,-1                e
 379           dec       0,-1                f
 380           dec       0,-1                g
 381           dec       0,-1                h
 382           dec       0,-1                i
 383           dec       0,-1                j
 384           dec       0,-1                k
 385           dec       49,49               l, used for left$
 386           dec       48,48               m, used for mid$
 387           dec       43,43               n
 388           dec       0,-1                o
 389           dec       0,-1                p
 390           dec       0,-1                q
 391           dec       50,50               r, used for right$
 392           dec       44,46               s, used for seg$,sst$,str$
 393           dec       0,-1                t
 394           dec       47,47               u
 395           dec       0,-1                v
 396           dec       0,-1                w
 397           dec       0,-1                x
 398           dec       0,-1                y
 399           dec       0,-1                z
 400 "
 401           segdef    function_templates
 402 "
 403 "         code templates for functions passed as subprogram arguments
 404 "
 405 function_templates:
 406           arg       numeric_0           n.0
 407           arg       numeric_n           n.n
 408           arg       numeric_s           n.s
 409           arg       numeric_f           n.f
 410           arg       string_0            s.0
 411           arg       string_n            s.n
 412           arg       0                   s.nn
 413           arg       numeric_nn          n.nn
 414           arg       numeric_fs          n.fs
 415           arg       numeric_ssn         n.ssn
 416           arg       string_snn          s.snn
 417           arg       0                   n.var
 418           arg       0                   matrix
 419           arg       0                   print_fun
 420           arg       0                   matrix_constant
 421           arg       string_sn           s.sn
 422           arg       0                   pos_args
 423           arg       d_numeric_0         n.0
 424           arg       d_numeric_n         n.n
 425           arg       d_numeric_s         n.s
 426           arg       d_numeric_f         n.f
 427           arg       string_0  s.0
 428           arg       d_string_n          s.n
 429           arg       0                   s.nn
 430           arg       d_numeric_nn        n.nn
 431           arg       d_numeric_fs        n.fs
 432           arg       d_numeric_ssn       n.ssn
 433           arg       d_string_snn        s.snn
 434           arg       0                   n.var
 435           arg       0                   matrix
 436           arg       0                   print_fun
 437           arg       0                   matrix_constant
 438           arg       d_string_sn         s.sn
 439           arg       0                   pos_args
 440 "         numeric   no arguments
 441 "
 442 numeric_0:
 443           tra       7,ic
 444           oct       0
 445           oct       0
 446           tsx7      0
 447           fst       sp|0,6
 448           epp3      -4,ic
 449           tsx7      ap|fun_return_op
 450 "
 451 "         numeric   one numeric arg
 452 "         numeric   one file arg
 453 "
 454 numeric_n:
 455 numeric_f:
 456           tra       8,ic
 457           oct       020000000000
 458           oct       0
 459           fld       sp|1,6
 460           tsx7      0
 461           fst       sp|0,6
 462           epp3      -5,ic
 463           tsx7      ap|fun_return_op
 464 "
 465 "         numeric   one string arg
 466 "
 467 numeric_s:
 468           tra       8,ic
 469           oct       024000000000
 470           oct       0
 471           epp1      sp|1,6
 472           tsx7      0
 473           fst       sp|0,6
 474           epp3      -5,ic
 475           tsx7      ap|fun_return_op
 476 "
 477 "         string    no arguments
 478 "
 479 string_0:
 480           tra       8,ic
 481           oct       010000000000
 482           oct       0
 483           tsx7      0
 484           epp3      sp|0,6
 485           tsx7      ap|string_assign_op
 486           epp3      -5,ic
 487           tsx7      ap|fun_return_op
 488 "
 489 "         string    one numeric arg
 490 "
 491 string_n:
 492           tra       9,ic
 493           oct       030000000000
 494           oct       0
 495           fld       sp|1,6
 496           tsx7      0
 497           epp3      sp|0,6
 498           tsx7      ap|string_assign_op
 499           epp3      -6,ic
 500           tsx7      ap|fun_return_op
 501 "
 502 "         numeric   two numeric args
 503 "
 504 numeric_nn:
 505           tra       9,ic
 506           oct       040000000000
 507           oct       0
 508           fld       sp|1,6
 509           tsx7      0
 510           fld       sp|2,6
 511           fst       sp|0,6
 512           epp3      -6,ic
 513           tsx7      ap|fun_return_op
 514 "
 515 "         numeric one file arg, one string arg
 516 "
 517 numeric_fs:
 518           tra       9,ic
 519           oct       042000000000
 520           oct       0
 521           fld       sp|1,6
 522           epp1      sp|2,6
 523           tsx7      0
 524           fst       sp|0,6
 525           epp3      -6,ic
 526           tsx7      ap|fun_return_op
 527 "
 528 "         numeric   two string args, one numeric arg
 529 "
 530 numeric_ssn:
 531           tra       10,ic
 532           oct       066000000000
 533           oct       0
 534           fld       sp|3,6
 535           epp1      sp|1,6
 536           epp3      sp|2,6
 537           tsx7      0
 538           fst       sp|0,6
 539           epp3      -7,ic
 540           tsx7      ap|fun_return_op
 541 "
 542 "         string    one string arg, tw numeric args
 543 "
 544 string_snn:
 545           tra       11,ic
 546           oct       074000000000
 547           oct       0
 548           fld       sp|2,6
 549           epp1      sp|1,6
 550           tsx7      0
 551           fld       sp|3,6
 552           epp3      sp|0,6
 553           tsx7      ap|string_assign_op
 554           epp3      -8,ic
 555           tsx7      ap|fun_return_op
 556 "
 557 "         string    string arg, numeric arg
 558 "
 559 string_sn:
 560           tra       10,ic
 561           oct       054000000000
 562           oct       0
 563           fld       sp|2,6
 564           epp1      sp|1,6
 565           tsx7      0
 566           epp3      sp|0,6
 567           tsx7      ap|string_assign_op
 568           epp3      -7,ic
 569           tsx7      ap|fun_return_op
 570 
 571 "
 572 "         numeric   no arguments
 573 "
 574 d_numeric_0:
 575           tra       7,ic
 576           oct       0
 577           oct       0
 578           tsx7      0
 579           dfst      sp|0,6
 580           epp3      -4,ic
 581           tsx7      ap|fun_return_op
 582 "
 583 "         numeric   one numeric arg
 584 "         numeric   one file arg
 585 "
 586 d_numeric_n:
 587 d_numeric_f:
 588           tra       8,ic
 589           oct       020000000000
 590           oct       0
 591           dfld      sp|2,6
 592           tsx7      0
 593           dfst      sp|0,6
 594           epp3      -5,ic
 595           tsx7      ap|fun_return_op
 596 "
 597 "         numeric   one string arg
 598 "
 599 d_numeric_s:
 600           tra       8,ic
 601           oct       024000000000
 602           oct       0
 603           epp1      sp|2,6
 604           tsx7      0
 605           dfst      sp|0,6
 606           epp3      -5,ic
 607           tsx7      ap|fun_return_op
 608 "
 609 "         string    one numeric arg
 610 "
 611 d_string_n:
 612           tra       9,ic
 613           oct       030000000000
 614           oct       0
 615           dfld      sp|2,6
 616           tsx7      0
 617           epp3      sp|0,6
 618           tsx7      ap|string_assign_op
 619           epp3      -6,ic
 620           tsx7      ap|fun_return_op
 621 "
 622 "         numeric   two numeric args
 623 "
 624 d_numeric_nn:
 625           tra       9,ic
 626           oct       040000000000
 627           oct       0
 628           dfld      sp|2,6
 629           tsx7      0
 630           dfld      sp|4,6
 631           dfst      sp|0,6
 632           epp3      -6,ic
 633           tsx7      ap|fun_return_op
 634 "
 635 "         numeric one file arg, one string arg
 636 "
 637 d_numeric_fs:
 638           tra       9,ic
 639           oct       042000000000
 640           oct       0
 641           dfld      sp|2,6
 642           epp1      sp|4,6
 643           tsx7      0
 644           dfst      sp|0,6
 645           epp3      -6,ic
 646           tsx7      ap|fun_return_op
 647 "
 648 "         numeric   two string args, one numeric arg
 649 "
 650 d_numeric_ssn:
 651           tra       10,ic
 652           oct       066000000000
 653           oct       0
 654           dfld      sp|6,6
 655           epp1      sp|2,6
 656           epp3      sp|4,6
 657           tsx7      0
 658           dfst      sp|0,6
 659           epp3      -7,ic
 660           tsx7      ap|fun_return_op
 661 "
 662 "         string    one string arg, tw numeric args
 663 "
 664 d_string_snn:
 665           tra       11,ic
 666           oct       074000000000
 667           oct       0
 668           dfld      sp|4,6
 669           epp1      sp|2,6
 670           tsx7      0
 671           dfld      sp|6,6
 672           epp3      sp|0,6
 673           tsx7      ap|string_assign_op
 674           epp3      -8,ic
 675           tsx7      ap|fun_return_op
 676 "
 677 "         string    one string args, one numeric arg
 678 "
 679 d_string_sn:
 680           tra       10,ic
 681           oct       054000000000
 682           oct       0
 683           dfld      sp|4,6
 684           epp1      sp|2,6
 685           tsx7      0
 686           epp3      sp|0,6
 687           tsx7      ap|string_assign_op
 688           epp3      -7,ic
 689           tsx7      ap|fun_return_op
 690 
 691 "
 692 "         Information table for use by ASC function
 693 "
 694           segdef    ascii_table
 695 ascii_table:
 696           vfd       9/0
 697           aci       "nul "
 698           vfd       9/1
 699           aci       "soh "
 700           vfd       9/2
 701           aci       "stx "
 702           vfd       9/3
 703           aci       "etx "
 704           vfd       9/4
 705           aci       "eot "
 706           vfd       9/5
 707           aci       "enq "
 708           vfd       9/6
 709           aci       "ack "
 710           vfd       9/7
 711           aci       "bel "
 712           vfd       9/8
 713           aci       "bs  "
 714           vfd       9/9
 715           aci       "ht  "
 716           vfd       9/10
 717           aci       "lf  "
 718           vfd       9/11
 719           aci       "vt  "
 720           vfd       9/12
 721           aci       "ff  "
 722           vfd       9/13
 723           aci       "cr  "
 724           vfd       9/14
 725           aci       "so  "
 726           vfd       9/15
 727           aci       "si  "
 728           vfd       9/16
 729           aci       "dle "
 730           vfd       9/17
 731           aci       "dc1 "
 732           vfd       9/18
 733           aci       "dc2 "
 734           vfd       9/19
 735           aci       "dc3 "
 736           vfd       9/20
 737           aci       "dc4 "
 738           vfd       9/21
 739           aci       "nak "
 740           vfd       9/22
 741           aci       "syn "
 742           vfd       9/23
 743           aci       "etb "
 744           vfd       9/24
 745           aci       "can "
 746           vfd       9/25
 747           aci       "em  "
 748           vfd       9/26
 749           aci       "sub "
 750           vfd       9/27
 751           aci       "esc "
 752           vfd       9/28
 753           aci       "fs  "
 754           vfd       9/29
 755           aci       "gs  "
 756           vfd       9/30
 757           aci       "rs  "
 758           vfd       9/31
 759           aci       "us  "
 760           vfd       9/32
 761           aci       "sp  "
 762           vfd       9/95
 763           aci       "bkr "
 764           vfd       9/95
 765           aci       "und "
 766           vfd       9/96
 767           aci       "gra "
 768           vfd       9/123
 769           aci       "lbr "
 770           vfd       9/124
 771           aci       "vln "
 772           vfd       9/125
 773           aci       "rbr "
 774           vfd       9/126
 775           aci       "til "
 776           vfd       9/34
 777           aci       "quo "
 778           vfd       9/34
 779           aci       "qt  "
 780           vfd       9/39
 781           aci       "apo "
 782 "
 783           segdef    ascii_table_length
 784 ascii_table_length:
 785           vfd       36/(*-ascii_table)/2
 786 "
 787 "         Table of valid relational operators
 788 "
 789           segdef    relational_table
 790 relational_table:
 791           aci       "=   "
 792           aci       "<   "
 793           aci       "<=  "
 794           aci       "=<  "
 795           aci       "<>  "
 796           aci       "><  "
 797           aci       ">=  "
 798           aci       "=>  "
 799           aci       ">   "
 800 "
 801           segdef    relational_table_length
 802 relational_table_length:
 803           vfd       36/*-relational_table
 804 "
 805           segdef    normal_relational
 806 normal_relational:
 807           tze       0                   =
 808           tmi       0                   <
 809           tmoz      0                   <=
 810           tmoz      0                   =<
 811           tnz       0                   <>
 812           tnz       0                   ><
 813           tpl       0                   >=
 814           tpl       0                   =>
 815           tpnz      0                   >
 816 "
 817           segdef    inverse_relational
 818 inverse_relational:
 819           tze       0                   =
 820           tpnz      0                   <
 821           tpl       0                   <=
 822           tpl       0                   >=
 823           tnz       0                   <>
 824           tnz       0                   ><
 825           tmoz      0                   >=
 826           tmoz      0                   =>
 827           tmi       0                   >
 828 "
 829 "         Addressing prototypes
 830 "
 831           segdef    array_prototype
 832 array_prototype:
 833           arg       bp|0
 834 "
 835           segdef    constant_prototype
 836 constant_prototype:
 837           arg       lp|0
 838 "
 839           segdef    scalar_prototype
 840 scalar_prototype:
 841           arg       sp|0                numeric
 842           arg       pr5|0               string
 843 "
 844           segdef    param_prototype
 845 param_prototype:
 846           arg       sp|0,*
 847 "
 848           segdef    function_dummy
 849 function_dummy:
 850           tsx7      0
 851 "
 852           segdef    instruction_sequences
 853 instruction_sequences:
 854 add:      fad       0
 855 "
 856 change:   tsx7      ap|change_from_string
 857           tsx7      ap|change_to_string
 858 "
 859 check_eof:
 860           tsx7      ap|check_eof_op
 861 "
 862 compare:  fcmp      0
 863 "
 864 data_read:
 865           tsx7      ap|numeric_data_read
 866           tsx7      ap|string_data_read
 867 "
 868 divide:   fdv       0
 869 "
 870 divide_inv:
 871           fdi       0
 872 "
 873 end_input:
 874           tsx7      ap|end_input_op
 875 "
 876 end_print:
 877           tsx7      0|end_print_op
 878 "
 879 enter_main:
 880           tsp2      2|0,*
 881 "
 882 enter_proc:
 883           tsp2      2|2,*
 884 "
 885 error:    tsx7      ap|error_in_statement
 886           tsx7      ap|missing_line
 887           tsx7      ap|unclosed_for
 888           tsx7      ap|undefined_function
 889 "
 890 file:     tsx7      ap|file_fun
 891 "
 892 fneg:     fneg      0
 893 "
 894 fszn:     fszn      0
 895 "
 896 function_arg:
 897           epp2      0
 898           sprp2     0
 899           sprp6     0
 900           ldaq      0
 901           staq      0
 902 "
 903 function_call:
 904           epp3      0
 905           tsx7      0|fun_call_op
 906           tsx7      0|global_fun_call_op
 907 "
 908 function_return:
 909           epp3      0
 910           tsx7      0|fun_return_op
 911 "
 912 get_fcb_pt:
 913           lprp2     0
 914 "
 915 gosub:    tsx7      ap|gosub_op
 916 "
 917 inner_product:
 918           tsx7      0|dot_product
 919 "
 920 input:    tsx7      ap|numeric_input_op
 921           tsx7      ap|string_input_op
 922 "
 923 linput:   zero
 924           tsx7      0|linput_op
 925 "
 926 load:     fld       0                   numeric
 927           epp1      0                   string
 928           epp2      0                   addressing
 929           epp3      0                   string 2nd arg
 930           ldq       0,dl                used for variable arg functions
 931 "
 932 margin:   tsx7      ap|margin_op
 933 "
 934 mat_data_read:
 935           tsx7      0|mat_numeric_data_read
 936           tsx7      0|mat_string_data_read
 937 "
 938 mat_input:
 939           tsx7      0|mat_numeric_input_op
 940           tsx7      0|mat_string_input_op
 941 "
 942 mat_linput:
 943           zero
 944           tsx7      0|mat_linput_op
 945 "
 946 mat_print:
 947           tsx7      0|mat_numeric_print_op
 948           tsx7      0|mat_string_print_op
 949 "
 950 mat_print_using:
 951           tsx7      0|mat_print_using_numeric
 952           tsx7      0|mat_print_using_string
 953 "
 954 mat_read:
 955           tsx7      0|mat_numeric_read_op
 956           tsx7      0|mat_string_read_op
 957 "
 958 mat_write:
 959           tsx7      0|mat_numeric_write_op
 960           tsx7      0|mat_string_write_op
 961 "
 962 matrix_add_sub:
 963           tsx7      0|mat_add
 964           tsx7      0|mat_sub
 965 "
 966 matrix_assign_numeric:
 967           tsx7      0|mat_assign_numeric
 968 "
 969 matrix_assign_string:
 970           tsx7      0|mat_assign_string
 971 "
 972 matrix_mult:
 973           tsx7      0|mat_mult_vm
 974           tsx7      0|mat_mult_mv
 975           tsx7      0|mat_mult_mm
 976 "
 977 matrix_scalar_mult:
 978           tsx7      0|mat_scalar_mult
 979 "
 980 multiply: fmp       0
 981 "
 982 on:       tsx7      ap|on_op
 983 "
 984 on_gosub: tsx7      ap|on_gosub_op
 985 "
 986 power:    tsx7      ap|pwr_fun
 987 "
 988 power_inverse:
 989           tsx7      0|pwri_fun
 990 "
 991 print:    tsx7      ap|numeric_print_op
 992           tsx7      0|string_print_op
 993 "
 994 print_new_line:
 995           tsx7      0|print_new_line_op
 996 "
 997 print_using:
 998           tsx7      0|print_using_numeric_op
 999           tsx7      0|print_using_string_op
1000 "
1001 print_using_start:
1002           tsx7      0|print_using_start_op
1003 "
1004 print_using_end:
1005           tsx7      0|print_using_end_op
1006 "
1007 randomize:
1008           tsx7      0|randomize_fun
1009 "
1010 read:     tsx7      ap|numeric_read_op
1011           tsx7      0|string_read_op
1012 "
1013 redimension:
1014           tsx7      0|list_redim_op
1015           tsx7      0|table_redim_op
1016           tsx7      0|inv_table_redim_op
1017 "
1018 reset_ascii:
1019           tsx7      0|reset_ascii_op
1020 "
1021 reset_data:
1022           tsx7      0|reset_op
1023 "
1024 reset_random:
1025           tsx7      0|reset_random_op
1026 "
1027 return:   tsx7      ap|return_op
1028 "
1029 save_fcb_pt:
1030           sprpbp    0
1031 "
1032 scratch:  tsx7      ap|scratch_op
1033 "
1034 setdigits:
1035           tsx7      0|setdigits_op
1036 "
1037 stop:     tsx7      ap|stop_op
1038 "
1039 store:    fst       0                   numeric
1040           spriab    0                   string
1041           spribp    0                   addressing
1042 "
1043 string_assign:
1044           eppbb     0
1045           tsx7      0|string_assign_op
1046 "
1047 string_compare:
1048           eppbb     0
1049           tsx7      0|string_compare_op
1050 "
1051 string_concatenate:
1052           eppbb     0
1053           tsx7      0|string_concatenate_op
1054 "
1055 subend:   tsx7      ap|subend_op
1056 "
1057 subprogram_call:
1058           tsx7      0|sub_call_op
1059 "
1060 subscript:
1061           tsx7      0|list_sub_op
1062           tsx7      0|table_sub_op
1063           tsx7      0|inv_table_sub_op
1064 "
1065 subtract: fsb       0
1066 "
1067 tab_for_comma:
1068           tsx7      0|tab_for_comma_op
1069 "
1070 tmi:      tmi       0
1071 "
1072 tnz:      tnz       0
1073 "
1074 tpl:      tpl       0
1075 "
1076 tpnz:     tpnz      0
1077 "
1078 tra:      tra       0
1079 "
1080 tze:      tze       0
1081 "
1082 use_fcb:  tsx7      ap|use_fcb_op
1083 "
1084 use_file: tsx7      ap|setup_fcb_op
1085 "
1086 use_tty:  tsx7      ap|use_tty_op
1087 "
1088 write:    tsx7      ap|numeric_write_op
1089           tsx7      0|string_write_op
1090 "
1091 d_add:    dfad      0
1092 "
1093 d_change: tsx7      ap|change_from_string
1094           tsx7      ap|change_to_string
1095 "
1096 d_check_eof:
1097           tsx7      ap|check_eof_op
1098 "
1099 d_compare:
1100           dfcmp     0
1101 "
1102 d_data_read:
1103           tsx7      ap|numeric_data_read
1104           tsx7      ap|string_data_read
1105 "
1106 d_divide: dfdv      0
1107 "
1108 d_divide_inv:
1109           dfdi      0
1110 "
1111 d_end_input:
1112           tsx7      ap|end_input_op
1113 "
1114 d_end_print:
1115           tsx7      0|end_print_op
1116 "
1117 d_enter_main:
1118           tsp2      2|0,*
1119 "
1120 d_enter_proc:
1121           tsp2      2|2,*
1122 "
1123 d_error:  tsx7      ap|error_in_statement
1124           tsx7      ap|missing_line
1125           tsx7      ap|unclosed_for
1126           tsx7      ap|undefined_function
1127 "
1128 d_file:   tsx7      ap|file_fun
1129 "
1130 d_fneg:   fneg      0
1131 "
1132 d_fszn:   fszn      0
1133 "
1134 d_function_arg:
1135           epp2      0
1136           sprp2     0
1137           sprp6     0
1138           ldaq      0
1139           staq      0
1140 "
1141 d_function_call:
1142           epp3      0
1143           tsx7      0|fun_call_op
1144           tsx7      0|global_fun_call_op
1145 "
1146 d_function_return:
1147           epp3      0
1148           tsx7      0|fun_return_op
1149 "
1150 d_get_fcb_pt:
1151           lprp2     0
1152 "
1153 d_gosub:  tsx7      ap|gosub_op
1154 "
1155 d_inner_product:
1156           tsx7      0|dot_product
1157 "
1158 d_input:  tsx7      ap|numeric_input_op
1159           tsx7      ap|string_input_op
1160 "
1161 d_linput: zero
1162           tsx7      0|linput_op
1163 "
1164 d_load:   dfld      0                   numeric
1165           epp1      0
1166           epp2      0
1167           epp3      0
1168           ldq       0,dl
1169 "
1170 d_margin: tsx7      ap|margin_op
1171 "
1172 d_mat_data_read:
1173           tsx7      0|mat_numeric_data_read
1174           tsx7      0|mat_string_data_read
1175 "
1176 d_mat_input:
1177           tsx7      0|mat_numeric_input_op
1178           tsx7      0|mat_string_input_op
1179 "
1180 d_mat_linput:
1181           zero
1182           tsx7      0|mat_linput_op
1183 "
1184 d_mat_print:
1185           tsx7      0|mat_numeric_print_op
1186           tsx7      0|mat_string_print_op
1187 "
1188 d_mat_print_using:
1189           tsx7      0|mat_print_using_numeric
1190           tsx7      0|mat_print_using_string
1191 "
1192 d_mat_read:
1193           tsx7      0|mat_numeric_read_op
1194           tsx7      0|mat_string_read_op
1195 "
1196 d_mat_write:
1197           tsx7      0|mat_numeric_write_op
1198           tsx7      0|mat_string_write_op
1199 "
1200 d_matrix_add_sub:
1201           tsx7      0|mat_add
1202           tsx7      0|mat_sub
1203 "
1204 d_matrix_assign_numeric:
1205           tsx7      0|mat_assign_numeric
1206 "
1207 d_matrix_assign_string:
1208           tsx7      0|mat_assign_string
1209 "
1210 d_matrix_mult:
1211           tsx7      0|mat_mult_vm
1212           tsx7      0|mat_mult_mv
1213           tsx7      0|mat_mult_mm
1214 "
1215 d_matrix_scalar_mult:
1216           tsx7      0|mat_scalar_mult
1217 "
1218 d_multiply:
1219           dfmp      0
1220 "
1221 d_on:     tsx7      ap|on_op
1222 "
1223 d_on_gosub:
1224           tsx7      ap|on_gosub_op
1225 "
1226 d_power:  tsx7      ap|pwr_fun
1227 "
1228 d_power_inverse:
1229           tsx7      0|pwri_fun
1230 "
1231 d_print:  tsx7      ap|numeric_print_op
1232           tsx7      0|string_print_op
1233 "
1234 d_print_new_line:
1235           tsx7      0|print_new_line_op
1236 "
1237 d_print_using:
1238           tsx7      0|print_using_numeric_op
1239           tsx7      0|print_using_string_op
1240 "
1241 d_print_using_start:
1242           tsx7      0|print_using_start_op
1243 "
1244 d_print_using_end:
1245           tsx7      0|print_using_end_op
1246 "
1247 d_randomize:
1248           tsx7      0|randomize_fun
1249 "
1250 d_read:   tsx7      ap|numeric_read_op
1251           tsx7      0|string_read_op
1252 "
1253 d_redimension:
1254           tsx7      0|list_redim_op
1255           tsx7      0|table_redim_op
1256           tsx7      0|inv_table_redim_op
1257 "
1258 d_reset_ascii:
1259           tsx7      0|reset_ascii_op
1260 "
1261 d_reset_data:
1262           tsx7      0|reset_op
1263 "
1264 d_reset_random:
1265           tsx7      0|reset_random_op
1266 "
1267 d_return: tsx7      ap|return_op
1268 "
1269 d_save_fcb_pt:
1270           sprpbp    0
1271 "
1272 d_scratch:
1273           tsx7      ap|scratch_op
1274 "
1275 d_setdigits:
1276           tsx7      0|setdigits_op
1277 "
1278 d_stop:   tsx7      ap|stop_op
1279 "
1280 d_store:  dfst      0                   numeric
1281           spriab    0
1282           spribp    0
1283 "
1284 d_string_assign:
1285           eppbb     0
1286           tsx7      0|string_assign_op
1287 "
1288 d_string_compare:
1289           eppbb     0
1290           tsx7      0|string_compare_op
1291 "
1292 d_string_concatenate:
1293           eppbb     0
1294           tsx7      0|string_concatenate_op
1295 "
1296 d_subend: tsx7      ap|subend_op
1297 "
1298 d_subprogram_call:
1299           tsx7      0|sub_call_op
1300 "
1301 d_subscript:
1302           tsx7      0|list_sub_op
1303           tsx7      0|table_sub_op
1304           tsx7      0|inv_table_sub_op
1305 "
1306 d_subtract:
1307           dfsb      0
1308 "
1309 d_tab_for_comma:
1310           tsx7      0|tab_for_comma_op
1311 "
1312 d_tmi:    tmi       0
1313 "
1314 d_tnz:    tnz       0
1315 "
1316 d_tpl:    tpl       0
1317 "
1318 d_tpnz:   tpnz      0
1319 "
1320 d_tra:    tra       0
1321 "
1322 d_tze:    tze       0
1323 "
1324 d_use_fcb:
1325           tsx7      ap|use_fcb_op
1326 "
1327 d_use_file:
1328           tsx7      ap|setup_fcb_op
1329 "
1330 d_use_tty:
1331           tsx7      ap|use_tty_op
1332 "
1333 d_write:  tsx7      ap|numeric_write_op
1334           tsx7      0|string_write_op
1335 "
1336           use       internal_static
1337           join      /static/internal_static
1338           segdef    precision_length
1339 precision_length:
1340           dec       1
1341 "
1342           end