Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-02 - 43,50233/uset.lst
There are no other files named uset.lst in the archive.
USET LOW LEVEL DISK MANIPULATOR.	MACRO 46(52) 12:11  3-FEB-72 PAGE 1
USET	MAC	 3-FEB-72 11:34		THE HATFIELD POLYTECHNIC COMPUTER CENTRE--C.MITCHELL 1971

     1						TITLE USET LOW LEVEL DISK MANIPULATOR.
     2						SUBTTL THE HATFIELD POLYTECHNIC COMPUTER CENTRE--C.MITCHELL 1971
     3
     4						;ACCUMULATORS.
     5
     6
     7			000000			Q=0
     8			000001			A=1
     9			000002			B=2
    10			000003			C=3
    11			000004			X=4
    12			000005			Z=5
    13			000006			SUP=6
    14			000007			TEMP=7		;MUST BE 7
    15			000010			READ=10
    16			000011			SAME=11
    17			000012			FIND=12
    18			000013			TEMP1=13
    19			000014			TEMP2=14
    20			000015			TEST1=15
    21			000016			K=16
    22			000017			P=17
    23
    24
    25						;UUO'S
    26						OPDEF	MESS[BYTE(9)1]
    27						OPDEF	CHRIN[BYTE(9)2]
    28						OPDEF	HOMUP[BYTE(9)3]
    29						OPDEF	NHOMUP[BYTE(9)4]
    30						OPDEF	CHROUT[BYTE(9)5]
    31						EXTERN	JOBFF
    32	400000'					TWOSEGS
    33						PAGE

USET LOW LEVEL DISK MANIPULATOR.	MACRO 46(52) 12:11  3-FEB-72 PAGE 2
USET	MAC	 3-FEB-72 11:34		THE HATFIELD POLYTECHNIC COMPUTER CENTRE--C.MITCHELL 1971

    34	400000'					RELOC	400000
    35	400000'	205 12 0 00 202021	GSTART:	MOVSI	FIND,(SIXBIT /001/)
    36	400001'	202 12 0 00 000022'		MOVEM	FIND,EXT	;SET UP EXTENSION
    37	400002'	200 12 0 00 401170'		MOVE	FIND,[SIXBIT /USETI/]
    38	400003'	202 12 0 00 000012'		MOVEM	FIND,INFL
    39	400004'	200 12 0 00 401171'		MOVE	FIND,[SIXBIT /USETO/]
    40	400005'	202 12 0 00 000016'		MOVEM	FIND,OUTFL
    41	400006'	201 12 0 00 000017		MOVEI	FIND,17		;SET CHANNELS FOR DUMP MODE
    42	400007'	202 12 0 00 000004'		MOVEM	FIND,CH2	;ONE
    43	400010'	202 12 0 00 000007'		MOVEM	FIND,CH3	;THEN THE OTHER
    44	400011'	200 12 0 00 401172'		MOVE	FIND,[IOWD 200,BLKBUF]
    45	400012'	202 12 0 00 000000'		MOVEM	FIND,COPYBK	;SET UP IOWDS IN LOW SEGMENT
    46	400013'	505 12 0 00 716000		HRLI	FIND,-^D25600
    47	400014'	202 12 0 00 000002'		MOVEM	FIND,COPYST	;BOTH OF THEM
    48	400015'	403 12 0 00 000010		SETZB	FIND,READ
    49	400016'	047 00 0 00 000000	START:	CALLI	0		;RESET
    50	400017'	200 17 0 00 401164'		MOVE	P,PLIST		;SET UP PUSH DOWN POINTER.
    51	400020'	041 01 0 00 000001		INIT	1,1		;FIRST TRY USET
    52	400021'	65 63 45 64 00 00	USTDEV:	SIXBIT	/USET/
    53	400022'	000000	000041'			XWD	0,ITTY		;INPUT FIRST
    54	400023'	254 00 0 00 400031'		JRST	USETTY		;STRUCTURE DOES NOT EXIST
    55	400024'	041 04 0 00 000000		INIT	4,0		;NOW ONE FOR OUTPUT
    56	400025'	65 63 45 64 00 00		SIXBIT	/USET/
    57	400026'	000044'	000000			XWD	OTTY,0
    58	400027'	254 00 0 00 400031'		JRST	USETTY		;STRANGE!!!!!!
    59	400030'	254 00 0 00 400041'		JRST	SETBUF		;O.K. SO SET UP BUFFERS
    60	400031'	041 01 0 00 000001	USETTY:	INIT	1,1		;OPEN INPUT SIDE
    61	400032'	64 64 71 00 00 00	TTDEV:	SIXBIT	/TTY/		;TELETYPE.
    62	400033'	000000	000041'			XWD	0,ITTY	 	;INPUT ONLY
    63	400034'	254 00 0 00 401107'		JRST	ERR1		;CANNOT
    64	400035'	041 04 0 00 000000		INIT	4,0		;OPEN OUTPUT SIDE
    65	400036'	64 64 71 00 00 00		SIXBIT	/TTY/		;TTY
    66	400037'	000044'	000000			XWD	OTTY,0	 	;OUTPUT ONLY
    67	400040'	254 00 0 00 401107'		JRST	ERR1		;CANNOT
    68	400041'	201 01 0 00 000047'	SETBUF:	MOVEI	A,TTYBUF	;SET FOR OUTPUT
    69	400042'	250 01 0 00 000000*		EXCH	A,JOBFF		;FOOL MONITOR.
    70	400043'	065 04 0 00 000001		OUTBUF	4,1		;ONE BUFFER.
    71	400044'	201 02 0 00 000252'		MOVEI	B,TTYBUF+203	;AND INPUT
    72	400045'	202 02 0 00 400042*		MOVEM	B,JOBFF		;STORE LIMIT
    73	400046'	064 01 0 00 000001		INBUF	1,1		;ONE BUFFER.
    74	400047'	250 01 0 00 400045*		EXCH	A,JOBFF		;RESET JOBFF
    75	400050'	200 01 0 00 401173'		MOVE	A,[PUSHJ P,UUOH];SET UP LOC 41
    76	400051'	202 01 0 00 000041		MOVEM	A,41		;FOR UUO'S
    77	400052'	200 01 0 00 000022'		MOVE	A,EXT		;GET EXTENSION
    78	400053'	202 01 0 00 000013'		MOVEM	A,INFL+1	;MODIFY INPUT FILE NAME
    79	400054'	202 01 0 00 000017'		MOVEM	A,OUTFL+1	;AND OUTPUT FILE NAME
    80	400055'	076 01 0 00 000012'		LOOKUP	1,INFL	 	;LOOKUP FILE
    81	400056'	047 00 0 00 000012		CALLI	12		;OUT
    82	400057'	077 04 0 00 000016'		ENTER	4,OUTFL		;ENTER RESULTS.
    83	400060'	254 00 0 00 401107'		JRST	ERR1		;FAILED
    84	400061'	200 01 0 00 400021'		MOVE	A,USTDEV	;GET USETI IN A
    85	400062'	047 01 0 00 000004		CALLI	A,4		;GET CHARACTERISTICS
    86	400063'	326 01 0 00 400066'		JUMPN	A,CLRTFL	;EXISTS

USET LOW LEVEL DISK MANIPULATOR.	MACRO 46(52) 12:11  3-FEB-72 PAGE 2-1
USET	MAC	 3-FEB-72 11:34		THE HATFIELD POLYTECHNIC COMPUTER CENTRE--C.MITCHELL 1971

    87	400064'	200 01 0 00 400032'		MOVE	A,TTDEV
    88	400065'	047 01 0 00 000004		CALLI	A,4		;GET DEVICE CHARACTERISTICS
    89	400066'	402 00 0 00 000030'	CLRTFL:	SETZM	TTYP		;CLEAR TTY FLAG IN CASE
    90	400067'	603 01 0 00 000010		TLNE	A,10		;TTY?
    91	400070'	476 00 0 00 000030'		SETOM	TTYP		;YES!
    92	400071'	001 00 0 00 401165'	NXTCMM: MESS	STRWRD		;OUTPUT CRLF*
    93	400072'	002 00 0 00 000001	GETSH:	CHRIN	A		;GET CHAR IN A.
    94	400073'	201 03 0 00 400116'		MOVEI	C,BOTTAB	;SET FOR COMMAND SCAN.
    95	400074'	135 02 0 00 401174'	SCAN:	LDB	B,[XWD 350700,(C)];GET CHAR FROM TABLE.
    96	400075'	322 02 0 00 400101'		JUMPE	B,BAD		;ZERO MEANS END
    97	400076'	316 02 0 00 000001		CAMN	B,A		;MATCH?
    98	400077'	254 00 1 03 000000		JRST	@(C)		;DISPATCH
    99	400100'	344 03 0 00 400074'		AOJA	C,SCAN	 	;KEEP GOING
   100					BAD:	MESS	[ASCIZ/
   101					ILLEGAL COMMAND
   102	400101'	001 00 0 00 401175'	/]
   103	400102'	205 01 0 00 000001	NEWFL:	MOVSI	A,1		;GET 1 IN LH
   104	400103'	272 01 0 00 000022'		ADDM	A,EXT		;BUMP EXTENSION
   105	400104'	071 01 0 00 000000		RELEASE 1,		;CLOSE UP
   106	400105'	071 04 0 00 000000		RELEASE 4,		;BOTH CHANNELS
   107	400106'	402 00 0 00 000014'		SETZM	INFL+2
   108	400107'	402 00 0 00 000015'		SETZM	INFL+3
   109	400110'	402 00 0 00 000020'		SETZM	OUTFL+2
   110	400111'	402 00 0 00 000021'		SETZM	OUTFL+3
   111	400112'	254 00 0 00 400016'		JRST	START		;RESTART
   112	400113'	260 17 0 00 401111'	NXTCM:	PUSHJ	P,GARB	 	;CLEAR UP
   113	400114'	200 17 0 00 401164'		MOVE	P,PLIST		;SET UP PUSH DOWN POINTER
   114	400115'	254 00 0 00 400071'		JRST	NXTCMM		;GET NEXT COMMAND
   115
   116
   117	400116'	064000	400072'		BOTTAB: XWD	15_13,GETSH	;IGNORE CR
   118	400117'	050000	400071'			XWD	12_13,NXTCMM	;GET NEXT COMMAND.
   119	400120'	510000	400346'			XWD	"R"_13,READD	;READ A BLOCK
   120	400121'	534000	400300'			XWD	"W"_13,WRITE	;WRITE A BLOCK
   121	400122'	424000	400242'			XWD	"E"_13,EXAMIN 	;EXAMINE THE LOCATION
   122	400123'	420000	400264'			XWD	"D"_13,DEPOSI 	;DEPOSIT IN LOCATION
   123	400124'	514000	400324'			XWD	"S"_13,SEARCH 	;SEARCH FOR WORD.
   124	400125'	460000	401116'			XWD	"L"_13,LIST	;LIST CURRENT MODES.
   125	400126'	414000	400367'			XWD	"C"_13,COPY	;COPY DSK TO DSK
   126	400127'	430000	400102'			XWD	"F"_13,NEWFL	;EXIT
   127	400130'	500000	400611'			XWD	"P"_13,POINTR	;SET RETRIEVAL POINTER
   128	400131'	434000	400672'			XWD	"G"_13,GROPE	;GROE AROUND
   129	400132'	440000	400753'			XWD	"H"_13,CHOME	;CHANGE HOM BLOCK
   130	400133'	000 00 0 00 000000		Z			;ZERO MEANS END.
   131						PAGE

