Redirectable I/O Under ZCPR2 and SYSIO
Loading Redirectable I/O Drivers -- IOLOADER
Displaying and Selecting Redirectable I/O Drivers -- DEVICE
Controlling the Disk Output Facility -- RECORD
Redirectable I/O and the ZCPR2 System
:Redirectable I/O Under ZCPR2

    Basically�� th� concep� o� redirectabl� I/Ϡ involve� th� �
assignmen� o� physica� device� t� logica� devices��  ZCPR�� an� �
CP/� suppor� fou� logica� devices:

         CON: - Console - An I/O Device for User/System Commo
         LST: - Printer - An Output-Only Device for Printouts
         RDR: - Reader  - An Input-Only Device
         PUN: - Punch   - An Output-Only Device

    Unde� CP/M�� ther� ar� onl� fou� physica� device� whic� ma� �
b� assigne� t� eac� o� th� fou� logica� devices��  Unde� ZCPR2� �
ther� ma�� b� a� man� physica� device� a� desire� whic� ma�� b� �
assigned to each of the four logical devices.

    ��� "physica� device�� i� th� traditiona� sens堠 i� � �
conventiona� I/� device�� lik� � CR� o� � Printer��  I� th� sens� �
o� ZCPR2�� i� i� � devic� driver�� o� bod� o� software�� whic� i� �
communicate� wit� vi� th� BIOS��  Thi� bod� o� software� i� turn� �
may communicate with any device OR SET OF DEVICES that it wishes.

    SYSIϠ i� � sampl� se� o� Redirectabl� I/� Driver� designe� �
t� b� use� wit� ZCPR� o� m� system��  Unde� SYSIO�� th� followin� �
"physical devices" are implemented:

CON: Devices - TTY
              CRT
              CRT Input and CRT/Remote Computer Output
              CRT and Modem Input and CRT and Modem Output
                   in Parallel
              CRT Input and CRT/Modem Output

LST: Devices - TTY
              CRT
              Modem
              Remote Computer

RDR: and PUN: Devices - Modem
                       Clock


    A� yo�� ca� see�� th� "physica� devices� unde� ZCPR�� ca� �
actuall�� b� combination� o� actua� devices��  Th� CR� Inpu� an� �
CRT/Remot� Compute� Outpu� device� fo� instance� i� use� t� allo� �
a remote computer record screen displays which go to the CRT.

    Unde� ZCPR2�� yo� ca� creat� a� man� sets�� o� packages�� o� �
Redirectabl� I/� Driver� a� yo� wish�  Eac� packag� ca� b� se� u� �
t� giv� th� use� differen� type� o� capabilities��  Fo� instance� �
on� packag� ca� b� lik� th� on� ɠ hav� define� abov� whil� �
anothe� packag� ca� provid� Dis� Recordin� capability�� suc� a� �
CRT Input and CRT/Disk File Output.


    Th� ZCPR�� Syste� o� Program� contain� thre� utilitie� �
designe� t� suppor� th� Redirectabl� I/� System�  Thes� utilitie� �
and their functions are:

         IOLOADER -- Load a Redirectable I/O Package
         DEVICE   -- Display and Select Physical I/O Devices
         RECORD   -- Turn on and off the Recording Facility

    Thi� HELР Fil� discusse� thes� utilitie� an� ho� the�� ar� �
intended to be used.

    Chapte� �� o� th� "Concept� Manua� fo� ZCPR2�� discusse� �
redirectabl� I/Ϡ a� i� ca� b� implemente� unde� ZCPR2��  Th� �
reader is invited to refer to this for much more detail.


:Loading Redirectable I/O Drivers -- IOLOADER

    IOLOADEҠ i� use� t� loa� a� indicate� o� implie� I/� drive� �
packag� int� you� redirectabl� I/� buffe� area��  IOLOADEҠ i� �
invoked by one of the following forms:

         IOLOADER //              <-- Print Help Message
         IOLOADER                 <-- Load SYSIO.IO
         IOLOADER filename        <-- Load filename.IO
         IOLOADER filename.typ    <-- Load filename.typ

    Not� tha� th� DIR�� prefi� i� NOԠ supporte� wit� thi� �
program��  I� al� case� o� loadin� files� IOLOADE� searche� alon� �
th� ZCPR� pat� fo� th� indicate� o� implie� file�  Onc� found� i� �
is loaded into your redirectable I/O buffer.

    GENINӠ i� use� t� instal� IOLOADER�� an� IOLOADE� nee� onl� �
kno� th� addres� o� th� externa� path� th� symbo� fo� th� curren� �
use� an� dis� indicato� ("$� b� default)�� an� th� addres� o� th� �
redirectable I/O buffer.

:Displaying and Selecting Redirectable I/O Drivers -- DEVICE

    DEVICE�� o� DEVICE�� (s� calle� becaus� i� i� th� secon� �
generatio� o� m� DEVIC� program)�� i� use� t� allo� th� use� t� �
interactivel� displa� th� name� o� th� availabl� physica� device� �
(actually�� devic� drivers� whic� ma� b� assigne� t� th� logica� �
device� an� t� allo� th� use� t� assig� � physica� devic� t� � �
logical device by name.

    DEVICE is invoked by one of the following forms:

         DEVICE //           <-- Print Help Info
         DEVICE              <-- Enter Interactive Command Mode
         DEVICE cmd,cmd,...  <-- Immediately Execute Commands

    I� al� cases�� wheneve� yo� ar� givin� command� t� DEVICE� �
whethe� i� i� fro� th� comman� leve� o� ZCPR� o� fro� withi� ��DEVIC� itself�� yo� ca� specif� � serie� o� command� separate� b� �
commas.


    The following commands can be given to DEVICE:

         DISPLAY ALL or CON or LST or RDR or PUN
              <-- Display Physical Device Driver Names which
                   can be assigned to CON:, LST:, RDR:, or PUN:
                   Logical Devices; also display the current
                   assignment

         CON or LST or RDR or PUN = Device
              <-- Assign a Physical Device Driver to a Logical
                   Device

    I� al� cases� onl� th� firs� lette� o� DISPLA� an� th� firs� �
lette� o� � Logica� Devic� o� th� wor� "ALL� i� necessary��  Al� �
othe� letter� ar� ignored��  Th� complet� nam� o� th� device� �
however, is necessary.

    Also��� th堠 spac� an� th� characte� "=�� ma�� b� use� �
interchangably and case is not significant.

    The following are examples of DEVICE commands:

         D C,D L or D=C,D=L
              Display CON: and LST: Devices

         con:=crt,list=tty,reader=mode� o� c=crt,� tty,r=modem
              Select the Physical Device Driver called CRT for
              the CON: Logical Device, select TTY for the LST:
              Logical Device, and select MODEM for the RDR:

    Th� followin� termina� sessio� furthe� illustrate� th� us� �
o� DEVIC� wit� m� particula� se� o� Redirectabl� I/� Drivers�  M� �
comments are indicated by <<--.


B7>device display console
DEVICE2, Version 1.3

CON: Devices --
       CRTMOD2  - Televideo 950 CRT Input and CRT/Modem Output
       CRTREM   - Televideo 950 CRT Input and CRT/Remote Output
       CRTMOD   - Televideo 950 CRT and Modem in Parallel
       CRT      - Televideo 950 CRT
       TTY      - Model 43 Printing Terminal
 Current Assignment: CRTMOD

B7>device
DEVICE2, Version 1.3
DEVICE2 Interactive Command System
Type ? and Strike RETURN for Help


DEVICE2 Command? d l,lst:=modem         <<-- Multiple Commands in
                                       <<-- Free Format
LST: Devices --
       MODEM    - DC Hayes Smartmodem
       REMOTE   - Remote Computer
       CRT      - Televideo 950 CRT
       TTY      - Model 43 Printing Terminal
 Current Assignment: TTY
DEVICE2 Command? display list

LST: Devices --
       MODEM    - DC Hayes Smartmodem
       REMOTE   - Remote Computer
       CRT      - Televideo 950 CRT
       TTY      - Model 43 Printing Terminal
 Current Assignment: MODEM


DEVICE2 Command? l tty             <<-- Assign Device
DEVICE2 Command? l ttyx            <<-- How DEVICE Handles Errors
Invalid Name Assignment at -- TTYX
DEVICE2 Command? d l

LST: Devices --
       MODEM    - DC Hayes Smartmodem
       REMOTE   - Remote Computer
       CRT      - Televideo 950 CRT
       TTY      - Model 43 Printing Terminal
 Current Assignment: TTY


DEVICE2 Command? ?                 <<-- Built-In Help
DEVICE2 Commands are of the form:
Command,Command, ...    <-- Issue Commands
where "command" may take the following forms:
               DISPLAY=ALL     <-- Display Names of All Devices
               DISPLAY=CON     <-- Display Names of Consoles
               DISPLAY=LST     <-- Display Names of Printers
               DISPLAY=RDR     <-- Display Names of Readers
               DISPLAY=PUN     <-- Display Names of Punches

               CON:=name       <-- Select Console
               LST:=name       <-- Select Printer
               RDR:=name       <-- Select Reader
               PUN:=name       <-- Select Punch

A command line beginning with a semicolon (;) is a comment.
The X Command Exits DEVICE2.

DEVICE2 Command? x            <<-- Exit
:Controlling the Disk Output Facility -- RECORD

    RECORĠ i� use� t� contro� th� Dis� Outpu� Facilit� o� th� �
Redirectabl� I/� Drivers��  Copie� o� Consol� an� Printe� output� �
ca� b� create� i� dis� file� b� th� us� o� thi� facility�� an� i� �
ma� b� extende� int� � numbe� o� othe� application� a� well.

    RECORD is invoked by one of the following forms:

         RECORD or RECORD //           <-- Get Help
         RECORD ON or OFF              <-- Console Recording
         RECORD ON or OFF PRINTER      <-- Printer Recording

    Fo� RECOR� t� perfor� it� function�� i� mus� b� implemente� �
i� th� Redirectabl� I/� Drivers�  Thi� i� lef� a� a� exercis� fo� �
th� reader��  Th� Redirectabl� I/� Driver� supplie� wit� ZCPR� �
hav� simpl� RETur� instruction� a� th� subroutine� execute� b� �
the RECORD functions.


    Fou� routine� ar� accesse� i� th� Redirectabl� I/Ϡ Drive� �
package to control the RECORD function.  They are:

         COPEN -- Open File for Recording Console Output
         LOPEN -- Open File for Recording List Output
         CCLOSE -- Close File for Recording Console Output
         LCLOSE -- Close File for Recording List Output

    I� th� case� o� COPE� an� LOPEN�� the� ar� passe� � pointe� �
t� th� firs� twelv� byte� o� a� FC� i� HL��  The� ar� t� cop� �
thes� twelv� byte� int� thei� interna� FCB� an� us� the� t� �
defin� th� fil� names��  Typically� th� outpu� file� generate� b� �
th� RECOR� functio� ar� place� i� th� curren� directory�� alth� �
th� Redirectabl� I/� Driver� ma� b� configure� t� plac� the� �
anywher� desired.

    Whe� RECORĠ i� invoke� t� tur� OΠ on� o� th� recor� �
functions� i� prompt� th� use� fo� th� nam� o� th� fil� t� recor� �
into�  RECOR� the� call� th� appropriat� OPE� routine.

    Th� RECORĠ progra� know� i� dis� fil� outpu� driver� ar� �
availabl� thr� th� Redirectabl� I/� Packag� Statu� Routine��  I� �
Registe� � i� returne� wit� th� high-orde� bi� set�� suc� driver� �
ar� available.

    RECORĠ i� tie� int� th� Redirectabl� I/� Package� an� work� �
wit� them��  Th� reade� i� invite� t� refe� t� th� Installatio� �
Manua� an� th� Concept� Manua� fo� furthe� detai� o� th� �
organizatio� an� functio� o� suc� packages.

    RECOR� i� als� indirectl� tie� int� DEVICE�  Invokin� RECOR� �
itsel栠 doe� no� necessaril�� star� th堠 recordin砠 proces� �
immediately��  Tw� function� mus� tak� plac� t� begi� recordin� �
outpu� ont� dis� files:

         1) RECORD has to turn the appropriate Driver ON
         2) DEVICE has to select the appropriate Driver


    Thi� lead� t� interestin� possiblities��  B� turnin� RECOR� �
OFƠ durin� � recordin� session�� th� outpu� fil� i� close� an� �
availabl� fo� othe� uses��  I� RECOR� i� late� turne� ON�� th� �
outpu� fil� ma�� b� delete� (i� th� sam� fil� i� selecte� t� �
recor� into)��  However� i� � ne� devic� i� selecte� whil� RECOR� �
i� OΠ (say�� DEVICŠ CON:=CR� i� issued)�� the� recordin� i� �
SUSPENDE� (NO� turne� off� unti� th� recordin� devic� i� selecte� �
again��  Hence�� i� i� look� lik� th� recordin� sessio� i� no� �
goin� well�� recordin� ca� b� suspended�� th� proble� fixed�� an� �
the� recordin� ca� b� resumed.

    Thi� combine� syste� o� DEVIC� an� RECOR� provide� � ver� �
flexibl� outpu� recordin� system��  I� addition�� th� outpu� �
recordin� nee� no� necessaril� g� t� � dis� file��  I� coul� b� �
se� u� t� sen� CON� outpu� t� th� CR� and� say� � Remot� Compute� �
fo� processing��  Th� syste� ca� b� configure� i� � larg� numbe� �
o� ways.

:Redirectable I/O and the ZCPR2 System

    Th� ZCPR� Syste� ca� functio� wit� o� withou� Redirectabl� �
I/Ϡ a� implemente� b� th� Redirectabl� I/� Drive� Package� an� �
th� IOLOADER�� DEVICE� an� RECOR� programs�  Obviously� th� ZCPR� �
System is made much more flexible by employing these facilities.

    DEVICŠ an� RECOR� ar� tie� directl� t� th� Redirectable I/� �
Package� themselves�  The� don'� us� an� o� th� othe� feature� o� �
th� ZCPR� Syste� t� spea� of�� an� the� ar� installe� b�� GENIN� �
(the� nee� t� kno� wher� th� Redirectabl� I/� Buffe� i� located)�  �
IOLOADE� als� need� t� b� tol� wher� th� Redirectabl� I/Ϡ Buffe� �
i� locate� b� GENINS�� an� i� use� th� ZCPR� pat� t� fin� it� �
files.

    Th� program� controllin� th� Redirectabl� I/� Driver� ar� �
tied together in this manner:

         IOLOADER loads the drivers
         DEVICE controls the drivers
         RECORD enables and disables the disk recording
              facilities of the drivers