home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / misc / bcpl.ark / COMPHDR < prev    next >
Text File  |  1988-11-27  |  4KB  |  123 lines

  1. // Header for Z80 BCPL compiler
  2. // Copyright 1987 S. Kelley
  3.  
  4. GET "LIBHDR"
  5.  
  6. MANIFEST $(  //  AE tree symbols operators, and instructions.
  7.  
  8. // Code-stream pseudo instrs.
  9. S.ENDFILE=0
  10. S.LABDEF=1; S.GORG=2; S.WALIGN=3
  11. S.NEEDS=4; S.SECTION=5; S.STARTSECT=6
  12. S.STARTFILE=7; S.GLOBSYM=8; S.LABSYM=9
  13. S.NEWLAB=10
  14.  
  15. // Code-stream instructions.
  16. S.DW=32; S.DWLAB=33; S.DB=34
  17. S.LIMB=35; S.LIMDE=36; S.LIMBC=37
  18. S.LIMHL=38; S.RTAP=39; S.LIMIY=40
  19. S.GOTO=41; S.ADDHH=42; S.PLUS=43; S.LDBYTE=44
  20. S.LDHIM=45; S.BIT=46; S.DECIX=47; S.RET=48
  21. S.FINISH=49; S.ADDIYSP=50; S.ORA=51; S.ORH=52
  22. S.MINUS=53; S.LDAL=54; S.JPZ=55; S.JPNZ=56
  23. S.JPC=57; S.JPNC=58; S.JPPO=59; S.JPPE=60 
  24. S.DECA=61; S.SUBA=62; S.SWITCHON=63
  25. S.PUSHHL=64; S.POPHL=65; S.PUSHDE=66; S.POPDE=67
  26. S.NEG=68; S.ABS=69; S.NOT=70; S.RV=71; S.JPLAB=72
  27. S.LDLIX=73; S.STLIX=74; S.LDHIX=75; S.STHIX=76
  28. S.LDEIX=77; S.ADDHB=78; S.LDDIX=79; S.OFRV=80 
  29. S.LDHLGLB=81; S.STHLGLB=82; S.LDDEGLB=83; S.OFLV=84 
  30. S.LDHLLAB=85; S.STHLLAB=86; S.LDDELAB=87; S.VEC=88 
  31. S.BYTEAP=89; S.DIV=90; S.REM=91; S.MULT=92
  32. S.LS=93; S.GR=94; S.LE=95; S.GE=96; S.EQ=97; S.NE=98
  33. S.LSHIFT=99; S.RSHIFT=100; S.ORIX=101; S.LOGAND=102
  34. S.LOGOR=103; S.EQV=104; S.NEQV=105; S.LOCADDR=106
  35. S.GLBADDR=107; S.LABADDR=108; S.LABDEADR=109
  36. S.EXCHG=110; S.STBYTE=111; S.STIND=112
  37. S.INCHL=113; S.DECHL=114; S.INCDE=115; S.DECDE=116
  38. S.SUBHH=117; S.JPM=118; S.JPP=119; S.LDSPIY=120
  39. S.SKIP=121; S.INCLOC=122; S.SRTAP=123; S.TWODIV=124
  40. S.ADDIXBC=125; S.LDAGLB=126; S.LDALAB=127; S.LIMA=128
  41. S.LDAIX=129; S.STBYTEA=130; S.STBYTIM=131; S.STIXIM=132
  42. S.SUBHB=133; S.SKIPZ=134; S.INCIX=135
  43.  
  44. // AE tree operators not encountered in output
  45. S.NUMBER=200; S.NAME=201; S.STRING=202; S.TRUE=203
  46. S.FALSE=204; S.VALOF=205; S.LV=206; S.FNAP=207; S.QUERY=208
  47. S.COND=209; S.COMMA=210; S.AND=211; S.VALDEF=212
  48. S.VECDEF=213; S.OF=214; S.FNDEF=215; S.RTDEF=216
  49. S.ASS=217; S.TABLE=218; S.RESULTIS=219; S.COLON=220
  50. S.TEST=221; S.FOR=222; S.IF=223; S.UNLESS=224; S.WHILE=225
  51. S.UNTIL=226; S.REPEAT=227; S.REPEATWHILE=228
  52. S.REPEATUNTIL=229; S.LOOP=230; S.BREAK=231; S.RETURN=232
  53. S.ENDCASE=233; S.CASE=234; S.DEFAULT=235; S.SEQ=236
  54. S.LET=237; S.MANIFEST=238; S.GLOBAL=239; S.LOCAL=240
  55. S.LABEL=241; S.STATIC=242; S.BE=243; S.END=244; S.LSECT=245
  56. S.RSECT=246; S.GET=247; S.SEMICOLON=248; S.INTO=249; S.TO=250
  57. S.BY=251; S.DO=252; S.OR=253; S.RPAREN=254; S.LPAREN=255
  58. S.VECAP=256; S.SLCT=257
  59. $)
  60.  
  61. MANIFEST $(  //  selectors
  62. H1=0; H2=1; H3=2; H4=3; H5=4; H6=5 $)
  63.  
  64.  
  65. MANIFEST $(  //  assorted constants someone might want to change
  66. NAMETABLESIZE=64
  67. REPORTMAX=40
  68. LITMAX=50
  69. LG=FIRSTFREEGLOBAL // compiler global base
  70. SG=LG+20
  71. TG=SG+20
  72. TG0=TG+20
  73. TG1=TG0+20
  74. TG2=TG1+20
  75. $)
  76.  
  77. GLOBAL $( // LEX globals
  78. DECVAL:LG+0; WORDNODE:LG+1; SYMB:LG+2; ABORT:LG+3
  79. SOURCESTREAM:LG+4; OCODE:LG+5; REPORTCOUNT:LG+6
  80. NEXTSYMB:LG+7; NLPENDING:LG+8; SYNREPORT:LG+9
  81. $)
  82.  
  83. GLOBAL $( // SYN globals
  84. TREEP:SG+0; TREETOP:SG+1; TREEPMAX:SG+2
  85. RDBLOCKBODY:SG+3;  NULLTAG:SG+4; RBEXP:SG+5
  86. NEWVEC:SG+6; REC.P2:SG+7; LIST2:SG+8; LIST3:SG+9
  87. LIST4:SG+10; LIST5:SG+11; LIST6:SG+12
  88. REC.L:SG+13; REC.P1:SG+14
  89. $)
  90.  
  91. GLOBAL $( // TRN globals
  92.           // Variables. These would be static if it
  93.           // all fitted into one section
  94. CASEB:TG+0; DVECP:TG+1; CACHE.VAL:TG+2; CACHE.MODE:TG+3; SSP:TG+4
  95. CURPROC:TG+5; CASESTACK:TG+6; LOOPSTACK:TG+7; RESULTSTACK:TG+8
  96. BREAKLABEL:TG+9; RESULTLABEL:TG+10; DEFAULTLABEL:TG+11
  97. ENDCASELABEL:TG+12; LOOPLABEL:TG+13; STKDEPTH:TG+14; ARGSSP:TG+15
  98. SFSIZE:TG+16; RETTABLE:TG+17
  99. $)
  100.  
  101. GLOBAL $( // Global routines exported by TRN0
  102. TRANS:TG0+0; DECLLABELS:TG0+1
  103. $)
  104.  
  105. GLOBAL $( // Global routines exported by TRN1
  106. LOADHL:TG1+0; LOAD:TG1+1; LOADLR:TG1+2; LOADDE:TG1+3
  107. TRANSOF:TG1+4; PUSHDE:TG1+5; POPDE:TG1+6; SWAPROUND:TG1+7
  108. CONSTANT:TG1+8; ADDCONST:TG1+9; ASSIGN:TG1+10
  109. TRANSCALL:TG1+11; STORELOCAL:TG1+12; LOADLIST:TG1+13
  110. EVALCONST:TG1+14
  111. $)
  112.  
  113. GLOBAL $( // Global routines exported by TRN2
  114. OUT1:TG2+0; OUTB:TG2+1; OUT2:TG2+2
  115. WRITE1:TG2+3; WRITEB:TG2+4; WRITE2:TG2+5
  116. WRITESTRING:TG2+6; COMISJUMP:TG2+7
  117. STOPFLOW:TG2+8; ADDNAME:TG2+9; CELLWITHNAME:TG2+10
  118. COMPILEAE:TG2+11; CHECKDISTINCT:TG2+12; TRANSREPORT:TG2+13
  119. NEXTPARAM:TG2+14; COMPRETURN:TG2+15; ADDLIT:TG2+16
  120. COMPLAB:TG2+17; COMPJUMP:TG2+18; JUMPCOND:TG2+19
  121. TRANSNAME:TG2+20; STACKTO:TG2+21; BUMPP:TG2+22
  122. $)
  123.