// DATE 270915 // NOHALT * *** RUN MAINT. * // LOAD $MAINT,F1 // RUN // COPY FROM-READER,TO-F1,RETAIN-R,LIBRARY-S,NAME-@SYS MACRO @SYS &EXP-N .* .* 5703-XM1 SYSTEM SOFTWARE EQUATES. .* TEXT PRINT OFF AIF (&EXP EQ 'Y').ON PRINT ON REQUESTED ? AIF (&EXP EQ 'N').OFF PRINT OFF REQUESTED ? .ERR MNOTE 00,'INVALID MACRO OPTION SPECIFIED.' AGO .MEND .ON ANOP PRINT ON .OFF ANOP TITLE '@SYSEQ - SYSTEM SOFTWARE EQUATES' ********************************************************************** * CPU EQUATES * ********************************************************************** * *** REGISTER EQUATES * @REGL EQU 2 HARDWARE REGISTER LENGTH @BR EQU 1 BASE REGISTER @XR EQU 2 USABLE INDEX REGISTER @PSR EQU 4 PROGRAM STATUS REGISTER @ARR EQU 8 ADDRESS RECALL REGISTER @IAR EQU 16 INSTRUCTION ADDRESS REGISTER @P1IAR EQU 32 PROGRAM LEVEL 1 IAR @P2IAR EQU 64 PROGRAM LEVEL 2 IAR @I1IAR EQU X'C0' INTERRUPT LEVEL 1 IAR Q-CODE * *** EQUATES FOR BYTES OF AN INSTRUCTION * @Q EQU 1 Q-CODE BYTE @VQ EQU 1 VARIABLE Q CODE FOR LENGTH @D1 EQU 2 1ST DISPLACEMENT @OP1 EQU 3 1ST ADDRESS @DOP2 EQU 4 2ND ADDR OF 5 BYTE INSTR. @OPD2 EQU 4 2ND DISP OF 5 BYTE INSTR. @DD2 EQU 3 2ND DISP OF 4 BYTE INSTR. @OP2 EQU 5 2ND ADDR OF 5 BYTE INSTR. @INST3 EQU 3 LENGTH OF 1 DISP INSTRUCTION @INST4 EQU 4 LENGTH OF 1 ADDR INSTRUCTION @INST5 EQU 5 LENGTH OF 1 DISP 1 ADDR INSTR. @INST6 EQU 6 LENGTH OF 2 ADDR INSTR. * *** CONDITION CODES FOR BRANCHES * @UCB EQU X'87' UNCONDITIONAL BRANCH @NOP EQU X'80' NO BRANCH @BH EQU X'84' BRANCH HIGH @BL EQU X'82' BRANCH LOW @BE EQU X'81' BRANCH EQUAL @BNH EQU X'04' BRANCH NOT HIGH @BNL EQU X'02' BRANCH NOT LOW @BNE EQU X'01' BRANCH NOT EQUAL @BOZ EQU X'88' BRANCH OVERFLOW ZONED @BOL EQU X'A0' BRANCH OVERFLOW LOGICAL @BNOZ EQU X'08' BRANCH NO OVERFLOW ZONED @BNOL EQU X'20' BRANCH NO OVERFLOW LOGICAL @BT EQU X'10' BRANCH TRUE @BF EQU X'90' BRANCH FALSE @BP EQU X'84' BRANCH PLUS @BM EQU X'82' BRANCH MINUS @BZ EQU X'81' BRANCH ZERO @BNP EQU X'04' BRANCH NOT PLUS @BNM EQU X'02' BRANCH NOT MINUS @BNZ EQU X'01' BRANCH NOT ZERO * *** MISCELLANEOUS CONSTANTS * @ZERO EQU 0 ZERO @B1 EQU 1 BINARY ONE @DZERO EQU X'F0' DECIMAL ZERO @BLANK EQU C' ' EBCDIC BLANK @COMMA EQU C',' EBCDIC COMMA @SLASH EQU C'/' EBCDIC FORWARD SLASH @DOLAR EQU C'$' EBCDIC DOLLAR SIGN @ASTER EQU C'*' EBCDIC ASTERISK @NUMBR EQU C'#' EBCDIC NUMBER # @ASIGN EQU C'@' EBCDIC ASSIGN @ @CHARA EQU C'A' EBCDIC CHAR A @CHARF EQU C'F' EBCDIC CHAR F @CHARR EQU C'R' EBCDIC CHAR R @CHARZ EQU C'Z' EBCDIC CHAR Z @EOS EQU X'1E' RETURN CARRIAGE @EOF EQU X'1C' END OF FILE CHARACTER @UPARW EQU X'5A' UPARROW FROM KEYBOARD INPUT @CPLUS EQU C'+' EBCDIC PLUS SIGN @MINUS EQU C'-' EBCDIC MINUS SIGN @DCALK EQU X'01' DCAL REQUESTED INDICATOR @PGCSZ EQU 32 CORE SIZE IN PAGES @MINCR EQU 256*@PGCSZ CORE SIZE IN BYTES @LINSZ EQU 244 LENGTH OF INPUT LINE BUFFER @DTRSZ EQU 24 NO. OF DISK SECTORS PER TRACK @SECCY EQU 48 SECTORS PER CYLINDER @CARDL EQU 96 LENGTH OF 3700 INPUT CARD @BCRDL EQU 80 LENGTH OF 5081 INPUT CARD @MAPEN EQU 5 DISP TO END OF FE CORE MAP @SDFLN EQU 7 LENGTH OF SDF @VOLID EQU 6 LENGTH OF DISK ID FIELD @HDRLN EQU 7 LENGTH OF PROGRAM HEADER @CLON EQU X'11' TURN ON COMMAND LITE Q-CODE @CLOFF EQU X'10' TURN Off COMMAND LITE Q-CODE SPACE 1 ********************************************************************** * DISK REGION EQUATES * ********************************************************************** * @SCTSZ EQU 256 LENGTH OF ONE SECTOR @WSFIT EQU X'0500' SECTOR ADDR OF WS FIT SCTRS @WSTBL EQU X'0503' SECTOR ADDR OF WORKING STORAGE @DWBCY EQU 5 BASE CYL SYSTEM WORK FILE @DWTB1 EQU 3 LOGICAL SCTR 1ST TEXT BLOCK @DWSIZ EQU 192 NO. OF WORK FILE DISK SECTORS @DSBCY EQU 4 BASE CYL SYSTEM ROUTINES @DSCS1 EQU 0 COMPILER SUBROUTINE 1ST SCTR @DVBCY EQU 7 BASE CYL VIRTUAL MEMORY @VMFD1 EQU 0 FILE DIRECTORY 1 PAGE @VMFD2 EQU 1 FILE DIRECTORY 2 PAGE @VMTRL EQU 1 TRACE REFERENCE LIST PAGE @VMRS3 EQU 2 START OF VM RESIDENT SUBROUTINE @VENTA EQU 86 FIRST PSEUDO CODE PAGE IN VM @VMDDV EQU 254 FUNC AND ARRAY TABLE - PAGE ONE @DCBCY EQU 9 BASE CYL COMPILER VADDR TABLES @DCST1 EQU 64 STMT ADDRESS TABLE 1ST SECTOR @DCBT1 EQU 80 BRANCH ADDRESS TABLE 1ST SECTOR SPACE 1 ********************************************************************** * DISK IOCR EQUATES * ********************************************************************** * *** DISK PARAMETER LIST (DPL) EQUATES * @DCTRL EQU 0 CONTROL PARAMETER @DCYL EQU 1 LOGICAL CYLINDER NUMBER @DSAD EQU 2 HEAD/SECTOR ADDRESS @DCNT EQU 3 SECTOR COUNT @DBFR1 EQU 4 1ST BYTE OF DATA AREA @DBFR2 EQU 5 DATA AREA ADDRESS @DSPIN EQU X'02' SPINDLE BIT IN DISK ADDRESS @DPLNG EQU 6 LENGTH OF DSL @DPOS EQU X'00' DPL - SEEK FUNCTION CODE @DGET EQU X'01' DPL - READ FUNCTION CODE @DPUT EQU X'02' DPL - WRITE FUNCTION CODE @DVRFY EQU X'31' DPL - VERIFY FUNCTION CODE @DWAIT EQU X'FF' DPL - WAIT I/O COMPLETE FUNC CODE @DSIVF EQU X'03' SIO CTRL CODE FOR VERIFY * @DADDR EQU 2 LENGTH OF DISK ADDRESS @VADDR EQU 2 LENGTH OF VIRTUAL ADDRESS @CADDR EQU 2 LENGTH OF CORE ADDRESS SPACE 1 ********************************************************************** * PRINT PARAMETER LIST (PPL) EQUATES * ********************************************************************** * @PPLNG EQU 4 LENGTH OF PPL @PCTRL EQU 0 CONTROL BYTE DISPLACEMENT @PRCNT EQU 1 COUNT BYTE DISPLACEMENT @PDATA EQU 3 DATA ADDR DISPLACEMENT @PRINT EQU X'40' PRINT CONTROL @RETRN EQU X'80' RETURN CARRIER CONTROL @PRETR EQU @PRINT+@RETRN PRINT AND RETURN CARRIER @TBLEF EQU X'10' TAB LEFT CONTROL @INDEX EQU X'01' INDEX FORMS CONTROL @TBLIX EQU @TBLEF+@INDEX TAB LEFT AND INDEX CONTROL @PWAIT EQU X'FF' WITH AND CHECK ERROR CONTROL @RLDWN EQU X'4F' ROLL DOWN CONTROL (CRT ONLY) @TBCNT EQU 0 TAB LEFT COUNT @RTRNC EQU X'80' CARRIER RETURN COUNT @EOFTC EQU X'75' EOF RECORD TYPE CODE * *** STATEMENT/SEGMENT HEADER EQUATES * @SDF0 EQU 0 DISP TO NULL SEG INDICATOR @SDF1 EQU 1 DISP TO LENGTH OF SEGMENT @SDF2 EQU 2 DISP TO SEGMENTATION CODE @SDF3 EQU 3 DISP TO END OF SDF @SBLN EQU 5 DISP TO STMT BINARY LINE NO. @STYPE EQU 6 DISP TO STMT TYPE CODE @STEXT EQU 7 DISP TO 1ST TEXT BYTE OF STMT @SNULL EQU X'80' MASK FOR NULL SEG INDICATOR * * 1 = SEGMENT IS NULL * * 0 = SEGMENT IS NOT NULL * * FOLLOWING ARE THE MASKS FOR THE SEGMENTATION * CODE. THE SEGMENTATION IS INDICATED BY VALUE * IN @SDF2 AS FOLLOWS: @SONLY EQU 0 ONLY SEG. IN RECORD @SIST EQU 1 1ST SEG. OF A MULTI-SEG RCD @SMIDL EQU 3 MIDDLE SEG. OF A MULTI-SEG RCD @SLAST EQU 2 LAST SEG. OF MULTI-SEG RCD @SBLNL EQU 2 LENGTH OF STMT BINARY LINE NO. * **** FILE INDEX TABLE EQUATES SECTION * * ALL DISPLACEMENT ARE CALCULATED FROM THE * * FIRST BYTE OF THE FIT TO THE RIGHTMOST BYTE * * OF THE SPECIFIED FIELD UNLESS OTHERWISE * * NOTED. * @FDLNC EQU 2 DISP TO FILE LINE COUNT @FLLNC EQU 2 LNG OF FILE LINE COUNT FIELD @FDDBC EQU 0 DISP TO FILE DATA BLOCK COUNT @FLDBC EQU 1 LNG OF FILE DATA BLOCK COUNT @FLACE EQU 9 DISP O ADDR OF CURR ENTRY @FDFNA EQU 11 DISP TO ADDR OF 1ST NULL ENTRY @FLFNA EQU 2 LNG OF ADDR OF 1ST NULL ENTRY @FDE1 EQU 12 DISP TO 1ST BYTE OF 1ST ENTRY @FLENT EQU 4 LNG OF A FIT ENTRY * * ENTRY FIELD DISPLACEMENTS ARE CALCULATED FROM * * THE 1ST BYTE OF THE ENTRY. * @FDSD EQU 0 DISP TO DB SECTOR DISP @FLSD EQU 1 LNG OF DB SECTOR DISP FIELD @FDHLN EQU 2 DISP TO HIGH LINE NO. FIELD @FLHLN EQU 2 LNG OF HIGH LINE NO. FIELD @FDNSC EQU 3 DISP TO DB NULL SPACE CNT FIELD @FLNSC EQU 1 LNG OF DB NULL SPACE CNT FIELD * * END OF SYSTEM SOFTWARE EQUATES .* END OF MACRO; RESTORE PRINT ON. .MEND ANOP PRINT ON MEND // CEND // END * // READER CONSOLE