/*****************************************************************************\
*                           Systems Research Group                            *
*******************************************************************************


                  #####    ######   ##    ##  ######    #######  
                 #######  ########  ##    ##  #######   ######## 
                ##        ##        ##    ##  ##    ##  ##    ## 
                ##        ##  ####  ########  ##    ##  ######## 
                ##        ##    ##  ##    ##  ##    ##  #######  
                ##        ##    ##  ##    ##  ##    ##  ##  ##   
                 #######  ########  ##    ##  #######   ##   ##  
                  #####    ######   ##    ##  ######    ##    ## 


*******************************************************************************
*   I. D. Wilson           Last Modified   -   IDW   -   18/02/85             *
\*****************************************************************************/



GLOBAL
$(
    addname               :  ug + 0
    addslaveinfo          :  ug + 1
    arg1                  :  ug + 2
    arg2                  :  ug + 3
    bcplalign             :  ug + 4
    block2                :  ug + 5
    block3                :  ug + 6
    callmonfunction       :  ug + 7
    cg.apply              :  ug + 8
    cg.branch             :  ug + 9
    cg.byteop             :  ug + 10
    cg.comparejump        :  ug + 11
    cg.constant           :  ug + 12
    cg.data               :  ug + 13
    cg.dyadic             :  ug + 14
    cg.endproc            :  ug + 15
    cg.entry              :  ug + 16
    cg.finish             :  ug + 17
    cg.global             :  ug + 18
    cg.goto               :  ug + 19
    cg.initstore          :  ug + 20
    cg.jump               :  ug + 21
    cg.loadt              :  ug + 22
    cg.monadic            :  ug + 23
    cg.neg                :  ug + 24
    cg.plusminus          :  ug + 25
    cg.putbyte            :  ug + 26
    cg.res                :  ug + 27
    cg.return             :  ug + 28
    cg.rstack             :  ug + 29
    cg.save               :  ug + 30
    cg.setlabel           :  ug + 31
    cg.stack              :  ug + 32
    cg.stackop            :  ug + 33
    cg.stind              :  ug + 34
    cg.stindop            :  ug + 35
    cg.store              :  ug + 36
    cg.storeitem          :  ug + 37
    cg.switchon           :  ug + 38
    cg.uninitstore        :  ug + 39
    cg.unslavelocal       :  ug + 40
    cg.unslavestorage     :  ug + 41
    cgerror               :  ug + 42
    cglabel               :  ug + 43
    cgwarning             :  ug + 44
    cherish               :  ug + 45
    chseq                 :  ug + 46
    chseqr                :  ug + 47
    code.i.1              :  ug + 48
    code.i.2              :  ug + 49
    code.il.2             :  ug + 50
    code.il.3             :  ug + 51
    code.im.1             :  ug + 52
    code.ir.3             :  ug + 53
    code.l.2              :  ug + 54
    code.li.3             :  ug + 55
    code.lr.4             :  ug + 56
    code.m.1              :  ug + 57
    code.n.1              :  ug + 58
    code.n.2              :  ug + 59
    code.r.2              :  ug + 60
    code.ri.3             :  ug + 61
    code.rl.3             :  ug + 62
    code.rl.4             :  ug + 63
    code.rn.2             :  ug + 64
    code.rn.3             :  ug + 65
    code.rr.1             :  ug + 66
    code.s.1              :  ug + 67
    code.ss.1             :  ug + 68
    code.ss.2             :  ug + 69
    compare.cc            :  ug + 70
    condition             :  ug + 71
    currentloc            :  ug + 72
    datae                 :  ug + 73
    datap                 :  ug + 74
    debugging             :  ug + 75
    destackitem           :  ug + 76
    discardslave          :  ug + 77
    evaltype              :  ug + 78
    evaluate              :  ug + 79
    findfreer             :  ug + 80
    freeblock2            :  ug + 81
    freeblock3            :  ug + 82
    freecherished         :  ug + 83
    freelist2             :  ug + 84
    freelist3             :  ug + 85
    freenode              :  ug + 86
    fromfile              :  ug + 87
    fromstream            :  ug + 88
    getstore              :  ug + 89
    highbyte              :  ug + 90
    incode                :  ug + 91
    labeladdr             :  ug + 92
    labelrefs             :  ug + 93
    lengthlab             :  ug + 94
    listfile              :  ug + 95
    listing               :  ug + 96
    liststream            :  ug + 97
    loadindexvalue        :  ug + 98
    lookinslave           :  ug + 99
    lookuplabel           :  ug + 100
    lowbyte               :  ug + 101
    mapfile               :  ug + 102
    mapping               :  ug + 103
    mapstream             :  ug + 104
    maxgn                 :  ug + 105
    maxlabel              :  ug + 106
    maxln                 :  ug + 107
    memchunks             :  ug + 108
    monargument           :  ug + 109
    monfunction           :  ug + 110
    monloadfunction       :  ug + 111
    monstorefunction      :  ug + 112
    movetoanybutr         :  ug + 113
    movetoanyr            :  ug + 114
    movetor               :  ug + 115
    namelist              :  ug + 116
    newlabel              :  ug + 117
    notcond               :  ug + 118
    notcherished          :  ug + 119
    parseocode            :  ug + 120
    printdebuginfo        :  ug + 121
    procdepth             :  ug + 122
    programbase           :  ug + 123
    rchnode               :  ug + 124
    rchseq                :  ug + 125
    rdg                   :  ug + 126
    rdl                   :  ug + 127
    rdn                   :  ug + 128
    rdop                  :  ug + 129
    reverse               :  ug + 130
    rinfo                 :  ug + 131
    rstcount              :  ug + 132
    rstfuncs              :  ug + 133
    rstinsts              :  ug + 134
    scanforregister       :  ug + 135
    setlabel              :  ug + 136
    setlabelrefs          :  ug + 137
    ssp                   :  ug + 138
    stackcherished        :  ug + 139
    stackitem             :  ug + 140
    stackp                :  ug + 141
    startcoding           :  ug + 142
    stopcoding            :  ug + 143
    storage.chunksize     :  ug + 144
    storage.high          :  ug + 145
    storage.low           :  ug + 146
    storage.root          :  ug + 147
    storecherished        :  ug + 148
    storeregister         :  ug + 149
    symmetric             :  ug + 150
    sysout                :  ug + 151
    systemindex           :  ug + 152
    tofile                :  ug + 153
    tostream              :  ug + 154
    totalstorage          :  ug + 155
    totalused             :  ug + 156
    uncherish             :  ug + 157
    unsetslave            :  ug + 158
    update                :  ug + 159
    writel                :  ug + 160
$)



