		NUCLEAR PHYSICS LABORATORY

		OXFORD.

		MAY 1970

	PROGRAM WIRE
	------------

		PROGRAM WIRE WAS WRITTEN BY RICHARD J. PLANO OF
	RUTGERS UNIVERSITY AND SUBMITTED TO 'DECUS' IN 1967 (NO 6-26).
	THE FOLLOWING DISCRIPTION IS SUPLEMENTARY TO TO THE 
	WRITEUP SUPPLIED BY 'DECUS' AND DESCRIBES CHANGES, MADE BY 
	P.J. HAGAN, WHICH WERE FOUND NECESSARY OR DESIRABLE WHEN THE 
	PROGRAM WAS USED AT OXFORD.  THIS DECRIPTION ASSUMES A 
	FAMILIARITY WITH THE 'DECUS' WRITEUP.


A.	CHANGES FOUND NECESSARY TO ALLOW RUNNING OF THE PROGRAM.
	--------------------------------------------------------

1)	AUTOMATIC CORE EXPANSION.  IN THE ORIGINAL PROGRAM SUFFICIENT CORE
	WAS ASSIGNED AT ASSEMBLY TIME FOR THE NUMBER OF ROWS SPECIFIED
	BY THE VALUE OF 'NROW' IN THE PARAMETER FILE 'PAR'.  IF AT RUN
	TIME THE NUMBER OF ROWS SPECIFIED WAS GREATER THAN ABOVE, THEN 
	MORE CORE WAS ASSIGNED TO THE MAP AREA BEGINNING AT 
	LOCATION 'MAP' IN FILE 'STOR'.  THE MANNER OF EXPANSION WAS SUCH 
	THAT IF 'STOR' WAS NOT THE LAST FILE LOADED, CODING BEYOND
	'STOR' AS ASSIGNED AS MAP STORAGE AND ZEROISED.  THIS MEANT 
	THAT FOR THE PROGRAM TO RUN SUCCESSFULLY A LIBRARY SEARCH HAD TO
	BE COMPLETED BEFORE 'STOR' WAS LOADED.
		IN THE CURRENT VERSION ALL MAP STORAGE AREA IS ASSIGNED
	AT RUN TIME.  LOCATION 'MAP' CONTAINS THE ADDRESS OF THE FIRST
	LOCATION OF THE MAP STORAGE AREA WHICH IS SET EQUAL TO JOBFF.
	IN THE TIME SHARED VERSION OF WIRE, THE CORE REQUIRED
	FOR THE DESIGNATED NUMBER OF ROWS IS OBTAINED USING THE CORE UUO.
	THE MESSAGE 'INSUFFICIENT CORE ? ' IS TYPED IF CORE IS NOT
	AVAILABLE OR IF IN A 10/40 SYSTEM THE USERS CORE CAN NOT BE
	EXPANDED.  SINCE THE UUO IS A NO-OP IN THE SINGLE USER MONITOR
	AND WOULD THUS ALWAYS RESULT IN THE ERROR RETURN,  THE CODE
	ASSOCIATED WITH THE UUO AND ITS ERROR MESSAGE IS ASSEBLED ONLY IF
	THE FEATURE TEST SWITCH 'FTSGL' DEFINED IN 'PAR' IS EQUAL TO ZERO.

2)	ERROR CHECKS ON SOURCE FILES.  IN THE ORIGINAL PROGRAM, CHECKS
	WERE MADE FOR SYNTAX ERRORS IN THE SOURCE FILES AND FOR 
	ILLEGAL ROWS, MODULE POSITIONS AND PINS.  WHEN AN ERROR WAS
	ENCOUNTERED A MESSAGE 'ERROR IN SEQUENCE #XXXX' WAS PRINTED ON
	THE LPT.  HOWEVER DUE TO FAILURE TO SAVE AN AC, THE PROGRAM
	WOULD LOOP ON THIS ERROR MESSAGE.  THIS FAULT HAS BEEN FIXED.

		WHEN THE SUB-PROGRAM 'CONIN' ENCOUNTERED ERRORS
	IN SCANNING THE SOURCE FILE 'WIRE.DAT' IT WOULD HALT.
	FROM THE PC VALUE THE TYPE OF ERROR COULD BE DETERMINED
	(E.G. A POINT IMPLICITLY GROUNDED).  HOWEVER NO 
	INDICATION WAS GIVEN OF THE LINE ON WHICH THE ERROR OCCURRED
	MAKING THE IDENTIFICATION OF THE ERROR DIFFICULT.  THE PROGRAM 
	HAS BEEN CHANGED SO THAT IT WILL STILL HALT TO IDENTIFY THE 
	TYPE OF ERROR, BUT ON CONINUING A 'TROUBLE AT SEQUENCE #' ERROR
	MESSAGE WILL BE GIVEN AND SCANNING OF THE SOURCE FILE WILL
	CONTINUE.


