CALL +1 310.668.7700
PARTS ORDER +1 800.EXCELLON
 
 

 

APPLICATIONS SUPPORT

 

 

User Manuals

Drill Fundamentals

Drill Parameter

Part Programs

Unix Help For UCS

Machine Setup Commands

 

MANUALS

Excellon CNC Interface Chapter

This chapter gives information on various methods of interfacing to Excellon CNC systems. This information is made available so that the customer may determine in advance which of the described interface possibilities best suit his particular application. Licensing of one of the described software systems does not obligate Excellon in any way to participate in the design or development of software for the host computer. All Excellon software products are warranted to operate as designed for a period of one year. No other warranties are implied. Excellon does not warrant non-Excellon host software or hardware to comply with our interface specifications. Warranty service is provided by Excellon for parts and labor only. The customer is required to pay all travel expenses incurred for service regardless of its nature. Excellon reserves the right to show compliance to the specification by using an Excellon computer system to simulate the host environment. Any modification to the protocols or other specifications described in this manual must be negotiated separately. No modification is promised or implied without a formal written quotation from the Excellon Product Manager. Required communication hardware can be installed by the customer, or by Excellon Field Service Engineers at standard service rates plus travel expenses. Testing is limited to the hardware supplied by Excellon using "Loop back" and other methods within the Excellon environment. Normal installation does not include testing of the host computer system, or verification of its compatibility with the Excellon machine. Connection to the host computer system as well as "running" data communication cables is the responsibility of the customer. The purchase of the first communication system (DNC, VAX DNC) includes telephone consultation with an Excellon Software Engineer for a period not to exceed 90 days from date of shipment. No support will be made available unless the customer uses a communication line monitor which is approved by Excellon. The specifications of such a monitor are available from the Excellon Engineering Department. Excellon does not participate in the design or development of the HOST software or hardware.
The information in this chapter describes the following:
a) DNC-1.3/1.4
The Excellon communication system, by far the most popular Excellon developed communication protocol, is available as a turnkey system, using Excellon's DataWorkshop or FileServer, or can be developed on the host end by the customer. This protocol provides error correction, operator messages, retry logic, and allows file transfers to be initiated from either end in either direction (depending on capabilities of the machines involved).
b) PCDNC
Allows a customer's IBM PC or compatible computer to communicate with Excellon machines as far back as the CNC-2. This software runs on the IBM PC provided by the customer, and allows file transfers to be started from the PC command line, or allows the PC to act as a single line DNC file server. DNC kits are required for each Excellon machine to complete the system.
c) MiniServer
MiniServer allows a customer's IBM PC or compatible computer to communicate with up to eight Excellon machines as far back as the CNC-2. This software runs on an IBM PC provided by the customer, along with an 8 line Digiboard serial board (also supplied by the customer). It allows use of the PC to communicate from the PC command line, or as an eight line server, communicating with all eight machines simultaneously. DNC kits are required for each Excellon machine to complete the system.
d) VAX DNC
Allows a customer's Digital Equipment Corporation VAX series computer, or VAX based CAD system, to communicate with Excellon machines as far back as the CNC-2. This software runs on the VAX, and allows file transfers in either direction, started at either end (depending on capabilities of the machines involved) VAX DNC is capable of communicating with several Excellon machines simultaneously, by running multiple images. DNC kits are required for each Excellon machine to complete the system.
e) Ethernet
Allows a customer to connect his Ethernet equipped CNC-7 control system to an existing Ethernet TCP/IP network. Ethernet is a widely used factory network, allowing remote logins, use of remote file systems, and high speed (10mbits/sec) file transfers. Using Ethernet, connection to a commercial UNIX file server system (such as a Sun) is possible with the use of thin or thick wire Ethernet, using a CNC-7 Ethernet board and CNC-7 Ethernet software, both of which are available from Excellon.
f) Kermit
Allows the system to communicate with a remote host computer system using the popular Kermit protocol which is available in the public domain for most computers, and comes standard with most UNIX systems. DNC kits are not required for either end, but proper serial communication hardware is required in the drilling machine.
g) Paper tape reader
Allows connection of a serially interfaced paper tape reader to the CNC, which can be used for reading of part programs and other data files.
h) Printer
Allows connection of a serially interfaced hard copy printer to the CNC, allowing the system to print out data files and part programs.
i) DOS disk format
Allows the system to read DOS formatted floppies on CNC with little or no operator involvement. Depending on the hardware the system is equipped with, the system can read and write to high or low density 5.25 drives, or high or low density 3.5 inch drives.
j) ZOS disk format
Information is provided on the directory structure and sector formatting of the ZOS 5.25 inch floppy. This information is provided for those customers who wish to create ZOS format part-program disks on their own systems which are intended to input to an Excellon system. It should be noted here that the ZOS systems predate the IBM PC, and therefore DO NOT share the same sector formatting. Most PCs are not capable of reading or writing compatible data on a ZOS format disk without implementation of a special programmable disk controller. THIS IS NOT A MINOR UNDERTAKING.

Description

The DNC System is an asynchronous, full duplex communication system using the EIA RS-232C Communication line electrical specification. It uses an Excellon Automation developed communication protocol which is capable of error detection and correction.

DNC kit

The "DNC Kit" is made up of hardware and software, the hardware is known as a DNC Communication Kit and the software is known as the DNC-1.3/1.4 protocol. The DNC kit part number for the CNC-7 is 216654-19. The kit includes the RS-232C Controller Board, Short Haul Modems, and the Cable which connects the controller board to the modem. It does not include the communication cable which connects the modems to each other; this cable can be ordered separately under part number 406621-16. The cable which connects the modem to the host computer is also not provided. The DNC-1.3/1.4 software provides two way communication which handles error detection and recovery. Commands are initiated from the CNC Command Terminal which requests part program transmission from the HOST computer as well as the transmission of operator messages.
NOTE: File transfers to and from CNC-7 machines may be initiated from either end, in either direction. Some previous generation machines must have transfers started at the machine end, due to memory constraints.

User commands

The following commands are used in all Excellon systems which have the DNC option:
a) SI,device - Program Input Selection
The "SI" Command, is used to select the part program input device and file name. By entering "SI,TESTPROG" the operator will request the file called "testprog" from the input device and use that file as program input.
The input device is SET to XM (DNC) on CNC-7 machines with the command "SIXM,ON". This command is usually edited into the user file so that it is the machine default input device for the "SI" command.
b) COPY - Copy Device To Device.
The COPY Command can be used to transfer a part program from the CNC to or from the Host Computer. The following examples use the device "XM" which is the External Machine (the HOST computer) or DNC line:
COPY,R,XM(test) - Copy Reader to DNC Line with file name "TEST".
COPY,test,XM(test) - Copy from default disk to DNC with file name "TEST".
COPY,XM(test),test - Copy from the DNC Line a file called "TEST" to the default disk and call it "test".
c) OM,msg - Operator Message to Host
This Command is used to send messages to the Host from the CNC Control. The text of an operator message may be up to twenty characters and can include any ASCII characters. Operator messages are not allowed during program transfers.

DNC-1.3/1.4 Design guide

This section contains a description of the DNC elements, command code definitions and their use, as well as flow charts and figures to help in the design of the Host to Excellon interface.

Description of System Elements

The DNC protocol used by Excellon uses a layered real time architecture as shown in figure A-0. The first two layers are generally provided in the Host computer by the supplier of the computer. Design of these components are not covered in this document.
a) The communication controller shown in figure A-1 is an asynchronous serial controller generally operating at 9600 Baud.
b) The interrupt processor must be capable of buffering unsolicited data and allowing the communication handler to read this data as required. The I/O read function should be capable of requesting a read and returning control to the calling program before the read is complete. An I/O status check should be available to test for data ready or to find out if a specified time out period has been exceeded.
c) The communication handler is a high priority, real time task which transmits and receives message packets. Figure A-2 shows how a message packet is constructed and the codes which it uses. The handler ensures that the data contained in each packet is received without error. It must be capable of reacting to I/O within 500 ms. This is with the understanding that I/O is interrupt driven and that the data input is temporarily stored by the interrupt handler program to prevent data overrun.
Each message packet begins with a setup sequence to insure that both computers are ready to begin a packet transfer. Once communication has begun, each message packet is examined to verify that the data section has been correctly received. By the use of packet control characters and the polynomial checksum, undetected errors are virtually eliminated. When an error in the data field is found, the receiving computer will transmit a negative acknowledgement (NAK) back to the originator. This will cause a retransmission of the message packet. A number of retransmissions will be attempted before the system indicates a communication line failure and terminates the data transfer.
The following table defines the Hex value of the control codes used in message packets:
ASCII HEX DESCRIPTION
STX 82 START OF TEXT ENQ 85 ENQUIRE ACK 86 ACKNOWLEDGE NAK 95 NEGATIVE ACKNOWLEDGE WAK 98 WAIT ACKNOWLEDGE The next two figures show typical examples of the Send and Receive protocol.

A special case occurs in the protocol known as "ENQ on ENQ". The ENQ on ENQ allows the receiving computer to send a message against a stream of incoming packets, for example an abort message during part program transfer. This is done by establishing a master/slave relationship between the two computers. The computer receiving the ENQ will become a master while the computer which transmitted it becomes a slave. This relationship is loosely formed and, in the event that the two systems are out of sync and both become master, then both will simply time out and revert to slave status. The following figure shows the typical master/slave use.

d) The Control Code Processor is a real time task running in "Background Mode" which interprets command codes in the data field of a packet.
The data within a packet is formatted to identify the process which the command is associated with. The data section can contain more than one group of related data, but can contain only one command as shown below:
COM,DATA1,DATA2,........(CR) The command code is an ASCII Control character or string of characters separated from the data by a comma. The ASCII characters used in the command field always have an eight bit set. The data fields may be ASCII or binary and need no special end code. The parity bit (bit eight) of ASCII data in this field is always set. This field contains parameters, data, or operands exclusive to the application which the command initiated. The packet is ended with a carriage return character. A typical exchange of messages is shown in the following figure.

