Google
 

Trailing-Edge - PDP-10 Archives - BB-J724A-SM_1980 - sources/d60spd.rno
There are 2 other files named d60spd.rno in the archive. Click here to see a list.
.SD 60
.LOWER CASE
.FLAG CAPITALIZE
.TS 5,10,15,20,25,30,40,45,50,55,60,65,70,75

.CHAPTER ^^INTRODUCTION\\
<D60SPD IS A <DEC<SYSTEM-10 PROGRAM TO MEASURE <DN60 PERFORMANCE.
^THE FOLLOWING FUNCTIONS ARE AVAILABLE:
.LS
.LE;^LINE WIDTH
.LE;^BUFFER SIZE
.LE;^BEGINNING ADDRESS OF THE BUFFER IN RELATION TO A
PAGE BOUNDRY
.LE;^NUMBER OF BYTES PER BUFFER
.LE;^CARRIAGE CONTROL CHARACTER
.LE;^CHARACTER RANGE WHEN DOING OUTPUT USING THE INTERNAL
RIPPLE PATTERN CHARACTER GENERATOR
.LE;^USE OF INTERNAL CHARACTER GENERATOR OR A DISK FILE FOR OUTPUT
.LE;^DESTINATION OF THE INPUT DATA - WHETHER TO A DEVICE OR THE
BIT BUCKET
.ELS
.CHAPTER	COMMANDS

<D60SPD USES A VERB TYPE COMMAND DECODER AND DISPATCHES TO THE
APPROPRIATE ROUTINE TO PERFORM THE COMMAND.  ^PARAMETERS WHICH MUST
BE SET BEFORE ISSUING COMMANDS TO THE <DN60 INCLUDE THE <DN60
NUMBER, (OR <DL10 PORT NUMBER), LINE NUMBER, AND THE DEVICE NUMBER.
^ONCE ANY ONE OF THESE IS SET IT REMAINS SET UNLESS CHANGED BY A
COMMAND, SO THEREFORE ONCE THEY ARE SET IT WILL NOT BE NECESSARY
TO INCLUDE THESE IN ANY COMMANDS, UNLESS A CHANGE IS DESIRED.
^THE FOLLOWING IS A LIST OF AVAILABLE COMMANDS:


.LM +15;.SKIP 1
.INDENT -10;<ABORT	ABORT INPUT AND/OR OUTPUT
.INDENT	-10;<AUTO		EXECUTE <D60SPD COMMANDS FROM A FILE
.INDENT -10;<DDT		ENTER <DDT IF IT IS LOADED
.INDENT -10;<EOF		SEND A <EOF IF DOING OUTPUT
.INDENT -10;<EXIT		EXIT <D60SPD
.INDENT -10;<HELP		TYPE <D60SPD.HLP
.INDENT -10;<INPUT	RECEIVE INPUT FROM THE <DN60
.INDENT -10;<NOTYPE	IGNORE ANY TYPEAHEAD DURING RUNTIME
.INDENT -10;<OUTPUT	OUTPUT TO THE <DN60
.INDENT -10;<PARAM	PRINT OUT THE <CAL11. PARAMETER BLOCK
.INDENT -10;<RESTART	RESTART <D60SPD
.INDENT -10;<SET		PERFORM SETUP AND ISSUE COMMANDS
.INDENT -10;<STATUS	READ <DN60, LINE, AND DEVICE STATUS
.INDENT -10;<TYPEAH	ALLOW TYPEAHEAD DURING RUNTIME
.INDENT -10;<WHAT		PRINT PORT NUMBER, LINE NUMBER, AND DEVICE NUMBER
.LM -15;.SKIP 1
.CHAPTER SET COMMANDS
^THE <SET COMMAND IS USED TO ISSUE COMMANDS TO THE <DN60 AND TO
PROVIDE <D60SPD WITH THE ^PORT, ^LINE, AND ^DEVICE NUMBERS.  ^THE
FOLLOWING <SET COMMANDS ARE AVAILABLE:

.UPPER CASE
.LS
.LE;SET PORT
.LE;SET LINE
.LE;SET DEVICE
.LE;SET SIMULATE
.LE;SET SUPPORT
.ELS
.LOWER CASE

.HL 1 SET PORT COMMAND
	FORM##^^SET PORT:\O/LINE:\D/DEVICE:\\D
.SK 1
^THE <SET <PORT COMMAND IS USED TO TELL <D60SPD WHICH <DL10 PORT OR <DTE NUMBER, LINE,
AND DEVICE IT WILL BE COMMUNICATING WITH.  ^THE SWITCHES, </LINE AND
</DEVICE ARE OPTIONAL. ^THE RANGE OF PORT NUMBERS ARE 0-7 FOR A <DL10 AND 10-13 FOR
A <DTE20.

