REM                     BASIC COMPILER                                          BAS00010
                        REM                     **********                                              00020
                        REM                     TELEBASIC REV. 1                                        00030
                        REM                        BASIC AND TEACH COMBINED                             00040
                        REM                        8 FEB 65                                             00050
                        REM                        3                                                    00060
                        REM                        ON TAPE 13                                           00070
                        REM                     **********                                              00080
                        REM                     PRIMARY MEMORY ALLOCATION                               00090
                        REM                     COMPILE TIME STORAGE ALLOCATION                         00100
                        REM                     **********                                              00110
                        REM                     USE OF INDEX GROUPS                                     00120
                        REM                        GROUP 0 IS THE STANDARD GROUP AND IS USED            00130
                        REM                        BY ALMOST EVERYTHING.                                00140
                        REM                        GROUP 1 IS USED BY PRINT AND INPUT.  IT              00150
                        REM                        IS NOT PRESERVED.                                    00160
                        REM                          GROUP 4 IS FREQUENTLY DESTROYED BY DATA            00170
                        REM             RUN-TIME USE OF INDEX GROUPS                                    00180
                        REM                  GROUP 0 ALMOST EVERYTHING                                  00190
                        REM                  GROUP 1-- REAL TIME INPUT                                  00200
                        REM                  GROUP 2-- XR21 IS USED BY POP AND PUSH AND MUST 8          00210
                        REM                       PRESERVERVED THROUGHOUT RUN-TIME                      00220
                        REM                  GROUP 4--DESTROYED BY DISK USE                             00230
                        REM                                                                             00240
        00205   TRPLOC  EQO     205             TRAP INDEX  GROUP 33                                    00250
        01400   WORK    EQO     1400            CONSTANTS AND SOME RUN-TIME SUBROUTINES                 00260
        04000           LOC     4000            SAVE AREA                                               00270
        04000   TIME    BSS     1                       ADJUSTED STARTING TIME                          00280
        04001   EXON    BSS     1                       OUTPUT BUFFER POINTER                           00290
        04002   ENTIRE  BSS     1                       COMBINED LENGTH OF TESTED AND TESTER            00300
        04003   LENGTH  BSS     1                       LENGTH OF SOURCE PROGRAM  [MOD 64]              00310
        06000   UX      EQO     6000            PICK UP SOURCE HERE                                     00320
        04100           LOC     4100    COMPILE TIME USE OF 4100 TO BEGINNING OF EXL                    00330
        04100   E       BSS     400             ERROR MESSAGE OUTPUT BUFFER                             00340
        04720   VC      BSS     72              WORKING STORAGE                                         00350
        05030   T       BSS     24              TEMPORARY STORAGE                                       00360
        05060   L       BSS     80              LINE TRANSLATION BUFFER                                 00370
        05200   F       BSS     480             FIRST ORDERS OF INSTRUCTIONS                            00380
                        REM                                     FIRST WORD--BINARY LINE NO.             00390
                        REM                                     SECOND WORD--LOCATION                   00400
        06140   ARB     BSS     150             ARITH ROUTINE OBJECT BUFFER                             00410
        06366   ARU     BSS     50              ARITH ROUTINE WORKING SRTOE                             00420
        06450   N       BSS     42              USED TO COMPILE FOR STATEMENTS                          00430
                        REM                             WORD TRIPLES                                    00440
                        REM                                     WORD 1--LOC OF INDEX VARIABLE           00450
                        REM                                     WORD 2--LOC OF INTERIOR OF LOOP         00460
                        REM                                     WORD3--LOC OF RUNTIME STORE             00470
                        REM                                                                             00480
                        REM             RUN-TIME USE OF AREA BETWEEN 4100 AND EXL                       00490
        04100           LOC     4100                                                                    00500
        04100   EXO     BSS     860             OUTPUT BUFFER                                           00510
        05634   EXIR    BSS     104             TEMP STORE FOR FOR LOOPS. 4 WORDS PER LOOP              00520
        06004   EXU     BSS     100             TEMP STORE FOR ARITHMETIC STATEMENTS                    00530
        06150   TEMP    BSS     22              TEMP STORE FOR STANDARD ROUTINES [SIN,ETC]              00540

        06176   WS      BSS     50              WORKING STORAGE FOR RUNTIME ROUTINES                    00550
        06260   RST     EQU     *               STACK OF RETURN ADDRESS FOR GOSUBS                      00560
                        REM                                                                             00570
                        REM             REST OF 6K AREA USED IN COMMON BY COMPILE AND RUN               00580
        06522           ORG     N+42                                                                    00590
        06522   EXL     BSS     150             GENERATED CONSTANTS                                     00600
        06750   G       BSS     80              GO-TABLE                                                00610
                        REM                             DURING RUN BRANCHES, DURING COMPILE             00620
                        REM                                     BINARY LINE NO.S                        00630
        07070   B       BSS     42              COMMUNICATION BETWEEN COMPILE AND RUN                   00640
        07142           BSS     22                      UNUSED [HELD TO FORCE DATA TO MOD 64]           00650
        07170   PLIST   BSS     4               FILE CONTROL LIST FOR DATA I/O                          00660
        07174   DATAJ   BSS     1               REGION POINTER [RENGE 0-255]                            00670
        07175   DATAI   BSS     1               BUFFER POINTER [ RANGE 0-127]                           00680
        07176   DEND    BSS     1               LAST RECORD OF DATA                                     00690
        07177   DREC    BSS     1               LAST READ RECORD [NEXT TO BE PROCESSED]                 00700
        07200   D       BSS     256             DATA REGION                                             00710
        07600           BSS     1               RESERVED FOR DISK PARITY ERRORS                         00720
        07601   DPNT    BSS     1               CURRENT DATA REORD                                      00730
        07602   FNT     BSS     28              FUNCTION DEFINITION TRANFER TABLE                       00740
        07636   DIMX    BSS     54              DIMENSION TABLE. WORD PAIRS--                           00750
                        REM                             WORD 1--ABS LOC OF 1ST ELEMENT                  00760
                        REM                             WORD 2-- # OF COL AT B89                        00770
                        REM                                             # OF ROWS AT B19                00780
        07724   P       EQU     *               OBJECT  AND VARIABLE AREA                               00790
        17326   VARTAR  EQO     17326                   SYMBOL TABLE. DESTROYED AT RUN TIME             00800
        17764   DS      EQO     17764                   $ VARIABLE PORTON OF SYMBOL TABLE               00810
        17777   TOP     EQO     17777                   TOP OF LOWER MEMORY                             00820
                        REM                             **********                                      00830
                        REM                             **********                                      00840
                        REM                             HEADING FOR TIME SHARING EXECUTIVE              00850
        20000           LOC     20000                                                                   00860