In order to provide even greater data integrity in part program transfers from host computer to drilling machines, the DNC-1.4 protocol has been developed. Although DNC-1.3 and DNC-1.4 are very similar, there are a number of differences between the two protocols. The following table defines the Hex value of the control codes used in message packets in the DNC-1.4 protocol. Note that there is an extra ACKnowledge character:
ASCII HEX DESCRIPTION . STX 82 Start of text ENQ 85 Enquire ACK 86 Acknowledge ACKP 8F Acknowledge Packet (DNC-1.4 only) NAK 95 Negative acknowledge WAK 98 Wait acknowledge Under DNC-1.3, a packet containing data will begin with the characters "D," with the actual data beginning at the third character in the packet which is the character following the comma. Under DNC-1.4, a packet containing "Data" will begin with the characters "D<#>" where the <#> represents an integer between 1 and 127. The first packet sent will be number 1 and this number will increment 1 with each packet that is sent. When packet 127 has been sent, the numbering will start over again at 1. The actual data begins with the third character in the packet which is the character following the packet sequence number (<#>). In DNC-1.4, the receiving side may look at the packet sequence number in order to determine if a packet has been lost, or if a duplicate packet has been received. If a duplicate packet is received, then the duplicate may be discarded and normal communications may continue. If a packet has been lost, then an I/O Abort should take place (E,02). The protocol change from DNC-1.3 to DNC-1.4 has to do with the use of the ACK character which used to ACKnowledge successful communication between the two computers. In DNC-1.4 the use of this character is the same as in DNC-1.3 except when the receiving end is acknowledging the successful receipt of a PACKET. In DNC-1.4 the addition of the ACKP (ACKnowledge Packet) character ensures that both side are in sync when a packet is successfully received. With the addition of the ACKP signal, the sending computer may be certain that he is receiving an acknowledgment for the packet he has just sent, and not an ACK in response to his ENQ which may occur in DNC-1.3 under certain conditions if an error condition exists and one side does not know about it. For details about how to configure your system to take advantage of the DNC-1.4 protocol, see the section on reconfiguring the DNC line in this chapter.

Communication Line Commands

The following is a list of commands which the Command Code Processor will interpret:
SEND,name,XM() Request Transmission of "name" from Host SEN?,name,XM() Query existence of "name" in Host RECV,XM(),name Request normal receive at Host RECN,XM(),name Request No Time-out receive at Host OM,text Operator message E,00 CNC Machine reset E,02 Aborted I/O E,03 File not found E,06 System Reset E,-1 Invalid syntax G,2 Rewind-to-Start-of-Pattern request G,0 Acknowledge Rewind accomplished The "SEN?" command is used for querying the host when the CNC Machine operator uses the "SI,name" command. It is much the same as the "SEND" command but it does not cause a file transfer. In the following sequence the Operator entries are embedded in <..> brackets. Communication commands or responses are unbracketed.
NC MACHINE HOST MACHINE ---------- ------------
SEN?,filename,XM() ; file query : E,00 ; file exists SEND,filename,XM() ; request send : E,00 ; ready to send : D,XY...CR ; begin sending : D,M25..CR ; Start-of-pattern : : ; save disk address : D,XY...CR ; more data sent : D,M01..CR ; pattern repeat sent G,2 ; Rewind request : G,0 ; Rewind acknowledge : D,XY...CR ; more data sent : D,XY...CR ; and more data sent : !,CR ; end of file E,00 ; End of transfer or E,00 E,nn ; Machine Reset/Abort : E,00

Program Transfer Program

The Part Program Transfer Program is a special case of a copy program and must examine the data it sends to the CNC machine. It must determine if the data contains M codes or other symbols which have to do with "Tape Rewind". This is required in the event a part program does not fit in the memory of the CNC and it becomes necessary to back up in the part program. The following is a list of such codes:
% Start-of-Pattern Rewind point M25 Start-of-Pattern Rewind point M Any M code in Coordinate Record (may cause Rewind to be requested) The host computer must send all blocks containing "M" codes or "%", start of pattern code, in a packet by itself. This is necessary to allow "rewinds" to occur which are necessary when Step and Repeat programs do not fit in the memory of the CNC Controller. Once the CNC has requested a Rewind (G,2), it will ignore all input blocks until a rewind acknowledge (G,0) has been received. The Host must save the record number of the last read "start of rewind code". It may be necessary to delay for a few seconds once this record has been read to insure that a "rewind" request is not pending from the last program sequence. When the Host receives a "rewind" request code (G,2) from the CNC Controller, it should reset the current record pointer to the saved record number of the last read start of pattern code. It then sends a "rewind" acknowledge code to the CNC and begins sending data again. It is assumed that the Host computer system is capable of random disk access, and that it is possible to save a particular record address for "rewind" purposes. If this is not true, then Reopening the file and skipping through preceding data until the desired rewind point is reached will suffice.

VAX DNC SOFTWARE

This describes the VAX DNC software, which is provided by Excellon Automation for use on Digital Equipment Corporation's VAX (TM) series computer systems. This software allows files to be transferred between the Excellon environment (CNC, OPIC, DataWorkshop, or FileServer) and a VAX based computer system or CAD system. Other sections of this chapter contain information on the DNC-1.3/1.4 protocol, DNC kits, control commands, pin assignments, as used at the Excellon machine end, and a good deal of other related information. The VAX DNC software is designed to provide file transfer capabilities between a VAX computer, running under the VMS operating system, and any Excellon system capable of supporting Excellon's DNC-1.3/1.4 file transfer protocol. Transfer is done over a serial (RS-232) terminal port. Multiple images of the VAX DNC software can be executed on the same computer, allowing the VAX to communicate with several Excellon machines, perhaps simultaneously. VAX DNC software is written in the C programming language (developed by Bell Laboratories), and is provided on a VAX/VMS Backup format magnetic tape. Licensing of Excellon's VAX DNC software does not include any additional software or hardware required on either the VAX or Excellon ends. DNC kits for the Excellon machines, ports for the VAX, etc, may still be required to complete the system. Supplied with a VAX DNC license are:
1. SD-6093, the CNC Interface Manual
2. A magnetic tape, containing:
a) Executable binaries for those versions of VMS available to Excellon Automation b) Compiled object code c) C source code d) Various DCL command files This gives the customer several options, ranging from running the versions provided by Excellon, to modification of the code himself, to porting of the software to a non VAX host, since the software is written in VAX and non VAX specific modules. Note that modification of the code, or for that matter, any recompilation will require the existence of a VMS C compiler on the customer's system. The C compiler must be purchased separately from Digital Equipment Corporation.

Internal Structure

VAX DNC operates as two separate tasks:
1. DNCDRV is a communication monitor, which is executed by the VAX System Start-up procedures. DNCDRV performs all actual file transfers whether initiated at the VAX or Excellon ends. One version of DNCDRV is executed for each DNC connection to the VAX.
DNCDRV directly handles file transfers initiated outside of the VAX, and handles transfers initiated from within the VAX as requested by the program DNC through a communication mailbox.
2. DNC is a command level task used within the VAX to initiate DNC activities. DNC is the only user access to DNCDRV, and thus can be controlled, according to execution privileges, and file privileges, thus not affecting your system's security.

Mailboxes

DNCDRV and DNC communicate with each other through mailboxes. There are three mailboxes used. All of them are permanent mailboxes, so that DNCDRV can be accessed by any user with access to the DNC command. The names of the mailboxes are preceded by the channel name:
1. chanMBXIN: Written by DNC and read by DNCDRV to pass the command which initiates a file transfer.
2. chanMBXOUT: Written by DNCDRV and read by DNC to pass the status results of a file transfer.
3. chanMBXATT: Written by DNC and read by DNCDRV to provide a quick check for DNC to see if DNCDRV is active.
Note: Even though it's not likely, please make sure that the above mailbox names are not duplicated by any existing permanent mailboxes.

Execution

The DNCDRV task must be installed and executed before any file transfers can take place, ideally at system start-up. It then hibernates waiting for requests either from the remote end or from the DNC task.
1. Initiated from DNC
o A VAX user executes a file transfer command using the DNC task.
o DNC writes to chanMBXATT mailbox to get the attention of DNCDRV.
o DNCDRV might be either in hibernation or busy processing a previous request. In either case, it will be interrupted by a write attention request from DNC, and it will read from chanMBXATT to acknowledge that it is active and return to hibernation, or to continue to process the previous request.
o If after five seconds DNCDRV has not read from chanMBXATT, DNC assumes that DNCDRV is not active and notifies the user.
o If DNCDRV is active, DNC sends its request through chanMBXIN.
o If DNCDRV is not busy executing a previous request, it will read and process the request from chanMBXIN. Else, the request is queued for later processing.
o If the request is accepted, DNC then queues a read to chanMBXOUT and waits for DNCDRV to send the status back to the same mailbox.
o Upon completion, DNCDRV will send the status back to DNC via chanMBXOUT.
2. Initiated from Remote
o The remote user requests file transfer from the remote system.
o If DNCDRV is in hibernation, it wakes up to process the request. If DNCDRV is busy processing a previous request from DNC, it will abort the previous request and start processing the remote one.

Software Installation

VAX DNC is provided with executable images, object code, and C source code. A VMS C compiler is assumed to be installed in the system if the customer wants to recompile VAX DNC. There are 6 command files provided to assist in the installation of VAX DNC:
1. VAXDNC.COM - Compiles and links both DNCDRV and DNC tasks 2. DNCDRVCC.COM - Compiles DNCDRV source files 3. DNCCC.COM - Compiles DNC source files 4. DNCDRVLNK.COM - Links DNCDRV task 5. DNCLNK.COM - Links DNC task 6. DNCSTART.COM - Installs and executes DNCDRV Before installation, a directory must be created on your system to hold the VAX DNC related files. The directory should be assigned the system wide logical name SYS$VAXDNC. This should be performed by or under direction of the System Manager and placed in the system start-up command procedure so that it will be assigned before VAX DNC is started. The SYSNAM privilege is required to execute this command. The following is an example of a command line which accomplishes this:
ASSIGN/SYSTEM SYS$SYSROOT:[VAXDNC] SYS$VAXDNC
Of course, the actual device and directory specification may vary. The magnetic tape contains one backup set, containing all of the files. All of these files should be transferred into SYS$VAXDNC. The DNCSTART command file should ideally be executed by the VAX System Start-up procedure to execute DNCDRV for each of the lines to be monitored. If not executed by System Start-up, the process executing DNCSTART should have DETACH, BYPASS, and PRMMBX privileges. DNCSTART sets up the environment for the DNCDRV task and executes it detached. On the first execution of DNCSTART, it will ask the operator (via a menu) to choose the version of VAX DNC to be used, selecting between existing binaries or rebuilding a new version. This question will not be asked again unless DNC.EXE and DNCDRV.EXE are deleted. The command line for executing DNCSTART is as follows:
@SYS$VAXDNC:DNCSTART channel raccess cprot defdir or @SYS$VAXDNC:DNCSTART channel raccess cprot defdir DNC1.4
The terms used above are defined as: o channel - Channel name of the line being used for DNC communication. e.g.: TTC3
o raccess - Any combination or omission of "SOGW" (at least one must be specified) which corresponds to SYSTEM, OWNER, GROUP, and WORLD read access protection. See Read Access Protection.
o cprot - Default file protection for files created on the VAX when initiated by the remote system. e.g.: (S:RWD,O:RWD, G:RWD,W:RWD) See File Default Attributes.
o defdir - Default file directory for file reads or for files created on the VAX when initiated by the remote system (must be enclosed in brackets). See File Default Attributes.
o DNC1.4 - An extra parameter, which must be spelled exactly as indicated, which indicates use of the DNC-1.4 protocol rather than use of the DNC-1.3 protocol, which is the default.
A log file will be created to record all error conditions. This file is purged by DNCSTART, and created when DNCDRV is run. The log file can be consulted as a debugging aid. The log file name uses the channel name, followed by the .LOG extension. e.g.: DNCTTC3.LOG In addition, the DNC command must be defined for those VAX users who are to have access to it: "DNC :== $ SYS$VAXDNC:DNC". must be added into the log in sequence of these VAX users. If all users are to have access to DNC, then this line should be added to SYLOGIN.COM. Otherwise, it should be put into group log in or individual log in command files.

