Trailing-Edge
-
PDP-10 Archives
-
BB-D480C-SB_1981
-
qtab1.mac
There are 12 other files named qtab1.mac in the archive. Click here to see a list.
TITLE QTAB1 THE BLISS I/O PACKAGE PRODUCTION TABLES
SUBTTL THE BLISS I/O PACKAGE PRODUCTION TABLES
;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
; OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
;COPYRIGHT (C) 1976,1981 BY DIGITAL EQUIPMENT CORPORATION
; Author: *
INTERN QTAB1V
QTAB1V= BYTE (3)0(9)6(6)0(18)^D0 ; Version Date: 11-Jun-81
SUBTTL Revision History
Comment \
***** Begin Revision History *****
***** End Revision History *****
\
;****************************************************************
;; THE FOLLOWING MACRO-10 CODE SHOULD BE MODIFIED ONLY
; HERE AND COPIED TO A MACRO-10 FILE.
RADIX 10 ; WE USE DECIMAL NUMBERS IN THE REAL WORLD
; HERE WE DEFINE THE METAVARIABLES:
;
.SG.=00 ; SIGMA---MATCHES ANYTHING
.LT.=01 ; LETTER---MATCHES A-Z
.DG.=02 ; DIGIT---MATCHES 0-9
.BI.=03 ; BINARY---MATCHES 0 OR 1
.AN.=04 ; ALPHANUMERIC---MATCHES A-Z OR 0-9;
.CR.=05 ; MATCHES CR/LF
; HERE WE DESCRIBE THE SNA FLAG BITS
S=1
A=2
SA=3
AS=3
N=4
SN=5
NS=5
NA=6
AN=6
SNA=7
B=8 ; SUBROUTINE CALL BIT
BS=9
BA=10
BSA=11
BN=12
BSN=13
BNA=14
BSNA=15
X=0
; AN@ HERE WE MAKE THE NAME AVAILABLE TO BLISS
ENTRY QMACH
; THE TRACE SWITCH IS USED TO ALLOW TRACING OF THE PRODUCTIONS
; ITS VALUES ARE:
; 0 -> NO TRACING
; 1 -> TRACE ALL PRODUCTIONS
; 2 -> TRACE ONLY MATCHING PRODUCTIONS
; 3 -> ILLEGAL
QTRSW:: 0
QFIX:: 0
;
;
; CONDITIONAL ASSEMBLY SWITCH: QTRC
; SET = 1 TO INCLUDE TRACE TABLES
; SET = 0 TO EXCLUDE TRACE TABLES
QTRC==0
IFNDEF QTRC,<QTRC==1>
;
; **************T H E P R O D U C T I O N T A B L E***************
;
QMACH:
EXP 01, .SG., QSETUP , SNA, 00
EXP 0, "?", QNULL , SN, 150
; STATE 19: WE ARE ABOUT TO START OR HAVE SEEN A , OR _
; THIS CODE ALLOWS US TO BYPASS EMPTY SPECIFICATIONS
EXP 19, ",", QINCCHN , S, 19
EXP 0, "_", QINCCHN , S, 19
EXP 0, " ", QNULL , S, 19
EXP 0, .CR., QHALT , X, 00
; STATE 20: WE ARE ABOUT TO START PARSING AN ELEMENT
EXP 20, "*", QPACK , S, 32
; STATE 21: WE HAVE OTHER THAN "*" NAME OF FILE
EXP 21, .LT., QPACK , S, 40
EXP 0, " ", QNULL , S, 21
EXP 30, .DG., QSETDIG , X, 31
EXP 0, .LT., QPACK , SN, 40
EXP 0, "=", QSETCHN , SNA, 50
EXP 0, " ", QNULL , S, 30
; IF WE GET HERE WE MAY HAVE A NUMERIC FILE OR DEVICE NAME
EXP 0, .SG., QINCCHN , X, 51
; STATE 31: WE PACK NUMBERS AS ALPAH AS WELL AS NUMERIC
EXP 31, .SG., QPACK , S, 30
; STATE 32: WE HAVE HIT A "*" NAME WITHOUT A CHANNEL SPECIFIER
EXP 32, .SG., QINCCHN , X, 62
; STATE 40: WE DO NOT HAVE A CHANNEL SPECIFIER
EXP 40, .SG., QINCCHN , X, 00
; STATE 50: WE HAVE JUST FINISHED A CHANNEL SPECIFIER
EXP 50, .AN., QPACK , S, 50
EXP 0, " ", QNULL , S, 50
; STATE 51: WE COME HERE IF POSSIBLE NUMERIC NAME
EXP 51, ":", QDEVICE , SA, 60
EXP 0, ".", QFILE , SA, 70
EXP 0, "[", QFILE , SNA, 80
EXP 0, ",", QFILE , X, 90
EXP 0, "/", QFILE , S, 130
EXP 0, "(", QFILE , S, 140
EXP 0, "_", QFILE , X, 90
EXP 0, "<", QFILE , SN, 110
EXP 0, .CR., QFILE , X, 100
EXP 0, .SG., QERROR , 02, 00
; STATE 60: WE HAVE JUST FINSIHED A DEVICE SPECIFIER
EXP 60, "*", QPACK , S, 62
; STATE 61: WE HAVE OTHER THAN A "*" FILE NAME
EXP 61, .AN., QPACK , S, 61
EXP 0, " ", QNULL , S, 61
; STATE 62: WE HAVE COMPLETED A FILE NAME
EXP 62, ".", QFILE , SA, 70
EXP 0, "[", QFILE , SNA, 80
EXP 0, ",", QFILE , X, 90
EXP 0, "_", QFILE , X, 90
EXP 0, "/", QFILE , S, 130
EXP 0, "(", QFILE , S, 140
EXP 0, "<", QFILE , SN, 110
EXP 0, .CR., QFILE , X, 100
EXP 0, .SG., QERROR , 03, 0
; STATE 70: WE HAVE JUST FINISHED A FILE SPECIFIER WITH A "."
EXP 70, "*", QPACK , S, 72
; STATE 71: WE HAVE OTHER THAN A "*" EXTENSION
EXP 71, .AN., QPACK , S, 71
EXP 0, " ", QNULL , S, 71
; STATE 72: WE HAVE ACCUMULATED AN EXTENSION NAME
EXP 72, "[", QEXT , SNA, 80
EXP 0, ",", QEXT , NA, 90
EXP 0, "_", QEXT , NA, 90
EXP 0, "/", QEXT , SN, 130
EXP 0, "(", QEXT , S, 140
EXP 0, "<", QEXT , SN, 110
EXP 0, .CR., QEXT , X, 100
EXP 0, .SG., QERROR , 04, 00
; STATE 80: WE HAVE DETECTED A [ IN A PPN SPECIFIER
EXP 80, "]", QPPNL , S, 83
EXP 0, .LT., QPACK , S, 85
; STATE 84: WE HAVE A NON-NULL DEC PPN
EXP 84, .DG., QSETOCT , S, 84
EXP 0, " ", QNULL , S, 84
EXP 0, ",", QPROJ , SN, 81
EXP 0, "]", QPROJ , N, 82
EXP 0, .SG., QERROR , 05, 00
; STATE 85: WE HAVE A CMU PROJECT NUMBER
EXP 85, .DG., QPACK , S, 101
EXP 0, " ", QNULL , S, 85
EXP 0, .SG., QERROR , 17, 00
; STATE 101: WE HAVE LETTER + DIGIT OF ACCT NO
EXP 101, .DG., QPACK , S, 102
EXP 0, " ", QNULL , S, 101
EXP 0, .SG., QERROR , 17, 00
; STATE 102: WE HAVE LETTER + 2 DIGITS OF ACCT NO
EXP 102, .DG., QPACK , S, 103
EXP 0, " ", QNULL , S, 102
EXP 0, .SG., QERROR , 17, 00
; STATE 103: WE HAVE COMPLETE CMU ACCT NO.
EXP 103, ",", QCMUPJ , SNA, 81
EXP 0, "]", QCMUPJ , NA, 82
EXP 0, .LT., QCMUPJ , NA, 96
EXP 0, .SG., QERROR , 17, 00
; STATE 81: WE HAVE SCANNED THE , OF A PPN PAIR
EXP 81, .LT., QPACK , S, 86
; STATE 88: WE HAVE EITHER DEC OR NULL PROG NO.
EXP 88, .DG., QSETOCT , S, 88
EXP 0, " ", QNULL , S, 88
EXP 0, "]", QPROG , S, 83
EXP 0, .SG., QERROR , 06, 00
; STATE 82: WE HAVE SCANNED PROJ, BUT NO PROG GIVEN
EXP 82, .SG., QPROG , S, 00
; STATE 83: WE HAVE SCANNED ] OF PPN PAIR
EXP 83, " ", QNULL , S, 83
EXP 0, "<", QNULL , SN, 110
EXP 0, ",", QSET , X, 93
EXP 0, "_", QSET , X, 93
EXP 0, "/", QNULL , S, 130
EXP 0, "(", QNULL , S, 140
EXP 0, .CR., QNULL , X, 100
EXP 0, .SG., QERROR , 07, 00
; STATE 96: WE HAVE CMU USERID WITHOUT COMMAS
EXP 96, .SG., QPACK , S, 86
; STATE 86: WE HAVE CMU MAN NUMBER
EXP 86, .LT., QPACK , S, 87
EXP 0, " ", QNULL , S, 86
EXP 0, .SG., QERROR , 18, 00
; STATE 87: WE HAVE LETTERS OF MAN NUMBER
EXP 87, .DG., QPACK , S, 89
EXP 0, " ", QNULL , S, 87
EXP 0, .SG., QERROR , 18, 00
; STATE 89: WE HAVE FIRST 3 CHARS OF MAN NO.
EXP 89, .AN., QPACK , S, 95
EXP 0, " ", QNULL , S, 89
EXP 0, .SG., QERROR , 18, 00
; STATE 95: WE HAVE 4 CHARS OF MAN NO.
EXP 95, " ", QNULL , S, 95
EXP 0, "]", QCMUPG , S, 83
EXP 0, .SG., QERROR , 18, 00
; STATE 90: NO PPN GIVEN AND , OR _ ENCOUNTERED
EXP 90, .SG., QSET , X, 00
; STATE 93: WE HAVE TERMINATED A CHANNEL LIST WITH A "," OR A "_"
EXP 93, .SG., QRESET , SNA, 19
; STATE 100: WE HAVE ENDED A CHANNEL LIST WITH A CR, LF
EXP 100, .SG., QSET , X, 00
EXP 0, .SG., QHALT , X, 00
; STATE 110: WE HAVE JUST SCANNED A "<" OF A STATUS SPEC
EXP 110, ",", QNULL , S, 111
; STATE 112: WE HAVE A NON-NULL PROTECTION KEY
EXP 112, .DG., QSETOCT , S, 112
EXP 0, " ", QNULL , S, 112
EXP 0, ">", QSETPROT , S, 120
EXP 0, ",", QSETPROT , S, 111
EXP 0, .SG., QERROR , 22, 00
; STATE 111: WE HAVE HIT THE , IN A STATUS SPEC
EXP 111, .BI., QSETBIN , S, 111
EXP 0, " ", QNULL , S, 111
EXP 0, ">", QSETSTAT , S, 120
EXP 0, .SG., QERROR , 08, 00
; STATE 120: WE HAVE JUST SCANNED A ">" OF A STATUS SPEC
EXP 120, ",", QSET , X, 93
EXP 0, "_", QSET , X, 93
EXP 0, "/", QNULL , S, 130
EXP 0, "(", QNULL , S, 140
EXP 0, .CR., QNULL , X, 100
EXP 0, " ", QNULL , S, 120
EXP 0, .SG., QERROR , 09, 0
; STATE 130: WE HAVE JUST SCANNED "/" OF A SWITCH SPEC
EXP 130, .AN., QSWITCH , S, 131
EXP 0, " ", QNULL , S, 130
EXP 0, "-", QNULL , S, 133
EXP 0, .SG., QERROR , 13, 00
; STATE 133: WE HAVE JUST PROCESSED "-" OF SWITCH SPEC
EXP 133, .AN., QNOTSW , S, 131
EXP 0, " ", QNULL , S, 133
EXP 0, .SG., QERROR , 23, 0
; STATE 131: WE HAVE JUST PROCESSED A SWITCH NAME
EXP 131, "/", QNULL , S, 130
EXP 0, " ", QNULL , S, 131
EXP 132, ",", QSET , X, 93
EXP 0, "_", QSET , X, 93
EXP 0, .CR., QNULL , X, 100
EXP 0, .SG., QERROR , 15, 00
; STATE 140: WE HAVE JUST PROCESSED "(" OF SWITCH DECL
EXP 140, .AN., QSWITCH , S, 140
EXP 0, " ", QNULL , S, 140
EXP 0, "-", QNULL , S, 141
EXP 0, ")", QNULL , S, 132
EXP 0, .SG., QERROR , 13, 00
; STATE 141: WE HAVE JUST SCANNED THE "-" IN A () SWITCH SPEC
EXP 141, .AN., QNOTSW , S, 140
EXP 0, " ", QNULL , S, 141
EXP 0, .SG., QERROR , 23, 00
; STATE 150: WE HAVE DETECTED A "?" IN THE INPUT
EXP 150, .DG., QSETDIG , S, 150
EXP 0, " ", QNULL , S, 150
EXP 0, .CR., QEXPLAIN , X, 00
EXP 0, .SG., QERROR , 20, 00
; STATE 999: END OF TABLE
EXP 999, .SG., QERROR , 99, 0
;*******END OF THE TABLE********
; THIS TABLE IS USED BY THE TRACE ROUTINES TO OUTPUT TRACE INFO
; ITS FORMAT IS:
; NEMBER OF ENTRIES
;QTRACET: ADDRESS
; ASCIZ /NAME/
; ...
ENTRY QTRACET
<ENT-.>/3 ;*****THE NUMBER OF ENTR[ES *****
DEFINE X(A)<
EXTERNAL A
IFN QTRC,<
A
ASCIZ /A/ >>
QTRACET:
X QCMUPG
X QCMUPJ
X QDEVICE
X QERROR
X QEXPLAIN
X QEXT
X QFILE
X QHALT
X QINCCHN
X QNOTSW
X QNULL
X QPACK
X QPPNL
X QPROG
X QPROJ
X QRESET
X QSET
X QSETUP
X QSETPROT
X QSETSTAT
X QSETDIG
X QSETBIN
X QSETCHN
X QSETOCT
X QSWITCH
ENT==.
ENTRY QMSG
<NMSG-.>-2
QMSG: MSG0
MSG1
MSG2
MSG3
MSG4
MSG5
MSG6
MSG7
MSG8
MSG9
MSG10
MSG11
MSG12
MSG13
MSG14
MSG15
MSG16
MSG17
MSG18
MSG19
MSG20
MSG21
MSG22
MSG23
NMSG==.
MSG0: ASCIZ /MESSAGE NOT IN TABLE
/
MSG1: ASCIZ /THIS MESSAGE DOES NOT EXIST. IGNORE IT
/
MSG2: ASCIZ /ILLEGAL CHARACTER IN CHANNEL, DEVICE, OR FILE PART
/
MSG3: ASCIZ /ILLEGAL CHARACTER IN FILE NAME
/
MSG4: ASCIZ /ILLEGAL CHARACTER IN EXTENSION SPECIFIER
/
MSG5: ASCIZ /ILLEGAL CHARACTER IN PROJECT SPECIFIER
/
MSG6: ASCIZ /ILLEGAL CHARACTER IN PROGRAMMER SPECIFIER
/
MSG7: ASCIZ /ILLEGAL CHARACTER FOLLOWING PPN SPECIFIER
/
MSG8: ASCIZ /ILLEGAL CHARACTER IN STATUS SPECIFIER
/
MSG9: ASCIZ /ILLEGAL CHARACTER FOLLOWING STATUS SPECIFIER
/
MSG10: ASCIZ /MORE THAN 6 CHARACTERS IN DEVICE, FILE, OR EXTENSION SPECIFIER
/
MSG11: ASCIZ /NUMBER GREATER THAN 2**18-1
/
MSG12: ASCIZ /EXPLICIT OR IMPLICIT CHANNEL NO. >16 OR <0
/
MSG13: ASCIZ /ILLEGAL CHARACTER IN SWITCH SPECIFIER
/
MSG14: ASCIZ /EXTENSION NAME > 3 CHARACTERS
/
MSG15: ASCIZ /ILLEGAL CHARACTER FOLLOWING SWITCH SPECIFICATION
/
MSG16: ASCIZ /ILLEGAL OCTAL DIGIT IN DEC PPN SPECIFIER
/
MSG17: ASCIZ /ILLEGAL CMU ACCOUNT NUMBER SYNTAX
/
MSG18: ASCIZ /ILLEGAL CMU MAN NUMBER SYNTAX
/
MSG19: ASCIZ /[] USED BUT NO PPN PREVIOUSLY GIVEN
/
MSG20: ASCIZ /ILLEGAL CHARACTER FOLLOWING "?"
/
MSG21: ASCIZ /ILLEGAL PROTECTION CODE
/
MSG22: ASCIZ /ILLEGAL CHARACTER IN PROTECTION CODE
/
MSG23: ASCIZ /ILLEGAL CHARACTER FOLLOWING "-" IN SWITCH
/
END