$$CGHDR := TRUE
$<COMHDR'       GET "COMHDR"    $>COMHDR'
$<AEOCHDR'      GET "AEOCHDR"   $>AEOCHDR'
$<OCODEHDR'     GET "OCODEHDR"  $>OCODEHDR'
$<MIPMANHDR'    GET "MIPMANHDR" $>MIPMANHDR'
MANIFEST
$(  // Single length memory reference generated by GENS(F, R, M, A)
   f.l    = #X8000;    f.st   = #X8400;    f.add  = #X8800;    f.sub  = #X8C00;
   f.exch = #X9000;    f.and  = #X9400;    f.or   = #XB400;    f.xor  = #X9800;
   f.csk  = #XB800;    f.jmp  = #X9C00;    f.ims  = #XDC00;    f.jst  = #XBC00;

   // Double length memory reference, Generated by GENE(F, R, M, A)
   f.mul  = #X0700;    f.div  = #X0701;    f.addc = #X0702;    f.subc = #X2702;
   f.cea  = #X0704;    f.csm  = #X0705;    f.ld   = #X0706;    f.std  = #X0707;
   f.le   = #X0708;    f.ste  = #X0709;    f.adde = #X070A;    f.sube = #X070B;
   f.exche= #X070C;    f.jmpe = #X070D;    f.jste = #X270D;    f.imse = #X470D;
   f.dmse = #X670D;    f.ande = #X070E;    f.ore  = #X270E;    f.xore = #X070F;
   f.cske = #X270F;

   // Immediate, Generated by GENI(F, R, A)
   f.lbni = #X0800;    f.lbpi = #X0900;    f.subi = #X0A00;    f.addi = #X0B00;
   f.csln = #X0C00;    f.cski = #X0D00;    f.xori = #X1700;    f.andi = #X1800;
   f.ori  = #X1900;

   // Register-register, Generated by GENRR(F, S, D)
   f.nop  = #X0000;    f.lr   = #X0000;    f.neg  = #X0001;    f.addr = #X0002;
   f.subr = #X0003;    f.andr = #X0004;    f.xorr = #X0005;    f.csmr = #X0006;
   f.orr  = #X0007;    f.exchr= #X0008;    f.comp = #X0009;    f.csn  = #X000A;
   f.cskr = #X000B

   // Register bit change, Generated by GENBIT(F, B, R)
   f.sbit = #X000C;    f.rbit = #X000D;    f.cbit = #X000E;    f.tbit = #X000F;

   // Shift instructions, Generated by GENSH(F, R, S)
   f.sll  = #X0E00;    f.srl  = #X0E08;    f.sra  = #X0E0C;    f.srda = #X0F0C;

   // Conditional jumps, Generated by
   f.jeq  = #X1100;    f.jne  = #X1180;    f.jgt  = #X1200;    f.jle  = #X1280;
   f.jge  = #X1300;    f.jlt  = #X1380;    f.ijeq = #X1400;    f.ijne = #X1480;
   f.jeqd = #X1500;    f.jned = #X1580;

   // Control instructions
   f.xnx = #X030A

   // Addressing modes
   m.rel = #X200;    m.i   = #X100;    m.x   = #X080;    m.y   = #X040;

   // Standard addresses
   a.stkchk =  #X2C +m.i;    a.lshift =  #X27 +m.i;    a.rshift =  #X28 +m.i;
   a.rtn    =  #X24     ;    a.prfc   =  #X2B +m.i;    a.gbyte  =  #X29 +m.i;
   a.pbyte  =  #X2A +m.i;

   // Data types. (Packed into two bits)
   d.itemn=     0;    d.iteml =     1;    d.blkl  =      2;    d.blkn  =     3;
   s.debug  =109;

// Basic constants
   yes = TRUE; no = FALSE

// Register mnemonics
   r.a     = 0; r.q     = 1; r.y     = 2; r.x     = 3; r.l     = 4; r.p     = 5;

   k.none  = 0; k.numb  = 1; k.loc   = 2; k.glob  = 3; k.lab   = 4; k.reg   = 6;
   k.ry    = 7; k.lvloc = 8; k.lvglob= 9; k.lvlab =10; k.jlab  =11; k.abs   =12;
$)