File Default Attributes

1. File Protection
Files uploaded to the VAX initiated by the remote system are assigned the default protection specified at DNCSTART execution. Files uploaded to the VAX initiated by DNC are assigned the default protection of the VAX user executing DNC.
2. File Directories
Files uploaded to the VAX initiated by the remote system will be written to the default directory specified at DNCSTART execution if no directory is specified in the request. Files uploaded to the VAX initiated by DNC are stored into the default directory of the VAX user executing DNC if no directory is specified in the request.
Files downloaded from the VAX initiated by the remote system will be taken from the default directory specified at DNCSTART execution if no directory is specified in the request. Files downloaded from the VAX initiated by DNC will be taken from default directory of the VAX user executing DNC if no directory is specified in the request.
3. File Ownership
Files uploaded to the VAX initiated by the remote system are given the ownership of the parent directory of where the files are written to. Files uploaded to the VAX initiated by DNC are given the ownership of the VAX user executing DNC.

Read Access Protection

DNCDRV can bypass any kind of file protection. In order to prevent users from accessing unauthorized files when downloading files from the VAX to a remote system (initiated at remote end), read access protection must be specified when executing DNCSTART.
o "N" allows access only to world, group, or owner readable files. Owner or group pertain to the account (UIC) which executed DNCDRV.
o "S" allows DNCDRV to access SYSTEM readable files.
o "O" allows DNCDRV to bypass OWNER read protection.
o "G" allows DNCDRV to bypass GROUP read protection.
o "W" allows DNCDRV to bypass WORLD read protection. These protections are not applicable to file transfers initiated at the VAX by the DNC task. Since DNC is a nonprivileged process, it assumes the same privileges as the VAX user executing it. The normal file protections of the VAX user executing DNC will remain in effect, access violations will be caught by DNC, and the transfer request will not be passed to DNCDRV.

Write Access Protection

There is no protection for write access initiated from the remote system. That means files can be uploaded from the remote system to the VAX into any directory. However, the files will be given the ownership of the parent directory into which they are loaded, so that the owner of the directory may decide what to do with them. Since DNC is a nonprivileged process, it assumes the same privileges as the VAX user executing it. The normal file protections of the VAX user executing DNC will remain in effect, access violations will be caught by DNC, and the transfer request will not be passed to DNCDRV.

DNC Menu

The DNC menu is entered with the keyboard command DNC, and presents options for:
o Sending files o Receiving files o Sending Operator messages After selecting one of the menu items, the following additional information may be requested:
1. "DNC Channel:" - The menu is requesting which VAX line is to be used for communication, remember that VAX DNC can support multiple line installations. e.g.: You might type TTC3 if the DNC was connected through VAX line TTC3.
As long as you don't exit the menu once you have entered the channel, subsequent transfers will default to the same channel if you don't specify one. Simply press in answer to this question.
2. "Message:" - The user has selected a Send operator message operation. DNC is now requesting an Operator message to be entered. This is a single line text message, which is variably sized, but should be less than 64 characters.
3. "From:" - The user has selected a send or receive file operation. DNC knows which channel is involved, and is now asking where the file is coming from. In the case of a send operation, it needs a VMS file specification. In the case of a receive, it needs an Excellon file specification.
4. "To:" - The user has selected a send or receive file operation. DNC knows which channel is involved, and is now asking where the file is going to. In the case of a send operation, it needs an Excellon file specification. In the case of a receive, it needs a VMS file specification.

VMS Command Line

The same operations that can be performed from the menu can also be performed using single VMS commands done from the interactive VMS level, or from command files. The same DNC command is used, but is followed by a DNC command and some additional parameters which depend on the operation being performed. This gives the customer a great deal of flexibility in tailoring the communication environment between the VAX and Excellon. Available commands:
1. To Send an Operator Message
Format: DNC SENDM chan:message
2. To Send an ASCII File
Format: DNC SENDT input chan:output
3. To Get an ASCII File
Format: DNC GETT chan:input output
The terms used above are defined as:
o message - Message to send o input - Input file specification o output - Output file specification o chan - Channel name of the line being used for DNC communication. e.g.: TTC3

Transfers Initiated by the Remote System

Since VAX DNC includes a communication monitoring program for each line (DNCDRV), file transfers can be initiated by the remote (e.g.: Excellon) system without anyone at the VAX end. The communication monitor will locate a requested file, or accept the file being sent, and perform the file transfer totally without VAX operator intervention. Consult the DNC documentation of the "other" system for details on commands at the other end.

DNC Messages

These messages are generated specifically by the VAX DNC software, and should cover the majority of the failure conditions normally encountered.
o "DNC--Missing Parameter" - The command line is incomplete, and requires one or more missing parameters.
o "DNC--No Such Command" - The DNC command specified is not one of the valid DNC commands.
o "DNC--Error Opening File" - DNC was unable to open the specified file because it was not found, was protected, or there was a privilege violation.
o "DNC--DNCDRV is not Active" - The DNCDRV task is not active. See the description of the DNCDRV task in the Internal Structure section, above, or contact your system manager.
o "DNCDRV--No Response from Remote" - There was no response from the remote system, either because it is not active or because of a data transfer time-out.
o "DNCDRV--Data Error" - The file transfer was terminated because of a bad checksum or parity errors during the transfer.
o "DNCDRV--Abort By Remote" - The file transfer was aborted by the remote system.

System Messages

There are several conditions that can be generated by the VAX and its VMS operating system. Generally, they are the result of the failures to execute VAX system services or I/O calls. They are provided as an aid in determining the problems in the customer's specific installation. We do not attempt here to describe all possible VAX messages. Consult the appropriate VAX manual for detailed descriptions of the system messages.

DNC Installation

Distributed Numerical Control (DNC) provides communication between Excellon machines and a remote computer. This computer may be a DataWorkshop, FileServer, or a host computer provided by the customer. The following sections describe installation, testing, and operation procedures for the DNC communication equipment.

Installation - Preparing for Testing

The first step in preparing the CNC-7 for the DNC testing is to set up the communication system. The CNC-7 communication system is made up of the CPU and an octal communication board. The locations of these boards in the card cage are shown in the figure on the following page. Remove and inspect the octal communication board using the figure as a guide for minijumper positions and switch settings. After inspection is completed, make sure the board(s) is (are) securely inserted back into the circuit board card cage.

Reconfiguring the DNC line

Baud rate for DNC

DNC baud rate

