Trailing-Edge
-
PDP-10 Archives
-
DBMS-20_V6_BIN_19811001
-
sources/dbsdcl.mac
There are 22 other files named dbsdcl.mac in the archive. Click here to see a list.
UNIVERSAL DBSDCL - PARAMETERS FOR DBMS-10 & DBMS-20
SUBTTL SSC/WBH/JEF/HRB
; COPYRIGHT (C) 1974,1981 BY
; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
; INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
; COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
; OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
; TRANSFERRED.
; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
; AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
; CORPORATION.
; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
SEARCH GENDCL
SEGSYM
;;; ALL DBMS COMPONENTS ARE MAINTAINED AT SAME VERSION
MAJVER==6
MINVER==0
CUSVER==0
EDITNO==363
DEFINE VERSION(AAA)<
LOC 137
BYTE (3)CUSVER(9)MAJVER(6)MINVER(18)EDITNO
RELOC >
DBVER=:<BYTE (3)CUSVER(9)MAJVER(6)MINVER(18)EDITNO>
;;; DBMS EDIT HISTORY
; *** EDITS TO DBMS-V5 (MADE BY SSC UNLESS OTHERWISE NOTED)
;[%241] FIX JRDATA TO COMPUTE WORD COUNT RATHER THAN BYTE COUNT.
; ALSO FIX PUT.M TO DO NO TYPE CONVERSION.
;[%242] MAKE ALL PROT AND CONCUR U-M SPECIFY OF%THW IN DBMO C
; SO THAT U-M UPDATE/U-M RETR DOESN'T GET 940 ON -20.
;[%243] MAKE DBCLOS TLZ PSW.QRU IF CUR.RU IN AREA BEING CLOSED
; SO THAT SUBSEQ FIND WILL NOT DO SPURIOUS DEQ (IN UPD/RETR UM).
;[%244] MAKE XC.ALR IN DBLEAV BRANCH TO DXX.BX SO THAT BINDS ERROS SET SUS STATE.
;[%245] MAKE "RANGE" OF CLASS END-OF-CLAUSE SO THAT "ASSIGN" CAN CONTAIN
; ARBITRARY NUMBER OF RANGE CLAUSES.
;[%246] FIX PROCESSING OF LINE-SEQUENCE NUMBERS IN SCHEMA ON -10.
;[%247] MAKE RETRIEVAL MODES FOR TEMP AREAS INVOLVE NO .TMP FILE.
; ALSO DONT MAP THEM ALL INTO PROT RETR.
;[%250] MAKE NO JOURNALING AND PROT UPD COMPAT IN DBPORT.
;[%251] CALL SET.R IN JSTRA$ ONLY WHEN TRANS I-U AND DBMS SIMUL UPD.
;[%252] DAEMDB BUG IN DABUT1, CAUSE JOUT TO MTA: TO BE GENERATED CORRECTLY.
; PATCH DISTRIB TRIV VIA KLUDGE, ACTUAL PATCH INVOLVED ARCHITECTURAL CHANGE
;[%253] PATCH DBFIND TO CORRECTLY DETECT (EOS) FOR FINDO$.
;[%254] IF YOU TRIED TO INCREASE HIGHEST LINE ON A PAGE AND FILL
; THE PAGE EXACTLY, ALC.LN WOULD INCORRECTLY SAY NO ROOM.
;[%255] PREVENT DAEMDB FROM ILL MEM REF WHEN USER DOES CLOSE RUN-UNIT
; THAT SETS JOURNAL USAGE-CNT TO 0.
;[%256] FIX DDLSKE TO ACCEPT PIC A(N)
;[%257] FIX MEM.UNL SO THAT DELETE OF OB.CNEX DOESN'T CAUSE EXCEP(ACA).
; ALSO NOTE IN DOC THAT (ACA) CAN MEAN REF OF OB.CURR FOR WHICH CURR SET OCC DELETED.
;[%260] FIX FND.OS TO HANDLE "FIND OWNER OF CURR OF REC!AREA" IN CIRCUMSTANCE
; WHERE REC HAS BEEN REMOVED FROM SET OCC
;[%261] ELIMINATE SUPERFLOUS GETLIN WHEN PROCESSING A BLANK LINE OF SS TEXT
;[%262] ELIMINATE KI-ONLY INSTRUCTION IN GENIO.MAC
;[%263] FIX SCHIO TO HANDLE LOWERCASE SCHEMA NAMES ON 10
;[%264] FIX DAEMDB'S HANDLING OF INTERRUPTS SO THAT IT PROCESSES
; THEM IMMED RATHER THAN WAITING UNTIL END OF NEXT POLLING PERIOD
;[%265] CAUSE DAEMDB TO GENERATE LABEL PAGES FOR 2ND AND LATER REEL OF A JOURNAL.
; MAKE MNDUTL SAVE TEMP REGS CORRECTLY IN LINKING TO REEL CHANGER.
; MAKE MNDUTL SET OKMSG BITS CORRECTLY FOR REEL CHANGING.
;[%266] FIX SCAN BLOCKS SO THAT UTILITIES CAN BE EXECUTED WITHOUT THE "R "
;[%267] MAINTENANCE ONLY (NOT IN DEVEL SOURCES) -- DONT ACTUALLY
; SCAN BUFFERS TO SEE/MANAGE WHAT PAGES IN CORE
;[%270] (MAINT. ONLY) FIX CRU.CHK IN DBMANY TO HANDLE PROT UPD
;[%271] HAVE GTJFN IN DBMOC DISTINGUISH BETWEEN AREA NOT FOUND & JFN'S EXHAUSTED
;[%272] IPCF RCV OVERWRITES MAX MSG SIZE WITH ACTUAL MSG SIZE.
; THIS PATCH MAKES DABUTL RESTORE MAX MSG SIZE AFTER EACH RCV.
;[%273] FIX ABSTRACT TO WORK RIGHT EVEN IF SCHEMA NOT YET OPENED
; (THE TEMP-BUFFER FOR JOURNAL BLKS WAS BEING OVERFLOWED).
;[%274] FIX POSMTA IN MNDUTL TO ACCT FOR REAL-TIME DELAYS IN MTA POSITIONING
;[%275] ENABLE JR.PREV IN MNDUTL TO HANDLE UNUSED WORDS AT END OF PRECEDING PAGE
;[%276] FIX JR.PIN IN MNDUTL TO BE ABLE TO "SET UP" IN A J PAGE IN WHICH
; NO JOURNAL BLK STARTS OR ENDS
;[%277] FIX BD.TREE TO NOT RECURSIVELY CLOBBER INDEX BLOCK WHEN MORE THAN 1 INDEX LEVEL
;[%300] RE-ORDER TOPS-10 ERR BIT CHKS IN DABUTL SO THAT NON-FATAL BITS TAKE PRECEDENCE
;[%301] SUBSUMED BY %303
;[%302] (MAINT. ONLY) DETECTION OF ABORTED TRANSACTION IN JR.LIN
;[%303] MAKES DBJOUR CORRECTLY INIT EMPTY J & DETECT INCONSIS J FORMAT
; IN JR.LIN
;[%304] MAKE ALC.LN IN DBKALC HANDLE PAGE RANGES OF 7 OR LESS
;[%305] MAKE DBINS/DBREM CHK SPECIFICALLY FOR ARG CODE SO THAT NON-NAMID
; SYMBOLS CAN BE DISTINGUISED FROM THE (NEGATIVE) ARG CODES
; (EG. $$ALL)
;[%306] FIX BOUNDARY-CONDITION ERROR IN DBMOC: CALC PAGE RANGE CORRECTLY
; WHILE DETTING # OF PAGES IN TMP DIRECTORY
;[%307] CORRECTLY SETUP CNT.GOS/CNT.POS/CNT OF J P WRITTEN FOR DBSTAT
;[%310] CLEAN UP "FILBLK" HANDLING IN DBMEND, ADD FJ.BLK,
; GIVING J ITS OWN FILBLK
;[%311] ENABLE DDLLEX TO HANDLE THE "IS" IN PIC IS ....
;[%312] DO A CLOSF OF .TMP FILE AFTER THE DELF
; (OTHERWISE SUBSEQ OPENF FAILS)
;[%346] FIX PROBLEM WITH LOWER CASE CHARACTERS IN PICTURE STATEMENTS
; *** DBMS-V6 DEVELOPMENTAL EDITS
;[V6%1] ENABLE DBINFO TO DISPLAY BUOYS AND SORTED-SET INDEX STRUCTURES.
;[V6%2] IMPLEMENT /AREA FOR DBINFO AND DBMEND
;[V6%3] IMPROVE ERROR MESSAGES IN THE UTILITIES
;[V6%4] ENFORCE 30 CHAR MAX FOR USER IDS
;[V6%5] SUPPORT FOR BUFFER COUNT AT AREA-NAME
;[V6%6] SUPPORT FOR "NOTE JOURNAL"
;[V6%7] SUPPORT FOR COMPRESSED PAGE IMAGES
;[V6%8] ELIMINATE CRU ENQING IN FAVOR OF MORE GENERALIZED TRANSACTION
; CONCEPT
; AND USE OF AID FILES FOR GENERATING LONG REPORTS
;[V6%9] DO J I/O IN LARGER CHUNKS, ELIMINATE QUEUE THAT SUPPORTED
; BI JOURNALING, MIN DB PAGE WRITING TO MIN PROB OF
; PREMAT J WRITES
;[6%10] MAKE BUFFER HDR A NODE OF AB.BUFPT RATHER THAN A PREFIX OF
; BUFFER
;[6%11] ADD SUPPORT OF CLUSTER SIZE
;[6%12] ELIMINATE OVERLAPPED J LAB PAGE IN FAVOR OF J PIPELINING AND
; SHARING OF LABEL INFO
;[6%13] ENHANCEMENTS TO STATS
;[6%14] SUPPORT OF DBINFO /ACCUMULATE SWITCH
;[6%15] PROVIDE MORE ACCURATE CALC-CHAIN SPECIFYING SYNTAX: CALC
; CHAIN [COUNT IS] INTEGER
;[6%16] ADD CNTS OF A-I DIRECTORY I/O & PAGES CREATED TO DBSTAT OUTPUT
;[6%17] ADD SUPPORT FOR FIND6
;[6%18] PAGE/AREA LOCKING SUPPORT
;[6%19] TRANSACTION SUPPORT
;[6%20] ASSIGN INDEX SUPPORT
;[6%21] MOD FOR DBINFO ???
;[6%22] CLUSTER SUPPORT
;[6%23] JOURNAL QUEING MODIFICATION, PERFORMANCE AND INTEGRATION
;[6%24] RANGE CLAUSE EXTENSION
;[6%25] SPEED UP EQLSTR IE DO WORD COMPARES
;[6%26] FOR ORDER FIRST MAKE TARGET PAGE THAT OF THE FIRST
; RECORD NOT THE OWNER
;[6%27] PMAP AFTER IMAGE DIRECTORIES
;[6%30] USE FFUFP FOR FIND NEXT OF AREA
;[6%31] PERFORMANCE WORK ON THE -10 (ENQ/DEQ, AND SHARED TABLE)
;[6%32] ADD MEMBERS CLAUSE TO DELETE VERB
; DBCSYM, DBDEL, DBSET, DMLTAB, DMLVER, DMLVOK
;[6%33] ADD BUFFER COUNT IS n TO ENVIRONMENT ENTRY
; DDLGLO, DDLDMC
;[6%34] CHANGE CALLING CONVENTIONS FOR DAEMDB
;[6%35] ADD SUPPORT FOR AREA BUFFER SHARING
; DBOPEN, DBCLOS, DBMIO
;[6%36] ADD DATA-NAME TO ASSIGN BUFFER CLAUSE
; DDLDMC
;[6%37] DBINFO - FIRST PASS AT VSIXING IT
;[6%40] ADD QUEUING TO THE LOCK MECHANISM
;[6%41] DBMEND REWRITE
;[6%42] BIND QUALIFIED DATA REFERENCES
;[6%43] ADD A PRIVACY LOCK FOR ADMINISTRATION
;[6%44] SUPPORT OPTIONAL LRU BUFFER SELECTION WITHOUT REGARD TO
; THE MUST-WRITE STATUS
;[6%45] DBSTAT - ENABLE STATS TO DUMP STATS AT A DATA-NAME
;[6%46] ADD (UNSUPPORTED) USER ENTRY POINTS
;[6%47] LTPR ##### ASSUME "INTERCEPT" STATEMENT FOR 1531 ERROR
;[6%52] LTPR #### DBKIO OPEN OF EMPTY AREAS CAUSES ILL MEM REF
; NOW GIVES EXCEPTION "UMR"
;[6%53] ADD ERROR-DATA REGISTER TO NOTE/INTERCEPT OUTPUT
;[6%54] MAKE JETRAN WITH NO JSTRAN GIVE PROPER ERROR CODE
;[6%55] LTPR #### MAKE SC.SYM IN GENIO HANDLE "-" AND QUOTED SYMBOLS
;[6%56] LTPR #### DBCLOSE -- FOR CLOSE ALL AND CURRENT .DBS NOT OPEN
; DONT CLEAR CURRENCY AND AVOID ILL MEM REF
;[6%57] LTPR #### DON'T CLEAR CURRENCY FOR RECORDS NOT IN THE CURRENT
; SUB-SCHEMA
;[6%60] LTPR #### CLEAR LK.ABO AND LKJ.OWN WHEN INITIALIZING LOCK PAGE
;[6%61] LTPR #024 DBBITM - DBCSYM: PATH SIMULATION # OF IO'S FOR STATS
;[6%62] LTPR #### ALWAYS RE-CREATE THE .LOK FILE WHEN RE-CREATING THE
; .SCH FILE
;[6%63] LTPR #### SUPPORT DEFAULTING USAGE MODES IN XACTION DEFINITION
;[6%64] LTPR #037 ADD [AT MOST] TO ASSIGN JOURNAL... SIZE IS CLAUSE
;[6%65] LTPR #041 DYNAMICALLY ADJUST CLUSTER SIZE TO TAKE INTO ACCOUNT
; THE POTENTIAL EXISTANCE OF A PAGE IN A NEW CLUSTER
; ALREADY EXISTING IN A BUFFER AND THE RANGE CLAUSE
;[6%66] LTPR #040 DBSTAT - AVOID FLOATING DIVIDE CHECK IN FORTRAN
;[6%67] SYS DBK = 1002 AND ASR DBK = 1001 FOR SCHEMA SCHEMA
;[6%70] LTPR #042 DBKIO - MOVE COUNT OF CNT.JQF (JRN FLUSHES) FROM
; PUT.PAG TO PUT.IFM TO AVOID COUNTING AT END OF TRANS
;[6%70] LTPR #### DBJOUR - CNT.JBF NEVER COUNTED "(SS)" MISSING
;[6%71] LTPR #### DBINFO - DONT SEND FF'S TO THE DBI FILE IF
; ON A TERMINAL
;[6%72] LTPR #047 INFCOM - RUN$ (PROGRAM) DBINFO
; NOISE WRD PROGRAM CAUSES SCAN TO BARF
;[6%73] LTPR #### DBINFO ALLOW DISPLA KEY:dbk
;[6%74] CHANGE UFPGS TO ONLY UPDATE PAGES WE ACTUALLY MODIFIED
;[6%75] LTPR #046 DBINFO GIVE A CLEARER MESSAG THAN EXCEPT 60
; IF ATTEMPT TO DISPLA AND AREA NOT OPEN
;[6%76] LTPR #048 DBINFO - INFIDB WAS CONFUSED ABOUT DEFINITION
; OF AN EMPTY PAGE
;[6%77] ADD TRACE CODE TO PAGE LOCKING
;[6%100] LTPR #000 DBMIO - 157 ERROR WHEN PAGE SIZE GREATER THAN
; 512. WORDS
;[6%101] (RESERVED WBH)
;[6%102] LTPR #052 DBKALC - ALC.LN DOES NOT CHECK ALL PAGES WITHIN
; A RECORD RANGE BEFORE GIVING UP IE [1211]
;[6%103] CHECK FOR PAG.LX(X) BEING WITHIN THE PROPER PAGE RANGE
; BEFORE USING IT TO STORE A NEW INDEX
;[6%104] INSURE THAT JRTEXT/JRDATA OPERATE WITHIN THE TRANSACTION
; CONCEPT
;[6%105] HANDLE CASE OF JOURNAL HEADER BLOCK ENDING ON THE LAST
; WORD OF THE JOURNAL PAGE PROPERLY
;[6%106] SEARCH DEVICE SCH: FOR .SCH AND .LOK FILES IF IT EXISTS
;[6%107] INFCOM 20-NOV-80 ZERO THE EXT FOR SU AND APP FOR DBINFO
; SCAN DOESNT DO IT AND SU WILL DEFAULT TO SCHNAM.CMD
;[6%110] WAIT 1 SECOND AFTER A DELETE TRANSACTION TO GIVE OTHER
; R-U A CHANCE TO COMPLETE
;[6%111] FIX JOURNALING PROBLEMS
;[6%112] CHECK ENTIRE SEARCH PATH BEFORE CREATING A NEW
; .TMP OR .AID FILE
;[6%113] DBSET 5-DEC-80 PUT FIRST BUOY WHERE FIRST REC WILL GO
; NOT WITH THE OWNER
;[6%114] ALLOW ARGUMENTS TO BE PASSED TO GENMSG VIA NWIND (REG 10)
;[6%115] DBSET, DBKALC 12-DEC-80 FOR ORDER PRIOR
; USE WINDO-1 AND FIRST REC GOES TO LAST PG OF WINDO
;[6%116] LTPR #056 DDLMES 29-DEC-80
; SCHEMA BUG DDLVSN ERROR MESSAGE PRINTS GARBAGE
;[6%117] LTPR #059 DDLDMC 30-DEC-80
; SCHEMA BUG - INFINITE LOOP ASSIGN RANGE ERROR
;[6%120] DBSDCL, DBKIO, DBMIO 7-JAN-81
; FND NEXT OF AREA FAILS ON EMPTY BUT XTANT PAGE
;[6%121] FIX PROBLEMS WITH DASHES (-) IN SYMBOLS (GENCMD)
;[6%122] DBLEAV 8-JAN-81
; FND.NA GIVES REC NOT FND IF EMPTY PAG PRECEDES REC-PG
; PSW.RAN MUST BE ZEROED AFTER EACH VERB
;[6%123] DBGATE 9-JAN-81
; MAKE LINK TIME SWITCHES SEPERATE MODULES TO ELIMINATE
; LINK WARNING MESSAGE "%MULTIPLE......"
;[6%124] DBJOUR 9-JAN-81
; WHEN OPENING A JOURNAL FOR APPEND, MAKE SURE THAT
; JP.NEED(SS) IS SET UP PROPERLY
;[6%125] 9-JAN-81
; MAKE THE DELETE TRANSACTION COMMAND IGNORE PRIVACY KEYS
;[6%126] 12-JAN-81
; ADD A FLAG TO DETERMINE WHEN AND AID FILE IS CREATED
; BY THE OPEN CODE.
;[6%127] 13-JAN-81
; MAKE SURE INCOMPLETE TRANSACTIONS ARE BACKED OUT BEFORE
; CLEARING UNDEFINED STATE.
;[6%130] 13-JAN-81
; GET PROPER SIZE OF JOURNAL AFTER A CRASH.
;[6%131] 13-JAN-81
; PROPERLY INITIALIZE JOURNAL WITH MULTIPLE SIMULTANEOUS
; RUN UNITS.
;[6%132] 14-JAN-81
; ALLOW A TRANSACTION LIMIT WHEN IMAGES ARE BY COMMAND.
;[6%133] 14-JAN-81
; AFTER CREATING A NEW PAGE COPY ITS BEFORE IMAGE TO
; THE JOURNAL.
;[6%134] 14-JAN-81
; FIX PROBLEM WITH DBMEND NOT HANDLING JOURNAL WITH
; LAST PAGE CONTAINING ONLY A PARTIAL IMAGE.
;[6%135] 14-JAN-81 DBKIO
; FIX FOR EDIT 331. INSERT OF A SORTED REC SOMETIMES FAILS
; WITH DUPS NOT ALLOWED" NUWA(X) POINTS TO SRT KEY AND IS
; INVALIDATED BY OVER-READING THE TARGET PAGE.
;[6%136] 16-JAN-81
; LOK.JRN SHOULD NEVER RETURN UNLESS THE JOURNAL IS
; LOCKED.
;[6%137] 19-JAN-81
; RESET JOURNAL CONTEXT WHEN BACKING OUT A TRANSACTION
; THAT HAS NEVER ACTUALLY WRITTEN TO THE JOURNAL
;[6%140] 22-JAN-81
; FIX BUG IN CURRENCY SUPRESSION
;[6%141] 27-JAN-81
; HANDLE IMAGES SPLIT ACROSS JOURNAL PAGES
; WHEN IMAGE IS NOT DESIRED
;[6%142] 27-JAN-81
; DON'T LEAVE BH.PAGE CONTAINING A PAGE NUMBER IF THE
; BUFFER DOESN'T CONTAIN THE PAGE
;***** V6 FIRST FIELD TEST TAPE ON -20S 30-JAN-81 *****
;[6%143] 24-FEB-81 HRB
; DISABLE DEBUG CODE WHICH CAUSES PROBLEMS FOR DBMEND
; MODULES: DBMLOK
;[6%144] 26-FEB-81 HRB
; COMPLETELY CLEAN-UP THE JOURNAL ENVIRONMENT WHEN
; SWITCHING SCHEMAS/JOURNALS IN DBMEND
; MODULES: MNDIDB
;[6%145] 26-FEB-81 HRB
; MAKE DBMEND SCHEMA COMMAND COMPLETELY RE-INITIALIZE
; ITS ENVIRONMENT.
; MODULES: MNDCOM MNDUTL
;[6%146] 26-FEB-81 HRB
; FIX TYPEOUT OF SCHEMA NAME IN AN ABSTRACT TO INCLUDE
; THE SIXTH CHARACTER.
; MODULES: DBJOUR MNDDCL
;[6%147] 27-FEB-81 HRB
; DON'T CALL STRLIB WITH ARGUMENT INDEXED BY R1.
; MODULES: DBJOUR
;[6%150] 27-FEB-81 HRB
; ELIMINATE EXTRANEOUS END OF TRANSACTION WHEN BACKING
; OUT A POTENTIALLY INCOMPLETE TRANSACTION.
; MODULES: MNDIDB DBJOUR DBTRAN
;[6%151] 27-FEB-81 HRB
; FIX MORE PROBLEMS WITH MULTIPLE OPERATIONS IN ONE
; RUN OF DBMEND
; MODULES: DBOPEN
;[6%152] 2-MAR-81 JEF
; LET OPEN AREA WIN IF PRIVACY KEY SUPPLIED AS AN ARG
; AND NONE IS REQUIRED ALA AB.LOK
; MODULES: DBOPEN
;[6%153] 3-MAR-81 HRB
; FIX DBMEND'S HELP AND LABEL COMMANDS
; MODULES: MNDDCL MNDCOM DBJOUR
;[6%154] 3-MAR-81 HRB
; FINISH NATIVIZING GENMEM
; MODULES: GENMEM
;[6%155] 4-MAR-81 JEF
; INIT SET EMPTY FLAG (SETMTY)
; DEFAULT TARGET PG TO LAST OF RANGE IF POR1ST
; MODULES: DBSET DBOPEN DBSTOR
;[6%156] 4-MAR-81 JEF QAR 01430
; CALL TO GET.BP IS DONE WITH WRONG BYTE PTR.
; JRTEX$ AND JRDAT$, 270403,,0 SHOULD BE 270400,,3
; MODULES: DBJOUR
;[6%157] 6-MAR-81 HRB
; PRESERVE JBP WHEN TRYING TO PRINT TEXT DURING A DBMEND
; ABSTRACT COMMAND.
; MODULES: DBJOUR
;[6%160] 9-MAR-81 HRB
; CREATE DBMSF.EXE TO MAKE FOROTS WORK
; MODULES: DBGATE DBPORT
;[6%161] 9-MAR-81 HRB
; PRINT A WARNING MESSAGE WHEN DEFAULTING THE TYPE
; OF IMAGES FOR AN AREA
; MODULES: DDLMES DDLDMC
;[6%162] 9-MAR-81 HRB
; MAKE TBLOK. WORK AS DOCUMENTED FOR AREA LOCKING
; MODULES: DBMLOK
;[6%163] 11-MAR-81 HRB
; FIX "? ILLEGAL MEMORY READ...." WITH NULL JOURNALS
; MODULES: MNDIDB
;[6%164] 11-MAR-81 HRB
; MAKE DEFAULT TRANSACTION NAMES WORK AS DOCUMENTED
; MODULES: DBTRAN
;[6%165] 12-MAR-81 HRB
; FIX AUTORECOVERY ALA 6%137
; MODULES: DBJOUR
;[6%166] 12-MAR-81 QAR 1429
; DONT CHECK FOR SUB-SCH LOCK IF /SS ALL CASE
; MODULES: INFIDB
;[6%167] 12-MAR-81 HRB
; MAKE SCHEMA TEMPORARY AREAS WORK
; MODULES: DBMIO
;[6%170] 13-MAR-81 JEF
; THE DEFAULT ALGORITHM FOR PAG SELECTION MAY PLACE
; RECORD IN A RANDOM AREA.
; CALL MEMWHERE BEFORE WIN.AREA FOR VIA SETS
; MODULES: DBSTOR DBSET
;[6%171] 13-MAR-81 HRB
; FORDML GENERATES BAD CODE FOR OPEN JOURNAL
; STATEMENTS.
; MODULES: DMLVER
;[6%172] 16-MAR-81 HRB
; MAKE BACKUP OF MULTIPLE TRANSACTIONS WORK AGAIN
; MODULES: DBJOUR
;[6%173] 16-MAR-81 HRB
; CLEAN UP DBMEND'S ERROR MESSAGE ACT
; MODULE: MNDCOM MNDUTL DBJOUR
;[6%174] 17-MAR-81 HRB
; MERGE AFTER/BEFORE DON'T CHECK FOR EXISTANCE OF
; START/END BOUNDARIES
; MODULES: MNDCOM
;[6%175] 17-MAR-81 JEF
; ALLOW ONLY ONE RANGE OF RECORD STMNT PER RECORD
; MODULES: DDLSKE DDLMES
;[6%176] 17-MAR-81 HRB
; MAKE SURE JP IS UP-TO-DATE BEFORE CALLING JRCOP TO
; COPY DATA INTO THE JOURNAL
; MODULES: DBJOUR
;[6%177] 17-MAR-81 HRB
; INSURE THAT DBMEND CAN CARRY OUT THE USERS CLOSE
; JOURNAL/RUN-UNIT REQUEST
; MODULES: MNDUTL MNDDCL DBJOUR
;[6%200] 17-MAR-81 HRB
; MAKE SURE DBMEND DOESN'T HANG WHEN USER SPECIFIES A
; BOUNDARY WHICH CANNOT BE LOCATED
; MODULES: DBJOUR MNDOTH MNDCOM
;[6%201] 17-MAR-81 HRB
; DBMEND HANGS DURING MERGE AFTER/ABSTACT/BUILD WHEN A
; UNDESIRED BLOCK CROSSES PAGE BOUNDARIES
; MODULES: DBJOUR
;[6%202] 17-MAR-81 JEF
; FOR ALC.LN PAGE SELECTION - AND 1 SET PER n PAGES
; CHECK FOR ALL REC TIDS THAT ARE SET MEMBERS
; NOT JUST THE TID OF REC BEING ALLOCATED
; MODULES: DBKALC
;[6%203] 19-MAR-81 JEF
; HAVE DBDML SEARCH UUOSYM NOT C (OUT OF DATE)
; MODULES: DBDML
;[6%204] 23-MAR-81 HRB
; JE.VERB SHOULD NOT CLEAR NJE.BIT AS THIS WILL
; RESULT IN A UCR (62) ERROR.
; MODULES: DBJOUR
;[6%205] 23-MAR-81 HRB
; ELIMINATE RESH/JOSH CONFUSION. WHEN DEALING WITH
; JOURNAL TEST IS ALWAYS PSW.JOSH.
; MODULES: DBMLOK
;[6%206] 23-MAR-81 HRB
; ADD A CLEAN-UP ENTRY POINT SO DBMEND CAN CLEAN-UP
; THE DBCS ENVIRONMENT AFTER A MINOR ERROR.
; MODULES: MNDIDB
;[6%207] 23-MAR-81 HRB
; FIX START TRANSACTION-NAME:LAST CASE
; MODULES: DBJOUR
;[6%210] 23-MAR-81 HRB
; OPEN SHOULD NOT ATTEMPT TO OPEN AREAS WHEN CALLED
; WITHIN AN OPEN TRANSACTION.
; MODULES: DBOPEN DBCLOSE
;[6%211] 27-MAR-81 JEF (QAR-01485)
; "DELETE MEMBERS." VIA FORDML LOSES THE EOS TOKEN.
; MODULES: DMLVER
;[6%212] 27-MAR-81 HRB
; WITH IMAGES BY COMMAND BACKUP WILL NOT OCCUR
; UNLESS A BUFFER HAS BEEN MODIFIED. BACKUP IS
; REQUIRED TO CLEAN UP THE V6 ENVIRONMENT.
; MODULES: DBLEAV
;[6%213] 27-MAR-81 HRB
; PAGE LOCKING CODE DOES NOT PROPERLY WAKE R-U'S
; WAITING FOR A LOCK.
; MODULES: DBMLOK
;[6%214] 27-MAR-81 HRB
; MAKE SURE GJ%OLD IS SET IN ALL CASES WHEN LOOKING
; FOR A .DBS FILE.
; MODULES: DBMOC
;[6%215] 27-MAR-81 HRB
; CHANGE DBCS DISK OR MTA MESSAGE TO NOT MENTION MTA
; AND ONLY ISSUE IT WHEN THE USER'S DEVICE CANNOT
; BE TRANSLATED. OTHERWISE ISSUE A OS (xx60) ERROR.
; MODULES: DBMOC DBCHAR
;[6%216] 30-MAR-81 HRB
; GIVE PROPER ERROR MESSAGE ON DUPLICATES PSEUDONYMS
; MODULES: DDLSKE
;[6%217] 1-APR-81 JEF
; GIVE ERROR MESSAGE IF DBINFO IS RESTARTED
; MODULES: INFCOM INFMES
;[6%220] 2-APR-81 HRB
; MOVE SOME LOCK PARAMETERS FROM XSTAT TO SS SO
; THAT DIFFERENT SCHEMAS CAN BE ACCESSED FROM THE
; SAME PROGRAM
; MODULES: DBBIND DBMIO DBMLOK DBMOC DBTRAN INFIDB
; MNDIDB MNDMAN DBCSYM
;[6%221] 2-APR-81 HRB
; MORE DBMEND CLEAN-UP. MAKE IT VERY VERY SMART ABOUT
; POSSIBLY BAD JOURNALS
; MODULES: DBJOUR MNDDCL MNDOTH MNDCOM MNDUTL MNDMAN
;[6%222] 3-APR-81 HRB
; MAKE FORDML GIVE MORE APPROPRIATE MESSAGE WHEN IT
; CANNOT FIND THE .LOK FILE
; MODULES: DMLERR
;[6%223] 7-APR-81 JEF
; DBINFO GOT CAUGHT BY 6%210 CALLING DEFTRN AND CLODEF
; DIRECTLY. CALL ONLY FROM WITHIN DBCS ENVIRONMENT
; MODULES: DBLEAV DBMANY INFCOM INFIDB
;[6%224] 8-APR-81 HRB
; CONTINUE TO IMPROVE DBMEND ERROR HANDLING
; MODULES: DBJOUR DBOPEN DBSDCL MNDCOM MNDUTL MNDOTH
; MNDDCL
;[6%225] 9-APR-81 HRB
; ALWAYS INCLUDE THE SYSTEM RECORD IN SUBSCHEMAS
; WHICH INCLUDE THE AREA CONTAINING IT.
; MODULES: DDLSUB
;[6%226] 13-APR-81 HRB
; INTEGRATE MISSING V5A EDIT %346.
; MODUELS: DDLLEX
;[6%227] 14-APR-81 JEF
; AVOID EXCEP 60 IF D K:1001 AND AREA IS NOT OPEN.
; GIVE EXCEP ANO INSTEAD
; MODULES: INFIDB
;[6%230] 15-APR-81 JEF
; CLOSE BLOWS UP WITH SOME BLANK PGS STILL MAPPED.
; SO GET PAG NUMBER FROM BH.PAGE NOT BLANK PAGHDR
; MODULES: DBMIO
;[6%231] 15-APRP-81 JEF
; IF RECORD IS PLACED WITHIN MUTIPLE AREAS VIA THE RANGE
; CLAUSE OF THE AREA STATEMENT BUT NOT DECLARED WITHIN
; ALL THOSE AREAS VIA THE RECORD STATEMENT THE ERROR
; GOES UNDETECTED.
; MODULES: DDLSKE DDLMES
;[6%232] 17-APR-81 JEF
; SCHEMA DOES NOT DETECT DUP DATANAMES IN
; ASCENDING KEY IS DATAN1 DATAN1 CASE
; MODULES: DDLSKE
;[6%233] 17-APR-81 JEF
; THE DBMEND ABORT COMMAND FORGETS TO SET MND.BIT
; THIS CAUSES DBMEND TO ABORT ITSELF!
; MODULES: MNDMAN
;[6%234] 17-APR-81 JEF
; DBCS GIVES CBU MESSAGE WHEN CLOTR, DELTR OR JBTRN FAIL
; NOW TNA (TRANS NOT ACTIVE)
; MODULES: DBTRAN
;[6%235] 19-APR-81 JEF
; DBMEND BLOWS (W/ ill mem wri at ..) IF WRONG FILE IS
; FED TO THE JOURNAL COMND BEFORE THE RIGHT ONE IS.
; JR.BAFT IS LEFT WITH <#OF BUFS * JR.PSIZ>
; HOWEVER DBOPEN IE OP.JBUF EXPECTS # OF BUFS
; MODULES: DBOPEN
;[6%236] 23-APR-81 JEF
; DBMEND ill inst 13 @ 1 ON ABSTRACT TO TTY:
; ABSTRACT DOESNT KNOW ABOUT TEMPORARY B/A IMAGES.
; MODULES: DBJOUR MNDOTH
;[6%237] 24-APR-81 JEF
; DBMLOK BLOWS UP WITH EITHER PDL OV OR ILL INST
; WHEN USEING PAGE LOCKS. TOOOOOO MANY PUSHES
; AT RELONP:
; MODULES: DBMLOK
;[6%240] 24-APR-81 JEF
; NOTE JOURNAL BARFS WHEN TYPING THE DATE -- TYPO
; MODULES: DBJOUR
;[6%241] 24-APR-81 JEF
; HAVE NOTE DO BETTER FOR ERROR DATA
; OUTPUT 2 HALF WORDS NOT 1 HUGMANGUS NUMBER
; MODULES: GENDCL DBCHAR
;[6%242] 1-MAY-81 HRB
; MAKE THE EXCLUDE COMMAND NOT OPEN THE AREAS BEING
; EXCLUDED.
; MODULES: DBOPEN
;[6%243] 4-MAY-81 JEF
; HAVE DBINFO SETUP LK.MAX SO AS NOT TO OVERWRITE RANDOM
; PRIVATE PAGES.
; MODULES: INFIDB
;[6%244] 5-MAY-81 HRB
; JR.FLUSH WILL CAUSE THE JOURNAL TO BE WRITTEN
; IMPROPERLY THE SECOND TIME IT IS CALLED FROM
; JREFILL.
; MODULES: DBJOUR
;[6%245] 6-MAY-81 JEF
; IMPLEMENT /AID /NOAID /TMP /NOTMP FOR DBINFO
; MODULES: INFCOM INFUTL DBCSYM DBKALC DBMOC DBJOUR
;[6%246] 6-MAY-81 JEF
; DBJOUR MAKES WRONG TEST ON WRONG FLAG IN PUT.DBPAG
; ALSO SAME FOR JR.AFT/JR.BEF WHEN DETERMING TAI/TBI.COD
; ALSO CMP.DBPAG - SAVES 5 ACS RESTORES 4; SOMETIMES
; DOESNT RESTORE AND DOESNT INIT R0 BEFORE RETURNING
; TO CALLER.
; MODULES: DBJOUR
;[6%247] 11-MAY-81 JEF
; DBMIO PMAP BLOWS UP WHEN DBS FILE PAGE IS GREATER
; THAN ONE PHYS PAGE AND MGO.WT TRIES TO MAP PROCESS
; PAGE TO TMP/AID FILE -- ONLY THE FIRST PG WAS A
; PROCESS PG THE LAST WAS STILL A .DBS FILE PAGE.
; MODULES: DBMIO
;[6%250] 11-MAY-81 HRB
; CL.OIP DOESN'T ALWAYS OPEN A TRANSACTION WHEN
; IT SHOULD. THE RESULT IS A ?DBSXWX
; MODULES: DBCLOS
;[6%251] 12-MAY-81 EDS/HRB
; MAKE DAEMDB SORT OF WORK WITH V6 OF FORTRAN
; MODULES: DBMOC
;[6%252] 12-MAY-81 HRB
; RETURN THE R-U ID IN DBKREG ON AN OPEN
; OF THE JOURNAL.
; MODULES: DBOPEN
;[6%253] 14-MAY-81 HRB
; MAKE SURE JOURNAL LOCK IS RELEASED ON A
; CLOSE.
; MODULES: DBMOC DBOPEN
;[6%254] 14-MAY-81 HRB
; MAKE SIN JSYS USE THE % CONVENTION TO AVOID
; SYMBOL CONFLICTS.
; MODULES: DBMIO SCHIO
;[6%255] 18-MAY-81 HRB
; RETURN XX40 ERROR IF RUN OUT OF STACK SPACE WHILE
; PERFORMING DEADLY EMBRACE DETECTION.
; MODULES: DBMLOK
;[6%256] 19-MAY-81 JEF
; WHEN CLOSING A TMP FILE -- DONT DELETE IT IF THE
; AREA IS NOT OPEN FOR UPDATE
; MODULES: DBMOC
;[6%257] 19-MAY-81 JEF
; MAKE PRESERVE COMND WORK IN DBMEND
; MODULES: MNDIDB, MNDCOM, MNDUTL, DBMOC, DBKALC
;[6%260] 21-MAY-81 HRB
; RETURN TRANSACTION ID IN DBKREG ON OPEN TRANSACTION
; MODULES: DBTRAN
;[6%261] 22-MAY-81 JEF
; DBMEND GET EXCEPTION (960) ON /NOAID AND THERE IS NONE
; MODULES: MNDMAN
;[6%262] 22-MAY-81 JEF
; DBMEND SET SUS-BIT DOWN TOO FAR WHEN /NOAID AND THERE
; IS NO AID FILE.
; MODULES: DBKALC
;[6%263] 27-MAY-81 JEF
; FIND PRIOR REC1 OF SET1 SET SOMETIMES FAILS
; MODULES DBFIND
;[6%264] 28-MAY-81 HRB
; ELIMINATE THE POSSIBILITY OF XWX MESSAGES DURING
; DBMEND.
; MODULES: DBLEAV
;[6%265] 28-MAY-81 HRB
; MAKE SURE XWX ALWAYS LEAVES SYSCOM SET UP WITH
; INITIAL ERROR INFORMATION.
; MODULES: DBLEAV DBCSYM
;[6%266] 28-MAY-81 HRB
; MAKE DBCS HANDLE ABORT AND DBSTP$ PROPERLY
; MODULES: DBMLOK
;[6%270] 1-JUN-81 HRB
; INSTEAD OF RETURNING THE TRANSACTION OR R-U ID IN
; DBKREG ADD A GETUID ENTRY POINT.
; MODULES: DBTRAN DBOPEN
;[6%271] 1-JUN-81 HRB
; ALWAYS OPEN .AID/.TMP FOR WRITE (MONITOR LEVEL
; ONLY) SO THAT THE FILE CAN BE CREATED.
; MODULES: DBMOC
;[6%272] 1-JUN-81 HRB
; DON'T TRY TO CLEAR CURRENCY ON A DBMEND CLOSE.
; MODULES: DBCLOS
;[6%273] 2-JUN-81 HRB
; MAKE SURE .TMP/.AID FILES USE SAME DEVICE NAME AS
; .DBS FILE
; MODULES: DDLOS
;[6%274] 2-JUN-81 HRB
; ELIMINATE V5/V6 .SCH FILE PROBLEMS BY ONLY
; ALLOWING 256K EDITS TO THE .SCH FILE BEFORE
; ROLLING THE EDIT NUMBER BACK TO 1.
; MODULES: SCHIO
;[6%275] 2-JUN-81 HRB
; ADD A PSEDO-QUEUE TO CONTROL ACCESS TO THE LOCK
; PAGE. INCREASES PERFORMANCE UNDER HIGH VOLUME
; PAGE LOCK SITUATIONS.
; MODULES: DBMLOK
;[6%276] 2-JUN-81 HRB
; UPDATE THE BUILD PROCEDURE TO HANDLE FORTRAN V5A AS
; WELL AS FORTRAN V6.
; MODULES: DBMS20.CTL DBGATE
;[6%277] 4-JUN-81 JEF
; IF TMP FILES AND PRESERVE IS NO SET MAKE SURE EVERY
; USER GETS HIS OWN TMP FILE -- NO SHARING -- GJ%NEW
; MODULES: DBMOC
;[6%300] 5-JUN-81 HRB
; ELIMINATE MISSLEADING EXCEPTION CODE.
; MODULES: DBMOC
;***** V6 SECOND FIELD TEST TAPE ON -20S 5-JUN-81 *****
;
;[6%301] 10-JUN-81 HRB
; ELIMINATE ?DBSSNI MESSAGES (AND EXITS) WHEN A COMMAND
; IS EXECUTED AFTER THE FAILURE OF /SCHEMA COMMAND
; MODULES: MNDCOM
;[6%302] 12-JUN-81 HRB
; FIX MULTIPLE PROBLEMS WITH CLUSTERING
; MODULES: DBKIO DBMIO
;[6%303] 12-JUN-81 HRB (REMOVED TO AGREE WITH DOCUMENTATION - JEF)
; CHANGE ERROR CODE WHEN AN AREA IS INCLUDED IN A TRANSACTION
; BUT NOT IN THE SUB-SCHEMA FROM ANF TO NNS
; MODULES: DBBIND
;[6%304] 15-JUN-81 HRB
; MERGE AID WITH NO AREAS OPEN SHOULD GIVE AN ERROR
; MODULES: MNDCOM
;[6%305] 16-JUN-81 HRB
; MAKE ON-LINE DELETE TRANSACTION ONLY OPEN THE AREAS REQUIRED
; TO PERFORM THE RECOVERY. ALSO, MAKE SURE THE DEFAULT
; TRANSACTION IS CLOSED AFTER AN ERROR OPENING AN AREA.
; MODULES: MNDCOM MNDOTH DBCLOS
;[6%306] 17-JUN-81 HRB
; DON'T CLEAR OUT BUFFER HEADER FOR A BUFFER IN USE BY A
; DIFFERENT AREA THAN THE ONE BEING CLOSED
; MODULES: DBMIO
;[6%307] 17-JUN-81 HRB
; DON'T ALLOCATE A PID IF HAVE SUS AND USRID IS ZERO
; MODULES: DBPORT
;[6%310] 17-JUN-81 JEF
; HAVE DBLEAV ZERO PSW.AFE AID-FILE-EXIST SINCE IT SHOULD NOT
; LIVE BEYOND THE DURATION OF THE DBMEND VERB I.E. /MERGE AID
; DBMEND COMPLAINS ABOUT UNMERGED AID FILES (MNDAFC)
; MODULES: DBLEAV
;[6%311] 18-JUN-81 JEF
; DBINFO CANT FIND SS NAME IF ITS GREATER THAN 25 CHARS
; MODULES: INFCOM.MAC
;[6%312] 18-JUN-81 JEF
; IN MEM.UNL -- TEST OF R0 (NEVER INITED) TO DETERMINE IF
; A DRI (DELETED REC INVOLVED) !!! CHANGE R0 T0 R1 AND DRI TO RNM
; MODULES: DBSET
;[6%313] 18-JUN-81 JEF
; TURN OFF JOURNALING IF DBMEND AND /AID/NOAID/PRE/NOPRESERVE
; INSERT CALL TO JMNON$
; MODULES: MNDIDB
;[6%314] 23-JUN-81 HRB
; IF AREAS ARE OPEN EXCLUSIVE AND JOURNAL IS OPEN FOR
; SHARED USE, THE JOURNAL WILL NEVER BE LOCKED!
; MODULES: DBMLOK
;[6%315] 23-JUN-81 JEF
; DBINFO - MAPSTR DOES THE WRONG THING WHEN FEED A LOWED CASE
; STRING AND CONVERSION IS 7 TO 6BIT -- CAUSES rngtst TO CONVERT
; TO 2.. INSTEAD OF rngtst.DBI WHEN DEFAULTING /APP OR /SU
; MODULES: INFCOM
;[6%316] 24-JUN-81 JEF
; MAKE EXPLICIT TRANS USAGE MODE OVER-RIDE IMPLICIT
; MODULES: DDLSKE
;[6%317] 24-JUN-81 JEF
; FIX 6%313 THE CALL TO JMNON$ BOMBS AP -- SO SAVE/RESTORE IT
; CAUSES EXCEPT 358 -- ARG ERROR
; MODULES: MNDIDB
;[6%320] 25-JUN-81 HRB
; MAKE SURE THAT PAGES CREATED BY CALC FIND FAILURES ARE
; NOT ACTUALLY CREATED IN THE DBS FILES.
; MODULES: DBKIO DBMIO DBMLOK
;[6%321] 25-JUN-81 JEF
; DBMEND DOES NOT RELEASE ALL LOCKS WHEN /AID/TMP/NOAID/NOTMP
; MODULES: MNDIDB
;[6%322] 29-JUN-81 JEF
; RELEASE 5 BUG -- FORK TO FILE PMAP NOW NEEDS PM%WR SET.
; MODULES: MNDMAN
;[6%323] 6-JUL-81 JEF
; DBMEND DOES NOT ALWAYS RELEASE LOCKS -- TOO MANY USES OF
; MND.BIT(SS) -- CREATE PSW.NRL DONT RELEASE LOCKS ON
; DELETE TRANS
; MODULES DBSDCL MNDIDB DBLEAV DBTRAN
;[6%324] 7-JUL-81 JEF
; DBMEND /CLOSE AREANAME -- CODE NOT COMPLETED
; ALSO A BUG, ARGOPEN-1 (IE ARG CNT) BOMBS JRNERC
; NO SPACE WAS RESERVED FOR THE CNT
; MODULES MNDCOM MNDUTL
;[6%325] 13-JULY-81 JEF
; COBOL PROGRAMS WITHOUT ANY DBMS "CODE" IN IT BLOW UP WITH
; ILL MEM REF AND ZERO CORE. DBPST$ DOES NOT CHECK TO SEE IF
; ANY CLEANUP IS NEEDED BEFORE RUNNING WILD. JUST RET IF NO SS.
; MODULES: DBMLOK
;[6%326] 14-JUL-81 JEF
; DBMEND DOES NOT RELEASE SCH/LOK/JRN JFNS ON /EXIT
; SO DOIT VIA DBPST$ IN DBMLOK
; MODULES: MNDDCL MNDCOM MNDIDB
;[6%327] 15-JUL-81 JEF
; INITIALIZE R1 BEFORE CALL ABT.PAG (SEE 6%320)
; MODULES: DBMIO
;[6%330] 17-JUL-81 JEF
; UNPRESERVED TMP FILES MUST GET A NEW GENERATION FOR EACH OPEN
; CHANGE GTJFN FLAG FROM GJ%NEW TO GJ%FOU
; MODULES: DBMOC
;[6%331] 17-JUL-81 JEF
; CLUSTER BUG - BEFORE DOING A CLUSTER READ ZERO PAG NMBR IN
; BUFFER HEADER SO WE DONT NOT FIND ANY RECORDS ON THAT PAG.
; MODULES: DBKIO
;[6%332] 19-JUL-81 JEF
; DBMEND /ABORT:MESSY THE ADMINISTRATION KEY DOESNT WORK
; CODE NOT WRITTEN
; MODULES: MNDCOM
;[6%333] 21-JUL-81 JEF
; MNDMANY'S CHKEXC DOES A CLOSEF ON THE LOK FILE WITH THE LOCK
; PAGE STILL MAPPED -- GET A OS ERROR -- WHICH IS IGNORED...!
; CALL CLOLKF (CLOSE LOK FIL) INSTEAD
; MODULES: MNDMAN
;[6%334] 21-JUL-81 JEF
; /DELETE TRANS AND THEN /PRESERVE ALL = (938) DOR
; TOO MANY OPEN ON THE .JRN FILE
; DO A JCLO.OS (CLOSE THE JRN) AT SAME PLACES AS EDIT 313
; MODULES: MNDIDB
;[6%335] 25-JUL-81 JEF
; CREATE A NEW MACRO TFOPERR TO RELEASE JFN ON TMP/AID FILE
; REPLACE FOPERR WITH TFOPERR AT OPNTO2 (OPENF) FAILURE
; IM NOT SURE WHAT TO DO WITH THE DBS FILE AT THIS POINT
; MODULES: DBMOC
;[6%336] 25-JUL-81 JEF
; GET RID OF SPURIOUS X38 (DOR) DUP OP ON RES PROBLEMS
; FREE.P UNINTENTIONALLY (?) ZEROES SS FLAGS
; MODULES: DBOTSI
;[6%337] 27-JUL-81 JEF
; DBMEND DOES NOT INIT THE OPTION REGISTER ON THE /DISPLAY COMMAND
; HENCE YOU ALWAYS GET ALL OPTIONS BUT RUNUNITID AND HEADERS
; MODULES: MNDCOM
;[6%340] 27-JUL-81 JEF
; ANOTHER ADDITION TO EDIT 326. CLOSE THE SCH FILE ALSO
; MODULES: DBMLOK SCHIO
;[6%341] 28-JUL-81 JEF
; IF VERB IS DELETE AND MEM.UNL IS CALLED TO UNLINK AN UNLINKED
; RECORD JUST RETURN AND DONT GIVE EXCEPTION RNM.
; MODULES: DBSET
;[6%342] 28-JUL-81 JEF
; HAVE REMOVE ALL GIVE THE CORRECT ERROR CODE WHEN THERE ARE NO
; OPTIONAL SETS TO REMOVE A REC FROM -- IE RNR NOT RNM
; MODULES: DBREM
;[6%343] 29-JUL-81 JEF
; SYMP: CANT OPEN AREA - SOME HAS THE JRN LOK
; SCHEMA SET PSW.VER (IMG/CMND) INSTEAD OF PSW.TRA (IMG/TRAN)
; MODULES: DDLDMC DDLSKE
;[6%344] 29-JUL-81 JEF
; DEFAULT THE CLUSTER SIZE TO ALL APPLICABLE AREAS
; NOTE THAT THE LAST CLUSTER SIZE GIVEN OVERIDES PRECEDING ONE
; MODULES: DDLSKE
;[6%345] 9-AUG-81 JEF
; DBMEND SOMETIMES GET CORBOV ERROR FROM FREE.P
; DAT.SS IS NEVER INITED TO ZERO - ONLY A PROBLEM WHEN YOU RESAVE
; DBMEND (WITH SOME PATCHES IN IT?)
; MODULES: MNDCOM MNDIDB
;[6%346] 3-AUG-81 JEF
; MNDCOM IS PASSING GARBAGE ARG TO DOPNE (JRN) IF ON-LINE MODE
; MODULES: MNDCOM
;[6%347] 3-AUG-81 JEF
; LOC MODE OF OWNER PSEUDONYM SCREWED UP
; DDLSKE'S ROUTINE PSCUHK USES WRONG ARG LIST TO COPSTR
; MODULES: DDLSKE
;[6%350] 4-AUG-81 JEF
; SOME OF THE NEW V6 ENCL SYNTAX DID NOT REQUIRE EOS (.) WHICH
; CAUSED WHOLE STATEMENTS TO BE IGNORED (TILL THE NEXT ".").
; MODULES: DDLDMC
;[6%351] 4-AUG-81 JEF
; SYM: KIA X15001 DUE TO LEFT HALF OF PAG BEING ZAPPED BY SETUP
; OF CALL TO ALC.LN
; MODULES: DBSET
;[6%352] 5-AUG-81 JEF
; EXTRANEOUS BIND GENERATED BY ACCESS PROCESSOR FOR BUFFER
; DATANAME.
; MODULES: DMLVOK
;[6%353] 6-AUG-81 HRB
; THE GHOST OF DBMS PAST RETURNS TO SOLVE TWO PROBLEMS:
; 1) OCCASIONAL BAD PERFORMANCE
; 2) FAILURE TO RELEASE LOCK PAGE ON STACK OVERFLOW
; MODULES: DBMLOK
;[6%354] 9-AUG-81 JEF
; CHECK FOR DEAD RUNUNITS AT CLKLK$ SO DBMEND CAN CLAIM THE LOCKS
; AND NOT SLEEP FOREVER WAITING FOR SOME DEADER TO RELEASE THEM
; MODULES: DBPORT DBMLOK MNDMAN
;[6%355] 7-AUG-81 JEF
; IF REC NAME IS MISPELLED IN ASSIGN...RANGE OF mispelt-rec
; SCHEMA DOES DDLSAF WHICH IS NO HELP. GIVE BETTER MESSAGE.
; MODULES: DDLSKE DDLMES
;[6%356] 11-AUG-81 JEF
; AREA.DBS PAGES GET CREAMED VIA CONFUSION OVER LK.MAX(SS).
; INITIALLY IT IS THE MAX MUNBER OF LOCKS.
; LATER IT IS THE SIZE OF THE LOCK PG.
; ALSO TESTING THE WRONG STATE OF THE WRONG FLAG
; MODULES: DBMLOK MNDMAN
;[6%357] 12-AUG-81 JEF
; /DELETE TRAN AFTER /FO ALL /CL ALL GEVES A 938
; AT $DELTRA CHECK TO SEE IF JRN IS OPEN BEFORE TRYING TO OPEN IT.
; MODULES: MNDCOM
;[6%360] 12-AUG-81 JEF
; DBMEND /EXIT WIPES OUT CORE. ACTUALLY ABOCLS DOES IT.
; IF NO LOK PAGE EXIST ITS PMAP WILL UNMAP PAGE 0
; MODULES: DBMLOK.MAC
;[6%361] 17-AUG-81 JEF
; DBMEND LOOPS FOREVER IF /DE T AND THERE IS NO JOURNAL
; IF J1.LIX(JLP) = 1 THEN THERE IS ONLY THE CREATED LABEL PG
; IN THE JOURNAL
; MODULES: DBJOUR
;[6%362] 18-AUG-81 JEF
; AVOID ILL MEM REF WHEN SBIND IS CALLED MULTIPLE TIMES
; CONTENTS OF LEFT SIDE OF X IS PSW-FLAGS AFTER EBIND IS CALLED
; SBIND'S CALL TO SCH.INIT MUST HAVE X(LEFT)=0 OR = SAVBAS(SS)
; SO ALWAYS JAM LEFT OF SAVBAS INTO LEFT OF X BEFORE SCH.INI CALL
; MODULES: DBBIND
;[6%363] 24-AUG-81 JEF
; GULP -- PASS BACK FINS6 RANGE KEY INFORMATION IN ERROR-DATA
; 0 = MATCH 1 = RANGE MATCH 2 = NO MATCH
; USE RK.ERRDAT(X) IE NON ZERO IF A RANGE KEY
; MODULES: DBKITM DBSET DBFIND DBSDCL
;***** V6 THIRD FIELD TEST TAPE ON 21-AUG-81 *****
; [ LAST-EDIT ]
SUBTTL DBCS CONTEXT SWITCHES
;;; I AM NOT SURE IF THERE IS A "CORRECT" WAY TO DO THIS OR IF THIS IS THE CORRECT WAY
;;; BUT THE VARIOUS DBCS-USING UTILITIES DO NEED CERTAIN TAILORED MODULES
;;; IN PARTICULAR, GATE, PORT, & LEAVE
;;; SO, IN THE INTEREST OF MINIMIZING REDUNDANCY
;;; EACH OF THESE (AND EVENTU OTHERS?) WILL BE PREFIXED BY THIS MACRO
DEFINE INIUTIL<
IFNDEF DBINFO,<DBINFO==0>
IFNDEF DBMEND,<DBMEND==0>
IFNDEF V3DBMS,<V3DBMS==0>
IFNDEF DBCONV,<DBCONV==0>
DBCS==1
IFN DBINFO!DBMEND!V3DBMS!DBCONV,<DBCS==0>
IFN DBINFO,<SEARCH INFDCL>
IFN DBMEND,<SEARCH MNDDCL> ;[6%41] V6 uses MNDDCL not MNDSYM
IFN V3DBMS,<SEARCH VTVDCL>
IFN DBCONV,<SEARCH CNVDCL>
>
SUBTTL MISCELLANEOUS SYMBOLS
;;; REC TYP ID'S--MACRO DEFINED IN SCHIO
EXTERN TID.AL,TID.CL,TID.DL,TID.FL,TID.IL,TID.ML,TID.VL,TID.YL ;[6%20]
EXTERN TID.OL,TID.RL,TID.SL,TID.UL,TID.WL,TID.TL,TID.EL,TID.KL
;;; SIMILARLY, THE SET TYPES ARE DEFINED= $ OWNER . MEM
EXTERN $S.A,$S.R,$S.U,$S.E,$S.Y ;[6%20]
EXTERN $R.D,$R.W,$R.O,$R.M
EXTERN $A.W,$D.C,$D.T,$O.M,$O.Y,$M.V,$V.C,$E.K ;[6%20]
; KEY VALUES ASSOCIATED WITH KEYWORDS PASSED AS ARGUMENTS TO DBCS
; THIS IS MASTER DEFINITION -- REFFED EVERYWHERE ELSE
DEFINE KEY(KEYARG),<[$$'KEYARG]> ;MECH OF GETTING AT THEM
HALF==777777 ;NEED HALF WORDS OF THESE GUYS OCCAS
$$ONLY==-^D10
$$SELECT==-^D11
$$FIRST==-^D12
$$LAST==-^D13
$$PRIOR==-^D14
$$NEXT==-^D15
$$DUPLIC==-^D16
$$ALL==-^D17
$$AREA==-^D18
$$RECORD==-^D19
$$SET==-^D20
$$UPDATE==-^D21
$$RETRIEV==-^D22
$$RUNUNIT==-^D23
$$PROT==-^D24
$$EXCLUSIVE==-^D25
$$CURR==-^D26
$$SHARED==-^D27
$$JOURNAL==-^D28
$$TRANSACTION==-^D29
;;; MISC SYMBOLS PART OF DATA BASE PROCESSING
GREG (BAS,15) ;SCHIO HAS NO STATIC LOW SEG
SKECHN==0
PAGWID==^D26
LINWID==^D35-PAGWID
DPVMOD==1000 ;[6%27] DIR PAG FLAG TO LIVE WITH PAG# IN BH.PAG(TBUF)
SYSNMID==1
SYSTID==40 ;RESERVE THESE FOR SYSTEM USE
TID.ASR==1 ;TID OF AREA-STATUS REC
TIDMAX==777 ;REC TYP ID IS 9 BIT FIELD
DOFFMAX==MAX.XB ;RESTRICT TO THIS VAL PURELY FOR CONVEN...SHOULD BE AMPLE IS 120
USEMAX==20 ;FOR DYN ALLOC OF USE CONDITIONS
TEXMAX==^D100 ;ALLOCATE 20 WORDS A SHOT
LOKMAX==5 ;PRIVACY KEYS/LOCKS, SCAN 5 CHARS ONLY
SIZ.MSK==3 ;[6%19] NUMBER OF MASK WORDS
AREAMAX==<SIZ.MSK*^D36>-1 ;NUM. AREAS REP'ABLE IN BITS AVAIL
;(NEED ONE BIT FOR TABLE RESOURCE)
STKPFRM=^D512 ;[6%22] SIZE OF PAGE STACK FRAME
SHORT==6 ;FORTRAN NAMES MAX LEN
NAMLEN==^D30 ;USUAL MAX NAME LEN
MAXFS20=^D120/CPW
MAXTS20==^D45/CPW ;ALWAYS OF FORM DSK:NAME-ONLY.TMP
MAX.SS==10 ;AT RUN-TIME FOR SETDB/UNSET (RIGHT PLACE?)
FOPSIZ==7 ;FILOP ARG BLK SIZE
TIOSIZ==6 ;[6%27] L/E BLK SIZE FOR TMP AREAS
DF.POLL==^D100000 ;[6%34] DEFAULT POLL RATE IN MSEC
DF.THRESH==^D50 ;[6%34] DEFAULT THRESHOLD IN PAGES
SUBTTL CERTAIN SCHEMA FIELDS CAN TAKE ON A RANGE OF VALUES
;;; USAGE MODES -- EVEN VALS=RETR /ODD=UPDATE
UM.COR==0 ;CONCUR RETR
UM.COU==1 ;CONC UPDATE
UM.PRR==2 ;PROT RETR
UM.PRU==3 ;PROT UPD
UM.EXR==4 ;EXCL RETR
UM.EXU==5 ;EXCL UPDATE
UM.UDED==6 ;EXCLUDED...FOR DBMEND
; *** THE INDIV CASES
UM%OIP==1B0 ;SIGN BIT INDICS OPEN IN PROCESS
UM%TEMP==1B1 ;AREA OPEN FOR TEMP USAGE
UM%ASR=1B2 ;INDIC (DURING OPEN) THAT ASR ACTU UPDATED
UM%CON==1B3
UM%PRO==1B4
UM%EXCL==1B5
UM%RETR==1B6
UM%UPD==1B7
UM%OTH==1B8 ;DBMOC DETERM THAT OTHER R-U CURR HAVE THE AREA OPEN
UM%DIODE=1B9 ;ONE-DIRECTIONAL UM, IE. ONLY CHECK IF SOME ONE ELSE IS UM%CON
UM%AID=1B10 ;[6%27] THERE WAS AN AID FILE REQUEST
UM%XCLU==1B11 ;[6%224] DON'T EVER WRITE IN THIS AREA (DBMEND)
;;; LOCATION MODES
LM.NONE==0 ;NOT POSSIBLE
LM.DIR==1
LM.VIA==2
LM.CAD==3 ;CALC, DUPS ALLOWED
LM.CAND==4 ;CALC, DUPS NOT ALLOWED
;;; [6%19] LOCKING CODES
LK%ARE==1B35 ;USE AREA LOCKS
LK%PAG==1B34 ;USE PAGE LOCKS
LK%RET==1B33 ;LOCK FOR RETRIEVAL (SHARED)
LK%UPD==1B32 ;LOCK FOR UPDATE (EXCLUSIVE)
LK%UPG==1B31 ;UPGRADE LOCK (SHRD TO EXCL)
LK%OPN==1B30 ;LOCK FOR OPEN (USE ENQ/DEQ)
LK%JRN==1B29 ;LOCK FOR JOURNAL
LK%NRL==1B28 ;[6%40] DON'T RELEASE SHARED LOCK
; UNTIL CLOSE TRANSACTION
LK%CBH==1B27 ;[6%142] CLEAR BUFFER HEADER (BH.PAGE)
; AFTER COPYING PAGE NUMBER.
; SET TO INDICATE THAT THE
; BUF. HDR. IS MERELY BEING
; USED TO PASS ARGUMENTS
LK.WAIT==500 ;TIME TO WAIT FOR A LOCK (MILLI-SECS)
;;; SET MEMBERSHIP
SH.AUT==0 ;MEMBERSHIP AUTOMATIC
SH.MAN==1B35
SH.MND==0 ;MANDATORY
SH.OPT==1B34
SH.AM==0
SH.MM==1
SH.AO==2
SH.MO==3
;;; SET ORDERING
OR.NONE==0
OR.1ST==1
OR.LAST==2
OR.NEXT==3
OR.PRIOR==4
OR.SORT==5 ;MEANS NO PHRASE FOLLOWS "ORDER SORTED"
OR.WIN==6 ;"WITHIN" PHRASE FOLLOWS
OR.DBK==7 ;DBKEY PHRASE FOLLOWS
OR.DUP==10 ;DUPS PHRASE FOLLOWS
SRTORD==4 ;NUM OF SORT ORDERINGS
;;; KEY-COMPARISON CONTROL
KC.USER==0 ;DATA FIELDS
KC.KED==1 ;DBKEY OF ACTUAL RECORD
KC.KEX==2 ;DBKEY OF RECORD AS ENCODED IN INDEX BLK
KC.TID==3 ;TID/RECNAME OF RECORD (FROM LINHDR IN EFFECT)
KC.TIX==4 ;TID/RECNAME AS ENCODED IN INDEX BLK
KC.MAX=4
;;; CONTROL OF ORDERING OF DUP RECS
DU.ARB==0 ;ORDER THEM ANY OLD WAY
DU.1ST==1 ;PUT EM FIRST
DU.LAST==2
DU.NOT==3 ;DONT ALLOW
;;; DATA-NAME KEY TYPES
KEY.ASC==1B35
KEY.DESC==1B34
KEY.RANG==1B33 ;IS RANGE KEY
KEY.CALC==1B32
KEY.NORD==1B31 ;ON IF DATUM CTLS MEMBER NOT IN CURR SS
KEY.SOR=1B30 ;IN EFFECT, IMAGE OF VIA.SOR
;;; MEMBER USAGE CTL IS VIA/FOR:
VIA.DIR==1 ;DITTO FOR LM = DIR
VIA.CALC==2 ;DITTO FOR LM = CALC
VIA.MEM==3 ;VIA BLK FROM SOS THRU MEMBER (IE. LM OF OWNER VIA)
VIA.SOR==4 ;THIS VIA BLK ENCODES SORT KEYS
;;; WHAT IS SET OCC SELECT
SOS.CUR==0 ;0 SINCE THE DEFAULT ALSO
SOS.LMO==1
;;; DATA TYPE CONSTANTS
;;; PRECISION/ SCALE CONSTANTS
;;; X=FIXED L=FLOAT B=BIN D=DEC R=REAL C=COMPLEX
; *** BIT COMPONENTS
TY.FLO==1B35
TY.BASE==1B34
TY.PLEX==1B33
; *** ACTUAL POSSIBLE TYPES
DT.STRUC==0 ;NO DATA TYPE MEANS SIZE PHRASE
DT.DBK==^D9
DT.D6==^D10
DT.D7==^D11
DT.D9==^D12
DT.MAX=^D12
ABSXBR==^D35
ABSXDR==^D10
ABSLBR==^D27
XBR.1M==^D35
XBR.1D==^D10 ;SAME THING IN DECIMAL PREC
XBR.2M==^D71
XBR.2D==^D18 ;DITTO BEFORE
XDR.MAX==^D18
;;; THE COMPLEX PREC CHARAS CAN BE DET FROM THE FLOAT COMPON
LBR.1M==^D27
LBR.2M==^D62
SUBTTL EXECUTION-RELATED CONSTANTS
;;; CENTRALLY DEFINE THE SET OF USER ENTRY CLASSES, & CONCOMITANT WITH THAT
;;; EACH VERB (CODASYL STAND) AND EXPLIC ENTRY PT IS GIVEN A CODE
DEFINE VERBS.<
;;; KLUDGE TO GET EXACTLY 2 WORDS PER ENTRY
VERB. (HOST) ;LET THESE HAVE STATUS CODE OF ZERO
VERB. (CLOSE)
VERB. (DELETE)
VERB. (FIND)
VERB. (USER) ;[6%46] FORMERLY "FREE"
VERB. (GET)
VERB. (UNUSED) ;[6%46] FORMERLY "KEEP/RETAIN"
VERB. (INSERT)
VERB. (MODIFY)
VERB. (OPEN)
VERB. (OPNT) ;[6%21] USE UNUSED SLOTS
;[6%21] VERB. (UNUSED)
VERB. (REMOVE)
VERB. (STORE)
VERB. (CLOTR) ;[6%21]
;[6%21] VERB. (UNUSED)
VERB. (DELTR) ;[6%21]
;[6%21] VERB. (UNUSED)
VERB. (BIND)
VERB. (CALL)
>
DEFINE VERB.(TEXT.)<
IFDEF XSTAT.,<
GETLEN <TEXT.>
IFE LEN.-3,<ASCIZ/TEXT. />
IFE LEN.-4,<ASCIZ/TEXT. />
IFE LEN.-5,<ASCIZ/TEXT. />
IFE LEN.-6,<ASCIZ/TEXT. />
IFE LEN.-7,<ASCIZ/TEXT. />
IFE LEN.-8,<ASCIZ/TEXT. />
>
IFNDEF XSTAT.,<FIELD(C.'TEXT.)>
>
VERBS.
BLKSIZ (CODE.V) ;NOT A TRUE SIZE BUT...
;;; SUPPRESS CLAUSE CODES AND BITS
SUP.ALL=$$ALL&HALF
SUP.REC==$$RECORD&HALF
SUP.AREA==$$AREA&HALF
SUP.SET==$$SET&HALF
R.SUP==1B35
A.SUP==1B34
S.SUP==1B33
;;; FIND3 (POSITIONAL) CODES
F3.OFF==1
F3.1ST==$$FIRST&HALF
F3.LAST==$$LAST&HALF
F3.PRIOR==$$PRIOR&HALF
F3.NEXT==$$NEXT&HALF
;;; CLOSE CODES
CL.JRN==$$JOURNAL&HALF
CL.RUN==$$RUNUNIT&HALF
CL.AREA==$$AREA&HALF
CL.ALL==$$ALL&HALF
;;; DELETION CODES
DL.ALL==$$ALL&HALF
DL.ONL==$$ONLY&HALF
DL.SEL==$$SELECTIVE&HALF
DL.SLF==0 ;DELETE JUST SELF, THE IMPLICIT OPTION
;;; OPEN-AREA CODES
OP.PROT==$$PROT&HALF
OP.EXCL==$$EXCL&HALF
OP.RETR==$$RETR&HALF
OP.UPD== $$UPDA&HALF
OP.CON== 0 ;THE IMPLIC OPTION
OP.JRN==$$JOUR&HALF
OP.ALL==$$ALL&HALF
SUBTTL EXECUTION-CONTROLLING FLAGS (SOME DEFINED BY SCHEMA)
;;; FLAG VALUES FOR LEFT HALF OF PORT VECTOR (IE. VFLAGS(X))
; *** IMPORTANT: THESE 3 ACT. FLAGS RESIDE WITH THE VAC. FLAGS IN ACT.XC(SS) AS DETERMINED BY THE USER'S DMCL ENTRIES
; *** BUT THESE HAVE NO IMAGE IN EV.FLAG BUT THE VAC. ONES DO
; *** IN PT OF ACT, EV.FLAG PLACES TOT DIF MEANINGS ON B30-B32
ACT.UAN==1B32 ;UNANTICIPATED EXCEP, EVERYTHING BUT 307=ESA & 326=NRS
ACT.ALL=1B31 ;ANY EXCEPTION
ACT.SYS==1B30 ;THE SYSTEM ERROR (APPROX. 40+)
ACT.JRN==1B29 ;[6%6] SUPPORT OF NOTE JOURNAL
; *** END IMPORTANT
; *** THE DMCL CAN DEFINE ACTIONS FOR EXCEPTIONS ON A VERB BASIS
VAC.UPD==1B35 ;ERROR DURING AN UPDATE VERB
VAC.CALL==1B34 ;ERROR DURING AN EXPLIC CALL (EG. JSTRAN)
VAC.BIND==1B33 ;ERROR DURING BINDING
VACBITS==VAC.UPD!VAC.CALL!VAC.BIND
; *** OTHER VERB-BASED SWITCHES
SCH.IO==1B32 ;TURNED ON TO INDIC X/BAS KLUDGE INVOLVED
OK.NOSS==1B31 ;AT MOMENT SBIND ONLY
OK.SUS==1B30 ;OK TO ENTER AT THIS EP EVEN THO SYS UNDEF STATE
CRU.MUST==1B29 ;CERTAIN VERBS REQUIRE THAT CUR.RU HAVE A VALUE
JR.OVU==1B28 ;ENTRY IS OTHER THAN A VERB UNIT & TOUCHES JOURNAL
;IE. JRDATA/JRTEXT/JSTRAN/JETRAN
;ADDIT, IN DBPORT IT IS TAKEN TO MEAN ANY ENTRY THAT CONTEX ENTERS THIS STATE
;EG. ANY VERB IF NOT JOURNALING
ENQ.J==JR.UPD ;DEFINE AS SAME THING
JR.UPD==1B27 ;DOES THE VERB UPD J (& DATA BASE)
ENQ.X==1B26 ;NEED TO ENQ EXCL IS EQUIV TO JR.UPD EXCEPT
;WHEN (OP/CL) PROCESSING J LAB ONLY
ENQ.SH==1B25 ;ENTRY DOES NO UPDATES BUT DOES ACCESS DB
ENQ.ALT==1B24 ;(EG. OPEN) ENTRY CAN ALTER SIMULT OF R-U, SO PLAY SAFE
;IE. STRONGER THAN ENQ.X
; ENQ.NO==NOT(ENQ.X&ENQ.SH) ;IE. A SERVICE ROUTINE SUCH AS STATS$
; *** NO MORE ROOM IN THIS FLAG VECTOR !!!
;;; INTRA-VERB SWITCHES...
;;; DEFINE LEFT-SIDE SS AS THE FLAG REGISTER WITH THESE FLAGS (18 MAX):
; *** ALSO... LET B0-2 BE COMMAND SPECIFIC (REFFED ONLY IN XXXX$ ENTRY PTS)
; *** USER-RECORD-COMMANDS
LINK.BIT==1B0 ;AT LEAST ONE ACTUAL LINKING OPER (IE.INS/REM) IN THIS VERB
INS.BIT==1B1 ;IS CALL TO CURN.U NECES
CA.BIT==1B2 ;NECESSARY TO (RE)CALC THIS REC BECAUSE ITS KEY HAS CHANGED
; *** BIND CLASS
NAB.BIT==1B0 ;NOOP ACTUBIND (IE. FOR DBINFO VIA SSBIND)
OSS.BIT==1B1 ;GUARAN DON'T PUNISH WRONG SUB-SCH IF BIND FAILURE
; UNUSED==1B2
; *** OPEN CLASS
XCLU.BIT==1B0
FOPN.BIT==1B1 ;ALLOW FH.STAT IN ASR TO BE -1
JRO.BIT==1B2 ;[6%41] Open journal read only
; *** CLOSE CLASS ;[6%127]
ITR.BIT==1B0 ;[6%127] INCOMPLETE TRANSACTION
; REMAINS IN THE JOURNAL
; UNUSED==1B1
; UNUSED==1B2
; *** CALL CLASS ;[6%41]
TRC.BIT==1B0 ;[6%41] TRACE TRANSACTIONS
; UNUSED==1B1 ;[6%41]
; UNUSED==1B2 ;[6%41]
; *** THOSE NOT COMMAND-SPECIFIC
RB.BIT==1B3 ;FORCE TMP.RB TO BE UPDATED
CNEX.BIT==1B4 ;HAVE USED A CANON-NEXT PTR IN GDETTB
NORD.BIT==1B5 ;SET IN DBKITM TO INDIC A CTLER OF INVIS SORTED-SET MODDED
JRV.BIT==1B6 ;JOURNALING BY VERB
BMO.BIT==1B7 ;BUFFER HAS BEEN MODDED
DMO.BIT==1B8 ;DSK HAS BEEN MODDED
XWX.BIT==1B9 ;IF ON AT DBSABO, MEANS HAVE GOTTEN EXCEPTION WHILE PROC EXCEP
UKY.BIT==1B10 ;USER-INTRODUCED DATA BASE KEYS MUST BE SPECIAL CASED
UCR.BIT==1B11 ;UNABLE TO COMPL RESTOR IF ON WHEN EXCEP OCCURS
VRO.BIT==1B12 ;[6%101] THIS VERB IS RETRIEVAL
;...ONLY
MND.BIT==1B13 ; [6%41] Called from DBMEND
DEQ.BIT==1B14 ;THIS VERB MUST CALL IU.DEQ IF ON IN DBLEAV
EOF.BIT==1B15 ;SET WHEN A PAGE ACCESS (IN GET.OS) IS BEYOND EOF
DFT.BIT==1B16 ;[6%19]INDICATES DEFAULT TRN OPN
NJE.BIT==1B17 ;DON'T WRITE TRAILER IN JRN
;;; SUB-SCHEMA STATUS WORD (IE. INTER-VERB SWITCHES)
; *** PERM LOC IS PSW(SS) (IE. PROGRAM-STATUS-WORD PER SS)
; *** RIGHT SIDE ONLY, IE. JUST 18 SWITS AT MOST
; *** INTRA-VERB LOC IS THE LEFT-SIDE OF REG X
PSW.TR==1B35 ;CHKPTING FOR TRANS ONLY
PSW.VER==1B34 ;CHKPTING PER VERB
PSW.CBUU==1B33 ;CANT BACKUP UPDATES
PSW.SUS==1B32 ;SYS IN UNDEF STATE (EG. AFTER ERROR AND CBUU SET)
PSW.MTA==1B31 ;MTA JOURNAL
PSW.JOSH==1B30 ;JOURNAL RETAINED SHARED
PSW.LIM==1B29 ;ACTIVE TRANSAC LIM
PSW.TAC==1B28 ;ON IF "BETWEEN" JSTRAN&JETRAN
PSW.RESH==1B27 ;ONE OR MORE AREAS OP IN RETR OR UPD U-M
;IE. ANY "VULNERABLE" SHARED AREAS (INCL J)
PSW.UPSH==1B26 ;1 OR MORE AREAS OPENED PRU OR COU
;IE. YOUR UPDATES CAN AFFECT OTHER R-U
PSW.ENQ==1B25 ;TURNED ON/OFF ONLY BY IU.ENQ AND IU.DEQ
PSW.CNV==1B24 ;INDIC DEALING WITH CONVERSION DB...NAME.??N
PSW.RAN==1B23 ;[6%101] RETRIEVAL ACCESS TO
; ...NON-EXISTENT PAGES ALLOWED
; ... (BUT NOT PAGE CREATION)
PSW.JRET==1B22 ;J OPENED ONLY FOR RETR
PSW.EAV==1B21 ;ENVIRONMENT ALTERING VERB(OPEN,CLOSE)
PSW.AFE==1B20 ;[6%126] AID FILE EMPTY. SET WHEN AID
; FILE CREATED CLEARED ON FIRST
; CALL TO PUT.RDY
PSW.NRL==1B19 ;[6%323] SET BY DBMEND /DEL TRAN
; MEANS DONT RELEASE LOCKS AT CLODEF
SUBTTL GENERAL STRUCTURES OF THE DATA BASE SYSTEM
;;; FORMAT OF AN AREA STATUS REC (ALWAYS 1STP/1 OF AREA)
;;; STATUS REC IS IN EFFECT FILE(AREA) HEADER
FIELD (FH.STAT) ;0 IF OK, "UNDEF" IF EDITS IN PROGRESS
BYTES (FH,<<FLG,^D18>,<UNU,^D18>>) ;[6%26]
FH%AID==1B17 ;[6%27] AREA WANTS AN AID FILE
FH%PRS==1B16 ;[6%27] OPEN UPDATE NOT SUPERCEDE
;[6%27] CLOSE BUT DONT DELETE TMP FILE
FH%NPR==FH%AID ;[6%27] ALL FLAGS BUT "PRS"
BLKSIZ (SIZ.FH)
;;; FORMAT OF A PAGE'S PAGHDR
FIELD (PH.NUM) ;PAG NUM OF THIS PAGE
BYTES (PH,<<HUSE,^D18>,<1STF,^D18>>)
;HUSE IS HIGHEST LIN NUM USED SO FAR
;THE (1STF)TH WORD OF THE PAGE IS THE 1ST TO CONTAIN NO DATA
BLKSIZ (PH.CALC) ;(FIXED) SIZED IS ALSO OBV OFFS OF THAT WHICH FOLLOWS: 0-N CALC BUCK WORDS
;;; FORMAT OF A LINE HDR
WORD (LH,<<RSIZ,^D12>,<TID,^D9>,<OFFS,^D15>>)
;;; FORMAT OF A DATABASE KEY
WORD (DBK,<<SIGN,1>,<PAG,PAGWID>,<LIN,LINWID>>)
SUBTTL SORTED-SETS
;;; CONSTANTS
TID.XB==2 ;UPPER LEVEL INDEX BLK
TID.XL==3 ;LEAF INDEX BLK (PTS AT DATA RECORDS)
TID.X6L==4 ;[6%20] VERSION 6 THIS BUOY HAS OWNER PTR
MAX.XB==^D120 ;INDEX BLKS ARE MIN(120,16*XNSIZ) BIG
FAU.XN==^D16 ;WILL TRY TO PUT 16 NODES IN INDEX BLK
MAX.XL==10 ;MAX SIZ OF INTERVAL BETWEEN "BUOYS"
; *** FOR MOMEMT INDEX BLK HAS NULL HDR
HDR.XB==0
;;; FORMAT OF A KEY-NODE IN AN INDEX BLK
FIELD (XN.SON) ;PTS AT INDEX-BLK/DATA-REC AT NEXT LOWER LEVEL
BLKSIZ (XN.KEY) ;ALSO 1ST WORD OF VAR LEN FIELD
;;; FORMAT OF A KEY-LEAF (OR "BUOY")
FIELD (XL.NEXT)
FIELD (XL.PRIOR)
FIELD (XL.CNT) ;NUM OF DATA-RECS IN THIS INTERVAL
SIZ.XL==SIZ.X6L-1 ;[6%20]
FIELD (XL.OWNER) ;[6%20]
BLKSIZ (SIZ.X6L) ;[6%20]
SUBTTL DAEMDB RELATED SYMBOLS
;[6%34] DEFINE DABNAME<ASCIZ/SYSTEM-DAEMDB/> ;GIVE STANDARD NAME TO DAEMDB PID
;;; DAEMDB ACTION DRIVING CODES
OFFS.==10 ;MAKE COINCIDENCE SOMEWHAT LESS LIKELY
FIELD (DADOPEN)
FIELD (DADCLJ) ;CLOSE-J FLUSHES ALL FROM JT
FIELD (DADCLRU) ;CLOSE-RU JUST COPS THRU JP.BIX-1
BLKSIZ (CODAD)
;;; ERROR CODES FROM DAEMDB
FIELD (DAXOK) ;SUCCESSFUL RETURN
;[6%34] FIELD (DAXNAV) ;NOT-AVAILABLE (SHUTDOWN ALREADY GIVEN)
;[6%34] FIELD (DAXNOM) ;MAGTAPE COULD NOT BE GOTTEN
;[6%34] FIELD (DAXOJT) ;UNABLE TO OPEN JT FILE
;[6%34] FIELD (DAXIDC) ;IMPROPER DEVICE CHARAC AFTER ASSIG/DEFIN
FIELD (DAXNQD) ;NO QUASAR OR DAEMDB
FIELD (DAXMIX) ;DBCS SOFTWARE ERROR DURING MAGTAPE INIT
FIELD (DAXAJD) ;ALREADY JMDISK DONE
;[6%34] FIELD (DAXJQA) ;J QUOTA ALREADY REACHED
;[6%34] FIELD (DAXOTH) ;SOME OTHER ERROR--DAEMDB FAILURE
BLKSIZ (CODAX)
COMMENT\ Edited out for [6%34]
;;; INFO PACKETS FOR DAEMDB COMMUN
FIELD (DABCODE) ;DAD VALUE
FIELD (DABSKE,2) ;SCH NAME IN ASCIZ
BLKSIZ (DABOTH)
; *** THE "CLOSE" STUFF
CLODSZ==DABOTH
; *** THE "OPEN" STUFF FOR THE -10
OFFS.==DABOTH
FIELD (DABMTA) ;PHYS NAME OF MAGTAPE IN 6BIT
FIELD (DABDSK) ;DITTO FOR JT DEVICE
FIELD (DABPPN) ;WRITE RBCNT OF DABDSK AT APPROP TIME
FIELD (DABFIL)
FIELD (DABEXT)
FIELD (DABPRIV)
BLKSIZ (OPNDS1)
IFG <OPNDS1-^D10>,<PRINTX ?DAB TO LONG FOR SHORT PACKET>
; *** THE "OPEN" STUFF FOR THE -20
OFFS.==DABOTH
FIELD (DABMTA,2) ;ASCIZ HERE
FIELD (DABSPEC,^D24)
BLKSIZ (OPNDS2)
IFG <OPNDS2-^D30>,<PRINTX ?DAB TO LONG FOR SHORT PACKET>
; *** THE "FROM" STUFF
FIELD (DABCODE) ;A DAX VALUE
FIELD (DABTHRESH) ;THE INIT THRESHOLD TO PUT IN A J
BLKSIZ (FROMDAB)
\;End edit for [6%34]
;;; [6%34] Basic DAEMDB/QUASAR "Create" Message Description
BYTES (QE,<<CNT,^D18>,<TYP,^D18>>) ; Word Count,,Message Type
.QOCQE==37
FIELD (QE.FLG) ; Flags
FIELD (QE.UDF) ; User Defined Field (not used)
FIELD (QE.FLW) ; Flag Word
FIELD (QE.ARG) ; Argument Count
FIELD (QE.QT) ; Queue Type Block...
.QCQUE==24
FIELD (QE.OBJ) ; Object Code (.OTDBM)
.OTDBM==21
FIELD (QE.FD) ; File Description Block...
.QCFIL==10
OFSFD.==OFFS. ; File Specification (TOPS20)
FIELD (QE.FIL,11) ; ...asciz text equivalent
OFFS.==OFSFD. ; File Specification (TOPS10)
FIELD (QE.STR) ; ...Structure Name in SIXBIT
FIELD (QE.NAM) ; ...File Name in SIXBIT
FIELD (QE.EXT) ; ...Extension in SIXBIT
FIELD (QE.PPN) ; ...Project,,Programmer Number
FIELD (QE.NUS,5) ; ...(not used)
FIELD (QE.FRR) ; Limit Block...
.QCFRR==37
FIELD (QE.COD) ; ...Journal Operation Code
FIELD (QE.PID) ; ...Sender's Process Id (PID)
BLKSIZ (SIZ.QE)
;;; End DAEMDB/QUASAR DECLARATIONS
SUBTTL JOURNAL RELATED SYMBOLS
;;; THE POSSIBLE JOURNAL-BLK CODES
AI.COD==1
BI.COD==2
CS.COD==3 ;COMMAND START
CE.COD==4 ;COMMAND END
LB.COD==5 ;LABEL (MULTI-REEL)
TS.COD==6
TE.COD==7 ;TRANSACTION START/END CODES
TX.COD==10 ;TEXT COMMENT BLOCK
CU.COD==11 ;CURRENCY-BACKUP BLOCK, USED AT RUN-TIME ONLY
TAI.COD==12 ;AFTER IMAGE FROM TEMP FILE
;(NOW JRN'D BECAUSE OF PRESERVE)
TBI.COD==13 ;BEFORE IMAGE FROM TEMP FILE
HI.COD==13 ;HIGHEST CURRENT CODE
; *** POWER-OF-2 BIT CORRES FOR J CODES
DEFINE C2B(STRING)<STRING'.BIT==1_<STRING'.COD-1>>
C2B(BI)
C2B(AI)
C2B(CS)
C2B(CE)
C2B(LB)
C2B(TS)
C2B(TE)
C2B(TX)
C2B(CU)
C2B(TAI)
C2B(TBI)
;;; THE POSSIBLE JOURNAL-PAGE IDS
EM.PID==0 ;EMPTY PHYSICAL BLK
DT.PID==1 ;1ST LOG BLK IS DATA BLK
LB.PID==2 ;1ST LOG BLK IS LABEL BLK
ER.PID==3 ;PSEUDO-VALUE, USED IN DBMEND FOR ERROR CONTROL
SK.PID==4 ;PSEUDO-VAL, USED IN DBMEND TO SKIP THE (BAD) BLK
;;; MISCELLANEOUS JOURNAL SYMBOLS
JR.PSIZ==1000 ;SIZE OF A JOURNAL PAGE/BUFFER
JR.PRALC==20 ;# OF JPAGES TO PRE-ALLOC, EACH
; TIME RUNOUT, DURING APPLIC
JR.CHUNK==40 ;# OF JPAGES TO COPY FROM A MAG
;TAPE JOURN TO DSK .TMP WHEN
; MERG BEF
EMP.JP==JR.PSIZ-HDR.JP ;AMT OF FREE SPACE ON AN EMPTY
; (IE. DATALESS) J PAGE
BKU.AI==1B35 ;AL-AB.BKU VALUE, BACKUP AFT IMS
BKU.BI==1B34 ;DITTO, BEF IMS
JI.WMAX==^D16 ;CARD IMAGE
JR.BFM==1B35 ;[6%23] JOURNAL BUFFERS MODIFIED
;...SINCE LAST FLUSH
;;; JOURNAL PAGE HEADER
FIELD (JP.BIX) ;BLOCK/JP INDEX, IDENTIFIES
;JOURNAL PAGE
JP.KEY==OFFS. ;FOR COMPARING AGAINST JLANCPID
BYTES (JP,<<ANC,^D18>,<PID,^D18>>)
;LH, PHYSICAL ANCHOR: TELLS
;ABOUT BUF END
;LSS 0: AMOUNT OF POTENTIALLY
;WASTED (IE. INCOMPLETE) DATA
;AT END OF PAGE
;ELSE THE NUM OF UNUSED WORDS
;ON PAGE
;PAGE TYPE ID (SEE BELOW)
JP.NEED=OFFS.
BYTES (JP,<<LSIZ,^D18>,<LCOD,^D18>>)
;SIZE OF LAST LOG BLK STARTING
;ON THIS JP
;ITS LOGICAL CODE
BYTES (JP,<<FLAG,^D18>,<1STH,^D18>>)
;OFFSET OF 1ST LOGBLK HDR ON J
;AGE, OR 0
FIELD (JP.SEQ) ;IF PAGE+1 HAS A LOWER SEQUENCE NUMBER, WILL
;KNOW THIS IS LAST PAGE OF J
FIELD (JP.UNU) ;FOR FUTURE EXPANSION
BLKSIZ (HDR.JP)
JLANCPID=<EMP.JP-SIZ.JL>B17+LB.PID ;ACTS AS KEY TO J FORMAT
;VALIDITY
;IF FORMAT OF JP.KEY CHANGES,
;THIS MUST ALSO
;[6%10] MOVE BUFHDR DESCRIPTION TO DESCRIPTION AB.BUFPT
;;; JOURNALL BLOCK HDR
;[6%10] JOURNAL BLK HDR NO LONGER HAS ALTEREGO OF DBPAGE BUFFER PREFIX
JB.CURR==OFFS.
BYTES (JB,<<CSIZ,^D18>,<CCOD,^D18>>)
;CUR SIZE (IN WORDS) AND CODE
;OF THIS JOURNAL BLK
JB.PREV==OFFS.
BYTES (JB,<<PSIZ,^D18>,<PCOD,^D18>>)
;DITTO, BUT FOR PREV JB
FIELD (JB.RNID) ;FOR SIMUL UPDATE, WHICH RUN-
;UNIT IS CREATOR OF BLK
BLKSIZ (HDR.JB)
;[6%9] DELETED QUEUE-AREA HDR
;;; TEMPLATES FOR EACH TYPE OF JB
; *** IMAGES ARE OF VARIABLE SIZE & ARE FULLY DESCRIBED IN USER SCHEMA
;[6%23] IM.NUM==HDR.JB ;JUST PINPOINT FIRST WORD
; *** LABEL BLK
FIELD (J1.PAG,HDR.JP) ;[6%23] MAKE JLP OFFSETS
;CONSISTENT W/ POS. ON PAGE
FIELD (JB.HDR,HDR.JB)
FIELD (J1.SCH,SHORT/CPW) ;SCHEMA NAME (IN SIXBIT)
FIELD (J1.RUN) ;RUN SEQUENCE NUM, IS INTEGER
FIELD (J1.REEL) ;REEL # (INTEG)
FIELD (J1.DATE,4) ;DATE/TIME IN ASCII
; *** INTERNAL CONTROL INFORMATION
FIELD (J1.RNID) ;ADD 1 AND GIVE NEXT J OPENER
;VAL AS ITS RNID
FIELD (J1.RACT) ;R-U ACTIVE (IE. LE RNID)
;USED TO SET JP.SEQ
FIELD (J1.TRAC) ;# OF TRANSAC WHICH ARE
;IN (IE. HAVE IMAGES IN) THE J
FIELD (J1.HALC) ;H PAGE # ALLOC IN JRT/JRN FILE
;IE. BOUND FOR WHERE UPFGS/
;FILOPS BEGIN
FIELD (J1.MTP) ;P# OF LAST JP MERGED INTO MTA J
FIELD (J1.LIX) ;LAST ACTUAL JP (W/ CURR SEQ#)
;IN (DISK PART OF) JOURNAL
J1.NEED=OFFS. ;FOR CONSIS. THE JP.NEED OF
BYTES (J1,<<ANC,^D18>,<PID,^D18>>) ; OF LAST PAGE (LIX)
FIELD (J1.THRESH) ;[6%34] MTA SPOOLING THRESHOLD
FIELD (J1.POLL) ;[6%34] MSEC MTA POLLING PERIOD
FIELD (J1.R3)
FIELD (J1.R4)
FIELD (J1.R5)
FIELD (J1.R6)
OFFS.==OFFS.-JB.HDR ;[6%44] MAKE LENGTH NOT INCLUDE
;[6%44] ...PAGE HEADER
BLKSIZ (SIZ.JL)
; *** INFO BLK
;[6%23] FIELD (JB.HDR,HDR.JB)
FIELD (JI.LEN) ;IN ITS OWN UNITS
INF.NOP==1B0 ;NON PRINTING INFO
INF.1ST==1B1 ;1ST OF MULTI-BLK INFO
INF.MOR==1B2 ;MIDDLE OF MULTI
INF.LAS==1B3 ;LAST OF MULTI
INF.1P==0 ;NO BITS ON, MEANS SINGLE PRINTING BLK
FIELD (JI.INFO,JI.WMAX)
BLKSIZ (SIZ.JI)
; *** CURRENCY BACKUP BLK
;[6%23] FIELD (JB.HDR,HDR.JB)
FIELD (JU.ADDR) ;LESS THAN 0 IS SET BLK
FIELD (JU.CURR)
FIELD (JU.CNEX) ;MEANINGFUL ONLY FOR SET BLK
BLKSIZ (SIZ.JU)
; *** COMMAND/VERB BLK
;[6%23] FIELD (JB.HDR,HDR.JB)
FIELD (JC.IDX) ;DENOTES THIS IS (I)TH CMD EXEC IN RUN-
;UNIT SINCE STARTED
FIELD (JC.TYP) ;AS IN STANDARD ERROR CODES
BLKSIZ (SIZ.JC)
; *** TRANSACTION BLK
;[6%23] FIELD (JB.HDR,HDR.JB)
FIELD (JT.IDX) ;DITTO FOR TRANSACTION OF THIS TYPE
FIELD (JT.LEN) ;NUM OF CHARS IN TRANS NAME/TYPE
FIELD (JT.NAM,NAMLEN/CPW)
BLKSIZ (SIZ.JT)
; *** DETERM WHICH JB TYPE IS LARGEST SINCE TEMPLATES WILL BE
; *** CO-INCIDENT DURING JOURNAL BUILDING
DEFINE MAXCHK(TYP.)<IRP TYP.,<IFG SIZ.J'TYP.-MAX.JB,<MAX.JB==SIZ.J'TYP.>>>
MAX.JB==0
MAXCHK <I,T,C,U>
SUBTTL IN-CORE SYMBOL DEFINITIONS
;;; COMMON TO AB.,RB., AND OB.
FIELD (SN.IDADR) ;NMID+IDVEC(SS) FOR THIS SYMBOL
BYTES (SN,<<NEXT,^D18>,<LEN,^D18>>)
BLKSIZ (SN.NAM) ;DOUBLES AS OFFSET OF VARIABLE LEN FIELD
;;; AREA IN-CORE BLOCK
FIELD (AB.CUR) ;DBKEY OF CURR REC OF AREA
FIELD (AB.TSC) ;DBKEY OF CURR REC OF AREA AT START OF
; TRANSACTION
FIELD (AB.CHAN) ;CHANNEL/JFN OF THE FILE THAT COMPRISES
;THE AREA
FIELD (AB.MODE) ;USAGE MODES -- SEE UM.XXX
AB.MASK==OFFS. ;->NXT WD ADDXABLE 2 WAYS
;THE LEFT SIDE MAY CONTAIN VARIOUS UM% BITS
BYTES (AB,<<MWD,^D18>,<MBT,^D18>>)
;[6%19] MWD=WHICH LOCK WORK THIS AREA
;USES
;[6%19] MBT=WHICH BIT IN THE WORD REPS
; AREA
FIELD (AB.TRN) ;[6%19]AOBJ PTR TO LIST OF KB'S WHICH
; REF THIS AREA
FIELD (AB.BUFPT) ;AOBJ LIST OF BUFFER PTRS FOR THIS AREA
FIELD (AB.CLPT) ;[6%22]AOBJ LIST OF CLUSTER PTRS FOR
; THIS AREA
; FIELD (AB.FIFO) ;BUF NUM OF NEXT BUF TO OVERWRITE
FIELD (AB.FIL) ;PTR TO FILE SPEC AREA ASSIGNED TO
FIELD (AB.TBUF) ;A "SPECIAL" EXTRA BUFFER IS ALLOC-ED
; FOR A TMP AREA
BYTES (AB,<<NUL,^D17>,<PTF,^D1>,<UNUSED,^D18>>)
;[6%27] NUL AND UNUSED ARE UNUSED
;[6%27] AB.PTF = PRESERVE TMP FILE
FIELD (AB.TOA) ;[6%27] -1,,0 = TMP 0,,-1 = AID -1 =TMP+AID
FIELD (AB.TCHAN) ;IF TEMP AREA, NEED A 2ND CHANNEL
; TCHAN= -1,,CHAN IF TMP
; 0,,CHAN IF AID
FIELD (AB.TLAP) ;THIS 2ND FILE GROWS...NEED LAST ALLOC
; PAGE (1ST PAGE==0)
FIELD (AB.ILAP) ;IN TEMP AREA, HAVE NEVER-NEVER LAND
; WHERE PAGES LT AB.LAP
;HAVEN'T BEEN WRITTEN BECAUSE TEMP FILE
; IS PACKED
;SO IF KNOW HOW BIG .DBS FILE IS, CAN
; DETECT THEM
;IOW, AB.ILAP=AB.LAP AS OF OPEN
FIELD (AB.PINV) ;THE VALUE=AL.PSIZ-AP.PUNR, FOR USE IN
; ALC.REC
; *** START OF BLTTABLE STUFF
AB.BLT==OFFS.
FIELD (AB.1STP) ;P# OF 1ST PAGE OF AREA
FIELD (AB.LASP) ;P# OF LAST DEFINED PAGE
FIELD (AB.PSIZ) ;PAGE SIZE
BYTES (AB,<<ONBUF,^D18>,<SHAR,^D18>>) ;[6%36] FOR SHARING BUFFERS
; ONBUF - AB WHICH OWNS NBUF
; SHAR - RING PTR OF ALL BUF SHAREES
FIELD (AB.DNBUF) ;[6%36] ADDR OF DATANAME WHICH
; CONTAINS NBUF
FIELD (AB.NBUF) ;NUM OF BUFS TO ALLOC
; 0 IF SHARING - USE AB.ONBUF
; ONLY BUFFER "OWNER" IS NONZERO
BYTES (AB,<<PGL,^D18>,<CLUS,^D18>>)
;[6%27]ADDX OF PAGE LIST FOR AREA
;[6%11]CLUSTER SIZE FOR THIS AREA
FIELD (AB.RPP) ;MAX RECS/PAGE TO ALLOW
FIELD (AB.CALC) ;MAX CALC BUCKETS PER PAGE--INIT VAL
; OF PH.1STF=PH.CALC+VAL(AB.CALC)
FIELD (AB.BKU) ;TYPE OF IMAGES TO PUT IN JOURNAL
FIELD (AB.LOK,LOKMAX/CPW * 6) ;TEXT OF LOCKS...S/P/E*R/U=6
; *** END OF BLTABLE STUFF
AB.BE==OFFS.
FIELD (AB.ID) ;START STRLIB SYMBOL NODE
FIELD (AB.NLEN) ;LENGTH OF AREA NAME
FIELD (AB.NAM,NAMLEN/CPW)
BLKSIZ (SIZ.AB) ;MAX SIZE...SHORT AREA NAMES MEANS LESS
; SIZE
; *** ANCILLARY STUFF
;[6%10] MAKE BUFHDR BE A NODE OFF OF AB.BUFPT
BYTES (BH,<<FLG,^D18>,<BUF,^D18>>)
BH%LSH==1 ;[6%22] PAGE LOCK SHARED
BH%LEX==2 ;[6%22] PAGE LOCK EXCLUSIVE
BH%LKS==BH%LSH+BH%LEX ;[6%22] ALL LOCK FLAGS
BH%TOA==4 ;[6%27] INPUT FROM TEMP OR AID FILE
BH%CLR==10 ;[6%32] CLUSTER READ PAGE HAS BEEN ACCESSED
BH%CPP==20 ;[6%120] NOT A FILE PAGE BUT
; A CREATED PROCESS PAGE
;ACTUAL ADDR OF A BUFFER/PAGE
FIELD (BH.PAGE) ;THE PAGE IN THE ASSOCIATED BUFFER
FIELD (BH.LRU) ;IDX TO SHOW WHETHER BUFF IS LEAST RECENTLY USED
FIELD (BH.WRIT) ;SWITCH: -1=MUST WRITE 0=CAN JUST OVWRITE
FIELD (BH.JPAG) ;HIGHEST JP THIS DBPAGE HAS A BEFIM IN
;[6%27] BH.DPAG==BH.JPAG ;SYNONYM: USED FOR DIRECTORY OF TEMP AREA
BH.DPAG==BH.LRU ;[6%27] POINTS TO 1 OF N TMP/AID DIRECTORY PAGES
FIELD (BH.TOA) ;[6%27] PHY PAG # IN TMP/AID FILE
BLKSIZ (SIZ.BH)
;[6%22] CLUSTER HEADER, IS A NODE OFF AB.CLPT, USED IN SAME WAY AS
; BUFFER HEADER, BUT SUMMARIZES INFO FOR CLUSTER
BYTES (CH,<<NUM,^D18>,<BH,^D18>>) ;NUMBER OF BUFFERS IN THIS CLUSTER
;ADDRESS OF FIRST BUFFER HEADER
FIELD (CH.LRU) ;HIGHEST LRU VALUE FOR CLUSTER
FIELD (CH.WRIT) ;AS BH.WRIT, & HIGHEST VALUE
;FOR CLUSTER
FIELD (CH.JPAG) ;HIGHEST JOURNAL PAGE A PAGE IN
;THIS CLUSTER HAS AN IMAGE IN
BLKSIZ (SIZ.CH)
;;;[6%19] TRANSACTION IN-CORE BLOCK [6%19]
BYTES (EB,<<FLAG,^D18>,<IMG,^D18>>) ;FLAG=FLAGS FOR THIS TRN.
EB%RO==1 ;TRANSACTION IS READ ONLY
;IMG=IMAGE MODE FOR THIS TRN
FIELD (EB.KBL) ;AOBJ PTR TO AREA LIST FOR THIS TRN
FIELD (EB.ALK) ;POINTER TO AREA LOCK STRUCTURE
;FOR THIS TRANSACTION
FIELD (EB.ID) ;NAME-ID OF THIS TRN
FIELD (EB.NLEN) ;LENGTH OF NAME
FIELD (EB.NAM,NAMLEN/CPW) ;NAME OF THIS TRANSACTION
BLKSIZE (SIZ.EB)
;;; TRANSACTION-AREA IN-CORE BLOCK [6%19]
BYTES (KB,<<MODE,^D18>,<CLU,^D18>>) ;USAGE-MODE FOR AREA FOR THIS TRN
FIELD (KB.EB) ;PTR TO ASSOC TRN BLK (EB)
;CLUSTER SIZE FOR THIS TRN
FIELD (KB.AREA) ;POINTER TO ASSOC AREA BLK
BLKSIZ (SIZ.KB)
;;; WITHIN IN-CORE BLOCK
FIELD (WB.1STP)
FIELD (WB.LASP)
BYTES (WB,<<RDCODE,^D18>,<RDINC,^D18>>) ;[6%24]
;[6%24] RDCODE - REC DISTRIBUTION CODE
WB.NRP==1 ;[6%24] N RECS PER PAGE
WB.RNP==2 ;[6%24] 1 REC PER N PAGES
WB.SNP==3 ;[6%24] 1 SET PER N PAGES
;[6%24] RDINC - THE N FOR ABOVE
BLKSIZ (SIZ.WB)
;;; RECORD IN-CORE BLOCK
BYTES (RB,<<LM,^D18>,<FLAG,^D18>>)
;LOC MOD CODE
RF.NALC==1B35 ;FLAG SAYS ALLOC OPERS ILLEG (IE. STORE/DELETE)
;...CAUSED BY SET OWNED BY REC NOT BEING IN SS
RF.NAO==1B34 ;FLAG=NOT-ALL-OWNERS IN SS, MEANS CANNOT DELETE THIS REC
;...SINCE WILL BE UNABLE TO REMOVE IT FROM THE "INVIS" SETS IT IS IN
BYTES (RB,<<DOFF,^D18>,<TSIZ,^D18>>)
;TOTAL SIZE OF REC...FROM DSIZ+DOFF
FIELD (RB.CUR) ;DBKEY OF CURR REC OF THIS TYPE
FIELD (RB.TSC) ;DBKEY OF CURR REC OF THIS TYPE
; AT START OF TRANSACTION
FIELD (RB.TID) ;REC TYPE ID
FIELD (RB.MYA) ;AOBJ PTR FOR AREAS CAN BE WITHIN
FIELD (RB.MYD) ;THE DATA-NAMES IN THE REC
FIELD (RB.ION) ;THE SETS I OWN
FIELD (RB.OBY) ;THE SETS I AM OWNED BY
FIELD (RB.LOC) ;PTR TO IN-CORE BLK OF VIA SET, ADDR OF DIRKEY, OR NUM OF CALC FIELDS
FIELD (RB.WID,2) ;STRING PTR TO UWA LOC FOR AREAID OR 0
FIELD (RB.ID) ;SYM NODE
FIELD (RB.NLEN)
FIELD (RB.NAM,NAMLEN/CPW)
BLKSIZ (SIZ.RB) ;MAX SIZE (WILL BE SMALLER IF RB.NLEN IS LESS THAN 26)
;AREA, OWNER BLKS ALSO THIS WAY
; *** ANCILLARY DEFS FOR AOBJ PTS
WORD (RB,<<RMB,^D18>,<MOB,^D18>>) ;FOR OBY
;REC'S MEM BLK(SELF)
;MEM'S OWNER BLK (SELF'S OWNER)
WORD (RB,<<UNU,^D18>,<ROB,^D18>>) ;FOR ION
;RECORD'S OWN BLK (SELF IS OWNER)
WORD (RB,<<UNU,^D18>,<RDB,^D18>>) ;MYD
;RECORD'S DATA BLKS
WORD (RB,<<RWB,^D18>,<RAB,^D18>>) ;MYA
;PTR TO THE WITHIN BLK ITSELF (RWB)
;AREA REC CAN BE WITHIN
WORD (RB,<<NTB,^D18>,<RTB,^D18>>) ;FOR OBY/ION IN V3TOV5
;NEW TENANT BLK/CURR TB
;;; DATA-NAME IN-CORE BLOCK
BYTES (DB,<<TID,^D18>,<OCC,^D9>,<TYP,^D9>>)
;ITS REC'S TID (FOR CONSIS OF GET/MOD LIST)
;DB.OCC FROM DL.OCC
;DATA TYPE--SEE DT.XXX
BYTES (DB,<<CASE,^D18>,<KTYP,^D18>>)
;CASE--PSEUDO? TID/DBKEY? ETC (SEE KC.XXX)
;KTYP--DATA DIRECTED KEY-TYPE ASPECTS (CURR .CALC/.NORD)
;...OTHER PROPS CONTEXT (IE. CTL-LINE) DPEND
; *** NOTE: THESE TWO WORDS CONSTITUTE A STRING PTR IE. THEY MUST BE TOGETHER
FIELD (DB.UWA) ;BYTE PTR TO BOUND ADDR OF D-N
FIELD (DB.SIZ) ;SIZE IN ITS OWN UNITS=DL.SIZ*DL.OCC(DEF 1)
FIELD (DB.OFF) ;BYTE PTR TO SAME, BUT OFFSET FROM BEGIN OF REC
BLKSIZ (SIZ.DB)
;;; OWNER IN-CORE BLOCK
OB.COWN==OFFS. ;...ACTUALLY, OWNER OF CURR SET OCC, IF KNOWN
FIELD (OB.OOFF) ;DEFINED TO HANDLE O/M INDETERMINANCY SIMPLY. SEE TB.XXX BELOW
FIELD (OB.POFF) ;OFFSET OF PRIOR PTR IN AN OWN REC, OR 0
FIELD (OB.NOFF) ;OFFSET OF NEXT PTR
FIELD (OB.XOFF) ;PTR TO HEAD OF INDEX STRUCTURE IF SORTED SET
FIELD (OB.YB) ;[6%20] POINTER TO A Y-BLOCK IF SORTED SET
;[6%20] FIELD (OB.XSIZ) ;NUM OF WORDS IN AN INDEX BLK FOR THIS SET TYPE
;[6%20] FIELD (OB.XNSIZ) ;DITTO FOR AN INDIV NODE
;IF 0, SORTED SET OCC WILL HAVE NO INDEX STRUCT
FIELD (OB.CVIX) ;IF MATCHES VERBIX, PERFORM APPLICABLE CURRENCY OPERATION
;(1) OB.CUR UPDATE IN INSERT, MODIFY
;(2) OB.CUR SUPDATE-SUPPRES IN FIND/STORE
;IF MATCHES -VERBIX, SUPPRESS OB.COWN
FIELD (OB.REC) ;ADDR OF REC BLK OF REC THAT OWNS SET
FIELD (OB.CPRI) ;WILL BE VALID ONLY WHEN CURR OF SET LAST DET BY
;FIND IMMED NEXT RECORD.
FIELD (OB.CUR) ;DBKEY OF CURR OF SET
FIELD (OB.TSC) ;DBKEY OF CURR OF SET
; AT START OF TRANSACTION
FIELD (OB.CNEX) ;RELEVANT IF CURR OF SET DELETED/REMOVED
FIELD (OB.ION) ;ANAL TO RB.ION
FIELD (OB.ID) ;SYMBOL NODE
FIELD (OB.NLEN)
FIELD (OB.NAM,NAMLEN/CPW)
BLKSIZ (SIZ.OB) ;MAX ALLOCATABLE SIZE
; *** ANCILLARY STUFF
WORD (OB,<<MRB,^D18>,<MMB,^D18>>) ;ION
;PTR TO MEM'S RECORD BLK
;PTR TO MEM'S MEMBER BLK
;;; MEMBER IN-CORE BLOCK
FIELD (MB.OOFF) ;OFFS OF OWNER PTR IN A MEM REC, OR 0
FIELD (MB.POFF) ;DITTO BUT FOR PRIOR PTR
FIELD (MB.NOFF) ;OFFS TO NEXT PTR ALWAYS
BYTES (MB,<<FLAG,^D18>,<SHIP,3>,<SOS,3>,<ORD,6>,<DUP,6>>)
;FLAG--FUTURE
;FOR OTHERS, SEE SCHEMA FILE ML. DESC
;??? MF.REORD==1B35 ;MEMBER MUST BE RE-INSERTED SINCE KEY FIELD MODDED
BYTES (MB,<<MYS,^D18>,<MYK,^D18>>)
;MYS=MY SOS CTL BLKS
;MYK=MY (SORT) KEY CTL BLKS
BLKSIZ (SIZ.MB)
WORD (MB,<<IRREV,^D18>,<REST,^D18>>) ;KLUDGE A BIT FOR EFFIC
MB.REST==MB.SHIP
;;; TENANT (PSEUDO!!!) IN-CORE BLOCK
DEFINE FAK.TB(OFF.)<
IRP OFF.,<
TB.'OFF.==MB.'OFF.
IFN TB.'OFF.-OB.'OFF.,<PRINTX ?MEMBER-OWNER PTR OFFSETS MUST AGREE>
>
>
FAK.TB <OOFF,POFF,NOFF>
;;; VIA IN-CORE BLOCK
FIELD (VB.MYC) ;AOBJ PTR TO SORT FIELDS AS THEY APPEAR IN DATA-RECORD
FIELD (VB.MYX) ;DITTO--BUT AS IN INDEX-NODE
BLKSIZ (SIZ.VB)
WORD (VB,<<KTYP,^D18>,<CDB,^D18>>)
;THE MEM DEPEND CHARAC OF A DATA-NAME
;PTR TO ASSOC (PSEUDO-)DATA-BLK
;;; FILE BLOCK
FIELD (FB.DEV)
FIELD (FB.CNT)
FIELD (FB.DIR)
FIELD (FB.FIL)
FIELD (FB.EXT)
FIELD (FB.PRIV)
FIELD (FB.SIZ)
BLKSIZ (SIZ1FB)
OFFS.==-2 ;[6%27]
FB.HDR==-OFFS. ;[6%27] FOR BIND CODE AT JFMERG
FIELD (FB.AOFF) ;[6%27] OFFSET FROM FB.SPEC TO FB.AID
FIELD (FB.FLEN) ;IN -1 WORD SO THAT JSYS USAGE NATURAL
FIELD (FB.SPEC,MAXFS20) ;VARIABLE LENGTH ASCIZ
FIELD (FB.TEMP,MAXTS20) ;...ACTU START PT DETERM BY FB.FLEN
FIELD (FB.AID,MAXTS20) ;[6%27] FILSPEC FOR .AID FILE
BLKSIZ (SIZ2FB)
;[6%20] INDEX (Y) BLOCK
FIELD (YB.FPG) ; FIRST PAGE OF INDEX BLOCK RANGE
FIELD (YB.LPG) ; LAST PAGE OF INDEX BLOCK RANGE
FIELD (YB.EPI) ; MAX # OF KEYS PER IDX BLOCK
FIELD (YB.EPB) ; MAX # OF RECORDS PER BOUY
FIELD (YB.ISIZ) ; INDEX BLOCK SIZE IN WORDS
FIELD (YB.NSIZ) ; INDEX NODE SIZE IN WORDS
FIELD (YB.AB) ; PTR TO AREA BLOCK WHERE REC RESIDES
BLKSIZ (SIZ.YB)
SUBTTL SCHEMA DIRECTORY BLOCKS AND OFFSETS
; SCHEMA BLOCK
FIELD (SL.ASR,SIZ.FH) ;MAKE THIS RECORD DOUBLE AS ASR
;SO THAT .SCH FILE IS .DBS FILE ALSO
FIELD (SL.SYS) ;NMID OF AREA THAT WILL HOLD SYS RECORD
FIELD (SL.HINMID) ;FOR BUILDING RUN-TIME VECTOR
FIELD (SL.HITID) ;FOR BUILDING RECTYP ID VEC
FIELD (SL.NAREA) ;NUM OF AREAS
FIELD (SL.NTRN) ;FOR BUILDINT TRNTYP ID VEC
FIELD (SL.EDIT) ;CHARAC OF ENTIRE SCHEMA OVER TIME
FIELD (SL.RUN) ;DITTO BUT NUMBER OF TIMES SBIND-ED
FIELD (SL.MLAS) ;LAST USED SS (MAX IS 36)
FIELD (SL.JOUR) ;DBKEY OF JOURNAL'S FILE BLK, IF ONE
FIELD (SL.JNBUF) ;[6%9]NUM OF JBUFS TO ALLOC WHEN J OPENED
FIELD (SL.CHKPT) ;SEE CHK.*
FIELD (SL.XACT) ;EXCEPTION ACTION FLAG WORD (SEE VAC.*/ACT.*)
;LEFT=NOTES // R=INTERCEPT
FIELD (SL.JSIZ) ;TELLS DBCS TO LIMIT JRN SIZE TO (N) TRANSAC
;...AND THEN TO BEGIN OVERWRITING AND REPEAT THE CYCLE
BYTES (SL,<<LKS,^D18>,<LNUM,^D18>>) ;[6%17]
; LKS IS SCOPE OF LOCK
LKS.AL==1B0 ; --AREA LOCKS
LKS.PL==1B1 ; --PAGE LOCKS
; LNUM IS MAX NUM OF LOCKS
FIELD (SL.LOK) ;[6%43] PRIVACY LOCK FOR ADMINISTRATION
FIELD (SL.UNU) ;RESERVED FOR FUTURE
BLKSIZ (SIZ.SL)
;;; STANDARD LIST HEADER [6%32]
BYTES (LST,<<BEG,^D18>,<END,^D18>>) ;BEG,,END OFFSETS (SPACE)
BYTES (LST,<<CBEG,^D18>,<CEND,^D18>>) ;CURRENT LIST BEG,,END
BLKSIZ (SIZ.LHD)
SIZ.LE==2 ;LIST ENTRY SIZE
;;;[6%17] FORMAT OF A LOCK BLOCK
FIELD (LK.HEAD,SIZ.LHD) ;STANDARD LIST HEADER
; ( BYTES (LST,<<BEG,^D18>,<END,^D18>>) ;BEG,,END OFFSETS )
; ( BYTES (LST,<<CBEG,^D18>,<CEND,^D18>>) ;CURRENT LIST BEG,,END)
FIELD (LK.AOS) ;SEMAPHORE WORD FOR BLOCK ACCESS
FIELD (LK.ABO) ;ABORT STATUS FIELD
FIELD (LKJ.OWN) ;JRN LK OWNER ID
BYTES (LKJ,<<MODE,^D1>,<HIP,^D35>>) ;JRN LK TYPE
;HIGHEST PAGE NUMBER IN THIS PAGE
BLKSIZ (LK.HDR) ;ALSO OFFSET TO ACTUAL LOCK STR.
FIELD (LKP.OWN) ;OWNER OF THIS LOCK
BYTES (LKP,<<MODE,^D2>,<QUE,^D2>,<UNU,^D5>,<PAG,^D27>>)
;MODE IS: 0-SHR, 1-EXCLU, 2-NO-RELEASE
LK.SHR==0
LK.EXC==1
LK.NRL==2 ;DON'T RELEASE SHARED LOCK UNTIL
;...THE END OF TRANSACTION (CLOSE TRN)
;QUE IS 0-LOCKED, 1-QUEUED, 2-UPGRADE
LK.LOK==0
LK.QRQ==1
LK.UPG==2
;OWN IS OWNER-ID (PER-RU)
;PAGE IS PAGE NUMBER LOCKED
BLKSIZ (LK.PLK) ;SIZE OF PAGE LOCK BLOCK
FIELD (LKA.OWN) ;OWNER-ID
BYTES (LKA,<<MODE,^D1>,<UNU,^D35>>) ;MODE AS ABOVE
FIELD (LKA.LN,SHORT/CPW) ;LOCK NAME (SCH UNLESS SETDB)
FIELD (LKA.QUE) ;[6%40] 0=LOCK,1=REQ,-1=2ND PART REQ
FIELD (LKA.W1,SIZ.MSK) ;AREA LOCK WORDS
BLKSIZE (LK.ALK) ;SIZE OF AREA LOCK BLOCK
;[6%31] FORMAT OF A SHARED TABLE FRAME - TOPS-10 ONLY
BYTES (ST,<<LCLK,^D18>,<CLEN,^D18>>) ;LOW CLOCK
;....CURRENT LENGTH
FIELD (ST.LIST,^D511) ;ACTUAL WORDS OF LIST
BLKSIZ (SIZ.ST)
; ; [6%22] FORMAT OF A PAGE STACK FRAME -TOPS-20 ONLY
;
; FIELD (PF.LST) ;AOBJN PTR TO CURRENT STACK FRAME
; FIELD (PF.NXT) ;POINTER TO NEXT FRAME IF PRESENT
; FIELD (PF.PRI) ;POINTER TO PRIOR FRAME, OR 0 FOR LAST
; FIELD (PF.STK,STKPFRM-OFFS.) ;THE STACK OF PAGE NUMBERS AND LENGTHS
; BLKSIZ (SIZ.PF) ;SIZ.PF SHOULD = STKPFRM
FIELD (PF.RWD,STKPFRM)
BLKSIZ (SIZ.PF)
;SUB-SCHEMA BLOCK
FIELD (UL.MASK) ;ANY BLOCK THAT "OR"S NON-0 WITH THIS IS IN SS
FIELD (UL.LOK,LOKMAX/CPW) ;LOCK FOR PVC KEY
FIELD (UL.NLEN) ;UNPADDED NAME LEN
FIELD (UL.NAM,NAMLEN/CPW) ;ALLOCATION OF SPACE FOR SS NAME
BLKSIZ (SIZ.UL)
;RECORD BLOCK
BYTES (RL,<<IDSET,^D18>,<NMID,^D18>>)
;NMID IS COMMON TO MOST SCHEMA DEFINED BLOCKS
;IDSET IS LAST SET TO WHICH THIS REC WAS ASSOC--FOR TENANT CONSIS
BYTES (RL,<<NDAT,^D9>,<NAREA,^D9>,<NOWN,^D9>,<NMEM,^D9>>)
;EACH IS NUM OF (X) ASSOC WITH THE RECORD
BYTES (RL,<<LM,6>,<DSIZ,^D12>,<DOFF,^D9>,<TID,^D9>>)
;LM IS FOR LOC MODE: 0=UNDEF 1=DIRECT 2=VIA 3=CALCDUP 4=CALCNODUP
;DSIZ IS SIZE OF DATA IN WORDS
;THE (DOFF)TH WORD OF THE LINE CONTAINS 1ST WORD OF DATA
;TID IS THE RECORD TYPE ID (APPEARS IN LINE HDR)
FIELD (RL.SS) ;TELLS WHICH SS THIS REC IN
FIELD (RL.LOC) ;IF VIA, DBKEY OF THAT SET BLK
;IF DIRECT, DBKEY OF ITS ITEM BLK
;IF CALC, NUM OF CALC FIELDS
FIELD (RL.WID) ;DBKEY OF ITEM BLK OF AREA ID, IF ONE
FIELD (RL.NLEN) ;LEN OF REC NAME
FIELD (RL.NAM,NAMLEN/CPW) ;THE REC NAME IN ASCII
BLKSIZ (SIZ.RL)
;AREA BLOCK -- USE MOSTLY FULL WORDS, ASSUME NUM OF AREA BLKS SMALL %
BYTES (AL,<<SYM,^D18>,<NMID,^D18>>)
;AL.SYM USED BY SCHEMA PROCESSOR, PTS TO AREA'S SYMBOL BLK
;AS BEFORE
FIELD (AL.SS) ;SS THIS AREA IS IN
; *** BEGIN BLTTABLE STUFF
AL.BLT==OFFS.
FIELD (AL.1STP) ;1STP IS PAGE NUM OF 1ST PAGE OF AREA
FIELD (AL.LASP) ;LAST PAGE NUM OF THIS AREA
BYTES (AL,<<PUNR,^D18>,<PSIZ,^D18>>)
;UNROUNDED PAGE SIZE--ALLOWS MAKING PART OF PAGE INVIS
;PSIZ=PHYSICAL PAGE SIZE (ACCOR PAGE BUF SIZE)
;[6%36] BYTES (AL,<<SHAR,^D18>,<NBUF,^D18>>)
BYTES (AL,<<ONBUF,^D18>,<SHAR,^D18>>) ;[6%36] FOR SHARING BUFFERS
; ONBUF - AB WHICH OWNS NBUF
; SHAR - NAMID OF "AT AREA..."
FIELD (AL.DNBUF) ;[6%36] DBK OF IL FOR DATANAME
FIELD (AL.NBUF) ;[6%36] NUM OF BUFS TO ALLOC
; NBUF IS 0 IF SHARING BUFS
; ONLY BUFFER "OWNER" IS NONZERO
FIELD (AL.CLUS) ;[6%10]CLUSTER SIZE FOR THIS AREA
FIELD (AL.RPP) ;MAX RECS PER PAGE
FIELD (AL.CALC) ;MAX CALC RECS PER PAGE
FIELD (AL.BKU) ;BACKUP SPEC: 0=NO 1=AFTER 2=BEFORE 3=BOTH
FIELD (AL.LOK,LOKMAX/CPW * 6) ;ALL OF THE LOCKS: PERMUTE CONC/PROT/EXCL UPDATE/RETR
; *** END BLTTABLE STUFF
AL.MASK==OFFS. ;->NXT WD ADDXABLE 2 WAYS
;THE LEFT SIDE MAY CONTAIN VARIOUS UM% BITS
BYTES (AL,<<MWD,^D18>,<MBT,^D18>>)
;[6%19] MWD=WHICH LOCK WORK THIS AREA USES
;[6%19] MBT=WHICH BIT IN THE WORD REPS AREA
FIELD (AL.FIL) ;DBKEY OF FILBLK FOR AREA
FIELD (AL.TMP) ;SS FOR WHICH THIS AREA A TEMP AREA
FIELD (AL.NLEN) ;LEN OF AREA NAME
FIELD (AL.NAM,NAMLEN/CPW) ;THE AREA'S NAME
BLKSIZ (SIZ.AL)
;[6%20] INDEX BLOCK YL.FPG MUST BE FIRST IN Y-LINE
FIELD (YL.FPG) ; FIRST PAGE OF INDEX BLOCK RANGE
FIELD (YL.LPG) ; LAST PAGE OF INDEX BLOCK RANGE
FIELD (YL.EPI) ; MAX# OF INDEX ENTRIES / IDX BLOCK
FIELD (YL.EPB) ; MAX# OF DATA REC ENTRIES / BUOY
FIELD (YL.ISIZ) ; INDEX BLOCK SIZE (WORDS)
FIELD (YL.NSIZ) ; INDEX NODE SIZE (WORDS)
BYTES (YL,<<NUL,^D18>,<ANMID,^D18>>)
; YL.NUL - NOT USED
; YL.ANMID - AREA NAME ID
BYTES (YL,<<SYM,^D18>,<ASYM,^D18>>)
; SYM - ADR OF SETNAME IN SYM TBL
; ASYM - AREA SYM NODE PTR
FIELD (YL.SLEN) ; SET NAME'S LENGTH
FIELD (YL.SNAM,NAMLEN/CPW) ; SET NAME
BLKSIZ (SIZ.YL)
;DATA BLOCK
BYTES (DL,<<IDREC,^D18>,<NMID,^D18>>)
;NMID AS BEFORE
;IDREC--NEED TO VERIFY THAT DN PART OF RIGHT REC OCCAS
BYTES (DL,<<UNU,^D18>,<OCC,^D9>,<PREC,^D9>>)
;UNUSED
;OCC IS # OF OCCURS IF GTR 0
;PREC IS PRECISION, IN COBOL S9(10) FOR EX
BYTES (DL,<<NLEN,6>,<SLEN,6>,<PLEN,6>,<TYP,6>,<CALC,6>,<SCAL,6>>)
;SINCE DATA BLKS ARE PRESUMABLY MOST FREQUENT
;TRY TO SAVE SPACE (HOPEFULLY NOT AN ERROR IN JUDGMENT)
;ALL STRINGS ARE ENCODED AS ONE, WITH SUBSTRING OPERATORS USED TO PULL APART
;NLEN DATA-NAME'S LENGTH
;PLEN PICTURE'S LENGTH
;SLEN PSEUDONYM'S LENGTH
;THE DATA TYPE
;CALC FIELD ORDINALITY
;SCALE FACTOR (IMPLIED DECIMAL PT)
FIELD (DL.SS) ;AS BEFORE
FIELD (DL.OFF) ;A BYTE PTR TO ITEM WITHIN ITS RECORD
FIELD (DL.SIZ) ;IN TERMS OF ITS LOGICAL USE--CHARS,WORDS,ETC
DLSLEN==NAMLEN+NAMLEN+SHORT
FIELD (DL.STRING,DLSLEN/CPW) ;ALL THE STRINGS
BLKSIZ (SIZ.DL)
;OWNER BLOCK
BYTES (OL,<<POFF,^D9>,<NOFF,^D9>,<NMID,^D18>>)
;THE (POFF)TH WORD OF EACH OWNER REC IS THE PRIOR PTR FOR THIS SET, IF ONE
;THE (NOFF)TH WORD IS THE NEXT PTR--ALWAYS NON-0
;NMID--AS BEFORE
BYTES (OL,<<XNSIZ,^D18>,<XOFF,^D18>>)
;LARGEST KEY-NODE SIZE FOR MEMS OF THIS SET (0 IMPLIES: USE NO INDEX STRUCT)
;THE (XOFF)TH WORD IS TOP-LEVEL IDXBLK, IF ONE
FIELD (OL.NMEM) ;# OF MEMS IN SET
FIELD (OL.SS) ;SS MASK FOR THIS SET
FIELD (OL.NLEN) ;SET NAME'S LEN
FIELD (OL.NAM,NAMLEN/CPW) ;SET NAME
BLKSIZ (SIZ.OL)
;MEMBER BLOCK
BYTES (ML,<<IDREC,^D18>,<SHIP,3>,<SOS,3>,<ORD,6>,<DUP,6>>)
;NMID OF REC THAT IS MEM (USED DURING BINDING)
;SHIP: AUTO/MAN AND MAND/OPT
;SOS IS TYPE OF SOS THIS REC HAS 1=CURR 2=LMO
;ORD IS 1 OF 12 POSSIB (2 PATHOL): 1ST/LAST/NEXT/PRIOR ARE POSIT
;SORTED ARE: PLAIN/DBKEY/WITHIN/UNIFIED PLUS EACH WITH USER KEYS
;BUT DBKEY+USER KEY IMPOS & UNIFIED+NO-USER IMPOS
;IF SORTED, DUP = 0 MEANS ANY 1=FIRST 2=LAST 3=NOT
BYTES (ML,<<OOFF,^D9>,<POFF,^D9>,<NOFF,^D9>>)
;OFFSETS ARE AS BEFORE--OOFF IS NON-0 IF LINKED TO OWNER
BLKSIZ (SIZ.ML)
WORD (ML,<<IRREV,^D18>,<REST,^D18>>)
ML.REST==ML.SHIP
;WITHIN BLOCK
BYTES (WL,<<REC,^D18>,<IDAREA,^D18>>)
;SYM OF UNBOUND REC. IOW, NON-0 IF EXPLIC PAGE RANGE
;NMID OF AREA CONNECTED TO
FIELD (WL.1STP) ;IF NOT EXPLIC SPECIFIED, =AL.1STP
FIELD (WL.LASP) ;DITTO AL.LASP
BYTES (WL,<<RDCODE,^D18>,<RDINC,^D18>>) ;[6%24]
;[6%24] RDCODE - REC DISTRIBUTION CODE
; SEE WB.??P FOR DEFINITION
;[6%24] RDINC - THE N FOR ABOVE
BLKSIZ (SIZ.WL)
;VIA BLOCK
BYTES (VL,<<NKEY,^D18>,<TYP,^D18>>)
;TYP IS VIA LINE FOR SOS OR SORT CTL
;NKEY = NUMBER OF ELEMS IN LIST
BLKSIZE (SIZ.VL)
;CONTROL BLOCK
BYTES (CL,<<CASE,^D18>,<KTYP,^D18>>)
;CASE--FOR COMPARISON CTL
;KTYP--ASC/DESC FOR INSTANCE
BYTES (CL,<<IDDAT,^D18>,<IDSET,^D18>>)
;IDSET HERE AS WITH DL.IDREC RL.IDSET
;DITTO IDDAT
FIELD (CL.ALIAS) ;DBKEY OF ITEM LINE IF THERE IS AN ALIAS NAME
FIELD (CL.IDX) ;ORDINALITY OF THIS SUBKEY (START 1)
FIELD (CL.XOFF) ;FOR SORTED SETS (IN VIA.SOR LISTS), WHERE IN INDEX NODE THE KEY IS
FIELD (CL.KSET) ;DBKEY OF SET IT CTLS, USED TO SET KEY.NORD
BLKSIZ (SIZ.CL)
;TEXT BLK
FIELD (TL.SS) ;NOW TEXT CAN BE SPECIFIED ON A SS BASIS
FIELD (TL.TLEN) ;CHARS OF TEXT
FIELD (TL.TEXT,TEXMAX/CPW) ;PERHAPS TOO MUCH, WHO KNOWS
BLKSIZ (SIZ.TL)
;ITEM BLOCK -- ALL RECORD INDEP SYMBOLS ARE DESCRIBED HERE
FIELD (IL.SLEN)
FIELD (IL.PSU,SHORT/CPW) ;ITS PSUEDONYM IF NON-0
FIELD (IL.NLEN) ;AS BEFORE
FIELD (IL.NAM,NAMLEN/CPW) ;AS BEFORE
BLKSIZ (SIZ.IL)
;TRANSACTION BLOCK (EVENT BLOCK) - DEFINES TRANSACTION NAMES AND
; RECOVERY MODES
BYTES (EL,<<NKL,^D18>,<NMID,^D18>>) ;NAME-ID OF TRANSACTION
;NUMBER OF TRN-AREA LINES FOR BIND
FIELD (EL.SS) ;SUB-SCHEMAS IN
BYTES (EL,<<FLAG,^D18>,<IMG,^D18>>) ;FLAGS FOR THIS TRANS
EL%RO==1 ;...Retrieval Only transaction
;IMAGE TYPES FOR THIS TRANS
FIELD (EL.NLEN) ;LENGTH OF NAME
FIELD (EL.NAM,NAMLEN/CPW) ;REAL NAME
BLKSIZ (SIZ.EL)
;TRANSACTION-AREA BLOCK DEFINES AREAS, CLUSTERING AND USAGE PER AREA,
; PER-TRANSACTION
BYTES (KL,<<USG,^D18>,<CLU,^D18>>) ;USAGE MODE (RETR, UPDTE)
FIELD (KL.ARID) ;NAME-ID OF AREA
BLKSIZ (SIZ.KL)
;FILE BLOCK -- SEPARATE IN HOPE OF BETTER OS INDEP
FIELD (FL.DEV)
FIELD (FL.CNT) ;SET ONLY BY CODE
FIELD (FL.DIR)
FIELD (FL.FIL)
FIELD (FL.EXT) ;SET ONLY BY CODE
FIELD (FL.PRIV)
BLKSIZ (SIZ1FL)
BYTES (FL,<<AOFF,^D9>,<FLEN,^D9>,<BLEN,^D18>>)
;[6%27] AOFF IS OFFSET TO .AID FSPEC
;FLEN IS # OF WORDS IN FILE SPEC
;BLEN # WORDS IN FILE SPEC+TMP+AID SPEC
FIELD (FL.SPEC,MAXFS20) ;JUST A LONG ASCIZ STRING FOR TOPS20
FIELD (FL.TEMP,MAXTS20) ; TMP FILSPEC
FIELD (FL.AID,MAXTS20) ;[6%27] AID FILSPEC
;THE ACTUAL SIZES OF THE FIL/TMP SPEC IS DRIVEN BY 1ST WORD
BLKSIZ (SIZ2FL)
;
END