USET LOW LEVEL DISK MANIPULATOR.	MACRO 46(52) 12:11  3-FEB-72 PAGE 3
USET	MAC	 3-FEB-72 11:34		THE HATFIELD POLYTECHNIC COMPUTER CENTRE--C.MITCHELL 1971

   132	400134'	261 17 0 00 000001	UUOH:	PUSH	P,A		;STORE A
   133	400135'	135 01 0 00 401201'		LDB	A,[XWD 331100,40];GET UUO NUMBER.
   134	400136'	307 01 0 00 000005		CAIG	A,TOPUUO	;IN RANGE?
   135	400137'	254 00 1 01 400141'		JRST	@UUOTAB-1(A)	;DISPATCH
   136	400140'	262 17 0 00 000001	OUTUUO: POP	P,A		;RESTORE A
   137	400141'	263 17 0 00 000000		POPJ	P,		;AND RETURN
   138
   139	400142'	000 00 0 00 400147'	UUOTAB: Z	MESSG		;OUTPUT MESSAGE
   140	400143'	000 00 0 00 400164'		Z	CHIN		;INPUT CHARACTER.
   141	400144'	000 00 0 00 400214'		Z	HOMUPD		;UPDATE SIXBIT HOM ENTRY
   142	400145'	000 00 0 00 400227'		Z	NHOMD		;UPDATE NUMERICAL HOM ENTRY
   143	400146'	000 00 0 00 400207'		Z	CHOUT		;OUTPUT CHARACTER.
   144	400147'				TOPTAB:
   145			000005			TOPUUO=TOPTAB-UUOTAB
   146
   147	400147'	261 17 0 00 000002	MESSG:	PUSH	P,B		;SAVE B
   148	400150'	205 02 0 00 440700		MOVSI	B,440700	;SET UP BP
   149	400151'	540 02 0 00 000040		HRR	B,40		;WITH MESSAGE
   150	400152'	134 01 0 00 000002	KEPON:	ILDB	A,B		;GET CHAR.
   151	400153'	322 01 0 00 400160'		JUMPE	A,FINUP		;ALL DONE
   152	400154'	377 00 0 00 000046'		SOSG	OTTY+2		;SPACE LEFT?
   153	400155'	067 04 0 00 000000		OUTPUT	4,		;NO
   154	400156'	136 01 0 00 000045'		IDPB	A,OTTY+1	;STORE CHAR.
   155	400157'	254 00 0 00 400152'		JRST	KEPON		;KEEP GOING
   156	400160'	332 00 0 00 000030'	FINUP:	SKIPE	TTYP		;DON'T FORCE OUTPUT UNLESS TTY
   157	400161'	067 04 0 00 000000		OUTPUT	4,		;CLEAR UP
   158	400162'	262 17 0 00 000002		POP	P,B		;RESTORE B
   159	400163'	254 00 0 00 400140'		JRST	OUTUUO		;RETURN.
   160
   161	400164'	371 00 0 00 000043'	CHIN:	SOSL	ITTY+2		;CHARS THERE?
   162	400165'	254 00 0 00 400172'		JRST	LFDEF		;YES
   163	400166'	056 01 0 00 000000		IN	1,		;GET SOME THEN
   164	400167'	254 00 0 00 400177'		JRST	YUP		;O.K.
   165	400170'	063 01 0 00 740000		STATZ	1,740000	;ERROR?
   166	400171'	254 00 0 00 401107'		JRST	ERR1		;YES
   167	400172'	332 00 0 00 000027'	LFDEF:	SKIPE	CLRUP		;SKIP IF CLEARED UP
   168	400173'	332 00 0 00 000043'		SKIPE	ITTY+2		;SKIP IF EXACTLY ZERO
   169	400174'	254 00 0 00 400177'		JRST	YUP		;ELSE GET CHAR
   170	400175'	201 01 0 00 000012		MOVEI	A,12		;LINE FEED DEFAULT (AL MODE)
   171	400176'	254 00 0 00 400201'		JRST	OUTCR		;EXIT
   172	400177'	134 01 0 00 000042'	YUP:	ILDB	A,ITTY+1	;GET CHAR
   173	400200'	322 01 0 00 400164'		JUMPE	A,CHIN	 	;FORGET NULLS
   174	400201'	402 00 0 00 000027'	OUTCR:	SETZM	CLRUP		;UNSET CLEAR FLAG
   175	400202'	250 01 0 17 000000		EXCH	A,(P)		;EXCHANGE A WITH TOP OF STACK
   176	400203'	262 17 1 00 000040		POP	P,@40		;CLEVER?
   177	400204'	332 00 0 00 000030'		SKIPE	TTYP		;SKIP IF NOT TTY
   178	400205'	254 00 0 00 400141'		JRST	OUTUUO+1	;RETURN
   179	400206'	261 17 0 00 000001		PUSH	P,A		;ELSE PRINT INPUT IN THE LOG FILE
   180	400207'	200 01 1 00 000040	CHOUT:	MOVE	A,@40		;GET CHAR.
   181	400210'	377 00 0 00 000046'		SOSG	OTTY+2		;ROOM?
   182	400211'	067 04 0 00 000000		OUTPUT	4,		;NO
   183	400212'	136 01 0 00 000045'		IDPB	A,OTTY+1	;STORE BYTE
   184	400213'	254 00 0 00 400140'		JRST	OUTUUO		;RETURN.

USET LOW LEVEL DISK MANIPULATOR.	MACRO 46(52) 12:11  3-FEB-72 PAGE 3-1
USET	MAC	 3-FEB-72 11:34		THE HATFIELD POLYTECHNIC COMPUTER CENTRE--C.MITCHELL 1971

   185
   186
   187									;ADDRESS ON TOP OF STACK,MESS IN 40
   188	400214'	200 01 1 17 000000	HOMUPD: MOVE	A,@(P)	 	;GET CONTENTS OF HOM ENTRY
   189	400215'	200 03 0 00 000040		MOVE	C,40		;GET MESS ADDRESS
   190	400216'	001 00 1 00 000003		MESS	@C		;PRINT MESSAGE
   191	400217'	001 00 0 00 401202'		MESS	[ASCIZ/ IS /]
   192	400220'	260 17 0 00 401133'		PUSHJ	P,SIXOUT	;PRINT SIXBIT
   193	400221'	001 00 0 00 401203'		MESS	[ASCIZ / /]		;FORCE IT
   194	400222'	260 17 0 00 401111'		PUSHJ	P,GARB		;CLEAR UP FIRST
   195	400223'	260 17 0 00 400773'		PUSHJ	P,GETATM	;GET NEW VALUE
   196	400224'	334 00 0 00 000000		SKIPA			;NOT ONE
   197	400225'	202 01 1 17 000000		MOVEM	A,@(P)	 	;STORE NEW VALUE
   198	400226'	254 00 0 00 400140'		JRST	OUTUUO		;FINISH.
   199
   200	400227'	200 01 1 17 000000	NHOMD:	MOVE	A,@(P)	 	;GET CONTENTS OF HOM ENTRY
   201	400230'	200 03 0 00 000040		MOVE	C,40		;GET MESS ADDRESS
   202	400231'	001 00 1 00 000003		MESS	@C		;PRINT MESSAGE
   203	400232'	001 00 0 00 401202'		MESS	[ASCIZ/ IS /]
   204	400233'	260 17 0 00 401142'		PUSHJ	P,OCTOUT	;PRINT OCTAL NUMBER.
   205	400234'	001 00 0 00 401204'		MESS	[ASCIZ / O.K.? /]
   206	400235'	260 17 0 00 401111'		PUSHJ	P,GARB		;CLEAR UP
   207	400236'	260 17 0 00 401017'		PUSHJ	P,GETNUM	;GET NEW ONE
   208	400237'	334 00 0 00 000000		SKIPA
   209	400240'	202 01 1 17 000000		MOVEM	A,@(P)	 	;STORE VALUE
   210	400241'	254 00 0 00 400140'		JRST	OUTUUO		;FINISH
   211
   212	400242'	400 06 0 00 000000	EXAMIN: SETZ	SUP,0		;CLEAR ZERO SUPPRESSOR.
   213	400243'	260 17 0 00 401017'		PUSHJ	P,GETNUM	;GET ADDRESS IN A
   214	400244'	254 00 0 00 400250'		JRST	DOALL		;DO ALL
   215	400245'	307 01 0 00 000177		CAIG	A,177		;IN RANGE?
   216	400246'	254 00 0 00 400261'		JRST	PRNTEM		;YES.
   217	400247'	254 00 0 00 400101'		JRST	BAD		;NO
   218					DOALL:	MESS	[ASCIZ /
   219	400250'	001 00 0 00 401206'	DUMP OF BLOCK /]
   220	400251'	200 05 0 00 000010		MOVE	Z,READ		;GET BLOCK NUMBER
   221	400252'	260 17 0 00 401070'		PUSHJ	P,PRNTIT	;PRINT IT
   222	400253'	001 00 0 00 401212'		MESS	[ASCIZ / ON DEVICE /]
   223	400254'	200 01 0 00 000005'		MOVE	A,DEVICE	;GET INPUT DEVICE
   224	400255'	260 17 0 00 401133'		PUSHJ	P,SIXOUT	;PRINT IT
   225	400256'	001 00 0 00 401167'		MESS	CARLF		;ONE CR LF THEN--
   226	400257'	001 00 0 00 401167'		MESS	CARLF		;FINISH OFF
   227	400260'	200 01 0 00 401215'		MOVE	A,[XWD-200,0] 	;SET UP COUNTER.
   228	400261'	260 17 0 00 401051'	PRNTEM: PUSHJ	P,OUTWRD	;PRINT WORD.
   229	400262'	253 01 0 00 400261'		AOBJN	A,.-1		;KEEP GOING
   230	400263'	254 00 0 00 400113'		JRST	NXTCM		;ALL DONE
   231
   232	400264'	260 17 0 00 401017'	DEPOSI: PUSHJ	P,GETNUM	;GET FIRST HALF IN A
   233	400265'	254 00 0 00 400101'		JRST	BAD		;NONE THERE
   234	400266'	514 07 0 00 000001		HRLZ	TEMP,A		;PUT IN LEFT HALF
   235	400267'	260 17 0 00 401017'		PUSHJ	P,GETNUM	;GET SECOND HALF IN A
   236	400270'	254 00 0 00 400101'		JRST	BAD		;NONE THERE
   237	400271'	540 07 0 00 000001		HRR	TEMP,A		;STORE IT

