@X @~
~V7 56 2 -5
~D10
~H                    MUSS
~
~
~D10
~H             BSC021
~D10
~MMANCHESTER UNIVERSITY  -  CONFIDENTIAL
~
~
~V2 -16
                                                            ISSUE 9~
~V2 0
~V9 -1
~P
~V9 1
~YBSC021
~S~M~LBASIC COMPILER IMPLEMENTATION DESCRIPTION
~S~M~LSection 2
~S~LSection 2. Configuration Section
~S~L1.1 General Description
~BThis section contains literal declarations for
other sections of the BASIC compiler.  The literals
either define the sizes of the main data structures or
represent item types.
~S~L2. Interfaces
~S~L2.1 Section Interfaces Used
~
   None.~
~Y
~P
~V9 -1
~D15
~HFLOWCHARTS
~
~
~H                BSC021
~V9 -1
~F
//17  8-AUG-83
@TITLE BSC02(1,11)
@COL 1S-2R-3R-4R-5R-7R-6F
@FLOW 1-2-3-4-5-7-6
@BOX 1.0
CONFIGURATION PARAMETERS
@BOX 2.0
DATA SEGMENT PARAMETERS
@BOX 3.0
DATA STRUCTURE SIZES
@BOX 4.0
NAMED PROCEDURE LITERALS
@BOX 5.0
COMPILER LITERALS
[BSC02.1]
@BOX 6.0
END
@BOX 7.0
CHARACTER SET DEPENDENT LITERALS
@BOX 1.1
MODULE(CHLISTZ,LBUFFZ,CLISTZ,PARAMSZ,NLISTZ,SBUFFZ,BLKZ,LINE.Z,
CASE.ITEM.Z, SEL.CONST.Z, SEL.STR.Z,
ERROR.HANDLERZ,GOSUBZ,LB.Z, M.ONE, ARRAYS.Z, T.UNQ.STRING,
CON.STK.Z,DATAB.Z,RESTOREB.Z,DEF.STR.Z,AS.Z,WS.Z,STRLIST.Z,ZERO,ONE,STR.N,
TNAME,TSTRING,TCONST,TTYPE,TOPNONKEY,TOPKEY,TDELIM,KUNDEF,KMAT,KVEC,KXH,
TRE32,TRE64,TIN16,TIN32,TLO32,TSTR,TLAB,TADPROC,TLO8,TADDR,
TL.TYP,KCONST,KVAR,KDUMMY,KFNSUB,KSUB,KFN,KINV,
B.ADDR.TY,B.NIL.N,BADDR,MAT.STR.N,RADIANS,DEGREES,PI,PIBY2,
B.STR, NIL.STRING, XH.Z, BIO.SEG.ADDR, ADDR.TY, BIO.AREA.NO,
MFN.I16, DEF.B.INT, DEF.B.RE, EXCEPTION.L, NL, NEWP, TAB,
DATA.SEG,DATA.SEG.Z,DATA.SEG.CNT,CH.T,CH.T.Z,HANDLER.Z);
EXIT; ::FROM AUTOMATIC INITIALISATION
*GLOBAL 5;
@BOX 2.1
::VAX $LI BIO.AREA.NO = 255;
::PTV $LI BIO.AREA.NO = 255;
::GEM $LI BIO.AREA.NO = 255;
::MU6 $LI BIO.AREA.NO = 31;
::VAX $LI DATA.SEG = 54;
::PTV $LI DATA.SEG = 30;
::GEM $LI DATA.SEG = 54;
::MU6 $LI DATA.SEG = 119;
::VAX $LI DATA.SEG.CNT = 2;
::PTV $LI DATA.SEG.CNT = 1
::GEM $LI DATA.SEG.CNT = 2
::MU6 $LI DATA.SEG.CNT = 1
$LI/$IN32 DATA.SEG.Z = %20000;
::VAX $LI DEF.B.RE = %18;
::PTV $LI DEF.B.RE = %10;
::GEM $LI DEF.B.RE = %10;
::MU6 $LI DEF.B.RE = %18;
::VAX $LI DEF.B.INT = %50;
::PTV $LI DEF.B.INT = %48
::GEM $LI DEF.B.INT = %48
::MU6 $LI DEF.B.INT = %50
::VAX LITERAL/$LO32 BIO.SEG.ADDR = %240000;
::PTV LITERAL/$LO32 BIO.SEG.ADDR = %5C0000;
::GEM LITERAL/$LO32 BIO.SEG.ADDR = %240000;
::MU6 LITERAL/$LO32 BIO.SEG.ADDR = %01DC0000
::VAX LITERAL MFN.I16 = 0;
::PTV LITERAL MFN.I16 = 1;
::GEM LITERAL MFN.I16 = 1;
::MU6 LITERAL MFN.I16 = 0;
LITERAL/$LO16  ADDR.TY = %4C, TADDR = %4C, B.ADDR = %A;
LITERAL/$LO8 B.ADDR.TY = %50;
@BOX 3.1
$LI LBUFFZ = 500,SBUFFZ = 2000, CLISTZ = 500, CH.T.Z = 128, ARRAYS.Z = 1000,
    CON.STK.Z = 256, DEF.STR.Z = 132, DATA.B.Z. = 5000,BLK.Z=128,
    CASE.ITEM.Z = 250, SEL.CONST.Z = 500, SEL.STR.Z = 1500,
    RESTORE.BZ = 128, ERROR.HANDLER.Z = 200, GOSUB.Z = 200,
    AS.Z = 500, WS.Z = 300, PARAMS.Z = 500, NLIST.Z = 1000, XH.Z = 256,LINE.Z=40