GLOBAL $(
$<PDPRSX WRITEWORDS : 0; READWORDS  : 0 $>PDPRSX
//         verstream    :   -> LISTOUT
//         ocodestream  :   -> OCODE
//         codestream   :   -> CODE
//         datvec       :   -> DATEVEC
//         naming       :   -> SECTNAMING
//         progsize     :  191
         profcounting   : CG+   0  //===========================================
//         altobj               : CG+   1

         switchspace    : CG+   2
         tempfile       : CG+   3
         reg.locked     : CG+   4
         registers      : CG+   5
         reg.k          : CG+   6
         reg.n          : CG+   7
         tempv          : CG+   8
         tempt          : CG+   9
         maxssp         : CG+  10
         ssp            : CG+  11
         arg1           : CG+  12
         arg2           : CG+  13
         maxgn          : CG+  14
         krefv          : CG+  15
         kreft          : CG+  16
         krefp          : CG+  17
         reflist        : CG+  18
         refliste       : CG+  19
         ereflist       : CG+  20
         nlabrefs       : CG+  21
         dlist          : CG+  22
         dliste         : CG+  23
         kcmpv          : CG+  24
         kcmpp          : CG+  25
         kcmpt          : CG+  26
         procstk        : CG+  27
         procstkp       : CG+  28
         procstkt       : CG+  29
         freelist       : CG+  30
         labv           : CG+  31
         labt           : CG+  32
         paramnumber    : CG+  33
         skiplab        : CG+  34
         countflag      : CG+  35
         incode         : CG+  36
         stv            : CG+  37
         stvp           : CG+  38
         op             : CG+  39
         pendingop      : CG+  40
         namesection    : CG+  41
         dp             : CG+  42
         casek          : CG+  43
         casel          : CG+  44
         swreg          : CG+  45
//       maxused        : CG+  46
//       any.globals    : CG+  47
         needslist      : CG+  48

         rdn            : CG+  49
         rdl            : CG+  50
         rdgn           : CG+  51
         nextparam      : CG+  52
         initstack      : CG+  53
         cgerror        : CG+  54
         stack          : CG+  55
         store          : CG+  56
         scan           : CG+  57
         cgpendingop    : CG+  58
         cgdyadic       : CG+  59
         bitpos         : CG+  60
         movetoaqy      : CG+  61
         movetoaq       : CG+  62
         movetor        : CG+  63
         storet         : CG+  64
         anybut         : CG+  65
         freereg        : CG+  66
         itemusing      : CG+  67
         forgetall      : CG+  68
         forgetreg      : CG+  69
         forgetvar      : CG+  70
         forgetallvars  : CG+  71
         remem          : CG+  72
         setinfo        : CG+  73
         moveinfo       : CG+  74
         argreg         : CG+  75
         loadt          : CG+  76
         lose1          : CG+  77
         regusedby      : CG+  78
         isfree         : CG+  79
         storei         : CG+  80
         findoffset     : CG+  81
         storein        : CG+  82
         cglab          : CG+  83
         cgrv           : CG+  84
         cgmult         : CG+  85
         cgdiv          : CG+  86
         cgshift        : CG+  87
         cgstatics      : CG+  88
         cgglobal       : CG+  89
         cgdata         : CG+  90
         cgstring       : CG+  91
         cgerefs        : CG+  92
         cgentry        : CG+  93
         cgsave         : CG+  94
         cgapply        : CG+  95
         cgreturn       : CG+  96
         cgswitch       : CG+  97
         cgbranch       : CG+  98
         setrtok        : CG+  99
         getblk         : CG+ 100
         rtnblk         : CG+ 101
         revop          : CG+ 102
         code           : CG+ 103
         gensh          : CG+ 104
         gens           : CG+ 105
         gene           : CG+ 106
         gensore        : CG+ 107
         genrr          : CG+ 108
         genbit         : CG+ 109
         genb           : CG+ 110
         genjmp         : CG+ 111
         insertcount    : CG+ 112       //======================================
         labref         : CG+ 113
//       initdatalists  : CG+ 114
         checkspace     : CG+ 115
         incrstvp       : CG+ 116
         chkrefs        : CG+ 117
         setlabel       : CG+ 118
         unsetlabel     : CG+ 119
         dealwithkref   : CG+ 120
         fillinrelref   : CG+ 121
         fillineref     : CG+ 122
         removerefsto   : CG+ 123
         gengoto        : CG+ 124
         genm           : CG+ 125
         mref           : CG+ 126
         eref           : CG+ 127
         addkcmp        : CG+ 128
         getkcmp        : CG+ 129
         addkref        : CG+ 130
         getkref        : CG+ 131
         geteref        : CG+ 132
         outputsection  : CG+ 133
         dboutput       : CG+ 134
         refinrange     : CG+ 135
         geni           : SYNTRN+   0
         loadarg        : SYNTRN+   1
         cggetbyte      : SYNTRN+   2
         cgputbyte      : SYNTRN+   3
//       collapse       : SYNTRN +140
         cgdatawords    : SYNTRN+   4
         getdatablk     : SYNTRN+   5
         putdatablkitem : SYNTRN+   6
         cgdatablks     : SYNTRN+   7
$)