USET LOW LEVEL DISK MANIPULATOR.	MACRO 46(52) 12:11  3-FEB-72 PAGE 3-2
USET	MAC	 3-FEB-72 11:34		THE HATFIELD POLYTECHNIC COMPUTER CENTRE--C.MITCHELL 1971

   238	400272'	260 17 0 00 401017'		PUSHJ	P,GETNUM	;GET ADDRESS
   239	400273'	254 00 0 00 400101'		JRST	BAD		;NONE THERE!
   240	400274'	303 01 0 00 000177		CAILE	A,177		;IN RANGE?
   241	400275'	254 00 0 00 400101'		JRST	BAD		;SO NEAR YET ---
   242	400276'	202 07 0 01 000465'		MOVEM	TEMP,BLKBUF(A)	;IN SHE GOES
   243	400277'	254 00 0 00 400113'		JRST	NXTCM		;AND OUT
   244
   245	400300'	260 17 0 00 400773'	WRITE:	PUSHJ	P,GETATM	;GET DEVICE IN A
   246	400301'	254 00 0 00 400365'		JRST	BOOB		;NO DEFAULT
   247	400302'	202 01 0 00 000010'		MOVEM	A,DEVIDE	;STORE DEVICE
   248	400303'	260 17 0 00 401017'		PUSHJ	P,GETNUM	;GET ADDRESS
   249	400304'	254 00 0 00 400365'		JRST	BOOB		;ERROR
   250	400305'	050 03 0 00 000007'		OPEN	3,CH3		;OPEN CHANNEL D
   251	400306'	254 00 0 00 400365'		JRST	BOOB		;FAILED
   252	400307'	075 03 0 00 000001		USETO	3,A		;SET FOR OUTPUT
   253						MESS	[ASCIZ /
   254	400310'	001 00 0 00 401216'	WRITE BLOCK NUMBER /]
   255	400311'	200 05 0 00 000001		MOVE	Z,A		;GET NUMBER
   256	400312'	260 17 0 00 401070'		PUSHJ	P,PRNTIT	;PRINT OCTAL NUMBER
   257	400313'	001 00 0 00 401212'		MESS	[ASCIZ / ON DEVICE /]
   258	400314'	200 01 0 00 000010'		MOVE	A,DEVIDE	;GET DEVICE
   259	400315'	260 17 0 00 401133'		PUSHJ	P,SIXOUT	;PRINT DEVICE
   260						MESS	[ASCIZ /
   261	400316'	001 00 0 00 401223'	CONFIRM?/]
   262	400317'	260 17 0 00 401147'		PUSHJ	P,GETANS	;GET ANSWER
   263	400320'	254 00 0 00 400113'		JRST	NXTCM		;NO
   264	400321'	057 03 0 00 000000'		OUT	3,COPYBK	;YES
   265	400322'	254 00 0 00 400113'		JRST	NXTCM		;O.K.
   266	400323'	254 00 0 00 400365'		JRST	BOOB		;FAILED
   267
   268	400324'	260 17 0 00 401017'	SEARCH: PUSHJ	P,GETNUM	;GET LEFT HALF
   269	400325'	254 00 0 00 400336'		JRST	STUPP		;USE PREVIOUS VALUE
   270	400326'	323 16 0 00 400331'		JUMPLE	K,.+3		;SKIP IF NOT INDIRECT
   271	400327'	200 12 0 00 000001		MOVE	FIND,A		;ELSE GET WHOLE WORD
   272	400330'	254 00 0 00 400336'		JRST	STUPP		;AND CONTINUE
   273	400331'	550 12 0 00 000001		HRRZ	FIND,A	 	;ELSE STORE LH IN RH
   274	400332'	260 17 0 00 401017'		PUSHJ	P,GETNUM	;GET RIGHT HALF
   275	400333'	334 01 0 00 000012		SKIPA	A,FIND	 	;ONE HALF ONLY
   276	400334'	207 00 0 00 000012		MOVSS	FIND		;SWAP HALVES
   277	400335'	540 12 0 00 000001		HRR	FIND,A	 	;AND STORE RIGHT HALF
   278	400336'	260 17 0 00 400340'	STUPP:	PUSHJ	P,STUP		;SEARCH
   279	400337'	254 00 0 00 400113'		JRST	NXTCM		;EXIT
   280
   281	400340'	200 01 0 00 401215'	STUP:	MOVE	A,[XWD -200,0]	;SET UP COUNTER
   282	400341'	200 02 0 01 000465'		MOVE	B,BLKBUF(A)	;GET WORD FROM BUFFER
   283	400342'	316 02 0 00 000012		CAMN	B,FIND	 	;SAME?
   284	400343'	260 17 0 00 400762'		PUSHJ	P,PNTFND	;YES,PRINT IT
   285	400344'	253 01 0 00 400341'		AOBJN	A,.-3		;KEEP MOVING
   286	400345'	263 17 0 00 000000		POPJ	P,		;RETURN
   287
   288	400346'	260 17 0 00 400773'	READD:	PUSHJ	P,GETATM	;GET DEVICE IN A
   289	400347'	344 10 0 00 400355'		AOJA	READ,INUSE	;NONE THERE,BUMP BLK NO.
   290	400350'	202 01 0 00 000005'		MOVEM	A,DEVICE	;STORE DEVICE

USET LOW LEVEL DISK MANIPULATOR.	MACRO 46(52) 12:11  3-FEB-72 PAGE 3-3
USET	MAC	 3-FEB-72 11:34		THE HATFIELD POLYTECHNIC COMPUTER CENTRE--C.MITCHELL 1971

   291	400351'	260 17 0 00 401017'		PUSHJ	P,GETNUM	;GET BLOCK NO
   292	400352'	254 00 0 00 400365'		JRST	BOOB		;ILLEGAL
   293	400353'	260 17 0 00 400357'		PUSHJ	P,INBLK		;READ BLOCK
   294	400354'	254 00 0 00 400113'		JRST	NXTCM		;EXIT
   295	400355'	260 17 0 00 400360'	INUSE:	PUSHJ	P,INBLK+1	;READ BLOCK
   296	400356'	254 00 0 00 400113'		JRST	NXTCM		;GET NEXT
   297
   298	400357'	202 01 0 00 000010	INBLK:	MOVEM	A,READ	 	;STORE IT
   299	400360'	050 02 0 00 000004'		OPEN	2,CH2		;OPEN ANOTHER CHANNEL
   300	400361'	254 00 0 00 400365'		JRST	BOOB		;FAILED
   301	400362'	074 02 0 00 000010		USETI	2,READ	 	;SET FOR INPUT
   302	400363'	056 02 0 00 000000'		IN	2,COPYBK	;READ BLOCK
   303	400364'	263 17 0 00 000000		POPJ	P,		;EXIT
   304					BOOB:	MESS	[ASCIZ /
   305					FAILED!!
   306	400365'	001 00 0 00 401226'	/]
   307	400366'	254 00 0 00 400113'		JRST	NXTCM		;NEXT TRY!
   308
   309	400367'	403 11 0 00 000010	COPY:	SETZB	SAME,READ	;CLEAR THESE TWO FOR A MO
   310	400370'	260 17 0 00 400773'		PUSHJ	P,GETATM	;GET"FROM"DEVICE
   311	400371'	254 00 0 00 400101'		JRST	BAD		;ILLEGAL
   312	400372'	202 01 0 00 000005'		MOVEM	A,DEV1	 	;STORE IT
   313	400373'	260 17 0 00 400773'		PUSHJ	P,GETATM	;GET "TO" DEVICE
   314	400374'	254 00 0 00 400101'		JRST	BAD		;ILLEGAL
   315	400375'	202 01 0 00 000010'		MOVEM	A,DEV2	 	;STORE IT
   316	400376'	306 02 0 00 000175		CAIN	B,175		;ALTMODE TERMINATION?
   317	400377'	476 00 0 00 000011		SETOM	SAME		;YES,SET FLAG
   318	400400'	260 17 0 00 401157'		PUSHJ	P,INTAL		;INITIALIZE
   319						MESS	[ASCIZ/
   320	400401'	001 00 0 00 401231'	COPY FROM DEVICE /]
   321	400402'	200 01 0 00 000005'		MOVE	A,DEV1	 	;GET "FROM"DEVICE
   322	400403'	260 17 0 00 401133'		PUSHJ	P,SIXOUT	;PRINT IT
   323	400404'	001 00 0 00 401235'		MESS	[ASCIZ/ TO DEVICE /]
   324	400405'	200 01 0 00 000010'		MOVE	A,DEV2	 	;GET "TO"DEVICE
   325	400406'	260 17 0 00 401133'		PUSHJ	P,SIXOUT	;PRINT IT
   326	400407'	332 00 0 00 000011		SKIPE	SAME		;SKIP IF NOT SAME SET
   327	400410'	001 00 0 00 401240'		MESS	[ASCIZ / SETTING IDENTITY/]
   328						MESS	[ASCIZ /
   329	400411'	001 00 0 00 401244'	CONFIRM? /]
   330	400412'	201 01 0 00 401147'		MOVEI	A,GETANS	;HORRIBLE FUDGE COMING UP
   331	400413'	322 11 0 00 400415'		JUMPE	SAME,.+2	;HELP!!!
   332	400414'	350 00 0 00 000001		AOS	A		;DO NOT CLEAR UP IF ALTMODE
   333	400415'	260 17 1 00 000001		PUSHJ	P,@A		;GET ANSWER
   334	400416'	254 00 0 00 400113'		JRST	NXTCM		;NO
   335	400417'	332 00 0 00 000011		SKIPE	SAME		;RETAINING IDENTITY?
   336	400420'	260 17 0 00 400500'		PUSHJ	P,CHGHOM	;YES
   337	400421'	201 01 0 00 062465'		MOVEI	A,BLKBUF+^D25600
   338	400422'	047 01 0 00 000011		CALLI	A,11		;EXPAND!!
   339	400423'	254 00 0 00 400365'		JRST	BOOB		;CANNOT
   340	400424'	402 00 0 00 000014		SETZM	TEMP2		;CLEAR TEMP ACCUMULATOR
   341	400425'	322 11 0 00 400441'		JUMPE	SAME,RPTR	;IF NOT READING HOM BLOCK SKIP
   342	400426'	074 03 0 00 401247'		USETI	3,[XWD 0,1]	;SET FOR HOM BLOCK
   343	400427'	056 03 0 00 000000'		IN	3,COPYBK	;GET HOM

USET LOW LEVEL DISK MANIPULATOR.	MACRO 46(52) 12:11  3-FEB-72 PAGE 3-4
USET	MAC	 3-FEB-72 11:34		THE HATFIELD POLYTECHNIC COMPUTER CENTRE--C.MITCHELL 1971

   344	400430'	334 02 0 00 000466'		SKIPA	B,BLKBUF+1	;GET UNIT IDENTITY
   345	400431'	254 00 0 00 400365'		JRST	BOOB		;FAILED TO READ
   346	400432'	202 02 0 00 000025'		MOVEM	B,ID		;STORE
   347	400433'	200 02 0 00 000471'		MOVE	B,BLKBUF+4	;GET STRUCTURE NAME
   348	400434'	202 02 0 00 000023'		MOVEM	B,STR		;STORE IT
   349	400435'	200 02 0 00 000474'		MOVE	B,BLKBUF+7	;GET STRUCTURE NUMBER
   350	400436'	202 02 0 00 000024'		MOVEM	B,STRNO		;AND STORE IT
   351	400437'	200 02 0 00 000470'		MOVE	B,BLKBUF+3	;GET POSITION IN SYS SEARCH LIST
   352	400440'	202 02 0 00 000026'		MOVEM	B,SYSCH		;SAVE IT
   353	400441'	074 02 0 00 000010	RPTR:	USETI	2,READ	 	;SET FOR INPUT
   354	400442'	075 03 0 00 000010		USETO	3,READ	 	;SET FOR OUTPUT
   355	400443'	056 02 0 00 000002'		IN	2,COPYST	;GET ONE CYLINDER
   356	400444'	334 00 0 00 000000		SKIPA			;OK
   357	400445'	254 00 0 00 400531'		JRST	SLOW		;FAILED
   358	400446'	322 11 0 00 400451'		JUMPE	SAME,.+3	;SKIP IF NOT CONVERTING
   359	400447'	201 07 0 00 000310		MOVEI	TEMP,^D200	;SET FOR CONVERTER.
   360	400450'	260 17 0 00 400564'		PUSHJ	P,CONVRT	;AND CONVERT
   361	400451'	057 03 0 00 000002'		OUT	3,COPYST	;OUTPUT
   362	400452'	334 00 0 00 000000		SKIPA			;OK
   363	400453'	254 00 0 00 400531'		JRST	SLOW		;SLOW UP
   364	400454'	271 10 0 00 000310		ADDI	READ,^D200	;SET FOR NEXT CYLINDER
   365	400455'	305 10 0 00 116100	TST1:	CAIGE	READ,^D40000	;ALL DONE?
   366	400456'	254 00 0 00 400441'		JRST	RPTR		;NO
   367	400457'	322 11 0 00 400474'		JUMPE	SAME,COMPRS	;IF NOT RETAINING ID BYPASS
   368	400460'	074 03 0 00 401247'		USETI	3,[XWD 0,1]	;ELSE READ HOM BLOCK
   369	400461'	056 03 0 00 000000'		IN	3,COPYBK	;GET IT
   370	400462'	334 02 0 00 000025'		SKIPA	B,ID		;GET ID
   371	400463'	254 00 0 00 400365'		JRST	BOOB		;FAILED TO READ IT
   372	400464'	202 02 0 00 000466'		MOVEM	B,BLKBUF+1	;STORE ID
   373	400465'	200 02 0 00 000023'		MOVE	B,STR		;GET STRUCTURE
   374	400466'	202 02 0 00 000471'		MOVEM	B,BLKBUF+4	;STORE IT
   375	400467'	200 02 0 00 000024'		MOVE	B,STRNO		;GET STRUCTURE NUMBER
   376	400470'	202 02 0 00 000474'		MOVEM	B,BLKBUF+7	;STORE IT
   377	400471'	200 02 0 00 000026'		MOVE	B,SYSCH		;GET POSITION IN SYS SEARCH LIST
   378	400472'	202 02 0 00 000470'		MOVEM	B,BLKBUF+3	;RESTORE IT
   379	400473'	260 17 0 00 400516'		PUSHJ	P,UPDHOM	;WRITE THEM OUT
   380	400474'	201 01 0 00 000665'	COMPRS: MOVEI	A,BLKBUF+200	;SET FOR CORE
   381	400475'	047 01 0 00 000011		CALLI	A,11		;AND SQUEEEZZE!
   382	400476'	254 00 0 00 400365'		JRST	BOOB		;HELP!
   383	400477'	254 00 0 00 400114'		JRST	NXTCM+1		;GET NEXT COMMAND
   384
   385	400500'	074 03 0 00 401247'	CHGHOM:	USETI	3,[XWD 0,1]	;SET FOR HOM
   386	400501'	056 03 0 00 000000'		IN	3,COPYBK	;READ HOM
   387	400502'	334 00 0 00 000000		SKIPA			;OK
   388	400503'	254 00 0 00 400365'		JRST	BOOB		;FAILED
   389						MESS	[ASCIZ /
   390					FOR THE FOLLOWING PARAMETERS TYPE CARRIAGE RETURN IF O.K.
   391					ELSE TYPE THE NEW VALUE
   392	400504'	001 00 0 00 401250'	/]
   393	400505'	201 01 0 00 000466'		MOVEI	A,BLKBUF+1	;SET FOR ID CHANGE
   394						HOMUP	A,[ASCIZ/
   395	400506'	003 01 0 00 401272'	UNIT ID/]			;UPDATE UNIT ID
   396	400507'	201 01 0 00 000471'		MOVEI	A,BLKBUF+4	;SET FOR STRUCTURE