.SKIP 1
.LM +5
EXAMPLES:
.SKIP 1
.UPPER CASE
SET PORT:1
.BR
SET PORT:1/LINE:2
.BR
SET PORT:13/LINE:5
.BR
SET PORT:7/LINE:1/DEVICE:1
.LM -5
.LOWER CASE

.HL 1 SET LINE COMMAND
	FORM##^^SET LINE:\D/CMD:\D/\\OPTIONAL <CMD SWITCHES
.SK 1
^THE <SET <LINE COMMAND IS USED TO TELL <D60SPD WHICH LINE NUMBER
IT WILL BE COMMUNICATING WITH AND IF THE OPTIONAL SWITCH </CMD:<D
IS INCLUDED, THAT COMMAND WILL BE ISSUED TO THE <DN60.  ^THE PORT
NUMBER MUST BE SET PRIOR TO ISSUING THIS COMMAND.
.SKIP 1
.LM +15
.INDENT -10
<CMD	0	^ILLEGAL COMMAND
.INDENT -5
1*	^ENABLE THE LINE
.BREAK
</TERMINAL:<D	0 = UNKNOWN
.BREAK
			1 = <IBM 3780
.BREAK
			2 = <IBM 2780
.BREAK
			3 = <HASP multileaving
.break
</FLAGS:<D	1 = SIMULATE
.BREAK
		2 = PRIMARY
.INDENT -5
2	^SET <DTR
.INDENT -5
3	^ABORT ALL DATA TRANSFERS AND HANG UP
.INDENT -5
4	^DISABLE THE LINE
.INDENT -5
5*	^SET CLEAR TO SEND DELAY
.BREAK
</CSD:<D	NUMBER OF JIFFIES TO DELAY
.INDENT -5
6*	^SET THE NUMBER OF BYTES IN THE SILO WARNING AREA
.BREAK
/<SILWAR:D	NUMBER OF BYTES OF SILO WARNING AREA
.SKIP 1
.INDENT -5;* INDICATES ADDITIONAL SWITCHES ASSOCIATED WITH /<CMD
.LM -15

.LM +5;.SKIP 1
EXAMPLES:
.SKIP 1;.UPPER CASE
SET LINE:1
.BREAK
SET LINE:1/CMD:2
.BREAK
SET LINE/CMD:2
.BREAK
SET LINE/CMD:1/TERMINAL:1/FLAGS:1
.BREAK
SET LINE/CMD:5/CSD:3
.LM -5;.SKIP 1;.LOWER CASE



.HL 1 SET DEVICE COMMAND
	FORM##^^SET DEVICE:\D/CMD:\\D/OPTIONAL <CMD SWITCHES
.SKIP 1
^THE <SET <DEVICE COMMAND IS USED TO TELL <D60SPD WHICH DEVICE NUMBER
IT WILL BE COMMUNICATING WITH AND IF THE OPTIONAL SWITCH </CMD:<D IS
INCLUDED, THAT COMMAND WILL BE ISSUED TO THE <DN60.  ^THE PORT AND
LINE NUMBERS MUST BE SET PRIOR TO ISSUING THIS COMMAND.
.SKIP 1
.LM +15
.INDENT -10
<CMD	0	^ILLEGAL COMMAND
.INDENT -5
1*	^SET CHARACTERISTICS
.BREAK
/<DEVTYP:<D	0 = UNKNOWN
.BREAK
		1 = console input
.BREAK
		2 = console output
.BREAK
		3 = card reader
.break
		4 = line printer
.break
		5 = card punch
.INDENT -5
2*	^SET NUMBER OF RECORDS PER TRANSMISSION BLOCK
.BREAK
</RECORDS:<D
.INDENT -5
3	^DUMP OUTPUT BUFFERS
.BREAK
.INDENT -5
4	^CLEAR INPUT PERMISSION WAS REQUESTED
.INDENT -5
5	^RESERVED
.INDENT -5
6	^SET "INTERPRET CARRIAGE CONTROL ON INPUT" ( BE A PRINTER )
.INDENT -5
7	^CLEAR "INTERPRET CARRIAGE CONTROL ON INPUT"
.INDENT -5
8	^SET "INTERPRET CARRIAGE CONTROL ON OUTPUT"
.INDENT -5
9	^CLEAR "INTERPRET CARRIAGE CONTROL ON OUTPUT"
.INDENT -5
10	^SET "OUTPUT TRANSPARENT <BSC"
.INDENT -5
11	^CLEAR "OUTPUT TRANSPARENCY"
.INDENT -5
12*	^SPECIFY OUTPUT COMPONENT SELECTION
.BREAK
</COMPCD:<D	1 = PRINTER
.BREAK
		2 = PUNCH