3)	DEFINITIONS OF JOBFF AND JOBSA.  THE VALUES OF THESE JOB 
	DATA AREA LOCATIONS WERE DEFINED IN THE PARAMETER FILE EQUAL
	TO VALUES USED IN THE TIME SHARING MONITORS.  THIS CAUSED CHAOS
	WHEN RUNNING IN THE SINGLE USER MONITOR WHERE THESE VALUES
	ARE NOT APPROPRIATE.  THESE LOCATIONS HAVE NOW BEEN DEFINED
	AS EXTERNALS SO THEIR APPROPRIATE VALUES CAN BE READ DURING 
	LIBRARY SEARCH OF JOBDAT.REL.
B.	CHANGES FOUND DESIRABLE.
	-----------------------

1)	CHANGES IN INITIAL PROGRAM DIALOGUE.  

		FOLLOWING THE QUERY

	# OF ROW=

		THE FOLLOWING HAVE BEEN INSERTED

	ROW NAMES=

	JOB NAME=

	DATE (E.G. 22 AUG 69) =

		EACH ADDITIONAL ROW REQUIRES 1K OF CORE.  THUS IN THE 
	ORIGINAL PROGRAM, IF ROWS U,V,W AND X ONLY WERE TO BE 
	WIRED, 20 ROWS HAD TO BE REQUESTED TO ALLOW THE CORRECT ROW
	NAMES TO BE USED IN THE INPUT AND OUTPUT DATA FILES.
		IF 'N' ROWS ARE REQUESTED, THE PROGRAM WILL CURRENTLY
	ACCEPT THE FIRST 'N' CHARACTERS TYPED IN RESPONSE TO 
	'ROW NAMES=' AS THE ROW NAMES TO BE USED FOR INPUT
	AND OUTPUT.  THUS ONLY NK BLOCKS OF STORAGE ARE 
	EVER NEEDED FOR MAP STORAGE.

		THE DATE AND THE FIRST 24 CHARACTERS TYPED AS A JOB
	NAME WILL BE PRINTED AT THE TOP OF ALL OUTPUT TO HELP
	IN THE LATER IDENTIFICATION .

2)	EDIT COMMAND 'C-A21,B11'.   THE EDIT MODE COMMAND ABOVE
	HAS BEEN ADDED TO ALLOW SHIFTING OF A MODULE, FROM ITS ASSIGNED
	POSITION (A21) TO SOME OTHER (B11).   ALL CONNECTIONS TO THE SHIFTED
	MODULE ARE SHIFED WITH IT.  IF A ANOTHER MODULE OCCUPIES
	THE POSITION TO WHICH THE FIRST MODULE IS BEING
	REASSIGNED, THIS SECOND MODULE WITH ITS CONNECTIONS WILL BE 
	PLACED IN THE POSITION OF THE FIRST MODULE.  OTHERWISE
	THE POSITION VACATED BY THE FIRST MODULE WILL BE MADE BLANK.
		THERE IS A RESTRICTION ON THE USE OF THIS COMMAND.
	SHIFTING OF MODULES MUST PROCEED ANY BUSSING.
	--------------------------------------------

3)	PLOTTING FEATURES.   SOME PLOTTING FEATURES HAVE BEEN ADDED TO
	'WIRLST' USING THE ADDITIONAL FILE 'PLOT'.  THESE COMMANDS
	ASSUME A CALCOMP PLOTTER AND MAY BE INCLUDED IF THE
	FEATURE TEST SWITCH 'FTPLT' IN THE PARAMETER FILE IS NON-ZERO.
		THESE ROUTINES PLOT OUT TWO HISTOGRAMS PER ROW.  THE FIRST
	PLOTS OUT THE MEAN WIRE LENGTH ON EACH MODULE, INCLUDING ONLY
	THOSE CONNECTIONS WITHIN THE ROW.  THE SECOND INCLUDES THE 
	CONNECTIONS BETWEEN ROWS.  IN EACH CASE THE NUMBER OF CONNECTIONS
	INCLUDED IN THE MEAN FOR EACH MODULE POSITION IS PRINTED
	AND THE MEAN FOR THE WHOLE ROW IS DRAWN.

	PLOTTING COMMANDS
	-----------------

	A)	COMMAND MODE.

		PLOT		WILL PLOT HISTOGRAMS FOR ALL DEFINED ROWS

	B)	EDIT MODE.

		H-A		WILL PLOT HISTOGRAMS FOR ROW A

	THE FILE 'PLOT' IS A SUB-SET OF THE PLOTTER ROUTINES
	WRITTEN BY R. CLEMENTS OF DEC.

		THE ROUTINES WERE INTRODUCED TO INVESTIGATE THE
	POSSABILITY OF FURTHER WIRING OPTIMISATION USING THE MODULE
	SWAPPING FEATURE.  THIS INVESTIGATION HAS NOT YET PROVED 
	PARTICULARLY USEFUL.


4)	WIRING ORDER CHANGE.  IN THE ORIGINAL PROGRAM A 'DAISY CHAIN'
	WIRING SCHEME HAD BEEN USED IN WIRING A RUN.  A 'LAYERED'
	SCHEME HAS BEEN INTRODUCED WHICH CAN GREATLY REDUCE THE NUMBER
	OF OTHER CONNECTIONS WHICH HAVE TO BE REMOVED WHEN ANY ONE 
	CONNECTION IS CHANGED.

					P.J. HAGAN.

	------------------------------------------------------------------