USET LOW LEVEL DISK MANIPULATOR.	MACRO 46(52) 12:11  3-FEB-72 PAGE 3-5
USET	MAC	 3-FEB-72 11:34		THE HATFIELD POLYTECHNIC COMPUTER CENTRE--C.MITCHELL 1971

   397						HOMUP	A,[ASCIZ/
   398	400510'	003 01 0 00 401274'	STRUCTURE NAME/]		;UPDATE STRUCTURE NAME
   399	400511'	201 01 0 00 000474'		MOVEI	A,BLKBUF+7	;SET FOR STRUCTURE NUMBER.
   400						HOMUP	A,[ASCIZ/
   401	400512'	003 01 0 00 401300'	STRUCTURE NUMBER/]		;UPDATE NUMBER
   402	400513'	201 01 0 00 000470'		MOVEI	A,BLKBUF+3	;UPDATE SYS SEARC LIST
   403						NHOMUP	A,[ASCIZ/
   404	400514'	004 01 0 00 401304'	POSITION IN SYS SEARCH LIST/]	;UPDATE IFNECC
   405	400515'	254 00 0 00 400516'		JRST	UPDHOM		;WRITE OUT HOME BLOCKS
   406
   407	400516'	075 03 0 00 401247'	UPDHOM: USETO	3,[XWD 0,1]	;SET FOR OUTPUT
   408	400517'	201 02 0 00 000001		MOVEI	B,1		;SET FOR FIRST
   409	400520'	202 02 0 00 000664'		MOVEM	B,BLKBUF+177	;STORE BLOCK
   410	400521'	057 03 0 00 000000'		OUT	3,COPYBK	;WRITE FIRST ONE
   411	400522'	334 02 0 00 401312'		SKIPA	B,[XWD 0,12]	;SET FOR SECOND
   412	400523'	254 00 0 00 400365'		JRST	BOOB		;FAILED!
   413	400524'	202 02 0 00 000664'		MOVEM	B,BLKBUF+177	;STORE ADDRESS
   414	400525'	075 03 0 00 401312'		USETO	3,[XWD 0,12]	;SET FOR OUTPUT
   415	400526'	057 03 0 00 000000'		OUT	3,COPYBK	;PRINT IT
   416	400527'	263 17 0 00 000000		POPJ	P,		;RETURN
   417	400530'	254 00 0 00 400365'		JRST	BOOB		;OUT.
   418
   419	400531'	260 17 0 00 401157'	SLOW:	PUSHJ	P,INTAL		;RE-INIT DSKS.
   420	400532'	201 01 0 10 000310		MOVEI	A,^D200(READ)	;SET UPPER LIMIT
   421	400533'	074 02 0 00 000010	RPT1:	USETI	2,READ	 	;SET FOR INPUT
   422	400534'	075 03 0 00 000010		USETO	3,READ	 	;SET FOR OUTPUT
   423	400535'	056 02 0 00 000000'		IN	2,COPYBK	;READ ONE BLOCK
   424	400536'	334 00 0 00 000000		SKIPA
   425	400537'	260 17 0 00 400600'		PUSHJ	P,TELL		;REPORT IT
   426	400540'	322 11 0 00 400543'		JUMPE	SAME,.+3	;SKIP IF NOT CONVERTING
   427	400541'	201 07 0 00 000001		MOVEI	TEMP,1	 	;SET UP
   428	400542'	260 17 0 00 400564'		PUSHJ	P,CONVRT	;CONVERT
   429	400543'	057 03 0 00 000000'		OUT	3,COPYBK	;OUTPUT
   430	400544'	334 00 0 00 000000		SKIPA
   431	400545'	260 17 0 00 401157'		PUSHJ	P,INTAL		;RE-INIT.
   432	400546'	271 10 0 00 000001		ADDI	READ,1	 	;BUMP POINTER
   433	400547'	315 10 0 00 000001		CAMGE	READ,A	 	;SKIP IF ALL DONE
   434	400550'	254 00 0 00 400533'		JRST	RPT1		;KEEP GOING
   435	400551'	254 00 0 00 400455'		JRST	TST1		;BACK TO CYLINDER MODE.
   436
   437	400552'	200 15 0 13 000000	TSTRIB:	MOVE	TEST1,0(TEMP1) 	;GET FIRST WORD OF BLOCK
   438	400553'	312 15 0 00 401313'		CAME	TEST1,[XWD 777635,33];ONE OF THESE?
   439	400554'	254 00 0 00 400563'		JRST	NTRIB		;NOT A RIB,THEN
   440	400555'	200 15 0 13 000176		MOVE	TEST1,176(TEMP1);GET PENULTIMATE WORD
   441	400556'	302 15 0 00 777777		CAIE	TEST1,777777	;ONE OF THOSE?
   442	400557'	254 00 0 00 400563'		JRST	NTRIB		;NO
   443	400560'	200 15 0 13 000177		MOVE	TEST1,177(TEMP1);GET LAST WORD.
   444	400561'	316 15 0 00 000014		CAMN	TEST1,TEMP2	;THE ACID TEST,SAME BLOCK ADDRESS?
   445	400562'	350 00 0 17 000000		AOS	(P)		;BUMP RETURN FOR YES
   446	400563'	263 17 0 00 000000	NTRIB:	POPJ	P,		;RETURN
   447
   448	400564'	201 13 0 00 000465'	CONVRT:	MOVEI	TEMP1,BLKBUF	;GET BASE ADDRESS
   449	400565'	260 17 0 00 400552'	CONV2:	PUSHJ	P,TSTRIB	;CHECK FOR RIB

USET LOW LEVEL DISK MANIPULATOR.	MACRO 46(52) 12:11  3-FEB-72 PAGE 3-6
USET	MAC	 3-FEB-72 11:34		THE HATFIELD POLYTECHNIC COMPUTER CENTRE--C.MITCHELL 1971

   450	400566'	254 00 0 00 400574'		JRST	NOSTR		;NO
   451	400567'	554 15 0 13 000003		HLRZ	TEST1,3(TEMP1)	;GET EXT
   452	400570'	306 15 0 00 654644		CAIN	TEST1,(SIXBIT /UFD/)
   453	400571'	254 00 0 00 400574'		JRST	NOSTR		;UFD
   454	400572'	200 15 0 00 000024'		MOVE	TEST1,STRNO	;GET STRUCTURE POSITION
   455	400573'	202 15 0 13 000016		MOVEM	TEST1,16(TEMP1)	;STORE IT
   456	400574'	271 13 0 00 000200	NOSTR:	ADDI	TEMP1,200	;BUMP POINTER.
   457	400575'	350 00 0 00 000014		AOS	TEMP2		;AND BLOCK ADDRESS.
   458	400576'	367 07 0 00 400565'		SOJG	TEMP,CONV2	;DO NEXT
   459	400577'	263 17 0 00 000000		POPJ	P,		;RETURN.
   460
   461					TELL:	MESS	[ASCIZ /
   462	400600'	001 00 0 00 401314'	BAD BLOCK NUMBER /]
   463	400601'	200 05 0 00 000010		MOVE	Z,READ		;GET BLOCK NUMBER
   464	400602'	260 17 0 00 401070'		PUSHJ	P,PRNTIT	;PRINT IT
   465	400603'	001 00 0 00 401212'		MESS	[ASCIZ / ON DEVICE /]
   466	400604'	261 17 0 00 000001		PUSH	P,A		;SAVE A
   467	400605'	200 01 0 00 000005'		MOVE	A,DEV1		;GET DEVICE
   468	400606'	260 17 0 00 401133'		PUSHJ	P,SIXOUT	;PRINT IT
   469	400607'	262 17 0 00 000001		POP	P,A		;RESTORE A
   470	400610'	254 00 0 00 401157'		JRST	INTAL		;RE-INIT AND EXIT
   471
   472	400611'	260 17 0 00 400773'	POINTR:	PUSHJ	P,GETATM	;GET DEVICE NAME
   473	400612'	254 00 0 00 400101'		JRST	BAD		;ILLEGAL
   474	400613'	202 01 0 00 000005'		MOVEM	A,DEVICE	;ELSE STORE IT
   475	400614'	260 17 0 00 401017'		PUSHJ	P,GETNUM	;GET LEFT HALF
   476	400615'	254 00 0 00 400101'		JRST	BAD		;ILLEGAL
   477	400616'	323 16 0 00 400621'		JUMPLE	K,.+3		;SKIP IF NOT INDIRECT
   478	400617'	200 07 0 00 000001		MOVE	TEMP,A		;ELSE GET WHOLE WORD
   479	400620'	254 00 0 00 400625'		JRST	STPNT		;AND CONTINUE
   480	400621'	514 07 0 00 000001		HRLZ	TEMP,A		;STORE IT
   481	400622'	260 17 0 00 401017'		PUSHJ	P,GETNUM	;GET RIGHT HALF
   482	400623'	254 00 0 00 400101'		JRST	BAD		;ILLEGAL
   483	400624'	540 07 0 00 000001		HRR	TEMP,A		;STORE IT
   484	400625'	202 07 0 00 000040'	STPNT:	MOVEM	TEMP,POINAR+4	;RETAIN
   485	400626'	260 17 0 00 400643'		PUSHJ	P,GETDSK	;GET DISK CHARACTERISTICS
   486						MESS	[ASCIZ /
   487	400627'	001 00 0 00 401320'	POINTER SHOWS /]
   488	400630'	135 05 0 00 000034'		LDB	Z,POINAR	;GET CLUSTER COUNT
   489	400631'	260 17 0 00 401070'		PUSHJ	P,PRNTIT	;PRINT IT
   490	400632'	001 00 0 00 401324'		MESS	[ASCIZ /CLUSTERS (/]
   491	400633'	220 05 0 00 000037'		IMUL	Z,POINAR+3	;CONVERT TO BLOCKS
   492	400634'	260 17 0 00 401070'		PUSHJ	P,PRNTIT	;PRINT IT
   493	400635'	001 00 0 00 401327'		MESS	[ASCIZ /BLOCKS) STARTING AT BLOCK NUMBER /]
   494	400636'	135 05 0 00 000036'		LDB	Z,POINAR+2	;GET LOGICAL ADDRESS
   495	400637'	220 05 0 00 000037'		IMUL	Z,POINAR+3	;CONVERT TO BLOCKS
   496	400640'	260 17 0 00 401070'		PUSHJ	P,PRNTIT	;PRINT IT
   497	400641'	001 00 0 00 401167'		MESS	CARLF		;FINISH OFF
   498	400642'	254 00 0 00 400113'		JRST	NXTCM		;EXIT
   499
   500	400643'	201 01 0 00 000001	GETDSK:	MOVEI	A,1		;SET FOR HOME BLOCK
   501	400644'	250 01 0 00 000010		EXCH	A,READ		;RETAIN OLD BLOCK NUMBER
   502	400645'	260 17 0 00 400360'		PUSHJ	P,INBLK+1	;READ BLOCK

