home *** CD-ROM | disk | FTP | other *** search
Text File | 1988-04-22 | 106.4 KB | 2,784 lines |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- CompuServe Information Service
-
- VIDTEX 4.0 Standards
-
- for
-
- Terminal Emulator Programs
-
-
-
-
-
-
-
-
-
-
- Copyright 1985
- by CompuServe Incorporated, Columbus Ohio
-
- April, 1985
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- NOTE
-
- The information in this document is
- subject to change without notice and
- should not be construed as a commitment
- by CompuServe Incorporated.
-
-
-
-
-
-
-
-
-
-
-
-
-
- CHAPTER 1
-
- INTRODUCTION
-
-
-
- 1.1 PURPOSE
-
- The CompuServe information service is a low cost remote computing
- service designed for use by the general public. It is simple to use,
- yet has many very powerful capabilities. Similar in some respects to
- European "viewdata" systems, the service is based on a tree
- structured, menu driven data base. The data base consists of
- individual pages or "frames."
-
- Currently CompuServe supports a terminal standard for terminal
- emulation programs. CompuServe provides a series of terminal
- executive programs called VIDTEX which implements this standard.
- These executives implement a common set of features given the widely
- varying capabilities of microcomputer systems. This document
- describes the features of the VIDTEX 4.0 software. VIDTEX implements
- error detection and retransmission protocols for the purpose of file
- transfer and program loading. This protocol is called the "CompuServe
- B Protocol".
-
- This document outlines the VIDTEX 4.0 implementation of the following
- capabilities:
-
- Video Processing
- Medium Graphics (128 x 96)
- Fine Graphics (256 x 192)
- Cursor positioning
- Terminal Loop Processing
- Meta Key Processing
- B Protocol
- Error detection.retransmission
- File transfer
-
- In general, the Host computer will not attempt to use any of the
- advanced features unless the <ESC>I interrogation response is
- implemented by the remote. The interrogate response tells the Host
- which capabilities are implemented in the terminal. If no response or
- an unknown response is received from the <ESC>I interrogation, the
- terminal is assumed to be totally "dumb", with no cursor control,
- graphics, color capability.
- Page 1-2
-
-
- An important exception to the interrogation prerequisite is a user
- request for file transfer when the terminal type is known by the host.
- The host software will present a menu of file transfer methods instead
- of sending <ESC>I.
- Page 1-3
-
-
- 1.2 CONVENTIONS USED IN THIS DOCUMENT
-
- Throughout this document the following conventions are used:
-
- <xxx> - denotes an ASCII control character where xxx is the standard
- name of the character (e.g. <ESC> is the ASCII Escape
- character, 1B hex).
-
- <x> - denotes a printable ASCII character (e.g. <A> is an ASCII
- upper case "A", 41 hex).
-
- <nnn> - denotes the ASCII character whose value is nnn decimal.
- Whenever an expression is given, it is always in decimal.
-
- lower case denotes a variable which is actually substituted by a
- string of ASCII characters or a decimal value.
-
- UPPER CASE denotes an ASCII character string exactly as shown.
-
-
-
-
-
-
-
-
-
-
-
-
- CHAPTER 2
-
- USER INTERFACE REQUIREMENTS
-
-
-
- 2.1 COMMUNICATIONS
-
- If the computer has an internal modem, it must conform to either the
- Bell 103 or Bell 212 modulation standards. To communicate with
- CompuServe, the modem must be set to originate mode and full duplex.
-
-
-
- 2.2 KEYBOARD
-
- A full ASCII alphanumeric keyboard is required, although lower case
- and most control codes are optional. Carriage return (control-M) is
- necessary to log on. If it can be detected that a key has been held
- down for approximately two seconds, it should auto-repeat. If
- hardware permits, the user should be able to transmit a break
- sequence.
-
- VIDTEX 4.0 utilizes the concept of "meta keys" to permit access to
- many of the advanced features. The keyboard implementation must
- provide a means for the user to type these meta keys. Meta key
- encoding has precedence over control key encoding. Control key
- encoding has precedence over shift key encoding. For example, Meta
- and Control and "a" is Meta-A. Meta and "a" is also Meta-A.
-
- Some keyboards lack labeled keys for typing such characters as "{",
- "|", "}", and "~" (7B though 7E hexadecimal). VIDTEX should redefine
- keys to allow the entire ASCII character set to be transmitted. An
- effort should be made to relate the label on the redefined keys and
- the characters generated. For example, shift-[ could be "{" or
- control-! could be "|".
-
- A line of input from the keyboard is obtained in the following manner.
- The user is allowed to type any displayable character (See Minimum
- Video Display Requirements). As a character is entered it should be
- echoed to the screen. The line of input can be terminated by a
- carriage return or an ESCAPE. Except in the case of file names, the
- carriage return will be included in the line of input. The ESCAPE
- terminates the line but is not included. Other control codes and meta
- keys are not permitted in the input line. During entry, the control
- codes backspace and control-U will provide a simple editing facility
- Page 2-2
-
-
- for the user. Note that backspace is destructive and control-U clears
- the entire entry line. The entry of control-C is treated as a
- control-U. If the user enters a Meta-A the line input function is
- terminated and the abort status is passed to the calling routine.
-
-
-
- 2.3 MINIMUM VIDEO DISPLAY REQUIREMENTS
-
- A minimum of 32 characters per line and 16 lines is required. If the
- terminal line width is 64 characters or greater, a double width
- character option is desirable and should be implemented (see Escape
- Sequences).
-
- The display should support the full ASCII character set although lower
- case is optional. The displayable characters are defined as the ASCII
- characters <SPACE> through <~>, inclusive (20 through 7E hexadecimal).
- If lowercase is not supported, all lowercase characters must be mapped
- into the equivalent upper case characters. If the display hardware
- does not support the correct display of some ASCII characters, the
- video driver should map these characters to those of similar shape.
- Examples of commonly unimplemented characters include "{", "|", "}",
- "~", "_", "^", and "\".
-
-
-
-
-
-
-
-
-
-
-
-
- CHAPTER 3
-
- VIDEO DRIVER REQUIREMENTS
-
-
-
- 3.1 TERMINOLOGY
-
- In order to specify the video functions some terminology needs to be
- introduced.
-
- The home position refers to the upper left most character position on
- the screen. A screen line is a grouping of adjacent character
- positions which appear on the same physical screen line. The
- character position preceding the first character on a screen line is
- the last character position of the previous line, except for the home
- position which has no preceding character position. The character
- position following the last character on a screen line is the first
- character position of the next line, except for the last character
- position on the last line which has no following character position.
-
- A video operation is an operation which changes the contents of one or
- more character positions, changes the cursor position, or alters the
- mode of video operations. A video operation can be as simple as
- displaying the next character or as complex as positioning the cursor
- or changing screen colors.
-
- The cursor is a means of representing the active character position.
- A video operation may reference the current cursor position. The
- current cursor position may be different following a video operation.
-
-
-
- 3.2 VIDEO INITIALIZATION
-
- At program execution the display screen should be cleared and a
- program identification message displayed. The message should be in
- the following format:
-
- "name Vv.e"
-
- The first item is the program name, "name". The numbers "v" and "e"
- are the version and edit number, respectively.
-
- The default mode is normal text mode and the default screen colors
- should be chosen for display readability.
- Page 3-2
-
-
- 3.3 TEXT MODE PROCESSING
-
- 3.3.1 Cursor Display
-
- The cursor must be displayed on the screen by some means such as
- reverse video, an underscore, or a graphic block. The cursor should
- be displayed following most video operations. The cursor should not
- be displayed if it was not defined after the last operation or during
- the processing of a video operation, including the reception of
- arguments during escape processing.
-
-
-
- 3.3.2 Text Display
-
- A text character will be displayed by placing the character on the
- screen at the current cursor position. The cursor is placed at the
- following character position.
-
-
-
- 3.3.3 Scrolling
-
- If a character is placed in the last position of the last line, the
- cursor will be placed at the first column of an imaginary line below
- the bottom line. The screen will not scroll until an attempt is made
- to actually display a character there.
-
-
-
- 3.3.4 ASCII Control Codes
-
- The terminal must respond to the following ASCII control codes:
-
-
-
- 3.3.4.1 <BEL> - Bell
-
- If the terminal has sound capability, it should produce a bell
- (beep) sound.
-
-
-
- 3.3.4.2 <BS> - Backspace
-
- The cursor is moved back one character position and replaces the
- character which was previously there with a space. If the cursor
- is on the first position of a line, it should move to the
- rightmost position of the previous line. If the cursor is in the
- top left corner of the screen, no action should be taken.
- Page 3-3
-
-
- 3.3.4.3 <HT> - Horizontal Tab
-
- The cursor is moved enough character positions to place the
- cursor at the next tab stop. Tab stops occur in the first column
- and every eight columns after that (i.e. columns 1,9,17,...).
- When at or past the last tab stop on a line, a tab will move the
- cursor to the first position of the following line.
-
-
-
- 3.3.4.4 <LF> - Line Feed
-
- The cursor is moved down one line without changing its relative
- horizontal position. If the cursor is on the bottom line, move
- the cursor down a line and scroll the screen one line so that the
- cursor is on the bottom line again.
-
-
-
- 3.3.4.5 <FF> - Form Feed
-
- Clear the screen to blanks and position the cursor in the upper
- left corner.
-
-
-
- 3.3.4.6 <CR> - Carriage Return
-
- Move the cursor to column one of the current line without
- destroying the character there. Note that if a <CR> is received
- after a character has been placed in the last column on a line,
- the cursor will have wrapped to the first position on the next
- line. In that nothing has been displayed, the carriage return
- requires the cursor to move up one line. The cursor should not
- be displayed (turned on) following a carriage return.
-
-
-
- 3.3.4.7 Unimplemented Control Codes
-
- The video driver should ignore all other control codes.
-
-
-
- 3.3.5 Word Cleaning
-
- The function of word cleaning is to attempt to prevent breaking words
- due to line wrapping. This is accomplished by moving entire words (or
- cleaning) to the next line.
-
- Page 3-4
-
-
- If a character has been displayed on the last character position of a
- line and the next character is a space, word cleaning is not
- necessary. If the next character is a displayable character, then
- scan the line backwards looking for a space. Scan no more than 20
- positions. If a space is not found, then place the next character in
- the first position on the following line. Having searched and found a
- space, copy each character between the space and the end of the line
- to the next line and place a space in the character's original
- position. Place the character received in the next available
- location.
-
- This makes it easier to read text which is wider than the screen
- width. For example, without word cleaning the following might be
- displayed:
-
- Now is the time for all very good progra
- mmers to come to the aid of their countr
- y.
-
- With cleaning, this would be displayed as:
-
- Now is the time for all very good
- programmers to come to the aid of their
- country.
-
-
-
- 3.4 VIDEO ESCAPE SEQUENCES
-
- The Host computer will not attempt to use the following video
- functions unless the <ESC>I interrogation is implemented. The
- following escape sequences are defined to be emulated by all
- VIDTEX 4.0 compatible software.
-
- In each case the given character is preceeded by an escape character
- (1B hex). The terminal is responsible for converting the standard
- protocol data into machine dependent functions and codes. Data that
- is inapplicable to a particular terminal should be simply discarded
- (e.g., chroma bits on a black and white unit). All characters not
- specifically mentioned are reserved by CompuServe Incorporated for
- future expansion.
-
-
-
- 3.4.1 Video ESCAPE Sequence Summary
-
- The following table summarizes the video escape sequences and the
- functions they perform. Note the difference between lower and upper
- case; this is very important!
-
- Page 3-5
-
-
- Sequence Effect on Terminal
-
- <ESC><A> Move cursor up one line
- <ESC><B> Move cursor down one line
- <ESC><C> Move cursor right one space
- <ESC><D> Move cursor left one space
- <ESC><G><mode> Change graphics mode
- <ESC><H> Move cursor to the top left corner
- <ESC><K> Clear from cursor to end of line
- <ESC><J> Clear from cursor to end of screen
- <ESC><j> Clear page - same as an ASCII Form Feed
- <ESC><l> Set normal character width
- <ESC><m> Set wide character width
- <ESC><Y><lin><col> Set cursor position
-
-
-
- 3.4.2 <ESC><A> - Cursor Up
-
- The cursor is moved up one line without changing its relative
- horizontal position. If the cursor is on the top line, it wraps to
- the same horizontal position on the bottom line. The cursor must not
- destroy the character which was previously there.
-
-
-
- 3.4.3 <ESC><B> - Cursor Down
-
- The cursor is moved down one line without changing its relative
- horizontal position. If the cursor is on the bottom line, it wraps to
- the same horizontal position on the top line. The cursor must not
- destroy the character which was previously there.
-
-
-
- 3.4.4 <ESC><C> - Cursor Right
-
- The cursor is moved right one column. If the cursor is at the last
- column, it wraps to the first position on the next line. If the
- cursor is at the bottom right corner, it wraps to the top left corner.
- The cursor must not destroy the character which was previously there.
-
-
-
- 3.4.5 <ESC><D> - Cursor Left
-
- The cursor is moved left one column. If the cursor is at the first
- column, it wraps to the last column on the previous line. If the
- cursor is at the top left corner, it wraps to bottom right corner.
- The cursor must not destroy the character which was previously there.
- Page 3-6
-
-
- 3.4.6 <ESC><H> - Home Cursor
-
- The cursor is moved to row one, column one. The cursor must not
- destroy the character which was previously there.
-
-
-
- 3.4.7 <ESC><Y><lin><col> - Position Cursor
-
- The cursor is positioned at the screen location specified by the next
- two characters. The first character is the line number plus 31 and
- the second character is the column number plus 31. The home position
- is located at cursor position line one, column one. If a line or
- column code falls outside the range of valid values, the invalid code
- is replaced by the valid code of nearest magnitude.
-
-
-
- 3.4.8 <ESC><G> - Graphics Mode Control
-
- Graphics control is done by a three character sequence. The third
- character determines the specific function.
-
-
-
- 3.4.8.1 <ESC><G><N> - Normal Mode
-
- The video mode is reset to "normal" mode (text only). The screen
- should not be changed until the display of the next character. In
- this mode the parity bit is unpredictable. Upon entering normal mode,
- the previous state of the graphics screen is unknown. No graphic
- character or image can be presumed to propagate to normal mode. The
- return to normal mode is typically followed by a clear screen to
- remove any graphic residues.
-
-
-
- 3.4.8.2 <ESC><G><H> - High Resolution Graphics
-
- The screen is cleared to black and high resolution graphics mode
- (256 x 192 pixels) is entered. In this mode data is sent as pairs of
- run length encoded characters. The first character of the pair
- indicates the number of background pixels and the second character
- indicates the number of foreground pixels. Each character of a pair
- is the actual count plus 32. In this mode, the parity bit is ignored;
- thus, the maximum count that can be transmitted is 128-32, 96.
-
- For example, the ASCII sequence <L><W> indicates fourty-four
- background pixels and fifty-five foreground pixels. The line drawing
- should also wrap from the last position on a line to the first
- position on the next line. Thus, if the last pixel set on a line was
- in position 250 and a sequence of 0 background and 10 foreground is
- received, then the last six pixels are set on the current line and the
- first four pixels are set on the next line. The keyboard should also
- be left active while in this mode.
- Page 3-7
-
-
- 3.4.8.3 <ESC><G><M> - Medium Resolution Graphics
-
- The screen is cleared to black and medium resolution graphics mode
- (128 x 96 pixels) is entered. This mode is identical to high
- resolution except for the pixel size.
-
-
-
- 3.4.9 <ESC><K> - Clear To End Of Line
-
- The screen is cleared from the current cursor position to the end of
- the current line.
-
-
-
- 3.4.10 <ESC><J> - Clear To End Of Page
-
- The screen is cleared from the current cursor position to the end of
- the page.
-
-
-
- 3.4.11 <ESC><j> - Clear Page
-
- The display is cleared and the cursor is positioned in the top left
- corner. This may also be accomplished by a form feed (0C
- hexadecimal).
-
-
-
- 3.4.12 <ESC><l> - Set Normal Character Width
-
- The display is set to its narrow character size. Note that normal
- width character mode has more columns than wide character width mode.
-
-
-
- 3.4.13 <ESC><m> - Set Wide Character Width
-
- The display is set to wide characters provided that wide mode has at
- least 32 columns.
-
-
-
-
-
-
-
-
-
-
-
-
- CHAPTER 4
-
- TERMINAL LEVEL PROCESSING
-
-
-
- 4.1 INTRODUCTION
-
- Terminal level refers to the highest level of program operation. The
- terminal level allows "time sharing" between the various input and
- output functions. Mainly terminal processing involves the
- transmission of characters typed by the user and the processing of
- characters received from the host.
-
-
-
- 4.2 TERMINAL ESCAPE PROCESSING
-
- Terminal level escape processing provides a means for coordinating the
- activities of the host and the terminal.
-
-
-
- 4.2.1 <ESC><I> - Interrogate Remote
-
- The terminal responds with a string which identifies its capabilities.
- The format of the string is:
-
- <#>code<,>option list<CR>
-
- The <#> implies the device is a VIDEOTEX-compatible unit.
-
- The code is a three character string which identifies the manufacturer
- and model of the terminal. This is optionally followed by a version
- and modification number. Codes must be arranged by negotiations with
- CompuServe Incorporated in order to maintain compatibility with our
- host software.
-
- The option list is a string of codes which indicates the features the
- terminal supports. The option codes are separated by commas. Each
- option code implies that the terminal supports one or more escape
- sequences.
-
- The <CR> marks the end of the response.
-
- For example, the response:
- Page 4-2
-
-
- #FRB24,CC,CW,G4,HC<CR>
-
- indicates that the machine is a Frobitron computer running version 2.4
- of the VIDTEX program which supports cursor control, wide characters,
- semigraphics 4, and a printer.
-
-
-
- 4.2.2 Video Enable And Disable
-
- When an <ESC><e> sequence is received, the video is disabled and
- subsequent characters are not displayed. The video is enabled again
- when an <ESC><f> sequence is received. <ESC><e> and <ESC><f> may be
- used in conjunction with <DC2> and <DC4> to direct output to the
- printer without displaying it.
-
-
-
- 4.2.3 Keyboard Lock And Unlock
-
- When an <ESC><b> sequence is received, the terminal will lock the
- keyboard and not transmit any more characters typed. Meta key
- processing will also stop in that the keyboard is locked. This
- condition is reset when an <ESC><c> sequence is received. These
- sequences can be used by a host program which does not want to be
- interrupted during critical processing.
-
-
-
- 4.2.4 <ESC><ESC> - Hardware Specific Escape
-
- This is available for hardware specific functions not otherwise
- available. Their definition and implementation is the responsibility
- of the hardware manufacturer. CompuServe reserves the right to not
- support any hardware specific escapes in its host software. The
- development and support of the host software is the responsibility of
- the hardware manufacturer.
-
- The VIDTEX 4.0 software should incorporate the following escape-escape
- sequences.
-
-
-
- 4.2.4.1 Capture Buffer Control
-
- Some common definitions for data capture control are:
-
- <ESC><ESC><O> - Open Ram Buffer
- The copying of incoming text to the capture buffer should
- begin.
- <ESC><ESC><C> - Close Ram Buffer
- The capture buffer copying should stop.
- <ESC><ESC><Z> - Zero Ram Buffer
- The capture buffer should be emptied of all data.
- <ESC><ESC><V> - Transmit Ram Buffer
- Page 4-3
-
-
- The current contents of the capture buffer should be
- transmitted to the host.
- <ESC><ESC><Y><pmt> - Transmit Ram Buffer with Prompt
- The current contents of the capture buffer should be
- transmitted to the host. After transmitting a carriage
- return, VIDTEX should wait until the single character prompt
- is received before transmitting the next line to the host.
-
-
-
- 4.2.4.2 <ESC><ESC><W><lin1><col1><lin2><col2> - Window Control
-
- Providing that the terminal supports a text display window, the size
- and location of the window on the physical screen are to be set. Each
- argument is a row or column position masked by the addition of 32.
- The argument pair, <lin1><col1>, specifies the upper-left-hand corner
- of the window. The argument pair, <lin2><col2>, specifies the
- lower-right-hand corner of the window. The values for line and column
- codes follow the rules of cursor positioning and the size of the text
- window must be 4 rows by 11 columns or larger else the window is
- removed automatically. Word cleaning is disabled for windows smaller
- than 20 columns.
-
- The SS option code allows the host to interrogate to determine the
- size of the terminal's screen. The values are transmitted in a manner
- similar to absolute cursor positioning sequences. The number of lines
- is added to 31 before transmission. The number of columns is added to
- 31 before transmission.
-
-
-
- 4.3 FLOW CONTROL
-
- VIDTEX must recognize the standard ASCII flow control characters,
- <X-OFF> (control-S or DC3) and <X-ON> (control-Q or DC1). If VIDTEX
- receives an <X-OFF> from the host, it must halt transmission
- immediately. If an <X-ON> is not received in approximately five
- seconds, transmission can be resumed.
-
- VIDTEX expects the host to observe the same rules. Flow control is
- used by VIDTEX for delaying the host during remote processing and by
- the user for regulating the rate of text display from the host. There
- are several instances where an <X-OFF> is sent to stop transmission
- from the host temporarily (RAM buffer almost full, printer buffer
- full, menu selected). Each time VIDTEX begins a remote process which
- requires the host to wait, it will transmit an <X-OFF> to the host.
- Some remote functions can contain multiple processing levels. Each
- level may user flow control. To account for this nesting of flow
- control transmissions, VIDTEX will count the number of
- internally-generated <X-OFF>'s.
-
- When a level of processing completes, it will request the transmission
- of an <X-ON>. When an <X-ON> is received by the host it will resume
- transmission immediately, regardless of how many <X-OFF>'s it has
- received. When an <X-ON> request is made, VIDTEX will first decrement
- Page 4-4
-
-
- the count of <X-OFF>'s sent. If the count is zero then the highest
- level of flow control has been reached and an <X-ON> is sent. If the
- count is non-zero then no <X-ON> is sent.
-
- The user's use of flow control will have priority over flow control
- use by VIDTEX. When the user transmits an <X-OFF> OR <SOH>
- (control-A), VIDTEX will not transmit any <X-ON>'s until the user
- types an <X-ON>. When the user's <X-ON> is transmitted, the count of
- <X-OFF>'s sent by VIDTEX will be reset. If the host does not respond
- to flow control, characters may be dropped.
-
-
-
- 4.4 PRINTER
-
- Since a display type terminal leaves no record the user can refer back
- to, hardcopy support is a desirable feature. This is particularly
- applicable to terminal emulator programs for microcomputers since most
- microcomputers can support a hardcopy printer. The terminal should
- allow both the host computer and the terminal user to control the
- printer. The user can access the printer using a meta key.
-
- The VIDTEX printer driver will convert standard ASCII into the form
- used by the printer. Many printers lack horizontal tabs (as defined
- in the video driver specification). If necessary, VIDTEX will
- substitute the proper number of spaces for an horizontal tab. Printer
- output of tabular data should be identical to video output of the same
- data. If the printer performs a <carriage return><line feed>
- operation when given a carriage return, VIDTEX will ignore all line
- feeds that immediately follow carriage returns. This will prevent the
- printer output from appearing "double spaced."
-
- When a <DC2> is received from the host, the terminal should start
- copying all received data to the printer. When a <DC4> is received
- from the host, the terminal should stop the copying. The terminal
- should have a buffer for the printer where characters may be placed if
- the printer is busy. When the buffer becomes within ten characters of
- being filled, then the terminal should send a <DC3> to stop the
- transmission of data. The terminal should continue to empty the
- printer buffer until the buffer is within ten characters of being
- empty at which time a <DC1> should be sent to the host to resume data
- tranmission. This buffering and flow control allows the use of a slow
- printer at a higher data transmission rate.
-
-
-
-
-
-
-
-
-
-
-
-
- CHAPTER 5
-
- SIMPLE META KEY FUNCTIONS
-
-
-
- Meta keys allow the user perform many local functions that users often
- find to be valuable. For greatest speed and efficiency, most
- operations are typically accessed by holding the meta key and pressing
- the key corresponding to the desired function. Less-used functions
- are accessed via menus.
-
-
-
- 5.1 COPYING DATA TO THE PRINTER
-
- If you type a Meta-R on the keyboard, a copy of all subsequent
- characters received will be sent to the printer. A Meta-T stops the
- copying.
-
-
-
- 5.2 SCREEN PRINT
-
- A printed copy of the entire screen should be provided by means of a
- meta key. The particular key choice is not standard although Meta-*
- and Meta-: are currently in use. This function cannot be performed
- remotely. Unless the printer supports graphics, print screen should
- ignore graphic images. If the printer is not ready when screen print
- is requested, the cursor will reappear. The screen print can be
- aborted by typing a Meta-A.
-
-
-
- 5.3 THE HELP PAGE
-
- Meta-H should display a list of redefined keys and a list of those
- characters substituted for improperly displayed ASCII characters. The
- user must key carriage return for terminal mode.
- Page 5-2
-
-
- 5.4 MENU PAGE
-
- Meta-M lists all available remote operations. While looking at the
- menu, the user need only press the letter for the operation they want.
- The meta key is not required. Pressing carriage return will return to
- terminal mode.
-
- The menu message will provide information concerning the state of the
- Ram Buffer typically shown as follows:
-
- Used: 00000 Free: 00000
-
- The number following "Used:" in the menu indicates how many
- characters are currently stored in the RAM buffer. The number
- following "Free:" indicates the number of unused characters available
- in the RAM buffer.
-
- As an option, the menu message may contain a means of flagging the
- current status of certain features. Possible items to flag include
- the status of word cleaning on/off and RAM buffer open/closed.
-
-
-
- 5.5 LOCAL VIDEO CONTROL
-
- VIDTEX provides two local video control functions with optional wide
- mode and text window control.
-
-
-
- 5.5.1 Screen Clearing
-
- A meta key will be chosen to allow the user to locally clear the
- screen. Meta-CLR is an obvious choice.
-
-
-
- 5.5.2 Word Cleaning Control
-
- A Meta-B will disable the word cleaning function of VIDTEX. This may
- cause words to start on the right edge of the screen and end on the
- next line. This mode is useful when you are typing out tables and do
- not want extra spaces inserted. A Meta-E will enable the word
- cleaning function.
-
-
-
- 5.5.3 Wide Character Mode Control
-
- If hardware permits a wide character video display mode (32 columns by
- 16 lines minimum), two meta keys should be designated to allow the
- user to switch between wide and normal display modes. Meta-W for wide
- mode and Meta-N for normal mode are currently in use.
- Page 5-3
-
-
- 5.5.4 Text Window Control
-
- As an optional feature, the VIDTEX video driver can allow the user to
- define the size and location of the "text display window."
-
- At execution, the size of the window is the entire screen. Some meta
- key should be designated to allow the user to set a new size and
- location. Meta-W is currently in use. A set of instructions should
- be displayed at the top of the current screen. The user should be
- allowed to position the cursor anywhere on the screen to indicate
- where the upper left hand corner of the new text display window should
- be set. When the cursor is positioned, the user presses carriage
- return. The cursor is then positioned to set the lower right hand
- corner of the text window, and carriage return is pressed. The window
- is now created. The window must be at least 4 lines by 11 columns in
- size or the window will be set to the full screen. If the window is
- less than 20 columns word cleaning is disabled. After the window has
- been created or removed, the cursor is positioned to the upper
- left-hand corner of the window.
-
- Pressing Meta-A at anytime during the window creation sequence should
- abort window creation and break the window to the full screen. While
- the window is in effect, all new text will appear inside the window,
- including the menu and help pages.
-
- The video driver should function within the window. All functions
- valid in normal and semigraphics 4 mode should work in "window mode."
- Medium and high resolution modes will remove the text window upon
- entry into these modes. The text window will be set to the full
- screen upon exit from medium and high resolution modes.
-
- The window creation process specifies a rectangular area of the
- physical screen to be treated as the current screen for all video
- processing. Each logical screen line begins at the same physical
- column position. Similarly each screen line ends at the same column
- position. All character positions outside the "active window" should
- never be acted upon by the video driver. Notably, when the cursor is
- moved to the undefined character position past the last character
- position on the last line, the cursor should not appear.
-
-
-
- 5.6 VIDTEX 4.0 DISK VERSUS TAPE
-
- VIDTEX is typically a disk-based program. VIDTEX can alternately be
- written as a tape-based program. A tape version of VIDTEX will be
- severely limited in terms of advanced capabilities.
-
- The following descriptions will presume a disk-based system.
- Page 5-4
-
-
- 5.7 INPUT TO DISK OPERATIONS
-
- Whenever VIDTEX requires a file name for a local operation, a
- descriptive prompt will be displayed. The user may enter a file name.
- The file name will be a line of keyboard input (See Keyboard).
-
- If the user enters a blank line at a file name prompt, VIDTEX may
- optionally supply an appropriate file name. This function is not
- advisable for certain operations such as "delete a file." If a
- default name is not supplied, VIDTEX should abort the function. On
- multi-drive systems, VIDTEX may optionally supply a default disk drive
- identifier. The file name string will be mapped into the character
- set normally used by the computer's disk operation system.
-
- VIDTEX should provide some means to notify the user in the event of
- any disk errors. If the operating system provides error message text
- this text should be displayed to the user. VIDTEX should also display
- a standard error text identifying that an error has occurred. If
- VIDTEX is not is autolog mode, the user should be prompted to press
- return to continue. The standard does not specify what action should
- be taken if VIDTEX is in autolog mode.
-
-
-
- 5.8 FUNCTION KEYS
-
- VIDTEX will provide function keys, each of which can be defined as any
- arbitrary text string the user chooses. The minimum implementation
- will include ten function keys, typically Meta-0 through Meta-9. In
- application, the function keys are useful for frequently typed
- commands.
-
-
-
- 5.8.1 Executing A Function Key
-
- The execution of a function should provide the user with convenience.
- To execute a defined function key, the user should need only to press
- a dedicated function key or hold down the Meta key and press the
- number of the function key. This will start the transmission of the
- key definition. Typing Meta-A should abort a transmission once it has
- started.
-
-
-
- 5.8.2 The Function Key Menu
-
- The creation and storage of function key definitions are not frequent
- operations so these are handled from a menu accessed by typing Meta-F.
- After typing Meta-F, the user should be presented with a menu. For
- example:
-
- Enter D to display the function key definitions
- or L to load definitions from disk
- or S to save definitions to disk
- Page 5-5
-
-
- or the key to define (0-9):
-
- The user may type Meta-A to return to terminal mode directly.
-
-
-
- 5.8.3 Defining A Function Key
-
- The definition of a function key begins with Meta-F to access the
- menu. The user should be prompted to press the key they wish to
- redefine. The user need not press carriage return. VIDTEX first
- erases the the existing definition. The user may then enter the new
- definition. The creation routine should accept all printing
- characters and control codes. The routine need only display those
- control codes supported by the video driver. Unimplemented codes do
- not display. If a carriage return is entered into a definition, a
- line feed will also be displayed. This is done to make the display
- readable. To end the definition, the user must type another Meta-F,
- all other meta keys are discarded. The user may clear a function key
- by selecting it for redefinition and immediately typing a Meta-F.
- This will cause the old definition to be erased without entering a new
- definition. The total number of characters for all the function key
- definitions will not exceed 255.
-
-
-
- 5.8.4 Displaying The Function Keys
-
- To display the current definitions of all the function keys, the user
- should type a Meta-F and select the display option (D). Each key
- number will be displayed followed by a colon and the key definition.
- When the definitions are displayed, a line feed is automatically
- displayed after a carriage return. This makes viewing multi-line
- function keys easier. Note that only the carriage return is
- transmitted when the function key is executed.
-
- Once the function keys are displayed, the user can press the number of
- the key they want to execute (the Meta key should not be required) or
- they can press "F" to return to the function key menu.
-
-
-
- 5.8.5 Function Key Disk Operations
-
- The load and save function key options allow the user to keep several
- sets of definitions with different filenames on disk at one time.
- When VIDTEX is first executed, the function keys will be automatically
- loaded from a specified file name.
- Page 5-6
-
-
- 5.8.5.1 Saving The Function Keys
-
- To save the function key definitions to disk, the user should type a
- Meta-F and select the save option (S). VIDTEX will then prompt for a
- file name. If the file specified already exits on disk, VIDTEX will
- delete the existing file without notifying the user that it existed.
- The definitions will then be written to the file specified. A Meta-A
- at the file name prompt should abort the save option and return to
- terminal mode.
-
-
-
- 5.8.5.2 Loading The Function Keys
-
- To load the function key definitions from a previously saved file, the
- user should type a Meta-F and select the load option (L). VIDTEX will
- then prompt for a file name. The existing definitions will be cleared
- and replaced by those from the file. Typing a Meta-A at the file name
- prompt should abort the load option. VIDTEX automatically loads the
- definitions from a specified file name when it is first executed.
-
-
-
- 5.9 ABORTING A META FUNCTION
-
- Most meta key operations should be aborted using Meta-A. Meta-Abort
- during window creation will set the window to the full screen.
- Meta-Abort will terminate any function key or RAM buffer transmission.
- To abort the creation of a new auto-logon file, type Meta-A at the
- file name prompt. Once the file name is entered, the Autolog file
- creation cannot be aborted.
-
-
-
- 5.10 EXITING VIDTEX
-
- Meta-X will exit VIDTEX. To prevent an accidental exit, VIDTEX may
- optionally display a message and request the user to verify the exit
- request. To continue the terminal session, the user must reload and
- execute VIDTEX.
-
- As an optional feature, VIDTEX will automatically load and execute a
- program (written in the native language of the computer) if certain
- conditions are met at time of exit. A typical implementation requries
- three components, all located one after another in memory. First two
- key letters such as "EX" must be present. Next in memory will be the
- length of the file name to search for. The length will be range
- checked for validity. Finally the file name itself will be stored
- ascending in memory. All of this information has to be present at the
- time of exiting from of VIDTEX if auto load and execute on exit is to
- work.
-
-
-
-
-
-
-
-
-
-
-
-
- CHAPTER 6
-
- THE RAM BUFFER
-
-
-
- VIDTEX will allow the user to save a copy of all characters received
- in the unused portion of RAM (the RAM buffer). This is also known as
- data-capturing since the received data is saved instead of being
- discarded as soon as it is received. The RAM buffer allows the user
- to capture text from the host and save it for future reference.
-
-
-
- 6.1 DATA CAPTURE
-
- When VIDTEX is first run the RAM buffer is empty and closed. To open
- the RAM buffer and start saving the data, the user types a Meta-O. An
- informative message should be displayed. All subsequent received
- characters will be added to the RAM buffer. The RAM buffer is closed
- by typing a Meta-C. Again the user should be informed. the RAM
- buffer may be opened again to add more to it. The RAM buffer can be
- zeroed (emptied) by typing a Meta-Z. The message displayed should
- show if the RAM buffer was empty or if it was emptied by the Meta-Z.
-
- If the RAM buffer becomes almost full, a message will be displayed and
- a control-S transmitted which immediately suspends host output. This
- gives the user a chance to save the buffer, zero it, and continue.
- The user must type the control-Q to resume transmission from the host.
- If the host does not stop transmission or the user types an control-Q
- without zeroing the buffer, it will automatically be closed.
-
-
-
- 6.2 SAVING THE SCREEN
-
- A copy of the screen can be added to the RAM buffer by typing a Meta-G
- (for get screen). This function is similar to the screen print
- function. Each line is copied into the RAM buffer up to the last
- non-blank character on the line. After the last character on a line,
- a Carriage Return/Line Feed is added. If a line is entirely blank,
- only a Line Feed is added.
- Page 6-2
-
-
- 6.3 VIEWING THE RAM BUFFER
-
- The contents of the RAM buffer can be displayed by typing a Meta-D.
- The display should stop immediately if a control-S is typed. To
- resume the display, the user types a control-Q. The display can be
- stopped at the end of a line (after the next line feed character) by
- typing a control-A. To cancel the display, the user types control-O
- or control-C. A message indicating that display has been cancelled
- and a prompt to press carriage return to continue will be displayed.
- When the display of RAM buffer contents is done, a message indicating
- end of buffer will be displayed and the user will be prompted to press
- carriage return to return to terminal mode.
-
- The RAM buffer will be printed by typing a Meta-P. The printing of
- the RAM buffer will be aborted by typing a Meta-A.
-
-
-
- 6.4 TRANSMITTING THE RAM BUFFER
-
- Typing a Meta-V will transmit the RAM buffer continuously. The user
- will be informed that the transmission has begun. The transmission
- will stop only after all of the RAM buffer has been transmitted. Flow
- control (Control-S and Control-Q) from the host is recognized during
- the transmission. The transmission can be aborted by typing a Meta-A.
-
- Typing a Meta-Y will initiate a prompted transmission of the RAM
- buffer. First VIDTEX will prompt for a prompt character; then a
- message displaying the prompt character will be displayed, and the RAM
- buffer will be transmitted one line at a time. After each line has
- been transmitted (a carriage return has been transmitted), VIDTEX will
- wait for the prompt character specified to be received. Note that the
- first line of the RAM buffer is transmitted before prompt seeking
- begins. The transmission can be aborted by typing a Meta-A.
-
- The keyboard remains active during a RAM buffer transmission. The
- keys typed by the user should be transmitted with highest priority,
- that is, without regard to prompt seeking or the transmission of a
- line from the RAM buffer.
-
-
-
- 6.5 SAVING THE RAM BUFFER TO DISK
-
- There are two ways to save the RAM buffer to disk: edited and
- unedited. The edited save converts the ASCII data in the RAM buffer
- data to the character set normally used by the computer. An attempt
- should be made to map as many components of the ASCII and semigraphics
- 4 character sets into the native character set as the native character
- set/video driver will allow. The unedited save will save a copy of
- exactly what was received. If the RAM buffer is empty, a message
- should be displayed informing the user that the buffer is empty and
- the save function aborted.
-
- Typing a Meta-U will save the RAM buffer to disk unedited. VIDTEX
- Page 6-3
-
-
- will first prompt for the filename to save the RAM buffer to. The
- user may abort the save by typing a Meta-A at the file name prompt.
-
- Typing a Meta-S will save an edited version of the RAM buffer to disk.
- VIDTEX will first prompt for the filename to save the RAM buffer to.
- The user may abort the save by typing a Meta-A at the file name
- prompt. The edited save should be used for saving data to disk for
- processing by another program.
-
-
-
- 6.6 LOADING THE RAM BUFFER FROM DISK
-
- Typing a Meta-L will load the RAM buffer from a disk file. First
- VIDTEX will prompt for a file name to load from. Meta-A will abort
- the load function. All data in the file will be added to the current
- contents of the RAM buffer. If the file is too large to load or the
- buffer becomes full after the load, an error message will be
- displayed. If the error message is displayed, the user should be
- prompted to press RETURN to continue. During a RAM buffer load, text
- is inserted into the buffer until the buffer is full.
-
-
-
-
-
-
-
-
-
-
-
-
- CHAPTER 7
-
- AUTOLOG
-
-
-
- Autolog allows the user to keep logon information for many different
- systems. It also has the capacity to act in place of the user for a
- number of applications.
-
-
-
- 7.1 CREATING A NEW AUTOLOG FILE
-
- A new Autolog file will created with the following steps as described
- from the user's point of view:
-
- 1. First type a Meta-I. You will then be prompted for the Autolog
- file name to write. If you only press carriage return, a default
- file name will be used. If the file already exists, it will first
- be deleted. To abort the autolog creation, type a Meta-A at the
- file name prompt.
-
- 2. You will then be asked for a prompt to wait for from the host. If
- you do not want to wait for a prompt, just press carriage return.
- Otherwise enter the host's prompt. The prompt sequence is
- translated to upper case when it is entered. All received
- characters are translated to upper case for testing against the
- prompt. The maximum length for a prompt from the host is typically
- 20 characters. A prompt length of four to five characters or less
- is recommended. You may press the carriage return or ESCAPE key to
- terminate the prompt. However, the carriage return or ESCAPE is
- not included as part of the prompt.
-
- 3. You will then be asked for a response to transmit. Enter your
- response terminated with carriage return or the Escape character.
- The carriage return will be transmitted with the response. The
- Escape will transmit no terminator when the response is sent. If
- you enter just an Escape for a response, an empty response is
- indicated. The maximum length for a response is typically 64
- characters. A response longer than the maximum number of
- characters per line can be transmitted by entering the response in
- two or more parts, each less than the maximum characters and
- entering a null prompt between each part of the response.
-
- 4. Repeat the prompt/response sequence as many times as is neccessary
- Page 7-2
-
-
- to complete your logon sequence. When you have completed the
- sequence, enter a null entry at both a prompt and a response.
- After you have completed the sequence, VIDTEX will return to
- terminal mode.
-
- The prompt and response entries will be accepted as lines of keyboard
- input (See Keyboard). Note that the file may be optionally encrypted
- on disk to protect the user's logon information.
-
-
-
- 7.2 EXECUTING AN AUTOLOG
-
- To execute an autolog file, the user will press Meta-J. VIDTEX will
- then prompt for the Autolog file name to read. Pressing only carriage
- return will select a default file name. Note that autolog lacks the
- capability to verify that the file specified is a true autolog file.
- To abort the initiation of an autolog execution, the user must type a
- Meta-A at the file name prompt. If the file exists VIDTEX will enter
- autolog mode. VIDTEX will automatically exit autolog mode when all
- prompts are found and all responses are sent. The execution of an
- autolog can be aborted by typing a Meta-A.
-
- The keyboard remains active during an autolog execution. This allows
- the user to type during an autolog execution. The keys typed by the
- user should be transmitted with highest priority, that is, without
- regard to prompt seeking or the response if currently being
- transmitted.
-
-
-
- 7.3 ADDITIONAL AUTOLOG FEATURES
-
- VIDTEX 4.0 Autolog can do more than simply log onto a host system.
- The prompt seeking function allows VIDTEX to act in the place of the
- keyboard to provide a response to a host program. Prompts can be any
- text that the host displays.
-
- The response from autolog can be any text, control characters, or a
- command to VIDTEX to perform most any of the local meta functions.
- The user can enter a control character into the response by typing an
- UP ARROW then type the letter of the control key. A meta key command
- is entered into the response by typing LEFT ARROW then type the letter
- of the meta key.
-
- The user may obtain a delay of one half second by entering Meta-&
- (Meta-ampersand) into a response. A delay of two seconds is obtained
- by entering Meta-% (Meta-percent) into a response. If hardware
- permits carrier detection, VIDTEX should implement Meta-+ (Meta-plus)
- as a meta key autolog response to delay until the modem indicates that
- carrier is present (carrier detection). VIDTEX will delay after
- carrier is present for 2 seconds to assure that carrier is stable.
- Similarly, a delay until the modem indicates that carrier is lost is
- obtained by entering Meta-- (Meta-minus) into a response. Meta-&,
- Meta-%, Meta-+, and Meta-- can only be entered into an autolog
- Page 7-3
-
-
- response and are not available from the keyboard or the Menu.
-
- A single UP ARROW character is entered into a response by entering two
- consecutive UP ARROWs. Similarly a single LEFT ARROW character is
- also entered by two consecutive LEFT ARROWs.
-
-
-
- 7.4 AUTOLOG FILE CHAINING
-
- The execution of a new Autolog file can be started from an already
- executing autolog file. When the Meta-J is executed from an Autolog
- file, the current file is closed and the file specified is then
- executed. The contents of the Autolog file after the
- "Meta-Jfilename<RETURN>" is ignored.
-
-
-
- 7.5 AUTOLOG EXAMPLES
-
- A sample autolog creation sequence to logon to CompuServe is shown
- below.
-
- Creating New Auto Logon
- Enter file name: compuserve auto Select the file
- Prompt: <ESCAPE> Don't wait for prompt,
- transmit immediately
- Response: ^C<ESCAPE> (<Up arrow><C>)
- Transmit a control-C
- with no carriage return
- Prompt: ID: Wait for 'USER ID:'
- Response: 70000,1 Then send '70000,1'
- Prompt: word: Wait for 'PASSWORD:'
- Response: SECRET Then send 'SECRET'
- Prompt: ! Wait until DISPLA
- prompts for input
- Response: GO HOM-1 Transmit 'GO HOM-1'
- Prompt: <ESCAPE> Terminate the input
- Response: <ESCAPE> sequence by entering
- no prompt and no
- response
-
- Page 7-4
-
-
- The following Autolog could be used to get to the CB simulator program
- from most any other menu on CompuServe. The function key file named
- "cb keys" must define key number 1 to be 'GO HOM-XX' where "XX" is the
- page number of CB and key number 2 as the handle you want to use while
- in CB. HOM-21 is used for illustration only. In this example a left
- arrow is represented by "-".
-
- Creating New Auto Logon
- Enter file name: cb auto Select the file
- Prompt: <ESCAPE> Don't wait for prompt
- Response: <-FLcb keys Load Function Keys
- from "cb keys"
- Prompt: <ESCAPE> Don't wait for prompt
- Response: T Send T for TOP
- Prompt: ! Wait until top menu
- is displayed
- Response: <-1<ESCAPE> Transmit Function
- Key One
- Prompt: ? Wait unitl CB prompts
- for handle
- Response: <-2<ESCAPE> Transmit Function
- Key Two
- Prompt: <ESCAPE> Terminate the input
- Response: <ESCAPE> sequence by entering
- no prompt and no
- response
-
- The following shows how the autolog might execute. It is initiated by
- typing a Meta-J and responding with the the name "cb auto".
-
- T
-
- CompuServe Page CIS-1
- CompuServe Information Service
- 1 Home Services
- 2 Business & Financial
- 3 Personal Computing
- 4 Services for Professionals
- 5 User Information
- 6 Index
- Enter your selection number,
- or H for more information.
- !GO HOM-21
- CompuServe Page HOM-21
-
- Request Recorded,
- One Moment, Please
- Thank You for Waiting
- CB Simulator Ver 3(45)
- What's your handle? (your handle)
- (Channel) users tuned in
- Which channel: 1
- (1,Susana) Hi, CB'er
-
- Page 7-5
-
-
- The following example shows how the Autolog feature could be used to
- set the communications parameters to even parity, flow control
- disabled. See the section "Modifying Communications Characteristics"
- for details on the Meta-Q function. In this example a left arrow is
- represented by "<-".
-
- Creating New Auto Logon
- Enter file name: setcom auto Select the file
- Prompt: <ESCAPE> Don't wait for prompt
- Response: <-Q<ESCAPE> Select Meta-Q
- Prompt: <ESCAPE> Don't wait for prompt
- Response: E<ESCAPE> Set even parity
- Prompt: <ESCAPE> Don't wait for prompt
- Response: N<ESCAPE> Set no flow control
- Prompt: <ESCAPE> Terminate the input
- Response: <ESCAPE> sequence by entering
- no prompt and no
- response
-
- The following example also performs the same function and then
- initiates the Autolog file "login auto". In this example a left arrow
- is represented by "<-".
-
- Creating New Auto Logon
- Enter file name: setcom auto Select the file
- Prompt: <ESCAPE> Don't wait for prompt
- Response: <-QEN Set the communications
- parameters
- Prompt: <ESCAPE> Don't wait for prompt
- Response: <-Jlogin auto Start the Autolog file
- "login auto"
- Prompt: <ESCAPE> Terminate the input
- Response: <ESCAPE> sequence by entering
- no prompt and no
- response
-
-
-
- 7.6 AUTOLOG AUTO START UPON EXECUTION
-
- VIDTEX will automatically enter autolog execution if certain
- conditions are met. A typical implementation requries three
- components, all located one after another in memory. First two key
- letters such as "AL" must be present. Next in memory will be the
- length of the file name to begin the autolog with. The length will be
- range checked for validity. Finally the file name itself will be
- stored ascending in memory. All of this information must be present
- at the execution of VIDTEX before auto start will work.
- Page 7-6
-
-
- 7.7 MODIFYING COMMUNICATION CHARACTERISTICS
-
- Meta-Q allows the user to enable/disable flow control, change the
- Parity mode, select the Baud Rate (if possible), change the Duplex
- mode, and other communication parameters such as printer baud rate.
- Pressing Meta-Q will display the communications menu. The menu should
- indicate the current state of each feature. The user may then make
- new selections for each feature. Each time the user makes a new
- selection, the display should be updated. The user types carriage
- return to return to terminal mode.
-
- The disable flow control feature will disable the recoginition of
- received flow control characters, but VIDTEX will still transmit flow
- control to the host.
-
- The parity modes available are 1) disabled, 8 bit data, 2) Even, 3)
- Odd, 4) One, and 5) Zero. This feature only effects the parity of
- characters typed by the user, or auto transmitted from an autolog
- response, function key execution, or RAM buffer transmission.
-
- In Half Duplex mode, The character is echoed locally by calling the
- video driver to display the character at the time it is placed in the
- transmit buffer. As an option, all ESCAPE characters typed to the
- host will be diplayed as "$" to aid readability.
-
-
-
-
-
-
-
-
-
-
-
-
- CHAPTER 8
-
- B PROTOCOL: PRIMITIVES
-
-
-
- 8.1 PURPOSE
-
- The CompuServe B Protocol is used to provides an error-free means of
- exchanging information between a remote terminal or computer and a
- CompuServe host computer by means of error detection and
- retransmission. The CompuServe B Protocol will only be used if the
- remote device responds to an <ESC><I> sequence with PB in its option
- list. B Protocol disk transfer will only be used if the interrogate
- response of the remote device includes the DT option.
-
-
-
- 8.2 GENERAL TERMINOLOGY
-
- 8.2.1 Terminal Mode
-
- Terminal mode refers to the videotex terminal processing described in
- the first part of this document.
-
-
-
- 8.2.2 Protocol Mode
-
- Protocol mode refers to the special processing associated with
- protocol transmissions and function processing. Protocol mode implies
- an eight bit data path, disabled keyboard processing, nondisplay of
- received data, and disabled termimal mode processing. Protocol and
- terminal modes are mutually exclusive in function.
-
-
-
- 8.2.3 File Transfer Mode
-
- File Transfer mode refers to a special mode within protocol mode which
- is characterized by an uninterrupted protocol mode session in which
- the transfer of a file is accomplished.
- Page 8-2
-
-
- 8.2.4 Host
-
- The host refers to the "master" portion of the protocol, the computer
- running the "master" protocol and its associated telecommunications
- network. Only the host can initiate a B Protocol session.
-
-
-
- 8.2.5 Remote
-
- The remote refers to the "slave" portion of the protocol and the
- microcomputer or smart terminal running the "slave" protocol.
-
-
-
- 8.3 FLOW CONTROL
-
- Flow control in protocol mode will regulate the transmissions of the
- remote only. When an XOFF (<DC3>) is received, the transmission of
- data must cease immediately. The transmission resumes upon reception
- of an XON (<DC1>). The remote should never transmit flow control to
- the host.
-
-
-
- 8.4 PROTOCOL BUFFER LEVEL TERMINOLOGY
-
- 8.4.1 Protocol Block Transmission
-
- A block transmission refers to the transmission of a block and the
- positive acknowledgement that the block was received correctly. The
- protocol block has several parts.
-
-
-
- 8.4.2 Block Number
-
- Each block transmitted has a block number associated with it. The
- block number is modulo 10, thus the block number after 9 is 0. The
- block number verification logic refers to the number of the current
- block and to the number of the last previously verified block. At
- program execution, the last block number is set to 0. The current
- block is therefore 1. Each time a block is verified the terminal
- emulator should increment the current block number. The host protocol
- logic must syncronize its block number with the terminal emulator, not
- vice versa.
-
-
-
- 8.4.3 Command Field
-
- The command field contains an ASCII string which specifies a function
- to be performed. (See B Protocol Functions.)
- Page 8-3
-
-
- 8.4.4 Block Contents
-
- The content of the protocol block is the data needed to perform the
- function specified. The data is transmitted "transparently" so as to
- allow the receiver to distinguish between data and control codes.
-
-
-
- 8.4.5 Transparency
-
- Since some control characters are used by the protocol, control
- characters within the data are masked. Control characters in the data
- are transmitted transparently by the sequence <DLE><character+64>.
- Using this rule a control-A (<SOH>) would be sent as <DLE><A>. This
- allows all 8 bit data to be transmitted unambiguously. Currently, the
- only characters that NEED to be transmitted transparently are ETX,
- DLE, and ENQ. The host may mask any other control characters during
- transmission, however, and thus the microcomputer must be able to
- accept the masking of any character. These rules apply to the data
- only during transmission; the data is converted to the original
- character immediately upon reception.
-
-
-
- 8.4.6 Checksum
-
- The "checksum" is a value used to detect any errors. At the beginning
- of every attempt to send a protocol block, the checksum is initialized
- to zero. Then, for each character in the block starting with the
- block number and ending with the <ETX>, the following algorithm is
- applied. The old checksum is rotated left one bit with bit 7 being
- rotated into bit 0; the new character is added; if carry occurs, one
- is added to the checksum. The checksum is computed from real data
- only (that is, after transparency masking has been removed.) The
- checksum is sent as a transparent character.
-
-
-
- 8.5 HOST PROTOCOL INITIALIZATION
-
- The information required for the host to begin a protocol session
- consists of verifying that the remote has B Protocol and synchronizing
- the host internal block number with the remote.
-
- The host can determine if the remote has B Protocol by sending an
- <ESC><I> in terminal mode. The remote interrogate response must
- contain "PB" for B Protocol and in addition "DT" for file transfer
- mode. (See Terminal Escape Processing)
-
- The host may at any time during terminal processing transmit an <ENQ>
- to the remote to obtain a positive acknowledgement which contains the
- block number of the last block correctly transmitted.
- Page 8-4
-
-
- 8.6 BLOCK TRANSMISSION
-
- The transmission of a protocol block involves four parts: the
- preparation, the actual sending of the block, and the logic to
- error-detect and retransmit a bad block, and the logic to recognize
- the receiver's positive acknowledgement.
-
-
-
- 8.6.1 Preparation For Transmission
-
- The remote will only transmit a protocol block in response to a
- protocol function request from the host. Generally, the remote will
- perform the required function before sending the positive
- acknowledgement of the host protocol block. Because of this
- arrangement, the actions taken to prepare for buffer reception will
- still be in effect for buffer transmissions to the host.
-
- The remote will begin reception of a protocol buffer when it receives
- a <DLE>. When the reception of a protocol buffer is intiated by the
- host, the remote should (1) remember the current UART masking mode
- (seven or eight bit) and enter eight bit mode; (2) close the capture
- buffer to prevent the received block from being copied to the Ram
- Buffer; and (3) disable the keyboard.
-
-
-
- 8.6.2 Actual Block Transmission
-
- The actual transmission of a single protocol buffer involves the
- following:
- Page 8-5
-
-
- 8.6.2.1 Components Of A Block
-
- The format of the B Protocol block as it is transmitted is:
-
- <DLE><B><blknum+48><command><contents><ETX><checksum>
-
- <DLE> in this context indicates the beginning of a Protocol
- transmission.
-
- <B> indicates the start of a B protocol block.
-
- <blknum> is the sender's current block number. The receiver should
- store the received block number for later comparison to its own
- internal block number.
-
- <command> field is an ASCII string which indicates the desired
- function.
-
- <contents> field is the transparent data required by "command".
-
- <ETX> marks the end of the block.
-
- <checksum> is a value used to detect any errors. The checksum is
- initialized to zero. The received checksum is transmitted
- transparently and must match the receiver's internally calculated
- checksum.
-
-
-
- 8.6.2.2 User Assurance
-
- During long protocol sessions the user may come to believe that the
- protocol has died. To avoid this situation the remote should diplay a
- "+" on the user's screen for 32 characters received or transmitted
- during a file transfer session.
-
-
-
- 8.6.2.3 Maximum Block Length
-
- The maximum block length, from the initial <DLE> to the final
- checksum, not including transparent characters is 512. If the
- terminal does not detect an <ETX> within this length, it has been lost
- due to line noise and the block is bad.
-
-
-
- 8.6.3 Error Detection And Retransmission
-
- The protocol logic will handle the following error conditions:
- Page 8-6
-
-
- 8.6.3.1 Unidentified Protocol Block
-
- The protocol block reception begins with <DLE>. If the next
- character received is not <B> then the remote will display the
- character on the screen and exit protocol mode.
-
-
-
- 8.6.3.2 <NAK> Negative Acknowledge
-
- The receiver will send a <NAK> if any of the following situations
- occur:
-
- 1) If the block number is incorrect (that is; the received
- block number is neither the receiver's current nor last
- block number)
- 2) the receiver times out
- 3) the checksum is incorrect
- 4) an <ETX> is not received within the maximum block length
- 5) an <ETX> is received in terminal mode
-
- If the remote is in file transfer mode, the value of the last
- correctly acknowledged block number should be displayed on the
- screen when a <NAK> is transmitted to the host.
-
- The sender will attempt to retransmit a block ten times before
- aborting its attempts and switching back to non-protocol
- communication. If the remote is the sender and an <ENQ> is
- received, the remote will assume failure and retransmit the
- block.
-
-
-
- 8.6.3.3 Failure Acknowledge
-
- In the event that an error occurred during function processing by
- the receiver, it responds with a protocol block with a "command"
- field of <F> (for failure) and the "contents" field containing a
- single letter error descriptor. The error descriptor can be one
- of the following:
-
- <N> the function is not implemented
- <C> there is a capacity problem (for example, there are not
- that many pages, or there is no RAM at that address)
- <E> an error occurred during processing (for example, disk
- errors)
- <A> the user typed a Meta-A to abort the protocol function
-
- Once the failure block has been acknowledged by the host, the
- remote will exit protocol mode and file transfer mode if active
- and return to terminal mode.
- Page 8-7
-
-
- 8.6.3.4 Time Outs
-
- It is necessary to define some time outs which allow the
- protocol to continue even if some control sequences get
- garbled. This allows the protocol to properly recover and
- continue.
-
- After the checksum for a block has been transmitted, the sender
- initiates a 10 second timer. If some type of acknowledge is
- not received within that time, the sender transmits an enquire
- to determine the status of the receiver. The sender will wait
- ten more seconds before transmitting another enquire. The
- sender will issue ten enquires before aborting the protocol and
- returning to non-protocol mode.
-
- When a block is being received, the receiver should wait for
- ten seconds for a character. If one is not received in that
- time, it should assume that the <ETX> was garbled and transmit
- a negative acknowledge.
-
-
-
- 8.6.4 Positive Acknowledgement
-
- Once a block has been transmitted and processed without error, the
- receiver should send a positive acknowledgement to the sender.
-
- A special case of error handling occurs when the received block
- number is not the current block number but the block number of the
- last block that was correctly processed and the positive
- acknowledgement was sent. If the positive acknowledgement is
- grabled, the sender will retransmit the block again. In this case
- the receiver should discard this duplicate block (since it has
- already been processed once) and send a positive acknowledgement to
- the sender.
-
- If the sender receives a positive acknowledgement on the last block
- correctly acknowledged, it will ignore the acknowledgement and await
- the positive acknowledgement for the current block from the
- receiver.
-
- The normal case is when the received block number matches the
- receiver's current internal block number. If no other error has
- occurred, the receiver will proceed to process the block. Depending
- on the function, the receiver may transmit the positive
- acknowledgement before or after the processing of the contents of
- the block. If an error occurs after the the protocol block has been
- determined to be correct, the error cannot be communications
- related. The remote should transmit a failure block with a
- "contents" field that describes the error.
-
- Once the positive acknowledgement has been transmitted to verify the
- correct reception of a protocol block, the receiver will increment
- its internal current block number. Upon reception of the positive
- acknowledgement, the sender will increment its internal current
- Page 8-8
-
-
- block number.
-
- If the sender receives a <DLE><B> indicating the initiation of
- reception of a new block, the last block sent is implicitly
- acknowledged.
-
- During the time the remote is awaiting reception of an
- acknowledgement from the host, any unrecognized characters received
- will be displayed on the user's screen.
-
-
-
- 8.6.4.1 <ENQ> Enquire
-
- When the remote receives an <ENQ>, it responds with a positive
- acknowledge of the last block correctly received. If an <ENQ>
- is received before any block is received, the receiver responds
- with a logical acknowledge of block 0. If <ENQ> is received
- during the reception of a block, the remote should abort the
- reception, send the positive acknowledge of the last block
- correctly received, and return to terminal mode. The host can
- also send an <ENQ> without placing the remote in protocol mode.
- This allows the host to synchronize its internal block number
- with the remote's internal block number.
-
- Since the remote must respond to XOFF, the XOFF received flag
- should be reset in case data 93 hexadecimal was received.
-
-
-
- 8.6.4.2 <DLE><blknum+48> Positive Acknowledge
-
- When a block has been correctly received, i.e. checksum and
- block number correct, the receiver acknowledges the block by
- sending a <DLE><blknum+48>, where "blknum" is the block number.
- If the checksum is correct but the block number is logically
- one less than the expected block number, the receiver transmits
- a positive acknowledge and ignores the block because it has
- already been processed but the acknowledge must have been
- garbled. Note that block 9 is logically one less than block 0.
-
- Since the remote must respond to XOFF, the XOFF received flag
- should be reset in case data 93 hexadecimal was received.
-
- During file transfer mode, the transmission of a positive
- acknowledgement will also display the current block number on
- the screen.
- Page 8-9
-
-
- 8.6.4.3 <DLE><;> Wait Acknowledge
-
- When a block has been correctly received but it may take some
- time to process the block, the receiver requests the host to
- wait by sending a <DLE><;>. This tells the sender to wait for
- ten seconds and then send an enquire. The receiver should then
- respond to the inquire with another wait acknowledge or a
- positive acknowledge. During the sender wait period the remote
- can send any valid protocol response (after function processing
- is complete). The remote may send multiple <DLE><;>'s one
- after another to obtain prolonged wait periods between <ENQ>'s.
-
-
-
- 8.7 EXITING PROTOCOL MODE
-
- The remote will exit protocol mode as follows 1) enable the keyboard
- if not in file transfer mode, 2) restore the status of RAM buffer
- capture, and 3) restore the data mode (7 or 8 bit) to its
- pre-protocol status.
-
-
-
-
-
-
-
-
-
-
-
-
- CHAPTER 9
-
- B PROTOCOL: FUNCTION PROCESSING
-
-
-
- The functions which presently can be performed with the B Protocol are
- described below.
-
-
-
- 9.1 <B><LSB><MSB> BINARY LOAD
-
- Memory is loaded with the data from the "contents" field starting at
- the location <msb><lsb>. This provides a mechanism for patches and
- off-line programs to be loaded into the terminal or computer. Address
- space is limited to 16 bits, data to 8 bits.
-
-
-
- 9.2 <G><LSB><MSB> EXECUTE MEMORY
-
- Control of the processor is transferred to the location <msb><lsb> via
- a subroutine call. The terminal must not hang up the modem and must
- continue to function when control is returned via a return from
- subroutine. The positive acknowledge is sent before control is
- transferred so the host must allow time for the subroutine to execute
- before attempting futher B Protocol communications. Address space is
- restricted to 16 bits.
-
-
-
-
-
-
-
-
-
-
-
-
- CHAPTER 10
-
- B PROTOCOL: FILE TRANSFER MODE
-
-
-
- 10.1 INTRODUCTION
-
- The B protocol provides a method for transferring files from the
- Remote computer to the Host and vice-versa. Most any type of file can
- be transferred directly from disk to disk. Files residing on the
- Remote computer's disk can optionally be erased or renamed from the
- Host.
-
- The B protocol is normally a noncontinuous protocol since the Remote
- returns to text mode between each packet. However, during file
- transfer the Remote is be captive and is not allowed to return to text
- mode until the transfer is completed. For example, when a file is
- being transferred from the Remote to the Host, the Remote is
- continuously sending data and receiving responses. In order to
- preserve protocol integrity, the Remote must remove itself from all
- control of the user. The only possible exception is allowing the user
- to abort a transfer from the keyboard. The Remote should provide an
- indication to the user that the transfer is proceeding by displaying
- block numbers and plus signs.
-
-
-
- 10.2 FILE TRANSFER TYPES
-
- There are three types of file transfer: ASCII, binary, and image
- (machine dependent). The ASCII transfer is used to transfer standard
- ASCII text. The binary transfer is used to transfer binary data.
- This could be used to facilitate the transfer of pure data from one
- microcomputer to another. The image transfer is used to transfer
- machine specific files (e.g. object code, executable files).
-
-
-
- 10.2.1 ASCII Transfers
-
- The download of an ASCII text file from the Host will produce a text
- file on disk containing an edited version of the text file in the the
- Remote's native character set.
-
- An ASCII upload to the Host performs the conversion from the native
- Page 10-2
-
-
- acharacter set to ASCII. Any graphic characters that do not map to
- ASCII will be replaced by space on upload. Non-graphic characters
- that do not map to ASCII will be ignored.
-
-
-
- 10.2.2 Binary File Transfer
-
- A binary upload will transfer the contents of the Remote's disk file
- to the Host. The contents of disk file will be uploaded exactly as it
- is on disk. The Host will store the file contents in an arbitrary
- form for later download.
-
- On download, the Host will provide the Remote with the contents of the
- file just at it was earlier uploaded. If the Remote computer supports
- file types, the default file type on download will be chosen to be the
- type most descriptive of binary data.
-
-
-
- 10.2.3 Image File Transfers
-
- Image file transfer will transfer a header containing whatever
- information is necessary to accurately recreate the file on download
- and the contents of the Remote file.
-
- The header will contain 1) a two byte (16 bit) header length
- (transmitted Least Signifigant Byte, Most Signifigant Byte) and 2) the
- machine identification code (See Interrogate Codes) as the next three
- bytes. Additional bytes in the header (if any) will contain whatever
- information is necessary for exact reproduction of the file.
-
- On upload, the Remote will create the header and transmit it. The
- contents of the disk file will follow.
-
- On download, the Remote will first receive the header. The remote
- will use the information contained in the header to properly download
- the disk file. Note that the header length is generalized to 16 bits
- and that the header may span a protocol buffer. If the machine
- identification code of the header does not match the machine
- identification code of the Remote, the Remote will inform the user
- that the file may not be compatible with their computer and prompt the
- user to type "Y" for Yes, continue download or "N" for No, abort
- transfer. If the user continues, the header will be discarded. If
- the user aborts, the Remote will respond to the host with a Failure
- Abort block.
-
-
-
- 10.3 INITIATING A TRANSFER
-
- Only the Host can initiate a transfer. When the file transfer
- initiation block is received, the remote will enter file transfer
- mode. The transfer initiate block is as follows:
- Page 10-3
-
-
- <T><direction><type><file name>
-
- and <direction> is <U> or <D>
-
- and <type> is <A> or <B> or <C> or <I>
-
- The <T> indicates a file transfer mode control command. The
- <direction> character is either <U> for upload from Remote to Host or
- <D> for download from Host to Remote. Note that the <T> command has
- other arguments. The <type> defines the type of the transfer to be
- performed as follows:
-
- <A> ASCII
- <B> Binary
- <I> Image
-
- The <file name> is the name of the file that the Remote will use to
- download to or upload from.
-
-
-
- 10.3.1 <T><D> Download
-
- This initiates the transfer of a file from the Host to the Remote
- computer. If the file already exists on the Remote computer's disk,
- it responds with an Failure Error block; it must not overwrite an
- existing file. If there is not enough space on the disk, the Remote
- will respond with a Capacity Failure block. If an error occurs during
- download, the Remote will delete any portion of the file that as
- already been witten out to disk. This will prevent the user from ever
- mistaking a file fragment for a complete download.
-
-
-
- 10.3.2 <T><U> Upload
-
- This initiates the transfer of a file from the Remote computer to the
- Host computer. If the file is not found, the Remote responds with an
- Failure Error block.
-
-
-
- 10.4 <N> TRANSFERRING DATA
-
- After a transfer has been initiated, the actual data is transmitted.
- Each block of data has a "command" field of N for Next packet. No
- relationship exists between a packet of data and a physical or logical
- record on the Host or the Remote. Several records may be contained in
- a packet and a record may span several packets. The end of a packet
- does not signify the end of a record.
-
- The remote remains in file transfer mode throughout data transfer.
- Page 10-4
-
-
- 10.5 <T><C> COMPLETING A TRANSFER
-
- When the sender of the file (Host or Remote) detects the end of the
- file, it sends a block with a "command" of <T><C> for Transfer Close
- (the file). The receiver closes the file and sends an acknowledgment
- on the close request. The transfer is then complete and the Remote
- exits file transfer mode and returns to terminal mode.
-
-
-
- 10.6 ABORTING A TRANSFER
-
- If the Host determines that the transfer can not be completed for any
- reason (e.g. line too noisy) or the Remote determines that the user
- wants to abort the transfer, a Failure Abort block may be sent in
- response to or instead of a data block. If the Remote is sending a
- file, it closes the file and returns to terminal mode. If the Remote
- is receiving a file, it closes the file, deletes it, and returns to
- terminal mode.
-
-
-
- 10.7 <T><E> ERASE A REMOTE FILE
-
- This optional function is used to erase a file on the Remote's disk.
- The function block is as follows:
-
- <T><E><file name>.
-
- The command of <T><E> refers to Transfer Erase a file. The "contents"
- field is the name of the file to be erased. If the file does not
- exist, is protected, or can not be erased for any other reason, the
- Remote responds with an Failure Error block.
-
- This could be used to upload a file from the Remote and once it has
- been sucessfully transmitted, erase it.
-
-
-
- 10.8 <T><R> RENAME
-
- This optional function changes the name of a file that exists on the
- Remote computer's disk. The function block is as follows:
-
- <T><R><present><NUL><new>
-
- The command is <T><R> for Transfer Rename a remote file. The contents
- of the block is 1) <present> - the present name of the file, 2) <NUL>
- - an ASCII null as a delimiter, and 3) <new> - the new name for the
- file.
-
-
-
-
-
-
-
-
-
-
-
-
- APPENDIX A
-
- CURRENTLY DEFINED OPTION CODES
-
-
-
- CB - Capture Buffer. <ESC><ESC> O,C,Z,V,Y
-
- CC - Cursor control. A, B, C, D, H, J, K, Y, and j
-
- CW - Wide character mode. l and m
-
- DT - B Protocol Disk Transfer (in addition to PB).
-
- GH - High resolution graphics. GH and GN
-
- GM - Medium resolution graphics. GM and GN
-
- HC - Hard copy. e and f (and <DC2> and <DC4>)
-
- SS<lin><col> - Screen Size (<lin> lines by <col> columns).
-
- PB - CompuServe B protocol.
-
- WC - Window Control. <ESC><ESC><W>
-
- XX - Null Option Code.
-
-
-
-
-
-
-
-
-
-
-
-
- APPENDIX B
-
- THE AMERICAN STANDARD CODE FOR INFORMATION INTERCHANGE (ASCII) ________
-
-
-
- ASCII Octal Hex Decimal
- Character Value Value Value
-
- NUL 000 00 000
- SOH 001 01 001
- STX 002 02 002
- ETX 003 03 003
- EOT 004 04 004
- ENQ 005 05 005
- ACK 006 06 006
- BEL 007 07 007
- BS 010 08 008
- HT 011 09 009
- LF 012 0A 010
- VT 013 0B 011
- FF 014 0C 012
- CR 015 0D 013
- SO 016 0E 014
- SI 017 0F 015
- DLE 020 10 016
- DC1 (X-ON) 021 11 017
- DC2 (T-ON) 022 12 018
- DC3 (X-OFF) 023 13 019
- DC4 (T-OFF) 024 14 020
- NAK 025 15 021
- SYN 026 16 022
- ETB 027 17 023
- CAN 030 18 024
- EM 031 19 025
- SUB 032 1A 026
- ESC 033 1B 027
- FS 034 1C 028
- GS 035 1D 029
- RS 036 1E 030
- US 037 1F 031
-
-
-
- ASCII Octal Hex Decimal
- Character Value Value Value
-
- SP 040 20 032
- ! 041 21 033
- " 042 22 034
- # 043 23 035
- $ 044 24 036
- % 045 25 037
- & 046 26 038
- ' 047 27 039
- ( 050 28 040
- ) 051 29 041
- * 052 2A 042
- + 053 2B 043
- , 054 2C 044
- - 055 2D 045
- . 056 2E 046
- / 057 2F 047
- 0 060 30 048
- 1 061 31 049
- 2 062 32 050
- 3 063 33 051
- 4 064 34 052
- 5 065 35 053
- 6 066 36 054
- 7 067 37 055
- 8 070 38 056
- 9 071 39 057
- : 072 3A 058
- ; 073 3B 059
- < 074 3C 060
- = 075 3D 061
- > 076 3E 062
- ? 077 3F 063
-
-
-
- ASCII Octal Hex Decimal
- Character Value Value Value
-
- @ 100 40 064
- A 101 41 065
- B 102 42 066
- C 103 43 067
- D 104 44 068
- E 105 45 069
- F 106 46 070
- G 107 47 071
- H 110 48 072
- I 111 49 073
- J 112 4A 074
- K 113 4B 075
- L 114 4C 076
- M 115 4D 077
- N 116 4E 078
- O 117 4F 079
- P 120 50 080
- Q 121 51 081
- R 122 52 082
- S 123 53 083
- T 124 54 084
- U 125 55 085
- V 126 56 086
- W 127 57 087
- X 130 58 088
- Y 131 59 089
- Z 132 5A 090
- [ 133 5B 091
- \ 134 5C 092
- ] 135 5D 093
- ^ 136 5E 094
- _ 137 5F 095
-
-
-
- ASCII Octal Hex Decimal
- Character Value Value Value
-
- ` 140 60 096
- a 141 61 097
- b 142 62 098
- c 143 63 099
- d 144 64 100
- e 145 65 101
- f 146 66 102
- g 147 67 103
- h 150 68 104
- i 151 69 105
- j 152 6A 106
- k 153 6B 107
- l 154 6C 108
- m 155 6D 109
- n 156 6E 110
- o 157 6F 111
- p 160 70 112
- q 161 71 113
- r 162 72 114
- s 163 73 115
- t 164 74 116
- u 165 75 117
- v 166 76 118
- w 167 77 119
- x 170 78 120
- y 171 79 121
- z 172 7A 122
- { 173 7B 123
- | 174 7C 124
- } 175 7D 125
- ~ 176 7E 126
- DEL 177 7F 127
-
-
-
-
-
-
-
-
-
-
-
-
- APPENDIX C
-
- CONTROL CHARACTER DEFINITIONS
-
-
-
- NUL Null, all zeroes DC1 Device control 1 (X-ON)
- SOH Start of heading DC2 Device control 2 (T-ON)
- STX Start of text DC3 Device control 3 (X-OFF)
- ETX End of text DC4 Device control 4 (T-OFF)
- EOT End of transmission NAK Negative acknowledge
- ENQ Enquiry SYN Synchronous idle
- ACK Acknowledge ETB End of transmission block
- BEL Bell, Alarm CAN Cancel
- BS Backspace EM End of medium
- HT Horizontal tab SUB Substitute
- LF Line feed ESC Escape
- VT Vertical tab FS File separator
- FF Form feed GS Group separator
- CR Carriage return RS Record separator
- SO Shift out US Unit separator
- SI Shift in SP Space
- DLE Data link escape DEL Delete
-
-
-
-
-
-
-
-
-
-
-
-
- APPENDIX D
-
- ESCAPE SEQUENCE SUMMARY
-
-
-
- Video Escape Sequences
-
- Sequence Effect on Terminal
-
- <ESC><A> Move cursor up one line
- <ESC><B> Move cursor down one line
- <ESC><C> Move cursor right one space
- <ESC><D> Move cursor left one space
- <ESC><G><mode> Change graphics mode
- <ESC><H> Move cursor to the top left corner
- <ESC><K> Clear from cursor to end of line
- <ESC><J> Clear from cursor to end of screen
- <ESC><j> Clear page - same as an ASCII form feed
- <ESC><l> Set normal character width
- <ESC><m> Set wide character width
- <ESC><Y><lin><col> Set cursor position
-
-
- Terminal Level Processing
-
- <ESC><I> Interrogate Remote
- <ESC><e> Disable Display
- <ESC><f> Enable Display
- <ESC><b> Disable Keyboard
- <ESC><c> Enable Keyboard
-
- <ESC><ESC><O> Open Ram Buffer
- <ESC><ESC><C> Close Ram Buffer
- <ESC><ESC><Z> Zero Ram Buffer
- <ESC><ESC><V> Transmit Ram Buffer
- <ESC><ESC><Y><pmt> Transmit RAM Buffer with prompt
-
- <ESC><ESC><W><lin1><col1><lin2><col2> Window Control
-
-
-
-
-
-
-
-
-
-
-
-
- APPENDIX E
-
- B PROTOCOL SUMMARY
-
-
-
- Block Format:
-
- <DLE><B><blknum+48><command><contents><ETX><checksum>
-
-
- Currently defined commands are:
-
- Remote Memory Reference
-
- B Load memory
- G Go execute at an address
-
- File Transfer Mode
-
- TE<file name> Erase a file
- TR<present><0><new> Rename a file
- TU<type><file name> Transfer from Remote to Host
- TD<type><file name> Transfer from Host to Remote
- N Next block of data
- TC Close file
-
- <type> is:
- A - ASCII
- B - Binary
- I - Image
-
- Failure Blocks
-
- FA Failure - Abort
- FC Failure - capacity problem
- FE Failure - error during processing of last block
- FN Failure - function not implemented
-
-
-
- TABLE OF CONTENTS
-
-
-
- Introduction . . . . . . . . . . . . . . . . . . . . . . 1-1
- Purpose . . . . . . . . . . . . . . . . . . . . . . . . 1-1
- Conventions used in this document . . . . . . . . . . . 1-3
- User Interface Requirements . . . . . . . . . . . . . . . 2-1
- Communications . . . . . . . . . . . . . . . . . . . . 2-1
- Keyboard . . . . . . . . . . . . . . . . . . . . . . . 2-1
- Minimum Video Display Requirements . . . . . . . . . . 2-2
- Video Driver Requirements . . . . . . . . . . . . . . . . 3-1
- Terminology . . . . . . . . . . . . . . . . . . . . . . 3-1
- Video Initialization . . . . . . . . . . . . . . . . . 3-1
- Text Mode Processing . . . . . . . . . . . . . . . . . 3-2
- Cursor Display . . . . . . . . . . . . . . . . . . . 3-2
- Text Display . . . . . . . . . . . . . . . . . . . . 3-2
- Scrolling . . . . . . . . . . . . . . . . . . . . . . 3-2
- ASCII Control Codes . . . . . . . . . . . . . . . . . 3-2
- <BEL> - Bell . . . . . . . . . . . . . . . . . . . 3-2
- <BS> - Backspace . . . . . . . . . . . . . . . . . 3-2
- <HT> - Horizontal Tab . . . . . . . . . . . . . . . 3-3
- <LF> - Line Feed . . . . . . . . . . . . . . . . . 3-3
- <FF> - Form Feed . . . . . . . . . . . . . . . . . 3-3
- <CR> - Carriage Return . . . . . . . . . . . . . . 3-3
- Unimplemented Control Codes . . . . . . . . . . . . 3-3
- Word Cleaning . . . . . . . . . . . . . . . . . . . . 3-3
- Video Escape Sequences . . . . . . . . . . . . . . . . 3-4
- Video ESCAPE Sequence Summary . . . . . . . . . . . . 3-4
- <ESC><A> - Cursor Up . . . . . . . . . . . . . . . . 3-5
- <ESC><B> - Cursor Down . . . . . . . . . . . . . . . 3-5
- <ESC><C> - Cursor Right . . . . . . . . . . . . . . . 3-5
- <ESC><D> - Cursor Left . . . . . . . . . . . . . . . 3-5
- <ESC><H> - Home Cursor . . . . . . . . . . . . . . . 3-6
- <ESC><Y><lin><col> - Position Cursor . . . . . . . . 3-6
- <ESC><G> - Graphics Mode Control . . . . . . . . . . 3-6
- <ESC><G><N> - Normal Mode . . . . . . . . . . . . . 3-6
- <ESC><G><H> - High Resolution Graphics . . . . . . 3-6
- <ESC><G><M> - Medium Resolution Graphics . . . . . 3-7
- <ESC><K> - Clear to End of Line . . . . . . . . . . . 3-7
- <ESC><J> - Clear to End of Page . . . . . . . . . . . 3-7
- <ESC><j> - Clear Page . . . . . . . . . . . . . . . . 3-7
- <ESC><l> - Set Normal Character Width . . . . . . . . 3-7
- <ESC><m> - Set Wide Character Width . . . . . . . . . 3-7
- Terminal Level Processing . . . . . . . . . . . . . . . . 4-1
- Introduction . . . . . . . . . . . . . . . . . . . . . 4-1
- Terminal Escape Processing . . . . . . . . . . . . . . 4-1
- <ESC><I> - Interrogate Remote . . . . . . . . . . . . 4-1
- Video Enable and Disable . . . . . . . . . . . . . . 4-2
- Keyboard Lock and Unlock . . . . . . . . . . . . . . 4-2
- <ESC><ESC> - Hardware Specific Escape . . . . . . . . 4-2
- Capture Buffer Control . . . . . . . . . . . . . . 4-2
- <W><lin1><col1><lin2><col2> - Window Control . . . 4-3
- Flow Control . . . . . . . . . . . . . . . . . . . . . 4-3
- Printer . . . . . . . . . . . . . . . . . . . . . . . . 4-4
-
-
-
- Simple Meta Key Functions . . . . . . . . . . . . . . . . 5-1
- Copying Data to the Printer . . . . . . . . . . . . . . 5-1
- Screen Print . . . . . . . . . . . . . . . . . . . . . 5-1
- The Help Page . . . . . . . . . . . . . . . . . . . . . 5-1
- Menu Page . . . . . . . . . . . . . . . . . . . . . . . 5-2
- Local Video Control . . . . . . . . . . . . . . . . . . 5-2
- Screen Clearing . . . . . . . . . . . . . . . . . . . 5-2
- Word Cleaning Control . . . . . . . . . . . . . . . . 5-2
- Wide Character Mode Control . . . . . . . . . . . . . 5-2
- Text Window Control . . . . . . . . . . . . . . . . . 5-3
- VIDTEX 4.0 Disk versus Tape . . . . . . . . . . . . . . 5-3
- Input to Disk Operations . . . . . . . . . . . . . . . 5-4
- Function Keys . . . . . . . . . . . . . . . . . . . . . 5-4
- Executing A Function Key . . . . . . . . . . . . . . 5-4
- The Function Key Menu . . . . . . . . . . . . . . . . 5-4
- Defining A Function Key . . . . . . . . . . . . . . . 5-5
- Displaying The Function Keys . . . . . . . . . . . . 5-5
- Function Key Disk Operations . . . . . . . . . . . . 5-5
- Saving The Function Keys . . . . . . . . . . . . . 5-6
- Loading The Function Keys . . . . . . . . . . . . . 5-6
- Aborting a Meta Function . . . . . . . . . . . . . . . 5-6
- Exiting VIDTEX . . . . . . . . . . . . . . . . . . . . 5-6
- The RAM Buffer . . . . . . . . . . . . . . . . . . . . . 6-1
- Data Capture . . . . . . . . . . . . . . . . . . . . . 6-1
- Saving the Screen . . . . . . . . . . . . . . . . . . . 6-1
- Viewing the RAM Buffer . . . . . . . . . . . . . . . . 6-2
- Transmitting the RAM Buffer . . . . . . . . . . . . . . 6-2
- Saving the RAM Buffer to Disk . . . . . . . . . . . . . 6-2
- Loading the RAM Buffer from Disk . . . . . . . . . . . 6-3
- Autolog . . . . . . . . . . . . . . . . . . . . . . . . . 7-1
- Creating a New Autolog File . . . . . . . . . . . . . . 7-1
- Executing An Autolog . . . . . . . . . . . . . . . . . 7-2
- Additional Autolog Features . . . . . . . . . . . . . . 7-2
- Autolog File Chaining . . . . . . . . . . . . . . . . . 7-3
- Autolog Examples . . . . . . . . . . . . . . . . . . . 7-3
- Autolog Auto Start Upon Execution . . . . . . . . . . . 7-5
- Modifying Communication Characteristics . . . . . . . . 7-6
- B Protocol: Primitives . . . . . . . . . . . . . . . . . 8-1
- Purpose . . . . . . . . . . . . . . . . . . . . . . . . 8-1
- General Terminology . . . . . . . . . . . . . . . . . . 8-1
- Terminal Mode . . . . . . . . . . . . . . . . . . . . 8-1
- Protocol Mode . . . . . . . . . . . . . . . . . . . . 8-1
- File Transfer Mode . . . . . . . . . . . . . . . . . 8-1
- Host . . . . . . . . . . . . . . . . . . . . . . . . 8-2
- Remote . . . . . . . . . . . . . . . . . . . . . . . 8-2
- Flow Control . . . . . . . . . . . . . . . . . . . . . 8-2
- Protocol Buffer Level Terminology . . . . . . . . . . . 8-2
- Protocol Block transmission . . . . . . . . . . . . . 8-2
- Block Number . . . . . . . . . . . . . . . . . . . . 8-2
- Command Field . . . . . . . . . . . . . . . . . . . . 8-2
- Block Contents . . . . . . . . . . . . . . . . . . . 8-3
- Transparency . . . . . . . . . . . . . . . . . . . . 8-3
- Checksum . . . . . . . . . . . . . . . . . . . . . . 8-3
- Host Protocol Initialization . . . . . . . . . . . . . 8-3
- Block Transmission . . . . . . . . . . . . . . . . . . 8-4
-
-
-
- Preparation for Transmission . . . . . . . . . . . . 8-4
- Actual Block Transmission . . . . . . . . . . . . . . 8-4
- Components of a Block . . . . . . . . . . . . . . . 8-5
- User Assurance . . . . . . . . . . . . . . . . . . 8-5
- Maximum Block Length . . . . . . . . . . . . . . . 8-5
- Error Detection and Retransmission . . . . . . . . . 8-5
- Unidentified Protocol Block . . . . . . . . . . . . 8-6
- <NAK> Negative Acknowledge . . . . . . . . . . . . 8-6
- Failure Acknowledge . . . . . . . . . . . . . . . . 8-6
- Time Outs . . . . . . . . . . . . . . . . . . . . . 8-7
- Positive Acknowledgement . . . . . . . . . . . . . . 8-7
- <ENQ> Enquire . . . . . . . . . . . . . . . . . . . 8-8
- <DLE><blknum+48> Positive Acknowledge . . . . . . . 8-8
- <DLE><;> Wait Acknowledge . . . . . . . . . . . . 8-9
- Exiting Protocol Mode . . . . . . . . . . . . . . . . . 8-9
- B Protocol: Function Processing . . . . . . . . . . . . 9-1
- <B><lsb><msb> Binary Load . . . . . . . . . . . . . . . 9-1
- <G><lsb><msb> Execute Memory . . . . . . . . . . . . . 9-1
- B Protocol: File Transfer Mode . . . . . . . . . . . . 10-1
- Introduction . . . . . . . . . . . . . . . . . . . . . 10-1
- File Transfer Types . . . . . . . . . . . . . . . . . 10-1
- ASCII Transfers . . . . . . . . . . . . . . . . . . 10-1
- Binary File Transfer . . . . . . . . . . . . . . . . 10-2
- Image File Transfers . . . . . . . . . . . . . . . . 10-2
- Initiating a Transfer . . . . . . . . . . . . . . . . 10-2
- <T><D> Download . . . . . . . . . . . . . . . . . . 10-3
- <T><U> Upload . . . . . . . . . . . . . . . . . . . 10-3
- <N> Transferring data . . . . . . . . . . . . . . . . 10-3
- <T><C> Completing a Transfer . . . . . . . . . . . . 10-4
- Aborting a Transfer . . . . . . . . . . . . . . . . . 10-4
- <T><E> Erase a Remote File . . . . . . . . . . . . . 10-4
- <T><R> Rename . . . . . . . . . . . . . . . . . . . . 10-4
- Currently Defined Option Codes . . . . . . . . . . . . . A-1
- The American Standard Code for Information Interchange . B-1
- Control Character Definitions . . . . . . . . . . . . . . C-1
- Escape Sequence Summary . . . . . . . . . . . . . . . . . D-1
- B Protocol Summary . . . . . . . . . . . . . . . . . . . E-1
-