20000   0000000         DEC     0                       THIS LOCATION   IS FIELD IN BY THE EXEC         00870
20001   2600012         BRU     START                   INITIAL ENTRY POINT                             00880
20002   3777777         DEC     -1                      BRANCH TO CLEANUP IF SCRATCH DISK IS USED       00890
20003   3777777         DEC     -1                      SAVED FOR FUTURE COMPATIBILITY                  00900
20004   0222162         ALF     BAS                     SYSTEM NAME                                     00910
20005   0000000         DEC     0                       0VERLAY NUMBER                                  00920
20006   0001400         DEC     WORK                    TO LOCATION FOR INITIAL MOVE                    00930
20007   3775400         DEC     -1280                   THIS NAY WORDS                                  00940
20010   0031400         OCT     31400                   FROM THIS LOCATION                              00950
20011   0070002         OCT     70002                                                                   00960
                        NAM                             COMPILER INITIALIZATION                         00970
                        EJT                                                                             00980
20012   2506016 START   SET     PBK                     AVOID INTERRUPT UNTIL LENGTH AND ENTIRE         00990
                        REM                             ARE PICKED UP                                   01000
20013   2506013         SXG     0                       MAIN INDEX GROUP                                01010
20014   1003644         OLD     TRPBR                   INITIALIZE TRAP LOCATIONS                       01020
20015   1300206         DST     TRPLOC+1                                                                01030
20016   0300205         STA     TRPLOC                                                                  01040
                        REM                             THE NEXT DOZEN INSTRUCTIONS DETERMINE FROM      01050
                        REM                             THE SIGN OF LENGTH  WHTHER THIS IS A TEACH      01060
                        REM                             OR BASIC RUN.  LENGTH HAS A MINUS SIGN          01070
                        REM                             TACKED ON IF THE PROGRAM IS TO BE TEACH.        01080
20017   0004003         LDA     LENGTH          LENGTH OF SOURCE OR PROGRAM TO BE TESTED PART           01090
20020   2511000         SRQ     0               SAVE THE SIGN IN Q                                      01100
20021   2002657         EXT     SIGN                                                                    01110
20022   0300001         STA     XR01            HOLD IN XR UNTIL MEMORY HAS BEEN CLEARED                01120
20023   2512200         SLD     0               GET BACK THE SIGN BIT                                   01130
20024   2510023         SRA     19              SET A TO -1 OR 0 DEPENDING ON SIGN BIT                  01140
20025   0300002         STA     XR02            HOLD IN INDEX UNTIL 6K AREA IS CLEANED UP               01150
20026   2516002         BNZ                                                                             01160
20027   2600032         BRU     ++3                                                                     01170
20030   0000001         LDA     XR01            LENGTH OF SOURCE IF THIS IS BASIC                       01180
20031   2600033         BRU     ++2                                                                     01190
20032   0004002         LDA     ENTIRE          LENGTH OF PROG TO BE TESTED AND TESTER                  01200
20033   2512006         SLA     6                                                                       01210
20034   2506015         SET     PST             JHON CAN NOW FUDGE UP THE SAV AREA                      01220
20035   2504522         NE*                                                                             01230
20036   2504004         LQA                     GET READY FOR MOV                                       01240
20037   0103463         ADD     VARLOC          GIVES TO ADDRESS                                        01250
20040   0300003         STA     XR03            POINTS TO BEGINNING OF SOURCE PROGRAM                   01260
20041   2406000         MOV     UX              MOVE SOURCE PROGRAM UP                                  01270
20042   0002726         LDA     ZEP0                                                                    01280


BasicCompiler (last edited 2008-04-16 23:05:01 by Inazo)