Trailing-Edge
-
PDP-10 Archives
-
bb-l014q-bm_tops20_v6_1_atpch17
-
autopatch/maklib.c17
There are no other files named maklib.c17 in the archive.
REP 1/1 ;17C1
; UPD ID= 142, SNARK:<6.1.UTILITIES>MAKLIB.MAC.2, 6-Jun-85 16:23:59 by DMCDANIEL
TITLE MAKLIB - RELOCATABLE BINARY FILE MANIPULATION PROGRAM
SUBTTL DAVID MCDANIEL/IGNORE REL BLOCK TYPE 100/25-APR-85
SUBTTL /HRB/CLRH/MFB/MS 28-SEP-80
WIT
TITLE MAKLIB - RELOCATABLE BINARY FILE MANIPULATION PROGRAM
SUBTTL /HRB/CLRH/MFB/MS/PY 5-SEP-85
REP 9/1 ;17C2
;COPYRIGHT (C) 1975,1976,1977,1978,1980,1984 BY
;DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
WIT
;COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1975,1976,1977,1978,1980,1981,1982,1983,1984,1986,1987.
;ALL RIGHTS RESERVED.
REP 29/1 ;17C3
DECMVR==2
DECEDT==105
WIT
DECMVR==3
DECEDT==132
INS 50/1 ;17C4
ND KL10,1 ;[113] USE KL OP CODES
REP 53/1 ;17C5
COPYRIGHT (C) DIGITAL EQUIPMENT CORPORATION 1975,1984.
WIT
COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1975,1987. ALL RIGHTS RESERVED.
\;END COPYRIGHT MACRO
REP 82/2 ;17C6
; WHILE DISPLAYING THE HEADING ON LIST AND POINT SWITCH.
;105 (NONE) ADD A CHECK FOR REL BLOCK TYPE 100 AT READ2B+5 AND YANK2+5.
; JUST IGNORE REL BLOCK TYPE 100. QAR #838228.
WIT
; WHILE DISPLAYING THE HEADING ON LIST AND POINT SWITCH
;Start of version 2C
;105 MS 5-Jan-81 SPR 10-30404
; EVADR should skip EVAEX pass if "(" followed by blank
; and accept the valid return value in ac "A" by checking
; C.LHNZ
;106 MS 12-Jan-81 NO SPR
; Recognize a partially defined symbol if it is
; dependent on another symbol.
;107 MS 29-Jan-81 SPR 10-30538
; If no transaction file exists MAKLIB should not continue.
; Return MKLTFR as a fatal error instead of warning message.
;110 MS 15-Jun-81 SPR 10-16223
; Add psuedo-op .GO to ignore MKLMAH error and continue.
;111 PY 9-Sep-81 NO SPR
; Change the edit history, retroactive to last release.
; Include date, initials, and expand the SPR number to
; show if it is a TOPS-10 or TOPS-20 SPR. Also use
; lower case. Change the minor version number to indicate
; that edits were made after 2B was released.
;112 PY 10-Sep-81 SPR 10-31533
; Fix problem with line sequence numbers so that the optional
; tab will be gobbled as part of the number, not part of the
; text.
;113 PY 15-Sep-82 SPR 10-33051
; Update the opcode table. Add KL instructions under a KL10
; feature test. Turn the test on as default.
;114 PY 6-Oct-82 SPR 10-33132
; Use 376 instead of 177 as a mask when looking for the last
; character in a word.
;115 PY 7-Oct-82 SPR 10-33123
; Don't overwrite BLT accumulator during the BLT.
;116 PY 12-Oct-82 SPR 10-33134
; Fix Type 1 blocks with more than 18 data words correctly.
;117 PY 13-Oct-82 SPR 10-33125
; Add MKLCFP message if user attempts to /FIX a psected file.
;120 PY 14-Oct-82 SPR 10-33124
; Allow only simple relocatable address in .INSERT or .ALTER
;121 PY 15-Nov-82 SPR 10-33238
; Fix edit 113, add G-Float, XMOVEI, and XHLLI
;122 PY 27-Jan-83 SPR 10-33507
; Don't change type 3 block highseg break if left and right
; halfwords are the same.
;123 PY 26-Apr-83 SPR 10-33685
; Fix typo in edit 121.
;124 PY 6-May-83 SPR 10-33829
; Don't ignore /switch after /switch: on commands with
; multiple transaction files. Makes commands such as
; OUT=MASTER,TRANS1/APPEND:MODULE,TRANS2/APPEND work
; correctly.
;125 PY 13-May-83 SPR 10-33874
; Allow .TEXT blocks after the index block but before
; the name block. They are not proper because they do
; not really belong to the module being looked at, but
; MAKLIB should not die because of them.
;126 PY 29-Sep-83 SPR NONE
; Fix bug in edit 124. Don't store a zero switch unless
; it is to overwrite a previous name (as in the case of
; the second transaction file).
;127 LEO 5-SEP-85
; Do Copyrights.
;130 PERK 19-MAY-87
; Do Copyright.
;131 PERK 4-JUN-87 SPR 20-21599
; Fix MAKLIB to abort if a long Fortran symbol is found.
; (Block types 1004,1005,1006)
;132 MCDANIEL 6-JUN-85 QAR #838228
; This edit was put in the TOPS-20 sources but not the TOPS-10 in 1985.
; ADD A CHECK FOR REL BLOCK TYPE 100 AT READ2B+5 AND YANK2+5.
; JUST IGNORE REL BLOCK TYPE 100.
DEL 27/5 ;17C7
;**; [77] CHANGE AT DEFINITION OF MAXMOD MFB 30-JUL-80
INS 33/6 ;17C8
BIT(SYMDEP) ;[106] ON MEANS SYMBOL IS DEPENDENT
BIT (IGNEDT) ;[110] ON MEANS IGNORE THIS EDIT
REP 43/16 ;17C9
JUMPE N,CPOPJ
HLRZ T2,TMAREA+.FXLEN
CAIL T2,MAXMOD
;**; [100] CHANGE @ STORER + 13L MS 15-SEP-80
;**; [100] ADD THE MODULE NAME IN THE FOLLOWING MESSAGE
;**; [100] TO INDICATE HOW FAR THE MODULES CAN BE ACCEPTED.
$KILL(TMN,Too many module names - stopped at MODULE:,N$SIX) ;[100]
AOS T2
WIT
HLRZ T2,TMAREA+.FXLEN
CAIL T2,MAXMOD
$KILL(TMN,Too many module names - stopped at MODULE:,N$SIX) ;[100]
AOS T2
SKIPN TMAREA+.FXLEN(T2) ;[126] Second (or more) filespec?
JUMPE N,CPOPJ ;[126] No, don't store blank
DEL 57/20 ;17C10
;**; [104] INSERT @ OLIST + 17L MS 28-SEPT-80
DEL 11/21 ;17C11
;**; [73] INSERT AT OPNLKO + 7 1/2 CLRH 1-AUG-79
DEL 13/22 ;17C12
;**; [73] INSERT BEFORE INDOP2 CLRH 1-AUG-79
DEL 67/23 ;17C13
;**; [72] CHANGE AT SWT1 + 15 CLRH 27-JUL-79
REP 89/23 ;17C14
$WARN (TFR, all TRANSACTION files rejected by conditions) ;[70] NO.
JRST INDCLS ;[70] CLOSE UP SHOP
;**; [72] INSERT BEFORE SWTBL CLRH 27-JUL-79
SWTLKE: MOVEI T1,LKPBLK ;[72] GET INFORMATION
MOVEI T2,6 ;[72] TO PUT OUT ERROR MESSAGE
;**; [76] CHANGE @ SWTLKE + 2L MFB 30-JUL-80
WIT
$KILL (TFR, all TRANSACTION files rejected by conditions) ;[107][70] NO.
JRST INDCLS ;[70] CLOSE UP SHOP
SWTLKE: MOVEI T1,LKPBLK ;[72] GET INFORMATION
MOVEI T2,6 ;[72] TO PUT OUT ERROR MESSAGE
REP 40/28 ;17C15
TRC4: ANDI A,177 ;DISCARD ALL BUT LAST BYTE
WIT
TRC4: ANDI A,376 ;[114] DISCARD ALL BUT LAST BYTE
REP 50/29 ;17C16
ANDI A,177 ;GET DOWN TO LAST BYTE ONLY
WIT
ANDI A,376 ;[114] GET DOWN TO LAST BYTE ONLY
INS 17/37 ;17C17
CAIN B,23 ;[117] PSECT NAME BLOCK?
$KILL(CFP,Cannot FIX Psects) ;[117] YES, ERROR
REP 25/37 ;17C18
CAIN B,100 ;IS IT A REL BLOCK TYPE 100(.ASSIGN)?
JRST YANK2A ;YES, PROCESS AS A LEGAL BLOCK TYPE
WIT
CAIN B,100 ;[132] IS IT A REL BLOCK TYPE 100(.ASSIGN)?
JRST YANK2A ;[132] YES, PROCESS AS A LEGAL BLOCK TYPE
REP 39/37 ;17C19
ANDI A,177 ;GET RID OF ALL BUT LAST BYTE
WIT
ANDI A,376 ;[114] GET RID OF ALL BUT LAST BYTE
REP 41/39 ;17C20
ANDI B,177 ;MASK TO LAST ASCII BYTE
WIT
ANDI B,376 ;[114] MASK TO LAST ASCII BYTE
REP 56/43 ;17C21
JRST SYMSR3 ;YES,SET PTRS AND RETURN
WIT
JRST SYMADV ;[106] YES,ALSO JUMP TO CHECK NEXT PAIR
REP 84/43 ;17C22
MOVS A,[XWD T1,SYMBLK] ;RESTORE ACS
BLT A,D ;FROM LAST SEARCH
JRST SYMS2A ;AND CONTINUE
WIT
MOVS D,[XWD T1,SYMBLK] ;[115] RESTORE ACS
BLT D,D ;[115] FROM LAST SEARCH
JRST SYMS2A ;AND CONTINUE
;[106] /SYMADV/ IS A ROUTINE TO ADVANCE TO THE NEXT SYMBOL PAIR.
;[106] THIS IS TO RECOGNIZE THE FACT THAT THE SYMBOL WE ARE CURRENTLY
;[106] LOOKING MAY BE PARTIALLY DEFINED IN TERMS OF THE SYMBOL PAIR THAT
;[106] IMMEDIATELY FOLLOWS IT (I.E SYMBOL TYPE 60)
SYMADV: PUSH P,A ;[106] SAVE AC A
PUSH P,B ;[106] SAVE AC B
PUSH P,C ;[106] SAVE AC C
ADDI C,2 ;[106] ADVANCE A PAIR
MOVE A,(C) ;[106] GET THE SYMBOL
LDB B,[POINT 4,0(C),3] ;[106] GET BITS INTO B
LSH B,2 ;[106] GET BITS INTO 30-33
CAIE B,60 ;[106] IS IT FOLLOWED BY PAIR OF 60
JRST SYMAD1 ;[106] NO, CONTINUE NORMALLY
ADDI C,1 ;[106] GET POINTER FOR DEPENDENT SYM
MOVE A,(C) ;[106] GET THE SYMBOL
LDB B,[POINT 4,0(C),3] ;[106] GET BITS INTO B
LSH B,2 ;[106] GET BITS INTO 30-33
CAIE B,50 ;[106] IS THE SYMBOL 50 TYPE
JRST SYMAD1 ;[106] NO,CONTINUE NORMALLY
TXO F,SYMDEP ;[106] YES, SET TO BE DEPENDING
SETZ R, ;[106] TO FIND A GLOBAL REQUEST
SUBI C,1 ;[106] RETURN WITH DEPENDENT SYMBOL
POP P,0(P) ;[106] THROW AWAY C
POP P,B ;[106] RESTORE B
POP P,A ;[106] RESTORE A
JRST SYMS2B ;[106] JUMP TO MATCH THIS PAIR
SYMAD1: POP P,C ;[106] RESTORE THE PREVIOUS POINTER
POP P,B ;[106] RESTORE B
POP P,A ;[106] RESTORE A
JRST SYMSR3 ;[106] GO BACK AND CONTINUE
;[106] RADIX50 TO SIXBIT CONVERSION ROUTINE
;[106] CONVERSION IS DONE THROUGH THE TESTS BECAUSE RADIX50 DOES
;[106] NOT CORRESPOND ONE TO ONE SIXBIT CHARACTER.
;[106] INPUT C, TO SET UP POINTER TO THE SYMBOL
;[106] OUTPUT AC R CONTAINS THE SYMBOL IN SIXBIT
COSIX: PUSHJ P,.PSH4T## ;[106] SAVE THE TEMPS T1-T4
MOVE T1,(C) ;[106] GET THE POINTER
TLZ T1,740000 ;[106] CLEAR THE CODE BITS
SETZ T4, ;[106]
COSIX1: IDIVI T1,50 ;[106] GET LAST RADIX50 CHARACTER
SETZ T3, ;[106]
CAILE T2,1 ;[106]
MOVEI T3,'0'-1(T2) ;[106] ADD SIXBIT "0" OFFSET
CAILE T2,12 ;[106] LETTER OR NUMBER?
MOVEI T3,'A'-13(T2) ;[106] ADD SIXBIT "A" OFFSET
CAILE T2,44 ;[106]
MOVEI T3,'.'-45(T2) ;[106] ADD SIXBIT "." OFFSET
CAILE T2,45 ;[106]
MOVEI T3,'%'-46(T2) ;[106] ADD SIXBIT "%" OFFSSET
JUMPE T3,CPOPJ ;[106] IGNORE BLANKS
LSHC T3,-6 ;[106] COLLECT IN T4 IN REVERSE ORDER
JUMPN T1,COSIX1 ;[106] ANY MORE?
MOVE R,T4 ;[106] SAVE IN REG R
PUSHJ P,.POP4T## ;[106] RESTORE T1-T4
POPJ P, ;[106]
REP 29/44 ;17C23
MOVE D,A ;DESIRED VALUE
SUB D,2(B) ;MINUS START ADDRESS
ADDI D,3(B) ;PLUS BASE GIVES CORE POSITION
MOVE C,D ;RETURN IT IN C
WIT
PUSH P,A ;[116] SAVE THE ADDRESS
SUB A,2(B) ;[116] MINUS START ADDRESS
MOVE C,A ;[116] GET THE OFFSET
IDIVI C,^D18 ;[116] GET THE EXTRA RELOCATION
ADD C,A ;[116] ADD THE OFFSET
ADDI C,3(B) ;[116] PLUS BASE GIVES CORE POSITION
POP P,A ;[116] RESTORE THE ORIGINAL ADDRESS
REP 66/48 ;17C24
SKIPE 2(A) ;[16]HISEG TYPE 3 BLOCK HAS 0
;[16]SO DONT INCREMENT IT
WIT
MOVS D,2(A) ;[122] GET THE RIGHT AND LEFT HALVES
CAME D,2(A) ;[122] DON'T UPDATE IF THE SAME
REP 81/57 ;17C25
CAIN B,100 ;IS IT A REL BLOCK TYPE 100 (.ASSIGN)?
JRST READ2D ;YES, PROCESS AS A LEGAL BLOCK TYPE
WIT
CAIN B,100 ;[132] IS IT A REL BLOCK TYPE 100 (.ASSIGN)?
JRST READ2D ;[132] YES, PROCESS AS A LEGAL BLOCK TYPE
INS 44/58 ;17C26
CAILE B,3777 ;[125] IS IT ASCIZ TEXT BLOCK?
JRST READ19 ;[125] YES,HANDLE IT DIFFERENTLY
INS 73/59 ;17C27
READ19: ANDI A,376 ;[125] GET RID OF ALL BUT LAST BYTE
JUMPE A,READ8 ;[125] IF STRING EXHAUSTED,GET NEXT BLOCK
PUSHJ P,GETIN ;[125] ELSE GET THE NEXT BYTE
JRST READ19 ;[125] AND REPEAT LOOP
DEL 19/60 ;17C28
EXP 1040 ;END BLOCK
REP 24/60 ;17C29
READ4
READ4
READ9
READ9
WIT
ERLFS ;[131] Not supported
ERLFS ;[131] Not supported
READ9
ERLFS ;[131] Not supported
DEL 31/60 ;17C30
READ15
REP 46/61 ;17C31
WRITE5: ANDI A,177 ;DISCARD ALL BUT LAST BYTE
WIT
WRITE5: ANDI A,376 ;[114] DISCARD ALL BUT LAST BYTE
REP 8/63 ;17C32
;BITS 0-17 BITS18-23 BITS 24-35 TYPE
WIT
;BITS 0-17 BITS18-23 BITS 24-35 TYPE
DEL 45/67 ;17C33
;**; [71] INSERT AT NOROOM + 13 1/2 CLRH 27-JUL-79
DEL 19/68 ;17C34
;**; [71] CHANGE AT INDEX4 + 11 CLRH 27-JUL-79
REP 24/73 ;17C35
;**;[25] MACLOD+5 ILG 9-JUL-76
PUSHJ P,BIN ;[25]INSURE BUFFER IS SET UP
MOVE T1,@TBUF+1 ;[25]GET CURRENT WORD
TRNE T1,1 ;[25]CHECK FOR LSN BIT
AOS MACPTR ;[25]GOT LSN. SKIP THE WORD
SKIPA T1,[POINT 7,MACBUF] ;[25]RESTORE T1,SKIP THE LOAD CHAR
WIT
PUSHJ P,BIN ;[25]INSURE BUFFER IS SET UP
MOVE T1,@TBUF+1 ;[25]GET CURRENT WORD
TRNN T1,1 ;[112] CHECK FOR LSN BIT
JRST MACLD0 ;[112] NOT LINE SEQUENCE
MOVEI T1,5 ;[112] PREPARE TO GET 5 CHARACTERS
MACLDA: IDPB CC,MACPTR ;[112] STORE AS PART OF SEQ NO.
PUSHJ P,BIN ;[112] EAT A CHARACTER
SOJG T1,MACLDA ;[112]
CAIE CC,11 ;[112] IS IT A TAB?
JRST MACLD0 ;[112] NO, USE IT
IDPB CC,MACPTR ;[112] YES, STORE AS PART OF SEQ NO.
PUSHJ P,BIN ;[112] GET ANOTHER CHARACTER
MACLD0: SKIPA T1,MACPTR ;[112] RESTORE T1,SKIP THE LOAD CHAR
REP 15/92 ;17C36
PUSHJ P,EVALEX ;EVALUATE ADDRESS PART
WIT
CAIN CC,"(" ;[105] IF "(" AVOID A PASS OF EVALEX
JRST EVADR1 ;[105] JUMP FOR INDEX
PUSHJ P,EVALEX ;EVALUATE ADDRESS PART
;**; [105] "@(...)" RETURNS VALUE IN LH OF AC A SO
;**; [105] ACCEPT BY VALIDITY CHECKING
TLNN D,C.LHNZ ;INSURE IF LH RETURNED WITH VALID DATA
JRST EVADR1 ;[105] JUMP FOR REST OF THE INDEX PART
REP 20/92 ;17C37
IORM A,0(P) ;UPDATE PARTIAL RESULT
WIT
EVADR1: IORM A,0(P) ;[105] UPDATE PARTIAL RESULT
INS 59/99 ;17C38
TXZE F,SYMDEP ;[106] IS IT DEPENDENT?
PUSHJ P,COSIX ;[106] GET THE SYM FROM PAIR
DEL 7/120 ;17C39
;**;[101] DELETE TWO LINES @ MOD3 6L + MS 16-SEPT-80
DEL 43/120 ;17C40
;**;[101] DELETE TWO LINES @ MOD3 6L + MS 16-SEPT-80
REP 48/120 ;17C41
MOVE N,CURMOD ;BLOW THEM AWAY
WIT
TXZN F,IGNEDT ;[110] IGNORE EDIT?
JRST MOD5A ;[110] NO GIVE FATAL ERROR
MOVE N,CURMOD ;[110] GET MODULE NAME FOR TYPOUT
$WARN (MAH,Module,N$SIX,$MORE) ;[110]
MOVEI T1,[ASCIZ/ already has an edit /] ;[110]
PUSHJ P,.TSTRG## ;[110] FINISH THE MESSAGE
MOVE T1,CUREDT ;[110] IDENTIFY EDIT
PUSHJ P,.TSIXN## ;[110]
PUSHJ P,.TCRLF## ;[110] CLOSE THE MESSAGE
TXZ F,FOTTY ;[110]
JRST MOD7 ;[110] GO TO CONTINUE
MOD5A: MOVE N,CURMOD ;[110] BLOW THEM AWAY
INS 61/120 ;17C42
;**;[110] READ REST OF THE PATCH FILE UNTIL .ENDE IS FOUND
MOD7: PUSHJ P, BIN ;[110] GET A CHARACTER FROM THE BUFFER
CAIE CC,"." ;[110] IS IT DOT?
JRST MOD7 ;[110] NO, TRY MORE
MOVEI T3,4 ;[110] SET UP THE COUNT
MOVEI T4,[ASCIZ /ENDE/] ;[110] STORE FOR LATER
MOVE T1,[POINT 7,A] ;[110] SET THE BYTE POINTER
SETZ A, ;[110] INITIALIZE
MOD9: SOJL T3,MOD7 ;[110] IS IT LESS THAN 0?
PUSHJ P,BIN ;[110]
IDPB CC,T1 ;[110] ACCUMALTE IN A
CAME A,(T4) ;[110] IS IT = ENDE
JRST MOD9 ;[110] NO, GET SOME MORE CHARACTER
PUSHJ P,.POP4T## ;[110] RESTORE ACS
MOVE T1,TRCPTR ;[110] GET CURRENT TRACE POINTER
MOVEM T1,TRCVAP ;[110] RESET TRACE BLOCK
SETZM TB$HED(T1) ;[110] RESET STATIC AREA
SETZM TB$EDT(T1) ;[110] ZERO CURRENT EDIT NAME
SETZM TB$STA(T1) ;[110]
SETZM TB$MAK(T1) ;[110] ZERO THE CREATION DATE/INITIALS
SETZM TB$INS(T1) ;[110]
SETZM TB$LEN(T1) ;[110] ZERO THE VAR. AREA LENGTH
TXZN F,IAE ;[110] ARE WE IN AN EDIT
JRST E$$EPM ;[110] NO, ERROR
MOVEI CC,12 ;[110] END OF LINE
JRST MECELL ;[110] END OF CELL
INS 81/121 ;17C43
;**;[110] /FP.GO/ - PSEUDO-OP TO IGNORE THE EDIT IF IT ALREADY EXISTS
;**;[110] AND TO CONTINUE ON THE NEXT EDIT
FP.GO: TXNN F,IAE ;[110] IN AN EDIT
JRST E$$EPM ;[110] NO,COMPLAIN
BYPASS ;[110]
TXO F,IGNEDT ;[110] SET FLAG TO IGNORE THE EDIT
JRST MECELL ;[110] END OF CELL
DEL 10/123 ;17C44
;**; [101] INSERT @ FP.DAT + 5L MS 15-SEPT-80
;**; [101] CHANGE @ FP.DAT +6L
;**; [101] THE EDIT NUMBER WILL INDICATE WHICH EDIT IS WRONG IN THE FIX FILE.
DEL 25/125 ;17C45
;**; [102] INSERT @ FP.INS + 1L MS 16-SEPT-80
;**; [102] GIVE THE ERROR IF THE INSERT PSEUDO-OP
;**; [102] IS USED ON THE MODULE WITH NO PROGRAM CODE
REP 41/125 ;17C46
TLNE B,-1 ;AND LH NOT RELOCATED
$KILL(IAI,Illegal address in .INSERT,N$EDIT)
;**; [103] INSERT @ FP.INS + 18L MS 16-SEPT-80
WIT
CAIE B,1 ;[120] AND SIMPLE RELOCATION
$KILL(IAI,Illegal address in .INSERT,N$EDIT)
DEL 49/127 ;17C47
;**; [75] INSERT @ REM2 - 1L MFB 9-JUN-80
DEL 83/127 ;17C48
;**; [75] CHANGE @ X$$RIE MFB 9-JUN-80
DEL 93/127 ;17C49
;**; [75] INSERT @ REM9 + 4L MFB 9-JUN-80
DEL 15/129 ;17C50
;**; [102] INSERT @ FP.ALT + 1L MS 16-SEPT-80
;**; [102] GIVE THE ERROR IF THE ALTER PSEUDO-OP
;**; [102] IS USED ON THE MODULE WITH NO PROGRAM CODE
REP 30/129 ;17C51
TLNE B,-1 ;IE LH AND LH(RELOC) ARE 0
WIT
CAIE B,1 ;[120] MUST BE SIMPLE RELOCATABLE
INS 61/140 ;17C52
;[121] MACROS TO HANDLE KL10 OP-CODES
IFE KL10,< ;[121] NO KL INSTRUCTIONS?
DEFINE XL (SB,CD) <> ;[121] NUL X MACRO
DEFINE YL,(SB,CD) <>> ;[121] NUL Y MACRO
IFN KL10,< ;[121] WANT KL INSTRUCTIONS?
SYN X,XL ;[121] USUAL X MACRO
SYN Y,YL> ;[121] USUAL Y MACRO
INS 67/140 ;17C53
XL ADJBP , 133 ;[113]
XL ADJSP , 105 ;[113]
REP 139/140 ;17C54
WIT
XL CMPSE , 002 ;[113]
XL CMPSG , 007 ;[113]
XL CMPSGE, 005 ;[113]
XL CMPSL , 001 ;[113]
XL CMPSLE, 003 ;[113]
XL CMPSN , 006 ;[113]
REP 145/140 ;17C55
Y DATAI , DATAI
Y DATAO , DATAO
WIT
XL CVTBDO, 012 ;[113]
XL CVTBDT, 013 ;[113]
XL CVTDBO, 010 ;[113]
XL CVTDBT, 011 ;[113]
XL DADD , 114 ;[113]
Y DATAI , DATAI
Y DATAO , DATAO
XL DDIV , 117 ;[113]
REP 152/140 ;17C56
WIT
XL DGFLTR, 027 ;[121]
REP 162/140 ;17C57
X DPB , 137
WIT
XL DMUL , 116 ;[113]
X DPB , 137
XL DSUB , 115 ;[113]
XL EDIT , 004 ;[113]
REP 172/140 ;17C58
WIT
XL EXTEND, 123 ;[113]
REP 217/140 ;17C59
X GETSTS, 062
WIT
XL GDBLE , 022 ;[121]
X GETSTS, 062
XL GDFIX , 023 ;[123]
XL GDFIXR, 025 ;[123]
XL GFAD , 102 ;[121]
XL GFDV , 107 ;[121]
XL GFIX , 024 ;[121]
XL GFIXR , 026 ;[121]
XL GFMP , 106 ;[121]
XL GFSB , 103 ;[121]
XL GFSC , 031 ;[121]
XL GSNGL , 021 ;[121]
REP 362/140 ;17C60
X MOVSM , 206
X MOVSS , 207
WIT
XL MOVSLJ, 016 ;[113]
X MOVSM , 206
XL MOVSO , 014 ;[113]
XL MOVSRJ, 017 ;[113]
X MOVSS , 207
XL MOVST , 015 ;[113]
REP 405/140 ;17C61
WIT
XL RDCLK , 052 ;[113]
REP 556/140 ;17C62
X XCT , 256
WIT
XL XBLT , 020 ;[113]
X XCT , 256
XL XHLLI , 501 ;[121]
YL XJEN , XJEN ;[121]
YL XJRSTF, XJRSTF ;[121]
XL XMOVEI, 415 ;[121]
INS 561/140 ;17C63
YL XPCW , XPCW ;[121]
YL XSFM , XSFM ;[121]
INS 67/141 ;17C64
X (.GO,FP.GO,$INP) ;[110]
REP 13/153 ;17C65
DONERR: PUSHJ P,.TCRLF## ;
WIT
DONERR: PUSHJ P,.TCRLF## ;
INS 22/154 ;17C66
ERLFS: MOVE N,B ;[131] Illegal block type
$KILL(LFS,<Long FORTRAN symbol found, block type>,N$OCT,) ;[131]
DEL 39/160 ;17C67
;**;[31] SCNEND-1 ILG 20-JUL-76
SUM 75512