USET LOW LEVEL DISK MANIPULATOR.	MACRO 46(52) 12:11  3-FEB-72 PAGE 3-7
USET	MAC	 3-FEB-72 11:34		THE HATFIELD POLYTECHNIC COMPUTER CENTRE--C.MITCHELL 1971

   503	400646'	250 01 0 00 000010		EXCH	A,READ		;RESET
   504	400647'	200 01 0 00 401336'		MOVE	A,[XWD BLKBUF+16,POINAR] ;SET FOR BLT
   505	400650'	251 01 0 00 000037'		BLT	A,POINAR+3	;AND BLTIT
   506	400651'	254 00 0 00 400360'		JRST	INBLK+1		;RE-READ BLOCK AND RETURN
   507
   508	400652'	332 00 0 00 000033'	CHKSUM:	SKIPE	SUMCHK		;SKIP IF FIRST ONE
   509	400653'	263 17 0 00 000000		POPJ	P,		;ELSE IGNORE IT
   510	400654'	200 07 0 00 000465'		MOVE	TEMP,BLKBUF		;GET FIRST WORD
   511	400655'	200 02 0 00 000035'		MOVE	B,POINAR+1	;GET BYTE POINTER
   512	400656'	135 03 0 00 401337'		LDB	C,[POINT 6,B,11];GET SIZE OF CHECKSUM FIELD
   513	400657'	213 00 0 00 000003		MOVNS	C		;NEGATE IT
   514	400660'	625 02 0 00 770000		TLZA	B,770000	;SET FOR BIT 35
   515	400661'	270 07 0 00 000016	CHKSM1:	ADD	TEMP,K		;SECOND TIME AROUND ADD BYTE
   516	400662'	135 16 0 00 000002		LDB	K,B		;ELSE GET BYTE
   517	400663'	242 07 0 03 000000		LSH	TEMP,(C)	;LOSE BYTE
   518	400664'	326 07 0 00 400661'		JUMPN	TEMP,CHKSM1	;KEEP GOING IF MORE
   519	400665'	322 16 0 00 400670'		JUMPE	K,.+3		;SKIP IF ZERO
   520	400666'	202 16 0 00 000033'		MOVEM	K,SUMCHK	;ELSE STORE SUMCHK
   521	400667'	263 17 0 00 000000		POPJ	P,		;AND RETURN
   522	400670'	476 00 0 00 000033'		SETOM	SUMCHK		;FLAG ZERO SUMCHK
   523	400671'	263 17 0 00 000000		POPJ	P,
   524
   525	400672'	336 00 0 00 000040'	GROPE:	SKIPN	POINAR+4	;POINTER SET?
   526	400673'	254 00 0 00 400751'		JRST	DOPFST		;NO TELL HIM
   527	400674'	260 17 0 00 401017'		PUSHJ	P,GETNUM	;NEW SEARCH WORD
   528	400675'	254 00 0 00 400706'		JRST	GRP		;NO
   529	400676'	323 16 0 00 400701'		JUMPLE	K,.+3		;SKIP IF NOT INDIRECT
   530	400677'	200 12 0 00 000001		MOVE	FIND,A		;ELSE GET WHOLE WORD
   531	400700'	254 00 0 00 400706'		JRST	GRP		;AND CONTINUE
   532	400701'	550 12 0 00 000001		HRRZ	FIND,A		;GET FIRST HALF
   533	400702'	260 17 0 00 401017'		PUSHJ	P,GETNUM	;GET NEXT HALF
   534	400703'	334 01 0 00 000012		SKIPA	A,FIND		;NONE THERE
   535	400704'	207 00 0 00 000012		MOVSS	FIND		;ELSE SWAP HALVES
   536	400705'	540 12 0 00 000001		HRR	FIND,A		;SET RIGHT HALF
   537	400706'	200 07 0 00 000040'	GRP:	MOVE	TEMP,POINAR+4	;GET POINTER
   538	400707'	135 14 0 00 000036'		LDB	TEMP2,POINAR+2	;GETT START BLOCK
   539	400710'	220 14 0 00 000037'		IMUL	TEMP2,POINAR+3	;CONVERT TO PHYSICAL BLOCK NUMBER
   540	400711'	135 00 0 00 000034'		LDB	Q,POINAR	;GET CLUSTER COUNT
   541	400712'	220 00 0 00 000037'		IMUL	Q,POINAR+3	;CONVERT TO BLOCKS
   542	400713'	402 00 0 00 000033'		SETZM	SUMCHK		;CLEAR CHECK SUM
   543	400714'	200 01 0 00 000014	HEDER:	MOVE	A,TEMP2		;GET BLOCK NUMBER
   544	400715'	260 17 0 00 400357'		PUSHJ	P,INBLK		;READ IT
   545	400716'	476 00 0 00 000032'		SETOM	PNTHDD		;SET FLAG
   546	400717'	260 17 0 00 400340'		PUSHJ	P,STUP		;SEARCH IT
   547	400720'	201 13 0 00 000465'		MOVEI	TEMP1,BLKBUF	;SET BASE OF BUFFER
   548	400721'	260 17 0 00 400552'		PUSHJ	P,TSTRIB	;RIB?
   549	400722'	260 17 0 00 400652'		PUSHJ	P,CHKSUM	;CHECKSUM IT
   550	400723'	350 00 0 00 000014		AOS	TEMP2		;BUMP READ
   551	400724'	367 00 0 00 400714'		SOJG	Q,HEDER		;MORE TO DO?
   552	400725'	402 00 0 00 000032'		SETZM	PNTHDD		;CLEAR FLAG
   553						MESS	[ASCIZ /
   554					
   555	400726'	001 00 0 00 401340'	CFP IS /]

USET LOW LEVEL DISK MANIPULATOR.	MACRO 46(52) 12:11  3-FEB-72 PAGE 3-8
USET	MAC	 3-FEB-72 11:34		THE HATFIELD POLYTECHNIC COMPUTER CENTRE--C.MITCHELL 1971

   556	400727'	200 07 0 00 000040'		MOVE	TEMP,POINAR+4	;GET POINTER
   557	400730'	460 01 0 00 000033'		SETCM	A,SUMCHK	;GET COMPLEMENT OF SUMCHK
   558	400731'	336 00 0 00 000001		SKIPN	A		;SKIP IF NOT ZERO
   559	400732'	402 00 0 00 000033'		SETZM	SUMCHK		;ELSE CLEAR SUMCHK
   560	400733'	135 01 0 00 000035'		LDB	A,POINAR+1	;GET CHECKSUM
   561	400734'	312 01 0 00 000033'		CAME	A,SUMCHK	;SAME?
   562	400735'	254 00 0 00 400740'		JRST	.+3		;NO
   563						MESS	[ASCIZ /CORRECT
   564	400736'	001 00 0 00 401343'	/]
   565	400737'	254 00 0 00 400113'		JRST	NXTCM		;GET NEXT COMMAND
   566	400740'	200 01 0 00 000033'		MOVE	A,SUMCHK	;GET CHECKSUM
   567	400741'	137 01 0 00 000035'		DPB	A,POINAR+1	;STORE IT
   568						MESS	[ASCIZ /INCORRECT
   569	400742'	001 00 0 00 401345'	CORRECT VERSION IS /]
   570	400743'	554 05 0 00 000007		HLRZ	Z,TEMP		;GET LEFT HALF
   571	400744'	260 17 0 00 401071'		PUSHJ	P,PRINIT	;PRINT IT
   572	400745'	550 05 0 00 000007		HRRZ	Z,TEMP		;GET RIGHT HALF
   573	400746'	260 17 0 00 401071'		PUSHJ	P,PRINIT	;PRINT IT
   574	400747'	001 00 0 00 401166'		MESS	CARLFLF		;FINISH UP
   575	400750'	254 00 0 00 400113'		JRST	NXTCM		;EXIT
   576
   577					DOPFST:	MESS	[ASCIZ /
   578					PLEASE SET POINTER FIRST
   579	400751'	001 00 0 00 401354'	/]
   580	400752'	254 00 0 00 400113'		JRST	NXTCM
   581
   582	400753'	260 17 0 00 400773'	CHOME:	PUSHJ	P,GETATM	;GET DEVICE
   583	400754'	254 00 0 00 400101'		JRST	BAD		;NONE THERE
   584	400755'	202 01 0 00 000010'		MOVEM	A,DEV2		;STORE IT
   585	400756'	050 03 0 00 000007'		OPEN	3,CH3		;OPEN A CHANNEL
   586	400757'	254 00 0 00 400365'		JRST	BOOB		;CANNOT
   587	400760'	260 17 0 00 400500'		PUSHJ	P,CHGHOM	;CHANGE HOM BLOCKS
   588	400761'	254 00 0 00 400113'		JRST	NXTCM		;NEXT PLEASE
   589
   590	400762'	336 00 0 00 000032'	PNTFND:	SKIPN	PNTHDD		;PRINT HEADER?
   591	400763'	254 00 0 00 400771'		JRST	JSTNUM		;NO
   592	400764'	402 00 0 00 000032'		SETZM	PNTHDD		;CLEAR FLAG
   593						MESS	[ASCIZ /
   594					
   595	400765'	001 00 0 00 401362'	BLOCK NUMBER /]
   596	400766'	200 05 0 00 000010		MOVE	Z,READ		;GET BLOCK NUMBER
   597	400767'	260 17 0 00 401070'		PUSHJ	P,PRNTIT	;PRINT IT
   598	400770'	001 00 0 00 401166'		MESS	CARLFLF
   599	400771'	200 05 0 00 000001	JSTNUM:	MOVE	Z,A		;GET WORD ADDRESS
   600	400772'	254 00 0 00 401070'		JRST	PRNTIT		;PRINT IT
   601
   602						PAGE

