textfiles/programming/protoc.hac

1 line
13 KiB
Plaintext
Raw Normal View History

2021-04-15 11:31:59 -07:00
PROTOCOL NOTES: CIS A PROTOCOL by Bob Richardson, Carl Raff, and Scott Lowe note: this material was not prepared for or by CIS and they have no responsibility for the accuracy or completeness of the contents. We gratefully acknowlege their cooperation and the super job they are doing, and simply wish to help document the file transfer protocol. INTRODUCTION The information presented here is intended to provide an outline of the written specifications for the CIS A Protocol. It is designed to be used by programmers who may need to debug or write programs to interface with Compuserve Information Services (CIS) terminal programs. The PBM 1000 supports a communication subsystem based on the CIS protocol. One reason is that the CIS protocol is a step in the direction of software standardization and higher compatibility among different computer systems. The CIS protocol supports flexible file transfer and is practical for in-house use on a direct-connect medium speed network. PBM tests show that the protocol runs effectively at 19.2 KB and can transfer data at a rate of up to 50 KB. In transferring files from one system to another, one CP/M based system (with a copy of any of the CIS executives that supports the A protocol) acts as a terminal. The other system, referred to as the "host," treats the "terminal" system both as a console and as the source or target of the file transfer protocol. The following is a brief description of the CIS A Protocol used by CIS. Also included is a list of Executives compatible with it, and two new files which allow anyone with a CP/M remote system to support this protocol between CP/M systems. Note: CP/M is a registered trademark of Digital Research. The Executives 1.MNEXEC [Old Executive] An older version of the Executive, MNEXEC supports ASCII transfer only. This exeecutive is primarily useful for those who wish to buy programs from Softex,dd as its ESC I response is the only one that the Softex system currently recognizes as a file-xfer executive (see ESC I response). This program does not really support the A protocol, but rather a subset. 2.CSEXEC [The Compuserve Executive] CSEXEC was the first "vanilla" version with binary support. It is a good executive to start with for those wishing to heavily modify the source because it suffers less from "rampant equate-itis" than BUFEXEC (i.e, it accomplishes tasks in a more general fashion without presenting too many options to the user). The current version seems to be modified for the Apple computer. 3.BUFEXEC [Buffered CSEXEC] BUFEXEC adds memory buffered hard copy to CSEXEC, as well as many customization equates. The Osborne version is called "BUFEXO.ASM," and is identica to BUFEXEC except for modifications for the Osborne I. 4.IOBEXEC [IO/Byte Executive] This executive is identical to BUFEXEC, except that it uses IOBYTE dispatch to access the serial port. If your system is interrupt driven, you must use IOBEXEC or modify one of the other executives. In addition, IOBEXEC allows use of cursor positioning. PROTOCOLS Characteristics of the physical protocol: asynchronous; 8 bits to the byte; 1 stop bit; no parity. The protocol mode is turned "on" by an SI instruction (shift in) from host and terminal functions in protocol mode until an SO (shift out) instruction is received. The ESC "I" Response: Each terminal responds to an ESC "I" with an ID string (see diagrams below). The ESC "A" Sequence: This initiates a file transfer. The ESC "L" Sequence: This starts a load sequence. Notes: The "." (period) is used to ACK a message (acknowledge and accept). The "/" (slash) is used to NAK a message (negative acknowledge; request retransmission). CTRL U is used to abort transmission. Note: a list of fields enclosed in [ ] marks indicate that 1 of the list will be transmitted, depending on the conditions at the time. ESC "I" Sequence