Trailing-Edge
-
PDP-10 Archives
-
bb-bt99e-bb
-
cobold.c05
There are 2 other files named cobold.c05 in the archive. Click here to see a list.
INS 32/1 ;05C1
;V12B*******************
REP 3/2 ;05C2
;V12B****************
WIT
;SMI 08-DEC-82 [1443] Test for no decimal places in comp field.
;DMN 09-NOV-82 [1431] Fix bug caused by edits 1046 and 1104 to DBMS
; FIND with INDEX item
;SMI 08-OCT-82 [1415] 68274 Generate SET TALLY TO 0 when converting
; EXAMINE to INSPECT.
;RLF 01-OCT-82 [1412] Make RETAIN do RETAIN NEXT so LSU works
; for ISAM sequential access
;RJD 10-AUG-82 [1400] Check for specific file name in LABEL USE
; PROCEDURE and set up USE PROCEDURE table for
; all applicable cases
;SMI 25-JUN-82 [1367] FIX EDIT 1343 68274 CONVERTER IGNORES PARA-NAME
; FOLLOWING NOTE
;JEH 07-MAY-82 [1354] Wrong alternate key selected if multiple keys
; defined with same starting location
;DMN 07-APR-82 [1350] 68274 CONVERTER DOES NOT FLAG DISPLAY OR STOP SIGNED INTEGER.
;DMN 05-MAR-82 [1343] 68274 CONVERTER DOES NOT CONVERT NOTE INTO A COMMENT
;DMN 12-MAR-82 [1340] 68274 CONVERTER DOES NOT FLAG 'NOT' ABBREV.
; COMBINED RELATION CONDITIONS
;RJD 29-JAN-82 [1334] SUPERSEDES EDITS 1322 AND 1326
;WTK 18-DEC-81 [1326] FIX EDIT 1322 BREAKING CREF LISTING
;WTK 08-OCT-81 [1322] CHECK LAST PARA FOR ENDING IN UNCOND. GOTO
;JSM 30-Sep-81 [1313] CHECK FOR - IF cond <CRLF> PARA-NAME.
;WTK 24-JUN-81 [1311] BAD PLACEMENT OF DIAG 179 IN LISTING
;V12A****************
INS 59/14 ;05C3
IFN ANS68,<
INTER. PA20Y. ;[1400]
PA20Y.: SETO TA, ;[1400]
DPB TA,OP.FSP## ;[1400] FILE SPECIFIC USE
POPJ PP, ;[1400]
>
REP 74/18 ;05C4
INTER. PA23.
WIT
IFN FT68274,<
INTER. PA23N. ;[1343]
PA23N.: PUSHJ PP,CVTCTC ;[1343] TURN NOTE INTO COMMENT
PUSHJ PP,PA23. ;[1343] BYPASS WHOLE PARAGRAPH
SETZM CVTCCF## ;[1343] TURN COMMENT OFF FOR NEW LINE
SETZM CVTCAL## ;[1343] AND ALL FOLLOWING LINES
POPJ PP, ;[1367]
>
INTER. PA23.
IFN ANS68,<IFE FT68274,<
INTER. PA23N. ;[1343]
PA23N.:>>
INS 19/25 ;05C5
MOVEI TB,[ASCIZ /SET TALLY TO 0/] ;[1415]
PUSH PP,TD ;[1415]
PUSHJ PP,CVTINL## ;[1415]
POP PP,TD ;[1415]
INS 96/25 ;05C6
MOVEI DW,E.767 ;[1415] SET UP WARNING
MOVEI CP,8 ;[1415]
SKIPN TA ;[1415] TALLY REQUIRED ?
PUSHJ PP,WARN ;[1415] NO
INS 40/41 ;05C7
IFN FT68274,<
TSWT FNOTF ;[1340] HAVE WE SEEN NOT WITH ABBREV. COMB. REL. COND.?
JRST PA22. ;[1340] NO, JUST OUTPUT OPCODE
MOVSI DW,E.769 ;[1340] YES, WARN USER
PUSHJ PP,WARN ;[1340]
>
REP 22/43 ;05C8
PA133N: PUSHJ PP,PA133S
WIT
PA133N:
IFN FT68274,<
PUSHJ PP,CVTCTC ;[1343] TURN NOTE INTO COMMENT
>
PUSHJ PP,PA133S
IFN FT68274,<
PUSHJ PP,CVTUTC ;[1343] TURN COMMENT OFF AGAIN
>
INS 11/50 ;05C9
HRRZ TA,CURFLO ;[1311] FLOTAB ENTRY ADDRESS
REP 54/63 ;05C10
TLNE TE,10 ;SKIP IF SPECIFIC FILE
WIT
TLNN TE,2 ;[1400] SKIP IF SPECIFIC FILE
REP 128/63 ;05C11
TLNE TE,20 ;ENDING?
ADDI TC,4 ;YES
TLNE TE,100 ;BEFORE?
ADDI TC,2 ;AFTER
TLNN TE,10 ;REEL?
ADDI TC,1 ;NO, FILE
WIT
CAIE TB,66 ;[1400] LABEL PROCESSING?
JRST P173.F ;[1400] NO
TLNN TE,20 ;[1400] ENDING?
JRST P173C1 ;[1400] NO
ADDI TC,4 ;YES
TLNN TE,40 ;[1400] BEGINNING TOO?
JRST P173C2 ;[1400] NO
PUSHJ PP,P173C2 ;[1400] YES
P173C1: SETZ TC, ;[1400] OFFSET TO BE IN TC
P173C2: TLNE TE,100 ;[1400]BEFORE?
ADDI TC,2 ;AFTER
;[D1400] TLNN TE,10 ;REEL?
;[D1400] ADDI TC,1 ;NO, FILE
PUSH PP,TC ;[1400] SAVE OFFSET
TLNE TE,10 ;[1400] REEL?
PUSHJ PP,P173.H ;[1400] YES, SET IT UP
POP PP,TC ;[1400] RESTORE OFFSET
TLNN TE,4 ;[1400] FILE?
POPJ PP, ;[1400]
ADDI TC,1 ;[1400] YES
PJRST P173.H ;[1400] SET UP FOR FILE
REP 138/63 ;05C12
TLNE TE,10 ;SKIP IF ONE IS OFF..
WIT
P173.F: TLNE TE,10 ;[1400] SKIP IF ONE IS OFF..
REP 127/109 ;05C13
CAIN TD,%US.1C ;[1104] MUST BE ONE-WORD COMPUTATIONAL
JRST PA304A ;[1104] OK
HRRZI DW,E.634 ;[1104] GET ERROR
WIT
CAIE TD,%US.1C ;[1431] [1104] MUST BE ONE-WORD COMPUTATIONAL
CAIN TD,%US.IN ;[1431] OR INDEX
JRST PA304A ;[1104] OK
HRRZI DW,E.639 ;[1431] [1104] GET ERROR
REP 152/109 ;05C14
CAIN TD,%US.1C ;[1046] MUST BE ONE-WORD COMP.
JRST PA306A ;[1046] OK
WIT
LDB TE,DA.NDP ;[1443]
CAIE TD,%US.1C ;[1431] [1046] MUST BE ONE-WORD COMP.
CAIN TD,%US.IN ;[1431] OR INDEX
JUMPE TE,PA306A ;[1434][1046] AND NO DECIMAL PLACES
INS 12/121 ;05C15
; [1354] Also store size in case multiple keys at same offsets
LDB TD,DA.INS ;[1354] Get size of user's item
MOVEM TD,KEYRLN## ;[1354] save for later test
INS 27/121 ;05C16
LDB TD,DA.INS ;[1354] Get size of key field
CAMGE TD,KEYRLN ;[1354] If key gtr or equal, match;
JRST PCASAK ;[1354] else search alternates
INS 49/121 ;05C17
LDB TD,DA.INS ;[1354] Get size of key field
CAMGE TD,KEYRLN ;[1354] If gtr or equal, match;
JRST PCASK3 ;[1354] else keep searching
REP 38/133 ;05C18
POPJ PP,
WIT
IFN ANS74,< ;[1412]
MOVE TC,TA ;[1412] SAVE IT, NEED TO
MOVE TA,CURFIL ;[1412] GET CURRENT FILE
LDB TB,FI.ORG ;[1412] TO CHECK ON ORGANIZATION.
CAIE TB,%ACC.I ;[1412] IS IT INDEXED?
JRST PASU3Y ;[1412] YES, DON'T NEED TO GO FURTHER.
LDB TB,FI.FAM ;[1412] OTHERWISE, CHECK ACCESS MODE.
CAIE TB,%FAM.S ;[1412] IF NOT SEQUENTIAL,
JRST PASU3Y ;[1412] DO NOTHING,
MOVE TA,TC ;[1412] OTHERWISE,
HRLZI TA,(1B15) ;[1412] SET BIT FOR RETAIN NEXT,
ORM TA,SU30FG ;[1412] SO ISAM SEQUENTIAL WORKS.
>;END IFN ANS74
PASU3Y: POPJ PP, ;[1412]
REP 28/135 ;05C19
IFN ANS74,<
WIT
IFN ANS74!FT68274,< ;[1350]
INS 148/135 ;05C20
;[1313]
INTER. PCA7X. ;[1313]
PCA7X.: PUSH PP,TE ;[1313] GET AN AC TO WORK WITH
MOVE TE,IFLVL## ;[1313] GET THE CURRENT LEVEL OF "IF"
ADD TE,SPFLVL## ;[1313] PLUS OF "SPECIAL IF"
CAIN TE,0 ;[1313] IF ZERO, SKIP FOLLOWING TEST
JRST PCA7X1 ;[1313]
CAIN TYPE,USERN.+AMRGN. ;[1313] USER NAME IN A-MARGIN?
EWARNW E.148 ;[1313] YES - GIVE DIAG MSG
PCA7X1: POP PP,TE ;[1313] GIVE BACK AC
JRST PCA7. ;[1313] AND PROCEED WITH PCA7.
;[1313]
INS 152/135 ;05C21
INTER. PCA7C. ;[1334]
PCA7C.: PUSH PP,CREFSW## ;[1334] TURN OFF CREF SW. TO AVOID
SETZM CREFSW ;[1334] WIPING OUT THE CREF LISTING
PUSHJ PP,PA4. ;[1334] SAME AS PCA7., BUT CHECK LAST PARA
POP PP,CREFSW ;[1334]
JRST PCA7. ;[1334] IN PROG FOR ENDING IN UNCOND. GOTO
REP 218/135 ;05C22
IFN ANS74,<
WIT
IFN ANS74!FT68274,< ;[1350]
SUM 1506