Google
 

Trailing-Edge - PDP-10 Archives - BB-V552A-SB_1983 - d60spd.mem
There are 6 other files named d60spd.mem in the archive. Click here to see a list.











                         CHAPTER 1

                        INTRODUCTION



D60SPD  is  a   DECsystem-10   program   to   measure   DN60
performance.  The following functions are available:

     1.  Line width

     2.  Buffer size

     3.  Beginning address of the buffer in  relation  to  a
         page boundry

     4.  Number of bytes per buffer

     5.  Carriage control character

     6.  Character  range  when  doing  output   using   the
         internal ripple pattern character generator

     7.  Use of internal character generator or a disk  file
         for output

     8.  Destination of the input data - whether to a device
         or the bit bucket











                         CHAPTER 2

                          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:

     ABORT     abort input and/or output
     AUTO      execute D60SPD commands from a file
     DDT       enter DDT if it is loaded
     EOF       send a EOF if doing output
     EXIT      exit D60SPD
     HELP      type D60SPD.HLP
     INPUT     receive input from the DN60
     NOTYPE    ignore any typeahead during runtime
     OUTPUT    output to the DN60
     PARAM     print out the CAL11.  parameter block
     RESTART   restart D60SPD
     SET       perform setup and issue commands
     STATUS    read DN60, line, and device status
     TYPEAH    allow typeahead during runtime
     WHAT      print port number, line  number,  and  device
               number











                         CHAPTER 3

                        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:

     1.  SET PORT

     2.  SET LINE

     3.  SET DEVICE

     4.  SET SIMULATE

     5.  SET SUPPORT




3.1  SET PORT COMMAND

     form  SET PORT:o/LINE:d/DEVICE:d

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.

     examples:

     SET PORT:1
     SET PORT:1/LINE:2
     SET PORT:13/LINE:5
     SET PORT:7/LINE:1/DEVICE:1
SET COMMANDS                                        Page 3-2


3.2  SET LINE COMMAND

     form  SET LINE:d/CMD:d/optional CMD switches

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.

     CMD  0    Illegal command
          1*   Enable the line
               /TERMINAL:d    0 = unknown
                              1 = IBM 3780
                              2 = IBM 2780
                              3 = HASP multileaving
               /FLAGS:d  1 = simulate
                         2 = primary
          2    Set DTR
          3    Abort all data transfers and hang up
          4    Disable the line
          5*   Set clear to send delay
               /CSD:d    number of jiffies to delay
          6*   Set the number of bytes in the  silo  warning
               area
               /SILWAR:D number of  bytes  of  silo  warning
               area

          * indicates additional  switches  associated  with
               /CMD

     examples:

     SET LINE:1
     SET LINE:1/CMD:2
     SET LINE/CMD:2
     SET LINE/CMD:1/TERMINAL:1/FLAGS:1
     SET LINE/CMD:5/CSD:3




3.3  SET DEVICE COMMAND

     form  SET DEVICE:d/CMD:d/optional CMD switches

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.

     CMD  0    Illegal command
          1*   Set characteristics
               /DEVTYP:d 0 = unknown
SET COMMANDS                                        Page 3-3


                         1 = console input
                         2 = console output
                         3 = card reader
                         4 = line printer
                         5 = card punch
          2*   Set number of records per transmission block
               /RECORDS:d
          3    Dump output buffers
          4    Clear input permission was requested
          5    Reserved
          6    Set "interpret carriage control on  input"  (
               be a printer )
          7    Clear "interpret carriage control on input"
          8    Set "interpret carriage control on output"
          9    Clear "interpret carriage control on output"
          10   Set "output transparent BSC"
          11   Clear "output transparency"
          12*  Specify output component selection
               /COMPCD:d 1 = printer
                         2 = punch
          13   Don't do output component selection
          14*  Set printer line counter
               /PLC:d
          15   Disable printer line counter overflow
          16*  Set max transmission block size
               /BUFSIZ:d
          17   Do space compression on output
          18   Don't do space compression on output
          19   Use old protocol
          20   Don't use old protocol
          21   Request output permission
          22   Grant input permission
          23   Signal output EOF
          24   Clear output EOF complete
          25   Signal output abort
          26   Clear output abort complete
          27   Clear input EOF complete
          28   Signal input abort
          29   Clear input abort complete

          * indicates additional  switches  associated  with
               /CMD

     examples:

     SET DEVICE:3
     SET DEVICE:2/CMD:25
     SET DEVICE/CMD:25
     SET DEVICE:1/CMD:16/BUFSIZ:512
