Trailing-Edge
-
PDP-10 Archives
-
BB-D351B-SM
-
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