.INDENT -5
13	^DON'T DO OUTPUT COMPONENT SELECTION
.INDENT -5
14*	^SET PRINTER LINE COUNTER
.BREAK
</PLC:<D
.INDENT -5
15	^DISABLE PRINTER LINE COUNTER OVERFLOW
.INDENT -5
16*	^SET MAX TRANSMISSION BLOCK SIZE
.BREAK
</BUFSIZ:<D
.INDENT -5
17	^DO SPACE COMPRESSION ON OUTPUT
.INDENT -5
18	^DON'T DO SPACE COMPRESSION ON OUTPUT
.INDENT -5
19	^USE OLD PROTOCOL
.INDENT -5
20	^DON'T USE OLD PROTOCOL
.INDENT -5
21	^REQUEST OUTPUT PERMISSION
.INDENT -5
22	^GRANT INPUT PERMISSION
.INDENT -5
23	^SIGNAL OUTPUT <EOF
.INDENT -5
24	^CLEAR OUTPUT <EOF COMPLETE
.INDENT -5
25	^SIGNAL OUTPUT ABORT
.INDENT -5
26	^CLEAR OUTPUT ABORT COMPLETE
.INDENT -5
27	^CLEAR INPUT <EOF COMPLETE
.INDENT -5
28	^SIGNAL INPUT ABORT
.INDENT -5
29	^CLEAR INPUT ABORT COMPLETE
.SKIP 1
.INDENT -5;* INDICATES ADDITIONAL SWITCHES ASSOCIATED WITH /<CMD
.LM -15;.SKIP 1

.LM +5
EXAMPLES:
.SKIP 1;.UPPER CASE
SET DEVICE:3
.BREAK
SET DEVICE:2/CMD:25
.BREAK
SET DEVICE/CMD:25
.BREAK
SET DEVICE:1/CMD:16/BUFSIZ:512
.LM -5;.LOWER CASE;.SKIP 1



.HL 1 SET SIMULATE COMMAND
	FORM##^^SET SIMULATE/PORT:\O/LINE:\D/DEVICE:\\D/2780 OR /3780
.SKIP 1
^THE <SET <SIMULATE COMMAND IS USED TO DEFINE A PARTICULAR PORT, LINE,
AND DEVICE TO BE A 2780 OR 3780 IN <SIMULATE MODE.  ^THE DEFAULT IS
3780 IF THE /2780 OR /3780 SWITCH IS NOT INCLUDED.
.LM +5;.SKIP 1
EXAMPLES:
.SKIP 1;.UPPER CASE
SET SIMULATE/PORT:1/LINE:2/DEVICE:1/3780
.BREAK
SET SIMULATE
.BREAK
SET SIMULATE/2780
.LM -5;.SKIP 1;.LOWER CASE


.HL 1 SET SUPPORT COMMAND
	FORM##^^SET SUPPORT/PORT:\O/LINE:\D/DEVICE:\\D/2780 OR /3780
.SKIP 1
^THE <SET <SUPPORT COMMAND IS USED TO DEFINE A PARTICULAR PORT, LINE,
AND DEVICE TO BE A 2780 OR 3780 IN <SUPPORT MODE.  ^THE DEFAULT IS
3780 IF THE /2780 OR /3780 SWITCH IS NOT INCLUDED.
.LM +5;.SKIP 1
EXAMPLES:
.SKIP 1;.UPPER CASE
SET SUPPORT/PORT:1/LINE:2/DEVICE:1/3780
.BREAK
SET SUPPORT
.BREAK
SET SUPPORT/2780
.LM -5;.SKIP 1;.LOWER CASE
.CHAPTER STATUS COMMANDS

^THE <STATUS COMMAND IS USED TO READ <DN60, LINE, OR DEVICE STATUS.
^THE FOLLOWING <STATUS COMMANDS ARE AVAILABLE:

.LS;.UPPER CASE
.LE;STATUS DN60 or PORT
.LE;STATUS LINE
.LE;STATUS DEVICE
.LE;STATUS ALL
.ELS;.LOWER CASE


.HL 1 STATUS DN60 or PORT
	FORM##^^STATUS DN60:\\PN OR ^^PORT:\\PN
.SKIP 1
^THE <STATUS <DN60 OR <PORT COMMAND IS USED TO READ THE <DN60 STATUS.  ^THE <DN60
OR PORT NUMBER MUST BE SET PRIOR TO ISSUING THIS COMMAND OR SET BY
INCLUDING THE <DN60 NUMBER.

