// DATE 100820
// NOHALT
*
*** RUN MAINT.
*
// LOAD $MAINT,F1
// RUN
// COPY FROM-READER,TO-F1,RETAIN-R,LIBRARY-S,NAME-@VMD
       MACRO
       @VMD  &EXP-N
.*
.*     5703-XM1 COMMON CORE LOCATIONS OUTSIDE NUCLEUS
.*
       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 '@VMDEQ - VIRTUAL MEMORY DIRECTORY EQUATES'
**********************************************************************
*      LABELING METHOD DESCRIPTION                                   *
**********************************************************************
*
*                  1ST AND 2ND CHARACTERS - '@$' - DEFINES MODULE
*
*                  3RD CHARACTER - TYPE OF EQUATE
*
*                      D - DISPLACEMENT
*                      L - LENGTH
*                      M - MASK
*
*                  4TH CHARACTER - DIRECTORY IDENTIFICATION
*
*                      1 - DIRECTORY 1 (ALLOCATED DATA)
*                      2 - DIRECTORY 2 (EXECUTION DATA)
*                      B - BOTH D1 AND D2
*
****               DISPLACEMENT EQUATES - DIRECTORY 1
*
@$D1E1 EQU   0                         LEFTMOST BYTE OF 1ST ENTRY
*
*      ALL ENTRY DISPLACEMENTS ARE RELATIVE TO THE 1ST BYTE OF
*      THE ENTRY AND REFER TO THE RIGHTMOST BYTE OF THE FIELD
*      UNLESS OTHERWISE SPECIFIED.
*
@$D1DC EQU   0                         DEVICE CODE
@$D1BF EQU   8                         BASIC (GET/PUT) FILENAME
@$D1FS EQU   10                        SCRATCH FILE SIZE IN SECTORS
@$D1DV EQU   14                        DISK VOLUME-ID
@$D1DP EQU   22                        DISK PASSWORD
@$D1DF EQU   30                        DISK USER-FILENAME
*
@$D1SW EQU   31                        2ND PAGE SWITCH , 0=NONE
*
***                DISPLACEMENT EQUATES - DIRECTORY 2
*
@$D2CF EQU   1                         CURRENT FILE DISPLACEMENT
@$D2AS EQU   2                         ACTIVE SCRATCH FILE INDICATOR
@$D2PN EQU   10                        DISP TO PROGRAM NAME
@$D2SF EQU   X'0B'                     DISP TO SAVED SCRATCH ADDR   1-4
@$D2E1 EQU   64                        LEFTMOST BYTE OF 1ST ENTRY
@$D2DC EQU   0                         DEVICE CODE
@$D2IO EQU   1                         I/O USAGE STATUS
@$D2VB EQU   2                         VM BUFFER BASE PAGE
@$D2BS EQU   3                         VM BUFFER SIZE IN PAGES
@$D2CP EQU   5                         CURRENT POINTER
@$D2CS EQU   4                         * CURRENT PAGE DISP.
@$D2CB EQU   5                         * CURRENT BYTE DISP.
@$D2CY EQU   6                         CYL BYTE OF FILE DISK ADDR
@$D2DA EQU   7                         FILE DISK ADDRESS
@$D2DD EQU   9                         DISP TO CURR DISK LOCATION DISP
@$D2FS EQU   11                        DISP TO FILE SIZE
@$D2LC EQU   13                        DISP TO SPACE LEFT IN RCD CNTR
@$D2EE EQU   15                        RIGHT-MOST END OF ENTRY
*
***                LENGTH EQUATES - DIRECTORY 1
*
@$L1E  EQU   32                        ENTRY
@$L1DC EQU   1                         DEVICE CODE
@$L1BF EQU   8                         BASIC RILENAME
@$L1FS EQU   2                         SCRATCH FILE SIZE
@$L1DF EQU   8                         DISK FILENAME
@$L1DP EQU   8                         DISK PASSWORD
@$L1DV EQU   6                         DISK VOLUME-ID
*
***                LENGTH EQUATES - DIRECTORY 2
*
@$L2HD EQU   64                        HEADER                       1-3
@$L2CF EQU   2                         CURRENT FILE DISPLACEMENT
@$L2AS EQU   1                         ACTIVE SCRATCH FILE INDR
@$L2SF EQU   2                         LNG OF LIB ADDR FIELD IN D2  1-3
@$L2PN EQU   8                         LENGTH OF PROGRAM NAME
@$L2E  EQU   16                        ENTRY
@$L2DC EQU   1                         DEVICE CODE
@$L2IO EQU   1                         IO USAGE STATUS
@$L2VB EQU   1                         VM BUFFER BASE PAGE
@$L2BS EQU   1                         VM BUFFER SIZE
@$L2CP EQU   2                         CURRENT POINTER
@$L2CS EQU   1                         CURRENT PAGE
@$L2CB EQU   1                         CURRENT BYTE
@$L2DA EQU   2                         DISK ADDRESS
@$L2DD EQU   2                         LENGTN OF CURR DADDR DISP
@$L2FS EQU   2                         FILE SIZE OF DATA
@$L2LC EQU   2                         SDF COUNT
*
***                MASK EQUATES
*
@$MBEN EQU   12                        MAX NO. OF ENTRIES IN D1/D2
@$M2NS EQU   X'FF'                     NO SPACE FOR SCRATCH FILE MASK
@$M2EF EQU   X'02'                     END OF FILE INDICATOR
@$MBPU EQU   X'01'                     'PUT' STMT INDR WITHIN I$PARM
*
***                MASKS FOR THE DEVICE CODE IN BOTH D1 AND D2
*
@$MBND EQU   X'00'                     NULL DEVICE CODE
@$MBPD EQU   X'80'                     PERMANENT DISK FILE
@$MBSD EQU   X'40'                     SCRATCH DISK FILE
@$MBCD EQU   X'20'                     CARD FILE
@$MBPT EQU   X'10'                     PRINTER FILE
@$MBCR EQU   X'08'                     CRT FILE
*
***                MASKS FOR FILE I/O USAGE
*
@$M2FI EQU   X'80'                     INPUT
@$M2FO EQU   X'40'                     OUTPUT
@$M2FP EQU   X'20'                     PRECISION
*                                      '0' = SHORT
*                                      '1' = LONG
@$M2FT EQU   X'10'                     FILE TYPE
*                                      '0' = KEYBOARD GENERATED
*                                      '1' = PROGRAM GENERATED
*
*                  MASKS FOR CURRENT I/O USAGE
*
@$M2CI EQU   X'08'                     INPUT
@$M2CO EQU   X'04'                     OUTPUT
*      END OF VIRTUAL MEMORY DIRECTORY EQUATES
.*     END OF MACRO; RESTORE PRINT ON.
.MEND  ANOP
       PRINT ON
       MEND
// CEND
// END
*
// READER CONSOLE