SET COMMANDS                                        Page 3-4


3.4  SET SIMULATE COMMAND

     form  SET SIMULATE/PORT:o/LINE:d/DEVICE:d/2780 or /3780

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.

     examples:

     SET SIMULATE/PORT:1/LINE:2/DEVICE:1/3780
     SET SIMULATE
     SET SIMULATE/2780




3.5  SET SUPPORT COMMAND

     form  SET SUPPORT/PORT:o/LINE:d/DEVICE:d/2780 or /3780

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.

     examples:

     SET SUPPORT/PORT:1/LINE:2/DEVICE:1/3780
     SET SUPPORT
     SET SUPPORT/2780











                         CHAPTER 4

                      STATUS COMMANDS



The STATUS command is used to read  DN60,  line,  or  device
status.  The following STATUS commands are available:

     1.  STATUS DN60 or PORT

     2.  STATUS LINE

     3.  STATUS DEVICE

     4.  STATUS ALL




4.1  STATUS DN60 OR PORT

     form  STATUS DN60:pn or PORT:pn

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.

     examples:

     STATUS DN60:1
     STATUS DN60
     STATUS PORT:11
     STATUS PORT




4.2  STATUS LINE

     form  STATUS LINE:ln/PORT:pn

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.
STATUS COMMANDS                                     Page 4-2


     examples:

     STATUS LINE:1
     STATUS LINE
     STATUS LINE:2/PORT:1




4.3  STATUS DEVICE

     form  STATUS DEVICE:dn/LINE:ln/PORT:pn

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.

     examples:

     STATUS DEVICE:1
     STATUS DEVICE
     STATUS DEVICE:1/LINE:2
     STATUS DEVICE:2/LINE:1/PORT:7




4.4  STATUS ALL

     form  STATUS ALL/PORT:pn/LINE:ln/DEVICE:dn

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.

     examples:

     STATUS ALL
     STATUS ALL/PORT:1/LINE:2/DEVICE:1











                         CHAPTER 5

                 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.

     form   INPUT DEV:FILENAME.EXT[p,pn]/switches

     form  OUTPUT DEV:FILENAME.EXT[p,pn]/switches



5.1  SWITCHES

     /PORT:o   Used to set  the  DL10  port  number  if  not
               previously set.
     /LINE:d   Used to set the line number if not previously
               set.
     /DEVICE:d Used  to  set  the  device  number   if   not
               previously set.
     /BUFSIZ:d Size of the PDP-10 data buffer in words.  The
               default  is determined by the number of bytes
               (/NUMBYT)
     /BYTPOS:d The position of the first byte  in  the  data
               buffer.
     /BYTWRD:d The number of bytes  per  word  in  the  data
               buffer.   The  default  is  5  which is 7 bit
               bytes.
                              3         12 bit bytes
                              4         8 bit bytes
                              5         7 bit bytes
                              6         6 bit bytes
     /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.
     /DEVTYP:d 0 = unknown, 1 =  printer,  2  =  punch  3  =
               reader.  The default is 0.
     /FCHAR:o  The first character  in  the  ripple  pattern
               when  using  the internal character generator
               for output.  The default is 40.
INPUT AND OUTPUT COMMANDS                           Page 5-2


     /LCHAR:o  The last character in the ripple pattern when
               using  the  internal  character generator for
               output.  The default is 176.
     /NUMBYT:d The number of bytes to  use  in  the  buffer.
               The default is 4000.
     /NUMCHR:d The number of characters to  transmit  before
               sending an EOF.
     /OFFSET:d The  word  in  the  data  buffer  where  data
               transfers   begin,  or  the  word  used  when
               calculating the the first byte position.
     /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.
     /WIDTH:d  The width of a line when using  the  internal
               character generator.  The default is 132.



5.2  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.

     example:

     ABCD
     BCDE
     CDAB
     DABC

On input if the file specification is not included the input
is placed in a "bit-bucket".

If part of the file specification is missing it is  given  a
default as shown below:

                    INPUT     OUTPUT

     DEV:           DSK       DSK
     FILENAME       INPUT     OUTPUT
     EXTENSION      IN        JOB
     P,PN           OWN       OWN



5.3  STATISTIC REPORTS

The following is a description of the statistic report  that
is generated:

     Time      Time since last report
     Lines/min Lines per minute
     Chars/sec Characters per second
