Google
 

Trailing-Edge - PDP-10 Archives - bb-m403a-bk - ddt11.lst
There are no other files named ddt11.lst in the archive.
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 1
DDT11	MAC	18-May-81 17:27		DMCC et al

     1						TITLE	DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT
     2						SUBTTL	DMCC et al
     3
     4					;THIS VERSION OF DDT11 WILL
     5					; RUN ON A KS10 STANDALONE AND CONTROL ALL I/O
     6					; RUN UNDER TOPS-10, TALKING TO DN8x, DN6x, DC7x, DN9x, and RSX20F
     7					;	AND READING DUMPS FROM RSX20F, DTELDR, NETLDR, AND BOOT11
     8					;	READING THE OUTPUT OF MACDLX, PAL10, AND RSXFMT (RSX20F.MAP)
     9					; RUN UNDER TOPS-20, TALKING TO RSX20F
    10					;	AND READING DUMPS FROM RSX20F, DN6x
    11					;	READING THE OUTPUT FROM MACDLX, AND RSXFMT (RSX20F.MAP)
    12				
    13						SEARCH	JOBDAT,MACTEN,UUOSYM
    14
    15						SALL			;GET NICE LISTINGS FOR A CHANGE
    16						.HWFRMT			;AND SKIP THE FANCY BITS
    17						.DIRECTIVE LITLST,FLBLST
    18
    19					;DDT11 VERSION NUMBER
    20
    21			000000		VWHO==	0
    22			000005		VDDT11==5
    23			000000		VMINOR==0
    24			000053		VEDIT==	53
    25
    26		000500	000053		%%DDT11==:<BYTE	(3)VWHO(9)VDDT11(6)VMINOR(18)VEDIT>
    27
    28	000137					LOC	.JBVER
    29	000137	000500	000053			%%DDT11
    30	000000'					RELOC	0
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 2
DDT11	MAC	18-May-81 17:27		DMCC et al

    31			000140		EXMAX==	140		;MAXIMUM NUMBER OF BYTES TO EXAMINE AT ONCE
    32
    33					IFNDEF	MASKSZ,<MASKSZ==10>	;NUMBER OF WORDS IN MASK
    34					IFNDEF	CMDSIZ,<CMDSIZ==300>	;LARGEST COMMAND
    35					IFNDEF	NUMBUF,<NUMBUF==1>	;NUMBER OF BUFFERS FOR READING DUMPS, ETC.
    36									; SETTING LARGER THAN 1 MAY CAUSE %GOTO TO FAIL
    37
    38						SEARCH	MONSYM,MACSYM
    39
    40			001000		IO.RLB==1000
    41			000400		IO.WLB==400
    42
    43					;TTYBIT FLAGS
    44		200000	000000		TF.RUB==1B1			;DO RUBOUTS WITH BACKSPACE-SPACE-BACKSPACE
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 3
DDT11	MAC	18-May-81 17:27		DMCC et al

    45					;REGISTER USAGE
    46
    47			000001		AC1=	1
    48			000002		AC2=	AC1+1
    49			000003		AC3=	AC2+1
    50			000004		AC4=	AC3+1
    51			000005		SYM=	5			;POINTER TO SYMBOL BLOCK
    52			000006		STATE=	6
    53			000007		DOT=	7			;CURRENT LOCATION
    54									; IF LH IS NONZERO IS A REGISTER ADR
    55			000010		FLG=	10
    56			000011		T1=	11
    57			000012		T2=	T1+1
    58			000013		T3=	T2+1
    59			000014		T4=	T3+1
    60			000015		T5=	T4+1
    61			000017		P=	17
    62						.XCREF	AC1,AC2,AC3,AC4,SYM,STATE,DOT,FLG,T1,T2,T3,T4,T5,P
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 4
DDT11	MAC	18-May-81 17:27		DMCC et al

    63			000001		F.FLIP==1B35			;LOCAL FLAG
    64									; USED BY $V TO FLAG 1ST PASS
    65									; USED BY $N TO DISTINGUISH FROM $W
    66									; USED BY OPNFIL TO DEMAND PROMPT
    67									; USED BY $D TO REMEMBER DOING COMMAND LOGGING
    68									; USED WHEN READING BINARY FILE
    69			000002		F.FLOP==1B34			;LOCAL FLAG
    70									; SET IF USER SAYES /BINARY IN INITIAL COMMAND
    71									; SET IF READING A PACKED FILE
    72			000004		F..FOO==1B33			;LOCAL FLAG WHEN SET MEANS
    73									; DUMP IS DISASSEMBLY
    74									; READING A DTELDR DUMP
    75			000010		F.LOPN==1B32			;CURRENT LOCATION IS OPEN
    76			000020		F.MOPN==1B31			;MASK OPEN
    77			000040		F.MASK==1B30			;ESCAPE M TYPED
    78			000100		F.TEXT==1B29			;ASSEMBLING TEXT
    79			000200		F.IOCT==1B28			;ASSEMBLING AN OCTAL NUMBER
    80			000400		F.IDEC==1B27			;ASSEMBLING A DECIMAL NUMBER
    81			001000		F.IHEX==1B26			;ASSEMBLING A HEX NUMBER
    82			002000		F.SYMB==1B25			;ASSEMBLING A SYMBOL
    83			004000		F.CACH==1B24			;USE CACHE IF POSSIBLE
    84			010000		F.WRIT==1B23			;WE ARE OPENING FILE FOR OUTPUT
    85			020000		F.APND==1B22			;APPEND TO TO FILE IF ALREADY EXISTS
    86			040000		F.LOCK==1B21			;PROGRAM IS LOCKED
    87			100000		F.WENB==1B20			;PATCHING WAS ENABLED WITH /PATCH
    88			200000		F..ESC==1B19			;TYPED ESCAPE TWICE
    89			400000		F.PACK==1B18			;BINARY FILE IS PACKED
    90		000001	000000		F.LBKT==1B17			;LOCATION OPENED WITH A LEFT BRACKET
    91		000002	000000		F.HASH==1B16			;OPCODE PRECEEDED BY A # SIGN
    92		000004	000000		F.PERC==1B15			;OPCODE PRECEEDED BY A % SIGN
    93		000010	000000		F.LPAR==1B14			;OPCODE PRECEEDED BY A ( SIGN
    94		000020	000000		F.SYML==1B13			;SYM HAS BEEN LOADED . SET BY GETEXP
    95		000040	000000		F.GEXP==1B12			;GOT AN EXPRESSION . SET BY GETEXP
    96		000100	000000		F.TOPN==1B11			;DID OPEN ON TTY(TO CONTROL ECHO)
    97		000200	000000		F.SVIO==1B10			;HIT A STACK VIOLATION
    98		000400	000000		F.SREG==1B9			;SYMBOLIC TYPEIN WAS A REGISTER NAME
    99		001000	000000		F..SIM==1B8			;AM RUNNING SIMULATION
   100		002000	000000		F.EXEC==1B7			;RUNNING IN EXEC MODE
   101		004000	000000		F.RUNF==1B6			;RUN FLOP FOR SIMULATION
   102		010000	000000		F.CERR==1B5			;HIT AN ERROR IN COMMAND FILE
   103		020000	000000		F.FELE==1B4			;HAVE DONE FIRST ELEMENT OF EXPRESSION
   104		040000	000000		F.HALT==1B3			;JUST DID A HALT
   105
   106
   107					;FLAGS FOR TYPE OF OPERATING SYSTEM
   108
   109		400000	000000		T.OTHER==1B0			;THIS IS OTHER
   110
   111		200000	000000		T.TOP10==1B1			;THIS IS TOPS-10
   112		100000	000000		T.ITS==1B2			;THIS IS ITS
   113		040000	000000		T.TENEX==1B3			;THIS IS TENEX
   114		020000	000000		T.TOP20==1B4			;THIS IS TOPS-20
   115		010000	000000		T.EXEC==1B5			;THIS IS EXEC MODE
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 5
DDT11	MAC	18-May-81 17:27		DMCC et al

   116					;SOME MACROS ETC
   117
   118		260740	000000			OPDEF	CALL	[PUSHJ P,]
   119		300000	000000			OPDEF	NOP	[CAI]
   120		263740	000000			OPDEF	RET	[POPJ P,]
   121
   122						DEFINE	TYPE (X) <
   123						MOVEI	T1,[ASCIZ \X\]
   124						CALL	TYPSTR
   125					>;DEFINE TYPE
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 6
DDT11	MAC	18-May-81 17:27		DMCC et al

   126					;DEFINE THE TYPES OF EXAMINES WE CAN DO
   127
   128			000000		EX.MEM==	0		;MEMORY
   129			000001		EX.PORT==	1		;CALL11 UUO
   130			000002		EX.NODE==	2		;NODE UUO
   131			000003		EX.FE0==	3		;RSX20F EXAMINE
   132			000004		EX.D61==	4		;DN60 ON TOPS-10
   133			000005		EX.D62==	5		;DN60 ON TOPS-20
   134			000006		EX.MCB==	6		;DN20 DECNET 20 EXAMINE
   135			000007		EX.FE1==	7		;RSX20F/TOPS-10
   136			000040			FE.MAX==40		;Max data bytes 20F allows for ME msg
   137
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 7
DDT11	MAC	18-May-81 17:27		DMCC et al

   138
   139		700000	000000			OPDEF	APRID	[700000,,0] ;READ MICROCODE VERSION AND CPU SERIAL NU
   140		700200	000000			OPDEF	WRAPR	[700200,,0] ;WRITE APR
   141								;1B19	;IO RESET
   142								;1B20	;ENABLE SELECTED CONDITIONS
   143								;1B21	;DISABLE SELECTED CONDITIONS
   144								;1B22	;CLEAR SELECTED CONDITIONS
   145								;1B23	;SET SELECTED CONDITIONS
   146								;1B25	;INTERRUPT 8080
   147								;1B26	;POWER FAIL
   148								;1B27	;NXM
   149								;1B28	;BAD MOS DATA
   150								;1B29	;CORRECTED MOS DATA
   151								;1B30	;TIMER
   152								;1B31	;8080 INTERRUPT
   153								;1B32	;GENERATE APR INTERRUPT
   154								;7B35	;APR LEVEL
   155		700240	000000			OPDEF	RDAPR	[700240,,0] ;READ APR
   156		700600	000000			OPDEF	WRPI	[700600,,0] ;WRITE PI
   157		700600	000400			OPDEF	PIOFF	[700600,,400]
   158		700600	000200			OPDEF	PION	[700600,,200]
   159		700640	000000			OPDEF	RDPI	[700640,,0] ;READ PI
   160		701140	000000			OPDEF	WRUBR	[701140,,0] ;WRITE USER BASE REGISTER
   161		701100	000000			OPDEF	CLRPT	[701100,,0] ;CLEAR PAGE TABLE
   162		701040	000000			OPDEF	RDUBR	[701040,,0] ;READ USER BASE REGISTER
   163		701200	000000			OPDEF	WREBR	[701200,,0] ;WRITE
   164		701240	000000			OPDEF	RDEBR	[701240,,0] ;READ
   165		710000	000000			OPDEF	TIOE	[710000,,0] ;TEST UNIBUS, SKIP EQUAL
   166		720000	000000			OPDEF	TIOEB	[720000,,0] ;TEST UNIBUS, SKIP EQUAL
   167		711000	000000			OPDEF	TION	[711000,,0] ;TEST UNIBUS, SKIP NOT EQUAL
   168		721000	000000			OPDEF	TIONB	[721000,,0] ;TEST UNIBUS, SKIP NOT EQUAL
   169		712000	000000			OPDEF	RDIO	[712000,,0] ;READ UNIBUS
   170		722000	000000			OPDEF	RDIOB	[722000,,0] ;READ UNIBUS BYTE
   171		713000	000000			OPDEF	WRIO	[713000,,0] ;WRITE UNIBUS
   172		723000	000000			OPDEF	WRIOB	[723000,,0] ;WRITE UNIBUS BYTE
   173		714000	000000			OPDEF	BSIO	[714000,,0] ;BIT SET TO UNIBUS
   174		724000	000000			OPDEF	BSIOB	[724000,,0] ;BIT SET TO UNIBUS BYTE
   175		715000	000000			OPDEF	BCIO	[715000,,0] ;BIT CLEAR TO UNIBUS
   176		725000	000000			OPDEF	BCIOB	[725000,,0] ;BIT CLEAR TO UNIBUS BYTE
   177		702400	000000			OPDEF	WRSPB	[702400,,0] ;WRITE SPT BASE REGISTER
   178		702000	000000			OPDEF	RDSPB	[702000,,0] ;READ SPT BASE REGISTER
   179		702440	000000			OPDEF	WRCSB	[702440,,0] ;WRITE CORE STATUS TABLE BASE REGISTER
   180		702040	000000			OPDEF	RDCSB	[702040,,0] ;READ CORE STATUS TABLE BASE REGISTER
   181		702500	000000			OPDEF	WRPUR	[702500,,0] ;WRITE PROCESS USE REGISTER
   182		702100	000000			OPDEF	RDPUR	[702100,,0] ;READ PROCESS USE REGISTER
   183		702540	000000			OPDEF	WRCSTM	[702540,,0] ;WRITE CST MASK REGISTER
   184		702140	000000			OPDEF	RDCSTM	[702140,,0] ;READ CST MASK REGISTER
   185		702600	000000			OPDEF	WRTIME	[702600,,0] ;WRITE TIME BASE
   186		702200	000000			OPDEF	RDTIME	[702200,,0] ;READ TIME BASE
   187		702640	000000			OPDEF	WRINT	[702640,,0] ;WRITE INTERVAL TIMER
   188		702240	000000			OPDEF	RDINT	[702240,,0] ;READ THE INTERVAL REGISTER
   189		704000	000000			OPDEF	UMOVE	[704000,,0] ;MOVE FROM PREVIOUS CONTEXT
   190		705000	000000			OPDEF	UMOVEM	[705000,,0] ;MOVE TO PREVIOUS CONTEXT
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 8
DDT11	MAC	18-May-81 17:27		DMCC et al

   191					;EPT - EXECUTIVE PROCESS TABLE
   192								;0-37 CHANNEL LOGOUT AREA
   193								;40-41
   194			000042		EPTINT==42		;42-57 INTERRUPT LOCATIONS
   195								;60-77 (KL10 - DTE AREA)
   196			000100		EPTVEC==100		;100 128 WORD TABLE OF VECTORS
   197								;101-177 RESERVERED FOR FUTURE USE
   198								;200-377 EXEC PAGE 400-777
   199								;400-420
   200			000421		EPTAOV==421		;421 EXEC ARITH OVERFLOW TRAP INS
   201			000422		EPTPDO==422		;422 EXEC PUSHDOWN OVFL INS
   202			000423		EPTTP3==423		;423 EXEC TRAP-3 INS
   203								;424-427 HALT STATUS AREA
   204								;430-437
   205								;460-507
   206								;510 TIME BASE HIGH-ORDER WORD
   207								;511 TIME BASE LOW-ORDER WORD
   208								;512 PERF ANA COUNTER HIGH-ORDER WORD
   209								;513 " LOW-ORDER WORD
   210								;514 INTERVAL TIMER VEC INT LOC
   211								;515-577 RES FOR USE BY HDW
   212			000540		EPTSTP==540		;540-557 SECTION TABLE POINTER FOR SECTION 0-17
   213			000600		EPM000==600		;600-757 EXEC PAGE 0-337
   214								;760-777 RESERVED
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 9
DDT11	MAC	18-May-81 17:27		DMCC et al

   215					;UPT - USER PAGE TABLE
   216								;0-377 USER PAGE 0-777
   217								;400-417 EXEC PAGE 340-377
   218								;420 FREE
   219								;421 USER ARTIH OVFLW TRAP INST
   220								;422 USER PUSHDOWN OVFLW TRAP INS
   221								;423 USER TRAP-3 INS
   222			001424		.UPMUO==1424		;424 USERS FLAGS,,MUUO OPCODE
   223			001425		.UPMUP==1425		;425 PC WORD OF MUUO STORED HERE
   224								;426 MUUO EFFECTIVE ADDR
   225								;427 PROCESSOR CONTEXT
   226								;430 KERNEL NO TRAP MUUO NEW PC WORD
   227								;431 KERNEL TRAP MUUO NEW PC WORD
   228								;432 SUPERVISOR TRAP MUUO NEW PC WORD
   229								;433 SUPERVISOR NO TRAP MUUO NEW PC WORD
   230								;434 CONCEALED TRAP MUUO NEW PC WORD
   231								;435 CONCEALED NO TRAP MUUO NEW PC WORD
   232								;436 PUBLIC TRAP MUUO NEW PC WORD
   233								;437 PUBLIC NO TRAP MUUO NEW PC WORD
   234								;440-477 FREE
   235			001500		UPTPFW==1500		;500 EXEC OR USER PAGE FAILWORD STORED HERE
   236								;B0 USER MODE
   237								;B1 IO = ADAPTER
   238			001501		UPTPFL==1501		;501 PAGE FAIL OLD FLAGS WORD
   239			001502		UPTPFO==1502		;502 PAGE FAIL OLD PC WORD
   240			001503		UPTPFN==1503		;503 PAGE FAIL NEW PC WORD
   241								;504 EBOX CLOCK TICKMETER HIGH ORDER WORD
   242								;505 EBOX CLOCK TICKMETER LOW-ORDER WORD
   243								;506 MBOX CYCLEMETER HIGH ORDER WORD
   244								;507 MBOX CYCLEMETER LOW-ORDER WORD
   245								;510-577 RESERVED FOR HDW
   246								;600-777 FREE
   247
   248					; PAGE TABLE WORDS
   249								;400000 ACCESS ALLOWED
   250								;200000 PUBLIC
   251								;100000 WRITABLE
   252								;040000 SOFTWARE
   253								;020000 CACHE ENABLED
   254								;017777 PHYSICAL PAGE ADR BITS 14-26
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 10
DDT11	MAC	18-May-81 17:27		DMCC et al

   255
   256					;UNIBUS ADAPTER
   257			763000		UBAMAP=	763000		;MAPPING REGISTERS
   258			400000		UB.RPW==400000		;MAINTENANCE PAUSE FOR EVEN AND ODD MEMORY WRITE
   259			200000		UB.16B==200000		;DISABLE UPPER TWO BITS ON TRANSFER
   260			100000		UB.FST==100000		;FAST XFER
   261			040000		UB.VLD==040000		;VALID
   262							;003777	;PAGE NUMBER
   263			763100		UBA.SR=	763100		;STATUS REGISTER
   264							;400000	;TIMEOUT
   265							;200000	;BAD MEMORY ON NPR TRANSFER
   266							;100000	;SM10 BACKPANEL BUS ERROR
   267							;040000	;CPU ADDRESSED NONEXISTENT DEVICE
   268							;004000	;BR6 OR BR7
   269							;002000	;BR5 OR BR4
   270							;001000	;AC OR DC LOW
   271							;000200	;DISABLE TRANSFER ON UNCORRECTABLE DATA
   272							;000100	;UBA INITIALIZE
   273			000230		UBA.B7==1B28+BR7LVL*10
   274			000204		UBA.B5==1B28+BR5LVL
   275			000234		UBALVL==1B28+BR7LVL*10+BR5LVL	;PI LVL ASSIGNMENTS
   276			763200		UBA.IR=	763200		;VECTOR REGISTER
   277			763101		UBA.MR=	763101		;MAINTENANCE REGISTER
   278							;000001	;CHANGE NPR REQUEST
   279							;000002	;ENABLE NPR WRAP AROUND
   280					;DZ11
   281			000000		DZ.CSR==0		;CONTROL AND STATUS REGISTER
   282			000002		DZ.RBF==2		;READER BUFFER
   283			000002		DZ.LPR==2		;LINE PARAMETER REGISTER
   284			000004		DZ.TCR==4		;TRANSMIT CONTROL REGISTER
   285			000006		DZ.MSR==6		;MODEM STATUS REGISTER
   286			000006		DZ.TDR==6		;TRANSMIT DATA REGISTER
   287					;RJP04
   288			776700		RPCS1==	776700
   289			776702		RPWC==	776702
   290			776704		RPBA==	776704
   291			776706		RPDA==	776706
   292			776710		RPCS2==	776710
   293			776712		RPDS==	776712
   294			776714		RPER1==	776714
   295			776716		RPAS==	776716
   296			776720		RPLA==	776720
   297			776722		RPDB==	776722
   298			776724		RPMR==	776724
   299			776726		RPDT==	776726
   300			776730		RPSN==	776730
   301			776732		RPOF==	776732
   302			776734		RPDC==	776734
   303			776736		RPCC==	776736
   304			776740		RPER2==	776740
   305			776742		RPER3==	776742
   306			776744		RPEC1==	776744
   307			776746		RPEC2==	776746
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 11
DDT11	MAC	18-May-81 17:27		DMCC et al

   308					;INTERPROCESSOR COMMUNICATIONS AREA
   309					;WORD 31 - KEEP ALIVE AND STATUS WORD
   310			000031		FEWSTS=	31
   311					;WORD 32 - KS-10 INPUT WORD
   312			000032		FEWINP=	32
   313							;BITS 20-27 = 0 NO ACTION
   314							;BITS 20-27 = 1 CTY CHAR
   315							;BITS 28-35 = CHAR
   316					;WORD 33 - KS-10 OUTPUT WORD
   317			000033		FEWOUT=	33
   318							;BITS 20-27 = 0 NO ACTION
   319							;BITS 20-27 = 1 CTY CHAR
   320							;BITS 28-35 = CHAR
   321					;WORD 34 - KS-10 KLINIK LINE INPUT WORD
   322					;WORD 35 - KS-10 KLINIK LINE OUTPUT WORD
   323
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 12
DDT11	MAC	18-May-81 17:27		DMCC et al

   324					;FORMAT OF PDP-11 BINARY TAPES
   325					;
   326					;	FRAME	-1	001
   327					;		-2	000
   328					;		-3	BYTE COUNT - LOWER ORDER
   329					;		-4	BYTE COUNT - HIGHER ORDER
   330					;		-5	LOAD ADDRESS - LOWER ORDER
   331					;		-6	LOAD ADDRESS - HIGHER ORDER
   332					;				DATA
   333					;			CHKSUM
   334					;
   335					;	THE BYTE COUNT COUNTS FRAME-1 THROUGH ALL DATA
   336					;	IF THE BYTE COUNT IS EQUAL TO 6 THE LOAD ADDRESS IS THE START ADDRESS
   337					;	UNLESS ODD.
   338					;	IF THE BYTE COUNT IS > 6, DATA WILL BE LOADED INTO MEMORY
   339					;	WHEN CHKSUM IS ADDED TO SUM OF PREVIOUS FRAMES RESULT IS 0
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 13
DDT11	MAC	18-May-81 17:27		DMCC et al

   340					;PDP11 ADDRESSING MODES
   341					;
   342					;	0	Rn	REGISTER
   343					;	1	@Rn	REGISTER DEFERRED
   344					;	2	(Rn)+	AUTO-INCREMENT
   345					;	3	@(Rn)+	AUTO-INCREMENT DEFERRED
   346					;	4	-(Rn)	AUTO-DECREMENT
   347					;	5	@-(Rn)	AUTO-DECREMENT DEFERRED
   348					;	6	X(Rn)	INDEX
   349					;	7	@X(Rn)	INDEX DEFERRED
   350					;
   351					;	27	#X	IMMEDIATE
   352					;	37	@#X	ABSOLUTE
   353					;	67	X	RELATIVE
   354					;	77	@X	RELATIVE DEFERRED
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 14
DDT11	MAC	18-May-81 17:27		DMCC et al

   355					;MACRO TO DEFINE SYMBOLS FOR INSTRUCTIONS
   356					; 1ST ARGUMENT IS VALUE OF INSTRUCTION
   357					; 2ND ARG IS MASK FOR VALUE
   358					; 3RD ARG IS MNEMONIC
   359					; 4TH ARG IS FLAG BITS
   360					; 5TH ARG IS SIMULATION
   361
   362						DEFINE	INSTRU <
   363						XLIST
   364						X	000000,007000,AND,<SMF.IN!SMF.P8>
   365						X	000000,177777,HALT,<SMF.IN!SMF.11>
   366						X	000000,177777,R0,<SMF.RG!SMF.11>
   367						X	000001,177777,R1,<SMF.RG!SMF.11>
   368						X	000001,177777,WAIT,<SMF.IN!SMF.11>
   369						X	000002,177777,R2,<SMF.RG!SMF.11>
   370						X	000002,177777,RTI,<SMF.IN!SMF.11>
   371						X	000003,177777,BPT,<SMF.IN!SMF.11>
   372						X	000003,177777,R3,<SMF.RG!SMF.11>
   373						X	000004,177777,IOT,<SMF.IN!SMF.11>
   374						X	000004,177777,R4,<SMF.RG!SMF.11>
   375						X	000005,177777,R5,<SMF.RG!SMF.11>
   376						X	000005,177777,RESET,<SMF.IN!SMF.11>
   377						X	000006,177777,RTT,<SMF.IN!SMF.11>
   378						X	000006,177777,SP,<SMF.RG!SMF.11>
   379						X	000007,177777,PC,<SMF.RG!SMF.11>
   380						X	000100,177700,JMP,<SMF.IN!SMF.DD!SMF.11>
   381						X	000200,177770,RTS,<SMF.IN!SMF.RT!SMF.11>
   382						X	000230,177770,SPL,<SMF.IN!SMF.PL!SMF.11>
   383						X	000240,177777,NOP,<SMF.IN!SMF.11>
   384						X	000241,177777,CLC,<SMF.IN!SMF.11>
   385						X	000242,177777,CLV,<SMF.IN!SMF.11>
   386						X	000244,177777,CLZ,<SMF.IN!SMF.11>
   387						X	000250,177777,CLN,<SMF.IN!SMF.11>
   388						X	000257,177777,CCC,<SMF.IN!SMF.11>
   389						X	000261,177777,SEC,<SMF.IN!SMF.11>
   390						X	000262,177777,SEV,<SMF.IN!SMF.11>
   391						X	000264,177777,SEZ,<SMF.IN!SMF.11>
   392						X	000270,177777,SEN,<SMF.IN!SMF.11>
   393						X	000277,177777,SCC,<SMF.IN!SMF.11>
   394						X	000300,177700,SWAB,<SMF.IN!SMF.DD!SMF.11>
   395						X	000400,177400,BR,<SMF.IN!SMF.BR!SMF.11>
   396						X	001000,177400,BNE,<SMF.IN!SMF.BR!SMF.11>
   397						X	001000,007000,TAD,<SMF.IN!SMF.P8>
   398						X	001400,177400,BEQ,<SMF.IN!SMF.BR!SMF.11>
   399						X	002000,177400,BGE,<SMF.IN!SMF.BR!SMF.11>
   400						X	002000,007000,ISZ,<SMF.IN!SMF.P8>
   401						X	002400,177400,BLT,<SMF.IN!SMF.BR!SMF.11>
   402						X	003000,177400,BGT,<SMF.IN!SMF.BR!SMF.11>
   403						X	003000,007000,DCA,<SMF.IN!SMF.P8>
   404						X	003400,177400,BLE,<SMF.IN!SMF.BR!SMF.11>
   405						X	004000,177000,JSR,<SMF.IN!SMF.DD!SMF.JS!SMF.11>
   406						X	004000,007000,JMS,<SMF.IN!SMF.P8>
   407						X	005000,177700,CLR,<SMF.IN!SMF.DD!SMF.11>
   408						X	005000,007000,JMP,<SMF.IN!SMF.P8>
   409						X	005100,177700,COM,<SMF.IN!SMF.DD!SMF.11>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 14-1
DDT11	MAC	18-May-81 17:27		DMCC et al

   410						X	005200,177700,INC,<SMF.IN!SMF.DD!SMF.11>
   411						X	005300,177700,DEC,<SMF.IN!SMF.DD!SMF.11>
   412						X	005400,177700,NEG,<SMF.IN!SMF.DD!SMF.11>
   413						X	005500,177700,ADC,<SMF.IN!SMF.DD!SMF.11>
   414						X	005600,177700,SBC,<SMF.IN!SMF.DD!SMF.11>
   415						X	005700,177700,TST,<SMF.IN!SMF.DD!SMF.11>
   416						X	006000,177700,ROR,<SMF.IN!SMF.DD!SMF.11>
   417						X	006000,007000,IOT,<SMF.IN!SMF.P8>
   418						X	006100,177700,ROL,<SMF.IN!SMF.DD!SMF.11>
   419						X	006200,177700,ASR,<SMF.IN!SMF.DD!SMF.11>
   420						X	006300,177700,ASL,<SMF.IN!SMF.DD!SMF.11>
   421						X	006400,177700,MARK,<SMF.IN!SMF.MK!SMF.11>
   422						X	006700,177700,SXT,<SMF.IN!SMF.DD!SMF.11>
   423						X	007000,007777,NOP,<SMF.IN!SMF.P8>
   424						X	007001,007401,IAC,<SMF.IN!SMF.P8>
   425						X	007002,007416,BSW,<SMF.IN!SMF.P8>
   426						X	007004,007406,RAL,<SMF.IN!SMF.P8>
   427						X	007006,007406,RTL,<SMF.IN!SMF.P8>
   428						X	007010,007412,RAR,<SMF.IN!SMF.P8>
   429						X	007012,007412,RTR,<SMF.IN!SMF.P8>
   430						X	007020,007420,CML,<SMF.IN!SMF.P8>
   431						X	007040,007440,CMA,<SMF.IN!SMF.P8>
   432						X	007100,007500,CLL,<SMF.IN!SMF.P8>
   433						X	007200,007600,CLA,<SMF.IN!SMF.P8>
   434						X	007400,007777,NOP,<SMF.IN!SMF.P8>
   435						X	007401,007777,NOP,<SMF.IN!SMF.P8>
   436						X	007402,007403,HLT,<SMF.IN!SMF.P8>
   437						X	007404,007405,OSR,<SMF.IN!SMF.P8>
   438						X	007410,007571,SKP,<SMF.IN!SMF.P8>
   439						X	007420,007431,SNL,<SMF.IN!SMF.P8>
   440						X	007421,007521,MQL,<SMF.IN!SMF.P8>
   441						X	007430,007431,SZL,<SMF.IN!SMF.P8>
   442						X	007440,007451,SZA,<SMF.IN!SMF.P8>
   443						X	007450,007451,SNA,<SMF.IN!SMF.P8>
   444						X	007500,007511,SMA,<SMF.IN!SMF.P8>
   445						X	007501,007521,MQA,<SMF.IN!SMF.P8>
   446						X	007510,007511,SPA,<SMF.IN!SMF.P8>
   447						X	007521,007521,SWP,<SMF.IN!SMF.P8>
   448						X	007600,007601,CLA,<SMF.IN!SMF.P8>
   449						X	007601,007601,CLA,<SMF.IN!SMF.P8>
   450						X	010000,170000,MOV,<SMF.IN!SMF.SS!SMF.11>
   451						X	020000,170000,CMP,<SMF.IN!SMF.SS!SMF.11>
   452						X	030000,170000,BIT,<SMF.IN!SMF.SS!SMF.11>
   453						X	040000,170000,BIC,<SMF.IN!SMF.SS!SMF.11>
   454						X	050000,170000,BIS,<SMF.IN!SMF.SS!SMF.11>
   455						X	060000,170000,ADD,<SMF.IN!SMF.SS!SMF.11>
   456						X	070000,177000,MUL,<SMF.IN!SMF.EI!SMF.11>
   457						X	071000,177000,DIV,<SMF.IN!SMF.EI!SMF.11>
   458						X	072000,177000,ASH,<SMF.IN!SMF.EI!SMF.11>
   459						X	073000,177000,ASHC,<SMF.IN!SMF.EI!SMF.11>
   460						X	074000,177000,XOR,<SMF.IN!SMF.JS!SMF.DD!SMF.11>
   461						X	075000,177770,FADD,<SMF.IN!SMF.RT!SMF.11>
   462						X	075010,177770,FSUB,<SMF.IN!SMF.RT!SMF.11>
   463						X	075020,177770,FMUL,<SMF.IN!SMF.RT!SMF.11>
   464						X	075030,177770,FDIV,<SMF.IN!SMF.RT!SMF.11>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 14-2
DDT11	MAC	18-May-81 17:27		DMCC et al

   465						X	077000,177000,SOB,<SMF.IN!SMF.SB!SMF.11>
   466						X	100000,177400,BPL,<SMF.IN!SMF.BR!SMF.11>
   467						X	100400,177400,BMI,<SMF.IN!SMF.BR!SMF.11>
   468						X	101000,177400,BHI,<SMF.IN!SMF.BR!SMF.11>
   469						X	101400,177400,BLOS,<SMF.IN!SMF.BR!SMF.11>
   470						X	102000,177400,BVC,<SMF.IN!SMF.BR!SMF.11>
   471						X	102400,177400,BVS,<SMF.IN!SMF.BR!SMF.11>
   472						X	103000,177400,BCC,<SMF.IN!SMF.BR!SMF.11>
   473						X	103000,177400,BHIS,<SMF.IN!SMF.BR!SMF.11>
   474						X	103400,177400,BCS,<SMF.IN!SMF.BR!SMF.11>
   475						X	103400,177400,BLO,<SMF.IN!SMF.BR!SMF.11>
   476						X	104000,177400,EMT,<SMF.IN!SMF.EM!SMF.11>
   477						X	104400,177400,TRAP,<SMF.IN!SMF.EM!SMF.11>
   478						X	105000,177700,CLRB,<SMF.IN!SMF.DD!SMF.BY!SMF.11>
   479						X	105100,177700,COMB,<SMF.IN!SMF.DD!SMF.BY!SMF.11>
   480						X	105200,177700,INCB,<SMF.IN!SMF.DD!SMF.BY!SMF.11>
   481						X	105300,177700,DECB,<SMF.IN!SMF.DD!SMF.BY!SMF.11>
   482						X	105400,177700,NEGB,<SMF.IN!SMF.DD!SMF.BY!SMF.11>
   483						X	105500,177700,ADCB,<SMF.IN!SMF.DD!SMF.BY!SMF.11>
   484						X	105600,177700,SBCB,<SMF.IN!SMF.DD!SMF.BY!SMF.11>
   485						X	105700,177700,TSTB,<SMF.IN!SMF.DD!SMF.BY!SMF.11>
   486						X	106000,177700,RORB,<SMF.IN!SMF.DD!SMF.BY!SMF.11>
   487						X	106100,177700,ROLB,<SMF.IN!SMF.DD!SMF.BY!SMF.11>
   488						X	106200,177700,ASRB,<SMF.IN!SMF.DD!SMF.BY!SMF.11>
   489						X	106300,177700,ASLB,<SMF.IN!SMF.DD!SMF.BY!SMF.11>
   490						X	110000,170000,MOVB,<SMF.IN!SMF.SS!SMF.BY!SMF.11>
   491						X	120000,170000,CMPB,<SMF.IN!SMF.SS!SMF.BY!SMF.11>
   492						X	130000,170000,BITB,<SMF.IN!SMF.SS!SMF.BY!SMF.11>
   493						X	140000,170000,BICB,<SMF.IN!SMF.SS!SMF.BY!SMF.11>
   494						X	150000,170000,BISB,<SMF.IN!SMF.SS!SMF.BY!SMF.11>
   495						X	160000,170000,SUB,<SMF.IN!SMF.SS!SMF.11>
   496						X	163000,177777,UBAMAP,<SMF.11>
   497						X	163100,177777,UBA.SR,<SMF.11>
   498						;X	163200,177777,UBA.VC,<SMF.11>
   499						X	163300,177777,UBA.MR,<SMF.11>
   500						X	177570,177777,SW,<SMF.11>
   501						X	177776,177777,PS,<SMF.11>
   502						LIST	;TURN LISTINGS BACK ON
   503					>;DEFINE INSTRU
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 15
DDT11	MAC	18-May-81 17:27		INITIALIZATION

   504						SUBTTL	INITIALIZATION
   505
   506	000000'	300000	000000		DDT11:	NOP
   507	000001'	264000	000027'			JSR	INIALL		;GET PROCESSOR FLAGS, AND RESET WORLD
   508	000002'	260740	007701'			CALL	IDTYPE		;IDENTIFY OURSELF
   509	000003'	260740	007621'			CALL	CRLTYP		;END WITH A FLOURISH
   510
   511		000000	000000			MOVE	T1,[0,,0]	;DEFAULT OUTPUT MODE IS SYMBOLIC
   512	000004'	200440	042177'
   513	000005'	202440	040535'			MOVEM	T1,O.MODE
   514	000006'	402000	040710'			SETZM	CACHEL		;HIGHEST ADDR IN CACHE
   515	000007'	402000	040456'			SETZM	NODE		;HAVEN'T SPECIFIED NODE YET
   516	000010'	402000	040706'			SETZM	CMDCON		;NO COMAND CONFLICTS YET
   517	000011'	402000	040457'			SETZM	LINE		;OR LINE ON NODE
   518	000012'	254000	000016'			JRST	INI.03
   519					INI.00:	TYPE	<
   520		064252	262746		Respond with file spec and/or switches>
   521	000013'	201440	042200'
   522	000014'	260740	007655'
   523	000015'	051440	000000			CLRBFI			;FLUSH TYPEAHEAD
   524					INI.03:	TYPE	<
   525		064251	167340		Input:	>
   526	000016'	201440	042211'
   527	000017'	260740	007655'
   528	000020'	400440	000000			SETZ	T1,		;NO DEFAULT FILE NAME
   529		546344	425156			MOVE	T2,[SIXBIT /LSDBIN/] ;DEFAULT EXTENSION
   530	000021'	200500	042213'
   531		040601'	040547'			MOVE	T3,[SW.DSP,,SW.LST]
   532	000022'	200540	042214'
   533		400000	010633'			MOVE	T4,[400000,,RDDUMP] ;DEFAULT LAST SWITCH
   534	000023'	200600	042215'
   535	000024'	260740	005642'			CALL	OPNFL0
   536	000025'	254000	000013'			JRST	INI.00		;TELL HIM THATS NOT NICE
   537	000026'	254000	000016'			JRST	INI.03
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 16
DDT11	MAC	18-May-81 17:27		INITIALIZATION

   538	000027'	000000	000000		INIALL:	Z
   539	000030'	400000	000000			SETZ	0		;ZERO 1ST AC
   540	000031'	201740	000001			MOVEI	17,1		;MAKE BLT POINTER
   541	000032'	251740	000017			BLT	17,17		;CLEAR ALL AC'S
   542		777740	041011'			MOVE	P,[IOWD PDLEN,PDL]
   543	000033'	200740	042216'
   544	000034'	261740	000027'			PUSH	P,INIALL
   545	000035'	402000	006461'			SETZM	OHD
   546	000036'	402000	003275'			SETZM	CMDFIL
   547	000037'	200400	040705'			MOVE	FLG,FLGSAV	;SETUP FLAGS
   548		003100	140000			TXZ	FLG,F.EXEC!F.TOPN!F.LOCK!F..SIM!F.WENB
   549	000040'	630400	042217'
   550	000041'	402000	042172'			SETZM	MRGFLG
   551	000042'	561340	000000			HRROI	DOT,0
   552	000043'	200440	000027'			MOVE	T1,INIALL
   553	000044'	607440	010000			TLNN	T1,010000	;CHECK USER MODE FLAG
   554	000045'	661400	002000			TXO	FLG,F.EXEC	;WE ARE IN EXEC MODE
   555	000046'	260740	036737'			CALL	MAPCOR		;SETUP EPT AND UNIBUS MAPPING
   556	000047'	402000	037153'			SETZM	UPTIME		;HAVEN'T STARTED THE CLOCK YET
   557	000050'	400500	000000			SETZ T2,
   558	000051'	603400	002000			TXNE FLG,F.EXEC		;IF NOT IN EXEC MODE
   559	000052'	254000	000061'			JRST INIAL1
   560		000112	000011			MOVE T1,[XWD 112,11]	;GET THE MONITOR TYPE
   561	000053'	200440	042220'
   562	000054'	047440	000041			CALLI T1,41		;A GETTAB IN HIDING
   563	000055'	400440	000000			SETZ T1,		;ALWAYS A 0 IF IT FAILS
   564	000056'	242440	777764			LSH T1,-^D12		;MOVE THE TYPE OVER
   565	000057'	405440	000017			ANDI T1,17		;MASK ANY UNWANTED BITS
   566		400000	000000			MOVE T2,[T.OTHER	;FREE INDEX
   567		200000	000000				T.TOP10		;TOPS-10
   568		100000	000000				T.ITS		;ITS
   569		040000	000000				T.TENEX		;TENEX
   570		020000	000000				T.TOP20		;TOPS-20
   571		400000	000000				T.OTHER
   572		400000	000000				T.OTHER
   573		400000	000000				T.OTHER
   574		400000	000000				T.OTHER
   575		400000	000000				T.OTHER
   576		400000	000000				T.OTHER
   577		400000	000000				T.OTHER
   578		400000	000000				T.OTHER
   579		400000	000000				T.OTHER
   580		400000	000000				T.OTHER
   581	000060'	200511	042221'				T.OTHER](T1)	;GET THE TYPE
   582	000061'	603400	002000		INIAL1:	TXNE FLG,F.EXEC
   583	000062'	661500	010000			TXO T2,T.EXEC
   584	000063'	202500	041112'			MOVEM T2,OSTYPE		;AND SAVE FOR LATER USE
   585	000064'	047000	000000			RESET
   586	000065'	402000	011607'			SETZM	INSRUN		;HAVEN'T DONE ANY INSTRCUTIONS YET
   587	000066'	402000	011610'			SETZM	WAITIM		;AND HAVEN'T WAITED YET
   588	000067'	047500	000024			GETPPN	T2,		; SEE WHO WE ARE
   589	000070'	255000	000000			JFCL			; BLOODY JACCT BIT
   590	000071'	202500	040707'			MOVEM	T2,MYPPN	; SAVE FOR PPN DEFAULTING
   591	000072'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 17
DDT11	MAC	18-May-81 17:27		INITIALIZATION

   592					;HERE BECAUSE FILE TO BE READ IS BINARY TAPE
   593	000073'	660400	000002		SETBIN:	TXO	FLG,F.FLOP
   594	000074'	201440	000000			MOVEI T1,EX.MEM
   595	000075'	202440	040431'			MOVEM T1,ETYPE
   596	000076'	254000	005177'			RETSKP
   597
   598
   599					;HERE FOR CORE ARGUMENT
   600	000077'	260740	007051'		SETCOR:	CALL	DECINP		;GET THE CORE SIZE
   601	000100'	263740	000000			RET
   602	000101'	302640	000113			CAIE	T5,"K"		;UPPERCASE K
   603	000102'	306640	000153			CAIN	T5,"K"+40	;LOWERCASE K ?
   604		221440	002000			JRST	[IMULI	T1,2000	;CONVERT TO NUMBER OF WORDS
   605		201640	000040				MOVEI	T5,40	;FAKE BREAK CHAR
   606		254000	000104'				JRST	.+1 ]
   607	000103'	254000	042241'
   608	000104'	552440	040460'			HRRZM	T1,CORARG
   609	000105'	201440	000000			MOVEI T1,EX.MEM
   610	000106'	202440	040431'			MOVEM T1,ETYPE
   611	000107'	254000	005177'			RETSKP
   612
   613
   614					;HERE TO EFFECT THE /CORE:#
   615	000110'	336000	040432'		STCOR1:	SKIPN	PDP8F
   616	000111'	336500	040460'			SKIPN	T2,CORARG	;WAS THERE A CORE ARGUMENT ?
   617	000112'	254000	005177'			RETSKP			;NO SO WER'E DONE
   618	000113'	242500	000001			LSH	T2,1		;CONVERT BYTES TO WORDS
   619	000114'	271500	017777			ADDI	T2,017777	;ROUND TO NEXT 4K WORD BOUNDRY
   620	000115'	405500	160000			ANDI	T2,160000	;MASK TO RIGHT SIZE
   621	000116'	370000	000012			SOS	T2		;NEW MEMLIM IS ONE LESS
   622	000117'	202500	040460'			MOVEM	T2,CORARG
   623	000120'	336000	011147'			SKIPN	MEMORY		;ANY CORE ASSIGNED YET ?
   624	000121'	254000	000124'			JRST	STCOR2		;NONE YET SO GET IT
   625	000122'	317500	011150'			CAMG	T2,MEMLIM	;DO WE HAVE ENOUGH YET ?
   626	000123'	254000	000126'			JRST	STCOR3		;WE HAVE ENOUGH
   627	000124'	400440	000000		STCOR2:	SETZ	T1,
   628	000125'	260740	004177'			CALL	PUTFOO		;MAKE SURE WE HAVE THAT LOCATION
   629	000126'	200440	040460'		STCOR3:	MOVE	T1,CORARG	;GET CORE ARGUMENT
   630	000127'	250440	011150'			EXCH	T1,MEMLIM	;WHICH IS NEW MEMLIM
   631	000130'	274440	011150'			SUB	T1,MEMLIM	;HOW MANY BYTES TO DELETE
   632	000131'	322440	000145'			JUMPE	T1,STCOR9	;IF NONE WER'E DONE
   633	000132'	242440	777776			LSH	T1,-2		;NUMBER OF WORDS TO SHIFT SYMBOL TABLE
   634	000133'	504500	041115'			HRL	T2,SYMBEG	;GET BEGINING OF SYMBOL TABLE
   635	000134'	540500	041115'			HRR	T2,SYMBEG	;BUILD BLT POINTER
   636	000135'	274500	000011			SUB	T2,T1
   637	000136'	542500	041115'			HRRM	T2,SYMBEG
   638	000137'	200540	041116'			MOVE	T3,SYMEND
   639	000140'	274540	000011			SUB	T3,T1		;NEW END OF SYMBOL TABLE
   640	000141'	202540	041116'			MOVEM	T3,SYMEND
   641	000142'	251513	000000			BLT	T2,(T3)
   642	000143'	552540	000000*			HRRZM	T3,.JBFF##
   643	000144'	506540	000000*			HRLM	T3,.JBSA##
   644	000145'	402000	040460'		STCOR9:	SETZM	CORARG		;DONE WITH ARGUMENT
   645	000146'	254000	005177'			RETSKP
   646
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 17-1
DDT11	MAC	18-May-81 17:27		INITIALIZATION

   647
   648					;HERE BECAUSE FILE TO BE READ IS NETLDR (OR EQUIVALENT) DUMP
   649	000147'	620400	000004		SETDMP:	TXZ FLG,F..FOO
   650	000150'	201440	000000			MOVEI T1,EX.MEM
   651	000151'	202440	040431'			MOVEM T1,ETYPE
   652	000152'	254000	005177'			RETSKP
   653
   654
   655					;HERE TO SET F..FOO FOR /DISASSEMBLY OR /DTELDR
   656	000153'	660400	000004		SETFOO:	TXO FLG,F..FOO
   657	000154'	201440	000000			MOVEI T1,EX.MEM
   658	000155'	202440	040431'			MOVEM T1,ETYPE
   659	000156'	254000	005177'			RETSKP
   660
   661
   662					;HERE IF USERS TYPES /FE:
   663	000157'	200440	041112'		SET.FE:	MOVE T1,OSTYPE		;GET SYSTEM TYPE
   664	000160'	607440	220000			TXNN T1,T.TOP20!T.TOP10	;SEE IF IT IS ALLOWED
   665						JRST [	TYPE <
   666		064247	744730		?Illegal FE device when not on TOPS-10/20>
   667		201440	042244'
   668		260740	007655'
   669		263740	000000				RET]
   670	000161'	254000	042255'
   671	000162'	260740	007051'			CALL	DECINP		;GET THE FRONTEND #
   672						JRST [	TYPE <
   673		064247	743344		?Front End number required for the /FE switch>
   674		201440	042260'
   675		260740	007655'
   676		263740	000000				RET]
   677	000163'	254000	042272'
   678	000164'	200500	041112'			MOVE	T2,OSTYPE	;GET OPS TYPE
   679	000165'	603500	200000			TXNE	T2,T.TOP10	;IF TOPS-10, DO DIFFERENTLY (BETTER)
   680		321440	005200'			 JRST	[JUMPL	T1,R	;DISALLOW JUNK
   681		231440	000012				 IDIVI	T1,^D10	;SPLIT CPU/DTE
   682		307440	000005				 CAIG	T1,5	;IF CPU TOO BIG
   683		303500	000003				  CAILE	T2,3	;OR DTE TOO BIG
   684		263740	000000				 RET		;DON'T EVEN TRY
   685		505511	000000				 HRLI	T2,(T1)	;CPU,,DTE
   686		202500	040451'				 MOVEM	T2,FE.CPU ;SAVE FOR DTE. UUOS
   687		402000	040452'				 SETZM	FE.FED	;START WITH FED # 0
   688		476000	040434'				 SETOM	FENAME	;CONFUSE TOPS-20
   689		400000	000231'				 MOVE	T1,[400K,,OPNF10] ;THIS IS AN ACTION SWITCH
   690		200440	042275'
   691		202440	040420'				 MOVEM	T1,LASTSW
   692		201440	000007				 MOVEI	T1,EX.FE1 ;TOPS-10 20F
   693		202440	040431'				 MOVEM	T1,ETYPE  ;SAVE FOR EXAMINE CODE
   694		254000	005177'				 RETSKP]
   695	000166'	254000	042276'
   696	000167'	307440	000011			CAIG	T1,^D9		;BE SURE NOT TOO LARGE
   697	000170'	305440	000000			CAIGE	T1,0		;BE SURE POSITIVE
   698						JRST [	TYPE <
   699		064247	747352		?Number typed for /FE: not in range of 0-9>
   700		201440	042314'
   701		260740	007655'
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 17-2
DDT11	MAC	18-May-81 17:27		INITIALIZATION

   702		263740	000000				RET]
   703	000171'	254000	042325'
   704		000000	000003			SKIPA	T2,[EX.FE0]
   705	000172'	334500	042330'
   706	000173'	201500	000005		SETD62:	MOVX	T2,EX.D62	; set DN62 type FE
   707
   708	000174'	202500	040431'		SETFET:	MOVEM	T2,ETYPE	; T1/FE number, T2/fe type
   709	000175'	242440	000017			LSH	T1,17
   710		432126	035000			IOR	T1,[ASCII \FE0:\]
   711	000176'	434440	042331'
   712	000177'	202440	040434'			MOVEM	T1,FENAME	;REMEMBER WE'RE DOING FRONT END STUFF
   713		400000	000203'			MOVE	T1,[400000,,OPENFE]
   714	000200'	200440	042332'
   715	000201'	202440	040420'			MOVEM	T1,LASTSW
   716	000202'	254000	005177'			RETSKP
   717
   718	000203'	205040	100001		OPENFE:	MOVX	AC1,GJ%SHT!GJ%OLD
   719	000204'	561100	040434'			HRROI	AC2,FENAME	;NAME OF  FRONT END
   720	000205'	104000	000020			GTJFN			;GET A JFN FOR THE FRONT END
   721						ERJMP [	TYPE <
   722		064247	743650		?GTJFN for the FE device failed because:>
   723		201440	042333'
   724		260740	007655'
   725		254000	000223'				JRST OPNFE9]
   726	000206'	320700	042344'
   727	000207'	202040	040435'			MOVEM	AC1,FE.JFN	;SAVE JFN
   728	000210'	200100	040431'			MOVE	AC2,ETYPE	;check which type of FE
   729	000211'	302100	000005			CAIE	AC2,EX.D62
   730		200000	300000			SKIPA	AC2,[200000,,OF%WR!OF%RD]
   731	000212'	334100	042347'
   732		100000	300000			MOVE	AC2,[100000,,OF%WR!OF%RD]	;DN62 uses 8 bit bytes
   733	000213'	200100	042350'
   734	000214'	104000	000021			OPENF
   735						ERJMP [	TYPE <
   736		064247	747640		?OPENF for the FE device failed because:>
   737		201440	042351'
   738		260740	007655'
   739		254000	000223'				JRST OPNFE9]
   740	000215'	320700	042362'
   741	000216'	201100	000004			MOVEI	AC2,.MODTE	;OPEN DTE
   742	000217'	400140	000000			SETZ	AC3,
   743	000220'	104000	000077			MTOPR
   744	000221'	402000	011147'		OPNFE8:	SETZM	MEMORY		;NOT USING MEMORY
   745	000222'	254000	000435'			JRST	LEVL.0
   746
   747	000223'	201040	000101		OPNFE9:	MOVEI	AC1,.PRIOU	;OUTPUT ON TTY
   748	000224'	525100	400000			HRLOI	AC2,.FHSLF	;FOR OURSELVES
   749	000225'	400140	000000			SETZ	AC3,
   750	000226'	104000	000011			ERSTR
   751	000227'	402000	040434'			SETZM	FENAME
   752	000230'	254000	000000'			JRST	DDT11		;TRY AGAIN
   753
   754
   755						;HERE TO GET A FE DEVICE ON TOPS-10
   756
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 17-3
DDT11	MAC	18-May-81 17:27		INITIALIZATION

   757		000011	040451'		OPNF10:	MOVE	T1,[.DTEGF,,FE.CPU] ;TRY TO GET A FED
   758	000231'	200440	042365'
   759	000232'	047440	000170			DTE.	T1,		;PLEASE...
   760		306440	000015			 JRST	[CAIN	T1,DTENF% ;DOESN'T EXIST?
   761							  JRST	[TYPE	<
   762		064247	720234		? No FE devices available>
   763		201440	042366'
   764		260740	007655'
   765		254000	000000'					 JRST	DDT11]
   766		254000	042374'
   767		302440	000014				 CAIE	T1,DTEFB% ;THIS ONE BUSY?
   768		254000	000000*				  JRST	DTEERR	;NO, CONFUSED
   769		350000	040452'				 AOS	FE.FED	;TRY NEXT
   770		254000	000231'				 JRST	OPNF10]
   771	000233'	254000	042377'
   772	000234'	476000	040435'			SETOM	FE.JFN		;CONFUSE THE TOPS-20 CODE
   773	000235'	254000	000221'			JRST	OPNFE8		;AND GO FINISH UP
   774
   775					;HERE IF USER TYPES /GO
   776		400000	000435'		SETGO:	MOVE	T1,[400000,,LEVL.0]
   777	000236'	200440	042405'
   778	000237'	202440	040420'			MOVEM	T1,LASTSW
   779	000240'	201440	000000			MOVEI T1,EX.MEM
   780	000241'	202440	040431'			MOVEM T1,ETYPE
   781	000242'	254000	005177'			RETSKP
   782
   783
   784					;HERE FOR A /MERGE
   785	000243'	476000	042172'		SETMRG:	SETOM	MRGFLG#		;WANT TO MERGE OTHER FILES
   786	000244'	201440	000000			MOVEI T1,EX.MEM
   787	000245'	202440	040431'			MOVEM T1,ETYPE
   788	000246'	254000	005177'			RETSKP
   789
   790
   791					;HERE FOR /PATCH
   792	000247'	660400	100000		SETWEN:	TXO	FLG,F.WENB	;ENABLE PATCHING
   793	000250'	254000	005177'			RETSKP
   794
   795
   796					;HERE FOR /LINE IN COMMAND LINE
   797	000251'	200440	041112'		SETLIN:	MOVE T1,OSTYPE
   798	000252'	607440	200000			TXNN T1,T.TOP10
   799						JRST [	TYPE <
   800		064247	744730		?Illegal /LINE switch when not on TOPS-10>
   801		201440	042406'
   802		260740	007655'
   803		263740	000000				RET]
   804	000253'	254000	042417'
   805	000254'	260740	006776'			CALL	SIXIN		;GET LINE ARGUMENT
   806						JRST [	TYPE <
   807		064247	744730		?Illegal argument for /LINE switch>
   808		201440	042422'
   809		260740	007655'
   810		263740	000000				RET]
   811	000255'	254000	042432'
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 17-4
DDT11	MAC	18-May-81 17:27		INITIALIZATION

   812	000256'	260740	007034'			CALL	SIXOCT		;CONVERT TO NUMBER
   813						JRST [	TYPE <
   814		064247	744730		?Illegal value for the /LINE switch>
   815		201440	042435'
   816		260740	007655'
   817		263740	000000				RET]
   818	000257'	254000	042445'
   819	000260'	350000	000011			AOS	T1
   820	000261'	202440	040457'			MOVEM	T1,LINE
   821	000262'	201440	000002			MOVEI T1,EX.NOD
   822	000263'	202440	040431'			MOVEM T1,ETYPE
   823	000264'	254000	005177'			RETSKP
   824
   825
   826					;HERE BECAUSE USER TYPED /PDP11 OR /11
   827	000265'	402000	040432'		SETP11:	SETZM	PDP8F		;CLEAR PDP8 FLAG
   828	000266'	254000	005177'			RETSKP
   829
   830
   831					;HERE BECAUSE USER TYPED /PDP8 OR /8
   832	000267'	476000	040432'		SETPD8:	SETOM PDP8F
   833	000270'	254000	005177'			RETSKP
   834
   835
   836					;HERE BECAUSE USER TYPED /FESYM WITH /SYMBOL
   837		554160	637155		SETFES:	MOVE T1,[SIXBIT /MAPSYM/] ;DEFAULT EXTENSIONS
   838	000271'	200440	042450'
   839	000272'	202440	006212'			MOVEM T1,DEFEXT
   840		400000	005542'			MOVE T1,[400000,,RDSYMA] ;FLAG TO READ IN FE FORMAT
   841	000273'	200440	042451'
   842	000274'	202440	040420'			MOVEM T1,LASTSW
   843	000275'	254000	005177'			RETSKP
   844
   845
   846					;HERE FOR A /LA36 IN COMMAND LINE
   847	000276'	402000	040704'		SETLA3:	SETZM TTYBIT
   848	000277'	254000	005177'			RETSKP
   849
   850
   851					;HERE ON A /RELOCATION:VAL SWITCH
   852	000300'	260740	006776'		SETREL:	CALL SIXIN		;READ VALUE
   853						JRST [	TYPE <
   854		064247	744730		?Illegal argument for /RELOCATE switch>
   855		201440	042452'
   856		260740	007655'
   857		263740	000000				RET]
   858	000301'	254000	042463'
   859	000302'	261740	000011			PUSH P,T1		;SAVE IF WE NEED IT LATER
   860	000303'	260740	007034'			CALL SIXOCT		;CONVERT IT TO AN OCTAL NUMBER
   861		262740	000011			JRST [	POP P,T1	;GET TYPIN BACK
   862		260740	005153'				CALL SYMFND	;FIND IF WE HAVE A SYMBOL TO MATCH IT
   863							JRST [	TYPE <
   864		064247	752734		?Unknown symbol as argument to /RELOCATE switch>
   865		201440	042466'
   866		260740	007655'
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 17-5
DDT11	MAC	18-May-81 17:27		INITIALIZATION

   867		263740	000000					RET]
   868		254000	042500'
   869		550445	000001				HRRZ T1,1(SYM)	;GET THE VALUE FIELD
   870		202440	040454'				MOVEM T1,RELOFF	;SAVE FOR THE READ CODE
   871		254000	005177'				RETSKP]		;RETURN
   872	000304'	254000	042503'
   873	000305'	202440	040454'			MOVEM T1,RELOFF		;SAVE THE NEW OFFSET
   874	000306'	254000	005176'			JRST TPOPJ1		;CLEAN STACK, SKIP RETURN
   875
   876
   877					;HERE FOR /NODE IN COMMAND LINE
   878	000307'	200440	041112'		SETNOD:	MOVE T1,OSTYPE
   879	000310'	607440	200000			TXNN T1,T.TOP10
   880						JRST [	TYPE <
   881		064247	744730		?Illegal /NODE: when not on TOPS-10>
   882		201440	042511'
   883		260740	007655'
   884		263740	000000				RET]
   885	000311'	254000	042521'
   886	000312'	260740	006776'			CALL SIXIN		;GET NODE ARGUMENT
   887						JRST [	TYPE <
   888		064247	744730		?Illegal argument for the /NODE switch>
   889		201440	042524'
   890		260740	007655'
   891		263740	000000				RET]
   892	000313'	254000	042535'
   893	000314'	260740	007034'			CALL SIXOCT		;CONVERT TO NUMBER
   894						JRST [	TYPE <
   895		064247	744730		?Illegal value for the /NODE switch>
   896		201440	042540'
   897		260740	007655'
   898		263740	000000				RET]
   899	000315'	254000	042550'
   900	000316'	202440	040456'			MOVEM T1,NODE		;SAVE NODE NAME
   901	000317'	402000	040435'			SETZM FE.JFN		;NOT DOING /FE STUFF
   902	000320'	260740	000354'			CALL CLRMEM		;FORGET ANYTHING ALREADY READ
   903		400000	000435'			MOVE T1,[400000,,LEVL.0]
   904	000321'	200440	042405'
   905	000322'	202440	040420'			MOVEM T1,LASTSW
   906	000323'	201440	000002			MOVEI T1,EX.NOD
   907	000324'	202440	040431'			MOVEM T1,ETYPE
   908	000325'	254000	005177'			RETSKP
   909
   910
   911					;HERE FOR /LOCK
   912	000326'	200440	041112'		SETLOK:	MOVE T1,OSTYPE
   913	000327'	607440	200000			TXNN T1,T.TOP10
   914						JRST [	TYPE <
   915		064247	744730		?Illegal /LOCK when not on TOPS-10>
   916		201440	042553'
   917		260740	007655'
   918		263740	000000				RET]
   919	000330'	254000	042563'
   920	000331'	201440	000003			MOVEI T1,LK.LLS!LK.LNE;CODE TO LOCK
   921	000332'	047440	000060			LOCK T1,
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 17-6
DDT11	MAC	18-May-81 17:27		INITIALIZATION

   922	000333'	254000	005121'			JRST LOCKER		;REPORT ERROR
   923	000334'	660400	040000			TXO FLG,F.LOCK		;REMEMBER WE DID
   924	000335'	254000	005177'			RETSKP
   925
   926
   927					;HERE FOR /PORT
   928	000336'	260740	006776'		SETPRT:	CALL	SIXIN		;GET SIXBIT ARGUMENT
   929						JRST [	TYPE <
   930		064247	744730		?Illegal argument for the /PORT switch>
   931		201440	042566'
   932		260740	007655'
   933		263740	000000				RET]
   934	000337'	254000	042577'
   935	000340'	260740	007034'			CALL	SIXOCT		;CONVERT TO OCTAL
   936						JRST [	TYPE <
   937		064247	744730		?Illegal value for the /PORT switch>
   938		201440	042602'
   939		260740	007655'
   940		263740	000000				RET]
   941	000341'	254000	042612'
   942	000342'	405440	000017			ANDI	T1,17		;ALLOW FOR 8 DL10 PORTS PLUS 8 DN6X
   943	000343'	562440	040455'			HRROM	T1,PORT		;SAVE PORT NUMBER
   944	000344'	200500	041112'			MOVE	T2,OSTYPE	; check monitor type
   945	000345'	603500	020000			TXNE	T2,T.TOP20	; if TOPS-20 then have to do FE type io
   946		260740	004716'			JRST	[CALL	CPUTYP	; determine cpu type to dsitinguish DN20,DN22
   947		260740	004666'				 CALL	QUED60	; set up enqueue string
   948		405440	000007				 ANDI	T1,7	; remove dte offset to get FE number
   949		254000	000173'				 JRST	SETD62]	; now go set type DN62
   950	000346'	254000	042615'
   951		400000	000435'			MOVE	T1,[400000,,LEVL.0]
   952	000347'	200440	042405'
   953	000350'	202440	040420'			MOVEM	T1,LASTSW
   954	000351'	201440	000001			MOVEI T1,EX.PORT
   955	000352'	202440	040431'			MOVEM T1,ETYPE
   956	000353'	254000	005177'			RETSKP
   957
   958	000354'	336440	011147'		CLRMEM:	SKIPN	T1,MEMORY	;DID WE READ INTO MEMORY BEFORE ?
   959	000355'	254000	005177'			RETSKP
   960	000356'	504440	041115'			HRL	T1,SYMBEG	;BUILD BLT POINTER
   961	000357'	550500	041116'			HRRZ	T2,SYMEND
   962	000360'	271511	000000			ADDI	T2,(T1)
   963	000361'	274500	041115'			SUB	T2,SYMBEG
   964	000362'	552440	041115'			HRRZM	T1,SYMBEG	;NEW BEGINNING OF SYMBOL TABLE
   965	000363'	251452	000000			BLT	T1,(T2)
   966	000364'	200440	000143*			MOVE	T1,.JBFF##
   967	000365'	316440	041116'			CAMN	T1,SYMEND
   968	000366'	200440	000012			MOVE	T1,T2		;THIS IS NEW .JBFF##
   969	000367'	202500	041116'			MOVEM	T2,SYMEND
   970	000370'	552440	000364*			HRRZM	T1,.JBFF##
   971	000371'	506440	000144*			HRLM	T1,.JBSA##
   972	000372'	047440	000011			CORE	T1,
   973	000373'	254000	005407'			JRST	CORERR
   974	000374'	402000	011147'			SETZM	MEMORY
   975	000375'	476000	011150'			SETOM	MEMLIM
   976	000376'	254000	005177'			RETSKP
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 17-7
DDT11	MAC	18-May-81 17:27		INITIALIZATION

   977
   978
   979					;HERE FOR A /SYMBOL
   980		400000	005412'		SETSYM:	MOVE	T1,[400000,,RDSYMB]
   981	000377'	200440	042621'
   982	000400'	202440	040420'			MOVEM	T1,LASTSW
   983		546364	436246			MOVE	T1,[SIXBIT \LSTCRF\] ;RESET DEFAULT EXTENSION
   984	000401'	200440	042622'
   985	000402'	202440	006212'			MOVEM	T1,DEFEXT
   986	000403'	402000	040461'			SETZM	USETIT		;ALWAYS START AT 0
   987	000404'	302640	000072			CAIE	T5,":"		;GIVEN A BLOCK TO START ON ?
   988	000405'	254000	005177'			RETSKP			;NO, ITS OK
   989	000406'	260740	007051'			CALL	DECINP		;GET BLOCK TO START READING AT
   990						JRST [	TYPE <
   991		064247	744730		?Illegal value for the /SYMBOL switch>
   992		201440	042623'
   993		260740	007655'
   994		263740	000000				RET]
   995	000407'	254000	042633'
   996	000410'	552440	040461'			HRRZM	T1,USETIT	;REMEMBER WHERE TO START READING
   997	000411'	254000	005177'			RETSKP
   998
   999
  1000					;HERE FOR A /UBA COMMAND LINE
  1001	000412'	607400	002000		SETUBA:	TXNN FLG,F.EXEC
  1002						JRST [	TYPE <
  1003		064247	744730		?Illegal /UBA switch when not in EXEC mode>
  1004		201440	042636'
  1005		260740	007655'
  1006		263740	000000				RET]
  1007	000413'	254000	042647'
  1008	000414'	306640	000072			CAIN T5,":"		;WAS BREAK A COLON ?
  1009	000415'	260740	007051'			CALL DECINP		;GET ADAPTER NUMBER TO USE
  1010						JRST [	TYPE <
  1011		064247	744730		?Illegal argument for the /UBA switch>
  1012		201440	042652'
  1013		260740	007655'
  1014		263740	000000				RET]
  1015	000416'	254000	042662'
  1016	000417'	514540	000011			HRLZ MA,T1		;COPY NEW UBA NUMBER
  1017	000420'	603400	002000			TXNE FLG,F.EXEC	;RUNNING EXEC MODE ?
  1018	000421'	712453	763100			RDIO T1,UBA.SR(MA)	;SEE IT THERE IS SUCH A UBA
  1019		202540	041114'			JRST [	MOVEM	MA,UBACTL ;SAVE IT
  1020		254000	005177'				RETSKP]
  1021	000422'	254000	042665'
  1022						TYPE	<
  1023		064247	744730		?Illegal value for the /UBA switch>
  1024	000423'	201440	042667'
  1025	000424'	260740	007655'
  1026	000425'	263740	000000			RET
  1027
  1028
  1029					;HERE FOR A /VT52 IN COMMAND LINE
  1030	000426'	205440	200000		SETVTX:	MOVX	T1,TF.RUB	;BIT TO GET RIGHT KIND OF RUBOUTS
  1031	000427'	202440	040704'			MOVEM	T1,TTYBIT
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 17-8
DDT11	MAC	18-May-81 17:27		INITIALIZATION

  1032	000430'	254000	005177'			RETSKP
  1033
  1034
  1035					;HERE FOR A /READSTB IN THE COMMAND LINE
  1036	000431'	254000	005177'		SETRST:	RETSKP
  1037
  1038
  1039					;HERE FOR A /WRITESTB IN THE COMMAND LINE
  1040	000432'	254000	005177'		SETWST:	RETSKP
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 18
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1041						SUBTTL	MAJOR LOOP
  1042
  1043					;HERE ON A REENTER
  1044	000433'	300000	000000		RSTART:	NOP
  1045	000434'	264000	000027'			JSR	INIALL		;DO RESET, ETC.
  1046
  1047					;HERE AFTER INITIAL DIALOGUE
  1048		777740	041011'		LEVL.0:	MOVE	P,[IOWD PDLEN,PDL]
  1049	000435'	200740	042216'
  1050	000436'	260740	000110'			CALL	STCOR1		;HANDLE /CORE:#
  1051	000437'	260740	036737'			CALL	MAPCOR		;UPDATE MEMORY MAP
  1052	000440'	402000	006461'			SETZM	OHD
  1053	000441'	402000	003275'			SETZM	CMDFIL		;NO MORE COMMAND FILE
  1054	000442'	260740	007621'			CALL	CRLTYP
  1055	000443'	402000	040632'			SETZM	CMDTKR
  1056
  1057		000001	014070		LEVEL0:	TXZ	FLG,F.LOPN!F.MASK!F.MOPN!F.CACH!F.WRIT!F.LBKT
  1058	000444'	630400	042677'
  1059	000445'	202400	040705'			MOVEM	FLG,FLGSAV	;SAVE IN CASE OF REENTER
  1060	000446'	547000	040536'			HLRS	ORADIX		;RESET OUTPUT RADIX
  1061	000447'	547000	040535'			HLRS	O.MODE		;RESET CURRENT OUTPUT MODE FROM PERMANENT
  1062	000450'	547000	040534'			HLRS	BYTCNT		;RESET REPETITION COUNT
  1063	000451'				LEVEL1:
  1064		777740	041011'		LEVEL2:	MOVE	P,[IOWD PDLEN,PDL]
  1065	000451'	200740	042216'
  1066	000452'	620400	003700			TXZ	FLG,F.SYMB!F.TEXT!F.IOCT!F.IDEC!F.IHEX
  1067		440700	040635'			MOVE	T1,[POINT 7,CMDLIN]
  1068	000453'	200440	042700'
  1069	000454'	202440	040634'			MOVEM	T1,CMDPTR	;SAVE NEW COMMAND PUTTER
  1070		000012	040120'			MOVE	STATE,[T2,,STATE0] ;DISPATCH TABLE WHEN IDLE
  1071	000455'	200300	042701'
  1072		441000	040464'			MOVE	T1,[POINT 8,DATA]
  1073	000456'	200440	042702'
  1074	000457'	332000	040432'			SKIPE	PDP8F
  1075		441400	040464'			MOVE	T1,[POINT 12,DATA]
  1076	000460'	200440	042703'
  1077	000461'	202440	040421'			MOVEM	T1,DAT		;POINTER TO DATA AREA
  1078	000462'	402000	040423'			SETZM	DTFINP
  1079		040534'	040537'			MOVE	T1,[BYTCNT,,ESCSAV] ;SPECIAL CARE OF THINGS SET
  1080	000463'	200440	042704'
  1081	000464'	251440	040541'			BLT	T1,ESCSAV+2	; WITH ESCAPE COMMANDS
  1082	000465'	402000	040430'			SETZM	LFTSAV		;NO PARTIAL X<Y>
  1083	000466'	260740	001075'		LEVEL3:	CALL	GETEXP		;GET AN EXPRESSION
  1084	000467'	254000	000567'			JRST	COMAND		;CHECK FOR COMMAND FILE
  1085	000470'	135440	040634'			LDB	T1,CMDPTR	;GET LAST CHARACTER
  1086	000471'	302440	000040			CAIE	T1,40		;WAS IT A SPACE ?
  1087	000472'	254000	000542'			JRST	LEVEL8
  1088	000473'	332000	040432'			SKIPE	PDP8F		;DOING PDP8 INSTRUCTIONS ?
  1089	000474'	254000	000541'			JRST	LEVEL6
  1090	000475'	603400	000020			TXNE	FLG,F.SYML	;DID WE HAVE A SYMBOL ?
  1091	000476'	607240	000004			TLNN	SYM,SMF.IN	;WAS IT AN INSTRUCTION ?
  1092	000477'	254000	000542'			JRST	LEVEL8
  1093	000500'	200440	040426'			MOVE	T1,EXPRESS	;GET EXPRESSION
  1094	000501'	136440	040421'			IDPB	T1,DAT		;SAVE IT
  1095	000502'	261740	040421'			PUSH	P,DAT		;SAVE POINTER TO OPCODE
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 18-1
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1096	000503'	241440	777770			ROT	T1,-^D8
  1097	000504'	136440	040421'			IDPB	T1,DAT
  1098	000505'	260740	001664'			CALL	NDTFIN		;SET NEXT DTFINP
  1099	000506'	261740	000005			PUSH	P,SYM		;SAVE SYMBOL POINTER
  1100	000507'	603240	000010			TLNE	SYM,SMF.EI	;WAS THIS AN EIS INSTRUCTION ?
  1101		400440	000000			JRST	[SETZ	T1,	;ARG FOR LEVEL5
  1102		260740	000767'				CALL	LEVEL5
  1103		135440	040634'				LDB	T1,CMDPTR ;GET BREAK CHARACTER
  1104		302440	000054				CAIE	T1,","
  1105		254000	000536'				JRST	LEVEL7
  1106		200257	000000				MOVE	SYM,(P)	;RESTORE SYMBOL POINTER
  1107		254000	000511'				JRST	.+1 ]
  1108	000510'	254000	042705'
  1109	000511'	603240	001210			TLNE SYM,SMF.JS!SMF.SB!SMF.EI ;WAS THIS A JSR OR SOB OR EIS ?
  1110		260740	001065'			JRST [	CALL GETREG	;GET REGISTER NAME ARGUMENT
  1111		200557	777777				MOVE T3,-1(P)	;GET POINTER TO OPCODE
  1112		135500	000013				LDB T2,T3	;GET LOW ORDER BITS
  1113		134540	000013				ILDB T3,T3	;GET HIGH ORDER BITS
  1114		101000	000012				DPB T3,[POINT 8,T2,27]
  1115		137540	042714'
  1116		060300	000012				DPB T1,[POINT 3,T2,29]
  1117		137440	042715'
  1118		200557	777777				MOVE T3,-1(P)	;GET POINTER TO OPCODE AGAIN
  1119		137500	000013				DPB T2,T3	;RESTORE LOW ORDER BITS
  1120		242500	777770				LSH T2,-^D8
  1121		136500	000013				IDPB T2,T3
  1122		200257	000000				MOVE SYM,(P)	;RESTORE SYM POINTER
  1123		603240	000010				TLNE SYM,SMF.EI ;IF EIS DON'T CHECK ","
  1124		254000	000513'				JRST .+1
  1125		135440	040634'				LDB T1,CMDPTR
  1126		302440	000054				CAIE T1,","	;PROPER BREAK ?
  1127		254000	000536'				JRST LEVEL7
  1128		254000	000513'				JRST .+1]
  1129	000512'	254000	042716'
  1130	000513'	201440	000006			MOVEI	T1,^D6		;ARG FOR LEVEL5
  1131	000514'	603240	000040			TLNE	SYM,SMF.SS
  1132		260740	000767'			JRST	[CALL	LEVEL5
  1133		135440	040634'				LDB	T1,CMDPTR;GET BREAK CHARACTER
  1134		302440	000054				CAIE	T1,","
  1135		254000	000536'				JRST	LEVEL7
  1136		200257	000000				MOVE	SYM,(P)	;RELOAD POINTER TO SYMBOL
  1137		254000	000516'				JRST	.+1]
  1138	000515'	254000	042737'
  1139	000516'	400440	000000			SETZ	T1,		;ARG FOR LEVEL5
  1140	000517'	603240	000060			TLNE	SYM,SMF.DD!SMF.SS
  1141	000520'	260740	000767'			CALL	LEVEL5
  1142	000521'	200257	000000			MOVE	SYM,(P)		;GET FLAGS AGAIN
  1143	000522'	603240	000100			TLNE	SYM,SMF.BR	;WAS THIS A BRANCH TYPE INSTRUCTION ?
  1144		260740	001075'			JRST	[CALL	GETEXP	;GET BRANCH ADR
  1145		254000	001640'				JRST	ILLCHR
  1146		200440	040426'				MOVE	T1,EXPRESS;GET DESTINATION ADR
  1147		562440	040543'				HRROM	T1,LSTIAD;SAVE LAST ADR TYPED IN
  1148		274440	040423'				SUB	T1,DTFINP
  1149		240440	777777				ASH	T1,-1
  1150		370000	000011				SOS	T1
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 18-2
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1151		405440	177777				ANDI	T1,177777
  1152		301440	000200				CAIL	T1,200
  1153		301440	177600				CAIL	T1,177600
  1154		624440	777400				TRZA	T1,777400
  1155		254000	001640'				JRST	ILLCHR
  1156		137457	777777				DPB	T1,-1(P)
  1157		254000	000536'				JRST	LEVEL7 ]
  1158	000523'	254000	042745'
  1159	000524'	603240	010000			TLNE	SYM,SMF.MK	;WAS THIS A MARK ?
  1160		260740	001075'			JRST	[CALL	GETEXP		;GET ARGUMENT
  1161		254000	001640'				JRST	ILLCHR
  1162		200440	040426'				MOVE	T1,EXPRESS
  1163		135517	777777				LDB	T2,-1(P)	;GET LOW ORDER BITS OF OPCODE
  1164		000600	000012				DPB	T1,[POINT 6,T2,35]
  1165		137440	042763'
  1166		137517	777777				DPB	T2,-1(P)	;PUT OPCODE BACK IN DATA
  1167		254000	000536'				JRST	LEVEL7 ]
  1168	000525'	254000	042764'
  1169	000526'	603240	002000			TLNE	SYM,SMF.EM	;EMT TYPE INSTRUCTION ?
  1170		260740	001075'			JRST	[CALL	GETEXP		;GET OPERAND
  1171		254000	001640'				JRST	ILLCHR
  1172		200440	040426'				MOVE	T1,EXPRESS	;GET OPERAND
  1173		137457	777777				DPB	T1,-1(P)	;PUT OPERAND IN INSTRUCTION
  1174		254000	000536'				JRST	LEVEL7 ]
  1175	000527'	254000	042773'
  1176	000530'	603240	000400			TLNE	SYM,SMF.RT	;RTS TYPE INSTRUCTION ?
  1177		260740	001065'			JRST	[CALL	GETREG		;GET REGISTER NAME
  1178		135517	777777				LDB	T2,-1(P)	;GET LOW ORDER BITS OF OPCODE
  1179		000300	000012				DPB	T1,[POINT 3,T2,35]
  1180		137440	043000'
  1181		137517	777777				DPB	T2,-1(P)
  1182		254000	000536'				JRST	LEVEL7 ]
  1183	000531'	254000	043001'
  1184	000532'	603240	020000			TLNE	SYM,SMF.PL	;WAS THIS A SPL TYPE ?
  1185		260740	001075'			JRST	[CALL	GETEXP		;GET ARGUMENT
  1186		254000	001640'				JRST	ILLCHR
  1187		200440	040426'				MOVE	T1,EXPRESS
  1188		135517	777777				LDB	T2,-1(P)	;GET LOWORDER BITS OF OPCODE
  1189		000300	000012				DPB	T1,[POINT 3,T2,35]
  1190		137440	043000'
  1191		137517	777777				DPB	T2,-1(P)
  1192		254000	000536'				JRST	LEVEL7 ]
  1193	000533'	254000	043006'
  1194	000534'	603240	000200			TLNE	SYM,SMF.SB	;WAS THIS A SOB ?
  1195		260740	001075'			JRST	[CALL	GETEXP		;GET ADDRESS
  1196		254000	001640'				JRST	ILLCHR
  1197		200440	040426'				MOVE	T1,EXPRESS
  1198		562440	040543'				HRROM	T1,LSTIAD	;IN CASE ENDS WITH A TAB
  1199		550500	040423'				HRRZ	T2,DTFINP
  1200		275511	777776				SUBI	T2,-2(T1)
  1201		405500	177777				ANDI	T2,177777
  1202		242500	777777				LSH	T2,-1
  1203		301500	000100				CAIL	T2,100
  1204		254000	001640'				JRST	ILLCHR		;OUT OF RANGE
  1205		135457	777777				LDB	T1,-1(P)	;GET LOW ORDER BITS OF OPCODE
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 18-3
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1206		000600	000011				DPB	T2,[POINT 6,T1,35]
  1207		137500	043015'
  1208		137457	777777				DPB	T1,-1(P)	;RESTORE
  1209		254000	000536'				JRST	LEVEL7 ]
  1210	000535'	254000	043016'
  1211	000536'	262740	000005		LEVEL7:	POP	P,SYM
  1212	000537'	262740	000011			POP	P,T1
  1213	000540'	254000	000556'			JRST	LEVEL9
  1214	000541'	254000	000556'		LEVEL6:	JRST	LEVEL9
  1215
  1216	000542'	607400	000040		LEVEL8:	TXNN	FLG,F.GEXP	;DID WE GET ANYTHING ?
  1217	000543'	254000	000556'			JRST	LEVEL9		;NO
  1218	000544'	200440	040426'			MOVE	T1,EXPRESS
  1219	000545'	505440	400000			HRLI	T1,400000	;ASSUME REGISTER
  1220	000546'	603400	000020			TXNE	FLG,F.SYML	;WAS THERE A SYMBOL IN EXPRESSION ?
  1221	000547'	607240	000002			TLNN	SYM,SMF.RG	;WAS THAT A REGISTER NAME ?
  1222	000550'	563000	000011			HRROS	T1		;MEMORY ADR
  1223	000551'	202440	040543'			MOVEM	T1,LSTIAD	;SAVE LAST ADR TYPED IN
  1224	000552'	136440	040421'			IDPB	T1,DAT
  1225	000553'	242440	777770			LSH	T1,-^D8
  1226	000554'	136440	040421'			IDPB	T1,DAT
  1227	000555'	260740	001664'			CALL	NDTFIN		;ADVANCE DTFINP
  1228		441000	040464'		LEVEL9:	MOVE	T4,[POINT 8,DATA]	;POINTER TO DATA
  1229	000556'	200600	042702'
  1230	000557'	332000	040432'			SKIPE	PDP8F
  1231	000560'	505600	441400			HRLI	T4,(POINT 12)
  1232	000561'	135440	040634'			LDB	T1,CMDPTR	;GET BREAK CHARACTER
  1233	000562'	241440	777777			ROT	T1,-1
  1234	000563'	603440	400000			TLNE	T1,400000
  1235	000564'	334511	040320'			SKIPA	T2,STATEB(T1)
  1236	000565'	554511	040320'			HLRZ	T2,STATEB(T1)
  1237	000566'	254012	000000			JRST	(T2)		;DISPATCH ON BREAK CHARACTER
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 19
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1238					;HERE IF FIRST GETEXP GIVES ERROR RETURN
  1239
  1240		360600	040463'		COMAND:	LDB	T1,[POINT 6,SYMBOL,5]	;GET FIRST CHAR OF SYMBOL
  1241	000567'	135440	043034'
  1242	000570'	302440	000005			CAIE	T1,'  %'
  1243	000571'	254000	000451'			JRST	LEVEL2		;PUNT
  1244						;SKIPN	CMDFIL
  1245						;  JRST	ILLCHR
  1246	000572'	200440	040463'			MOVE	T1,SYMBOL	;GET SYMBOL
  1247		054757	645700			CAMN	T1,[SIXBIT \%GOTO\]
  1248	000573'	316440	043035'
  1249	000574'	254000	000600'			JRST	%GOTO
  1250		055146	000000			CAMN	T1,[SIXBIT \%IF\]
  1251	000575'	316440	043036'
  1252	000576'	254000	000645'			JRST	%IF
  1253	000577'	254000	001640'			JRST	ILLCHR
  1254
  1255					;HERE IF DOING "%GOTO"
  1256	000600'	260740	006776'		%GOTO:	CALL	SIXIN		;FIND WHERE TO GO
  1257	000601'	254000	001640'			JRST	ILLCHR
  1258	000602'	202440	040463'		%GOTO3:	MOVEM	T1,SYMBOL	;REMEMBER WHERE TO GO
  1259	000603'	260740	005153'			CALL	SYMFND		;SEE IF WE KNOW IT
  1260		260740	000620'			JRST	[CALL	FNDTAG
  1261		254000	001640'				JRST	ILLCHR
  1262		254000	000605'				JRST	.+1 ]
  1263	000604'	254000	043037'
  1264	000605'	332000	003274'			SKIPE	CSECHO		;ECHOING COMMAND FILE ?
  1265	000606'	254000	000613'			JRST	%GOTO5		;NO
  1266	000607'	260740	007621'			CALL	CRLTYP		;BEGIN WITH A FLOURISH
  1267	000610'	200445	000000			MOVE	T1,(SYM)	;GET TAG NAME
  1268	000611'	260740	007600'			CALL	SIXTYP
  1269	000612'	260740	007607'			CALL	COLTYP		;END WITH A ":"
  1270	000613'	200445	000001		%GOTO5:	MOVE	T1,1(SYM)	;GET VALUE
  1271	000614'	202440	003276'			MOVEM	T1,CMDCNT	;WHERE WE WILL BE
  1272	000615'	260740	006741'			CALL	FILPOS		;POSITION FILE
  1273	000616'	254000	001640'			JRST	ILLCHR
  1274	000617'	254000	000451'			JRST	LEVEL2
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 20
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1275					;HERE TO SEARCH THROUGH REST OF FILE TO FIND TAG
  1276
  1277	000620'	563000	003274'		FNDTAG:	HRROS	CSECHO		;SUPPRESS ECHO WHILE SEARCHING
  1278	000621'	260740	006776'			CALL	SIXIN		;GET NEXT SIXBIT WORD
  1279	000622'	254000	000641'			JRST	FNDTG8
  1280	000623'	302640	000072			CAIE	T5,":"		;WAS THAT A TAG DEFINITION ?
  1281	000624'	254000	000641'			JRST	FNDTG8		;NO
  1282		360600	000011			LDB	T2,[POINT 6,T1,5]	;DID IT START WITH A % ?
  1283	000625'	135500	043042'
  1284	000626'	302500	000005			CAIE	T2,'  %'
  1285	000627'	254000	000641'			JRST	FNDTG8
  1286	000630'	200500	003276'			MOVE	T2,CMDCNT	;VALUE OF TAG
  1287	000631'	205540	000001			MOVSI	T3,SMF.SU	;SUPPRESSED
  1288	000632'	402000	000014			SETZM	T4		;MISC
  1289	000633'	260740	005232'			CALL	ADDSYM		;ADD IT TO OUR TABLE
  1290	000634'	200445	000000			MOVE	T1,(SYM)	;GET SYMBOL
  1291	000635'	312440	040463'			CAME	T1,SYMBOL	;WAS THIS WHAT WE WANTED ?
  1292	000636'	254000	000641'			JRST	FNDTG8		;NO SO KEEP LOOKING
  1293	000637'	553000	003274'			HRRZS	CSECHO		;TURN ECHOING BACK ON
  1294	000640'	254000	005177'			RETSKP
  1295
  1296	000641'	332000	003275'		FNDTG8:	SKIPE	CMDFIL		;DID WE HIT END OF FILE ?
  1297	000642'	254000	000620'			JRST	FNDTAG		;NO SO KEEP LOOKING
  1298	000643'	553000	003274'			HRRZS	CSECHO		;TURN ECHO BACK ON
  1299	000644'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 21
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1300					;HERE IF DOING A %IF COMMAND
  1301	000645'	260740	006776'		%IF:	CALL	SIXIN		;GET CONDITION
  1302	000646'	254000	001640'			JRST	ILLCHR		;LOSE
  1303	000647'	400540	000000			SETZ	T3,
  1304	000650'	336013	000732'		%IF..3:	SKIPN	%IFLST(T3)
  1305	000651'	254000	001640'			JRST	ILLCHR		;LOSE CAUSE CAN'T FIND THAT TYPE
  1306	000652'	312453	000732'			CAME	T1,%IFLST(T3)	;FIND IT ?
  1307	000653'	344540	000650'			AOJA	T3,%IF..3
  1308	000654'	254033	000751'			JRST	@%IFDSP(T3)	;DISPATCH ON TYPE OF CONDITION
  1309
  1310					;HERE FOR "%IF DEF" OR "IF DF"
  1311	000655'	260740	006776'		%IFDEF:	CALL	SIXIN		;GET WHAT MIGHT BE DEFINED
  1312	000656'	254000	001640'			JRST	ILLCHR		;LOSE CAUSE END OF FILE
  1313	000657'	260740	005153'			CALL	SYMFND		;GO SEE IF WE CAN FIND IT
  1314	000660'	254000	000727'			JRST	%IFNOT		;NOT DEFINE SO DON'T DO IT
  1315	000661'	254000	000716'			JRST	%IFTRUE		;FOUND IT
  1316
  1317					;HERE FOR "%IF ERR"
  1318	000662'	627400	010000		%IFERR:	TXZN	FLG,F.CERR
  1319	000663'	254000	000727'			JRST	%IFNOT		;DON'T DO IT
  1320	000664'	254000	000716'			JRST	%IFTRU		;DO IT
  1321
  1322					;HERE FOR "%IF NDF"
  1323	000665'	260740	006776'		%IFNDF:	CALL	SIXIN		;GET SYMBOL TO CHECK
  1324	000666'	254000	001640'			JRST	ILLCHR		;LOSE
  1325	000667'	260740	005153'			CALL	SYMFND		;SEE IF WE CAN FIND IT
  1326	000670'	254000	000716'			JRST	%IFTRUE		;WHAT HE WAS LOOKING FOR
  1327	000671'	254000	000727'			JRST	%IFNOT
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 22
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1328					;HERE FOR "IF EQ"
  1329		332000	000011		%IF.EQ:	MOVE	T1,[SKIPE T1]
  1330	000672'	200440	043043'
  1331	000673'	254000	000706'			JRST	%IFEXP
  1332
  1333					;HERE FOR "%IF G" OR "%IF GT"
  1334		337000	000011		%IF.GT:	MOVE	T1,[SKIPG T1]
  1335	000674'	200440	043044'
  1336	000675'	254000	000706'			JRST	%IFEXP
  1337
  1338					;HERE FOR "%IF GE"
  1339		335000	000011		%IF.GE:	MOVE	T1,[SKIPGE T1]
  1340	000676'	200440	043045'
  1341	000677'	254000	000706'			JRST	%IFEXP
  1342
  1343					;HERE FOR "%IF NE" OR "%IF N"
  1344		336000	000011		%IF.NE:	MOVE	T1,[SKIPN T1]
  1345	000700'	200440	043046'
  1346	000701'	254000	000706'			JRST	%IFEXP
  1347
  1348					;HERE FOR "%IF L" OR "%IF LT"
  1349		331000	000011		%IF.LT:	MOVE	T1,[SKIPL T1]
  1350	000702'	200440	043047'
  1351	000703'	254000	000706'			JRST	%IFEXP
  1352
  1353					;HERE FOR "%IF LE"
  1354		333000	000011		%IF.LE:	MOVE	T1,[SKIPLE T1]
  1355	000704'	200440	043050'
  1356	000705'	254000	000706'			JRST	%IFEXP
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 23
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1357	000706'	261740	000011		%IFEXP:	PUSH	P,T1		;SAVE TEST
  1358	000707'	260740	001075'			CALL	GETEXP		;GET EXPRESSION TO EVALUATE
  1359	000710'	254000	001640'			JRST	ILLCHR		;LOSE CAUSE EPRESSION NOT HERE
  1360	000711'	602440	100000			TRNE	T1,100000	;IS THIS NEGATIVE ?
  1361	000712'	465440	077777			ORCMI	T1,077777	;EXTEND SIGN
  1362	000713'	262740	000012			POP	P,T2		;GET TEST
  1363	000714'	256000	000012			XCT	T2
  1364	000715'	254000	000727'			JRST	%IFNOT		;NOT TRUE
  1365	000716'	260740	006776'		%IFTRU:	CALL	SIXIN
  1366	000717'	254000	001640'			JRST	ILLCHR		;MUST BE END OF FILE
  1367	000720'	400500	000000			SETZ	T2,
  1368	000721'	245440	000006			ROTC	T1,6
  1369	000722'	302500	000005			CAIE	T2,'  %'
  1370	000723'	245440	777772			ROTC	T1,-6
  1371	000724'	201500	000005			MOVEI	T2,'  %'
  1372	000725'	245440	777772			ROTC	T1,-6
  1373	000726'	254000	000602'			JRST	%GOTO3		;BRANCH TO THAT TAG
  1374
  1375					;HERE BECAUSE CONDITION NOT TRUE
  1376	000727'	260740	006776'		%IFNOT:	CALL	SIXIN
  1377	000730'	254000	001640'			JRST	ILLCHR
  1378	000731'	254000	000451'			JRST	LEVEL2		;ON TO OTHER THINGS
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 24
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1379					DEFINE	NAMES <
  1380						X	DEF,%IFDEF
  1381						X	DF,%IFDEF
  1382						X	E,%IF.EQ
  1383						X	EQ,%IF.EQ
  1384						X	ERR,%IFERR
  1385						X	G,%IF.GT
  1386						X	GE,%IF.GE
  1387						X	GT,%IF.GT
  1388						X	N,%IF.NE
  1389						X	NDF,%IFNDF
  1390						X	NE,%IF.NE
  1391						X	L,%IF.LT
  1392						X	LE,%IF.LE
  1393						X	LT,%IF.LT
  1394					>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 25
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1395						DEFINE	X (A,B),< SIXBIT \A\ >
  1396	000732'	444546	000000		%IFLST:	NAMES
  1397	000733'	444600	000000
  1398	000734'	450000	000000
  1399	000735'	456100	000000
  1400	000736'	456262	000000
  1401	000737'	470000	000000
  1402	000740'	474500	000000
  1403	000741'	476400	000000
  1404	000742'	560000	000000
  1405	000743'	564446	000000
  1406	000744'	564500	000000
  1407	000745'	540000	000000
  1408	000746'	544500	000000
  1409	000747'	546400	000000
  1410	000750'	000000	000000			Z
  1411						DEFINE	X (A,B),< EXP B >
  1412	000751'	000000	000655'		%IFDSP:	NAMES
  1413	000752'	000000	000655'
  1414	000753'	000000	000672'
  1415	000754'	000000	000672'
  1416	000755'	000000	000662'
  1417	000756'	000000	000674'
  1418	000757'	000000	000676'
  1419	000760'	000000	000674'
  1420	000761'	000000	000700'
  1421	000762'	000000	000665'
  1422	000763'	000000	000700'
  1423	000764'	000000	000702'
  1424	000765'	000000	000704'
  1425	000766'	000000	000702'
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 26
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1426					;HERE TO DO SS OR DD FIELD
  1427	000767'	261740	000011		LEVEL5:	PUSH	P,T1
  1428	000770'	260740	001014'			CALL	GETOPR		;GET OPERAND
  1429		262740	000011			JRST	[POP	P,T1		;CLEAN OFF STACK
  1430		262740	000011				POP	P,T1		;POP OFF RETURN
  1431		254000	000451'				JRST	LEVEL2 ]
  1432	000771'	254000	043051'
  1433		220600	000011			LDB	T3,[POINT 6,T1,17]	;GET MODE
  1434	000772'	135540	043054'
  1435	000773'	302540	000027			CAIE	T3,27		;IMMEDIATE ?
  1436	000774'	306540	000037			CAIN	T3,37		;OR ABSOLUTE ?
  1437	000775'	254000	000777'			JRST	LEVEL4
  1438	000776'	301540	000060			CAIL	T3,60
  1439		136440	040421'		LEVEL4:	JRST	[IDPB	T1,DAT
  1440		242440	777770				LSH	T1,-^D8
  1441		136440	040421'				IDPB	T1,DAT
  1442		201440	000002				MOVEI	T1,2
  1443		272440	040423'				ADDM	T1,DTFINP
  1444		254000	001000'				JRST	.+1 ]
  1445	000777'	254000	043055'
  1446	001000'	262740	000011			POP	P,T1		;GET POSITION
  1447	001001'	242551	000000			LSH	T3,(T1)
  1448	001002'	200517	777776			MOVE	T2,-2(P)	;GET POINTER TO OPCODE
  1449	001003'	135440	000012			LDB	T1,T2		;GET LOW ORDER BITS
  1450	001004'	134500	000012			ILDB	T2,T2		;GET HIGH ORDER BITS
  1451		101000	000011			DPB	T2,[POINT 8,T1,27]
  1452	001005'	137500	043063'
  1453	001006'	660453	000000			TRO	T1,(T3)		;SET SS OR DD MODE
  1454	001007'	200517	777776			MOVE	T2,-2(P)	;GET POINTER TO OPCODE
  1455	001010'	137440	000012			DPB	T1,T2		;SAVE LOW ORDER BITS
  1456	001011'	242440	777770			LSH	T1,-^D8
  1457	001012'	136440	000012			IDPB	T1,T2		;SAVE HIGH ORDER BITS
  1458	001013'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 27
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1459					;HERE TO GET AN OPERAND
  1460					; CALL	CALL GETOPR
  1461					;	LOSE RETURN
  1462					;	WIN	WITH T1/ MODE,,ADR
  1463	001014'	621400	000016		GETOPR:	TXZ	FLG,F.HASH!F.PERC!F.LPAR
  1464	001015'	205040	400000			MOVSI	AC1,400000		;BUILD MODE HERE
  1465	001016'	260740	001075'		GETOP0:	CALL	GETEXP
  1466	001017'	263740	000000			RET
  1467	001020'	135440	040634'			LDB	T1,CMDPTR		;GET BREAK CHAR
  1468	001021'	306440	000100			CAIN T1,"@"
  1469		667040	000010			JRST [	TLON AC1,10		;BIT FOR INDIRECT
  1470		603400	000040				TXNE FLG,F.GEXP
  1471		254000	001640'				JRST ILLCHR
  1472		254000	001016'				JRST GETOP0]
  1473	001022'	254000	043064'
  1474	001023'	306440	000043			CAIN T1,"#"
  1475		667400	000002			JRST [	TXON FLG,F.HASH
  1476		603400	000040				TXNE FLG,F.GEXP
  1477		254000	001640'				JRST ILLCHR
  1478		254000	001016'				JRST GETOP0]
  1479	001024'	254000	043070'
  1480	001025'	306440	000055			CAIN	T1,"-"			;IS THIS AUTO DECREMENT ?
  1481		667040	000040			JRST	[TLON	AC1,40		;FLAG AUTO DECREMENT
  1482		603400	000040				TXNE	FLG,F.GEXP	;WAS THERE ANY DATA ?
  1483		254000	001640'				JRST	ILLCHR
  1484		260740	010604'				CALL	GETCHR		;GET THE (
  1485		136440	040634'				IDPB	T1,CMDPTR
  1486		302440	000050				CAIE	T1,"("
  1487		254000	001640'				JRST	ILLCHR
  1488		254000	001047'				JRST	GETOP5 ]
  1489	001026'	254000	043074'
  1490	001027'	306440	000050			CAIN	T1,"("
  1491		663400	000010			JRST	[TXOE	FLG,F.LPAR
  1492		254000	001640'				JRST	ILLCHR
  1493		540040	040426'				HRR	AC1,EXPRESS	;IN CASE INDEXED
  1494		607040	000010				TLNN	AC1,10		;HAVE A @ ALSO ?
  1495		603400	000040				TXNE	FLG,F.GEXP	;WAS IT INDEXED ?
  1496		661040	000060				TLO	AC1,60		;REMEMBER WAS INDEXED
  1497		254000	001047'				JRST	GETOP5 ]
  1498	001030'	254000	043104'
  1499	001031'	607400	000040			TXNN	FLG,F.GEXP	;DID WE GET SOMETHING ?
  1500	001032'	254000	001640'			JRST	ILLCHR
  1501	001033'	540040	040426'			HRR	AC1,EXPRESS	;GET EXPRESSION
  1502	001034'	603400	000400			TXNE	FLG,F.SREG
  1503		220300	000001			JRST	[DPB	AC1,[POINT 3,AC1,17]
  1504		137040	043113'
  1505		254000	001062'				JRST	GETOP8 ]
  1506	001035'	254000	043114'
  1507	001036'	603400	000002			TXNE	FLG,F.HASH	;WAS THAT IMMEDIATE ?
  1508		661040	000027			JRST	[TLO	AC1,27		;SET IMMEDIATE OR ABSOLUTE
  1509		254000	001062'				JRST	GETOP8 ]
  1510	001037'	254000	043116'
  1511	001040'	661040	000067			TLO	AC1,67
  1512	001041'	551441	777774			HRRZI	T1,-4(AC1)
  1513	001042'	274440	040423'			SUB	T1,DTFINP
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 27-1
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1514	001043'	405440	177777			ANDI	T1,177777
  1515	001044'	562040	040543'			HRROM	AC1,LSTIAD	;IN CASE ENDS WITH AN HT
  1516	001045'	540040	000011			HRR	AC1,T1
  1517	001046'	254000	001063'			JRST	GETOP9
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 28
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1518					;HERE TO GET THE REGISTER NAME IN OPERAND SPECIFICATION
  1519	001047'	260740	001065'		GETOP5:	CALL	GETREG		;GET REGISTER NAME
  1520		220300	000001			DPB	T1,[POINT 3,AC1,17]	;PUT REGISTER NAME IN MODE
  1521	001050'	137440	043113'
  1522	001051'	135440	040634'			LDB	T1,CMDPTR	;GET BREAK CHARACTER
  1523	001052'	302440	000051			CAIE	T1,")"
  1524	001053'	254000	001640'			JRST	ILLCHR
  1525	001054'	260740	010604'		GETOP6:	CALL	GETCHR		;GET NEXT CHARACTER
  1526	001055'	136440	040634'			IDPB	T1,CMDPTR
  1527	001056'	306440	000053			CAIN	T1,"+"		;WAS THAT AUTO INCREMENT ?
  1528		667040	000020			JRST	[TLON	AC1,20		;ALREADY SEEN "+"
  1529		603040	000040				TLNE	AC1,40
  1530		254000	001640'				JRST	ILLCHR
  1531		254000	001054'				JRST	GETOP6 ]
  1532	001057'	254000	043120'
  1533	001060'	607040	000070			TLNN	AC1,70
  1534	001061'	661040	000010			TLO	AC1,10
  1535	001062'	202440	040543'		GETOP8:	MOVEM	T1,LSTIAD	;LAST ADDRESS INPUT
  1536	001063'	200440	000001		GETOP9:	MOVE	T1,AC1		;PUT RESULT IN RIGHT REG
  1537	001064'	254000	005177'			RETSKP
  1538
  1539					;HERE TO GET A REGISTER ARGUMENT
  1540	001065'	260740	001075'		GETREG:	CALL	GETEXP		;GET REGISTER NAME
  1541	001066'	254000	001640'			JRST	ILLCHR
  1542	001067'	607400	000400			TXNN	FLG,F.SREG
  1543	001070'	254000	001640'			JRST	ILLCHR
  1544	001071'	200440	040426'			MOVE	T1,EXPRESS
  1545	001072'	505440	400000			HRLI	T1,400000
  1546	001073'	202440	040543'			MOVEM	T1,LSTIAD	;LAST ADDRESS INPUT
  1547	001074'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 29
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1548					;HERE TO GET AN EXPRESSION
  1549					; CALL	CALL	GETEXP
  1550					;	LOSE RETURN
  1551					;	WIN RETURN	EXPRESSION IN T1, AND FLAGS SET
  1552	001075'	402000	040426'		GETEXP:	SETZM	EXPRES		;ACCUMULATED EXPRESSION
  1553	001076'				GTEXP1:	TXZ	FLG,F..ESC!F..SIM!F.GEXP!F.SYML!F.SYMB!F.TEXT!F.IOCT!F.IDEC!F.IHEX!F.SREG!F.
  1554		021460	203700		FELE
  1555	001076'	630400	043124'
  1556	001077'	402000	040524'			SETZM	INPOPR		;CLEAR INPUT OPERATOR
  1557	001100'	402000	040427'			SETZM	REMAIN		;REMAINDER OF LAST DIVISION
  1558	001101'	402000	042173'			SETZM	OCTIN#
  1559	001102'	402000	042167'			SETZM	DECIN#
  1560	001103'	402000	042170'			SETZM	HEXIN#
  1561	001104'	402000	040463'			SETZM	SYMBOL
  1562		440600	040463'			MOVE	T1,[POINT 6,SYMBOL]
  1563	001105'	200440	043125'
  1564	001106'	202440	040462'			MOVEM	T1,SYMPTR
  1565	001107'	260740	010604'		GTEXP2:	CALL	GETCHR		;GET FIRST CHARACTER
  1566	001110'	306440	000040			CAIN	T1," "		;WAS IT A BLANK ?
  1567	001111'	254000	001107'			JRST	GTEXP2		;YES SO FLUSH IT
  1568	001112'	304000	000000			CAIA
  1569
  1570	001113'	260740	010604'		LOOP:	CALL	GETCHR		;GET A COMMAND CHAR
  1571	001114'	136440	040634'			IDPB	T1,CMDPTR	;REMEMBER CHAR IN CASE NEED TO RESCAN
  1572	001115'	550500	000011		LOOP1:	HRRZ	T2,T1
  1573	001116'	242500	777777			LSH	T2,-1
  1574	001117'	602440	000001			TRNE	T1,1
  1575	001120'	334520	000006			SKIPA	T2,@STATE
  1576	001121'	554520	000006			HLRZ	T2,@STATE
  1577	001122'	254012	000000			JRST	(T2)		;DISPATCH ON CHARACTER
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 30
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1578					;HERE WHEN ASSEMBLING NUMBER AND FIND A PERIOD
  1579	001123'	606400	000600		ASSPER:	TXNN	FLG,F.IDEC!F.IOCT
  1580	001124'	254000	001155'			JRST	ASSYMB
  1581	001125'	660400	000400			TXO	FLG,F.IDEC
  1582	001126'	620400	001200			TXZ	FLG,F.IOCT!F.IHEX
  1583	001127'	254000	001157'			JRST	ASYMB2
  1584					;HERE WHEN NUMBER MUST BE DECIMAL
  1585	001130'	660400	000400		ASSDEC:	TXO	FLG,F.IDEC
  1586	001131'	620400	000200			TXZ	FLG,F.IOCT
  1587
  1588					;HERE WHEN ASSEMBLING A OCTAL, DECIMAL OR HEX NUMBER
  1589	001132'	606400	001400		ASSNUM:	TXNN	FLG,F.IDEC!F.IHEX
  1590	001133'	660400	000200			TXO	FLG,F.IOCT
  1591	001134'	200500	042173'			MOVE	T2,OCTIN
  1592	001135'	242500	000003			LSH	T2,3
  1593	001136'	271511	777720			ADDI	T2,-60(T1)
  1594	001137'	202500	042173'			MOVEM	T2,OCTIN
  1595	001140'	200500	042167'			MOVE	T2,DECIN
  1596	001141'	221500	000012			IMULI	T2,^D10
  1597	001142'	271511	777720			ADDI	T2,-60(T1)
  1598	001143'	202500	042167'			MOVEM	T2,DECIN
  1599	001144'	200500	042170'			MOVE	T2,HEXIN
  1600	001145'	242500	000004			LSH	T2,4
  1601	001146'	271511	777720			ADDI	T2,-60(T1)
  1602	001147'	202500	042170'			MOVEM	T2,HEXIN
  1603	001150'	254000	001157'			JRST	ASYMB2
  1604
  1605					;HERE WHEN ENCOUNTER A PERCENT SIGN - POSSIBLE TAG OR REG NAME
  1606	001151'	607400	020000		ASSPRC:	TXNN	FLG,F.FELE	;HAVE WE DONE FIRST ELEMENT OF EXPRESSION ?
  1607	001152'	200500	040462'			MOVE	T2,SYMPTR	;GET POINTER TO SYMBOL
  1608		440600	040463'			CAME	T2,[POINT 6,SYMBOL]	;STARTED SYMBOL YET ?
  1609	001153'	312500	043125'
  1610	001154'	254000	001316'			JRST	ACCUM		;CAN'T HAVE THIS IN MIDDLE !
  1611
  1612					;HERE WHEN ASSEMBLING A SYMBOL
  1613	001155'	660400	002000		ASSYMB:	TXO	FLG,F.SYMB
  1614	001156'	620400	001600			TXZ	FLG,F.IDEC!F.IOCT!F.IHEX
  1615
  1616	001157'	661400	000040		ASYMB2:	TXO	FLG,F.GEXP	;GOT SOMETHING
  1617	001160'	301440	000141			CAIL	T1,40+"A"	;CHECK FOR LOWER CASE
  1618	001161'	303440	000172			CAILE	T1,40+"Z"
  1619	001162'	275440	000040			SUBI	T1,40		;CONVERT CHAR TO SIXBIT
  1620	001163'	200500	040462'			MOVE	T2,SYMPTR	;GET POINTER TO SYMBOL
  1621		000600	040463'			CAME	T2,[POINT 6,SYMBOL,35]
  1622	001164'	312500	043126'
  1623	001165'	136440	040462'			IDPB	T1,SYMPTR	;ADD CHAR TO SYMBOL
  1624	001166'	254000	001113'			JRST	LOOP
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 31
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1625					;HERE IF END EXPRESSION WITH A SPACE
  1626	001167'	607400	020000		EXPSPC:	TXNN	FLG,F.FELE	;IS THIS FIRST ELEMENT OF EXPRESSION ?
  1627	001170'	606400	002000			TXNN	FLG,F.SYMB	;EVALUATING A SYMBOL ?
  1628	001171'	254000	001201'			JRST	EXPLUS		;AFTER FIRST SUBEXPRESSION SAME AS PLUS
  1629	001172'	260740	001407'			CALL	EVLSYM		;FIND WHAT SYMBOL IS
  1630	001173'	263740	000000			RET
  1631	001174'	607240	000004			TLNN	SYM,SMF.IN	;WAS THAT AN INSTRUCTION
  1632	001175'	254000	001201'			JRST	EXPLUS		;NO SO SAME AS PLUS
  1633	001176'	200445	000001			MOVE	T1,1(SYM)	;GET VALUE
  1634	001177'	552440	040426'			HRRZM	T1,EXPRESS
  1635	001200'	254000	005177'			RETSKP
  1636
  1637					;HERE IF END EXPRESSION WITH A PLUS
  1638	001201'	634440	000011		EXPLUS:	TDZA	T1,T1		;CODE FOR NEXT TIME IS 0
  1639
  1640	001202'	201440	000001		EXPMIN:	MOVEI	T1,1
  1641	001203'	254000	001215'			JRST	EXP.DO
  1642
  1643	001204'	201440	000002		EXPMUL:	MOVEI	T1,2
  1644	001205'	254000	001215'			JRST	EXP.DO
  1645
  1646	001206'	201440	000003		EXPDIV:	MOVEI	T1,3
  1647	001207'	254000	001215'			JRST	EXP.DO
  1648
  1649	001210'	201440	000004		EXPIOR:	MOVEI	T1,4
  1650	001211'	254000	001215'			JRST	EXP.DO
  1651
  1652	001212'	201440	000005		EXPAND:	MOVEI	T1,5
  1653	001213'	254000	001215'			JRST	EXP.DO
  1654
  1655	001214'	201440	000006		EXPXOR:	MOVEI	T1,6
  1656	001215'	661400	020000		EXP.DO:	TXO	FLG,F.FELE	;HAVE SEEN FIRST ELEMENT
  1657	001216'	200511	040525'			MOVE	T2,PRECED(T1)	;GET PRECEDENCE OF NEW OPERATOR
  1658	001217'	200540	040524'			MOVE	T3,INPOPR	;PREVIOUS OPERATOR
  1659	001220'	200553	040525'			MOVE	T3,PRECED(T3)	;GET PRECEDENCE OF OLD OPERATOR
  1660	001221'	317500	000013			CAMG	T2,T3
  1661	001222'	254000	001235'			JRST	EXPDO5
  1662	001223'	261740	040426'			PUSH	P,EXPRESS	;SAVE PARTIAL EXPRESSION SO FAR
  1663	001224'	261740	040524'			PUSH	P,INPOPR	;AND PREVIOUS OPERATOR
  1664	001225'	402000	040426'			SETZM	EXPRESS		;INITIALIZE EXPRESSION
  1665	001226'	402000	040524'			SETZM	INPOPR
  1666	001227'	260740	001235'			PUSHJ	P,EXPDO5	;DO NEXT PART OF EXPRESSION
  1667	001230'	370017	777776			SOS	-2(P)		;UNSKIP RETURN FROM ACCUM3
  1668	001231'	262740	040524'			POP	P,INPOPR	;PREVIOUS OPERATION
  1669	001232'	200500	040426'			MOVE	T2,EXPRESS	;LATEST ACCUMULATION
  1670	001233'	262740	040426'			POP	P,EXPRESS	;PREVIOUS ACCUMULATION
  1671	001234'	254000	001344'			JRST	ACCUM3
  1672	001235'	261740	000011		EXPDO5:	PUSH	P,T1		;SAVE CODE FOR NEXT TIME
  1673	001236'	260740	001316'			CALL	ACCUM		;ACCUMULATE EXPRESSION
  1674	001237'	254000	003666'			JRST	TPOPJ		;CLEAN OFF STACK THEN RETURN
  1675	001240'	262740	040524'			POP	P,INPOPR	;NEXT INPUT OPERATION
  1676	001241'	254000	001113'			JRST	LOOP		;THEN DONE
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 32
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1677					;HERE WHEN USER TYPES A <CONTROL F> - FILL FIELD
  1678
  1679	001242'	336440	040463'		CNTRLF:	SKIPN	T1,SYMBOL	;ARE WE BUILDING A SYMBOL ?
  1680	001243'	254000	001640'			JRST	ILLCHR		;DING HIM
  1681		041001	004100			MOVEI	T1,[BYTE (7)10,40,10,10,40,10,0]	;BACKUP OVER ^F
  1682	001244'	201440	043127'
  1683	001245'	200500	040704'			MOVE	T2,TTYBIT	;GET TTY BITS
  1684	001246'	603500	200000			TXNE	T2,TF.RUB	;VIDEO TERMINAL ?
  1685	001247'	260740	007655'			CALL	TYPSTR		;YES SO CLEAN SCREEN
  1686	001250'	261740	000014			PUSH	P,T4
  1687	001251'	261740	000015			PUSH	P,T5
  1688	001252'	476000	000015			SETOM	T5		;ESTABLISH COUNTER
  1689	001253'	402000	000014			SETZM	T4		;ESTABLISH MATCH
  1690	001254'	260740	002277'			CALL	MATCH		;TRY TO FIND PARTIAL MATCH
  1691	001255'	322240	001270'			JUMPE	SYM,CNTLF5
  1692	001256'	356000	000015			AOSN	T5
  1693	001257'	200605	000000			MOVE	T4,(SYM)	;GET MATCH
  1694	001260'	200445	000000			MOVE	T1,(SYM)	;GET NEW MATCH
  1695		777777	777777			SKIPA	T2,[EXP -1]	;BUILD MASK
  1696	001261'	334500	043131'
  1697	001262'	242500	000006		CNTLF3:	LSH	T2,6		;SHRINK MASK
  1698	001263'	404440	000012			AND	T1,T2		;MASK NEW MATCH
  1699	001264'	404600	000012			AND	T4,T2		;MASK PREVIOUS MATCH
  1700	001265'	312440	000014			CAME	T1,T4		;MATCH LAST MATCH ?
  1701	001266'	254000	001262'			JRST	CNTLF3
  1702	001267'	263740	000000			RET
  1703	001270'	322600	001305'		CNTLF5:	JUMPE	T4,CNTLF8	;CHECK FOR NO MATCHES
  1704	001271'	430600	040463'			XOR	T4,SYMBOL	;LEAVE ONLY NEW CHARS
  1705	001272'	322600	001304'			JUMPE	T4,CNTLF7
  1706	001273'	242600	000006		CNTLF2:	LSH	T4,6
  1707	001274'	607600	770000			TLNN	T4,770000	;SHIFTED FAR ENOUGH ?
  1708	001275'	254000	001273'			JRST	CNTLF2
  1709	001276'	400540	000000		CNTLF6:	SETZ	T3,
  1710	001277'	246540	000006			LSHC	T3,6
  1711	001300'	201453	000040			MOVEI	T1,40(T3)
  1712	001301'	136440	040634'			IDPB	T1,CMDPTR
  1713	001302'	260740	007666'			CALL	TYPCHR
  1714	001303'	326600	001276'			JUMPN	T4,CNTLF6
  1715	001304'	322640	001307'		CNTLF7:	JUMPE	T5,CNTLF9	;NO BELL IF ONLY ONE MATCH
  1716	001305'	201440	000007		CNTLF8:	MOVEI	T1,7
  1717	001306'	260740	007666'			CALL	TYPCHR
  1718	001307'	262740	000015		CNTLF9:	POP	P,T5
  1719	001310'	262740	000014			POP	P,T4
  1720		440700	040635'			MOVE	T1,[POINT 7,CMDLIN]
  1721	001311'	200440	042700'
  1722	001312'	202440	040632'			MOVEM	T1,CMDTKR	;RESCAN THE LINE
  1723	001313'	200440	040634'			MOVE	T1,CMDPTR
  1724	001314'	202440	040633'			MOVEM	T1,CMDLIM
  1725	001315'	254000	000451'			JRST	LEVEL1
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 33
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1726					;ROUTINE TO COMBINE ELEMENTS OF EXPRESSION
  1727					; MAY BE USED AS A SUBROUTINE OR AS EXIT FROM GETEXP
  1728
  1729	001316'	135440	040634'		ACCUM:	LDB	T1,CMDPTR	;THE BREAK CHAR WHICH GOT US HERE
  1730	001317'	302440	000050			CAIE	T1,"("		;WE ARE LOOKING FOR -(
  1731	001320'	254000	001333'			JRST	ACCUM2		;DEFINATELY NOT
  1732	001321'	260740	001447'			CALL	RSCAN		;GET POINTER TO PREVIOUS CHAR
  1733	001322'	135440	000012			LDB	T1,T2		;GET PREVIOUS CHAR
  1734	001323'	302440	000055			CAIE	T1,"-"		;WAS THIS AUTO DECREMENT ?
  1735	001324'	254000	001333'			JRST	ACCUM2		;NO
  1736	001325'	200440	040634'			MOVE	T1,CMDPTR	;LIMIT
  1737	001326'	336000	040632'			SKIPN	CMDTKR		;ALREADY DOING A RESCAN ?
  1738	001327'	202440	040633'			MOVEM	T1,CMDLIM	;DOING ONE NOW
  1739	001330'	202500	040632'			MOVEM	T2,CMDTKR
  1740	001331'	202500	040634'			MOVEM	T2,CMDPTR
  1741	001332'	254000	001353'			JRST	ACCUM8
  1742	001333'	400500	000000		ACCUM2:	SETZ	T2,		;IN CASE FOLLOWING DOESN'T SET UP T2
  1743	001334'	622400	002000			TXZE	FLG,F.SYMB
  1744		260740	001407'			JRST	[CALL	EVLSYM
  1745		263740	000000				RET
  1746		202440	000012				MOVEM	T1,T2		;PUT IN RIGHT REG
  1747		254000	001344'				JRST	ACCUM3 ]
  1748	001335'	254000	043132'
  1749	001336'	622400	000200			TXZE	FLG,F.IOCT
  1750	001337'	200500	042173'			MOVE	T2,OCTIN
  1751	001340'	622400	000400			TXZE	FLG,F.IDEC
  1752	001341'	200500	042167'			MOVE	T2,DECIN
  1753	001342'	622400	001000			TXZE	FLG,F.IHEX
  1754	001343'	200500	042170'			MOVE	T2,HEXIN
  1755	001344'	200440	040426'		ACCUM3:	MOVE	T1,EXPRES	;GET EXPRESSION SO FAR
  1756	001345'	200540	040524'			MOVE	T3,INPOPR	;GET INPUT OPERATOR
  1757		270440	000012			XCT	[	ADD	T1,T2
  1758		274440	000012					SUB	T1,T2
  1759		220440	000012					IMUL	T1,T2
  1760		230440	000012					IDIV	T1,T2
  1761		434440	000012					IOR	T1,T2
  1762		404440	000012					AND	T1,T2
  1763	001346'	256013	043136'					XOR	T1,T2 ](T3)
  1764	001347'	302540	000003			CAIE	T3,3		;DID WE JUST DO A DIVISION ?
  1765	001350'	400500	000000			SETZ	T2,		;NO SO NO REMAINDER
  1766	001351'	202440	040426'			MOVEM	T1,EXPRESS	;SAVE ACCUMULATED EXPRESSION
  1767	001352'	202500	040427'			MOVEM	T2,REMAIN	;SAVE NEW REMAINDER
  1768	001353'	201440	177777		ACCUM8:	MOVEI	T1,177777	;MASK FOR 16 BITS
  1769	001354'	407440	040426'			ANDB	T1,EXPRESS	;MASK OFF HIGH BITS
  1770	001355'	402000	042173'			SETZM	OCTIN
  1771	001356'	402000	042167'			SETZM	DECIN
  1772	001357'	402000	042170'			SETZM	HEXIN
  1773	001360'	402000	040463'			SETZM	SYMBOL
  1774		440600	040463'			MOVE	T2,[POINT 6,SYMBOL]
  1775	001361'	200500	043125'
  1776	001362'	202500	040462'			MOVEM	T2,SYMPTR
  1777	001363'	254000	005177'			RETSKP
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 34
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1778					;HERE BECAUSE USER FINISHED SYMBOL WITH ":"
  1779	001364'	602400	002000		DEFSYM:	TXNE	FLG,F.SYMB
  1780	001365'	336440	040463'			SKIPN	T1,SYMBOL	;SYMBOL HE DEFINED
  1781	001366'	254000	001640'			JRST	ILLCHR
  1782	001367'	332500	040430'			SKIPE	T2,LFTSAV	;WAS THIS X<TAG: ?
  1783		405500	177777			JRST	[ANDI	T2,177777	;STRIP EXTRA BITS
  1784		254000	001402'				JRST	DFSYM3 ]	;YES
  1785	001370'	254000	043145'
  1786	001371'	607340	400000			TLNN	DOT,400000
  1787	001372'	661340	777777			TLO	DOT,777777
  1788	001373'	550500	000007			HRRZ	T2,DOT		;CURRENT ADR
  1789	001374'	403540	000014			SETZB	T3,T4		;NO FLAGS OR MISC
  1790	001375'	607340	200000			TLNN	DOT,200000
  1791	001376'	661540	000002			TLO	T3,SMF.RG
  1792		360600	040463'			LDB	T1,[POINT 6,SYMBOL,5]	;GET FIRST CHAR IN SYMBOL
  1793	001377'	135440	043034'
  1794	001400'	306440	000005			CAIN	T1,'  %'
  1795		336000	003275'			JRST	[SKIPN	CMDFIL		;DOING COMMAND FILE ?
  1796		254000	001640'				JRST	ILLCHR		;NO SO THIS IS TRASH
  1797		200500	003276'				MOVE	T2,CMDCNT	;VALUE IS CHAR IN FILE
  1798		205540	000001				MOVSI	T3,SMF.SU	;SUPPRESS VALUE
  1799		254000	001402'				JRST	.+1 ]
  1800	001401'	254000	043147'
  1801	001402'	200440	040463'		DFSYM3:	MOVE	T1,SYMBOL	;GET SYMBOL AGAIN
  1802		647160	455156			MOVE T4,[SIXBIT /TYPEIN/];SAY THAT THE USER DEFINED IT
  1803	001403'	200600	043154'
  1804	001404'	260740	005232'			CALL	ADDSYM		
  1805	001405'	260740	007615'			CALL	TABTYP
  1806	001406'	254000	000451'			JRST	LEVEL1
  1807
  1808					;HERE TO EVALUATE A SYMBOL
  1809					; CALL	WITH SYMBOL SETUP
  1810					;	LOSE RETURN
  1811					;	WIN RETURN WITH SYM SETUP, VALUE IN T1, FLAGS IN T2
  1812		360600	040463'		EVLSYM:	LDB	T1,[POINT 6,SYMBOL,5]	;GET FIRST CHAR OF SYMBOL
  1813	001407'	135440	043034'
  1814	001410'	306440	000005			CAIN	T1,'  %'
  1815	001411'	263740	000000			RET
  1816	001412'	200440	040463'			MOVE	T1,SYMBOL	;GET CURRENT SYMBOL
  1817		006100	000000			CAMN	T1,[SIXBIT \ Q\]	;CHECK FOR <ALT>Q
  1818	001413'	316440	043155'
  1819		550440	040544'			JRST	[HRRZ	T1,ESC.Q.
  1820		254000	005177'				RETSKP]
  1821	001414'	254000	043156'
  1822		160000	000000			CAMN	T1,[SIXBIT \.\]	;CHECK FOR SPECIAL CASE
  1823	001415'	316440	043160'
  1824		550440	000007			JRST	[HRRZ	T1,DOT
  1825		205240	000002				MOVSI	SYM,SMF.RG
  1826		607340	400000				TLNN	DOT,400000
  1827		661340	777777				TLO	DOT,777777
  1828		607340	200000				TLNN	DOT,200000
  1829		661400	000020				TXO	FLG,F.SYML
  1830		254000	005177'				RETSKP]
  1831	001416'	254000	043161'
  1832	001417'	661400	000020			TXO	FLG,F.SYML	;ASSUME WE'LL LOAD SYM
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 34-1
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1833	001420'	260740	005153'			CALL	SYMFND		;TRY TO FIND SYMBOL
  1834	001421'	254000	001426'			JRST	SYMERR
  1835	001422'	550445	000001			HRRZ	T1,1(SYM)	;GET VALUE OF SYMBOL
  1836	001423'	603240	000002			TLNE	SYM,SMF.RG	;IS THIS A REGISTER NAME ?
  1837	001424'	661400	000400			TXO	FLG,F.SREG	;YES
  1838	001425'	254000	005177'			RETSKP
  1839
  1840		525004	020000		SYMERR:	MOVEI	T1,[ASCIZ \U   \]
  1841	001426'	201440	043170'
  1842	001427'	254000	001641'			JRST	ILLCH0		;REST LIKE ILLEGAL CHARACTER
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 35
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1843					;HERE IF USER TYPES A CONTROL R
  1844	001430'	260740	001447'		CNTRLR:	CALL	RSCAN
  1845	001431'	202500	040634'			MOVEM	T2,CMDPTR	;SAVE PUTTER WITHOUT CONTROL R
  1846	001432'	260740	001434'			CALL	CNTLR3
  1847	001433'	254000	001113'			JRST	LOOP
  1848
  1849					;HERE TO RETYPE COMMAND
  1850	001434'	260740	007621'		CNTLR3:	CALL	CRLTYP		;TYPE A <CR><LF> TO BEGIN
  1851		440700	040635'			MOVE	T2,[POINT 7,CMDLIN]	;GET POINTER TO COMMAND LINE
  1852	001435'	200500	042700'
  1853	001436'	316500	040634'			CAMN	T2,CMDPTR	;IS LINE EMPTY ?
  1854	001437'	254000	007621'			JRST	CRLTYP		;EXTRA FLOURISH TO END
  1855	001440'	134440	000012		CNTLR4:	ILDB	T1,T2		;GET NEXT CHAR TO ECHO
  1856	001441'	306440	000033			CAIN	T1,33		;IS CHAR AN ALTOMODE ?
  1857	001442'	201440	000044			MOVEI	T1,"$"		;YES SO SPECIAL ECHO
  1858	001443'	260740	007666'			CALL	TYPCHR		;ECHO THE CHAR
  1859	001444'	312500	040634'			CAME	T2,CMDPTR	;TYPED ENOUGH YET ?
  1860	001445'	254000	001440'			JRST	CNTLR4		;LOOP BACK FOR REST OF CHARS
  1861	001446'	263740	000000			RET
  1862
  1863					;HERE TO BACKUP COMMAND POINTER
  1864					; CALL	CALL	RSCAN
  1865					;	RETURN	WITH T2 CONTAINING POINTER TO PREVIOUS CHAR
  1866					;		T1 CONTAINS POINTER TO PREVIOUS-2 CHAR
  1867	001447'	403440	000012		RSCAN:	SETZB	T1,T2
  1868		440700	040635'			MOVE	T3,[POINT 7,CMDLIN]
  1869	001450'	200540	042700'
  1870	001451'	316540	040634'		RSCAN2:	CAMN	T3,CMDPTR	;HIT END YET ?
  1871	001452'	254000	005200'			JRST	R
  1872	001453'	200440	000012			MOVE	T1,T2
  1873	001454'	200500	000013			MOVE	T2,T3
  1874	001455'	133000	000013			IBP	T3
  1875	001456'	254000	001451'			JRST	RSCAN2
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 36
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1876					;HERE WHEN USER TYPES A RUBOUT
  1877	001457'	260740	001447'		COMRUB:	CALL	RSCAN		;BACK UP POINTER
  1878	001460'	322440	001511'			JUMPE	T1,CNTRLU	;IF NOTHING IS SAME AS ^U
  1879	001461'	202440	040633'			MOVEM	T1,CMDLIM
  1880	001462'	202440	040634'			MOVEM	T1,CMDPTR	;IN CASE CALL CNTLR3
  1881		440700	040635'			MOVE	T1,[POINT 7,CMDLIN]
  1882	001463'	200440	042700'
  1883	001464'	202440	040632'			MOVEM	T1,CMDTKR	;RESCAN THE COMMAND
  1884	001465'	200440	040704'			MOVE	T1,TTYBIT	;GET TTY DESCRIPTION WORD
  1885	001466'	607440	200000			TXNN	T1,TF.RUB	;IS THIS A VIDEO TERMINAL ?
  1886	001467'	254000	001500'			JRST	CMRUB3		;GO DO "\X" TYPE ECHO
  1887	001470'	135440	000012			LDB	T1,T2		;GET CHAR JUST RUBBED OUT
  1888	001471'	306440	000033			CAIN	T1,33		;IS IT AN ALTMODE ?
  1889	001472'	201440	000044			MOVEI	T1,"$"
  1890	001473'	305440	000040			CAIGE	T1," "		;BE SURE USUAL PRINTING CHAR
  1891		260740	001434'			JRST	[	CALL	CNTLR3		;ECHO COMMAND
  1892		254000	001506'					JRST	CMRUB8 ]
  1893	001474'	254000	043171'
  1894		041001	000000			MOVEI	T1,[BYTE (7)10,40,10,0]
  1895	001475'	201440	043173'
  1896	001476'	260740	007655'			CALL	TYPSTR
  1897	001477'	254000	001506'			JRST	CMRUB8
  1898
  1899	001500'	201440	000134		CMRUB3:	MOVEI	T1,"\"
  1900	001501'	260740	007666'			CALL	TYPCHR
  1901	001502'	135440	000012			LDB	T1,T2
  1902	001503'	306440	000033			CAIN	T1,33		;WAS THIS AN ALTMODE ?
  1903	001504'	201440	000044			MOVEI	T1,"$"
  1904	001505'	260740	007666'			CALL	TYPCHR		;ECHO CHAR JUST RUBBED OUT
  1905	001506'				CMRUB8:
  1906		040537'	040534'		CMRUB9:	MOVE	T1,[ESCSAV,,BYTCNT]	;RESTORE THINGS SET WITH
  1907	001506'	200440	043174'
  1908	001507'	251440	040536'			BLT	T1,BYTCNT+2	; ESCAPE COMMANDS
  1909	001510'	254000	000451'			JRST	LEVEL1
  1910
  1911					;HERE WHEN USER TYPES A CONTROL U
  1912		037617	074022		CNTRLU:	MOVEI	T1,[BYTE (7)7,"x","x","x",11,0]
  1913	001511'	201440	043175'
  1914	001512'	260740	007655'			CALL	TYPSTR
  1915	001513'	254000	001506'			JRST	CMRUB9
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 37
DDT11	MAC	18-May-81 17:27		MAJOR LOOP

  1916					;HERE WHEN USER TYPES A CONTROL W - DELETE FIELD FROM TYPEIN
  1917
  1918	001514'	260740	001447'		CNTRLW:	CALL	RSCAN		;BACKUP POINTER
  1919	001515'	322440	001511'			JUMPE	T1,CNTRLU	;IF NOTHING SAME AS ^U
  1920	001516'	334500	000011			SKIPA	T2,T1
  1921	001517'	260740	001447'		CNTLW1:	CALL	RSCAN
  1922	001520'	202500	040633'			MOVEM	T2,CMDLIM
  1923	001521'	202500	040634'			MOVEM	T2,CMDPTR
  1924		440700	040635'			MOVE	T1,[POINT 7,CMDLIN]
  1925	001522'	200440	042700'
  1926	001523'	202440	040632'			MOVEM	T1,CMDTKR
  1927	001524'	322440	001511'			JUMPE	T1,CNTRLU	;IF NOTHING IS SAME AS ^U
  1928	001525'	135500	040634'			LDB	T2,CMDPTR	;GET LAST CHAR
  1929	001526'	306500	000056			CAIN	T2,"."
  1930	001527'	254000	001517'			JRST	CNTLW1		;KEEP BACKING UP
  1931	001530'	301500	000060			CAIL	T2,"0"
  1932	001531'	303500	000172			CAILE	T2,"Z"+40
  1933	001532'	254000	001542'			JRST	CNTLW9
  1934	001533'	303500	000071			CAILE	T2,"9"
  1935	001534'	301500	000141			CAIL	T2,"A"+40
  1936	001535'	254000	001517'			JRST	CNTLW1		;KEEP BACKING
  1937	001536'	301500	000101			CAIL	T2,"A"
  1938	001537'	303500	000132			CAILE	T2,"Z"
  1939	001540'	254000	001542'			JRST	CNTLW9
  1940	001541'	254000	001517'			JRST	CNTLW1
  1941	001542'	260740	001434'		CNTLW9:	CALL	CNTLR3		;RETYPE THE LINE
  1942	001543'	254000	000451'			JRST	LEVEL1		;THEN REDO IT
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 38
DDT11	MAC	18-May-81 17:27		COMMAND CHARACTERS

  1943						SUBTTL	COMMAND CHARACTERS
  1944
  1945					;HERE WHEN COMMAND STARTS WITH A QUOTE
  1946	001544'	603400	000040		QUOTE:	TXNE	FLG,F.GEXP	;DID ANYTHING PRECEDE THE " ?
  1947	001545'	254000	001640'			JRST	ILLCHR		;BOUNCE REQUEST
  1948	001546'	540300	000370*			HRR	STATE,.JBFF##	;GET WHERE WE WILL PUT STATE TABLE
  1949	001547'	201440	000100			MOVEI	T1,100		;NEED 64 WORDS FOR TABLE
  1950	001550'	260740	005363'			CALL	GETCOR		;ALLOCATE CORE
  1951	001551'	542300	001546*			HRRM	STATE,.JBFF##	;SO WE DON'T FORGET LATER
  1952	001552'	201500	001555'			MOVEI	T2,QUOTEB	;NEXT CHAR IS THE BREAK CHAR
  1953	001553'	260740	001601'			CALL	QUOTET		;SET UP TABLE
  1954	001554'	254000	001113'			JRST	LOOP
  1955
  1956					;HERE WHEN GET BREAK CHARACTER AFTER QUOTE
  1957	001555'	660400	000100		QUOTEB:	TXO	FLG,F.TEXT	;NOW DOING TEXT
  1958	001556'	201500	001567'			MOVEI	T2,QUOTEC	;MOST CHARACTERS NOW ARE TEXT
  1959	001557'	260740	001601'			CALL	QUOTET		;SETUP DISPATCH TABLE
  1960	001560'	241440	777777			ROT	T1,-1		;DIVIDE BREAK CHAR BY 2
  1961	001561'	271446	000000			ADDI	T1,(STATE)	;POINT TO STATE TABLE
  1962	001562'	201500	001576'			MOVEI	T2,QUOTEE	;WHEN GET ANOTHER BREAK ARE DONE
  1963	001563'	542511	000000			HRRM	T2,(T1)
  1964	001564'	331000	000011			SKIPL	T1		;WAS CHAR EVEN ?
  1965	001565'	207020	000011			MOVSS	@T1		;YES SO DISPATCH FROM LEFT OF WORD
  1966	001566'	254000	001113'			JRST	LOOP
  1967
  1968					;HERE WHEN GET ANOTHER TEXT CHAR
  1969	001567'	405440	000177		QUOTEC:	ANDI	T1,177		;STRIP PARITY
  1970	001570'	136440	040421'			IDPB	T1,DAT		;PUT INTO DATA AREA
  1971	001571'	331440	040423'			SKIPL	T1,DTFINP	;ALREADY SETUP DTFINP ?
  1972	001572'	334440	000007			SKIPA	T1,DOT		;NO SO USE DOT
  1973	001573'	350000	000011			AOS	T1		;ADVANCE IT
  1974	001574'	202440	040423'			MOVEM	T1,DTFINP
  1975	001575'	254000	001113'			JRST	LOOP		;GO GET NEXT CHAR
  1976
  1977					;HERE WHEN GET TERMINAL BREAK
  1978	001576'	620400	000100		QUOTEE:	TXZ	FLG,F.TEXT	;NO LONGER DOING TEXT
  1979	001577'	541300	040120'			HRRI	STATE,STATE0
  1980	001600'	254000	000466'			JRST	LEVEL3
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 39
DDT11	MAC	18-May-81 17:27		COMMAND CHARACTERS

  1981					;HERE TO SETUP DISPATCH TABLE
  1982
  1983	001601'	505512	000000		QUOTET:	HRLI	T2,(T2)
  1984	001602'	202506	000000			MOVEM	T2,(STATE)
  1985	001603'	505506	000000			HRLI	T2,(STATE)	;BUILD BLT POINTER
  1986	001604'	541506	000001			HRRI	T2,1(STATE)	;FINISH POINTER
  1987	001605'	251506	000077			BLT	T2,77(STATE)
  1988	001606'	201500	001430'			MOVEI	T2,CNTRLR	;DISPATCH FOR CONTROL R
  1989	001607'	506506	000011			HRLM	T2,11(STATE)
  1990	001610'	201500	001511'			MOVEI	T2,CNTRLU	;DISPATCH FOR CONTROL U
  1991	001611'	542506	000012			HRRM	T2,12(STATE)
  1992	001612'	201500	001514'			MOVEI	T2,CNTRLW	;DISPATCH FOR CONTROL W
  1993	001613'	542506	000013			HRRM	T2,13(STATE)
  1994	001614'	201500	002222'			MOVEI	T2,CNTRLZ	;DISPATCH FOR CONTROL Z
  1995	001615'	506506	000015			HRLM	T2,15(STATE)
  1996	001616'	201500	001457'			MOVEI	T2,COMRUB	;DISPATCH FOR RUBOUT
  1997	001617'	542506	000077			HRRM	T2,77(STATE)
  1998	001620'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 40
DDT11	MAC	18-May-81 17:27		COMMAND CHARACTERS

  1999					;HERE WHEN USER TYPES A CR COMMAND
  2000	001621'	260740	002330'		COM.CR:	CALL	STEFIN		;DO DEPOSIT MAYBE
  2001	001622'	626400	200000			TXZN	FLG,F..ESC	;WAS THIS AN <ESCAPE><CR> ?
  2002	001623'	254000	000444'			JRST	LEVEL0		;NO SO CLEAN UP THEN GET MORE CHARS
  2003	001624'	260740	002467'			CALL	DOTSWP		;LOAD ALTERNATE DOT
  2004	001625'	260740	001724'			CALL	COMLF1		;DISPLAY NEW DOT
  2005	001626'	254000	000444'			JRST	LEVEL0
  2006
  2007					;HERE WHEN USER TYPES A BACK SLASH
  2008	001627'	260740	002330'		BKSLSH:	CALL	STEFIN
  2009	001630'	260740	007626'			CALL	B3.TYP
  2010	001631'	261740	000007			PUSH	P,DOT
  2011	001632'	261740	040422'			PUSH	P,DOTFOO
  2012	001633'	200340	040542'			MOVE	DOT,LSTADR
  2013	001634'	260740	007123'			CALL	DATYPE
  2014	001635'	262740	040422'			POP	P,DOTFOO
  2015	001636'	262740	000007			POP	P,DOT
  2016	001637'	254000	000451'			JRST	LEVEL1
  2017
  2018					;HERE WHEN USER TYPES IN AN ILLEGAL CHARACTER
  2019		035760	704416		ILLCHR:	MOVEI	T1,[BYTE (7)7,"?",7,11,7,0]
  2020	001640'	201440	043177'
  2021	001641'	260740	007655'		ILLCH0:	CALL	TYPSTR
  2022						;CLRBFI			;CLEAR TYPEAHEAD
  2023	001642'	661400	010000			TXO	FLG,F.CERR	;IN CASE THIS IS A COMMAND FILE
  2024		040537'	040534'			MOVE	T1,[ESCSAV,,BYTCNT]	;RESTORE THINGS SET BY ESCAPE
  2025	001643'	200440	043174'
  2026	001644'	251440	040536'			BLT	T1,BYTCNT+2	; COMMANDS
  2027	001645'	254000	000451'			JRST	LEVEL1
  2028
  2029					;HERE WHEN THE USER TYPES A TAB COMMAND
  2030	001646'	260740	002330'		COM.HT:	CALL	STEFIN		;DO DEPOSIT MAYBE
  2031	001647'	260740	007621'			CALL	CRLTYP		;TYPE A CR/LF
  2032	001650'	260740	001654'			CALL	DOTSAV		;SAVE CURRENT DOT, DOTFOO, FOR LATER
  2033	001651'	200340	040542'			MOVE	DOT,LSTADR	;LAST ADDRESS TYPED IN OR OUT
  2034	001652'	260740	001724'			CALL	COMLF1
  2035	001653'	254000	000451'			JRST	LEVEL1
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 41
DDT11	MAC	18-May-81 17:27		COMMAND CHARACTERS

  2036					;HERE TO SAVE CURRENT DOT, DOTFOO FOR LATER $/ ETC.
  2037	001654'	202340	040424'		DOTSAV:	MOVEM	DOT,DOTOLD	;SAVE DOT
  2038	001655'	200440	040422'			MOVE	T1,DOTFOO	;GET DOTFOO
  2039	001656'	202440	040425'			MOVEM	T1,DTFOLD	;SAVE IT ALSO
  2040	001657'	263740	000000			RET
  2041
  2042					;HERE TO SET DOTFOO TO NEXT VALUE
  2043	001660'	200440	040422'		NDTFOO:	MOVE	T1,DOTFOO	;CURRENT DOTFOO
  2044	001661'	260740	001674'			CALL	DOTINC
  2045	001662'	202440	040422'			MOVEM	T1,DOTFOO
  2046	001663'	263740	000000			RET
  2047
  2048					;HERE TO SET DTFINP TO NEXT VALUE
  2049	001664'	200440	040423'		NDTFIN:	MOVE	T1,DTFINP	;GET CURRENT DTFINP
  2050	001665'	260740	001674'			CALL	DOTINC		;INCREMENT IT
  2051	001666'	202440	040423'			MOVEM	T1,DTFINP	;RESTORE NEW DTFINP
  2052	001667'	263740	000000			RET
  2053
  2054					;HERE TO GET THE NEXT VALUE FOR DOT
  2055	001670'	200440	000007		NXTDOT:	MOVE	T1,DOT
  2056	001671'	260740	001674'			CALL	DOTINC
  2057	001672'	202440	000007			MOVEM	T1,DOT
  2058	001673'	263740	000000			RET
  2059
  2060					;GET NEXT VALUE FOR LOCATION POINTER
  2061					; CALL	MOVE T1,<CURRENT VALUE>
  2062					;	CALL	DOTINC
  2063	001674'	331000	000011		DOTINC:	SKIPL	T1		;DID IT GET LOADED ?
  2064		331440	000007			JRST	[SKIPL	T1,DOT		;START WITH DOT
  2065		505440	777777				HRLI	T1,777777
  2066		263740	000000				RET	]
  2067	001675'	254000	043201'
  2068	001676'	332000	040432'			SKIPE	PDP8F		;OR A PDP8 ?
  2069		620440	700000			AOJA	T1,[TRZ T1,700000	;15 BIT ADR
  2070		263740	000000				RET	]
  2071	001677'	344440	043204'
  2072	001700'	607440	200000			TLNN	T1,200000	;WAS THIS A REGISTER ADDRESS ?
  2073		350000	000011			JRST	[AOS	T1		;INCREMENT BY 1 FOR REGISTERS
  2074		620440	777770				TRZ	T1,777770	;STRIP EXTRA BITS
  2075		263740	000000				RET	]
  2076	001701'	254000	043206'
  2077	001702'	271440	000002			ADDI	T1,2
  2078	001703'	620440	600001			TRZ	T1,600001
  2079	001704'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 42
DDT11	MAC	18-May-81 17:27		COMMAND CHARACTERS

  2080					;HERE IF END EXPRESSION WITH AN LEFT ANGLE BRACKET
  2081
  2082	001705'	260740	001316'		LFTANG:	CALL	ACCUM		;FINISH EXPRESSION
  2083	001706'	263740	000000			RET			;LOSE
  2084	001707'	562440	040430'			HRROM	T1,LFTSAV	;SAVE IT
  2085	001710'	254000	001075'			JRST	GETEXP
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 43
DDT11	MAC	18-May-81 17:27		COMMAND CHARACTERS

  2086					;HERE WHEN THE USER TYPES A LINE FEED COMMAND
  2087	001711'	260740	002330'		COM.LF:	CALL	STEFIN		;DO DEPOSIT MAYBE
  2088	001712'	622400	200000			TXZE	FLG,F..ESC	;WAS <LF> PRECEDED BY AN <ESCAPE> ?
  2089	001713'	260740	002467'			CALL	DOTSWP		;YES SO SPECIAL HANDLING
  2090	001714'	201440	000015			MOVEI	T1,15		;CARRIAGE RETURN
  2091	001715'	260740	007666'			CALL	TYPCHR
  2092	001716'	200440	040422'			MOVE	T1,DOTFOO
  2093	001717'	402000	040422'			SETZM	DOTFOO		;DONE WITH IT NOW
  2094	001720'	260740	001674'			CALL	DOTINC
  2095	001721'	202440	000007			MOVEM	T1,DOT
  2096	001722'	260740	001724'			CALL	COMLF1
  2097	001723'	254000	000451'			JRST	LEVEL1
  2098
  2099	001724'	660400	000010		COMLF1:	TXO	FLG,F.LOPN	;FLAG LOCATION IS OPEN
  2100	001725'	200440	000007		COMLF2:	MOVE	T1,DOT
  2101	001726'	260740	007076'			CALL	ADRTYP		;TYPE ADDRESS
  2102	001727'	201440	000057			MOVEI	T1,"/"
  2103	001730'	603400	000001			TXNE	FLG,F.LBKT	;FOLLOWING A LEFT BRACKET ?
  2104	001731'	201440	000133			MOVEI	T1,"["		;YES SO DECLARE IT
  2105	001732'	260740	007666'			CALL	TYPCHR
  2106	001733'	550440	000007		COMLF3:	HRRZ	T1,DOT
  2107	001734'	315440	040710'			CAMGE	T1,CACHEL	;IS THIS ALREADY IN CACHE ?
  2108	001735'	402000	040710'			SETZM	CACHEL		;YES SO FLUSH CACHE
  2109	001736'	260740	007626'		COMLF4:	CALL	B3.TYP		;TYPE 3 SPACES
  2110	001737'	660400	004000			TXO	FLG,F.CACH	;USE CACHE AFTER 1ST WORD
  2111	001740'	607400	000001			TXNN	FLG,F.LBKT	;DOING LFT BRACKET STUFF ?
  2112	001741'	324740	007123'			PJRST	DATYPE
  2113	001742'	201440	000002			MOVEI	T1,2		;NUMERIC STYLE
  2114	001743'	201640	000001			MOVEI	T5,1		;ONE WORD
  2115	001744'	324740	002000'			PJRST	RETYPE
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 44
DDT11	MAC	18-May-81 17:27		COMMAND CHARACTERS

  2116					;HERE WHEN USER TYPES A BACK ARROW
  2117	001745'	316600	040421'		BARROW:	CAMN	T4,DAT		;FOLLOWING TYPEIN ?
  2118	001746'	254000	001761'			JRST	BARRW5		;NO
  2119	001747'	134440	000014		BARRW3:	ILDB	T1,T4		;GET LOW ORDER BYTE
  2120	001750'	400500	000000			SETZ	T2,		;IN CASE ODD NUMBER OF BYTES
  2121	001751'	312600	040421'			CAME	T4,DAT
  2122	001752'	134500	000014			ILDB	T2,T4		;GET HIGH ORDER BYTE
  2123		101000	000011			DPB	T2,[POINT 8,T1,27]
  2124	001753'	137500	043063'
  2125	001754'	260740	007076'			CALL	ADRTYP		;DISPLAY AS AN ADDRESS
  2126	001755'	312600	040421'			CAME	T4,DAT		;DONE ALL YET ?
  2127		260740	007633'			JRST	[CALL	COMTYP
  2128		254000	001747'				JRST	BARRW3 ]	;LOOP BACK FOR REST
  2129	001756'	254000	043211'
  2130	001757'	260740	007626'			CALL	B3.TYP
  2131	001760'	254000	000451'			JRST	LEVEL1
  2132	001761'	606400	000010		BARRW5:	TXNN	FLG,F.LOPN	;IS LOCATION OPEN ?
  2133	001762'	254000	001640'			JRST	ILLCHR		;NO SO BOUNCE COMMAND
  2134	001763'	201440	000000			MOVEI	T1,0		;OUTPUT AS INSTRUCTION
  2135	001764'	201640	000002			MOVEI	T5,2		;WANT ONLY 1 WORD
  2136	001765'	260740	002000'			CALL	RETYPE		;NO RETYPE STUFF
  2137	001766'	254000	000451'			JRST	LEVEL1
  2138
  2139					;HERE WHEN USER TYPES A SEMICOLON
  2140	001767'	316600	040421'		SEMICL:	CAMN	T4,DAT		;FOLLOWING TYPEIN ?
  2141	001770'	254000	001772'			JRST	SMICL5		;NO
  2142	001771'	254000	000451'			JRST	LEVEL1
  2143	001772'	606400	000010		SMICL5:	TXNN	FLG,F.LOPN	;IS LOCATION OPEN ?
  2144	001773'	254000	001640'			JRST	ILLCHR		;IF NOT CAN'T HANDLE
  2145	001774'	550440	040535'			HRRZ	T1,O.MODE	;SET RIGHT MODE
  2146	001775'	550640	040534'			HRRZ	T5,BYTCNT
  2147	001776'	260740	002000'			CALL	RETYPE
  2148	001777'	254000	000451'			JRST	LEVEL1
  2149
  2150	002000'	261740	040535'		RETYPE:	PUSH	P,O.MODE	;SAVE OUTPUT MODE
  2151	002001'	542440	040535'			HRRM	T1,O.MODE
  2152	002002'	261740	040534'			PUSH	P,BYTCNT
  2153	002003'	542640	040534'			HRRM	T5,BYTCNT
  2154						;PUSH	P,DOTFOO
  2155	002004'	402000	040422'			SETZM	DOTFOO
  2156	002005'	660400	004000			TXO	FLG,F.CACH	;USE CACHE IF POSSIBLE
  2157	002006'	260740	007123'			CALL	DATYPE		;TYPE DATA
  2158						;POP	P,DOTFOO
  2159	002007'	262740	040534'			POP	P,BYTCNT
  2160	002010'	262740	040535'			POP	P,O.MODE	;RESTORE OUTPUT MODE
  2161	002011'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 45
DDT11	MAC	18-May-81 17:27		COMMAND CHARACTERS

  2162					;HERE WHEN USER TYPES =
  2163	002012'	316600	040421'		EQUALS:	CAMN	T4,DAT		;FOLLOWING TYPEIN ?
  2164	002013'	254000	002034'			JRST	EQUAL5		;NO
  2165	002014'	603400	000020			TXNE	FLG,F.SYML	;DID TYPEIN INCLUDE A SYMBOL ?
  2166	002015'	607240	000002			TLNN	SYM,SMF.RG	;WAS THAT A REGISTER NAME ?
  2167	002016'	304000	000000			CAIA
  2168	002017'	260740	007641'			CALL	PCNTYP		;TYPE A %
  2169	002020'	134440	000014		EQUAL2:	ILDB	T1,T4
  2170	002021'	400500	000000			SETZ	T2,
  2171	002022'	312600	040421'			CAME	T4,DAT
  2172	002023'	134500	000014			ILDB	T2,T4
  2173		101000	000011			DPB	T2,[POINT 8,T1,27]
  2174	002024'	137500	043063'
  2175	002025'	202440	040542'			MOVEM	T1,LSTADR	;LAST OUTPUT ADDRESS
  2176	002026'	202440	040544'			MOVEM	T1,ESC.Q.	;IN CASE OF <ESCAPE>Q
  2177	002027'	260740	007520'			CALL	RADTYP
  2178	002030'	316600	040421'			CAMN	T4,DAT
  2179		260740	007626'			JRST	[CALL	B3.TYP		;TYPE 3 SPACES
  2180		254000	000451'				JRST	LEVEL1 ]
  2181	002031'	254000	043213'
  2182	002032'	260740	007633'			CALL	COMTYP
  2183	002033'	254000	002020'			JRST	EQUAL2
  2184
  2185					;HERE TO RETYPE PREVIOUSLY OUTPUT DATA IN CURRENT RADIX
  2186	002034'	606400	000010		EQUAL5:	TXNN	FLG,F.LOPN	;IS LOCATION OPEN ?
  2187	002035'	254000	001640'			JRST	ILLCHR		;NO SO ILLEGAL
  2188	002036'	201440	000002			MOVEI	T1,2		;OUTPUT AS NUMERIC
  2189	002037'	336640	040422'			SKIPN	T5,DOTFOO
  2190	002040'	550640	000007			HRRZ	T5,DOT
  2191	002041'	275647	777776			SUBI	T5,-2(DOT)
  2192	002042'	405640	777777			ANDI	T5,777777	;HALF WORD ONLY
  2193	002043'	242640	777777			LSH	T5,-1
  2194	002044'	260740	002000'			CALL	RETYPE
  2195	002045'	254000	000451'			JRST	LEVEL1
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 46
DDT11	MAC	18-May-81 17:27		COMMAND CHARACTERS

  2196					;HERE WHEN USER TYPES [ AT END OF A NUMBER
  2197	002046'	665400	000001		OPLBKT:	TXOA	FLG,F.LBKT	;REMEMBER HOW WE OPENED
  2198					;HERE WHEN USER TYPES / AT END OF A NUMBER
  2199	002047'	621400	000001		OPNLOC:	TXZ	FLG,F.LBKT
  2200	002050'	626400	000040			TXZN	FLG,F.MASK	;ASKING ABOUT THE MASK ?
  2201	002051'	254000	002073'			JRST	OPNLC4		;LOOKING AT 11
  2202	002052'	660400	000020			TXO	FLG,F.MOPN	;MASK NOW OPEN
  2203	002053'	260740	007626'			CALL	B3.TYP		;TYPE 3 SPACES
  2204	002054'	201540	040512'			MOVEI	T3,S.MASK-1	;MAKE A POINTER TO THE MASK
  2205	002055'	336500	040545'			SKIPN	T2,ESCOCT	;DID WE GET A NUMBER WITH THE COMMAND ?
  2206	002056'	201500	000001			MOVEI	T2,1		;DEFAULTS TO 1
  2207	002057'	301500	000010			CAIL	T2,MASKSZ	;ASKING FOR TOO MUCH ?
  2208	002060'	201500	000010			MOVEI	T2,MASKSZ	;YES SO GIVE LIMIT
  2209	002061'	304000	000000			CAIA
  2210	002062'	260740	007630'		OPNLC2:	CALL	BLANKT
  2211	002063'	350000	000013			AOS	T3
  2212	002064'	200453	000000			MOVE	T1,(T3)
  2213	002065'	202440	040542'			MOVEM	T1,LSTADR	;IN CASE OF HT COMMAND
  2214	002066'	202440	040544'			MOVEM	T1,ESC.Q.	;IN CASE USES <ESCAPE>Q
  2215	002067'	260740	007520'			CALL	RADTYP		;DISPLAY IT
  2216	002070'	367500	002062'			SOJG	T2,OPNLC2
  2217	002071'	260740	007615'			CALL	TABTYP
  2218	002072'	254000	000451'			JRST	LEVEL1
  2219					;HERE BECAUSE REALLY OPENING A LOCATION
  2220	002073'	260740	001654'		OPNLC4:	CALL	DOTSAV		;SAVE DOT FOR AN ESCAPE LF COMMAND
  2221	002074'	560340	040426'			HRRO	DOT,EXPRESS
  2222	002075'	603400	000020			TXNE	FLG,F.SYML	;WAS SYM LOADED ?
  2223	002076'	607240	000002			TLNN	SYM,SMF.RG
  2224	002077'	304000	000000			CAIA
  2225	002100'	621340	377777			TLZ	DOT,377777
  2226	002101'	402000	040422'			SETZM	DOTFOO
  2227	002102'	660400	000010			TXO	FLG,F.LOPN	;FLAG LOCATION IS OPEN
  2228	002103'	260740	001733'			CALL	COMLF3
  2229	002104'	254000	000451'			JRST	LEVEL2
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 47
DDT11	MAC	18-May-81 17:27		COMMAND CHARACTERS

  2230					;HERE WHEN USER TYPES AN UP ARROW
  2231	002105'	260740	002330'		UARROW:	CALL	STEFIN
  2232	002106'	622400	200000			TXZE	FLG,F..ESC	;WAS <LF> PRECEDED BY AN <ESCAPE> ?
  2233	002107'	260740	002467'			CALL	DOTSWP		;YES SO SPECIAL HANDLING
  2234	002110'	260740	007621'			CALL	CRLTYP
  2235	002111'	402000	040422'			SETZM	DOTFOO
  2236	002112'	607340	400000			TLNN	DOT,400000	;WAS ADR SET ?
  2237	002113'	661340	777777			TLO	DOT,777777
  2238	002114'	201440	777777			MOVEI	T1,-1		;IN CASE REGISTER MODE
  2239	002115'	607340	200000			TLNN	DOT,200000	;REG OR MEM ?
  2240	002116'	254000	002133'			JRST	COMAR0		;REG - GO DO IT
  2241	002117'	211440	000002			MOVNI	T1,2		;IN CASE "[" MODE
  2242	002120'	603400	000001			TXNE	FLG,F.LBKT	;IS IT
  2243	002121'	254000	002133'			JRST	COMAR0		;YES
  2244	002122'	210440	040534'			MOVN	T1,BYTCNT	;NUMBER OF BYTES
  2245	002123'	332000	040432'			SKIPE	PDP8F
  2246	002124'	254000	002133'			JRST	COMAR0
  2247	002125'	550500	040535'			HRRZ	T2,O.MODE	;GET OUTPUT MODE
  2248	002126'	322500	002144'			JUMPE	T2,COMAR2	;SYMBOLIC ?
  2249	002127'	306500	000001			CAIN	T2,1		; OR ADDRESS ?
  2250	002130'	240440	000001			ASH	T1,1		;CONVERT WORD COUNT TO BYTES
  2251	002131'	306500	000002			CAIN	T2,2		;OR NUMERIC
  2252	002132'	240440	000001			ASH	T1,1		;CONVERT WORD COUNT TO BYTES
  2253	002133'	270440	000007		COMAR0:	ADD	T1,DOT
  2254	002134'	607340	200000			TLNN	DOT,200000	;WAS THIS A REGISTER ?
  2255	002135'	405440	000007			ANDI	T1,7		;IN CASE WRAPPED AROUND
  2256	002136'	332000	040432'			SKIPE	PDP8F		;IS THIS A PDP8 ADDRESS ?
  2257	002137'	624440	700000			TRZA	T1,700000
  2258	002140'	405440	177777			ANDI	T1,177777
  2259	002141'	542440	000007			HRRM	T1,DOT
  2260	002142'	260740	001724'			CALL	COMLF1		;REST LIKE A LINE FEED COMMAND
  2261	002143'	254000	000451'			JRST	LEVEL2
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 48
DDT11	MAC	18-May-81 17:27		COMMAND CHARACTERS

  2262					;HERE IF DID UP ARROW WHEN IN SYMBOLIC MODE
  2263					; TRY TO MAKE A GUESS HOW FAR BACK TO GO
  2264	002144'	620340	600001		COMAR2:	TRZ	DOT,600001	;INSTRUCTIONS BEGIN ON WORD BOUNDRY
  2265	002145'	620400	004000			TXZ	FLG,F.CACH	;DON'T USE CACHE
  2266	002146'	201600	000001			MOVEI	T4,1		;TRY ONE WORD INSTRUCTION FIRST
  2267
  2268					;HERE TO COUNT WORDS IN INSTRUCTION
  2269	002147'	200500	000014		COMAR3:	MOVE	T2,T4		;NUMBER OF WORDS TO LOOK FOR
  2270	002150'	240500	000001			ASH	T2,1		;TIMES 2 FOR BYTES
  2271	002151'	201447	000000			MOVEI	T1,(DOT)	;CURRENT ADR
  2272	002152'	275452	000000			SUBI	T1,(T2)		;BACK UP CURRENT ADR
  2273	002153'	260740	002171'			CALL	CNINWD		;COUNT WORDS IN INSTRUCTION AT ADR
  2274	002154'	254000	002163'			JRST	COMAR8		;NOT AN INSTRUCTION
  2275	002155'	302611	000000			CAIE	T4,(T1)		;IS THAT WHAT WE WANTED ?
  2276	002156'	254000	002163'			JRST	COMAR8		;NO
  2277	002157'	275354	000000			SUBI	DOT,(T4)
  2278	002160'	275354	000000			SUBI	DOT,(T4)
  2279	002161'	260740	001724'			CALL	COMLF1		;PRINT INSTRUCTION
  2280	002162'	254000	000451'			JRST	LEVEL2
  2281
  2282	002163'	350000	000014		COMAR8:	AOS	T4		;TRY FOR LARGER INSTRUCTION
  2283	002164'	302600	000004			CAIE	T4,4		;IS THAT TOO LARGE ?
  2284	002165'	254000	002147'			JRST	COMAR3		;NO
  2285	002166'	275340	000002			SUBI	DOT,2		;JUST BACK UP ONE WORD
  2286	002167'	260740	001724'			CALL	COMLF1
  2287	002170'	254000	000451'			JRST	LEVEL2
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 49
DDT11	MAC	18-May-81 17:27		COMMAND CHARACTERS

  2288					;HERE TO COUNT WORDS IN AN INSTRUCTION
  2289					; CALL	MOVE	T1,<ADR>
  2290					;	CALL	CNINWD
  2291					;	ERROR RETURN
  2292					;	WIN RETURN	NUMBER OF WDS IN T1
  2293	002171'	201500	000002		CNINWD:	MOVEI	T2,2		;TRY FOR 2 BYTES
  2294	002172'	332000	040432'			SKIPE	PDP8F		;UNLESS PDP8
  2295	002173'	201500	000001			MOVEI	T2,1		;IS PDP8 SO ONLY ONE WORD
  2296	002174'	201500	000002			MOVEI	T2,2		;NUMBER OF BYTES TO TRY FOR
  2297	002175'	260740	003354'			CALL	GETWRD		;TRY TO GET THE DATA
  2298	002176'	263740	000000			RET			;LOSES
  2299	002177'	260740	005201'			CALL	INVLFN		;SEE IT THERE IS ANY SUCH INSTRUCTION
  2300	002200'	263740	000000			RET			;NO = LOSE
  2301	002201'	201500	000001			MOVEI	T2,1		;ONE FOR INSTRUCTION
  2302		060600	000011			LDB	T3,[POINT 6,T1,29]	;GET SS FIELD
  2303	002202'	135540	043215'
  2304	002203'	603240	000040			TLNE	SYM,SMF.SS	;IS THIS SSDD FORMAT ?
  2305	002204'	260740	002212'			CALL	CNIWD3		;YES SOADJUST NUMBER OF WDS IN INSTRUCTION
  2306		000600	000011			LDB	T3,[POINT 6,T1,35]	;GET DD FIELD
  2307	002205'	135540	043015'
  2308	002206'	603240	000060			TLNE	SYM,SMF.DD!SMF.SS	;IS DD PRESENT ?
  2309	002207'	260740	002212'			CALL	CNIWD3		;YES SO ADJ WORD COUNT
  2310	002210'	550440	000012			HRRZ	T1,T2		;NUMBER OF WORDS
  2311	002211'	254000	005177'			RETSKP
  2312
  2313	002212'	302540	000027		CNIWD3:	CAIE	T3,27		;IS THIS IMMEDIATE (#FOO)
  2314	002213'	306540	000037			CAIN	T3,37		;OR ABSOLUTE
  2315	002214'	350000	000012			AOS	T2		;YES SO ANOTHER WORD IN INSTRUCTION
  2316		030300	000013			LDB	T3,[POINT 3,T3,32]
  2317	002215'	135540	043216'
  2318	002216'	302540	000006			CAIE	T3,6		;IS THIS RELATIVE
  2319	002217'	306540	000007			CAIN	T3,7		;OR RELATIVE DEFERRED ?
  2320	002220'	350000	000012			AOS	T2		;YES SO ANOTHER WORD
  2321	002221'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 50
DDT11	MAC	18-May-81 17:27		COMMAND CHARACTERS

  2322					;HERE WHEN THE USER TYPE A ^Z
  2323	002222'	047040	000012		CNTRLZ:	MONRT.			;BACK TO THE MONITOR WE GO
  2324	002223'	254000	000444'			JRST	LEVEL0		;USER TYPED .CONTINUE
  2325
  2326
  2327					;HERE IF USER ENDS AN EXPRESSION WITH A ">"
  2328	002224'	332440	040430'		SUPLIM:	SKIPE	T1,LFTSAV
  2329	002225'	202440	040510'			MOVEM	T1,SBEGIN	;SET LOWER LIMIT FOR SEARCH
  2330	002226'	200440	040426'			MOVE	T1,EXPRESS	;GET EXPRESSION
  2331	002227'	552440	040511'			HRRZM	T1,S..END	;SET UPPER LIMIT FOR SEARCH
  2332	002230'	254000	000451'			JRST	LEVEL2
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 51
DDT11	MAC	18-May-81 17:27		COMMAND CHARACTERS

  2333					;HERE IF USER ENDS SYMBOL WITH A "?"
  2334
  2335	002231'	336440	040463'		QUEST.:	SKIPN	T1,SYMBOL	;WERE WE BUILDING A SYMBOL ?
  2336	002232'	254000	001640'			JRST	ILLCHR		;NO SO DING HIM
  2337	002233'	261740	000015			PUSH	P,T5
  2338	002234'	474640	000000			SETO	T5,		;COUNT MATCHES
  2339	002235'	260740	002277'			CALL	MATCH		;TRY TO FIND A PARTIAL MATCH
  2340	002236'	322240	002271'			JUMPE	SYM,QUEST5	;IN CASE CAN'T FIND ANY MATCHES
  2341	002237'	260740	007621'			CALL	CRLTYP		;BEGIN WITH <CR><LF>
  2342		633375	466336			MOVEI	T1,[ASCIZ \following are partial matches
  2343					\]
  2344	002240'	201440	043217'
  2345	002241'	356000	000015			AOSN	T5
  2346	002242'	260740	007655'			CALL	TYPSTR
  2347	002243'	260740	007615'			CALL	TABTYP		;AND ADD A <HT>
  2348	002244'	200445	000000			MOVE	T1,(SYM)	;GET SYMBOL NAME
  2349	002245'	260740	007600'			CALL	SIXTYP
  2350		201724	000000			MOVEI	T1,[ASCIZ \ = \]
  2351	002246'	201440	043226'
  2352	002247'	260740	007655'			CALL	TYPSTR
  2353	002250'	603240	000002			TLNE	SYM,SMF.RG	;IS THIS A REGISTER DEFINITION ?
  2354	002251'	260740	007641'			CALL	PCNTYP		;TYPE A "%"
  2355	002252'	550445	000001			HRRZ	T1,1(SYM)	;GET VALUE OF SYMBOL
  2356	002253'	260740	007520'			CALL	RADTYP		;TYPE VALUE IN CURRENT RADIX
  2357		203476	062000			MOVEI	T1,[ASCIZ \ spd\]
  2358	002254'	201440	043227'
  2359	002255'	603240	000001			TLNE	SYM,SMF.SU	;IS SYMBOL SUPPRESSED ?
  2360	002256'	260740	007655'			CALL	TYPSTR		;YES
  2361		203376	061736			MOVEI	T1,[ASCIZ \ opcode\]
  2362	002257'	201440	043230'
  2363	002260'	603240	000004			TLNE	SYM,SMF.IN	;IS THIS AN OPCODE ?
  2364	002261'	260740	007655'			CALL	TYPSTR		;YES
  2365	002262'	336005	000003			SKIPN	3(SYM)		;WAS THERE A SOURCE ?
  2366	002263'	254000	002270'			JRST	QUEST4		;NO
  2367		203114	563322			TYPE	< defined in >
  2368	002264'	201440	043232'
  2369	002265'	260740	007655'
  2370	002266'	200445	000003			MOVE	T1,3(SYM)	;GET SOURCE
  2371	002267'	260740	007600'			CALL	SIXTYP
  2372	002270'	263740	000000		QUEST4:	RET
  2373
  2374		203355	720340		QUEST5:	MOVEI	T1,[ASCIZ \ no partial matches for symbol\]
  2375	002271'	201440	043235'
  2376	002272'	356000	000015			AOSN	T5		;FIND ANY MATCHES ?
  2377	002273'	260740	007655'			CALL	TYPSTR
  2378	002274'	262740	000015			POP	P,T5
  2379	002275'	260740	001434'			CALL	CNTLR3		;RETYPE THE COMMAND
  2380	002276'	254000	001113'			JRST	LOOP
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 52
DDT11	MAC	18-May-81 17:27		COMMAND CHARACTERS

  2381					;HERE TO TRY TO FIND A PARTIAL MATCH FOR A SYMBOL
  2382					; CALL	SKIPN T1,SYMBOL	;WERE WE BUILDING A SYMBOL ?
  2383					;	JRST	ILLCHR	;DON'T CALL MATCH
  2384					;	CALL	MATCH
  2385					;	RETURN WITH SYM SETUP WITH PARTIAL MATCH
  2386					;		WITH (SYM) = 0 WHEN FOUND ALL MATCHES
  2387	002277'	260740	001447'		MATCH:	CALL	RSCAN
  2388	002300'	202500	040634'			MOVEM	T2,CMDPTR	;DELETE THE "?" OR <CONTROL F>
  2389		770000	000000			SKIPA	T3,[770000,,0]	;BUILD MASK TO TEST UNDER
  2390	002301'	334540	043244'
  2391	002302'	240540	777772		MATCH0:	ASH	T3,-6		;ENLARGE THE MASK
  2392	002303'	200440	000013			MOVE	T1,T3		;COPY SUGGESTED MASK
  2393	002304'	404440	040463'			AND	T1,SYMBOL
  2394	002305'	312440	040463'			CAME	T1,SYMBOL	;IS MASK LARGE ENOUGH ?
  2395	002306'	254000	002302'			JRST	MATCH0		;NO SO INCREASE SIZE
  2396	002307'	200240	041115'			MOVE	SYM,SYMBEG	;POINT TO THE FIRST SYMBOL
  2397	002310'	200445	000000		MATCH2:	MOVE	T1,(SYM)	;GET SYMBOL NAME
  2398	002311'	404440	000013			AND	T1,T3		;MASK OFF
  2399	002312'	312440	040463'			CAME	T1,SYMBOL	;DOES THIS MATCH ?
  2400	002313'	254000	002323'			JRST	MATCH4		;NO
  2401	002314'	500245	000002			HLL	SYM,2(SYM)	;GET FLAGS FOR THE SYMBOL
  2402	002315'	332000	040432'			SKIPE	PDP8F		;DOING PDP8 SYMBOLS ?
  2403	002316'	641240	040000			TLC	SYM,SMF.P8
  2404	002317'	603240	040000			TLNE	SYM,SMF.P8
  2405	002320'	254000	002323'			JRST	MATCH4
  2406	002321'	500245	000002			HLL	SYM,2(SYM)	;SO SMF.P8 RIGHT
  2407	002322'	260777	000000			CALL	@(P)
  2408	002323'	201245	000004		MATCH4:	MOVEI	SYM,4(SYM)
  2409	002324'	312240	041116'			CAME	SYM,SYMEND	;HIT END ?
  2410	002325'	254000	002310'			JRST	MATCH2
  2411	002326'	400240	000000			SETZ	SYM,		;FLAG ALL DONE
  2412	002327'	263740	000000			POPJ	P,
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 53
DDT11	MAC	18-May-81 17:27		COMMAND CHARACTERS

  2413					;HERE TO DO DEPOSIT MAYBE AFTER CR OR LF OR UP ARROW
  2414		441000	040464'		STEFIN:	MOVE	T1,[POINT 8,DATA]	;VIRGIN DATA POINTER
  2415	002330'	200440	042702'
  2416	002331'	332000	040432'			SKIPE	PDP8F		;WAS THIS A PDP8 LOOK ?
  2417	002332'	505440	441400			HRLI	T1,(POINT 12)
  2418	002333'	316440	040421'			CAMN	T1,DAT		;DID USER TYPE ANYTHING ?
  2419	002334'	263740	000000			RET			;NO SO DONE
  2420	002335'	622400	000020			TXZE	FLG,F.MOPN	;IS MASK OPEN ?
  2421	002336'	254000	002403'			JRST	SETMSK		;SET MASK
  2422	002337'	626400	000010			TXZN	FLG,F.LOPN	;IS LOCATION OPEN ?
  2423	002340'	263740	000000			RET			;NO SO JUST RETURN
  2424	002341'	606400	100000			TXNN	FLG,F.WENB	;WAS PATCHING ENABLED ?
  2425	002342'	254000	002400'			JRST	WRTLCK		;IS WRITE LOCKED
  2426	002343'	331440	040543'			SKIPL	T1,LSTIAD	;LAST ADDRESS GIVE BY USER
  2427	002344'	200440	040542'			MOVE	T1,LSTADR
  2428	002345'	202440	040542'			MOVEM	T1,LSTADR	;SAVE IT
  2429	002346'	202440	040544'			MOVEM	T1,ESC.Q.	;ALSO USE FOR <ESCAPE>Q
  2430	002347'	402000	040543'			SETZM	LSTIAD
  2431	002350'	200440	040423'			MOVE	T1,DTFINP	;GET NEW DOTFOO
  2432	002351'	202440	040422'			MOVEM	T1,DOTFOO	;AND SAVE IT
  2433	002352'	402000	040423'			SETZM	DTFINP
  2434	002353'	201447	000000			MOVEI	T1,(DOT)	;WHERE TO PUT DATA
  2435	002354'	603340	200000			TLNE	DOT,200000	;IS THIS MEMORY OR REGISTER
  2436	002355'	254000	002375'			JRST	STEFN5		;MUST BE MEMORY
  2437	002356'	402000	040422'			SETZM	DOTFOO		;SO FIRST CALL WORKS
  2438		441000	040464'			MOVE	T3,[POINT 8,DATA]	;POINTER TO DATA
  2439	002357'	200540	042702'
  2440	002360'	260740	001660'		STEFN3:	CALL	NDTFOO		;GET NEXT DOTFOO
  2441	002361'	400500	000000			SETZ	T2,		;IN CASE ODD NUMBER OF BYTES
  2442	002362'	134440	000013			ILDB	T1,T3		;GET LOW ORDER BYTE
  2443	002363'	312540	040421'			CAME	T3,DAT		;DONE ALL BYTES ?
  2444	002364'	134500	000013			ILDB	T2,T3		;GET HIGH ORDER BITS
  2445		101000	000011			DPB	T2,[POINT 8,T1,27]	;PUT HIGH ORDER WITH LOW ORDER
  2446	002365'	137500	043063'
  2447	002366'	550500	040422'			HRRZ	T2,DOTFOO	;GET ADDRESS
  2448	002367'	306500	000007			CAIN	T2,7		;IS THIS THE PC ?
  2449	002370'	405440	177776			ANDI	T1,177776	;BE SURE IS EVEN
  2450	002371'	202452	011200'			MOVEM	T1,SIMREG(T2)	;STORE DATA
  2451	002372'	312540	040421'			CAME	T3,DAT		;WAS THAT END OF DATA ?
  2452	002373'	254000	002360'			JRST	STEFN3		;LOOP BACK FOR REST
  2453	002374'	263740	000000			RET
  2454
  2455	002375'	260740	003776'		STEFN5:	CALL	PUTBYT		;PUT DATA INTO 11
  2456	002376'	300000	000000			NOP
  2457	002377'	263740	000000			RET
  2458
  2459					WRTLCK:	TYPE	<?patching was not enabled by /PATCH
  2460		377414	172306		>
  2461
  2462	002400'	201440	043245'
  2463	002401'	260740	007655'
  2464	002402'	254000	000444'			JRST	LEVEL0
  2465
  2466					;HERE TO SET MASK
  2467	002403'	400600	000000		SETMSK:	SETZ	T4,		;INDEX FOR MASK
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 53-1
DDT11	MAC	18-May-81 17:27		COMMAND CHARACTERS

  2468	002404'	134500	000011		STMSK1:	ILDB	T2,T1		;GET NEXT BYTE
  2469	002405'	400540	000000			SETZ	T3,		;IN CASE DONE
  2470	002406'	312440	040421'			CAME	T1,DAT		;DONE EVERYTHING YET ?
  2471	002407'	134540	000011			ILDB	T3,T1
  2472		101000	000012			DPB	T3,[POINT 8,T2,27]
  2473	002410'	137540	042714'
  2474	002411'	562500	040542'			HRROM	T2,LSTADR	;SAVE IN CASE OF HT
  2475	002412'	202500	040544'			MOVEM	T2,ESC.Q.	;SAVE IN CASE <ESCAPE>Q
  2476	002413'	542514	040513'			HRRM	T2,S.MASK(T4)	;SET MASK
  2477	002414'	312440	040421'			CAME	T1,DAT		;ALL DONE YET ?
  2478	002415'	344600	002404'			AOJA	T4,STMSK1	;NOT YET - GO SET REST
  2479	002416'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 54
DDT11	MAC	18-May-81 17:27		ESCAPE COMMANDS

  2480						SUBTTL	ESCAPE COMMANDS
  2481
  2482					;HERE IF USER TYPES ESCAPE
  2483	002417'	260740	001316'		ESCAPE:	CALL	ACCUM		;IN CASE ANYTHING ALREADY IN PROGRESS
  2484	002420'	263740	000000			RET
  2485	002421'	541300	040220'			HRRI	STATE,STATSC	;SET ESCAPE FLAG
  2486	002422'	402000	040545'			SETZM	ESCOCT		;INITIAL OCTAL ARGUMENT
  2487	002423'	402000	040546'			SETZM	ESCDEC		;INITIAL DECIMAL ARGUMENT
  2488	002424'	254000	001113'			JRST	LOOP
  2489
  2490	002425'	660400	200000		ESCESC:	TXO	FLG,F..ESC
  2491	002426'	254000	001113'			JRST	LOOP
  2492
  2493					;HERE TO ACCUMULATE NUMBER AFTER ESCAPE
  2494	002427'	660400	000400		ESC...:	TXO	FLG,F.IDEC	;NUMBER IS DECIMAL
  2495	002430'	200440	040546'			MOVE	T1,ESCDEC	;GET DECIMAL VERSION
  2496	002431'	202440	040545'			MOVEM	T1,ESCOCT	;AND FORCE IT DECIMAL
  2497	002432'	254000	001113'			JRST	LOOP
  2498	002433'	660400	000400		ESC..8:	TXO	FLG,F.IDEC	;NUMBER IS DECIMAL
  2499	002434'	200500	040545'		ESC..0:	MOVE	T2,ESCOCT
  2500	002435'	221500	000010			IMULI	T2,^D8
  2501	002436'	271511	777720			ADDI	T2,-60(T1)	;ACCUMULATE NUMBER
  2502	002437'	202500	040545'			MOVEM	T2,ESCOCT	;SAVE UPDATED NUMBER
  2503	002440'	200500	040546'			MOVE	T2,ESCDEC
  2504	002441'	221500	000012			IMULI	T2,^D10
  2505	002442'	271511	777720			ADDI	T2,-60(T1)	;ACCUMULATE NUMBER
  2506	002443'	202500	040546'			MOVEM	T2,ESCDEC	;SAVE UPDATED NUMBER
  2507	002444'	602400	000400			TXNE	FLG,F.IDEC	;WANT DECIMAL ARGUMENT ?
  2508	002445'	202500	040545'			MOVEM	T2,ESCOCT	;YES SO FORCE IT
  2509	002446'	254000	001113'			JRST	LOOP
  2510
  2511					;HERE WHEN USER TYPES "(" AFTER AN ESCAPE
  2512	002447'	332000	040545'		ESCPAR:	SKIPE	ESCOCT		;DID USER ALSO TYPE A # ?
  2513	002450'	254000	001640'			JRST	ILLCHR		;YES CONFUSED
  2514	002451'	261740	040426'			PUSH	P,EXPRES	;SAVE EXPRESSION SO FAR
  2515	002452'	541300	040120'			HRRI	STATE,STATE0	;PLAIN EXPRESSION EVALUATION
  2516	002453'	260740	001075'			CALL	GETEXP		;GET EXPRESSION
  2517	002454'	254000	003666'			JRST	TPOPJ		;ABORT
  2518	002455'	542440	040545'			HRRM	T1,ESCOCT	;THAT WAS NUMERIC ARGUMENT
  2519	002456'	262740	040426'			POP	P,EXPRESS	;GET OLD EXPRESSION BACK
  2520	002457'	135440	040634'			LDB	T1,CMDPTR	;GET BREAK CHARACTER
  2521	002460'	302440	000051			CAIE	T1,")"
  2522	002461'	254000	001640'			JRST	ILLCHR
  2523	002462'	541300	040220'			HRRI	STATE,STATSC
  2524	002463'	254000	001076'			JRST	GTEXP1		;FINISH PARTIAL EXPRESSION
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 55
DDT11	MAC	18-May-81 17:27		ESCAPE COMMANDS

  2525					;HERE WHEN USER TYPES ESCAPE LF
  2526	002464'				ESC.LF:
  2527
  2528					;HERE WHEN USER TYPES ESCAPE CR
  2529	002464'				ESC.CR:
  2530
  2531					;HERE WHEN USER TYPES ESCAPE UPARROW
  2532	002464'	541300	040120'		ESC.UP:	HRRI	STATE,STATE0	;FIX DISPATCH TABLE POINTER
  2533	002465'	660400	200000			TXO	FLG,F..ESC	;REMEMBER WE SAW <ESCAPE>
  2534	002466'	254000	001115'			JRST	LOOP1		;THEN EXIT GETEXP
  2535
  2536					;HERE TO EXCHANGE OLD DOT, DOTFOO, & DOTFLG
  2537	002467'	250340	040424'		DOTSWP:	EXCH	DOT,DOTOLD	;EXCHANGE NEW AND OLD DOT
  2538	002470'	200440	040422'			MOVE	T1,DOTFOO	;GET DOTFOO
  2539	002471'	250440	040425'			EXCH	T1,DTFOLD	;EXCHANGE WITH OLD ONE
  2540	002472'	202440	040422'			MOVEM	T1,DOTFOO	;AND SET NEW DOTFOO
  2541	002473'	263740	000000			RET
  2542
  2543					;HERE FOR <ESCAPE>M - REFERS TO THE MASK
  2544	002474'	660400	000040		ESC..M:	TXO	FLG,F.MASK	;MASK REFERENCED
  2545	002475'	254000	002553'			JRST	ESCMD8		;FINISH COMMAND
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 56
DDT11	MAC	18-May-81 17:27		ESCAPE COMMANDS

  2546	002476'	201440	000001		ESC..A:	MOVEI	T1,1		;SETTING ADDRESS MODE
  2547	002477'	254000	002537'			JRST	ESCMOD
  2548
  2549	002500'	201440	000003		ESC..B:	MOVEI	T1,3		;SETTING BYTE MODE
  2550	002501'	254000	002533'			JRST	ESCMD0
  2551
  2552	002502'	201440	000002		ESC..C:	MOVEI	T1,2		;SETTING NUMERIC MODE
  2553	002503'	254000	002537'			JRST	ESCMOD
  2554
  2555	002504'	322240	001640'		ESC..K:	JUMPE	SYM,ILLCHR	;DID A SYMBOL PRECEDE $K ?
  2556	002505'	260740	007626'			CALL	B3.TYP		;TYPE 3 SPACES		;TYPE TAB SO HE KNOWS HE WON
  2557	002506'	205440	000001			MOVSI	T1,SMF.SU	;FLAG TO SUPRESS OUTPUT
  2558	002507'	436445	000002			IORM	T1,2(SYM)	;SUPRESS SYMBOL
  2559	002510'	200445	000000			MOVE	T1,(SYM)	;GET SYMBOL
  2560	002511'	622400	200000			TXZE	FLG,F..ESC	;DID HE WANT TO FLUSH SYMBOL ?
  2561	002512'	260740	005270'			CALL	DELSYM		;YES SO FORGET IT
  2562	002513'	254000	000451'			JRST	LEVEL1
  2563
  2564	002514'	606400	000400		ESC..R:	TXNN	FLG,F.IDEC	;WAS ARGUEMNT DECIMAL
  2565	002515'	334440	040545'			SKIPA	T1,ESCOCT	;NO SO USE OCTAL
  2566	002516'	200440	040546'			MOVE	T1,ESCDEC
  2567	002517'	307440	000020			CAIG	T1,^D16
  2568	002520'	307440	000001			CAIG	T1,1		;IS RADIX REASONABLE ?
  2569	002521'	254000	001640'			JRST	ILLCHR		;NO SO FLUSH REQUEST
  2570	002522'	542440	040536'			HRRM	T1,ORADIX	;YES SET NEW RADIX
  2571	002523'	626400	200000			TXZN	FLG,F..ESC	;SETTING PERMANENT MODE ?
  2572	002524'	254000	002553'			JRST	ESCMD8		;NOT PERMANENT MODE
  2573	002525'	506440	040536'			HRLM	T1,ORADIX	;YES
  2574	002526'	254000	002551'			JRST	ESCMD7		;EXIT
  2575
  2576	002527'	201440	000000		ESC..S:	MOVEI	T1,0		;SETTING INSTRUCTION MODE
  2577	002530'	254000	002537'			JRST	ESCMOD
  2578
  2579		000000	000005		ESC..I:	SKIPA	T1,[EXP 5]	;SETTING EBCDIC OUTPUT
  2580	002531'	334440	043255'
  2581	002532'	201440	000004		ESC..T:	MOVEI	T1,4		;SETTING ASCII OUTPUT
  2582	002533'	200500	040545'		ESCMD0:	MOVE	T2,ESCOCT	;GET ARGUMENT
  2583	002534'	336000	000012			SKIPN	T2
  2584	002535'	201500	000002			MOVEI	T2,2		;DEFAULT IS 2 BYTES
  2585	002536'	254000	002542'			JRST	ESCMD2
  2586	002537'	200500	040545'		ESCMOD:	MOVE	T2,ESCOCT	;GET ARGUMENT
  2587	002540'	336000	000012			SKIPN	T2
  2588	002541'	201500	000001			MOVEI	T2,1		;DEFAULT IS 1
  2589	002542'	542500	040534'		ESCMD2:	HRRM	T2,BYTCNT
  2590	002543'	542440	040535'			HRRM	T1,O.MODE	;SET CURRENT MODE
  2591	002544'	621400	000001			TXZ	FLG,F.LBKT
  2592	002545'	626400	200000			TXZN	FLG,F..ESC
  2593	002546'	254000	002553'			JRST	ESCMD8		;NOT PERMANENT
  2594	002547'	507000	040534'			HRLS	BYTCNT		;LOCAL COUNT IS PERMANT COUNT
  2595	002550'	506440	040535'			HRLM	T1,O.MODE	;SET PERMANT MODE
  2596	002551'	260740	007626'		ESCMD7:	CALL	B3.TYP		;TYPE 3 SPACES
  2597	002552'	254000	000451'			JRST	LEVEL1
  2598	002553'	541300	040120'		ESCMD8:	HRRI	STATE,STATE0	;RESTORE STATE POINTER
  2599	002554'	254000	001113'			JRST	LOOP		;FINISH COMMAND
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 57
DDT11	MAC	18-May-81 17:27		ESCAPE COMMANDS

  2600					;HERE IF USER TYPES <ESCAPE>Q
  2601
  2602	002555'	200500	040462'		ESC..Q:	MOVE	T2,SYMPTR	;GET SYMBOL POINTER
  2603		440600	040463'			CAME	T2,[POINT 6,SYMBOL]	;DID THIS HAPPEN AT A REASONABLE TIME ?
  2604	002556'	312500	043125'
  2605	002557'	254000	001640'			JRST	ILLCHR		;NO SO DING HIM
  2606		000040	002000			TXO	FLG,F.SYMB!F.GEXP	;GOT SOMETHING
  2607	002560'	670400	043256'
  2608	002561'	620400	001600			TXZ	FLG,F.IDEC!F.IOCT!F.IHEX
  2609	002562'	133000	040462'			IBP	SYMPTR		;SKIP FIRST CHAR
  2610	002563'	201440	000061			MOVEI	T1,'  Q'
  2611	002564'	136440	040462'			IDPB	T1,SYMPTR	;PUT Q IN SYMBOL
  2612	002565'	541300	040120'			HRRI	STATE,STATE0	;RESTORE STATE
  2613	002566'	254000	001113'			JRST	LOOP		;AND PROCEDE
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 58
DDT11	MAC	18-May-81 17:27		ESCAPE COMMANDS

  2614	002567'	336440	040426'		ESC..G:	SKIPN	T1,EXPRESS	;GET ADDRESS HE TYPED
  2615	002570'	200440	040433'			MOVE	T1,GOTO		;OLD VALUE FOR STARTING ADDRESS
  2616	002571'	405440	177776			ANDI	T1,177776	;ONLY 16 BITS PLEASE
  2617	002572'	202440	040433'			MOVEM	T1,GOTO		;REMEMBER IT FOR LATER
  2618	002573'	332000	011147'			SKIPE	MEMORY		;ARE DIDDLING DUMP OR BIN FILE ?
  2619	002574'	254000	002610'			JRST	ESC.G1		;START THE SIMULATION
  2620	002575'	336000	040456'			SKIPN	NODE		;ARE WE DOING STUFF WITH A NODE ?
  2621	002576'	254000	001640'			JRST	ILLCHR		;NO SO THIS IS IMPOSSIBLE
  2622	002577'	606400	100000			TXNN	FLG,F.WENB	;WAS PATCHING ENABLED ?
  2623	002600'	254000	002400'			JRST	WRTLCK		;CAN'T DO IT
  2624	002601'	200440	040426'			MOVE	T1,EXPRESS	;GET ADDRESS HE TYPED
  2625	002602'	260740	003643'			CALL	SETUPN		;SETUP NODE UUO
  2626	002603'	000000	000003			EXP	3		;CODE FOR GOTO IS 3
  2627	002604'	260740	003670'			CALL	NODSET		;GO DO NODE UUO
  2628	002605'	254000	005061'			JRST	CALER0		;FAILED ?!
  2629	002606'	260740	007615'		TABDNE:	CALL	TABTYP
  2630	002607'	254000	000451'			JRST	LEVEL1		;WE DID IT
  2631
  2632	002610'	602400	200000		ESC.G1:	TXNE	FLG,F..ESC	;WAS THIS AN $$G ?
  2633	002611'	254000	002606'			JRST	TABDNE		;THAT JUST SETS STARTING ADDRESS
  2634	002612'	260740	011221'			CALL	SETUPC		;SETUP THE PC FOR EXECUTION
  2635	002613'	661400	004000			TXO	FLG,F.RUNF	;SET RUN FLOP
  2636						MOVEI	T1,[ASCIZ \
  2637
  2638		064241	505100		   beginning execution @pc = \]
  2639	002614'	201440	043257'
  2640	002615'	260740	007655'			CALL	TYPSTR
  2641	002616'	200440	011207'			MOVE	T1,SIMREG+PC	;GET PC WE'LL START AT
  2642	002617'	260740	007076'			CALL	ADRTYP
  2643	002620'	260740	007621'			CALL	CRLTYP
  2644	002621'	200200	011607'			MOVE	AC4,INSRUN
  2645	002622'	274200	011610'			SUB	AC4,WAITIM
  2646	002623'	400140	000000			SETZ	AC3,		;WANT OUR RUNTIME
  2647	002624'	047140	000027			RUNTIM	AC3,		;GET RUNTIME SO FAR
  2648	002625'	260740	011153'			CALL	SIMXCT		;RUN THE SIMULATED MACHINE FOR A WHILE
  2649	002626'	400440	000000			SETZ	T1,		;WANT OUR RUNTIME
  2650	002627'	047440	000027			RUNTIM	T1,		;GET NEW RUNTIME
  2651	002630'	276440	000003			SUBM	T1,AC3		;LEAVES HOW LONG WE RAN
  2652						MOVEI	T1,[ASCIZ \
  2653		064241	150210			PDP-11 halted @pc = \]
  2654	002631'	201440	043266'
  2655	002632'	260740	007655'			CALL	TYPSTR
  2656	002633'	200440	011207'			MOVE	T1,SIMREG+PC
  2657	002634'	260740	007076'			CALL	ADRTYP
  2658		203416	320172			TYPE	< ps = >
  2659	002635'	201440	043273'
  2660	002636'	260740	007655'
  2661	002637'	550440	000016			HRRZ	T1,PS
  2662	002640'	260740	007535'			CALL	OCTYPE
  2663						TYPE	<
  2664		064241	160714			after >
  2665	002641'	201440	043275'
  2666	002642'	260740	007655'
  2667	002643'	200440	011607'			MOVE	T1,INSRUN
  2668	002644'	274440	011610'			SUB	T1,WAITIM
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 58-1
DDT11	MAC	18-May-81 17:27		ESCAPE COMMANDS

  2669	002645'	274440	000004			SUB	T1,AC4
  2670	002646'	200200	000011			MOVE	AC4,T1		;REMEMBER NUMBER OF INSTRUCTIONS EXECUTED
  2671	002647'	260740	007555'			CALL	PDECTY		;TYPE AS DECIMAL WITH COMMAS
  2672		203235	671750			TYPE	< instructions >
  2673	002650'	201440	043277'
  2674	002651'	260740	007655'
  2675	002652'	200440	000003			MOVE	T1,AC3		;COPY NUMBER OF MSEC'S EXECUTED
  2676	002653'	225440	023420			MULI	T1,^D10000	;MAKES NUMBER OF uSEC*10
  2677	002654'	234440	000004			DIV	T1,AC4		;MAKES NUMBER OF 10*USEC'S / INSTRUCTIONS
  2678	002655'	231440	000012			IDIVI	T1,^D10
  2679	002656'	301440	000144			CAIL	T1,^D100	;LESS THAN 100 ?
  2680	002657'	254000	002664'			JRST	ESC.G8
  2681	002660'	261740	000012			PUSH	P,T2
  2682	002661'	260740	007526'			CALL	DECTYP
  2683	002662'	260740	007636'			CALL	PERTYP		;DO A DECIMAL POINT
  2684	002663'	262740	000011			POP	P,T1
  2685	002664'	260740	007526'		ESC.G8:	CALL	DECTYP		;TELL SPEED
  2686	002665'	260740	007630'			CALL	BLANKT		;TYPE A SPACE
  2687	002666'	200440	000003			MOVE	T1,AC3		;GET RUNTIME IN MSEC'S
  2688	002667'	260740	010003'			CALL	TIMTY1		;TYPE RUN TIME
  2689	002670'	260740	007621'			CALL	CRLTYP
  2690	002671'	254000	000451'			JRST	LEVEL1
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 59
DDT11	MAC	18-May-81 17:27		ESCAPE COMMANDS

  2691					;ESCAPE V - WATCH A LOCATION FOR VARIANCE
  2692	002672'	332000	011147'		ESC..V:	SKIPE	MEMORY
  2693	002673'	254000	001640'			JRST	ILLCHR
  2694	002674'	606400	000010			TXNN	FLG,F.LOPN	;IS LOCATION OPEN ?
  2695	002675'	254000	001640'			JRST	ILLCHR		;GIVE USER "?"
  2696	002676'	402000	040712'			SETZM	CACHE		;SWEEP THE CACHE
  2697	002677'	660400	000001			TXO	FLG,F.FLIP
  2698	002700'	201440	000000		ESC.V0:	MOVEI	T1,0		;MINIMUM SLEEP
  2699	002701'	047440	000031			SLEEP	T1,
  2700	002702'	550440	000007			HRRZ	T1,DOT		;GET ADDRESS TO WATCH
  2701	002703'	550500	040534'			HRRZ	T2,BYTCNT	;NUMBER OF BYTES TO DISPLAY
  2702	002704'	550540	040535'			HRRZ	T3,O.MODE	;OUTPUT MODE
  2703	002705'	307540	000002			CAIG	T3,2
  2704	002706'	240500	000001			ASH	T2,1		;WORD MODE SO TIMES 2 BYTES
  2705	002707'	620400	004000			TXZ	FLG,F.CACH
  2706	002710'	260740	003354'			CALL	GETWRD		;GET DATA
  2707		260740	005061'			JRST	[CALL	CALER0
  2708		254000	000451'				JRST	LEVEL1 ]
  2709	002711'	254000	043302'
  2710	002712'	200500	000011			MOVE	T2,T1		;COPY DATA
  2711	002713'	430500	040464'			XOR	T2,DATA		;COMPARE TO LAST TIME
  2712	002714'	404500	040513'			AND	T2,S.MASK	;MASK OFF IRREVELANT BITS
  2713	002715'	626400	000001			TXZN	FLG,F.FLIP
  2714	002716'	322500	002732'			JUMPE	T2,ESC.V9	;BRANCH IF SAME AS BEFORE
  2715	002717'	261740	000011			PUSH	P,T1		;SAVE NEW DATA
  2716	002720'	202440	040464'			MOVEM	T1,DATA		;SAVE NEW DATA
  2717	002721'	260740	007621'			CALL	CRLTYP
  2718	002722'	550440	000007			HRRZ	T1,DOT		;GET ADDRESS
  2719	002723'	260740	007076'			CALL	ADRTYP
  2720	002724'	201440	000057			MOVEI	T1,"/"
  2721	002725'	603400	000001			TXNE	FLG,F.LBKT
  2722	002726'	201440	000133			MOVEI	T1,"["
  2723	002727'	260740	007666'			CALL	TYPCHR
  2724	002730'	260740	001736'			CALL	COMLF4
  2725	002731'	262740	040464'			POP	P,DATA		;IN CASE DATYPE CHANGED IT
  2726	002732'	051540	000000		ESC.V9:	SKPINC			;HAS USER TYPED A CHARACTER ?
  2727	002733'	254000	002700'			JRST	ESC.V0		;NO SO KEEP WATCHING
  2728						TYPE	<
  2729					<done watching>
  2730		064247	462336		>
  2731
  2732	002734'	201440	043304'
  2733	002735'	260740	007655'
  2734	002736'	254000	000451'			JRST	LEVEL2		;GO PROCESS NEXT COMMAND
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 60
DDT11	MAC	18-May-81 17:27		ESCAPE COMMANDS

  2735					;HERE BECAUSE TYPED $X - EXECUTE AN INSTRUCTION
  2736					; REGISTER USAGE
  2737					;	AC1 ON RETURN FROM SIMXCT WILL CONTAIN PC WE JUST EXECUTED
  2738					;	AC3 CONTAINS # FROM $#X
  2739					;	AC4 FOR $$X WILL BE SET UP WITH PC TO STOP ON
  2740
  2741	002737'	336000	011147'		ESC..X:	SKIPN	MEMORY		;DO WE HAVE A PROGRAM TO EXECUTE ?
  2742	002740'	254000	001640'			JRST	ILLCHR		;NO SO DING HIM
  2743	002741'	514140	040545'			HRLZ	AC3,ESCOCT	;COPY REPETITION COUNT
  2744	002742'	213000	000003			MOVNS	AC3		;MAKE AN AOBJN POINTER
  2745	002743'	260740	011221'			CALL	SETUPC		;SETUP THE PC
  2746	002744'	200200	011207'			MOVE	AC4,SIMREG+PC	;GET STARTING PC
  2747	002745'	200440	000004			MOVE	T1,AC4		;GET STARTING ADDRESS
  2748	002746'	260740	002171'			CALL	CNINWD		;COUNT WORDS IN INSTRUCTION
  2749	002747'	201440	000001			MOVEI	T1,1		;CALL IT A ONE WORD INSTRUCTION
  2750	002750'	270200	000011			ADD	AC4,T1		;PLUS NUMBER OF WORDS
  2751	002751'	270200	000011			ADD	AC4,T1		;TWICE TO MAKE BYTE ADR
  2752		004000	000001			TXZ	FLG,F.RUNF!F.FLIP	;NOT REALLY RUNNING
  2753	002752'	630400	043310'
  2754	002753'	260740	007621'			CALL	CRLTYP		;ACKNOWLEDGE WE ARE DOING IT
  2755		011200'	011210'			MOVE	T1,[SIMREG,,BEGREG]
  2756	002754'	200440	043311'
  2757	002755'	251440	011217'			BLT	T1,BEGREG+7	;COPY INITIAL REGISTERS
  2758	002756'	202700	011220'			MOVEM	PS,BEG.PS	;SAVE INITIAL PS
  2759	002757'	402000	040710'			SETZM	CACHEL		;FLUSH CACHE
  2760	002760'	260740	011153'		ESC.X1:	CALL	SIMXCT		;EXECUTE THE NEXT INSTRUCTION
  2761	002761'	603400	040000			TXNE	FLG,F.HALT	;DID THE PDP11 HALT ?
  2762	002762'	254000	003006'			JRST	ESCX73		;YES
  2763	002763'	606400	200000			TXNN	FLG,F..ESC	;DOING $$X ?
  2764	002764'	254000	002775'			JRST	ESC.X7		;NO
  2765	002765'	200440	011207'			MOVE	T1,SIMREG+PC	;GET CURRENT PC
  2766	002766'	301444	000000			CAIL	T1,(AC4)	;RETURN FROM SUBROUTINE ?
  2767	002767'	303444	000030			CAILE	T1,30(AC4)	;IN CASE OF ARGUMENT LIST
  2768	002770'	304000	000000			CAIA
  2769	002771'	254000	003041'			JRST	ESC.X9
  2770	002772'	051540	000000			SKPINC			;OPERATOR IMPATIENT ?
  2771	002773'	254000	002760'			JRST	ESC.X1		;DO ANOTHER INSTRUCTION
  2772	002774'	254000	003041'			JRST	ESC.X9
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 61
DDT11	MAC	18-May-81 17:27		ESCAPE COMMANDS

  2773					;HERE AFTER DOING INSTRUCTION FOR $X
  2774	002775'	253140	002760'		ESC.X7:	AOBJN	AC3,ESC.X1	;IF WANT MORE DO'EM
  2775	002776'	316700	011220'			CAMN	PS,BEG.PS	;DID THE PS CHANGE ?
  2776	002777'	254000	003006'			JRST	ESCX73
  2777	003000'	660400	000001			TXO	FLG,F.FLIP	;HAVE TYPED A REGISTER
  2778		502465	720100			MOVEI	T1,[ASCIZ \PS/   \]
  2779	003001'	201440	043312'
  2780	003002'	260740	007655'			CALL	TYPSTR
  2781	003003'	550440	000016			HRRZ	T1,PS
  2782	003004'	260740	007520'			CALL	RADTYP
  2783	003005'	260740	007626'			CALL	B3.TYP		;TYPE A FEW SPACES
  2784
  2785					;HERE TO DISPLAY REGISTERS WHICH CHANGED
  2786	003006'	205200	777771		ESCX73:	MOVSI	AC4,-7
  2787	003007'	200444	011200'		ESCX74:	MOVE	T1,SIMREG(AC4)
  2788	003010'	312444	011210'			CAME	T1,BEGREG(AC4)
  2789		660400	000001			CALL	[TXO	FLG,F.FLIP	;HAVE TYPED A REGISTER
  2790		550340	000004				HRRZ	DOT,AC4		;COPY REG ADR
  2791		505340	400000				HRLI	DOT,400000
  2792		254000	001724'				JRST	COMLF1 ]
  2793	003011'	260740	043314'
  2794	003012'	253200	003007'			AOBJN	AC4,ESCX74
  2795		000001	000001			CAME	AC3,[1,,1]	;DID WE EXECUTE ONE INSTRUCTION
  2796	003013'	312140	043320'
  2797	003014'	254000	003037'			JRST	ESC.X8		;MORE THAN ONE SO DON'T TRY TO TYPE OPERANDS
  2798
  2799					;HERE TO DISPLAY OPERANDS AFTER LAST INSTRUCTION
  2800	003015'	200440	000001			MOVE	T1,AC1		;GET PC WE EXECUTED
  2801	003016'	560340	000001			HRRO	DOT,AC1		;CURRENT LOCATION
  2802	003017'	402000	040422'			SETZM	DOTFOO
  2803	003020'	201500	000002			MOVEI	T2,2		;WANT TWO BYTES
  2804	003021'	260740	003354'			CALL	GETWRD		;TRY TO GET THE INSTRUCTION
  2805	003022'	254000	003037'			JRST	ESC.X8		;CAN'T GET = DONE
  2806	003023'	350000	011217'			AOS	BEGREG+PC
  2807	003024'	350000	011217'			AOS	BEGREG+PC
  2808	003025'	202440	040464'			MOVEM	T1,DATA		;SAVE FOR FUTUTR REFERENCE
  2809	003026'	260740	005201'			CALL	INVLFN		;TRY TO FIND SYMBOL
  2810	003027'	254000	003037'			JRST	ESC.X8		;CAN'T FIND = DONE
  2811		060600	040464'			LDB	T1,[POINT 6,DATA,29]
  2812	003030'	135440	043321'
  2813	003031'	500245	000002			HLL	SYM,2(SYM)	;GET FLAGS FOR INSTRUCTION
  2814	003032'	603240	000040			TLNE	SYM,SMF.SS
  2815		302440	000027			CALL	[CAIE	T1,27		;IMMEDIATE ?
  2816		254000	003054'				JRST	ESC.X3		;PRINT DATA FOR FIRST OPERAND
  2817		201440	000002				MOVEI	T1,2
  2818		272440	011217'				ADDM	T1,BEGREG+PC	;ADJUST OLD PC FOR THIS
  2819		263740	000000				RET	]
  2820	003033'	260740	043322'
  2821		000600	040464'			LDB	T1,[POINT 6,DATA,35]
  2822	003034'	135440	043327'
  2823	003035'	603240	000060			TLNE	SYM,SMF.DD!SMF.SS
  2824	003036'	260740	003054'			CALL	ESC.X3
  2825	003037'	622400	000001		ESC.X8:	TXZE	FLG,F.FLIP	;DID WE TYPE ANY REGISTERS ?
  2826	003040'	260740	007621'			CALL	CRLTYP		;YES SO FINISH OLD STUFF WITH A FLOURISH
  2827
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 61-1
DDT11	MAC	18-May-81 17:27		ESCAPE COMMANDS

  2828					;HERE WHEN $X OR $$X IS FINISHED TO TYPE NEXT INSTRUCTION
  2829	003041'	260740	007626'		ESC.X9:	CALL	B3.TYP
  2830	003042'	560340	011207'			HRRO	DOT,SIMREG+PC	;SET UP DOT TO CALL DATYPE
  2831	003043'	261740	040535'			PUSH	P,O.MODE	;SAVE OLD OUTPUT MODE
  2832	003044'	261740	040534'			PUSH	P,BYTCNT	;SAVE OLD BYTE COUNT
  2833	003045'	402000	040535'			SETZM	O.MODE		;SET INSTRUCTION MODE
  2834	003046'	201440	000001			MOVEI	T1,1
  2835	003047'	542440	040534'			HRRM	T1,BYTCNT
  2836	003050'	260740	001724'			CALL	COMLF1		;TYPE OUT INSTRUCTION
  2837	003051'	262740	040534'			POP	P,BYTCNT
  2838	003052'	262740	040535'			POP	P,O.MODE
  2839	003053'	254000	000451'			JRST	LEVEL1
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 62
DDT11	MAC	18-May-81 17:27		ESCAPE COMMANDS

  2840	003054'	606440	000070		ESC.X3:	TRNN	T1,70		;IS THIS REGISTER MODE ?
  2841	003055'	263740	000000			RET			;ALREADY GAVE CHANGE
  2842	003056'	246440	777775			LSHC	T1,-3		;LEAVE ONLY MODE IN T1
  2843	003057'	242500	777737			LSH	T2,-^D33	;RIGHT JUSTIFY REG NUMBER
  2844	003060'	540352	011210'			HRR	DOT,BEGREG(T2)
  2845	003061'	306440	000001			CAIN	T1,1		;WAS THIS REGISTER DEFERRED
  2846	003062'	254000	003113'			JRST	ESCX35		;YES SO WE HAVE ADR NOW
  2847	003063'	307440	000003			CAIG	T1,3		;IS THIS AUTO INCREMENT ?
  2848		350012	011210'			JRST	[AOS	BEGREG(T2)
  2849		603240	200000				TLNE	SYM,SMF.BY
  2850		301500	000006				CAIL	T2,6
  2851		350012	011210'				AOS	BEGREG(T2)
  2852		254000	003103'				JRST	ESCX33 ]
  2853	003064'	254000	043330'
  2854	003065'	307440	000005			CAIG	T1,5		;IS THIS AUTO DECREMENT ?
  2855		370012	011210'			JRST	[SOS	BEGREG(T2)
  2856		603240	200000				TLNE	SYM,SMF.BY
  2857		301500	000006				CAIL	T2,6
  2858		370012	011210'				SOS	BEGREG(T2)
  2859		540352	011210'				HRR	DOT,BEGREG(T2)
  2860		254000	003103'				JRST	ESCX33]
  2861	003066'	254000	043335'
  2862	003067'	261740	000011			PUSH	P,T1
  2863	003070'	261740	000012			PUSH	P,T2
  2864	003071'	200440	011217'			MOVE	T1,BEGREG+PC
  2865	003072'	201500	000002			MOVEI	T2,2		;WANT TWO BYTES
  2866	003073'	260740	003354'			CALL	GETWRD
  2867	003074'	400440	000000			SETZ	T1,
  2868	003075'	550340	000011			HRRZ	DOT,T1
  2869	003076'	262740	000012			POP	P,T2
  2870	003077'	262740	000011			POP	P,T1
  2871	003100'	350000	011217'			AOS	BEGREG+PC
  2872	003101'	350000	011217'			AOS	BEGREG+PC
  2873	003102'	270352	011210'			ADD	DOT,BEGREG(T2)
  2874	003103'	405340	177777		ESCX33:	ANDI	DOT,177777	;STRIP EXTRA BITS
  2875	003104'	606440	000001			TRNN	T1,1		;IS THIS DEFERRED MODE ?
  2876	003105'	254000	003113'			JRST	ESCX35
  2877	003106'	200440	000007			MOVE	T1,DOT		;COPY ADDRESS
  2878	003107'	201500	000002			MOVEI	T2,2
  2879	003110'	260740	003354'			CALL	GETWRD
  2880	003111'	263740	000000			RET
  2881	003112'	550340	000011			HRRZ	DOT,T1
  2882	003113'	660400	000001		ESCX35:	TXO	FLG,F.FLIP	;REMEMBER WE TYPED DATA
  2883	003114'	405340	177777			ANDI	DOT,177777	;STRIP EXTRA BITS
  2884	003115'	563000	000007			HRROS	DOT		;FLAG IS MEMORY LOCATION
  2885	003116'	261740	040464'			PUSH	P,DATA
  2886	003117'	261740	000005			PUSH	P,SYM		;SAVE POINTER TO SYMBOL FOR INSTRUCTION
  2887	003120'	261740	040535'			PUSH	P,O.MODE	;SAVE OUTPUT MODE
  2888	003121'	261740	040534'			PUSH	P,BYTCNT	;AND SAVE OUTPUT COUNT
  2889	003122'	550440	040535'			HRRZ	T1,O.MODE	;GET OUTPUT MODE
  2890	003123'	336000	000011			SKIPN	T1
  2891	003124'	201440	000001			MOVEI	T1,1		;USE ADDRESS INSTEAD OF INSTRUCTION
  2892	003125'	201500	000002			MOVEI	T2,2		;ASSUME TWO BYTES OF OUTPUT
  2893	003126'	307440	000002			CAIG	T1,2		;WORD MODE OUTPUT ?
  2894	003127'	201500	000001			MOVEI	T2,1		;ONLY ONE WORD
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 62-1
DDT11	MAC	18-May-81 17:27		ESCAPE COMMANDS

  2895	003130'	603240	200000			TLNE	SYM,SMF.BY	;BYTE MODE INSTRUCTION ?
  2896		307440	000002			JRST	[CAIG	T1,2		;ALREADY BYTE MODE OUTPUT ?
  2897		201440	000003				MOVEI	T1,3		;SET BYTE MODE OUTPUT
  2898		201500	000001				MOVEI	T2,1		;ONLY ONE BYTE OF OUTPUT
  2899		254000	003132'				JRST	.+1 ]
  2900	003131'	254000	043343'
  2901	003132'	202440	040535'			MOVEM	T1,O.MODE	;SET NEW OUTPUT MODE
  2902	003133'	542500	040534'			HRRM	T2,BYTCNT	;AND BYTE COUNT
  2903	003134'	260740	001725'			CALL	COMLF2		;TYPE ADR AND DATA
  2904	003135'	262740	040534'			POP	P,BYTCNT
  2905	003136'	262740	040535'			POP	P,O.MODE
  2906	003137'	262740	000005			POP	P,SYM		;GET SYMBOL POINTER BACK
  2907	003140'	262740	040464'			POP	P,DATA
  2908	003141'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 63
DDT11	MAC	18-May-81 17:27		ESCAPE COMMANDS

  2909					;HERE BECAUSE USER TYPED $Y - INVOKES A COMMAND FILE
  2910					ESC..Y:	TYPE	<
  2911		064241	146336			Log responses where: >
  2912	003142'	201440	043347'
  2913	003143'	260740	007655'
  2914	003144'	260740	010231'			CALL	ESC.D0		;SET UP TO CALL OPNFIL
  2915	003145'	400440	000000			SETZ	T1,		;NO DEFAULT FILE NAME
  2916	003146'	260740	005642'			CALL	OPNFL0
  2917	003147'	300000	000000			NOP			;NO LOG FILE SO JUST GO TO TTY
  2918	003150'	620400	030000			TXZ	FLG,F.WRIT!F.APND	;REMEMBER WE ARE READING
  2919		444464	212100			MOVE	T1,[SIXBIT \DDT11\]
  2920	003151'	200440	043354'
  2921		444464	435544			MOVE	T2,[SIXBIT \DDTCMD\]	;DEFAULT EXTENSIONS
  2922	003152'	200500	043355'
  2923		003277'	003277'			MOVE	T3,[CMDDSP,,CMDSWL]
  2924	003153'	200540	043356'
  2925	003154'	201600	005177'			MOVEI	T4,RSKP
  2926	003155'	261740	006461'			PUSH	P,OHD		;IN CASE LOGGING
  2927	003156'	402000	006461'			SETZM	OHD
  2928	003157'	260740	005641'			CALL	OPNFIL
  2929	003160'	254000	000444'			JRST	LEVEL0
  2930	003161'	262740	006461'			POP	P,OHD
  2931	003162'	260740	010241'			CALL	ESC.D3		;PUT TITLE LINE ON DUMP
  2932	003163'	621400	010000			TXZ	FLG,F.CERR	;NO COMMAND ERRORS YET
  2933	003164'	402000	003274'			SETZM	CSECHO		;NOT SUPPRESSING ECHO YET
  2934	003165'	476000	003275'			SETOM	CMDFIL
  2935	003166'	402000	003276'			SETZM	CMDCNT		;AT FIRST CHAR
  2936	003167'	402000	003301'			SETZM	CMDFAK
  2937	003170'	254000	000444'			JRST	LEVEL0
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 64
DDT11	MAC	18-May-81 17:27		ESCAPE COMMANDS

  2938					;HERE TO GET A CHAR FROM A COMMAND FILE
  2939	003171'	402000	003301'		CMDCH1:	SETZM	CMDFAK
  2940	003172'	332440	003301'		CMDCHR:	SKIPE	T1,CMDFAK	;PREVIOUS "^ATEXT^A" TO HANDLE ?
  2941		000600	003302'			JRST	[CAMN	T1,[POINT 6,CMDFAK+1,35]
  2942		316440	043357'
  2943		254000	003171'				JRST	CMDCH1
  2944		134440	003301'				ILDB	T1,CMDFAK	;GET NEXT CHAR
  2945		322440	003171'				JUMPE	T1,CMDCH1	;IF BLANK HIT END
  2946		201451	000040				MOVEI	T1,40(T1)	;CONVERT TO ASCII
  2947		254000	003211'				JRST	CMDCH8 ]
  2948	003173'	254000	043360'
  2949	003174'	260740	006707'			CALL	FILCHR
  2950	003175'	254000	003257'			JRST	CMDONE		;DONE WITH COMMAND FILE
  2951	003176'	350000	003276'			AOS	CMDCNT		;COUNT CHARACTERS INTO FILE
  2952	003177'	306440	000177			CAIN	T1,177		;IS THIS A RUBOUT ?
  2953	003200'	254000	003172'			JRST	CMDCHR		;IGNORE IT
  2954	003201'	306440	000001			CAIN	T1,1		;IS THIS A "^A"
  2955	003202'	254000	003220'			JRST	CMDSUB		;SPECIAL SUBSTITUTION
  2956	003203'	335000	003274'			SKIPGE	CSECHO		;SEARCHING FOR A TAG ?
  2957	003204'	254000	003211'			JRST	CMDCH8		;YES SO XON, XOF STUFF
  2958	003205'	306440	000023			CAIN	T1,37&"S"	;IS THIS AN XOF ?
  2959		523000	003274'			JRST	[HLLOS	CSECHO		;YES SHUT OFF ECHOING
  2960		254000	003172'				JRST	CMDCHR ]	;ON TO NEXT CHAR
  2961	003206'	254000	043366'
  2962	003207'	306440	000021			CAIN	T1,37&"Q"	;IS THIS AN XON ?
  2963		513000	003274'			JRST	[HLLZS	CSECHO		;YES SO TURN ECHOING BACK ON
  2964		254000	003172'				JRST	CMDCHR ]	;ON TO NEXT CHARACTER
  2965	003210'	254000	043370'
  2966	003211'	332000	003274'		CMDCH8:	SKIPE	CSECHO		;DOING AN ECHO ?
  2967	003212'	254000	005177'			JRST	RSKP
  2968	003213'	261740	000011			PUSH	P,T1		;SAVE CHARACTER
  2969	003214'	306440	000033			CAIN	T1,33		;IS THIS AN ALTMODE ?
  2970	003215'	201440	000044			MOVEI	T1,"$"		;YES SO ECHO RIGHT
  2971	003216'	260740	007666'			CALL	TYPCHR
  2972	003217'	254000	005176'			JRST TPOPJ1		;GET CHAR BACK, AND SKIP RETURN
  2973
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 65
DDT11	MAC	18-May-81 17:27		ESCAPE COMMANDS

  2974	003220'	260740	004347'		CMDSUB:	CALL	SAVE24
  2975		440600	003302'			MOVE	T4,[POINT 6,CMDFAK+1]
  2976	003221'	200600	043372'
  2977	003222'	402000	003302'			SETZM	CMDFAK+1
  2978	003223'	260740	006707'		CMDCH2:	CALL	FILCHR		;GET NEXT CHAR
  2979	003224'	254000	003240'			JRST	CMDCH7
  2980	003225'	350000	003276'			AOS	CMDCNT		;COUNT THIS CHAR
  2981	003226'	306440	000001			CAIN	T1,1		;IS THIS THE TRAILING "^A" ?
  2982	003227'	254000	003236'			JRST	CMDCH4		;GO EVALUATE WHAT WE HAVE
  2983	003230'	301440	000141			CAIL	T1,"A"+40	;CHECK FOR LC
  2984	003231'	303440	000172			CAILE	T1,"Z"+40
  2985	003232'	640440	000040			TRC	T1,40		;CONVERT TO SIXBIT
  2986		000600	003302'			CAME	T4,[POINT 6,CMDFAK+1,35]
  2987	003233'	312600	043357'
  2988	003234'	136440	000014			IDPB	T1,T4
  2989	003235'	254000	003223'			JRST	CMDCH2
  2990	003236'	200440	003302'		CMDCH4:	MOVE	T1,CMDFAK+1	;GET SYMBOL WE BUILT
  2991	003237'	260740	005153'			CALL	SYMFND		;SEE IF THERE IS A SYMBOL FOR THIS
  2992		201440	000001		CMDCH7:	JRST	[MOVEI	T1,1		;THIS IS HIS "^A"
  2993		254000	003211'				JRST	CMDCH8 ]
  2994	003240'	254000	043373'
  2995		000000	003172'			PUSH	P,[EXP CMDCHR]
  2996	003241'	261740	043375'
  2997	003242'	200445	000001			MOVE	T1,1(SYM)	;GET VALUE
  2998		440600	003302'			MOVE	T3,[POINT 6,CMDFAK+1]
  2999	003243'	200540	043372'
  3000	003244'	202540	003301'			MOVEM	T3,CMDFAK
  3001	003245'	402000	003302'			SETZM	CMDFAK+1
  3002	003246'	200600	040536'			MOVE	T4,ORADIX
  3003	003247'	231454	000000		CMDCH6:	IDIVI	T1,(T4)
  3004	003250'	506517	000000			HRLM	T2,(P)
  3005	003251'	332000	000011			SKIPE	T1
  3006	003252'	260740	003247'			PUSHJ	P,CMDCH6
  3007	003253'	554457	000000			HLRZ	T1,(P)
  3008	003254'	435440	000020			IORI	T1,20		;CONVERT TO SIXBIT
  3009	003255'	136440	000013			IDPB	T1,T3
  3010	003256'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 66
DDT11	MAC	18-May-81 17:27		ESCAPE COMMANDS

  3011					;HERE WHEN DONE WITH A COMMAND FILE
  3012	003257'	332240	041115'		CMDONE:	SKIPE	SYM,SYMBEG	;POINTER TO BEGINING OF SYMBOL TABLE
  3013	003260'	316240	041116'		CMDDN1:	CAMN	SYM,SYMEND	;HIT END YET ?
  3014	003261'	254000	003267'			JRST	CMDDN7		;DONE
  3015		360605	000000			LDB	T1,[POINT 6,(SYM),5]
  3016	003262'	135440	043376'
  3017	003263'	306440	000005			CAIN	T1,'  %'
  3018		200445	000000			JRST	[MOVE	T1,(SYM)	;GET SYMBOL
  3019		260740	005270'				CALL	DELSYM		;FLUSH SYMBOL
  3020		254000	003257'				JRST	CMDONE ]	;GO GET REST
  3021	003264'	254000	043377'
  3022	003265'	201245	000004			MOVEI	SYM,4(SYM)	;POINT TO NEXT SYMBOL
  3023	003266'	254000	003260'			JRST	CMDDN1		;CHECK IT
  3024	003267'	402000	003275'		CMDDN7:	SETZM	CMDFIL		;DONE WITH FILE NOW
  3025	003270'	260740	006175'			CALL	DONE.W		;IN CASE LOGGING COMMANDS
  3026						TYPE	<
  3027						Finished command file
  3028					
  3029		064241	143322		>
  3030
  3031	003271'	201440	043402'
  3032	003272'	260740	007655'
  3033	003273'	263740	000000			RET
  3034
  3035	003274'	000000	000000		CSECHO:	Z			;IF NONZERO SUPPRESS ECHOING COMMAND CHARACTERS
  3036								; LH SET -1 IF SEARCHING FOR A TAG
  3037								; RH SET -1 IF ENCOUNTER XOF, CLEARED WITH XON
  3038	003275'	000000	000000		CMDFIL:	Z
  3039	003276'	000000	000000		CMDCNT:	Z			;COUNT OF CURRENT COMMAND CHARACTER
  3040	003277'				CMDDSP:
  3041	003277'	000000	000000		CMDSWL:	Z
  3042	003300'	000000	000000			Z
  3043	003301'	000000	000000		CMDFAK:	Z			;POINTER TO FOLLOWING WORD
  3044	003302'	000000	000000			Z
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 67
DDT11	MAC	18-May-81 17:27		ESCAPE COMMANDS

  3045					;HERE FOR (ALTMODE)N WHICH IS NOT WORD SEARCH
  3046	003303'	664400	000001		ESC..N:	TROA	FLG,F.FLIP	;FLAG WE ARE DOING NOT SEARCH
  3047
  3048					;HERE FOR (ALTMODE)W WHICH IS WORD SEARCH
  3049	003304'	620400	000001		ESC..W:	TXZ	FLG,F.FLIP	;FLAG WE WANT MATCHES
  3050	003305'	200440	040426'			MOVE	T1,EXPRESS	;GET WHAT TO SEARCH FOR
  3051	003306'	404440	040513'			AND	T1,S.MASK
  3052	003307'	202440	040512'			MOVEM	T1,S.WORD
  3053	003310'	200340	040510'			MOVE	DOT,SBEGIN
  3054	003311'	402000	040710'			SETZM	CACHEL		;NOTHING IN CACHE SO FAR
  3055	003312'	660400	004000			TXO	FLG,F.CACH	;USE CACHE IF WE CAN
  3056	003313'	563440	000007		ESC.W2:	HRROS	T1,DOT		;COPY ADR (FLAG MEMORY ADR)
  3057	003314'	550500	040511'			HRRZ	T2,S..END
  3058	003315'	271500	000002			ADDI	T2,2
  3059	003316'	274500	000011			SUB	T2,T1		;NUMBER OF WORDS TO GET TO FINSIH SEARCH
  3060	003317'	303500	000140			CAILE	T2,EXMAX
  3061	003320'	201500	000140			MOVEI	T2,EXMAX	;MAXIMUM NUMBER OF WORDS FOR THIS REQUEST
  3062	003321'	260740	003354'			CALL	GETWRD
  3063	003322'	254000	003351'			JRST	ESCW.9
  3064	003323'	202440	040464'			MOVEM	T1,DATA		;SAVE DATA
  3065	003324'	404440	040513'			AND	T1,S.MASK	;MASK SOME OF THE BITS
  3066	003325'	602400	000001			TXNE	FLG,F.FLIP	;ARE WE LOOKING FOR MATCH ?
  3067		316440	040512'			JRST	[	CAMN	T1,S.WORD	;DON'T WANT MATCH
  3068		254000	003342'					JRST	ESCW.8
  3069		254000	003331'					JRST	ESCW.6 ]
  3070	003326'	254000	043410'
  3071	003327'	312440	040512'			CAME	T1,S.WORD
  3072	003330'	254000	003342'			JRST	ESCW.8
  3073	003331'	260740	007621'		ESCW.6:	CALL	CRLTYP
  3074	003332'	200440	000007			MOVE	T1,DOT		;GET ADDRESS
  3075	003333'	260740	007076'			CALL	ADRTYP
  3076		274220	000000			TYPE	</	>
  3077	003334'	201440	043413'
  3078	003335'	260740	007655'
  3079	003336'	260740	007123'			CALL	DATYPE
  3080	003337'	051540	000000			SKPINC			;ANY TYPEAHEAD ?
  3081	003340'	254000	003342'			JRST	ESCW.8
  3082	003341'	254000	003351'			JRST	ESCW.9		;YES SO STOP
  3083	003342'	260740	001670'		ESCW.8:	CALL	NXTDOT		;GET NEXT DOT
  3084	003343'	550440	000007			HRRZ	T1,DOT
  3085	003344'	313440	040511'			CAMLE	T1,S..END
  3086	003345'	254000	003351'			JRST	ESCW.9
  3087	003346'	606340	000377			TRNN	DOT,377		;DON'T DO TOO MANY UUO'S
  3088	003347'	051540	000000			SKPINC			;TYPING AHEAD ?
  3089	003350'	254000	003313'			JRST	ESC.W2		;NO
  3090					ESCW.9:	TYPE	<
  3091					<search done>
  3092		064247	471712		>
  3093
  3094	003351'	201440	043414'
  3095	003352'	260740	007655'
  3096	003353'	254000	000451'			JRST	LEVEL1
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 68
DDT11	MAC	18-May-81 17:27		ROUTINES TO HANDLE PDP11 MEMORY

  3097						SUBTTL	ROUTINES TO HANDLE PDP11 MEMORY
  3098
  3099					;ROUTINE TO GET A WORD FROM THE PDP-11
  3100					; CALL	CALL	GETWRD		;WITH ADR IN T1, NUMBER OF BYTES IN T2
  3101					;	ERROR RETURN	ERROR CODE IN T1
  3102					;	SUCCES	DATA IN T1
  3103	003354'	260740	004361'		GETWRD:	CALL	SAVE35		;SAVE T3, T4, & T5
  3104	003355'	405440	177777			ANDI	T1,177777
  3105	003356'	332000	040432'			SKIPE	PDP8F
  3106	003357'	405440	077777			ANDI	T1,077777	;STRIP EXTRA BITS
  3107	003360'	336000	000012			SKIPN	T2
  3108	003361'	254200	000000			HALT
  3109	003362'	332000	040710'			SKIPE	CACHEL		;IS THERE DATA IN CACHE ?
  3110	003363'	606400	004000			TXNN	FLG,F.CACH	;AND MAY WE USE CACHE ?
  3111	003364'	254000	003410'			JRST	GETWD1		;NO CACHE OR CAN'T USE IT
  3112	003365'	315440	040710'			CAMGE	T1,CACHEL	;IS REQUEST TOO LARGE ?
  3113	003366'	315440	040711'			CAMGE	T1,CACHEA	;OR TOO SMALL
  3114	003367'	254000	003410'			JRST	GETWD1		;NO
  3115		441000	040712'		GETWD0:	MOVE	T4,[POINT 8,CACHE]	;POINTER TO CACHE
  3116	003370'	200600	043420'
  3117	003371'	332000	040432'			SKIPE	PDP8F
  3118		441400	040712'			MOVE	T4,[POINT 12,CACHE]
  3119	003372'	200600	043421'
  3120	003373'	200540	000011			MOVE	T3,T1		;COPY ADDRESS OF BYTE TO GET
  3121	003374'	274540	040711'			SUB	T3,CACHEA	;MAKE RELATIVE
  3122	003375'	304000	000000			CAIA
  3123	003376'	133000	000014			IBP	T4		;SKIP NEXT BYTE
  3124	003377'	365540	003376'			SOJGE	T3,.-1
  3125	003400'	134440	000014			ILDB	T1,T4		;GET LOW ORDER BYTE OF REQUESTED WORD
  3126	003401'	332000	040432'			SKIPE	PDP8F
  3127	003402'	254000	003405'			JRST	GETWD3
  3128	003403'	134500	000014			ILDB	T2,T4		;GET HIGH ORDER BYTE OF REQUESTED WORD
  3129		101000	000011			DPB	T2,[POINT 8,T1,27]
  3130	003404'	137500	043063'
  3131	003405'	405440	777777		GETWD3:	ANDI	T1,-1		;STRIP EXTRA BITS
  3132	003406'	350017	000000			AOS	(P)		;SKIP RETURN
  3133	003407'	263740	000000			RET
  3134
  3135	003410'	200600	040431'		GETWD1:	MOVE T4,ETYPE
  3136		000000	003444'			JRST	@[GETMEM		;MEMORY
  3137		000000	003415'				  GET.C1		;CALL-11
  3138		000000	003466'				  GETNOD		;NODE. UUO
  3139		000000	003527'				  GET.FE		;FE0 ON TOPS-20
  3140		000000	003415'				  GET.C1		;DN60 ON TOPS-10
  3141		000000	003437'				  GETD62		;DN60 ON TOPS-20, BOTH DN20 AND DN22
  3142		000000	003412'				  GETNYI		;MCB
  3143	003411'	254034	043422'				  GT.F10](T4)		;FE0 ON TOPS-10
  3144
  3145					GETNYI:	TYPE <No code for reading from that type of device.
  3146		473364	061736		>
  3147
  3148	003412'	201440	043432'
  3149	003413'	260740	007655'
  3150	003414'	254000	000451'			JRST LEVEL2
  3151
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 68-1
DDT11	MAC	18-May-81 17:27		ROUTINES TO HANDLE PDP11 MEMORY

  3152					;HERE TO DO CALL11 UUO TO GET DATA
  3153	003415'	400600	000000		GET.C1:	SETZ T4,
  3154	003416'	552440	000013			HRRZM T1,T3
  3155	003417'	201500	000001		GETWDR:	MOVEI T2,1		;FUNCTION 1
  3156		000003	000012			MOVE T1,[3,,T2]
  3157	003420'	200440	043444'
  3158	003421'	504500	040455'			HRL T2,PORT		;ADD PORT NUMBER
  3159	003422'	047440	000156			CAL78. T1,
  3160		000003	000012			SKIPA T1,[3,,T2]
  3161	003423'	334440	043444'
  3162	003424'	254000	003427'			JRST GETWD2
  3163	003425'	047440	000125			CAL11. T1,
  3164		302440	000004			JRST [	CAIE T1,4	;ERROR 4, ?ALREADY IN USE?
  3165		254000	005200'				JRST R		;NO, ERROR RETURN
  3166		200440	000144				MOVE T1,^D100	;WAIT A WHILE
  3167		047440	000072				HIBER T1,	;SEE HOW LONG IT TAKES
  3168		254000	005200'				 JRST R
  3169		254000	003417'				JRST GETWDR]	;AND TRY AGAIN
  3170	003426'	254000	043445'
  3171	003427'	550500	000013		GETWD2:	HRRZ	T2,T3		;GET ADDRESS WE WERE GETTING
  3172
  3173	003430'	260740	003735'		GTWD2A:	CALL	PUTBCH		;PUT BYTE INTO THE CACHE
  3174	003431'	242440	777770			LSH	T1,-^D8		;ADJUST DATA
  3175	003432'	350000	000012			AOS	T2
  3176	003433'	260740	003735'			CALL	PUTBCH		;ALSO HIGH ORDER BYTE
  3177	003434'	200440	000013			MOVE	T1,T3		;GET ADDRESS AGAIN
  3178	003435'	201500	000002			MOVEI	T2,2		;NUMBER OF BYTES TO GET
  3179	003436'	254000	003370'			JRST	GETWD0		;GET DATA FROM THE CACHE
  3180
  3181	003437'	260740	004532'		GETD62:	CALL	D62EXM			;examine DN60/TOPS20 FE
  3182	003440'	334440	000001			SKIPA	T1,AC1			;move error code to the right place
  3183	003441'	334540	000012			SKIPA	T3,T2			;suc'd - move address for GETWD2
  3184	003442'	263740	000000			RET
  3185	003443'	254000	003430'			JRST	GTWD2A
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 69
DDT11	MAC	18-May-81 17:27		ROUTINES TO HANDLE PDP11 MEMORY

  3186					;HERE TO GET A WORD FROM CORE IN 10 MEMORY
  3187	003444'	200600	011147'		GETMEM:	MOVE T4,MEMORY
  3188	003445'	313440	011150'			CAMLE	T1,MEMLIM	;IS IT IN RANGE ?
  3189		550540	000011			JRST	[HRRZ	MA,T1		;ADR WE WANT
  3190		260740	032657'				CALL	IOLOAD-1
  3191		254000	005200'				JRST	R		;ERROR RETURN
  3192		254000	003405'				JRST	GETWD3 ]	;WON
  3193	003446'	254000	043453'
  3194	003447'	332000	040432'			SKIPE	PDP8F
  3195	003450'	254000	003461'			JRST	GTMEM8		;GET WORD OF 8 MEMORY
  3196	003451'	231440	000004			IDIVI	T1,4		;WE KEEP 4 BYTES IN 36BIT WORD
  3197	003452'	270440	011147'			ADD	T1,MEMORY	;ADD RELOCATION
  3198	003453'	602500	000002			TRNE	T2,2
  3199	003454'	334451	000000			SKIPA	T1,(T1)
  3200	003455'	544451	000000			HLR	T1,(T1)
  3201	003456'	602500	000001			TRNE	T2,1		;DID HE ASK FOR LH BYTE ?
  3202	003457'	242440	777770			LSH	T1,-^D8		;YES
  3203	003460'	254000	003405'			JRST	GETWD3
  3204
  3205					;HERE TO GET A PDP8 WORD FROM CORE IN 10 MEMORY
  3206	003461'	231440	000002		GTMEM8:	IDIVI	T1,2
  3207	003462'	270440	011147'			ADD	T1,MEMORY	;RELOCATE
  3208		222211	000000			LDB	T1,[POINT 18,(T1),17
  3209	003463'	135452	043457'				    POINT 18,(T1),35 ](T2)
  3210	003464'	405440	007777			ANDI	T1,007777
  3211	003465'	254000	003405'			JRST	GETWD3
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 70
DDT11	MAC	18-May-81 17:27		ROUTINES TO HANDLE PDP11 MEMORY

  3212					;HERE TO EXAMINE MEMORY FROM ANOTHER NETWORK NODE
  3213	003466'	260740	003643'		GETNOD:	CALL	SETUPN		;BEGIN BUILDING MSG<LINE><CODE><ADR>
  3214	003467'	000000	000001			EXP	1		;CODE FOR EXAMINE REQUESTS IS 1
  3215	003470'	202440	000013			MOVEM	T1,T3		;SAVE ADDRESS
  3216	003471'	271452	000000			ADDI	T1,(T2)		;MAKE LIMIT ADDRESS
  3217	003472'	260740	003654'			CALL	PUTADR		;PUT LIMIT ADDRESS INTO THE MESSAGE
  3218	003473'	260740	003670'			CALL	NODSET		;DO NODE UUO
  3219	003474'	254000	005200'			JRST	R		;ERROR RETURN
  3220	003475'	302440	000012			CAIE	T1,12		;CODE FOR EXAMINE DATA IS 12
  3221	003476'	254000	003717'			JRST	STCERR
  3222	003477'	261740	000013			PUSH	P,T3		;SAVE ADDRESS WE WENT FOR
  3223	003500'	554540	004376'			HLRZ	T3,NODARG+3	;GET BYTE COUNT FROM MSG
  3224	003501'	275540	000004			SUBI	T3,4		;SUBTRACT BYTES WE ALREADY READ
  3225	003502'	134500	000014			ILDB	T2,T4		;GET LOW ORDER 8 BITS OF ADDRESS
  3226	003503'	134440	000014			ILDB	T1,T4		;GET HIGH ORDER 8 BITS
  3227		101000	000012			DPB	T1,[POINT 8,T2,27]
  3228	003504'	137440	042714'
  3229	003505'	332000	040432'			SKIPE	PDP8F
  3230	003506'	254000	003512'			JRST	GTNOD3
  3231	003507'	370000	000013			SOS	T3		;COUNT BYTE
  3232	003510'	134440	000014			ILDB	T1,T4
  3233		201000	000012			DPB	T1,[POINT 8,T2,19]
  3234	003511'	137440	043461'
  3235	003512'	134440	000014		GTNOD3:	ILDB	T1,T4		;GET NEXT BYTE OF DATA
  3236	003513'	336000	040432'			SKIPN	PDP8F
  3237	003514'	254000	003522'			JRST	GTNOD4
  3238	003515'	261740	000011			PUSH	P,T1		;SAVE LOW ORDER BITS
  3239	003516'	134440	000014			ILDB	T1,T4		;GET HIGH ORDER BITS
  3240		060617	000000			DPB	T1,[POINT 6,(P),29]
  3241	003517'	137440	043462'
  3242	003520'	262740	000011			POP	P,T1
  3243	003521'	370000	000013			SOS	T3		;KEEP COUNT HONEST
  3244	003522'	260740	003735'		GTNOD4:	CALL	PUTBCH		;PUT BYTE INTO THE CACHE
  3245	003523'	350000	000012			AOS	T2		;ADVANCE ADDRESS
  3246	003524'	367540	003512'			SOJG	T3,GTNOD3
  3247	003525'	262740	000011			POP	P,T1		;GET ADDRESS WE WENT FOR
  3248	003526'	254000	003370'			JRST	GETWD0
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 71
DDT11	MAC	18-May-81 17:27		ROUTINES TO HANDLE PDP11 MEMORY

  3249					;HERE TO GET DATA FROM A /FE DEVICE
  3250		004001	052320		GET.FE:	MOVE T3,[BYTE (16)IO.RLB(8)"E","M"]
  3251	003527'	200540	043463'
  3252	003530'	202540	040436'			MOVEM T3,FE.MSG
  3253	003531'	402000	040437'			SETZM FE.MSG+1
  3254	003532'	402000	040440'			SETZM FE.MSG+2
  3255	003533'	261740	000011			PUSH P,T1		;SAVE THE ADDR
  3256	003534'	242440	000024			LSH T1,24
  3257	003535'	541440	000040			HRRI T1,2*20
  3258	003536'	202440	040440'			MOVEM T1,FE.MSG+2	;BYTE(16)ADR,2
  3259	003537'	200040	040435'			MOVE AC1,FE.JFN		;GET JFN FOR FE DEVICE
  3260		442000	040436'			MOVE AC2,[442000,,FE.MSG]
  3261	003540'	200100	043464'
  3262	003541'	211140	000006			MOVNI AC3,6
  3263	003542'	104000	000053			SOUT
  3264	003543'	320700	003666'			ERJMP TPOPJ
  3265	003544'	201100	000003			MOVEI AC2,.MOEOF
  3266	003545'	474140	000000			SETO AC3,
  3267	003546'	104000	000077			MTOPR
  3268	003547'	320700	003666'			ERJMP TPOPJ
  3269	003550'	260740	003555'			CALL GETFEM		;GET RESPONSE
  3270	003551'	254000	003666'			JRST TPOPJ		;ERROR RETURN
  3271		242000	040441'			LDB T1,[POINT ^D16,FE.MSG+3,15]
  3272	003552'	135440	043465'
  3273	003553'	262740	000013			POP P,T3		;GET ADR OFF STACK
  3274	003554'	254000	003405'			JRST GETWD3		;ERROR RETURN
  3275
  3276		442000	040436'		GETFEM:	MOVE	AC2,[POINT 16,FE.MSG]	;POINTER TO FRONT END MESSAGE
  3277	003555'	200100	043464'
  3278	003556'	211140	000006			MOVNI	AC3,6
  3279	003557'	104000	000052			SIN			;GET IT
  3280	003560'	320700	005200'			ERJMP	R
  3281		042000	040440'			LDB	AC3,[POINT 16,FE.MSG+2,31]
  3282	003561'	135140	043466'
  3283	003562'	323140	003567'			JUMPLE	AC3,GTFEM3	;NO MORE
  3284	003563'	242140	777777			LSH AC3,-1		;CONVERT TO WORDS
  3285	003564'	210140	000003			MOVN	AC3,AC3
  3286	003565'	104000	000052			SIN
  3287	003566'	320700	005200'			ERJMP	R
  3288		041000	040437'		GTFEM3:	LDB	T1,[POINT 8,FE.MSG+1,31]
  3289	003567'	135440	043467'
  3290	003570'	210440	000011			MOVN	T1,T1		;RETURN STATUS
  3291	003571'	405440	000377			ANDI	T1,377
  3292	003572'	602440	000200			TRNE	T1,200
  3293	003573'	254000	005177'			RETSKP
  3294	003574'	263740	000000			RET
  3295
  3296
  3297						;HERE TO DO THE WORK UNDER TOPS-10
  3298
  3299	003575'	505440	001000		GT.F10:	HRLI	T1,IO.RLB		;SET UP HEADER FOR READ FCN
  3300	003576'	260740	003616'			PUSHJ	P,ME.SET		;...
  3301		000013	040451'			MOVE	T1,[.DTEOF,,FE.CPU]	;DO OUTPUT
  3302	003577'	200440	043470'
  3303	003600'	047440	000170			DTE.	T1,			;TO ME: (PLEASE)
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 71-1
DDT11	MAC	18-May-81 17:27		ROUTINES TO HANDLE PDP11 MEMORY

  3304		660440	000400			 JRST	[DTEERR: TRO	T1,400	;Make DTE. error codes distinct
  3305		263740	000000				 RET]
  3306	003601'	254000	043471'
  3307	003602'	260740	003627'			PUSHJ	P,FE.RPY		;READ THE REPLY
  3308	003603'	263740	000000			 POPJ	P,			;ERROR
  3309	003604'	303440	000040			CAILE	T1,FE.MAX		;TOO MUCH DATA?
  3310						 JRST	[FE$BLT:TYPE	<
  3311		064247	741302		?Bad PDP-11 Message>
  3312		201440	043473'
  3313		260740	007655'
  3314		254000	000000'				 JRST	DDT11]		;YES, WE LOSE SYNC
  3315	003605'	254000	043500'
  3316	003606'	240440	777777			ASH	T1,-1			;BYTES TO WORDS
  3317	003607'	505440	040441'			HRLI	T1,FE.MSG+3		;WHERE TO PUT DATA
  3318	003610'	206440	040453'			MOVSM	T1,FE.BUF
  3319		000012	040451'			MOVE	T1,[.DTEIF,,FE.CPU]	;READ IT
  3320	003611'	200440	043503'
  3321	003612'	047440	000170			DTE.	T1,			;...
  3322	003613'	254000	000000*			 JRST	DTEERR
  3323		222000	040441'			LDB	T1,[POINT 16,FE.MSG+3,17] ;DATA
  3324	003614'	135440	043504'
  3325	003615'	254000	003405'			JRST	GETWD3
  3326
  3327						;SUBROUTINE TO SET UP A MESSAGE HEADER FOR THE ME: DEVICE
  3328						;CALL WITH T1/ IO.xLB,,ADDRESS
  3329
  3330	003616'	512440	040436'		ME.SET:	HLLZM	T1,FE.MSG+0		;SET IO FUNCTION
  3331	003617'	505440	000002			HRLI	T1,2			;DATA BYTES TO BE TRANSFERED
  3332	003620'	206440	040440'			MOVSM	T1,FE.MSG+2		;(PARAM-2,,BYTE-CNT)
  3333	003621'	402000	040437'			SETZM	FE.MSG+1		;(UNIT,,PARAM-1)
  3334	003622'	201440	042515			MOVEI	T1,(<BYTE (2)0(8)"E","M">) ;SET DEVICE NAME
  3335	003623'	542440	040436'			HRRM	T1,FE.MSG+0		;IN HEADER
  3336		000006	040436'			MOVE	T1,[<14/2>,,FE.MSG]	;WORD COUNT TO SEND,,ADDRESS
  3337	003624'	200440	043505'
  3338	003625'	202440	040453'			MOVEM	T1,FE.BUF		;FOR FEDSER
  3339	003626'	263740	000000			POPJ	P,			;ALL SET
  3340
  3341						;SUBROUTINE TO READ ME: REPLY HEADER
  3342						;NON-SKIP T1 IS ERROR CODE, SKIP T1 IS # DATA BYTES TO FOLLOW
  3343
  3344		000006	040436'		FE.RPY:	MOVE	T1,[<14/2>,,FE.MSG]	;READ HEADER ONLY
  3345	003627'	200440	043505'
  3346	003630'	202440	040453'			MOVEM	T1,FE.BUF		;SET UP FOR UUO
  3347		000012	040451'			MOVE	T1,[.DTEIF,,FE.CPU]	;READ DATA FUNCTION
  3348	003631'	200440	043503'
  3349	003632'	047440	000170			DTE.	T1,			;...
  3350	003633'	254000	003613*			 JRST	DTEERR			;OOPS!
  3351		001000	040437'			LDB	T1,[POINT 8,FE.MSG+1,35] ;GET $DSW
  3352	003634'	135440	043506'
  3353	003635'	213000	000011			MOVNS	T1			;MAKE ERRORS POSITIVE
  3354	003636'	405440	000377			ANDI	T1,377			;...
  3355	003637'	606440	000200			TRNN	T1,200			;ERROR?
  3356	003640'	263740	000000			 POPJ	P,			;YES, RETURN IT
  3357		002000	040440'			LDB	T1,[POINT 16,FE.MSG+2,35] ;HOW MUCH DATA FOLLOWS?
  3358	003641'	135440	043507'
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 71-2
DDT11	MAC	18-May-81 17:27		ROUTINES TO HANDLE PDP11 MEMORY

  3359	003642'	254000	005177'			RETSKP
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 72
DDT11	MAC	18-May-81 17:27		ROUTINES TO HANDLE PDP11 MEMORY

  3360					;HERE TO BEGIN A NODE UUO MSG <LINE><CODE><ADDRESS>
  3361					; CALL	MOVE	T1,<ADR>
  3362					;	CALL	SETUPN
  3363					;	EXP	<CODE>
  3364	003643'	261740	000011		SETUPN:	PUSH	P,T1		;SAVE ADDRESS
  3365		441000	004400'			MOVE	T4,[POINT 8,STCMSG]	;POINTER TO STATION CONTROL MSG
  3366	003644'	200600	043510'
  3367	003645'	200440	040457'			MOVE	T1,LINE		;0 = SELF, 1-N IS LINE NUMBER
  3368	003646'	136440	000014			IDPB	T1,T4		;MSG IS FOR NODE
  3369	003647'	200477	777777			MOVE	T1,@-1(P)	;GET CODE
  3370	003650'	136440	000014			IDPB	T1,T4
  3371	003651'	262740	000011			POP	P,T1		;GET ADDRESS BACK
  3372	003652'	260740	003654'			CALL	PUTADR		;PUT ADDRESS INTO THE MESSAGE
  3373	003653'	254000	005177'			RETSKP
  3374
  3375					;HERE TO PUT AN ADDRESS IN A NODE UUO STRING
  3376	003654'	261740	000011		PUTADR:	PUSH	P,T1
  3377	003655'	332000	040432'			SKIPE	PDP8F
  3378	003656'	405440	077777			ANDI	T1,077777	;STRIP EXTRA BITS
  3379	003657'	136440	000014			IDPB	T1,T4		;PUT LOW ORDER BYTE OF ADR INTO MSG
  3380	003660'	241440	777770			ROT	T1,-^D8
  3381	003661'	136440	000014			IDPB	T1,T4
  3382	003662'	241440	777770			ROT	T1,-^D8
  3383	003663'	332000	040432'			SKIPE	PDP8F
  3384	003664'	254000	003666'			JRST	TPOPJ
  3385	003665'	136440	000014			IDPB	T1,T4
  3386	003666'	262740	000011		TPOPJ:	POP	P,T1
  3387	003667'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 73
DDT11	MAC	18-May-81 17:27		ROUTINES TO HANDLE PDP11 MEMORY

  3388					;HERE TO DO A NODE UUO
  3389					; CALL	CALL	NODSET
  3390					;	ERROR RETURN	CODE IN T1
  3391					;	RETURNS WITH T4 POINTING TO INPUT MSG AND CODE IN T1
  3392		441000	004400'		NODSET:	PUSH	P,[POINT 8,STCMSG]
  3393	003670'	261740	043510'
  3394	003671'	201440	000001			MOVEI	T1,1		;INITIALIZE LENGTH COUNTER
  3395	003672'	133017	000000		NODSE1:	IBP	(P)		;ADVANCE DUMMY POINTER
  3396	003673'	312617	000000			CAME	T4,(P)
  3397	003674'	344440	003672'			AOJA	T1,NODSE1
  3398	003675'	505440	004400'			HRLI	T1,STCMSG
  3399	003676'	206440	004375'			MOVSM	T1,NODARG+2
  3400	003677'	262740	000011			POP	P,T1		;CLEAN OFF STACK
  3401	003700'	201440	000004			MOVEI	T1,4		;NUMBER OF WORDS IN ARGUMENT
  3402	003701'	202440	004373'			MOVEM	T1,NODARG
  3403	003702'	200440	040456'			MOVE	T1,NODE		;NODE NAME
  3404	003703'	202440	004374'			MOVEM	T1,NODARG+1
  3405		000400	004420'			MOVE	T1,[400,,STCIMS]	;INPUT MSG SLOT
  3406	003704'	200440	043511'
  3407	003705'	202440	004376'			MOVEM	T1,NODARG+3
  3408		000003	004373'			MOVE	T1,[3,,NODARG]	;FUNCTION IS SEND STC MSG
  3409	003706'	200440	043512'
  3410	003707'	047440	000157			NODE.	T1,
  3411	003710'	263740	000000			RET			;ERROR RETURN
  3412		441000	004420'			MOVE	T4,[POINT 8,STCIMS]	;POINTER TO INPUT MESSAGE
  3413	003711'	200600	043513'
  3414	003712'	134440	000014			ILDB	T1,T4		;GET FIRST BYTE (= LINE# OR SELF)
  3415	003713'	312440	040457'			CAME	T1,LINE
  3416	003714'	254000	005061'			JRST	CALER0		;DESCRIBE FAULT
  3417	003715'	134440	000014			ILDB	T1,T4		;GET MESSAGE SUBTYPE
  3418	003716'	254000	005177'			RETSKP
  3419
  3420		516510	320312		STCERR:	TYPE	<STC error - msg =>
  3421	003717'	201440	043514'
  3422	003720'	260740	007655'
  3423	003721'	554600	004376'			HLRZ	T4,NODARG+3
  3424		441000	004420'			SKIPA	T5,[POINT 8,STCIMS]
  3425	003722'	334640	043513'
  3426	003723'	260740	007633'		STCER3:	CALL	COMTYP		;TYPE A COMMA
  3427	003724'	201440	000074			MOVEI	T1,"<"
  3428	003725'	260740	007666'			CALL	TYPCHR
  3429	003726'	134440	000015			ILDB	T1,T5
  3430	003727'	260740	007535'			CALL	OCTYPE
  3431	003730'	201440	000076			MOVEI	T1,">"
  3432	003731'	260740	007666'			CALL	TYPCHR
  3433	003732'	367600	003723'			SOJG	T4,STCER3
  3434	003733'	474440	000000			SETO T1,		;SAY WE PRINTED THE ERROR
  3435	003734'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 74
DDT11	MAC	18-May-81 17:27		ROUTINES TO HANDLE PDP11 MEMORY

  3436					;HERE TO PUT A BYTE INTO THE CACHE
  3437					; CALL	MOVE	T1,<BYTE>
  3438					;	MOVE	T2,<ADR>
  3439					;	CALL	PUTBCH
  3440					;	RETURN
  3441	003735'	261740	000011		PUTBCH:	PUSH	P,T1
  3442	003736'	261740	000012			PUSH	P,T2
  3443	003737'	261740	000013			PUSH	P,T3
  3444	003740'	261740	000014			PUSH	P,T4
  3445	003741'	332540	040710'			SKIPE	T3,CACHEL	;IS CACHE EMPTY ?
  3446	003742'	317500	040711'			CAMG	T2,CACHEA	;IS NEW BYTE BELOW CACHE ADDRESS ?
  3447	003743'	254000	003757'			JRST	PTBCH2		;FLUSH CACHE
  3448	003744'	274540	040711'			SUB	T3,CACHEA	;HOW MANY BYTES ALREADY IN THE CACHE ?
  3449	003745'	305540	000400			CAIGE	T3,CACHSZ	;SMALL ENOUGH ?
  3450	003746'	254000	003755'			JRST	PTBCH1		;YES
  3451	003747'	201540	000004			MOVEI	T3,4		;REDUCE CONTENTS BY 4 BYTES = ON 10 WORD
  3452	003750'	332000	040432'			SKIPE	PDP8F
  3453	003751'	201540	000003			MOVEI	T3,3		;REDUCE CONTENTS BY 3 WORDS = ONE 10 WORD
  3454	003752'	272540	040711'			ADDM	T3,CACHEA
  3455		040713'	040712'			MOVE	T3,[CACHE+1,,CACHE]	;BLT POINTER
  3456	003753'	200540	043520'
  3457	003754'	251540	041011'			BLT	T3,CACHE+<CACHSZ/4>-1	;SHUFFLE CACHE
  3458	003755'	316500	040710'		PTBCH1:	CAMN	T2,CACHEL	;ARE TRYING TO ADD ONE BYTE TO CACHE ?
  3459	003756'	254000	003760'			JRST	PTBCH4		;YES
  3460	003757'	202500	040711'		PTBCH2:	MOVEM	T2,CACHEA	;BEGIN CACHE HERE
  3461	003760'	202500	040710'		PTBCH4:	MOVEM	T2,CACHEL	;THIS IS THE NEW CACHE LIMIT
  3462	003761'	350000	040710'			AOS	CACHEL		;MAKE ONE PLUS
  3463	003762'	274500	040711'			SUB	T2,CACHEA	;HOW MANY BYTES TO NEW BYTE ?
  3464		441000	040712'			MOVE	T3,[POINT 8,CACHE]
  3465	003763'	200540	043420'
  3466	003764'	332000	040432'			SKIPE	PDP8F
  3467		441400	040712'			MOVE	T3,[POINT 12,CACHE]
  3468	003765'	200540	043421'
  3469	003766'	304000	000000			CAIA
  3470	003767'	133000	000013			IBP	T3
  3471	003770'	365500	003767'			SOJGE	T2,.-1
  3472	003771'	136440	000013			IDPB	T1,T3		;PUT BYTE INTO THE CACHE
  3473	003772'	262740	000014			POP	P,T4
  3474	003773'	262740	000013			POP	P,T3
  3475	003774'	262740	000012			POP	P,T2
  3476	003775'	254000	003666'			JRST TPOPJ
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 75
DDT11	MAC	18-May-81 17:27		ROUTINES TO HANDLE PDP11 MEMORY

  3477					;ROUTINE TO DEPOSIT BYTES IN PDP-11 MEMORY
  3478					; CALL	MOVE	T1,<ADR TO DEPOSIT TO>
  3479					;				;DATA STARTS AT DATA - DAT POINTS TO LAST BYTE
  3480					;	CALL	PUTBYT		;WITH ADR IN T1
  3481					;	LOSE RETURN <CODE IN T1>
  3482					;	WIN RETURN
  3483
  3484	003776'	260740	004361'		PUTBYT:	CALL	SAVE35		;SAVE T3, T4, & T5
  3485	003777'	200640	040421'			MOVE	T5,DAT		;SAVE POINTER TO LAST DATA BYTE
  3486	004000'	332000	040432'			SKIPE	PDP8F
  3487		441400	040464'			SKIPA	T2,[POINT 12,DATA]
  3488	004001'	334500	042703'
  3489		441000	040464'			MOVE	T2,[POINT 8,DATA]
  3490	004002'	200500	042702'
  3491	004003'	202500	040421'			MOVEM	T2,DAT
  3492	004004'	200600	040431'			MOVE T4,ETYPE
  3493		000000	004145'			JRST	@[PUTMEM		;MEMORY
  3494		000000	004011'				  PUT.C1		;CALL-11
  3495		000000	004056'				  PUTNOD		;NODE. UUO
  3496		000000	004071'				  PUT.FE		;FE0 ON TOPS-20
  3497		000000	004011'				  PUT.C1		;DN60 ON TOPS-10
  3498		000000	004035'				  PUTD62		;DN60 ON TOPS-20, BOTH DN20 AND DN22
  3499		000000	004006'				  PUTNYI		;MCB
  3500	004005'	254034	043521'				  PUT.FE](T4)		;20F/TOPS-10
  3501
  3502					PUTNYI:	TYPE <No code for a write to this type of device.
  3503		473364	061736		>
  3504
  3505	004006'	201440	043531'
  3506	004007'	260740	007655'
  3507	004010'	254000	000451'			JRST LEVEL2
  3508					;HERE WHEN PUTTING BYTES WITH CAL11. OR CAL78. UUO'S
  3509	004011'	202440	000013		PUT.C1:	MOVEM	T1,T3		;SAVE ADR TO DEPOSIT INTO
  3510	004012'	134600	040421'		PUTP.2:	ILDB	T4,DAT		;GET LOW ORDER BYTE
  3511	004013'	606540	000001			TRNN	T3,1
  3512	004014'	316640	040421'			CAMN	T5,DAT
  3513	004015'	254000	004020'			JRST	PUTP.4
  3514	004016'	134440	040421'			ILDB	T1,DAT		;GET HIGH ORDER BYTE
  3515		101000	000014			DPB	T1,[POINT 8,T4,27]
  3516	004017'	137440	043543'
  3517	004020'	201500	000000		PUTP.4:	MOVEI	T2,0		;FUNCTION 0
  3518		000003	000012			MOVE	T1,[3,,T2]
  3519	004021'	200440	043444'
  3520	004022'	504500	040455'			HRL	T2,PORT		;ADD PORT NUMBER
  3521	004023'	047440	000156			CAL78.	T1,
  3522		000003	000012			SKIPA	T1,[3,,T2]
  3523	004024'	334440	043444'
  3524	004025'	254000	004030'			JRST	PUTP.8		;WIN RETURN
  3525	004026'	047440	000125			CAL11.	T1,
  3526		302440	000004			JRST [	CAIE T1,4	;ALREADY IN USE?
  3527		254000	005200'				JRST R		;NO, ERROR RETURN
  3528		201440	000144				MOVEI T1,^D100	;WAIT A WHILE
  3529		047440	000072				HIBER T1,	;AND SEE 
  3530		254000	005200'				 JRST R		;HIBER FAILED, GIVE IT UP.
  3531		254000	004020'				JRST PUTP.4]	;TRY AGAIN
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 75-1
DDT11	MAC	18-May-81 17:27		ROUTINES TO HANDLE PDP11 MEMORY

  3532	004027'	254000	043544'
  3533	004030'	551553	000002		PUTP.8:	HRRZI	T3,2(T3)
  3534	004031'	620540	000001			TRZ	T3,1
  3535	004032'	312640	040421'			CAME	T5,DAT
  3536	004033'	254000	004012'			JRST	PUTP.2
  3537	004034'	254000	003405'			JRST	GETWD3		;WIN RETURN
  3538
  3539
  3540					; PUTD62 - stuff words into a TOPS20 DN60 FE
  3541					;	shamelessy(and probably foolishly) plagerized from PUT.C1
  3542
  3543	004035'	202440	000013		PUTD62:	MOVEM	T1,T3		;SAVE ADR TO DEPOSIT INTO
  3544	004036'	134500	040421'		PT6.2:	ILDB	T2,DAT		;GET LOW ORDER BYTE
  3545	004037'	606540	000001			TRNN	T3,1
  3546	004040'	316640	040421'			CAMN	T5,DAT
  3547	004041'	254000	004044'			JRST	PT6.4
  3548	004042'	134600	040421'			ILDB	T4,DAT		;GET HIGH ORDER BYTE
  3549		101000	000012			DPB	T4,[POINT 8,T2,27]
  3550	004043'	137600	042714'
  3551	004044'	200440	000013		PT6.4:	MOVE	T1,T3		;get the place to crammit
  3552	004045'	260740	004551'			CALL	D62DEP		; so deposit it
  3553	004046'	334440	000001			SKIPA	T1,AC1		; loser
  3554	004047'	254000	004051'			JRST	PT6.8
  3555	004050'	263740	000000			RET
  3556
  3557	004051'	551553	000002		PT6.8:	HRRZI	T3,2(T3)
  3558	004052'	620540	000001			TRZ	T3,1
  3559	004053'	312640	040421'			CAME	T5,DAT
  3560	004054'	254000	004036'			JRST	PT6.2
  3561	004055'	254000	003405'			JRST	GETWD3		;WIN RETURN
  3562
  3563					;HERE WHEN PUTTING BYTES WITH NODE. UUO
  3564	004056'	260740	003643'		PUTNOD:	CALL	SETUPN		;BEGIN NODE. MSG <LINE><CODE><ADR>
  3565	004057'	000000	000002			EXP	2		;CODE FOR DEPOSIT IS 2
  3566	004060'	134440	040421'		PUTND2:	ILDB	T1,DAT		;GET NEXT BYTE
  3567	004061'	136440	000014			IDPB	T1,T4		;PUT NEXT BYTE INTO MESSAGE
  3568	004062'	312640	040421'			CAME	T5,DAT		;DONE ENOUGH YET ?
  3569	004063'	254000	004060'			JRST	PUTND2		;NOT YET
  3570	004064'	260740	003670'			CALL	NODSET		;SEND MSG
  3571	004065'	254000	005200'			JRST	R		;ERROR RETURN
  3572	004066'	302440	000011			CAIE	T1,11		;DID WE GET AN ACCEPT ?
  3573	004067'	254000	003717'			JRST	STCERR
  3574	004070'	254000	003405'			JRST	GETWD3
  3575
  3576
  3577						;DEAL WITH RSX20F/TOPS-10 DEPOSITS HERE
  3578						;T1/<STARTING ADDRESS> T5/<BP TO LAST BYTE> DAT/<BP TO FIRST BYTE>
  3579
  3580
  3581	004071'	505440	000400		PUT.FE:	HRLI	T1,IO.WLB	;SET WRITE FCN
  3582	004072'	260740	003616'			PUSHJ	P,ME.SET	;SET UP HEADER
  3583	004073'	211540	000040			MOVNI	T3,FE.MAX	;SET LIMIT ON DEPOSIT
  3584		442200	040441'			MOVE	T4,[POINT 18,FE.MSG+3] ;POINT TO DATA MESSAGE
  3585	004074'	200600	043552'
  3586	004075'	134440	040421'		PT.F1A:	ILDB	T1,DAT		;GET A BYTE
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 75-2
DDT11	MAC	18-May-81 17:27		ROUTINES TO HANDLE PDP11 MEMORY

  3587	004076'	606540	000001			TRNN	T3,1		;EVEN?
  3588	004077'	136440	000014			IDPB	T1,T4		;COPY TO FE BUFFER
  3589	004100'	602540	000001			TRNE	T3,1		;ODD?
  3590		261740	000015			 JRST	[PUSH	P,T5	;SAVE END
  3591		200640	000014				 MOVE	T5,T4	;AND GET LAST WORD DEPOSITED
  3592		100000	000000				 ADD	T5,[100000,,0] ;POINT TO HIGH BYTE
  3593		270640	042223'
  3594		641640	003200				 TLC	T5,003200 ;AND CHANGE BYTE SIZE
  3595		137440	000015				 DPB	T1,T5	;INSERT IT
  3596		262740	000015				 POP	P,T5	;RESTORE END
  3597		254000	004102'				 JRST	.+1]	;...
  3598	004101'	254000	043553'
  3599	004102'	312640	040421'			CAME	T5,DAT		;GOT LAST?
  3600	004103'	341540	004075'			 AOJL	T3,PT.F1A	;NO, DO NEXT
  3601						JUMPGE	T3,[TYPE	<
  3602		064247	720210		? Deposit size exceeds 20F max>
  3603		201440	043562'
  3604		260740	007655'
  3605		263740	000000				    RET]	;ERROR CODE RANDOM
  3606	004104'	325540	043571'
  3607	004105'	271540	000041			ADDI	T3,FE.MAX+1	;NUMBER OF BYTES ACTUALLY MOVED
  3608	004106'	542540	040440'			HRRM	T3,FE.MSG+2	;STUFF IN HEADER
  3609	004107'	340540	000000			AOJ	T3,		;ROUND BYTES TO WORDS
  3610	004110'	240540	777777			ASH	T3,-1		;AND CONVERT
  3611	004111'	207000	000013			MOVSS	T3
  3612	004112'	272540	040453'			ADDM	T3,FE.BUF	;ADD TO AMT XFERED BY UUO
  3613	004113'	200440	041112'			MOVE	T1,OSTYPE	;GET OS TYPE
  3614	004114'	607440	200000			TXNN	T1,T.TOP10	;TOPS-10?
  3615	004115'	254000	004126'			 JRST	PT.F20		;YES, DO THAT
  3616		000013	040451'			MOVE	T1,[.DTEOF,,FE.CPU] ;ZAP MSG OUT
  3617	004116'	200440	043470'
  3618	004117'	047440	000170			DTE.	T1,
  3619	004120'	254000	003633*			 JRST	DTEERR		;...
  3620	004121'	260740	003627'			PUSHJ	P,FE.RPY	;READ REPLY
  3621	004122'	263740	000000			 RET			;ERROR, RETURN CODE
  3622	004123'	332000	000011			SKIPE	T1		;IF ASSOCIATED
  3623	004124'	254000	043500'			 JRST	FE$BLT		;BLAT...DATA WITH WRITE REPLY IS BAD
  3624	004125'	254000	003405'			JRST	GETWD3		;OK, DONE
  3625
  3626						;TOPS-20 DEPOSIT
  3627
  3628	004126'	200040	040435'		PT.F20:	MOVE	AC1,FE.JFN	;GET THE JFN OF FE:
  3629		442200	040436'			MOVE	AC2,[POINT 18,FE.MSG] ;POINT TO MESSAGE
  3630	004127'	200100	043574'
  3631	004130'	554140	040453'			HLRZ	AC3,FE.BUF	;GET WC FROM TOPS-10
  3632	004131'	213000	000003			MOVNS	AC3		; - WC
  3633	004132'	104000	000053			SOUT			;SLITHER
  3634	004133'	320700	005200'			 ERJMP	R		;BLAT
  3635	004134'	201100	000003			MOVEI	AC2,.MOEOF	;FORCE BUFFER OUT
  3636	004135'	474140	000000			SETO	AC3,		;BUT DON'T SEND EOF
  3637	004136'	104000	000077			MTOPR			;FLOP
  3638	004137'	320700	005200'			 ERJMP	R
  3639	004140'	260740	003555'			CALL	GETFEM		;GET REPLY
  3640	004141'	263740	000000			 RET
  3641	004142'	332000	000003			SKIPE	AC3		;DATA WITH WRITE REPLY?
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 75-3
DDT11	MAC	18-May-81 17:27		ROUTINES TO HANDLE PDP11 MEMORY

  3642	004143'	254000	043500'			 JRST	FE$BLT		;BLAT?
  3643	004144'	254000	003405'			JRST	GETWD3		;OK, DONE
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 76
DDT11	MAC	18-May-81 17:27		ROUTINES TO HANDLE PDP11 MEMORY

  3644					;HERE WHEN PUTTING BYTES IN 11 MEMORY
  3645	004145'	200600	011147'		PUTMEM:	MOVE T4,MEMORY		;GET THE START OF OUR MEMORY
  3646	004146'	202440	000012			MOVEM	T1,T2		;PUT ADR IN OTHER REG
  3647	004147'	311500	011150'		PTMEM2:	CAML	T2,MEMLIM	;IS ADR IN RANGE ?
  3648	004150'	254000	004156'			JRST	PTMEM4		;NO
  3649	004151'	134440	040421'			ILDB	T1,DAT		;GET NEXT BYTE OF DATA
  3650	004152'	260740	004177'			CALL	PUTFOO		;PUT LOW ORDER BYTE INTO MEMORY
  3651	004153'	312640	040421'			CAME	T5,DAT		;DONE ALL OF IT ?
  3652	004154'	344500	004147'			AOJA	T2,PTMEM2	;NO SO LOOP BACK FOR NEXT BYTE
  3653	004155'	254000	003405'			JRST	GETWD3
  3654
  3655					;HERE TO DEPOSIT IN SIMULATED DEVICES
  3656	004156'	202500	000013		PTMEM4:	MOVEM	T2,MA		;PUT ADDRESS IN CORRECT REG
  3657	004157'	261740	000015			PUSH	P,T5		;SAVE LIMIT
  3658	004160'	134440	040421'		PTMEM5:	ILDB	T1,DAT		;GET NEXT BYTE OF DATA
  3659	004161'	200517	000000			MOVE	T2,(P)		;GET LIMIT
  3660	004162'	312500	040421'			CAME	T2,DAT		;IS THIS LAST BYTE TO DEPOSIT ?
  3661	004163'	602540	000001			TRNE	MA,1		;IS THIS AN ODD BYTE ?
  3662	004164'	254000	004171'			JRST	PTMEM6		;MUST USE BYTE STORE
  3663	004165'	134500	040421'			ILDB	T2,DAT		;GET LH OF WORD
  3664		101000	000011			DPB	T2,[POINT 8,T1,27]
  3665	004166'	137500	043063'
  3666	004167'	260740	032735'			CALL	IOSTOR		;STORE THE WORD
  3667	004170'	254000	004172'			JRST	PTMEM7
  3668	004171'	260740	032767'		PTMEM6:	CALL	IOBSTO		;TRY TO WRITE BYTE IN THE IO AREA
  3669	004172'	200457	000000		PTMEM7:	MOVE	T1,(P)		;GET LIMIT
  3670	004173'	312440	040421'			CAME	T1,DAT		;DONE ALL OF IT
  3671	004174'	344540	004160'			AOJA	MA,PTMEM5
  3672	004175'	262740	000011			POP	P,T1		;CLEAN OFF STACK
  3673	004176'	254000	003405'			JRST	GETWD3		;WIN RETURN
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 77
DDT11	MAC	18-May-81 17:27		ROUTINES TO HANDLE PDP11 MEMORY

  3674					;HERE TO PUT A BYTE INTO A CORE DUMP
  3675					; CALL	CALL	PUTFOO	WITH DATA IN T1, ADR IN T2
  3676	004177'	260740	004324'		PUTFOO:	CALL	SAVE4
  3677	004200'	261740	000011			PUSH	P,T1
  3678	004201'	405500	177777			ANDI	T2,177777	;STRIP EXTRA BITS (& LH)
  3679	004202'	261740	000012			PUSH	P,T2
  3680	004203'	332000	011147'			SKIPE	MEMORY		;DO WE HAVE A BASE ADDRESS FOR DUMPS ?
  3681	004204'	254000	004213'			JRST	PUTBY1
  3682	004205'	260740	005303'			CALL	POSYMT		;BE SURE SYMBOL TABLE IS WHERE IT BELONGS
  3683	004206'	200440	041115'			MOVE	T1,SYMBEG	;WHERE WE WILL PUT DATA
  3684	004207'	552440	011147'			HRRZM	T1,MEMORY	;POINT TO WHERE MEMORY WILL BE
  3685	004210'	476000	011150'			SETOM	MEMLIM
  3686	004211'	505440	000011			HRLI	T1,T1		;MAKE MEMUSE POINTER
  3687	004212'	202440	011151'			MOVEM	T1,MEMUSE	;SAVE POINTER TO MEMORY USAGE TABLE
  3688	004213'	550517	000000		PUTBY1:	HRRZ	T2,(P)		;GET ADDRESS WE WANT OFF STACK
  3689	004214'	317500	011150'			CAMG	T2,MEMLIM	;IS ADDRESS LARGER THAN PREVIOUS LIMIT ?
  3690	004215'	254000	004240'			JRST	PUTBY4		;NO
  3691	004216'	201440	004000			MOVEI	T1,4000		;GET ANOTHER 2K PDP10 WORDS
  3692	004217'	200500	000011		PUTBY2:	MOVE	T2,T1		;NUMBER OF PDP-10 WORDS TO ADD
  3693	004220'	242500	000002			LSH	T2,2		;MAKES NUMBER OF PDP11 BYTES
  3694	004221'	332000	040432'			SKIPE	PDP8F
  3695	004222'	242500	777777			LSH	T2,-1		;MAKES NUMBER OF PDP8 WORDS
  3696	004223'	272500	011150'			ADDM	T2,MEMLIM
  3697	004224'	260740	005321'			CALL	MOVSMT		;MOVE THE SYMBOL TABLE UP AGAIN
  3698	004225'	200440	011150'			MOVE	T1,MEMLIM	;GET SIMULATED MEMORY SIZE
  3699	004226'	231440	000044			IDIVI	T1,^D36		;NEW SIZE FOR MEMUSE
  3700	004227'	350000	000011			AOS	T1		;JUST IN CASE
  3701	004230'	271440	000777			ADDI	T1,777		;ROUND TO NEXT PAGE
  3702	004231'	405440	777000			ANDI	T1,777000	;ROUND TO NEXT PAGE
  3703	004232'	274440	011147'			SUB	T1,MEMORY
  3704	004233'	270440	011151'			ADD	T1,MEMUSE	;MAKES HOW MANY MORE WORDS WE NEED
  3705	004234'	405440	777777			ANDI	T1,-1
  3706	004235'	260740	004263'			CALL	MOVMEM		;MOVE MEMORY TO ADJUST FOR THIS
  3707	004236'	260740	036737'			CALL	MAPCOR		;UPDATE MEMORY MAP
  3708	004237'	254000	004213'			JRST	PUTBY1		;BACK TO BE SURE THAT WAS ENOUGH
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 78
DDT11	MAC	18-May-81 17:27		ROUTINES TO HANDLE PDP11 MEMORY

  3709	004240'	550457	000000		PUTBY4:	HRRZ	T1,(P)		;GET ADR OFF STACK
  3710	004241'	231440	000044			IDIVI	T1,^D36		;CONVERT BYTE ADDRESS TO BIT ADDRESS
  3711	004242'	205540	400000			MOVSI	T3,400000
  3712	004243'	213000	000012			MOVNS	T2
  3713	004244'	242552	000000			LSH	T3,(T2)		;POSITION BIT
  3714	004245'	436560	011151'			IORM	T3,@MEMUSE
  3715	004246'	262740	000012			POP	P,T2
  3716	004247'	262740	000011			POP	P,T1
  3717	004250'	332000	040432'			SKIPE	PDP8F
  3718	004251'	254000	004256'			JRST	PUTBY7
  3719	004252'	231500	000004			IDIVI	T2,^D4
  3720	004253'	270500	011147'			ADD	T2,MEMORY	;RELOCATE
  3721		221012	000000			DPB	T1,[	POINT 8,(T2),17
  3722		321012	000000					POINT	8,(T2),9
  3723		001012	000000					POINT	8,(T2),35
  3724	004254'	137453	043575'					POINT	8,(T2),27 ](T3)
  3725	004255'	263740	000000			RET
  3726
  3727					;HERE TO PUT A PDP8 WORD IN MEMORY
  3728	004256'	435440	010000		PUTBY7:	IORI	T1,10000	;FLAG WORD IS HERE
  3729	004257'	231500	000002			IDIVI	T2,2		;PUT 2 8 WORDS IN A PDP10 WORD
  3730	004260'	270500	011147'			ADD	T2,MEMORY	;RELOCATE
  3731		222212	000000			DPB	T1,[	POINT 18,(T2),17
  3732	004261'	137453	043601'					POINT	18,(T2),35 ](T3)
  3733	004262'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 79
DDT11	MAC	18-May-81 17:27		ROUTINES TO HANDLE PDP11 MEMORY

  3734					;HERE TO MOVE MEMORY UP IN CORE
  3735					; CALL	MOVEI	T1,<AMOUNT TO MOVE IT UP>
  3736					;	CALL MOVEM
  3737	004263'	261740	000011		MOVMEM:	PUSH	P,T1		;SAVE ARGUMENT
  3738	004264'	260740	005321'			CALL	MOVSMT		;FIRST MOVE UP THE SYMBOL TABLE
  3739	004265'	262740	000011			POP	P,T1		;NUMBER OF WORDS TO MOVE
  3740	004266'	336500	011147'			SKIPN	T2,MEMORY	;ADR OF 1ST WORD IN MEMORY
  3741	004267'	263740	000000			RET
  3742	004270'	272440	011147'			ADDM	T1,MEMORY	;UPDATE MEMORY POINTER
  3743	004271'	200540	041115'			MOVE	T3,SYMBEG	;GET NEW SYMBOL TABLE POINTER
  3744	004272'	370000	000013			SOS	T3		;IS NEW LAST WORD IN MEMORY
  3745	004273'	260740	004310'			CALL	MOVTAB		;MOVE IT
  3746	004274'	254000	036710'			JRST	SIMREL		;ADJUST SIMULATION TO NOTICE NEW LOCATIONS
  3747
  3748					;HERE TO MOVE MEMORY USE TABLE UP IN CORE
  3749					; CALL	MOVEI	T1,<AMOUNT TO MOVE IT UP>
  3750					;	CALL	MOVMUS
  3751	004275'	261740	000011		MOVMUS:	PUSH	P,T1		;SAVE ARGUMENT
  3752	004276'	260740	005321'			CALL	MOVSMT		;FIRST MOVE UP THE SYMBOL TABLE
  3753	004277'	262740	000011			POP	P,T1		;NUMBER OF WORDS TO MOVE
  3754	004300'	550500	011151'			HRRZ	T2,MEMUSE	;ADR OF FIRST WORD IN MEMORY USE TABLE
  3755	004301'	322500	005200'			JUMPE	T2,R		;IF NO MEMORY WE'RE DONE
  3756	004302'	272440	011151'			ADDM	T1,MEMUSE	;UPDATE MEMORY USE TABLE ADR
  3757	004303'	272440	011147'			ADDM	T1,MEMORY	;AND MEMORY POINTER
  3758	004304'	200540	041115'			MOVE	T3,SYMBEG	;NEW SYMBOL TABLE ADR
  3759	004305'	370000	000013			SOS	T3		;MAKES NEW LAST WORD IN MEMORY
  3760	004306'	260740	004310'			CALL	MOVTAB		;MOVE IT
  3761	004307'	254000	036710'			JRST	SIMREL		;ADJUST SIMULATION TO NOTICE NEW ADDRESSES
  3762
  3763					;HERE TO MOVE A TABLE UP IN CORE (BACKWARDS BLT)
  3764					; CALL	MOVE	T1,<# OR WORDS TO MOVE)
  3765					;	MOVE	T2,ADR OF 1ST WORD IN CORE TO BE MOVED
  3766					;	MOVE	T3,<ADR OF NEW LAST WORD IN BLOCK>
  3767					;	CALL	MOVTAB
  3768	004310'	200600	000013		MOVTAB:	MOVE	T4,T3		;COPY ADR OF LAST WORD IN BLOCK
  3769	004311'	274540	000011			SUB	T3,T1		;MAKES LAST ADR IN OLD TABLE
  3770	004312'	200453	000000		MOVTB2:	MOVE	T1,(T3)		;GET NEXT WORD TO COPY
  3771	004313'	202454	000000			MOVEM	T1,(T4)		;COPY IT
  3772	004314'	370000	000014			SOS	T4
  3773	004315'	312540	000012			CAME	T3,T2		;COPIED LAST WORD YET ?
  3774	004316'	364540	004312'			SOJA	T3,MOVTB2	;LOOP FOR MORE WORDS
  3775	004317'	402012	000000			SETZM	(T2)		;CLEAR FIRST WORD IN TABLE
  3776	004320'	505512	000000			HRLI	T2,(T2)		;BUILD BLT POINTER
  3777	004321'	350000	000012			AOS	T2		;FINISH BUILDING POINTER
  3778	004322'	251514	000000			BLT	T2,(T4)		;CLEAR OLD TABLE
  3779	004323'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 80
DDT11	MAC	18-May-81 17:27		ROUTINES TO HANDLE PDP11 MEMORY

  3780	004324'				SAVE13:
  3781	004324'	261740	000011		SAVE4:	PUSH	P,T1
  3782	004325'	261740	000012			PUSH	P,T2
  3783	004326'	261740	000013			PUSH	P,T3
  3784	004327'	261740	000014			PUSH	P,T4
  3785	004330'	260777	777774			CALL	@-4(P)
  3786	004331'	304000	000000			CAIA
  3787	004332'	350017	777773			AOS	-5(P)
  3788	004333'	262740	000014			POP	P,T4
  3789	004334'	262740	000013			POP	P,T3
  3790	004335'	262740	000012			POP	P,T2
  3791	004336'	262740	000011			POP	P,T1
  3792	004337'	262757	000000			POP	P,(P)
  3793	004340'	263740	000000			RET
  3794
  3795	004341'	250517	000000		SAVE2:	EXCH	T2,(P)
  3796	004342'	260752	000000			CALL	(T2)
  3797	004343'	304000	000000			CAIA
  3798	004344'	350017	777777			AOS	-1(P)
  3799	004345'	262740	000012			POP	P,T2
  3800	004346'	263740	000000			RET
  3801
  3802	004347'	250517	000000		SAVE24:	EXCH	T2,(P)
  3803	004350'	261740	000013			PUSH	P,T3
  3804	004351'	261740	000014			PUSH	P,T4
  3805	004352'	260752	000000			CALL	(T2)
  3806	004353'	304000	000000			CAIA
  3807	004354'	350017	777775			AOS	-3(P)
  3808	004355'	262740	000014			POP	P,T4
  3809	004356'	262740	000013			POP	P,T3
  3810	004357'	262740	000012			POP	P,T2
  3811	004360'	263740	000000			RET
  3812
  3813	004361'				SAVE34:
  3814	004361'	250557	000000		SAVE35:	EXCH	T3,(P)
  3815	004362'	261740	000014			PUSH	P,T4
  3816	004363'	261740	000015			PUSH	P,T5
  3817	004364'	260753	000000			CALL	(T3)
  3818	004365'	304000	000000			CAIA
  3819	004366'	350017	777775			AOS	-3(P)
  3820	004367'	262740	000015			POP	P,T5
  3821	004370'	262740	000014			POP	P,T4
  3822	004371'	262740	000013			POP	P,T3
  3823	004372'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 81
DDT11	MAC	18-May-81 17:27		ROUTINES TO HANDLE PDP11 MEMORY

  3824
  3825	004373'				NODARG:	BLOCK	5
  3826	004400'				STCMSG:	BLOCK	20
  3827	004420'				STCIMS:	BLOCK	110
  3828						SUBTTL	TOPS-20 DN60 CRUFT
  3829
  3830			000011		D6.EXM==11				; DN60 examine memory function code
  3831			000012		D6.DEP==12				; DN60 deposit memory function code
  3832
  3833
  3834					; D62EXM - examine a TOPS-20 DN60 front end
  3835					;	T1/address to examine
  3836					; RETURNS:
  3837					;	false - AC1/error code
  3838					;	true  - T1/data
  3839					;		T2/address examined
  3840
  3841	004530'	201040	000062		D62EXW:	MOVEI	AC1,^D50
  3842	004531'	104000	000167			DISMS
  3843
  3844	004532'	260740	004646'		D62EXM:	CALL	FESUP			; get the port
  3845	004533'	254000	004530'			JRST	D62EXW			; can't have it yet
  3846	004534'	402020	004757'			SETZM	@D10DT			; set up the DN60 request header
  3847	004535'	201500	000011			MOVEI	T2,D6.EXM
  3848	004536'	137500	004755'			DPB	T2,D10FN		; the appropriate function
  3849	004537'	137440	004756'			DPB	T1,D10AD		; and where
  3850	004540'	260740	004562'			CALL	PUTHDR			; Output the header to say read data
  3851	004541'	263740	000000			RET
  3852	004542'	260740	004572'			CALL	GETHDR			; Get the response header
  3853	004543'	263740	000000			RET
  3854	004544'	135440	004763'			LDB	T1,D11DT		; get the data
  3855	004545'	135500	004762'			LDB	T2,D11AD		; get the address back
  3856	004546'	254000	005177'			RETSKP				; and suc
  3857
  3858
  3859					; D62DEP - deposit word in TOPS-20 DN60 front end
  3860					;	T2/data to deposit
  3861					;	T1/address to stuff it
  3862					; RETURNS:
  3863					;	false - AC1/error code
  3864					;	true  - original args
  3865
  3866	004547'	201040	000062		D62DEW:	MOVEI	AC1,^D50
  3867	004550'	104000	000167			DISMS
  3868
  3869	004551'	260740	004646'		D62DEP:	CALL	FESUP			; get the port
  3870	004552'	254000	004547'			JRST	D62DEW			; all booked for now
  3871	004553'	137500	004757'			DPB	T2,D10DT		; set up the  DN60 request header
  3872	004554'	137440	004756'			DPB	T1,D10AD
  3873	004555'	201040	000012			MOVEI	AC1,D6.DEP
  3874	004556'	137040	004755'			DPB	AC1,D10FN
  3875	004557'	260740	004562'			CALL	PUTHDR			; Output the transmit header
  3876	004560'	263740	000000			RET
  3877						JRST	GETHDR			; have to read the response to complete the transact
  3878	004561'	254000	004572'		ion
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 81-1
DDT11	MAC	18-May-81 17:27		TOPS-20 DN60 CRUFT

  3879
  3880					; PUTHDR - create a transmit header for read/write function that contains
  3881					;	the number of bytes to read/write in it. This routine is invoked before
  3882					;	each read/write is done if more data is needed to be read/written.
  3883					;	This routines also transmits the header and makes sure that it has gone
  3884					;	out.
  3885
  3886	004562'	200040	040435'		PUTHDR:	MOVE	AC1,FE.JFN		; Get the JFN for the FE
  3887		441000	004767'			MOVE	AC2,[POINT 8,XMTHDR]	; Point to the transmit header
  3888	004563'	200100	043603'
  3889	004564'	211140	000006			MOVNI	AC3,6			; Get the string byte count
  3890	004565'	335000	004743'			SKIPGE	PTYPE			; Check for 2020 style I/O
  3891	004566'	254000	004607'			JRST	WR2020			;  and output the header 2020 style
  3892	004567'	104000	000053			SOUT				; Output the header to the device
  3893	004570'	320700	005200'			ERJMP	R			;  Can't talk to FE
  3894	004571'	254000	004601'			JRST	IOBRK			; Make sure the header gets output.
  3895
  3896					; GETHDR - To read a receive header from the port that we are currently
  3897					;	talking to.
  3898
  3899	004572'	200040	040435'		GETHDR: MOVE	AC1,FE.JFN		; Get the JFN of the FE
  3900		441000	004765'			MOVE	AC2,[POINT 8,RCVHDR]	; Point to the receive header string
  3901	004573'	200100	043604'
  3902	004574'	211140	000006			MOVNI	AC3,6			; 6 bytes in the header
  3903	004575'	335000	004743'			SKIPGE	PTYPE			; Check for 2020 style I/O
  3904	004576'	254000	004622'			JRST	RD2020			; Read header 2020 style
  3905	004577'	104000	000052			SIN				; Read the header from the FE
  3906	004600'	320700	005200'			ERJMP	R			;  Can't talk to FE
  3907
  3908					; IOBRK - To create a break in the I/O stream and force the current buffers
  3909					;	to be flushed or finished reading in.
  3910
  3911
  3912	004601'	200040	040435'		IOBRK:	MOVE	AC1,FE.JFN		; Get the JFN of the FE device
  3913	004602'	201100	000003			MOVX	AC2,.MOEOF		; Get the EOF function
  3914	004603'	201140	000001			MOVX	AC3,1			; Clear FE buffers w/o doing real EOF
  3915	004604'	104000	000077			MTOPR				; Force I/O completion
  3916	004605'	320700	005200'			ERJMP	R			;  Can't talk to FE
  3917	004606'	254000	005177'			RETSKP				; The I/O was completed succesfully.
  3918
  3919					; WR2020 - This routine is used to simulate the SOUT to a front end
  3920					;	     device. It actually ships the data over a synchronous link
  3921					;	     using DDCMP to a DN200
  3922					;
  3923					; Parameters -
  3924					;
  3925					;	AC1/	Ignored JFN
  3926					;	AC2/	Byte pointer to string
  3927					;	AC3/	Negative byte count
  3928
  3929	004607'	216140	005054'		WR2020: MOVMM	AC3,.BTLEN+BTARG 	; Set the byte count to transfer
  3930	004610'	202100	005053'			MOVEM	AC2,.BTMSG+BTARG 	; Set pointer to 8 bit byte area
  3931	004611'	200040	040455'			MOVE	AC1,PORT		; Get synchronous line number
  3932	004612'	202040	005052'			MOVEM	AC1,.BTDTE+BTARG 	; Set it as the DTE/line in BOOT block
  3933	004613'	201100	005052'			MOVEI	AC2,BTARG		; Get location of BOOT arg block
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 81-2
DDT11	MAC	18-May-81 17:27		TOPS-20 DN60 CRUFT

  3934	004614'	201040	000021			MOVX	AC1,.BTSDD		; Send DDCMP message to DN200
  3935	004615'	104000	000562			BOOT
  3936	004616'	320700	005200'			ERJMP	R			; JSYS failed
  3937	004617'	200100	005053'			MOVE	AC2,.BTMSG+BTARG 	; Get update byte pointer
  3938	004620'	400140	000000			SETZ	AC3,			; Say that all the bytes where output
  3939	004621'	254000	005177'			RETSKP				; Sucess in sending data
  3940
  3941 
  3942					; RD2020 - To read a string from a DN200 that is connected by a DDCMP
  3943					;	     synchronous link. This routine simulates the SIN JSYS that
  3944					;	     is normally used with a front end device.
  3945					;
  3946					; Parameters -
  3947					;
  3948					;	AC1/	Ignored JFN
  3949					;	AC2/	Byte pointer to input buffer
  3950					;	AC3/	Negative byte count to input
  3951
  3952	004622'	124100	005057'		RD2020: DMOVEM	AC2,RDSAVE		; Save the read arguments
  3953	004623'	200040	040455'			MOVE	AC1,PORT		; Get synchronous line number
  3954	004624'	202040	005052'			MOVEM	AC1,.BTDTE+BTARG 	; Set it as the DTE/line in BOOT block
  3955
  3956	004625'	216140	005054'		RD20ST: MOVMM	AC3,.BTLEN+BTARG 	; Set the byte count to transfer
  3957	004626'	202100	005053'			MOVEM	AC2,.BTMSG+BTARG 	; Set pointer to data buffer
  3958	004627'	201100	005052'			MOVEI	AC2,BTARG		; Get location of BOOT arg block
  3959	004630'	201040	000022			MOVX	AC1,.BTRDD		; Read DDCMP message function
  3960	004631'	104000	000562			BOOT				; Do the read
  3961	004632'	320700	005200'			ERJMP	R			;  BOOT JSYS failed
  3962	004633'	200040	005054'			MOVE	AC1,.BTLEN+BTARG 	; Get transfered length/error code
  3963	004634'	607040	400000			TXNN	AC1,BT%CTL		; Check for control message flag
  3964	004635'	254000	004642'			JRST	R20OK			;  No .. so message was read ok
  3965		400000	000003			CAXE	AC1,BT%CTL+.BTCMP	; Transmission complete?
  3966	004636'	312040	043605'
  3967	004637'	254000	005200'			JRST	R			;  No .. so front end not running
  3968										;  with time
  3969	004640'	120100	005057'		R20AGN: DMOVE	AC2,RDSAVE		; Get the arguments back again
  3970	004641'	254000	004625'			JRST	RD20ST			; Go try to read it again
  3971
  3972	004642'	200140	000001		R20OK:	MOVE	AC3,AC1			; Get the count of bytes transfered
  3973	004643'	270140	005060'			ADD	AC3,RDSLEN		; Make it minus the number yet to get
  3974	004644'	200100	005053'			MOVE	AC2,.BTMSG+BTARG 	; Get updated byte pointer
  3975	004645'	254000	005177'			RETSKP				; Success
  3976
  3977					; FESUP - set up port for private use
  3978					;	RESTRICTION: must be called from the caller's top level
  3979
  3980	004646'				FESUP:					; set up port for molesting in private
  3981	004646'	335000	004743'			SKIPGE	PTYPE			; Check for KS10 style I/O
  3982	004647'	254000	004652'			JRST	FESUP1
  3983	004650'	260740	004676'			CALL	SELDTE			;  Make the link to the correct DTE
  3984	004651'	263740	000000			RET				;  If didn't work give error return
  3985	004652'				FESUP1:					; Enqueue the port for SIN/SOUT I/O
  3986										; fall into  enq function
  3987
  3988					;ENQD60 - To ENQ a DN60 front end to block others from using it while
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 81-3
DDT11	MAC	18-May-81 17:27		TOPS-20 DN60 CRUFT

  3989
  3990	004652'	201100	004744'		ENQD60:	MOVEI	AC2,ENQBLK		; this must be called from the caller's top level
  3991	004653'	201040	000000			MOVX	AC1,.ENQBL		; Get the enqueue function number
  3992	004654'	104000	000513			ENQ				;  and try to do it.
  3993	004655'	263740	000000			RET				;  False return if we can't ENQ
  3994	004656'	262740	000001			POP	P,AC1
  3995	004657'	260741	000001			CALL	1(AC1)			; call the true return so the caller
  3996										; will return here for dequeing the port
  3997		261740	000001			JRST	[PUSH	P,AC1		; error return - deque the port
  3998		260740	004661'				 CALL	DEQD60		; the original error is returned
  3999		300000	000000				 NOP			; ignore addtional failures
  4000		262740	000001				 POP	P,AC1
  4001		263740	000000				 RET]
  4002	004660'	254000	043606'
  4003										; this returns sucs - just fall into DEQD60
  4004
  4005					;DEQD60 - To dequeue a DN60 on a port so that others can use it again.
  4006
  4007	004661'	201100	004744'		DEQD60: MOVEI	AC2,ENQBLK
  4008	004662'	201040	000000			MOVX	AC1,.DEQDR		; Get the DEQ function code
  4009	004663'	104000	000514			DEQ
  4010	004664'	263740	000000			RET				; error on the way out
  4011	004665'	254000	005177'			RETSKP				; it suc'd
  4012
  4013					; QUED60 -  make up the argument block needed to ENQ/DEQ a specific port.
  4014
  4015					;	T1/ port number
  4016
  4017	004666'	261740	000011		QUED60:	PUSH	P,T1
  4018	004667'	335000	004743'			SKIPGE	PTYPE
  4019	004670'	405440	000007			ANDI	T1,7			; for DN22, use line no.
  4020	004671'	137440	004751'			DPB	T1,QPRT0		; just cram two octal segments in string
  4021	004672'	242440	777775			LSH	T1,-3
  4022	004673'	137440	004752'			DPB	T1,QPRT1
  4023	004674'	262740	000011			POP	P,T1
  4024	004675'	263740	000000			RET
  4025
  4026
  4027					; SELDTE - To select which DTE is currently attached to the FEn: device
  4028					;	that was previously opened.
  4029					;
  4030					;	PORT/	DTE # to be selected
  4031					; RETURN:
  4032					;	True	was successful
  4033					;	False	MTOPR Jsys failed and the error code is in AC1
  4034
  4035	004676'	200040	040455'		SELDTE:	MOVE	AC1,PORT		;get the dte #
  4036	004677'	201100	000004			MOVX	AC2,.MODTE		; Select the appropriate DTE
  4037	004700'	561141	777770			HRROI	AC3,-10(AC1)		; Get the port number
  4038	004701'	316140	004764'			CAMN	AC3,LSTDTE		; Was it the same as the last one used?
  4039	004702'	254000	005177'			RETSKP				;  Yes so assume he is still set up.
  4040	004703'	550140	000003			HRRZ	AC3,AC3			; Make it only the DTE number
  4041	004704'	200040	040435'			MOVE	AC1,FE.JFN		; Use the FE JFN already opened
  4042	004705'	104000	000077			MTOPR				; Do the select
  4043	004706'	320700	004711'			ERJMP	DSLERR			;  Didn't work, bad DTE
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 81-4
DDT11	MAC	18-May-81 17:27		TOPS-20 DN60 CRUFT

  4044	004707'	562140	004764'			HRROM	AC3,LSTDTE		; Save the last DTE to be selected
  4045	004710'	254000	005177'			RETSKP				; It is now selected on the DTE
  4046
  4047	004711'	402000	004764'		DSLERR: SETZM	LSTDTE			; Clear the last DTE selected (none)
  4048	004712'	201040	400000			MOVX	AC1,.FHSLF		; Get the last error that occurred
  4049	004713'	104000	000012			GETER				;  in this process
  4050	004714'	550040	000002			HRRZ	AC1,AC2			; Set the error value
  4051	004715'	263740	000000			RET				;  and return flaging failure.
  4052
  4053					; CPUTYP - cleverly determine what processor we are on
  4054
  4055	004716'	255000	004717'		CPUTYP:	JFCL	.+1			; CLEAR THE FLAGS
  4056	004717'	254000	004720'			JRST	.+1			; SEE IF WE CHANGE THE PC FLAG
  4057	004720'	255040	004741'			JFCL	AC1,PDP6		; YES,IT WAS A PDP-6
  4058	004721'	474040	000000			SETO	AC1,			; SET AC TO -1
  4059	004722'	253040	004723'			AOBJN	AC1,.+1			; SEE HOW IT ADDS 1,,1 TO -1
  4060	004723'	326040	004736'			JUMPN	AC1,KA10		; ON A KA, IT IS TWO FULL ADDS
  4061	004724'	251040	000000			BLT	AC1,0			; NOOP BLT
  4062	004725'	322040	004737'			JUMPE	AC1,KI10		; KI WONT UPDATE THE WORD
  4063		000000	000001			DMOVE	AC1,[EXP 1,0]		; 1, AND NO STRING POINTER
  4064	004726'	120040	043613'
  4065	004727'	201140	000001			MOVEI	AC3,1			; OFFSET OF 1
  4066		010000	000000			EXTEND	AC1,[CVTDBO]		; CONVERT DECIMAL TO BINARY WITH OFFSET
  4067	004730'	123040	043615'
  4068	004731'	603140	200000			TLNE	AC3,200000		; LOOK FOR KL MICROCODE BUG
  4069		200000	000000		KL10:	SKIPA	AC1,[P.KL10]		; set KL10 type
  4070	004732'	334040	042222'
  4071	004733'	205040	400000		KS10:	MOVX	AC1,P.KS10		; set KS10 type
  4072	004734'	202040	004743'		SETCPU:	MOVEM	AC1,PTYPE		; set the cpu type
  4073	004735'	263740	000000			RET
  4074		040000	000000		KA10:	SKIPA	AC1,[P.KA10]		; set KA10 type
  4075	004736'	334040	042224'
  4076	004737'	205040	100000		KI10:	MOVX	AC1,P.KI10		; set KI10 type
  4077	004740'	254000	004734'			JRST	SETCPU
  4078	004741'	205040	020000		PDP6:	MOVX	AC1,P.PDP6		; set PDP-6 type
  4079	004742'	254000	004734'			JRST	SETCPU
  4080
  4081	004743'	000000	000000		PTYPE:	0				; processor type
  4082		400000	000000		 P.KS10==1B0				; KS10 - deliberately the sign bit
  4083		200000	000000		 P.KL10==1B1				; KL10
  4084		100000	000000		 P.KI10==1B2				; KI10
  4085		040000	000000		 P.KA10==1B3				; KA10
  4086		020000	000000		 P.PDP6==1B4				; PDP-6
  4087
  4088	004744'	000001	000005		ENQBLK: XWD	1,5			; 1 lock,,length of block is 5
  4089	004745'	000000	000000			XWD	0,0			; PSI chn 0,, ID
  4090	004746'	240000	777775			EXP	EN%BLN+EN%LTL+<0,,-3>	; long term data base,, Operator only
  4091	004747'	440700	004753'			POINT	7,QD60BF		; Pointer to string of resource name
  4092	004750'	000000	000000			XWD	0,0			; 1 resource,, number of accesses
  4093
  4094	004751'	170300	004754'		QPRT0:	POINT	3,QD60BF+1,20		; Low order digit of port number
  4095	004752'	260300	004754'		QPRT1:	POINT	3,QD60BF+1,13		; High order digit of port number
  4096	004753'	422346	630132		QD60BF: ASCIZ	\DN60-P00\		; Same name as used by D60SPD and
  4097
  4098	004755'	242000	004767'		D10FN:	POINT	16,XMTHDR,15		; fcn code to 11
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 81-5
DDT11	MAC	18-May-81 17:27		TOPS-20 DN60 CRUFT

  4099	004756'	042000	004767'		D10AD:	POINT	16,XMTHDR,31		; examine/deposit address
  4100	004757'	242000	004770'		D10DT:	POINT	16,XMTHDR+1,15		; deposit data
  4101
  4102	004760'	341000	004765'		D11RS:	POINT	8,RCVHDR,7		; result code from FE
  4103	004761'	241000	004765'		D11FN:	POINT	8,RCVHDR,15		; function performed
  4104	004762'	042000	004765'		D11AD:	POINT	16,RCVHDR,31		; examine/deposti address
  4105	004763'	242000	004766'		D11DT:	POINT	16,RCVHDR+1,15		; examine data
  4106
  4107	004764'				LSTDTE: BLOCK	1			; Last DTE that was selected
  4108	004765'				RCVHDR:: BLOCK	2			; Receive header
  4109	004767'				XMTHDR:: BLOCK	2			; Transmit header
  4110
  4111	004771'				XMSG:	BLOCK	^o274/4+1		; DDCMP Q flush buffer
  4112	005051'				RETRY:	BLOCK	1			; BOOT retry counter
  4113	005052'				BTARG:	BLOCK	5			; BOOT JSYS argument block
  4114	005057'				RDSAVE: BLOCK	1			; Save area for RD2020 arguments
  4115	005060'				RDSLEN: BLOCK	1			;  including the length
  4116
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 82
DDT11	MAC	18-May-81 17:27		ERROR ROUTINE

  4117						SUBTTL	ERROR ROUTINE
  4118
  4119					;CALL	MOVE T1,<ERROR CODE>
  4120					;	MOVE T2,ERROR LIST
  4121					;	CALL CALLERR
  4122	005061'	400500	000000		CALER0:	SETZ	T2,
  4123	005062'	321440	005200'		CALERR:	JUMPL T1,R		;EXIT IF WE ALREADY GAVE THE ERROR
  4124	005063'	261740	000011			PUSH	P,T1		;SAVE CODE
  4125	005064'	326500	005071'			JUMPN	T2,CALER1	;ERROR LIST GIVEN ?
  4126	005065'	332000	040456'			SKIPE	NODE		;WERE WE DOING /NODE STUFF ?
  4127	005066'	201500	005144'			MOVEI	T2,NERLST	;NODE. ERROR
  4128	005067'	332000	040455'			SKIPE	PORT		;WAS A /PORT GIVEN ?
  4129	005070'	201500	005125'			MOVEI	T2,C11LST	;YES SO IS CALL11 ERROR CODE
  4130	005071'	261740	000012		CALER1:	PUSH	P,T2		;SAVE LIST
  4131	005072'	260740	007612'			CALL	QESTYP		;TYPE A QUESTION MARK
  4132	005073'	550457	000000			HRRZ	T1,(P)		;GET TYPE OF ERROR
  4133	005074'	332000	000011			SKIPE	T1
  4134		550451	000000			CALL [	HRRZ	T1,(T1)	;GET ERROR DESCRIPTION
  4135		254000	007655'				JRST	TYPSTR]	;DISPLAY IT
  4136	005075'	260740	043616'
  4137		203136	271336			TYPE	< error code = >
  4138	005076'	201440	043620'
  4139	005077'	260740	007655'
  4140	005100'	200457	777777			MOVE	T1,-1(P)	;GET OCTAL CODE
  4141	005101'	260740	007535'			CALL	OCTYPE
  4142	005102'	260740	007630'			CALL	BLANKT		;TYPE A SPACE
  4143	005103'	262740	000012			POP	P,T2		;GET ERROR LIST
  4144	005104'	262740	000011			POP	P,T1		;GET ERROR CODE
  4145	005105'	323440	005115'			JUMPLE	T1,CALER9
  4146	005106'	322500	005115'			JUMPE	T2,CALER9
  4147	005107'	554552	000000			HLRZ	T3,(T2)		;GET MAX ERROR WE KNOW
  4148	005110'	303453	000000			CAILE	T1,(T3)		;IS IT IN RANGE ?
  4149	005111'	254000	005115'			JRST	CALER9		;NOT IN RANGE SO CAN'T HELP FURTHER
  4150	005112'	271452	000000			ADDI	T1,(T2)
  4151	005113'	200451	000000			MOVE	T1,(T1)
  4152	005114'	260740	007655'			CALL	TYPSTR
  4153	005115'	260740	007612'		CALER9:	CALL	QESTYP
  4154	005116'	260740	007615'			CALL	TABTYP
  4155	005117'	474440	000000			SETO T1,		;SAY WE PRINTED THE ERROR
  4156	005120'	263740	000000			RET
  4157
  4158					;HERE FOR A LOCK ERROR
  4159	005121'	201500	005135'		LOCKER:	MOVEI	T2,LERLST	;DESCRIPTIONS FOR LOCK ERRORS
  4160	005122'	260740	005062'			CALL	CALERR
  4161	005123'	047000	000012			EXIT
  4162	005124'	254000	005121'			JRST LOCKER
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 83
DDT11	MAC	18-May-81 17:27		ERROR ROUTINE

  4163		416031	430542		C11LST:	XWD	7,[ASCIZ \CAL11\]
  4164	005125'	000007	043623'
  4165		673376	420340			Z	[ASCIZ	\not privileged\]
  4166	005126'	000000	043625'
  4167		727355	367336			Z	[ASCIZ	\unknown function\]
  4168	005127'	000000	043630'
  4169		673376	420302			Z	[ASCIZ	\not a DC76\]
  4170	005130'	000000	043634'
  4171		633535	661750			Z	[ASCIZ	\function already in use\]
  4172	005131'	000000	043637'
  4173		673364	060734			Z	[ASCIZ	\no answer to query\]
  4174	005132'	000000	043644'
  4175		707534	572712			Z	[ASCIZ	\queue entry too short\]
  4176	005133'	000000	043650'
  4177		673376	420312			Z	[ASCIZ	\not enough arguments\]
  4178	005134'	000000	043655'
  4179		462370	345400		LERLST:	XWD	6,[ASCIZ \LOCK\]
  4180	005135'	000006	043662'
  4181		673376	420340			Z	[ASCIZ	\not privileged\]
  4182	005136'	000000	043625'
  4183		677515	062744			Z	[ASCIZ	\other job too large\]
  4184	005137'	000000	043663'
  4185		667037	064732			Z	[ASCIZ	\maximum too large\]
  4186	005140'	000000	043667'
  4187		426551	520312			Z	[ASCIZ	\EVM exhausted\]
  4188	005141'	000000	043673'
  4189		647315	462716			Z	[ASCIZ	\illegal subfunction\]
  4190	005142'	000000	043676'
  4191		703034	762500			Z	[ASCIZ	\page unavailable\]
  4192	005143'	000000	043702'
  4193		472370	442534		NERLST:	XWD	6,[ASCIZ \NODE.\]
  4194	005144'	000006	043706'
  4195		647315	420302			Z	[ASCIZ	\ill arg list\]
  4196	005145'	000000	043710'
  4197		647315	420334			Z	[ASCIZ	\ill node name or number\]
  4198	005146'	000000	043713'
  4199		673376	420340			Z	[ASCIZ	\not privileged job\]
  4200	005147'	000000	043720'
  4201		713135	567750			Z	[ASCIZ	\remote node control not available\]
  4202	005150'	000000	043724'
  4203		653374	220334			Z	[ASCIZ	\job not locked\]
  4204	005151'	000000	043733'
  4205		723235	562736			Z	[ASCIZ	\timeout\]
  4206	005152'	000000	043736'
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 84
DDT11	MAC	18-May-81 17:27		SYMBOL TABLE ROUTINES

  4207						SUBTTL	SYMBOL TABLE ROUTINES
  4208
  4209					;SYMBOLS ARE KEPT IN FOUR WORD BLOCKS
  4210					;	SYMBEG POINTS TO FIRST BLOCK
  4211					;	SYMEND POINTS TO LAST BLOCK
  4212					; 1ST WORD IN BLOCK IS SIXBIT SYMBOL
  4213					; 2ND WORD IS VALUE
  4214					; 3RD WORD IS HALF WORD FLAGS,,MASK FOR MATCH
  4215			000001		SMF.SU==000001		;SYMBOL IS SUPPRESSED(DEFINED WITH =)
  4216			000002		SMF.RG==000002		;SYMBOL IS A REGISTER VALUE
  4217			000004		SMF.IN==000004		;SYMBOL IS AN INSTRUCTION
  4218			000010		SMF.EI==000010		;EIS INSTRUCTION FORMAT
  4219			000020		SMF.DD==000020		;LOW ORDER SIX BITS ARE DESTINATION
  4220			000040		SMF.SS==000040		;LOW ORDER 12 BITS ARE SSDD
  4221			000100		SMF.BR==000100		;LOW ORDER 8 BITS ARE XXX(I.E. BR)
  4222			000200		SMF.SB==000200		;SOB TYPE ADDRESS
  4223			000400		SMF.RT==000400		;RTS TYPE REGISTER USAGE
  4224			001000		SMF.JS==001000		;JSR TYPE REGISTER USAGE
  4225			002000		SMF.EM==002000		;EMT TYPE ARGUMENT
  4226			010000		SMF.MK==010000		;MARK
  4227			020000		SMF.PL==020000		;SET PROCESSOR LEVEL
  4228			040000		SMF.P8==040000		;PDP8 SYMBOL
  4229			100000		SMF.11==100000		;PDP11 SYMBOL
  4230			200000		SMF.BY==200000		;BYTE INSTRUCTION
  4231					; 4TH WORD IS SYMBOL SOURCE
  4232
  4233					;HERE TO FIND A MATCH FOR A SYMBOL
  4234					; CALL	MOVE	T1,[SIXBIT \SYMBOL\]
  4235					;	CALL	SYMFND
  4236					;	ERROR RETURN
  4237					;	SUCCESS RETURN	SYM POINTS TO SYMBOL
  4238	005153'	336240	041115'		SYMFND:	SKIPN	SYM,SYMBEG	;GET ADR OF BEGINNING OF SYMBOL TABLE
  4239	005154'	263740	000000			RET			;CAN'T FIND SYMBOL
  4240	005155'	316240	041116'		SYMFN1:	CAMN	SYM,SYMEND	;HIT END OF TABLE YET ?
  4241	005156'	263740	000000			RET			;YES SO CAN'T FIND SYMBOL
  4242	005157'	316445	000000			CAMN	T1,(SYM)	;IS THIS SYMBOL ?
  4243	005160'	260740	005163'			CALL	SYMFN7		;CHECK PDP8/PDP11 RIGHT
  4244	005161'	201245	000004			MOVEI	SYM,4(SYM)	;POINT TO NEXT SYMBOL TABLE BLOCK
  4245	005162'	254000	005155'			JRST	SYMFN1
  4246
  4247					;HERE TO SEE IF PDP8/PDP11 FLAG RIGHT FOR THIS SYMBOL
  4248	005163'	500245	000002		SYMFN7:	HLL	SYM,2(SYM)	;GET FLAGS FOR SYMBOL
  4249	005164'	607240	000004			TLNN	SYM,SMF.IN	;IS THIS AN INSTRUCTION ?
  4250	005165'	254000	005175'			JRST	SYMFN9		;NO SO OK TO USE SYMBOL
  4251	005166'	603240	040000			TLNE	SYM,SMF.P8	;IS THIS A PDP8 SYMBOL ?
  4252	005167'	254000	005173'			JRST	SYMFN8
  4253	005170'	332000	040432'			SKIPE	PDP8F
  4254	005171'	263740	000000			RET			;REJECT SYMBOL
  4255	005172'	254000	005175'			JRST	SYMFN9
  4256	005173'	336000	040432'		SYMFN8:	SKIPN	PDP8F
  4257	005174'	263740	000000			RET
  4258	005175'	202457	000000		SYMFN9:	MOVEM	T1,(P)
  4259	005176'	262740	000011		TPOPJ1:	POP	P,T1
  4260	005177'	350017	000000		RSKP:	AOS	(P)		;FOR SKIP RETURN
  4261	005200'	263740	000000		R:	RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 85
DDT11	MAC	18-May-81 17:27		SYMBOL TABLE ROUTINES

  4262					;HERE TO SEE IF WE CAN FIND A MATCH FOR AN INSTRUCTION
  4263					; CALL	MOVEI	T1,<VALUE>
  4264					;	CALL	INVLFN
  4265					;	LOSE RETURN
  4266					;	WIN RETURN WITH SYM SET UP
  4267	005201'	336240	041115'		INVLFN:	SKIPN	SYM,SYMBEG	;ADDRESS OF FIRST SYMBOL BLOCK
  4268	005202'	263740	000000			RET			;NO SYMBOL TABLE
  4269	005203'	200505	000002		INVLF1:	MOVE	T2,2(SYM)	;GET FLAGS & MASK
  4270	005204'	607500	000001			TLNN	T2,SMF.SU	;IS THIS SUPPRESSED >?
  4271	005205'	607500	000004			TLNN	T2,SMF.IN	;IS THIS AN INSTRUCTION ?
  4272	005206'	254000	005212'			JRST	INVLF8
  4273	005207'	405511	000000			ANDI	T2,(T1)		;MASK ARGUMENT
  4274	005210'	316505	000001			CAMN	T2,1(SYM)	;IS THIS A MATCH ?
  4275	005211'	260740	005163'			CALL	SYMFN7		;OK IF PDP8/PDP11 FLAG RIGHT
  4276	005212'	201245	000004		INVLF8:	MOVEI	SYM,4(SYM)	;GET ADR OF NEXT SYMBOL BLOCK
  4277	005213'	312240	041116'			CAME	SYM,SYMEND	;HIT END OF SYMBOLS ?
  4278	005214'	254000	005203'			JRST	INVLF1		;NO SO SEE IF THIS ONE OK
  4279	005215'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 86
DDT11	MAC	18-May-81 17:27		SYMBOL TABLE ROUTINES

  4280					;HERE TO FIND A NAME FOR A REGISTER
  4281					; CALL:	MOVEI	T1,#	;REGISTER NUMBER
  4282					;	CALL	RGFNDN
  4283					;	LOSE
  4284					;	BINGO	(WITH SYM SETUP - OTHER REGS PRESERVED)
  4285	005216'	260740	004347'		RGFNDN:	CALL	SAVE24		;SAVE REGISTERS
  4286	005217'	260740	005347'			CALL	VLFND0		;FIND A SYMBOL FOR VALUE
  4287	005220'	304000	000000			CAIA
  4288	005221'	201245	777774		RGFND8:	MOVEI	SYM,-4(SYM)	;MAKE ADDRESS OF PREVIOUS SYMBOL
  4289	005222'	316445	000001			CAMN	T1,1(SYM)	;RIGHT VALUE ?
  4290	005223'	315240	041115'			CAMGE	SYM,SYMBEG	;BACKED UP TOO FAR ?
  4291	005224'	263740	000000			RET			;LOSE
  4292	005225'	500245	000002			HLL	SYM,2(SYM)	;GET FLAGS
  4293	005226'	607240	000001			TLNN	SYM,SMF.SU	;IS THIS A SUPPRESSED SYMBOL ?
  4294	005227'	607240	000002			TLNN	SYM,SMF.RG	;IS THIS A REGISTER ?
  4295	005230'	254000	005221'			JRST	RGFND8		;NO GOOD
  4296	005231'	254000	005177'			RETSKP
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 87
DDT11	MAC	18-May-81 17:27		SYMBOL TABLE ROUTINES

  4297					;HERE TO ADD A SYMBOL TO TABLE
  4298					; CALL	PUT SYMBOL IN T1, PUT VALUE IN T2, FLAGS IN T3, MISC IN T4
  4299					;	RETURNS WITH SYM POINTING TO NEW SYMBOL
  4300	005232'	261740	000014		ADDSYM:	PUSH	P,T4		;SAVE MISC ON STACK
  4301	005233'	332000	040432'			SKIPE	PDP8F		;IS THIS A PDP8 SYMBOL ?
  4302	005234'	661540	040000			TLO	T3,SMF.P8	;YES IS A PDP8
  4303	005235'	261740	000013			PUSH	P,T3		;SAVE FLAGS ON STACK
  4304	005236'	261740	000011			PUSH	P,T1		;SAVE SYMBOL ON STACK
  4305	005237'	261740	000012			PUSH	P,T2		;SAVE VALUE ON STACK
  4306	005240'	260740	005270'			CALL	DELSYM		;FIRST DELETE ANY OLD VALUE
  4307	005241'	260740	005303'			CALL	POSYMT		;POSITION SYMBOL TABLE AT END OF CORE
  4308	005242'	201440	000004			MOVEI	T1,4		;GET 4 WORDS FOR A SYMBOL BLOCK
  4309	005243'	260740	005363'			CALL	GETCOR		;GET NEW CORE
  4310	005244'	262740	000011			POP	P,T1		;GET VALUE FOR SYMBOL
  4311	005245'	260740	005347'			CALL	VLFND0		;FIND WHERE TO BULGE SYMBOL TABLE
  4312	005246'	201500	000004			MOVEI	T2,4
  4313	005247'	272500	041116'			ADDM	T2,SYMEND	;AND POINTER TO END OF  SYMBOL TABLE
  4314	005250'	311445	000001			CAML	T1,1(SYM)
  4315	005251'	271240	000004			ADDI	SYM,4
  4316	005252'	200500	000011			MOVE	T2,T1		;COPY SYMBOL VALUE
  4317	005253'	262740	000011			POP	P,T1		;GET SYMBOL
  4318	005254'	262740	000013			POP	P,T3		;GET FLAGS
  4319	005255'	262740	000014			POP	P,T4		;GET MISC
  4320	005256'	261740	000005			PUSH	P,SYM		;SAVE SYMBOL POINTER
  4321	005257'	250445	000000		ADSYM7:	EXCH	T1,(SYM)
  4322	005260'	250505	000001			EXCH	T2,1(SYM)
  4323	005261'	250545	000002			EXCH	T3,2(SYM)
  4324	005262'	250605	000003			EXCH	T4,3(SYM)
  4325	005263'	201245	000004			MOVEI	SYM,4(SYM)	;POINT TO NEXT SYMBOL TABLE BLOCK
  4326	005264'	312240	041116'			CAME	SYM,SYMEND	;HIT END OF TABLE YET ?
  4327	005265'	254000	005257'			JRST	ADSYM7		;NO SO KEEP GOING
  4328	005266'	262740	000005			POP	P,SYM		;GET POINTER TO NEW SYMBOL
  4329	005267'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 88
DDT11	MAC	18-May-81 17:27		SYMBOL TABLE ROUTINES

  4330
  4331					;HERE TO DELETE A SYMBOL FROM A SYMBOL TABEL
  4332					; CALL	MOVE	T1,[SIXBIT \SYMBOL\]
  4333					;	CALL	DELSYM
  4334					;	RETURN
  4335	005270'	260740	005153'		DELSYM:	CALL	SYMFND		;TRY TO FIND SYMBOL IN CURRENT SYMBOL TABLE
  4336	005271'	263740	000000			RET
  4337	005272'	505445	000004			HRLI	T1,4(SYM)	;BUILD BLT POINTER
  4338	005273'	540440	000005			HRR	T1,SYM
  4339	005274'	550500	041116'			HRRZ	T2,SYMEND	;END OF SYMBOL TABLE
  4340	005275'	251452	777774			BLT	T1,-4(T2)
  4341	005276'	211440	000004			MOVNI	T1,4
  4342	005277'	316500	001551*			CAMN	T2,.JBFF##	;SYMBOL TABLE AT END OF CORE ?
  4343	005300'	272440	005277*			ADDM	T1,.JBFF##	;YES SO ADJUST END POINTER
  4344	005301'	272440	041116'			ADDM	T1,SYMEND	;AND ADJUST POINTER TO END OF SYMBOL TABLE
  4345	005302'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 89
DDT11	MAC	18-May-81 17:27		SYMBOL TABLE ROUTINES

  4346					;HERE TO BE SURE SYMBOL TABLE IS LAST THING IN CORE AND MOVE IT IF NOT
  4347					; CALL:	CALL	POSYMT
  4348	005303'	200440	041116'		POSYMT:	MOVE	T1,SYMEND
  4349	005304'	316440	005300*			CAMN	T1,.JBFF##	;IS SYMBOL TABLE AT END OF CORE ?
  4350	005305'	263740	000000			RET
  4351	005306'	261740	005304*			PUSH	P,.JBFF##	;SAVE OLD FREE CORE POINTER
  4352	005307'	200440	041116'			MOVE	T1,SYMEND
  4353	005310'	274440	041115'			SUB	T1,SYMBEG
  4354	005311'	260740	005363'			CALL	GETCOR
  4355	005312'	262740	000011			POP	P,T1		;GET OLD FREE CORE POINTER
  4356	005313'	504440	041115'			HRL	T1,SYMBEG
  4357	005314'	552440	041115'			HRRZM	T1,SYMBEG	;NEW BEGINNING OF SYMBOL TABLE
  4358	005315'	550500	005306*			HRRZ	T2,.JBFF
  4359	005316'	251452	777777			BLT	T1,-1(T2)
  4360	005317'	202500	041116'			MOVEM	T2,SYMEND	;NEW END OFF SYMBOL TABLE
  4361	005320'	263740	000000			RET
  4362
  4363					;HERE TO MOVE THE SYMBOL TABLE UP IN CORE
  4364					; CALL:	MOVEI	T1,<AMOUNT TO MOVE IT UP>
  4365					;	CALL	MOVSMT
  4366	005321'	260740	004347'		MOVSMT:	CALL	SAVE24		;SAVE REGISTERS
  4367	005322'	261740	000011			PUSH	P,T1		;SAVE ARGUMENT
  4368	005323'	260740	005363'			CALL	GETCOR		;GET ADDITIONAL CORE
  4369	005324'	262740	000011			POP	P,T1		;GET NUMBER OF WORDS TO MOVE
  4370	005325'	200500	041115'			MOVE	T2,SYMBEG	;FIRST WORD IN CURRENT SYMBOL TABLE
  4371	005326'	272440	041115'			ADDM	T1,SYMBEG	;NEW SYMBOL TABLE ADR
  4372	005327'	550540	005315*			HRRZ	T3,.JBFF##	;ADR OF NEW LAST WORD IN SYMBOL TABLE
  4373	005330'	542540	041116'			HRRM	T3,SYMEND	;NEW END OF SYMBOL TABLE
  4374	005331'	364540	004310'			SOJA	T3,MOVTAB	;MAKE NEW LAST WORD IN SYMBOL TABLE
  4375									; AND MOVE THE TABLE
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 90
DDT11	MAC	18-May-81 17:27		SYMBOL TABLE ROUTINES

  4376					;HERE TO FIND A NEAR MATCH FOR A VALUE
  4377					; CALL	MOVEI	T1,VALUE TO MATCH
  4378					;	CALL	VALFND
  4379					;	ERROR RETURN	;WITH SYM CLEARED
  4380					;	RETURN WITH SYM SET UP
  4381	005332'	260740	005347'		VALFND:	CALL	VLFND0
  4382	005333'	254000	005337'			JRST	VLFND4
  4383	005334'	201245	777774		VLFND3:	MOVEI	SYM,-4(SYM)	;BACK UP SYMBOL POINTER
  4384	005335'	315240	041115'			CAMGE	SYM,SYMBEG	;BACKED UP TOO FAR ?
  4385	005336'	254000	005345'			JRST	VLFND7		;YES
  4386	005337'	500245	000002		VLFND4:	HLL	SYM,2(SYM)	;GET FLAGS FOR SYMBOL
  4387						TLNE	SYM,SMF.SU!SMF.IN!SMF.RG	;IS SYMBOL SUPPRESSED OR REG OR INSTRUCTION 
  4388	005340'	603240	000007		?
  4389	005341'	254000	005334'			JRST	VLFND3		;YES SO REJECT IT
  4390	005342'	200505	000001			MOVE	T2,1(SYM)	;GET SYMBOL VALUE
  4391	005343'	305452	000400			CAIGE	T1,400(T2)
  4392	005344'	354017	000000			AOSA	(P)
  4393	005345'	402000	000005		VLFND7:	SETZM	SYM
  4394	005346'	263740	000000			RET
  4395
  4396	005347'	200240	041115'		VLFND0:	MOVE	SYM,SYMBEG	;POINT TO FIRST SYMBOL BLOCK
  4397	005350'	200540	041116'			MOVE	T3,SYMEND
  4398	005351'	200500	000013		VLFND2:	MOVE	T2,T3		;COPY HIGH LIMIT POINTER
  4399	005352'	274500	000005			SUB	T2,SYM		;MAKE DIFFERENCE BETWEEN HIGH AND LOW
  4400	005353'	242500	777777			LSH	T2,-1
  4401	005354'	405500	777774			ANDI	T2,777774
  4402	005355'	322500	005200'			JUMPE	T2,R		;HAVE CARRIED THIS AS FAR AS WE CAN
  4403	005356'	270500	000005			ADD	T2,SYM
  4404	005357'	315452	000001			CAMGE	T1,1(T2)
  4405	005360'	334540	000012			SKIPA	T3,T2
  4406	005361'	200240	000012			MOVE	SYM,T2
  4407	005362'	254000	005351'			JRST	VLFND2
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 91
DDT11	MAC	18-May-81 17:27		SYMBOL TABLE ROUTINES

  4408					;HERE TO GET MORE CORE
  4409					; CALL	MOVEI	T1,<#WORDS OF CORE WANTED>
  4410					;	CALL	GETCOR
  4411	005363'	553000	000011		GETCOR:	HRRZS	T1		;CLEAR LEFT HALF
  4412	005364'	273440	005327*			ADDB	T1,.JBFF##	;MAKE NEW END OF CORE
  4413	005365'	553000	000011			HRRZS	T1		;CLEAR LEFT HALF
  4414	005366'	506440	000371*			HRLM	T1,.JBSA##	;IN CASE WE GET SAVED LATER
  4415	005367'	607400	002000			TXNN	FLG,F.EXEC	;RUNNING IN EXEC MODE
  4416	005370'	317440	000000*			CAMG	T1,.JBREL##
  4417	005371'	254000	005406'			JRST	GTCOR9
  4418	005372'	602400	040000			TXNE	FLG,F.LOCK
  4419		201440	000001			JRST	[	MOVEI	T1,1		;CODE FOR LOW SEG
  4420		047440	000120					UNLOK.	T1,	;CAN'T BE LOCKED WHEN WE DO THIS
  4421		254000	005121'					JRST	LOCKER		;OLD MONITOR PERHAPS ?
  4422		550440	000000					HRRZ	T1,.JBFF##	;GET CORE ARG BACK
  4423		047440	000011					CORE	T1,
  4424		254000	005407'					JRST	CORERR		;CAN'T HAVE MORE ?
  4425		201440	000001					MOVEI	T1,1		;CODE TO LOCK LOW SEG
  4426		047440	000060					LOCK	T1,
  4427		254000	005121'					JRST	LOCKER
  4428		254000	005376'					JRST	GTCOR6 ]
  4429	005373'	254000	043740'
  4430	005374'	047440	000011			CORE	T1,
  4431	005375'	254000	005407'			JRST	CORERR
  4432	005376'	201440	000133		GTCOR6:	MOVEI	T1,"["
  4433	005377'	260740	007666'			CALL	TYPCHR
  4434	005400'	550440	005370*			HRRZ	T1,.JBREL##
  4435	005401'	350000	000011			AOS	T1
  4436	005402'	242440	777767			LSH	T1,-^D9
  4437	005403'	260740	007526'			CALL	DECTYP
  4438						TYPE	<p core]
  4439		701014	367744		>
  4440
  4441	005404'	201440	043752'
  4442	005405'	260740	007655'
  4443	005406'	263740	000000		GTCOR9:	RET
  4444
  4445					;HERE IF CAN'T GET CORE WE WANT
  4446		202071	751212		CORERR:	TYPE	< CORE UUO failed>
  4447	005407'	201440	043754'
  4448	005410'	260740	007655'
  4449	005411'	047000	000012			EXIT
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 92
DDT11	MAC	18-May-81 17:27		SYMBOL TABLE ROUTINES

  4450					;HERE TO READ A SYMBOL TABLE FROM A LISTING
  4451
  4452	005412'	332440	040461'		RDSYMB:	SKIPE	T1,USETIT	;WANT TO SKIP PART OF FILE ?
  4453	005413'	074051	000000			USETI	1,(T1)		;POSITION FILE
  4454		006213'	005522'			MOVE	T1,[FILDEV,,SYMDEV]
  4455	005414'	200440	043760'
  4456	005415'	251440	005541'			BLT	T1,SYMDEV+$FBLEN-1	;COPY FILDEV, FILNAM, FILEXT, FILTIM
  4457	005416'	400640	000000			SETZ	T5,		;COUNT OF SYMBOLS
  4458	005417'	260740	005510'		GETSC1:	CALL	GETSCH
  4459	005420'	302440	000012			CAIE	T1,12		;IS THIS A LINE FEED ?
  4460	005421'	254000	005417'			JRST	GETSC1		;LOOK FOR ONE
  4461	005422'	403540	040463'			SETZB	T3,SYMBOL	;BUILD SYMBOL HERE
  4462		440600	040463'			MOVE	T2,[POINT 6,SYMBOL]
  4463	005423'	200500	043125'
  4464	005424'	260740	005510'			CALL	GETSCH		;GET FIRST CHAR FOR SYMBOL
  4465	005425'	301440	000060			CAIL	T1,"0"		;CHECK TO SEE IF NUMERIC
  4466	005426'	303440	000071			CAILE	T1,"9"
  4467	005427'	304000	000000			CAIA			;NOT NUMERIC
  4468	005430'	254000	005417'			JRST	GETSC1		;NUMERIC SO FLUSH LINE
  4469	005431'	304000	000000			CAIA
  4470	005432'	260740	005510'		GETSC3:	CALL	GETSCH
  4471	005433'	307440	000040			CAIG	T1,40
  4472	005434'	254000	005443'			JRST	GETSC4		;IF SO HAVE FINISHED SYMBOL
  4473	005435'	306440	000075			CAIN	T1,"="		;DID SYMBOL END WITH "=" ?
  4474	005436'	254000	005445'			JRST	GETSC5
  4475	005437'	275440	000040			SUBI	T1,40		;CONVERT TO SIXBIT
  4476		000600	040463'			CAME	T2,[POINT 6,SYMBOL,35]	;FILLED WORD YET ?
  4477	005440'	312500	043126'
  4478	005441'	136440	000012			IDPB	T1,T2		;NO SO KEEP FILLING
  4479	005442'	254000	005432'			JRST	GETSC3
  4480	005443'	302440	000040		GETSC4:	CAIE	T1,40		;SYMBOLS END WITH A SPACE
  4481	005444'	254000	005417'			JRST	GETSC1		;NOT SYMBOL - FLUSH LINE
  4482	005445'	336000	040463'		GETSC5:	SKIPN	SYMBOL		;IS THERE A SYMBOL ?
  4483	005446'	254000	005417'			JRST	GETSC1		;NO SYMBOL FLUSH LINE
  4484	005447'	634600	000014			TDZA	T4,T4		;CLEAR FLAGS
  4485	005450'	260740	005510'		GETSC6:	CALL	GETSCH
  4486	005451'	306440	000040			CAIN	T1,40
  4487	005452'	254000	005450'			JRST	GETSC6
  4488	005453'	306440	000075			CAIN	T1,"="
  4489		660600	000001			JRST	[	TRO	T4,SMF.SU	;SUPPRESSED SYMBOL
  4490		254000	005450'					JRST	GETSC6	]
  4491	005454'	254000	043761'
  4492	005455'	306440	000045			CAIN	T1,"%"
  4493		660600	000002			JRST	[	TRO	T4,SMF.RG	;REGISTER NAME
  4494		620600	000001					TRZ	T4,SMF.SU	;DON'T SUPPRESS REG NAMES
  4495		254000	005450'					JRST	GETSC6	]
  4496	005456'	254000	043763'
  4497	005457'	301440	000060			CAIL	T1,60
  4498	005460'	303440	000067			CAILE	T1,67
  4499	005461'	254000	005417'			JRST	GETSC1		;FLUSH REST OF LINE
  4500	005462'	221540	000010		GETSC7:	IMULI	T3,^D8
  4501	005463'	271551	777720			ADDI	T3,-60(T1)
  4502	005464'	260740	005510'			CALL	GETSCH
  4503	005465'	301440	000060			CAIL	T1,60
  4504	005466'	303440	000067			CAILE	T1,67
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 92-1
DDT11	MAC	18-May-81 17:27		SYMBOL TABLE ROUTINES

  4505	005467'	304000	000000			CAIA
  4506	005470'	254000	005462'			JRST	GETSC7
  4507
  4508	005471'	302440	000070			CAIE	T1,"8"
  4509	005472'	306440	000071			CAIN	T1,"9"
  4510	005473'	254000	005417'			JRST	GETSC1		;FLUSH REST OD LINE
  4511	005474'	306440	000055			CAIN	T1,"-"
  4512	005475'	254000	005417'			JRST	GETSC1		;FLUSH REST OF LINE
  4513	005476'	200440	040463'			MOVE	T1,SYMBOL	;COPY SYMBOL
  4514	005477'	550500	000013			HRRZ	T2,T3		;VALUE
  4515	005500'	514540	000014			HRLZ	T3,T4		;FLAGS
  4516	005501'	200600	005525'			MOVE	T4,SYMNAM	;FILE NAME
  4517	005502'	261740	041116'			PUSH	P,SYMEND
  4518	005503'	260740	005232'			CALL	ADDSYM
  4519	005504'	262740	000011			POP	P,T1		;GET OLD SYMEND
  4520	005505'	312440	041116'			CAME	T1,SYMEND
  4521	005506'	350000	000015			AOS	T5		;COUNT SYMBOL
  4522	005507'	254000	005417'			JRST	GETSC1		;FLUSH REST OF LINE
  4523	005510'	260740	006707'		GETSCH:	CALL	FILCHR		;GET NEXT CHAR FROM FILE
  4524	005511'	304000	000000			CAIA
  4525	005512'	263740	000000			RET
  4526		203315	760710			TYPE	< loaded >
  4527	005513'	201440	043766'
  4528	005514'	260740	007655'
  4529	005515'	200440	000015			MOVE	T1,T5
  4530	005516'	260740	007526'			CALL	DECTYP
  4531						TYPE	< symbols
  4532		203477	166704		>
  4533
  4534	005517'	201440	043770'
  4535	005520'	260740	007655'
  4536	005521'	254000	005176'			JRST TPOPJ1
  4537
  4538	005522'				SYMDEV:	BLOCK	1		;DEVICE NAME FOR SYMBOL FILE
  4539	005523'				SYMBLK:	BLOCK	1		; START OF LOOKUP/ENTER BLOCK
  4540	005524'				SYMDIR:	BLOCK	1		; ADDRESS OF PATH BLOCK
  4541	005525'				SYMNAM:	BLOCK	1		; FILE NAME
  4542	005526'				SYMEXT:	BLOCK	1		; FILE EXTENSION
  4543	005527'				SYMTIM:	BLOCK	1		; TIME/DATE AND PROTECTION
  4544	005530'				SYMPTH:	BLOCK	2		; FILE PATH
  4545	005532'				SYMPPN:	BLOCK	1		; FILE PPN
  4546	005533'				SYMSFD:	BLOCK	6		;  AND SUBSEQUENT SFD'S
  4547	005541'					BLOCK	1		; SWITCHES
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 93
DDT11	MAC	18-May-81 17:27		SYMBOL TABLE ROUTINES

  4548					;HERE TO READ A FE SYMBOL FILE
  4549
  4550		006213'	005522'		RDSYMA:	MOVE T1,[FILDEV,,SYMDEV] ; COPY OF FILE, DEVICE, EXT, TIME
  4551	005542'	200440	043760'
  4552	005543'	251440	005541'			BLT T1,SYMDEV+$FBLEN-1	;MOVE IT
  4553	005544'	400640	000000			SETZ T5,		;COUNT OF SYMBOLS WE HAVE READ
  4554	005545'	260740	005510'		RDSYM1:	CALL GETSCH		;GET NEXT BYTE
  4555	005546'	302440	000012			CAIE T1,12		;LINE FEED?
  4556	005547'	254000	005545'			JRST RDSYM1		;NO, KEEP LOOKING FOR IT.
  4557	005550'	403540	040463'		RDSYM2:	SETZB T3,SYMBOL		;BUILD SYMBOL HERE
  4558		440600	040463'			MOVE T2,[POINT 6,SYMBOL];POINTER FOR SYMBOL NAME
  4559	005551'	200500	043125'
  4560	005552'	260740	005510'		RDSYM3:	CALL GETSCH		;GET NEXT SYMBOL NAME BYTE
  4561	005553'	302440	000040			CAIE T1,40		;SPACE?
  4562	005554'	306440	000011			CAIN T1,11		;TAB?
  4563	005555'	254000	005552'			JRST RDSYM3		;YES, IGNORE IT AT START OF LINE
  4564	005556'	304000	000000			CAIA
  4565	005557'	260740	005510'		RDSYM4:	CALL GETSCH		;GET NEXT BYTE, PLEASE
  4566	005560'	307440	000040			CAIG T1,40		;IF SO, WE HAVE FINISHED SYMBOL
  4567	005561'	254000	005571'			JRST RDSYM5		;YES, WE ARE DONE WITH THAT PART
  4568	005562'	302440	000011			CAIE T1,11		;IS IT A TAB?
  4569	005563'	306440	000075			CAIN T1,75		;IS IT AN "="?
  4570	005564'	254000	005571'			JRST RDSYM5		;YES, TOO, SO GET NEXT PART
  4571	005565'	275440	000040			SUBI T1,40		;CONVERT TO SIXBIT
  4572		000600	040463'			CAME T2,[POINT 6,SYMBOL,35];AT THE END YET?
  4573	005566'	312500	043126'
  4574	005567'	136440	000012			IDPB T1,T2		;NO, POU BYTE INTO SYMBOL
  4575	005570'	254000	005557'			JRST RDSYM4		;LOOP FOR MORE OF SYMBOL
  4576
  4577	005571'	306440	000075		RDSYM5:	CAIN T1,75		;END OF SYMBOL, WAS IT A "="?
  4578		336000	040463'			JRST [	SKIPN SYMBOL
  4579		254000	005545'				JRST RDSYM1	;NO SYMBOL, FLUSH THE LINE, TRY AGAIN
  4580		400600	000000				SETZ T4,	;CLEAR THE FLAGS
  4581		254000	005605'				JRST RDSYM6]	;AND GET THE VALUE 
  4582	005572'	254000	043773'
  4583	005573'	302440	000011			CAIE T1,11		;TAB
  4584	005574'	306440	000040			CAIN T1,40		;SPACE?
  4585	005575'	304000	000000			CAIA
  4586	005576'	254000	005545'			JRST RDSYM1		;NOT A SYMBOL AGAIN, FLUSH LINE
  4587	005577'	336000	040463'			SKIPN SYMBOL
  4588	005600'	254000	005545'			JRST RDSYM1		;NOT A SYMBOL, YET
  4589	005601'	400600	000000			SETZ T4,
  4590	005602'	260740	005510'		RDSYM7:	CALL GETSCH
  4591	005603'	306440	000040			CAIN T1,40
  4592	005604'	254000	005602'			JRST RDSYM7		;EAT UP EXTRA SPACES
  4593	005605'	306440	000075		RDSYM6:	CAIN T1,75		;OK?
  4594		660600	000001			JRST [	TRO T4,SMF.SU	;SUPPRESSED
  4595		254000	005602'				JRST RDSYM7]	;BACK FOR MORE
  4596	005606'	254000	043777'
  4597	005607'	306440	000045			CAIN T1,45		;"%"
  4598		660600	000002			JRST [	TRO T4,SMF.RG	;REGISTER NAME
  4599		620600	000001				TRZ T4,SMF.SU	;DONT KEEP THEM DOWN
  4600		254000	005602'				JRST RDSYM7]	;BACK AGAIN
  4601	005610'	254000	044001'
  4602	005611'	301440	000060			CAIL T1,60		;IS IT IN THE RANGE OF 0-7
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 93-1
DDT11	MAC	18-May-81 17:27		SYMBOL TABLE ROUTINES

  4603	005612'	303440	000067			CAILE T1,67
  4604	005613'	254000	005545'			JRST RDSYM1		;NO, FLUSH LINE
  4605	005614'	221540	000010		RDSYM8:	IMULI T3,10		;MAKE ROOM FOR NEW VALUE
  4606	005615'	271551	777720			ADDI T3,-60(T1)		;CONVERT AND ADD IT IN
  4607	005616'	260740	005510'		RDSYM9:	CALL GETSCH		;NEXT BYTE
  4608	005617'	301440	000060			CAIL T1,60
  4609	005620'	303440	000067			CAILE T1,67
  4610	005621'	304000	000000			CAIA
  4611	005622'	254000	005614'			JRST RDSYM8		;ADD IN NEXT VALUE
  4612	005623'	306440	000055			CAIN T1,55		;WAS IT A "-"
  4613	005624'	254000	005616'			JRST RDSYM9		;YES, IGNORE IT
  4614	005625'	306440	000122			CAIN T1,122		;IS IT A "R"
  4615	005626'	270540	040454'			ADD T3,RELOFF		;YES, ADD RELOCATION , AND KEEP GOING
  4616	005627'	200440	040463'			MOVE T1,SYMBOL		;GET SYMBOL NAME
  4617	005630'	550500	000013			HRRZ T2,T3		;GET VALUE
  4618	005631'	514540	000014			HRLZ T3,T4		;GET FLAGS
  4619	005632'	200600	005525'			MOVE T4,SYMNAM		;GET FILE MANE
  4620	005633'	261740	041116'			PUSH P,SYMEND		;SAVE END OF SYMBOL TABLE
  4621	005634'	260740	005232'			CALL ADDSYM		;ADD NEW SYMBOL
  4622	005635'	262740	000011			POP P,T1		;GET OLD END
  4623	005636'	312440	041116'			CAME T1,SYMEND		;DID IT GROW?
  4624	005637'	350000	000015			AOS T5			;YES, COUNT AS NEW SYMBOL (CROCK)
  4625	005640'	254000	005550'			JRST RDSYM2		;YES, GET NEXT SYMBOL FROM LINE
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 94
DDT11	MAC	18-May-81 17:27		GENERAL FILE ROUTINES

  4626						SUBTTL	GENERAL FILE ROUTINES
  4627
  4628					;HERE TO OPEN A FILE TO READ(F.WRIT=0) OR WRITE(F.WRIT=1)
  4629					; CALL	MOVE	T1,[SIXBIT \FILE\]	;DEFAULT FILE NAME
  4630					;	MOVE	T2,[SIXBIT \EXTEXT\]	;DEFAULT EXTENSIONS
  4631					;	MOVE	T3,[SWDSP,,SWLST]	;SWITCH POINTER
  4632					;	MOVE	T4,[400000,,ADR]	;DEFAULT LAST SWITCH
  4633					;	CALL	OPNFIL
  4634					;	LOSE RETURN
  4635					;	WIN RETURN
  4636	005641'	664400	000001		OPNFIL:	TROA	FLG,F.FLIP	;FLAG WE SHOULD PROMPT
  4637	005642'	620400	000001		OPNFL0:	TXZ	FLG,F.FLIP	;NO PROMPT PLEASE
  4638	005643'	202500	006212'			MOVEM	T2,DEFEXT	;SAVE DEFAULT EXTENSIONS
  4639	005644'	402000	006213'			SETZM	FILDEV		;INITIALIZE START OF FILE BLOCK
  4640		006213'	006214'			MOVE	T2,[FILDEV,,FILDEV+1]  ;BLT POINTER TO
  4641	005645'	200500	044004'
  4642	005646'	251500	006232'			BLT	T2,FILDEV+$FBLEN-1  ; INITIALIZE REST OF FILE BLOCK
  4643	005647'	202440	006216'			MOVEM	T1,FILNAM	;SAVE DEFAULT FILE NAME
  4644	005650'	202540	006232'			MOVEM	T3,FIL.SW	;SAVE POINTER TO SWITCHES
  4645	005651'	202600	040420'			MOVEM	T4,LASTSW	;LAST SWITCH WE GET
  4646	005652'				OPFIL1:	MOVEI	T1,[ASCIZ \
  4647		064250	644630		FILE:	\]
  4648	005652'	201440	044005'
  4649	005653'	662400	000001			TXOE	FLG,F.FLIP	;WANT PROMPT ?
  4650	005654'	260740	007655'			CALL	TYPSTR
  4651	005655'	260740	006776'			CALL	SIXIN		;GET FILE NAME
  4652	005656'	254000	005652'			JRST	OPFIL1
  4653	005657'	322440	005735'			JUMPE	T1,OPFIL4	;JUST SWITCHES
  4654	005660'	205500	446353			MOVSI	T2,'DSK'	;DEFAULT DEVICE NAME
  4655	005661'	202500	006213'			MOVEM	T2,FILDEV
  4656	005662'	302640	000072			CAIE	T5,":"		;WAS THIS A DEVICE SPECIFICATION ?
  4657	005663'	254000	005667'			JRST	OPFIL2
  4658	005664'	202440	006213'			MOVEM	T1,FILDEV	;YES SO WAS A DEVICE
  4659	005665'	260740	006776'			CALL	SIXIN		;GET FILE NAME
  4660	005666'	254000	005652'			JRST	OPFIL1
  4661	005667'	332000	000011		OPFIL2:	SKIPE	T1		;WAS THERE A FILE NAME ?
  4662	005670'	202440	006216'			MOVEM	T1,FILNAM	;SAVE FILE NAME
  4663	005671'	302640	000056			CAIE	T5,"."		;GIVING AN EXTENSION ?
  4664	005672'	254000	005676'			JRST	OPFIL3		;NO
  4665	005673'	260740	006776'			CALL	SIXIN		;GET EXTENSION
  4666	005674'	254000	005652'			JRST	OPFIL1
  4667	005675'	512440	006217'			HLLZM	T1,FILEXT
  4668	005676'	302640	000133		OPFIL3:	CAIE	T5,"["		;GIVING A PPN ?
  4669	005677'	254000	005735'			JRST	OPFIL4
  4670
  4671					;HERE TO READ IN A PATH SPEC
  4672	005700'	260740	006776'			CALL	SIXIN
  4673	005701'	254000	005735'			JRST	OPFIL4
  4674	005702'	302640	000054			CAIE	T5,","
  4675	005703'	254000	005735'			JRST	OPFIL4
  4676	005704'	260740	007034'			CALL	SIXOCT
  4677	005705'	254000	005735'			JRST	OPFIL4
  4678	005706'	306440	000000			CAIN	T1,0		;USER TYPE IN EXPLICIT PROJECT?
  4679	005707'	554440	040707'			HLRZ	T1,MYPPN	;NO, USE HIS THEN
  4680	005710'	506440	006223'			HRLM	T1,FILPPN	; SET IN FILE PATH BLOCK
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 94-1
DDT11	MAC	18-May-81 17:27		GENERAL FILE ROUTINES

  4681	005711'	260740	006776'			CALL	SIXIN
  4682	005712'	254000	005652'			JRST	OPFIL1
  4683	005713'	260740	007034'			CALL	SIXOCT
  4684	005714'	254000	005652'			JRST	OPFIL1
  4685	005715'	306440	000000			CAIN	T1,0		;USER TYPE IN EXPLICIT PROGRAMMER?
  4686	005716'	550440	040707'			HRRZ	T1,MYPPN	;NO, USE HIS THEN
  4687	005717'	542440	006223'			HRRM	T1,FILPPN	; SET IN FILE PATH BLOCK
  4688	005720'	201600	006223'			MOVEI	T4,FILSFD-1	; START OF SFD'S
  4689	005721'	200440	000015		OPFL30:	MOVE	T1,T5
  4690	005722'	302440	000054			CAIE	T1,","		;WERE SFD'S SPECIFIED ?
  4691	005723'	254000	005732'			JRST	OPFL39
  4692	005724'	260740	006776'			CALL	SIXIN		;GET SFD NAME
  4693	005725'	254000	005732'			JRST	OPFL39
  4694	005726'	306600	006230'			CAIN	T4,FILSFD+4	; ALREADY FILLED ALL ?
  4695						JRST	[TYPE	<
  4696		064247	742142		?D11SFD SFD depth greater than 5>
  4697		201440	044007'
  4698		260740	007655'
  4699		263740	000000				RET	]
  4700	005727'	254000	044016'
  4701	005730'	261600	000011			PUSH	T4,T1
  4702	005731'	254000	005721'			JRST	OPFL30
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 95
DDT11	MAC	18-May-81 17:27		GENERAL FILE ROUTINES

  4703	005732'	306440	000135		OPFL39:	CAIN	T1,"]"
  4704	005733'	260740	010574'			CALL	RDCHAR
  4705	005734'	202440	000015		OPFL40:	MOVEM	T1,T5
  4706	005735'	306640	000040		OPFIL4:	CAIN	T5,40		;WAS BREAK CHAR A SPACE ?
  4707		260740	010574'			JRST	[CALL	RDCHAR	;GET NEXT CHAR
  4708		254000	005734'				JRST	OPFL40 ]
  4709	005736'	254000	044021'
  4710	005737'	302640	000057			CAIE	T5,"/"		;TIME FOR SWITCHES ?
  4711	005740'	254000	006015'			JRST	OPFIL7
  4712	005741'	260740	006776'			CALL	SIXIN		;GET SWITCH NAME
  4713	005742'	254000	006015'			JRST	OPFIL7
  4714	005743'	205500	770000			MOVSI	T2,770000	;MAKE A MASK
  4715	005744'	200540	000011		OPFL41:	MOVE	T3,T1		;COPY ARGUMENT
  4716	005745'	404540	000012			AND	T3,T2		;MASK IT
  4717	005746'	316440	000013			CAMN	T1,T3		;WAS THAT RIGHT MASK ?
  4718	005747'	254000	005752'			JRST	OPFL42
  4719	005750'	240500	777772			ASH	T2,-6		;MAKE MASK BIGGER
  4720	005751'	254000	005744'			JRST	OPFL41
  4721	005752'	550600	006232'		OPFL42:	HRRZ	T4,FIL.SW
  4722	005753'	336554	000000		OPFL43:	SKIPN	T3,(T4)		;GET NEXT ENTRY IN LIST
  4723	005754'	254000	005766'			JRST	OPFIL5		;NO MATCH FOR SWITCH
  4724	005755'	316440	000013			CAMN T1,T3		;EXACT ENTRY?
  4725	005756'	254000	006005'			JRST OPFIL6		;YES, IGNORE PARTIAL MATCHES
  4726	005757'	404540	000012			AND	T3,T2		;MASK OFF ENTRY
  4727	005760'	312440	000013			CAME	T1,T3		;DID WE FIND MATCH ?
  4728	005761'	344600	005753'			AOJA	T4,OPFL43	;TRY NEXT ENTRY
  4729	005762'	200554	000001			MOVE	T3,1(T4)	;GET NEXT ENTRY FROM LIST
  4730	005763'	404540	000012			AND	T3,T2		;MASK IT
  4731	005764'	312440	000013			CAME	T1,T3
  4732	005765'	254000	006005'			JRST	OPFIL6
  4733	005766'	261740	000011		OPFIL5:	PUSH	P,T1		;SAVE SWITCH
  4734						TYPE	<
  4735		064256	567310		undefined or ambiguous switch />
  4736	005767'	201440	044023'
  4737	005770'	260740	007655'
  4738	005771'	262740	000011			POP	P,T1
  4739	005772'	260740	007600'			CALL	SIXTYP
  4740					OPFL52:	TYPE	<
  4741		064241	146312			Legal switches are:>
  4742	005773'	201440	044032'
  4743	005774'	260740	007655'
  4744	005775'	550600	006232'			HRRZ	T4,FIL.SW	;POINT TO LIST OF SWITCHES
  4745	005776'	336014	000000		OPFL55:	SKIPN	(T4)
  4746	005777'	254000	007621'			JRST	CRLTYP		;END WITH A FLURISH
  4747		201360	000000			TYPE	< />
  4748	006000'	201440	044037'
  4749	006001'	260740	007655'
  4750	006002'	200454	000000			MOVE	T1,(T4)		;GET SWITCH NAME
  4751	006003'	260740	007600'			CALL	SIXTYP
  4752	006004'	344600	005776'			AOJA	T4,OPFL55
  4753
  4754	006005'	274600	006232'		OPFIL6:	SUB	T4,FIL.SW
  4755	006006'	554440	006232'			HLRZ	T1,FIL.SW
  4756	006007'	271454	000000			ADDI	T1,(T4)
  4757	006010'	335451	000000			SKIPGE	T1,(T1)
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 95-1
DDT11	MAC	18-May-81 17:27		GENERAL FILE ROUTINES

  4758		202440	040420'			JRST	[	MOVEM	T1,LASTSW
  4759		254000	005735'					JRST	OPFIL4 ]
  4760	006011'	254000	044040'
  4761	006012'	260751	000000			CALL	(T1)
  4762	006013'	300000	000000			NOP
  4763	006014'	254000	005735'			JRST	OPFIL4
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 96
DDT11	MAC	18-May-81 17:27		GENERAL FILE ROUTINES

  4764	006015'	400440	000000		OPFIL7:	SETZ	T1,
  4765	006016'	336500	006213'			SKIPN	T2,FILDEV	;DID USER TYPE A FILE NAME ?
  4766	006017'	254000	006071'			JRST	OPNFL5		;NO - PROBABLY A /PORT
  4767	006020'	201540	006233'			MOVEI	T3,IHD
  4768	006021'	602400	010000			TXNE	FLG,F.WRIT
  4769		006461'	000000			SKIPA	T3,[OHD,,0]
  4770	006022'	334540	044042'
  4771		050040	000011			SKIPA	T4,[OPEN 1,T1]	;READ ON CHNL 1
  4772	006023'	334600	044043'
  4773		050000	000011			MOVE	T4,[OPEN 0,T1]
  4774	006024'	200600	044044'
  4775	006025'	256000	000014			XCT	T4
  4776	006026'	254000	006110'			JRST	FILER0
  4777	006027'	261740	005364*			PUSH	P,.JBFF##
  4778	006030'	201500	006464'			MOVEI	T2,OBUFER
  4779		064040	000001			MOVE	T1,[INBUF 1,NUMBUF]
  4780	006031'	200440	044045'
  4781	006032'	602400	010000			TXNE	FLG,F.WRIT
  4782		065000	000001			SKIPA	T1,[OUTBUF 1]
  4783	006033'	334440	044046'
  4784	006034'	201500	006236'			MOVEI	T2,IBUFER
  4785	006035'	202500	006027*			MOVEM	T2,.JBFF##
  4786	006036'	256000	000011			XCT	T1
  4787	006037'	300000	000000			NOP
  4788	006040'	262740	006035*			POP	P,.JBFF##
  4789	006041'	332000	006217'			SKIPE	FILEXT		; USER TYPE ANY EXTENSION?
  4790	006042'	402000	006212'			SETZM	DEFEXT		; YES, CLEAR DEFAULTS THEN
  4791		076040	006214'		OPNFL2:	MOVE	T1,[LOOKUP 1,FILBLK]
  4792	006043'	200440	044047'
  4793	006044'	201500	000004			MOVEI	T2,LKELEN	; LENGTH OF EXTENDED LOOKUP/ENTER BLOCK
  4794	006045'	202500	006214'			MOVEM	T2,FILBLK	; SET IN LOOKUP/ENTER BLOCK
  4795	006046'	336000	006223'			SKIPN	FILPPN		; USER TYPE IN EXPLICIT PATH?
  4796	006047'	634500	000012			TDZA	T2,T2		; NO, USE DEFAULT PATH
  4797	006050'	201500	006221'			MOVEI	T2,FILPTH	; YES, USE IT AS TYPED
  4798	006051'	202500	006215'			MOVEM	T2,FILDIR	; SET PATH BLOCK IN LOOKUP/ENTER BLOCK
  4799	006052'	622400	020000			TXZE	FLG,F.APND	;IF APPENDING DO LOOKUP FIRST
  4800		621440	000740			JRST	[TLZ	T1,000740	;CLEAR CHNL SPEC
  4801		256000	000011				XCT	T1		;DO LOOKUP
  4802		254000	006043'				JRST	OPNFL2		;LOST BUT DON'T CARE
  4803		660400	020000				TXO	FLG,F.APND	;NEED TO DO USETI
  4804		030100	000017				LDB	T2,[POINTR 17,T1]  ;CHANNEL NUMBER
  4805		135500	044050'
  4806		202500	006221'				MOVEM	T2,FILPTH	;SET IN PATH BLOCK
  4807		000011	006221'				MOVE	T2,[PTHLEN,,FILPTH]  ;ARG POINTER TO
  4808		200500	044051'
  4809		047500	000110				PATH.	T2,		;READ FILE TRUE PATH
  4810		400500	000000				SETZ	T2,		;FAILED??
  4811		254000	006054'				JRST	.+1 ]
  4812	006053'	254000	044052'
  4813	006054'	602400	010000			TXNE	FLG,F.WRIT
  4814	006055'	505440	077000			HRLI	T1,(ENTER)
  4815	006056'	256000	000011			XCT	T1
  4816	006057'	304000	000000			CAIA			;LOOKUP OR ENTER LOST
  4817	006060'	254000	006071'			JRST	OPNFL5		;WE HAVE A FILE READY FOR I/O
  4818	006061'	602400	010000			TXNE	FLG,F.WRIT	;WRITING ?
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 96-1
DDT11	MAC	18-May-81 17:27		GENERAL FILE ROUTINES

  4819	006062'	254000	006110'			JRST	FILER0		;HE LOSES
  4820	006063'	336500	006212'			SKIPN	T2,DEFEXT	; ANY DEFAULTS LEFT?
  4821	006064'	254000	006110'			JRST	FILER0		;NO, ERROR
  4822	006065'	512500	006217'			HLLZM	T2,FILEXT	;YES, TRY NEXT DEFAULT
  4823	006066'	242500	000022			LSH	T2,^D18		;TOSS IT OUT
  4824	006067'	202500	006212'			MOVEM	T2,DEFEXT	;AND SAVE ANYTHING LEFT FOR NEXT TIME
  4825	006070'	254000	006043'			JRST	OPNFL2
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 97
DDT11	MAC	18-May-81 17:27		GENERAL FILE ROUTINES

  4826		030100	000017		OPNFL5:	LDB	T2,[POINTR 17,T1]  ;CHANNEL NUMBER
  4827	006071'	135500	044050'
  4828	006072'	202500	006221'			MOVEM	T2,FILPTH	;SET IN PATH. BLOCK
  4829		000011	006221'			MOVE	T2,[PTHLEN,,FILPTH]  ;ARG POINTER TO
  4830	006073'	200500	044051'
  4831	006074'	047500	000110			PATH.	T2,		;READ TRUE FILE PATH
  4832	006075'	255000	000000			JFCL			;???
  4833	006076'	602400	020000			TXNE	FLG,F.APND
  4834	006077'	074000	777777			USETI	-1		;IN CASE SUPERCEEDING
  4835		006213'	006667'			MOVE	T1,[FILDEV,,OFLDEV]	;BLT POINTER
  4836	006100'	200440	044064'
  4837	006101'	606400	010000			TXNN	FLG,F.WRIT	;ARE WE READING OR WRITING ?
  4838	006102'	541440	006441'			HRRI	T1,IFLDEV	;READING
  4839	006103'	201511	000017			MOVEI	T2,$FBLEN-1(T1)	; LAST WORD TO TRANSFER
  4840	006104'	251452	000000			BLT	T1,(T2)		;COPY FILE SPEC
  4841	006105'	332440	040420'			SKIPE	T1,LASTSW
  4842	006106'	254011	000000			JRST	(T1)
  4843	006107'	254000	005177'			RETSKP
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 98
DDT11	MAC	18-May-81 17:27		GENERAL FILE ROUTINES

  4844	006110'	602400	010000		FILER0:	TXNE	FLG,F.WRIT
  4845	006111'	402000	006461'			SETZM	OHD
  4846		375010	360734			TYPE	<? Can't LOOKUP/ENTER file >
  4847	006112'	201440	044065'
  4848	006113'	260740	007655'
  4849	006114'	602400	010000		FILERR:	TXNE	FLG,F.WRIT
  4850	006115'	402000	006461'			SETZM	OHD
  4851	006116'	201440	006213'			MOVEI	T1,FILDEV
  4852	006117'	260740	006124'			CALL	FILTYP
  4853	006120'	260740	007621'			CALL	CRLTYP
  4854	006121'	606400	010000			TXNN	FLG,F.WRIT
  4855	006122'	402000	006233'			SETZM	IHD
  4856	006123'	263740	000000			RET
  4857	006124'	504500	000011		FILTYP:	HRL	T2,T1		;BUILD BLT POINTER
  4858	006125'	541500	006213'			HRRI	T2,FILDEV
  4859	006126'	251500	006232'			BLT	T2,FILDEV+$FBLEN-1	; COPY FILE SPEC
  4860	006127'	200440	006213'			MOVE	T1,FILDEV	;GET DEVICE NAME
  4861	006130'	260740	007600'			CALL	SIXTYP
  4862	006131'	260740	007607'			CALL	COLTYP		;TYPE A COLON
  4863	006132'	200440	006216'			MOVE	T1,FILNAM	;GET FILE NAME
  4864	006133'	260740	007600'			CALL	SIXTYP
  4865	006134'	260740	007636'			CALL	PERTYP		;TYPE A "."
  4866	006135'	510440	006217'			HLLZ	T1,FILEXT	;GET EXTENSION
  4867	006136'	260740	007600'			CALL	SIXTYP
  4868	006137'	336000	006223'			SKIPN	FILPPN		; WAS THERE A PPN ?
  4869	006140'	254000	006162'			JRST	FILTY6
  4870	006141'	201440	000133			MOVEI	T1,"["
  4871	006142'	260740	007666'			CALL	TYPCHR
  4872	006143'	554440	006223'			HLRZ	T1,FILPPN
  4873	006144'	260740	007535'			CALL	OCTYPE
  4874	006145'	260740	007633'			CALL	COMTYP		;TYPE A COMMA
  4875	006146'	550440	006223'			HRRZ	T1,FILPPN	; GET RH OF PPN
  4876	006147'	405440	777777			ANDI	T1,-1
  4877	006150'	260740	007535'			CALL	OCTYPE
  4878	006151'	201540	006224'			MOVEI	T3,FILSFD	; START OF SFD'S
  4879	006152'	302540	006231'		FILTY4:	CAIE	T3,FILSFD+5	; TYPED ALL SFD LEVELS ?
  4880	006153'	336453	000000			SKIPN	T1,(T3)		;GET NEXT SFD NAME
  4881	006154'	254000	006160'			JRST	FILTY5
  4882	006155'	260740	007633'			CALL	COMTYP		;TYPE A COMMA
  4883	006156'	260740	007600'			CALL	SIXTYP
  4884	006157'	344540	006152'			AOJA	T3,FILTY4
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 99
DDT11	MAC	18-May-81 17:27		GENERAL FILE ROUTINES

  4885	006160'	201440	000135		FILTY5:	MOVEI	T1,"]"
  4886	006161'	260740	007666'			CALL	TYPCHR
  4887	006162'	260740	007630'		FILTY6:	CALL	BLANKT
  4888		141300	006220'			LDB	T1,[POINT 11,FILTIM,23]
  4889	006163'	135440	044073'
  4890	006164'	322440	006167'			JUMPE	T1,FILTY3
  4891	006165'	260740	010025'			CALL	TIMTY3
  4892	006166'	260740	007630'			CALL	BLANKT
  4893		170300	006217'		FILTY3:	LDB	T1,[POINT 3,FILEXT,20]	;HIGH ORDER CREATION DATE
  4894	006167'	135440	044074'
  4895		001400	006220'			LDB	T2,[POINT 12,FILTIM,35]	;LOWER ORDER CREATION DATE
  4896	006170'	135500	044075'
  4897	006171'	242500	000030			LSH	T2,^D24		;APPEND THE TWO TIMES INTO
  4898	006172'	246440	000014			LSHC	T1,^D12		;ONE 15-BIT CREATION DATE
  4899	006173'	260740	007746'			CALL	DATET0		;TYPE DATE
  4900	006174'	263740	000000			RET
  4901
  4902					;HERE TO CLOSE OUTPUT FILE
  4903	006175'	336000	006461'		DONE.W:	SKIPN	OHD
  4904	006176'	263740	000000			RET
  4905	006177'	057000	000000			OUT
  4906	006200'	070000	000000			CLOSE
  4907	006201'	071000	000000			RELEASE
  4908	006202'	402000	006461'			SETZM	OHD
  4909		433235	462500			TYPE	<File >
  4910	006203'	201440	044076'
  4911	006204'	260740	007655'
  4912	006205'	201440	006667'			MOVEI	T1,OFLDEV
  4913	006206'	260740	006124'			CALL	FILTYP
  4914						TYPE	< written
  4915					
  4916		203576	264750		>
  4917
  4918
  4919	006207'	201440	044100'
  4920	006210'	260740	007655'
  4921	006211'	263740	000000			RET
  4922
  4923	006212'				DEFEXT:	BLOCK	1		; DEFAULT EXTENSIONS
  4924
  4925	006213'	446353	000000		FILDEV:	SIXBIT	\DSK\
  4926	006214'				FILBLK:	BLOCK	1		; START OF LOOKUP/ENTER BLOCK
  4927	006215'				FILDIR:	BLOCK	1		; POINTER TO FILE DIRECTORY
  4928	006216'				FILNAM:	BLOCK	1
  4929	006217'				FILEXT:	BLOCK	1
  4930	006220'				FILTIM:	BLOCK	1		; FILE PROTECTION AND DATES
  4931			000004			LKELEN==.-FILBLK-1	; SIZE OF LOOKUP/ENTER BLOCK
  4932	006221'				FILPTH:	BLOCK	2		; PATH BLOCK HEADER
  4933	006223'				FILPPN:	BLOCK	1		; FILE PPN
  4934	006224'				FILSFD:	BLOCK	5		;  AND SUBSEQUENT SFD'S
  4935	006231'					BLOCK	1		; TERMINATING 0 WORD
  4936			000011			PTHLEN==.-FILPTH	; LENGTH OF PATH BLOCK
  4937	006232'				FIL.SW:	BLOCK	1
  4938			000020			$FBLEN==.-FILDEV	; LENGTH OF "FILE BLOCK"
  4939
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 99-1
DDT11	MAC	18-May-81 17:27		GENERAL FILE ROUTINES

  4940	006233'				IHD:	BLOCK	3		;HEADER FOR INPUT FILE
  4941	006236'				IBUFER:	BLOCK	<203*NUMBUF>
  4942	006441'				IFLDEV:	BLOCK	$FBLEN		; INPUT FILE SPEC
  4943
  4944	006461'				OHD:	BLOCK	3		;HEADER FOR OUTPUT FILE
  4945	006464'				OBUFER:	BLOCK	203
  4946	006667'				OFLDEV:	BLOCK	$FBLEN		; OUTPUT FILE SPEC
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 100
DDT11	MAC	18-May-81 17:27		GENERAL FILE ROUTINES

  4947					;HERE TO GET NEXT CHAR FROM A FILE
  4948					; CALL	CALL	FILCHR
  4949					;	ERROR RETURN
  4950					;	NORMAL RETURN WITH CHAR IN T1
  4951	006707'	260740	006714'		FILCHR:	CALL	FILBYT		;GET NEXT BYTE FROM FILE
  4952	006710'	263740	000000			RET			;LOST
  4953	006711'	322440	006707'			JUMPE	T1,FILCHR	;FLUSH NULLS
  4954	006712'	350017	000000			AOS	(P)
  4955	006713'	263740	000000			RET
  4956
  4957					;HERE TO GET THE NEXT BYTE FROM INPUT FILE
  4958	006714'	375440	006235'		FILBYT:	SOSGE	T1,IHD+2	;IS THERE MORE STUFF IN BUFFER ?
  4959	006715'	254000	006721'			JRST	FLCHR5		;NO
  4960	006716'	134440	006234'			ILDB	T1,IHD+1	;GET NEXT CHAR
  4961	006717'	350017	000000			AOS	(P)		;SKIP RETURN
  4962	006720'	263740	000000			RET
  4963
  4964	006721'	056040	000000		FLCHR5:	IN	1,		;GET NEXT BUFFER
  4965	006722'	254000	006714'			JRST	FILBYT		;TRY AGAIN
  4966	006723'	062040	000011			GETSTS	1,T1		;GET FILE STATUS
  4967	006724'	602440	740000			TXNE	T1,IO.IMP!IO.DER!IO.DTE!IO.BKT	;ANY ERRORS
  4968	006725'	260740	006730'			PUSHJ P,IFILER		;REPORT ERROR
  4969	006726'	071040	000000			RELEASE 1,		;GONE WITH CHANNEL
  4970	006727'	263740	000000			RET			;AND RETURN
  4971
  4972					IFILER:	TYPE	<
  4973		064247	742142		?D11ERF error reading file >
  4974	006730'	201440	044103'
  4975	006731'	260740	007655'
  4976	006732'	201440	006441'			MOVEI	T1,IFLDEV	;ADR OF NAME OF FILE
  4977	006733'	260740	006124'			CALL	FILTYP
  4978		203476	460750			TYPE	< status = >
  4979	006734'	201440	044111'
  4980	006735'	260740	007655'
  4981	006736'	062040	000011			GETSTS 1,T1		;GET BACK STATUS
  4982	006737'	260740	007535'			CALL	OCTYPE
  4983	006740'	254000	007621'			JRST	CRLTYP 
  4984
  4985					;HERE TO POSITION FILE FOR INPUT
  4986					; CALL	MOVE	T1,BYTE # IN FILE
  4987					;	CALL	FILPOS
  4988					;	RETURN
  4989	006741'	231440	001200		FILPOS:	IDIVI	T1,200*5	;FIND BLOCK TO READ
  4990	006742'	074051	000001			USETI	1,1(T1)
  4991	006743'	056040	000000			IN	1,		;GET NEXT BUFFER
  4992	006744'	304000	000000			CAIA
  4993	006745'	263740	000000			RET
  4994	006746'	361500	005177'		FILPS4:	SOJL	T2,RSKP
  4995	006747'	260740	006714'			CALL	FILBYT
  4996	006750'	263740	000000			RET
  4997	006751'	254000	006746'			JRST	FILPS4
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 101
DDT11	MAC	18-May-81 17:27		GENERAL FILE ROUTINES

  4998					;HERE TO INPUT AN OCTAL NUMBER
  4999					; CALL:	CALL	INPOCT
  5000					;	ERROR RETURN
  5001					;	RETURN WITH OCTAL NUMBER IN T1, BREAK CHAR IN T2
  5002	006752'	260740	004361'		INPOCT:	CALL	SAVE34
  5003	006753'	403540	000014			SETZB	T3,T4
  5004	006754'	260740	006707'		INPRD2:	CALL	FILCHR		;GET NEXT INPUT CHAR
  5005	006755'	254000	006775'			JRST	INPRD9		;NO MORE IN FILE
  5006	006756'	322440	006754'			JUMPE	T1,INPRD2
  5007	006757'	302440	000040			CAIE	T1," "		;LEADING SPACE ?
  5008	006760'	306440	000011			CAIN	T1,"	"		;OR TAB ?
  5009	006761'	254000	006754'			JRST	INPRD2		;YES
  5010	006762'	301440	000060		INPRD5:	CAIL	T1,"0"
  5011	006763'	303440	000067			CAILE	T1,"7"
  5012	006764'	254000	006772'			JRST	INPRD7
  5013	006765'	221540	000010			IMULI	T3,^D8
  5014	006766'	271551	777720			ADDI	T3,-60(T1)
  5015	006767'	260740	006707'			CALL	FILCHR
  5016	006770'	304000	000000			CAIA			;EOF
  5017	006771'	254000	006762'			JRST	INPRD5
  5018	006772'	200500	000011		INPRD7:	MOVE	T2,T1
  5019	006773'	200440	000013			MOVE	T1,T3
  5020	006774'	350017	000000			AOS	(P)		;SKIP RETURN
  5021	006775'	263740	000000		INPRD9:	RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 102
DDT11	MAC	18-May-81 17:27		GENERAL FILE ROUTINES

  5022					;HERE TO GET A SIXBIT WORD FROM TTY
  5023					; CALL:	CALL	SIXIN
  5024					;	LOSE RETURN
  5025					;	WIN RETURN WITH SIXBIT WORD IN T1 & BREAK CHAR IN T5
  5026	006776'	261740	000014		SIXIN:	PUSH	P,T4		;SAVE REG
  5027	006777'	260740	010574'		SIXIN0:	CALL	RDCHAR		;GET THE FIRST CHAR
  5028	007000'	302440	000040			CAIE	T1," "		;IS IT A BLANK
  5029	007001'	306440	000011			CAIN	T1,"	"		;OR A TAB ?
  5030	007002'	254000	006777'			JRST	SIXIN0		;YES SO SKIP IT
  5031		440600	000015			MOVE	T4,[POINT 6,T5]
  5032	007003'	200600	044114'
  5033	007004'	400640	000000			SETZ	T5,		;CLEAR ACCUMULATED SYMBOL
  5034	007005'	306440	000045			CAIN	T1,"%"
  5035	007006'	254000	007024'			JRST	SIXIN7
  5036	007007'	254000	007011'			JRST	SIXIN3
  5037	007010'	260740	010574'		SIXIN2:	CALL	RDCHAR		;GET A CHAR FROM TTY
  5038	007011'	306440	000177		SIXIN3:	CAIN	T1,177
  5039		743617	000000			JRST	[	TYPE	<xxx>
  5040		201440	044115'
  5041		260740	007655'
  5042		262740	000014					POP	P,T4
  5043		263740	000000					RET	]
  5044	007012'	254000	044116'
  5045	007013'	301440	000060			CAIL	T1,"0"
  5046	007014'	303440	000172			CAILE	T1,"Z"+40
  5047	007015'	254000	007031'			JRST	SIXIN9		;RETURN
  5048	007016'	303440	000071			CAILE	T1,"9"
  5049	007017'	301440	000141			CAIL	T1,"A"+40
  5050	007020'	254000	007024'			JRST	SIXIN7
  5051	007021'	301440	000101			CAIL	T1,"A"
  5052	007022'	303440	000132			CAILE	T1,"Z"
  5053	007023'	254000	007031'			JRST	SIXIN9		;RETURN
  5054	007024'	305440	000141		SIXIN7:	CAIGE	T1,40+"A"	;CHECK FOR LOWER CASE
  5055	007025'	275440	000040			SUBI	T1,40
  5056		000600	000015			CAME	T4,[POINT 6,T5,35]	;HAVE WE ALREADY FILLED WORD ?
  5057	007026'	312600	044122'
  5058	007027'	136440	000014			IDPB	T1,T4		;NOT YET
  5059	007030'	254000	007010'			JRST	SIXIN2
  5060	007031'	250440	000015		SIXIN9:	EXCH	T1,T5
  5061	007032'	262740	000014			POP	P,T4
  5062	007033'	254000	005177'			RETSKP
  5063
  5064					;HERE TO CONVERT SIXBIT TO OCTAL
  5065		440600	000011		SIXOCT:	MOVE	T4,[POINT 6,T1]
  5066	007034'	200600	044123'
  5067	007035'	400500	000000			SETZ	T2,
  5068	007036'	134540	000014		SIXOC1:	ILDB	T3,T4
  5069	007037'	322540	007047'			JUMPE	T3,SIXOC9
  5070	007040'	301540	000020			CAIL	T3,20
  5071	007041'	303540	000027			CAILE	T3,27
  5072	007042'	263740	000000			RET			;CAN'T CONVERT
  5073	007043'	221500	000010			IMULI	T2,^D8
  5074	007044'	271513	777760			ADDI	T2,-20(T3)
  5075		000600	000011			CAME	T4,[POINT 6,T1,35]	;DONE ALL OF WORD ?
  5076	007045'	312600	043015'
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 102-1
DDT11	MAC	18-May-81 17:27		GENERAL FILE ROUTINES

  5077	007046'	254000	007036'			JRST	SIXOC1
  5078	007047'	250440	000012		SIXOC9:	EXCH	T1,T2
  5079	007050'	254000	005177'			RETSKP
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 103
DDT11	MAC	18-May-81 17:27		GENERAL FILE ROUTINES

  5080					;HERE TO GET A DECIMAL ARGUMENT FROM THE TTY
  5081					; CALL	CALL	DECINP
  5082					;	LOSE RETURN
  5083					;	WIN RETURN	WITH # IN T1, BREAK CHAR IN T5
  5084	007051'	201440	000012		DECINP:	MOVEI	T1,^D10		;RADIX
  5085	007052'	260740	004341'		RADINP:	CALL	SAVE2		;SAVE SOME REGISTERS
  5086	007053'	400640	000000			SETZ	T5,		;BUILD NUMBER HERE
  5087	007054'	200500	000011			MOVE	T2,T1		;COPY RADIX
  5088	007055'	260740	010574'		RADIN0:	CALL	RDCHAR		;GET NEXT CHAR FROM THE TTY
  5089	007056'	302440	000040			CAIE	T1," "		;IS THIS A LEADING SPACE ?
  5090	007057'	306440	000011			CAIN	T1,"	"		;OR TAB ?
  5091	007060'	254000	007055'			JRST	RADIN0		;YES SO FLUSH IT
  5092	007061'	301440	000060			CAIL	T1,"0"		;IS FIRST CHARACTER NUMERIC ?
  5093	007062'	301452	000060			CAIL	T1,"0"(T2)
  5094	007063'	254000	007074'			JRST	RADIN9		;ERROR RETURN
  5095	007064'	350017	000000			AOS	(P)		;WIN
  5096	007065'	301440	000060		RADIN2:	CAIL	T1,"0"		;IS CHARACTER NUMERIC
  5097	007066'	301452	000060			CAIL	T1,"0"(T2)	;IS IT IN RANGE ?
  5098	007067'	254000	007074'			JRST	RADIN9		;ALL DONE
  5099	007070'	221652	000000			IMULI	T5,(T2)		;SHIFT CURRENT ACCUMULATION
  5100	007071'	271651	777720			ADDI	T5,-60(T1)	;ADD NEXT DIGIT
  5101	007072'	260740	010574'			CALL	RDCHAR		;GET NEXT CHAR FROM THE TTY
  5102	007073'	254000	007065'			JRST	RADIN2
  5103	007074'	250440	000015		RADIN9:	EXCH	T1,T5
  5104	007075'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 104
DDT11	MAC	18-May-81 17:27		TTY ROUTINES

  5105						SUBTTL	TTY ROUTINES
  5106
  5107					;HERE TO DISPLAY CONTENTS OF T1 AS AN ADDRESS
  5108	007076'	607440	400000		ADRTYP:	TLNN	T1,400000
  5109	007077'	661440	777777			TLO	T1,777777
  5110	007100'	607440	200000			TLNN	T1,200000
  5111	007101'	254000	007331'			JRST	DATIN9		;TYPE REGISTER NAME
  5112	007102'	405440	177777			ANDI	T1,177777	;SIXTEEN BITS ONLY PLEASE
  5113	007103'	562440	040542'			HRROM	T1,LSTADR	;SAVE LAST ADDRESS DISPLAYED
  5114	007104'	260740	005332'			CALL	VALFND		;SEE IF WE CAN FIND A SYMBOL
  5115	007105'	254000	007520'			JRST	RADTYP		;TYPE ADDR IN CURRENT RADIX
  5116	007106'	336005	000001			SKIPN	1(SYM)		;DON'T USE IF SYMBOL=0
  5117	007107'	254000	007520'			JRST	RADTYP
  5118	007110'	261740	000011			PUSH	P,T1		;SAVE VALUE
  5119	007111'	200445	000000			MOVE	T1,(SYM)	;GET SYMBOL NAME
  5120	007112'	260740	007600'			CALL	SIXTYP		;TYPE SYMBOL
  5121	007113'	262740	000011			POP	P,T1		;GET VALUE AGAIN
  5122	007114'	274445	000001			SUB	T1,1(SYM)	;GET DISPLACEMENT
  5123	007115'	405440	177777			ANDI	T1,177777	;STRIP EXTRA BITS
  5124	007116'	322440	005200'			JUMPE	T1,R		;IF EXACT WE ARE DONE
  5125	007117'	261740	000011			PUSH	P,T1		;SAVE REMAINDER
  5126	007120'	260740	007652'			CALL	PLUTYP		;TYPE A "+"
  5127	007121'	262740	000011			POP	P,T1
  5128	007122'	254000	007520'			JRST	RADTYP		;TYPE REST IN CURRENT RADIX
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 105
DDT11	MAC	18-May-81 17:27		DISPLAY ROUTINES

  5129						SUBTTL	DISPLAY ROUTINES
  5130
  5131					;HERE TO TYPE CONTENTS OF CURRENT LOCATION
  5132					; CALL	WITH DOT SETUP TO POINT TO STARTING POINT OF DISPLAY
  5133					;	WITH BYTCNT AND O.MODE SETUP TO INDICATE TYPE OF DISPLAY
  5134					;	WITH BYTCNT AND O.MODE SETUP TO INDICATE TYPE OF DISPLAY
  5135					;	CALL	DATYPE
  5136
  5137	007123'	550500	040534'		DATYPE:	HRRZ	T2,BYTCNT	;BYTE COUNT
  5138	007124'	550540	040535'			HRRZ	T3,O.MODE	;OUTPUT MODE
  5139	007125'	200440	000007			MOVE	T1,DOT
  5140	007126'	202440	040422'			MOVEM	T1,DOTFOO
  5141	007127'	332000	040432'			SKIPE	PDP8F
  5142	007130'	254000	007135'			JRST	DATYP1
  5143	007131'	607340	200000			TLNN	DOT,200000
  5144	007132'	254000	007145'			JRST	REGTYP		;WANT REGISTER DISPLAYED
  5145	007133'	307540	000002			CAIG	T3,2		;IS THIS A WORD MODE
  5146	007134'	240500	000001			ASH	T2,1		;YES SO BYTE=WORDS*2
  5147	007135'	260740	003354'		DATYP1:	CALL	GETWRD
  5148		260740	005061'			JRST	[CALL	CALER0		;DESCRIBE PROBLEM
  5149		263740	000000				RET	]		;THEN EXIT
  5150	007136'	254000	044124'
  5151	007137'	202440	040544'			MOVEM	T1,ESC.Q.	;IN CASE OF <ESCAPE>Q LATER
  5152	007140'	202440	040464'			MOVEM	T1,DATA
  5153	007141'	550640	040534'			HRRZ	T5,BYTCNT	;REPETITION COUNT
  5154	007142'	200440	040464'			MOVE	T1,DATA		;GET DATA TO TYPE
  5155	007143'	550500	040535'			HRRZ	T2,O.MODE	;GET OUTPUT MODE
  5156	007144'	254032	044126'			JRST	@[EXP	DATINS,DATADR,DATNUM,DATBYT,DATASC,DATEBC](T2)
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 106
DDT11	MAC	18-May-81 17:27		DISPLAY ROUTINES

  5157					;HERE TO TYPE THE CONTENTS OF A REGISTER
  5158
  5159	007145'	405440	177777		REGTYP:	ANDI	T1,177777	;STRIP EXTRA BITS
  5160	007146'	303440	000007			CAILE	T1,7		;SMALL ENOUGH ?
  5161	007147'	254000	007612'			JRST	QESTYP
  5162	007150'	200451	011200'			MOVE	T1,SIMREG(T1)	;GET REGISTER TO DISPLAY
  5163	007151'	202440	040544'			MOVEM	T1,ESC.Q.	;IN CASE OF $Q LATER
  5164	007152'	260773	044134'			CALL	@[EXP ADRTYP,ADRTYP,RADTYP,RGTBYT,RGTASC,RGTEBC](T3)
  5165	007153'	254000	007626'			JRST	B3.TYP		;END WITH A FEW SPACES
  5166
  5167					;HERE TO TYPE CONTENTS OF REGISTER AS BYTES
  5168	007154'	201500	007520'		RGTBYT:	MOVEI	T2,RADTYP	;ROUTINE TO DISPLAY BYTES (NUMERIC)
  5169	007155'	254000	007161'			JRST	RGTYPX
  5170
  5171					;HERE TO TYPE CONTENTS OF REGISTER AS ASCII
  5172	007156'	201500	007445'		RGTASC:	MOVEI	T2,DATAS3	;ROUTINE TO DISPLAY ASCII BYTES
  5173	007157'	254000	007161'			JRST	RGTYPX
  5174
  5175					;HERE TO TYPE CONTENTS OF REGISTER AS EBCDIC
  5176	007160'	201500	007473'		RGTEBC:	MOVEI	T2,DATEB3	;ROUTINE TO DISPLAY EBCDIC BYTES
  5177
  5178	007161'	261740	000011		RGTYPX:	PUSH	P,T1		;SAVE DATA
  5179	007162'	405440	000377			ANDI	T1,377		;FIRST BYTE IS RH
  5180	007163'	261740	000012			PUSH	P,T2		;SAVE ADR OF DISPLAY ROUTINE
  5181	007164'	260752	000000			CALL	(T2)		;DISPLAY THE FIRST BYTE
  5182	007165'	262740	000012			POP	P,T2		;GET ADR OF DISPLAY ROUTINE BACK
  5183	007166'	306500	007520'			CAIN	T2,RADTYP	;WAS THIS BYTES ?
  5184	007167'	260740	007633'			CALL	COMTYP		;YES SO WANT A COMMA IN BETWEEN
  5185	007170'	262740	000011			POP	P,T1		;GET DATA BACK
  5186		101000	000011			LDB	T1,[POINT 8,T1,27]	;WANT LH BYTE NOW
  5187	007171'	135440	043063'
  5188	007172'	254012	000000			JRST	(T2)		;DISPLAY LAST BYTE
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 107
DDT11	MAC	18-May-81 17:27		DISPLAY ROUTINES

  5189					;HERE TO TYPE CONTENTS OF CURRENT LOCATION AS A NUMERIC
  5190	007173'	562440	040542'		DATNUM:	HRROM	T1,LSTADR	;IN CASE TYPES A TAB LATER
  5191	007174'	260740	007520'			CALL	RADTYP		;TYPE AS NUMERIC
  5192	007175'	363640	007626'			SOJLE	T5,B3.TYP
  5193	007176'	260740	007630'			CALL	BLANKT
  5194	007177'	260740	007201'			CALL	NXTDWD		;GET NEXT DATA WORD
  5195	007200'	254000	007173'			JRST	DATNUM
  5196
  5197	007201'	260740	007205'		NXTDWD:	CALL	NXTWRD		;GET NEXT WORD
  5198	007202'	254000	007626'			JRST	B3.TYP		;CAN'T READ NEXT WORD !
  5199	007203'	202440	040464'			MOVEM	T1,DATA
  5200	007204'	263740	000000			RET
  5201
  5202					;HERE TO GET THE NEXT WORD FOR TYPEOUT
  5203	007205'	260740	001660'		NXTWRD:	CALL	NDTFOO		;GET NEXT DOT FOO
  5204	007206'	200440	040422'			MOVE	T1,DOTFOO
  5205	007207'	201500	000002			MOVEI	T2,2		;WANT 2 BYTES
  5206	007210'	332000	040432'			SKIPE	PDP8F
  5207	007211'	201500	000001			MOVEI	T2,1
  5208	007212'	260740	003354'			CALL	GETWRD		;FIND WHAT NEXT WORD IS
  5209	007213'	263740	000000			RET			;LOST
  5210	007214'	202440	040544'			MOVEM	T1,ESC.Q.	;IN CASE OF <ESCAPE>Q LATER
  5211	007215'	254000	005177'			RETSKP
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 108
DDT11	MAC	18-May-81 17:27		DISPLAY ROUTINES

  5212					;HERE TO TYPE DATA AS AN ADDRESS
  5213	007216'	260740	007076'		DATADR:	CALL	ADRTYP
  5214	007217'	363640	007626'			SOJLE	T5,B3.TYP	;HAVE WE DONE ENOUGH ?
  5215	007220'	260740	007630'			CALL	BLANKT		;TYPE A SPACE TO SEPERATE FIELDS
  5216	007221'	260740	007201'			CALL	NXTDWD		;GET NEXT DATA WORD
  5217	007222'	254000	007216'			JRST	DATADR		;AND TYPE NEXT WORD
  5218
  5219
  5220					;HERE TO TYPE DATA AS INSTRUCTIONS
  5221	007223'				DATINS:
  5222	007223'	332000	040432'			SKIPE	PDP8F
  5223	007224'	254000	007341'			JRST	TYP8IN		;TYPE PDP8 INSTRUCTION
  5224	007225'	260740	005201'			CALL	INVLFN		;SEE IF WE CAN FIND AN INSTRUCTION TO MATCH
  5225	007226'	254000	007173'			JRST	DATNUM
  5226	007227'	200445	000000			MOVE	T1,(SYM)	;GET INSTRUCTION NAME
  5227	007230'	260740	007600'			CALL	SIXTYP
  5228	007231'	200645	000002			MOVE	T5,2(SYM)	;GET FLAGS AGAIN
  5229	007232'	260740	007630'			CALL	BLANKT		;TYPE A BLANK
  5230	007233'	603640	000010			TLNE	T5,SMF.EI	;EIS TYPE INSTRUCTION ?
  5231		000600	040464'			JRST	[LDB	T4,[POINT 6,DATA,35]	;GET SOURCE CODE
  5232		135600	043327'
  5233		260740	007275'				CALL	DATIN8		;DISPLAY IT
  5234		260740	007633'				CALL	COMTYP
  5235		060300	040464'				LDB	T1,[POINT 3,DATA,29]	;GET REGISTER
  5236		135440	044142'
  5237		260740	007331'				CALL	DATIN9		;TYPE REG NAME
  5238		254000	007626'				JRST	B3.TYP]
  5239	007234'	254000	044143'
  5240	007235'	603640	020000			TLNE	T5,SMF.PL	;SPL TYPE INSTRUCTION ?
  5241		000300	040464'			JRST	[LDB	T1,[POINT 3,DATA,35]	;GET ARGUMENT
  5242		135440	044151'
  5243		260740	007535'				CALL	OCTYPE
  5244		254000	007626'				JRST	B3.TYP]
  5245	007236'	254000	044152'
  5246	007237'	603640	010000			TLNE	T5,SMF.MK	;MARK TYPE ARGUMENTS ?
  5247		000600	040464'			JRST	[LDB	T1,[POINT 6,DATA,35]	;GET ARGUMENT
  5248		135440	043327'
  5249		260740	007520'				CALL	RADTYP		;TYPE ARGUMENT AS NUMBER
  5250		254000	007626'				JRST	B3.TYP]
  5251	007240'	254000	044155'
  5252	007241'	603640	002000			TLNE	T5,SMF.EM	;EMT TYPE ARGUMENTS ?
  5253		001000	040464'			JRST	[LDB	T1,[POINT 8,DATA,35]	;GET ARGUMENT
  5254		135440	044160'
  5255		562440	040542'				HRROM	T1,LSTADR	;IN CASE OF TAB
  5256		260740	007520'				CALL	RADTYP		;TYPE ARGUMENT AS NUMBER
  5257		254000	007626'				JRST	B3.TYP]
  5258	007242'	254000	044161'
  5259	007243'	603640	000400			TLNE	T5,SMF.RT	;RTS TYPE ?
  5260		000300	040464'			JRST	[LDB	T1,[POINT 3,DATA,35]	;GET REG ADR
  5261		135440	044151'
  5262		260740	007331'				CALL	DATIN9		;TYPE REG NAME
  5263		254000	007626'				JRST	B3.TYP]
  5264	007244'	254000	044165'
  5265	007245'	603640	001000			TLNE	T5,SMF.JS	;JSR TYPE ?
  5266		060300	040464'			JRST	[LDB	T1,[POINT 3,DATA,29]
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 108-1
DDT11	MAC	18-May-81 17:27		DISPLAY ROUTINES

  5267		135440	044142'
  5268		260740	007331'				CALL	DATIN9		;TYPE REG NAME
  5269		260740	007633'				CALL	COMTYP
  5270		254000	007247'				JRST	.+1]
  5271	007246'	254000	044170'
  5272	007247'	603640	000200			TLNE	T5,SMF.SB	;SOB TYPE ?
  5273		060300	040464'			JRST	[LDB	T1,[POINT 3,DATA,29]	;GET REGISTER
  5274		135440	044142'
  5275		260740	007331'				CALL	DATIN9		;TYPE REG NAME
  5276		260740	007633'				CALL	COMTYP
  5277		000600	040464'				LDB	T1,[POINT 6,DATA,35]	;GET OFFSET
  5278		135440	043327'
  5279		221440	777776				IMULI	T1,-2
  5280		271447	000002				ADDI	T1,2(DOT)
  5281		405440	177777				ANDI	T1,177777
  5282		260740	007076'				CALL	ADRTYP
  5283		254000	007626'				JRST	B3.TYP]
  5284	007250'	254000	044174'
  5285	007251'	607640	000040			TLNN	T5,SMF.SS	;12BIT SSDD FORMAT ?
  5286	007252'	254000	007256'			JRST	DATIN2		;NO
  5287		060600	040464'			LDB	T4,[POINT 6,DATA,29]	;GET SS CODE
  5288	007253'	135600	043321'
  5289	007254'	260740	007275'			CALL	DATIN8
  5290	007255'	260740	007633'			CALL	COMTYP
  5291	007256'	607640	000060		DATIN2:	TLNN	T5,SMF.SS!SMF.DD	;IS THERE A 6 BIT DESTINATION CODE ?
  5292	007257'	254000	007262'			JRST	DATIN4		;NO
  5293		000600	040464'			LDB	T4,[POINT 6,DATA,35]	;GET DD CODE
  5294	007260'	135600	043327'
  5295	007261'	260740	007275'			CALL	DATIN8
  5296	007262'	607640	000100		DATIN4:	TLNN	T5,SMF.BR	;IS THIS BR TYPE ADDRESSING ?
  5297	007263'	254000	007626'			JRST	B3.TYP		;NO
  5298		001000	040464'			LDB	T1,[POINT 8,DATA,35]	;GET OFFSET
  5299	007264'	135440	044160'
  5300	007265'	602440	000200			TRNE	T1,200		;CHECK FOR NEGATIVE OFFSET
  5301	007266'	435440	177400			IORI	T1,177400
  5302	007267'	350000	000011			AOS	T1
  5303	007270'	242440	000001			LSH	T1,1		;MAKE WORD ADDRESS
  5304	007271'	270440	000007			ADD	T1,DOT
  5305	007272'	405440	177777			ANDI	T1,177777	;16 BITS ONLY
  5306	007273'	260740	007076'			CALL	ADRTYP		;TYPE ADDRESS
  5307	007274'	254000	007626'			JRST	B3.TYP
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 109
DDT11	MAC	18-May-81 17:27		DISPLAY ROUTINES

  5308	007275'	306600	000027		DATIN8:	CAIN	T4,27		;CHECK FOR IMMEDIATE MODE
  5309		260740	007644'			JRST	[CALL	HSHTYP		;TYPE A #
  5310		260740	007205'				CALL	NXTWRD		;GET NEXT WORD
  5311		263740	000000				RET
  5312		254000	007076'				JRST	ADRTYP]
  5313	007276'	254000	044205'
  5314	007277'	306600	000037			CAIN	T4,37		;CHECK FOR ABSOLUTE MODE
  5315		260740	007205'			JRST	[CALL	NXTWRD		;GET NEXT WORD
  5316		263740	000000				RET
  5317		254000	007076'				JRST	ADRTYP]
  5318	007300'	254000	044206'
  5319	007301'	602600	000010			TRNE	T4,10		;CHECK FOR DEFERRED MODE
  5320		201440	000100			CALL	[MOVEI	T1,"@"
  5321		324740	007666'				PJRST	TYPCHR]
  5322	007302'	260740	044211'
  5323	007303'	302600	000077			CAIE	T4,77		;CHECK FOR RELATIVE DEFERRED MODE
  5324	007304'	306600	000067			CAIN	T4,67		;CHECK FOR RELATIVE MODE
  5325		260740	007205'			JRST	[CALL	NXTWRD		;GET NEXT WORD
  5326		263740	000000				RET
  5327		270440	040422'				ADD	T1,DOTFOO	;MAKE RELATIVE
  5328		271440	000002				ADDI	T1,2
  5329		254000	007076'				JRST	ADRTYP]
  5330	007305'	254000	044213'
  5331		030300	000014			LDB	T1,[POINT 3,T4,32]	;GET MODE
  5332	007306'	135440	044220'
  5333	007307'	302440	000004			CAIE	T1,4
  5334	007310'	306440	000005			CAIN	T1,5
  5335	007311'	260740	007647'			CALL	MINTYP
  5336	007312'	301440	000006			CAIL	T1,6		;CHECK FOR INDEX OR INDEX DEFERRED
  5337		260740	007205'			JRST	[CALL	NXTWRD		;GET NEXT WORD
  5338		263740	000000				RET
  5339		260740	007076'				CALL	ADRTYP
  5340		254000	007315'				JRST	DATIN1]
  5341	007313'	254000	044221'
  5342	007314'	602440	000006			TRNE	T1,6
  5343		201440	000050		DATIN1:	CALL	[MOVEI	T1,"("
  5344		324740	007666'				PJRST	TYPCHR]
  5345	007315'	260740	044225'
  5346		000300	000014			LDB	T1,[POINT 3,T4,35]	;GET REGISTER VALUE
  5347	007316'	135440	044227'
  5348	007317'	260740	007331'			CALL	DATIN9		;TYPE REGISTER NAME
  5349	007320'	606600	000060			TRNN	T4,60
  5350	007321'	263740	000000			RET			;PLAIN REGISTER MODE
  5351	007322'	201440	000051			MOVEI	T1,")"
  5352	007323'	260740	007666'			CALL	TYPCHR
  5353		030300	000014			LDB	T1,[POINT 3,T4,32]
  5354	007324'	135440	044220'
  5355	007325'	302440	000002			CAIE	T1,2
  5356	007326'	306440	000003			CAIN	T1,3
  5357	007327'	260740	007652'			CALL	PLUTYP
  5358	007330'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 110
DDT11	MAC	18-May-81 17:27		DISPLAY ROUTINES

  5359	007331'	405440	000007		DATIN9:	ANDI	T1,7		;STRIP EXTRA BITS
  5360	007332'	505440	400000			HRLI	T1,400000	;FLAG IS A REGISTER
  5361	007333'	202440	040542'			MOVEM	T1,LSTADR	;IN CASE DOES A TAB
  5362	007334'	553000	000011			HRRZS	T1
  5363	007335'	260740	005216'			CALL	RGFNDN		;FIND REGISTERS NAME
  5364		260740	007641'			JRST	[CALL	PCNTYP		;TYPE A %
  5365		260740	007535'				CALL	OCTYPE
  5366		263740	000000				RET]
  5367	007336'	254000	044230'
  5368	007337'	200445	000000			MOVE	T1,(SYM)	;GET REGISTERS NAME
  5369	007340'	254000	007600'			JRST	SIXTYP
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 111
DDT11	MAC	18-May-81 17:27		DISPLAY ROUTINES

  5370					;HERE TO TYPE A PDP8 INSTRUCTION
  5371		110300	040464'		TYP8IN:	LDB	T1,[POINT 3,DATA,26]	;PICK UP OP CODE
  5372	007341'	135440	044233'
  5373	007342'	306440	000007			CAIN	T1,7		;IS THIS AN OPERATE INSTRUCTION ?
  5374	007343'	254000	007405'			JRST	OPRTYP		;YES SO SPECIAL HANDLING
  5375		415644	000000			MOVE	T1,[SIXBIT \AND\
  5376		644144	000000				SIXBIT	\TAD\
  5377		516372	000000				SIXBIT	\ISZ\
  5378		444341	000000				SIXBIT	\DCA\
  5379		525563	000000				SIXBIT	\JMS\
  5380		525560	000000				SIXBIT	\JMP\
  5381	007344'	200451	044234'				SIXBIT	\IOT\](T1)
  5382	007345'	260740	007600'			CALL	SIXTYP
  5383	007346'	260740	007630'			CALL	BLANKT
  5384		110300	040464'			LDB	T1,[POINT 3,DATA,26]	;GET OP CODE AGAIN
  5385	007347'	135440	044233'
  5386	007350'	301440	000006			CAIL	T1,6
  5387		001100	040464'			JRST	[LDB	T1,[POINT 9,DATA,35]
  5388		135440	044243'
  5389		260740	007520'				CALL	RADTYP
  5390		254000	007626'				JRST	B3.TYP]
  5391	007351'	254000	044244'
  5392	007352'	200500	040464'			MOVE	T2,DATA		;GET INSTRUCTION
  5393		400000	000000			MOVEI	T1,[BYTE (7)"@",0]
  5394	007353'	201440	042221'
  5395	007354'	602500	000400			TRNE	T2,400		;IS INDIRECT BIT ON ?
  5396	007355'	260740	007655'			CALL	TYPSTR
  5397	007356'	200500	000007			MOVE	T2,DOT
  5398	007357'	405500	007600			ANDI	T2,7600
  5399		001000	040464'			LDB	T1,[POINT 8,DATA,35]
  5400	007360'	135440	044160'
  5401	007361'	622440	000200			TRZE	T1,200
  5402	007362'	271452	000000			ADDI	T1,(T2)
  5403	007363'	261740	000011			PUSH	P,T1		;SAVE ADR
  5404	007364'	260740	007076'			CALL	ADRTYP		;TYPE ADR
  5405	007365'	262740	000011			POP	P,T1		;GET ADR BACK
  5406	007366'	200500	040464'			MOVE	T2,DATA		;GET DATA AGAIN
  5407	007367'	606500	000400			TRNN	T2,400		;WAS THIS AN INDIRECT CASE ?
  5408	007370'	254000	007626'			JRST	B3.TYP		;NOT INDIRECT SO DONE
  5409		110300	000012			LDB	T2,[POINT 3,T2,26]	;GET OP CODE
  5410	007371'	135500	044247'
  5411	007372'	306500	000006			CAIN	T2,6		;IOTS DON'T USE ADDRESSES
  5412	007373'	254000	007626'			JRST	B3.TYP
  5413	007374'	261740	000011			PUSH	P,T1		;SAVE ADR AGAIN
  5414	007375'	201440	000134			MOVEI	T1,"\"
  5415	007376'	260740	007666'			CALL	TYPCHR
  5416	007377'	262740	000011			POP	P,T1		;GET ADR AGAIN
  5417	007400'	201500	000001			MOVEI	T2,1		;ONLY NEED ONE WORD
  5418	007401'	260740	003354'			CALL	GETWRD		;GET THAT WORD
  5419		260740	005061'			JRST	[CALL	CALER0
  5420		254000	000444'				JRST	LEVEL0 ]
  5421	007402'	254000	044250'
  5422	007403'	260740	007076'			CALL	ADRTYP
  5423	007404'	254000	007626'			JRST	B3.TYP
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 112
DDT11	MAC	18-May-81 17:27		DISPLAY ROUTINES

  5424					;HERE TO TYPE AN OPERATE INSTRUCTION
  5425	007405'	400640	000000		OPRTYP:	SETZ	T5,		;ACCUMULATE BITS MATCHED HERE
  5426	007406'	336240	041115'			SKIPN	SYM,SYMBEG	;GET STARTING ADDR FOR SYMBOL TABLE
  5427	007407'	047000	000012			EXIT			;OH GOOD GRIEF !!
  5428	007410'	200445	000002		OPRTY1:	MOVE	T1,2(SYM)	;GET FLAGS FOR SYMBOL & MASK
  5429	007411'	603440	040000			TLNE	T1,SMF.P8	;IS THIS A PDP8 SYMBOL ?
  5430	007412'	607440	000004			TLNN	T1,SMF.IN	;AND IS THIS AN INSTRUCTION ?
  5431	007413'	254000	007424'			JRST	OPRTY5		;REJECT THIS SYMBOL
  5432	007414'	404440	040464'			AND	T1,DATA		;GET VALUE UNDER MASK
  5433	007415'	312445	000001			CAME	T1,1(SYM)	;HIT RIGHT ONE ?
  5434	007416'	254000	007424'			JRST	OPRTY5		;NO
  5435	007417'	332000	000015			SKIPE	T5		;FOUND ANY OTHERS YET ?
  5436	007420'	260740	007630'			CALL	BLANKT		;YES SO TYPE A SPACE
  5437	007421'	200445	000000			MOVE	T1,(SYM)	;GET SYMBOL NAME
  5438	007422'	260740	007600'			CALL	SIXTYP		;TYPE SYMBOL
  5439	007423'	434645	000001			IOR	T5,1(SYM)	;REMBER BITS WE EXPLAINED
  5440	007424'	201245	000004		OPRTY5:	MOVEI	SYM,4(SYM)	;POINT TO NEXT SYMBOL BLOCK
  5441	007425'	312240	041116'			CAME	SYM,SYMEND	;HIT END OF TABLE ?
  5442	007426'	254000	007410'			JRST	OPRTY1		;LOOP BACK FOR REST
  5443	007427'	405640	007777			ANDI	T5,7777		;STRIP EXTRA BITS
  5444	007430'	312640	040464'			CAME	T5,DATA		;DID WE MATCH ALL BITS ?
  5445	007431'	260740	007612'			CALL	QESTYP		;NO SO ADD QUESTION MARK
  5446	007432'	254000	007626'			JRST	B3.TYP		;CLEAN UP
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 113
DDT11	MAC	18-May-81 17:27		DISPLAY ROUTINES

  5447					;HERE TO TYPE DATA AS ASCII TEXT
  5448	007433'	332000	040432'		DATASC:	SKIPE	PDP8F		;WAS THIS A PDP8 WORD ?
  5449	007434'	254000	007441'			JRST	DATAS2		;YES SO ONLY ONE CHAR/WORD
  5450	007435'	405440	000377			ANDI	T1,377		;ONLY 8 BITS PLEASE
  5451	007436'	260740	007445'			CALL	DATAS3
  5452	007437'	363640	007626'			SOJLE	T5,B3.TYP
  5453		101000	040464'			LDB	T1,[POINT 8,DATA,27]
  5454	007440'	135440	044252'
  5455	007441'	260740	007445'		DATAS2:	CALL	DATAS3
  5456	007442'	363640	007626'			SOJLE	T5,B3.TYP
  5457	007443'	260740	007201'			CALL	NXTDWD		;GET NEXT DATA WORD
  5458	007444'	254000	007433'			JRST	DATASC
  5459
  5460					;HERE TO TYPE CONTENTS OF T1 AS AN ASCII CHAR IF PRINTABLE, ELSE TYPE <#>
  5461	007445'	202440	000013		DATAS3:	MOVEM	T1,T3		;SAVE IN CASE NOT ASCII
  5462	007446'	405440	000177			ANDI	T1,177		;STRIP PARITY BIT
  5463	007447'	301440	000040			CAIL	T1,40
  5464	007450'	303440	000176			CAILE	T1,176
  5465	007451'	304000	000000			CAIA			;SPECIAL HANDLING
  5466	007452'	254000	007666'			JRST	TYPCHR		;JUST TYPE CHARACTER
  5467	007453'	261740	000013			PUSH	P,T3		;SAVE WEIRD CHARACTER
  5468	007454'	201440	000074			MOVEI	T1,"<"
  5469	007455'	260740	007666'			CALL	TYPCHR
  5470	007456'	262740	000011			POP	P,T1		;GET CHAR
  5471	007457'	260740	007520'			CALL	RADTYP
  5472	007460'	201440	000076			MOVEI	T1,">"
  5473	007461'	324740	007666'			PJRST	TYPCHR
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 114
DDT11	MAC	18-May-81 17:27		DISPLAY ROUTINES

  5474					;HERE TO TYPE DATA AS EBCDIC TEXT
  5475
  5476	007462'	332000	040432'		DATEBC:	SKIPE	PDP8F		;IS THIS PDP8 STUFF ?
  5477	007463'	254000	007467'			JRST	DATEB2		;YES SO ONLY ONE CHAR/WORD
  5478	007464'	260740	007473'			CALL	DATEB3
  5479	007465'	363640	007626'			SOJLE	T5,B3.TYP
  5480		101000	040464'			LDB	T1,[POINT 8,DATA,27]
  5481	007466'	135440	044252'
  5482	007467'	260740	007473'		DATEB2:	CALL	DATEB3
  5483	007470'	363640	007626'			SOJLE	T5,B3.TYP
  5484	007471'	260740	007201'			CALL	NXTDWD		;GET NEXT DATA WORD
  5485	007472'	254000	007462'			JRST	DATEBC
  5486	007473'	405440	000377		DATEB3:	ANDI	T1,377
  5487	007474'	400500	000000			SETZ	T2,
  5488	007475'	246440	777776			LSHC	T1,-2
  5489	007476'	241500	000002			ROT	T2,2
  5490		341011	040020'			LDB T1,[POINT	8,EB.TRN(T1),7
  5491		241011	040020'				POINT	8,EB.TRN(T1),15
  5492		141011	040020'				POINT	8,EB.TRN(T1),23
  5493	007477'	135452	044253'				POINT	8,EB.TRN(T1),31 ](T2)
  5494	007500'	324740	007445'			PJRST	DATAS3
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 115
DDT11	MAC	18-May-81 17:27		DISPLAY ROUTINES

  5495					;HERE TO TYPE DATA AS BYTES
  5496
  5497	007501'	405440	000377		DATBYT:	ANDI	T1,377
  5498	007502'	332000	040432'			SKIPE	PDP8F
  5499	007503'	405440	000077			ANDI	T1,77		;SIX BIT BYTES FOR PDP8
  5500	007504'	260740	007520'			CALL	RADTYP
  5501	007505'	363640	007626'			SOJLE	T5,B3.TYP
  5502	007506'	260740	007633'			CALL	COMTYP		;TYPE A COMMA
  5503		101000	040464'			LDB	T1,[POINT 8,DATA,27]
  5504	007507'	135440	044252'
  5505	007510'	332000	040432'			SKIPE	PDP8F
  5506		060600	040464'			LDB	T1,[POINT 6,DATA,29]
  5507	007511'	135440	043321'
  5508	007512'	260740	007520'			CALL	RADTYP		;TYPE IN CURRENT RADIX
  5509	007513'	363640	007626'			SOJLE	T5,B3.TYP
  5510	007514'	260740	007633'			CALL	COMTYP		;TYPE A COMMA
  5511	007515'	260740	007201'			CALL	NXTDWD		;GET NEXT DATA WORD
  5512	007516'	254000	007501'			JRST	DATBYT
  5513	007517'	324740	007626'			PJRST	B3.TYP		;TYPE 3 SPACES
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 116
DDT11	MAC	18-May-81 17:27		DISPLAY ROUTINES

  5514					; TO TYPE A NUMBER IN THE CURRENT RADIX
  5515					; CALL	MOVE	T1,<NUM TO TYPE>
  5516					;	CALL	RADTYP	;CLOBBERS T1
  5517					;	RETURN		;OTHER REGS PRESERVED
  5518	007520'	260740	004347'		RADTYP:	CALL	SAVE24
  5519	007521'	550540	040536'			HRRZ	T3,ORADIX
  5520	007522'	260740	007537'			CALL	RADTY2
  5521	007523'	306540	000012			CAIN	T3,^D10
  5522	007524'	260740	007636'			CALL	PERTYP		;TYPE A "."
  5523	007525'	263740	000000			RET
  5524
  5525					;HERE TO TYPE DECIMAL NUMBER
  5526					; CALL	MOVE	T1,<NUM TO TYPE>
  5527					;	CALL	DECTYP	;CLOBBERS T1
  5528					;	RETURN		;OTHER REGS PRESERVED
  5529	007526'	260740	004347'		DECTYP:	CALL	SAVE24
  5530	007527'	201540	000012			MOVEI	T3,^D10
  5531	007530'	254000	007537'			JRST	RADTY2
  5532
  5533					;HERE TO TYPE AN OCTAL NUMBER AS SIX DIGITS
  5534					; CALL	MOVE	T1,<NUM TO TYPE>
  5535					;	CALL	OCTYPE	;CLOBBERS T1
  5536					;	RETURN		;OTHER REGS PRESERVED
  5537	007531'	260740	004347'		OCTYP6:	CALL	SAVE24
  5538	007532'	201540	000010			MOVEI	T3,^D8
  5539	007533'	201600	000006			MOVEI	T4,6
  5540	007534'	254000	007540'			JRST	RADTY3
  5541
  5542					;HERE TO TYPE AN OCTAL NUMBER
  5543					; CALL	MOVE	T1,<NUM TO TYPE>
  5544					;	CALL	OCTYPE	;CLOBBERS T1
  5545					;	RETURN		;OTHER REGS PRESERVED
  5546	007535'	260740	004347'		OCTYPE:	CALL	SAVE24
  5547	007536'	201540	000010			MOVEI	T3,^D8
  5548						;JRST	RADTY2
  5549
  5550	007537'	400600	000000		RADTY2:	SETZ	T4,
  5551	007540'	325440	007543'		RADTY3:	JUMPGE	T1,RADTY5
  5552	007541'	217000	000011			MOVMS	T1
  5553	007542'	260740	007647'			CALL	MINTYP
  5554
  5555	007543'	231453	000000		RADTY5:	IDIVI	T1,(T3)
  5556	007544'	506517	000000			HRLM	T2,(P)
  5557	007545'	377000	000014			SOSG	T4
  5558	007546'	332000	000011			SKIPE	T1
  5559	007547'	260740	007543'			CALL	RADTY5
  5560	007550'	574457	000000		RADTY7:	HLRE	T1,(P)
  5561	007551'	271440	000060			ADDI	T1,"0"
  5562	007552'	303440	000071			CAILE	T1,"9"
  5563	007553'	271440	000007			ADDI	T1,7		;DOING HEX
  5564	007554'	324740	007666'			PJRST	TYPCHR
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 117
DDT11	MAC	18-May-81 17:27		DISPLAY ROUTINES

  5565					;HERE TO TYPE A DECIMAL NUMBER WITH COMMAS
  5566	007555'	260740	004347'		PDECTY:	CALL	SAVE24
  5567	007556'	201540	000012			MOVEI	T3,^D10
  5568	007557'	325440	007562'			JUMPGE	T1,PRADT5
  5569	007560'	217000	000011			MOVMS	T1
  5570	007561'	260740	007647'			CALL	MINTYP
  5571	007562'	231453	000000		PRADT5:	IDIVI	T1,(T3)
  5572	007563'	506517	000000			HRLM	T2,(P)
  5573	007564'	322440	007550'			JUMPE	T1,RADTY7
  5574		000000	007550'			PUSH	P,[EXP RADTY7]
  5575	007565'	261740	044257'
  5576	007566'	231453	000000			IDIVI	T1,(T3)
  5577	007567'	506517	000000			HRLM	T2,(P)
  5578	007570'	322440	007550'			JUMPE	T1,RADTY7
  5579		000000	007550'			PUSH	P,[EXP RADTY7]
  5580	007571'	261740	044257'
  5581	007572'	231453	000000			IDIVI	T1,(T3)
  5582	007573'	506517	000000			HRLM	T2,(P)
  5583	007574'	322440	007550'			JUMPE	T1,RADTY7
  5584		777774	007550'			PUSH	P,[54-60,,RADTY7]
  5585	007575'	261740	044260'
  5586		000000	007550'			PUSH	P,[EXP RADTY7]
  5587	007576'	261740	044257'
  5588	007577'	254000	007562'			JRST	PRADT5
  5589
  5590	007600'	202440	000012		SIXTYP:	MOVEM	T1,T2
  5591	007601'	400440	000000		SXTYP1:	SETZ	T1,
  5592	007602'	246440	000006			LSHC	T1,6
  5593	007603'	271440	000040			ADDI	T1,40
  5594	007604'	260740	007666'			CALL	TYPCHR
  5595	007605'	326500	007601'			JUMPN	T2,SXTYP1
  5596	007606'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 118
DDT11	MAC	18-May-81 17:27		DISPLAY ROUTINES

  5597	007607'	261740	000011		COLTYP:	PUSH	P,T1
  5598	007610'	201440	000072			MOVEI	T1,":"
  5599	007611'	324740	007617'			PJRST	TYPEIT
  5600
  5601	007612'	261740	000011		QESTYP:	PUSH	P,T1
  5602	007613'	201440	000077			MOVEI	T1,"?"
  5603	007614'	324740	007617'			PJRST	TYPEIT
  5604
  5605	007615'	261740	000011		TABTYP:	PUSH	P,T1
  5606	007616'	201440	000011			MOVEI	T1,"	"
  5607	007617'	260740	007666'		TYPEIT:	CALL	TYPCHR
  5608	007620'	254000	003666'			JRST TPOPJ
  5609
  5610	007621'	261740	000011		CRLTYP:	PUSH	P,T1
  5611	007622'	201440	000015			MOVEI	T1,15		;CARRIAGE RETURN
  5612	007623'	260740	007666'			CALL	TYPCHR
  5613	007624'	201440	000012			MOVEI	T1,12		;LINEFEED
  5614	007625'	324740	007617'			PJRST	TYPEIT
  5615
  5616	007626'	260740	007630'		B3.TYP:	CALL	BLANKT
  5617	007627'	260740	007630'			CALL	BLANKT
  5618						;JRST	BLANKT
  5619	007630'	261740	000011		BLANKT:	PUSH	P,T1
  5620	007631'	201440	000040			MOVEI	T1," "
  5621	007632'	324740	007617'			PJRST	TYPEIT
  5622
  5623	007633'	261740	000011		COMTYP:	PUSH	P,T1
  5624	007634'	201440	000054			MOVEI	T1,","
  5625	007635'	324740	007617'			PJRST	TYPEIT
  5626
  5627	007636'	261740	000011		PERTYP:	PUSH	P,T1
  5628	007637'	201440	000056			MOVEI	T1,"."
  5629	007640'	324740	007617'			PJRST	TYPEIT
  5630
  5631	007641'	261740	000011		PCNTYP:	PUSH	P,T1
  5632	007642'	201440	000045			MOVEI	T1,"%"
  5633	007643'	324740	007617'			PJRST	TYPEIT
  5634
  5635	007644'	261740	000011		HSHTYP:	PUSH	P,T1
  5636	007645'	201440	000043			MOVEI	T1,"#"
  5637	007646'	324740	007617'			PJRST	TYPEIT
  5638
  5639	007647'	261740	000011		MINTYP:	PUSH	P,T1
  5640	007650'	201440	000055			MOVEI	T1,"-"
  5641	007651'	324740	007617'			PJRST	TYPEIT
  5642
  5643	007652'	261740	000011		PLUTYP:	PUSH	P,T1
  5644	007653'	201440	000053			MOVEI	T1,"+"
  5645	007654'	324740	007617'			PJRST	TYPEIT
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 119
DDT11	MAC	18-May-81 17:27		DISPLAY ROUTINES

  5646					;HERE TO TYPE OR PRINT A STRING OF CHARACTERS
  5647					; CALL	MOVEI	T1,<ADR OF ASCIZ STRING>
  5648					;	CALL	TYPSTR
  5649	007655'	261740	000012		TYPSTR:	PUSH	P,T2
  5650		440700	000000			MOVE	T2,[POINT 7,0]
  5651	007656'	200500	044261'
  5652	007657'	271511	000000			ADDI	T2,(T1)		;COPY STRING POINTER
  5653	007660'	134440	000012		TYPST3:	ILDB	T1,T2		;GET NEXT CHAR
  5654	007661'	322440	007664'			JUMPE	T1,TYPST5
  5655	007662'	260740	007666'			CALL	TYPCHR		;TYPE THE CHARACTER
  5656	007663'	254000	007660'			JRST	TYPST3
  5657	007664'	262740	000012		TYPST5:	POP	P,T2		;RESTORE REGISTER
  5658	007665'	263740	000000			RET
  5659
  5660					;HERE TO TYPE OR PRINT A SINGLE CHARACTER
  5661	007666'	332000	006461'		TYPCHR:	SKIPE	OHD		;DOING A DUMP ?
  5662	007667'	254000	007672'			JRST	TYPCH3		;YES
  5663	007670'	051040	000011			OUTCHR	T1
  5664	007671'	263740	000000			RET
  5665
  5666	007672'	375000	006463'		TYPCH3:	SOSGE	OHD+2		;ROOM IN BUFFER
  5667	007673'	254000	007676'			JRST	TYPCH4		;NO
  5668	007674'	136440	006462'			IDPB	T1,OHD+1
  5669	007675'	263740	000000			RET
  5670	007676'	057000	000000		TYPCH4:	OUT
  5671	007677'	254000	007672'			JRST	TYPCH3
  5672	007700'	254200	000000			HALT
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 120
DDT11	MAC	18-May-81 17:27		DISPLAY ROUTINES

  5673					;HERE TO TYPE PROGRAM NAME
  5674		422112	430542		IDTYPE:	TYPE	<DDT11 >
  5675	007701'	201440	044262'
  5676	007702'	260740	007655'
  5677		301100	000137			LDB	T1,[POINT 9,.JBVER,11]
  5678	007703'	135440	044264'
  5679	007704'	260740	007535'			CALL	OCTYPE
  5680		220600	000137			LDB	T1,[POINT 6,.JBVER,17]
  5681	007705'	135440	044265'
  5682	007706'	201451	000100			MOVEI	T1,100(T1)
  5683	007707'	302440	000100			CAIE	T1,100
  5684	007710'	260740	007666'			CALL	TYPCHR
  5685	007711'	201440	000050			MOVEI	T1,"("
  5686	007712'	260740	007666'			CALL	TYPCHR
  5687	007713'	550440	000137			HRRZ	T1,.JBVER
  5688	007714'	260740	007535'			CALL	OCTYPE
  5689	007715'	201440	000051			MOVEI	T1,")"
  5690	007716'	260740	007666'			CALL	TYPCHR
  5691		410300	000137			LDB	T1,[POINT 3,.JBVER,2]
  5692	007717'	135440	044266'
  5693	007720'	213000	000011			MOVNS	T1
  5694	007721'	332000	000011			SKIPE	T1
  5695	007722'	260740	007535'			CALL	OCTYPE
  5696	007723'	561440	000003			HRROI	T1,3		;CODE FOR PROGRAM NAME
  5697	007724'	047440	000041			GETTAB	T1,
  5698	007725'	254000	007735'			JRST	IDTYP2
  5699		444464	212100			CAMN	T1,[SIXBIT \DDT11\]
  5700	007726'	316440	043354'
  5701	007727'	254000	007735'			JRST	IDTYP2
  5702	007730'	261740	000011			PUSH	P,T1
  5703		201724	000000			TYPE	< = >
  5704	007731'	201440	043226'
  5705	007732'	260740	007655'
  5706	007733'	262740	000011			POP	P,T1
  5707	007734'	260740	007600'			CALL	SIXTYP
  5708	007735'	336000	005522'		IDTYP2:	SKIPN	SYMDEV
  5709	007736'	254000	007743'			JRST	IDTYP3
  5710		201372	354632			TYPE	< /SYMBOLS=>
  5711	007737'	201440	044267'
  5712	007740'	260740	007655'
  5713	007741'	201440	005522'			MOVEI	T1,SYMDEV
  5714	007742'	260740	006124'			CALL	FILTYP
  5715	007743'	260740	007630'		IDTYP3:	CALL	BLANKT		;TYPE A BLANK
  5716	007744'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 121
DDT11	MAC	18-May-81 17:27		DISPLAY ROUTINES

  5717					;HERE TO TYPE THE DATE
  5718	007745'	047440	000014		DATETY:	DATE	T1,
  5719	007746'	231440	000564		DATET0:	IDIVI	T1,^D31*^D12	;LEAVE YEAR-64 IN T1
  5720	007747'	271440	000100			ADDI	T1,^D64
  5721	007750'	261740	000011			PUSH	P,T1		;SAVE YEAR
  5722	007751'	231500	000037			IDIVI	T2,^D31
  5723	007752'	271500	007765'			ADDI	T2,MONTAB	;GET NAME OF MONTH
  5724	007753'	261740	000012			PUSH	P,T2		;SAVE ADR OF MONTH NAME
  5725	007754'	350440	000013			AOS	T1,T3		;GET DAY
  5726	007755'	260740	007526'			CALL	DECTYP
  5727	007756'	260740	007647'			CALL	MINTYP		;TYPE A "-"
  5728	007757'	262740	000011			POP	P,T1		;GET MONTH
  5729	007760'	260740	007655'			CALL	TYPSTR		;TYPE MONTH NAME
  5730	007761'	260740	007647'			CALL	MINTYP		;TYPE A "-"
  5731	007762'	262740	000011			POP	P,T1		;GET YEAR
  5732	007763'	260740	007526'			CALL	DECTYP
  5733	007764'	263740	000000			RET
  5734	007765'	453035	600000		MONTAB:	ASCIZ	\Jan\
  5735	007766'	433134	200000			ASCIZ	\Feb\
  5736	007767'	467036	200000			ASCIZ	\Mar\
  5737	007770'	407416	266000			ASCIZ	\Aprl\
  5738	007771'	467037	100000			ASCIZ	\May\
  5739	007772'	453535	662400			ASCIZ	\June\
  5740	007773'	453535	474400			ASCIZ	\July\
  5741	007774'	407534	700000			ASCIZ	\Aug\
  5742	007775'	517136	072000			ASCIZ	\Sept\
  5743	007776'	477076	400000			ASCIZ	\Oct\
  5744	007777'	473376	600000			ASCIZ	\Nov\
  5745	010000'	423134	300000			ASCIZ	\Dec\
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 122
DDT11	MAC	18-May-81 17:27		DISPLAY ROUTINES

  5746					;HERE TO TYPE THE TIME OF DAY
  5747	010001'	260740	004324'		TIMTYP:	CALL	SAVE13
  5748	010002'	047440	000023			MSTIME	T1,		;GET TIME OF DAY IN MS
  5749	010003'	261740	000011		TIMTY1:	PUSH	P,T1		;SAVE TIME
  5750	010004'	231440	001750			IDIVI	T1,^D1000	;GET RID OF MS
  5751	010005'	231440	000074			IDIVI	T1,^D60		;LEAVES SECONDS IN T2
  5752	010006'	261740	000012			PUSH	P,T2
  5753	010007'	260740	010025'			CALL	TIMTY3		;TYPE HH:MM
  5754	010010'	260740	007607'			CALL	COLTYP		;TYPE A COLON
  5755	010011'	262740	000011			POP	P,T1
  5756	010012'	260740	010033'			CALL	DC2TYP		;TYPE 2 DIGIT DECIMAL NUMBER
  5757	010013'	262740	000011			POP	P,T1		;TIME ORIGINAL TIME AGAIN
  5758	010014'	301440	165140			CAIL	T1,^D60*^D1000	;LESS THAN A MINUTE ?
  5759	010015'	263740	000000			RET			;NO SO DONE
  5760	010016'	260740	007636'			CALL	PERTYP		;TYPE A "."
  5761	010017'	231440	001750			IDIVI	T1,^D1000	;GET MS FROM ORIGINAL TIME
  5762	010020'	250440	000012			EXCH	T1,T2
  5763	010021'	301500	000012			CAIL	T2,^D10
  5764		231440	000144			JRST	[IDIVI	T1,^D100	;LEAVE TENTHS
  5765		254000	007526'				JRST	DECTYP ]	;TYPE TENTH'S
  5766	010022'	254000	044272'
  5767	010023'	231440	000012			IDIVI	T1,^D10
  5768	010024'	254000	010033'			JRST	DC2TYP		;TYPE HUNDRETHS
  5769	010025'	231440	000074		TIMTY3:	IDIVI	T1,^D60		;LEAVES MIN IN T2
  5770	010026'	261740	000012			PUSH	P,T2
  5771	010027'	260740	007526'			CALL	DECTYP
  5772	010030'	260740	007607'			CALL	COLTYP		;TYPE A COLON
  5773	010031'	262740	000011			POP	P,T1
  5774	010032'	254000	010033'			JRST	DC2TYP		;TYPE 2 DIGIT DECIMAL NUMBER
  5775
  5776	010033'	301440	000012		DC2TYP:	CAIL	T1,^D10
  5777	010034'	254000	007526'			JRST	DECTYP
  5778	010035'	261740	000011			PUSH	P,T1
  5779	010036'	201440	000060			MOVEI	T1,"0"
  5780	010037'	260740	007666'			CALL	TYPCHR
  5781	010040'	262740	000011			POP	P,T1
  5782	010041'	254000	007526'			JRST	DECTYP
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 123
DDT11	MAC	18-May-81 17:27		DUMP TO FILE

  5783						SUBTTL	DUMP TO FILE
  5784
  5785	010042'	660400	000001		ESC..D:	TXO	FLG,F.FLIP	;ASSUME DOING COMMAND LOGGING
  5786	010043'	620400	000004			TXZ	FLG,F..FOO	;ASSUME NOT DOING A DISASSEMBLY
  5787	010044'	260740	010231'			CALL	ESC.D0		;SET UP TO CALL OPNFIL
  5788	010045'	332000	003275'			SKIPE	CMDFIL		;PROCESSING A COMMAND FILE ?
  5789	010046'	254000	010053'			JRST	DUMP0		;DON'T OPEN A NEW DUMP
  5790	010047'	260740	005641'			CALL	OPNFIL
  5791	010050'	254000	010206'			JRST	DUMP9
  5792	010051'	620400	000001			TXZ	FLG,F.FLIP	;NOT DOING COMMAND LOGGING
  5793	010052'	260740	010241'			CALL	ESC.D3		;PUT TITLE LINE ON DUMP
  5794	010053'	402000	040710'		DUMP0:	SETZM	CACHEL		;SWEEP CACHE
  5795	010054'	660400	004000			TXO	FLG,F.CACH	;PUT USE IT AFTER IT IS SET UP
  5796	010055'	560340	040510'			HRRO	DOT,SBEGIN	;WHERE TO BEGIN DUMP
  5797	010056'	606400	000004			TXNN	FLG,F..FOO	;DOING A DIASSSEMBLY ?
  5798	010057'	254000	010143'			JRST	DUMP2		;GO DO USUAL DUMP
  5799	010060'	261740	040535'			PUSH	P,O.MODE	;SAVE OUTPUT MODE
  5800	010061'	261740	040534'			PUSH	P,BYTCNT	;AND REPETITION COUNT
  5801	010062'	260740	007621'		DISA10:	CALL	CRLTYP		;TYPE A <CR><LF>
  5802	010063'	260740	007615'			CALL	TABTYP		;TYPE A <HT>
  5803	010064'	260740	010213'			CALL	DUMP6		;FIND IF LOCATION IS REAL
  5804	010065'	254000	010177'			JRST	DUMP8		;NOT REAL SO DONE
  5805	010066'	550440	000007			HRRZ	T1,DOT		;GET CURRENT LOCATION
  5806	010067'	260740	007531'			CALL	OCTYP6		;TYPE SIX DIGIT OCTAL NUMBER
  5807	010070'	260740	007615'			CALL	TABTYP
  5808	010071'	550440	000007			HRRZ	T1,DOT		;CURRENT LOCATION
  5809	010072'	402000	040535'			SETZM	O.MODE		;ASSUME DUMPING AS AN INSTRUCTION
  5810	010073'	260740	002171'			CALL	CNINWD		;FIND HOW MANY WORDS IN INSTRUCTION
  5811		201440	000001			JRST	[	MOVEI	T1,1		;CODE FOR ADR TYPEOUT
  5812		202440	040535'					MOVEM	T1,O.MODE
  5813		254000	010075'					JRST	.+1 ]
  5814	010074'	254000	044274'
  5815	010075'	201651	000000			MOVEI	T5,(T1)		;NUMBER OF WORDS
  5816	010076'	201447	000000			MOVEI	T1,(DOT)	;CURRENT ADR
  5817	010077'	260740	010131'			CALL	DISA40
  5818	010100'	201447	000002			MOVEI	T1,2(DOT)
  5819	010101'	260740	010131'			CALL	DISA40
  5820	010102'	201447	000004			MOVEI	T1,4(DOT)
  5821	010103'	260740	010131'			CALL	DISA40
  5822	010104'	550440	000007			HRRZ	T1,DOT		;GET ADR TO TYPE TAG
  5823	010105'	260740	005332'			CALL	VALFND		;TRY TO FIND TAG FOR THIS LOCATION
  5824	010106'	254000	010115'			JRST	DISA20		;NO TAG HERE
  5825	010107'	550440	000007			HRRZ	T1,DOT
  5826	010110'	312445	000001			CAME	T1,1(SYM)	;EXACT MATCH ?
  5827	010111'	254000	010115'			JRST	DISA20		;NO IS SAME AS NOT CLOSE
  5828	010112'	200445	000000			MOVE	T1,(SYM)	;GET SYMBOL NAME
  5829	010113'	260740	007600'			CALL	SIXTYP
  5830	010114'	260740	007607'			CALL	COLTYP		;PUT COLON AFTER SYMBOL
  5831	010115'	260740	007615'		DISA20:	CALL	TABTYP
  5832	010116'	260740	007123'			CALL	DATYPE
  5833	010117'	200440	040422'			MOVE	T1,DOTFOO
  5834	010120'	402000	040422'			SETZM	DOTFOO
  5835	010121'	260740	001674'			CALL	DOTINC
  5836	010122'	202440	000007			MOVEM	T1,DOT
  5837	010123'	553000	000011			HRRZS	T1
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 123-1
DDT11	MAC	18-May-81 17:27		DUMP TO FILE

  5838	010124'	317440	040511'			CAMG	T1,S..END
  5839	010125'	254000	010062'			JRST	DISA10
  5840	010126'	262740	040534'		DISA90:	POP	P,BYTCNT	;RESTORE REPETITION COUNT
  5841	010127'	262740	040535'			POP	P,O.MODE	;AND OUTPUT MODE
  5842	010130'	254000	010177'			JRST	DUMP8
  5843
  5844	010131'	361640	007615'		DISA40:	SOJL	T5,TABTYP
  5845	010132'	201500	000002			MOVEI	T2,2
  5846	010133'	260740	003354'			CALL	GETWRD
  5847	010134'	254000	010126'			JRST	DISA90		;CAN'T GET = DONE
  5848	010135'	260740	007531'			CALL	OCTYP6
  5849	010136'	254000	007615'			JRST	TABTYP
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 124
DDT11	MAC	18-May-81 17:27		DUMP TO FILE

  5850	010137'	550440	010225'		DUMP1:	HRRZ	T1,DUMPA	;LAST ADDRESS WE TYPED
  5851	010140'	271440	000020			ADDI	T1,20
  5852	010141'	303447	000000			CAILE	T1,(DOT)	;TIME TO TYPE ADR AGAIN ?
  5853	010142'	254000	010163'			JRST	DUMP4
  5854	010143'	260740	007621'		DUMP2:	CALL	CRLTYP
  5855	010144'	260740	007621'			CALL	CRLTYP
  5856	010145'	550440	000007			HRRZ	T1,DOT
  5857	010146'	260740	007076'			CALL	ADRTYP
  5858	010147'	322240	010156'			JUMPE	SYM,DUMP3	;IF THERE WAS NO SYMBOL DON'T REPEAT
  5859	010150'	260740	007630'			CALL	BLANKT
  5860	010151'	201440	000075			MOVEI	T1,"="
  5861	010152'	260740	007666'			CALL	TYPCHR
  5862	010153'	260740	007630'			CALL	BLANKT
  5863	010154'	550440	000007			HRRZ	T1,DOT
  5864	010155'	260740	007535'			CALL	OCTYPE
  5865	010156'	260740	007607'		DUMP3:	CALL	COLTYP		;TYPE A COLON
  5866	010157'	550440	000007			HRRZ	T1,DOT
  5867	010160'	405440	177760			ANDI	T1,177760	;IN CASE WAS HIGH
  5868	010161'	202440	010225'			MOVEM	T1,DUMPA	;REMEMBER LAST ADR WE TYPED
  5869	010162'	304000	000000			CAIA			;SO WE DO AN EXTRA TAB
  5870	010163'	606340	000007		DUMP4:	TRNN	DOT,7
  5871	010164'	260740	007615'			CALL	TABTYP
  5872
  5873	010165'	260740	010213'			CALL	DUMP6		;GET NEXT WORD TO DUMP
  5874	010166'	254000	010177'			JRST	DUMP8		;ALL DONE
  5875	010167'	260740	007123'			CALL	DATYPE		;DUMP LOCATION
  5876	010170'	200440	040422'			MOVE	T1,DOTFOO
  5877	010171'	402000	040422'			SETZM	DOTFOO
  5878	010172'	260740	001674'			CALL	DOTINC
  5879	010173'	202440	000007			MOVEM	T1,DOT
  5880	010174'	553000	000011			HRRZS	T1
  5881	010175'	317440	040511'			CAMG	T1,S..END
  5882	010176'	254000	010137'			JRST	DUMP1
  5883
  5884	010177'	260740	007621'		DUMP8:	CALL	CRLTYP
  5885	010200'	260740	007621'			CALL	CRLTYP
  5886	010201'	606400	000001		DUMP85:	TXNN	FLG,F.FLIP	;DON'T FLUSH IF LOGGING COMMANDS
  5887	010202'	260740	006175'			CALL	DONE.W
  5888	010203'	260740	007621'			CALL	CRLTYP
  5889	010204'	260740	007621'			CALL	CRLTYP
  5890	010205'	254000	000444'			JRST	LEVEL0
  5891
  5892	010206'	402000	006461'		DUMP9:	SETZM	OHD
  5893		627456	267744			TYPE	<error writing >
  5894	010207'	201440	044277'
  5895	010210'	260740	007655'
  5896	010211'	260740	006114'			CALL	FILERR
  5897	010212'	254000	000444'			JRST	LEVEL0
  5898
  5899					;HERE TO USE DOT TO GET THE NEXT WORD FROM PDP11 (AND LOAD CACHE)
  5900					; CALL	CALL	DUMP6
  5901					;	LOSE RETURN
  5902					;	WIN RETURN DATA IN T1
  5903	010213'	550440	000007		DUMP6:	HRRZ	T1,DOT		;GET ADDRESS TO EXAMINE
  5904	010214'	200500	040511'			MOVE	T2,S..END
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 124-1
DDT11	MAC	18-May-81 17:27		DUMP TO FILE

  5905	010215'	274500	000011			SUB	T2,T1
  5906	010216'	301500	000140			CAIL	T2,EXMAX
  5907		000000	000140			SKIPA	T2,[EXP EXMAX]
  5908	010217'	334500	044302'
  5909	010220'	271500	000002			ADDI	T2,^D2
  5910	010221'	260740	003354'			CALL	GETWRD
  5911	010222'	263740	000000			RET
  5912	010223'	202440	040464'			MOVEM	T1,DATA
  5913	010224'	254000	005177'			RETSKP
  5914
  5915	010225'				DUMPA:	BLOCK	1		;LAST ADDRESS TYPED OUT
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 125
DDT11	MAC	18-May-81 17:27		DUMP TO FILE

  5916					DEFINE	NAMES <
  5917						X	DISASS,SETFOO	;/DISASSEMBLY
  5918					>;DEFINE NAMES
  5919						DEFINE	X (A,B) <	0,,B	>
  5920	010226'	000000	000153'		DMPDSP:	NAMES
  5921
  5922					DEFINE	X (A,B) <	SIXBIT	\A\ >
  5923	010227'	445163	416363		DMPSWL:	NAMES
  5924	010230'	000000	000000			EXP	0
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 126
DDT11	MAC	18-May-81 17:27		DUMP TO FILE

  5925					;HERE TO SETUP FOR CALL TO OPNFIL
  5926	010231'	660400	030000		ESC.D0:	TXO	FLG,F.WRIT!F.APND	;REMEMBER WE ARE WRITING
  5927	010232'	561440	000003			HRROI	T1,3
  5928	010233'	047440	000041			GETTAB	T1,		;GET NAME OF JOB
  5929		444464	212100			MOVE	T1,[SIXBIT \DDT11\]
  5930	010234'	200440	043354'
  5931	010235'	205500	546344			MOVSI	T2,'LSD'
  5932		010226'	010227'			MOVE	T3,[DMPDSP,,DMPSWL]
  5933	010236'	200540	044303'
  5934	010237'	201600	005177'			MOVEI	T4,RSKP
  5935	010240'	263740	000000			RET
  5936
  5937					;HERE TO PUT A TITLE LINE ON A DUMP
  5938		064241	400000		ESC.D3:	MOVEI	T1,[BYTE (7)15,12,14,0]
  5939	010241'	201440	044304'
  5940	010242'	260740	007655'			CALL	TYPSTR
  5941		623535	570100			TYPE	<dump made >
  5942	010243'	201440	044305'
  5943	010244'	260740	007655'
  5944	010245'	260740	010001'			CALL	TIMTYP		;TYPE TIME
  5945	010246'	260740	007630'			CALL	BLANKT
  5946	010247'	260740	007745'			CALL	DATETY		;TYPE DATE
  5947		203374	620136			TYPE	< of />
  5948	010250'	201440	044310'
  5949	010251'	260740	007655'
  5950		605762	643200			MOVE	T1,[SIXBIT \PORT:\]
  5951	010252'	200440	044312'
  5952	010253'	332000	011147'			SKIPE	MEMORY
  5953		465154	453200			MOVE	T1,[SIXBIT \FILE:\]
  5954	010254'	200440	044313'
  5955	010255'	332000	040456'			SKIPE	NODE
  5956		565744	453200			MOVE	T1,[SIXBIT \NODE:\]
  5957	010256'	200440	044314'
  5958	010257'	260740	007600'			CALL	SIXTYP
  5959	010260'	332000	011147'			SKIPE	MEMORY
  5960		201440	011051'			JRST	[	MOVEI	T1,DMPDEV
  5961		260740	006124'					CALL	FILTYP		;TYPE FILE ID
  5962		254000	010270'					JRST	ESC.D4 ]
  5963	010261'	254000	044315'
  5964	010262'	336440	040456'			SKIPN	T1,NODE
  5965	010263'	550440	040455'			HRRZ	T1,PORT
  5966	010264'	201500	007535'			MOVEI	T2,OCTYPE
  5967	010265'	603440	777777			TLNE	T1,-1
  5968	010266'	201500	007600'			MOVEI	T2,SIXTYP
  5969	010267'	260752	000000			CALL	(T2)
  5970					ESC.D4:	TYPE	<
  5971		064241	161362			by >
  5972	010270'	201440	044320'
  5973	010271'	260740	007655'
  5974	010272'	260740	007701'			CALL	IDTYPE
  5975	010273'	260740	007621'			CALL	CRLTYP
  5976	010274'	260740	007621'			CALL	CRLTYP
  5977	010275'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 127
DDT11	MAC	18-May-81 17:27		DUMP TO A BINARY FILE

  5978						SUBTTL	DUMP TO A BINARY FILE
  5979
  5980	010276'	660400	410000		ESC..P:	TXO	FLG,F.WRIT!F.PACK	;REMEMBER WE ARE WRITING
  5981	010277'	620400	020000			TXZ	FLG,F.APND
  5982		536265	466400			MOVE	T1,[SIXBIT /KRUFT/]	;DEFAULT FILE NAME
  5983	010300'	200440	044322'
  5984	010301'	205500	425156			MOVSI	T2,'BIN'	;DEFAULT EXTENSION
  5985		010464'	010470'			MOVE	T3,[PUNDSP,,PUNSWL]
  5986	010302'	200540	044323'
  5987
  5988	010303'	400600	000000			SETZ	T4,
  5989	010304'	402000	042175'			SETZM	PROM.F#
  5990	010305'	260740	005641'			CALL	OPNFIL		;OPEN FILE
  5991	010306'	254000	000444'			JRST	LEVEL0
  5992	010307'	332440	042175'			SKIPE	T1,PROM.F#
  5993	010310'	254000	010505'			JRST	PROM
  5994	010311'	201440	000022			MOVEI	T1,^D18		;ASSUME HALFWORD WRITES
  5995	010312'	606400	400000			TXNN	FLG,F.PACK	;UNLESS DOING PAPER TAPE
  5996	010313'	201440	000044			MOVEI	T1,^D36		;IN WHICH CASE DO FULL WORDS
  5997		300600	006462'			DPB	T1,[POINT 6,OHD+1,11]
  5998	010314'	137440	044324'
  5999	010315'	200340	040510'			MOVE	DOT,SBEGIN
  6000	010316'	402000	040710'			SETZM	CACHEL		;SWEEP THE CACHE
  6001	010317'	660400	004000			TXO	FLG,F.CACH	;CAN USE THE CACHE FROM NOW ON
  6002	010320'	400600	000000		ESCP00:	SETZ	T4,		;NUMBER OF BYTES FOR CURRENT SEGMENT
  6003	010321'	550540	000007			HRRZ	T3,DOT		;NEXT ADR TO GET
  6004	010322'	200440	000013		ESCP02:	MOVE	T1,T3		;NEXT ADR TO EXAMINE
  6005	010323'	231440	000044			IDIVI	T1,^D36
  6006	010324'	261740	000011			PUSH	P,T1		;SAVE RELATIVE PDP10 WORD ADR
  6007	010325'	210440	000012			MOVN	T1,T2
  6008	010326'	205500	400000			MOVSI	T2,400000	;MAKE BIT FOR WORD
  6009	010327'	242511	000000			LSH	T2,(T1)		; MAKE IT RIGHT BIT
  6010	010330'	262740	000011			POP	P,T1		;GET RELATIVE WORD ADR AGAIN
  6011	010331'	616520	011151'			TDNN	T2,@MEMUSE
  6012	010332'	254000	010344'			JRST	ESCP10		;WORD NOT IN USE
  6013	010333'	200440	000013			MOVE	T1,T3		;NEXT ADR TO EXAMINE
  6014	010334'	201500	000001			MOVEI	T2,1		;ONLY WANT ONE BYTE
  6015	010335'	260740	003354'			CALL	GETWRD		;TRY TO GET THE WORD
  6016	010336'	254000	010344'			JRST	ESCP10
  6017	010337'	350000	000014			AOS	T4		;ANOTHER WORD TO DUMP
  6018	010340'	311540	040511'			CAML	T3,S..END
  6019	010341'	254000	010344'			JRST	ESCP10		;DONE
  6020	010342'	305600	000400			CAIGE	T4,^D256
  6021	010343'	344540	010322'			AOJA	T3,ESCP02
  6022	010344'	326600	010346'		ESCP10:	JUMPN	T4,ESCP11	;ANY BYTES
  6023	010345'	344340	010411'			AOJA	DOT,ESCP20	;NO SO ADVANCE WHERE TO DUMP FROM
  6024	010346'	400640	000000		ESCP11:	SETZ	T5,		;INITIALIZE THE CHECKSUM
  6025	010347'	201440	000001			MOVEI	T1,1
  6026	010350'	260740	010431'			CALL	WRTWRD		;WRITE BINARY WORD
  6027	010351'	200440	000014			MOVE	T1,T4		;COUNT FOR SEGMENT
  6028	010352'	271440	000006			ADDI	T1,6
  6029	010353'	260740	010431'			CALL	WRTWRD
  6030	010354'	550440	000007			HRRZ	T1,DOT
  6031	010355'	260740	010431'			CALL	WRTWRD
  6032	010356'	550440	000007		ESCP12:	HRRZ	T1,DOT
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 127-1
DDT11	MAC	18-May-81 17:27		DUMP TO A BINARY FILE

  6033	010357'	350000	000007			AOS	DOT
  6034	010360'	201500	000001			MOVEI	T2,1
  6035	010361'	260740	003354'			CALL	GETWRD
  6036	010362'	047000	000012			EXIT
  6037	010363'	363600	010402'			SOJLE	T4,ESCP16
  6038	010364'	261740	000011			PUSH	P,T1		;SAVE DATA
  6039	010365'	550440	000007			HRRZ	T1,DOT
  6040	010366'	350000	000007			AOS	DOT
  6041	010367'	201500	000001			MOVEI	T2,1
  6042	010370'	260740	003354'			CALL	GETWRD
  6043	010371'	047000	000012			EXIT
  6044		101017	000000			DPB	T1,[POINT 8,(P),27]
  6045	010372'	137440	044325'
  6046	010373'	262740	000011			POP	P,T1
  6047	010374'	260740	010431'			CALL	WRTWRD
  6048	010375'	367600	010356'			SOJG	T4,ESCP12
  6049	010376'	200440	000015			MOVE	T1,T5		;GET CHECKSUM
  6050	010377'	405440	000377			ANDI	T1,377		;STRIP EXTRA BITS
  6051	010400'	260740	010431'			CALL	WRTWRD
  6052	010401'	254000	010405'			JRST	ESCP19
  6053	010402'	274640	000011		ESCP16:	SUB	T5,T1		;INCLUDE LAST CHAR IN CHECKSUM
  6054		101000	000011			DPB	T5,[POINT 8,T1,27]
  6055	010403'	137640	043063'
  6056	010404'	260740	010431'			CALL	WRTWRD
  6057
  6058	010405'	400440	000000		ESCP19:	SETZ	T1,		;ADD PAD BETWEEN SEQMENTS
  6059	010406'	260740	010431'			CALL	WRTWRD
  6060	010407'	260740	010431'			CALL	WRTWRD
  6061	010410'	260740	010431'			CALL	WRTWRD
  6062	010411'	550440	000007		ESCP20:	HRRZ	T1,DOT
  6063	010412'	315440	040511'			CAMGE	T1,S..END
  6064	010413'	254000	010320'			JRST	ESCP00
  6065	010414'	400640	000000			SETZ	T5,		;INITIALIZE THE CHECKSUM
  6066	010415'	201440	000001			MOVEI	T1,1
  6067	010416'	260740	010431'			CALL	WRTWRD
  6068	010417'	201440	000006			MOVEI	T1,6
  6069	010420'	260740	010431'			CALL	WRTWRD
  6070	010421'	336440	040433'			SKIPN	T1,GOTO		;STARTING ADDRESS
  6071	010422'	201440	000001			MOVEI	T1,1
  6072	010423'	260740	010431'			CALL	WRTWRD
  6073	010424'	200440	000015			MOVE	T1,T5
  6074	010425'	405440	000377			ANDI	T1,377
  6075	010426'	260740	010431'			CALL	WRTWRD
  6076	010427'	260740	006175'			CALL	DONE.W		;CLOSE OUTPUT FILE
  6077	010430'	254000	000451'			JRST	LEVEL2
  6078
  6079	010431'	274640	000011		WRTWRD:	SUB	T5,T1
  6080	010432'	241440	777770			ROT	T1,-^D8
  6081	010433'	274640	000011			SUB	T5,T1
  6082	010434'	241440	000010			ROT	T1,^D8
  6083	010435'	606400	400000			TXNN	FLG,F.PACK	;PUNCHING TAPE ?
  6084	010436'	254000	010444'			JRST	WRTBN4
  6085	010437'	375000	006463'			SOSGE	OHD+2		;IS THERE ROOM IN BUFFER ?
  6086	010440'	260740	010457'			CALL	WRTBN9		;NO ROOM
  6087	010441'	405440	177777			ANDI	T1,177777	;STRIP EXTRA BITS
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 127-2
DDT11	MAC	18-May-81 17:27		DUMP TO A BINARY FILE

  6088	010442'	136440	006462'			IDPB	T1,OHD+1	;PUT WORD INTO BUFFER
  6089	010443'	263740	000000			RET
  6090	010444'	375000	006463'		WRTBN4:	SOSGE	OHD+2		;ROOM FOR LOW ORDER BITS ?
  6091	010445'	260740	010457'			CALL	WRTBN9
  6092	010446'	261740	000011			PUSH	P,T1
  6093	010447'	405440	000377			ANDI	T1,377		;ONLY 8 BITS
  6094	010450'	136440	006462'			IDPB	T1,OHD+1
  6095	010451'	262740	000011			POP	P,T1
  6096		101000	000011			LDB	T1,[POINT 8,T1,27]
  6097	010452'	135440	043063'
  6098	010453'	375000	006463'			SOSGE	OHD+2
  6099	010454'	260740	010457'			CALL	WRTBN9
  6100	010455'	136440	006462'			IDPB	T1,OHD+1
  6101	010456'	263740	000000			RET
  6102	010457'	370017	000000		WRTBN9:	SOS	(P)
  6103	010460'	370017	000000			SOS	(P)
  6104	010461'	057000	000000			OUT
  6105	010462'	263740	000000			RET
  6106	010463'	254000	006114'			JRST	FILERR		;COMPLAIN
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 128
DDT11	MAC	18-May-81 17:27		DUMP TO A BINARY FILE

  6107						DEFINE	NAMES <
  6108						X	BM873,PUNBM8
  6109						X	IMAGE,PUNIMG
  6110						X	M9301,PUNM93
  6111						X	PACKED,PUNPAK
  6112					>
  6113						DEFINE	X (Q,QQ) < EXP QQ >
  6114	010464'	000000	010500'		PUNDSP:	NAMES
  6115	010465'	000000	010475'
  6116	010466'	000000	010502'
  6117	010467'	000000	010476'
  6118						DEFINE	X (Q,QQ) < SIXBIT \Q\ >
  6119	010470'	425530	272300		PUNSWL:	NAMES
  6120	010471'	515541	474500
  6121	010472'	553123	202100
  6122	010473'	604143	534544
  6123	010474'	000000	000000			EXP	0
  6124
  6125	010475'	624400	400000		PUNIMG:	TXZA	FLG,F.PACK
  6126	010476'	660400	400000		PUNPAK:	TXO	FLG,F.PACK
  6127	010477'	263740	000000			RET
  6128
  6129	010500'	474440	000000		PUNBM8:	SETO	T1,
  6130	010501'	304000	000000			CAIA
  6131	010502'	201440	000001		PUNM93:	MOVEI	T1,1
  6132	010503'	202440	042175'			MOVEM	T1,PROM.F#
  6133	010504'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 129
DDT11	MAC	18-May-81 17:27		DUMP TO A BINARY FILE

  6134	010505'	260740	010520'		PROM:	CALL	PROM.2
  6135	010506'	300000	000000			NOP
  6136	010507'	260740	010520'			CALL	PROM.2
  6137	010510'	242440	777774			LSH	T1,-^D4
  6138	010511'	337000	042175'			SKIPG	PROM.F		;SKIP IF M9301
  6139	010512'	254000	010201'			JRST	DUMP85
  6140	010513'	260740	010520'			CALL	PROM.2
  6141	010514'	242440	777770			LSH	T1,-^D8
  6142	010515'	260740	010520'			CALL	PROM.2
  6143	010516'	242440	777764			LSH	T1,-^D12
  6144	010517'	254000	010201'			JRST	DUMP85
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 130
DDT11	MAC	18-May-81 17:27		DUMP TO A BINARY FILE

  6145	010520'	201440	000377		PROM.2:	MOVEI	T1,377
  6146	010521'	260740	007666'			CALL	TYPCHR
  6147	010522'	200340	040510'			MOVE	DOT,SBEGIN
  6148	010523'	201600	000200			MOVEI	T4,^D128	;FOR BM873
  6149	010524'	331000	042175'			SKIPL	PROM.F
  6150	010525'	201600	000400			MOVEI	T4,^D256	;FOR M9301
  6151	010526'	550440	000007		PROM.4:	HRRZ	T1,DOT
  6152	010527'	201500	000002			MOVEI	T2,2		;REQUEST 2 BYTES
  6153	010530'	260740	003354'			CALL	GETWRD
  6154	010531'	400440	000000			SETZ	T1,
  6155	010532'	640440	777001			TRC	T1,777001
  6156	010533'	256037	000000			XCT	@(P)
  6157	010534'	335000	042175'			SKIPGE	PROM.F#
  6158	010535'	261740	000011			PUSH	P,T1
  6159	010536'	405440	000017			ANDI	T1,17
  6160	010537'	260740	007666'			CALL	TYPCHR
  6161	010540'	331000	042175'			SKIPL	PROM.F
  6162	010541'	254000	010546'			JRST	PROM.6
  6163	010542'	262740	000011			POP	P,T1
  6164	010543'	242440	777770			LSH	T1,-^D8
  6165	010544'	405440	000017			ANDI	T1,17
  6166	010545'	260740	007666'			CALL	TYPCHR
  6167	010546'	271340	000002		PROM.6:	ADDI	DOT,2
  6168	010547'	367600	010526'			SOJG	T4,PROM.4
  6169	010550'	335000	042175'			SKIPGE	PROM.F
  6170	010551'	254000	010566'			JRST	PROM.9		;DON'T NEED FOR BM873
  6171
  6172	010552'	560340	040511'			HRRO	DOT,S..END
  6173	010553'	201600	000400			MOVEI	T4,^D256
  6174	010554'	550440	000007		PROM.8:	HRRZ	T1,DOT
  6175	010555'	201500	000002			MOVEI	T2,2
  6176	010556'	260740	003354'			CALL	GETWRD
  6177	010557'	400440	000000			SETZ	T1,
  6178	010560'	640440	777001			TRC	T1,777001
  6179	010561'	256037	000000			XCT	@(P)
  6180	010562'	405440	000017			ANDI	T1,17
  6181	010563'	260740	007666'			CALL	TYPCHR
  6182	010564'	271340	000002			ADDI	DOT,2
  6183	010565'	367600	010554'			SOJG	T4,PROM.8
  6184
  6185	010566'	201600	000400		PROM.9:	MOVEI	T4,^D256
  6186	010567'	400440	000000			SETZ	T1,
  6187	010570'	260740	007666'			CALL	TYPCHR
  6188	010571'	365600	010570'			SOJGE	T4,.-1
  6189	010572'	350017	000000			AOS	(P)
  6190	010573'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 131
DDT11	MAC	18-May-81 17:27		DUMP TO A BINARY FILE

  6191					;HERE TO GET A CHARACTER IN LINE MODE
  6192	010574'	332000	003275'		RDCHAR:	SKIPE	CMDFIL		;ARE WE DOING COMMAND FILE STUFF ?
  6193	010575'	260740	003172'			CALL	CMDCHR		;GET A COMMAND FILE CHAR
  6194	010576'	051200	000011			INCHWL	T1		;GET THE NEXT CHAR
  6195	010577'	306440	000032			CAIN	T1,32		;IS THIS A CONTROL Z ?
  6196	010600'	047000	000012			EXIT
  6197	010601'	260740	010622'			CALL	GETCH8
  6198	010602'	254000	010574'			JRST	RDCHAR
  6199	010603'	263740	000000			RET
  6200
  6201					;HERE TO GET A CHARACTER FROM THE TTY
  6202	010604'	332440	040632'		GETCHR:	SKIPE	T1,CMDTKR	;ARE WE RETYPING COMMAND LINE ?
  6203	010605'	254000	010614'			JRST	GETCH3		;YES SO DO IT THAT WAY
  6204	010606'	332000	003275'			SKIPE	CMDFIL		;ARE WE DOING COMMAND FILE STUFF ?
  6205	010607'	260740	003172'			CALL	CMDCHR		;GET A COMMAND FILE CHAR
  6206	010610'	051000	000011			INCHRW	T1		;GET THE NEXT CHAR
  6207	010611'	260740	010622'		GETCH1:	CALL	GETCH8
  6208	010612'	254000	010604'			JRST	GETCHR
  6209	010613'	263740	000000			RET
  6210
  6211	010614'	312440	040633'		GETCH3:	CAME	T1,CMDLIM	;RETYPED ENOUGH YET ?
  6212	010615'	254000	010620'			JRST	GETCH4		;NOT YET
  6213	010616'	402000	040632'			SETZM	CMDTKR		;DONE WITH TAKER
  6214	010617'	254000	010604'			JRST	GETCHR
  6215	010620'	134440	040632'		GETCH4:	ILDB	T1,CMDTKR
  6216	010621'	254000	010611'			JRST	GETCH1
  6217
  6218	010622'	322440	005200'		GETCH8:	JUMPE	T1,R		;FLUSH NULLS
  6219	010623'	606400	000100			TXNN	FLG,F.TEXT	;DOING TEXT MODE STUFF ?
  6220	010624'	302440	000015			CAIE	T1,15		;IS THIS A CARRIAGE RETURN ?
  6221	010625'	254000	010632'			JRST	GETCH9
  6222	010626'	260740	010604'			CALL	GETCHR		;GET LF
  6223	010627'	306440	000015			CAIN	T1,15		;WAS THIS A 2ND CR ?
  6224	010630'	254000	010622'			JRST	GETCH8		;YES SO FLUSH IT ALSO
  6225	010631'	201440	000015			MOVEI	T1,15		;CONVERT LF TO CR
  6226	010632'	254000	005177'		GETCH9:	RETSKP
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 132
DDT11	MAC	18-May-81 17:27		/FILE: HANDLING

  6227						SUBTTL	/FILE: HANDLING
  6228
  6229					;HERE BECAUSE FOUND /FILE IN RESPONSE INITIAL DIAGLOGUE
  6230					; READ EITHER A BOOT11 OR NETLDR DUMP OR A BINARY FILE
  6231
  6232	010633'	403440	000012		RDDUMP:	SETZB	T1,T2		;IN CASE CORE NOT SETUP YET
  6233	010634'	337000	011150'			SKIPG	MEMLIM		;ANYTHING PUT IN MEMORY YET ?
  6234	010635'	260740	004177'			CALL	PUTFOO		;NO SO MAKE SOME CORE
  6235	010636'	400040	000000			SETZ	AC1,		;HIGHEST LOCATION SO FAR
  6236		604460	705120			MOVE	T1,[SIXBIT \PDPXI0\]	;DEFAULT FILE NAME
  6237	010637'	200440	044326'
  6238		546344	425156			MOVE	T2,[SIXBIT \LSDBIN\]	;DEFAULT EXTENSION
  6239	010640'	200500	042213'
  6240	010641'	602400	000002			TXNE	FLG,F.FLOP	;READING BINARY FILE ?
  6241	010642'	205500	425156			MOVSI	T2,'BIN'	;DEFAULT EXTENSION FOR BIN FILES
  6242		006213'	011051'			MOVE	T1,[FILDEV,,DMPDEV]
  6243	010643'	200440	044327'
  6244	010644'	251440	011070'			BLT	T1,DMPDEV+$FBLEN-1	;COPY FILDEV, FILNAM, FILEXT, FILPPN, FILTIM
  6245		446445	442020			MOVE T1,[SIXBIT /DTED00/];IF FILE STARTS WITH DTED, ASSUME BIN
  6246	010645'	200440	044330'
  6247	010646'	430440	006216'			XOR T1,FILNAM
  6248		777777	770000			TDNN T1,[XWD -1,770000]	;MASK DOR "DTED"
  6249	010647'	616440	044331'
  6250		606400	000002			JRST [	TXNN FLG,F.FLOP	;IF NOT "/BINARY"
  6251		660400	000004				TXO FLG,F..FOO	;SAY /DTE FOR HIM
  6252		254000	010651'				JRST .+1]
  6253	010650'	254000	044332'
  6254	010651'	602400	000004			TXNE FLG,F..FOO		;IS IT /DTE?
  6255	010652'	254000	010725'			JRST RDTDMP		;YES, READ THE DUMP
  6256	010653'	554440	006217'			HLRZ	T1,FILEXT	;GET FILE EXTENSION
  6257	010654'	302440	425143			CAIE	T1,'BIC'	;OTHER WAY TO SPELL BIN
  6258	010655'	306440	425156			CAIN	T1,'BIN'	;DID WE READ A BINARY FILE ?
  6259	010656'	660400	000002			TXO	FLG,F.FLOP	;YES SO READING BINARY FILE
  6260	010657'	403640	000014			SETZB	T5,T4		;ACCUMULATE CHECKSUM HERE
  6261	010660'	602400	000004			TXNE	FLG,F..FOO	;DID WE GET A /DTELDR
  6262	010661'	254000	010725'			JRST	RDTDMP		;YES SO GO READ IT
  6263	010662'	626400	000002			TXZN	FLG,F.FLOP	;READING A BINARY FILE ?
  6264	010663'	254000	011071'			JRST	RDUMP0		;NO READING A DUMP
  6265
  6266	010664'	201440	000044			MOVEI	T1,^D36		;WANT 36BIT HEADERS
  6267	010665'	260740	010763'			CALL	SETIHD		;SO SET EM
  6268
  6269					;HERE TO LOOK FOR INITIAL 1
  6270	010666'	260740	011010'		RDBN10:	CALL	RDBN70		;GET NEXT CHAR
  6271	010667'	254000	011132'			JRST	RDUMP9		;ALL DONE
  6272	010670'	322440	010666'			JUMPE	T1,RDBN10	;LOOP ON HEADER
  6273	010671'	302440	000001			CAIE	T1,1		;IS THIS LEADING 1 ?
  6274	010672'	254000	011046'			JRST	RDBNER		;ERROR IN FORMAT
  6275	010673'	260740	011010'			CALL	RDBN70		;GET NEXT WORD = 0
  6276	010674'	254000	011046'			JRST	RDBNER		;ERROR IN FORMAT
  6277	010675'	326440	011046'			JUMPN	T1,RDBNER
  6278	010676'	260740	010777'			CALL	RDBN60		;GET 16BIT WORD = COUNT
  6279	010677'	201551	777772			MOVEI	T3,-6(T1)	;MAKE BYTE COUNT
  6280	010700'	260740	010777'			CALL	RDBN60		;GET 16BIT WORD = ADR
  6281	010701'	200500	000011			MOVE	T2,T1		;COPY ADDRESS
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 132-1
DDT11	MAC	18-May-81 17:27		/FILE: HANDLING

  6282	010702'	620400	000001			TXZ	FLG,F.FLIP	;NO DATA MAYBE
  6283	010703'	322540	010714'			JUMPE	T3,RDBN30
  6284	010704'	660400	000001		RDBN20:	TXO	FLG,F.FLIP	;THIS SEGMENT HAD DATA
  6285	010705'	260740	011010'			CALL	RDBN70		;GET NEXT BYTE TO STUFF
  6286	010706'	254000	011046'			JRST	RDBNER
  6287	010707'	313500	000001			CAMLE	T2,AC1
  6288	010710'	550040	000012			HRRZ	AC1,T2		;NEW HIGHEST LOCATION LOADED
  6289	010711'	260740	004177'			CALL	PUTFOO		;PUT BYTE INTO MEMORY
  6290	010712'	350000	000012			AOS	T2		;ADVANCE LOCATION COUNTER
  6291	010713'	367540	010704'			SOJG	T3,RDBN20
  6292	010714'	260740	010777'		RDBN30:	CALL	RDBN60		;INCLUDE CHECKSUM IN CALC
  6293	010715'	602640	000377			TRNE	T5,377		;TEST CHECKSUM
  6294		416210	541626			JRST	[	TYPE	<CHECKSUM ERROR>
  6295		201440	044335'
  6296		260740	007655'
  6297		047000	000012					EXIT	]
  6298	010716'	254000	044340'
  6299	010717'	602400	000001			TXNE	FLG,F.FLIP
  6300	010720'	254000	010666'			JRST	RDBN10		;PROBABLY MORE DATA
  6301	010721'	405500	177776			ANDI	T2,177776	;ONLY 16 BITS & EVEN
  6302	010722'	202500	040433'			MOVEM	T2,GOTO		;SAVE STARTING ADDRESS
  6303	010723'	202500	011207'			MOVEM T2,SIMREG+PC	;SET INITIAL PC
  6304	010724'	254000	011132'			JRST	RDUMP9
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 133
DDT11	MAC	18-May-81 17:27		/FILE: HANDLING

  6305					;HERE TO READ A DTELDR DUMP
  6306					;TO DO THIS PROPERLY, THE LENGTH OF THE FILE SHOULD BE READ
  6307					; VERIFIED TO BE 34000 WORDS.  THE FIRST WORD SHOULD ALSO HAVE
  6308					; THE SIGN BIT ON.
  6309					;DTELDR DUMPS ARE (BY BLIND LUCK) IN THE SAME FORMAT AS DDT11'S
  6310					; INTERNAL MEMORY REPRESENTATION.
  6311	010725'	260740	005303'		RDTDMP:	CALL	POSYMT		;MAKE SURE THE SYMTAB IS WHER EIT OUGHT
  6312	010726'	261740	041115'			PUSH	P,SYMBEG	;SAVE WHAT WILL BE THE START OF MEMUSE
  6313	010727'	201440	037071			MOVEI	T1,<160000/4>+<160043/44> ;SIZE OF MEMUSE + MEMORY
  6314	010730'	260740	005321'			CALL	MOVSMT		;GET THE ROOM.
  6315
  6316	010731'	262740	000011			POP	P,T1		;FIRST FREE LOC BACK
  6317	010732'	505440	000011			HRLI	T1,T1		;GET THE INCESTUOUS POINTER
  6318	010733'	202440	011151'			MOVEM	T1,MEMUSE	; AND SAVE POINTER TO MEMUSE TABLE
  6319	010734'	271440	003071			ADDI	T1,160043/44	;RELOCATE BY THE SIZE OF MEMUSE
  6320	010735'	552440	011147'			HRRZM	T1,MEMORY	; AND SAVE POINTER TO START OF MEMORY
  6321
  6322	010736'	550440	011151'			HRRZ	T1,MEMUSE	;GET BACK ADDRESS OF USE TABLE
  6323	010737'	504500	000011			HRL	T2,T1		;MAKE A BLT POINTER TO
  6324	010740'	541511	000001			HRRI	T2,1(T1)	; TO THE USE TABLE
  6325	010741'	476011	000000			SETOM	(T1)		;BLT ALL BUT THE LAST WORD
  6326	010742'	251511	003067			BLT	T2,<160000/44>-1(T1) ;TO "IN USE"
  6327		777777	777760			MOVE	T2,[EXP -1_<44-<160000-<160000/44>*44>>] ;GET AND
  6328	010743'	200500	044343'
  6329	010744'	202511	003070			MOVEM	T2,160043/44-1(T1) ; STORE MASK FOR LAST WORD
  6330
  6331	010745'	205440	744000			MOVSI	T1,-<160000/4>	;NOW AN IOWD TO THE
  6332	010746'	540440	011147'			HRR	T1,MEMORY	; MEMORY
  6333	010747'	370000	000011			SOS	T1		; FOR A QUICK "IN"
  6334	010750'	400500	000000			SETZ	T2,		;TERMINATE THE COMMAND LIST
  6335	010751'	060040	000017			SETSTS	1,.IODMP	;SET DUMP MODE IO
  6336	010752'	074040	000001			USETI	1,1		;GO TO THE FIRST BLOCK
  6337	010753'	056040	000011			IN	1,T1		;READ THE FILE
  6338	010754'	304000	000000			 CAIA			; OK
  6339	010755'	260740	006730'			  PUSHJ	P,IFILER	;REPORT THE ERROR
  6340	010756'	071040	000000			RELEAS	1,		;DONE WITH THE FILE
  6341	010757'	201040	157777			MOVEI	AC1,157777	;SET HIGHEST ADDRESS LOADED
  6342	010760'	202040	000007			MOVEM	AC1,DOT		;REMEMBER WHERE WE ARE AS WELL
  6343	010761'	202040	011150'			MOVEM	AC1,MEMLIM	;SET THE TOP OF MEMORY
  6344	010762'	254000	011132'			JRST	RDUMP9		;DONE
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 134
DDT11	MAC	18-May-81 17:27		/FILE: HANDLING

  6345					;HERE TO SET BYTE SIZE FOR INPUT HEADER
  6346					; CALL	MOVEI	T1,<BYTE SIZE>
  6347					;	CALL	SETIHD
  6348		300600	006234'		SETIHD:	LDB	T3,[POINT 6,IHD+1,11]	;GET S FIELD FROM INPUT POINTER
  6349	010763'	135540	044344'
  6350		300600	006234'			DPB	T1,[POINT 6,IHD+1,11]	;SET NEW S FIELD
  6351	010764'	137440	044344'
  6352	010765'	201500	000044			MOVEI	T2,^D36
  6353	010766'	231513	000000			IDIVI	T2,(T3)		;FIND NUMBER OF BITS/BYTE CURRENT
  6354	010767'	202440	000013			MOVEM	T1,T3		;SAVE NEW SIZE
  6355	010770'	200440	006235'			MOVE	T1,IHD+2	;NUMBER OF BYTES IN CURRENT BUFFER
  6356	010771'	231452	000000			IDIVI	T1,(T2)		;MAKE NUMBER OF WORDS IN CURRENT BUFFER
  6357	010772'	201500	000044			MOVEI	T2,^D36
  6358	010773'	231513	000000			IDIVI	T2,(T3)		;GET NUMBER OF BYTES/WORD IN NEW SIZE
  6359	010774'	221452	000000			IMULI	T1,(T2)		;NUMBER OF BYTES OF NEW SIZE
  6360	010775'	202440	006235'			MOVEM	T1,IHD+2	;SAVE IT
  6361	010776'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 135
DDT11	MAC	18-May-81 17:27		/FILE: HANDLING

  6362					;HERE TO GET SIXTEEN BITS
  6363	010777'	260740	011010'		RDBN60:	CALL	RDBN70		;GET LOW ORDER BITS
  6364	011000'	254000	011046'			JRST	RDBNER
  6365	011001'	261740	000012			PUSH	P,T2
  6366	011002'	246440	777770			LSHC	T1,-^D8		;SHOVE EM INTO T2
  6367	011003'	260740	011010'			CALL	RDBN70		;GET HIGH ORDER BITS
  6368	011004'	254000	011046'			JRST	RDBNER
  6369	011005'	245440	000010			ROTC	T1,^D8		;ADD LOW ORDER BITS
  6370	011006'	262740	000012			POP	P,T2
  6371	011007'	263740	000000			RET			;RETURN TO CALLER
  6372
  6373					;HERE TO GET NEXT BYTE FROM BINARY FILE
  6374	011010'	322600	011014'		RDBN70:	JUMPE	T4,RDBN74	;HALF OF PREVIOUS WORD LEFT ?
  6375		101000	000014			LDB	T1,[POINT 8,T4,27]	;LOW ORDER BITS FROM PREV HLF WRD
  6376	011011'	135440	043543'
  6377	011012'	400600	000000			SETZ	T4,		;DONE WITH HALF WORD
  6378	011013'	254000	011023'			JRST	RDBN79
  6379	011014'	375000	006235'		RDBN74:	SOSGE	IHD+2		;MORE DATA IN BUFFER ?
  6380	011015'	254000	011026'			JRST	RDBN80		;NO SO READ MORE
  6381	011016'	134440	006234'			ILDB	T1,IHD+1
  6382	011017'	606400	000002			TXNN	FLG,F.FLOP	;IS THIS PACKED FILE ?
  6383	011020'	254000	011023'			JRST	RDBN79		;NO
  6384	011021'	560600	000011			HRRO	T4,T1		;COPY HALF WORD
  6385		001000	000014			LDB	T1,[POINT 8,T4,35]	;GET HIGH ORDER BITS
  6386	011022'	135440	044345'
  6387	011023'	405440	000377		RDBN79:	ANDI	T1,377		;STRIP EXTRA BITS
  6388	011024'	271651	000000			ADDI	T5,(T1)		;INCLUDE IN CHECKSUM
  6389	011025'	254000	005177'			RETSKP
  6390
  6391	011026'	056040	000000		RDBN80:	IN	1,		;GET NEXT BUFFER
  6392	011027'	254000	011031'			JRST	RDBN85		;GOT NEXT BUFFER
  6393	011030'	263740	000000			RET
  6394	011031'	550440	006233'		RDBN85:	HRRZ	T1,IHD		;GET ADDRES OF CURRENT BUFFER
  6395	011032'	574451	000002			HLRE	T1,2(T1)	;GET FIRST WORD IN BUFFER
  6396	011033'	322440	011010'			JUMPE	T1,RDBN70	;PROCEED
  6397	011034'	660400	000002			TXO	FLG,F.FLOP	;IS PACKED FILE
  6398		300600	006234'			LDB	T1,[POINT 6,IHD+1,11]	;GET S FIELD FROM INPUT POINTER
  6399	011035'	135440	044344'
  6400	011036'	306440	000022			CAIN	T1,^D18		;HALF WORD POINTER
  6401	011037'	254000	011010'			JRST	RDBN70		;YES
  6402	011040'	201440	000022			MOVEI	T1,^D18
  6403		300600	006234'			DPB	T1,[POINT 6,IHD+1,11]	;CHANGE POINTER
  6404	011041'	137440	044344'
  6405	011042'	200440	006235'			MOVE	T1,IHD+2	;GET WORD COUNT
  6406	011043'	242440	000001			LSH	T1,1		;MULTIPLY BY 2
  6407	011044'	202440	006235'			MOVEM	T1,IHD+2
  6408	011045'	254000	011010'			JRST	RDBN70
  6409
  6410		647336	071336		RDBNER:	TYPE	<improper format in input tape>
  6411	011046'	201440	044346'
  6412	011047'	260740	007655'
  6413	011050'	047000	000012			EXIT
  6414
  6415	011051'	000000	000000		DMPDEV:	EXP	0		;DEVICE FOR DUMP FILE
  6416	011052'	000000	000000			EXP	0		; LENGTH OF LOOKUP/ENTER BLOCK
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 135-1
DDT11	MAC	18-May-81 17:27		/FILE: HANDLING

  6417	011053'	000000	000000		DMPDIR:	EXP	0		; ADDRESS OF PATH BLOCK
  6418	011054'	000000	000000			EXP	0		; FILE NAME
  6419	011055'	000000	000000			EXP	0		; FILE EXTENSION
  6420	011056'				DMPTIM:	BLOCK	1		; TIME/DATE AND PROTECTION
  6421	011057'				DMPPTH:	BLOCK	2+5+1		; FILE DIRECTORY
  6422	011067'					BLOCK	1		; SWITCHES WORD
  6423	011070'					BLOCK	$FBLEN-<.-DMPDEV>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 136
DDT11	MAC	18-May-81 17:27		/FILE: HANDLING

  6424					;ROUTINES TO READ BOOT11 OR NETLDR DUMPS
  6425
  6426					;HERE TO FLUSH REST OF INPUT LINE
  6427	011071'	260740	006707'		RDUMP0:	CALL	FILCHR		;GET NEXT CHAR FROM DUMP
  6428	011072'	254000	011132'			JRST	RDUMP9		;END OF DUMP
  6429	011073'	200500	000011			MOVE	T2,T1		;COPY CHAR
  6430	011074'	302500	000012		RDUMP1:	CAIE	T2,12		;WE ARE LOOKING FOR A LINE FEED
  6431	011075'	306500	000015			CAIN	T2,15		;OR A CARRIAGE RETURN
  6432	011076'	254000	011101'			JRST	RDUMP2
  6433	011077'	302500	000014			CAIE	T2,14		;BUT A FORM FEED WILL DO
  6434	011100'	254000	011071'			JRST	RDUMP0		;AND DIDN'T FIND ONE
  6435	011101'	260740	006752'		RDUMP2:	CALL	INPOCT		;GET ADR
  6436	011102'	254000	011132'			JRST	RDUMP9
  6437	011103'	302500	000072			CAIE	T2,":"		;FINISHED READING ADDRESS ?
  6438	011104'	254000	011074'			JRST	RDUMP1		;FLUSH LINE
  6439	011105'	562440	000007			HRROM	T1,DOT		;SAVE ADDRESS
  6440	011106'	260740	006752'		RDUMP5:	CALL	INPOCT		;GET DATA FOR LINE
  6441	011107'	254000	011132'			JRST	RDUMP9		;END OF DUMP
  6442	011110'	306500	000040			CAIN	T2,40		;CHECK FOR SPACE
  6443	011111'	254000	011116'			JRST	RDUMP6		;THAT WAS DATA
  6444	011112'	302500	000015			CAIE	T2,15		;CHECK FOR CR
  6445	011113'	306500	000011			CAIN	T2,11		;CHECK FOR HT
  6446	011114'	254000	011116'			JRST	RDUMP6		;THAT WAS DATA
  6447	011115'	254000	011074'			JRST	RDUMP1		;FLUSH LINE
  6448	011116'	550500	000007		RDUMP6:	HRRZ	T2,DOT		;GET ADDRESS
  6449	011117'	313500	000001			CAMLE	T2,AC1
  6450	011120'	550040	000012			HRRZ	AC1,T2		;NEW HIGHEST LOCATION LOADED
  6451	011121'	260740	004177'			CALL	PUTFOO
  6452	011122'	332000	040432'			SKIPE	PDP8F
  6453	011123'	344340	011106'			AOJA	DOT,RDUMP5	;YES SO BACK FOR MORE DATA
  6454	011124'	242440	777770			LSH	T1,-^D8
  6455	011125'	350500	000007			AOS	T2,DOT
  6456	011126'	313500	000001			CAMLE	T2,AC1
  6457	011127'	550040	000012			HRRZ	AC1,T2		;NEW HIGHEST LOCATION LOADED
  6458	011130'	260740	004177'			CALL	PUTFOO
  6459	011131'	344340	011106'			AOJA	DOT,RDUMP5	;BACK FOR MORE DATA
  6460
  6461	011132'	200440	011150'		RDUMP9:	MOVE	T1,MEMLIM	;HIGHEST ADDRESS READ
  6462	011133'	202440	040511'			MOVEM	T1,S..END	;END OF SEARCH
  6463		203215	163720			TYPE	< highest location is >
  6464	011134'	201440	044354'
  6465	011135'	260740	007655'
  6466	011136'	200440	000001			MOVE	T1,AC1		;HIGHEST LOCATION LOADED
  6467	011137'	260740	007076'			CALL	ADRTYP		;DISPLAY ADDRESS
  6468	011140'	260740	007621'			CALL	CRLTYP		;TYPE A CR/LF
  6469	011141'	201440	000433'			MOVEI	T1,RSTART
  6470	011142'	202440	000000*			MOVEM	T1,.JBREN##
  6471	011143'	660400	100000			TXO	FLG,F.WENB	;SET WRITE ENABLE CAUSE SHOULDN'T HURT
  6472	011144'	336000	042172'			SKIPN	MRGFLG		;WANTED TO MERGE ?
  6473	011145'	254000	000435'			JRST	LEVL.0		;NO SO START
  6474	011146'	254000	005177'			RETSKP
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 137
DDT11	MAC	18-May-81 17:27		/FILE: HANDLING

  6475					;PDP11 WORDS ARE STORED IN PDP10 MEMORY AS FOLLOWS
  6476					;
  6477					;                      1             1 1 1 2             2 2             3
  6478					;  0 1 2             9 0             7 8 9 0             7 8             5
  6479					; +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  6480					; ! ! !    byte 1     !    byte 0     ! ! !    byte 3     !    byte 2     !
  6481					; +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  6482					;
  6483					;THE SPARE BITS ARE USED AS A FLAG TO SAY BYTE HAS BEEN USED
  6484					; I.E. BYTE WAS READ INTO FROM DUMP OR BINARY FILE OR WRITTEN BY USER
  6485					; E.G. IF BYTE 0 IS SET THEN BIT 1 IS SET AS A FLAG
  6486
  6487	011147'	000000	000000		MEMORY:	EXP	0		;ADDRESS OF DUMP MEMORY
  6488	011150'	777777	777777		MEMLIM:	EXP	-1		;HIGHEST LOCATION IN DUMP
  6489									; BIT ON IFF BYTE READ OR DEPOSITED
  6490	011151'	000000	000000		MEMUSE:	EXP	0		;T1,,POINTER TO MEMORY USE TABLE
  6491									; FOR EACH BYTE IN SIMULATED MEMORY, BIT WILL
  6492									; BE SET IF BYTE SET BY LOAD OR USER
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 138
DDT11	MAC	18-May-81 17:27		SIMULATION

  6493						SUBTTL	SIMULATION
  6494
  6495					;REGISTER USAGE
  6496
  6497					;WHEN SIMULATING REGS 0-7 ARE USED FOR CORRESPONDING PDP11 REG'S
  6498					; REGISTERS ALWAYS CLEAR EXCEPT FOR BITS 20-35
  6499			000006		SP=	6		;SIMULATED STACK POINTER
  6500			000007		PC=	7		;SIMULATED PC
  6501							; PC MUST ALWAYS BE EVEN
  6502			000013		MA=	T3		;CONTAINS LAST ADR SETUP UP BY CALLS THROUGH RFETCH
  6503							; SO RSTORE USES SAME LOC.   WORD ADDRESSES ARE LOADED THEN
  6504							; ROTATED RIGHT 2 POSITIONS.   BYTE ADDRESS ARE DIVIDED BY 4.
  6505							; REMAINDER OF DIVISION IS KEPT IN MA+1
  6506			040000		MA..UN==040000		;ADDRESS IS A UNIBUS DEVICE
  6507			020000		MA..RG==020000		;LOCATION IS REGISTER
  6508			010000		MA..IO==010000		;LOCATION IS IN PERIPHERAL AREA (I.E. 170000-177777)
  6509			000015		IR=	T5		;CONTAINS INSTRUCTION WHEN SIMULATING
  6510			000016		PS=	16		;SIMULATED PS
  6511			000020		PS...T==000020		;TRAP BIT
  6512			000010		PS...N==000010		;RESULT WAS NEGATIVE
  6513			000004		PS...Z==000004		;RESULT WAS ZERO
  6514			000002		PS...V==000002		;RESULT WAS ARITH OVERFLOW
  6515			000001		PS...C==000001		;RESULT WAS A CARRY
  6516
  6517	011152'	050300	000016		P.PLVL:	POINT	3,PS,30		;BYTE POINTER TO GET PROCESSOR LEVEL
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 139
DDT11	MAC	18-May-81 17:27		SIMULATION

  6518					;MACRO TO REMEMBER REFERENCES TO SIMULATED CORE
  6519			000000		RLMSIZ=	0
  6520						DEFINE	MEMREL (QQ) <
  6521						IF2	<
  6522					Q=	.
  6523						RELOC	RLMTAB+RLMSIZ
  6524						QQ,,Q
  6525						RELOC	Q
  6526					>;IF2
  6527					RLMSIZ=	RLMSIZ+1
  6528					>;DEFINE MEMREL
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 140
DDT11	MAC	18-May-81 17:27		SIMULATION

  6529					;MACRO TO GET A WORD FROM MEMORY
  6530					; FIRST ARG IS REGISTER TO USE AS AN INDEX
  6531					; 2ND ARG IS DESTINATION
  6532						DEFINE	LOAD (Q,QQ) <
  6533						XLIST
  6534					IFN	<Q-PC> <
  6535						TRNE	Q,1
  6536						JRST	NXM...		;DO ODD ADDRESS TRAP
  6537					>;IFN <Q-PC>
  6538					IFN	<MA-Q>,< HRRZ	MA,Q >	;COPY REG SO WE CAN ROT IT
  6539							MEMREL	MEMLIM
  6540						CAIL	MA,0
  6541					IFE	<QQ-T1> <
  6542						CALL	IOLOAD
  6543					LODRET==4		;NUMBER OF INSTRUCTIONS TO SKIP
  6544					>;IFE <QQ-T1>
  6545					IFN	<QQ-T1> <
  6546						JRST	[MOVEM	T1,IOLT1S#	;SAVE T1
  6547							CALL	IOLOAD+2
  6548							HRRZ	QQ,T1
  6549							MOVE	T1,IOLT1S#	;RESTORE T1
  6550							JRST	.+LODRET+1]
  6551					>;IFN <QQ-T1>
  6552						ROT	MA,-2
  6553						SKIPGE	MA
  6554							MEMREL	MEMORY
  6555						SKIPA	QQ,0(MA)
  6556							MEMREL	MEMORY
  6557						HLRZ	QQ,0(MA)
  6558						ANDI	QQ,177777	;STRIP EXTRA BITS
  6559					IFE	<QQ-PC> <
  6560						TRNE	PC,1
  6561						JRST	NXM...		;DO ODD ADDRESS TRAP
  6562					>;IFE <QQ-PC>
  6563					>;DEFINE LOAD (Q,QQ)
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 141
DDT11	MAC	18-May-81 17:27		SIMULATION

  6564					;MACRO TO GET A BYTE FROM MEMORY
  6565					; FIRST ARG IS REGISTER TO USE AS AN INDEX
  6566					; 2ND ARG IS DESTINATION
  6567						DEFINE	BLOAD (Q,QQ) <
  6568						XLIST
  6569					IFN	<MA-Q>,< HRRZ	MA,Q >	;COPY REG SO WE CAN DIVIDE IT
  6570							MEMREL	MEMLIM
  6571						CAIL	MA,0
  6572						CALL	IOBLOD
  6573					BLDRET==7		;NUMBER OF INSTRUCTIONS TO SKIP
  6574						LSHC	MA,-2		;IDIVI	MA,4
  6575						LSH	MA+1,-^D34
  6576						TRNE	MA+1,2
  6577						 MEMREL	MEMORY
  6578						SKIPA	QQ,0(MA)	;GET RH OF WORD
  6579						 MEMREL	MEMORY
  6580						HLRZ	QQ,0(MA)	;GET LH OF WORD
  6581						TRNE	MA+1,1		;WANT ODD BYTE ?
  6582						LSH	QQ,-^D8		;YES
  6583						ANDI	QQ,377		;STRIP EXTRA BITS
  6584					>;DEFINE BLOAD (Q,QQ)
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 142
DDT11	MAC	18-May-81 17:27		SIMULATION

  6585					;MACRO TO STORE WORD OR BYTE IN MEMORY AFTER DOING LOAD FROM SAME LOCATION
  6586					; ADDRESS IS IN MA, DATA IS FOUND IN T1 (LH MAY BE NONZERO E.G. SBC)
  6587
  6588						DEFINE	RSTORE (FLAG,TYPE) <
  6589						XLIST
  6590					IFE	<<FLAG>&SMF.BY> <	;FOLLOWING FOR WORD MODE
  6591						TLNE	MA,MA..RG	;WAS LOCATION A REGISTER ?
  6592						JRST	[HRRM	T1,(MA)		;DEPOSIT APPROPRIATE REG
  6593							TRNN	PC,1		;IN CASE SET PC
  6594							JRST	SIM11		;PC WAS GARBAGED
  6595							JRST	NXM...	]	;TAKE A TRAP
  6596						TLNE	MA,MA..IO	;WAS LOCATION AN IO REGISTER ?
  6597						JRST	[PUSH	P,[EXP SIM11]	;PUSH RETURN ON STACK
  6598							JRST	IOR.'TYPE ]	;RESTORE WORD TO MEMORY
  6599						SKIPGE	MA
  6600						JRST	.+3
  6601						MEMREL	MEMORY
  6602						HRLM	T1,0(MA)
  6603						JRST	SIM11
  6604						MEMREL	MEMORY
  6605						HRRM T1,0(MA)
  6606					>;IFE <<FLAG>&SMF.BY>
  6607					
  6608					IFN	<<FLAG>&SMF.BY> <	;FOLLOWING FOR BYTE RESTORE
  6609						TLNN MA,MA..RG	;WAS LOCATION A REGISTER ?
  6610						JRST .+5		;NOT A REGISTER
  6611						DPB T1,[POINT 8,(MA),35]	;THIS IS SLOW BUT PROB BEST WAY
  6612						TRNN PC,1		;CHECK PC NOT POLLUTED
  6613						JRST SIM11
  6614						JRST NXM...		;TAKE A BUS TRAP
  6615					
  6616						TLNE MA,MA..IO	;WAS LOCATION AN IO REGISTER ?
  6617						JRST [PUSH	P,[EXP SIM11]	;PUSH RETURN ON STACK
  6618							JRST	IOBR.'TYPE ]	;RESTORE BYTE TO MEMORY
  6619						DPB T1,SIMPTR(MA+1)	;PUT BYTE BACK INTO MEMORY
  6620					>;IFN <<FLAG>&SMF.BY>
  6621					>;DEFINE RSTORE
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 143
DDT11	MAC	18-May-81 17:27		SIMULATION

  6622					;MACRO TO STORE A WORD IN MEMORY
  6623					; FIRST ARG IS REGISTER TO USE AS AN INDEX
  6624					; 2ND ARG IS DESTINATION
  6625						DEFINE	STORE (Q,QQ) <
  6626						XLIST
  6627					IFN	<Q-PC> <
  6628						TRNE	Q,1
  6629						JRST	NXM...		;TAKE A BUS TRAP
  6630					>;IFE <Q-PC>
  6631					IFN	<MA-Q>,< HRRZ	MA,Q >
  6632						MEMREL	MEMLIM
  6633						CAIL	MA,0		;BE SURE IN CORE
  6634						JRST	[IFN	<T1-QQ>,< HRRZ T1,QQ>
  6635					Z=	7
  6636							IFE	<Q-6> <Z=Z+2>
  6637							PUSH	P,[EXP .+Z]
  6638							JRST	IOSTOR ]
  6639					IFE	<Q-6>,<
  6640						CAIGE	MA,400		;IS THIS A STACK VIOLATION ?
  6641						JSR	STCKVP		;RECORD VIOLATION (& RESTORE PS)
  6642					>;IFE <Q-6>
  6643						ROT	MA,-2
  6644						SKIPGE	MA
  6645						JRST	.+3
  6646						MEMREL	MEMORY
  6647						HRLM	QQ,0(MA)
  6648						JRST	.+2
  6649						MEMREL	MEMORY
  6650						HRRM	QQ,0(MA)
  6651					>;DEFINE STORE (Q,QQ)
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 144
DDT11	MAC	18-May-81 17:27		SIMULATION

  6652					;MACRO TO STORE A BYTE IN MEMORY
  6653					; FIRST ARG IS REGISTER TO USE AS AN INDEX
  6654					; 2ND ARG IS DESTINATION
  6655						DEFINE	BSTORE (Q,QQ) <
  6656						XLIST
  6657						 IFN	<MA-Q>,< HRRZ	MA,Q >
  6658							MEMREL	MEMLIM
  6659						CAIL	MA,0		;BE SURE IN CORE
  6660						JRST	[IFN	<T1-QQ>,< HRRZ T1,QQ>
  6661					Z=	4
  6662							IFE	<Q-6>,<Z=Z+2>
  6663							PUSH	P,[EXP .+Z]
  6664							JRST	IOBSTO ]
  6665						 IFE	<Q-6>,<
  6666						CAIGE	MA,400		;IS THIS A STACK VIOLATION ?
  6667						JSR	STCKVP		;RECORD VIOLATION (& RESTORE PS)
  6668					    >;IFE <Q-6>
  6669						LSHC	MA,-2		;IDIVI	MA,4
  6670						LSH	MA+1,-^D34
  6671						DPB	QQ,SIMPTR(MA+1)	;STORE BYTE IN MEMORY
  6672					>;DEFINE BSTORE (Q,QQ)
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 145
DDT11	MAC	18-May-81 17:27		SIMULATION

  6673					;MACRO TO PUT PC AND PS ON STACK
  6674						DEFINE	INTSAV (VEC) <
  6675						XLIST
  6676						CAIG	SP,177774
  6677						CAIG	SP,400-40
  6678						JRST	RSTACK		;RED STACK VIOLATION
  6679						MOVEI	SP,-4(SP)
  6680						HRRZI	MA,2(SP)
  6681						STORE	MA,PS		;SAVE PS ON STACK
  6682						STORE	SP,PC		;SAVE PC ON STACK
  6683						MOVEI	MA,VEC
  6684						LOAD	MA,T2		;GET NEW PC IN TEMP REG
  6685						MOVEI	MA,2+VEC
  6686						LOAD	MA,T1		;GET NEW PS
  6687						ANDI	T1,377		;ONLY HAVE A RH
  6688						EXCH	PS,T1		;SET NEW PS (AND PRESERVE OLD ONE)
  6689						MOVE	PC,T2		;LOAD NEW PC
  6690						CALL	PS.CHK		;ADJUST FOR NEW PS LEVEL
  6691						TRNE	PC,1		;BE SURE OK
  6692						JRST	NXM...		;TAKE A BUS TRAP
  6693					>;DEFINE INTSAV
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 146
DDT11	MAC	18-May-81 17:27		SIMULATION

  6694						DEFINE	ADC. (FLAG) <
  6695						JSR	@RFETCH(IR)	;GET OPERAND
  6696						TRZ	PS,PS...N!PS...Z!PS...V
  6697						TRZE	PS,PS...C
  6698						JRST	.+6
  6699						TRNE	T1,100000
  6700						TRO	PS,PS...N
  6701						JUMPN	T1,SIM11
  6702						TRO	PS,PS...Z
  6703						JRST	SIM11
  6704						AOS	T1
  6705						TRNE	T1,100000
  6706						TRO	PS,PS...N
  6707						TRZE	T1,200000	;OVERFLOW IFF WENT TO ZERO
  6708						TRO	PS,PS...Z!PS...C
  6709						CAIN	T1,100000
  6710						TRO	PS,PS...V
  6711						RSTORE	FLAG
  6712						>
  6713						DEFINE	ADCB. (FLAG) <
  6714						JSR	@BRFTCH(IR)	;GET OPERAND
  6715						TRZ	PS,PS...N!PS...Z!PS...V
  6716						TRZE	PS,PS...C
  6717						JRST	.+6
  6718						TRNE	T1,000200
  6719						TRO	PS,PS...N
  6720						JUMPN	T1,SIM11
  6721						TRO	PS,PS...Z
  6722						JRST	SIM11
  6723						AOS	T1
  6724						TRNE	T1,000200
  6725						TRO	PS,PS...N
  6726						TRZE	T1,000400	;OVERFLOW IFF WENT TO ZERO
  6727						TRO	PS,PS...Z!PS...C
  6728						CAIN	T1,000200
  6729						TRO	PS,PS...V
  6730						RSTORE	FLAG
  6731						>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 147
DDT11	MAC	18-May-81 17:27		SIMULATION

  6732						DEFINE	ADD. (FLAG) <
  6733						MOVE	T2,T1		;SAVE SRC
  6734						JSR	@RFETCH(IR)	;GET DST
  6735						MOVE	IR,T1		;SAVE COPY OF DST FOR PS...V CALC
  6736						ADD	T1,T2		;MAKES RESULT
  6737						TRZ	PS,PS...N!PS...Z!PS...V!PS...C
  6738						TRNE	T1,100000	;CHECK FOR NEGATIVE
  6739						TRO	PS,PS...N
  6740						TRZE	T1,600000	;CHECK FOR OVERFLOW
  6741						TRO	PS,PS...C
  6742						SKIPN	T1
  6743						TRO	PS,PS...Z
  6744						EQV	IR,T2		;SRC EQV DST
  6745						XOR	T2,T1		;RESULT XOR SRC
  6746						AND	T2,IR
  6747						TRNE	T2,100000
  6748						TRO	PS,PS...V
  6749						RSTORE	FLAG
  6750						>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 148
DDT11	MAC	18-May-81 17:27		SIMULATION

  6751						DEFINE	ASH. (FLAG) <
  6752						ANDI	T2,7		;LEAVE ONLY REG FIELD
  6753						JSR	@FETCH(IR)	;GET NN
  6754						TRZ	PS,PS...N!PS...Z!PS...V!PS...C
  6755						MOVE	MA,(T2)		;GET REGISTER TO SHIFT
  6756						TRNE	MA,100000	;WAS REGISTER NEGATIVE ?
  6757						IOR	MA,[-1,,700000]	;EXTEND SIGN
  6758						TRNE	T1,40		;RIGHT OR LEFT SHIFT ?
  6759						JRST	[IORI	T1,777740	;SHIFT RIGHT
  6760							ASHC	MA,(T1)		;SHIFT IT
  6761							TLNE	MA+1,200000	;WAS LAST BIT OUT A 1 ?
  6762							TRO	PS,PS...C	;REMEMBER LAST BIT OUT
  6763							JRST	.+13 ]
  6764						ANDI	T1,37		;SHIFT LEFT
  6765						;JUMPE	T1, ????		*****
  6766						;	*****				*****
  6767						;	*****	WHAT IF SHIFT 0 ???	*****
  6768						;	*****				*****
  6769						JOV	.+1		;CLEAR FLAG
  6770						ASH	MA,(T1)		;SHIFT IT
  6771						TRNE	MA,200000	;WAS LAST BIT OUT SET ?
  6772						TRO	PS,PS...C	;LAST BIT OUT WAS SET
  6773						JOV	.+4		;LOSE ANY BITS ?
  6774						SKIPGE	T1,MA		;NEGATIVE ?
  6775						XOR	T1,[-1,,700000]
  6776						TDNE	T1,[-1,,700000]
  6777						TRO	PS,PS...V
  6778						ANDI	MA,177777	;STRIP EXTRA BITS
  6779						TRNE	MA,100000	;IS RESULT NEGATIVE ?
  6780						TRO	PS,PS...N	;WAS NEGATIVE RESULT
  6781						SKIPN	MA		;WAS RESULT ZERO ?
  6782						TRO	PS,PS...Z	;YES
  6783						MOVEM	MA,(T2)		;UPDATE ORIGINAL REGISTER
  6784						TRNE	PC,1		;DID THAT POLLUTE THE PC ?
  6785						JRST	NXM...		;GIVE A BUS TRAP
  6786						>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 149
DDT11	MAC	18-May-81 17:27		SIMULATION

  6787						DEFINE	ASHC. (FLAG) <
  6788						; *****				*****
  6789						; *****	WHAT IF REG IS ODD ??	*****
  6790						; *****				*****
  6791						ANDI	T2,7		;LEAVE ONLY REG FIELD
  6792						JSR	@FETCH(IR)	;GET NN
  6793						TRZ	PS,PS...N!PS...Z!PS...V!PS...C
  6794						MOVE	MA,(T2)		;GET HIGH ORDER BITS
  6795						LSH	MA,^D16		;POSITION
  6796						MOVE	IR,T2		;COPY REGISTER ADR
  6797						IORI	IR,1		;MAKE LOW ORDER BITS ADR
  6798						IOR	MA,(IR)		;GET LOW ORDER BITS
  6799						TLNE	MA,020000	;WAS REG NEGATIVE ?
  6800						TLO	MA,740000	;EXTEND SIGN
  6801						TRNE	T1,40		;RIGHT OR LEFT SHIFT ?
  6802						JRST	[IORI	T1,777740	;SHIFT RIGHT
  6803							ASHC	MA,(T1)		;SHIFT IT
  6804							TLNE	MA+1,200000;WAS LAST BIT OUT A 1 ?
  6805							TRO	PS,PS...C
  6806							JRST	.+13 ]
  6807						ANDI	T1,37		;SHIFT LEFT
  6808						;JUMPE	T1, ????		*****
  6809						;	*****				*****
  6810						;	*****	WHAT IF SHIFT 0 ???	*****
  6811						;	*****				*****
  6812						JOV	.+1		;CLEAR FLAG
  6813						ASH	MA,(T1)		;SHIFT IT
  6814						TLNE	MA,040000	;WIN A CARRY BIT ?
  6815						TRO	PS,PS...C	;WON A CARRY
  6816						JOV	.+4
  6817						SKIPGE	T1,MA		;WAS THAT NEGATIVE ?
  6818						TLC	T1,760000	;CL7AR EXTENDED SIGN
  6819						TLNE	T1,760000	;DID WE LOSE BITS ?
  6820						TRO	PS,PS...V	;LOST BITS
  6821						TLNE	MA,020000	;IS RESULT NEGATIVE ?
  6822						TRO	PS,PS...N	;WAS NEGATIVE RESULT
  6823						TLZ	MA,740000	;STRIP EXTRA BITS
  6824						SKIPN	MA		;WAS RESULT ZERO ?
  6825						TRO	PS,PS...Z	;YES
  6826						MOVE	T1,MA		;COPY RESULT
  6827						ANDI	T1,177777	;STRIP EXTRA BITS
  6828						MOVEM	T1,(IR)		;RESTORE LOW ORDER BITS
  6829						LSH	MA,-^D16	;POSITION HIGH ORDER BITS
  6830						MOVEM	MA,(T2)		;RESTORE NEW HIGH ORDER BITS
  6831						TRNE	PC,1		;DID THAT POLLUTE THE PC ?
  6832						JRST	NXM...		;GIVE A BUS TRAP
  6833						>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 150
DDT11	MAC	18-May-81 17:27		SIMULATION

  6834						DEFINE	ASL. (FLAG) <
  6835						JSR	@RFETCH(IR)	;GET OPERAND
  6836						TRZ	PS,PS...N!PS...Z!PS...V!PS...C
  6837						TRNN	T1,040000	;CHECK NEW N BIT
  6838						JRST	.+5		;NO NEW N BIT
  6839						TRZE	T1,100000	;CHECK NEW C BIT
  6840						TROA	PS,PS...N!PS...C
  6841						TRO	PS,PS...N!PS...V
  6842						JRST	.+3
  6843						TRZE	T1,100000	;CHECK NEW C BIT
  6844						TRO	PS,PS...C!PS...V
  6845						LSH	T1,1
  6846						SKIPN	T1
  6847						TRO	PS,PS...Z
  6848						RSTORE	FLAG
  6849						>
  6850						DEFINE	ASLB. (FLAG) <
  6851						JSR	@BRFTCH(IR)	;GET OPERAND
  6852						TRZ	PS,PS...N!PS...Z!PS...V!PS...C
  6853						TRNN	T1,000100	;CHECK NEW N BIT
  6854						JRST	.+5		;NO NEW N BIT
  6855						TRZE	T1,000200	;CHECK NEW C BIT
  6856						TROA	PS,PS...N!PS...C
  6857						TRO	PS,PS...N!PS...V
  6858						JRST	.+3
  6859						TRZE	T1,000200	;CHECK NEW C BIT
  6860						TRO	PS,PS...C!PS...V
  6861						LSH	T1,1
  6862						SKIPN	T1
  6863						TRO	PS,PS...Z
  6864						RSTORE	FLAG
  6865						>
  6866						DEFINE	ASR. (FLAG) <
  6867						JSR	@RFETCH(IR)	;GET OPERAND
  6868						TRZ	PS,PS...N!PS...Z!PS...V!PS...C
  6869						TRNN	T1,100000	;CHECK NEW N BIT
  6870						JRST	.+6		;NO NEW N BIT
  6871						TRO	T1,200000	;SET NEW SIGN BIT
  6872						TRZE	T1,1		;CHECK NEW C BIT
  6873						TROA	PS,PS...N!PS...C
  6874						TRO	PS,PS...N!PS...V
  6875						JRST	.+3
  6876						TRZE	T1,1		;CHECK NEW C BIT
  6877						TRO	PS,PS...C!PS...V
  6878						LSH	T1,-1
  6879						SKIPN	T1
  6880						TRO	PS,PS...Z
  6881						RSTORE	FLAG
  6882						>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 151
DDT11	MAC	18-May-81 17:27		SIMULATION

  6883						DEFINE	ASRB. (FLAG) <
  6884						JSR	@BRFTCH(IR)	;GET OPERAND
  6885						TRZ	PS,PS...N!PS...Z!PS...V!PS...C
  6886						TRNN	T1,000200	;CHECK NEW N BIT
  6887						JRST	.+6		;NO NEW N BIT
  6888						TRO	T1,000400	;SET NEW SIGN BIT
  6889						TRZE	T1,1		;CHECK NEW C BIT
  6890						TROA	PS,PS...N!PS...C
  6891						TRO	PS,PS...N!PS...V
  6892						JRST	.+3
  6893						TRZE	T1,1		;CHECK NEW C BIT
  6894						TRO	PS,PS...C!PS...V
  6895						LSH	T1,-1
  6896						SKIPN	T1
  6897						TRO	PS,PS...Z
  6898						RSTORE	FLAG
  6899						>
  6900						DEFINE	BCC. (FLAG) <
  6901						TRNE	PS,PS...C
  6902						JRST	SIM11		;NO BRANCH
  6903						>
  6904						DEFINE	BCS. (FLAG) <
  6905						TRNN	PS,PS...C
  6906						JRST	SIM11		;NO BRANCH
  6907						>
  6908						DEFINE	BEQ. (FLAG) <
  6909						TRNN	PS,PS...Z
  6910						JRST	SIM11
  6911						>
  6912						DEFINE	BGE. (FLAG) <
  6913						TRNN	PS,PS...N
  6914						JRST	[TRNE	PS,PS...V
  6915							JRST	SIM11		;NO BRANCH
  6916							JRST	.+3 ]
  6917						TRNN	PS,PS...V
  6918						JRST	SIM11		;NO BRANCH
  6919						>
  6920						DEFINE	BGT. (FLAG) <
  6921						TRNE	PS,PS...Z
  6922						JRST	SIM11		;NO BRANCH
  6923						TRNN	PS,PS...N
  6924						JRST	[TRNE	PS,PS...V
  6925							JRST	SIM11		;NO BRANCH
  6926							JRST	.+3 ]
  6927						TRNN	PS,PS...V
  6928						JRST	SIM11		;NO BRANCH
  6929						>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 152
DDT11	MAC	18-May-81 17:27		SIMULATION

  6930						DEFINE	BHI. (FLAG) <
  6931						TRNE	PS,PS...Z!PS...C
  6932						JRST	SIM11		;NO BRANCH
  6933						>
  6934						DEFINE	BHIS. (FLAG) <
  6935						TRNE	PS,PS...C
  6936						JRST	SIM11		;NO BRANCH
  6937						>
  6938						DEFINE	BIC. (FLAG) <
  6939						MOVE	T2,T1		;COPY SRC
  6940						JSR	@RFETCH(IR)	;GET DST
  6941						ANDCM	T1,T2		;CLEAR SOME BITS
  6942						TRZ	PS,PS...N!PS...Z!PS...V
  6943						TRNE	T1,100000
  6944						TRO	PS,PS...N
  6945						SKIPN	T1
  6946						TRO	PS,PS...Z
  6947						RSTORE	FLAG,C
  6948						>
  6949						DEFINE	BICB. (FLAG) <
  6950						MOVE	T2,T1		;COPY SRC
  6951						JSR	@BRFTCH(IR)	;GET DST
  6952						ANDCM	T1,T2		;CLEAR SOME BITS
  6953						TRZ	PS,PS...N!PS...Z!PS...V
  6954						TRNE	T1,000200
  6955						TRO	PS,PS...N
  6956						SKIPN	T1
  6957						TRO	PS,PS...Z
  6958						RSTORE	FLAG,C
  6959						>
  6960						DEFINE	BIS. (FLAG) <
  6961						MOVE	T2,T1		;COPY SRC
  6962						JSR	@RFETCH(IR)	;GET DST
  6963						IOR	T1,T2		;SET NEW BITS
  6964						TRZ	PS,PS...N!PS...Z!PS...V
  6965						TRNE	T1,100000
  6966						TRO	PS,PS...N
  6967						SKIPN	T1
  6968						TRO	PS,PS...Z
  6969						RSTORE	FLAG,S
  6970						>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 153
DDT11	MAC	18-May-81 17:27		SIMULATION

  6971						DEFINE	BISB. (FLAG) <
  6972						MOVE	T2,T1		;COPY SRC
  6973						JSR	@BRFTCH(IR)	;GET DST
  6974						IOR	T1,T2		;SET NEW BITS
  6975						TRZ	PS,PS...N!PS...Z!PS...V
  6976						TRNE	T1,000200
  6977						TRO	PS,PS...N
  6978						SKIPN	T1
  6979						TRO	PS,PS...Z
  6980						RSTORE	FLAG,S
  6981						>
  6982						DEFINE	BIT. (FLAG) <
  6983						MOVE	T2,T1		;COPY FIRST OPERAND
  6984						JSR	@FETCH(IR)	;GET 2ND OPERAND
  6985						TRZ	PS,PS...N!PS...Z!PS...V
  6986						AND	T1,T2		;MASK THE BITS
  6987						SKIPN	T1
  6988						TRO	PS,PS...Z
  6989						TRNE	T1,100000
  6990						TRO	PS,PS...N
  6991						>
  6992						DEFINE	BITB. (FLAG) <
  6993						MOVE	T2,T1		;COPY FIRST OPERAND
  6994						JSR	@BFETCH(IR)	;GET 2ND OPERAND
  6995						TRZ	PS,PS...N!PS...Z!PS...V
  6996						AND	T1,T2		;MASK THE BITS
  6997						SKIPN	T1
  6998						TRO	PS,PS...Z
  6999						TRNE	T1,000200
  7000						TRO	PS,PS...N
  7001						>
  7002						DEFINE	BLE. (FLAG) <
  7003						TRNE	PS,PS...Z
  7004						JRST	.+5		;BRANCH
  7005						TRNE	PS,PS...N
  7006						JRST	[TRNE	PS,PS...V
  7007							JRST	SIM11		;NO BRANCH
  7008							JRST	.+3 ]
  7009						TRNN	PS,PS...V
  7010						JRST	SIM11		;NO BRANCH
  7011						>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 154
DDT11	MAC	18-May-81 17:27		SIMULATION

  7012						DEFINE	BLO. (FLAG) <
  7013						TRNN	PS,PS...C
  7014						JRST	SIM11		;NO BRANCH
  7015						>
  7016						DEFINE	BLOS. (FLAG) <
  7017						TRNN	PS,PS...Z!PS...C
  7018						JRST	SIM11		;NO BRANCH
  7019						>
  7020						DEFINE	BLT. (FLAG) <
  7021						TRNE	PS,PS...N
  7022						JRST	[TRNE	PS,PS...V
  7023							JRST	SIM11		;NO BRANCH
  7024							JRST	.+3 ]
  7025						TRNN	PS,PS...V
  7026						JRST	SIM11		;NO BRANCH
  7027						>
  7028						DEFINE	BMI. (FLAG) <
  7029						TRNN	PS,PS...N
  7030						JRST	SIM11		;NO BRANCH
  7031						>
  7032						DEFINE	BNE. (FLAG) <
  7033						TRNE	PS,PS...Z
  7034						JRST	SIM11
  7035						>
  7036						DEFINE	BPL. (FLAG) <
  7037						TRNE	PS,PS...N
  7038						JRST	SIM11		;NO BRANCH
  7039						>
  7040						DEFINE	BPT. (FLAG) <
  7041						INTSAV	14
  7042						>
  7043						DEFINE	BR. (FLAG) <
  7044						>
  7045						DEFINE	BVC. (FLAG) <
  7046						TRNE	PS,PS...V
  7047						JRST	SIM11		;NO BRANCH
  7048						>
  7049						DEFINE	BVS. (FLAG) <
  7050						TRNN	PS,PS...V
  7051						JRST	SIM11		;NO BRANCH
  7052						>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 155
DDT11	MAC	18-May-81 17:27		SIMULATION

  7053					;DEFINE CCC. (FLAG) <>	;HANDLED BY .CCCLR
  7054					;DEFINE CLC. (FLAG) <>	;HANDLED BY .CCCLR
  7055					;DEFINE CLN. (FLAG) <>	;HANDLED BY .CCCLR
  7056						DEFINE	CLR. (FLAG) <
  7057						HRRM PS,PS.REG+1	;IN CASE OF BUS TRAP
  7058						SETZ	T1,
  7059						TRZ	PS,PS...N!PS...V!PS...C
  7060						TRO	PS,PS...Z
  7061						JRST	@STUFF(IR)
  7062					ZZRET==	-1
  7063						>
  7064						DEFINE	CLRB. (FLAG) <
  7065						HRRM PS,PS.REG+1	;IN CASE OF BUS TRAP
  7066						SETZ	T1,
  7067						TRZ	PS,PS...N!PS...V!PS...C
  7068						TRO	PS,PS...Z
  7069						JRST	@BSTUFF(IR)
  7070					ZZRET==	-1
  7071						>
  7072					;DEFINE CLV. (FLAG) <>	;HANDLED BY .CCCLR
  7073					;DEFINE CLZ. (FLAG) <>	;HANDLED BY .CCCLR
  7074						DEFINE	CMP. (FLAG) <
  7075						MOVE	T2,T1		;COPY FIRST OPERAND
  7076						JSR	@FETCH(IR)	;GET 2ND OPERAND
  7077						MOVE	IR,T2		;ANOTHER COPY OF SRC FOR PS...V CALC
  7078						TRZ	PS,PS...N!PS...Z!PS...V!PS...C
  7079						SUB	T2,T1
  7080						TRNE	T2,100000
  7081						TRO	PS,PS...N
  7082						TRNN	T2,177777
  7083						TRO	PS,PS...Z
  7084						TRNE	T2,200000
  7085						TRO	PS,PS...C
  7086						XOR	IR,T1		;SRC XOR DST
  7087						EQV	T1,T2		;CHECK RESULT AND DST
  7088						AND	T1,IR
  7089						TRNE	T1,100000
  7090						TRO	PS,PS...V	;SAME SIGN SO OVERFLOW
  7091						>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 156
DDT11	MAC	18-May-81 17:27		SIMULATION

  7092						DEFINE	CMPB. (FLAG) <
  7093						MOVE	T2,T1		;COPY FIRST OPERAND
  7094						JSR	@BFETCH(IR)	;GET 2ND OPERAND
  7095						MOVE	IR,T2		;ANOTHER COPY OF SRC FOR PS...V CALC
  7096						TRZ	PS,PS...N!PS...Z!PS...V!PS...C
  7097						SUB	T2,T1
  7098						TRNE	T2,000200
  7099						TRO	PS,PS...N
  7100						TRNN	T2,000377
  7101						TRO	PS,PS...Z
  7102						TRNE	T2,000400
  7103						TRO	PS,PS...C
  7104						XOR	IR,T1		;SRC XOR DST
  7105						EQV	T1,T2		;CHECK RESULT AND DST
  7106						AND	T1,IR
  7107						TRNE	T1,000200
  7108						TRO	PS,PS...V	;SAME SIGN SO OVERFLOW
  7109						>
  7110						DEFINE	COM. (FLAG) <
  7111						JSR	@RFETCH(IR)	;GET OPERAND
  7112						TRZ	PS,PS...N!PS...Z!PS...V
  7113						TRO	PS,PS...C
  7114						TRCE	T1,177777	;PERFORM COMPLEMENT AND CHECK FOR -1 RESULT
  7115						TRNE	T1,100000
  7116						TRO	PS,PS...N
  7117						SKIPN	T1
  7118						TRO	PS,PS...Z
  7119						RSTORE	FLAG
  7120						>
  7121						DEFINE	COMB. (FLAG) <
  7122						JSR	@BRFTCH(IR)	;GET OPERAND
  7123						TRZ	PS,PS...N!PS...Z!PS...V
  7124						TRO	PS,PS...C
  7125						TRCE	T1,000377	;PERFORM COMPLEMENT AND CHECK FOR -1 RESULT
  7126						TRNE	T1,000200
  7127						TRO	PS,PS...N
  7128						SKIPN	T1
  7129						TRO	PS,PS...Z
  7130						RSTORE	FLAG
  7131						>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 157
DDT11	MAC	18-May-81 17:27		SIMULATION

  7132						DEFINE	DEC. (FLAG) <
  7133						JSR	@RFETCH(IR)	;GET OPERAND
  7134						TRZ	PS,PS...N!PS...Z!PS...V
  7135						SOSN	T1
  7136						TRO	PS,PS...Z
  7137						ANDI	T1,177777
  7138						TRNE	T1,100000
  7139						TRO	PS,PS...N
  7140						CAIN	T1,077777
  7141						TRO	PS,PS...V
  7142						RSTORE	FLAG
  7143						>
  7144						DEFINE	DECB. (FLAG) <
  7145						JSR	@BRFTCH(IR)	;GET OPERAND
  7146						TRZ	PS,PS...N!PS...Z!PS...V
  7147						SOSN	T1
  7148						TRO	PS,PS...Z
  7149						ANDI	T1,000377
  7150						TRNE	T1,000200
  7151						TRO	PS,PS...N
  7152						CAIN	T1,000177
  7153						TRO	PS,PS...V
  7154						RSTORE	FLAG
  7155						>
  7156						DEFINE	DIV. (FLAG) <
  7157						ANDI	T2,7		;LEAVE REGISTER FIELD
  7158						JSR	@FETCH(IR)	;GET DIVISOR
  7159						TRZ	PS,PS...N!PS...Z!PS...V!PS...C
  7160						JUMPE	T1,[TRO PS,PS...C!PS...V	;SET FLAGS
  7161							JRST	SIM11 ]
  7162						TRNE	T1,100000	;NEGATIVE DIVSOR ?
  7163						IOR	T1,[-1,,700000]	;EXTEND SIGN
  7164						MOVE	MA,(T2)		;GET HIGH ORDER BITS OF DIVIDEND
  7165						LSH	MA,^D16		;POSITION
  7166						TLNE	MA,020000	;NEGATIVE ?
  7167						TLO	MA,760000	;EXTEND SIGN
  7168						MOVE	IR,T2		;COPY REG ADR
  7169						IORI	IR,1
  7170						IOR	MA,(IR)		;GET LOW ORDER BITS
  7171						IDIV	MA,T1		;DO THE DIVISION
  7172						ANDI	MA,177777	;STRIP EXTRA BITS
  7173						MOVEM	MA,(T2)
  7174						TRO	T1,1		;OTHER REGISTER
  7175						ANDI	MA+1,177777	;STRIP OTHER BITS
  7176						MOVEM	MA+1,(T2)	;AND SAVE THESE AS WELL
  7177						TRNE	MA,100000	;NEGATIVE RESULT ?
  7178						TRO	PS,PS...N	;REMEMBER NEGATIVE
  7179						ANDI	MA,177777	;STRIP EXTRA BITS
  7180						SKIPN	MA
  7181						TRO	PS,PS...Z	;REMEMBER ZERO RESULT
  7182						TRNE	PC,1		;DID THAT POLLUTE THE PC ?
  7183						JRST	NXM...		;GIVE A BUS TRAP
  7184						>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 158
DDT11	MAC	18-May-81 17:27		SIMULATION

  7185						DEFINE	EMT. (FLAG) <
  7186						INTSAV	30
  7187						>
  7188						DEFINE	FADD. (FLAG) <
  7189						JRST	ILLINS
  7190					ZZRET==	-1
  7191						>
  7192						DEFINE	FDIV. (FLAG) <
  7193						JRST	ILLINS
  7194					ZZRET==	-1
  7195						>
  7196						DEFINE	FMUL. (FLAG) <
  7197						JRST	ILLINS
  7198					ZZRET==	-1
  7199						>
  7200						DEFINE	FSUB. (FLAG) <
  7201						JRST	ILLINS
  7202					ZZRET==	-1
  7203						>
  7204						DEFINE	HALT. (FLAG) <
  7205						TXZ	FLG,F.RUNF
  7206						TXO	FLG,F.HALT	;FLAG WE DID A HALT
  7207						HRROS	INTDLY		;SO WE NOTICE RUN FLOP
  7208						>
  7209						DEFINE	INC. (FLAG) <
  7210						JSR	@RFETCH(IR)	;GET OPERAND
  7211						TRZ	PS,PS...N!PS...Z!PS...V
  7212						AOS	T1
  7213						TRNE	T1,100000
  7214						TRO	PS,PS...N
  7215						TRZE	T1,200000	;HAPPENS IIF
  7216						TRO	PS,PS...Z	; OPERAND NOW ZERO
  7217						CAIN	T1,100000
  7218						TRO	PS,PS...V
  7219						RSTORE	FLAG
  7220						>
  7221						DEFINE	INCB. (FLAG) <
  7222						JSR	@BRFTCH(IR)	;GET OPERAND
  7223						TRZ	PS,PS...N!PS...Z!PS...V
  7224						AOS	T1
  7225						TRNE	T1,000200
  7226						TRO	PS,PS...N
  7227						TRZE	T1,000400	;HAPPENS IFF
  7228						TRO	PS,PS...Z	; OPERAND NOW ZERO
  7229						CAIN	T1,000200
  7230						TRO	PS,PS...V
  7231						RSTORE	FLAG
  7232						>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 159
DDT11	MAC	18-May-81 17:27		SIMULATION

  7233						DEFINE	IOT. (FLAG) <
  7234						INTSAV	20
  7235						>
  7236						DEFINE	JMP. (FLAG) <
  7237						JSR	@JMPCLC(IR)	;CALCULATE ADDR
  7238						MOVE	PC,T1		;SET NEW PC
  7239						TRNE	PC,1		;BE SURE KOSHER PC
  7240						JRST	NXM...
  7241						>
  7242						DEFINE	JSR. (FLAG) <
  7243						JSR	@JMPCLC(IR)	;GET ADR OF JSR
  7244						TRZ	T2,777770	;REG IN JSR REG,FOO
  7245						HRLM	T1,T2		;SAVE SUBROUTINE ADR
  7246						MOVE	T1,(T2)		;GET CURRENT REG CONTENTS
  7247						MOVEI	SP,-2(SP)	;START PUSHING OLD REG ON STACK
  7248						ANDI	SP,177777	;BE SURE DIDN'T PUSH TO FAR
  7249						HRRZM	PC,(T2)		;PUT PC IN REG
  7250						HLRZ	PC,T2		;GET SUBROUTINE ADR BACK
  7251						HRRM PS,PS.REG+1	;SAVE PS IN CASE OF STACK VIOLATION
  7252						STORE	SP,T1		;FINISH PUSHING REG ON STACK
  7253						TRNE	PC,1		;BE SURE NEW PC KOSHER
  7254						JRST	NXM...		;DIE
  7255						>
  7256						DEFINE	MARK. (FLAG) <
  7257						ANDI	IR,77		;LEAVES N
  7258						LSH	IR,1		;MAKES N*2
  7259						HRRZ	SP,IR
  7260						ADDI	SP,(PC)		;SP FROM PC + 2*NN
  7261						HRRZ	PC,5		;PC FROM R5
  7262						LOAD	SP,5
  7263						MOVEI	SP,2(SP)
  7264						ANDI	SP,177777
  7265						TRNE	PC,1		;IS NEW PC OK
  7266						JRST	NXM...		;TAKE A BUS TRAP
  7267						>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 160
DDT11	MAC	18-May-81 17:27		SIMULATION

  7268						DEFINE	MFPS. (FLAG) <
  7269						HRRM PS,PS.REG+1	;IN CASE OF BUS TRAP
  7270						HRRZ	T1,PS		;GET DATA TO STORE
  7271						TRZ	PS,PS...N!PS...Z!PS...V
  7272						TRNE	T1,200
  7273						TRO	PS,PS...N
  7274						TRNN	T1,377
  7275						TRO	PS,PS...Z
  7276						JRST	@BSTUFF(IR)	;NOW STORE THE DATA
  7277					ZZRET==	-1
  7278						>
  7279						DEFINE	MOV. (FLAG) <
  7280						HRRM PS,PS.REG+1	;SAVE PS IN CASE OF STACK VIOLATION
  7281						TRZ	PS,PS...N!PS...Z!PS...V
  7282						TRNE	T1,100000	;DO WE WANT N BIT
  7283						TRO	PS,PS...N	;SET N BIT
  7284						SKIPN	T1
  7285						TRO	PS,PS...Z	;SET Z BIT
  7286						JRST	@STUFF(IR)
  7287					ZZRET==	-1
  7288						>
  7289						DEFINE	MOVB. (FLAG) <
  7290						HRRM PS,PS.REG+1	;SAVE PS IN CASE OF STACK VIOLATION
  7291						TRZ	PS,PS...N!PS...Z!PS...V
  7292						TRNE	T1,000200	;DO WE WANT N BIT
  7293						TRO	PS,PS...N	;SET N BIT
  7294						SKIPN	T1
  7295						TRO	PS,PS...Z	;SET Z BIT
  7296						TRNE	IR,70		;CHECK FOR REGISTER DST
  7297						JRST	@BSTUFF(IR)
  7298						TRNE	T1,200		;WANT TO EXTEND SIGN ?
  7299						TRO	T1,177600	;EXTEND SIGN
  7300						HRRM	T1,(IR)
  7301						>
  7302						DEFINE	MTPS. (FLAG) <
  7303						JSR	@BFETCH(IR)	;GET WHAT TO SET PS TO
  7304						HRRM	PS,PS.REG+1	;SAVE ORIGINAL PS
  7305						HRRZ	PS,T1		;SET NEW PS
  7306						CALL	PS.CHK		;TAKE AN INTERRUPT MAYBE
  7307						>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 161
DDT11	MAC	18-May-81 17:27		SIMULATION

  7308						DEFINE	MUL. (FLAG) <
  7309						ANDI	T2,7		;LEAVE ONLY REGISTER FIELD
  7310						JSR	@FETCH(IR)	;GET THE SOURCE OPERAND
  7311						TRZ	PS,PS...N!PS...Z!PS...V!PS...C
  7312						TRNE	T1,100000	;NEGATIVE VALUE ?
  7313						IOR	T1,[-1,,700000]	;EXTEND SIGN
  7314						MOVE	MA,(T2)		;GET REGISTER ARGUMENT
  7315						TRNE	MA,100000	;NEGATIVE ARGUMENT ?
  7316						IOR	MA,[-1,,700000]	;EXTEND SIGN
  7317						IMULB	T1,MA		;DO THE MULTIPLICATION
  7318						SKIPN	T1		;WAS RESULT ZERO
  7319						TRO	PS,PS...Z	;REMEMBER IT WAS ZERO
  7320						TLNE	T1,020000	;IS RESULT NEGATIVE ?
  7321						TRO	PS,PS...N	;REMEMBER IT WAS NEGATIVE
  7322						CAML	T1,[-1,,700000]
  7323						CAILE	T1,077777
  7324						TRO	PS,PS...C	;NEED MORE THAN 16 BITS
  7325						ANDI	MA,177777	;LEAVES LOW ORDER PORTION
  7326						LSH	T1,-^D16	;LEAVES HIGH ORDER PORTION
  7327						ANDI	T1,177777	;STRIP EXTRA IF ANY
  7328						MOVEM	T1,(T2)		;STORE HIGH ORDER PORTION
  7329						IORI	T2,1		;OTHER REG ADDRESS
  7330						MOVEM	MA,(T2)
  7331						TRNE	PC,1		;DID THAT CORRUPT THE PC ?
  7332						JRST	NXM...		;YES SO TAKE A BUS TRAP
  7333						>
  7334						DEFINE	NEG. (FLAG) <
  7335						JSR	@RFETCH(IR)	;GET OPERAND
  7336						TRZ	PS,PS...N!PS...Z!PS...V!PS...C
  7337						MOVNS	T1
  7338						ANDI	T1,177777
  7339						TRNE	T1,100000
  7340						TRO	PS,PS...N
  7341						SKIPN	T1
  7342						TROA	PS,PS...Z
  7343						TRO	PS,PS...C
  7344						CAIN	T1,100000
  7345						TRO	PS,PS...V
  7346						RSTORE	FLAG
  7347						>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 162
DDT11	MAC	18-May-81 17:27		SIMULATION

  7348						DEFINE	NEGB. (FLAG) <
  7349						JSR	@BRFTCH(IR)	;GET OPERAND
  7350						TRZ	PS,PS...N!PS...Z!PS...V!PS...C
  7351						MOVNS	T1
  7352						ANDI	T1,000377
  7353						TRNE	T1,000200
  7354						TRO	PS,PS...N
  7355						SKIPN	T1
  7356						TROA	PS,PS...Z
  7357						TRO	PS,PS...C
  7358						CAIN	T1,000200
  7359						TRO	PS,PS...V
  7360						RSTORE	FLAG
  7361						>
  7362					;DEFINE NOP. (FLAG) <>	;HANDLED BY .CCCLR
  7363						DEFINE	RESET. (FLAG) <
  7364						CALL	R.SET		;DO COMMON STUFF
  7365						>
  7366						DEFINE	ROL. (FLAG) <
  7367						JSR	@RFETCH(IR)	;GET OPERAND
  7368						TRZ	PS,PS...N!PS...Z!PS...V
  7369						TRZE	PS,PS...C
  7370						TLO	T1,400000	;CARRY BIT GOES TO SIGN BIT
  7371						TRZE	T1,100000	;CHECK NEW CARRY
  7372						TRO	PS,PS...C!PS...V	;NEW CARRY AND OVERFLOW (MAYBE)
  7373						ROT	T1,1
  7374						TRNE	T1,100000	;GET A NEGATIVE RESULT ?
  7375						TRC	PS,PS...N!PS...V	;WIN NEGATIVE AND COMPLEMENT OVERFLOW
  7376						SKIPN	T1
  7377						TRO	PS,PS...Z
  7378						RSTORE	FLAG
  7379						>
  7380						DEFINE	ROLB. (FLAG) <
  7381						JSR	@BRFTCH(IR)	;GET OPERAND
  7382						TRZ	PS,PS...N!PS...Z!PS...V
  7383						TRZE	PS,PS...C
  7384						TLO	T1,400000	;CARRY BIT GOES TO SIGN BIT
  7385						TRZE	T1,000200	;CHECK NEW CARRY
  7386						TRO	PS,PS...C!PS...V	;NEW CARRY AND OVERFLOW (MAYBE)
  7387						ROT	T1,1
  7388						TRNE	T1,000200	;GET A NEGATIVE RESULT ?
  7389						TRC	PS,PS...N!PS...V	;WIN NEGATIVE AND COMPLEMENT OVERFLOW
  7390						SKIPN	T1
  7391						TRO	PS,PS...Z
  7392						RSTORE	FLAG
  7393						>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 163
DDT11	MAC	18-May-81 17:27		SIMULATION

  7394						DEFINE	ROR. (FLAG) <
  7395						JSR	@RFETCH(IR)	;GET OPERAND
  7396						TRZ	PS,PS...N!PS...Z!PS...V
  7397						TRZE	PS,PS...C
  7398						JRST	.+4
  7399						TRZE	T1,1		;DO WE GET A NEW CARRY ?
  7400						TRO	PS,PS...C!PS...V
  7401						JRST	.+5
  7402						TRO	T1,200000	;CARRY BIT GOES TO SIGN BIT
  7403						TRZE	T1,1		;CHECK NEW CARRY
  7404						TROA	PS,PS...C!PS...N	;NEW CARRY AND NEGATIVE
  7405						TRO	PS,PS...V!PS...N	;OVERFLOW AND NEGATIVE
  7406						LSH	T1,-1
  7407						SKIPN	T1
  7408						TRO	PS,PS...Z
  7409						RSTORE	FLAG
  7410						>
  7411						DEFINE	RORB. (FLAG) <
  7412						JSR	@BRFTCH(IR)	;GET OPERAND
  7413						TRZ	PS,PS...N!PS...Z!PS...V
  7414						TRZE	PS,PS...C
  7415						JRST	.+4
  7416						TRZE	T1,1		;DO WE GET A NEW CARRY ?
  7417						TRO	PS,PS...C!PS...V
  7418						JRST	.+5
  7419						TRO	T1,000400	;CARRY BIT GOES TO SIGN BIT
  7420						TRZE	T1,1		;CHECK NEW CARRY
  7421						TROA	PS,PS...C!PS...N	;NEW CARRY AND NEGATIVE
  7422						TRO	PS,PS...V!PS...N	;OVERFLOW AND NEGATIVE
  7423						LSH	T1,-1
  7424						SKIPN	T1
  7425						TRO	PS,PS...Z
  7426						RSTORE	FLAG
  7427						>
  7428						DEFINE	RTI. (FLAG) <
  7429						LOAD	SP,T1		;PUT RESTORED PC IN TEMP REG
  7430						MOVEI	SP,2(SP)
  7431						ANDI	SP,177776
  7432						LOAD	SP,T2		;GET NEW PS
  7433						ANDI	T2,377		;WE DON'T HAVE A LH
  7434						HRRM	PS,PS.REG+1	;SAVE OLD PS
  7435						MOVE	PS,T2		;LOAD NEW PS
  7436						MOVEI	SP,2(SP)
  7437						ANDI	SP,177776
  7438						MOVE	PC,T1		;LOAD NEW PC
  7439						TRNE	PC,1		;CHECK PC OK
  7440						JRST	NXM...		;TAKE A BUS TRAP
  7441						CALL	PS.CHK		;SEE IF THERE ARE INTERRUPTS TO TAKE
  7442						>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 164
DDT11	MAC	18-May-81 17:27		SIMULATION

  7443						DEFINE	RTS. (FLAG) <
  7444						ANDI	IR,7
  7445						MOVE	PC,(IR)
  7446						LOAD	SP,T1		;GET OLD REG FROM STACK
  7447						MOVEM	T1,(IR)		;LOAD REG FROM STACK
  7448						MOVEI	SP,2(SP)	;FINISH POP
  7449						ANDI	SP,177777	;IN CASE OVERFLOWED
  7450						TRNE	PC,1		;BE SURE NEW PC OK
  7451						JRST	NXM...		;TAKE A BUS TRAP
  7452						>
  7453						DEFINE	RTT. (FLAG) <
  7454						LOAD	SP,T1
  7455						MOVEI	SP,2(SP)
  7456						ANDI	SP,177776
  7457						LOAD	SP,T2		;GET NEW PS
  7458						ANDI	T2,377		;WE DON'T HAVE A LH
  7459						HRRM	PS,PS.REG+1	;SAVE OLD PS
  7460						MOVE	PS,T2		;LOAD NEW PS
  7461						MOVEI	SP,2(SP)
  7462						ANDI	SP,177776
  7463						HRRZ	PC,T1		;LOAD NEW PC
  7464						TRNE	PC,1		;CHECK NEW PC OK
  7465						JRST	NXM...		;TAKE A BUS TRAP
  7466						CALL	PS.CHK		;SEE IF THERE ARE INTERRUPTS TO TAKE
  7467						JRST	SIM11A		;INHIBIT TRACE TRAP
  7468					ZZRET==	-1
  7469						>
  7470						DEFINE	SBC. (FLAG) <
  7471						JSR	@RFETCH(IR)	;GET OPERAND
  7472						TRZ	PS,PS...N!PS...Z!PS...V
  7473						TRZE	PS,PS...C
  7474						JRST	.+8
  7475						TRNE	T1,100000
  7476						TRO	PS,PS...N
  7477						CAIN	T1,100000
  7478						TRO	PS,PS...V
  7479						JUMPN	T1,SIM11
  7480						TRO	PS,PS...Z
  7481						JRST	SIM11
  7482						SOSN	T1
  7483						TRO	PS,PS...Z
  7484						TRNE	T1,100000
  7485						TRO	PS,PS...N
  7486						CAIN	T1,100000-1
  7487						TRO	PS,PS...V
  7488						TRZE	T1,600000
  7489						TRO	PS,PS...C
  7490						RSTORE	FLAG
  7491						>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 165
DDT11	MAC	18-May-81 17:27		SIMULATION

  7492						DEFINE	SBCB. (FLAG) <
  7493						JSR	@BRFTCH(IR)	;GET OPERAND
  7494						TRZ	PS,PS...N!PS...Z!PS...V
  7495						TRZE	PS,PS...C
  7496						JRST	.+8
  7497						TRNE	T1,000200
  7498						TRO	PS,PS...N
  7499						CAIN	T1,000200
  7500						TRO	PS,PS...V
  7501						JUMPN	T1,SIM11
  7502						TRO	PS,PS...Z
  7503						JRST	SIM11
  7504						SOSN	T1
  7505						TRO	PS,PS...Z
  7506						TRNE	T1,000200
  7507						TRO	PS,PS...N
  7508						CAIN	T1,000200-1
  7509						TRO	PS,PS...V
  7510						TRZE	T1,777400
  7511						TRO	PS,PS...C
  7512						RSTORE	FLAG
  7513						>
  7514					;DEFINE SCC. (FLAG) <>	;HANDLED BY .CCSET
  7515					;DEFINE SEC. (FLAG) <>	;HANDLED BY .CCSET
  7516					;DEFINE SEN. (FLAG) <>	;HANDLED BY .CCSET
  7517					;DEFINE SEV. (FLAG) <>	;HANDLED BY .CCSET
  7518					;DEFINE SEZ. (FLAG) <>	;HANDLED BY .CCSET
  7519						DEFINE	SOB. (FLAG) <
  7520						ANDI	T2,7		;GET REGISTER DESIGNATION
  7521						SOSN	T1,(T2)
  7522						JRST	SIM11		;DON'T TAKE BRANCH
  7523						ANDI	T1,177777	;IN CASE OF OVERFLOW
  7524						MOVEM	T1,(T2)
  7525						ANDI	IR,77
  7526						LSH	IR,1
  7527						SUBI	PC,(IR)
  7528						ANDI	PC,177777	;ONLY NEEDED IF PC .LT. 200 !
  7529						>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 166
DDT11	MAC	18-May-81 17:27		SIMULATION

  7530						DEFINE	SPL. (FLAG) <
  7531						ANDI	IR,7		;LEAVE ONLY NEW PRIORITY
  7532						DPB	IR,P.PLVL
  7533						CALL	PS.CHK
  7534						>
  7535						DEFINE	SUB. (FLAG) <
  7536						MOVE	T2,T1		;SAVE SRC
  7537						JSR	@RFETCH(IR)	;GET DST
  7538						MOVE	IR,T1		;SAVE COPY OF DST FOR PS...V CALC
  7539						SUB	T1,T2		;MAKES RESULT
  7540						TRZ	PS,PS...N!PS...Z!PS...V!PS...C
  7541						TRNE	T1,100000	;CHECK FOR NEGATIVE
  7542						TRO	PS,PS...N
  7543						TRZE	T1,600000	;CHECK FOR OVERFLOW
  7544						TRO	PS,PS...C
  7545						SKIPN	T1
  7546						TRO	PS,PS...Z
  7547						XOR	IR,T2		;DST XOR SRC
  7548						EQV	T2,T1		;SRC EQV RESULT
  7549						AND	T2,IR
  7550						TRNE	T2,100000
  7551						TRO	PS,PS...V
  7552						RSTORE	FLAG
  7553						>
  7554						DEFINE	SWAB. (FLAG) <
  7555						JSR	@RFETCH(IR)	;GET ARGUMENT
  7556						DPB	T1,[POINT 8,T1,19]
  7557						LSH	T1,-10
  7558						TRZ PS,PS...N!PS...Z!PS...V!PS...C
  7559						TRNE	T1,000200
  7560						TRO	PS,PS...N
  7561						TRNN	T1,377
  7562						TRO	PS,PS...Z
  7563						RSTORE	FLAG
  7564						>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 167
DDT11	MAC	18-May-81 17:27		SIMULATION

  7565						DEFINE	SXT. (FLAG) <
  7566						HRRM PS,PS.REG+1	;IN CASE OF BUS TRAP
  7567						TRZ	PS,PS...V	;ALWAYS CLEARED
  7568						TRNN	PS,PS...N
  7569						TROA	PS,PS...Z	;WIN A Z BIT
  7570						TRZA	PS,PS...Z	;LOST THE Z BIT
  7571						TDZA	T1,T1
  7572						MOVEI	T1,177777
  7573						JRST	@STUFF(IR)
  7574					ZZRET==	-1
  7575						>
  7576						DEFINE	TRAP. (FLAG) <
  7577						INTSAV	34
  7578						>
  7579						DEFINE	TST. (FLAG) <
  7580						JSR	@FETCH(IR)	;GET OPERAND
  7581						TRZ	PS,PS...N!PS...Z!PS...V!PS...C
  7582						TRNE	T1,100000
  7583						TRO	PS,PS...N
  7584						SKIPN	T1
  7585						TRO	PS,PS...Z
  7586						>
  7587						DEFINE	TSTB. (FLAG) <
  7588						JSR	@BFETCH(IR)	;GET OPERAND
  7589						TRZ	PS,PS...N!PS...Z!PS...V!PS...C
  7590						TRNE	T1,000200
  7591						TRO	PS,PS...N
  7592						SKIPN	T1
  7593						TRO	PS,PS...Z
  7594						>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 168
DDT11	MAC	18-May-81 17:27		SIMULATION

  7595						DEFINE	WAIT. (FLAG) <
  7596						TADJUS
  7597					WAIT0:
  7598						TXNN	FLG,F.EXEC	;RUNNING IN EXEC MODE ?
  7599						JRST	WAIT1		;NO
  7600						SKIPN	BR7PND		;CHECK FOR INTERUPTS HAPPENED
  7601						SKIPE	BR5PND		;CHECK OTHER FLAVOUR
  7602						JRST	SIM11		;GO TAKE INTERRUPT
  7603						SOSLE	T1,INTDLY
  7604						JRST	WAIT0		;NOT YET
  7605						TADJUS
  7606						HRRZ	T1,CTISPD
  7607						MOVEM	T1,INTDLY
  7608						MOVEM	T1,INTDLY+1
  7609						CALL	TIMCHK
  7610						JRST	WAIT0
  7611						JRST	SIM11
  7612					
  7613					WAIT1:	HRRE	T1,INTDLY+1
  7614						ADDM	T1,INSRUN	;ACCUMULATE NUMBER OF INSTRUCTIONS EXECUTED
  7615						ADDM	T1,WAITIM	;ACCUMULATE WAIT TIME
  7616						MOVE	T1,CTISPD
  7617						HRRM	T1,INTDLY
  7618						HRRM	T1,INTDLY+1
  7619						CALL	TIMCHK
  7620						JRST	WAIT0
  7621						>
  7622						DEFINE	XOR. (FLAG) <
  7623						MOVE	T2,-740(T2)	;GET REGISTER
  7624						JSR	@RFETCH(IR)	;GET OPERAND
  7625						TRZ	PS,PS...N!PS...Z!PS...V
  7626						XOR	T1,T2
  7627						TRNE	T1,100000
  7628						TRO	PS,PS...N
  7629						SKIPN	T1
  7630						TRO	PS,PS...Z
  7631						RSTORE	FLAG
  7632						>
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 169
DDT11	MAC	18-May-81 17:27		SIMULATION

  7633					;HERE TO EXECUTE THE NEXT INSTRUCTION
  7634					; CALL	WITH F.RUNF CLEAR TO SINGLE INSTRUCTION
  7635					;	WITH F.RUNF SET TO RUN
  7636					;	CALL	SIMXCT
  7637					;	RETURN			;WHEN MACHINE HALTED
  7638					;				; AC1 WILL CONTAIN THE STARTING PC
  7639	011153'	621400	040200		SIMXCT:	TXZ	FLG,F.SVIO!F.HALT
  7640	011154'	606700	000020			TXNN	PS,20		;IS T BIT SET ?
  7641	011155'	402000	011605'			SETZM	INTDLY
  7642	011156'	402000	011606'			SETZM	INTDLY+1
  7643	011157'	667400	000100			TXON	FLG,F.TOPN	;HAS CTY BEEN OPENED ?
  7644	011160'	260740	011232'			CALL	SIMOPN		;DO OPEN FOR TTY
  7645	011161'	260740	011166'			PUSHJ	P,SIMSAC	;SETUP THE AC'S
  7646	011162'	060740	000200			SETSTS	17,200		;SET NO ECHO
  7647	011163'	606340	000001			TRNN	PC,1		;GET A BUM PC ?
  7648	011164'	254000	011246'			JRST	SIMCYC		;EXECUTE AN INSTRUCTION
  7649	011165'	254000	016750'			JRST	NXM...		;TAKE A BUS TRAP
  7650
  7651	011166'	250000	011200'		SIMSAC:	EXCH	0,SIMREG
  7652	011167'	250040	011201'			EXCH	1,SIMREG+1
  7653	011170'	250100	011202'			EXCH	2,SIMREG+2
  7654	011171'	250140	011203'			EXCH	3,SIMREG+3
  7655	011172'	250200	011204'			EXCH	4,SIMREG+4
  7656	011173'	250240	011205'			EXCH	5,SIMREG+5
  7657	011174'	250300	011206'			EXCH	6,SIMREG+6
  7658	011175'	250340	011207'			EXCH	7,SIMREG+7
  7659	011176'	641400	001000			TXC	FLG,F..SIM
  7660	011177'	263740	000000			RET
  7661
  7662					;FOLLOWING ARE SIMULATOR REGISTERS WHEN NOT SIMULATING
  7663	011200'	000000	000000		SIMREG:	EXP	0		;R0
  7664	011201'	000000	000000			EXP	0		;R1
  7665	011202'	000000	000000			EXP	0		;R2
  7666	011203'	000000	000000			EXP	0		;R3
  7667	011204'	000000	000000			EXP	0		;R4
  7668	011205'	000000	000000			EXP	0		;R5
  7669	011206'	000000	000000			EXP	0		;R6
  7670	011207'	000000	000000			EXP	0		;R7
  7671	011210'	000000	000000		BEGREG:	EXP	0		;R0
  7672	011211'	000000	000000			EXP	0		;R1
  7673	011212'	000000	000000			EXP	0		;R2
  7674	011213'	000000	000000			EXP	0		;R3
  7675	011214'	000000	000000			EXP	0		;R4
  7676	011215'	000000	000000			EXP	0		;R5
  7677	011216'	000000	000000			EXP	0		;R6
  7678	011217'	000000	000000			EXP	0		;R7
  7679	011220'	000000	000000		BEG.PS:	EXP	0		;BEGINNING PS
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 170
DDT11	MAC	18-May-81 17:27		SIMULATION

  7680					;HERE TO SETUP THE PC TO EXECUTE
  7681	011221'	336040	040426'		SETUPC:	SKIPN	AC1,EXPRESS	;DID USER GIVE A PC ?
  7682	011222'	332040	011207'			SKIPE	AC1,SIMREG+PC	;OR DID WE ALREADY HAVE A PC ?
  7683	011223'	254000	011230'			JRST	SETPC2
  7684	011224'	332000	011607'			SKIPE	INSRUN		;HAVE WE RUN YET ?
  7685	011225'	254000	011230'			JRST	SETPC2		;YES SO MUST BE WE MEANT 0 PC
  7686	011226'	336040	040433'			SKIPN	AC1,GOTO	;TAKE STARTING ADDRESS FOR PROGRAM
  7687	011227'	550040	000007			HRRZ	AC1,DOT		;OH WELL USE CURRENT LOCATION
  7688	011230'	552040	011207'		SETPC2:	HRRZM	AC1,SIMREG+PC
  7689	011231'	263740	000000			RET
  7690
  7691					;HERE TO OPEN THE TTY FOR THE SIMULATOR
  7692	011232'	260740	036710'		SIMOPN:	CALL	SIMREL		;RELOCATE STUFF
  7693	011233'	041740	000200		SIMOP1:	INIT	17,200		;SUPRESS ECHO
  7694	011234'	646471	000000			SIXBIT	\TTY\
  7695	011235'	000000	000000			Z
  7696	011236'	047000	000012			EXIT
  7697	011237'	260740	011611'			CALL	R.SET		;RESET THE WORLD
  7698	011240'	260740	033115'			CALL	PS.CHK		;BE SURE LEVELS SET UP RIGHT
  7699	011241'	263740	000000			RET
  7700	011242'				SIM.U1:
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 171
DDT11	MAC	18-May-81 17:27		SIMULATION

  7701					;MAIN LOOP FOR SIMULATION
  7702
  7703	011242'	602700	000020		SIM11:	TRNE	PS,PS...T	;CHECK T BIT
  7704	011243'	254000	011263'			JRST	TB.INT
  7705	011244'				SIM11A:
  7706	011244'	377440	011605'			SOSG	T1,INTDLY	;TIME TO CHECK FOR INTERRUPTS ?
  7707	011245'	254000	011353'			JRST	INTCHK		;CHECK TO SEE IF THERE IS AN INTERRUPT PENDING
  7708
  7709	011246'	550540	000007		SIMCYC:	HRRZ	MA,PC		;COPY PC
  7710	034112'	011150'	011247'				MEMREL	MEMLIM
  7711	011247'	301540	000000			CAIL	MA,0
  7712		260740	032662'			JRST	[CALL	IOLOAD+2	;GET INFORMATION
  7713		200640	000011				MOVE	IR,T1		;PUT INSTRUCTION IN RIGHT REGISTER
  7714		254000	011255'				JRST	SIMCY1]
  7715	011250'	254000	044361'
  7716	011251'	241540	777776			ROT	MA,-2
  7717	011252'	335000	000013			SKIPGE	MA
  7718	034113'	011147'	011253'				MEMREL	MEMORY
  7719	011253'	334653	000000			SKIPA	IR,(MA)
  7720	034114'	011147'	011254'				MEMREL	MEMORY
  7721	011254'	204653	000000			MOVS	IR,(MA)
  7722	011255'	271340	000002		SIMCY1:	ADDI	PC,2		;ADVANCE PC
  7723	011256'	550500	000015			HRRZ	T2,IR		;COPY INSTRUCTION
  7724	011257'	242500	777772			LSH	T2,-6		;POSITION FOR DISPATCH
  7725	011260'	254032	011647'			JRST	@OPDSP0(T2)	;DISPATCH ON OPCODE
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 172
DDT11	MAC	18-May-81 17:27		SIMULATION

  7726					;HERE IF OPCODE IN RANGE 000000 THRU 000077
  7727	011261'	254035	013647'		OPDSPA:	JRST	@OPDSP1(IR)
  7728
  7729					;HERE IF OPCODE IN RANGE 000200 THRU 000277
  7730	011262'	254035	013547'		OPDSPB:	JRST	@OPDSP2-200(IR)
  7731
  7732					;HERE FOR A TBIT TRAP
  7733	011263'				TB.INT:	INTSAV	14
  7734			000100		ZZ=	2000-Z
  7735	
  7736					REPEAT	ZZ,<
  7737						EXP	ILLINS
  7738						XLIST
  7739						>
  7740	013547'	000000	017037'
  7741
  7742						LIST
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 178
DDT11	MAC	18-May-81 17:27		SIMULATION

  7743					;DISPATCH TABLE FOR OPCODES 000000 THRU 000077
  7744
  7745						DEFINE	X (VAL,MASK,NAME,FLAG) <
  7746					IFE	<<FLAG&<SMF.11!SMF.IN>>-<SMF.11!SMF.IN>> <
  7747					IFL	<VAL-100> <
  7748					ZZ=VAL-Z
  7749					IFG	ZZ <REPEAT ZZ,<
  7750						EXP	ILLINS		;ILLEGAL INSTRUCTION DISPATCH
  7751					Z=Z+1
  7752						>>;IFG ZZ
  7753					ZZ=VAL+<<-MASK>&177777>-Z
  7754					IFG	ZZ <REPEAT ZZ,<
  7755						EXP	.'NAME		;DISPATCH FOR INSTRUCTION
  7756					Z=Z+1
  7757						>>>>
  7758					>;DEFINE X (VAL,MASK,NAME,FLAG)
  7759
  7760			000000		Z=0
  7761	013647'				OPDSP1:	INSTRU			;DO DISPATCHS FOR 000000-000077
  7762					REPEAT	<100-Z>,<
  7763						EXP	ILLINS
  7764						XLIST
  7765						>
  7766	013656'	000000	017037'
  7767
  7768						LIST
  7769
  7770					;DISPATCH TABLE FOR OPCODES 000200 THRU 000277
  7771
  7772						DEFINE	X (VAL,MASK,NAME,FLAG) <
  7773					IFE	<<FLAG&<SMF.11!SMF.IN>>-<SMF.11!SMF.IN>> <
  7774					IFL	<VAL-240> <
  7775					ZZ=VAL-Z
  7776					IFG ZZ <REPEAT	ZZ,<
  7777						EXP	ILLINS		;ILLEGAL INSTRUCTION DISPATCH
  7778					Z=Z+1
  7779						>>
  7780					ZZ=VAL+<<-MASK>&177777>-Z
  7781					IFG ZZ <REPEAT	ZZ,<
  7782						EXP	.'NAME		;DISPATCH FOR INSTRUCTION
  7783					Z=Z+1
  7784						>>>>
  7785					>;DEFINE X (VAL,MASK,NAME,FLAG)
  7786
  7787			000200		Z=200
  7788	013747'				OPDSP2:	INSTRU			;DO DISPATCHS FOR 000200-000227
  7789					REPEAT	<240-Z>,<
  7790						EXP	ILLINS
  7791						XLIST
  7792						>
  7793						LIST
  7794	014007'	000000	011242'			EXP	SIM11		;THIS IS A NOP
  7795					REPEAT	17,<
  7796						EXP	.CCCLR		;CLEAR CONDITION CODES
  7797						XLIST
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 178-1
DDT11	MAC	18-May-81 17:27		SIMULATION

  7798						>
  7799	014010'	000000	017126'
  7800
  7801						LIST
  7802	014027'	000000	011242'			EXP	SIM11		;THIS IS A NOP
  7803					REPEAT	17,<
  7804						EXP	.CCSET		;SET CONDITION CODES
  7805						XLIST
  7806						>
  7807	014030'	000000	017131'
  7808
  7809						LIST
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 179
DDT11	MAC	18-May-81 17:27		OPCODE SIMULATION

  7810						SUBTTL	OPCODE SIMULATION
  7811
  7812						DEFINE	X (VAL,MASK,NAME,FLAG) <
  7813					IFE	<<FLAG&<SMF.11!SMF.IN>>-<SMF.11!SMF.IN>> <
  7814					IFN	<<VAL&177740>-240> <
  7815						.'NAME:		ZZRET==0
  7816					IFN	<FLAG&<SMF.SS!SMF.DD!SMF.EI>>,<ANDI IR,77>	;LEAVE ONLY DD
  7817					IFN	<FLAG&SMF.SS>,<
  7818						ANDI	T2,77		;LEAVE ONLY SS
  7819					IFN	<FLAG&SMF.BY>,<JSR @SBFTCH(T2)>	;GET BYTE SOURCE OPERAND
  7820					IFE	<FLAG&SMF.BY>,<JSR @SFETCH(T2)>	;GET SOURCE OPERAND
  7821						>
  7822						NAME'.	FLAG		;MACRO FOR UNIQUE CODE
  7823					IFN	<FLAG&SMF.BR> <
  7824						TRNE	IR,200		;POSITIVIE OR NEGATIVE OFFSET
  7825						TROA	IR,177400	;NEGATIVE SO EXTEND SIGN
  7826						TRZ	IR,177400	;POSITIVE SO EXTEND SIGN
  7827						LSH	IR,1		;MAKE OFFSET * 2
  7828						ADD	PC,IR
  7829						ANDI	PC,177777	;IN CASE PC SPILLED OUT OF 16 BITS
  7830						>
  7831					IFE	ZZRET,<JRST SIM11>
  7832						>>
  7833					>;DEFINE X
  7834
  7835						INSTRU
  7836
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 180
DDT11	MAC	18-May-81 17:27		OPCODE SIMULATION

  7837					;HERE WHEN INSTRUCTION TRIES TO JMP TO REG
  7838	016744'	000000	000000		JMPREG:	Z			;CAME WITH A JSR
  7839	016745'	254000	016750'			JRST	NXM...		;DIE
  7840
  7841					;HERE IF @STUFF (OR @BSTUFF) GIVES BUS TRAP
  7842	016746'	540700	033100'		STFNXM:	HRR PS,PS.REG+1		;RESTORE OLD PS
  7843	016747'	254000	016750'			JRST	NXM...
  7844
  7845					;HERE FOR ILLEGAL MEMORY REFERENCES
  7846	016750'				NXM...:	INTSAV	4
  7847
  7848					;DISPATCH TO FETCH OPERAND (WORD MODE)
  7849	017331'				FETCH:	XX	GET
  7850
  7851					;DISPATCH TO FETCH OPERAND (WORD MODE) AND SET UP MA FOR RSTORE
  7852	017431'				RFETCH:	XX	RGET
  7853
  7854					;DISPATCH TO FETCH SOURCE OPERAND (BYTE MODE)
  7855	017531'				SBFTCH:	XX SBGT
  7856
  7857					;DISPATCH TO FETCH OPERAND (BYTE MODE)
  7858	017631'				BFETCH:	XX	BGET
  7859
  7860					;DISPATCH TO FETCH OPERAND (BYTE MODE) AND SET UP MA FOR RSTORE
  7861	017731'				BRFTCH:	XX	BRGT
  7862
  7863					;DISPATCH TO DO ADDRESS CALCULATION FOR JMP OR JSR
  7864	020031'				JMPCLC:	XX	JMP
  7865
  7866					;DISPATCH TO STORE OPERAND (WORD MODE)
  7867					; RH OF OPERAND MUST ALREADY BE MASKED TO 16 BITS (LH MAY BE NONZERO)
  7868	020131'				STUFF:	XX	PUT
  7869
  7870					;DISPATCH TO STORE OPERAND (BYTE MODE)
  7871					; RH OF OPERAND MUST ALREADY BE MASKED TO 8 BITS (LH MAY BE NONZERO)
  7872	020231'				BSTUFF:	XX	BPUT
  7873
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 182
DDT11	MAC	18-May-81 17:27		ADDRESSING MODE CALCULATIONS

  7874					;MACRO TO DEFINE GET, RGET, AND PUT
  7875					;	GET AND RGET RETURN DATA IN T1
  7876					;	RGET ALSO SETS UP MA
  7877					;	PUT STORES DATA IN T1
  7878
  7879						DEFINE	X (Q) <
  7880						XLIST
  7881					
  7882					;MODE 0 - REGISTER MODE
  7883					
  7884						SGET0'Q:
  7885						Z
  7886						HRRZ	T1,(T2)		;GET REGISTER
  7887						HRRZ	MA+1,IR		;COPY DEST MODE
  7888						ANDI	MA+1,7		;LEAVE ONLY DEST REGISTER
  7889						CAME	MA+1,T2		;SAME AS SRC REGISTER ?
  7890						JRST	@SGET0'Q	;NO SO DONE
  7891						CAIL	IR,20		;MAYBE DEST IS REG OR @REG ?
  7892						CAILE	IR,57		;OR IS INDEXED OR @INDEXED ?
  7893						JRST	@SGET0'Q	;ONE OF THOSE SO DONE
  7894						CAIGE	IR,30
  7895						ADDI	T1,4		;WAS AUTO INCREMENT MODE
  7896						SUBI	T1,2
  7897						ANDI	T1,177777	;STRIP EXTRA BITS
  7898						JRST	@SGET0'Q
  7899					
  7900						GET0'Q:
  7901						Z
  7902						HRRZ	T1,Q
  7903						JRST	@GET0'Q
  7904					
  7905						RGET0'Q:
  7906						Z
  7907						HRROI	MA,Q
  7908						HRRZ	T1,Q
  7909						JRST	@RGET0'Q
  7910					
  7911						SBGT0'Q:
  7912						Z
  7913						HRRZ	T1,(T2)		;GET REGISTER
  7914						ANDI	T1,377		;STRIP EXTRA BITS
  7915						HRRZ	MA+1,IR		;COPY DEST MODE
  7916						ANDI	MA+1,7		;LEAVE ONLY DEST REGISTER
  7917						CAME	MA+1,T2		;SAME AS SRC REGISTER ?
  7918						JRST	@SBGT0'Q	;NO SO DONE
  7919						CAIL	IR,20		;MAYBE DEST IS REG OR @REG ?
  7920						CAILE	IR,57		;OR IS INDEXED OR @INDEXED ?
  7921						JRST	@SBGT0'Q	;ONE OF THOSE SO DONE
  7922						CAIGE	IR,30
  7923						IFL	<Q-6>,<
  7924						ADDI	T1,2
  7925						SOS	T1
  7926						>;IFL <Q-6>
  7927						IFGE	<Q-6>,<
  7928						ADDI	T1,4		;WAS AUTO INCREMENT MODE
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 182-1
DDT11	MAC	18-May-81 17:27		ADDRESSING MODE CALCULATIONS

  7929						SUBI	T1,2
  7930						>;IFGE <Q-6>
  7931						ANDI	T1,377		;STRIP EXTRA BITS
  7932						JRST	@SBGT0'Q
  7933					
  7934						BGET0'Q:
  7935						Z
  7936						HRRZ	T1,Q
  7937						ANDI	T1,377
  7938						JRST	@BGET0'Q
  7939					
  7940						BRGT0'Q:
  7941						Z
  7942						HRROI	MA,Q
  7943						HRRZ	T1,Q
  7944						ANDI	T1,000377
  7945						JRST	@BRGT0'Q
  7946					
  7947						JMP0'Q==JMPREG		;REGISTER MODE ILLEGAL FOR JMP & JSR
  7948					
  7949						PUT0'Q:
  7950						HRRZ	Q,T1		;LOAD REGISTER
  7951						IFE	<Q-PC> <
  7952						TRNE	PC,1		;BE SURE PC NOT CORRUPTED
  7953						JRST	NXM...
  7954						>;IFE <Q-PC>
  7955						JRST	SIM11
  7956					
  7957						BPUT0'Q:
  7958						TRZ	Q,377		;STRIP OLD BITS
  7959						TRO	Q,(T1)		;SET NEW BITS
  7960						IFE	<Q-PC> <
  7961						TRNE	PC,1		;BE SURE PC NOT CORRUPTED
  7962						JRST	NXM...		;TAKE A BUS TRAP
  7963						>;IFE <Q-PC>
  7964						JRST	SIM11
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 183
DDT11	MAC	18-May-81 17:27		ADDRESSING MODE CALCULATIONS

  7965					;MODE 1 - REGISTER DEFERRED
  7966					
  7967						RGET1'Q:
  7968						IFE	<Q-6>,<
  7969						Z
  7970						HRRZ	MA,Q		;COPY CONTENTS OF REGISTER
  7971						CAIGE	MA,400
  7972						JSR	STACKV		;WE'RE GONNA VIOLATE STACK
  7973						LOAD	MA,T1
  7974						JRST	@RGET1'Q
  7975						>;IFE <Q-6>
  7976					
  7977						SGET1'Q:
  7978						GET1'Q:
  7979						Z
  7980						LOAD	Q,T1
  7981						JRST	@GET1'Q
  7982					
  7983						BRGT1'Q:
  7984						IFE	<Q-6>,<
  7985						Z
  7986						HRRZ	MA,Q		;COPY STACK POINTER
  7987						CAIGE	MA,400
  7988						JSR	STACKV		;WE'RE GONNA VIOLATE STACK
  7989						BLOAD	MA,T1
  7990						JRST	@BRGT1'Q
  7991						>;IFE <Q-6>
  7992					
  7993						SBGT1'Q:
  7994						BGET1'Q:
  7995						Z
  7996						BLOAD	Q,T1
  7997						JRST	@BGET1'Q
  7998					
  7999						JMP1'Q:
  8000						Z
  8001						HRRZ	T1,Q
  8002						JRST	@JMP1'Q
  8003					
  8004						PUT1'Q:
  8005						STORE	Q,T1
  8006						JRST	SIM11
  8007					
  8008						BPUT1'Q:
  8009						BSTORE	Q,T1
  8010						JRST	SIM11
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 184
DDT11	MAC	18-May-81 17:27		ADDRESSING MODE CALCULATIONS

  8011					;MODE 2 - AUTO-INCREMENT
  8012					
  8013						RGET2'Q:
  8014						IFE	<Q-6>,<
  8015						Z
  8016						HRRZ	MA,Q		;COPY STACK POINTER
  8017						ADDI	Q,2
  8018						IFL	<Q-6>,<ANDI Q,177777>
  8019						CAIGE	MA,400
  8020						JSR	STACKV		;WE'RE GONNA VIOLATE STACK
  8021						LOAD	MA,T1
  8022						JRST	@RGET2'Q
  8023						>;IFE <Q-6>
  8024					
  8025						SGET2'Q:
  8026						GET2'Q:
  8027						Z
  8028						HRRZ	MA,Q		;COPY REGISTER
  8029						ADDI	Q,2
  8030						IFL	<Q-6>,<ANDI Q,177777>
  8031						LOAD	MA,T1
  8032						JRST	@GET2'Q
  8033					
  8034						BRGT2'Q:
  8035						IFE	<Q-6>,<
  8036						Z
  8037						HRRZ	MA,Q		;COPY STACK POINTER
  8038						IFGE	<Q-6>,< ADDI Q,2 >
  8039						IFL	<Q-6>,< AOS	Q >
  8040						IFL	<Q-6>,<ANDI Q,177777>
  8041						CAIGE	MA,400
  8042						JSR	STACKV		;WE'RE GONNA VIOLATE STACK
  8043						BLOAD	MA,T1
  8044						JRST	@BRGT2'Q
  8045						>;IFE <Q-6>
  8046					
  8047						SBGT2'Q:
  8048						BGET2'Q:
  8049						Z
  8050						HRRZ	MA,Q		;COPY REGISTER
  8051						IFGE	<Q-6>,< ADDI Q,2 >
  8052						IFL	<Q-6>,< AOS	Q >
  8053						IFL	<Q-6>,<ANDI Q,177777>
  8054						BLOAD	MA,T1
  8055						JRST	@BGET2'Q
  8056					
  8057						JMP2'Q:
  8058						Z
  8059						HRRZ	T1,Q
  8060						ADDI	Q,2
  8061						IFL	<Q-6>,<ANDI Q,177777>
  8062						JRST	@JMP2'Q
  8063					
  8064						PUT2'Q:
  8065						HRRZ	MA,Q		;COPY REGISTER
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 184-1
DDT11	MAC	18-May-81 17:27		ADDRESSING MODE CALCULATIONS

  8066						ADDI	Q,2
  8067						IFL	<Q-6>,<ANDI Q,177777>
  8068						STORE	MA,T1
  8069						JRST	SIM11
  8070					
  8071						BPUT2'Q:
  8072						HRRZ	MA,Q		;COPY REGISTER
  8073						IFGE	<Q-6>,< ADDI Q,2 >
  8074					IFL	<Q-6>,<
  8075						AOS	Q
  8076						ANDI	Q,177777
  8077					>
  8078						BSTORE	MA,T1
  8079						JRST	SIM11
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 185
DDT11	MAC	18-May-81 17:27		ADDRESSING MODE CALCULATIONS

  8080					;MODE 3 - AUTO-INCREMENT DEFERRED
  8081					
  8082						SGET3'Q:
  8083						GET3'Q:
  8084						RGET3'Q:
  8085						Z
  8086						HRRZ	MA,Q		;COPY REGISTER
  8087						ADDI	Q,2
  8088						IFL	<Q-6>,<ANDI Q,177777>
  8089						LOAD	MA,MA
  8090						LOAD	MA,T1
  8091						JRST	@GET3'Q
  8092					
  8093						SBGT3'Q:
  8094						BGET3'Q:
  8095						BRGT3'Q:
  8096						Z
  8097						HRRZ	MA,Q		;COPY REGISTER
  8098						ADDI	Q,2		;;2 (NOT 1) BECAUSE DEFERRED
  8099						IFL	<Q-6>,<ANDI Q,177777>
  8100						LOAD	MA,MA
  8101						BLOAD	MA,T1
  8102						JRST	@BGET3'Q
  8103					
  8104						JMP3'Q:
  8105						Z
  8106						HRRZ	MA,Q		;COPY REGISTER
  8107						ADDI	Q,2
  8108						IFL	<Q-6>,<ANDI Q,177777>
  8109						LOAD	MA,T1
  8110						JRST	@JMP3'Q
  8111					
  8112						PUT3'Q:
  8113						HRRZ	MA,Q		;COPY REGISTER
  8114						ADDI	Q,2
  8115						IFL	<Q-6>,<ANDI Q,177777>
  8116						LOAD	MA,MA
  8117						STORE	MA,T1
  8118						JRST	SIM11
  8119					
  8120						BPUT3'Q:
  8121						HRRZ	MA,Q		;COPY REGISTER
  8122						ADDI	Q,2		;;2 (NOT 1) BECAUSE DEFERRED
  8123						IFL	<Q-6>,<ANDI Q,177777>
  8124						LOAD	MA,MA
  8125						BSTORE	MA,T1
  8126						JRST	SIM11
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 186
DDT11	MAC	18-May-81 17:27		ADDRESSING MODE CALCULATIONS

  8127					;MODE 4 - AUTO-DECREMENT
  8128					
  8129						RGET4'Q:
  8130						IFE	<Q-6>,<
  8131						Z
  8132						SUBI	Q,2
  8133						IFL	<Q-7>,<ANDI Q,177777>
  8134						HRRZ	MA,Q		;COPY SP IN CASE OF STACK VIOLATION
  8135						CAIGE	MA,400
  8136						JSR	STACKV		;WE'RE GONNA VIOLATE STACK
  8137						LOAD	MA,T1
  8138						JRST	@RGET4'Q
  8139						>;IFE <Q-6>
  8140					
  8141						SGET4'Q:
  8142						GET4'Q:
  8143						Z
  8144						SUBI	Q,2
  8145						IFL	<Q-7>,<ANDI Q,177777>
  8146						LOAD	Q,T1
  8147						JRST	@GET4'Q
  8148					
  8149						BRGT4'Q:
  8150						IFE	<Q-6>,<
  8151						Z
  8152						IFGE	<Q-6>,< SUBI Q,2 >
  8153						IFL	<Q-6>,< SOSGE Q >
  8154						IFL	<Q-7>,<ANDI Q,177777>
  8155						HRRZ	MA,Q
  8156						CAIGE	MA,400
  8157						JSR	STACKV		;WE'RE GONNA VIOLATE STACK
  8158						BLOAD	MA,T1
  8159						JRST	@BRGT4'Q
  8160						>;IFE <Q-6>
  8161					
  8162						SBGT4'Q:
  8163						BGET4'Q:
  8164						Z
  8165						IFGE	<Q-6>,< SUBI Q,2 >
  8166						IFL	<Q-6>,< SOSGE Q >
  8167						IFL	<Q-7>,<ANDI Q,177777>
  8168						BLOAD	Q,T1
  8169						JRST	@BGET4'Q
  8170					
  8171						JMP4'Q:
  8172						Z
  8173						IFL	<Q-7>,<ANDI Q,177777>
  8174						HRRZ	T1,Q
  8175						JRST	@JMP4'Q
  8176					
  8177						PUT4'Q:
  8178						SUBI	Q,2
  8179						IFL	<Q-7>,<ANDI Q,177777>
  8180						STORE	Q,T1
  8181						JRST	SIM11
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 186-1
DDT11	MAC	18-May-81 17:27		ADDRESSING MODE CALCULATIONS

  8182					
  8183						BPUT4'Q:
  8184						IFGE	<Q-6>,< SUBI Q,2 >
  8185						IFL	<Q-6>,< SOSGE Q >
  8186						IFL	<Q-7>,<ANDI Q,177777>
  8187						BSTORE	Q,T1
  8188						JRST	SIM11
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 187
DDT11	MAC	18-May-81 17:27		ADDRESSING MODE CALCULATIONS

  8189					;MODE 5 - AUTO-DECREMENT DEFERRED
  8190					
  8191						SGET5'Q:
  8192						GET5'Q:
  8193						RGET5'Q:
  8194						Z
  8195						SUBI	Q,2
  8196						IFL	<Q-7>,<ANDI Q,177777>
  8197						LOAD	Q,MA
  8198						LOAD	MA,T1
  8199						JRST	@GET5'Q
  8200					
  8201						SBGT5'Q:
  8202						BGET5'Q:
  8203						BRGT5'Q:
  8204						Z
  8205						SUBI	Q,2		;2 (NOT 1) BECAUSE DEFERRED
  8206						IFL	<Q-7>,<ANDI Q,177777>
  8207						LOAD	Q,MA
  8208						BLOAD	MA,T1
  8209						JRST	@BGET5'Q
  8210					
  8211						JMP5'Q:
  8212						Z
  8213						SUBI	Q,2
  8214						IFL	<Q-7>,<ANDI Q,177777>
  8215						LOAD	Q,T1
  8216						JRST	@JMP5'Q
  8217					
  8218						PUT5'Q:
  8219						SUBI	Q,2
  8220						IFL	<Q-7>,<ANDI Q,177777>
  8221						LOAD	Q,MA
  8222						STORE	MA,T1
  8223						JRST	SIM11
  8224					
  8225						BPUT5'Q:
  8226						SUBI	Q,2		;2 (NOT 1) BECAUSE DEFERRED
  8227						IFL	<Q-7>,<ANDI Q,177777>
  8228						LOAD	Q,MA
  8229						BSTORE	MA,T1
  8230						JRST	SIM11
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 188
DDT11	MAC	18-May-81 17:27		ADDRESSING MODE CALCULATIONS

  8231					;MODE 6 - INDEXED
  8232					
  8233						RGET6'Q:
  8234						IFE	<Q-6>,<
  8235						Z
  8236						LOAD	PC,MA
  8237						ADDI	PC,2
  8238						ADD	MA,Q
  8239						ANDI	MA,177777
  8240						CAIGE	MA,400
  8241						JSR	STACKV		;WE'RE GONNA VIOLATE STACK
  8242						LOAD	MA,T1
  8243						JRST	@RGET6'Q
  8244						>;IFE <Q-6>
  8245					
  8246						SGET6'Q:
  8247						GET6'Q:
  8248						Z
  8249						LOAD	PC,MA
  8250						ADDI	PC,2
  8251						ADD	MA,Q
  8252						ANDI	MA,177777
  8253						LOAD	MA,T1
  8254						JRST	@GET6'Q
  8255					
  8256						BRGT6'Q:
  8257						IFE	<Q-6>,<
  8258						Z
  8259						LOAD	PC,MA
  8260						ADDI	PC,2
  8261						ADD	MA,Q
  8262						ANDI	MA,177777
  8263						CAIGE	MA,400
  8264						JSR	STACKV		;WE'RE GONNA VIOLATE STACK
  8265						BLOAD	MA,T1
  8266						JRST	@BRGT6'Q
  8267						>;IFE <Q-6>
  8268					
  8269						SBGT6'Q:
  8270						BGET6'Q:
  8271						Z
  8272						LOAD	PC,MA
  8273						ADDI	PC,2
  8274						ADD	MA,Q
  8275						ANDI	MA,177777
  8276						BLOAD	MA,T1
  8277						JRST	@BGET6'Q
  8278					
  8279						JMP6'Q:
  8280						Z
  8281						LOAD	PC,T1
  8282						ADDI	PC,2
  8283						ADD	T1,Q
  8284						ANDI	T1,177777
  8285						JRST	@JMP6'Q
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 188-1
DDT11	MAC	18-May-81 17:27		ADDRESSING MODE CALCULATIONS

  8286					
  8287						PUT6'Q:
  8288						LOAD	PC,MA
  8289						ADDI	PC,2
  8290						ADD	MA,Q
  8291						ANDI	MA,177777
  8292						IFE	<Q-6>,<
  8293							CAIGE	MA,400
  8294							JSR	STCKVP		;MADE STACK VIOLATION
  8295						>;IFE <Q-6>
  8296						STORE	MA,T1
  8297						JRST	SIM11
  8298					
  8299						BPUT6'Q:
  8300						LOAD	PC,MA
  8301						ADDI	PC,2
  8302						ADD	MA,Q
  8303						ANDI	MA,177777
  8304						IFE	<Q-6>,<
  8305							CAIGE	MA,400
  8306							JSR	STCKVP		;MADE STACK VIOLATION
  8307						>;IFE <Q-6>
  8308						BSTORE	MA,T1
  8309						JRST	SIM11
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 189
DDT11	MAC	18-May-81 17:27		ADDRESSING MODE CALCULATIONS

  8310					;MODE 7 - INDEXED DEFERRED
  8311					
  8312						SGET7'Q:
  8313						GET7'Q:
  8314						RGET7'Q:
  8315						Z
  8316						LOAD	PC,MA
  8317						ADDI	PC,2
  8318						ADD	MA,Q
  8319						ANDI	MA,177777
  8320						LOAD	MA,MA
  8321						LOAD	MA,T1
  8322						JRST	@GET7'Q
  8323					
  8324						SBGT7'Q:
  8325						BGET7'Q:
  8326						BRGT7'Q:
  8327						Z
  8328						LOAD	PC,MA
  8329						ADDI	PC,2
  8330						ADD	MA,Q
  8331						ANDI	MA,177777
  8332						LOAD	MA,MA
  8333						BLOAD	MA,T1
  8334						JRST	@BGET7'Q
  8335					
  8336						JMP7'Q:
  8337						Z
  8338						LOAD	PC,MA
  8339						ADDI	PC,2
  8340						ADD	MA,Q
  8341						ANDI	MA,177777
  8342						LOAD	MA,T1
  8343						JRST	@JMP7'Q
  8344					
  8345						PUT7'Q:
  8346						LOAD	PC,MA
  8347						ADDI	PC,2
  8348						ADD	MA,Q
  8349						ANDI	MA,177777
  8350						LOAD	MA,MA
  8351						STORE	MA,T1
  8352						JRST	SIM11
  8353					
  8354						BPUT7'Q:
  8355						LOAD	PC,MA
  8356						ADDI	PC,2
  8357						ADD	MA,Q
  8358						ANDI	MA,177777
  8359						LOAD	MA,MA
  8360						BSTORE	MA,T1
  8361						JRST	SIM11
  8362					
  8363						LIST
  8364					>;DEFINE X (Q)
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 190
DDT11	MAC	18-May-81 17:27		ADDRESSING MODE CALCULATIONS

  8365					;EXPAND MACRO FOR GET, RGET AND PUT
  8366
  8367			000000		QQ=	0
  8368						REPEAT	10,<
  8369						X	\QQ
  8370					QQ=	QQ+1
  8371						>;REPEAT 10
  8372
  8373
  8374
  8375
  8376
  8377
  8378
  8379
  8380
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 191
DDT11	MAC	18-May-81 17:27		IO SIMULATION

  8381						SUBTTL	IO SIMULATION
  8382
  8383					;ROUTINE TO READ AND WRITE IN THE IO AREA
  8384					; NOTE THAT REFERENCES ARE NOT CHECKED TO BE SURE IN IO AREA (160000-177777)
  8385					; THIS DOESN'T MATTER BECAUSE THEY WILL REFERENCE 600000+MEMLIM TO 7600000
  8386					; WHICH SHOULD PAGE FAIL (UNLESS MEMORY IS ON UNIBUS)
  8387
  8388						DEFINE	X (Q,QQ) <
  8389						XLIST
  8390						HRRZ	MA+1,FIRDDB
  8391						CAMG	MA,1(MA+1)
  8392						JRST	[CAMGE	MA,(MA+1)
  8393							JRST	.+3
  8394							TLO	MA,MA..IO	;REMEMBER IS AN IO DEVICE
  8395							JRST	@DV.'Q(MA+1) ]
  8396						HRRZ	MA+1,DV.LNK(MA+1)	;GET NEXT DEVICE ADR
  8397						JUMPN	MA+1,.-3
  8398						TXNN	FLG,F.EXEC
  8399						JRST	QQ		;CAN'T HELP THIS GUY
  8400						HLL	MA,UBACTL	;ADD UBA UNIT NUMBER
  8401						LIST
  8402					>;DEFINE X (OFFSET)
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 192
DDT11	MAC	18-May-81 17:27		IO SIMULATION

  8403					;HERE TO DO A WORD LOAD FROM AN IO REGISTER
  8404		000000	000001			SKIPA	T1,[EXP 1]	;SIMPLE SKIP RETURN FOR GETWRD
  8405	032657'	334440	043613'
  8406	032660'	201440	000004		IOLOAD:	MOVEI	T1,LODRET	;SO RETURN GOES RIGHT
  8407	032661'	272457	000000			ADDM	T1,(P)
  8408						X	LOD,NXMRET
  8409	032672'	607400	002000			TXNN FLG,F.EXEC
  8410	032673'	254000	032676'			JRST NXMRET
  8411	032674'	712453	600000			RDIO	T1,600000(MA)	;GET DATA FROM UNIBUS
  8412	032675'	254000	032714'			JRST	IORET		;DONE
  8413
  8414					;HERE FOR A NXM (AFTER POPING RETURN OFF STACK)
  8415	032676'	607400	002000		NXMRET:	TXNN	FLG,F.EXEC	;RUNNING IN EXEC MODE ?
  8416	032677'	254000	032710'			JRST	NXMRT3		;NO
  8417	032700'	201500	440200			MOVEI	T2,1B18+1B21+1B28
  8418	032701'	135440	011152'			LDB	T1,P.PLVL	;GET PROCESSOR LEVEL
  8419	032702'	305440	000007			CAIGE	T1,7		;ALLOW BR7 ?
  8420	032703'	201500	440230			MOVEI	T2,1B18+1B21!UBA.B7
  8421	032704'	305440	000005			CAIGE	T1,5		;ALLOW BR7 ?
  8422	032705'	201500	440234			MOVEI	T2,1B18+1B21!UBA.B5!UBA.B7
  8423	032706'	510440	041114'			HLLZ	T1,UBACTL	;POINT TO RIGHT UNIBUS
  8424	032707'	713511	763100			WRIO	T2,UBA.SR(T1)	;CLEAR FLAG
  8425	032710'	607400	001000		NXMRT3:	TXNN	FLG,F..SIM	;ARE WE SIMULATING ?
  8426		370017	000000			JRST	[SOS	(P)		;UNSKIP THE RETURN
  8427		263740	000000				RET	]
  8428	032711'	254000	047134'
  8429	032712'	262740	000011			POP	P,T1		;CLEAN OFF STACK
  8430	032713'	254000	016750'			JRST	NXM...
  8431
  8432	032714'	505540	050000		IORET:	HRLI	MA,MA..UN!MA..IO	;MUST BE A UNIBUS DEVICE
  8433	032715'	263740	000000			RET
  8434
  8435					;HERE TO DO A BYTE LOAD FROM AN IO REGISTER
  8436		000000	000001			SKIPA	T1,[EXP 1]	;SIMPLE SKIP RETURN
  8437	032716'	334440	043613'
  8438	032717'	201440	000007		IOBLOD:	MOVEI	T1,BLDRET	;NUMBER OF INSTRUCTIONS TO SKIP
  8439	032720'	272457	000000			ADDM	T1,(P)		;SKIP RETURN
  8440						X	BLD,NXMRET
  8441	032731'	607400	002000			TXNN FLG,F.EXEC
  8442	032732'	254000	032676'			JRST NXMRET
  8443	032733'	722453	600000			RDIOB	T1,600000(MA)	;GET DATA FROM UNIBUS
  8444	032734'	254000	032714'			JRST	IORET		;WILL SKIP IF FAILED
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 193
DDT11	MAC	18-May-81 17:27		IO SIMULATION

  8445					;HERE TO STORE A WORD IN THE IO AREA
  8446	032735'				IOSTOR:
  8447						X	WRT,STONXM
  8448	032745'	607400	002000			TXNN FLG,F.EXEC
  8449	032746'	254000	032763'			JRST STONX3
  8450	032747'	713453	600000			WRIO	T1,600000(MA)	;GIVE DATA TO UNIBUS
  8451	032750'	254000	032714'			JRST	IORET
  8452	032751'	607400	002000		STONXM:	TXNN	FLG,F.EXEC	;RUNNING IN EXEC MODE ?
  8453	032752'	254000	032763'			JRST	STONX3		;NO
  8454	032753'	201500	440200			MOVEI	T2,1B18+1B21+1B28
  8455	032754'	135440	011152'			LDB	T1,P.PLVL	;GET PROCESSOR LEVEL
  8456	032755'	305440	000007			CAIGE	T1,7		;ALLOW BR7 ?
  8457	032756'	201500	440230			MOVEI	T2,1B18+1B21!UBA.B7
  8458	032757'	305440	000005			CAIGE	T1,5		;ALLOW BR7 ?
  8459	032760'	201500	440234			MOVEI	T2,1B18+1B21!UBA.B5!UBA.B7
  8460	032761'	510440	041114'			HLLZ	T1,UBACTL	;POINT TO RIGHT UNIBUS
  8461	032762'	713511	763100			WRIO	T2,UBA.SR(T1)	;CLEAR FLAG
  8462	032763'	607400	001000		STONX3:	TXNN	FLG,F..SIM	;ARE WE SIMULATING ?
  8463	032764'	263740	000000			POPJ	P,		;NO SO SIMPLE ERROR
  8464	032765'	262740	000011			POP	P,T1		;CLEAN OFF STACK
  8465	032766'	254000	016746'			JRST	STFNXM		;GIVE BUS TRAP
  8466
  8467					;HERE TO STORE A BYTE IN THE IO AREA
  8468	032767'				IOBSTO:
  8469						X	BWR,STONXM
  8470	032777'	607400	002000			TXNN FLG,F.EXEC
  8471	033000'	254000	032751'			JRST STONXM
  8472	033001'	723453	600000			WRIOB	T1,600000(MA)	;GET DATA FROM UNIBUS
  8473	033002'	254000	032714'			JRST	IORET		;WON
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 194
DDT11	MAC	18-May-81 17:27		IO SIMULATION

  8474						DEFINE	X (Q,QQ) <
  8475						XLIST
  8476						TLNN	MA,MA..UN	;IS THIS A UNIBUS DEVICE ?
  8477						JRST	Q		;SAME AS PLAIN TYPE
  8478						HLL	MA,UBACTL	;ADD UNIBUS UNIT
  8479						QQ	T2,600000(MA)	;DO THE WRITE
  8480						RET
  8481						JRST	IORERR		;ERROR !?!
  8482						LIST
  8483					>;DEFINE X
  8484
  8485					;HERE TO RESTORE (CLEARING BITS) A WORD TO THE IO AREA
  8486	033003'				IOR.C:	X	IOR.,BCIO
  8487
  8488					;HERE TO RESTORE (SETTING BITS) A WORD TO THE IO AREA
  8489	033011'				IOR.S:	X	IOR.,BSIO
  8490
  8491					;HERE TO RESTORE A WORD TO THE IO AREA
  8492	033017'	603540	040000		IOR.:	TLNE	MA,MA..UN	;IS THIS A UNIBUS DEVICE ?
  8493		500540	041114'			JRST	[HLL	MA,UBACTL	;ADD UNIBUS UNIT
  8494		713453	600000				WRIO	T1,600000(MA)	;WRITE THE DATA
  8495		263740	000000				RET
  8496		254000	033043'				JRST	IORERR ]	;ERROR !?!
  8497	033020'	254000	047152'
  8498	033021'	405540	177777			ANDI	MA,177777
  8499	033022'	254034	000005			JRST	@DV.WRT(MA+1)	;STORE DATA
  8500
  8501					;HERE TO RESTORE (CLEARING BITS) A BYTE TO THE IO AREA
  8502	033023'				IOBR.C:	X	IOBR.,BCIOB
  8503
  8504					;HERE TO RESTORE (SETTING BITS) A BYTE TO THE IO AREA
  8505	033031'				IOBR.S:	X	IOBR.,BSIOB
  8506
  8507					;HERE TO RESTORE A BYTE TO THE IO AREA
  8508	033037'	603540	040000		IOBR.:	TLNE	MA,MA..UN	;IS THIS A UNIBUS DEVICE ?
  8509		500540	041114'			JRST	[HLL	MA,UBACTL	;ADD UNIBUS NUMBER
  8510		723453	600000				WRIOB	T1,600000(MA)	;WRITE THE DATA
  8511		263740	000000				RET
  8512		254000	033043'				JRST	IORERR ]	;ERROR !?!
  8513	033040'	254000	047156'
  8514	033041'	405540	177777			ANDI	MA,177777	;STRIP EXTRA BITS
  8515	033042'	254034	000006			JRST	@DV.BWR(MA+1)	;STORE DATA
  8516
  8517					;HERE IF ERROR RESTORING DATA
  8518	033043'	254200	033043'		IORERR:	HALT	.
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 195
DDT11	MAC	18-May-81 17:27		IO SIMULATION

  8519					;TRANSLATION OF IO ADDRESS SPACE
  8520
  8521						DEFINE	DDBGEN (DEV,WRDS) <
  8522						XLIST
  8523						 IF2,<
  8524						IFGE	<DEV'ADR-DDBADR> <PRINTX ERROR BUILDING IOMAP>
  8525						IFNDEF	DEV'TIM,<DEV'TIM==R>	;DEFAULT TIMER ROUTINE
  8526						IFNDEF	DEV'RST,<DEV'RST==R>	;DEFAULT RESET ROUTINE
  8527						IFNDEF	DEV'LVL,<DEV'LVL==0	;DEFAULT INTERRUPT LEVEL
  8528								DEV'INT==0>	;DEFAULT INTERRUPT ROUTINE
  8529					    >;IF2
  8530						DEV'DDB: PHASE	0
  8531						0,,DEV'ADR	;FIRST ADR IN DEVICE
  8532						0,,DEV'ADR+WRDS+WRDS-1	;HIGHEST ADR IN DEVICE
  8533					DDBADR==DEV'ADR
  8534					DV.LNK:! DDBLNK,,DDBLNK		;LINK TO NEXT DEVICE BLOCK
  8535					DDBLNK==DEV'DDB
  8536					DV.LOD:! EXP	DEV'LOD		;DISPATCH FOR LOAD
  8537					DV.BLD:! EXP	DEV'BLD		;DISPATCH FOR BYTE LOAD
  8538					DV.WRT:! EXP	DEV'WRT		;DISPATCH FOR WRITING WORDS
  8539					DV.BWR:! EXP	DEV'BWR		;DISPATCH FOR WRITING BYTES
  8540					DV.TIM:! EXP	DEV'TIM		;DISPATCH WHEN TIMER GOES OFF
  8541									; RETURNS WITH SKIP IF INTERRUPTED
  8542						Z			;TIME TO TAKE TIMER DISPATCH
  8543					DV.RST:! EXP	DEV'RST		;DISPATCH FOR RESET
  8544					DV.LVL:! EXP	DEV'LVL		;CONTAINS DEVICE LEVEL
  8545					DV.INT:! EXP	DEV'INT		;DISPATCH IF WANT TO CHECK FOR INTERRUPTS
  8546					DV.SIZ:! 
  8547						DEPHASE
  8548						LIST
  8549					>;DEFINE DDBGEN
  8550
  8551					;FOLLOWING DDBGEN ARE SIMULATED DEVICES TO USE STANDARD READ, WRITE ROUTINES
  8552					;	0,,0	;LH IS WRITEABLE BY PROGRAM BITS,,RH IS REGISTER
  8553					;	0,,0	;LH IS WRITEABLE BY OPERATORE BITS,,RH IS OLD REGISTER
  8554
  8555			200000		DDBADR==200000
  8556
  8557			000000		DDBLNK==0
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 196
DDT11	MAC	18-May-81 17:27		IO SIMULATION

  8558					;HERE TO WRITE A SIMULATED DEVICE REGISTER
  8559					; CALL	MOVE	T1,<WANT TO WRITE>
  8560					;	CALL	DEVWRT
  8561					;	RETURN	WITH NEW REGISTER IN T1
  8562	033044'	405540	177777		DEVWRT:	ANDI	MA,177777	;STRIP EXTRA BITS
  8563	033045'	550500	000013			HRRZ	T2,MA		;COPY DEVICE ADDRESS
  8564	033046'	274514	000000			SUB	T2,(MA+1)	;MAKE RELATIVE ADR
  8565	033047'	271514	000014			ADDI	T2,DV.SIZ(MA+1)	;POINT TO DEVICE REGISTERS
  8566	033050'	261740	000011			PUSH	P,T1		;SAVE DATA TO WRITE
  8567	033051'	200452	000000			MOVE	T1,(T2)		;GET ORIGINAL REGISTER
  8568	033052'	542452	000001			HRRM	T1,1(T2)	;SAVE ORIGINAL REGISTER
  8569	033053'	557000	000011			HLRZS	T1		;BITS PROGRAM CAN WRITE
  8570	033054'	607400	001000			TXNN	FLG,F..SIM	;IS SIMULATION RUNNING
  8571	033055'	554452	000001			HLRZ	T1,1(T2)	;NO SO HAVE DIFFERENT ENABLES
  8572	033056'	412452	000000			ANDCAM	T1,(T2)		;CLEAR BITS IN SIMULATED REGISTER
  8573	033057'	404457	000000			AND	T1,(P)		;BITS TO SET
  8574	033060'	437452	000000			IORB	T1,(T2)		;SET NEW BITS
  8575	033061'	262740	000012			POP	P,T2		;CLEAN UP STACK
  8576	033062'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 197
DDT11	MAC	18-May-81 17:27		IO SIMULATION - PS

  8577						SUBTTL	IO SIMULATION - PS
  8578
  8579					;HERE FOR PDP11 REFERENCES TO THE PS
  8580
  8581			177776		PS.ADR==177776
  8582
  8583						DDBGEN	PS.,1
  8584
  8585	033077'				PS.REG:
  8586	033077'	000357	000000			000357,,0	;PS REGISTER FOR DEVWRT, ETC.
  8587	033100'	000377	000000			000377,,0	;LET OPERATOR SET ALL BITS
  8588
  8589	033101'	550440	000016		PS.LOD:	HRRZ	T1,PS		;JUST A LOAD
  8590	033102'	263740	000000			RET
  8591
  8592	033103'	550440	000016		PS.BLD:	HRRZ	T1,PS		;LOAD THE PS
  8593	033104'	602540	000001			TRNE	MA,1		;WANT LEFT HALF ?
  8594	033105'	242440	777770			LSH	T1,-^D8
  8595	033106'	405440	000377			ANDI	T1,377
  8596	033107'	263740	000000			RET
  8597
  8598	033110'	602540	000001		PS.BWR:	TRNE	MA,1		;WRITING LH ?
  8599	033111'	263740	000000			RET
  8600	033112'	542700	033077'		PS.WRT:	HRRM	PS,PS.REG	;COPY CURRENT PS
  8601	033113'	260740	033044'			CALL	DEVWRT		;SET NEW PS
  8602	033114'	550700	033077'			HRRZ	PS,PS.REG	;SETUP NEW PS
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 198
DDT11	MAC	18-May-81 17:27		IO SIMULATION - PS

  8603					;HERE TO SEE IF NEW PS IS LOWER PRIORITY THAN OLD PS AND IF SO CHECK FOR INTERRUPTS
  8604	033115'	135500	011152'		PS.CHK:	LDB	T2,P.PLVL	;GET CURRENT PS LEVEL
  8605	033116'	607400	002000			TXNN	FLG,F.EXEC	;RUNNING IN EXEC MODE ?
  8606	033117'	254000	033127'			JRST	PSCHK0		;NO SO DON'T CHANGE ANYTHING
  8607	033120'	201440	000200			MOVEI	T1,1B28		;ASSUME CAN'T TAKE INTERRUPTS
  8608	033121'	305500	000007			CAIGE	T2,7		;CAN WE TAKE BR7'S NOW ?
  8609	033122'	551440	000230			HRRZI	T1,UBA.B7	;ENABLE CHANNEL FOR BR7
  8610	033123'	305500	000005			CAIGE	T2,5		;CAN WE TAKE BR5'S NOW ?
  8611	033124'	551440	000234			HRRZI	T1,UBA.B5!UBA.B7;ENABLE FOR BR5 & BR7
  8612	033125'	510500	041114'			HLLZ	T2,UBACTL	;POINT TO UNIBUS
  8613	033126'	713452	763100			WRIO	T1,UBA.SR(T2)	;ENABLE TO TAKE INTERRUPTS
  8614	033127'	550600	034105'		PSCHK0:	HRRZ	MA+1,FIRDDB
  8615	033130'	311514	000012		PSCHK1:	CAML	T2,DV.LVL(MA+1)
  8616	033131'	254000	033137'			JRST	PSCHK3
  8617	033132'	620400	000002			TXZ	FLG,F.FLOP
  8618	033133'	260774	000013			CALL	@DV.INT(MA+1)
  8619	033134'	602400	000002			TXNE	FLG,F.FLOP	;DID THAT ONE TAKE AN INTERRUPT ?
  8620	033135'	263740	000000			RET			;ALL DONE
  8621	033136'	135500	011152'			LDB	T2,P.PLVL	;GET CURRENT PS LEVEL
  8622	033137'	550614	000002		PSCHK3:	HRRZ	MA+1,DV.LNK(MA+1)
  8623	033140'	326600	033130'			JUMPN	MA+1,PSCHK1
  8624	033141'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 199
DDT11	MAC	18-May-81 17:27		IO SIMULATION - SWITCHES

  8625						SUBTTL	IO SIMULATION - SWITCHES
  8626
  8627					;HERE FOR PDP11 REFERENCES TO THE SWITCH REGISTER
  8628
  8629			177570		SW.ADR==177570
  8630
  8631						DDBGEN	SW.,1
  8632
  8633	033156'	000000	000000		SW.REG:	0,,0		;THIS IS THE SWITCH REGISTER
  8634	033157'	177777	000000			177777,,0	;LH IS WRITEABLE BY OPER BITS
  8635
  8636	033160'	200440	033156'		SW.LOD:	MOVE	T1,SW.REG	;LOAD THE SWITCHES
  8637	033161'	263740	000000			RET
  8638
  8639	033162'	200440	033156'		SW.BLD:	MOVE	T1,SW.REG	;LOAD THE SWITCHES
  8640	033163'	602440	000001			TRNE	T1,1		;WANT LH BYTE ?
  8641	033164'	242440	777770			LSH	T1,-10		;WANT LH
  8642	033165'	405440	000377			ANDI	T1,377		;ONLY 8 BITS
  8643	033166'	263740	000000			RET
  8644
  8645			033044'		SW.WRT==DEVWRT		;PLAIN DEVICE WRITE
  8646
  8647	033167'	603400	001000		SW.BWR:	TXNE	FLG,F..SIM	;ARE WE SIMULATING ?
  8648	033170'	263740	000000			RET			;YES SO DON'T WRITE IT
  8649	033171'	606540	000001			TRNN	MA,1		;WRITING RH ?
  8650		001000	033156'			DPB	T1,[POINT 8,SW.REG,35]	;YES
  8651	033172'	137440	047162'
  8652	033173'	602540	000001			TRNE	MA,1		;WRITING LH ?
  8653		101000	033156'			DPB	T1,[POINT 8,SW.REG,27]
  8654	033174'	137440	047163'
  8655	033175'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 200
DDT11	MAC	18-May-81 17:27		IO SIMULATION - CTY

  8656						SUBTTL	IO SIMULATION - CTY
  8657
  8658					;HERE TO READ OR WRITE THE SIMULATED CTY REGS
  8659
  8660			177560		CTYADR==177560
  8661			000004		CTYLVL==4
  8662
  8663						DDBGEN	CTY,4
  8664
  8665					;SIMULATED DEVICE REGISTERS FOR CTY
  8666					; LH IS MASK FOR BITS WHICH USER CAN WRITE
  8667					; RH IS SIMULATED REGISTER
  8668					; 2ND WORD IS COPY BEFORE WRITE
  8669	033212'	000100	000200		CTISTS:	100,,200
  8670	033213'	000300	000000			300,,0
  8671	033214'	000377	000000		CTIDAT:	377,,0
  8672	033215'	000377	000000			377,,0
  8673	033216'	000104	000200		CTOSTS:	104,,200	;200=RDY,100=ENAB,4=MAINT
  8674	033217'	000304	000000			304,,0
  8675	033220'	000377	000000		CTODAT:	377,,0
  8676	033221'	000377	000000			377,,0
  8677	033222'	777777	777777		CTOFLG:	-1		;WHEN -1 CTY OUTPUT WANTS TO INTERRUPT
  8678	033223'	777777	777777		CTIFLG:	-1		;WHEN -1 CTY INPUT WANTS TO INTERRUPT
  8679
  8680	033224'	000000	000000		CTITIM:	Z			;TIME TO CHECK CTY FOR INPUT
  8681	033225'	000000	010000		CTISPD:	EXP	010000		;NUMBER OF INSTRUCTIONS BETWEEN INPUTTING CHARS
  8682	033226'	000000	000000		CTOTIM:	Z			;TIME FOR CTY OUTPUT TO BE DONE OR 0
  8683	033227'	000000	001000		CTOSPD:	EXP	001000		;NUMBER OF INSTRUCTIONS BETWEEN PRINTING CHARS
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 201
DDT11	MAC	18-May-81 17:27		IO SIMULATION - CTY

  8684					;HERE ON A RESET
  8685	033230'	200440	033225'		CTYRST:	MOVE	T1,CTISPD	;START TIMING AGAIN
  8686	033231'	270440	011607'			ADD	T1,INSRUN	;MAKE ABSOLUTE
  8687	033232'	202440	033224'			MOVEM	T1,CTITIM	;TIME TO CHECK KEYBOARD AGAIN
  8688	033233'	202440	033206'			MOVEM	T1,DV.TIM+1+CTYDDB	;TIME TO CHECK KEYBOARD
  8689	033234'	402000	033226'			SETZM	CTOTIM		;DON'T NEED TIMER FOR PRINTER
  8690	033235'	513000	033212'			HLLZS	CTISTS		;CLEAR KEYBOARD REGISTER
  8691									;CTIDAT UNAFFECTED
  8692	033236'	402000	033223'			SETZM	CTIFLG		;DON'T WANT TO INTERRUPT
  8693	033237'	201440	000200			MOVEI	T1,200		;DONE FLAG
  8694	033240'	542440	033216'			HRRM	T1,CTOSTS	;FOR TELEPRINTER
  8695	033241'	513000	033220'			HLLZS	CTODAT		;CLEAR OUTPUT DATA REGISTER
  8696	033242'	476000	033222'			SETOM	CTOFLG		;WANT TO INTERRUPT
  8697	033243'	263740	000000			RET
  8698
  8699					;HERE IF USER DOES A BYTE OPERATION TO READ A CTY REGISTER
  8700	033244'	400440	000000		CTYBLD:	SETZ	T1,
  8701	033245'	602540	000001			TRNE	MA,1
  8702	033246'	263740	000000			RET
  8703						;FALL INTO WORD OPERATION
  8704
  8705					;HERE IF USER DOES A WORD OPERATION TO READ A CTY REGISTER
  8706	033247'	461440	000200		CTYLOD:	SETCMI	T1,200		;MASK FOR CTISTS
  8707	033250'	607400	001000			TXNN	FLG,F..SIM	;ARE WE SIMULATING ?
  8708	033251'	400440	000000			SETZ	T1,		;NO - DON'T ZERO ANYTHING
  8709		010000	177562			CAMN	MA,[MA..IO,,CTYADR+2]	;READING DATA ?
  8710	033252'	316540	047164'
  8711	033253'	406440	033212'			ANDM	T1,CTISTS	;CLEAR DONE FLOP
  8712	033254'	550453	633432'			HRRZ	T1,CTISTS-CTYADR(MA)	;GET REGISTER FOR HIM
  8713	033255'	263740	000000			RET
  8714
  8715					;HERE IF USER DOES A BYTE WRITE TO A CTY REGISTER
  8716	033256'	602540	000001		CTYBWR:	TRNE	MA,1		;WRITING LH ?
  8717	033257'	263740	000000			RET			;NO BITS THERE TO CHANGE
  8718						;FALL INTO WORD OPERATION
  8719
  8720					;HERE IF USER DOES A WORD WRITE TO A CTY REGISTER
  8721	033260'	260740	033044'		CTYWRT:	CALL	DEVWRT		;PERFORM THE WRITE
  8722	033261'	254033	633502'			JRST	@.+1-CTYADR(MA)
  8723	033262'	000000	033272'			CTIWRS			;WRITE CTY KEYBOARD STATUS REGISTER
  8724	033263'	254200	033263'			HALT	.
  8725	033264'	000000	005200'			R			;WRITE KEYBOARD DATA REGISTER
  8726	033265'	254200	033265'			HALT	.
  8727	033266'	000000	033277'			CTOWRS			;WRITE CTY PRINTER STATUS REGISTER
  8728	033267'	254200	033267'			HALT	.
  8729	033270'	000000	033304'			CTOWDT			;WRITE CTY PRINTER DATA
  8730	033271'	254200	033271'			HALT	.
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 202
DDT11	MAC	18-May-81 17:27		IO SIMULATION - CTY

  8731						DEFINE	X (Q,VEC) <
  8732						XLIST
  8733						CT'Q'WRS:	TDZ	T1,CT'Q'STS+1	;CLEAR BITS WHICH WERE ALREADY SET
  8734						TRNN	T1,100		;WAS ENABLE SET ?
  8735						RET			;WAS ALREADY SET
  8736						SETOM	CT'Q'FLG	;CAN INTERRUPT AGAIN
  8737						JRST	CTYCHK		;CHECK FOR INTERRUPTS
  8738						LIST
  8739					>;DEFINE X
  8740
  8741					;HERE BECAUSE WRITING CTY KEYBOARD STATUS REGISTER
  8742						X	I,60
  8743
  8744					;HERE BECAUSE WRITING CTY PRINTER STATUS REGISTER
  8745						X	O,64
  8746
  8747					;HERE BECAUSE WRITING CTY PRINTER DATA REGISTER
  8748	033304'	201440	000200		CTOWDT:	MOVEI	T1,200		;READY FLOP
  8749	033305'	412440	033216'			ANDCAM	T1,CTOSTS
  8750	033306'	402000	033222'			SETZM	CTOFLG		;DON'T WANT TO INTERRUPT
  8751	033307'	570440	011605'			TADJUS			;BE SURE INSRUN IS CURRENT
  8752	033310'	570500	011606'
  8753	033311'	274500	000011
  8754	033312'	272500	011607'
  8755	033313'	213000	000012
  8756	033314'	273500	011606'
  8757	033315'	542500	011605'
  8758	033316'	200440	033227'			MOVE	T1,CTOSPD	;TIME TILL ALL PRINTED
  8759	033317'	311440	011606'			CAML	T1,INTDLY+1	;BEFORE WE STOP TO CHECK ?
  8760	033320'	254000	033323'			JRST	CTOWD1		;YES
  8761	033321'	542440	011605'			HRRM	T1,INTDLY	;SET NEW TIME TO STOP
  8762	033322'	542440	011606'			HRRM	T1,INTDLY+1
  8763	033323'	270440	011607'		CTOWD1:	ADD	T1,INSRUN	;ABSOLUTE TIME TO FINISH PRINT
  8764	033324'	202440	033226'			MOVEM	T1,CTOTIM	;REMEMBER WHEN DONE
  8765	033325'	315440	033206'			CAMGE	T1,DV.TIM+1+CTYDDB	;SOONER THAN KEYBOARD ?
  8766	033326'	202440	033206'			MOVEM	T1,DV.TIM+1+CTYDDB	;SOONER SO USE THIS VALUE
  8767	033327'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 203
DDT11	MAC	18-May-81 17:27		IO SIMULATION - CTY

  8768					;HERE IF TIMER FOR CTY GOES OFF
  8769	033330'	200440	011607'		CTYTIM:	MOVE	T1,INSRUN	;GET NUMBER OF INSTRUCTIONS EXECUTED SO FAR
  8770	033331'	315440	033224'			CAMGE	T1,CTITIM	;TIME TO CHECK FOR CTY INPUT ?
  8771	033332'	254000	033352'			JRST	CHKCTO
  8772	033333'	270440	033225'			ADD	T1,CTISPD
  8773	033334'	202440	033224'			MOVEM	T1,CTITIM	;RESET CTY TIMER
  8774	033335'	051100	000011			INCHRS	T1		;HAS USER TYPED ?
  8775	033336'	254000	033352'			JRST	CHKCTO		;NOT YET
  8776	033337'	405440	000177			ANDI	T1,177		;STRIP PARITY (SHOULDN'T HAVE BEEN SET)
  8777	033340'	306440	000015			CAIN	T1,15		;WAS THAT A CARRIAGE RETURN ?
  8778		051100	000012			JRST	[INCHRS	T2		;GET THE LF THAT FOLLOWES
  8779		300000	000000				NOP			;FOOBAZ !!!!
  8780		254000	033342'				JRST	.+1 ]
  8781	033341'	254000	047165'
  8782	033342'	306440	000005			CAIN	T1,5		;WAS THAT A <^E>
  8783						JRST	[TYPE	<
  8784					^E
  8785		064253	642432		>
  8786
  8787		201440	047170'
  8788		260740	007655'
  8789		260740	007655'				CALL	TYPSTR
  8790		563000	011605'				HRROS	INTDLY		;STOP THE SIMULATION
  8791		621400	004000				TXZ	FLG,F.RUNF	;STOP THE SIMULATION
  8792		254000	033352'				JRST	CHKCTO ]
  8793	033343'	254000	047172'
  8794	033344'	306440	000024			CAIN	T1,24		;WAS THAT A ^T ?
  8795	033345'	254000	033567'			JRST	CNTRLT		;DISPLAY STATUS FOR CONTROL T
  8796	033346'	542440	033214'			HRRM	T1,CTIDAT	;SAVE CHAR FOR PROGRAM
  8797	033347'	201440	000200			MOVEI	T1,200		;DONE FLAG
  8798	033350'	437440	033212'			IORB	T1,CTISTS	;SET FLAG
  8799	033351'	476000	033223'			SETOM	CTIFLG		;SO WE INTERRUPT
  8800	033352'	332440	033226'		CHKCTO:	SKIPE	T1,CTOTIM	;ARE WE TIMING TRANSMITTER ?
  8801	033353'	313440	011607'			CAMLE	T1,INSRUN	;AND HAS ITS TIME COME ?
  8802	033354'	254000	033363'			JRST	CTTIM8		;NO
  8803	033355'	550440	033220'			HRRZ	T1,CTODAT	;GET CHARACTER TO PRINT
  8804	033356'	260740	007666'			CALL	TYPCHR		;TYPE THE CHARACTER
  8805	033357'	402000	033226'			SETZM	CTOTIM		;CLEAR TIMER
  8806	033360'	201440	000200			MOVEI	T1,200		;DONE FLAG
  8807	033361'	437440	033216'			IORB	T1,CTOSTS	;FLAG ITS DONE
  8808	033362'	476000	033222'			SETOM	CTOFLG		;WANT TO INTERRUPT
  8809	033363'	332440	033226'		CTTIM8:	SKIPE	T1,CTOTIM	;ARE WE TIMING TRANSMITTER ?
  8810	033364'	313440	033224'			CAMLE	T1,CTITIM	;WILL TRANSMITTER BE FIRST ?
  8811	033365'	200440	033224'			MOVE	T1,CTITIM	;USE KEYBOARD TIME
  8812	033366'	202440	033206'			MOVEM	T1,CTYDDB+DV.TIM+1	;SET TIMER
  8813	033367'	135440	011152'		CTYCHK:	LDB	T1,P.PLVL	;GET PROCESSOR LEVEL
  8814	033370'	311440	033210'			CAML	T1,CTYDDB+DV.LVL	;CAN WE TAKE INTERRUPTS NOW ?
  8815	033371'	263740	000000			RET			;NOT NOW
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 204
DDT11	MAC	18-May-81 17:27		IO SIMULATION - CTY

  8816					;HERE CAUSE PS WENT BELOW OUR LVL
  8817	033372'	200440	033212'		CTYINT:	MOVE	T1,CTISTS	;GET RECEIVER STATUS
  8818	033373'	602440	000200			TRNE	T1,200		;IN INTERRUPT FLAG UP
  8819	033374'	606440	000100			TRNN	T1,100		;AND IS ENABLE SET ?
  8820	033375'	254000	033470'			JRST	CTOINT		;CHECK TRANSMITTER
  8821	033376'	336000	033223'			SKIPN	CTIFLG		;MAY WE INTERRUPT ?
  8822	033377'	254000	033470'			JRST	CTOINT		;NO SO CHECK TRANSMITTER
  8823	033400'	402000	033223'			SETZM	CTIFLG		;DON'T INTERRUPT AGAIN
  8824						INTSAV	60		;TAKE INPUT INTERRUPT
  8825
  8826	033632'	000300	000000		CLKSTS:	000300,,0	;SIMULATED CLOCK STATUS REGISTER
  8827	033633'	000300	000000			000300,,0	; 200=INT,100=ENAB
  8828	033634'	000000	000000		CLKFLG:	Z			;WHEN NONZERO CLOCK CAN INTERRUPT
  8829	033635'	000000	001750		CLKSPD:	EXP	^D1000		;INSTRUCTIONS/CLOCK TICK
  8830								; THIS IS SLOWER THAN REAL 11/40 BUT
  8831								; FASTER THAN SIMULATED 11/40
  8832	033636'	000000	000000		CLKTCK:	Z			;COUNTED DOWN ONCE/MILASECOND
  8833
  8834					;HERE FOR THE KW11L ON A RESET
  8835	033637'	201440	000200		CLKRST:	MOVEI	T1,200
  8836	033640'	542440	033632'			HRRM	T1,CLKSTS
  8837	033641'	476000	033634'			SETOM	CLKFLG		;CAN TAKE AN INTERRUPT
  8838	033642'	607400	002000			TXNN FLG,F.EXEC
  8839	033643'	254000	033646'			JRST CLKRS1
  8840	033644'	201440	000024			MOVEI	T1,^D20		;NUMBER OF MILLASECONDS TILL NEXT TICK
  8841	033645'	202440	033636'			MOVEM	T1,CLKTCK
  8842	033646'	570440	011605'		CLKRS1:	TADJUS			;MAKE TIMER CURRENT
  8843	033647'	570500	011606'
  8844	033650'	274500	000011
  8845	033651'	272500	011607'
  8846	033652'	213000	000012
  8847	033653'	273500	011606'
  8848	033654'	542500	011605'
  8849	033655'	200440	033635'			MOVE	T1,CLKSPD	;TIME TILL NEXT TICK
  8850	033656'	311440	011606'			CAML	T1,INTDLY+1	;LESS THAN ANY OTHER ?
  8851	033657'	254000	033662'			JRST	CLKRS2
  8852	033660'	542440	011606'			HRRM	T1,INTDLY+1
  8853	033661'	542440	011605'			HRRM	T1,INTDLY
  8854	033662'	270440	011607'		CLKRS2:	ADD	T1,INSRUN	;TIME TILL NEXT TICK
  8855	033663'	202440	033626'			MOVEM	T1,CLKDDB+DV.TIM+1
  8856	033664'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 207
DDT11	MAC	18-May-81 17:27		IO SIMULATION - KW11L CLOCK

  8857					;HERE TO READ THE CLOCK
  8858	033665'	550440	033632'		CLKLOD:	HRRZ	T1,CLKSTS	;GET THE STATUS REGISTER
  8859	033666'	263740	000000			RET			;RETURN
  8860
  8861					;HERE TO READ THE CLOCK WITH A BYTE INSTRUCTION
  8862	033667'	602540	000001		CLKBLD:	TRNE	MA,1		;WANT RH OR LH ?
  8863	033670'	634440	000011			TDZA	T1,T1		;WANTED LEFT HALF
  8864	033671'	550440	033632'			HRRZ	T1,CLKSTS	;WANTED RH
  8865	033672'	263740	000000			RET
  8866
  8867					;HERE FOR A BYTE WRITE TO THE KW11L
  8868	033673'	602540	000001		CLKBWR:	TRNE	MA,1		;WRITING RH OR LH ?
  8869	033674'	263740	000000			RET			;DON'T WRITE LH
  8870
  8871					;HERE TO WRITE THE KW11L
  8872	033675'	260740	033044'		CLKWRT:	CALL	DEVWRT		;PERFORM THE WRITE
  8873	033676'	630440	033633'			TDZ	T1,CLKSTS+1	;CLEAR BITS ALREADY SET
  8874	033677'	602440	000100			TRNE	T1,100		;DID THAT SET ENABLE ?
  8875	033700'	476000	033634'			SETOM	CLKFLG		;CAN INTERRUPT AGAIN
  8876	033701'	254000	033727'			JRST	CLKWR3		;CHECK FOR POSSIBLE INTERRUPT
  8877
  8878					;HERE WHEN TIMER GOES OFF FOR THE CLOCK
  8879	033702'	570440	011605'		CLKTIM:	TADJUS			;BE SURE TIMER CURRENT
  8880	033703'	570500	011606'
  8881	033704'	274500	000011
  8882	033705'	272500	011607'
  8883	033706'	213000	000012
  8884	033707'	273500	011606'
  8885	033710'	542500	011605'
  8886	033711'	200440	033635'			MOVE	T1,CLKSPD	;TIME TILL NEXT CLOCK TICK
  8887	033712'	311440	011606'			CAML	T1,INTDLY+1	;WILL THIS BE NEXT DEVICE TO TICK ?
  8888	033713'	254000	033716'			JRST	CLKTI1
  8889	033714'	542440	011605'			HRRM	T1,INTDLY
  8890	033715'	542440	011606'			HRRM	T1,INTDLY+1
  8891	033716'	270440	011607'		CLKTI1:	ADD	T1,INSRUN	;MAKES TIME FOR NEXT TICK
  8892	033717'	202440	033626'			MOVEM	T1,CLKDDB+DV.TIM+1	;TIME FOR NEXT TICK
  8893	033720'	201440	000200			MOVEI	T1,200		;DONE FLAG
  8894	033721'	436440	033632'			IORM	T1,CLKSTS
  8895	033722'	476000	033634'			SETOM	CLKFLG		;CAN INTERRUPT AGAIN
  8896	033723'	607400	002000			TXNN FLG,F.EXEC
  8897	033724'	254000	033727'			JRST CLKWR3
  8898	033725'	201440	000024			MOVEI	T1,^D20		;NUMBER OF MILLASECONDS TILL NEXT TICK
  8899	033726'	202440	033636'			MOVEM	T1,CLKTCK
  8900	033727'	135440	011152'		CLKWR3:	LDB	T1,P.PLVL	;GET PROCESSOR LEVEL
  8901	033730'	311440	033630'			CAML	T1,CLKDDB+DV.LVL	;CAN WE INTERRUPT ?
  8902	033731'	263740	000000			RET			;NOT NOW
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 208
DDT11	MAC	18-May-81 17:27		IO SIMULATION - KW11L CLOCK

  8903					;HERE TO SEE IF CLOCK WANTS TO INTERRUPT
  8904
  8905	033732'	336000	033634'		CLKINT:	SKIPN	CLKFLG		;CAN WE INTERRUPT ?
  8906	033733'	263740	000000			RET			;NO
  8907	033734'	550440	033632'			HRRZ	T1,CLKSTS	;GET THE STATUS REGISTER
  8908	033735'	602440	000100			TRNE	T1,100		;IS ENABLE SET ?
  8909	033736'	606440	000200			TRNN	T1,200		;IS FLAG SET ?
  8910	033737'	263740	000000			RET			;DON'T WANT TO INTERRUPT NOW
  8911	033740'	402000	033634'			SETZM	CLKFLG		;HAVE TAKEN OUR INTERRUPT NOW
  8912						INTSAV	100		;TAKE AN INTERRUPT
  8913
  8914						DEFINE	X (Q) <
  8915						XLIST
  8916						TXNE	FLG,F..SIM	;ARE WE SIMULATING ?
  8917						JRST	Q		;LOSE
  8918						TXNN	FLG,F.EXEC	;ARE WE IN EXEC MODE ?
  8919						JRST	Q		;LOSE
  8920						HLL	MA,UBACTL	;ADD UNIBUS NUMBER
  8921						LIST
  8922					>;DEFINE X
  8923
  8924					;HERE TO DO A LOAD FROM A UBX REGISTER
  8925	034045'				UBXLOD:	X	NXMRET
  8926	034052'	712453	600000			RDIO	T1,600000(MA)	;GET DATA FROM UNIBUS
  8927	034053'	263740	000000			RET			;WILL SKIP IF FAILED
  8928	034054'	254000	032676'			JRST	NXMRET
  8929
  8930					;HERE TO DO A BYTE LOAD FROM A UBX REGISTER
  8931	034055'				UBXBLD:	X	NXMRET
  8932	034062'	722453	600000			RDIOB	T1,600000(MA)	;GET BYTE FROM UNIBUS
  8933	034063'	263740	000000			RET			;WILL SKIP IF FAILED
  8934	034064'	254000	032676'			JRST	NXMRET
  8935
  8936					;HERE TO DO A WRITE TO A UBX REGISTER
  8937	034065'				UBXWRT:	X	STONXM
  8938	034072'	713453	600000			WRIO	T1,600000(MA)	;GIVE DATA TO UNIBUS
  8939	034073'	263740	000000			RET
  8940	034074'	254000	032751'			JRST	STONXM
  8941
  8942					;HERE TO DO A BYTE WRITE TO THE UBX REGISTER
  8943	034075'				UBXBWR:	X	STONXM
  8944	034102'	723453	600000			WRIOB	T1,600000(MA)	;GIVE DATA TO UNIBUS
  8945	034103'	263740	000000			RET
  8946	034104'	254000	032751'			JRST	STONXM
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 211
DDT11	MAC	18-May-81 17:27		IO SIMULATION - UBX

  8947					;POINTER TO FIRST DDB
  8948					; RH LINK IS FOR USE WHILE RUNNING - DEVICES MAY BE REMOVED BY REMOVING LINKS
  8949					; LH LINK IS SO DELETED DEVICES CAN BE REINSTALLED
  8950	034105'	034031'	034031'		FIRDDB:	DDBLNK,,DDBLNK		;POINTER TO FIRST DDB
  8951
  8952					;BYTE POINTERS TO THE SIMULATED MEMORY
  8953	036704'	011147'	034106'		SIMPTR:	MEMREL	MEMORY
  8954	034106'	221013	000000			POINT	8,0(MA),17
  8955	036705'	011147'	034107'				MEMREL	MEMORY
  8956	034107'	321013	000000			POINT	8,0(MA),9
  8957	036706'	011147'	034110'				MEMREL	MEMORY
  8958	034110'	001013	000000			POINT	8,0(MA),35
  8959	036707'	011147'	034111'				MEMREL	MEMORY
  8960	034111'	101013	000000			POINT	8,0(MA),27
  8961
  8962					;TABLE OF INSTRUCTIONS WHICH MUST BE RELOCATED
  8963	034112'				RLMTAB:	BLOCK	RLMSIZ
  8964					;HERE TO RELOCATE MEMORY REFERENCES
  8965
  8966		775202	034112'		SIMREL:	MOVE	T3,[-RLMSIZ,,RLMTAB]
  8967	036710'	200540	047255'
  8968	036711'	336440	011147'			SKIPN	T1,MEMORY	;GET ADDRESS OF SIMULATED MEMORY
  8969	036712'	254200	000000			HALT
  8970	036713'	200513	000000		SIMRL2:	MOVE	T2,(T3)
  8971	036714'	554440	000012			HLRZ	T1,T2		;GET WHAT TO RELOCATE WITH
  8972	036715'	200451	000000			MOVE	T1,(T1)
  8973	036716'	542452	000000			HRRM	T1,(T2)
  8974	036717'	253540	036713'			AOBJN	T3,SIMRL2
  8975
  8976					;RECONSTRUCT VIRGIN DEVICE CHAIN
  8977	036720'	201440	034103'			MOVEI	T1,FIRDDB-DV.LNK
  8978	036721'	547451	000002			HLRS	T1,DV.LNK(T1)
  8979	036722'	326440	036721'			JUMPN	T1,.-1
  8980
  8981					;TO SPEED UP USER MODE RUNS REMOVE DDB FOR UNIBUS ADAPTER
  8982	036723'	603400	002000			TXNE	FLG,F.EXEC	;RUNNING IN EXEC MODE ?
  8983	036724'	263740	000000			RET			;NO, SKIP THIS
  8984	036725'	261740	000015			PUSH	P,IR		;SAVE REGISTER
  8985	036726'	201640	034103'			MOVEI	IR,FIRDDB-DV.LNK
  8986	036727'	550455	000002		SIMRL4:	HRRZ	T1,DV.LNK(IR)	;POINT TO NEXT DEVICE
  8987	036730'	306440	034031'			CAIN	T1,UBXDDB
  8988	036731'	550451	000002			HRRZ	T1,DV.LNK(T1)	;SKIP POINTER TO UBA
  8989	036732'	542455	000002			HRRM	T1,DV.LNK(IR)
  8990	036733'	332640	000011			SKIPE	IR,T1
  8991	036734'	254000	036727'			JRST	SIMRL4
  8992	036735'	262740	000015			POP	P,IR
  8993	036736'	263740	000000		SIMRL5:	RET
  8994
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 212
DDT11	MAC	18-May-81 17:27		IO SIMULATION - UBX

  8995
  8996					;HERE TO SETUP EPT AND UNIBUS MAPPING
  8997					; EPTBLK POINTS TO THE START OF:
  8998			000000		EPT...==0		;PAGE FOR EXEC PROCESS TABLE
  8999			001000		UPT...==1000		;PAGE FOR USER PROCESS TABLE
  9000			002000		STB...==2000		;PAGE FOR SECTION TABLE FOR SECTION 0
  9001			003000		CST...==3000		;PAGE FOR CORE STATUS TABLE
  9002			004000		VECTAB==4000		;3000 WORDS FOR VECTORED INTERRUPTS
  9003			007000		DSKPAG==7000		;PAGE FOR DISK IO
  9004			010000		EBLKSZ==10000		;SIZE OF BLOCK FOR EXEC USAGE
  9005
  9006	036737'	607400	002000		MAPCOR:	TXNN	FLG,F.EXEC	;RUNNING IN EXEC MODE ?
  9007	036740'	263740	000000			RET			;NO SO DON'T DIDDLE ADAPTER MAPPING
  9008	036741'	332600	041113'			SKIPE	T4,EPTBLK	;HAVE WE CHOSEN A SLOT FOR AN EPT YET ?
  9009	036742'	254000	037040'			JRST	MAPCR3		;ALREADY HAVE AN EPT
  9010
  9011					;MOVE SYMBOL TABLE AND PDP11 MEMORY UP TO ALLOW FOR EPT
  9012	036743'	260740	005303'			CALL	POSYMT		;BE SURE SYMBOL TABLE IS AT END OF CORE
  9013	036744'	336440	011151'			SKIPN	T1,MEMUSE	;FIRST TABLE TO MOVE UP
  9014	036745'	550440	041115'			HRRZ	T1,SYMBEG	;IF NO MEMORY THAN JUST MOVING SYMBOL TABLE
  9015	036746'	552440	000012			HRRZM	T1,T2		;SAVE FIRST ADR IN OLD TABLES
  9016	036747'	271440	000777			ADDI	T1,777		;WE WILL ROUND TO NEXT PAGE
  9017	036750'	405440	777000			ANDI	T1,777000	;MAKE PAGE ADR
  9018	036751'	202440	041113'			MOVEM	T1,EPTBLK	;SAVE ADR OF EPT
  9019	036752'	271440	010000			ADDI	T1,EBLKSZ	;TO GET TO FIRST TABLE
  9020	036753'	274440	000012			SUB	T1,T2		;HOW MUCH TO MOVE TABLE
  9021	036754'	200540	041116'			MOVE	T3,SYMEND	;LAST ADR IN SYMBOL TABLE
  9022	036755'	271551	777777			ADDI	T3,-1(T1)	;NEW LAST ADR IN SYMBOL TABLE
  9023	036756'	260740	004275'			CALL	MOVMUS		;MOVE THE TABLES
  9024	036757'	200600	041113'		MAPCR1:	MOVE	T4,EPTBLK	;GET EPT ADR AGAIN
  9025	036760'	505440	037111'			HRLI	T1,INTBLK	;COPY UUO AND INTERRUPT VECTORS
  9026	036761'	541454	000042			HRRI	T1,EPTINT(T4)
  9027	036762'	251454	000057			BLT	T1,EPTINT+15(T4)
  9028	036763'	201454	004000			MOVEI	T1,VECTAB(T4)	;ADR OF VECTOR TABLE FOR UBA
  9029	036764'	201514	000100			MOVEI	T2,EPTVEC(T4)	;WHERE VECTORS GO
  9030	036765'	505500	777770			HRLI	T2,-10		;POSSIBLE NUMBER OF UBA'S
  9031	036766'	202452	000000			MOVEM	T1,(T2)
  9032	036767'	253500	036766'			AOBJN	T2,.-1
  9033	036770'	205440	300000			MOVSI	T1,(NOP)
  9034	036771'	202454	000421			MOVEM	T1,EPTAOV(T4)	;IN CASE OF ARITHMITIC OVERFLOW
  9035		264000	037222'			MOVE	T1,[JSR EPDLOV]	;TELL USER ABOUT PROBLEM
  9036	036772'	200440	047256'
  9037	036773'	202440	000422			MOVEM	T1,EPTPDO	;IN CASE OF PUSHDOWN LIST OVERFLOW
  9038		111100	000014			LDB	T1,[POINT 9,T4,26]	;PICK UP PAGE NUMBER OF EPT
  9039	036774'	135440	047257'
  9040		124000	000002			ADD	T1,[124000,,2]	;IMMEDIATE; KERNEL; WRITABLE; CACHE
  9041	036775'	270440	047260'
  9042									; ,, SECT 0 PAGE TABLE
  9043	036776'	202454	000540			MOVEM	T1,EPTSTP(T4)	;POINTER TO SECTION 0 PAGE TABLE
  9044	036777'	201440	037260'			MOVEI	T1,UUO0		;WHERE TO GO ON A MUUO
  9045	037000'	202454	001430			MOVEM	T1,1430(T4)
  9046	037001'	505454	001430			HRLI	T1,1430(T4)
  9047	037002'	541454	001431			HRRI	T1,1431(T4)
  9048	037003'	251454	001437			BLT	T1,1437(T4)
  9049	037004'	201440	037223'			MOVEI	T1,PGFAIL	;WHERE TO GO ON A PAGE FAIL
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 212-1
DDT11	MAC	18-May-81 17:27		IO SIMULATION - UBX

  9050	037005'	202454	001503			MOVEM	T1,UPTPFN(T4)
  9051	037006'	205440	400000			MOVSI	T1,400000	;CST ENTRY
  9052	037007'	202454	003000			MOVEM	T1,CST...(T4)	;FIRST ENTRY IN THE TABLE
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 213
DDT11	MAC	18-May-81 17:27		IO SIMULATION - UBX

  9053	037010'	505454	003000			HRLI	T1,CST...(T4)	;BEGINING OF CST TABLE
  9054	037011'	541454	003001			HRRI	T1,CST...+1(T4)
  9055	037012'	251454	003777			BLT	T1,CST...+777(T4)	;FILL TABLE
  9056					;FILL UP VECTOR TABLE AND SPACE
  9057	037013'	201554	004000			MOVEI	T3,VECTAB(T4)
  9058	037014'	200440	000013		MAPCR2:	MOVE	T1,T3
  9059	037015'	275454	004000			SUBI	T1,VECTAB(T4)
  9060	037016'	221440	000005			IMULI	T1,5
  9061	037017'	271454	004400			ADDI	T1,VECTAB+400(T4)
  9062	037020'	505440	264000			HRLI	T1,(JSR)
  9063	037021'	202453	000000			MOVEM	T1,(T3)		;JSR VEC#
  9064	037022'	402011	000000			SETZM	(T1)		;VEC#: 0
  9065	037023'	505440	261740			HRLI	T1,(PUSH P,)
  9066	037024'	202451	000001			MOVEM	T1,1(T1)	;PUSH P,VEC#
  9067		261740	000011			MOVE	T2,[PUSH P,T1]
  9068	037025'	200500	047261'
  9069	037026'	202511	000002			MOVEM	T2,2(T1)	;PUSH P,T1
  9070	037027'	200500	000013			MOVE	T2,T3
  9071	037030'	275514	004000			SUBI	T2,VECTAB(T4)
  9072	037031'	242500	000002			LSH	T2,2
  9073	037032'	505500	201440			HRLI	T2,(MOVEI T1,)
  9074	037033'	202511	000003			MOVEM	T2,3(T1)	;MOVEI T1,#
  9075		254000	037173'			MOVE	T2,[JRST VECXX]
  9076	037034'	200500	047262'
  9077	037035'	202511	000004			MOVEM	T2,4(T1)	;JRST VECXX
  9078	037036'	302554	004377			CAIE	T3,VECTAB+377(T4)
  9079	037037'	344540	037014'			AOJA	T3,MAPCR2
  9080
  9081					;SETUP THE PAGE MAP FOR LOW CORE
  9082	037040'	205440	124000		MAPCR3:	MOVSI	T1,124000	;FIRST ENTRY FOR SECTION 0 PAGE TABLE
  9083	037041'	201554	002000			MOVEI	T3,STB...(T4)	;ADR OF SECTION 0 PAGE TABLE
  9084	037042'	505540	777400			HRLI	T3,-400		;ONLY FILL IN FIRST 256 PAGES
  9085	037043'	550500	000011		MAPCR4:	HRRZ	T2,T1
  9086	037044'	242500	000011			LSH	T2,^D9
  9087	037045'	311500	011147'			CAML	T2,MEMORY	;CACHE ONLY UP TO PDP11 MEMORY
  9088	037046'	621440	004000			TLZ	T1,004000	;UNCACHE PDP11 MEMORY
  9089	037047'	202453	000000			MOVEM	T1,(T3)
  9090	037050'	350000	000011			AOS	T1
  9091	037051'	253540	037043'			AOBJN	T3,MAPCR4
  9092	037052'	205440	004000			MOVSI	T1,4000		;MASK FOR CACHE BIT
  9093	037053'	412454	002000			ANDCAM	T1,STB...(T4)	;UNCACHE FIRST PAGE (8080 WORDS)
  9094					;SETUP THE UNIBUS MAPPING REGISTERS
  9095	037054'	402000	000012			SETZM	T2
  9096	037055'	200440	011147'			MOVE	T1,MEMORY	;GET STARTING ADDRESS OF MEMORY
  9097	037056'	242440	777767			LSH	T1,-^D9		;CONVERT TO PAGE NUMBER
  9098	037057'	660440	640000			TXO	T1,UB.VLD!UB.16B!UB.RPW	;SET READ/PAUSE WRITE, 16BIT, & VALID
  9099	037060'	500500	041114'		MAPCR5:	HLL	T2,UBACTL	;POINT TO RIGHT UNIBUS
  9100	037061'	713452	763000			WRIO	T1,UBAMAP(T2)	;WRITE MAPPING REGISTER
  9101	037062'	625500	777777			TLZA	T2,-1		;CLEAR UNIBUS NUMBER
  9102	037063'	254200	037064'			HALT	.+1		;IF GET PAGE FAIL
  9103	037064'	350000	000012			AOS	T2
  9104	037065'	242500	000013			LSH	T2,^D11
  9105	037066'	311500	011150'			CAML	T2,MEMLIM	;STILL IN RANGE ?
  9106	037067'	620440	040000			TXZ	T1,UB.VLD	;CLEAR VALID BIT
  9107	037070'	242500	777765			LSH	T2,-^D11
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 213-1
DDT11	MAC	18-May-81 17:27		IO SIMULATION - UBX

  9108	037071'	302500	000100			CAIE	T2,^D64
  9109	037072'	344440	037060'			AOJA	T1,MAPCR5
  9110	037073'	474440	000000			SETO	T1,
  9111	037074'	702540	000011			WRCSTM	T1		;WRITE CST MASK REGISTER
  9112	037075'	400440	000000			SETZ	T1,
  9113	037076'	702500	000011			WRPUR	T1		;WRITE PROCESS USE REGISTER
  9114	037077'	201454	003000			MOVEI	T1,CST...(T4)	;ADR OF CST
  9115	037100'	702440	000011			WRCSB	T1		;WRITE CORE STATUS TABLE BASE REGISTER
  9116	037101'	200440	041113'			MOVE	T1,EPTBLK	;GET ADR OF EXECUTIVE PROCESS TABLE
  9117	037102'	242440	777767			LSH	T1,-^D9
  9118	037103'	435440	060000			IORI	T1,1B21!1B22	;TOPS-20 PAGING, ENABLE TRAP AND PAGING
  9119	037104'	701211	000000			WREBR	(T1)		;SET UP EBR FOR EPT
  9120	037105'	620440	020000			TRZ	T1,1B22
  9121		500000	000001			ADD	T1,[1B0!1B2!1]	;LOAD AC BLOCK AND UBR
  9122	037106'	270440	047263'
  9123	037107'	701140	000011			WRUBR	T1		;SETUP UBR FOR UPT
  9124	037110'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 214
DDT11	MAC	18-May-81 17:27		MONITOR FOR EXEC MODE USE

  9125						SUBTTL	MONITOR FOR EXEC MODE USE
  9126
  9127	037111'	264000	037127'		INTBLK:	JSR	CH1
  9128	037112'	254200	000042			HALT	42
  9129	037113'	264000	037132'			JSR	CH2
  9130	037114'	254200	000044			HALT	44
  9131	037115'	264000	037154'			JSR	CH3
  9132	037116'	254200	000046			HALT	46
  9133	037117'	264000	037157'			JSR	CH4
  9134	037120'	254200	000050			HALT	50
  9135	037121'	264000	037162'			JSR	CH5
  9136	037122'	254200	000052			HALT	52
  9137	037123'	264000	037165'			JSR	CH6
  9138	037124'	254200	000054			HALT	54
  9139	037125'	264000	037170'			JSR	CH7
  9140	037126'	254200	000056			HALT	56
  9141
  9142	037127'	000000	000000		CH1:	Z
  9143	037130'	254200	037131'			HALT	.+1
  9144	037131'	254520	037127'			JEN	@CH1
  9145
  9146			000002		APRLVL==2
  9147	037132'	000000	000000		CH2:	Z
  9148	037133'	261740	000011			PUSH	P,T1		;SAVE REGISTER
  9149	037134'	261740	000012			PUSH	P,T2		;SAVE ANOTHER REGISTER
  9150	037135'	700240	000011			RDAPR	T1		;GET PROCESSOR STATUS
  9151	037136'	602440	001600			TRNE	T1,7B28		;SERIOUS PROBLEM ?
  9152		260740	004347'			CALL	[CALL	SAVE24		;SAVE REGISTER
  9153		261740	000011				PUSH	P,T1
  9154		260740	037565'				PUSHJ	P,INLMES
  9155							ASCIZ	\
  9156		064241	140640			APR	error \
  9157		262740	000011				POP	P,T1
  9158		260740	007535'				CALL	OCTYPE
  9159		700200	021602				WRAPR	1B22!7B28!APRLVL	;CLEAR ERROR FLAG
  9160		254200	005200'				HALT	R ]
  9161	037137'	260740	047264'
  9162	037140'	606440	000040			TRNN	T1,1B30		;DID CLOCK GO OFF ?
  9163	037141'	254000	037146'			JRST	CH2CK5
  9164	037142'	350000	037153'			AOS	UPTIME		;WE HAVE BEEN UP FOR ANOTHER MILLASECOND
  9165	037143'	700200	020042			WRAPR	1B22!1B30!APRLVL	;CLEAR THE CLOCK FLAG
  9166	037144'	377000	033636'			SOSG	CLKTCK		;TIME FOR KW11 TO TICK ?
  9167		201500	000024			JRST	[MOVEI	T2,^D20		;NUMBER OF MILASECONDS TILL NEXT TICK
  9168		202500	033636'				MOVEM	T2,CLKTCK
  9169		607400	004000				TXNN	FLG,F.RUNF	;ARE WE SIMULATING
  9170		254000	037146'				JRST	CH2CK5		;NO
  9171		202500	033626'				MOVEM	T2,CLKDDB+DV.TIM+1	;KW11 WANTS TIMER SERVICE NOW
  9172		563000	011605'				HRROS	INTDLY		;CHECK KW11 SOON
  9173		254000	037146'				JRST	CH2CK5]
  9174	037145'	254000	047276'
  9175	037146'	602440	000020		CH2CK5:	TRNE	T1,1B31		;DID THE 8080 INTERRUPT
  9176		200500	000032			JRST	[MOVE	T2,FEWINP	;GET DATA
  9177		700200	020022				WRAPR	1B22!1B31!APRLVL	;CLEAR FLAG
  9178		322440	037150'				JUMPE	T1,CH2CK9	;IF NOTHING WE'RE DONE
  9179		402000	000032				SETZM	FEWINP		;FLAG WE SAW IT
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 214-1
DDT11	MAC	18-May-81 17:27		MONITOR FOR EXEC MODE USE

  9180		550440	000012				HRRZ	T1,T2		;COPY DATA
  9181		242440	777770				LSH	T1,-^D8		;LEAVE ONLY THE CODE
  9182		302440	000001				CAIE	T1,1		;IS THIS A CTY CHAR ?
  9183		254000	037150'				JRST	CH2CK9		;NO
  9184		306500	000017				CAIN	T2,17		;IS THIS A CONTROL O ?
  9185		462000	037621'				JRST	[SETCMM	CNTLOF		;COMPLEMENT CONTROL O FLAG
  9186		254000	037150'					JRST	CH2CK9]
  9187		254000	047305'
  9188		200440	037623'				MOVE	T1,RCVPTR	;GET RECEIVE CHAR PUTTER
  9189		136500	000011				IDPB	T2,T1		;PUT CHAR IN BUFFER
  9190		041000	037633'				CAMN	T1,[POINT 8,RCVBUF+7,31]
  9191		316440	047307'
  9192		441000	037624'				MOVE	T1,[POINT 8,RCVBUF]	;WRAP BUFFER AROUND
  9193		200440	047310'
  9194		202440	037623'				MOVEM	T1,RCVPTR
  9195		254000	037150'				JRST	CH2CK9 ]
  9196	037147'	254000	047311'
  9197	037150'	262740	000012		CH2CK9:	POP	P,T2		;RESTORE REGISTER
  9198	037151'	262740	000011			POP	P,T1		;RESTORE REGISTER
  9199	037152'	254520	037132'			JEN	@CH2
  9200
  9201	037153'	000000	000000		UPTIME:	Z			;COUNTED ONCE PER MILLASECOND
  9202
  9203			000003		BR7LVL==3
  9204			001020		BR7OFF==1B26!1B31
  9205			002020		BR7ON==	1B25!1B31
  9206			010000		BR7INT==1B23		;INTERRUPT IN PROGRESS FOR BR7
  9207	037154'	000000	000000		CH3:	Z
  9208	037155'	254200	037156'			HALT	.+1
  9209	037156'	254520	037154'			JEN	@CH3
  9210
  9211			000004		BR5LVL==4
  9212			001010		BR5OFF==1B26!1B32
  9213			002010		BR5ON==	1B25!1B32
  9214			004000		BR5INT==1B24		;INTERRUPT IN PROGRESS FOR BR5
  9215	037157'	000000	000000		CH4:	Z
  9216	037160'	254200	037161'			HALT	.+1
  9217	037161'	254520	037157'			JEN	@CH4
  9218
  9219	037162'	000000	000000		CH5:	Z
  9220	037163'	254200	037164'			HALT	.+1
  9221	037164'	254520	037162'			JEN	@CH5
  9222
  9223	037165'	000000	000000		CH6:	Z
  9224	037166'	254200	037167'			HALT	.+1
  9225	037167'	254520	037165'			JEN	@CH6
  9226
  9227	037170'	000000	000000		CH7:	Z
  9228	037171'	254200	037172'			HALT	.+1
  9229	037172'	254520	037170'			JEN	@CH7
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 215
DDT11	MAC	18-May-81 17:27		MONITOR FOR EXEC MODE USE

  9230					;HERE AFTER AFTER TAKING A VECTORED INTERRUPT
  9231					; INTERRUPTED PC IS PUSHED ON STACK FOLLOWED BY T1
  9232	037173'	563000	011605'		VECXX:	HRROS	INTDLY
  9233	037174'	261740	000012			PUSH	P,T2		;SAVE ANOTHER REG
  9234	037175'	700640	000012			RDPI	T2		;GET PI STATUS
  9235	037176'	602500	010000			TRNE	T2,BR7INT	;WAS THIS A BR7(BR6) INTERRUPT ?
  9236	037177'	254000	037212'			JRST	VECX7
  9237	037200'	606500	004000			TRNN	T2,BR5INT	;WAS THIS A BR5(BR4) INTERRUPT
  9238	037201'	254200	037202'			HALT	.+1
  9239	037202'	202440	042163'			MOVEM	T1,BR5PND#	;SAVE VECTOR FOR PENDING INTERRUPT
  9240	037203'	201440	000200			MOVEI	T1,1B28
  9241	037204'	510500	041114'			HLLZ	T2,UBACTL	;GET UNIBUS NUMBER
  9242	037205'	713452	763100			WRIO	T1,UBA.SR(T2)
  9243	037206'	262740	000012			POP	P,T2
  9244	037207'	262740	000011			POP	P,T1
  9245	037210'	262740	042164'			POP	P,BR5TRP#
  9246	037211'	254520	042164'			JEN	@BR5TRP#	;DISMISS THE INTERRUPT
  9247
  9248	037212'	202440	042165'		VECX7:	MOVEM	T1,BR7PND#	;SAVE VECTOR FOR PENDING INTERRUPT
  9249	037213'	201440	000200			MOVEI	T1,1B28
  9250	037214'	510500	041114'			HLLZ	T2,UBACTL	;GET UNIBUS NUMBER
  9251	037215'	713452	763100			WRIO	T1,UBA.SR(T2)
  9252	037216'	262740	000012			POP	P,T2
  9253	037217'	262740	000011			POP	P,T1
  9254	037220'	262740	042166'			POP	P,BR7TRP#	;GET WHERE WE INTERRUPTED FROM
  9255	037221'	254520	042166'			JEN	@BR7TRP#
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 216
DDT11	MAC	18-May-81 17:27		MONITOR FOR EXEC MODE USE

  9256					;HERE IN CASE OF PUSHDOWN LIST OVERFLOW
  9257
  9258	037222'	254200	037222'		EPDLOV:	HALT	.
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 217
DDT11	MAC	18-May-81 17:27		MONITOR FOR EXEC MODE USE

  9259					;HERE ON A PAGE FAIL
  9260
  9261	037223'	202600	042174'		PGFAIL:	MOVEM	T4,PGFSAV#	;SAVE A REG
  9262	037224'	200600	041113'			MOVE	T4,EPTBLK	;POINT TO PAGE TABLES
  9263	037225'	261754	001502			PUSH	P,UPTPFO(T4)	;SAVE ADR WE CAME FROM
  9264	037226'	350017	000000			AOS	(P)		;ADVANCE OVER FAILING INSTRUCTION
  9265	037227'	200600	042174'			MOVE	T4,PGFSAV#	;RESTORE REG
  9266	037230'	260740	004324'			CALL	SAVE4		;SAVE T1-T4
  9267	037231'	200600	041113'			MOVE	T4,EPTBLK	;POINT TO PAGE TABLES
  9268		360614	001500			LDB	T1,[POINT 6,UPTPFW(T4),5]	;GET PAGE FAIL CODE
  9269	037232'	135440	047331'
  9270	037233'	306440	000020			CAIN	T1,20		;IS THIS AN IO FAILURE ?
  9271	037234'	254000	005177'			JRST	RSKP		;RETURN MAKING FAILING INSTRUCTION SKIP
  9272	037235'	260740	037565'			PUSHJ	P,INLMES
  9273						ASCIZ	\
  9274	037236'	064241	150302			Page Fail @pc = \
  9275	037242'	200600	041113'			MOVE	T4,EPTBLK	;POINT TO PAGE TABLES AGAIN
  9276	037243'	200454	001502			MOVE	T1,UPTPFO(T4)	;GET FAILING PC
  9277	037244'	260740	007535'			CALL	OCTYPE		;DISPLAY THE PC
  9278	037245'	260740	037565'			PUSHJ	P,INLMES
  9279	037246'	201345	627100			ASCIZ	\ ... Page fail word \
  9280	037253'	200600	041113'			MOVE	T4,EPTBLK	;CUZ INLMES WIPES T4
  9281	037254'	200454	001500			MOVE	T1,UPTPFW(T4)
  9282	037255'	260740	007535'			CALL	OCTYPE
  9283	037256'	254200	037257'			HALT	.+1
  9284	037257'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 218
DDT11	MAC	18-May-81 17:27		MONITOR FOR EXEC MODE USE

  9285					;HERE ON A UUO
  9286	037260'	202700	037323'		UUO0:	MOVEM	16,UUOACS+16
  9287	037261'	201700	037305'			MOVEI	16,UUOACS
  9288	037262'	251700	037322'			BLT	16,UUOACS+15
  9289	037263'	200040	041113'			MOVE	AC1,EPTBLK	;ADDRESS OF EXECUTIVE PROCESS TABLE
  9290	037264'	261741	001425			PUSH	P,.UPMUP(AC1)	;SAVE RETURN ADR ON STACK
  9291	037265'	200101	001426			MOVE	AC2,.UPMUO+2(AC1)	;GET UUO EFFECTIVE ADR
  9292		050401	001424			LDB	AC3,[POINT 4,.UPMUO(AC1),30]	;GET REG ARGUMENT
  9293	037266'	135140	047332'
  9294		111101	001424			LDB	T1,[POINT 9,.UPMUO(AC1),26]	;GET OP CODE
  9295	037267'	135440	047333'
  9296	037270'	301440	000040			CAIL	T1,40
  9297	037271'	301440	000100			CAIL	T1,100
  9298	037272'	260740	037345'			PUSHJ	P,ILLUUO
  9299	037273'	241440	777777			ROT	T1,-1
  9300	037274'	603440	400000			TLNE	T1,400000
  9301	037275'	334451	037305'			SKIPA	T1,UUODSP-20(T1)
  9302	037276'	554451	037305'			HLRZ	T1,UUODSP-20(T1)
  9303	037277'	260751	000000			PUSHJ	P,(T1)
  9304	037300'	304000	000000		UUORET:	CAIA
  9305	037301'	350017	000000			AOS	(P)
  9306	037302'	205700	037305'			MOVSI	16,UUOACS
  9307	037303'	251700	000016			BLT	16,16		;RESTORE ACS
  9308	037304'	263740	000000			RET
  9309
  9310	037305'				UUOACS:	BLOCK	^D16		;COPY AC'S HERE WHILE DOING A UUO
  9311
  9312	037325'	037345'	037671'		UUODSP:	ILLUUO,,UUINIT	;CALL(40),,INIT(41)
  9313	037326'	037345'	037345'			ILLUUO,,ILLUUO	;(42),,(43)
  9314	037327'	037345'	037345'			ILLUUO,,ILLUUO	;(44),,(45)
  9315	037330'	037345'	037367'			ILLUUO,,UCALLI	;(46),,CALLI(47)
  9316	037331'	037675'	037510'			UUOPEN,,UTTCAL	;OPEN(50),,TTCALL(51)
  9317	037332'	037345'	037345'			ILLUUO,,ILLUUO	;(52),,(53)
  9318	037333'	037345'	037345'			ILLUUO,,ILLUUO	;(54),,RENAME(55)
  9319	037334'	037345'	037345'			ILLUUO,,ILLUUO	;IN(56),,OUT(57)
  9320	037335'	037726'	037345'			USTSTS,,ILLUUO	;SETSTS(60),,STATO(61)
  9321	037336'	037345'	037345'			ILLUUO,,ILLUUO	;STATUS(62),,GETSTS(63)
  9322	037337'	037345'	037345'			ILLUUO,,ILLUUO	;STATZ(64),,INBUF(65)
  9323	037340'	037345'	037345'			ILLUUO,,ILLUUO	;INPUT(66),,OUTPUT(67)
  9324	037341'	037732'	037733'			UCLOSE,,URLEAS	;CLOSE(70),,RELEAS(71)
  9325	037342'	037345'	037345'			ILLUUO,,ILLUUO	;MTAPE(72),,UGETF(73)
  9326	037343'	037345'	037345'			ILLUUO,,ILLUUO	;USETI(74),,USETO(75)
  9327	037344'	037345'	037345'			ILLUUO,,ILLUUO	;LOOKUP(76),,ENTER(77)
  9328
  9329	037345'	260740	037565'		ILLUUO:	CALL	INLMES
  9330						ASCIZ	\
  9331	037346'	064251	166330		Illegal UUO \
  9332	037351'	261741	001425			PUSH	P,.UPMUP(AC1)	;SAVE PC
  9333	037352'	514441	001424			HRLZ	T1,.UPMUO(AC1)	;GET THE UUO
  9334	037353'	540441	001426			HRR	T1,.UPMUO+2(AC1)	;PICKUP EFFECTIVE ADR
  9335	037354'	260740	007535'			CALL	OCTYPE		;DISPLAY OCTAL CODE
  9336	037355'	260740	037565'			CALL	INLMES
  9337	037356'	202012	041572			ASCIZ	\ @PC=\
  9338	037360'	262740	000011			POP	P,T1		;GET PC
  9339	037361'	405440	777777			ANDI	T1,-1		;STRIP OFF THE FLAGS
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 218-1
DDT11	MAC	18-May-81 17:27		MONITOR FOR EXEC MODE USE

  9340	037362'	370000	000011			SOS	T1		;BACK UP TO UUO
  9341	037363'	260740	007535'			CALL	OCTYPE
  9342	037364'	254200	037365'			HALT	.+1
  9343	037365'	262740	000011			POP	P,T1		;CLEAN OFF THE STACK
  9344	037366'	254000	037300'			JRST	UUORET		;THEN EXIT UUO
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 219
DDT11	MAC	18-May-81 17:27		MONITOR FOR EXEC MODE USE

  9345					;HERE FOR A CALLI UUO
  9346	037367'	200443	037305'		UCALLI:	MOVE	T1,UUOACS(AC3)	;GET ARGUMENT FROM REGISTER
  9347	037370'	550500	000002			HRRZ	T2,AC2		;GET CALLI INDEX
  9348	037371'	301500	000126			CAIL	T2,126
  9349	037372'	254000	037345'			JRST	ILLUUO
  9350	037373'	241500	777777			ROT	T2,-1
  9351	037374'	603500	400000			TLNE	T2,400000
  9352	037375'	334512	037400'			SKIPA	T2,CALDSP(T2)
  9353	037376'	554512	037400'			HLRZ	T2,CALDSP(T2)
  9354	037377'	254012	000000			JRST	(T2)
  9355
  9356	037400'	037453'	037345'		CALDSP:	CALLI0,,ILLUUO	;RESET(0),,(1)
  9357	037401'	037345'	037345'			ILLUUO,,ILLUUO	;SETDDT(2),,(3)
  9358	037402'	037345'	037345'			ILLUUO,,ILLUUO	;DEVCHR(4),,(5)
  9359	037403'	037345'	037345'			ILLUUO,,ILLUUO	;GETCHR(6),,(7)
  9360	037404'	037345'	037476'			ILLUUO,,UCORE	;WAIT(10),,CORE(11)
  9361	037405'	037345'	037345'			ILLUUO,,ILLUUO	;EXIT(12),,(13)
  9362	037406'	037345'	037345'			ILLUUO,,ILLUUO	;DATE(14),,LOGIN(15)
  9363	037407'	037345'	037345'			ILLUUO,,ILLUUO	;APRENB(16),,LOGOUT(17)
  9364	037410'	037345'	037345'			ILLUUO,,ILLUUO	;SWITCH(20),,REASSIGN(21)
  9365	037411'	037345'	037345'			ILLUUO,,ILLUUO	;TIMER(22),,MSTIME(23)
  9366	037412'	037345'	037345'			ILLUUO,,ILLUUO	;GETPPN(24),,TRPSET(25)
  9367	037413'	037345'	037503'			ILLUUO,,URUNTM	;(26),,RUNTIM(27)
  9368	037414'	037345'	037506'			ILLUUO,,USLEEP	;PJOB(30),,SLEEP(31)
  9369	037415'	037345'	037345'			ILLUUO,,ILLUUO	;(32),,PEEK(33)
  9370	037416'	037345'	037345'			ILLUUO,,ILLUUO	;GETLIN(34),,RUN(35)
  9371	037417'	037345'	037345'			ILLUUO,,ILLUUO	;SETUWP(36),,REMAP(37)
  9372	037420'	037345'	037507'			ILLUUO,,UGTTAB	;GETSEG(40),,GETTAB(41)
  9373	037421'	037345'	037345'			ILLUUO,,ILLUUO	;SPY(42),,SETNAM(43)
  9374	037422'	037345'	037345'			ILLUUO,,ILLUUO	;TMPCOR(44),,DSKCHR(45)
  9375	037423'	037345'	037345'			ILLUUO,,ILLUUO	;SYSSTR(46),,JOBSTR(47)
  9376	037424'	037345'	037345'			ILLUUO,,ILLUUO	;STRUUO(50),,SYSPHY(51)
  9377	037425'	037345'	037345'			ILLUUO,,ILLUUO	;(52),,DEVTYP(53)
  9378	037426'	037345'	037345'			ILLUUO,,ILLUUO	;DEVSTS(54),,DEVPPN(55)
  9379	037427'	037345'	037345'			ILLUUO,,ILLUUO	;SEEK(56),,RTTRP(57)
  9380	037430'	005177'	037345'			RSKP,,ILLUUO	;LOCK(60),,JOBSTS(61)
  9381	037431'	037345'	037345'			ILLUUO,,ILLUUO	;LOCATE(62),,WHERE(63)
  9382	037432'	037345'	037345'			ILLUUO,,ILLUUO	;DEVNAM(64),,CTLJOB(65)
  9383	037433'	037345'	037345'			ILLUUO,,ILLUUO	;GOBSTR(66),,(67)
  9384	037434'	037345'	037345'			ILLUUO,,ILLUUO	;(70),,HPQ(71)
  9385	037435'	037345'	037345'			ILLUUO,,ILLUUO	;HIBER(72),,WAKE(73)
  9386	037436'	037345'	037345'			ILLUUO,,ILLUUO	;CHGPPN(74),,SETUUO(75)
  9387	037437'	037345'	037345'			ILLUUO,,ILLUUO	;(76),,OTHUSR(77)
  9388	037440'	037345'	037345'			ILLUUO,,ILLUUO	;CHKACC(100),,DEVSIZ(101)
  9389	037441'	037345'	037345'			ILLUUO,,ILLUUO	;DAEMON(102),,JOBPEK(103)
  9390	037442'	037345'	037345'			ILLUUO,,ILLUUO	;ATTACH(104),,DAEFIN(105)
  9391	037443'	037345'	037345'			ILLUUO,,ILLUUO	;FRCUUO(106),,DEVLNM(107)
  9392	037444'	037345'	037345'			ILLUUO,,ILLUUO	;PATH(110),,METER.(111)
  9393	037445'	037345'	037345'			ILLUUO,,ILLUUO	;MTCHR.(112),,JBSET.(113)
  9394	037446'	037345'	037345'			ILLUUO,,ILLUUO	;POKE.(114),,TRMNO.(115)
  9395	037447'	037345'	037345'			ILLUUO,,ILLUUO	;TRMOP.(116),,RESDV.(117)
  9396	037450'	005177'	037345'			RSKP,,ILLUUO	;UNLOK.(120),,DISK(121)
  9397	037451'	037345'	037345'			ILLUUO,,ILLUUO	;DVRST.(122),,DVURS.(123)
  9398	037452'	037345'	037345'			ILLUUO,,ILLUUO	;(124),,CAL11.(125)
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 220
DDT11	MAC	18-May-81 17:27		MONITOR FOR EXEC MODE USE

  9399					;RESET
  9400	037453'	700200	221740		CALLI0:	WRAPR	1B19!1B22!37B30	;IO RESET
  9401	037454'	260740	011611'			CALL	R.SET		;DO A UNIBUS RESET
  9402	037455'	700600	012377			WRPI	12377	;RESET PI SYSTEM & TURN IT ON
  9403	037456'	201440	010000			MOVEI	T1,^D4096
  9404	037457'	702640	000011			WRINT	T1		;SET INTERVAL FOR TIMER
  9405	037460'	402000	000031			SETZM	FEWSTS		;CLEAR FRONT END STATUS WORD
  9406	037461'	402000	000032			SETZM	FEWINP		;CLEAR INPUT WORD
  9407	037462'	402000	000033			SETZM	FEWOUT		;CLEAR OUTPUT WORD
  9408		441000	037624'			MOVE	T1,[POINT 8,RCVBUF]
  9409	037463'	200440	047310'
  9410	037464'	202440	037623'			MOVEM	T1,RCVPTR	;INITIALIZE RECEIVE CHAR PUTTER
  9411	037465'	202440	037622'			MOVEM	T1,RCVTKR	;INITIALIZE RECEIVE CHAR TAKER
  9412	037466'	402000	037621'			SETZM	CNTLOF		;CLEAR CONTROL O FLAG
  9413	037467'	700200	101662			WRAPR	1B20!73B31!APRLVL	;ENABLE INTERRUPTS
  9414	037470'	205440	400000			MOVSI	T1,400000
  9415	037471'	242440	777777			LSH	T1,-1
  9416	037472'	327440	005200'			JUMPG	T1,R
  9417		462471	020312			TYPE	<LSH extends sign>
  9418	037473'	201440	047334'
  9419	037474'	260740	007655'
  9420	037475'	254200	037453'			HALT	CALLI0
  9421
  9422					;CORE - CALLI 11
  9423	037476'	435440	000777		UCORE:	IORI	T1,777
  9424	037477'	542440	005400*			HRRM	T1,.JBREL	;SET NEW JOBREL
  9425	037500'	201440	000140			MOVEI	T1,140
  9426	037501'	202443	037305'			MOVEM	T1,UUOACS(AC3)	;RESULT
  9427	037502'	254000	005177'			RETSKP
  9428
  9429					;HERE FOR A RUNTIM UUO
  9430	037503'	200440	037153'		URUNTM:	MOVE	T1,UPTIME	;GET UPTIME (WE USE ALL THE TIME)
  9431	037504'	202443	037305'			MOVEM	T1,UUOACS(AC3)	;RESULT
  9432	037505'	263740	000000			RET
  9433
  9434					;SLEEP - CALLI 31
  9435	037506'	263740	000000		USLEEP:	RET
  9436
  9437					;GETTAB - CALLI 41
  9438	037507'	263740	000000		UGTTAB:	RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 221
DDT11	MAC	18-May-81 17:27		MONITOR FOR EXEC MODE USE

  9439					;HERE FOR A TTCALL UUO
  9440	037510'	307100	000016		UTTCAL:	CAIG	AC2,16
  9441	037511'	271100	037305'			ADDI	AC2,UUOACS	;POINT TO RIGHT ARGUMENT
  9442	037512'	241140	777777			ROT	AC3,-1
  9443	037513'	603140	400000			TLNE	AC3,400000
  9444	037514'	334503	037517'			SKIPA	T2,TTCDSP(AC3)
  9445	037515'	554503	037517'			HLRZ	T2,TTCDSP(AC3)
  9446	037516'	254012	000000			JRST	(T2)
  9447	037517'	037527'	037533'		TTCDSP:	TTCLL0,,TTCLL1	;INCHRW(0),,OUTCHR(1)
  9448	037520'	037535'	037541'			TTCLL2,,TTCLL3	;INCHRS(2),,OUTSTR(3)
  9449	037521'	037546'	037547'			TTCLL4,,TTCLL5	;INCHWL(4),,INCHSL(5)
  9450	037522'	037550'	037552'			TTCLL6,,TTCLL7	;GETLCH(6),,SETLCH(7)
  9451	037523'	037553'	037554'			TTCL10,,TTCL11	;RESCAN(10),,CLRBFI(11)
  9452	037524'	037555'	037556'			TTCL12,,TTCL13	;CLRBFO(12),,SKPINC(13)
  9453	037525'	037562'	037563'			TTCL14,,TTCL15	;SKPINL(14),,IONEOU(15)
  9454	037526'	037345'	037345'			ILLUUO,,ILLUUO	;(16),,(17)
  9455
  9456					;INCHRW
  9457	037527'	260740	037636'		TTCLL0:	CALL	CHKCHR		;SEE IF THERE IS A CHARACTER READY
  9458	037530'	254000	037527'			JRST	TTCLL0		;TRY AGAIN
  9459	037531'	202442	000000			MOVEM	T1,(AC2)	;GIVE USER THE DATA
  9460	037532'	263740	000000			RET
  9461
  9462					;OUTCHR
  9463	037533'	200442	000000		TTCLL1:	MOVE	T1,(AC2)	;GET THE CHARACTER TO WRITE
  9464	037534'	254000	037573'			JRST	SCNTYP		;TYPE THE CHARACTER
  9465
  9466					;INCHRS
  9467	037535'	260740	037636'		TTCLL2:	CALL	CHKCHR		;TRY TO GET A CHARACTER
  9468	037536'	263740	000000			RET			;TRY LATER
  9469	037537'	202442	000000			MOVEM	T1,(AC2)	;GIVE THE USER THE CHARACTER
  9470	037540'	254000	005177'			RETSKP
  9471
  9472					;OUTSTR
  9473	037541'	505100	440700		TTCLL3:	HRLI	AC2,(POINT 7,0)
  9474	037542'	134440	000002		TTCL31:	ILDB	T1,AC2
  9475	037543'	322440	005200'			JUMPE	T1,R		;IF NULL WE ARE DONE
  9476	037544'	260740	037573'			CALL	SCNTYP		;TYPE THE CHARACTER
  9477	037545'	254000	037542'			JRST	TTCL31
  9478
  9479					;INCHWL
  9480	037546'	254000	037527'		TTCLL4:	JRST	TTCLL0
  9481
  9482					;INCHSL
  9483	037547'	254000	037535'		TTCLL5:	JRST	TTCLL2
  9484
  9485					;GETLCH
  9486	037550'	402002	000000		TTCLL6:	SETZM	(AC2)
  9487	037551'	263740	000000			RET
  9488
  9489					;SETLCH
  9490	037552'	263740	000000		TTCLL7:	RET
  9491
  9492					;RESCAN
  9493	037553'	263740	000000		TTCL10:	RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 221-1
DDT11	MAC	18-May-81 17:27		MONITOR FOR EXEC MODE USE

  9494
  9495					;CLRBFI
  9496	037554'	263740	000000		TTCL11:	RET
  9497
  9498					;CLRBFO
  9499	037555'	263740	000000		TTCL12:	RET
  9500
  9501					;SKPINC
  9502	037556'	260740	037636'		TTCL13:	CALL	CHKCHR		;IS ANYTHING READY ?
  9503	037557'	263740	000000			RET			;NO
  9504	037560'	202442	000000			MOVEM	T1,(AC2)	;GIVER USER CHARACTER
  9505	037561'	254000	005177'			RETSKP
  9506
  9507					;SKPINL
  9508	037562'	254000	037556'		TTCL14:	JRST	TTCL13
  9509
  9510					;IONEOU
  9511	037563'	200442	000000		TTCL15:	MOVE	T1,(AC2)
  9512	037564'	254000	037573'			JRST	SCNTYP
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 222
DDT11	MAC	18-May-81 17:27		MONITOR FOR EXEC MODE USE

  9513					;HERE TO TYPE AN INLINE MESSAGE
  9514	037565'	505440	440700		INLMES:	HRLI	T1,(POINT 7,0)
  9515	037566'	502457	000000			HLLM	T1,(P)		;MAKE A BYTE POINTER
  9516	037567'	134457	000000		INLMS3:	ILDB	T1,(P)
  9517	037570'	322440	005177'			JUMPE	T1,RSKP		;SKIP NULL CHAR AND DONE
  9518	037571'	260740	037573'			PUSHJ	P,SCNTYP
  9519	037572'	254000	037567'			JRST	INLMS3		;FINISH REST OF MESSAGE
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 223
DDT11	MAC	18-May-81 17:27		MONITOR FOR EXEC MODE USE

  9520					;HERE TO TYPE A CHARACTER
  9521	037573'	332000	037621'		SCNTYP:	SKIPE	CNTLOF		;DID USER FLUSH OUTPUT ?
  9522	037574'	263740	000000			RET
  9523	037575'	405440	000177			ANDI	T1,177		;STRIP PARITY BIT
  9524	037576'	306440	000015			CAIN	T1,15		;WAS THAT A CARRIAGE RETURN ?
  9525	037577'	402000	037634'			SETZM	COLUMN		;BACK TO LH MARGIN
  9526	037600'	350500	037634'			AOS	T2,COLUMN	;ADVANCE COLUMN POINTER
  9527	037601'	302440	000177			CAIE	T1,177		;RUBOUTS DON'T PRINT
  9528	037602'	305440	000040			CAIGE	T1,40		;IS THIS A PRINTING CHARACTER ?
  9529	037603'	370500	037634'			SOS	T2,COLUMN	;NOT PRINTING SO BACKUP SOLUMN COUNTER
  9530	037604'	306440	000011			CAIN	T1,11		;WAS THAT A HT ?
  9531		271500	000010			JRST	[ADDI	T2,^D8
  9532		405500	777770				ANDI	T2,-10
  9533		202500	037634'				MOVEM	T2,COLUMN
  9534		254000	037606'				JRST	.+1 ]
  9535	037605'	254000	047340'
  9536	037606'	313500	037635'			CAMLE	T2,WIDTH	;IS THAT IN RANGE ?
  9537		261740	000011			JRST	[PUSH	P,T1		;SAVE CHAR TO TYPE
  9538		260740	037565'				CALL	INLMES
  9539		064240	000000				BYTE	(7)15,12,0
  9540		262740	000011				POP	P,T1
  9541		254000	037573'				JRST	SCNTYP ]
  9542	037607'	254000	047344'
  9543	037610'	305440	000040			CAIGE	T1,40		;SHOULD WE PAD THIS CHARACTER ?
  9544		260740	037612'			JRST	[PUSHJ	P,.+1		;PRINT THE CHARACTER THEN RETURN HERE
  9545		201440	000377				MOVEI	T1,377		;PAD CHAR
  9546		254000	037612'				JRST	.+1 ]
  9547	037611'	254000	047351'
  9548	037612'	332000	000033			SKIPE	FEWOUT		;CAN WE TYPE NEXT CHAR ?
  9549	037613'	254000	037612'			JRST	.-1		;WAIT UNTIL WE CAN
  9550	037614'	405440	000377			ANDI	T1,377		;STRIP EXTRA BITS
  9551	037615'	435440	000400			IORI	T1,1B27		;FLAG THIS IS A CTY CHAR
  9552	037616'	202440	000033			MOVEM	T1,FEWOUT	;PUT IT FOR 8080 TO FIND
  9553	037617'	700200	012002			WRAPR	1B23!1B25!APRLVL	;INTERRUPT THE 8080
  9554	037620'	263740	000000			RET
  9555	037621'	000000	000000		CNTLOF:	Z			;CONTROL O FLAG
  9556	037622'	000000	000000		RCVTKR:	Z			;TAKER FOR RECEIVE CHARACTERS
  9557	037623'	000000	000000		RCVPTR:	Z			;PUTTER FOR RECEIVE CHARACTERS
  9558	037624'				RCVBUF:	BLOCK	10		;BUFFER FOR RECEIVE CHARACTERS
  9559
  9560	037634'	000000	000000		COLUMN:	Z			;COLUMN WE ARE ON
  9561	037635'	000000	000120		WIDTH:	^D80		;MAXIMUM NUMBER OF COLUMNS FOR OUTPUT
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 224
DDT11	MAC	18-May-81 17:27		MONITOR FOR EXEC MODE USE

  9562					;HERE TO TRY TO GET A CHARACTER FROM THE CTY
  9563	037636'	402000	037621'		CHKCHR:	SETZM	CNTLOF		;CLEAR CONTROL O FLAG
  9564	037637'	400440	000000			SETZ	T1,
  9565	037640'	250440	042176'			EXCH	T1,SAVCHR#	;GET SAVED CHAR
  9566	037641'	326440	037651'			JUMPN	T1,CKCHR5
  9567	037642'	200500	037622'			MOVE	T2,RCVTKR	;GET RECEIVE CHAR TAKER
  9568	037643'	316500	037623'			CAMN	T2,RCVPTR	;ANY CHARACTERS
  9569	037644'	263740	000000			RET
  9570	037645'	134440	000012			ILDB	T1,T2		;GET NEXT CHARACTER
  9571		041000	037633'			CAMN	T2,[POINT 8,RCVBUF+7,31]	;WAS THAT LAST IN BUFFER ?
  9572	037646'	316500	047307'
  9573		441000	037624'			MOVE	T2,[POINT 8,RCVBUF]	;TIME TO WRAP BUFFER AROUND
  9574	037647'	200500	047310'
  9575	037650'	202500	037622'			MOVEM	T2,RCVTKR
  9576	037651'	405440	000377		CKCHR5:	ANDI	T1,377		;STRIP EXTRA BITS
  9577	037652'	200500	000011			MOVE	T2,T1		;COPY CHAR
  9578	037653'	405500	000177			ANDI	T2,177		;STRIP PARITY BIT
  9579	037654'	607400	004000			TXNN	FLG,F.RUNF	;RUNNING SIMULATION ?
  9580	037655'	302500	000003			CAIE	T2,3		;WAS THAT A CONTROL C ?
  9581	037656'	304000	000000			CAIA
  9582	037657'	254000	000000'			JRST	DDT11		;YES SO BEGIN AGAIN
  9583	037660'	261740	000012			PUSH	P,T2		;SAVE CHARACTER FOR RETURN
  9584	037661'	306500	000015			CAIN	T2,15		;WAS THAT A CR ?
  9585		201500	000012			JRST	[MOVEI	T2,12		;LF
  9586		202500	042176'				MOVEM	T2,SAVCHR#
  9587		254000	037663'				JRST	.+1]
  9588	037662'	254000	047354'
  9589	037663'	306500	000033			CAIN	T2,33		;WAS THAT AN ALTMODE ?
  9590	037664'	201440	000044			MOVEI	T1,"$"		;ECHO AS THIS
  9591	037665'	607400	004000			TXNN	FLG,F.RUNF	;IF SIMULATING DON'T ECHO
  9592	037666'	260740	037573'			CALL	SCNTYP		;ECHO THE CHARACTER
  9593	037667'	262740	000011			POP	P,T1		;GET CHAR OFF STACK
  9594	037670'	254000	005177'			RETSKP
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 225
DDT11	MAC	18-May-81 17:27		MONITOR FOR EXEC MODE USE

  9595					;HERE ON AN INIT UUO
  9596	037671'	550117	777777		UUINIT:	HRRZ	AC2,-1(P)	;GET RETURN ADDRESS
  9597	037672'	370000	000002			SOS	AC2
  9598	037673'	201440	000002			MOVEI	T1,2
  9599	037674'	272457	777777			ADDM	T1,-1(P)	;SO RETURN WORKS
  9600						;JRST	UUOPEN
  9601					;HERE ON AN OPEN UUO
  9602	037675'	307100	000016		UUOPEN:	CAIG	AC2,16		;WAS ARGUMENT IN REGISTERS ?
  9603	037676'	271100	037305'			ADDI	AC2,UUOACS	;YES SO RELOCATE
  9604	037677'	550440	000003			HRRZ	T1,AC3		;GET REGISTER ARGUMENT = CHNL
  9605	037700'	242440	000027			LSH	T1,^D23		;POSITION IN LH
  9606	037701'	661440	000020			TLO	T1,20		;FLAG DEVICE OPENED
  9607	037702'	540442	000000			HRR	T1,(AC2)	;GET STATUS
  9608	037703'	204502	000001			MOVS	T2,1(AC2)	;GET DEVICE NAME TO OPEN
  9609	037704'	306500	646471			CAIN	T2,'TTY'
  9610	037705'	254000	037715'			JRST	OPNTTY
  9611	037706'	202440	037721'			MOVEM	T1,DSKDDB	;SAVE STATUS
  9612	037707'	206500	037723'			MOVSM	T2,DSKSTR	;SAVE NAME OF DISK STRUCTURE
  9613	037710'	402000	040016'			SETZM	RJUNIT		;LOOK AT FIRST UNIT FOR STRUCTURE NAME
  9614	037711'	402000	040017'			SETZM	RJBLCK		;BLOCK TO READ
  9615	037712'	260740	037750'		DSKOP2:	CALL	RJREAD		;TRY TO READ THE BLOCK
  9616		350440	040016'			JRST	[AOS	T1,RJUNIT
  9617		302440	000010				CAIE	T1,^D8		;TOO LARGE ?
  9618		254000	037712'				JRST	DSKOP2
  9619		263740	000000				RET	]
  9620	037713'	254000	047357'
  9621	037714'	263740	000000			RET
  9622
  9623	037715'	202440	037717'		OPNTTY:	MOVEM	T1,TTYDDB	;SAVE DEVICE STATUS
  9624	037716'	254000	005177'			RETSKP
  9625
  9626					;DEVICE BLOCKS
  9627	037717'	000000	000000		TTYDDB:	Z			;CHNL,,DEVICE STATUS SET BY USER
  9628	037720'	000000	037721'			EXP	DSKDDB
  9629
  9630	037721'	000000	000000		DSKDDB:	Z			;CHNL,,DEVICE STATUS SET BY USER
  9631	037722'	000000	000000			Z
  9632	037723'	000000	000000		DSKSTR:	Z			;STRUCTURE
  9633	037724'	000000	000000		DSKFIL:	Z			;FILE NAME
  9634	037725'	000000	000000		DSKEXT:	Z			;FILE EXT
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 226
DDT11	MAC	18-May-81 17:27		MONITOR FOR EXEC MODE USE

  9635					;HERE ON A SETSTS UUO
  9636	037726'	260740	037737'		USTSTS:	CALL	UFNDDB
  9637	037727'	263740	000000			RET
  9638	037730'	542444	000000			HRRM	T1,0(AC4)
  9639	037731'	263740	000000			RET
  9640
  9641					;HERE ON A CLOSE UUO
  9642	037732'	263740	000000		UCLOSE:	RET
  9643
  9644					;HERE ON A RELEASE UUO
  9645	037733'	260740	037737'		URLEAS:	CALL	UFNDDB		;FIND WHICH DDB
  9646	037734'	263740	000000			RET
  9647	037735'	402004	000000			SETZM	0(AC4)
  9648	037736'	263740	000000			RET
  9649
  9650	037737'	201200	037717'		UFNDDB:	MOVEI	AC4,TTYDDB
  9651	037740'	336444	000000		UFNDD0:	SKIPN	T1,0(AC4)	;GET STATUS
  9652	037741'	254000	037745'			JRST	UFNDD7
  9653		270404	000000			LDB	T1,[POINT 4,0(AC4),12]
  9654	037742'	135440	047363'
  9655	037743'	316440	000003			CAMN	T1,AC3
  9656	037744'	254000	005177'			JRST	RSKP
  9657	037745'	332204	000001		UFNDD7:	SKIPE	AC4,1(AC4)	;GET NEXT DDB ADR
  9658	037746'	254000	037740'			JRST	UFNDD0
  9659	037747'	263740	000000			RET
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 227
DDT11	MAC	18-May-81 17:27		MONITOR FOR EXEC MODE USE

  9660					;HERE TO HANDLE AN RJPO4
  9661
  9662					;HERE TO READ A BLOCK FROM AN RJP04
  9663					; CALL	SETUP RJUNIT WITH UNIT NUMBER
  9664					;	SETUP RJBLCK TO BE BLOCK NUMBER TO READ
  9665					;	CALL RJREAD
  9666					;	ERROR RETURN
  9667					;	WIN RETURN
  9668	037750'	510540	041114'		RJREAD:	HLLZ	MA,UBACTL	;ADD UNIBUS UNIT
  9669	037751'	712453	763077			RDIO	T1,UBAMAP+77(MA)	;GET CURRENT MAP FOR PAGE
  9670	037752'	261740	000011			PUSH	P,T1		;SAVE STATUS
  9671	037753'	550440	041113'			HRRZ	T1,EPTBLK	;GET ADR OF EPT
  9672	037754'	201451	007000			MOVEI	T1,DSKPAG(T1)	;MAKE ADR OF DISK PAGE
  9673	037755'	242440	777767			LSH	T1,-^D9		;MAKE PAGE NUMBER
  9674	037756'	660440	140000			TRO	T1,UB.VLD!UB.FST	;STATUS
  9675	037757'	713453	763077			WRIO	T1,UBAMAP+77(MA)	;MAP THE DISK PAGE
  9676	037760'	201440	000040			MOVEI	T1,000040	;RESET
  9677	037761'	713453	776710			WRIO	T1,RPCS2(MA)	;CLEAR OUT THE CONTROLLER
  9678	037762'	200440	040016'			MOVE	T1,RJUNIT	;UNIT TO READ FROM
  9679	037763'	713453	776710			WRIO	T1,RPCS2(MA)	;SELECT UNIT
  9680	037764'	201440	000021			MOVEI	T1,21		;PRESELECT
  9681	037765'	713453	776700			WRIO	T1,RPCS1(MA)	;SELECT OUR UNIT
  9682	037766'	201440	174000			MOVEI	T1,174000	;ADR TO TRANSFER TO
  9683	037767'	713453	776704			WRIO	T1,RPBA(MA)	;SET ADDRESS
  9684	037770'	201440	776000			MOVEI	T1,-2000	;NUMBER OF PDP11 WORDS TO TRANSFER
  9685	037771'	713453	776702			WRIO	T1,RPWC(MA)
  9686	037772'	201440	000471			MOVEI	T1,471		;READ DATA AND MEMORY EXTENSION
  9687	037773'	713453	776700			WRIO	T1,RPCS1(MA)	;START THE TRANSFER
  9688	037774'	260740	040004'			CALL	RJRDWT		;WAIT FOR TRANSFER TO COMPLETE
  9689	037775'	254000	037776'			JRST	RJRD.9
  9690	037776'	262740	000012		RJRD.9:	POP	P,T2		;GET OLD UBAMAP STATUS
  9691		111300	000012			LDB	T1,[POINT 11,T2,26]	;GET PAGE NUMBER
  9692	037777'	135440	047364'
  9693		330400	000012			LDB	T2,[POINT 4,T2,8]	;GET STATUS BITS
  9694	040000'	135500	047365'
  9695		160400	000011			DPB	T2,[POINT 4,T1,21]	;PUT INTO WORD
  9696	040001'	137500	047366'
  9697	040002'	713453	763077			WRIO	T1,UBAMAP+77(MA)	;RESTORE MAP FOR THAT PAGE
  9698	040003'	263740	000000			RET
  9699					;HERE TO WAIT FOR DISK OPERATION TO COMPLETE
  9700	040004'	200600	037153'		RJRDWT:	MOVE	T4,UPTIME	;HOW LOG WE HAVE BEEN UP
  9701	040005'	271600	001750			ADDI	T4,^D1000	;ADD A SECOND
  9702	040006'	317600	037153'		RJRDW4:	CAMG	T4,UPTIME	;HAVE WE WAITED TOO LONG ?
  9703	040007'	263740	000000			RET			;MUST BE DEAD
  9704	040010'	712453	776700		RJRD.5:	RDIO	T1,RPCS1(MA)	;GET DRIVE STATUS
  9705	040011'	606440	160200			TRNN	T1,160200	;FLAG COME UP ?
  9706	040012'	254000	040006'			JRST	RJRDW4		;NOT YET
  9707	040013'	606440	060000			TRNN	T1,060000	;ERROR FLAG UP ?
  9708	040014'	350017	000000			AOS (P)			;NO, SKIP RETURN
  9709	040015'	263740	000000			RET			;YES LOSE
  9710
  9711
  9712	040016'	000000	000000		RJUNIT:	Z			;UNIT TO READ
  9713	040017'	000000	000000		RJBLCK:	Z			;BLOCK TO READ
  9714
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 228
DDT11	MAC	18-May-81 17:27		EBCDIC TO ASCII TRANSLATION TABLE

  9715						SUBTTL	EBCDIC TO ASCII TRANSLATION TABLE
  9716
  9717					;TRANSLATION TABLE FROM EBCDIC TO ASCII
  9718
  9719	040020'	000004	020060		EB.TRN:	BYTE	(8)000,001,002,003,000,011,000,177	;000-007
  9720	040022'	000000	000260			BYTE	(8)000,000,000,013,014,015,000,000	;010-017
  9721	040024'	000104	220000			BYTE	(8)000,021,022,000,000,000,000,000	;020-027
  9722	040026'	000000	000000			BYTE	(8)000,000,000,000,000,000,000,000	;030-037
  9723	040030'	000000	000000			BYTE	(8)000,000,000,000,000,000,000,000	;040-047
  9724	040032'	000000	000000			BYTE	(8)000,000,000,000,000,000,000,000	;050-057
  9725	040034'	000000	000000			BYTE	(8)000,000,000,000,000,000,000,000	;060-067
  9726	040036'	000000	000000			BYTE	(8)000,000,000,000,000,000,000,000	;070-077
  9727	040040'	100000	000000			BYTE	(8)040,000,000,000,000,000,000,000	;100-107
  9728	040042'	000000	001340			BYTE	(8)000,000,000,056,074,050,053,136	;110-117
  9729	040044'	114000	000000			BYTE	(8)046,000,000,000,000,000,000,000	;120-127
  9730	040046'	000000	411100			BYTE	(8)000,000,041,044,052,051,073,155	;130-137
  9731	040050'	132274	000000			BYTE	(8)055,057,000,000,000,000,000,000	;140-147
  9732	040052'	000001	741300			BYTE	(8)000,000,174,054,045,137,076,077	;150-157
  9733	040054'	000000	000000			BYTE	(8)000,000,000,000,000,000,000,000	;160-167
  9734	040056'	000600	721060			BYTE	(8)000,140,072,043,100,047,075,042	;170-177
  9735	040060'	172605	423060			BYTE	(8)075,141,142,143,144,145,146,147	;200-207
  9736	040062'	320644	000000			BYTE	(8)150,151,000,000,000,000,000,000	;210-217
  9737	040064'	000651	533300			BYTE	(8)000,152,153,154,155,156,157,160	;220-227
  9738	040066'	342710	000000			BYTE	(8)161,162,000,000,000,000,000,000	;230-237
  9739	040070'	200771	633500			BYTE	(8)100,176,163,164,165,166,167,170	;240-247
  9740	040072'	362751	342340			BYTE	(8)171,172,134,116,153,133,113,141	;250-257
  9741	040074'	140304	621460			BYTE	(8)060,061,062,063,064,065,066,067	;260-267
  9742	040076'	160345	722740			BYTE	(8)070,071,172,136,114,135,156,157	;270-277
  9743	040100'	366405	022060			BYTE	(8)173,101,102,103,104,105,106,107	;300-307
  9744	040102'	220444	000000			BYTE	(8)110,111,000,000,000,000,000,000	;310-317
  9745	040104'	372451	132300			BYTE	(8)175,112,113,114,115,116,117,120	;320-327
  9746	040106'	242510	000000			BYTE	(8)121,122,000,000,000,000,000,000	;330-337
  9747	040110'	270001	232500			BYTE	(8)134,000,123,124,125,126,127,130	;340-347
  9748	040112'	262550	000000			BYTE	(8)131,132,000,000,000,000,000,000	;350-357
  9749	040114'	140304	621460			BYTE	(8)060,061,062,063,064,065,066,067	;360-367
  9750	040116'	160345	740000			BYTE	(8)070,071,174,000,000,000,000,000	;370-377
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 229
DDT11	MAC	18-May-81 17:27		STATE TABLES

  9751						SUBTTL	STATE TABLES
  9752
  9753					;INITIAL STATE TABLE
  9754
  9755	040120'				STATE0:
  9756	040120'	001113'	001640'		BYTE (18)LOOP  ,ILLCHR,ILLCHR,DDT11 ,ILLCHR,ILLCHR,CNTRLF,ILLCHR;00-07
  9757	040124'	001316'	001316'		BYTE (18)ACCUM ,ACCUM ,ACCUM ,ILLCHR,ILLCHR,ACCUM ,ILLCHR,ILLCHR;10-17
  9758	040130'	001640'	001640'		BYTE (18)ILLCHR,ILLCHR,CNTRLR,ILLCHR,ILLCHR,CNTRLU,ILLCHR,CNTRLW;20-27
  9759	040134'	001214'	001640'		BYTE (18)EXPXOR,ILLCHR,CNTRLZ,ESCAPE,ILLCHR,ILLCHR,ILLCHR,ILLCHR;30-37
  9760	040140'	001167'	001210'		BYTE (18)EXPSPC,EXPIOR,ACCUM ,ACCUM ,ASSYMB,ASSPRC,EXPAND,EXPDIV;40-47
  9761	040144'	001316'	001316'		BYTE (18)ACCUM ,ACCUM ,EXPMUL,EXPLUS,ACCUM ,EXPMIN,ASSPER,ACCUM	;50-57
  9762	040150'	001132'	001132'		BYTE (18)ASSNUM,ASSNUM,ASSNUM,ASSNUM,ASSNUM,ASSNUM,ASSNUM,ASSNUM;60-67
  9763	040154'	001130'	001130'		BYTE (18)ASSDEC,ASSDEC,DEFSYM,ACCUM ,LFTANG,ACCUM ,ACCUM ,QUEST.;70-77
  9764	040160'	001316'	001155'		BYTE (18)ACCUM ,ASSYMB,ASSYMB,ASSYMB,ASSYMB,ASSYMB,ASSYMB,ASSYMB;100-107
  9765	040164'	001155'	001155'		BYTE (18)ASSYMB,ASSYMB,ASSYMB,ASSYMB,ASSYMB,ASSYMB,ASSYMB,ASSYMB;110-117
  9766	040170'	001155'	001155'		BYTE (18)ASSYMB,ASSYMB,ASSYMB,ASSYMB,ASSYMB,ASSYMB,ASSYMB,ASSYMB;120-127
  9767	040174'	001155'	001155'		BYTE (18)ASSYMB,ASSYMB,ASSYMB,ACCUM ,ACCUM ,ILLCHR,ACCUM ,ACCUM	;130-137
  9768	040200'	001640'	001155'		BYTE (18)ILLCHR,ASSYMB,ASSYMB,ASSYMB,ASSYMB,ASSYMB,ASSYMB,ASSYMB;140-147
  9769	040204'	001155'	001155'		BYTE (18)ASSYMB,ASSYMB,ASSYMB,ASSYMB,ASSYMB,ASSYMB,ASSYMB,ASSYMB;150-157
  9770	040210'	001155'	001155'		BYTE (18)ASSYMB,ASSYMB,ASSYMB,ASSYMB,ASSYMB,ASSYMB,ASSYMB,ASSYMB;160-167
  9771	040214'	001155'	001155'		BYTE (18)ASSYMB,ASSYMB,ASSYMB,ILLCHR,ILLCHR,ILLCHR,ILLCHR,COMRUB;170-177
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 230
DDT11	MAC	18-May-81 17:27		STATE TABLES

  9772					;STATE TABLE WHEN USER TYPES ALTMODE
  9773
  9774	040220'				STATSC:
  9775	040220'	001113'	001640'		BYTE	(18)LOOP  ,ILLCHR,ILLCHR,DDT11 ,ILLCHR,ILLCHR,ILLCHR,ILLCHR;00-07
  9776	040224'	002464'	001640'		BYTE	(18)ESC.UP,ILLCHR,ESC.LF,ILLCHR,ILLCHR,ESC.CR,ILLCHR,ILLCHR;10-17
  9777	040230'	001640'	001640'		BYTE	(18)ILLCHR,ILLCHR,CNTRLR,ILLCHR,ILLCHR,CNTRLU,ILLCHR,CNTRLW;20-27
  9778	040234'	001640'	001640'		BYTE	(18)ILLCHR,ILLCHR,CNTRLZ,ESCESC,ILLCHR,ILLCHR,ILLCHR,ILLCHR;30-37
  9779	040240'	001640'	001640'		BYTE	(18)ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR;40-47
  9780	040244'	002447'	001640'		BYTE	(18)ESCPAR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ESC...,ILLCHR;50-57
  9781	040250'	002434'	002434'		BYTE	(18)ESC..0,ESC..0,ESC..0,ESC..0,ESC..0,ESC..0,ESC..0,ESC..0;60-67
  9782	040254'	002433'	002433'		BYTE	(18)ESC..8,ESC..8,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR;70-77
  9783	040260'	001640'	002476'		BYTE	(18)ILLCHR,ESC..A,ESC..B,ESC..C,ESC..D,ILLCHR,ILLCHR,ESC..G;100-107
  9784	040264'	001640'	002531'		BYTE	(18)ILLCHR,ESC..I,ILLCHR,ESC..K,ILLCHR,ESC..M,ESC..N,ILLCHR;110-117
  9785	040270'	010276'	002555'		BYTE	(18)ESC..P,ESC..Q,ESC..R,ESC..S,ESC..T,ILLCHR,ESC..V,ESC..W;120-127
  9786	040274'	002737'	003142'		BYTE	(18)ESC..X,ESC..Y,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ESC.UP,ILLCHR;130-137
  9787	040300'	001640'	002476'		BYTE	(18)ILLCHR,ESC..A,ESC..B,ESC..C,ESC..D,ILLCHR,ILLCHR,ESC..G;140-147
  9788	040304'	001640'	002531'		BYTE	(18)ILLCHR,ESC..I,ILLCHR,ESC..K,ILLCHR,ESC..M,ESC..N,ILLCHR;150-157
  9789	040310'	010276'	002555'		BYTE	(18)ESC..P,ESC..Q,ESC..R,ESC..S,ESC..T,ILLCHR,ESC..V,ESC..W;160-167
  9790	040314'	002737'	003142'		BYTE	(18)ESC..X,ESC..Y,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,COMRUB;170-177
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 231
DDT11	MAC	18-May-81 17:27		STATE TABLES

  9791					;STATE TABLE TO END AN EXPRESSION
  9792
  9793	040320'				STATEB:	
  9794	040320'	001640'	001640'		BYTE	(18)ILLCHR,ILLCHR,ILLCHR,DDT11 ,ILLCHR,ILLCHR,ILLCHR,ILLCHR;00-07
  9795	040324'	002105'	001646'		BYTE	(18)UARROW,COM.HT,COM.LF,ILLCHR,ILLCHR,COM.CR,ILLCHR,ILLCHR;10-17
  9796	040330'	001640'	001640'		BYTE	(18)ILLCHR,ILLCHR,CNTRLR,ILLCHR,ILLCHR,CNTRLU,ILLCHR,CNTRLW;20-27
  9797	040334'	001640'	001640'		BYTE	(18)ILLCHR,ILLCHR,CNTRLZ,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR;30-37
  9798	040340'	001640'	001640'		BYTE	(18)ILLCHR,ILLCHR,QUOTE ,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR;40-47
  9799	040344'	001640'	001640'		BYTE	(18)ILLCHR,ILLCHR,ILLCHR,ILLCHR,LEVEL3,ILLCHR,ILLCHR,OPNLOC;50-57
  9800	040350'	001640'	001640'		BYTE	(18)ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR;60-67
  9801	040354'	001640'	001640'		BYTE	(18)ILLCHR,ILLCHR,ILLCHR,SEMICL,ILLCHR,EQUALS,SUPLIM,ILLCHR;70-77
  9802	040360'	001640'	001640'		BYTE	(18)ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR;100-107
  9803	040364'	001640'	001640'		BYTE	(18)ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR;110-117
  9804	040370'	001640'	001640'		BYTE	(18)ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR;120-127
  9805	040374'	001640'	001640'		BYTE	(18)ILLCHR,ILLCHR,ILLCHR,OPLBKT,BKSLSH,ILLCHR,UARROW,BARROW;130-137
  9806	040400'	001640'	001640'		BYTE	(18)ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR;140-147
  9807	040404'	001640'	001640'		BYTE	(18)ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR;150-157
  9808	040410'	001640'	001640'		BYTE	(18)ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR;160-167
  9809	040414'	001640'	001640'		BYTE	(18)ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,ILLCHR,COMRUB;170-177
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 232
DDT11	MAC	18-May-81 17:27		DATA STORAGE

  9810						SUBTTL	DATA STORAGE
  9811	040420'	000000	000000		LASTSW:	Z		;ROUTINE TO EXECUTE AFTER PARSING OTHER SWITCHES
  9812	040421'	000000	000000		DAT:	Z		;POINTER TO DATA AREA
  9813	040422'	000000	000000		DOTFOO:	Z		;IN CASE 32 OR 48 BIT INSTRUCTION
  9814								; LH = -1 MEANS MEMORY ADR
  9815								; LH = 400000 + BITS 12-17 ARE MODE
  9816	040423'	000000	000000		DTFINP:	Z		;DOTFOO WHILE TYPEING IN STUFF
  9817	040424'	000000	000000		DOTOLD:	Z		;OLD VALUE FOR DOT IN CASE OF ESCAPE CR ETC.
  9818	040425'	000000	000000		DTFOLD:	Z		;KEEP DOTFOO HERE
  9819	040426'	000000	000000		EXPRES:	Z		;BUILD EXPRESSIONS HERE
  9820	040427'	000000	000000		REMAIN:	Z		;REMAINDER FROM LAST DIVISION
  9821	040430'	000000	000000		LFTSAV:	Z		;IF LH NONZERO RH PRECEDED <
  9822	040431'	000000	000000		ETYPE:	Z		;TYPE OF EXAMINE ANE DEPOSIT WE WILL DO
  9823	040432'	000000	000000		PDP8F:	Z		;NONZERO IF WE DOING PDP8 STYLE
  9824	040433'	000000	000002		GOTO:	EXP	2	;STARTING ADDRESS FOR PROGRAM, EVEN, SO 11'S WORK
  9825	040434'	000000	000000		FENAME:	Z		;THIS IS ASCIZ \FE#:\ IF USING TOPS20 FRONT END
  9826	040435'	000000	000000		FE.JFN:	Z		;JFN FOR THE FRONT END DEVICE
  9827	040436'				FE.MSG:	BLOCK	<<14+FE.MAX>+3>/4	;MESSAGE FOR FRONT END
  9828					;KEEP IN ORDER
  9829	040451'				FE.CPU:	BLOCK	1	;CPU,,DTE
  9830	040452'				FE.FED:	BLOCK	1	;FED #
  9831	040453'				FE.STS:
  9832	040453'				FE.BUF:	BLOCK	1	;ABOVE 3 WORDS ARE DTE. ARG BLK
  9833					;KEPT IN ORDER
  9834	040454'	000000	000000		RELOFF:	Z		;RELOCATION OFFSET IF READING AN FE- DUMP
  9835	040455'	000000	000000		PORT:	Z		;-1,,PORT NUMBER FOR CALL11 UUO'S
  9836	040456'	000000	000000		NODE:	Z		;NAME OR NODE NUMBER WE ARE WORKING WITH
  9837	040457'	000000	000000		LINE:	Z		;LINE NUMBER ON NODE WE ARE WORKING WITH
  9838	040460'	000000	000000		CORARG:	Z		;CORE SIZE USER REQUESTED
  9839	040461'	000000	000000		USETIT:	Z		;BLOCK NUMBER TO START READING FOR SYMBOLS
  9840	040462'	000000	000000		SYMPTR:	Z		;BYTE POINTER TO FILL SYMBOL
  9841	040463'	000000	000000		SYMBOL:	Z		;CURRENT SYMBOL WE ARE BUILDING
  9842	040464'				DATA:	BLOCK	^D20
  9843	040510'	777777	000000		SBEGIN:	XWD	-1,0	;FIRST ADDRESS FOR SEARCH
  9844	040511'	000000	000000		S..END:	EXP	0	;LAST ADDRESS FOR SEACRH
  9845	040512'	000000	000000		S.WORD:	EXP	0	;WORD TO SEARCH FOR
  9846	040513'	000000	177777		S.MASK:	EXP	177777	;MASK FOR WORD SEARCH
  9847					REPEAT	MASKSZ,<EXP 0>	;MASK FOR WORD SEARCH
  9848	040514'	000000	000000
  9849	040515'	000000	000000
  9850	040516'	000000	000000
  9851	040517'	000000	000000
  9852	040520'	000000	000000
  9853	040521'	000000	000000
  9854	040522'	000000	000000
  9855	040523'	000000	000000
  9856	040524'	000000	000000		INPOPR:	EXP	0	;INPUT OPERATION (0=+,1=-,2=*,3=',4=!,5=&,6=^X)
  9857	040525'	000000	000000		PRECED:	EXP	0	;PRECEDENCE OF INPOPR = 0
  9858	040526'	000000	000000			EXP	0
  9859	040527'	000000	000001			EXP	1
  9860	040530'	000000	000001			EXP	1
  9861	040531'	000000	000002			EXP	2
  9862	040532'	000000	000002			EXP	2
  9863	040533'	000000	000002			EXP	2
  9864	040534'	000001	000001		BYTCNT:	XWD	1,1	;REPETITION COUNTS FOR OUPUT BYTES ETC.
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 232-1
DDT11	MAC	18-May-81 17:27		DATA STORAGE

  9865	040535'	000000	000000		O.MODE:	EXP	0	;OUTPUT MODE LH = PERMANENT, RH = CURRENT
  9866								; (0=SYMBOLIC, 1=ADDRESS, 2=NUMERIC, 3=BYTES,
  9867								;  4=ASCII TEXT, 5=EBCDIC TEXT)
  9868	040536'	000010	000010		ORADIX:	^D8,,^D8	;OUTPUT RADIX
  9869								; LH IS PERMANENT SETTING, RH IS CURRENT
  9870	040537'				ESCSAV:	BLOCK	3	;SAVE BYTCNT ETC HERE IN CASE OF RUBOUT ETC.
  9871	040542'	777777	000011		LSTADR:	-1,,Z		;LAST ADDRESS DISPLAYED
  9872	040543'	000000	000000		LSTIAD:	Z		;LAST ADDRESS INPUT
  9873	040544'	000000	000000		ESC.Q.:	Z		;USED IF GET AN <ALT>Q
  9874	040545'	000000	000000		ESCOCT:	Z		;USED TO ACCUMULATE OCTAL NUMBER FOR ESCAPE ARG
  9875	040546'	000000	000000		ESCDEC:	Z		;USED TO ACCUMULATE DECIMAL NUMBER FOR ESCAPE ARG
  9876
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 233
DDT11	MAC	18-May-81 17:27		DATA STORAGE

  9877
  9878						DEFINE	NAMES <
  9879						X	11,SETP11	;/11
  9880						X	8,SETPD8	;/8
  9881						X	BINARY,SETBIN	;/BINARY
  9882						X	CORE,SETCOR	;/CORE
  9883						X	DTELDR,SETFOO	;/DETLDR
  9884						X	DUMP,SETDMP	;/DUMP
  9885						X 	FE,SET.FE	;/FE
  9886						X	FESYMB,SETFES	;/FESYMBOLS
  9887						X	GO,SETGO	;/GO
  9888						X	LA36,SETLA3	;/LA36
  9889						X	LINE,SETLIN	;/LINE
  9890						X	LOCK,SETLOK	;/LOCK
  9891						X	LSD,SETDMP	;/LSD
  9892						X	MERGE,SETMRG	;/MERGE
  9893						X	NODE,SETNOD	;/NODE
  9894						X	PATCH,SETWEN	;/PATCH
  9895						X	PDP11,SETP11	;/PDP11
  9896						X	PDP8,SETPD8	;/PDP8
  9897						X	PORT,SETPRT	;/PORT
  9898						X	READST,SETRST	;/READSTB
  9899						X	RELOCA,SETREL	;/RELOCATION
  9900						X	SYMBOL,SETSYM	;/SYMBOL
  9901						X	UBA,SETUBA	;/UBA - SET UNIBUS TO USE
  9902						X	VT52,SETVTX	;/VT52
  9903						X	WRITES,SETWST	;/WRITESTB
  9904					>
  9905						DEFINE	X (A,B) <	SIXBIT	\A\ >
  9906	040547'	212100	000000		SW.LST:	NAMES
  9907	040550'	300000	000000
  9908	040551'	425156	416271
  9909	040552'	435762	450000
  9910	040553'	446445	544462
  9911	040554'	446555	600000
  9912	040555'	464500	000000
  9913	040556'	464563	715542
  9914	040557'	475700	000000
  9915	040560'	544123	260000
  9916	040561'	545156	450000
  9917	040562'	545743	530000
  9918	040563'	546344	000000
  9919	040564'	554562	474500
  9920	040565'	565744	450000
  9921	040566'	604164	435000
  9922	040567'	604460	212100
  9923	040570'	604460	300000
  9924	040571'	605762	640000
  9925	040572'	624541	446364
  9926	040573'	624554	574341
  9927	040574'	637155	425754
  9928	040575'	654241	000000
  9929	040576'	666425	220000
  9930	040577'	676251	644563
  9931	040600'	000000	000000			Z
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 233-1
DDT11	MAC	18-May-81 17:27		DATA STORAGE

  9932						DEFINE	X (A,B) <	0,,B >
  9933	040601'	000000	000265'		SW.DSP:	NAMES
  9934	040602'	000000	000267'
  9935	040603'	000000	000073'
  9936	040604'	000000	000077'
  9937	040605'	000000	000153'
  9938	040606'	000000	000147'
  9939	040607'	000000	000157'
  9940	040610'	000000	000271'
  9941	040611'	000000	000236'
  9942	040612'	000000	000276'
  9943	040613'	000000	000251'
  9944	040614'	000000	000326'
  9945	040615'	000000	000147'
  9946	040616'	000000	000243'
  9947	040617'	000000	000307'
  9948	040620'	000000	000247'
  9949	040621'	000000	000265'
  9950	040622'	000000	000267'
  9951	040623'	000000	000336'
  9952	040624'	000000	000431'
  9953	040625'	000000	000300'
  9954	040626'	000000	000377'
  9955	040627'	000000	000412'
  9956	040630'	000000	000426'
  9957	040631'	000000	000432'
  9958
  9959
  9960					;KEEP A COPY OF CURRENT COMMAND HERE TO RETYPE IT OR RUBOUT CHARS
  9961	040632'	000000	000000		CMDTKR:	Z			;USE TO REPROCESS LINE
  9962	040633'	000000	000000		CMDLIM:	Z			;LIMIT TO RESCAN
  9963	040634'	000000	000000		CMDPTR:	Z			;UES TO FILL COMMAND LINE
  9964			000047		Q=	<CMDSIZ+4>/5
  9965	040635'				CMDLIN:	BLOCK	Q
  9966
  9967	040704'	200000	000000		TTYBIT:	EXP	TF.RUB		;FLAGS TO DEFINE TYPE OF TERMINAL
  9968	040705'	000000	000000		FLGSAV:	EXP	0		;SAVE FLAG REGISTER HERE IN CASE OF REENTER
  9969	040706'	000000	000000		CMDCON:	EXP	0		;COMMAND CONFLICT LOCATION
  9970	040707'				MYPPN:	BLOCK	1		; PPN OF USER
  9971
  9972					;THE CACHE IS SO WORK OVER SYNCHRONOUS LINE WILL BE FASTER
  9973	040710'	000000	000000		CACHEL:	0		;CACHE LIMIT, I.E. 1ST NONEXISTEN BYTE ADR IN CACHE
  9974	040711'	000000	000000		CACHEA:	0		;ADDRESS REPRESENTED BY FIRST ADR IN CACHE
  9975			000400		CACHSZ==400		;NUMBER OF WORDS IN CACHE
  9976	040712'				CACHE:	BLOCK	<CACHSZ/4>
  9977						IFNDEF	PDLEN,<PDLEN==40>
  9978	041012'				PDL:	BLOCK	PDLEN
  9979
  9980					;DDT11 HAS BECOME SO LARGE THIS IS DESIREABLE
  9981
  9982						IFNDEF	PATLEN,<PATLEN==40>
  9983	041052'				PATCH:	BLOCK	PATLEN
  9984
  9985	041112'	000000	000000		OSTYPE:	Z		;THE FLAG FOR THE TYPE OF OS WE ARE RUNNING
  9986	041113'	000000	000000		EPTBLK:	Z		;ADR OF EXEC STORAGE
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 233-2
DDT11	MAC	18-May-81 17:27		DATA STORAGE

  9987	041114'	000001	000000		UBACTL:	1,,0		;UBA CONTROLLER NUMBER
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page 234
DDT11	MAC	18-May-81 17:27		SYMBOL TABLES

  9988						SUBTTL	SYMBOL TABLES
  9989
  9990						DEFINE	X (VAL,MASK,NAME,FLAG) <
  9991					IFL	<VAL-Q>,<PRINTX	SYMBOL TABLE MESSED UP
  9992					QVAL=	Q
  9993					>
  9994					IFN	<<VAL&MASK>-VAL>,<PRINTX SYMBOL TABLE MASK>
  9995					Q=	VAL
  9996					
  9997					Z=	<<FLAG>&SMF.P8>!<<FLAG>&SMF.11>
  9998					IFE	<<FLAG>&<SMF.P8!SMF.11>>,<Z=1>
  9999					IFN	Z,<
 10000						SIXBIT	\NAME\
 10001						EXP	VAL
 10002						XWD	FLAG,MASK
 10003						SIXBIT	\DDT11\
 10004					>
 10005					>;END OF DEFINE X
 10006			000000		Q=	0
 10007	041115'	000000	041117'		SYMBEG:	EXP	.+2
 10008	041116'	000000	042163'		SYMEND:	EXP	SYMZZZ
 10009
 10010					;FOLLOWING IS DYNAMIC STORAGE
 10011					;	SPACE (IF EXEC MODE)
 10012					;	MEMORY FOR EXEC MODE USAGE (EPT, UPT, ETC.) POINTED TO BY EPTBLK
 10013					;	MEMORY USE TABLE (IF READ FILE INTO CORE)
 10014					;	MEMORY (IF READ FILE INTO CORE)
 10015					;	SYMBOL TABLE (AT END CAUSE MOST LIKELY TO CHANGE IN SIZE)
 10016
 10017						INSTRU
 10018			042163'		SYMZZZ==.
 10019
 10020						PURGE	Z,ZZ,ZZRET,Q,QQ,X,XX,DDBLNK,DDBADR
 10021
 10022			000000'		DDTEND:	END	DDT11

NO ERRORS DETECTED

PROGRAM BREAK IS 047367
CPU TIME USED 02:02.584

132P CORE USED
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page S-1
DDT11	MAC	18-May-81 17:27		SYMBOL TABLE

AC1		000001		BGET33		024461'		BPUT16		030240'		BR5TRP		042164'		
AC2		000002		BGET34		025676'		BPUT17		031636'		BR7INT		010000	spd	
AC3		000003		BGET35		027113'		BPUT20		020552'		BR7LVL		000003	spd	
AC4		000004		BGET36		030422'		BPUT21		021767'		BR7OFF		001020	spd	
ACCUM		001316'		BGET37		031757'		BPUT22		023204'		BR7ON		002020	spd	
ACCUM2		001333'		BGET40		020747'		BPUT23		024421'		BR7PND		042165'		
ACCUM3		001344'		BGET41		022164'		BPUT24		025636'		BR7TRP		042166'		
ACCUM8		001353'		BGET42		023401'		BPUT25		027053'		BRFTCH		017731'		
ADDSYM		005232'		BGET43		024616'		BPUT26		030364'		BRGT00		020401'		
ADRTYP		007076'		BGET44		026033'		BPUT27		031721'		BRGT01		021616'		
ADSYM7		005257'		BGET45		027250'		BPUT30		020707'		BRGT02		023033'		
APRID	700000	000000		BGET46		030614'		BPUT31		022124'		BRGT03		024250'		
APRLVL		000002	spd	BGET47		032105'		BPUT32		023341'		BRGT04		025465'		
ASSDEC		001130'		BGET50		021050'		BPUT33		024556'		BRGT05		026702'		
ASSNUM		001132'		BGET51		022265'		BPUT34		025773'		BRGT06		030117'		
ASSPER		001123'		BGET52		023502'		BPUT35		027210'		BRGT07		031554'		
ASSPRC		001151'		BGET53		024717'		BPUT36		030514'		BRGT10		020427'		
ASSYMB		001155'		BGET54		026134'		BPUT37		032051'		BRGT11		021644'		
ASYMB2		001157'		BGET55		027351'		BPUT40		021010'		BRGT12		023061'		
B3.TYP		007626'		BGET56		030721'		BPUT41		022225'		BRGT13		024276'		
BARROW		001745'		BGET57		032175'		BPUT42		023442'		BRGT14		025513'		
BARRW3		001747'		BGET60		021215'		BPUT43		024657'		BRGT15		026730'		
BARRW5		001761'		BGET61		022432'		BPUT44		026074'		BRGT16		030163'		
BCIO	715000	000000		BGET62		023647'		BPUT45		027311'		BRGT17		031604'		
BCIOB	725000	000000		BGET63		025064'		BPUT46		030657'		BRGT20		020510'		
BEG.PS		011220'		BGET64		026301'		BPUT47		032141'		BRGT21		021725'		
BEGREG		011210'		BGET65		027516'		BPUT50		021145'		BRGT22		023142'		
BFETCH		017631'		BGET66		031147'		BPUT51		022362'		BRGT23		024357'		
BGET00		020375'		BGET67		032326'		BPUT52		023577'		BRGT24		025574'		
BGET01		021612'		BGET70		021367'		BPUT53		025014'		BRGT25		027011'		
BGET02		023027'		BGET71		022604'		BPUT54		026231'		BRGT26		030305'		
BGET03		024244'		BGET72		024021'		BPUT55		027446'		BRGT27		031662'		
BGET04		025461'		BGET73		025236'		BPUT56		031016'		BRGT30		020612'		
BGET05		026676'		BGET74		026453'		BPUT57		032261'		BRGT31		022027'		
BGET06		030113'		BGET75		027670'		BPUT60		021307'		BRGT32		023244'		
BGET07		031550'		BGET76		031325'		BPUT61		022524'		BRGT33		024461'		
BGET10		020427'		BGET77		032500'		BPUT62		023741'		BRGT34		025676'		
BGET11		021644'		BKSLSH		001627'		BPUT63		025156'		BRGT35		027113'		
BGET12		023061'		BLANKT		007630'		BPUT64		026373'		BRGT36		030422'		
BGET13		024276'		BLDRET		000007	spd	BPUT65		027610'		BRGT37		031757'		
BGET14		025513'		BOOT	104000	000562	int	BPUT66		031243'		BRGT40		020747'		
BGET15		026730'		BPUT00		020410'		BPUT67		032420'		BRGT41		022164'		
BGET16		030202'		BPUT01		021625'		BPUT70		021514'		BRGT42		023401'		
BGET17		031604'		BPUT02		023042'		BPUT71		022731'		BRGT43		024616'		
BGET20		020510'		BPUT03		024257'		BPUT72		024146'		BRGT44		026033'		
BGET21		021725'		BPUT04		025474'		BPUT73		025363'		BRGT45		027250'		
BGET22		023142'		BPUT05		026711'		BPUT74		026600'		BRGT46		030573'		
BGET23		024357'		BPUT06		030126'		BPUT75		030015'		BRGT47		032105'		
BGET24		025574'		BPUT07		031565'		BPUT76		031452'		BRGT50		021050'		
BGET25		027011'		BPUT10		020463'		BPUT77		032625'		BRGT51		022265'		
BGET26		030325'		BPUT11		021700'		BR5INT		004000	spd	BRGT52		023502'		
BGET27		031662'		BPUT12		023115'		BR5LVL		000004	spd	BRGT53		024717'		
BGET30		020612'		BPUT13		024332'		BR5OFF		001010	spd	BRGT54		026134'		
BGET31		022027'		BPUT14		025547'		BR5ON		002010	spd	BRGT55		027351'		
BGET32		023244'		BPUT15		026764'		BR5PND		042163'		BRGT56		030721'		
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page S-2
DDT11	MAC	18-May-81 17:27		SYMBOL TABLE

BRGT57		032175'		CLKLOD		033665'		CNTLW9		001542'		CTYTIM		033330'		
BRGT60		021215'		CLKLVL		000006	spd	CNTRLF		001242'		CTYWRT		033260'		
BRGT61		022432'		CLKRS1		033646'		CNTRLR		001430'		D10AD		004756'		
BRGT62		023647'		CLKRS2		033662'		CNTRLT		033567'		D10DT		004757'		
BRGT63		025064'		CLKRST		033637'		CNTRLU		001511'		D10FN		004755'		
BRGT64		026301'		CLKSPD		033635'		CNTRLW		001514'		D11AD		004762'		
BRGT65		027516'		CLKSTS		033632'		CNTRLZ		002222'		D11DT		004763'		
BRGT66		031116'		CLKTCK		033636'		COLTYP		007607'		D11FN		004761'		
BRGT67		032326'		CLKTI1		033716'		COLUMN		037634'		D11RS		004760'		
BRGT70		021367'		CLKTIM		033702'		COM.CR		001621'		D6.DEP		000012	spd	
BRGT71		022604'		CLKWR3		033727'		COM.HT		001646'		D6.EXM		000011	spd	
BRGT72		024021'		CLKWRT		033675'		COM.LF		001711'		D62DEP		004551'		
BRGT73		025236'		CLOSE	070000	000000		COMAND		000567'		D62DEW		004547'		
BRGT74		026453'		CLRBFI	051440	000000		COMAR0		002133'		D62EXM		004532'		
BRGT75		027670'		CLRMEM		000354'		COMAR2		002144'		D62EXW		004530'		
BRGT76		031325'		CLRPT	701100	000000		COMAR3		002147'		DAT		040421'		
BRGT77		032500'		CMDCH1		003171'		COMAR8		002163'		DATA		040464'		
BSIO	714000	000000		CMDCH2		003223'		COMLF1		001724'		DATADR		007216'		
BSIOB	724000	000000		CMDCH4		003236'		COMLF2		001725'		DATAS2		007441'		
BSTUFF		020231'		CMDCH6		003247'		COMLF3		001733'		DATAS3		007445'		
BT%CTL	400000	000000	sin	CMDCH7		003240'		COMLF4		001736'		DATASC		007433'		
BTARG		005052'		CMDCH8		003211'		COMRUB		001457'		DATBYT		007501'		
BYTCNT		040534'		CMDCHR		003172'		COMTYP		007633'		DATE	047000	000014		
C11LST		005125'		CMDCNT		003276'		CORARG		040460'		DATEB2		007467'		
CACHE		040712'		CMDCON		040706'		CORE	047000	000011		DATEB3		007473'		
CACHEA		040711'		CMDDN1		003260'		CORERR		005407'		DATEBC		007462'		
CACHEL		040710'		CMDDN7		003267'		CPUTYP		004716'		DATET0		007746'		
CACHSZ		000400	spd	CMDDSP		003277'		CRLTYP		007621'		DATETY		007745'		
CAL11.	047000	000125		CMDFAK		003301'		CSECHO		003274'		DATIN1		007315'		
CAL78.	047000	000156		CMDFIL		003275'		CST...		003000	spd	DATIN2		007256'		
CALDSP		037400'		CMDLIM		040633'		CTIDAT		033214'		DATIN4		007262'		
CALER0		005061'		CMDLIN		040635'		CTIFLG		033223'		DATIN8		007275'		
CALER1		005071'		CMDONE		003257'		CTISPD		033225'		DATIN9		007331'		
CALER9		005115'		CMDPTR		040634'		CTISTS		033212'		DATINS		007223'		
CALERR		005062'		CMDSIZ		000300	spd	CTITIM		033224'		DATNUM		007173'		
CALL	260740	000000		CMDSUB		003220'		CTIWRS		033272'		DATYP1		007135'		
CALLI0		037453'		CMDSWL		003277'		CTODAT		033220'		DATYPE		007123'		
CH1		037127'		CMDTKR		040632'		CTOFLG		033222'		DC2TYP		010033'		
CH2		037132'		CMRUB3		001500'		CTOINT		033470'		DDT11		000000'		
CH2CK5		037146'		CMRUB8		001506'		CTOSPD		033227'		DDTEND		042163'		
CH2CK9		037150'		CMRUB9		001506'		CTOSTS		033216'		DECIN		042167'		
CH3		037154'		CNINWD		002171'		CTOTIM		033226'		DECINP		007051'		
CH4		037157'		CNIWD3		002212'		CTOWD1		033323'		DECTYP		007526'		
CH5		037162'		CNTLF2		001273'		CTOWDT		033304'		DEFEXT		006212'		
CH6		037165'		CNTLF3		001262'		CTOWRS		033277'		DEFSYM		001364'		
CH7		037170'		CNTLF5		001270'		CTTIM8		033363'		DELSYM		005270'		
CHKCHR		037636'		CNTLF6		001276'		CTYADR		177560	spd	DEQ	104000	000514	int	
CHKCTO		033352'		CNTLF7		001304'		CTYBLD		033244'		DEQD60		004661'		
CKCHR5		037651'		CNTLF8		001305'		CTYBWR		033256'		DEVWRT		033044'		
CLKADR		177546	spd	CNTLF9		001307'		CTYCHK		033367'		DFSYM3		001402'		
CLKBLD		033667'		CNTLOF		037621'		CTYDDB		033176'		DISA10		010062'		
CLKBWR		033673'		CNTLR3		001434'		CTYINT		033372'		DISA20		010115'		
CLKDDB		033616'		CNTLR4		001440'		CTYLOD		033247'		DISA40		010131'		
CLKFLG		033634'		CNTLT6		033613'		CTYLVL		000004	spd	DISA90		010126'		
CLKINT		033732'		CNTLW1		001517'		CTYRST		033230'		DISMS	104000	000167	int	
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page S-3
DDT11	MAC	18-May-81 17:27		SYMBOL TABLE

DMPDEV		011051'		EN%LTL	040000	000000	sin	ESC.X7		002775'		F.APND		020000	spd	
DMPDIR		011053'		ENQ	104000	000513	int	ESC.X8		003037'		F.CACH		004000	spd	
DMPDSP		010226'		ENQBLK		004744'		ESC.X9		003041'		F.CERR	010000	000000	spd	
DMPPTH		011057'		ENQD60		004652'		ESCAPE		002417'		F.EXEC	002000	000000	spd	
DMPSWL		010227'		ENTER	077000	000000		ESCDEC		040546'		F.FELE	020000	000000	spd	
DMPTIM		011056'		EPDLOV		037222'		ESCESC		002425'		F.FLIP		000001	spd	
DONE.W		006175'		EPM000		000600	spd	ESCMD0		002533'		F.FLOP		000002	spd	
DOT		000007		EPT...		000000	spd	ESCMD2		002542'		F.GEXP	000040	000000	spd	
DOTFOO		040422'		EPTAOV		000421	spd	ESCMD7		002551'		F.HALT	040000	000000	spd	
DOTINC		001674'		EPTBLK		041113'		ESCMD8		002553'		F.HASH	000002	000000	spd	
DOTOLD		040424'		EPTINT		000042	spd	ESCMOD		002537'		F.IDEC		000400	spd	
DOTSAV		001654'		EPTPDO		000422	spd	ESCOCT		040545'		F.IHEX		001000	spd	
DOTSWP		002467'		EPTSTP		000540	spd	ESCP00		010320'		F.IOCT		000200	spd	
DSKDDB		037721'		EPTTP3		000423	spd	ESCP02		010322'		F.LBKT	000001	000000	spd	
DSKEXT		037725'		EPTVEC		000100	spd	ESCP10		010344'		F.LOCK		040000	spd	
DSKFIL		037724'		EQUAL2		002020'		ESCP11		010346'		F.LOPN		000010	spd	
DSKOP2		037712'		EQUAL5		002034'		ESCP12		010356'		F.LPAR	000010	000000	spd	
DSKPAG		007000	spd	EQUALS		002012'		ESCP16		010402'		F.MASK		000040	spd	
DSKSTR		037723'		ERJMP	320700	000000	int	ESCP19		010405'		F.MOPN		000020	spd	
DSLERR		004711'		ERSTR	104000	000011	int	ESCP20		010411'		F.PACK		400000	spd	
DTE.	047000	000170		ESC...		002427'		ESCPAR		002447'		F.PERC	000004	000000	spd	
DTEERR		043471'		ESC..0		002434'		ESCSAV		040537'		F.RUNF	004000	000000	spd	
DTEFB%		000014	spd	ESC..8		002433'		ESCW.6		003331'		F.SREG	000400	000000	spd	
DTENF%		000015	spd	ESC..A		002476'		ESCW.8		003342'		F.SVIO	000200	000000	spd	
DTFINP		040423'		ESC..B		002500'		ESCW.9		003351'		F.SYMB		002000	spd	
DTFOLD		040425'		ESC..C		002502'		ESCX33		003103'		F.SYML	000020	000000	spd	
DUMP0		010053'		ESC..D		010042'		ESCX35		003113'		F.TEXT		000100	spd	
DUMP1		010137'		ESC..G		002567'		ESCX73		003006'		F.TOPN	000100	000000	spd	
DUMP2		010143'		ESC..I		002531'		ESCX74		003007'		F.WENB		100000	spd	
DUMP3		010156'		ESC..K		002504'		ETYPE		040431'		F.WRIT		010000	spd	
DUMP4		010163'		ESC..M		002474'		EVLSYM		001407'		FE$BLT		043500'		
DUMP6		010213'		ESC..N		003303'		EX.D61		000004	spd	FE.BUF		040453'		
DUMP8		010177'		ESC..P		010276'		EX.D62		000005	spd	FE.CPU		040451'		
DUMP85		010201'		ESC..Q		002555'		EX.FE0		000003	spd	FE.FED		040452'		
DUMP9		010206'		ESC..R		002514'		EX.FE1		000007	spd	FE.JFN		040435'		
DUMPA		010225'		ESC..S		002527'		EX.MCB		000006	spd	FE.MAX		000040	spd	
DV.BLD		000004	spd	ESC..T		002532'		EX.MEM		000000	spd	FE.MSG		040436'		
DV.BWR		000006	spd	ESC..V		002672'		EX.NOD		000002	spd	FE.RPY		003627'		
DV.INT		000013	spd	ESC..W		003304'		EX.POR		000001	spd	FE.STS		040453'		
DV.LNK		000002	spd	ESC..X		002737'		EXIT	047000	000012		FENAME		040434'		
DV.LOD		000003	spd	ESC..Y		003142'		EXMAX		000140	spd	FESUP		004646'		
DV.LVL		000012	spd	ESC.CR		002464'		EXP.DO		001215'		FESUP1		004652'		
DV.RST		000011	spd	ESC.D0		010231'		EXPAND		001212'		FETCH		017331'		
DV.SIZ		000014	spd	ESC.D3		010241'		EXPDIV		001206'		FEWINP		000032		
DV.TIM		000007	spd	ESC.D4		010270'		EXPDO5		001235'		FEWOUT		000033		
DV.WRT		000005	spd	ESC.G1		002610'		EXPIOR		001210'		FEWSTS		000031		
DZ.CSR		000000	spd	ESC.G8		002664'		EXPLUS		001201'		FIL.SW		006232'		
DZ.LPR		000002	spd	ESC.LF		002464'		EXPMIN		001202'		FILBLK		006214'		
DZ.MSR		000006	spd	ESC.Q.		040544'		EXPMUL		001204'		FILBYT		006714'		
DZ.RBF		000002	spd	ESC.UP		002464'		EXPRES		040426'		FILCHR		006707'		
DZ.TCR		000004	spd	ESC.V0		002700'		EXPSPC		001167'		FILDEV		006213'		
DZ.TDR		000006	spd	ESC.V9		002732'		EXPXOR		001214'		FILDIR		006215'		
EB.TRN		040020'		ESC.W2		003313'		F..ESC		200000	spd	FILER0		006110'		
EBLKSZ		010000	spd	ESC.X1		002760'		F..FOO		000004	spd	FILERR		006114'		
EN%BLN	200000	000000	sin	ESC.X3		003054'		F..SIM	001000	000000	spd	FILEXT		006217'		
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page S-4
DDT11	MAC	18-May-81 17:27		SYMBOL TABLE

FILNAM		006216'		GET43		024600'		GETSC4		005443'		INPOPR		040524'		
FILPOS		006741'		GET44		026015'		GETSC5		005445'		INPRD2		006754'		
FILPPN		006223'		GET45		027232'		GETSC6		005450'		INPRD5		006762'		
FILPS4		006746'		GET46		030555'		GETSC7		005462'		INPRD7		006772'		
FILPTH		006221'		GET47		032072'		GETSCH		005510'		INPRD9		006775'		
FILSFD		006224'		GET50		021021'		GETSTS	062000	000000		INSRUN		011607'		
FILTIM		006220'		GET51		022236'		GETTAB	047000	000041		INTBLK		037111'		
FILTY3		006167'		GET52		023453'		GETWD0		003370'		INTCHK		011353'		
FILTY4		006152'		GET53		024670'		GETWD1		003410'		INTCK0		011362'		
FILTY5		006160'		GET54		026105'		GETWD2		003427'		INTCK1		011453'		
FILTY6		006162'		GET55		027322'		GETWD3		003405'		INTCK3		011462'		
FILTYP		006124'		GET56		030672'		GETWDR		003417'		INTCK6		011552'		
FIRDDB		034105'		GET57		032151'		GETWRD		003354'		INTDLY		011605'		
FLCHR5		006721'		GET60		021167'		GJ%OLD	100000	000000	sin	INVLF1		005203'		
FLG		000010		GET61		022404'		GJ%SHT	000001	000000	sin	INVLF8		005212'		
FLGSAV		040705'		GET62		023621'		GOTO		040433'		INVLFN		005201'		
FNDTAG		000620'		GET63		025036'		GT.F10		003575'		IO.BKT		040000	spd	
FNDTG8		000641'		GET64		026253'		GTCOR6		005376'		IO.DER		200000	spd	
GET.C1		003415'		GET65		027470'		GTCOR9		005406'		IO.DTE		100000	spd	
GET.FE		003527'		GET66		031070'		GTEXP1		001076'		IO.IMP		400000	spd	
GET00		020347'		GET67		032300'		GTEXP2		001107'		IO.RLB		001000	spd	
GET01		021564'		GET70		021330'		GTFEM3		003567'		IO.WLB		000400	spd	
GET02		023001'		GET71		022545'		GTJFN	104000	000020	int	IOBLOD		032717'		
GET03		024216'		GET72		023762'		GTMEM8		003461'		IOBR.		033037'		
GET04		025433'		GET73		025177'		GTNOD3		003512'		IOBR.C		033023'		
GET05		026650'		GET74		026414'		GTNOD4		003522'		IOBR.S		033031'		
GET06		030065'		GET75		027631'		GTWD2A		003430'		IOBRK		004601'		
GET07		031522'		GET76		031266'		HALT	254200	000000		IOBSTO		032767'		
GET10		020413'		GET77		032441'		HEXIN		042170'		IOLOAD		032660'		
GET11		021630'		GETCH1		010611'		HIBER	047000	000072		IOLT1S		042171'		
GET12		023045'		GETCH3		010614'		HSHTYP		007644'		IOR.		033017'		
GET13		024262'		GETCH4		010620'		IBUFER		006236'		IOR.C		033003'		
GET14		025477'		GETCH8		010622'		IDTYP2		007735'		IOR.S		033011'		
GET15		026714'		GETCH9		010632'		IDTYP3		007743'		IORERR		033043'		
GET16		030147'		GETCHR		010604'		IDTYPE		007701'		IORET		032714'		
GET17		031572'		GETCHR	047000	000006		IFILER		006730'		IOSTOR		032735'		
GET20		020472'		GETCOR		005363'		IFLDEV		006441'		IR		000015		
GET21		021707'		GETD62		003437'		IHD		006233'		JEN	254500	000000		
GET22		023124'		GETER	104000	000012	int	ILLCH0		001641'		JMP00		016744'	spd	
GET23		024341'		GETEXP		001075'		ILLCHR		001640'		JMP01		016744'	spd	
GET24		025556'		GETFEM		003555'		ILLINS		017037'		JMP02		016744'	spd	
GET25		026773'		GETHDR		004572'		ILLUUO		037345'		JMP03		016744'	spd	
GET26		030270'		GETMEM		003444'		IN	056000	000000		JMP04		016744'	spd	
GET27		031645'		GETNOD		003466'		INBUF	064000	000000		JMP05		016744'	spd	
GET30		020563'		GETNYI		003412'		INCHRS	051100	000000		JMP06		016744'	spd	
GET31		022000'		GETOP0		001016'		INCHRW	051000	000000		JMP07		016744'	spd	
GET32		023215'		GETOP5		001047'		INCHWL	051200	000000		JMP10		020444'		
GET33		024432'		GETOP6		001054'		INI.00		000013'		JMP11		021661'		
GET34		025647'		GETOP8		001062'		INI.03		000016'		JMP12		023076'		
GET35		027064'		GETOP9		001063'		INIAL1		000061'		JMP13		024313'		
GET36		030374'		GETOPR		001014'		INIALL		000027'		JMP14		025530'		
GET37		031731'		GETPPN	047000	000024		INIT	041000	000000		JMP15		026745'		
GET40		020731'		GETREG		001065'		INLMES		037565'		JMP16		030217'		
GET41		022146'		GETSC1		005417'		INLMS3		037567'		JMP17		031621'		
GET42		023363'		GETSC3		005432'		INPOCT		006752'		JMP20		020527'		
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page S-5
DDT11	MAC	18-May-81 17:27		SYMBOL TABLE

JMP21		021744'		LERLST		005135'		MSTIME	047000	000023		OPNFE9		000223'		
JMP22		023161'		LEVEL0		000444'		MTOPR	104000	000077	int	OPNFIL		005641'		
JMP23		024376'		LEVEL1		000451'		MYPPN		040707'		OPNFL0		005642'		
JMP24		025613'		LEVEL2		000451'		NDTFIN		001664'		OPNFL2		006043'		
JMP25		027030'		LEVEL3		000466'		NDTFOO		001660'		OPNFL5		006071'		
JMP26		030343'		LEVEL4		000777'		NERLST		005144'		OPNLC2		002062'		
JMP27		031700'		LEVEL5		000767'		NODARG		004373'		OPNLC4		002073'		
JMP30		020642'		LEVEL6		000541'		NODE		040456'		OPNLOC		002047'		
JMP31		022057'		LEVEL7		000536'		NODE	104000	000567	int	OPNTTY		037715'		
JMP32		023274'		LEVEL8		000542'		NODE.	047000	000157		OPRTY1		007410'		
JMP33		024511'		LEVEL9		000556'		NODSE1		003672'		OPRTY5		007424'		
JMP34		025726'		LEVL.0		000435'		NODSET		003670'		OPRTYP		007405'		
JMP35		027143'		LFTANG		001705'		NOP	300000	000000		ORADIX		040536'		
JMP36		030451'		LFTSAV		040430'		NUMBUF		000001	spd	OSTYPE		041112'		
JMP37		032006'		LINE		040457'		NXM...		016750'		OUT	057000	000000		
JMP40		020766'		LK.LLS		000001	spd	NXMRET		032676'		OUTBUF	065000	000000		
JMP41		022203'		LK.LNE		000002	spd	NXMRT3		032710'		OUTCHR	051040	000000		
JMP42		023420'		LKELEN		000004	spd	NXTDOT		001670'		P		000017		
JMP43		024635'		LOCK	047000	000060		NXTDWD		007201'		P.KA10	040000	000000	spd	
JMP44		026052'		LOCKER		005121'		NXTWRD		007205'		P.KI10	100000	000000	spd	
JMP45		027267'		LODRET		000004	spd	O.MODE		040535'		P.KL10	200000	000000	spd	
JMP46		030633'		LOOKUP	076000	000000		OBUFER		006464'		P.KS10	400000	000000	spd	
JMP47		032123'		LOOP		001113'		OCTIN		042173'		P.PDP6	020000	000000	spd	
JMP50		021100'		LOOP1		001115'		OCTYP6		007531'		P.PLVL		011152'		
JMP51		022315'		LSTADR		040542'		OCTYPE		007535'		PATCH		041052'		
JMP52		023532'		LSTDTE		004764'		OF%RD		200000	sin	PATH.	047000	000110		
JMP53		024747'		LSTIAD		040543'		OF%WR		100000	sin	PATLEN		000040	spd	
JMP54		026164'		MA		000013		OFLDEV		006667'		PC		000007		
JMP55		027401'		MA..IO		010000	spd	OHD		006461'		PCNTYP		007641'		
JMP56		030751'		MA..RG		020000	spd	OPDSP0		011647'		PDECTY		007555'		
JMP57		032222'		MA..UN		040000	spd	OPDSP1		013647'		PDL		041012'		
JMP60		021244'		MAPCOR		036737'		OPDSP2		013747'		PDLEN		000040	spd	
JMP61		022461'		MAPCR1		036757'		OPDSPA		011261'		PDP6		004741'		
JMP62		023676'		MAPCR2		037014'		OPDSPB		011262'		PDP8F		040432'		
JMP63		025113'		MAPCR3		037040'		OPEN	050000	000000		PERTYP		007636'		
JMP64		026330'		MAPCR4		037043'		OPENF	104000	000021	int	PGFAIL		037223'		
JMP65		027545'		MAPCR5		037060'		OPENFE		000203'		PGFSAV		042174'		
JMP66		031176'		MASKSZ		000010	spd	OPFIL1		005652'		PIOFF	700600	000400		
JMP67		032355'		MATCH		002277'		OPFIL2		005667'		PION	700600	000200		
JMP70		021427'		MATCH0		002302'		OPFIL3		005676'		PJRST	324740	000000		
JMP71		022644'		MATCH2		002310'		OPFIL4		005735'		PLUTYP		007652'		
JMP72		024061'		MATCH4		002323'		OPFIL5		005766'		PORT		040455'		
JMP73		025276'		ME.SET		003616'		OPFIL6		006005'		POSYMT		005303'		
JMP74		026513'		MEMLIM		011150'		OPFIL7		006015'		PRADT5		007562'		
JMP75		027730'		MEMORY		011147'		OPFL30		005721'		PRECED		040525'		
JMP76		031365'		MEMUSE		011151'		OPFL39		005732'		PROM		010505'		
JMP77		032540'		MINTYP		007647'		OPFL40		005734'		PROM.2		010520'		
JMPCLC		020031'		MONRT.	047040	000012		OPFL41		005744'		PROM.4		010526'		
JMPREG		016744'		MONTAB		007765'		OPFL42		005752'		PROM.6		010546'		
JOV	255400	000000		MOVMEM		004263'		OPFL43		005753'		PROM.8		010554'		
KA10		004736'		MOVMUS		004275'		OPFL52		005773'		PROM.9		010566'		
KI10		004737'		MOVSMT		005321'		OPFL55		005776'		PROM.F		042175'		
KL10		004732'		MOVTAB		004310'		OPLBKT		002046'		PS		000016		
KS10		004733'		MOVTB2		004312'		OPNF10		000231'		PS...C		000001	spd	
LASTSW		040420'		MRGFLG		042172'		OPNFE8		000221'		PS...N		000010	spd	
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page S-6
DDT11	MAC	18-May-81 17:27		SYMBOL TABLE

PS...T		000020	spd	PUT16		030222'		PUTBY7		004256'		RDBN85		011031'		
PS...V		000002	spd	PUT17		031624'		PUTBYT		003776'		RDBNER		011046'		
PS...Z		000004	spd	PUT20		020534'		PUTD62		004035'		RDCHAR		010574'		
PS.ADR		177776	spd	PUT21		021751'		PUTFOO		004177'		RDCSB	702040	000000		
PS.BLD		033103'		PUT22		023166'		PUTHDR		004562'		RDCSTM	702140	000000		
PS.BWR		033110'		PUT23		024403'		PUTMEM		004145'		RDDUMP		010633'		
PS.CHK		033115'		PUT24		025620'		PUTND2		004060'		RDEBR	701240	000000		
PS.DDB		033063'		PUT25		027035'		PUTNOD		004056'		RDINT	702240	000000		
PS.INT		000000	spd	PUT26		030347'		PUTNYI		004006'		RDIO	712000	000000		
PS.LOD		033101'		PUT27		031704'		PUTP.2		004012'		RDIOB	722000	000000		
PS.LVL		000000	spd	PUT30		020660'		PUTP.4		004020'		RDPI	700640	000000		
PS.REG		033077'		PUT31		022075'		PUTP.8		004030'		RDPUR	702100	000000		
PS.RST		005200'	spd	PUT32		023312'		QD60BF		004753'		RDSAVE		005057'		
PS.TIM		005200'	spd	PUT33		024527'		QESTYP		007612'		RDSLEN		005060'		
PS.WRT		033112'		PUT34		025744'		QPRT0		004751'		RDSPB	702000	000000		
PSCHK0		033127'		PUT35		027161'		QPRT1		004752'		RDSYM1		005545'		
PSCHK1		033130'		PUT36		030466'		QUED60		004666'		RDSYM2		005550'		
PSCHK3		033137'		PUT37		032023'		QUEST.		002231'		RDSYM3		005552'		
PT.F1A		004075'		PUT40		020772'		QUEST4		002270'		RDSYM4		005557'		
PT.F20		004126'		PUT41		022207'		QUEST5		002271'		RDSYM5		005571'		
PT6.2		004036'		PUT42		023424'		QUOTE		001544'		RDSYM6		005605'		
PT6.4		004044'		PUT43		024641'		QUOTEB		001555'		RDSYM7		005602'		
PT6.8		004051'		PUT44		026056'		QUOTEC		001567'		RDSYM8		005614'		
PTBCH1		003755'		PUT45		027273'		QUOTEE		001576'		RDSYM9		005616'		
PTBCH2		003757'		PUT46		030637'		QUOTET		001601'		RDSYMA		005542'		
PTBCH4		003760'		PUT47		032126'		R		005200'		RDSYMB		005412'		
PTHLEN		000011	spd	PUT50		021116'		R.SET		011611'		RDTDMP		010725'		
PTMEM2		004147'		PUT51		022333'		R.SET1		011637'		RDTIME	702200	000000		
PTMEM4		004156'		PUT52		023550'		R.SET2		011642'		RDUBR	701040	000000		
PTMEM5		004160'		PUT53		024765'		R20AGN		004640'		RDUMP0		011071'		
PTMEM6		004171'		PUT54		026202'		R20OK		004642'		RDUMP1		011074'		
PTMEM7		004172'		PUT55		027417'		RADIN0		007055'		RDUMP2		011101'		
PTYPE		004743'		PUT56		030767'		RADIN2		007065'		RDUMP5		011106'		
PUNBM8		010500'		PUT57		032235'		RADIN9		007074'		RDUMP6		011116'		
PUNDSP		010464'		PUT60		021261'		RADINP		007052'		RDUMP9		011132'		
PUNIMG		010475'		PUT61		022476'		RADTY2		007537'		REGTYP		007145'		
PUNM93		010502'		PUT62		023713'		RADTY3		007540'		RELEAS	071000	000000		
PUNPAK		010476'		PUT63		025130'		RADTY5		007543'		RELOFF		040454'		
PUNSWL		010470'		PUT64		026345'		RADTY7		007550'		REMAIN		040427'		
PUT.C1		004011'		PUT65		027562'		RADTYP		007520'		RESET	047000	000000		
PUT.FE		004071'		PUT66		031213'		RCVBUF		037624'		RET	263740	000000		
PUT00		020406'		PUT67		032372'		RCVHDR		004765'	int	RETRY		005051'		
PUT01		021623'		PUT70		021455'		RCVPTR		037623'		RETYPE		002000'		
PUT02		023040'		PUT71		022672'		RCVTKR		037622'		RFETCH		017431'		
PUT03		024255'		PUT72		024107'		RD2020		004622'		RGET00		020352'		
PUT04		025472'		PUT73		025324'		RD20ST		004625'		RGET01		021567'		
PUT05		026707'		PUT74		026541'		RDAPR	700240	000000		RGET02		023004'		
PUT06		030124'		PUT75		027756'		RDBN10		010666'		RGET03		024221'		
PUT07		031561'		PUT76		031413'		RDBN20		010704'		RGET04		025436'		
PUT10		020447'		PUT77		032566'		RDBN30		010714'		RGET05		026653'		
PUT11		021664'		PUTADR		003654'		RDBN60		010777'		RGET06		030070'		
PUT12		023101'		PUTBCH		003735'		RDBN70		011010'		RGET07		031525'		
PUT13		024316'		PUTBY1		004213'		RDBN74		011014'		RGET10		020413'		
PUT14		025533'		PUTBY2		004217'		RDBN79		011023'		RGET11		021630'		
PUT15		026750'		PUTBY4		004240'		RDBN80		011026'		RGET12		023045'		
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page S-7
DDT11	MAC	18-May-81 17:27		SYMBOL TABLE

RGET13		024262'		RGTASC		007156'		SBGT03		024225'		SBGT72		024021'		
RGET14		025477'		RGTBYT		007154'		SBGT04		025442'		SBGT73		025236'		
RGET15		026714'		RGTEBC		007160'		SBGT05		026657'		SBGT74		026453'		
RGET16		030131'		RGTYPX		007161'		SBGT06		030074'		SBGT75		027670'		
RGET17		031572'		RJBLCK		040017'		SBGT07		031531'		SBGT76		031325'		
RGET20		020472'		RJRD.5		040010'		SBGT10		020427'		SBGT77		032500'		
RGET21		021707'		RJRD.9		037776'		SBGT11		021644'		SCNTYP		037573'		
RGET22		023124'		RJRDW4		040006'		SBGT12		023061'		SELDTE		004676'		
RGET23		024341'		RJRDWT		040004'		SBGT13		024276'		SEMICL		001767'		
RGET24		025556'		RJREAD		037750'		SBGT14		025513'		SET.FE		000157'		
RGET25		026773'		RJUNIT		040016'		SBGT15		026730'		SETBIN		000073'		
RGET26		030251'		RLMSIZ		002576		SBGT16		030202'		SETCOR		000077'		
RGET27		031645'		RLMTAB		034112'		SBGT17		031604'		SETCPU		004734'		
RGET30		020563'		RPAS		776716	spd	SBGT20		020510'		SETD62		000173'		
RGET31		022000'		RPBA		776704	spd	SBGT21		021725'		SETDMP		000147'		
RGET32		023215'		RPCC		776736	spd	SBGT22		023142'		SETFES		000271'		
RGET33		024432'		RPCS1		776700	spd	SBGT23		024357'		SETFET		000174'		
RGET34		025647'		RPCS2		776710	spd	SBGT24		025574'		SETFOO		000153'		
RGET35		027064'		RPDA		776706	spd	SBGT25		027011'		SETGO		000236'		
RGET36		030374'		RPDB		776722	spd	SBGT26		030325'		SETIHD		010763'		
RGET37		031731'		RPDC		776734	spd	SBGT27		031662'		SETLA3		000276'		
RGET40		020731'		RPDS		776712	spd	SBGT30		020612'		SETLIN		000251'		
RGET41		022146'		RPDT		776726	spd	SBGT31		022027'		SETLOK		000326'		
RGET42		023363'		RPEC1		776744	spd	SBGT32		023244'		SETMRG		000243'		
RGET43		024600'		RPEC2		776746	spd	SBGT33		024461'		SETMSK		002403'		
RGET44		026015'		RPER1		776714	spd	SBGT34		025676'		SETNOD		000307'		
RGET45		027232'		RPER2		776740	spd	SBGT35		027113'		SETP11		000265'		
RGET46		030535'		RPER3		776742	spd	SBGT36		030422'		SETPC2		011230'		
RGET47		032072'		RPLA		776720	spd	SBGT37		031757'		SETPD8		000267'		
RGET50		021021'		RPMR		776724	spd	SBGT40		020747'		SETPRT		000336'		
RGET51		022236'		RPOF		776732	spd	SBGT41		022164'		SETREL		000300'		
RGET52		023453'		RPSN		776730	spd	SBGT42		023401'		SETRST		000431'		
RGET53		024670'		RPWC		776702	spd	SBGT43		024616'		SETSTS	060000	000000		
RGET54		026105'		RSCAN		001447'		SBGT44		026033'		SETSYM		000377'		
RGET55		027322'		RSCAN	104000	000500	int	SBGT45		027250'		SETUBA		000412'		
RGET56		030672'		RSCAN2		001451'		SBGT46		030614'		SETUPC		011221'		
RGET57		032151'		RSKP		005177'		SBGT47		032105'		SETUPN		003643'		
RGET60		021167'		RSTACK		017150'		SBGT50		021050'		SETVTX		000426'		
RGET61		022404'		RSTART		000433'		SBGT51		022265'		SETWEN		000247'		
RGET62		023621'		RUNTIM	047000	000027		SBGT52		023502'		SETWST		000432'		
RGET63		025036'		S..END		040511'		SBGT53		024717'		SFETCH		017231'		
RGET64		026253'		S.MASK		040513'		SBGT54		026134'		SGET00		020331'		
RGET65		027470'		S.WORD		040512'		SBGT55		027351'		SGET01		021546'		
RGET66		031040'		SAVCHR		042176'		SBGT56		030721'		SGET02		022763'		
RGET67		032300'		SAVE13		004324'		SBGT57		032175'		SGET03		024200'		
RGET70		021330'		SAVE2		004341'		SBGT60		021215'		SGET04		025415'		
RGET71		022545'		SAVE24		004347'		SBGT61		022432'		SGET05		026632'		
RGET72		023762'		SAVE34		004361'		SBGT62		023647'		SGET06		030047'		
RGET73		025177'		SAVE35		004361'		SBGT63		025064'		SGET07		031504'		
RGET74		026414'		SAVE4		004324'		SBGT64		026301'		SGET10		020413'		
RGET75		027631'		SBEGIN		040510'		SBGT65		027516'		SGET11		021630'		
RGET76		031266'		SBFTCH		017531'		SBGT66		031147'		SGET12		023045'		
RGET77		032441'		SBGT00		020356'		SBGT67		032326'		SGET13		024262'		
RGFND8		005221'		SBGT01		021573'		SBGT70		021367'		SGET14		025477'		
RGFNDN		005216'		SBGT02		023010'		SBGT71		022604'		SGET15		026714'		
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page S-8
DDT11	MAC	18-May-81 17:27		SYMBOL TABLE

SGET16		030147'		SIMOP1		011233'		STCOR3		000126'		T4		000014		
SGET17		031572'		SIMOPN		011232'		STCOR9		000145'		T5		000015		
SGET20		020472'		SIMPTR		034106'		STEFIN		002330'		TABDNE		002606'		
SGET21		021707'		SIMREG		011200'		STEFN3		002360'		TABTYP		007615'		
SGET22		023124'		SIMREL		036710'		STEFN5		002375'		TB.INT		011263'		
SGET23		024341'		SIMRL2		036713'		STFNXM		016746'		TF.RUB	200000	000000	spd	
SGET24		025556'		SIMRL4		036727'		STMSK1		002404'		TIMCHK		011560'		
SGET25		026773'		SIMRL5		036736'		STONX3		032763'		TIMCK2		011562'		
SGET26		030270'		SIMSAC		011166'		STONXM		032751'		TIMCK3		011571'		
SGET27		031645'		SIMXCT		011153'		STUFF		020131'		TIMCK4		011600'		
SGET30		020563'		SIN	104000	000052	int	SUPLIM		002224'		TIMTY1		010003'		
SGET31		022000'		SIXIN		006776'		SW.ADR		177570	spd	TIMTY3		010025'		
SGET32		023215'		SIXIN0		006777'		SW.BLD		033162'		TIMTYP		010001'		
SGET33		024432'		SIXIN2		007010'		SW.BWR		033167'		TIOE	710000	000000		
SGET34		025647'		SIXIN3		007011'		SW.DDB		033142'		TIOEB	720000	000000		
SGET35		027064'		SIXIN7		007024'		SW.DSP		040601'		TION	711000	000000		
SGET36		030374'		SIXIN9		007031'		SW.INT		000000	spd	TIONB	721000	000000		
SGET37		031731'		SIXOC1		007036'		SW.LOD		033160'		TPOPJ		003666'		
SGET40		020731'		SIXOC9		007047'		SW.LST		040547'		TPOPJ1		005176'		
SGET41		022146'		SIXOCT		007034'		SW.LVL		000000	spd	TTCDSP		037517'		
SGET42		023363'		SIXTYP		007600'		SW.REG		033156'		TTCL10		037553'		
SGET43		024600'		SKPINC	051540	000000		SW.RST		005200'	spd	TTCL11		037554'		
SGET44		026015'		SLEEP	047000	000031		SW.TIM		005200'	spd	TTCL12		037555'		
SGET45		027232'		SMF.11		100000	spd	SW.WRT		033044'	spd	TTCL13		037556'		
SGET46		030555'		SMF.BR		000100	spd	SXTYP1		007601'		TTCL14		037562'		
SGET47		032072'		SMF.BY		200000	spd	SYM		000005		TTCL15		037563'		
SGET50		021021'		SMF.DD		000020	spd	SYMBEG		041115'		TTCL31		037542'		
SGET51		022236'		SMF.EI		000010	spd	SYMBLK		005523'		TTCLL0		037527'		
SGET52		023453'		SMF.EM		002000	spd	SYMBOL		040463'		TTCLL1		037533'		
SGET53		024670'		SMF.IN		000004	spd	SYMDEV		005522'		TTCLL2		037535'		
SGET54		026105'		SMF.JS		001000	spd	SYMDIR		005524'		TTCLL3		037541'		
SGET55		027322'		SMF.MK		010000	spd	SYMEND		041116'		TTCLL4		037546'		
SGET56		030672'		SMF.P8		040000	spd	SYMERR		001426'		TTCLL5		037547'		
SGET57		032151'		SMF.PL		020000	spd	SYMEXT		005526'		TTCLL6		037550'		
SGET60		021167'		SMF.RG		000002	spd	SYMFN1		005155'		TTCLL7		037552'		
SGET61		022404'		SMF.RT		000400	spd	SYMFN7		005163'		TTYBIT		040704'		
SGET62		023621'		SMF.SB		000200	spd	SYMFN8		005173'		TTYDDB		037717'		
SGET63		025036'		SMF.SS		000040	spd	SYMFN9		005175'		TYP8IN		007341'		
SGET64		026253'		SMF.SU		000001	spd	SYMFND		005153'		TYPCH3		007672'		
SGET65		027470'		SMICL5		001772'		SYMNAM		005525'		TYPCH4		007676'		
SGET66		031070'		SOUT	104000	000053	int	SYMPPN		005532'		TYPCHR		007666'		
SGET67		032300'		SP		000006		SYMPTH		005530'		TYPEIT		007617'		
SGET70		021330'		STACKV		017143'		SYMPTR		040462'		TYPST3		007660'		
SGET71		022545'		STATE		000006		SYMSFD		005533'		TYPST5		007664'		
SGET72		023762'		STATE0		040120'		SYMTIM		005527'		TYPSTR		007655'		
SGET73		025177'		STATEB		040320'		SYMZZZ		042163'	spd	UARROW		002105'		
SGET74		026414'		STATSC		040220'		T.EXEC	010000	000000	spd	UB.16B		200000	spd	
SGET75		027631'		STB...		002000	spd	T.ITS	100000	000000	spd	UB.FST		100000	spd	
SGET76		031266'		STCER3		003723'		T.OTHE	400000	000000	spd	UB.RPW		400000	spd	
SGET77		032441'		STCERR		003717'		T.TENE	040000	000000	spd	UB.VLD		040000	spd	
SIM.U1		011242'		STCIMS		004420'		T.TOP1	200000	000000	spd	UBA.B5		000204	spd	
SIM11		011242'		STCKVP		017134'		T.TOP2	020000	000000	spd	UBA.B7		000230	spd	
SIM11A		011244'		STCMSG		004400'		T1		000011		UBA.IR		763200		
SIMCY1		011255'		STCOR1		000110'		T2		000012		UBA.MR		763101		
SIMCYC		011246'		STCOR2		000124'		T3		000013		UBA.SR		763100		
DDT11 %5(53) PDP-10 RESIDENT PDP-11 [FIL]DDT	MACRO %53A(1152) 17:41 18-May-81 Page S-9
DDT11	MAC	18-May-81 17:27		SYMBOL TABLE

UBACTL		041114'		WAIT0		014062'		.BEQ		014476'		.JBFF		043743'	ext	
UBALVL		000234	spd	WAIT1		014106'		.BGE		014507'		.JBREL		037477'	ext	
UBAMAP		763000		WAITIM		011610'		.BGT		014535'		.JBREN		011142'	ext	
UBXADR		163000	spd	WIDTH		037635'		.BHI		015700'		.JBSA		005366'	ext	
UBXBLD		034055'		WR2020		004607'		.BHIS		015755'		.JBVER		000137		
UBXBWR		034075'		WRAPR	700200	000000		.BIC		015320'		.JMP		014377'		
UBXDDB		034031'		WRCSB	702440	000000		.BICB		016635'		.JSR		014567'		
UBXINT		000000	spd	WRCSTM	702540	000000		.BIS		015345'		.MARK		015211'		
UBXLOD		034045'		WREBR	701200	000000		.BISB		016662'		.MODTE		000004	sin	
UBXLVL		000000	spd	WRINT	702640	000000		.BIT		015304'		.MOEOF		000003	sin	
UBXRST		005200'	spd	WRIO	713000	000000		.BITB		016621'		.MOV		015246'		
UBXTIM		005200'	spd	WRIOB	723000	000000		.BLE		014552'		.MOVB		016556'		
UBXWRT		034065'		WRPI	700600	000000		.BLO		015777'		.MUL		015427'		
UCALLI		037367'		WRPUR	702500	000000		.BLOS		015711'		.NEG		014722'		
UCLOSE		037732'		WRSPB	702400	000000		.BLT		014522'		.NEGB		016267'		
UCORE		037476'		WRTBN4		010444'		.BMI		015667'		.PRIOU		000101	sin	
UFNDD0		037740'		WRTBN9		010457'		.BNE		014465'		.RESET		014335'		
UFNDD7		037745'		WRTIME	702600	000000		.BPL		015656'		.ROL		015102'		
UFNDDB		037737'		WRTLCK		002400'		.BPT		014157'		.ROLB		016447'		
UGTTAB		037507'		WRTWRD		010431'		.BR		014456'		.ROR		015051'		
UMOVE	704000	000000		WRUBR	701140	000000		.BTCMP		000003	sin	.RORB		016416'		
UMOVEM	705000	000000		XMSG		004771'		.BTDTE		000000	sin	.RTI		014117'		
UNLOK.	047000	000120		XMTHDR		004767'	int	.BTLEN		000002	sin	.RTS		014405'		
UPT...		001000	spd	$FBLEN		000020	spd	.BTMSG		000001	sin	.RTT		014337'		
UPTIME		037153'		%%DDT1	000500	000053	sin	.BTRDD		000022	sin	.SBC		015003'		
UPTPFL		001501	spd	%GOTO		000600'		.BTSDD		000021	sin	.SBCB		016350'		
UPTPFN		001503	spd	%GOTO3		000602'		.BVC		015722'		.SOB		015644'		
UPTPFO		001502	spd	%GOTO5		000613'		.BVS		015733'		.SPL		014427'		
UPTPFW		001500	spd	%IF		000645'		.CCCLR		017126'		.SUB		016707'		
URLEAS		037733'		%IF..3		000650'		.CCSET		017131'		.SWAB		014433'		
URUNTM		037503'		%IF.EQ		000672'		.CLR		014621'		.SXT		015235'		
USETI	074000	000000		%IF.GE		000676'		.CLRB		016166'		.TRAP		016077'		
USETIT		040461'		%IF.GT		000674'		.CMP		015260'		.TST		015041'		
USLEEP		037506'		%IF.LE		000704'		.CMPB		016575'		.TSTB		016406'		
USTSTS		037726'		%IF.LT		000702'		.COM		014627'		.UPMUO		001424	spd	
UTTCAL		037510'		%IF.NE		000700'		.COMB		016174'		.UPMUP		001425	spd	
UUINIT		037671'		%IFDEF		000655'		.DEC		014676'		.WAIT		014053'		
UUO0		037260'		%IFDSP		000751'		.DECB		016243'		.XOR		015615'		
UUOACS		037305'		%IFERR		000662'		.DEQDR		000000	spd	
UUODSP		037325'		%IFEXP		000706'		.DIV		015461'		
UUOPEN		037675'		%IFLST		000732'		.DTEGF		000011	spd	
UUORET		037300'		%IFNDF		000665'		.DTEIF		000012	spd	
VALFND		005332'		%IFNOT		000727'		.DTEOF		000013	spd	
VDDT11		000005	spd	%IFTRU		000716'		.EMT		016010'		
VECTAB		004000	spd	.ADC		014750'		.ENQBL		000000	spd	
VECX7		037212'		.ADCB		016315'		.FADD		015640'		
VECXX		037173'		.ADD		015372'		.FDIV		015643'		
VEDIT		000053	spd	.ASH		015515'		.FHSLF		400000	sin	
VLFND0		005347'		.ASHC		015551'		.FMUL		015642'		
VLFND2		005351'		.ASL		015161'		.FSUB		015641'		
VLFND3		005334'		.ASLB		016526'		.HALT		014047'		
VLFND4		005337'		.ASR		015130'		.INC		014652'		
VLFND7		005345'		.ASRB		016475'		.INCB		016217'		
VMINOR		000000	spd	.BCC		015744'		.IODMP		000017	spd	
VWHO		000000	spd	.BCS		015766'		.IOT		014246'		

ACCUM	  1610	  1673	  1729#	  2082	  2483	  9757	  9760	  9761	  9763	  9764	  9767
ACCUM2	  1731	  1735	  1742#
ACCUM3	  1671	  1747	  1755#
ACCUM8	  1741	  1768#
ADDSYM	  1289	  1804	  4300#	  4518	  4621
ADRTYP	  2101	  2125	  2642	  2657	  2719	  3075	  5108#	  5164	  5213	  5282	  5306	  5312	  5317	  5329
	  5339	  5404	  5422	  5857	  6467	  8825
ADSYM7	  4321#	  4327
APRLVL	  9146#	  9159	  9165	  9177	  9413	  9553
ASSDEC	  1585#	  9763
ASSNUM	  1589#	  9762
ASSPER	  1579#	  9761
ASSPRC	  1606#	  9760
ASSYMB	  1580	  1613#	  9760	  9764	  9765	  9766	  9767	  9768	  9769	  9770	  9771
ASYMB2	  1583	  1603	  1616#
B3.TYP	  2009	  2109	  2130	  2179	  2203	  2556	  2596	  2783	  2829	  5165	  5192	  5198	  5214	  5238
	  5244	  5250	  5257	  5263	  5283	  5297	  5307	  5390	  5408	  5412	  5423	  5446	  5452	  5456
	  5479	  5483	  5501	  5509	  5513	  5616#
BARROW	  2117#	  9805
BARRW3	  2119#	  2128
BARRW5	  2118	  2132#
BEG.PS	  2758	  2775	  7679#
BEGREG	  2755	  2757	  2788	  2806	  2807	  2818	  2844	  2848	  2851	  2855	  2858	  2859	  2864	  2871
	  2872	  2873	  7671#
BFETCH	  7836	  7858#
BKSLSH	  2008#	  9805
BLANKT	  2210	  2686	  4142	  4887	  4892	  5193	  5215	  5229	  5383	  5436	  5616	  5617	  5619#	  5715
	  5859	  5862	  5945
BLDRET	  8373#	  8374#	  8375#	  8376#	  8377#	  8378#	  8379#	  8380#	  8438
BR5INT	  9214#	  9237
BR5LVL	   274	   275	  9211#
BR5OFF	  9212#
BR5ON	  9213#
BR5PND	  7734	  7836	  9239#	  9239
BR5TRP	  9245#	  9245	  9246#	  9246
BR7INT	  9206#	  9235
BR7LVL	   273	   275	  9203#
BR7OFF	  9204#
BR7ON	  9205#
BR7PND	  7734	  7836	  9248#	  9248
BR7TRP	  9254#	  9254	  9255#	  9255
BRFTCH	  7836	  7861#
BSTUFF	  7836	  7872#
BT%CTL	  3963	  3965
BTARG	  3929	  3930	  3932	  3933	  3937	  3954	  3956	  3957	  3958	  3962	  3974	  4113#
BYTCNT	  1062	  1079	  1906	  1908	  2024	  2026	  2146	  2152	  2153	  2159	  2244	  2589	  2594	  2701
	  2832	  2835	  2837	  2888	  2902	  2904	  5137	  5153	  5800	  5840	  9864#
C11LST	  4129	  4163#
CACHE	  2696	  3115	  3118	  3455	  3457	  3464	  3467	  9976#
CACHEA	  3113	  3121	  3446	  3448	  3454	  3460	  3463	  9974#
CACHEL	   514	  2107	  2108	  2759	  3054	  3109	  3112	  3445	  3458	  3461	  3462	  5794	  6000	  9973#
CACHSZ	  3449	  3457	  9975#	  9976
CALDSP	  9352	  9353	  9356#
CALER0	  2628	  2707	  3416	  4122#	  5148	  5419
CALER1	  4125	  4130#
CALER9	  4145	  4146	  4149	  4153#
CALERR	  4123#	  4160
CALLI0	  9356	  9400#	  9420
CH1	  9127	  9142#	  9144
CH2	  9129	  9147#	  9199
CH2CK5	  9163	  9170	  9173	  9175#
CH2CK9	  9178	  9183	  9186	  9195	  9197#
CH3	  9131	  9207#	  9209
CH4	  9133	  9215#	  9217
CH5	  9135	  9219#	  9221
CH6	  9137	  9223#	  9225
CH7	  9139	  9227#	  9229
CHKCHR	  9457	  9467	  9502	  9563#
CHKCTO	  8771	  8775	  8792	  8800#	  8825
CKCHR5	  9566	  9576#
CLKADR	  8825#	  8825
CLKBLD	  8825	  8862#
CLKBWR	  8825	  8868#
CLKDDB	  8825#	  8825	  8855	  8892	  8901	  9171
CLKFLG	  8828#	  8837	  8875	  8895	  8905	  8911
CLKINT	  8825	  8905#
CLKLOD	  8825	  8858#
CLKLVL	  8825#	  8825
CLKRS1	  8839	  8842#
CLKRS2	  8851	  8854#
CLKRST	  8825	  8835#
CLKSPD	  8829#	  8849	  8886
CLKSTS	  8826#	  8836	  8858	  8864	  8873	  8894	  8907
CLKTCK	  8832#	  8841	  8899	  9166	  9168
CLKTI1	  8888	  8891#
CLKTIM	  8825	  8879#
CLKWR3	  8876	  8897	  8900#
CLKWRT	  8825	  8872#
CLRMEM	   902	   958#
CMDCH1	  2939#	  2943	  2945
CMDCH2	  2978#	  2989
CMDCH4	  2982	  2990#
CMDCH6	  3003#	  3006
CMDCH7	  2979	  2992#
CMDCH8	  2947	  2957	  2966#	  2993
CMDCHR	  2940#	  2953	  2960	  2964	  2995	  6193	  6205
CMDCNT	  1271	  1286	  1797	  2935	  2951	  2980	  3039#
CMDCON	   516	  9969#
CMDDN1	  3013#	  3023
CMDDN7	  3014	  3024#
CMDDSP	  2923	  3040#
CMDFAK	  2936	  2939	  2940	  2941	  2944	  2975	  2977	  2986	  2990	  2998	  3000	  3001	  3043#
CMDFIL	   546	  1053	  1296	  1795	  2934	  3024	  3038#	  5788	  6192	  6204
CMDLIM	  1724	  1738	  1879	  1922	  6211	  9962#
CMDLIN	  1067	  1720	  1851	  1868	  1881	  1924	  9965#
CMDONE	  2950	  3012#	  3020
CMDPTR	  1069	  1085	  1103	  1125	  1133	  1232	  1467	  1485	  1522	  1526	  1571	  1712	  1723	  1729
	  1736	  1740	  1845	  1853	  1859	  1870	  1880	  1923	  1928	  2388	  2520	  9963#
CMDSIZ	    34	  9964
CMDSUB	  2955	  2974#
CMDSWL	  2923	  3041#
CMDTKR	  1055	  1722	  1737	  1739	  1883	  1926	  6202	  6213	  6215	  9961#
CMRUB3	  1886	  1899#
CMRUB8	  1892	  1897	  1905#
CMRUB9	  1906#	  1915
CNINWD	  2273	  2293#	  2748	  5810
CNIWD3	  2305	  2309	  2313#
CNTLF2	  1706#	  1708
CNTLF3	  1697#	  1701
CNTLF5	  1691	  1703#
CNTLF6	  1709#	  1714
CNTLF7	  1705	  1715#
CNTLF8	  1703	  1716#
CNTLF9	  1715	  1718#
CNTLOF	  9185	  9412	  9521	  9555#	  9563
CNTLR3	  1846	  1850#	  1891	  1941	  2379
CNTLR4	  1855#	  1860
CNTLT6	  8825	  8825#
CNTLW1	  1921#	  1930	  1936	  1940
CNTLW9	  1933	  1939	  1941#
CNTRLF	  1679#	  9756
CNTRLR	  1844#	  1988	  9758	  9777	  9796
CNTRLT	  8795	  8825#
CNTRLU	  1878	  1912#	  1919	  1927	  1990	  9758	  9777	  9796
CNTRLW	  1918#	  1992	  9758	  9777	  9796
CNTRLZ	  1994	  2323#	  9759	  9778	  9797
COLTYP	  1269	  4862	  5597#	  5754	  5772	  5830	  5865
COLUMN	  7734	  9525	  9526	  9529	  9533	  9560#
COM.CR	  2000#	  9795
COM.HT	  2030#	  9795
COM.LF	  2087#	  9795
COMAND	  1084	  1240#
COMAR0	  2240	  2243	  2246	  2253#
COMAR2	  2248	  2264#
COMAR3	  2269#	  2284
COMAR8	  2274	  2276	  2282#
COMLF1	  2004	  2034	  2096	  2099#	  2260	  2279	  2286	  2792	  2836	  8825
COMLF2	  2100#	  2903
COMLF3	  2106#	  2228
COMLF4	  2109#	  2724
COMRUB	  1877#	  1996	  9771	  9790	  9809
COMTYP	  2127	  2182	  3426	  4874	  4882	  5184	  5234	  5269	  5276	  5290	  5502	  5510	  5623#
CORARG	   608	   616	   622	   629	   644	  9838#
CORERR	   973	  4424	  4431	  4446#
CPUTYP	   946	  4055#
CRLTYP	   509	  1054	  1266	  1850	  1854	  2031	  2234	  2341	  2643	  2689	  2717	  2754	  2826	  3073
	  4746	  4853	  4983	  5610#	  5801	  5854	  5855	  5884	  5885	  5888	  5889	  5975	  5976	  6468
	  8825
CSECHO	  1264	  1277	  1293	  1298	  2933	  2956	  2959	  2963	  2966	  3035#
CST...	  9001#	  9052	  9053	  9054	  9055	  9114
CTIDAT	  8671#	  8796
CTIFLG	  8678#	  8692	  8743	  8799	  8821	  8823
CTISPD	  7734	  7836	  8681#	  8685	  8772
CTISTS	  8669#	  8690	  8711	  8712	  8743	  8798	  8817
CTITIM	  8680#	  8687	  8770	  8773	  8810	  8811
CTIWRS	  8723	  8743#
CTODAT	  8675#	  8695	  8803
CTOFLG	  8677#	  8696	  8746	  8750	  8808	  8825
CTOINT	  8820	  8822	  8825#
CTOSPD	  8683#	  8758
CTOSTS	  8673#	  8694	  8746	  8749	  8807	  8825
CTOTIM	  8682#	  8689	  8764	  8800	  8805	  8809
CTOWD1	  8760	  8763#
CTOWDT	  8729	  8748#
CTOWRS	  8727	  8746#
CTTIM8	  8802	  8809#
CTYADR	  8660#	  8664	  8709	  8712	  8722
CTYBLD	  8664	  8700#
CTYBWR	  8664	  8716#
CTYCHK	  8743	  8746	  8813#
CTYDDB	  8664#	  8664	  8688	  8765	  8766	  8812	  8814
CTYINT	  8664	  8817#
CTYLOD	  8664	  8706#
CTYLVL	  8661#	  8664
CTYRST	  8664	  8685#
CTYTIM	  8664	  8769#
CTYWRT	  8664	  8721#
D10AD	  3849	  3872	  4099#
D10DT	  3846	  3871	  4100#
D10FN	  3848	  3874	  4098#
D11AD	  3855	  4104#
D11DT	  3854	  4105#
D11FN	  4103#
D11RS	  4102#
D6.DEP	  3831#	  3873
D6.EXM	  3830#	  3847
D62DEP	  3552	  3869#
D62DEW	  3866#	  3870
D62EXM	  3181	  3844#
D62EXW	  3841#	  3845
DAT	  1077	  1094	  1095	  1097	  1224	  1226	  1439	  1441	  1970	  2117	  2121	  2126	  2140	  2163
	  2171	  2178	  2418	  2443	  2451	  2470	  2477	  3485	  3491	  3510	  3512	  3514	  3535	  3544
	  3546	  3548	  3559	  3566	  3568	  3586	  3599	  3649	  3651	  3658	  3660	  3663	  3670	  9812#
DATA	  1072	  1075	  1228	  2414	  2438	  2711	  2716	  2725	  2808	  2811	  2821	  2885	  2907	  3064
	  3487	  3489	  5152	  5154	  5199	  5231	  5235	  5241	  5247	  5253	  5260	  5266	  5273	  5277
	  5287	  5293	  5298	  5371	  5384	  5387	  5392	  5399	  5406	  5432	  5444	  5453	  5480	  5503
	  5506	  5912	  9842#
DATADR	  5156	  5213#	  5217
DATAS2	  5449	  5455#
DATAS3	  5172	  5451	  5455	  5461#	  5494
DATASC	  5156	  5448#	  5458
DATBYT	  5156	  5497#	  5512
DATEB2	  5477	  5482#
DATEB3	  5176	  5478	  5482	  5486#
DATEBC	  5156	  5476#	  5485
DATET0	  4899	  5719#
DATETY	  5718#	  5946
DATIN1	  5340	  5343#
DATIN2	  5286	  5291#
DATIN4	  5292	  5296#
DATIN8	  5233	  5289	  5295	  5308#
DATIN9	  5111	  5237	  5262	  5268	  5275	  5348	  5359#
DATINS	  5156	  5221#
DATNUM	  5156	  5190#	  5195	  5225
DATYP1	  5142	  5147#
DATYPE	  2013	  2112	  2157	  3079	  5137#	  5832	  5875
DC2TYP	  5756	  5768	  5774	  5776#
DDBADR	  8555#	  8584	  8584#	  8632	  8632#	  8664	  8664#	  8825	  8825#	  8913	  8913#	 10020
DDBLNK	  8557#	  8584	  8584#	  8632	  8632#	  8664	  8664#	  8825	  8825#	  8913	  8913#	  8950	 10020
DDT11	   506#	   752	   765	  3314	  9582	  9756	  9775	  9794	 10022
DDTEND	 10022#
DECIN	  1559#	  1559	  1595	  1598	  1752	  1771
DECINP	   600	   671	   989	  1009	  5084#
DECTYP	  2682	  2685	  4437	  4530	  5529#	  5726	  5732	  5765	  5771	  5777	  5782
DEFEXT	   839	   985	  4638	  4790	  4820	  4824	  4923#
DEFSYM	  1779#	  9763
DELSYM	  2561	  3019	  4306	  4335#
DEQD60	  3998	  4007#
DEVWRT	  8562#	  8601	  8645	  8721	  8872
DFSYM3	  1784	  1801#
DISA10	  5801#	  5839
DISA20	  5824	  5827	  5831#
DISA40	  5817	  5819	  5821	  5844#
DISA90	  5840#	  5847
DMPDEV	  5960	  6242	  6244	  6415#	  6423
DMPDIR	  6417#
DMPDSP	  5920#	  5932
DMPPTH	  6421#
DMPSWL	  5923#	  5932
DMPTIM	  6420#
DONE.W	  3025	  4903#	  5887	  6076
DOTFOO	  2011	  2014	  2038	  2043	  2045	  2092	  2093	  2155	  2189	  2226	  2235	  2432	  2437	  2447
	  2538	  2540	  2802	  5140	  5204	  5327	  5833	  5834	  5876	  5877	  9813#
DOTINC	  2044	  2050	  2056	  2063#	  2094	  5835	  5878
DOTOLD	  2037	  2537	  9817#
DOTSAV	  2032	  2037#	  2220
DOTSWP	  2003	  2089	  2233	  2537#
DSKDDB	  9611	  9628	  9630#
DSKEXT	  9634#
DSKFIL	  9633#
DSKOP2	  9615#	  9618
DSKPAG	  9003#	  9672
DSKSTR	  9612	  9632#
DSLERR	  4043	  4047#
DTEERR	   768	  3304#	  3306	  3322	  3350	  3619
DTEFB%	   767
DTENF%	   760
DTFINP	  1078	  1148	  1199	  1443	  1513	  1971	  1974	  2049	  2051	  2431	  2433	  9816#
DTFOLD	  2039	  2539	  9818#
DUMP0	  5789	  5794#
DUMP1	  5850#	  5882
DUMP2	  5798	  5854#
DUMP3	  5858	  5865#
DUMP4	  5853	  5870#
DUMP6	  5803	  5873	  5903#
DUMP8	  5804	  5842	  5874	  5884#
DUMP85	  5886#	  6139	  6144
DUMP9	  5791	  5892#
DUMPA	  5850	  5868	  5915#
DV.BLD	  8441	  8584#	  8632#	  8664#	  8825#	  8913#
DV.BWR	  8470	  8515	  8584#	  8632#	  8664#	  8825#	  8913#
DV.INT	  8584#	  8618	  8632#	  8664#	  8825#	  8913#
DV.LNK	  7734	  8409	  8441	  8448	  8470	  8584#	  8622	  8632#	  8664#	  8825#	  8913#	  8977	  8978	  8985
	  8986	  8988	  8989
DV.LOD	  8409	  8584#	  8632#	  8664#	  8825#	  8913#
DV.LVL	  8584#	  8615	  8632#	  8664#	  8814	  8825#	  8901	  8913#
DV.RST	  7734	  8584#	  8632#	  8664#	  8825#	  8913#
DV.SIZ	  8565	  8584#	  8632#	  8664#	  8825#	  8913#
DV.TIM	  7734	  8584#	  8632#	  8664#	  8688	  8765	  8766	  8812	  8825#	  8855	  8892	  8913#	  9171
DV.WRT	  8448	  8499	  8584#	  8632#	  8664#	  8825#	  8913#
DZ.CSR	   281#
DZ.LPR	   283#
DZ.MSR	   285#
DZ.RBF	   282#
DZ.TCR	   284#
DZ.TDR	   286#
EB.TRN	  5490	  5491	  5492	  5493	  9719#
EBLKSZ	  9004#	  9019
EN%BLN	  4090
EN%LTL	  4090
ENQBLK	  3990	  4007	  4088#
ENQD60	  3990#
EPDLOV	  9035	  9258#
EPM000	   213#
EPT...	  8998#
EPTAOV	   200#	  9034
EPTBLK	  9008	  9018	  9024	  9116	  9262	  9267	  9275	  9280	  9289	  9671	  9986#
EPTINT	   194#	  9026	  9027
EPTPDO	   201#	  9037
EPTSTP	   212#	  9043
EPTTP3	   202#
EPTVEC	   196#	  9029
EQUAL2	  2169#	  2183
EQUAL5	  2164	  2186#
EQUALS	  2163#	  9801
ESC...	  2494#	  9780
ESC..0	  2499#	  9781
ESC..8	  2498#	  9782
ESC..A	  2546#	  9783	  9787
ESC..B	  2549#	  9783	  9787
ESC..C	  2552#	  9783	  9787
ESC..D	  5785#	  9783	  9787
ESC..G	  2614#	  9783	  9787
ESC..I	  2579#	  9784	  9788
ESC..K	  2555#	  9784	  9788
ESC..M	  2544#	  9784	  9788
ESC..N	  3046#	  9784	  9788
ESC..P	  5980#	  9785	  9789
ESC..Q	  2602#	  9785	  9789
ESC..R	  2564#	  9785	  9789
ESC..S	  2576#	  9785	  9789
ESC..T	  2581#	  9785	  9789
ESC..V	  2692#	  9785	  9789
ESC..W	  3049#	  9785	  9789
ESC..X	  2741#	  9786	  9790
ESC..Y	  2910#	  9786	  9790
ESC.CR	  2529#	  9776
ESC.D0	  2914	  5787	  5926#
ESC.D3	  2931	  5793	  5938#
ESC.D4	  5962	  5970#
ESC.G1	  2619	  2632#
ESC.G8	  2680	  2685#
ESC.LF	  2526#	  9776
ESC.Q.	  1819	  2176	  2214	  2429	  2475	  5151	  5163	  5210	  9873#
ESC.UP	  2532#	  9776	  9786
ESC.V0	  2698#	  2727
ESC.V9	  2714	  2726#
ESC.W2	  3056#	  3089
ESC.X1	  2760#	  2771	  2774
ESC.X3	  2816	  2824	  2840#
ESC.X7	  2764	  2774#
ESC.X8	  2797	  2805	  2810	  2825#
ESC.X9	  2769	  2772	  2829#
ESCAPE	  2483#	  9759
ESCDEC	  2487	  2495	  2503	  2506	  2566	  9875#
ESCESC	  2490#	  9778
ESCMD0	  2550	  2582#
ESCMD2	  2585	  2589#
ESCMD7	  2574	  2596#
ESCMD8	  2545	  2572	  2593	  2598#
ESCMOD	  2547	  2553	  2577	  2586#
ESCOCT	  2205	  2486	  2496	  2499	  2502	  2508	  2512	  2518	  2565	  2582	  2586	  2743	  9874#
ESCP00	  6002#	  6064
ESCP02	  6004#	  6021
ESCP10	  6012	  6016	  6019	  6022#
ESCP11	  6022	  6024#
ESCP12	  6032#	  6048
ESCP16	  6037	  6053#
ESCP19	  6052	  6058#
ESCP20	  6023	  6062#
ESCPAR	  2512#	  9780
ESCSAV	  1079	  1081	  1906	  2024	  9870#
ESCW.6	  3069	  3073#
ESCW.8	  3068	  3072	  3081	  3083#
ESCW.9	  3063	  3082	  3086	  3090#
ESCX33	  2852	  2860	  2874#
ESCX35	  2846	  2876	  2882#
ESCX73	  2762	  2776	  2786#
ESCX74	  2787#	  2794
ETYPE	   595	   610	   651	   658	   693	   708	   728	   780	   787	   822	   907	   955	  3135	  3492
	  9822#
EVLSYM	  1629	  1744	  1812#
EX.D61	   132#
EX.D62	   133#	   706	   729
EX.FE0	   131#	   704
EX.FE1	   135#	   692
EX.MCB	   134#
EX.MEM	   128#	   594	   609	   650	   657	   779	   786
EX.NOD	   130#	   821	   906
EX.POR	   129#	   954
EXMAX	    31#	  3060	  3061	  5906	  5907
EXP.DO	  1641	  1644	  1647	  1650	  1653	  1656#
EXPAND	  1652#	  9760
EXPDIV	  1646#	  9760
EXPDO5	  1661	  1666	  1672#
EXPIOR	  1649#	  9760
EXPLUS	  1628	  1632	  1638#	  9761
EXPMIN	  1640#	  9761
EXPMUL	  1643#	  9761
EXPRES	  1093	  1146	  1162	  1172	  1187	  1197	  1218	  1493	  1501	  1544	  1552	  1634	  1662	  1664
	  1669	  1670	  1755	  1766	  1769	  2221	  2330	  2514	  2519	  2614	  2624	  3050	  7681	  9819#
EXPSPC	  1626#	  9760
EXPXOR	  1655#	  9759
F..ESC	    88#	  1554	  2001	  2088	  2232	  2490	  2533	  2560	  2571	  2592	  2632	  2763
F..FOO	    72#	   649	   656	  5786	  5797	  6251	  6254	  6261
F..SIM	    99#	   548	  1554	  7659	  8425	  8462	  8570	  8647	  8707	  8926	  8932	  8938	  8944
F.APND	    85#	  2918	  4799	  4803	  4833	  5926	  5981
F.CACH	    83#	  1057	  2110	  2156	  2265	  2705	  3055	  3110	  5795	  6001
F.CERR	   102#	  1318	  2023	  2932
F.EXEC	   100#	   548	   554	   558	   582	  1001	  1017	  4415	  7734	  7836	  8409	  8415	  8441	  8448
	  8452	  8470	  8605	  8838	  8896	  8926	  8932	  8938	  8944	  8982	  9006
F.FELE	   103#	  1554	  1606	  1626	  1656
F.FLIP	    63#	  2697	  2713	  2752	  2777	  2789	  2825	  2882	  3046	  3049	  3066	  4636	  4637	  4649
	  5785	  5792	  5886	  6282	  6284	  6299
F.FLOP	    69#	   593	  6240	  6250	  6259	  6263	  6382	  6397	  7734	  8617	  8619	  8825	  8913
F.GEXP	    95#	  1216	  1470	  1476	  1482	  1495	  1499	  1554	  1616	  1946	  2606
F.HALT	   104#	  2761	  7639	  7836
F.HASH	    91#	  1463	  1475	  1507
F.IDEC	    80#	  1066	  1554	  1579	  1581	  1585	  1589	  1614	  1751	  2494	  2498	  2507	  2564	  2608
F.IHEX	    81#	  1066	  1554	  1582	  1589	  1614	  1753	  2608
F.IOCT	    79#	  1066	  1554	  1579	  1582	  1586	  1590	  1614	  1749	  2608
F.LBKT	    90#	  1057	  2103	  2111	  2197	  2199	  2242	  2591	  2721
F.LOCK	    86#	   548	   923	  4418
F.LOPN	    75#	  1057	  2099	  2132	  2143	  2186	  2227	  2422	  2694	  8825
F.LPAR	    93#	  1463	  1491
F.MASK	    77#	  1057	  2200	  2544
F.MOPN	    76#	  1057	  2202	  2420
F.PACK	    89#	  5980	  5995	  6083	  6125	  6126
F.PERC	    92#	  1463
F.RUNF	   101#	  2635	  2752	  7734	  7836	  7847	  8791	  9169	  9579	  9591
F.SREG	    98#	  1502	  1542	  1554	  1837
F.SVIO	    97#	  7639	  7734	  7847
F.SYMB	    82#	  1066	  1554	  1613	  1627	  1743	  1779	  2606
F.SYML	    94#	  1090	  1220	  1554	  1829	  1832	  2165	  2222
F.TEXT	    78#	  1066	  1554	  1957	  1978	  6219
F.TOPN	    96#	   548	  7643
F.WENB	    87#	   548	   792	  2424	  2622	  6471
F.WRIT	    84#	  1057	  2918	  4768	  4781	  4813	  4818	  4837	  4844	  4849	  4854	  5926	  5980
FE$BLT	  3310#	  3315	  3623	  3642
FE.BUF	  3318	  3338	  3346	  3612	  3631	  9832#
FE.CPU	   686	   757	  3301	  3319	  3347	  3616	  9829#
FE.FED	   687	   769	  9830#
FE.JFN	   727	   772	   901	  3259	  3628	  3886	  3899	  3912	  4041	  9826#
FE.MAX	   136#	  3309	  3583	  3607	  9827
FE.MSG	  3252	  3253	  3254	  3258	  3260	  3271	  3276	  3281	  3288	  3317	  3323	  3330	  3332	  3333
	  3335	  3336	  3344	  3351	  3357	  3584	  3608	  3629	  9827#
FE.RPY	  3307	  3344#	  3620
FE.STS	  9831#
FENAME	   688	   712	   719	   751	  9825#
FESUP	  3844	  3869	  3980#
FESUP1	  3982	  3985#
FETCH	  7836	  7849#
FEWINP	   312#	  9176	  9179	  9406
FEWOUT	   317#	  9407	  9548	  9552
FEWSTS	   310#	  9405
FIL.SW	  4644	  4721	  4744	  4754	  4755	  4937#
FILBLK	  4791	  4794	  4926#	  4931
FILBYT	  4951	  4958#	  4965	  4995
FILCHR	  2949	  2978	  4523	  4951#	  4953	  5004	  5015	  6427
FILDEV	  4454	  4550	  4639	  4640	  4642	  4655	  4658	  4765	  4835	  4851	  4858	  4859	  4860	  4925#
	  4938	  6242
FILDIR	  4798	  4927#
FILER0	  4776	  4819	  4821	  4844#
FILERR	  4849#	  5896	  6106
FILEXT	  4667	  4789	  4822	  4866	  4893	  4929#	  6256
FILNAM	  4643	  4662	  4863	  4928#	  6247
FILPOS	  1272	  4989#
FILPPN	  4680	  4687	  4795	  4868	  4872	  4875	  4933#
FILPS4	  4994#	  4997
FILPTH	  4797	  4806	  4807	  4828	  4829	  4932#	  4936
FILSFD	  4688	  4694	  4878	  4879	  4934#
FILTIM	  4888	  4895	  4930#
FILTY3	  4890	  4893#
FILTY4	  4879#	  4884
FILTY5	  4881	  4885#
FILTY6	  4869	  4887#
FILTYP	  4852	  4857#	  4913	  4977	  5714	  5961
FIRDDB	  7734	  8409	  8441	  8448	  8470	  8614	  8950#	  8977	  8985
FLCHR5	  4959	  4964#
FLGSAV	   547	  1059	  9968#
FNDTAG	  1260	  1277#	  1297
FNDTG8	  1279	  1281	  1285	  1292	  1296#
GET.C1	  3137	  3140	  3153#
GET.FE	  3139	  3250#
GETCH1	  6207#	  6216
GETCH3	  6203	  6211#
GETCH4	  6212	  6215#
GETCH8	  6197	  6207	  6218#	  6224
GETCH9	  6221	  6226#
GETCHR	  1484	  1525	  1565	  1570	  6202#	  6208	  6214	  6222
GETCOR	  1950	  4309	  4354	  4368	  4411#
GETD62	  3141	  3181#
GETEXP	  1083	  1144	  1160	  1170	  1185	  1195	  1358	  1465	  1540	  1552#	  2085	  2516
GETFEM	  3269	  3276#	  3639
GETHDR	  3852	  3877	  3899#
GETMEM	  3136	  3187#
GETNOD	  3138	  3213#
GETNYI	  3142	  3145#
GETOP0	  1465#	  1472	  1478
GETOP5	  1488	  1497	  1519#
GETOP6	  1525#	  1531
GETOP8	  1505	  1509	  1535#
GETOP9	  1517	  1536#
GETOPR	  1428	  1463#
GETREG	  1110	  1177	  1519	  1540#
GETSC1	  4458#	  4460	  4468	  4481	  4483	  4499	  4510	  4512	  4522
GETSC3	  4470#	  4479
GETSC4	  4472	  4480#
GETSC5	  4474	  4482#
GETSC6	  4485#	  4487	  4490	  4495
GETSC7	  4500#	  4506
GETSCH	  4458	  4464	  4470	  4485	  4502	  4523#	  4554	  4560	  4565	  4590	  4607
GETWD0	  3115#	  3179	  3248
GETWD1	  3111	  3114	  3135#
GETWD2	  3162	  3171#
GETWD3	  3127	  3131#	  3192	  3203	  3211	  3274	  3325	  3537	  3561	  3574	  3624	  3643	  3653	  3673
GETWDR	  3155#	  3169
GETWRD	  2297	  2706	  2804	  2866	  2879	  3062	  3103#	  5147	  5208	  5418	  5846	  5910	  6015	  6035
	  6042	  6153	  6176
GJ%OLD	   718
GJ%SHT	   718
GOTO	  2615	  2617	  6070	  6302	  7686	  9824#
GT.F10	  3143	  3299#
GTCOR6	  4428	  4432#
GTCOR9	  4417	  4443#
GTEXP1	  1553#	  2524
GTEXP2	  1565#	  1567
GTFEM3	  3283	  3288#
GTMEM8	  3195	  3206#
GTNOD3	  3230	  3235#	  3246
GTNOD4	  3237	  3244#
GTWD2A	  3173#	  3185
HEXIN	  1560#	  1560	  1599	  1602	  1754	  1772
HSHTYP	  5309	  5635#
IBUFER	  4784	  4941#
IDTYP2	  5698	  5701	  5708#
IDTYP3	  5709	  5715#
IDTYPE	   508	  5674#	  5974
IFILER	  4968	  4972#	  6339
IFLDEV	  4838	  4942#	  4976
IHD	  4767	  4855	  4940#	  4958	  4960	  6348	  6350	  6355	  6360	  6379	  6381	  6394	  6398	  6403
	  6405	  6407
ILLCH0	  1842	  2021#
ILLCHR	  1145	  1155	  1161	  1171	  1186	  1196	  1204	  1253	  1257	  1261	  1273	  1302	  1305	  1312
	  1324	  1359	  1366	  1377	  1471	  1477	  1483	  1487	  1492	  1500	  1524	  1530	  1541	  1543
	  1680	  1781	  1796	  1947	  2019#	  2133	  2144	  2187	  2336	  2513	  2522	  2555	  2569	  2605
	  2621	  2693	  2695	  2742	  9756	  9757	  9758	  9759	  9767	  9768	  9771	  9775	  9776	  9777
	  9778	  9779	  9780	  9782	  9783	  9784	  9785	  9786	  9787	  9788	  9789	  9790	  9794	  9795
	  9796	  9797	  9798	  9799	  9800	  9801	  9802	  9803	  9804	  9805	  9806	  9807	  9808	  9809
ILLINS	  7734	  7740	  7742	  7766	  7768	  7789	  7836	  7847#
ILLUUO	  9298	  9312	  9313	  9314	  9315	  9317	  9318	  9319	  9320	  9321	  9322	  9323	  9325	  9326
	  9327	  9329#	  9349	  9356	  9357	  9358	  9359	  9360	  9361	  9362	  9363	  9364	  9365	  9366
	  9367	  9368	  9369	  9370	  9371	  9372	  9373	  9374	  9375	  9376	  9377	  9378	  9379	  9380
	  9381	  9382	  9383	  9384	  9385	  9386	  9387	  9388	  9389	  9390	  9391	  9392	  9393	  9394
	  9395	  9396	  9397	  9398	  9454
INI.00	   519#	   536
INI.03	   518	   524#	   537
INIAL1	   559	   582#
INIALL	   507	   538#	   544	   552	  1045
INLMES	  9154	  9272	  9278	  9329	  9336	  9514#	  9538
INLMS3	  9516#	  9519
INPOCT	  5002#	  6435	  6440
INPOPR	  1556	  1658	  1663	  1665	  1668	  1675	  1756	  9856#
INPRD2	  5004#	  5006	  5009
INPRD5	  5010#	  5017
INPRD7	  5012	  5018#
INPRD9	  5005	  5021#
INSRUN	   586	  2644	  2667	  7684	  7734	  7734#	  7836	  8686	  8754	  8763	  8769	  8801	  8825	  8845
	  8854	  8882	  8891
INTBLK	  9025	  9127#
INTCHK	  7707	  7734#
INTCK0	  7734#
INTCK1	  7734	  7734#
INTCK3	  7734	  7734#
INTCK6	  7734	  7734#
INTDLY	  7641	  7642	  7706	  7734	  7734#	  7836	  7847	  8751	  8752	  8756	  8757	  8759	  8761	  8762
	  8790	  8842	  8843	  8847	  8848	  8850	  8852	  8853	  8879	  8880	  8884	  8885	  8887	  8889
	  8890	  9172	  9232
INVLF1	  4269#	  4278
INVLF8	  4272	  4276#
INVLFN	  2299	  2809	  4267#	  5224
IO.BKT	  4967
IO.DER	  4967
IO.DTE	  4967
IO.IMP	  4967
IO.RLB	    40#	  3250	  3299
IO.WLB	    41#	  3581
IOBLOD	  8373	  8374	  8375	  8376	  8377	  8378	  8379	  8380	  8438#
IOBR.	  7836	  8503	  8506	  8508#
IOBR.C	  7836	  8502#
IOBR.S	  7836	  8505#
IOBRK	  3894	  3912#
IOBSTO	  3668	  8373	  8374	  8375	  8376	  8377	  8378	  8379	  8380	  8468#
IOLOAD	  3190	  7712	  7734	  7836	  7847	  8373	  8374	  8375	  8376	  8377	  8378	  8379	  8380	  8406#
	  8825	  8913
IOLT1S	  7734#	  7734	  7836#	  7836	  7847#	  7847	  8373#	  8373	  8374#	  8374	  8375#	  8375	  8376#	  8376
	  8377#	  8377	  8378#	  8378	  8379#	  8379	  8380#	  8380	  8825#	  8825	  8913#	  8913
IOR.	  7836	  8487	  8490	  8492#
IOR.C	  7836	  8486#
IOR.S	  7836	  8489#
IORERR	  8487	  8490	  8496	  8503	  8506	  8512	  8518#
IORET	  8412	  8432#	  8444	  8451	  8473
IOSTOR	  3666	  7734	  7836	  7847	  8373	  8374	  8375	  8376	  8377	  8378	  8379	  8380	  8446#	  8825
	  8913
IR	  6509#	  7713	  7719	  7721	  7723	  7727	  7730	  7836	  7847	  8373	  8374	  8375	  8376	  8377
	  8378	  8379	  8380	  8984	  8985	  8986	  8989	  8990	  8992
JMPCLC	  7836	  7864#
JMPREG	  7838#	  8373	  8374	  8375	  8376	  8377	  8378	  8379	  8380
KA10	  4060	  4074#
KI10	  4062	  4076#
KL10	  4069#
KS10	  4071#
LASTSW	   691	   715	   778	   842	   905	   953	   982	  4645	  4758	  4841	  9811#
LERLST	  4159	  4179#
LEVEL0	  1057#	  2002	  2005	  2324	  2464	  2929	  2937	  5420	  5890	  5897	  5991
LEVEL1	  1063#	  1725	  1806	  1909	  1942	  2016	  2027	  2035	  2097	  2131	  2137	  2142	  2148	  2180
	  2195	  2218	  2562	  2597	  2630	  2690	  2708	  2839	  3096
LEVEL2	  1064#	  1243	  1274	  1378	  1431	  2229	  2261	  2280	  2287	  2332	  2734	  3150	  3507	  6077
LEVEL3	  1083#	  1980	  9799
LEVEL4	  1437	  1439#
LEVEL5	  1102	  1132	  1141	  1427#
LEVEL6	  1089	  1214#
LEVEL7	  1105	  1127	  1135	  1157	  1167	  1174	  1182	  1192	  1209	  1211#
LEVEL8	  1087	  1092	  1216#
LEVEL9	  1213	  1214	  1217	  1228#
LEVL.0	   745	   776	   903	   951	  1048#	  6473
LFTANG	  2082#	  9763
LFTSAV	  1082	  1782	  2084	  2328	  9821#
LINE	   517	   820	  3367	  3415	  9837#
LK.LLS	   920
LK.LNE	   920
LKELEN	  4793	  4931#
LOCKER	   922	  4159#	  4162	  4421	  4427
LODRET	  7734	  7734#	  7836#	  7836	  7847	  7847#	  8373#	  8373	  8374#	  8374	  8375#	  8375	  8376#	  8376
	  8377#	  8377	  8378#	  8378	  8379#	  8379	  8380#	  8380	  8406	  8825	  8825#	  8913	  8913#
LOOP	  1570#	  1624	  1676	  1847	  1954	  1966	  1975	  2380	  2488	  2491	  2497	  2509	  2599	  2613
	  9756	  9775
LOOP1	  1572#	  2534
LSTADR	  2012	  2033	  2175	  2213	  2427	  2428	  2474	  5113	  5190	  5255	  5361	  9871#
LSTDTE	  4038	  4044	  4047	  4107#
LSTIAD	  1147	  1198	  1223	  1515	  1535	  1546	  2426	  2430	  9872#
MA	  1016	  1018	  1019	  3189	  3656	  3661	  3671	  6502#	  7709	  7711	  7716	  7717	  7719	  7721
	  7734	  7836	  7847	  8373	  8374	  8375	  8376	  8377	  8378	  8379	  8380	  8409	  8411	  8432
	  8441	  8443	  8448	  8450	  8470	  8472	  8487	  8490	  8492	  8493	  8494	  8498	  8499	  8503
	  8506	  8508	  8509	  8510	  8514	  8515	  8562	  8563	  8564	  8565	  8593	  8598	  8614	  8615
	  8618	  8622	  8623	  8649	  8652	  8701	  8709	  8712	  8716	  8722	  8825	  8862	  8868	  8913
	  8926	  8932	  8938	  8944	  8954	  8956	  8958	  8960	  9668	  9669	  9675	  9677	  9679	  9681
	  9683	  9685	  9687	  9697	  9704
MA..IO	  6508#	  7836	  8409	  8432	  8441	  8448	  8470	  8709
MA..RG	  6507#	  7836
MA..UN	  6506#	  8432	  8487	  8490	  8492	  8503	  8506	  8508
MAPCOR	   555	  1051	  3707	  9006#
MAPCR1	  9024#
MAPCR2	  9058#	  9079
MAPCR3	  9009	  9082#
MAPCR4	  9085#	  9091
MAPCR5	  9099#	  9109
MASKSZ	    33	  2207	  2208	  9847
MATCH	  1690	  2339	  2387#
MATCH0	  2391#	  2395
MATCH2	  2397#	  2410
MATCH4	  2400	  2405	  2408#
ME.SET	  3300	  3330#	  3582
MEMLIM	   625	   630	   631	   975	  3188	  3647	  3685	  3689	  3696	  3698	  6233	  6343	  6461	  6488#
	  7710	  7734	  7836	  7847	  8373	  8374	  8375	  8376	  8377	  8378	  8379	  8380	  8825	  8913
	  9105
MEMORY	   623	   744	   958	   974	  2618	  2692	  2741	  3187	  3197	  3207	  3645	  3680	  3684	  3703
	  3720	  3730	  3740	  3742	  3757	  5952	  5959	  6320	  6332	  6487#	  7718	  7720	  7734	  7836
	  7847	  8373	  8374	  8375	  8376	  8377	  8378	  8379	  8380	  8825	  8913	  8953	  8955	  8957
	  8959	  8968	  9087	  9096
MEMUSE	  3687	  3704	  3714	  3754	  3756	  6011	  6318	  6322	  6490#	  9013
MINTYP	  5335	  5553	  5570	  5639#	  5727	  5730
MONTAB	  5723	  5734#
MOVMEM	  3706	  3737#
MOVMUS	  3751#	  9023
MOVSMT	  3697	  3738	  3752	  4366#	  6314
MOVTAB	  3745	  3760	  3768#	  4374
MOVTB2	  3770#	  3774
MRGFLG	   550	   785#	   785	  6472
MYPPN	   590	  4679	  4686	  9970#
NDTFIN	  1098	  1227	  2049#
NDTFOO	  2043#	  2440	  5203
NERLST	  4127	  4193#
NODARG	  3223	  3399	  3402	  3404	  3407	  3408	  3423	  3825#
NODE	   515	   900	  2620	  3403	  4126	  5955	  5964	  9836#
NODSE1	  3395#	  3397
NODSET	  2627	  3218	  3392#	  3570
NUMBUF	    35	  4779	  4941
NXM...	  7649	  7734	  7836	  7839	  7843	  7846#	  7847	  8373	  8374	  8375	  8376	  8377	  8378	  8379
	  8380	  8430	  8825	  8913
NXMRET	  8409	  8410	  8415#	  8441	  8442	  8926	  8928	  8932	  8934
NXMRT3	  8416	  8425#
NXTDOT	  2055#	  3083
NXTDWD	  5194	  5197#	  5216	  5457	  5484	  5511
NXTWRD	  5197	  5203#	  5310	  5315	  5325	  5337
O.MODE	   513	  1061	  2145	  2150	  2151	  2160	  2247	  2590	  2595	  2702	  2831	  2833	  2838	  2887
	  2889	  2901	  2905	  5138	  5155	  5799	  5809	  5812	  5841	  9865#
OBUFER	  4778	  4945#
OCTIN	  1558#	  1558	  1591	  1594	  1750	  1770
OCTYP6	  5537#	  5806	  5848
OCTYPE	  2662	  3430	  4141	  4873	  4877	  4982	  5243	  5365	  5546#	  5679	  5688	  5695	  5864	  5966
	  8825	  9158	  9277	  9282	  9335	  9341
OF%RD	   730	   732
OF%WR	   730	   732
OFLDEV	  4835	  4912	  4946#
OHD	   545	  1052	  2926	  2927	  2930	  4769	  4845	  4850	  4903	  4908	  4944#	  5661	  5666	  5668
	  5892	  5997	  6085	  6088	  6090	  6094	  6098	  6100
OPDSP0	  7725	  7734#
OPDSP1	  7727	  7761#
OPDSP2	  7730	  7788#
OPDSPA	  7727#	  7734
OPDSPB	  7730#	  7734
OPENFE	   713	   718#
OPFIL1	  4646#	  4652	  4660	  4666	  4682	  4684
OPFIL2	  4657	  4661#
OPFIL3	  4664	  4668#
OPFIL4	  4653	  4669	  4673	  4675	  4677	  4706#	  4759	  4763
OPFIL5	  4723	  4733#
OPFIL6	  4725	  4732	  4754#
OPFIL7	  4711	  4713	  4764#
OPFL30	  4689#	  4702
OPFL39	  4691	  4693	  4703#
OPFL40	  4705#	  4708
OPFL41	  4715#	  4720
OPFL42	  4718	  4721#
OPFL43	  4722#	  4728
OPFL52	  4740#
OPFL55	  4745#	  4752
OPLBKT	  2197#	  9805
OPNF10	   689	   757#	   770
OPNFE8	   744#	   773
OPNFE9	   725	   739	   747#
OPNFIL	  2928	  4636#	  5790	  5990
OPNFL0	   535	  2916	  4637#
OPNFL2	  4791#	  4802	  4825
OPNFL5	  4766	  4817	  4826#
OPNLC2	  2210#	  2216
OPNLC4	  2201	  2220#
OPNLOC	  2199#	  9799
OPNTTY	  9610	  9623#
OPRTY1	  5428#	  5442
OPRTY5	  5431	  5434	  5440#
OPRTYP	  5374	  5425#
ORADIX	  1060	  2570	  2573	  3002	  5519	  9868#
OSTYPE	   584	   663	   678	   797	   878	   912	   944	  3613	  9985#
P.KA10	  4074	  4085#
P.KI10	  4076	  4084#
P.KL10	  4069	  4083#
P.KS10	  4071	  4082#
P.PDP6	  4078	  4086#
P.PLVL	  6517#	  7836	  8418	  8455	  8604	  8621	  8813	  8900
PATCH	  9983#
PATLEN	  9982	  9983
PC	  2641	  2656	  2746	  2765	  2806	  2807	  2818	  2830	  2864	  2871	  2872	  6303	  6500#	  7647
	  7682	  7688	  7709	  7722	  7734	  7836	  7847	  8373	  8374	  8375	  8376	  8377	  8378	  8379
	  8380	  8825	  8913
PCNTYP	  2168	  2354	  5364	  5631#
PDECTY	  2671	  5566#	  8825
PDL	   542	  1048	  1064	  9978#
PDLEN	   542	  1048	  1064	  9977	  9978
PDP6	  4057	  4078#
PDP8F	   615	   827	   832	  1074	  1088	  1230	  2068	  2245	  2256	  2294	  2402	  2416	  3105	  3117
	  3126	  3194	  3229	  3236	  3377	  3383	  3452	  3466	  3486	  3694	  3717	  4253	  4256	  4301
	  5141	  5206	  5222	  5448	  5476	  5498	  5505	  6452	  9823#
PERTYP	  2683	  4865	  5522	  5627#	  5760
PGFAIL	  9049	  9261#
PGFSAV	  9261#	  9261	  9265#	  9265
PLUTYP	  5126	  5357	  5643#
PORT	   943	  3158	  3520	  3931	  3953	  4035	  4128	  5965	  9835#
POSYMT	  3682	  4307	  4348#	  6311	  9012
PRADT5	  5568	  5571#	  5588
PRECED	  1657	  1659	  9857#
PROM	  5993	  6134#
PROM.2	  6134	  6136	  6140	  6142	  6145#
PROM.4	  6151#	  6168
PROM.6	  6162	  6167#
PROM.8	  6174#	  6183
PROM.9	  6170	  6185#
PROM.F	  5989#	  5989	  5992#	  5992	  6132#	  6132	  6138	  6149	  6157#	  6157	  6161	  6169
PS	  2661	  2758	  2775	  2781	  6510#	  6517	  7640	  7703	  7734	  7836	  7842	  7847	  8589	  8592
	  8600	  8602	  8825	  8913
PS...C	  6515#	  7836
PS...N	  6512#	  7836
PS...T	  6511#	  7703
PS...V	  6514#	  7836
PS...Z	  6513#	  7836
PS.ADR	  8581#	  8584
PS.BLD	  8584	  8592#
PS.BWR	  8584	  8598#
PS.CHK	  7698	  7734	  7836	  7847	  8604#	  8825	  8913
PS.DDB	  8584#	  8584
PS.INT	  8584#	  8584
PS.LOD	  8584	  8589#
PS.LVL	  8584	  8584#
PS.REG	  7836	  7842	  7847	  8585#	  8600	  8602
PS.RST	  8584	  8584#
PS.TIM	  8584	  8584#
PS.WRT	  8584	  8600#
PSCHK0	  8606	  8614#
PSCHK1	  8615#	  8623
PSCHK3	  8616	  8622#
PT.F1A	  3586#	  3600
PT.F20	  3615	  3628#
PT6.2	  3544#	  3560
PT6.4	  3547	  3551#
PT6.8	  3554	  3557#
PTBCH1	  3450	  3458#
PTBCH2	  3447	  3460#
PTBCH4	  3459	  3461#
PTHLEN	  4807	  4829	  4936#
PTMEM2	  3647#	  3652
PTMEM4	  3648	  3656#
PTMEM5	  3658#	  3671
PTMEM6	  3662	  3668#
PTMEM7	  3667	  3669#
PTYPE	  3890	  3903	  3981	  4018	  4072	  4081#
PUNBM8	  6114	  6129#
PUNDSP	  5985	  6114#
PUNIMG	  6115	  6125#
PUNM93	  6116	  6131#
PUNPAK	  6117	  6126#
PUNSWL	  5985	  6119#
PUT.C1	  3494	  3497	  3509#
PUT.FE	  3496	  3500	  3581#
PUTADR	  3217	  3372	  3376#
PUTBCH	  3173	  3176	  3244	  3441#
PUTBY1	  3681	  3688#	  3708
PUTBY2	  3692#
PUTBY4	  3690	  3709#
PUTBY7	  3718	  3728#
PUTBYT	  2455	  3484#
PUTD62	  3498	  3543#
PUTFOO	   628	  3650	  3676#	  6234	  6289	  6451	  6458
PUTHDR	  3850	  3875	  3886#
PUTMEM	  3493	  3645#
PUTND2	  3566#	  3569
PUTNOD	  3495	  3564#
PUTNYI	  3499	  3502#
PUTP.2	  3510#	  3536
PUTP.4	  3513	  3517#	  3531
PUTP.8	  3524	  3533#
Q	  7710#	  7710	  7711	  7718#	  7718	  7719	  7720#	  7720	  7721	  7734#	  7734	  7836#	  7836	  7847#
	  7847	  7850#	  7850	  7853#	  7853	  7856#	  7856	  7859#	  7859	  7862#	  7862	  7865#	  7865	  7869#
	  7869	  7873#	  7873	  8373#	  8373	  8374#	  8374	  8375#	  8375	  8376#	  8376	  8377#	  8377	  8378#
	  8378	  8379#	  8379	  8380#	  8380	  8825#	  8825	  8913#	  8913	  8953#	  8953	  8954	  8955#	  8955
	  8956	  8957#	  8957	  8958	  8959#	  8959	  8960	  9964#	  9965	 10006#	 10018	 10018#	 10020
QD60BF	  4091	  4094	  4095	  4096#
QESTYP	  4131	  4153	  5161	  5445	  5601#
QPRT0	  4020	  4094#
QPRT1	  4022	  4095#
QQ	  7847#	  7847	  7850#	  7850	  7853#	  7853	  7856#	  7856	  7859#	  7859	  7862#	  7862	  7865#	  7865
	  7869#	  7869	  7873#	  7873	  8367#	  8372	  8373	  8373#	  8374	  8374#	  8375	  8375#	  8376	  8376#
	  8377	  8377#	  8378	  8378#	  8379	  8379#	  8380	  8380#	 10020
QUED60	   947	  4017#
QUEST.	  2335#	  9763
QUEST4	  2366	  2372#
QUEST5	  2340	  2374#
QUOTE	  1946#	  9798
QUOTEB	  1952	  1957#
QUOTEC	  1958	  1969#
QUOTEE	  1962	  1978#
QUOTET	  1953	  1959	  1983#
R	   680	  1871	  3165	  3168	  3191	  3219	  3280	  3287	  3527	  3530	  3571	  3634	  3638	  3755
	  3893	  3906	  3916	  3936	  3961	  3967	  4123	  4261#	  4402	  5124	  6218	  8584	  8632	  8725
	  8913	  9160	  9416	  9475
R.SET	  7697	  7734#	  7734	  7836	  9401
R.SET1	  7734	  7734#
R.SET2	  7734#	  7734
R20AGN	  3969#
R20OK	  3964	  3972#
RADIN0	  5088#	  5091
RADIN2	  5096#	  5102
RADIN9	  5094	  5098	  5103#
RADINP	  5085#
RADTY2	  5520	  5531	  5550#
RADTY3	  5540	  5551#
RADTY5	  5551	  5555#	  5559
RADTY7	  5560#	  5573	  5574	  5578	  5579	  5583	  5584	  5586
RADTYP	  2177	  2215	  2356	  2782	  5115	  5117	  5128	  5164	  5168	  5183	  5191	  5249	  5256	  5389
	  5471	  5500	  5508	  5518#
RCVBUF	  9190	  9192	  9408	  9558#	  9571	  9573
RCVHDR	  3900	  4102	  4103	  4104	  4105	  4108#
RCVPTR	  9188	  9194	  9410	  9557#	  9568
RCVTKR	  9411	  9556#	  9567	  9575
RD2020	  3904	  3952#
RD20ST	  3956#	  3970
RDBN10	  6270#	  6272	  6300
RDBN20	  6284#	  6291
RDBN30	  6283	  6292#
RDBN60	  6278	  6280	  6292	  6363#
RDBN70	  6270	  6275	  6285	  6363	  6367	  6374#	  6396	  6401	  6408
RDBN74	  6374	  6379#
RDBN79	  6378	  6383	  6387#
RDBN80	  6380	  6391#
RDBN85	  6392	  6394#
RDBNER	  6274	  6276	  6277	  6286	  6364	  6368	  6410#
RDCHAR	  4704	  4707	  5027	  5037	  5088	  5101	  6192#	  6198
RDDUMP	   533	  6232#
RDSAVE	  3952	  3969	  4114#
RDSLEN	  3973	  4115#
RDSYM1	  4554#	  4556	  4579	  4586	  4588	  4604
RDSYM2	  4557#	  4625
RDSYM3	  4560#	  4563
RDSYM4	  4565#	  4575
RDSYM5	  4567	  4570	  4577#
RDSYM6	  4581	  4593#
RDSYM7	  4590#	  4592	  4595	  4600
RDSYM8	  4605#	  4611
RDSYM9	  4607#	  4613
RDSYMA	   840	  4550#
RDSYMB	   980	  4452#
RDTDMP	  6255	  6262	  6311#
RDUMP0	  6264	  6427#	  6434
RDUMP1	  6430#	  6438	  6447
RDUMP2	  6432	  6435#
RDUMP5	  6440#	  6453	  6459
RDUMP6	  6443	  6446	  6448#
RDUMP9	  6271	  6304	  6344	  6428	  6436	  6441	  6461#
REGTYP	  5144	  5159#
RELOFF	   870	   873	  4615	  9834#
REMAIN	  1557	  1767	  9820#
RETRY	  4112#
RETYPE	  2115	  2136	  2147	  2150#	  2194
RFETCH	  7836	  7852#
RGFND8	  4288#	  4295
RGFNDN	  4285#	  5363
RGTASC	  5164	  5172#
RGTBYT	  5164	  5168#
RGTEBC	  5164	  5176#
RGTYPX	  5169	  5173	  5178#
RJBLCK	  9614	  9713#
RJRD.5	  9704#
RJRD.9	  9689	  9690#
RJRDW4	  9702#	  9706
RJRDWT	  9688	  9700#
RJREAD	  9615	  9668#
RJUNIT	  9613	  9616	  9678	  9712#
RLMSIZ	  6519#	  7710	  7711	  7711#	  7718	  7719	  7719#	  7720	  7721	  7721#	  7734	  7734#	  7836	  7836#
	  7847	  7847#	  8373	  8373#	  8374	  8374#	  8375	  8375#	  8376	  8376#	  8377	  8377#	  8378	  8378#
	  8379	  8379#	  8380	  8380#	  8825	  8825#	  8913	  8913#	  8953	  8954	  8954#	  8955	  8956	  8956#
	  8957	  8958	  8958#	  8959	  8960	  8960#	  8963	  8966
RLMTAB	  7710	  7718	  7720	  7734	  7836	  7847	  8373	  8374	  8375	  8376	  8377	  8378	  8379	  8380
	  8825	  8913	  8953	  8955	  8957	  8959	  8963#	  8966
RPAS	   295#
RPBA	   290#	  9683
RPCC	   303#
RPCS1	   288#	  9681	  9687	  9704
RPCS2	   292#	  9677	  9679
RPDA	   291#
RPDB	   297#
RPDC	   302#
RPDS	   293#
RPDT	   299#
RPEC1	   306#
RPEC2	   307#
RPER1	   294#
RPER2	   304#
RPER3	   305#
RPLA	   296#
RPMR	   298#
RPOF	   301#
RPSN	   300#
RPWC	   289#	  9685
RSCAN	  1732	  1844	  1867#	  1877	  1918	  1921	  2387
RSCAN2	  1870#	  1875
RSKP	   596	   611	   617	   645	   652	   659	   694	   716	   781	   788	   793	   823	   828	   833
	   843	   848	   871	   908	   924	   956	   959	   976	   988	   997	  1020	  1032	  1036	  1040
	  1294	  1537	  1635	  1777	  1820	  1830	  1838	  2311	  2925	  2967	  3293	  3359	  3373	  3418
	  3856	  3917	  3939	  3975	  4011	  4039	  4045	  4260#	  4296	  4843	  4994	  5062	  5079	  5211
	  5913	  5934	  6226	  6389	  6474	  9271	  9380	  9396	  9427	  9470	  9505	  9517	  9594	  9624
	  9656
RSTACK	  7734	  7836	  7847	  7847#	  8825	  8913
RSTART	  1044#	  6469
S..END	  2331	  3057	  3085	  5838	  5881	  5904	  6018	  6063	  6172	  6462	  9844#
S.MASK	  2204	  2476	  2712	  3051	  3065	  9846#
S.WORD	  3052	  3067	  3071	  9845#
SAVCHR	  9565#	  9565	  9586#	  9586
SAVE13	  3780#	  5747
SAVE2	  3795#	  5085
SAVE24	  2974	  3802#	  4285	  4366	  5518	  5529	  5537	  5546	  5566	  9152
SAVE34	  3813#	  5002
SAVE35	  3103	  3484	  3814#
SAVE4	  3676	  3781#	  9266
SBEGIN	  2329	  3053	  5796	  5999	  6147	  9843#
SBFTCH	  7836	  7855#
SCNTYP	  9464	  9476	  9512	  9518	  9521#	  9541	  9592
SELDTE	  3983	  4035#
SEMICL	  2140#	  9801
SET.FE	   663#	  9939
SETBIN	   593#	  9935
SETCOR	   600#	  9936
SETCPU	  4072#	  4077	  4079
SETD62	   706#	   949
SETDMP	   649#	  9938	  9945
SETFES	   837#	  9940
SETFET	   708#
SETFOO	   656#	  5920	  9937
SETGO	   776#	  9941
SETIHD	  6267	  6348#
SETLA3	   847#	  9942
SETLIN	   797#	  9943
SETLOK	   912#	  9944
SETMRG	   785#	  9946
SETMSK	  2421	  2467#
SETNOD	   878#	  9947
SETP11	   827#	  9933	  9949
SETPC2	  7683	  7685	  7688#
SETPD8	   832#	  9934	  9950
SETPRT	   928#	  9951
SETREL	   852#	  9953
SETRST	  1036#	  9952
SETSYM	   980#	  9954
SETUBA	  1001#	  9955
SETUPC	  2634	  2745	  7681#
SETUPN	  2625	  3213	  3364#	  3564
SETVTX	  1030#	  9956
SETWEN	   792#	  9948
SETWST	  1040#	  9957
SFETCH	  7836	  7847#
SIM.U1	  7700#
SIM11	  7703#	  7794	  7802	  7836	  7847	  8373	  8374	  8375	  8376	  8377	  8378	  8379	  8380
SIM11A	  7705#	  7734	  7836
SIMCY1	  7714	  7722#
SIMCYC	  7648	  7709#	  7734
SIMOP1	  7693#
SIMOPN	  7644	  7692#
SIMPTR	  7836	  8373	  8374	  8375	  8376	  8377	  8378	  8379	  8380	  8953#
SIMREG	  2450	  2641	  2656	  2746	  2755	  2765	  2787	  2830	  5162	  6303	  7651	  7652	  7653	  7654
	  7655	  7656	  7657	  7658	  7663#	  7682	  7688	  8825
SIMREL	  3746	  3761	  7692	  8966#
SIMRL2	  8970#	  8974
SIMRL4	  8986#	  8991
SIMRL5	  8993#
SIMSAC	  7645	  7651#	  7734	  8825
SIMXCT	  2648	  2760	  7639#
SIXIN	   805	   852	   886	   928	  1256	  1278	  1301	  1311	  1323	  1365	  1376	  4651	  4659	  4665
	  4672	  4681	  4692	  4712	  5026#
SIXIN0	  5027#	  5030
SIXIN2	  5037#	  5059
SIXIN3	  5036	  5038#
SIXIN7	  5035	  5050	  5054#
SIXIN9	  5047	  5053	  5060#
SIXOC1	  5068#	  5077
SIXOC9	  5069	  5078#
SIXOCT	   812	   860	   893	   935	  4676	  4683	  5065#
SIXTYP	  1268	  2349	  2371	  4739	  4751	  4861	  4864	  4867	  4883	  5120	  5227	  5369	  5382	  5438
	  5590#	  5707	  5829	  5958	  5968
SMF.11	  4229#	  7734	  7762	  7789	  7836	 10018
SMF.BR	  1143	  4221#	  5296	  7734	  7762	  7789	  7836	 10018
SMF.BY	  2849	  2856	  2895	  4230#	  7734	  7762	  7789	  7836	 10018
SMF.DD	  1140	  2308	  2823	  4219#	  5291	  7734	  7762	  7789	  7836	 10018
SMF.EI	  1100	  1109	  1123	  4218#	  5230	  7734	  7762	  7789	  7836	 10018
SMF.EM	  1169	  4225#	  5252	  7734	  7762	  7789	  7836	 10018
SMF.IN	  1091	  1631	  2363	  4217#	  4249	  4271	  4387	  5430	  7734	  7762	  7789	  7836	 10018
SMF.JS	  1109	  4224#	  5265	  7734	  7762	  7789	  7836	 10018
SMF.MK	  1159	  4226#	  5246	  7734	  7762	  7789	  7836	 10018
SMF.P8	  2403	  2404	  4228#	  4251	  4302	  5429	  7734	  7762	  7789	  7836	 10018
SMF.PL	  1184	  4227#	  5240	  7734	  7762	  7789	  7836	 10018
SMF.RG	  1221	  1791	  1825	  1836	  2166	  2223	  2353	  4216#	  4294	  4387	  4493	  4598	  7734	  7762
	  7789	  7836	 10018
SMF.RT	  1176	  4223#	  5259	  7734	  7762	  7789	  7836	 10018
SMF.SB	  1109	  1194	  4222#	  5272	  7734	  7762	  7789	  7836	 10018
SMF.SS	  1131	  1140	  2304	  2308	  2814	  2823	  4220#	  5285	  5291	  7734	  7762	  7789	  7836	 10018
SMF.SU	  1287	  1798	  2359	  2557	  4215#	  4270	  4293	  4387	  4489	  4494	  4594	  4599
SMICL5	  2141	  2143#
SP	  6499#	  7734	  7836	  7847	  8825	  8913
STACKV	  7847#	  7847	  8379
STATE0	  1070	  1979	  2515	  2532	  2598	  2612	  9755#
STATEB	  1235	  1236	  9793#
STATSC	  2485	  2523	  9774#
STB...	  9000#	  9083	  9093
STCER3	  3426#	  3433
STCERR	  3221	  3420#	  3573
STCIMS	  3405	  3412	  3424	  3827#
STCKVP	  7734	  7836	  7847	  7847#	  8379	  8825	  8913
STCMSG	  3365	  3392	  3398	  3826#
STCOR1	   615#	  1050
STCOR2	   624	   627#
STCOR3	   626	   629#
STCOR9	   632	   644#
STEFIN	  2000	  2008	  2030	  2087	  2231	  2414#
STEFN3	  2440#	  2452
STEFN5	  2436	  2455#
STFNXM	  7842#	  8465
STMSK1	  2468#	  2478
STONX3	  8449	  8453	  8462#
STONXM	  8448	  8452#	  8470	  8471	  8938	  8940	  8944	  8946
STUFF	  7836	  7868#
SUPLIM	  2328#	  9801
SW.ADR	  8629#	  8632
SW.BLD	  8632	  8639#
SW.BWR	  8632	  8647#
SW.DDB	  8632#	  8632
SW.DSP	   531	  9933#
SW.INT	  8632#	  8632
SW.LOD	  8632	  8636#
SW.LST	   531	  9906#
SW.LVL	  8632	  8632#
SW.REG	  8633#	  8636	  8639	  8650	  8653
SW.RST	  8632	  8632#
SW.TIM	  8632	  8632#
SW.WRT	  8632	  8645#
SXTYP1	  5591#	  5595
SYMBEG	   634	   635	   637	   960	   963	   964	  2396	  3012	  3683	  3743	  3758	  4238	  4267	  4290
	  4353	  4356	  4357	  4370	  4371	  4384	  4396	  5426	  6312	  9014	 10007#
SYMBLK	  4539#
SYMBOL	  1240	  1246	  1258	  1291	  1561	  1562	  1608	  1621	  1679	  1704	  1773	  1774	  1780	  1792
	  1801	  1812	  1816	  2335	  2393	  2394	  2399	  2603	  4461	  4462	  4476	  4482	  4513	  4557
	  4558	  4572	  4578	  4587	  4616	  9841#
SYMDEV	  4454	  4456	  4538#	  4550	  4552	  5708	  5713
SYMDIR	  4540#
SYMEND	   638	   640	   961	   967	   969	  2409	  3013	  4240	  4277	  4313	  4326	  4339	  4344	  4348
	  4352	  4360	  4373	  4397	  4517	  4520	  4620	  4623	  5441	  9021	 10008#
SYMERR	  1834	  1840#
SYMEXT	  4542#
SYMFN1	  4240#	  4245
SYMFN7	  4243	  4248#	  4275
SYMFN8	  4252	  4256#
SYMFN9	  4250	  4255	  4258#
SYMFND	   862	  1259	  1313	  1325	  1833	  2991	  4238#	  4335
SYMNAM	  4516	  4541#	  4619
SYMPPN	  4545#
SYMPTH	  4544#
SYMPTR	  1564	  1607	  1620	  1623	  1776	  2602	  2609	  2611	  9840#
SYMSFD	  4546#
SYMTIM	  4543#
SYMZZZ	 10008	 10018#
T.EXEC	   115#	   583
T.ITS	   112#	   568
T.OTHE	   109#	   566	   571	   572	   573	   574	   575	   576	   577	   578	   579	   580	   581
T.TENE	   113#	   569
T.TOP1	   111#	   567	   664	   679	   798	   879	   913	  3614
T.TOP2	   114#	   570	   664	   945
TABDNE	  2629#	  2633
TABTYP	  1805	  2217	  2347	  2629	  4154	  5605#	  5802	  5807	  5831	  5844	  5849	  5871
TB.INT	  7704	  7733#
TEMP%%	   550	  1059	  1556	  2608	  2754
TF.RUB	    44#	  1030	  1684	  1885	  9967
TIMCHK	  7734	  7734#	  7836
TIMCK2	  7734#	  7734
TIMCK3	  7734	  7734#
TIMCK4	  7734	  7734#
TIMTY1	  2688	  5749#
TIMTY3	  4891	  5753	  5769#
TIMTYP	  5747#	  5944
TPOPJ	  1674	  2517	  3264	  3268	  3270	  3384	  3386#	  3476	  5608
TPOPJ1	   874	  2972	  4259#	  4536
TTCDSP	  9444	  9445	  9447#
TTCL10	  9451	  9493#
TTCL11	  9451	  9496#
TTCL12	  9452	  9499#
TTCL13	  9452	  9502#	  9508
TTCL14	  9453	  9508#
TTCL15	  9453	  9511#
TTCL31	  9474#	  9477
TTCLL0	  9447	  9457#	  9458	  9480
TTCLL1	  9447	  9463#
TTCLL2	  9448	  9467#	  9483
TTCLL3	  9448	  9473#
TTCLL4	  9449	  9480#
TTCLL5	  9449	  9483#
TTCLL6	  9450	  9486#
TTCLL7	  9450	  9490#
TTYBIT	   847	  1031	  1683	  1884	  9967#
TTYDDB	  9623	  9627#	  9650
TYP8IN	  5223	  5371#
TYPCH3	  5662	  5666#	  5671
TYPCH4	  5667	  5670#
TYPCHR	  1713	  1717	  1858	  1900	  1904	  2091	  2105	  2723	  2971	  3428	  3432	  4433	  4871	  4886
	  5321	  5344	  5352	  5415	  5466	  5469	  5473	  5564	  5594	  5607	  5612	  5655	  5661#	  5684
	  5686	  5690	  5780	  5861	  6146	  6160	  6166	  6181	  6187	  8804
TYPEIT	  5599	  5603	  5607#	  5614	  5621	  5625	  5629	  5633	  5637	  5641	  5645
TYPST3	  5653#	  5656
TYPST5	  5654	  5657#
TYPSTR	   522	   527	   668	   675	   701	   724	   738	   764	   802	   809	   816	   856	   866	   883
	   890	   897	   917	   932	   939	   993	  1005	  1013	  1025	  1685	  1896	  1914	  2021	  2346
	  2352	  2360	  2364	  2369	  2377	  2463	  2640	  2655	  2660	  2666	  2674	  2733	  2780	  2913
	  3032	  3078	  3095	  3149	  3313	  3422	  3506	  3604	  4135	  4139	  4152	  4442	  4448	  4528
	  4535	  4650	  4698	  4737	  4743	  4749	  4848	  4911	  4920	  4975	  4980	  5041	  5396	  5649#
	  5676	  5705	  5712	  5729	  5895	  5940	  5943	  5949	  5973	  6296	  6412	  6465	  8788	  8789
	  8825	  9419
UARROW	  2231#	  9795	  9805
UB.16B	   259#	  9098
UB.FST	   260#	  9674
UB.RPW	   258#	  9098
UB.VLD	   261#	  9098	  9106	  9674
UBA.B5	   274#	  8422	  8459	  8611
UBA.B7	   273#	  8420	  8422	  8457	  8459	  8609	  8611
UBA.IR	   276#
UBA.MR	   277#
UBA.SR	   263#	  1018	  7734	  8424	  8461	  8613	  9242	  9251
UBACTL	  1019	  7734	  8409	  8423	  8441	  8448	  8460	  8470	  8487	  8490	  8493	  8503	  8506	  8509
	  8612	  8926	  8932	  8938	  8944	  9099	  9241	  9250	  9668	  9987#
UBALVL	   275#
UBAMAP	   257#	  9100	  9669	  9675	  9697
UBXADR	  8913#	  8913
UBXBLD	  8913	  8931#
UBXBWR	  8913	  8943#
UBXDDB	  8913#	  8913	  8987
UBXINT	  8913#	  8913
UBXLOD	  8913	  8925#
UBXLVL	  8913	  8913#
UBXRST	  8913	  8913#
UBXTIM	  8913	  8913#
UBXWRT	  8913	  8937#
UCALLI	  9315	  9346#
UCLOSE	  9324	  9642#
UCORE	  9360	  9423#
UFNDD0	  9651#	  9658
UFNDD7	  9652	  9657#
UFNDDB	  9636	  9645	  9650#
UGTTAB	  9372	  9438#
UPT...	  8999#
UPTIME	   556	  9164	  9201#	  9430	  9700	  9702
UPTPFL	   238#
UPTPFN	   240#	  9050
UPTPFO	   239#	  9263	  9276
UPTPFW	   235#	  9268	  9281
URLEAS	  9324	  9645#
URUNTM	  9367	  9430#
USETIT	   986	   996	  4452	  9839#
USLEEP	  9368	  9435#
USTSTS	  9320	  9636#
UTTCAL	  9316	  9440#
UUINIT	  9312	  9596#
UUO0	  9044	  9286#
UUOACS	  9286	  9287	  9288	  9306	  9310#	  9346	  9426	  9431	  9441	  9603
UUODSP	  9301	  9302	  9312#
UUOPEN	  9316	  9602#
UUORET	  9304#	  9344
VALFND	  4381#	  5114	  5823
VDDT11	    22#	    26
VECTAB	  9002#	  9028	  9057	  9059	  9061	  9071	  9078
VECX7	  9236	  9248#
VECXX	  9075	  9232#
VEDIT	    24#	    26
VLFND0	  4286	  4311	  4381	  4396#
VLFND2	  4398#	  4407
VLFND3	  4383#	  4389
VLFND4	  4382	  4386#
VLFND7	  4385	  4393#
VMINOR	    23#	    26
VWHO	    21#	    26
WAIT0	  7836#	  7836
WAIT1	  7836	  7836#
WAITIM	   587	  2645	  2668	  7734#	  7836
WIDTH	  9536	  9561#
WR2020	  3891	  3929#
WRTBN4	  6084	  6090#
WRTBN9	  6086	  6091	  6099	  6102#
WRTLCK	  2425	  2459#	  2623
WRTWRD	  6026	  6029	  6031	  6047	  6051	  6056	  6059	  6060	  6061	  6067	  6069	  6072	  6075	  6079#
XMSG	  4111#
XMTHDR	  3887	  4098	  4099	  4100	  4109#
Z	  7734#	  7734	  7760#	  7762	  7762#	  7787#	  7789	  7789#	  7836#	  7836	  7847#	  7847	  8373#	  8373
	  8374#	  8374	  8375#	  8375	  8376#	  8376	  8377#	  8377	  8378#	  8378	  8379#	  8379	  8380#	  8380
	  8825#	  8825	  8913#	  8913	  9871	 10018#	 10018	 10020
ZZ	  7734#	  7734	  7736	  7762#	  7762	  7789#	  7789	 10020
ZZRET	  7836#	  7836	 10020
$FBLEN	  4456	  4552	  4642	  4839	  4859	  4938#	  4942	  4946	  6244	  6423
%%DDT1	    26#	    29
%GOTO	  1249	  1256#
%GOTO3	  1258#	  1373
%GOTO5	  1265	  1270#
%IF	  1252	  1301#
%IF..3	  1304#	  1307
%IF.EQ	  1329#	  1414	  1415
%IF.GE	  1339#	  1418
%IF.GT	  1334#	  1417	  1419
%IF.LE	  1354#	  1424
%IF.LT	  1349#	  1423	  1425
%IF.NE	  1344#	  1420	  1422
%IFDEF	  1311#	  1412	  1413
%IFDSP	  1308	  1412#
%IFERR	  1318#	  1416
%IFEXP	  1331	  1336	  1341	  1346	  1351	  1356	  1357#
%IFLST	  1304	  1306	  1396#
%IFNDF	  1323#	  1421
%IFNOT	  1314	  1319	  1327	  1364	  1376#
%IFTRU	  1315	  1320	  1326	  1365#
.ADC	  7734	  7836#
.ADCB	  7734	  7836#
.ADD	  7734	  7836#
.ASH	  7734	  7836#
.ASHC	  7734	  7836#
.ASL	  7734	  7836#
.ASLB	  7734	  7836#
.ASR	  7734	  7836#
.ASRB	  7734	  7836#
.BCC	  7734	  7836#
.BCS	  7734	  7836#
.BEQ	  7734	  7836#
.BGE	  7734	  7836#
.BGT	  7734	  7836#
.BHI	  7734	  7836#
.BHIS	  7836#
.BIC	  7734	  7836#
.BICB	  7734	  7836#
.BIS	  7734	  7836#
.BISB	  7734	  7836#
.BIT	  7734	  7836#
.BITB	  7734	  7836#
.BLE	  7734	  7836#
.BLO	  7836#
.BLOS	  7734	  7836#
.BLT	  7734	  7836#
.BMI	  7734	  7836#
.BNE	  7734	  7836#
.BPL	  7734	  7836#
.BPT	  7762	  7836#
.BR	  7734	  7836#
.BTCMP	  3965
.BTDTE	  3932	  3954
.BTLEN	  3929	  3956	  3962
.BTMSG	  3930	  3937	  3957	  3974
.BTRDD	  3959
.BTSDD	  3934
.BVC	  7734	  7836#
.BVS	  7734	  7836#
.CCCLR	  7799	  7801	  7847#
.CCSET	  7807	  7809	  7847#
.CLR	  7734	  7836#
.CLRB	  7734	  7836#
.CMP	  7734	  7836#
.CMPB	  7734	  7836#
.COM	  7734	  7836#
.COMB	  7734	  7836#
.DEC	  7734	  7836#
.DECB	  7734	  7836#
.DEQDR	  4008
.DIV	  7734	  7836#
.DTEGF	   757
.DTEIF	  3319	  3347
.DTEOF	  3301	  3616
.EMT	  7734	  7836#
.ENQBL	  3991
.FADD	  7836#
.FDIV	  7836#
.FHSLF	   748	  4048
.FMUL	  7836#
.FSUB	  7836#
.HALT	  7762	  7836#
.INC	  7734	  7836#
.INCB	  7734	  7836#
.IODMP	  6335
.IOT	  7762	  7836#
.JBFF	   642	   966	   970	  1948	  1951	  4342	  4343	  4349	  4351	  4358	  4372	  4412	  4422	  4777
	  4785	  4788
.JBREL	  4416	  4434	  9424
.JBREN	  6470
.JBSA	   643	   971	  4414
.JBVER	    28	  5677	  5680	  5687	  5691
.JMP	  7734	  7836#
.JSR	  7734	  7836#
.MARK	  7734	  7836#
.MODTE	   741	  4036
.MOEOF	  3265	  3635	  3913
.MOV	  7734	  7836#
.MOVB	  7734	  7836#
.MUL	  7734	  7836#
.NEG	  7734	  7836#
.NEGB	  7734	  7836#
.PRIOU	   747
.RESET	  7762	  7836#
.ROL	  7734	  7836#
.ROLB	  7734	  7836#
.ROR	  7734	  7836#
.RORB	  7734	  7836#
.RTI	  7762	  7836#
.RTS	  7789	  7836#
.RTT	  7762	  7836#
.SBC	  7734	  7836#
.SBCB	  7734	  7836#
.SOB	  7734	  7836#
.SPL	  7789	  7836#
.SUB	  7734	  7836#
.SWAB	  7734	  7836#
.SXT	  7734	  7836#
.TRAP	  7734	  7836#
.TST	  7734	  7836#
.TSTB	  7734	  7836#
.UPMUO	   222#	  9291	  9292	  9294	  9333	  9334
.UPMUP	   223#	  9290	  9332
.WAIT	  7762	  7836#
.XOR	  7734	  7836#

ADC.	  6694#	  7836
ADCB.	  6713#	  7836
ADD.	  6732#	  7836
APRID	   139#
ASH.	  6751#	  7836
ASHC.	  6787#	  7836
ASL.	  6834#	  7836
ASLB.	  6850#	  7836
ASR.	  6866#	  7836
ASRB.	  6883#	  7836
BCC.	  6900#	  7836
BCIO	   175#	  8487
BCIOB	   176#	  8503
BCS.	  6904#	  7836
BEQ.	  6908#	  7836
BGE.	  6912#	  7836
BGT.	  6920#	  7836
BHI.	  6930#	  7836
BHIS.	  6934#	  7836
BIC.	  6938#	  7836
BICB.	  6949#	  7836
BIS.	  6960#	  7836
BISB.	  6971#	  7836
BIT.	  6982#	  7836
BITB.	  6992#	  7836
BLE.	  7002#	  7836
BLO.	  7012#	  7836
BLOAD	  6567#	  8373	  8374	  8375	  8376	  8377	  8378	  8379	  8380
BLOS.	  7016#	  7836
BLT.	  7020#	  7836
BMI.	  7028#	  7836
BNE.	  7032#	  7836
BOOT	  3935	  3960
BPL.	  7036#	  7836
BPT.	  7040#	  7836
BR.	  7043#	  7836
BSIO	   173#	  8490
BSIOB	   174#	  8506
BSTORE	  6655#	  8373	  8374	  8375	  8376	  8377	  8378	  8379	  8380
BVC.	  7045#	  7836
BVS.	  7049#	  7836
CAL11.	  3163	  3525
CAL78.	  3159	  3521
CALL	   118#	   508	   509	   522	   527	   535	   555	   600	   628	   668	   671	   675	   701	   724
	   738	   764	   802	   805	   809	   812	   816	   852	   856	   860	   862	   866	   883	   886
	   890	   893	   897	   902	   917	   928	   932	   935	   939	   946	   947	   989	   993	  1005
	  1009	  1013	  1025	  1050	  1051	  1054	  1083	  1098	  1102	  1110	  1132	  1141	  1144	  1160
	  1170	  1177	  1185	  1195	  1227	  1256	  1259	  1260	  1266	  1268	  1269	  1272	  1278	  1289
	  1301	  1311	  1313	  1323	  1325	  1358	  1365	  1376	  1428	  1465	  1484	  1519	  1525	  1540
	  1565	  1570	  1629	  1673	  1685	  1690	  1713	  1717	  1732	  1744	  1804	  1805	  1833	  1844
	  1846	  1850	  1858	  1877	  1891	  1896	  1900	  1904	  1914	  1918	  1921	  1941	  1950	  1953
	  1959	  2000	  2003	  2004	  2008	  2009	  2013	  2021	  2030	  2031	  2032	  2034	  2044	  2050
	  2056	  2082	  2087	  2089	  2091	  2094	  2096	  2101	  2105	  2109	  2125	  2127	  2130	  2136
	  2147	  2157	  2168	  2177	  2179	  2182	  2194	  2203	  2210	  2215	  2217	  2220	  2228	  2231
	  2233	  2234	  2260	  2273	  2279	  2286	  2297	  2299	  2305	  2309	  2339	  2341	  2346	  2347
	  2349	  2352	  2354	  2356	  2360	  2364	  2369	  2371	  2377	  2379	  2387	  2407	  2440	  2455
	  2463	  2483	  2516	  2556	  2561	  2596	  2625	  2627	  2629	  2634	  2640	  2642	  2643	  2648
	  2655	  2657	  2660	  2662	  2666	  2671	  2674	  2682	  2683	  2685	  2686	  2688	  2689	  2706
	  2707	  2717	  2719	  2723	  2724	  2733	  2745	  2748	  2754	  2760	  2780	  2782	  2783	  2789
	  2804	  2809	  2815	  2824	  2826	  2829	  2836	  2866	  2879	  2903	  2913	  2914	  2916	  2928
	  2931	  2949	  2971	  2974	  2978	  2991	  3019	  3025	  3032	  3062	  3073	  3075	  3078	  3079
	  3083	  3095	  3103	  3149	  3173	  3176	  3181	  3190	  3213	  3217	  3218	  3244	  3269	  3313
	  3372	  3422	  3426	  3428	  3430	  3432	  3484	  3506	  3552	  3564	  3570	  3604	  3639	  3650
	  3666	  3668	  3676	  3682	  3697	  3706	  3707	  3738	  3745	  3752	  3760	  3785	  3796	  3805
	  3817	  3844	  3850	  3852	  3869	  3875	  3983	  3995	  3998	  4131	  4134	  4139	  4141	  4142
	  4152	  4153	  4154	  4160	  4243	  4275	  4285	  4286	  4306	  4307	  4309	  4311	  4335	  4354
	  4366	  4368	  4381	  4433	  4437	  4442	  4448	  4458	  4464	  4470	  4485	  4502	  4518	  4523
	  4528	  4530	  4535	  4554	  4560	  4565	  4590	  4607	  4621	  4650	  4651	  4659	  4665	  4672
	  4676	  4681	  4683	  4692	  4698	  4704	  4707	  4712	  4737	  4739	  4743	  4749	  4751	  4761
	  4848	  4852	  4853	  4861	  4862	  4864	  4865	  4867	  4871	  4873	  4874	  4877	  4882	  4883
	  4886	  4887	  4891	  4892	  4899	  4911	  4913	  4920	  4951	  4975	  4977	  4980	  4982	  4995
	  5002	  5004	  5015	  5027	  5037	  5041	  5085	  5088	  5101	  5114	  5120	  5126	  5147	  5148
	  5164	  5181	  5184	  5191	  5193	  5194	  5197	  5203	  5208	  5213	  5215	  5216	  5224	  5227
	  5229	  5233	  5234	  5237	  5243	  5249	  5256	  5262	  5268	  5269	  5275	  5276	  5282	  5289
	  5290	  5295	  5306	  5309	  5310	  5315	  5320	  5325	  5335	  5337	  5339	  5343	  5348	  5352
	  5357	  5363	  5364	  5365	  5382	  5383	  5389	  5396	  5404	  5415	  5418	  5419	  5422	  5436
	  5438	  5445	  5451	  5455	  5457	  5469	  5471	  5478	  5482	  5484	  5500	  5502	  5508	  5510
	  5511	  5518	  5520	  5522	  5529	  5537	  5546	  5553	  5559	  5566	  5570	  5594	  5607	  5612
	  5616	  5617	  5655	  5676	  5679	  5684	  5686	  5688	  5690	  5695	  5705	  5707	  5712	  5714
	  5715	  5726	  5727	  5729	  5730	  5732	  5747	  5753	  5754	  5756	  5760	  5771	  5772	  5780
	  5787	  5790	  5793	  5801	  5802	  5803	  5806	  5807	  5810	  5817	  5819	  5821	  5823	  5829
	  5830	  5831	  5832	  5835	  5846	  5848	  5854	  5855	  5857	  5859	  5861	  5862	  5864	  5865
	  5871	  5873	  5875	  5878	  5884	  5885	  5887	  5888	  5889	  5895	  5896	  5910	  5940	  5943
	  5944	  5945	  5946	  5949	  5958	  5961	  5969	  5973	  5974	  5975	  5976	  5990	  6015	  6026
	  6029	  6031	  6035	  6042	  6047	  6051	  6056	  6059	  6060	  6061	  6067	  6069	  6072	  6075
	  6076	  6086	  6091	  6099	  6134	  6136	  6140	  6142	  6146	  6153	  6160	  6166	  6176	  6181
	  6187	  6193	  6197	  6205	  6207	  6222	  6234	  6267	  6270	  6275	  6278	  6280	  6285	  6289
	  6292	  6296	  6311	  6314	  6363	  6367	  6412	  6427	  6435	  6440	  6451	  6458	  6465	  6467
	  6468	  7644	  7692	  7697	  7698	  7712	  7734	  7836	  7847	  8373	  8374	  8375	  8376	  8377
	  8378	  8379	  8380	  8601	  8618	  8721	  8788	  8789	  8804	  8825	  8872	  8913	  9012	  9023
	  9152	  9158	  9266	  9277	  9282	  9329	  9335	  9336	  9341	  9401	  9419	  9457	  9467	  9476
	  9502	  9538	  9592	  9615	  9636	  9645	  9688
CAXE	  3965
CLOSE	  4906
CLR.	  7056#	  7836
CLRB.	  7064#	  7836
CLRBFI	   523
CLRPT	   161#
CMP.	  7074#	  7836
CMPB.	  7092#	  7836
COM.	  7110#	  7836
COMB.	  7121#	  7836
CORE	   972	  4423	  4430
DATE	  5718
DDBGEN	  8521#	  8583	  8631	  8663	  8825	  8913
DEC.	  7132#	  7836
DECB.	  7144#	  7836
DEQ	  4009
DISMS	  3842	  3867
DIV.	  7156#	  7836
DTE.	   759	  3303	  3321	  3349	  3618
EMT.	  7185#	  7836
ENQ	  3992
ENTER	  4814
ERJMP	   721	   735	  3264	  3268	  3280	  3287	  3634	  3638	  3893	  3906	  3916	  3936	  3961	  4043
ERSTR	   750
EXIT	  4161	  4449	  5427	  6036	  6043	  6196	  6297	  6413	  7696
FADD.	  7188#	  7836
FDIV.	  7192#	  7836
FMUL.	  7196#	  7836
FSUB.	  7200#	  7836
GETER	  4049
GETPPN	   588
GETSTS	  4966	  4981
GETTAB	  5697	  5928
GTJFN	   720
HALT	  3108	  5672	  7734	  8518	  8724	  8726	  8728	  8730	  8969	  9102	  9128	  9130	  9132	  9134
	  9136	  9138	  9140	  9143	  9160	  9208	  9216	  9220	  9224	  9228	  9238	  9258	  9283	  9342
	  9420
HALT.	  7204#	  7836
HIBER	  3167	  3529
IN	  4964	  4991	  6337	  6391
INBUF	  4779
INC.	  7209#	  7836
INCB.	  7221#	  7836
INCHRS	  8774	  8778
INCHRW	  6206
INCHWL	  6194
INIT	  7693
INSTRU	   362#	  7734	  7761	  7788	  7835	 10017
INTSAV	  6674#	  7733	  7734	  7836	  7846	  7847	  8824	  8825	  8912
IOT.	  7233#	  7836
JEN	  9144	  9199	  9209	  9217	  9221	  9225	  9229	  9246	  9255
JMP.	  7236#	  7836
JOV	  7836
JSR.	  7242#	  7836
LOAD	  6532#	  7734	  7836	  7847	  8373	  8374	  8375	  8376	  8377	  8378	  8379	  8380	  8825	  8913
LOCK	   921	  4426
LOOKUP	  4791
MARK.	  7256#	  7836
MEMREL	  6520#	  7710	  7718	  7720	  7734	  7836	  7847	  8373	  8374	  8375	  8376	  8377	  8378	  8379
	  8380	  8825	  8913	  8953	  8955	  8957	  8959
MFPS.	  7268#
MONRT.	  2323
MOV.	  7279#	  7836
MOVB.	  7289#	  7836
MOVX	   706	   718	  1030	  3913	  3914	  3934	  3959	  3991	  4008	  4036	  4048	  4071	  4076	  4078
MSTIME	  5748
MTOPR	   743	  3267	  3637	  3915	  4042
MTPS.	  7302#
MUL.	  7308#	  7836
NAMES	  1379#	  1396	  1412	  5916#	  5920	  5923	  6107#	  6114	  6119	  9878#	  9906	  9933
NEG.	  7334#	  7836
NEGB.	  7348#	  7836
NODE.	  3410
NOP	   119#	   506	  1044	  2456	  2917	  3999	  4762	  4787	  6135	  7734	  8779	  9033
OP%%CA	  3965
OPEN	  4771	  4773
OPENF	   734
OUT	  4905	  5670	  6104
OUTBUF	  4782
OUTCHR	  5663
PATH.	  4809	  4831
PIOFF	   157#
PION	   158#
PJRST	  2112	  2115	  5321	  5344	  5473	  5494	  5513	  5564	  5599	  5603	  5614	  5621	  5625	  5629
	  5633	  5637	  5641	  5645
POINTR	  4804	  4826
POS	  4804	  4826
RDAPR	   155#	  9150
RDCSB	   180#
RDCSTM	   184#
RDEBR	   164#
RDINT	   188#
RDIO	   169#	  1018	  7734	  8411	  8926	  9669	  9704
RDIOB	   170#	  8443	  8932
RDPI	   159#	  9234
RDPUR	   182#
RDSPB	   178#
RDTIME	   186#
RDUBR	   162#
RELEAS	  4907	  4969	  6340
RESET	   585
RESET.	  7363#	  7836
RET	   120#	   591	   601	   669	   676	   684	   702	   803	   810	   817	   857	   867	   884	   891
	   898	   918	   933	   940	   994	  1006	  1014	  1026	  1299	  1458	  1466	  1547	  1630	  1702
	  1745	  1815	  1861	  1998	  2040	  2046	  2052	  2058	  2066	  2070	  2075	  2079	  2083	  2161
	  2298	  2300	  2321	  2372	  2419	  2423	  2453	  2457	  2479	  2484	  2541	  2819	  2841	  2880
	  2908	  3010	  3033	  3133	  3184	  3294	  3305	  3387	  3411	  3435	  3555	  3605	  3621	  3640
	  3725	  3733	  3741	  3779	  3793	  3800	  3811	  3823	  3851	  3853	  3876	  3984	  3993	  4001
	  4010	  4024	  4051	  4073	  4156	  4239	  4241	  4254	  4257	  4261	  4268	  4279	  4291	  4329
	  4336	  4345	  4350	  4361	  4394	  4443	  4525	  4699	  4856	  4900	  4904	  4921	  4952	  4955
	  4962	  4970	  4993	  4996	  5021	  5043	  5072	  5104	  5149	  5200	  5209	  5311	  5316	  5326
	  5338	  5350	  5358	  5366	  5523	  5596	  5658	  5664	  5669	  5716	  5733	  5759	  5911	  5935
	  5977	  6089	  6101	  6105	  6127	  6133	  6190	  6199	  6209	  6361	  6371	  6393	  7660	  7689
	  7699	  7734	  8427	  8433	  8487	  8490	  8495	  8503	  8506	  8511	  8576	  8590	  8596	  8599
	  8620	  8624	  8637	  8643	  8648	  8655	  8697	  8702	  8713	  8717	  8743	  8746	  8767	  8815
	  8825	  8856	  8859	  8865	  8869	  8902	  8906	  8910	  8913	  8927	  8933	  8939	  8945	  8983
	  8993	  9007	  9124	  9284	  9308	  9432	  9435	  9438	  9460	  9468	  9487	  9490	  9493	  9496
	  9499	  9503	  9522	  9554	  9569	  9619	  9621	  9637	  9639	  9642	  9646	  9648	  9659	  9698
	  9703	  9709
RETSKP	   596	   611	   617	   645	   652	   659	   694	   716	   781	   788	   793	   823	   828	   833
	   843	   848	   871	   908	   924	   956	   959	   976	   988	   997	  1020	  1032	  1036	  1040
	  1294	  1537	  1635	  1777	  1820	  1830	  1838	  2311	  3293	  3359	  3373	  3418	  3856	  3917
	  3939	  3975	  4011	  4039	  4045	  4296	  4843	  5062	  5079	  5211	  5913	  6226	  6389	  6474
	  9427	  9470	  9505	  9594	  9624
ROL.	  7366#	  7836
ROLB.	  7380#	  7836
ROR.	  7394#	  7836
RORB.	  7411#	  7836
RSTORE	  6588#	  7836
RTI.	  7428#	  7836
RTS.	  7443#	  7836
RTT.	  7453#	  7836
RUNTIM	  2647	  2650
SBC.	  7470#	  7836
SBCB.	  7492#	  7836
SETSTS	  6335	  7646	  7734
SIN	  3279	  3286	  3905
SKPINC	  2726	  2770	  3080	  3088
SLEEP	  2699
SOB.	  7519#	  7836
SOUT	  3263	  3633	  3892
SPL.	  7530#	  7836
STORE	  6625#	  7734	  7836	  7847	  8373	  8374	  8375	  8376	  8377	  8378	  8379	  8380	  8825	  8913
SUB.	  7535#	  7836
SWAB.	  7554#	  7836
SXT.	  7565#	  7836
TADJUS	  7734#	  7836	  8751	  8842	  8879
TIOE	   165#
TIOEB	   166#
TION	   167#
TIONB	   168#
TRAP.	  7576#	  7836
TST.	  7579#	  7836
TSTB.	  7587#	  7836
TXC	  7659
TXNE	   558	   582	   679	   945	  1017	  1090	  1220	  1470	  1476	  1482	  1495	  1502	  1507	  1684
	  1779	  1946	  2103	  2165	  2222	  2242	  2507	  2632	  2721	  2761	  3066	  4418	  4768	  4781
	  4813	  4818	  4833	  4844	  4849	  4967	  6240	  6254	  6261	  6299	  7734	  8619	  8647	  8926
	  8932	  8938	  8944	  8982
TXNN	   664	   798	   879	   913	  1001	  1216	  1499	  1542	  1579	  1589	  1606	  1626	  1627	  1885
	  2111	  2132	  2143	  2186	  2424	  2564	  2622	  2694	  2763	  3110	  3614	  3963	  4415	  4837
	  4854	  5797	  5886	  5995	  6083	  6219	  6250	  6382	  7640	  7734	  7836	  8409	  8415	  8425
	  8441	  8448	  8452	  8462	  8470	  8570	  8605	  8707	  8825	  8838	  8896	  8926	  8932	  8938
	  8944	  9006	  9169	  9579	  9591
TXO	   554	   583	   593	   656	   792	   923	  1581	  1585	  1590	  1613	  1616	  1656	  1829	  1832
	  1837	  1957	  2023	  2099	  2110	  2156	  2202	  2227	  2490	  2494	  2498	  2533	  2544	  2606
	  2635	  2697	  2777	  2789	  2882	  3055	  4803	  5785	  5795	  5926	  5980	  6001	  6126	  6251
	  6259	  6284	  6397	  6471	  7836	  7847	  8825	  8913	  9098
TXOA	  2197
TXOE	  1491	  4649
TXON	  1475	  7643
TXZ	   548	   649	  1057	  1066	  1463	  1553	  1582	  1586	  1614	  1978	  2199	  2265	  2591	  2608
	  2705	  2752	  2918	  2932	  3049	  4637	  5786	  5792	  5981	  6282	  7639	  7734	  7836	  7847
	  8617	  8791	  9106
TXZA	  6125
TXZE	  1743	  1749	  1751	  1753	  2088	  2232	  2420	  2560	  2825	  4799
TXZN	  1318	  2001	  2200	  2422	  2571	  2592	  2713	  6263	  7734
TYPE	   122#	   519	   524	   665	   672	   698	   721	   735	   761	   799	   806	   813	   853	   863
	   880	   887	   894	   914	   929	   936	   990	  1002	  1010	  1022	  2367	  2459	  2658	  2663
	  2672	  2728	  2910	  3026	  3076	  3090	  3145	  3310	  3420	  3502	  3601	  4137	  4438	  4446
	  4526	  4531	  4695	  4734	  4740	  4747	  4846	  4909	  4914	  4972	  4978	  5039	  5674	  5703
	  5710	  5893	  5941	  5947	  5970	  6294	  6410	  6463	  8783	  8825	  9417
UMOVE	   189#
UMOVEM	   190#
UNLOK.	  4420
USETI	  4453	  4834	  4990	  6336
WAIT.	  7595#	  7836
WID	  4804	  4826
WRAPR	   140#	  9159	  9165	  9177	  9400	  9413	  9553
WRCSB	   179#	  9115
WRCSTM	   183#	  9111
WREBR	   163#	  9119
WRINT	   187#	  9404
WRIO	   171#	  7734	  8424	  8450	  8461	  8494	  8613	  8938	  9100	  9242	  9251	  9675	  9677	  9679
	  9681	  9683	  9685	  9687	  9697
WRIOB	   172#	  8472	  8510	  8944
WRPI	   156#	  9402
WRPUR	   181#	  9113
WRSPB	   177#
WRTIME	   185#
WRUBR	   160#	  9123
X	  1395#	  1396	  1397	  1398	  1399	  1400	  1401	  1402	  1403	  1404	  1405	  1406	  1407	  1408
	  1409	  1411#	  1412	  1413	  1414	  1415	  1416	  1417	  1418	  1419	  1420	  1421	  1422	  1423
	  1424	  1425	  5919#	  5920	  5922#	  5923	  6113#	  6114	  6115	  6116	  6117	  6118#	  6119	  6120
	  6121	  6122	  7734#	  7734	  7745#	  7762	  7772#	  7789	  7812#	  7836	  7847#	  7847	  7850	  7853
	  7856	  7859	  7862	  7865	  7869	  7873	  7879#	  8372	  8373	  8374	  8375	  8376	  8377	  8378
	  8379	  8388#	  8408	  8440	  8447	  8469	  8474#	  8486	  8489	  8502	  8505	  8731#	  8742	  8745
	  8914#	  8925	  8931	  8937	  8943	  9905#	  9906	  9907	  9908	  9909	  9910	  9911	  9912	  9913
	  9914	  9915	  9916	  9917	  9918	  9919	  9920	  9921	  9922	  9923	  9924	  9925	  9926	  9927
	  9928	  9929	  9930	  9932#	  9933	  9934	  9935	  9936	  9937	  9938	  9939	  9940	  9941	  9942
	  9943	  9944	  9945	  9946	  9947	  9948	  9949	  9950	  9951	  9952	  9953	  9954	  9955	  9956
	  9957	  9990#	 10018	 10020
XOR.	  7622#	  7836
XX	  7847#	  7847	  7849	  7852	  7855	  7858	  7861	  7864	  7868	  7872	 10020