USET LOW LEVEL DISK MANIPULATOR.	MACRO 46(52) 12:11  3-FEB-72 PAGE 4
USET	MAC	 3-FEB-72 11:34		THE HATFIELD POLYTECHNIC COMPUTER CENTRE--C.MITCHELL 1971

   603	400773'	400 01 0 00 000000	GETATM: SETZ	A,0		;CLEAR A
   604	400774'	200 04 0 00 401366'		MOVE	X,[XWD 440600,A];SET UP BP
   605	400775'	002 00 0 00 000005	NEXT:	CHRIN	Z		;GET CHR IN Z
   606	400776'	301 05 0 00 000060		CAIL	Z,"0"		;DIGIT?
   607	400777'	303 05 0 00 000071		CAILE	Z,"9"		;ANY OF THEM?
   608	401000'	334 00 0 00 000000		SKIPA			;NO
   609	401001'	254 00 0 00 401005'		JRST	OMIT		;YES
   610	401002'	301 05 0 00 000101		CAIL	Z,"A"		;LETTER?
   611	401003'	303 05 0 00 000132		CAILE	Z,"Z"		;ANY OF THEM
   612	401004'	254 00 0 00 401011'		JRST	DONE		;NO
   613	401005'	275 05 0 00 000040	OMIT:	SUBI	Z,40		;SIXBITIT
   614	401006'	603 04 0 00 770000		TLNE	X,770000	;ALL IN?
   615	401007'	136 05 0 00 000004		IDPB	Z,X		;NO,STORE IT
   616	401010'	254 00 0 00 400775'		JRST	NEXT		;GET NEXT
   617	401011'	306 05 0 00 000040	DONE:	CAIN	Z,40		;SPACE
   618	401012'	322 01 0 00 400775'		JUMPE	A,NEXT	 	;IF LEADING,IGNORE
   619	401013'	200 02 0 00 000005		MOVE	B,Z		;LAST CHAR IN B
   620	401014'	332 00 0 00 000001		SKIPE	A		;SKIP IF ONE NOT FOUND
   621	401015'	350 00 0 17 000000		AOS	(P)		;SKIP RETURN
   622	401016'	263 17 0 00 000000		POPJ	P,		;RETURN.
   623
   624	401017'	403 01 0 00 000016	GETNUM: SETZB	A,K		;CLEAR A
   625	401020'	002 00 0 00 000005	TAGN:	CHRIN	Z		;GET CHAR IN Z
   626	401021'	301 05 0 00 000060		CAIL	Z,"0"		;DIGIT
   627	401022'	303 05 0 00 000067		CAILE	Z,"7"		;ANY OF THEM(OCTAL)
   628	401023'	254 00 0 00 401031'		JRST	DUN		;NO
   629	401024'	242 01 0 00 000003		LSH	A,3		;LEFT SHIFT A
   630	401025'	275 05 0 00 000060		SUBI	Z,60		;DIGITISE IT
   631	401026'	476 00 0 00 000016		SETOM	K		;SET K
   632	401027'	270 01 0 00 000005		ADD	A,Z		;ADD IT IN
   633	401030'	254 00 0 00 401020'		JRST	TAGN		;GET NEXT
   634	401031'	302 05 0 00 000100	DUN:	CAIE	Z,"@"		;INDIRECT?
   635	401032'	254 00 0 00 401035'		JRST	.+3		;NO
   636	401033'	200 01 0 01 000465'		MOVE	A,BLKBUF(A)	;GET ENTRY FROM BUFFER
   637	401034'	202 05 0 00 000016		MOVEM	Z,K		;SET INDIRECT FLAG
   638	401035'	326 16 0 00 401047'		JUMPN	K,CPOPJ		;SKIP IF NUMBER PRESENT
   639	401036'	306 05 0 00 000040		CAIN	Z,40		;SKIP IF NOT SPACE
   640	401037'	254 00 0 00 401020'		JRST	TAGN		;IGNORE LEADERS
   641	401040'	302 05 0 00 000057		CAIE	Z,"/"		;SLASH?
   642	401041'	254 00 0 00 401044'		JRST	.+3		;NO
   643	401042'	200 04 0 00 401367'		MOVE	X,[XWD 220600,A];SET MINI BP
   644	401043'	254 00 0 00 400775'		JRST	NEXT		;GET SIXBIT CHARS
   645	401044'	302 05 0 00 000015		CAIE	Z,15		;CR?
   646	401045'	306 05 0 00 000012		CAIN	Z,12		;LF?
   647	401046'	322 16 0 00 401050'		JUMPE	K,.+2		;SKIP IF NUMBER FOUND.
   648	401047'	350 00 0 17 000000	CPOPJ:	AOS	(P)		;SKIP RETURN WITH NUMBER
   649	401050'	263 17 0 00 000000	TPOPJ:	POPJ	P,		;RETURN
   650
   651
   652	401051'				OUTWRD: 			;OCTAL DUMP WORD IN BUFFER
   653									;INDEXED BY A.
   654	401051'	200 02 0 01 000465'		MOVE	B,BLKBUF(A)	;GET WORD
   655	401052'	326 02 0 00 401056'		JUMPN	B,NOTZER	;SKIP IF NOT ZERO

USET LOW LEVEL DISK MANIPULATOR.	MACRO 46(52) 12:11  3-FEB-72 PAGE 4-1
USET	MAC	 3-FEB-72 11:34		THE HATFIELD POLYTECHNIC COMPUTER CENTRE--C.MITCHELL 1971

   656	401053'	326 06 0 00 401050'		JUMPN	SUP,TPOPJ	;OUT IF SUPPRESSING.
   657	401054'	474 06 0 00 000000		SETO	SUP,0		;ELSE SET SUP.
   658	401055'	254 00 0 00 401066'		JRST	CRLF		;AND PRINT ONLY CRLF
   659	401056'	400 06 0 00 000000	NOTZER: SETZ	SUP,0		;CLEAR SUPPRESSOR.
   660	401057'	476 00 0 00 000031'		SETOM	SUPRES		;SET FLAG
   661	401060'	550 05 0 00 000001		HRRZ	Z,A		;GET ADDRESS
   662	401061'	260 17 0 00 401071'		PUSHJ	P,PRINIT	;PRINT IT
   663	401062'	554 05 0 00 000002		HLRZ	Z,B		;GET LH OF WORD.
   664	401063'	260 17 0 00 401071'		PUSHJ	P,PRINIT	;PRINT IT
   665	401064'	550 05 0 00 000002		HRRZ	Z,B		;GET RH OF WORD
   666	401065'	260 17 0 00 401071'		PUSHJ	P,PRINIT	;PRINT IT
   667	401066'	001 00 0 00 401167'	CRLF:	MESS	CARLF		;PRINT CARLF
   668	401067'	263 17 0 00 000000		POPJ	P,		;RETURN
   669
   670	401070'	402 00 0 00 000031'	PRNTIT:	SETZM	SUPRES		;DON'T WANT LEADING ZEROS
   671	401071'	200 04 0 00 401370'	PRINIT: MOVE	X,[XWD 220300,Z];SET BP
   672	401072'	134 03 0 00 000004	GETCH:	ILDB	C,X		;GET DIGIT
   673	401073'	326 03 0 00 401076'		JUMPN	C,.+3		;SKIP IF NOT ZERO
   674	401074'	336 00 0 00 000031'		SKIPN	SUPRES		;SKIP IF NOT SUPRESSING
   675	401075'	254 00 0 00 401101'		JRST	TESTMR		;ELSE IGNORE IT
   676	401076'	476 00 0 00 000031'	PNTLST:	SETOM	SUPRES		;AND SET FLAG
   677	401077'	271 03 0 00 000060		ADDI	C,60		;ASCIIFY IT
   678	401100'	005 00 0 00 000003		CHROUT	C		;OUTPUT CHAR.
   679	401101'	603 04 0 00 770000	TESTMR:	TLNE	X,770000	;ALL DONE?
   680	401102'	254 00 0 00 401072'		JRST	GETCH		;GET NEXT
   681	401103'	336 00 0 00 000031'		SKIPN	SUPRES		;SKIP IF CHAR PRODUCED
   682	401104'	254 00 0 00 401076'		JRST	PNTLST		;ELSE PRINT ZERO
   683	401105'	005 00 0 00 401371'	SPSOUT:	CHROUT	[EXP 40]	;PRINT SPACE
   684	401106'	263 17 0 00 000000		POPJ	P,		;RETURN
   685						PAGE

USET LOW LEVEL DISK MANIPULATOR.	MACRO 46(52) 12:11  3-FEB-72 PAGE 5
USET	MAC	 3-FEB-72 11:34		THE HATFIELD POLYTECHNIC COMPUTER CENTRE--C.MITCHELL 1971

   686					ERR1:	TTCALL	3,[ASCIZ/
   687					CANNOT INIT TTY CHANNEL
   688	401107'	051 03 0 00 401372'	/]
   689	401110'	047 00 0 00 000012		CALLI	12		;EXIT
   690
   691	401111'	476 00 0 00 000027'	GARB:	SETOM	CLRUP		;SET CLEAR UP
   692	401112'	002 00 0 00 000001		CHRIN	A		;GET CHAR
   693	401113'	302 01 0 00 000012		CAIE	A,12		;LF?
   694	401114'	254 00 0 00 401111'		JRST	GARB		;NO
   695	401115'	263 17 0 00 000000		POPJ	P,		;RETURN.
   696
   697					LIST:	MESS	[ASCIZ/
   698	401116'	001 00 0 00 401400'	CURRENT INPUT DEVICE /]
   699	401117'	200 01 0 00 000005'		MOVE	A,DEVICE	;GET DEVICE
   700	401120'	260 17 0 00 401133'		PUSHJ	P,SIXOUT	;PRINT NAME
   701						MESS	[ASCIZ/
   702	401121'	001 00 0 00 401405'	LAST BLOCK READ WAS /]
   703	401122'	200 05 0 00 000010		MOVE	Z,READ	 	;GET NUMBER
   704	401123'	260 17 0 00 401070'		PUSHJ	P,PRNTIT	;PRINT IT
   705						MESS	[ASCIZ/
   706	401124'	001 00 0 00 401412'	CURRENT SEARCH WORD /]
   707	401125'	554 05 0 00 000012		HLRZ	Z,FIND
   708	401126'	260 17 0 00 401071'		PUSHJ	P,PRINIT	;PRINT IT
   709	401127'	550 05 0 00 000012		HRRZ	Z,FIND	 	;GET RIGHT HALF
   710	401130'	260 17 0 00 401071'		PUSHJ	P,PRINIT	;PRINT IT
   711	401131'	001 00 0 00 401166'		MESS	CARLFLF
   712	401132'	254 00 0 00 400113'		JRST	NXTCM		;GET NEXT COMMAND.
   713
   714	401133'	200 04 0 00 401366'	SIXOUT: MOVE	X,[XWD 440600,A];SET BP
   715	401134'	134 03 0 00 000004		ILDB	C,X		;GET CHAR.
   716	401135'	271 03 0 00 000040		ADDI	C,40		;ASCIIFY IT
   717	401136'	005 00 0 00 000003		CHROUT	C		;PRINT CHAR.
   718	401137'	603 04 0 00 770000		TLNE	X,770000	;ALL DONE?
   719	401140'	254 00 0 00 401134'		JRST	SIXOUT+1	;DO NEXT
   720	401141'	254 00 0 00 401105'		JRST	SPSOUT		;PRINT SPACE
   721
   722	401142'	554 05 0 00 000001	OCTOUT: HLRZ	Z,A		;GET LEFT HALF
   723	401143'	476 00 0 00 000031'		SETOM	SUPRES		;FORCE 12 CHARS
   724	401144'	260 17 0 00 401071'		PUSHJ	P,PRINIT	;PRINTIT
   725	401145'	550 05 0 00 000001		HRRZ	Z,A		;GET RIGHT HALF
   726	401146'	254 00 0 00 401071'		JRST	PRINIT		;PRINTIT AND RETURN.
   727
   728	401147'	260 17 0 00 401111'	GETANS: PUSHJ	P,GARB		;CLEAR UP
   729	401150'	002 00 0 00 000005		CHRIN	Z		;GET CHAR
   730	401151'	306 05 0 00 000131		CAIN	Z,"Y"		;YES?
   731	401152'	354 00 0 17 000000		AOSA	(P)		;SKIP
   732	401153'	306 05 0 00 000116		CAIN	Z,"N"		;NO?
   733	401154'	263 17 0 00 000000		POPJ	P,		;RETURN
   734						MESS	[ASCIZ/
   735					PLEASE ANSWER Y OR N
   736	401155'	001 00 0 00 401417'	?/]
   737	401156'	254 00 0 00 401150'		JRST	GETANS+1	;TRY AGAIN.
   738

USET LOW LEVEL DISK MANIPULATOR.	MACRO 46(52) 12:11  3-FEB-72 PAGE 5-1
USET	MAC	 3-FEB-72 11:34		THE HATFIELD POLYTECHNIC COMPUTER CENTRE--C.MITCHELL 1971

   739	401157'	050 02 0 00 000004'	INTAL:	OPEN	2,CH2		;OPENINPUT CHANNEL
   740	401160'	254 00 0 00 400101'		JRST	BAD		;CANNOT
   741	401161'	050 03 0 00 000007'		OPEN	3,CH3		;AND THE OUTPUT CHANNEL
   742	401162'	254 00 0 00 400101'		JRST	BAD		;CANNOT
   743	401163'	263 17 0 00 000000		POPJ	P,		;RETURN
   744						PAGE