On the CNC-7, two possible DNC line configurations are possible. One configuration uses the short haul modem provided with the Octal Serial Interface board, requiring no external short haul modem. This configuration is typically seen when connecting to a DataWorkshop, or when connecting to a non Excellon host system, and using a Black Box modem on the host end. The second configuration entails the use of an external short haul modem at both the machine and host ends. This is typically seen when connecting to an Excelink FileServer or other system using external short haul modems. In order to operate in the first configuration (using the Octal Serial Interface's internal modem), no special editing is required. In order to use an external modem, a configuration file must be edited to change the DNC to access one of the RS-232 ports on the system. To perform this edit, log into the CNC-7 into the maintenance account, and edit the file in the SYSTEM directory named "ttyconfig.sh". This file defines which of the system's RS-232 lines are used for which purposes. By default, the DNC line will be assigned to the line "tty4". In order to use an external modem, you must reassign this to the line "tty9". After making this edit, a reboot will be required. When using an external modem, instead of connecting the communication lines of the host directly to the Octal Serial Interface board of the CNC-7, you must connect them to the external modem, and then connect the lines from the modem to the "tty9" port, so you plug into the female J7 DB-9 connector on the Card Cage Interconnect board (CCI-1), which is located on the right side of the card cage. In order to configure your CNC-7 system to use the DNC-1.4 protocol, you must cause a file called /etc/DNC1.4 to be created. The DNC task looks for this file when the system is booted. If the file exists, then the DNC-1.4 protocol will be used. If not, the DNC-1.3 protocol will be used. The best way to create this file is to edit the TTYCONFIG.SH file, located in the SYSTEM directory, to contain a line like:
cp /dev/null /etc/DNC1.4 If you don't want to use DNC-1.4, but would rather use DNC-1.3 (for some reason), then you should make sure the /etc/DNC1.4 file is deleted by adding a line that looks like:
rm -f /etc/DNC1.4
If you wish to use a baud rate (speed of transfer) of other than 9600 baud for DNC, you must edit the /etc/ttys file. Editing this file will require exiting to the Regulus Operating System using a Service Key Disk. The /etc/ttys file holds one line of data for each of the system's tty ports. Each line consists of three characters. The first digit indicates that the tty is enabled (1) or disabled (0) for login. The second digit indicates the tty number, e.g.: 4 for tty4. The third character indicates the baud rate: 9=38400, ":"=19200, 0=9600, 6=4800, 7=2400, 8=600. Other digits are for special use and of no value here. This file is a standard UNIX-type tty configuration file. The default entry for the DNC port is a value of 040. NOTE: Please be aware that doubling the basic transfer speeds does not mean doubling the actual data rate. You also have to consider computer delays on both ends that account for a larger percentage as speeds increase, and at higher speeds you may encounter increased error counts, which although recoverable, may actually slow down the speed of "real life" transfers. You must also make sure that your short haul modems are capable of handling the higher speeds.

Configuring retries and time-outs

On the CNC-7, there is a file used to configure the retries and time-outs used by the DNC-1.3 or DNC-1.4 protocols. This file, if it exists, is located in the SYSTEM directory, and is called DNC.PARAM. The file looks something like the following:
#----------------------------------------------- # This is a comment line # There should be no blank lines in this file # Separate fields using TABs or SPACEs # Values are in seconds # # maxretries maxerrors time-out naktime 3 3 3 2 If the file does not exist, the system will use the defaults of 3, 3, 3, and 2 respectively. See description of the protocol for further details.

Why do we need Short Haul Modems?

As you will see throughout this chapter, there are references over and over to Short Haul Modems, which are required at both the CNC end, and the Host computer end. One common question asked is "Why do we need to use Short Haul Modems?". A Short Haul Modem converts the RS-232 signal into something called Current Loop, which is used to communicate with another Short Haul Modem at the "other" end, which converts back to RS-232. Short Haul Modems (SHMs) are used PRIMARILY to isolate the circuitry of the two computers. This is done by a process called "optical isolation", which actually converts the data being transmitted into light, and then back to data, effectively isolating the two circuits. This is done totally inside of the SHM, all other connections are electrical. This isolation is very important, not only to protect the pieces of equipment from each other (so a short in your $500 computer doesn't destroy the heart of your brand new drilling machine), but also to eliminate noise. All electrical systems generate noise. All you have to do is put an electric razor on the same circuit as a television to prove this. Some parts of the CNC are sensitive to this noise, which can result in anything from mis-positioning to crashing of the computer. The SHM eliminates this noise. A secondary benefit of using the SHM is signal amplification. RS-232 is really only usable over a distance of about 100 yards. Beyond that, the signals fade to the point of being unusable. The SHM amplifies the signal the the point that the two systems can be located as much as a mile (about 1.5km) from each other. A note: Check your modem's manual to find out the rated distance and speed. Most Short Haul Modems will allow decreased distance as the speed increases, with most types topping out at about 0.5-1.0 miles at 19.2k baud. Another note: Occasionally the question is asked about the use of Fiber-optic cable. This also provides the optical isolation, but no other significant benefit, and is much more expensive that using standard twisted pair wire and SHMs. If you like the idea of using Fiber-optic cable, there is no problem doing this in lieu of the SHMs, but Excellon DOES NOT recommend it, believing it is not necessary. As a general rule of thumb, NO TWO COMPUTERS should EVER be connected together via RS-232 without using a Short Haul Modem, or something equivalent (like Fiber-optics).

Where to connect the DNC lines

DNC is normally connected via either the "tty4" or "tty9" ports (see next section on reconfiguration). These lines come from the OSI (Octal Serial Interface) board, but are also available via the CCI (Cardcage Interconnect) board. Looking at the cardcage from the back of the machine, the ports on the OSI board are numbered "tty2" through "tty9" from top to bottom. Ports used by connecting to the "lugs" on the OSI board are Current Loop, compatible with the DataWorkshop style short haul modems. Five of these ports are also available on the CCI board on DB-9 connectors. From top to bottom, these connectors are labeled J4 through J8, and represent "tty6", "tty7", "tty8", "tty9" and "tty5", respectively. Ports connected here are RS-232, and should be connected directly to RS-232 devices (like a paper tape reader), or go through a short haul modem. Therefore, the DNC lines, as explained in the following sections, should either be connected to "tty4", on the third "lug" from the top of the OSI board, or to "tty9", on J7 of the CCI board, depending on how you have configured DNC.

Communication line

The Excellon communication cable 406621-16 is used to connect the central computer modem to the machine computer modem in the DNC network. It is recommended that you meet the following specification when supplying your own cable. (Do not connect the cable at this time. It will be connected in the DNC testing section.)
Description: Two twisted pairs, unshielded data transmission. UL Type: UL listed style 2464 300 Volt - 80'/C. Conductor: 22AWG 7/30 stranded annealed tinned copper. Insulation: Fully color coded PVC UL Style 1061 300 Volt - 80'/C. Jacket: Gray Vinyl Jacket overall, Nominal wall .035 inch. Color Code: Pair 1 black with red, Pair 2 black with white. Suggested Source: ATLAS Wire and Cable, Montebello, California. Number 240-22-2L. The cable can be as long as 5000 feet and should have the ends tinned to insure proper connection. The cable is twisted to prevent cross talk between transmit and receive signals, be sure that one twisted pair is used for transmit and the other for receive. Using the wrong return wire (black wire) can cause incorrect function of the DNC.

The LOOPBACK Test

One of the biggest hurdles confronting the installer of the DNC communication equipment is trouble-shooting problems that arise in the DNC network. The Loopback test is the easiest way to check most communication systems. The main idea behind the Loopback test is to check the transmit and receive signals at each point in the DNC network by simply looping the transmitted signal back on to the receiving line. This will cause a transmitted signal to be echoed back to its origin from where it can then be determined whether or not the network is functioning properly. If the signal returned is the same signal that was initially sent, then that specific part of the network works. Each time a part of the system is determined to function properly, another component is added to the network and tested along with the previously tested parts. This is done until the entire communication network for the system has been tested. In this way, the installer can be ensured of a communication line that is completely operational. Also, if a problem with the DNC does develop at some point in time, the Loopback test can then be used to locate the faulty area (see the following figure).

Implementation of LOOPBACK

The following steps detail the use of the "Loopback" test for the DNC communication system. If the test fails at any point, it either means the connections are not secure or that the latest component added on to the network is faulty. In either case, do not move on to the next step of the test until all prior steps are working properly. STEP 1: MACHINE CONTROLLER and OCTAL BOARD CHECK - a) With the CNC-7 running, log into the SERVICE account, and exit to the system using the command "quit" (lower case). At this point, enter the keyboard command "su", and press return when asked for the password. b) You must then locate and terminate the DNC software so that it does not interfere with the testing. To do this, enter the command "ps el", which will display a list if all the system tasks currently executing. Find the line whose COMMAND column reads "/etc/dnctsk". Note the number on this line which is in the PID column. c) Enter the command "signal xxx 9" where "xxx" is the PID number of the DNC task located in item b) above. d) Run the loopback software by entering the command "kermit clb /dev/dnctty 9600". Kermit will respond with "Kermit connected". In the following tests, you will type characters on the keyboard, which will be echoed back to the display if the portion of the system being tested is working properly. e) Disconnect the communication cable where it connects to the octal board. If a short haul modem is used at the CNC-7 machine end, this should be disconnected as well. f) If no machine end short haul modem is used (e.g.: the modems in the octal board are being used), run a short wire from the Terminal Block connection marked "T+" to"R+" and another from "T-" to "R-" as shown in the figure. This will cause the signal transmitted by the CNC-7 to travel through the octal board and be transmitted back to the CNC-7.
g) If a machine end short haul modem is used (e.g.: the RS-232 output of the octal board is connected to a short haul modem at the machine end), connect pin 3 to pin 2 on the loose connector of the cable using a minijumper. (see figure). This will cause the transmitted signal of the CNC-7 to be looped back on the receiving line of the cable. Characters pressed on the Keyboard should be displayed on the CRT screen if everything is functioning correctly. If the characters pressed on the keyboard are not displayed on the CRT then check all connections and try again. STEP 2: MACHINE END MODEM CHECK - If a machine end short haul modem is used, reconnect the modem, and either put it in loopback mode (if so equipped), or run a short wire from the Terminal Block connection marked "T+" to"R+" and another from "T-" to "R-" as shown in the figure. Characters pressed on the Keyboard should be displayed on the CRT screen if everything is functioning correctly. If the characters pressed on the keyboard are not displayed on the CRT then check all connections and try again. STEP 3: COMMUNICATION CABLE CHECK - a) Connect the communication cable 406621-16 to the modem (see figure) The RED and BLACK twisted pair of wires correspond to lines "T-" and "T+" respectively. The WHITE and BLACK twisted pair correspond to lines "R-" and "R+" respectively. It is a good idea to have four pieces of masking tape, each with a label corresponding to a certain wire. Label the RED and BLACK wires "T-" and "T+" respectively and label the WHITE and BLACK wires "R-" and "R+" respectively. If a machine end modem was used, make sure it's not on loopback anymore. b) At the other end of the cable, connect the BLACK wires together and the RED and WHITE wires together to produce the "T+" to "R+" and "T-" to "R-" loopback situation. The characters pressed on the Keyboard should now travel through the communication cable as well as the previously tested components, and back to the CNC-7. This will tell you if the communication cable is installed correctly. Characters pressed on the Keyboard should be displayed on the CRT screen if everything is functioning correctly. If the characters pressed on the keyboard are not displayed on the CRT then check all connections and try again. STEP 4: HOST COMPUTER MODEM CHECK - a) Connect the loose end of the communication cable to the inputs of the modem on the host computer (FileServer, DataWorkshop, etc). The RED and BLACK twisted pair of wires correspond to lines "R-" and "R+" respectively. The WHITE and BLACK twisted pair correspond to lines "T-" and "T+" respectively. It is a good idea observing the wiring diagrams of the following figures. b) Either put the modem in loopback mode (if so equipped), or run a short wire from the Terminal Block connection marked "T+" to"R+" and another from "T-" to "R-" as shown in the figure. Characters pressed on the Keyboard should be displayed on the CRT screen if everything is functioning correctly. If the characters pressed on the keyboard are not displayed on the CRT then check all connections and try again.
DNC Machine kits available:
DNC-3 Kits (Not connected to DataWorkshop)
o P/N 216654-19 Used on CNC-7 systems. A minimum of 2mb memory is required.
DNC-3 Kits (Connected to DataWorkshop)
o P/N ######-## Used on CNC-7 systems. A minimum of 2mb memory is required. If connected to an earlier DataWorkshop with a short haul modem rack, a P/N 206336-16 cable is also required.
The DNC testing phase is now complete. Be sure that any modems have been taken off of loopback mode if used, and that all the cables are reconnected. You can exit the loopback software running on the console by typing the "^" character on the keyboard. To restart DNC, you must power down and reboot the system.

DNC Software

CNC-7 Machines - CNC-7 systems include all DNC software required as a standard feature. The DNC uses XM as the DNC device. DNC files can be accessed using XM:file.(e.g. SI,XM:file would run the machine directly from the DNC.) If most (or all) of the files accessed are to come from the DNC, the command SIXM,ON could be edited into the MACH.DAT file. This would cause all files accessed by SI where a device is NOT specified to go to XM. For example, with SIXM,ON the command "SI,FILEONE" is automatically changed to "SI,XM:FILEONE" so that input comes from the DataWorkshop instead of the disks.

Paper Tape Reader installation

The CNC-7 supports the use of a paper tape reader. The reader is connected to the control via a serial RS-232 interface. The cable provided with the Paper Tape reader has a male DB-9 connector which is plugged into the female J8 connector on the Card Cage Interconnect board (CCI-1), which is located on the right side of the card cage. The reader is housed in a separate box which can be placed on a bench near the machine, or can be placed into the left-hand side cover notch of larger machines. Cable lengths should be kept to less than 50 feet, unless Short Haul Modems are used. Note that since the paper tape reader is serially interfaced, it is possible to "share" a reader between several machines. To do this, you must purchase an RS-232 A/B/C type switch, which can be set manually to the machine wishing to use the reader. Excellon does not provide this switch, but it can be purchased directly from many computer cable suppliers and many office supply companies which handle parts for personal computers. The reader is available from the file selection window described elsewhere in this manual, or from the device name "R" (e.g.: SI,R). The reader is an input only device which contains no files.

Printer installation