.LM +5;.SKIP 1
EXAMPLES:
.SKIP 1;.UPPER CASE
STATUS DN60:1
.BREAK
STATUS DN60
.BREAK
STATUS PORT:11
.BREAK
STATUS PORT
.LM -5;.SKIP 1;.LOWER CASE

.HL 1 STATUS LINE
	FORM##^^STATUS LINE:\\LN</PORT:<PN\\
.SKIP 1
^THE <STATUS <LINE COMMAND IS USED TO READ THE LINE STATUS. ^THE
PORT NUMBER MUST BE SET PRIOR TO ISSUING THIS COMMAND OR SET BY 
USING THE /<PORT SWITCH.

.LM +5;.SKIP 1
EXAMPLES:
.SKIP 1;.UPPER CASE
STATUS LINE:1
.BREAK
STATUS LINE
.BREAK
STATUS LINE:2/PORT:1
.LM -5;.SKIP 1;.LOWER CASE

.HL 1 STATUS DEVICE
	FORM##<STATUS <DEVICE:<DN</LINE:<LN/<PORT:<PN
.SKIP 1
^THE <STATUS <DEVICE COMMAND IS USED TO READ DEVICE STATUS. ^THE
PORT AND LINE NUMBERS MUST BE SET PRIOR TO ISSUING THIS COMMAND
OR SET BY USING THE </LINE AND/OR </PORT SWITCHES.

.LM +5;.SKIP 1
EXAMPLES:
.SKIP 1;.UPPER CASE
STATUS DEVICE:1
.BREAK
STATUS DEVICE
.BREAK
STATUS DEVICE:1/LINE:2
.BREAK
STATUS DEVICE:2/LINE:1/PORT:7
.LM -5;.SKIP 1;.LOWER CASE


.HL 1 STATUS ALL
	FORM##<STATUS <ALL/PORT:<PN/<LINE:<LN/<DEVICE:<DN
.SKIP 1
^THE <STATUS <ALL COMMAND IS USED TO READ THE <DN60, LINE, AND
DEVICE STATUS.  ^THE PORT, LINE, AND DEVICE NUMBERS MUST BE 
SET PRIOR TO ISSUING THIS COMMAND OR SET BY USING THE /<PORT,
/<LINE, AND/OR </DEVICE SWITCHES.

.LM +5;.SKIP 1
EXAMPLES:
.SKIP 1;.UPPER CASE
STATUS ALL
.BREAK
STATUS ALL/PORT:1/LINE:2/DEVICE:1
.LM -5;.SKIP 1;.LOWER CASE
.CHAPTER INPUT AND OUTPUT COMMANDS

^THE <INPUT AND <OUTPUT COMMANDS ARE USED TO READ AND WRITE DATA,
AND TO PROVIDE PERFORMANCE FIGURES IF SUCH IS DESIRED.  ^MANY OPTIONS
ARE AVAILABLE AND CAN BE SPECIFIED IN THE FORM OF SWITCHES TO
THE COMMAND AS DESCRIBED BELOW.
.SKIP 1
	FORM###<INPUT <DEV:FILENAME.EXT[<P,PN]/SWITCHES
.SKIP 1
	FORM##<OUTPUT <DEV:FILENAME.EXT[<P,PN]/SWITCHES
.HL 1 SWITCHES
.LM +15
.INDENT -10;</PORT:<O	^USED TO SET THE <DL10 PORT NUMBER IF NOT PREVIOUSLY SET.
.INDENT -10;</LINE:<D	^USED TO SET THE LINE NUMBER IF NOT PREVIOUSLY SET.
.INDENT -10;</DEVICE:<D	^USED TO SET THE DEVICE NUMBER IF NOT PREVIOUSLY SET.
.INDENT -10;</BUFSIZ:<D	^SIZE OF THE <PDP-10 DATA BUFFER IN WORDS. ^THE
DEFAULT IS DETERMINED BY THE NUMBER OF BYTES (</NUMBYT)
.INDENT -10;</BYTPOS:<D	^THE POSITION OF THE FIRST BYTE IN THE DATA BUFFER.
.INDENT -10;</BYTWRD:<D	^THE NUMBER OF BYTES PER WORD IN THE
DATA BUFFER. ^THE DEFAULT IS 5 WHICH IS 7 BIT BYTES.
.BREAK
			3	12 BIT BYTES
.BREAK
			4	8 BIT BYTES
.BREAK
			5	7 BIT BYTES
.BREAK
			6	6 BIT BYTES