USET LOW LEVEL DISK MANIPULATOR.	MACRO 46(52) 12:11  3-FEB-72 PAGE 6
USET	MAC	 3-FEB-72 11:34		THE HATFIELD POLYTECHNIC COMPUTER CENTRE--C.MITCHELL 1971

   745						;I/0 LISTS ETC
   746	401164'	777770	000454'		PLIST:	IOWD	10,STACK	;PUSH DOWN POINTER
   747	401165'	064245	200000		STRWRD: XWD	064245,200000	;CR LF*
   748	401166'	064241	200000		CARLFL:	XWD	064241,200000	;CR LF LF
   749	401167'	064240	000000		CARLF:	XWD	064240,0	;CR LF
   750	401170'					LIT			;EXPAND LITERALS HERE
   751	401170'	65 63 45 64 51 00
   752	401171'	65 63 45 64 57 00
   753	401172'	777600	000464'
   754	401173'	260 17 0 00 400134'
   755	401174'	350703	000000
   756	401175'	015 012 111 114 114
   757	401176'	105 107 101 114 040
   758	401177'	103 117 115 115 101
   759	401200'	116 104 015 012 000
   760	401201'	331100	000040
   761	401202'	040 111 123 040 000
   762	401203'	040 000 000 000 000
   763	401204'	040 117 056 113 056
   764	401205'	077 040 000 000 000
   765	401206'	015 012 104 125 115
   766	401207'	120 040 117 106 040
   767	401210'	102 114 117 103 113
   768	401211'	040 000 000 000 000
   769	401212'	040 117 116 040 104
   770	401213'	105 126 111 103 105
   771	401214'	040 000 000 000 000
   772	401215'	777600	000000
   773	401216'	015 012 127 122 111
   774	401217'	124 105 040 102 114
   775	401220'	117 103 113 040 116
   776	401221'	125 115 102 105 122
   777	401222'	040 000 000 000 000
   778	401223'	015 012 103 117 116
   779	401224'	106 111 122 115 077
   780	401225'	000 000 000 000 000
   781	401226'	015 012 106 101 111
   782	401227'	114 105 104 041 041
   783	401230'	015 012 000 000 000
   784	401231'	015 012 103 117 120
   785	401232'	131 040 106 122 117
   786	401233'	115 040 104 105 126
   787	401234'	111 103 105 040 000
   788	401235'	040 124 117 040 104
   789	401236'	105 126 111 103 105
   790	401237'	040 000 000 000 000
   791	401240'	040 123 105 124 124
   792	401241'	111 116 107 040 111
   793	401242'	104 105 116 124 111
   794	401243'	124 131 000 000 000
   795	401244'	015 012 103 117 116
   796	401245'	106 111 122 115 077
   797	401246'	040 000 000 000 000

USET LOW LEVEL DISK MANIPULATOR.	MACRO 46(52) 12:11  3-FEB-72 PAGE 6-1
USET	MAC	 3-FEB-72 11:34		THE HATFIELD POLYTECHNIC COMPUTER CENTRE--C.MITCHELL 1971

   798	401247'	000000	000001
   799	401250'	015 012 106 117 122
   800	401251'	040 124 110 105 040
   801	401252'	106 117 114 114 117
   802	401253'	127 111 116 107 040
   803	401254'	120 101 122 101 115
   804	401255'	105 124 105 122 123
   805	401256'	040 124 131 120 105
   806	401257'	040 103 101 122 122
   807	401260'	111 101 107 105 040
   808	401261'	122 105 124 125 122
   809	401262'	116 040 111 106 040
   810	401263'	117 056 113 056 015
   811	401264'	012 105 114 123 105
   812	401265'	040 124 131 120 105
   813	401266'	040 124 110 105 040
   814	401267'	116 105 127 040 126
   815	401270'	101 114 125 105 015
   816	401271'	012 000 000 000 000
   817	401272'	015 012 125 116 111
   818	401273'	124 040 111 104 000
   819	401274'	015 012 123 124 122
   820	401275'	125 103 124 125 122
   821	401276'	105 040 116 101 115
   822	401277'	105 000 000 000 000
   823	401300'	015 012 123 124 122
   824	401301'	125 103 124 125 122
   825	401302'	105 040 116 125 115
   826	401303'	102 105 122 000 000
   827	401304'	015 012 120 117 123
   828	401305'	111 124 111 117 116
   829	401306'	040 111 116 040 123
   830	401307'	131 123 040 123 105
   831	401310'	101 122 103 110 040
   832	401311'	114 111 123 124 000
   833	401312'	000000	000012
   834	401313'	777635	000033
   835	401314'	015 012 102 101 104
   836	401315'	040 102 114 117 103
   837	401316'	113 040 116 125 115
   838	401317'	102 105 122 040 000
   839	401320'	015 012 120 117 111
   840	401321'	116 124 105 122 040
   841	401322'	123 110 117 127 123
   842	401323'	040 000 000 000 000
   843	401324'	103 114 125 123 124
   844	401325'	105 122 123 040 050
   845	401326'	000 000 000 000 000
   846	401327'	102 114 117 103 113
   847	401330'	123 051 040 123 124
   848	401331'	101 122 124 111 116
   849	401332'	107 040 101 124 040
   850	401333'	102 114 117 103 113

USET LOW LEVEL DISK MANIPULATOR.	MACRO 46(52) 12:11  3-FEB-72 PAGE 6-2
USET	MAC	 3-FEB-72 11:34		THE HATFIELD POLYTECHNIC COMPUTER CENTRE--C.MITCHELL 1971

   851	401334'	040 116 125 115 102
   852	401335'	105 122 040 000 000
   853	401336'	000503'	000034'
   854	401337'	30 06 0 00 000002
   855	401340'	015 012 015 012 103
   856	401341'	106 120 040 111 123
   857	401342'	040 000 000 000 000
   858	401343'	103 117 122 122 105
   859	401344'	103 124 015 012 000
   860	401345'	111 116 103 117 122
   861	401346'	122 105 103 124 015
   862	401347'	012 103 117 122 122
   863	401350'	105 103 124 040 126
   864	401351'	105 122 123 111 117
   865	401352'	116 040 111 123 040
   866	401353'	000 000 000 000 000
   867	401354'	015 012 120 114 105
   868	401355'	101 123 105 040 123
   869	401356'	105 124 040 120 117
   870	401357'	111 116 124 105 122
   871	401360'	040 106 111 122 123
   872	401361'	124 015 012 000 000
   873	401362'	015 012 015 012 102
   874	401363'	114 117 103 113 040
   875	401364'	116 125 115 102 105
   876	401365'	122 040 000 000 000
   877	401366'	440600	000001
   878	401367'	220600	000001
   879	401370'	220300	000005
   880	401371'	000000	000040
   881	401372'	015 012 103 101 116
   882	401373'	116 117 124 040 111
   883	401374'	116 111 124 040 124
   884	401375'	124 131 040 103 110
   885	401376'	101 116 116 105 114
   886	401377'	015 012 000 000 000
   887	401400'	015 012 103 125 122
   888	401401'	122 105 116 124 040
   889	401402'	111 116 120 125 124
   890	401403'	040 104 105 126 111
   891	401404'	103 105 040 000 000
   892	401405'	015 012 114 101 123
   893	401406'	124 040 102 114 117
   894	401407'	103 113 040 122 105
   895	401410'	101 104 040 127 101
   896	401411'	123 040 000 000 000
   897	401412'	015 012 103 125 122
   898	401413'	122 105 116 124 040
   899	401414'	123 105 101 122 103
   900	401415'	110 040 127 117 122
   901	401416'	104 040 000 000 000
   902	401417'	015 012 120 114 105
   903	401420'	101 123 105 040 101

USET LOW LEVEL DISK MANIPULATOR.	MACRO 46(52) 12:11  3-FEB-72 PAGE 6-3
USET	MAC	 3-FEB-72 11:34		THE HATFIELD POLYTECHNIC COMPUTER CENTRE--C.MITCHELL 1971

   904	401421'	116 123 127 105 122
   905	401422'	040 131 040 117 122
   906	401423'	040 116 015 012 077
   907	401424'	000 000 000 000 000
   908						PAGE

USET LOW LEVEL DISK MANIPULATOR.	MACRO 46(52) 12:11  3-FEB-72 PAGE 7
USET	MAC	 3-FEB-72 11:34		THE HATFIELD POLYTECHNIC COMPUTER CENTRE--C.MITCHELL 1971

   909
   910
   911
   912
   913						;WORK AREA
   914	000000'					RELOC	0
   915
   916	000000'				COPYBK:	BLOCK	2
   917	000002'				COPYST:	BLOCK	2
   918	000004'				CH2:	BLOCK	1
   919	000005'				DEVICE:
   920	000005'				DEV1:	BLOCK	1
   921	000006'					BLOCK	1
   922	000007'				CH3:	BLOCK	1
   923	000010'				DEVIDE:
   924	000010'				DEV2:	BLOCK	1
   925	000011'					BLOCK	1
   926	000012'				INFL:	BLOCK	4
   927	000016'				OUTFL:	BLOCK	4
   928	000022'				EXT:	BLOCK	1
   929	000023'				STR:	BLOCK	1			;FOR FILE STRUCTURE NAME
   930	000024'				STRNO:	BLOCK	1			;FOR FILE STRUCTURE NUMBER
   931	000025'				ID:	BLOCK	1			;UNIT IDENTITY
   932	000026'				SYSCH:	BLOCK	1			;SYS SEARCH LIST POSITION
   933	000027'				CLRUP:	BLOCK	1
   934	000030'				TTYP:	BLOCK	1			;IF NON ZERO OUTPUT IS TO TTY
   935	000031'				SUPRES:	BLOCK	1			;IF ZERO SUPRESS LEADING 0'S
   936	000032'				PNTHDD:	BLOCK	1
   937	000033'				SUMCHK:	BLOCK	1
   938	000034'				POINAR:	BLOCK	5		;CONTAINS DISK CHARACTERISTICS FROM HOM
   939	000041'				ITTY:	BLOCK	3		;INPUT BUFFER HEADER
   940	000044'				OTTY:	BLOCK	3		;OUTPUT BUFFER HEADER
   941	000047'				TTYBUF: BLOCK	406		;INPUT/OUTPUT BUFFERS.
   942	000455'				STACK:	BLOCK	10		;PUSH DOWN STACK
   943	000465'				BLKBUF: BLOCK	200		;EXPANDIBLE BUFFER.
   944	401425'					RELOC
   945			400000'			END	GSTART

NO ERRORS DETECTED

HI-SEG. BREAK IS 401425
PROGRAM BREAK IS 000665

3K CORE USED

USET LOW LEVEL DISK MANIPULATOR.	MACRO 46(52) 12:11  3-FEB-72 PAGE 8
USET	MAC	 3-FEB-72 11:34		SYMBOL TABLE