MANIFEST
$(
    s.true                =  4          
    s.false               =  5          
    s.rv                  =  8          
    s.fnap                =  10         
    s.mult                =  11         
    s.div                 =  12         
    s.rem                 =  13         
    s.plus                =  14         
    s.minus               =  15         
    s.query               =  16         
    s.neg                 =  17         
    s.abs                 =  19         
    s.eq                  =  20         
    s.ne                  =  21         
    s.ls                  =  22         
    s.gr                  =  23         
    s.le                  =  24         
    s.ge                  =  25         
    s.not                 =  30         
    s.lshift              =  31         
    s.rshift              =  32         
    s.logand              =  33         
    s.logor               =  34         
    s.eqv                 =  35         
    s.neqv                =  36         
    s.needs               =  48         
    s.section             =  49         
    s.rtap                =  51         
    s.goto                =  52         
    s.finish              =  68         
    s.switchon            =  70         
    s.global              =  76         
    s.lp                  =  40         
    s.lg                  =  41         
    s.ln                  =  42         
    s.lstr                =  43         
    s.ll                  =  44         
    s.llp                 =  45         
    s.llg                 =  46         
    s.lll                 =  47         
    s.sp                  =  80         
    s.sg                  =  81         
    s.sl                  =  82         
    s.stind               =  83         
    s.jump                =  85         
    s.jt                  =  86         
    s.jf                  =  87         
    s.blab                =  89         
    s.lab                 =  90         
    s.stack               =  91         
    s.store               =  92         
    s.rstack              =  93         
    s.entry               =  94         
    s.save                =  95         
    s.fnrn                =  96         
    s.rtrn                =  97         
    s.res                 =  98         
    s.datalab             =  100        
    s.iteml               =  101        
    s.itemn               =  102        
    s.endproc             =  103        
    s.endfor              =  88         
    s.getbyte             =  120        
    s.putbyte             =  121        
    s.end                 =  0          

    s.itemb               =  200        
    s.debug               =  201        
$)



MANIFEST
$(
    error.toolarge        =  1000       
    error.nospace         =  1001       

    savespacesize         =  2          
    bytesperz80word       =  2          

    NIL                   =  0

    bytesperchunk         =  1024
    wordsperchunk         =  bytesperchunk/bytesperword

    maxchunks             =  20

    t.local               =  1000       
    t.global              =  1001       
    t.label               =  1002       
    t.lv.local            =  1003       
    t.lv.global           =  1004       
    t.lv.label            =  1005       
    t.number              =  1006       
    t.stack               =  1007       
    t.register            =  1008       
    t.cherished           =  1009       

    r.hl                  =  0          
    r.de                  =  1          
    r.bc                  =  2          

    r.a                   =  3
    r.b                   =  4
    r.c                   =  5
    r.d                   =  6
    r.e                   =  7
    r.h                   =  8
    r.l                   =  9
    r.ihl                 =  10

    r.none                =  -1         

    b.link                =  0          

    a.link                =  0          
    a.ssp                 =  1          
    a.node                =  2          

    n.type                =  0          
    n.arg1                =  1          
    n.arg2                =  2          

    d.link                =  0          
    d.type                =  1          
    d.value               =  2          

    l.link                =  0          
    l.type                =  1          
    l.value               =  2          

    r.link                =  0          
    r.addr                =  1

    nl.link               =  0
    nl.name               =  1
    nl.addr               =  2
    nl.type               =  3
    nl.value              =  4
    nl.size               =  4

    cond.always           =  2000       
    cond.eq               =  2001       
    cond.ne               =  2002       
    cond.ls               =  2003       
    cond.gr               =  2004       
    cond.le               =  2005       
    cond.ge               =  2006       
    cond.carry            =  2007
    cond.nocarry          =  2008

    cc.none               =  3000       
    cc.z                  =  3001       
    cc.nz                 =  3002       
    cc.p                  =  3003       
    cc.m                  =  3004       
    cc.c                  =  3005
    cc.nc                 =  3006
$)