00,
    LB.Z = 5000, CHLIST.Z = 10000, STRLIST.Z = 1000, HANDLER.Z = 1024;
@BOX 4.1
@BOX 5.1
#BSC02.1
@BOX 6.1
*END
@BOX 7.1
$LI NL = 10, NEWP = 12, TAB = 9;
@END
//15
@TITLE BSC02.1(1,11)
@COL 1S-2R-3R-4R-5R-6R-7R-8R-9R-10R-11F
@FLOW 1-2-3-4-5-6-7-8-9-10-11
@BOX 1.0
COMPILER LITERALS
@BOX 2.0
SECTION 1
@BOX 3.0
SECTION 2
@BOX 4.0
SECTION 3
@BOX 5.0
SECTION 4
@BOX 6.0
SECTION 5
@BOX 7.0
SECTION 6
@BOX 8.0
SECTION 7
@BOX 9.0
SECTION 8
@BOX 10.0
SECTION 9
@BOX 11.0
END
@BOX 1.1
::COMPILER LITERALS
@BOX 2.1
$LI M.ONE = 2, ZERO = 3,  NIL.STRING = 5, RADIANS = 6,
    DEGREES = 7, PI = 8, PIBY2 = 9;
$LI / $LO16 ONE = 4;
@BOX 3.1
::NONE
@BOX 4.1
$LI TNAME = 15, TSTRING = 2, TCONST = 3, TDELIM = 4, TTYPE = 6,
    T.OP.NON.KEY = 0, T.OP.KEY = 7, T.UNQ.STRING=8;
@BOX 5.1
$LI TSTR = %80, TLAB = %2C, TADPROC = %24, TLO8 = %80, TRE32 = %C
$LI TRE64 = %1C, TIN16 = %44, TIN32 = %4C, TLO32 = %8C;
$LI BSTR = %C0;
*GLOBAL 6;
DATAVEC TL.TYP($LO8)
0 0 %C %1C 0 0 0 0
%40 %44 %4C %5C 0 0 0 0
%80 %84 %8C %9C 0 0 0 0
%80 0 0 0  0 0 0 0
END
@BOX 6.1
$LI / $LO8 KVAR = 0, KVEC = 1, KMAT = 2, KCONST = 3, KSUB = 6, KFN = 7,
           KBSUB = 8, KBFN = 9, KEXFN = 11, KEXSUB = 10, KINV = 14,
           KUNDEF = 15, KFNSUB = 13, KXH = 12;
::CH.T INDEXED BY CHARACTER-
::     BIT 0 = 1 PLAIN STRING CHAR
::     BIT 1 = 1 UNQUOTED STRING CHAR
::     BIT 2 = 1 QUOTED STRING CHAR
*GLOBAL 6;
DATAVEC CH.T ($LO8)
0[128] ::TBC
END
*GLOBAL 0;
@BOX 7.1
$LI STR.N = 10 + 64 * 4;  ::MTL TYPE ENCODING
$LI MAT.STR.N = 11 + 64 * 4;
$LI B.NIL.N = 12;
@BOX 9.1
$LI EXCEPTION.L = 100;
@END

