Trailing-Edge
-
PDP-10 Archives
-
CFS_TSU04_19910205_1of1
-
update/cblsrc/ftdefs.mac
There are 9 other files named ftdefs.mac in the archive. Click here to see a list.
; UPD ID= 1266 on 6/9/83 at 11:47 AM by NIXON
UNIVERSAL FTDEFS FILE-TABLE DEFINIFITIONS for COBOL OTS, CLEAND and SORT
SEARCH COPYRT
SALL
;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
; OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
COPYRIGHT (C) 1975, 1983, 1984 BY DIGITAL EQUIPMENT CORPORATION
.DIRECTIVE .NOBIN
;****** REVISION HISTORY
; EDIT 545 STORE NO. OF CHARACTERS IN VAR. LEN. RECORD IN FILE TABLE.
; GET ASSEMBLY SWITCHES
SEARCH INTERM
SALL
%%FTDF==2 ;EDIT NUMBER
IFNDEF ISTKS,<ISTKS==0> ;TYPE # OF IN'S AND OUT'S
I16==16 ;16 HAS POINTER TO FILE-TABLE
CH==4 ;ACC USED BY CLEAND
;**** TEMP INCREASE BOTH BY 4 SO WE CAN ADD EXTRA ITEMS ***
SZ.DEV==40+4 ;Size of DEVICE table
SZ.OFT==41+4 ;Size of FILE table
COMMENT \
The run-time file tables consist of two parts indexed by acc 16.
The positive part contains file specific information set by the compiler
from information in the SELECT and FD clauses. This part does not change
at run time. The negative part contains information about the device and
file set by the OTS at run time. Generally the positive part is not changed
at run time and the negative part is not set by the compiler.
The exceptions are the flag words F.WFLG, D.RFLG, D.F1
The file table is set up by CLEAND.
The various constants are named as follows:
D.xxxx offset into device table (negative)
F.xxxx offset into file table (positive)
B%xxxx bit in either table
BM%xxx bit mask in either table
F%Bxxx byte pointer to field in either table (indexed by I16)
F%Cxxx byte pointer to field in either table (indexed by CH)
DEVICE TABLE
------ -----
WORD -36: LINAGE-COUNTER
WORD -35:
LHS Size of buffer in words (TOPS-20 only)
RHS Size of buffer in bytes (TOPS-20 only)
WORD -34:
RHS JFN of file (TOPS-20 only)
WORD -33:
BITS 27-35 Actual padding character
WORD -32: Record count for checkpointing
WORD -31: Saved value of D.RCL after DELETE/REWRITE
WORD -30: Address of RMS control block
WORD -29: REC SEQ offset to extended section of sixbit mta file
WORD -28: Number of characters in last record read
WORD -27: Number of words per record (random and ISAM)
Characters per record (non-random or ISAM)
WORD -26: Last block of SEQIO file
WORD -25: Free characters per logical block
WORD -24: Total characters per logical block
WORD -23: WRITE conversion instruction
WORD -22: READ conversion instruction
WORD -21: Bytes per word
WORD -20: RERUN device name in sixbit
WORD -19:
BIT 0 Variable length EBCDIC records (*)
BIT 1 File is optional (*)
BIT 2 Native mode I/O on TOPS-20
BIT 3 Labels are standard (*)
BIT 4 Labels are standard but monitor does label processing
BIT 5 MOUNTR is handling labels, but no labeling
BITS 18-35 ISAM save area for shared buffer
WORD -18: Number of INPUTs executed
WORD -17: Number of OUTPUTs executed
WORD -16:
BITS 0-17 Buffer location
BITS 18-35 Label record size
WORD -15:
BITS 0-11 Magtape reel number
BITS 12-15 I/O channel number
BIT 16 Lock flag
BIT 17 HUF (head under file) flag
BIT 25 1 if last READ was bad
BIT 26 1 if MTA STD ASCII needs INDUSTRY-COMP mode (TM03 trouble)
BIT 27 A terminate has been done for this report file
BIT 28 1 if last write was AFTER-ADVANCING ("CR" before buffer advance)
BIT 29 1 if file was OPENed EXTEND
BIT 30 1 if last I/O was delete or rewrite (next rec saved)
BIT 31 1 if last ISAM I/O operation was a READ
BIT 32 Read reversed blocked greater than 10
BIT 33 First ISAM read is seq., for IBS scan code
BIT 34 OPEN REVERSEd active
BIT 35 STANDARD-ASCII (*)
WORD -14: Current physical block number
WORD -13: Number of buffers per logical block
WORD -12: Number of buffers to fill current logical block
WORD -11: Number of records to fill current logical block
WORD -10: IOWD for current device
WORD -9: Output buffer header
WORD -8: Output buffer byte pointer
WORD -7: Output buffer byte count
WORD -6: Input buffer header
WORD -5: Input buffer byte pointer
WORD -4: Input buffer byte count
WORD -3: Number of records to RERUN dump
WORD -2: Number of records processed
WORD -1: Device characteristics
FILE TABLE
---- -----
Note, these words start at 1 whereas the F.Wxxx definitions start at 0.
WORDS 1-5: 30 character program name in sixbit
WORD 6:
BITS 0-5 Compiler's version number
BIT 6 Buffer location assigned
BIT 7 SORT file
BIT 8 Default recording mode (not set by user)
BITS 12-17 Number of devices assigned to file
BITS 18-35 Address of first device name
WORD 7:
BITS 0-2 Not used
BITS 3-4 File access mode
0 - SEQUENTIAL
1 - RANDOM
2 - DYNAMIC
3 - Not used
BITS 5-8 Tape label format bits
BIT 5 U format system label
BIT 6 S format system label
BIT 7 D format system label
BIT 8 F format system label
BITS 9-11 System label type
BITS 12-17 File position on mag-tape
BITS 18-35 Link to next file table
WORD 8:
BITS 0-6 Number of buffers
BIT 7 LINAGE-COUNTER required
BITS 18-35 Number of records between rerun dumps
WORD 9:
BITS 0-3 Device (external) recording mode
BIT 0 ASCII
BIT 1 SIXBIT
BIT 2 EBCDIC
BIT 3 BINARY
BIT 4 File is OPEN for INPUT
BIT 5 File is OPEN for OUTPUT
BIT 6 File is an INPUT/OUTPUT file
BIT 7 An EOF was seen
BIT 8 Device and core data modes differ
BIT 9 Optional file not present
BIT 10 RERUN dump at END-OF-REEL
BIT 11 RERUN dump via RECORD-COUNT
BITS 12-14 Core data mode
BIT 12 ASCII
BIT 13 SIXBIT
BIT 14 EBCDIC
BITS 15-17 File Organization
BIT 15 INDEXED-SEQUENTIAL
BIT 16 SEQUENTIAL
BIT 17 RELATIVE
BITS 18-35 Address of record area
WORD 10:
LH Unused
RH Link to file table that shares device
WORD 11:
LH Blocking factor
RH Address of RELATIVE KEY
WORD 12: Byte pointer to VALUE OF ID
WORD 13: Byte pointer to VALUE OF DATE-WRITTEN
WORD 14:
LH Link to file table that shares buffer area
RH Address of error use procedure
WORD 15:
LH Maximum record size in characters
RH Minimum record size in characters
WORD 16:
LH Lines per page
RH WITH FOOTING AT count
WORD 17:
WD Approx. key size for START
LH Lines at top
RH Lines at bottom
WORD 18:
LH DEBUGGING USE procedure
RH LINAGE counter initialization routine
WORD 19:
BITS 0-2 Mag-tape density
000 - Default
001 - 200 BPI
010 - 556 BPI
011 - 800 BPI
100 - 1600 BPI
101 - 6250 BPI
BIT 4 Mag-tape parity
0 - Odd
1 - Even
BIT 5 Deferred ISAM flag
BIT 6 OPEN use procedure when ENTER fails
BIT 7 RMS flag
BIT 8 BYTE mode flag
BIT 9 Checkpoint flag
BITS 10-17 Checkpoint record count
BITS 18-35 Address of PPN
WORD 20:
Unused.
WORD 21: Byte pointer to RECORD KEY
WORD 22: ISAM key description word
WORD 23: F.WSMU - definitions of names below are in LSU.MAC
BITS 0-3 Owner access FTOWA
BITS 9-12 Other access FTOTA
BIT 13 Retained NEXT has shared RTNXSH
access to file.
BIT 14 Retained NEXT needs exclusive RTNXCL
access to the file.
BIT 15 LFENQ. OPEN flag LFQOPN
= 0 if OPEN not thru LFENQ.
= 1 after LFENQ. OPEN
BITS 16-17 Retained Index Share Flag IDXSHR
= 0 if Index Retained Exclusive
= 1 if Index Retained Shared
= 3 if Index Retained Group "Shared"
This indicates the funny "shared"
where we don't want to use it and
we also don't want others to use it.
BITS 18-35 Contains pointer to address of currently
Retained Key. Is set to -1 if this value
not yet determined.
WORD 24: Byte pointer to FILE-STATUS data-item
WORD 25: Byte pointer to ERROR-NUMBER data-item
WORD 26: Byte pointer to ACTION-CODE data-item
WORD 27: Byte pointer to VALUE-OF-ID data-item
WORD 28: Byte pointer to BLOCK-NUMBER data-item
WORD 29: Byte pointer to RECORD-NUMBER data-item
WORD 30: Byte pointer to FILE-NAME data-item
WORD 31: Byte pointer to FILE-TABLE data-item
WORD 32:
LH Link to protection code
BITS 18-27 Not used
BITS 28-35 Size of VALUE-OF-ID
WORD 33:
BITS 0-35 Byte pointer to padding character
or
BITS 28-35 Padding character
WORD 34:
LH - Address of Block of RMS Key Descriptors in
constant area under START.
RH BIT FIELDS WHICH CAN APPLY TO RMS FILES
BITS 18-21 SMU Lock bits for Self. Set at Run Time.
BITS 22-25 SMU Lock bits for Other. Set at Run Time.
BIT 35 Apply Basic-Locking to this file.
BIT 34 Write / no-Write switch for <CR> for ASCII STM files
\
SUBTTL DEVICE TABLE CONSTANTS
;Bits marked (*) are set by the compiler
D.LCV==-44 ; LINAGE-COUNTER value
D.FBS==-43 ; Size of buffer (TOPS-20 only)
D.JFN==-42 ; JFN of file (TOPS-20 only)
D.PADD==-41 ;RUN-TIME PADDING CHARACTER
F%PADD==POINT 9,D.PADD(I16),35
D.CRC==-40 ;RECORD COUNT FOR CHECKPOINT EVERY N RECORDS
D.SRCL==-37 ; SAVED VALUE OF D.RCL AFTER DELETE/RERIT
D.RMSP==-36 ;ADDR OF AN RMS CONTROL BLOCK
;NON-ZERO ONLY IF THIS FILE IS AN OPEN RMS FILE
;THE CONTROL BLOCK ITSELF IS DESCRIBED IN LBLPRM.MAC
D.EXOF==-35 ; REC SEQ OFFSET TO EXTENDED SECTION OF SIXBIT MTA FILE
D.CLRR==-34 ;[545] NO. OF CHARACTERS IN LAST RECORD READ
D.WPR=-33 ; NO. OF WORDS PER RECORD,RANDOM AND ISAM
D.CPR=-33 ; CHARS PER RECORD ,NON-RANDOM/ISAM FILES (INCLUDING OVERHEAD)
D.LBN=-32 ; LAST BLOCK OF SEQIO FILE
D.FCPL=-31 ; FREE CHARS PER LOG-BLOCK
D.TCPL=-30 ; TOTAL CHARS PER LOG-BLOCK
D.WCNV=-27 ; THE WRITE CONVERSION INSTRUCTION
D.RCNV=-26 ; THE READ CONVERSION INSTRUCTION
D.BPW=-25 ;BYTES PER WORD
D.RD=-24 ;RERUN DEVICE NAME IN SIXBIT
D.F1=-23 ;0-17 FLAGS IN LHS OF ACC FLG1 AT RUN-TIME
B%VLER==1B0 ;VARIABLE LENGTH EBCDIC RECORDS (*)
B%OPTF==1B1 ;FILE IS OPTIONAL (*)
B%NIO==1B2 ;NATIVE I/O
F%NIO==POINT 1,D.F1(I16),2
B%STL==1B3 ;LABELS ARE STANDARD (*)
; STNDRD==40000 ;LABELS ARE STANDARD
MSTNDR==20000 ;STANDARD BUT MONITOR DOES LABEL PROCESSING
MTNOLB==10000 ;MOUNTR HANDLING LABELS,BUT NO LABELING
;RMSIO FLAGS IN RHS (NOT IN FLG1 AT RUN-TIME)
LF%INP==1B33 ;FILE IS OPEN FOR INPUT
LF%OUT==1B34 ;FILE IS OPEN FOR OUTPUT
D.IBL=-23 ; [377] 18-35 ISAM SAVE AREA FOR SHARED BUFFER
D.IE=-22 ;# OF INPUTS EXECUTED
D.OE=-21 ;# OF OUTPUTS EXECUTED
D.BL=-20 ;0-17 BUFFER LOCATION
D.LRS=-20 ;18-35 LABEL RECORD SIZE
D.RN=-17 ;0-11 MAGTAPE REEL NUMBER
F%BRN==POINT 12,D.RN(I16),11 ;MTA REEL NUMBER
D.CN=-17 ;12-15 IO CHANNEL NUMBER
F%BCN==POINT 4,D.CN(I16),15 ;CHANNEL NUMBER
D.LF=-17 ;BIT-16 LOCK FLAG
F%BLF==POINT 1,D.LF(I16),16 ;LOCK FLAG
D.HF=-17 ;BIT-17 HUF FLAG
B%HUF==1B17 ;HUF (HEAD UNDER FILE) FLAG
DB.HF==1B17 ;HUF (HEAD UNDER FILE) FLAG
F%BHF==POINT 1,D.HF(I16),17 ;HUF FLAG
D.RFLG=-17 ; 18-35 FLAGS
B%SASC==1 ; STANDARD ASCII (*)
SASCII==1 ; REQUEST FOR STANDARD ASCII
RDDREV==2 ; OPEN REVERSED ACTIVE
FSTIDX==4 ;[605] FIRST ISAM READ IS SEQ, FOR IBS SCAN CODE
RDRVBK==10 ; READ REV BLOCKED GTR 10
RDLAST==20 ; =1 IF LAST ISAM IO OPERATION WAS READ
SAVNXT==40 ; =1 IF LAST I-O WAS DELETE OR REWRITE (NXT REC SAVED)
EXTOPN==100 ; =1 IF FILE WAS OPENED EXTEND
AFTADV==200 ; =1 IF LAST WRITE WAS AFTER-ADVANCING ("CR" BEFORE BFR-ADV)
;RPW BIT FOR TERMINATE HAS BEEN DONE ==400
F%BRPT==POINT 1,D.RFLG(I16),31 ;A TERMINATE HAS BEEN DONE FOR THIS REPORT FILE
INDASC==1000 ; =1 IF MTA STD ASCII NEEDS INDUSTRY-COMP MODE (TM03 TROUBLE)
; DON'T CLEAR AT CLOSE TIME
B%BDRD==2000 ; =1 IF LAST READ WAS BAD
RF1CLR==B%BDRD!AFTADV!EXTOPN!SAVNXT!RDLAST!RDRVBK!FSTIDX!RDDREV ;BITS TO CLEAR AT CLOSE TIME
D.CBN=-16 ;CURRENT PHYSCIAL BLOCK NUMBER
D.BPL=-15 ;# OF BUFFERS PER LOGICAL BLOCK
D.BCL=-14 ;# OF BUFFERS TO FILL CURRENT LOGICAL BLOCK
D.RCL=-13 ;# OF RECORDS TO FILL CURRENT LOGICAL BLOCK
D.ICD=-12 ;IOWD FOR CURRENT DEVICE
D.OBH=-11 ;OUTPUT BUFFER HEADER
D.OBB=-10 ;OUTPUT BUFFER BYTE POINTER
F%BOBS==POINT 6,D.OBB(I16),11 ;OUTPUT BUFFER BYTE SIZE
D.OBC=-7 ;OUTPUT BUFFER BYTE COUNT
D.IBH=-6 ;INPUT BUFFER HEADER
D.IBB=-5 ;INPUT BUFFER BYTE POINTER
F%BIBS==POINT 6,D.IBB(I16),11 ;INPUT BUFFER BYTE SIZE
D.IBC=-4 ;INPUT BUFFER BYTE COUNT
D.RRD=-3 ;# OF RECORDS TO A RERUN DUMP
D.RP=-2 ;# OF RECORDS PROCESSED
D.DC=-1 ;DEVICE CHARACTERISTICS
D.OPT=-1 ;-1 IF A "NOT-PRESENT" OPTIONAL ISAM FILE
SUBTTL FILE TABLE CONSTANTS
;Bits marked (*) are changed at run-time
F.WFNM==0 ; 30 CHARACTER PROGRAM NAME - SIXBIT
F.WCVR==5 ; COMPILER'S VERSION NUMBER
F%BCVR==POINT 6,F.WCVR(I16),5
F%CCVR==POINT 6,CH,5
F.WBLC==5 ; BUFFER LOCATION IS ASSIGNED (*)
B%BLA==1B6
F%BBLC==POINT 1,F.WBLC(I16),6
F.WSDF==5 ; SORT-DESCRIPTION FILE FLAG
B%SDF==1B7
F%BSDF==POINT 1,F.WSDF(I16),7
F%CSDF==POINT 1,CH,7
F.WDRM==5 ; DEFAULT RECORDING MODE (I.E. NOT SET BY USER)
B%DRM==1B8
F%BDRM==POINT 1,F.WDRM(I16),8
F%CDRM==POINT 1,CH,8
F.WNOD==5 ; NUMBER OF DEVICES ASSIGNED TO FILE
F%BNOD==POINT 6,F.WNOD(I16),17
F%CNOD==POINT 6,CH,17
F.WDNM==5 ; ADR OF FIRST DEVICE NAME - SIXBIT
F%BDNM==POINT 18,F.WDNM(I16),35
F.WFAM==6 ; FILE ACCESS MODE
F%BFAM==POINT 2,F.WFAM(I16),4
F%CFAM==POINT 2,CH,4
%FAM.S==0 ;ACCESS MODE IS SEQUENTIAL
%FAM.R==1 ;ACCESS MODE IS RANDOM
%FAM.D==2 ;ACCESS MODE ISDYNAMIC
F.WLAB==6 ; SYSTEM LABEL FORMAT (B9-B11)
F%BLBU==POINT 1,F.WLAB(I16),5 ; "U" FORMAT SYSTEM LABEL FLAG
F%BLBS==POINT 1,F.WLAB(I16),6 ; "S" FORMAT SYSTEM LABEL FLAG
F%BLBD==POINT 1,F.WLAB(I16),7 ; "D" FORMAT SYSTEM LABEL FLAG
F%BLBF==POINT 1,F.WLAB(I16),8 ; "F" FORMAT SYSTEM LABEL FLAG
F%BFMT==POINT 4,F.WLAB(I16),8 ; TO GET ALL 4 LABEL FORMAT BITS
F%BLBT==POINT 3,F.WLAB(I16),11 ; SYSTEM LABEL TYPE
F.WPMT==6 ; FILE POSITION ON MAG-TAPE
F%BPMT==POINT 6,F.WPMT(I16),17
F%CPMT==POINT 6,CH,17
F.RNFT==6 ; LINK TO NEXT FILE TABLE
F%BNFT==POINT 18,F.RNFT(I16),35 ; LINK TO NEXT FILE-TABLE
F.WNAB==7 ; NUMBER OF ACTUAL BUFFERS
F%BNAB==POINT 6,F.WNAB(I16),5
F%CNAB==POINT 6,CH,5
F.WLCR==7 ; LINAGE-COUNTER required
F%BLCR==POINT 1,F.WLCR(I16),7
F%CLCR==POINT 1,CH,7
F.RRRC==7 ; NUMBER OF RECORDS BETWEEN RERUN DUMPS
F.WFLG==10 ; FLAGS,,ADR OF RECORD AREA
;LHS IS COPIED TO ACC FLF AT RUN-TIME
; **WARNING** DO NOT DISTURB DDM??? OR CDM???
B%DDMA==1B0 ;DEVICE DATA MODE IS ASCII
B%DDMS==1B1 ;DEVICE DATA MODE IS SIXBIT
B%DDME==1B2 ;DEVICE DATA MODE IS EBCDIC
B%DDMB==1B3 ;DEVICE DATA MODE IS BINARY
F%BDDM==POINT 3,F.WFLG(I16),9 ; DEVICE DATA MODE
F%ADDM==POINT 4,F.WFLG(I16),3 ;[427] DEVICE DATA MODE
;[427] ASCII 10
;[427] SIXBIT 04
;[427] EBCDIC 02
;[427] BINARY 01
DDMASC==400000 ;DEVICE DATA MODE IS ASCII
DDMSIX==200000 ;DEVICE DATA MODE IS SIXBIT
DDMEBC==100000 ;DEVICE DATA MODE IS EBCDIC
DDMBIN==40000 ;DEVICE DATA MODE IS BINARY
OPNIN==20000 ;FILE IS OPEN FOR INPUT (*)
OPNOUT==10000 ;FILE IS OPEN FOR OUTPUT (*)
OPNIO==30000 ;[622] FILE IS OPEN FOR I-O (*)
B%IOF==1B6 ;FILE IS AN INPUT/OUTPUT FILE
IOFIL==4000 ;[622] FILE IS AN INPUT/OUTPUT FILE
ATEND==2000 ;AN "EOF" WAS SEEN (*)
B%DCMD==1B8 ;DEVICE AND CORE DATA MODES DIFFER
CONNEC==1000 ;DEVICE & CORE DATA MODES DIFFER
NOTPRS==400 ;OPTIONAL FILE NOT PRESENT
B%RER==1B10 ;RERUN DUMP AT END-OF-REEL
F%CRER==POINT 1,CH,10
B%RRC==1B11 ;RERUN DUMP VIA RECORD-COUNT
F%CRRC==POINT 1,CH,11
B%CDMA==1B12 ;CORE DATA MODE IS ASCII
B%CDMS==1B13 ;CORE DATA MODE IS SIXBIT
B%CDME==1B14 ;CORE DATA MODE IS EBCDIC
F%BCDM==POINT 2,F.WFLG(I16),15 ; CORE DATA MODE
F%ACDM==POINT 3,F.WFLG(I16),14 ;[427] CORE DATA MODE.
;[427] ASCII 4
;[427] SIXBIT 2
;[427] EBCDIC 1
CDMASC==40 ;CORE DATA MODE IS ASCII
CDMSIX==20 ;CORE DATA MODE IS SIXBIT
CDMEBC==10 ;CORE DATA MODE IS EBCDIC
F%BORG==POINT 3,F.WFLG(I16),17
B%ORGI==1B15 ;ORGANIZATION IS INDEX-SEQUENTIAL
B%ORGS==1B16 ;ORGANIZATION IS SEQUENTIAL
B%ORGR==1B17 ;ORGANIZATION IS RELATIVE
IDXFIL==4 ;ORGANIZATION IS INDEX-SEQUENTIAL
SEQFIL==2 ;ORGANIZATION IS SEQUENTIAL
RANFIL==1 ;ORGANIZATION IS RANDOM
F.RREC==10 ; ADDRESS OF RECORD AREA
F%BREC==POINT 18,F.RREC(I16),35 ; ADR OF RECORD AREA
F.RFSD==11 ; LINK TO FILE-TABLE THAT SHARES DEVICE
F.WBKF==12 ; THE BLOCKING FACTOR
F%BBKF==POINT 12,F.WBKF(I16),17
F%CBKF==POINT 12,CH,17
F.RACK==12 ; ADR OF RELATIVE KEY TABLE
F.WVID==13 ; BYTE POINTER TO VALUE OF ID
F.WVDW==14 ; BYTE POINTER TO VALUE OF DATE WRITTEN
F.LSBA==15 ; LINK TO FILE-TABLE THAT SHARES BUFFER AREA
F.REUP==15 ; ADR OF ERROR USE PROCEDURE
F.WMRS==16 ; MAXIMUM RECORD SIZE IN CHARS
F%BMRS==POINT 18,F.WMRS(I16),17
F%CMRS==POINT 18,CH,17
F.WLRS==16 ; MINIMUM RECORD SIZE IN CHARS
F%BLRS==POINT 18,F.WLRS(I16),35
F%CLRS==POINT 18,CH,35
F.LPP==17 ;LINES PER PAGE (LHS)
F.WFA==17 ;WITH FOOTING AT (RHS)
F.LAT==20 ;LINES AT TOP (LHS)
F.LAB==20 ;LINES AT BOTTOM (RHS)
F.DEB==21 ;DEBUGGING USE PROCEDURE (LHS)
F.LCI==21 ;LINAGE COUNTER INITAILIZATION (RHS)
F.AKS==20 ; ***TEMP*** APPROX. KEY SIZE FOR START VERB
F.WDNS==22 ; MAG-TAPE DENSITY AND PARITY
F%BDNS==POINT 3,F.WDNS(I16),2 ; MAG-TAPE DENSITY
F%CDNS==POINT 3,CH,2
F%BPAR==POINT 1,F.WDNS(I16),4 ; MAG-TAPE PARITY
F%CPAR==POINT 1,CH,4
F.WDIO==22 ; DEFERRED ISAM OUTPUT FLAG
F%BDIO==POINT 1,F.WDIO(I16),5
F%CDIO==POINT 1,CH,5
F.WOUP==22 ; OPEN USE-PROCEDURE WHEN ENTER FAILS
F%BOUP==POINT 1,F.WOUP(I16),6
F%COUP==POINT 1,CH,6
F.RMS==22 ; RMS FLAG
F%BRMS==POINT 1,F.RMS(I16),7
F%CRMS==POINT 1,CH,7
F.WBM==22 ; BYTE MODE
F%BBM==POINT 1,F.WBM(I16),8
F%CBM==POINT 1,CH,8
F.CKP==22 ; CHECKPOINT FLAG
F%BCKP==POINT 1,F.CKP(I16),9
F%CCKP==POINT 1,CH,9
F.CRC==22 ; CHECKPOINT RECORD COUNT
F%BCRC==POINT 8,F.CRC(I16),17
F%CCRC==POINT 8,CH,17
F.RPPN==22 ; ADR OF USER-NUMBER [PPN]
F%BPPN==POINT 18,F.RPPN(I16),35
F.WBRK==24 ; BYTE POINTER TO RECORD KEY
F.WBSK==F.WBRK ; EASIEST WAY TO FAKE OUT LIBOL
F.WIKD==25 ; ISAM KEY DESCRIPTION WORD
;THE BYTE POINTERS SUBJECT TO THE DEFINITION OF F.WSMU BELOW ARE INVALID
; AND THE PROPER ONES APPEAR IN LSU.MAC. THE DOCUMENTATIONS OF
; THE PROPER BYTE POINTERS ARE GIVEN IN THE COMMENTS SECTION ABOVE.
F.WSMU==26 ;
F%COWN==POINT 9,CH,8 ;OWNER ACCESS
F%COTH==POINT 9,CH,17 ;OTHER ACCESS
F%BSLF==POINT 4,F.WSMU(I16),3 ;SELF BYTE FOR OPTION 1
F%BQOF==POINT 1,F.WSMU(I16),15 ;[565] LFENQ. OPEN FLAG
;[565] 0= NOT AFTER LFENQ. OPEN
;[565] 1= AFTER LFENQ. OPEN
F.WPFS==27 ; POINTER TO FILE-STATUS DATA-ITEM
F.WPEN==30 ; POINTER TO ERROR-NUMBER DATA-ITEM
F.WPAC==31 ; POINTER TO ACTION-CODE DATA-ITEM
F.WPID==32 ; POINTER TO VALUE-OF-ID DATA-ITEM
F.WPBN==33 ; POINTER TO BLOCK-NUMBER DATA-ITEM
F.WPRN==34 ; POINTER TO RECORD-NUMBER DATA-ITEM
F.WPFN==35 ; POINTER TO FILE-NAME DATA-ITEM
F.WPFT==36 ; POINTER TO FILE-TABLE ADR DATA-ITEM
F.PROT==37 ; POINTER TO FILE PROTECTION CODE
F%BPRT==POINT 18,F.PROT(I16),17
F.SZID==37 ; SIZE OF VALUE-OF-ID
F%BSID==POINT 8,F.SZID(I16),35
F.PADD==40 ; POINTER TO PADDING CHARACTER
F.RMKL==41 ; ADDR OF BLOCK OF RMS KEY DESCRIPTORS
; (IN LEFT HALF)
F.APBL==41 ;VARIOUS RMS FILE FLAGS.
F%NOCR==POINT 1,F.APBL(I16),34 ;WRITE / NO-WRITE <CR> FOR ASCII STM
F%APBL==POINT 1,F.APBL(I16),35 ;APPLY BASIC-LOCKING TO THIS FILE.
SUBTTL RANDOM ACCESS CONSTANTS
R.IOWD==0 ; IOWRD FOR RANDOM/IO FILES
R.TERM==1 ; IOWRD TERMINATOR
R.BPNR==2 ; BYTE POINTER TO NEXT RECORD IN BUFFER
R.BPLR==3 ; LAST RECORD
R.BPFR==4 ; FIRST RECORD
R.DATA==6 ; BUFFER HAS ACTIVE DATA TO BE WRITTEN OUT
R.WRIT==7 ; LAST IO OPERATION FOR THIS FILE WAS A WRITE
R.STRT==10 ; LAST IO OPERATION FOR THIS FILE WAS A START
R.DLRW==11 ; WORD TO SAVE CURRENT DSK BLK NUM WHILE A DELETE/RERIT
; IS BEING DONE, SO THAT THE "CURRENT" POSITION CAN BE RESTORED
SUBTTL ISAM STATISTICS CONSTANTS
; THE FOLLOWING DEFINES THE TABLE OFFSETS FOR FIELDS WITHIN
; THE ISAM FILE STATISTICS BLOCK AND THE DATA AREA USED BY
; LIBOL FOR CURRENT FILE STATIS
ADR==0
DEFINE TABADR(N,L) <
N==ADR
ADR==ADR+L
>
TABADR STAHDR,1 ;SIZE OF STATISTICS BLOCK IN SIXBIT BYTES
TABADR DDEVNM,1 ;DATA FILE'S DEVICE NAME
TABADR DFILNM,1 ;DATA FILE'S FILE NAME
TABADR DEXT,1 ;DATA FILE'S EXTENSION
TABADR DCDATE,1 ;DATA FILE'S CREATION DATE
TABADR DADATE,1 ;DATA FILE'S ACCESS DATE
TABADR MXLVL,1 ;NUMBER OF LEVELS IN INDEX FILE
TABADR DBF,1 ;DATA FILE BLOCKING FACTOR
TABADR DMTREC,1 ;NUMBER OF EMPTY RECORDS PER DATA BLOCK
TABADR EPIB,^D20 ;TWO WORDS PER INDEX LEVEL
;FIRST WORD: NUMBER OF ENTRIES PER INDEX BLOCK
;SECOND WORD: NUMBER OF EMPTY ENTRIES
TABADR DMXBLK,1 ;TOTAL BLOCKS IN DATA FILE
TABADR DMTBLK,1 ;EMPTY BLOCKS IN DATA FILE
TABADR IMXSCT,1 ;TOTAL SECTORS IN INDEX FILE
TABADR IMTSCT,1 ;EMPTY SECTORS IN INDEX FILE
TABADR FMTSCT,1 ;FIRST EMPTY SECTOR IN INDEX FILE
TABADR DMXREC,1 ;MAXIMUM DATA RECORD SIZE IN WORDS
TABADR DBPRK,1 ;BYTE POINTER TO RECORD KEY RELATIVE TO DATA RECORD
TABADR RWRSTA,1 ;NUMBER OF READ, WRITE, REWRITE STATEMENTS SINCE INITIALIZATION
TABADR IOUUOS,1 ;NUMBER OF IN'S AND OUT'S SINCE INITIALIZATION
TABADR SBLOC,1 ;RELATIVE ADR OF FIRST SAT BLOCK
TABADR SBTOT,1 ;TOTAL SAT BLOCKS
TABADR ISPB,1 ;INDEX FILE, SECTORS PER LOGICAL BLOCK
TABADR FILSIZ,1 ;MAXIMUM POSSIBLE NUMBER OF DATA BLOCKS IN FILE
TABADR KEYTYP,0 ;KEY-TYPE IN LEFT HALF
TABADR KEYDES,1 ;DESCRIPTION OF RECORD KEY
TABADR IESIZ,1 ;INDEX ENTRY SIZE IN WORDS
TABADR TOPIBN,1 ;TOP INDEX BLOCK NUMBER
TABADR %DAT,1 ;% OF DATA FILE EMPTY
TABADR %IDX,1 ;% OF INDEX FILE EMPTY
TABADR RECBYT,1 ;SIZE OF LARGEST DATA BLOCK IN BYTES
TABADR MAXSAT,1 ;MAX # OF RECORDS FILE CAN BECOME
TABADR ISAVER,1 ;"ISAM" VERSION NUMBER
TABADR PAGBUF,1 ;I/O SW.. 0 = SECTOR MULTIPLES, NONZERO = PAGES
STABL==ADR ;EQUALS SIZE OF STATISTICS BLOCK
TABADR IOWRD,14+1 ;TABLE OF DUMP MODE IOWD'S FOR EACH INDEX LEVEL
;0 DATA BLOCK
;1-12 INDEX BLOCKS
;13 SAT BLOCK
;14 STATISTICS BLOCK
TABADR OMXLVL,1 ;ORIGINAL MAX NUMBER OF LEVELS IN INDEX FILE
TABADR OKEYDS,1 ;[515] KEY DESCRIPTOR AT RESET TIME
TABADR ORCBYT,1 ;[515] RECORD SIZE AT RESET TIME
TABADR OEPIB,1 ;[515] ENTRIES PER INDEX BLOCK AT RESET TIME
TABADR CORE0,1 ;LAST,,FIRST - CORE AREA CLEARED AT CLOSE
TABADR ICHAN,1 ;CHANNEL NUMBER FOR INDEX DEVICE
TABADR USOBJ,14+1 ;USETI/O OBJECT: DATA, 10 INDEX, SAT & STA
TABADR CNTRY,14+1 ;CURRENT INDEX ENTRY
TABADR NNTRY,14+1 ;FLAG, CNTRY POINTS TO NEXT ENTRY NOT CURRENT
TABADR LIVE,1 ;(-1) IF DATA NOT YET OUTPUT
TABADR BRISK,1 ;IF -1 OUTPUT ONLY WHEN INPUT IS IMMINENT
TABADR CLVL,1 ;CURRENT LEVEL
TABADR RWDLKY,1 ; NNTRY,,ADDR OF CNTRY KEY COPYS FOR RWT/DEL
TABADR RCARSZ,1 ; ReCord ARea SiZe in words
TABADR RWDLRT,1 ; NNTRY,,Addr of RWDLKY during RETAIN
TABADR SVNXRT,1 ; Saves D.RFLG during RETAIN, when none zero flags that
; RWDLKY points to RETAINS del/rewrt key save area,
; that RWDLKY must be restored at the end of RETAIN
TABADR PRVRET,1 ;HOLDS ADDRESS OF PREVIOUS CNTRY FOR THIS FILE IN CASE RETAIN NEXT FOLLOWS
TABADR PRVSKB,1 ;HOLDS BYTE PTR OF RRT ENTRY FOR PREVIOUS CNTRY FOR THIS FILE
TABADR IAKBP,1 ;INDEX ADJUSTED SYMBOLIC KEY BYTE-POINTER
TABADR IAKBP1,1 ;POINTER TO SECOND KEY WORD
TABADR DAKBP,1 ;DATA ADJUSTED SYMBOLIC KEY BP
TABADR DAKBP1,1 ;POINTER TO THE SECOND KEY WORD
TABADR SINC,1 ;BINARY SEARCH INCREMENT
TABADR IBLEN,1 ;INDEX BLOCK LENGTH NOT COUNTING HEADERS
TABADR IKWCNT,1 ;INDEX, NUMBER OF WORDS IN THE KEY
TABADR DKWCNT,1 ;DATA, NUMBER OF WORDS IN KEY
TABADR FWMASK,1 ;MASK FOR FIRST WORD OF DATA KEY
TABADR LWMASK,1 ;MASK FOR LAST WORD OF DATA KEY
TABADR ICMP,1 ;HOLDS ADR OF THE INDEX COMPARE ROUTINE
TABADR DCMP,1 ;HOLDS ADR OF DATA COMPARE OR CONVERT ROUTINE
TABADR DCMP1,1 ;HOLDS ADR OF DATA COMPARE ROUTINE IF KEY IS NUMERIC DISPLAY
TABADR GDX.I,1 ; ADR OF CONVERT ROUTINE -- SK VS INDEX-ENTRY
TABADR GDX.D,1 ; ADR OF CONVERT ROUTINE -- SK VS DATA FILE KEY
TABADR GDPSK,1 ;PARAMETER FOR SYM-KEY CONVERSION
TABADR GDPRK,1 ;PARAMETER FOR REC-KEY CONVERSION
TABADR GDPRK1,1 ;
TABADR GETSET,1 ;DISPATCH LOC: ADJKEY OR GD67 OR FPORFP
TABADR RECBP,1 ;RECORD AREA BYTE-POINTER
TABADR RSBP,1 ;BYTE POINTER TO RECORD SIZE IN BUFFER
TABADR RSBP1,1 ;ANOTHER BP TO RECORD SIZE
TABADR LRW,1 ;FIRST FREE RECORD WORD, USED BY SETLRW
IFN ISTKS,<
TABADR INSSS0,1 ;EXP (LVL)INSSSS
TABADR OUTSS0,1 ;EXP (LVL)OUTSSS
TABADR INSSSS,16 ;NUMBER OF INS/LEVEL
TABADR OUTSSS,16 ;NUMBER OF OUTS/LEVEL
>
TABADR IOWRD0,1 ;POINTS TO CURRENT IOWRD
TABADR USOBJ0,1 ;POINTS TO CURRENT USOBJ
TABADR CNTRY0,1 ;POINTS TO CURRENT CNTRY
TABADR NNTRY0,1 ;FLAG, CNTRY POINTS TO NEXT ENTRY
TABADR BPSB,1 ;NUMBER OF BITS PER SAT BLOCK
ITABL==ADR-STABL ;INDEX TABLE LEN
TABADR BA,0 ;START OF BUFFER AREA
ISCLR1==IOWRD ;[432] [377] START OF ISAM SHARED BUFFER AREA TO SAVE
ISCLR2==ICHAN-1 ; [377] END OF ISAM SHARED BUFFER TO SAVE
ISMCLR==ISCLR2-ISCLR1 ; [377] DIFFERENCE OR SIZE OF AREA LESS 1 TO SAVE
END