INPUT AND OUTPUT COMMANDS                           Page 5-3


     Chars     Characters input/output since the last report
     Buftry    Data buffers attempted
     Bufdly    Data buffers delayed
     Bufcom    Data buffers completed
     C11E4     Number of CAL11.  uuo error 4's (uuo in use)



5.4  EXAMPLES

     INPUT
     INPUT /PORT:2/LINE:1/DEVICE:1
     INPUT DSKB:IN.FIL[226,1100]/TIME:59

     OUTPUT /PORT:2/LINE:1/DEVICE:1
     OUTPUT
     OUTPUT DSKC:OUT.FIL/PORT:2/LINE:1/DEVICE:1
     OUTPUT /FCHAR:101/LCHAR:105/WIDTH:5/NUMBYT:100
     OUTPUT /NUMCHR:40000











                         CHAPTER 6

                     THE OTHER COMMANDS



6.1  ABORT COMMAND

     form  ABORT/PORT:pn/LINE:ln/DEVICE:dn/INPUT      and/or
/OUTPUT/WAIT or /NOWAIT

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.

     examples:

     ABORT/INPUT/OUTPUT
     ABORT/INPUT/OUTPUT/WAIT
     ABORT/INPUT/OUTPUT/NOWAIT
     ABORT/WAIT
     ABORT/NOWAIT/PORT:2/LINE:3/DEVICE:1



6.2  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.

     examples:

     AUTO
     AUTO DSKE:CMD.FIL[123,456]
     AUTO DSKZ:D60.ATO[234,5670,ONE,TWO,THREE,FOUR,FIVE]
THE OTHER COMMANDS                                  Page 6-2


6.3  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.

     example:

     DDT




6.4  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.

     example:

     EOF




6.5  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.

     example:

     NOTYPEAHEAD




6.6  EXIT COMMAND

The EXIT command is used to  return  to  monitor  mode  from
D60SPD.

     example:

     EXIT
THE OTHER COMMANDS                                  Page 6-3


6.7  PARAM COMMAND

The PARAM command is used to type out the  contents  of  the
CAL11.  UUO parameter block.

     example:

     PARAM




6.8  RESTART COMMAND

The RESTART command is used to restart D60SPD.   This  would
be the equivalent of doing:

     ^C
     ^C
     START

     example:

     RESTART




6.9  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.

     example:

     TYPEAHEAD




6.10  WHAT COMMAND

The WHAT command is used to display the  currently  selected
PORT, LINE, and DEVICE numbers.

     example:

     WHAT











                         CHAPTER 7

                 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.
INTERNAL PROGRAM OVERVIEW                           Page 7-2


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
          ^<--------------------------------------------











                         CHAPTER 8

                 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.



8.1  NAMES MACRO

     format:

     DEFINE NAMES,<
          SWT  NAME,ADDRESS,CODE,DEFAULT VALUE
     >

     where:


          SWT       is the macro  name  used  by  the  BUILD
                    macro
          NAME      is the switch or command name
          ADDRESS   is the address to dispatch to or store a
                    value in
          CODE      is a number that informs what action the
                    command decoder is to perform

                    0    check switch  has  a  colon  before
                         dispatching to ADDRESS
                    1    store SIXBIT arg in ADDRESS
                    2    store DECIMAL arg in ADDRESS
                    3    store OCTAL arg in ADDRESS
                    4    dispatch   to    ADDRESS    without
                         checking for a colon
                    5    store SIXBIT arg in T1 and dispatch
                         to ADDRESS
                    6    store  DECIMAL  arg   in   T1   and
COMMAND AND SWITCH TABLES                           Page 8-2


                         dispatch to ADDRESS
                    7    store OCTAL arg in T1 and  dispatch
                         to ADDRESS
                    1X   print a CRLF when  doing  the  auto
                         file  and the value for X is 0-7 as
                         above

          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.

     example:

     Define NAMES,<

          SWT   HELP,HLP,4
          SWT   BUFSIZ,SIZE,2

     >;End define NAMES




8.2  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.

     format:

     BUILD   (PREFIX,NAME,DISPATCH,DEFAULT)

          where:

          PREFIX is the prefix attached to:

          TAB       for the table of sixbit names
          DSP       for the address table
          DEF       for the default value table

          and the suffix attached to .NM which will  be  the
          symbol which represents the length of the table of
          names.

          NAME if non-blank will generate the table of names
          DISPATCH if non-blank will  generate  the  address
          table
          DEFAULT if non-blank  will  generate  the  default
          value table

     example:
COMMAND AND SWITCH TABLES                           Page 8-3


     BUILD   (CMD,NAM,DSP,DEF)