.INDENT -10;</CCC:<O	^THE CARRIAGE CONTROL CHARACTER TO BE
INSERTED AFTER THE CARRIAGE RETURN WHEN USING THE INTERNAL CHARACTER
GENERATOR.  ^THE DEFAULT IS 12 WHICH IS A LINE FEED.
.INDENT -10;</DEVTYP:<D	0 = UNKNOWN, 1 = PRINTER, 2 = PUNCH
3 = READER.  ^THE DEFAULT IS 0.
.INDENT -10;</FCHAR:<O	^THE FIRST CHARACTER IN THE RIPPLE PATTERN WHEN
USING THE INTERNAL CHARACTER GENERATOR FOR OUTPUT.  ^THE DEFAULT IS 40.
.INDENT -10;</LCHAR:<O	^THE LAST CHARACTER IN THE RIPPLE PATTERN WHEN
USING THE INTERNAL CHARACTER GENERATOR FOR OUTPUT.
^THE DEFAULT IS 176.
.INDENT -10;</NUMBYT:<D	^THE NUMBER OF BYTES TO USE IN THE BUFFER.
^THE DEFAULT IS 4000.
.INDENT -10;</NUMCHR:<D	^THE NUMBER OF CHARACTERS TO TRANSMIT BEFORE
SENDING AN <EOF.
.INDENT -10;</OFFSET:<D	^THE WORD IN THE DATA BUFFER WHERE DATA TRANSFERS
BEGIN, OR THE WORD USED WHEN CALCULATING THE THE FIRST BYTE POSITION.
.INDENT -10;</TIME:<D	^THE TIME IN SECONDS BETWEEN STATISTIC REPORTS.
^THE DEFAULT IS 10 SECONDS.  ^A TIME OF 0 SPECIFIES NO STATISTIC REPORTS
ARE TO BE MADE.
.INDENT -10;</WIDTH:<D	^THE WIDTH OF A LINE WHEN USING THE INTERNAL
CHARACTER GENERATOR.  ^THE DEFAULT IS 132.
.LM -15
.HL 1 FILE SPECIFICATION
^ON OUTPUT IF THE FILE SPECIFICATION IS NOT INCLUDED THE OUTPUT IS GENERATED
USING AN INTERNAL CHARACTER GENERATOR THAT GENERATES OUTPUT IN THE
FORM OF A RIPPLE PATTERN.
.LM +5;.SKIP 1
EXAMPLE:
.SKIP 1;.UPPER CASE
ABCD
.BREAK
BCDE
.BREAK
CDAB
.BREAK
DABC
.LM -5;.SKIP 1;.LOWER CASE

^ON INPUT IF THE FILE SPECIFICATION IS NOT INCLUDED THE INPUT IS
PLACED IN A "BIT-BUCKET".
.SKIP 1
^IF PART OF THE FILE SPECIFICATION IS MISSING IT
IS GIVEN A DEFAULT AS SHOWN BELOW:
.SKIP 1
.LM +5
.UPPER CASE

			INPUT	OUTPUT
.SKIP 1
DEV:			DSK		DSK
.BREAK
FILENAME		INPUT	OUTPUT
.BREAK
EXTENSION		IN		JOB
.BREAK
P,PN			OWN		OWN

.LM -5;.LOWER CASE

.HL 1 STATISTIC REPORTS
^THE FOLLOWING IS A DESCRIPTION OF THE STATISTIC REPORT THAT IS
GENERATED:
.LM +15;.SKIP 1
.INDENT -10;^TIME		^TIME SINCE LAST REPORT
.INDENT -10;^LINES/MIN	^LINES PER MINUTE
.INDENT -10;^CHARS/SEC	^CHARACTERS PER SECOND
.INDENT -10;^CHARS	^CHARACTERS INPUT/OUTPUT SINCE THE LAST REPORT
.INDENT -10;^BUFTRY	^DATA BUFFERS ATTEMPTED
.INDENT -10;^BUFDLY	^DATA BUFFERS DELAYED
.INDENT -10;^BUFCOM	^DATA BUFFERS COMPLETED
.INDENT -10;<C11E4	^NUMBER OF <CAL11. UUO ERROR 4'S (UUO IN USE)
.LM -15

.HL 1 EXAMPLES

.LM +5;.UPPER CASE

INPUT
.BREAK
INPUT /PORT:2/LINE:1/DEVICE:1
.BREAK
INPUT DSKB:IN.FIL[226,1100]/TIME:59
.SKIP 1
OUTPUT /PORT:2/LINE:1/DEVICE:1
.BREAK
OUTPUT
.BREAK
OUTPUT DSKC:OUT.FIL/PORT:2/LINE:1/DEVICE:1
.BREAK
OUTPUT /FCHAR:101/LCHAR:105/WIDTH:5/NUMBYT:100
.BREAK
OUTPUT /NUMCHR:40000
.LM -5;.SKIP 1;.LOWER CASE
.CHAPTER THE OTHER COMMANDS