The CNC-7 supports use of a hard copy printer. The printer is connected to the control via a serial RS-232 interface. The cable provided with the printer has a male DB-9 connector which is plugged into the female J4 connector on the Card Cage Interconnect board (CCI-1), which is located on the right side of the card cage. In order for the printer to work, the cables must be properly connected, and the TTYCONFIG.SH file (described elsewhere in this manual) must contain lines to configure the printer device, called /dev/lpr. The printer should be set up for 9600 baud, 8 data bits, no parity, 1 stop bit, which is the default setting for the port. If the baud rate must be changed, it must be changed in the /etc/ttys file and the system rebooted. The /etc/ttys file holds one line of data for each of the system's tty ports. Each line consists of three digits. The first digit indicates that the tty is enabled (1) or disabled (0) for login. The second digit indicates the tty number, e.g.: 6 for tty6. The third digit indicates the baud rate: 0=9600, 6=4800, 7=2400, 8=600. Other digits are for special use and of no value here. This file is a standard UNIX-type tty configuration file. The default entry for the printer port is a value of 060. The printer contains a buffer which allows the computer to send some data ahead of the actual printing being physically done by the printer. However, printing a large file will quickly fill up this buffer. To allow large files to be printed without losing data, you should set up the printer to provide XON/XOFF characters to control the flow of data. The port is set up in software to honor the XON/XOFF controls when they are sent. The printer comes as a self contained unit, which can be placed on a bench near the machine, or can be placed into the left-hand side cover notch of larger machines. Cable lengths should be kept to less than 50 feet, unless Short Haul Modems are used. Note that since the printer is serially interfaced, it is possible to "share" a printer between several machines. To do this, you must purchase an RS-232 A/B/C type switch, which can be set manually to the machine wishing to use the printer. There are also printer sharing devices which perform this switching automatically. Excellon does not provide these devices, but they can be purchased directly from many computer cable suppliers and many office supply companies which handle parts for personal computers. A button to send files to the printer is available on the File Utilities page, or you can use the PRINT keyboard command. The printer is an output only device, and printing happens in background.
See also: LPQ, LPRM

DOS disk usage

Use of DOS format disks on the CNC-7

The Excellon CNC-7 controller can directly read DOS format diskettes. The format and structure of DOS disks are not described in this manual, because this information is readily available from reference material in the Public Domain. The obvious application of this is that the user can use his PC and his favorite PC based editor and/or application software to prepare part-programs or other data files for transferral to his CNC-7 based equipment. Files can also be written to the DOS format disk by the CNC-7 (depending on hardware configuration), allowing data to be moved back to the PC world for archival or analysis (e.g.: edited part programs or log files). PLEASE NOTE THAT THE CNC-7 IS NOT A PC. In other words, it does not use an Intel 80x86 processor, and will not run DOS software. The DOS capabilities of the CNC-7 only extend as far as reading, writing, and formatting DOS format diskettes. Use of DOS disks on the CNC-7 is limited primarily to the disk drives mounted to the console part (swing arm) of the machine. If the drives shipped are low density 5.25 inch drives (as shipped standard with the CNC-7) then the machine will be able to use low density (360k) DOS or ZOS disks. If the machine is equipped with high density 5.25 inch drives (as shipped optionally) then the drives can be set so that:
1) The machine will be able to use high density (1.2meg) DOS disks.
- or -
2) The machine will be able to read and write high density ZOS diskettes, or can read (but not write) low density ZOS or low density (360k) DOS disks. Finally, if the machine is equipped with a 3.5 inch drive, it will be capable of reading 1.44meg or 720k 3.5 inch DOS disks. The machine CAN BE configured with BOTH types of drives. Use of DOS or ZOS formats on the CNC-7 is largely transparent. When accesses are made to the disk (Read, Write, Edit, IDIR, etc), the CNC-7 "looks" at the disk to find out what format it is. All that the Operator needs to do is select the correct drive, and the system will self adjust to the format already on the disk (within the capabilities of the hardware). This allows CNC-7 operators to freely trade disks with little regard for the format of the disks, which they may not know anyway. The only case where the operator MUST KNOW what he wants is at the point where he wants to Initialize a floppy (INIT command). In this instance, he will need to select the proper drive, as well as selecting which format is to be used on the diskette. Format selection will be automatic until the next time that the operator Initializes a diskette. NOTE: Users in the PC world have been struggling for years with incompatibility between high and low density drives. In general, disks created on one density of drive cannot be reliably read on another. The CNC-7 is set up so that systems equipped with low density drives may read and write low density DOS or ZOS disks, but systems equipped with high density drives may only read or write high density DOS disks. The system is designed to disallow use of low density disks on high density drives (and vice versa), because of the problems you are likely to run into if you try to mix densities. Use of a high density 5.25 inch floppy drive must be enabled, both by proper jumpering of the disk controller and disk drive (see appropriate drawings), and by enabling via the Device Information file, DEVINFO.DAT. A bit must be set in the Device Information file to enable use of the high density drive.
See also: INIT, Utilities chapter

ZOS Disk Directory Structure

