IDENT CMMD1 ERR HELD BY HES DEC 27 FOR BEAD 4.2 CHANGES TITLE SETS UP OPERATIONS FOR COMMAND PROC LEVEL TITLE XTEXT STUFF * * * OOPNAMES HERE * LIST X * OPNAMES XTEXT TITLE MACROS * * * XJ MACRO LOC + VFD 12/0130B,18/LOC,30/1 SB7 *+1 JP ERR ENDM * * XJR MACRO LOC,RTNAUTH + VFD 12/0130B,18/LOC,12/1,18/2 VFD 60/RTNAUTH SB7 *+1 JP ERR ENDM * * XJF MACRO LOC,FGO + VFD 12/0130B,18/LOC,30/1 JP FGO ENDM * * CALL MACRO LOC + SB7 *+1 JP LOC ENDM * * CALLR MACRO L,A,B,C,D,E SETBS A,B,C,D,E SB7 L + SX6 *+1 JP CALLR ENDM * * SETBS MACRO A,B,C,D,E IFC NE,$$A$ SB1 A IFC NE,$$B$ SB2 B IFC NE,$$C$ SB3 C IFC NE,$$D$ SB4 D IFC NE,$$E$ SB5 E ENDIF ENDM * * RTNR MACRO JP RTNR ENDM * * MCAP MACRO NAME BSS 0 M.NAME EQU -* VFD 1/1,29/C.NAME,30/CX.MAST ENDM * * MXCAP MACRO NAME + VFD 1/1,29/C.NAME,30/CX.MAST ENDM * * ITEMS MACRO A,B,C,D,E,F,G,H VFD 60/A IFC NE,$$B$ VFD 60/B IFC NE,$$C$ VFD 60/C IFC NE,$$D$ VFD 60/D IFC NE,$$E$ VFD 60/E IFC NE,$$F$ VFD 60/F IFC NE,$$G$ VFD 60/G IFC NE,$$H$ VFD 60/H ENDIF ENDM * * * MAP MACRO NAME,X,FLAD,CMAD,LASTP1,RO + VFD 60/0L_NAME VFD 30/X,30/FLAD VFD 1/RO,29/CMAD,30/LASTP1 ENDM * * * MACRO FOR CLIST INDEX OF OBJECT TO RETURN TO CALLER * RTNCAP MACRO NAME DATA 0 RMT DATA 0L_NAME RMT ENDM * * * MACRO FOR CLIST INDEX OF OBJECT TO BE OBTAINED * AT TIME OF THIS SUBPROCESS CONSTRUCTION * PARCAP MACRO NAME DATA 0L_NAME ENDM * * * MACRO MICROX,L,NAME L MICRO 1,,/_NAME_/ ENDM TITLE MACROS FOR XJ CALLS * * * BASIC MACRO * XSETXJ MACRO A,B,C,D,E LOCALPXJ SET 0 IFC NE,$$A$ SX1 A LOCALPXJ SET 1 IFC NE,$$B$ SX2 B LOCALPXJ SET 2 IFC NE,$$C$ SX3 C LOCALPXJ SET 3 IFC NE,$$D$ SX4 D LOCALPXJ SET 4 IFC NE,$$E$ SX5 E LOCALPXJ SET 5 ENDM * * * FULL 10 PARAM VERSION * YSETXJ MACRO A,B,C,D,E,F,G,H,I,J XSETXJ A,B,C,D,E SB2 5 CALL SET XSETXJ F,G,H,I,J ENDIF SB2 LOCALPXJ CALL SET ENDM * * * STANDARD XJ CALL * DOXJ MACRO A,B,C,D,E,F,G,H,I,J SB1 XJLOC YSETXJ A,B,C,D,E,F,G,H,I,J XJ XJLOC ENDM * * * MULTI LINE VERSIONS * * INITIAL SET UP LINE * SETXJ MACRO A,B,C,D,E,F,G,H,I,J SB1 XJLOC YSETXJ A,B,C,D,E,F,G,H,I,J ENDM * * FINAL CALL ( USE YSETXJ IN BETWEEN) * XDOXJ MACRO A,B,C,D,E,F,G,H,I,J YSETXJ A,B,C,D,E,F,G,H,I,J XJ XJLOC ENDM * * * SAVE7 MACRO L SX6 B7 SA6 L ENDM * * GET7 MACRO L SA1 L SB7 X1 ENDM TITLE LOW CORE * * * MICROS FOR SUBPROCESS DESCRIPTOR * * CLASS MICROX CLASS FATHER MICROX ROOT ICALL MICROX CALL CLIST MICROX CLSTCMMD1 SCRFILE MICROX SCRFCMMD1 CODEFILE MICROX CMMD1CODE * * * * SUBPROCESS DESCRIPTOR * * ORG 0 * DATA 1 DATA 0 DATA 0L'CLASS' DATA 0L'FATHER' DATA 0L'ICALL' DATA 0L'CLIST' DATA 0L'SCRFILE' DATA 5 DATA 20 ITEMS FL ITEMS ENTRY ITEMS CLSTSZ ITEMS SCRSZ * MAP 'SCRFILE',0,0,0,SCRSZ,0 MAP 'CODEFILE',1,SCRSZ,SCRSZ,FL,1 * DATA -0 * LOC 0 * CX.ALLOC PARCAP I.ALLOC CX.CODEF PARCAP 'CODEFILE' CX.MAST PARCAP I.MASTER CX.BEAD PARCAP BEAD CX.TEMP DATA 0 * RTNBASE BSS 0 * CX.LNCC RTNCAP LINECLASS CX.LNINI RTNCAP LINEINIT CX.LNASC RTNCAP LINEASCII * CLSTSZ BSS 0 * DATA -0 * LOC *O EJECT * * * MOST XJ S DONE HERE * XJLOC BSSZ 15 * * DURING CRASH, REGS SAVED HERE * REGAREA BSSZ 20B * * * ERROR CALL DATA AREA * EREGS BSSZ 20B REGISTER SAVE AREA DURING ERROR * STKBUF BSSZ 3 TOP OF STACK DURING ERROR CALL * * * RETURN DATA ETC * * RTNDATA BSS 0 HERE DATA 0 END MARKER * * * * * CALL STACK DATA * * CALLSTK BSSZ 20 CALL STACK * CSTKPNTR ITEMS *-CALLSTK POINTER TO FIRST AVAIL CELL TITLE END OF SCRATHC AREA * * * END OF SCRATCH AREA * SCRSZ BSS 0 * * MISC REFERANCES TO MASTER CLIST * MCAP READ MCAP CCC MCAP MKOPR MCAP UDAT MCAP FIXD MCAP BDAT MCAP RETPAR EJECT * * SRETURN MXCAP RETPAR VFD 30/CLSTSZ-RTNBASE+1,30/RTNDATA VFD 30/CLSTSZ-RTNBASE,30/RTNBASE * TITLE MAIN CODE * * * * MAIN CODE * * BSSZ 5 ALTERNATE ENTRY POINTS JP ERRC ERROR ENTRY ENTRY XJ SETEMSK SET UP ERROR MASK XJ READSELF SET UP LOW CORE * * DOXJ M.CCC,CX.LNCC * DOXJ M.MKOPR,CX.ALLOC,CX.LNINI,B0,CX.LNCC,1 DOXJ M.UDAT,CX.LNINI,B0 DOXJ M.FIXD,CX.LNINI,B0,B0 * DOXJ M.MKOPR,CX.ALLOC,CX.LNASC,B0,CX.LNCC,3 DOXJ M.UDAT,CX.LNASC,B0 DOXJ M.UDAT,CX.LNASC,1 DOXJ M.BDAT,CX.LNASC,2,16 DOXJ M.FIXD,CX.LNASC,B0,1 * * * XJ SRETURN ALL DONE * * * READSELF MXCAP READ ITEMS CX.CODEF ITEMS 0,0,SCRSZ TITLE ERROR CALL HANDLING * * ERROR CALL AREA * ERRC XJ ESAVE SAVE REGISTERS XJ SETEMSK RE SET ERROR SELECTION MASK XJ RDSTK READ TOP OF STACK ( IN CASE UNWANTED ERROR) XJ ERESTOR RESTORE REGISTERS XJ FRTN NOW CONVERT ERROR TO F RETURN * * ESAVE MXCAP SAVE ITEMS EREGS * * ERESTOR MXCAP RESTOR ITEMS EREGS * * SETEMSK MXCAP ESMLOC ITEMS *+1 DATA -0 * * RDSTK MXCAP DISSEN ITEMS STKBUF DATA 1 * * FRTN MXCAP FRETUR TITLE MISC SUBROUTINES * * * * THIS SUBROUTINE XFERS B2 ITEMS * ( OR 5, WHICH EVER IS LESS ) * FROM X1, X2, . . . X5 TO B1, B1+1, . . B1+4 * * IF XN IS POSITIVE, CONTENTS OF XN IS XFERED * IF XN IS NEGATIVE, CONTENTS OF CELL ADDRESS -XN * * X1 WILL BE DESTROYED * * B1 IS ADVANCED AND B2 DECREMENTED BY 1 FOR EACH XFER * SET MX0 60 SB5 B7 BX6 X1 CALL SETA BX6 X2 CALL SETA BX2 X6 BX6 X3 CALL SETA BX3 X6 BX6 X4 CALL SETA BX4 X6 BX6 X5 CALL SETA BX5 X6 * SETB SB7 B5 JP B7 * * SETA GE B0,B2,SETB PL X6,SETA1 BX6 X6-X0 SA1 X6 BX6 X1 SETA1 SA6 B1 SB1 B1+1 SB2 B2-1 JP B7 * * * HANDLE A CALL WITH STACK * CALLR SA5 CSTKPNTR ZR X5,CALLRERR SB6 X5 SB6 B6-1 SA6 CALLSTK+B6 SX6 B6 SA6 A5 JP B7 * * CALLRERR CALL ERR * * * HANDLE A RETURN WITH CALL STACK * RTNR SA1 CSTKPNTR SB6 X1 SX6 B6+1 SA6 A1 SA1 CALLSTK+B6 SB7 X1 JP B7 EJECT * * CRAASH * ERR XJ SAVE SB6 4 XJF BEAD,STOP JP DIE * * * DEBUG XJ SAVE SB6 4 XJF BEAD,STOP XJ RESTORE JP B7 * * RESTORE MXCAP RESTOR ITEMS REGAREA * * BEAD ITEMS CX.BEAD * SAVE MXCAP SAVE ITEMS REGAREA * * DIE XJ SRETURN * * STOP PS EJECT TITLE FINAL STUFF * * EJECT * * DATA 1 FL DATA 1 * END