.HL 1 ABORT COMMAND

.INDENT 5;FORM##^^ABORT/PORT:\P\N/LINE:\L\N/DEVICE:\D\N/INPUT \\AND/OR ^^/OUTPUT/WAIT \\OR^^ /NOWAIT\\
.SKIP 1

^THE <ABORT COMMAND IS USED TO ISSUE ^INPUT AND/OR ^OUTPUT ABORT
COMMANDS TO THE <DN60, AND OPTIONALLY WAIT FOR THE ABORT SEQUENCE
TO COMPLETE BY USING THE </WAIT SWITCH.  ^THE PORT, LINE, AND DEVICE
NUMBERS MUST BE SET PRIOR TO ISSUING THE <ABORT COMMAND OR THEY
CAN BE SET BY USING THE </PORT, </LINE, AND </DEVICE SWITCHES.
^THE DEFAULT IS BOTH </INPUT AND </OUTPUT AND </NOWAIT.
.LM +5;.SK 1
EXAMPLES:
.SKIP 1;.UPPER CASE
ABORT/INPUT/OUTPUT
.BREAK
ABORT/INPUT/OUTPUT/WAIT
.BREAK
ABORT/INPUT/OUTPUT/NOWAIT
.BREAK
ABORT/WAIT
.BREAK
ABORT/NOWAIT/PORT:2/LINE:3/DEVICE:1

.LM -5;.LOWER CASE

.HL 1 AUTO COMMAND

^THE <AUTO COMMAND IS USED TO EXECUTE A SEQUENCE OF <D60SPD COMMANDS
CONTAINED IN A <DSK FILE. ^THE DEFAULT FILENAME IS <D60SPD.ATO.
.LM +5;.SKIP 1
EXAMPLES:
.SKIP 1;.UPPER CASE
AUTO
.BR
AUTO DSKE:CMD.FIL[123,456]
.BR
AUTO DSKZ:D60.ATO[234,5670,ONE,TWO,THREE,FOUR,FIVE]
.LM -5;.SKIP 1;.LOWER CASE


.HL 1 DDT COMMAND

^THE <DDT COMMAND IS USED TO ENTER <DDT IF <DDT WAS LOADED
WITH <D60SPD. ^IF THIS COMMAND IS GIVEN AND <DDT WAS NOT
LOADED, A WARNING MESSAGE WILL BE GIVEN.  ^ONCE IN <DDT
IF <GOBACK$G OR ^^POPJ#P,$X\\ IS GIVEN <D60SPD WILL RESUME.

.LM +5;.SKIP 1
EXAMPLE:
.SKIP 1;.UPPER CASE
DDT
.LM -5;.SKIP 1;.LOWER CASE

.HL 1 EOF COMMAND

^THE <EOF COMMAND IS USED TO SEND AN <EOF WHILE DOING OUTPUT. ^IF THIS
COMMAND IS GIVEN AT ANOTHER TIME IT IS IGNORED.
.LM +5;.SKIP 1
EXAMPLE:
.SKIP 1;.UPPER CASE
EOF
.LM -5;.SKIP 1;.LOWER CASE

.HL 1 NOTYPEAHEAD COMMAND

^THE <NOTYPEAHEAD COMMAND IS USED TO IGNORE COMMANDS GIVEN DURING
RUNTIME. ^ONCE THIS COMMAND IS GIVEN THE ONLY WAY TO REVERSE IT
IS WITH THE <TYPEAHEAD COMMAND WHEN IN THE IDLE LOOP. ^IF
<NOTYPEAHEAD IS SET IT IS ADVISED TO USE THE </NUMCHR SWITCH
WITH THE <OUTPUT COMMAND AS THE <EOF COMMAND WOULD BE IGNORED
AND THE ONLY WAY TO TERMINATE OUTPUT WOULD BE TO CONTROL-^C
<D60SPD.
.LM +5;.SKIP 1
EXAMPLE:
.SKIP 1;.UPPER CASE
NOTYPEAHEAD
.LM -5;.SKIP 1;.LOWER CASE

.HL 1 EXIT COMMAND

^THE <EXIT COMMAND IS USED TO RETURN TO MONITOR MODE FROM <D60SPD.

.LM +5;.SKIP 1
EXAMPLE:
.SKIP 1;.UPPER CASE
EXIT
.LM -5;.SKIP 1;.LOWER CASE

.HL 1 PARAM COMMAND

^THE <PARAM COMMAND IS USED TO TYPE OUT THE CONTENTS OF THE
<CAL11. <UUO PARAMETER BLOCK.