A		000001		HEDER		400714'		SLOW		400531'		
B		000002		HOMUP	003000	000000		SPSOUT		401105'		
BAD		400101'		HOMUPD		400214'		STACK		000455'		
BLKBUF		000465'		ID		000025'		START		400016'		
BOOB		400365'		INBLK		400357'		STPNT		400625'		
BOTTAB		400116'		INFL		000012'		STR		000023'		
C		000003		INTAL		401157'		STRNO		000024'		
CARLF		401167'		INUSE		400355'		STRWRD		401165'		
CARLFL		401166'		ITTY		000041'		STUP		400340'		
CH2		000004'		JOBFF		400047'	EXT	STUPP		400336'		
CH3		000007'		JSTNUM		400771'		SUMCHK		000033'		
CHGHOM		400500'		K		000016		SUP		000006		
CHIN		400164'		KEPON		400152'		SUPRES		000031'		
CHKSM1		400661'		LFDEF		400172'		SYSCH		000026'		
CHKSUM		400652'		LIST		401116'		TAGN		401020'		
CHOME		400753'		MESS	001000	000000		TELL		400600'		
CHOUT		400207'		MESSG		400147'		TEMP		000007		
CHRIN	002000	000000		NEWFL		400102'		TEMP1		000013		
CHROUT	005000	000000		NEXT		400775'		TEMP2		000014		
CLRTFL		400066'		NHOMD		400227'		TEST1		000015		
CLRUP		000027'		NHOMUP	004000	000000		TESTMR		401101'		
COMPRS		400474'		NOSTR		400574'		TOPTAB		400147'		
CONV2		400565'		NOTZER		401056'		TOPUUO		000005		
CONVRT		400564'		NTRIB		400563'		TPOPJ		401050'		
COPY		400367'		NXTCM		400113'		TST1		400455'		
COPYBK		000000'		NXTCMM		400071'		TSTRIB		400552'		
COPYST		000002'		OCTOUT		401142'		TTDEV		400032'		
CPOPJ		401047'		OMIT		401005'		TTYBUF		000047'		
CRLF		401066'		OTTY		000044'		TTYP		000030'		
DEPOSI		400264'		OUTCR		400201'		UPDHOM		400516'		
DEV1		000005'		OUTFL		000016'		USETTY		400031'		
DEV2		000010'		OUTUUO		400140'		USTDEV		400021'		
DEVICE		000005'		OUTWRD		401051'		UUOH		400134'		
DEVIDE		000010'		P		000017		UUOTAB		400142'		
DOALL		400250'		PLIST		401164'		WRITE		400300'		
DONE		401011'		PNTFND		400762'		X		000004		
DOPFST		400751'		PNTHDD		000032'		YUP		400177'		
DUN		401031'		PNTLST		401076'		Z		000005		
ERR1		401107'		POINAR		000034'		
EXAMIN		400242'		POINTR		400611'		
EXT		000022'		PRINIT		401071'		
FIND		000012		PRNTEM		400261'		
FINUP		400160'		PRNTIT		401070'		
GARB		401111'		Q		000000		
GETANS		401147'		READ		000010		
GETATM		400773'		READD		400346'		
GETCH		401072'		RPT1		400533'		
GETDSK		400643'		RPTR		400441'		
GETNUM		401017'		SAME		000011		
GETSH		400072'		SCAN		400074'		
GROPE		400672'		SEARCH		400324'		
GRP		400706'		SETBUF		400041'		
GSTART		400000'		SIXOUT		401133'		

A     	     8#	    68	    69	    74	    75	    76	    77	    78	    79	    84	    85	    86	    87	    88
	    90	    93	    97	   103	   104	   132	   133	   134	   135	   136	   150	   151	   154	   170
	   172	   173	   175	   179	   180	   183	   188	   197	   200	   209	   215	   223	   227	   229
	   234	   237	   240	   242	   247	   252	   255	   258	   271	   273	   275	   277	   281	   282
	   285	   290	   298	   312	   315	   321	   324	   330	   332	   333	   337	   338	   380	   381
	   393	   394	   396	   397	   399	   400	   402	   403	   420	   433	   466	   467	   469	   474
	   478	   480	   483	   500	   501	   503	   504	   505	   530	   532	   534	   536	   543	   557
	   558	   560	   561	   566	   567	   584	   599	   603	   604	   618	   620	   624	   629	   632
	   636	   643	   654	   661	   692	   693	   699	   714	   722	   725
B     	     9#	    71	    72	    95	    96	    97	   147	   148	   149	   150	   158	   282	   283	   316
	   344	   346	   347	   348	   349	   350	   351	   352	   370	   372	   373	   374	   375	   376
	   377	   378	   408	   409	   411	   413	   511	   512	   514	   516	   619	   654	   655	   663
	   665
BAD   	    96	   100#	   217	   233	   236	   239	   241	   311	   314	   473	   476	   482	   583	   740
	   742
BLKBUF	    44	   242	   282	   337	   344	   347	   349	   351	   372	   374	   376	   378	   380	   393
	   396	   399	   402	   409	   413	   448	   504	   510	   547	   636	   654	   943#
BOOB  	   246	   249	   251	   266	   292	   300	   304#	   339	   345	   371	   382	   388	   412	   417
	   586
BOTTAB	    94	   117#
C     	    10#	    94	    95	    98	    99	   189	   190	   201	   202	   512	   513	   517	   672	   673
	   677	   678	   715	   716	   717
CARLF 	   225	   226	   497	   667	   749#
CARLFL	   574	   598	   711	   748#
CH2   	    42	   299	   739	   918#
CH3   	    43	   250	   585	   741	   922#
CHGHOM	   336	   385#	   587
CHIN  	   140	   161#	   173
CHKSM1	   515#	   518
CHKSUM	   508#	   549
CHOME 	   129	   582#
CHOUT 	   143	   180#
CLRTFL	    86	    89#
CLRUP 	   167	   174	   691	   933#
COMPRS	   367	   380#
CONV2 	   449#	   458
CONVRT	   360	   428	   448#
COPY  	   125	   309#
COPYBK	    45	   264	   302	   343	   369	   386	   410	   415	   423	   429	   916#
COPYST	    47	   355	   361	   917#
CPOPJ 	   638	   648#
CRLF  	   658	   667#
DEPOSI	   122	   232#
DEV1  	   312	   321	   467	   920#
DEV2  	   315	   324	   584	   924#
DEVICE	   223	   290	   474	   699	   919#
DEVIDE	   247	   258	   923#
DOALL 	   214	   218#
DONE  	   612	   617#
DOPFST	   526	   577#
DUN   	   628	   634#
ERR1  	    63	    67	    83	   166	   686#
EXAMIN	   121	   212#
EXT   	    36	    77	   104	   928#
FIND  	    17#	    35	    36	    37	    38	    39	    40	    41	    42	    43	    44	    45	    46	    47
	    48	   271	   273	   275	   276	   277	   283	   530	   532	   534	   535	   536	   707	   709
FINUP 	   151	   156#
GARB  	   112	   194	   206	   691#	   694	   728
GETANS	   262	   330	   728#	   737
GETATM	   195	   245	   288	   310	   313	   472	   582	   603#
GETCH 	   672#	   680
GETDSK	   485	   500#
GETNUM	   207	   213	   232	   235	   238	   248	   268	   274	   291	   475	   481	   527	   533	   624#
GETSH 	    93#	   117
GROPE 	   128	   525#
GRP   	   528	   531	   537#
GSTART	    35#	   945
HEDER 	   543#	   551
HOMUPD	   141	   188#
ID    	   346	   370	   931#
INBLK 	   293	   295	   298#	   502	   506	   544
INFL  	    38	    78	    80	   107	   108	   926#
INTAL 	   318	   419	   431	   470	   739#
INUSE 	   289	   295#
ITTY  	    53	    62	   161	   168	   172	   939#
JOBFF 	    31#	    69	    72	    74
JSTNUM	   591	   599#
K     	    21#	   270	   477	   515	   516	   519	   520	   529	   624	   631	   637	   638	   647
KEPON 	   150#	   155
LFDEF 	   162	   167#
LIST  	   124	   697#
MESSG 	   139	   147#
NEWFL 	   103#	   126
NEXT  	   605#	   616	   618	   644
NHOMD 	   142	   200#
NOSTR 	   450	   453	   456#
NOTZER	   655	   659#
NTRIB 	   439	   442	   446#
NXTCM 	   112#	   230	   243	   263	   265	   279	   294	   296	   307	   334	   383	   498	   565	   575
	   580	   588	   712
NXTCMM	    92#	   114	   118
OCTOUT	   204	   722#
OMIT  	   609	   613#
OTTY  	    57	    66	   152	   154	   181	   183	   940#
OUTCR 	   171	   174#
OUTFL 	    40	    79	    82	   109	   110	   927#
OUTUUO	   136#	   159	   178	   184	   198	   210
OUTWRD	   228	   652#
P     	    22#	    50	    75	   112	   113	   132	   136	   137	   147	   158	   175	   176	   179	   188
	   192	   194	   195	   197	   200	   204	   206	   207	   209	   213	   221	   224	   228	   232
	   235	   238	   245	   248	   256	   259	   262	   268	   274	   278	   284	   286	   288	   291
	   293	   295	   303	   310	   313	   318	   322	   325	   333	   336	   360	   379	   416	   419
	   425	   428	   431	   445	   446	   449	   459	   464	   466	   468	   469	   472	   475	   481
	   485	   489	   492	   496	   502	   509	   521	   523	   527	   533	   544	   546	   548	   549
	   571	   573	   582	   587	   597	   621	   622	   648	   649	   662	   664	   666	   668	   684
	   695	   700	   704	   708	   710	   724	   728	   731	   733	   743
PLIST 	    50	   113	   746#
PNTFND	   284	   590#
PNTHDD	   545	   552	   590	   592	   936#
PNTLST	   676#	   682
POINAR	   484	   488	   491	   494	   495	   504	   505	   511	   525	   537	   538	   539	   540	   541
	   556	   560	   567	   938#
POINTR	   127	   472#
PRINIT	   571	   573	   662	   664	   666	   671#	   708	   710	   724	   726
PRNTEM	   216	   228#
PRNTIT	   221	   256	   464	   489	   492	   496	   597	   600	   670#	   704
Q     	     7#	   540	   541	   551
READ  	    15#	    48	   220	   289	   298	   301	   309	   353	   354	   364	   365	   420	   421	   422
	   432	   433	   463	   501	   503	   596	   703
READD 	   119	   288#
RPT1  	   421#	   434
RPTR  	   341	   353#	   366
SAME  	    16#	   309	   317	   326	   331	   335	   341	   358	   367	   426
SCAN  	    95#	    99
SEARCH	   123	   268#
SETBUF	    59	    68#
SIXOUT	   192	   224	   259	   322	   325	   468	   700	   714#	   719
SLOW  	   357	   363	   419#
SPSOUT	   683#	   720
STACK 	   746	   942#
START 	    49#	   111
STPNT 	   479	   484#
STR   	   348	   373	   929#
STRNO 	   350	   375	   454	   930#
STRWRD	    92	   747#
STUP  	   278	   281#	   546
STUPP 	   269	   272	   278#
SUMCHK	   508	   520	   522	   542	   557	   559	   561	   566	   937#
SUP   	    13#	   212	   656	   657	   659
SUPRES	   660	   670	   674	   676	   681	   723	   935#
SYSCH 	   352	   377	   932#
TAGN  	   625#	   633	   640
TELL  	   425	   461#
TEMP  	    14#	   234	   237	   242	   359	   427	   458	   478	   480	   483	   484	   510	   515	   517
	   518	   537	   556	   570	   572
TEMP1 	    18#	   437	   440	   443	   448	   451	   455	   456	   547
TEMP2 	    19#	   340	   444	   457	   538	   539	   543	   550
TEST1 	    20#	   437	   438	   440	   441	   443	   444	   451	   452	   454	   455
TESTMR	   675	   679#
TOPTAB	   144#	   145
TOPUUO	   134	   145#
TPOPJ 	   649#	   656
TST1  	   365#	   435
TSTRIB	   437#	   449	   548
TTDEV 	    61#	    87
TTYBUF	    68	    71	   941#
TTYP  	    89	    91	   156	   177	   934#
UPDHOM	   379	   405	   407#
USETTY	    54	    58	    60#
USTDEV	    52#	    84
UUOH  	    75	   132#
UUOTAB	   135	   139#	   145
WRITE 	   120	   245#
X     	    11#	   604	   614	   615	   643	   671	   672	   679	   714	   715	   718
YUP   	   164	   169	   172#
Z     	    12#	   220	   255	   463	   488	   491	   494	   495	   570	   572	   596	   599	   605	   606
	   607	   610	   611	   613	   615	   617	   619	   625	   626	   627	   630	   632	   634	   637
	   639	   641	   645	   646	   661	   663	   665	   671	   703	   707	   709	   722	   725	   729
	   730	   732
CHRIN 	    27#	    93	   605	   625	   692	   729
CHROUT	    30#	   678	   683	   717
HOMUP 	    28#	   394	   397	   400
MESS  	    26#	    92	   100	   190	   191	   193	   202	   203	   205	   218	   222	   225	   226	   253
	   257	   260	   304	   319	   323	   327	   328	   389	   461	   465	   486	   490	   493	   497
	   553	   563	   568	   574	   577	   593	   598	   667	   697	   701	   705	   711	   734
NHOMUP	    29#	   403