MANIFEST
$(
    dupl0                 =  #B000000000 
    dupl1                 =  #B100000000 

    i.inc                 =  #B00000011 
    i.dec                 =  #B00001011 
    i.and                 =  #B10100000 
    i.or                  =  #B10110000 
    i.xor                 =  #B10101000 
    i.sbchl               =  #B01000010 
    i.addhl               =  #B00001001 
    i.ldrr                =  #B01000000 
    i.cpl                 =  #B00101111 
    i.ldrn                =  #B00000110 
    i.ldrnn               =  #B00000001 + dupl0
    i.ldrll               =  #B00000001 + dupl1
    i.push                =  #B11000101 
    i.pop                 =  #B11000001 
    i.ret                 =  #B11001001 
    i.jpihl               =  #B11101001 
    i.exx                 =  #B11011001 
    i.jr                  =  #B00011000 + dupl0
    i.jrz                 =  #B00101000 
    i.jrnz                =  #B00100000 
    i.jrc                 =  #B00111000 + dupl0
    i.jrnc                =  #B00110000
    i.jp                  =  #B11000011 
    i.jpz                 =  #B11001010 
    i.jpnz                =  #B11000010 
    i.jpnc                =  #B11010010
    i.jpc                 =  #B11011010
    i.jpp                 =  #B11110010 
    i.jpm                 =  #B11111010 
    i.ldri                =  #B01000110 
    i.ldir                =  #B01110000 
    i.ldhll               =  #B00101010 
    i.ldrl                =  #B01001011 
    i.srl                 =  #B00111000 + dupl1 
    i.rr                  =  #B00011000 + dupl1
    i.ldlhl               =  #B00100010 
    i.ldlr                =  #B01000011 
    i.cpir                =  #B10110001
    i.nop                 =  #B00000000 
    i.rst00               =  #B11000111 
    i.rst08               =  #B11001111 
    i.rst10               =  #B11010111 
    i.rst18               =  #B11011111 
    i.rst20               =  #B11100111 
    i.rst28               =  #B11101111 
    i.rst30               =  #B11110111
    i.rst38               =  #B11111111

    esc.cb                =  #B11001011 
    esc.dd                =  #B11011101 
    esc.ed                =  #B11101101 
    esc.fd                =  #B11111101

    m.jpentrysize         =  3

    m.default             =  -1

    m.apply               =  0  * m.jpentrysize
    m.fixup               =  1  * m.jpentrysize
    m.loadix              =  2  * m.jpentrysize
    m.loadiy              =  3  * m.jpentrysize
    m.storeix             =  4  * m.jpentrysize
    m.storeiy             =  5  * m.jpentrysize
    m.setlink0            =  6  * m.jpentrysize
    m.setlink1            =  7  * m.jpentrysize
    m.setlink2            =  8  * m.jpentrysize
    m.setlink3            =  9  * m.jpentrysize        
    m.return              =  10 * m.jpentrysize         
    m.finish              =  11 * m.jpentrysize         
    m.loadlvix            =  12 * m.jpentrysize        
    m.loadlviy            =  13 * m.jpentrysize        
    m.multiply            =  14 * m.jpentrysize        
    m.divide              =  15 * m.jpentrysize        
    m.rem                 =  16 * m.jpentrysize        
    m.lshift              =  17 * m.jpentrysize        
    m.rshift              =  18 * m.jpentrysize        
    m.eq                  =  19 * m.jpentrysize        
    m.ne                  =  20 * m.jpentrysize        
    m.ls                  =  21 * m.jpentrysize        
    m.gr                  =  22 * m.jpentrysize        
    m.le                  =  23 * m.jpentrysize        
    m.ge                  =  24 * m.jpentrysize        
    m.rdivide             =  25 * m.jpentrysize        
    m.rrem                =  26 * m.jpentrysize        
    m.rlshift             =  27 * m.jpentrysize        
    m.rrshift             =  28 * m.jpentrysize        
    m.abs                 =  29 * m.jpentrysize        
    m.linsearch           =  30 * m.jpentrysize
$)