.LM +5;.SKIP 1
EXAMPLE:
.SKIP 1;.UPPER CASE
PARAM
.LM -5;.SKIP 1;.LOWER CASE

.HL 1 RESTART COMMAND

^THE <RESTART COMMAND IS USED TO RESTART <D60SPD.  ^THIS
WOULD BE THE EQUIVALENT OF DOING:
.SKIP 1;.I 5;_^<C
.I 5;_^<C
.I 5;^<START
.SKIP 1
.I 5;EXAMPLE:
.SK 1;.I 5;<RESTART
.SK 1

.HL 1 TYPEAHEAD COMMAND

^THE <TYPEAHEAD COMMAND IS USED TO ENABLE <D60SPD TO ACCEPT
TYPEAHEAD DURING RUNTIME. ^THIS COMMAND IS THE REVERSE OF
THE <NOTYPEAHEAD COMMAND BUT ONCE <NOTYPEAHEAD IS SET
<D60SPD MUST BE IN THE IDLE LOOP BEFORE IT WILL ACCEPT THE
<TYPEAHEAD COMMAND.

.SKIP 1;.I 5;EXAMPLE:
.SKIP 1;.I 5;<TYPEAHEAD
.SKIP 1

.HL 1 WHAT COMMAND

^THE <WHAT COMMAND IS USED TO DISPLAY THE CURRENTLY SELECTED
<PORT, <LINE, AND <DEVICE NUMBERS.
.SKIP 1;.I 5;EXAMPLE:
.SKIP 1;.I 5;<WHAT
.SKIP 1
.CHAPTER INTERNAL PROGRAM OVERVIEW

<D60SPD USES A VERB TYPE COMMAND DECODER. ^THE COMMAND IS
READ AND CHECKED FOR EXACTNESS AND UNIQUENESS AND DISPATCHES
TO THE APPROPRIATE ROUTINE TO FURTHER PROCESS THE COMMAND. ^THE
<SET AND <STATUS COMMANDS WILL FURTHER DISPATCH TO ANOTHER ROUTINE
BASED UPON THE FUNCTION THEY ARE TO PERFORM. ^DURING <INPUT OR <OUTPUT,
 CHECKS ARE MADE TO SEE IF A COMMAND MAY BE PENDING AND IF SO IT WILL
BE EXECUTED, AND THE <INPUT OR <OUTPUT OPERATION WILL BE CONTINUED,
(UNLESS OR COURSE THE COMMAND WAS <ABORT, <DDT, <EXIT, OR <RESTART). ^THIS ALLOWS
ONE TO EXAMINE STATUS OR ISSUE COMMANDS WHILE RUNNING WITHOUT
THE NEED FOR AN ADDITIONAL JOB.
^A SIMPLE FLOW DIAGRAM IS SHOWN BELOW.

.PAGE

.LT
START -> OPER -> ABORT --- ABTCOM -------------------->!
          ^      DDT ----- DDTCOM -- ENTER DDT         !
          ^      EOF ----- EOFCOM -------------------->!
          ^      EXIT ---- EXTCOM -------------------->!
          ^      HELP ---- HLPCOM -------------------->!
          ^      NOTYPE -- NOTCOM -------------------->!
          ^      PARAM --- PRMCOM -------------------->!
          ^      RESTART - RSTCOM -- GOTO START        !
          ^      TYPEAH -- TYPCOM -------------------->!
          ^      WHAT ---- WHTCOM -------------------->!
          ^      STATUS -- STSCOM -- DN60 -- D60STS -->!
          ^                       -- PORT -- D60STS -->!
          ^                       -- LINE --- LINSTS ->!
          ^                       -- DEVICE - DEVSTS ->!
          ^      SET ----- SETCOM -- LINE --- SETLIN ->!
          ^                       -- DEVICE - SETDEV ->!
          ^                       -- SIMULA - SETSIM ->!
          ^                       -- SUPPOR - SETSUP ->!
          ^      INPUT --- INCOM --- IOCOM ----------->!
          ^      OUTPUT -- OUTCOM -- IOCOM ----------->!
          ^                                            !
          ^      AUTO ---- OPER ---- EXECUTE CMD -->!  !
          ^      !  ^                               !  !
          ^      !  ^                               !  !
          ^      !  --------------------------------V  !
          ^      !                                     !
          ^      V                                     V
          ^<--------------------------------------------
.EL
.CHAPTER COMMAND AND SWITCH TABLES