Excellon CNC-7 products can support the ZOS floppy format which is used on CNC-6 equipped machines, OPIC-IIIC, and DataWorkshops. The multiuser nature of ZOS implies multiuser (simultaneous) file access or creation, and therefore bitmapped, piecemeal sector allocation must be adhered to. The I/O system in ZOS supports 5.25 inch Floppy and 5.25 inch Winchester Fixed Hard disk drives. The ZOS disk software provides multiuser access methods and dynamic allocation. All floppy disks, whether 8 inch or 5.25 inch, use the same format, with the exception of the number of logical sectors allocated, and the bitmap size. Winchester Pseudofloppy regions use the identical format used by the 5.25 inch drives. 8 inch Floppies have no identical counterpart on Winchester disks, but purely because of the total number of sectors configured. This allows 5.25 inch floppies to be loaded as a whole into the Winchester region and vise versa. 8 inch floppies have not been configured in this manner as of this writing, and no marketing processes envision 8 inch disks ever being an option, but the designs in ZOS took that into consideration anyway (Murphy's Law). ZOS disk format is available ONLY on low density 5.25 inch disks. In order to allow multiuser access, sectors are allocated in groups of 16 or less 256 byte LOGICAL sectors. Physical sectors may be either 128 bytes or 256 bytes in length, depending on density. Single density, 128 byte sectors are read 2 at a time, and double density, 256 byte sectors are read 1 at a time. This results in uniform logical sector numbering, with disk drivers handling the mathematics and physical track and sector manipulations, regardless of the type of drive. For example, 5 inch drives in single density (which are not currently used on Excellon products) would consist of 35 tracks of 16 sectors of 128 bytes in length. This totals 560 physical sectors. However, because ZOS assumes all logical sectors to be 256 bytes in length, there are only 280 logical sectors (2 physical sectors per logical sector), and they are named logical-sector-0 thru logical-sector-279 (using decimal). Whenever sector names or numbers of sectors are referenced, they must use this numbering scheme. If it is not followed, the system will not be able to read the directory or access files from the disk. used). Whenever sector names or numbers of sectors are referenced, they must use this numbering scheme. If it is not followed, the system will not be able to read the directory or access files from the disk.

Volume Headers

Logical-sector-0 of all disks is known as the Volume Header. The first byte of the Volume Header is ASCII "V" followed by a 1 byte binary number (0-255). This establishes the volume number of the disk. If the "V" is missing then ZOS considers the disk uninitialized, and no further accesses will be attempted. The ZOS Command "IDIR" or "INIT" is used to create the Header and Directory blocks for subsequent access and creation of files. "INIT" also performs physical formatting, necessary when using new diskettes for the first time.
Layout of volume header -----------------------
Logical Sector 0, (physical track0, sectors 1 and 2)
Field Offset Size Usage
V 0 1 Must be ASCII "V" (hex 56) n 1 1 Binary Volume Number (0-255) vnam 2 20 ASCII Volume name (can be spaces - hex 20) cdat 22 4 Date created (may be zeros) udat 26 4 Date used (may be zeros) zb 30 2 ZOS boot pointer (zeros = no ZOS on disk) zn 32 2 ZOS number of sectors (zeros if unused) zm 34 2 ZOS memory load address (zeros if unused) bm 36 2 Bit Map Sector number (zeros for floppy) ds 38 2 Directory sector start (0001 for floppy) nb 40 2 Number of Bit map sectors (zeros for floppy) ts 42 2 Total Logical Sectors available on diskette bmap 44 212 Bit Map (first 9 bits are set: allocated)
|V|n|vnam |cdat|udat|zb|zn|zm|bm|ds|nb|ts|bit map..| - - -------------- ---- ---- -- -- -- -- -- -- -- --------- 0 255 total size 256

Numeric Values and Binary Format

ZOS uses a 16 bit computer which views all binary values in a straight forward fashion. That is, left to right, highest to lowest significance. This is true whether 1 byte, 2 byte (word) or 4 byte (longword) values are represented. No high and low byte swapping occurs such as in 8080 or Z80 type microcomputers.
e.g. HEX DECIMAL
10 = 16 1000 = 4,096 00100000 = 1,048,576 etc.

Bit Map

Within the Volume Header of floppies is the Bit Map itself. Each bit in the Bit Map (up to the total number of sectors on the diskette) represents one logical sector on the disk. If the bit equals 1 then the sector is reserved. If the bit equals 0 then the sector is free. A good way to make the disk totally READONLY is to set every bit of the map to 1 (hex FF in all 212 bytes of the map). This precludes writing new files to the diskette, but does not prevent any DELETEs, which would reclaim file space deleted. The Volume sector and directory sectors are also represented in the Bit Map, therefore at initialization ZOS sets the first 9 bits to 1, since 8 directory sectors are preallocated and 1 volume header is always reserved. Only 1 directory sector is actually necessary, and will work on any single density or Winchester Pseudofloppy unit. However, on double density drives there is a chance that data files might cross track boundaries, which would cause transition problems, since track 0 is always single density and the remaining tracks are double density. ZOS assures no problems by always preallocating enough directory sectors to force track 0 completely reserved.

Directory Sectors

The Volume Header contains the logical sector number of the first Directory Sector. ZOS allocates at least 8 when initializing the disk. Each Directory Sector points to the next (the 2 byte link is first word of each Directory Sector) until the link is zero. Within the Directory sector are up to ten Directory Entries of 25 bytes each. Empty entries are denoted by the first byte of the Name portion containing zero. If the first 2 bytes of the Name portion are zeros, then that entry is considered the end of the active directory, even if many directory Sectors remain. ZOS causes DELETEs by zeroing the first byte of the Name. ZOS stops searching the directory when the first 2 bytes of the name are zeros. ZOS will reuse empty entries before extending to previously unused entries or allocating new directory sectors. The following shows a Directory Sector and Entry format:
Directory Sector Format -----------------------
Field Offset Size Usage
lk 0 2 Link to next sector un 2 4 unused erec 6 250 ten Directory entries of 25 bytes each
|lk|un | 1st Dir entry | 2nd Dir entry ... 10th| -- ---- -------------------- -------------------------- ----- 0 255 total size 256
Directory Entry Format ----------------------
fnam 0 20 Filename (if first byte 0 then empty) v 20 1 Version number of name (1-254) l 21 1 Directory level (0-254) hs 22 2 Sector number of File Header Sector a 24 1 File Attributes byte (see layout)
|fnam |v|l|hs|a| ------------------------ - - -- - 0 24
total size 25 (per directory entry)
File Attributes byte --------------------
Bit Meaning if set to 1
7 Highest Version of a name (must be set normally) 6 Write/Delete restricted 5 Read/Write/Delete restricted 4 Previously Backed up 3 Binary file (task images) 2 unassigned 1 unassigned 0 unassigned
|76543210| Bit Id's are in descending order from left to right --------

File Header Sector

The Directory Entry contains the Sector number of the File Header. This sector contains information about the file, such as Password, data type (translation key), date stamps and allocation map. All sectors used by the file are transposed within the map in terms of logical sector number and number of sectors. The first map entry points to the Header record itself as well. If enough contiguous space is allocated to fit the file completely, there would be only 1 map entry. The following shows the Header Sector Format:
Header Sector Format --------------------
Field Offset Size Usage
pwrd 0 16 Password *Encryption Key) (You probably shouldn't attempt this) cdat 16 4 Date Created (unused - zeros) udat 20 4 Date Last used (unused - zeros) size 24 4 Size of file in bytes tp 28 2 Type of compression used 0604=Coord Format 0000=Text Format to 30 2 Times opened counter (unused - zeros) smap 32 224 56 Sector maps (4bytes each) (unused map entries set to zeros)
|pwrd |cdat|udat|size|tp|to|smap|smap| ...56th | ---------------------------------------------------------- 0 255 total size 256
Sector Map Format -----------------
sz 0 2 Number sectors in area sc 2 2 Logical sector number of area
|sz|sc| -- -- 0 3 total size 4 (per map entry)

Packed Coordinate Format

Packed Coordinate should be enabled by loading the "type" field of the Header Sector with hex "0604", which the disk drivers recognize as Coordinate mode of Inch, Trailing Zero format. The Coordinate mode passes non XY-coordinates as straight ASCII with the high bit set to 1. But all XY coordinates, (e.g. "X+012345Y-054321"), are converted into 3 or 6 byte binary numbers in a special format. The Highest bit of a byte determines whether it is an ASCII character (yes if 1). If not ASCII then the next bit determines whether it is an "X" (no if 0) or "Y" (yes if 1) block. The next bit determines whether the block is terminated by a carriage return (yes if 1). The next bit determines the sign of the resulting binary number (minus if 1). The remaining 4 bits of the byte and all the bits of the next 2 bytes are assembled as the binary number converted from the ASCII decimal. Trailing zeros must be assumed in order to convert to correct binary. For example, if the part program block is "X00001Y-000001" then the resulting hex string would appear "00 00 0A 7F FF FF". The size of the resultant string has been reduced from 15 bytes to 6 bytes, which, in this case, is better than a 50% savings of space. Coordinate mode will not pack any block which contains other that XY data. Blocks are prescanned by ZOS before packing to assure that, for example "COPY.TSK" is not turned into "COPYTSK" by packing the "Y." into "Y". If the programmer does not wish to deal with this packing arrangement then simply setting the highest bit of all ASCII bytes to 1 will read back as written without binary interpretation. All data files must terminate with a CTRL-Z character after the last byte of actual data, even though an extra sector may have to be allocated in the case of the data itself fitting exactly within sector boundaries. CTRL-Z must be written as hex 9A (high bit 1).
Packed ASCII Byte Format ------------------------
Field Bit Meaning
high 7 ASCII byte (not coordinate) if 1 Y 6 Y Coordinate if 1 (else X) e 5 Was terminated by if 1 else not +-n 4-0 and following 2 bytes are a 21 bit signed binary number allowing +104.8575 thru -104.8576 as possible values
|1|C|C|C|C|C|C|C| ASCII character - - - - - - - - First byte (single byte since ASCII)
or
x + |O|y|e|-|n|n|n|n| |n|n|n|n|n|n|n| |n|n|n|n|n|n|n| --------------------------------------------------- First byte next byte next byte
total bit = 24

Hex dump of system diskette - 5 inch floppy

***** Sector 0 (Volume Header)
V D a t a W o r k s h o p S y s t e m 56004461746120576F726B73686F702053797374656D00000000000000000000
0000000000000001000000227FFF8000...rest of sector is zeros
This sector shows 13 sectors to be reserved "FFF8000..." of which 9 are volume and directory, 4 are COMS file.
***** Sector 1 (Directory Sector)
C O M S 000200000000434F4D5300000000000000000000000000000000020000098000 000... rest of sector is zeros
***** Sector 9 (COMS Header Sector) (Shows 1 sector area map entry for the file)
0000000000000000000000000000000000000000000000000000000604000000 00040009000... rest of sector is zeros
***** Sector A (10 decimal) (COMS data)
A0BCCDE1E3F2EFA0C3EFEDEDE1EEE4A0C6E9ECE5F3A0C1F6E1E9ECE1E2ECE5BE
... the file continues with ASCII data for this and 2 more sectors
****** Last ten bytes of sector 12 ^M @ @ ^M^Z .... ASCII data continued..... 8DC0C08D9A0000000000
NOTE: This sector contained ^Z, and was the last sector of the file as defined by the sector map in the file header.

Disk Format Description

The Sector Format shall be IBM 3740 for single density and IBM System 34 Format for double density. Single density shall have 256 Byte Data Fields. Eight (8) inch floppies will have twenty-six sectors per track, while 5.25 inch floppies have 16 sectors. Track Zero is always written in single density format. See Figure F-0 which describes IBM 3740 Format and Figure F-1 which describes IBM System 34 Format.
FIELD DESCRIPTION BYTES PATTERN BYTES PATTERN ----- ----------- ----- ------- ----- ------- 1 GAP 4A 40 FF 40 FF 2 INDEX ADDRESS MARK SYNC 6 00 6 00 3 INDEX ADDRESS MARK *1 FC *1 FC 4 GAP 1 26 FF 16 FF
ID ADDRESS MARK SYNC 6 00 6 00 6 ID ADDRESS MARK *1 FE *1 FE 7 TRACK NUMBER 1 00 1 00 8 SIDE NUMBER 1 00 1 00 9 RECORD (SECTOR) NUMBER 1 01 1 01 10 DATA FIELD BYTE COUNT CODE 1 00 1 00 11 ID CRC *1 F7 *1 F7 12 GAP 2 11 FF 11 FF 13 DATA ADDRESS MARK SYNC 6 00 6 00 14 DATA ADDRESS MARK *1 FB *1 FB 15 DATA 128 E5 128 E5 16 DATA CRC *1 F7 *1 F7 17 WRITE GATE OFF 1 FF 1 FF 18 GAP 3 26 FF 23 FF
19 GAP 4B 247 FF 102 FF
FIELD DESCRIPTION BYTES PATTERN BYTES PATTERN ----- ----------- ----- ------- ----- ------- 1 GAP 4A 80 4E 80 4E 2 INDEX ADDRESS MARK SYNC 12 00 12 00 3 PRE INDEX ADDRESS MARK *3 F6 *3 F6 4 INDEX ADDRESS MARK *1 FC *1 FC 5 GAP 1 50 4E 32 4E
6 ID ADDRESS MARK SYNC 12 00 12 00 7 PRE ID ADDRESS MARK *3 F5 *3 F5 8 ID ADDRESS MARK *1 FE *1 FE 9 TRACK NUMBER 1 00 1 00 10 SIDE NUMBER 1 00 1 00 11 RECORD (SECTOR) NUMBER 1 01 1 01 12 DATA FIELD BYTE COUNT CODE 1 01 1 01 13 ID CRC *1 F7 *1 F7 14 GAP 2 22 4E 22 4E 15 DATA ADDRESS MARK SYNC 12 00 12 00 16 PRE DATA ADDRESS MARK *3 F5 *3 F5 17 DATA ADDRESS MARK *1 FB *1 FB 18 DATA 256 E5 256 E5 19 DATA CRC *1 F7 *1 F7 20 WRITE GATE OFF 1 4E 1 4E 21 GAP 3 5E 4E 49 4E
22 GAP 4B 598 4E 234 4E
* CONTROL BYTE TRANSLATIONS PERFORMED BY W.D. FD1792 *
PATTERN SINGLE DENSITY (FM) DOUBLE DENSITY (MFM) ------- ------------------- -------------------- F5 NOT ALLOWED WRITE A1**, PRESET CRC F6 NOT ALLOWED WRITE C2*** F7 WRITE 2 CRC BYTES WRITE 2 CRC BYTES FB WRITE FB, CLK=C7, PRESET CRC WRITE FB FC WRITE FC, CLK=D7 WRITE FC FE WRITE FF, CLK=FF WRITE FF
** MISSING CLOCK TRANSITION BETWEEN BITS 4 AND 5 *** MISSING CLOCK TRANSITION BETWEEN BITS 3 AND 4

The KERMIT protocol

KERMIT

The KERMIT protocol was developed at Columbia University, and was an ambitious attempt to provide a communication method which could be used between any type of computer, from micros to mainframes. Although perhaps not the "cure-all" that it's developers once envisioned, it has been implemented on a great many computer types. KERMIT provides reliable file transfer and primitive terminal emulation between machines, allowing you to "log onto" a remote system as if your terminal were physically connected to the other system (assuming that the remote system is capable of being logged into over the line provided). KERMIT takes several different command line arguments, as well as specification of the baud rate and line to be used. Please be aware that KERMIT operates OUTSIDE of the CNC-7 Human Interface environment, and therefore does not use touchscreen or file selection popup devices. You will have to know the UNIX (Regulus) directory names in order to transfer files.

Kermit command line arguments

Kermit has three modes, Connect, Send, and Receive. The first is for connecting to another computer as if your console were a terminal on the other system (remote login), the other two are for file transfers. These modes are specified by the first character of the first argument, which must be "c", "s", or "r", respectively. Exactly one mode must be specified.
kermit c[lbeS] [line] [baud] [esc] [command] kermit r[addfilbo] [line] [baud] kermit s[addfilbo] [line] [baud] file... The "a" flag (announce) will cause Kermit to ring the terminal bell when the send or receive operation is complete. The "b" flag (baud) sets the baud rate on the line specified by the "l" flag. No changes are made if the "b" flag is not used. Legal speeds are: 110, 150, 300, 1200, 2400, 4800, 9600. The "d" flag (debug) makes Kermit a bit more verbose. The states Kermit goes through are printed along with other traces of its operation. A second "d" flag will cause Kermit to give an even more detailed trace. The "e" flag (escape) allows the user to set the first character of the two character escape sequence for Connect mode. When the escape character is typed, Kermit will hold it and wait for the next character. If the next character is "c" or "C", Kermit will close the connection with the remote host. If the second character is the same as the escape character, the escape character itself is passed. Any character other than these two results in a bell being sent to the user's terminal and neither of the two characters are passed to the remote host. All other typed characters are passed through unchanged. The default escape character is "^". The "f" flag (filename) prevents the case conversion of filenames. By default, a sending Kermit converts outgoing filenames to upper case, and a receiving Kermit converts incoming filenames to lower case. Either or both Kermits may use the "f" flag to modify this default behavior. The "i" flag (image) allows slightly more efficient file transfer between UNIX machines. Normally (on Kermits defined to run on UNIX systems) newline is mapped to CRLF on output, CR's are discarded on input, and bytes are masked to 7 bits. If the "i" flag is set, no mapping is done on newlines, and all eight bits of each byte are sent or received. If the communication channel supports it, arbitrary binary files may be transferred by using the "i" flag. The "l" flag (line) specifies the "tty" line that Kermit should use to communicate with the other machine. This is specified as a regular UNIX device name, like "/dev/tty5". If no "l" option is specified, the current terminal (standard input) is used, and Kermit assumes it is running on the remote host (e.g.: NOT the computer to which your terminal is attached). The "o" flag (object) allows transfer of arbitrary binary files when the communication channel does not support 8-bit transfers (e.g., when parity is used, or when the remote Kermit does not have the "i" option). This mode does not treat newline characters in any special way, and performs "8-bit quoting" if the remote Kermit is capable of it. If the remote Kermit cannot handle 8-bit quoting and the "i" option is not usable, binary files cannot be transferred directly. The "S" flag (single command) specifies a single command for a connect Kermit to execute on a remote machine. This flag is most useful in sending/receiving a single file to/from the remote machine as in the example below. The connecting Kermit merely sends the command argument to the remote machine terminated by a newline and then exits to the local shell. Since the connect Kermit does not wait for the remote command to finish, this option is not appropriate for commands that generate output that needs to be seen on the terminal screen. The command argument is usually quoted to allow imbedded blanks. The file arguments are only meaningful to a send Kermit. The receiving Kermit will attempt to store the file with the same name that was used to send it. UNIX Kermits normally convert outgoing filenames to upper case and incoming filenames to lower case (see the "f" flag). If a filename contains a slash ("/"), all outgoing Kermits will strip off the leading part of the name through the last slash.

Kermit examples

For this example we will assume two UNIX machines. We are logged onto "unixa" (the local machine), and want to communicate with "unixb" (the remote machine). There is a connection using the line "/dev/tty3".
We want to connect to "unixb", then transfer "file1" to that machine.
We type: kermit cl /dev/tty3
Kermit answers: Kermit: connected... Now we are connected to the remote machine, and anything typed on the terminal will be sent to the remote machine, and any output from that machine will be displayed on our terminal. We hit RETURN, and get a "login:" prompt, and log into the remote system. Now we need to start a Kermit on the remote machine so that we can send the file over. First we start up the remote (in this case the receiving) Kermit, and then the local (sending) one. Remember that we are talking to "unixb" right now.
We type: kermit r
We type "^" (the escape character) and then "c" to kill the local (connecting) Kermit.
Kermit answers: Kermit: disconnected.
We type: kermit slb /dev/tty3 file1
Kermit answers: Sending file1 as FILE1 When the transmission is finished, Kermit will display either "Send complete", or "Send failed", depending on the success of the transfer. If we now wanted to transfer a file from "unixb" (remote) to "unixa" (local) at 1200 baud, we would use these commands:
We type: kermit clb /dev/tty3 1200
Kermit answers: Kermit: connected...
We type: kermit s file9
We type "^" (the escape character) and then "c" to kill the local (connecting) Kermit.
Kermit answers: Kermit: disconnected.
We type: kermit rlb /dev/tty3 1200 After all of the transfers are done, we should connect again, log off of "unixb", kill the connect Kermit, and go on to do something else. Another way to get a file from "unixb" using the "S" option is:
We type: kermit clS /dev/tty3 "kermit s file9"
We type: kermit rl /dev/tty3 Other details and examples can be gotten from public domain documentation on Kermit, or by writing to Columbia University, Center for Computing Activities, New York, New York, 10027.

DNC for MS-DOS

PC DNC

PCDNC is a version of the DNC-1.3/1.4 protocol which runs on IBM PC/XT, AT or 100% compatible computers. This software is a promotional item provided to our customers for a nominal charge to cover shipping and handling. Although limited in scope, PCDNC provides basic DNC-1.3/1.4 communications capabilities, and works well in installations with very few machines, or for connecting existing PCs to a DataWorkshop or FileServer. It is also a good tool to demonstrate some of the advantages of a DNC environment before a customer makes a larger investment in a more complete DNC system. PCDNC is provided by Excellon as a promotional item only, and comes WITHOUT SUPPORT. IT IS NOT AN EXCELLON PRODUCT. No support is provided and no warranty is intended or implied. Any support of this software that the customer may desire FOR ANY REASON must be obtained SEPARATELY at current service rates. PCDNC can be loaded into any MS-DOS IBM compatible PC/AT or XT. PCDNC can be run under Windows 3.0 or later. PCDNC uses the standard comport on the PC to communicate with a remote system via DNC-1.3/1.4. The remote system must be DNC capable, which generally entails the additional purchase of a DNC kit for that system. The DNC kit purchased for the machine comes with all necessary hardware and software, as well as the Short Haul Modems required for correct operation of the DNC link and related machines. PCDNC allows command driven transfers of part programs or other text files to and from machines via Excellon DNC-1.3/1.4. It also includes a single line server mode which allows file transfers to be initiated from the remote system. This can be accomplished via the COM1 or COM2 serial port available on the PC. This is similar to what the Excellon FileServer will do, with the FileServer working across MANY ports to MANY machines.

PCDNC commands

There are four commands:
1. DNC1 SEND [] 2. DNC1 RECV [] 3. DNC1 OM 4. DNC1 [comport] The portions of the commands inside the <> brackets represent mandatory substitutions which you make. Those arguments inside the [] brackets are optional.
Note that the comport number MUST be "1" (COM1) or "2" (COM2) for PCDNC. Entering the command "DNC1" with no other arguments will invoke the server mode using COM1.
LOCALFILE is any valid DOS filename.
REMOTEFILE is any valid file specification on the remote system. When the optional file specifications are not included in the command line, DNC will attempt to create a file on the other side with the same name as the original file. In the case that this name is illegal on the other side, a message will result. The OM command is limited to 80 characters, although the amount of characters on the remote system may actually be, and probably is considerably less than this. The CNC-6, for example, will allow operator messages of only 30 characters. Anything over that is truncated, or "cut off" at 30. Operator messages should be kept short. PCDNC supports only COM1 or COM2, 9600 baud, 8 bits, no parity, 1 stop bit. The remote system must conform to this configuration.

PCDNC Server mode

PCDNC offers a single line DNC server which allows the PC to be placed in a command parsing mode so that file transfers may be initiated from the remote machine. The Server mode takes control of the screen and displays a menu which may be used to perform a number of fileserving functions: RESET LINE - This function will clear DNC activity on the served line, and will reset the internals of the PCDNC software. SEND OPERATOR MESSAGE - This function will use a popup window to allow you to send an operator message to the remote system. Note that the line used must always be line 1 (COM1). SEND FILE - This function will use a popup window to allow you to send a file to the remote system. You must specify line 1 (COM1), but you may specify any ASCII file to be sent, and may give the destination file a different name on the remote system. GET FILE - This function will use a popup window to allow you to get a file from the remote system. You must specify line 1 (COM1), but you may specify any ASCII file on the remote system to be gotten, and may give the file a new name when it is stored on the PC. MONITOR LINE - This function will allow you to monitor the communication line so that you can debug communications problems to see which side is not responding correctly to the DNC-1.3/1.4 protocol. ENTER DOS SHELL - This function will allow you to temporarily enter a DOS shell to perform ANY DOS FUNCTION you need. You might use this to run an editor, to back the system up, or to use other DOS utilities. You cannot enter the DOS shell while a transfer is in progress - the system will wait for the operation currently in progress to terminate before entering the DOS shell. During the DOS shell, the server is inactive, and cannot respond to any file requests. EXIT - To exit server mode, select the EXIT function on the menu. The comport (COM1) will be closed and the server will exit. EXIT will not terminate a file transfer or operator message which is already in progress. The operation currently underway will be completed before the server exits. Server mode displays an activity log showing the commands received from the remote computer, return status indicators from the server, and messages. Operator messages may be sent from the remote computer. These will be displayed on the PC monitor and a bell will sound.

Ethernet TCP/IP

TCP/IP

TELNET

Ethernet TCP/IP is a local area network which is widely used in factory communication networks to connect host computers, CAD/CAM systems, machines, robots, workstations, and personal computers. Ethernet provides reliable high speed (10mbits/sec) communications between systems on the network, and is highly transparent (meaning the user often doesn't know when the files are local or remote). Excellon's implementation of Ethernet uses the TCP/IP protocol under TELNET, and is fully integrated into the CNC-7 human interface to cause it to look very much like operation from a local hard disk. Depending on protection setup, you can take directories, copy, view, edit, rename, or delete files. Unlike RS-232 protocols (like DNC-1, DNC-1.3/1.4, Kermit, and XMODEM), Ethernet is able to do several things simultaneously. This means that you can be reading and writing files, be logged into a remote system, and have a third remote system accessing the CNC-7's disk - all at the same time, and all across the same one cable. One important notation here is that this implementation of Ethernet does NOT use NFS (Network File Services), but uses a combination of UNIX commands via the remote shell command (RSH) to accomplish it's file housekeeping. Therefore, it will work best when working with other UNIX systems, or systems which can be set up to emulate UNIX to some degree.

Configuring Ethernet

Installing Ethernet

When you install Ethernet on your CNC-7 system, the system software must be built to include the Ethernet option. Ethernet is a sizeable software option which must be built in at the time the software is configured. This is done is such a way that if you install a system with Ethernet, everything is included except the configuration for your network, and if you install a system without Ethernet, the network is automatically disabled. The main thing you need to do when you set up your CNC-7 for Ethernet is to tell the CNC-7 about the other machines on the network that it can talk to, and to tell the other machines about the CNC-7. This section gives basic setup instructions for an Ethernet network. For more detailed information, please see the network configuration documentation provided with your host system, or contact your network administrator. In order to complete the configuration, you'll need to get out of the CNC-7 human interface software, and get into REGULUS so that you can edit the various configuration files. To do this, with the CNC-7 running, log into the SERVICE account, and exit to the system using the command "quit" (lower case). At this point, enter the keyboard command "su", and press return when asked for the password. You'll edit the various files using the editor "ep file" with the filenames provided in the following sections, e.g.: to edit the HOSTS file, you'd use the command "ep /etc/hosts". When you've finished with the various commands, you should reboot the system.
The HOSTS file:
/etc/hosts contains the hosts database, which tells the system what to call itself, and what other hosts are available to it. The name that the machine calls itself, it's "node name", is "cnc7". You'll notice that "cnc7" is assigned a default Internet address of 89.0.0.1, this should be replaced by the number assigned to this system for use on your network. However, the node name "cnc7" should not be changed. The "cnc7" node name is only used for internal reference. If you have 57 CNC-7s on Ethernet in your shop, they will all have the same internal node name. You should give each system an alias, by which the other systems on the network will refer to it. For example:
89.0.0.1 cnc7 concept4
After making this change, you should add the names of the host systems with which you want the CNC-7 to communicate. For example, if you want to communicate with a host system called "COLOSSUS", whose Internet address is 89.0.0.2, you'll need to create a line in the /etc/hosts file that looks like this:
89.0.0.2 colossus
Finally, you should add the CNC-7 into the /etc/hosts file on the remote systems, so that the remote system knows about the CNC-7. In the above example, the following line should be added to /etc/hosts on COLOSSUS:
89.0.0.1 concept4
The RHOSTS file:
/.rhosts (which must be created by you) tells the CNC-7 which systems, and which users on those systems, are allowed to transfer files in and out of the CNC-7. Without this file, the CNC-7 will be able to transfer files in and out of a remote system, but not vice versa. To give access to the users FRED, JAMES, and AMY on COLOSSUS, the following line should be added to /.rhosts:
colossus fred james amy
In addition, you should add entries into the .rhosts file on the remote system (COLOSSUS) to allow access from the CNC-7 to certain directories. The "username" of the CNC-7 is "BOOT", so to give access to COLOSSUS from the CNC-7, the addition to the .rhosts file on COLOSSUS would look like:
concept4 boot
You'll also need to create an account for BOOT on COLOSSUS. In the CNC-7, files are located in several different directories, so you probably want to give remote systems access to everything by creating and adding to the /.rhosts file. However, you probably don't want to give the CNC-7 users access to everything on your remote host, so create and add to individual .rhosts files located in the user directories. e.g.: To give the CNC-7 access to all of FRED's files on COLOSSUS, you should add the following line to /home/fred/.rhosts on COLOSSUS:
concept4 boot
The DEVINFO.DAT file:
The /cnc/data/devinfo.dat file is used by the human interface to establish operator privileges to the CNC-7's devices, and the capabilities of those devices. Please refer to the more detailed information on devinfo.dat in the chapter on Setting Up Operator Accounts. In order for the you to use Ethernet from the CNC-7 human interface, you must add a "device" entry to the /cnc/data/devinfo.dat file. Each directory that is available to the CNC-7 is treated as a separate device. For example, to allow access to the directory /home/fred on COLOSSUS, which is readable and writable by higher privilege operators, you might use a devinfo.dat line like this:
0000000F FFFF0000 FFFF0000 FREDSTUFF colossus:/home/fred/
A separate line must be added for each directory that is available to the CNC-7 users. Each directory can be assigned it's own protections for read and write for each operator. The CNC-7 users will refer to the name specified, in this case, FREDSTUFF.

Ethernet keyboard commands

In addition to the user interface provided, there are also a few keyboard commands provided with the system which can be used by more advanced users. As with the device privileges, access to these commands may be granted or denied to individual operators (this is true of all CNC-7 commands) by editing the file /cnc/data/commands.tab. Further information on this file is provided in the chapter on Setting Up Operator Accounts.
A brief description of the available Ethernet commands is given here, with more detailed information provided in the Keyboard Commands chapter.
"RLOGIN host" allows you to log into a remote system, and thus use the remote system as if he were sitting at a terminal connected directly to it.
"RCP host:file host:file" allows you to copy files between the CNC-7 and a remote system. The HOSTS and RHOSTS files must be properly set up on each system in order for this command to succeed.
"RSH host command" allows you to execute a command on a remote system which is not directly available via the CNC-7 user interface. As long as the operator is given access to the RSH command, and as long as the remote system will accept the command from the CNC-7, any command can be used.

Ethernet UNIX interface

In order to transfer files, take directories, delete files and rename files on the remote system, the CNC-7 uses a combination of UNIX commands. The CNC-7 Ethernet connection will work best of your host system is a UNIX system, or one that can be configured to look like UNIX across the network. It is best that your system be able to support both RCP and RSH, RCP being used to transfer files and RSH used to take directories, rename, and delete files. RCP and RSH are used to make it nice in that you can do these things just as if the files were local. Virtually all UNIX systems which include RSH have RCP, which are used by the default scripts to transfer files. If however, your system needs to do something special, like access files through a file management system or building files dynamically, you may want to alter the scripts to suit your system. Without RSH you cannot tell the remote system what to do, so Ethernet cannot be used. One of the configuration bits in the DEVINFO.DAT file declares that the device is file structured. If you don't want the CNC-7 to take directories of the host system, then you should not set this bit in the configuration bits for the Ethernet access entries you make.
The following scripts are defined in /bin. They can be altered by you, and will NOT be replaced by a software upgrade:
When copying to the host: "cnc_write host localfile remotefile", which contains the line "rcp $2 $1:$3".
When copying from the host: "cnc_read host remotefile localfile", which contains the line "rcp $1:$2 $3".
When taking a directory: "cnc_ls host /dir/directory", which contains the line "rsh $1 ls "$2"".
When deleting a host file: "cnc_rm host /dir/file", which contains the line "rsh $1 /bin/rm $2".
When renaming a host file: "cnc_mv host /dir/file /dir/newname", which contains the line "rsh $1 /bin/mv $2 $3".
For example, to use the CNC-7 Ethernet interface with a Excelink Network FileServer, you'll need to change the scripts to make use of the FileServer's File Management software:
cnc_write should read: "rsh $1 -l dnc -n fmove -i $3 <$2".
cnc_read should read: "rsh $1 -l dnc -n fcat $2 > $3".
cnc_ls should read: "rsh $1 -l dnc -n fls -1 $2".
cnc_rm should read: "rsh $1 -l dnc -n frm $2".
cnc_mv should read: "rsh $1 -l dnc -n fmove $2 $3".

MiniServer for MS-DOS

The MiniServer is a product which runs the DNC-1.3/1.4 protocol on IBM XT/AT and compatible computers. This software provides file serving capabilities for up to eight Excellon machines via the Excellon DNC-1.3/1.4 protocol. Although the MiniServer is less extensive in features and number of machines supported than the FileServer, it seamlessly provides basic DNC communications capabilities to installations with eight or fewer machines. MiniServer is a supported Excellon product; it is supported through normal Excellon channels with the same software warranty as other Excellon products. MiniServer can be loaded into any IBM compatible PC/XT or AT computer running MS-DOS 3.0 or later. It can also be run under Windows 3.0 or later. MiniServer uses the Digiboard COM/8 8-line communication board. This board can be purchased from Excellon, from a distributor or directly from the Manufacturer and is installed into the PC according to the manufacturers instructions. The remote systems must be DNC capable, which generally entails the additional purchase of DNC kits for those systems. The DNC kits purchased for the machines come with all necessary hardware and software, as well as the Short Haul Modems required for correct operation of the DNC link and related machines. MiniServer allows command-driven transfers of part programs or other text files to and from machines via Excellon DNC-1.3/1.4. It also includes an eight-line server mode which allows file transfers to be initiated either from a menu at the PC, or from the remote system. Note: MiniServer supports ONLY the Excellon DNC-1.3/1.4 protocol and does not provide any additional facilities other than those used in transferring files. Software and hardware for file management, backup, editing, etc. are commercially available for MS-DOS environments and are NOT provided as part of this product. In addition, while serving, other DOS utilities may not be used, and vice versa, while using other DOS utilities, serving is inactive. See DOS shell, below. IMPORTANT NOTE: In order to operate correctly, MiniServer requires the correct installation of a hardware key, connected to the parallel printer port. If the key is not properly installed, MiniServer WILL NOT OPERATE.

MiniServer commands

There are four commands:
1. DNC SEND [] 2. DNC RECV [] 3. OM 4. DNC The portions of the commands inside the <> brackets represent mandatory substitutions which you make. Those arguments inside the [] brackets are optional.
LINE may be 1 thru 8.
LOCALFILE is any valid DOS filename.
REMOTEFILE is any valid file specification on the remote system. When the optional file specifications are not included in the command line, DNC will attempt to create a file on the other side with the same name as the original file. In the case that this name is illegal on the other side, a message will result. The OM command is limited to 80 characters, although the amount of characters on the remote system may actually be, and probably is considerably less than this. The CNC-6, for example, will allow operator messages of only 30 characters. Anything over that is truncated, or "cut off" at 30. Operator messages should be kept short.

MiniServer Server mode

MiniServer offers a four line DNC server which allows the PC to be placed in a command parsing mode so that file transfers may be initiated from the remote machine. The Server mode takes control of the screen and displays a menu which may be used to perform a number of fileserving functions: RESET LINE - This function will clear DNC activity on the served lines, and will reset the internals of the MiniServer software. SEND OPERATOR MESSAGE - This function will use a popup window to allow you to send an operator message to the remote systems. SEND FILE - This function will use a popup window to allow you to send a file to the remote systems. You may specify any ASCII file to be sent, and may give the destination file a different name on the remote system. GET FILE - This function will use a popup window to allow you to get a file from the remote system. You may specify any ASCII file on the remote system to be gotten, and may give the file a new name when it is stored on the PC. MONITOR LINE - This function will allow you to monitor the communication lines so that you can debug communications problems to see which side is not responding correctly to the DNC-1.3/1.4 protocol. ENTER DOS SHELL - This function will allow you to temporarily enter a DOS shell to perform ANY DOS FUNCTION you need. You might use this to run an editor, to back the system up, or to use other DOS utilities. You cannot enter the DOS shell while a transfer is in progress - the system will wait for the operation currently in progress to terminate before entering the DOS shell. During the DOS shell, the server is inactive, and cannot respond to any file requests. CONFIGURE LINE - The MiniServer allows each line to be configured by using this menu selection. The remote system must conform to this configuration. Configurable parameters are: Machine ID (name), Directory Path (a series of DOS paths or directories separated by spaces), Dial Out Number (for Modem use), Baudrate, Stop Bits, Data Bits, as well as some DNC parameters such as Time-out, Maximum Error Count, and Retry Count. For information on the meanings of these DNC parameters, please consult the DNC Design Guide in this manual. EXIT - To exit server mode, select the EXIT function on the menu. The comports will be closed and the server will exit. EXIT will not terminate a file transfer or operator message which is already in progress. The operation currently underway will be completed before the server exits. Server mode displays an activity log showing the commands received from the remote computer, return status indicators from the server, and messages. Operator messages may be sent from the remote computer. These will be displayed on the PC monitor and a bell will sound.