*COMDECK  CGHCRMD 
 CGHCRMD  CTEXT  CGHCRMD - HOST COMPILER REQUIRED MACRO DEFINITIONS 
**        CGHCRMD - HOST COMPILER REQUIRED MACRO DEFINITIONS FOR THE
*         HOST COMPILER"S ASSEMBLY TEXT.
* 
*         IF THE HOST MAKES THE *C* OPTION ( COMPASS ASSEMBLY ) 
*         AVAILABLE, THEN IT WILL HAVE TO SUPPLY A "LPN"MAC SYSTEMS 
*         TEXT FOR COMPASS TO USE WHEN THE *COMPS* FILE IS ASSEMBLED. 
*         THE BELOW MACROS SHOULD BE INCLUDED IN THAT TEXT. 
 USKBLK   SPACE  2,12 
**        USEBLK - DEFINE LIBRARY NAMES,ORDERING OF FIXED LOCAL BLOCK 
*         AND OTHER MISCELLANEOUS VALUES FOR USE AT ASSEMBLY TIME 
  
 USEBLK   MACRO 
          SST 
*                            DEFINE ORDER OF FIXED LOCAL BLOCKS 
          IFC    NE,/"HC.FLB"//,4 
          ECHO   1,Z=("HC.FLB") 
          USE    Z
*                            INITIALIZE K. FOR ORG MACRO
          USE    "HC.UDVB"
 K.       SET    *
*                            START OFF IN THE FIRST BLOCK 
 FB       MICRO  1,,,"HC.FLB",
          USE    "FB" 
*                            DEFINE EXECUTION TIME CPU
 .CPU     =      "MDL"
          ENDM
 LIB=     SPACE  3,14 
**        LIB= - DEFINE LIBRARY NAMES 
  
 LIB=     MACRO  A
          LDSET  LIB=A
          ENDM
 RJQ      SPACE  2,10 
*         RJQ - REDEFINE THE RJ INSTRUCTION SO IT IS A DEFAULT EXTERNAL 
*         REFERENCE.
  
 ZJQ      CPSYN  RJQ
          PURGDEF RJQ 
 RJQ      OPDEF  Q
  ZJ =X;A 
          ENDM
 RJT      SPACE  2,12 
**        RJT - RETURN JUMP WITH TRACEBACK
  
 RJT      MACRO  SYM,LINE 
+         RJ     SYM
          IF     DEF,SYM_(,1
          SUB    SYM
          IFLT   LINE,7777B,2 
-         VFD    12/LINE,18/"HC.RJTBN"
          ELSE   3
-         VFD    12/7777B,18/"HC.RJTBN" 
          SB0    0
          SB0    LINE 
          ENDM
 RJXJ     SPACE  2,12 
**        RJXJ - DEFINE CONDITIONAL RETURN JUMP MACROS
*         RJXX   XI,SYM+CA
  
          ECHO   4,XX=("XJUMPS"),YY=("^XJUMPS") 
 RJ_XX    MACRO  XR,SYM 
+         YY     XR,*+1 
          RJ     SYM
          ENDM
 ORG      SPACE  2,14 
**        ORG - REDEFINE *ORG* PSEUDO FOR USE OF *CCG*
* 
*         ORG    IH,CA
  
 ORG.     OPSYN  ORG
          PURGMAC  ORG
  
 ORG      MACRO  IH,CA
 O        IFC    NE,//IH/ 
          USE    "HC.UDVB"
 I        IF     -DEF,IH
 IH       BSS    0
 I        ELSE
 K.       MAX    K.,*        SAVE CURRENT VALUE OF ORG COUNTER
          ORG.   IH+CA       SET NEW ORIGIN 
 S.       SET    *           FWA FOR DATA PLACEMENT ( USED BY *REPI* )
 I        ENDIF 
 O        ELSE
          ORG    K.          RESTORE PREVIOUS VALUE OF ORG COUNTER
          ENDIF 
          ENDM
 REPI     SPACE  2,14 
**        REPI - REDEFINE *REPI* PSEUDO FOR USE BY *CCG*
* 
*         REPI   DATA-LEN,REP-COUNT,INCREMENT,DESTIN-ADDR 
  
 REPI.    OPSYN  REPI 
          PURGMAC  REPI 
  
 REPI     MACRO  DL,RC,INC,DA 
          LOCAL  II 
 II       SET    INC 0
          REPI.  S/S.,B/DL,C/RC,I/II,D/S.+DA
          ENDM
  
 #FPAS    IFNE   HC$FPAS,0         F.P. ADDRESS SUBSTITUTION MACROS 
 FORPAR   SPACE  2,10 
**        FORPAR - DEFINE ORDER OF *FP* USE BLOCK FOR *SUB* WORDS.
  
 FORPAR   MACRO  FP 
          USE    FP 
 FP.      BSS    0
 FP_(     SET    0
          ENDM
 SUB0     SPACE  2,10 
**        SUB0 - SUB MACRO FOR A LEVEL 0 PARAMETER ( SCM OR LCM ) 
* 
*         SUB0   RIJ,FP 
*                RIJ = 3/R,3/I,3/J WHERE
*                            R = 0/1 FOR READ/WRITE 
*                            I,J = RESULT AND ADDRESS REGISTER NUMBERS
  
 SUB0     MACRO  RIJ,FP 
 .P       SET    59-$ 
 .O       SET    *-$/59 
          USE    FP 
 IJ       MICRO  2,,/RIJ/ 
*                            CHANGE TO 6000B-.P OR SUCH ( WHATEVER WORKS
          VFD    12/1S10+.P,15/01400B+RIJ,15/53"IJ"0B,18/.O 
          IFEQ   FP_(,.O,1
          VFD    12/2036B,48/ST.   DELAY WORD 
 FP_(     SET    .O 
          USE    *
          ENDM
 SUB      SPACE  2,10 
*         SUB - FORM AN ADDRESS SUBSTITUTION WORD FOR A FORMAL PARAM. 
  
 SUB      MACRO  CA,FP
 .P       SET    59-$ 
 .O       SET    *-$/59 
          USE    FP 
          VFD    12/2S9+.P,12/,18/CA,18/.O
          IFEQ   FP_(,.O,1
          VFD    12/2036B,48/ST.   DELAY WORD 
 FP_(     SET    .O 
          USE    *
          ENDM
  
 #FPAS    ENDIF 
  
          ENDX