^ALL COMMAND AND SWITCH NAMES ARE CONTAINED IN TABLES WITH
THE CORRESPONDING ADDRESS TABLE IMMEDIATELY FOLLOWING THE SIXBIT
NAME TABLE.  ^THESE TABLES ARE ALL BUILT BY DEFINING A <NAMES MACRO
WHICH CONTAINS THE COMMANDS OR SWITCHES, AN ADDRESS AND A
VALUE TO INDICATE WHETHER TO DISPATCH OR TO STORE A VALUE FROM
A SWITCH.  ^CALLING THE <BUILD MACRO AFTER DEFINING THE <NAMES MACRO
WILL BUILD THE NAMES TABLE AND THE ADDRESS TABLE.

.HL 1 NAMES MACRO
.INDENT 5;FORMAT:
.LM +5;.SKIP 1
.UPPER CASE
DEFINE NAMES,_<
.BREAK
	SWT	NAME,ADDRESS,CODE,DEFAULT VALUE
.BREAK
_>
.SKIP 1;.LOWER CASE
WHERE:
.SKIP 1
.LM +15 
.SKIP 1
.INDENT -10;<SWT		IS THE MACRO NAME USED BY THE <BUILD MACRO
.INDENT -10;<NAME		IS THE SWITCH OR COMMAND NAME
.INDENT -10;<ADDRESS	IS THE ADDRESS TO DISPATCH TO OR STORE A VALUE IN
.INDENT -10;<CODE		IS A NUMBER THAT INFORMS WHAT ACTION THE
COMMAND DECODER IS TO PERFORM
.LM +5
.SKIP 1
.INDENT -5;0	CHECK SWITCH HAS A COLON BEFORE DISPATCHING
TO <ADDRESS
.INDENT -5;1	STORE <SIXBIT ARG IN <ADDRESS
.INDENT -5;2	STORE <DECIMAL ARG IN <ADDRESS
.INDENT -5;3	STORE <OCTAL ARG IN <ADDRESS
.INDENT -5;4	DISPATCH TO <ADDRESS WITHOUT CHECKING FOR
A COLON
.INDENT -5;5	STORE <SIXBIT ARG IN <T1 AND DISPATCH
TO <ADDRESS
.INDENT -5;6	STORE <DECIMAL ARG IN <T1 AND DISPATCH
TO <ADDRESS
.INDENT -5;7	STORE <OCTAL ARG IN <T1 AND DISPATCH
TO <ADDRESS
.INDENT -5;1^X	PRINT A <CRLF WHEN DOING THE AUTO FILE AND
THE VALUE FOR ^X IS 0-7 AS ABOVE
.LM -5;.SKIP 1
.INDENT -10;<DEFVAL	IS THE DEFAULT VALUE THAT WILL BE FILLED INTO
<ADDRESS IF THE <CODE IS 1-3.  (^THIS IS ONLY USED IN THE
<INPUT/OUTPUT ROUTINE.
.LM -15;.SKIP 1
.LM -5

.LM +5
EXAMPLE:
.SKIP 1
^DEFINE <NAMES,_<
.SK 1;.I 5;^^SWT###HELP,HLP,4\\
.I 5;^^SWT###BUFSIZ,SIZE,2\\
.SKIP 1;_>;^END DEFINE <NAMES
.LM -5;.SKIP 1





.HL 1 BUILD MACRO

^THE <BUILD MACRO IS CALLED IMMEDIATELY FOLLOWING THE DEFINITION
OF THE <NAMES MACRO TO BUILD THE SIXBIT TABLE OF NAMES, THE
ADDRESS TABLE, AND THE OPTIONAL DEFAULT VALUE TABLE.
.SKIP 1
.LM +5
FORMAT:
.SKIP 1;^^BUILD###(PREFIX,NAME,DISPATCH,DEFAULT)\\
.SKIP 1
.LM +5
WHERE:
.SKIP 1
<PREFIX IS THE PREFIX ATTACHED TO:
.SKIP 1
.LM +10
.I -10;<TAB		FOR THE TABLE OF SIXBIT NAMES
.I -10;<DSP		FOR THE ADDRESS TABLE
.I -10;<DEF		FOR THE DEFAULT VALUE TABLE
.LM -10;.SK 1
AND THE SUFFIX ATTACHED TO .<NM WHICH WILL BE THE SYMBOL
WHICH REPRESENTS THE LENGTH OF THE TABLE OF NAMES.
.SK 1
<NAME IF NON-BLANK WILL GENERATE THE TABLE OF NAMES
.BREAK
<DISPATCH IF NON-BLANK WILL GENERATE THE ADDRESS TABLE
.BREAK
<DEFAULT IF NON-BLANK WILL GENERATE THE DEFAULT VALUE TABLE
.LM -5
.LM -5

.LM +5
.SK 1
EXAMPLE:
.SK 1
^^BUILD###(CMD,NAM,DSP,DEF)
.LM -5