DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦ca95771de⟧ RcTekst

    Length: 39040 (0x9880)
    Types: RcTekst
    Names: »99110138.WP«

Derivation

└─⟦7fab0c8ae⟧ Bits:30005866/disk3.imd Dokumenter i RcTekst format (RCSL 99-1-*)
    └─⟦this⟧ »99110138.WP« 

RcTekst


╱04002d4e0a00060000000003013c3140000000000000000000000000000000000000000000000000050f19232d37414b555f69737d8791ff04╱
┆06┆i↲
↲
┆b0┆┆a1┆FORWORD↲
↲
First edition: RCSL no 31-D712. (September 1983)↲
↲
This manual is included in the first general release of the ↓
RC8000 Software package:↲
↲
SW8713: RC8000 Asynchronous Communication Package (ACP8000).↲
↲
Second edition: RCSL no 991 10138 (April 1985)↲
↲
This manual covers release 2.0 of ACP8000.↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆06┆ii↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆06┆iii↲
↲
┆b0┆┆a1┆TABLE OF CONTENTS┆05┆PAGE↲
↲
1.  INTRODUCTION .......................................   1↲
↲
2.  INSTALLATION GUIDE .................................   2↲
    2.1  User Catalog ..................................   2↲
    2.2  System Trimming ...............................   6↲
    2.3  Process Requirements ..........................   8↲
↲
3.  OPERATING GUIDE ....................................  10↲
    3.1  Start Up ......................................  10↲
    3.2  Normal Operation ..............................  10↲
    3.3  Close Down ....................................  11↲
↲
4.  UTILITY PROGRAM NEWACPCAT ..........................  12↲
    4.1  Examples ......................................  12↲
    4.2  Call ..........................................  12↲
    4.3  Function ......................................  12↲
    4.4  Parameters ....................................  13↲
    4.5  Format of the Output ..........................  13↲
    4.6  Error Messages ................................  15↲
    4.7  Warning Messages ..............................  16↲
↲
5.  IMPLEMENTATION DETAILS .............................  18↲
    5.1  Function Description ..........................  18↲
    5.2  Command Syntax ................................  22↲
    5.3  Filename and Mask Syntax ......................  23↲
    5.4  Catalog Entry Handling ........................  25↲
    5.5  Text File Conversion ..........................  26↲
↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆b0┆┆a1┆TABLE OF CONTENTS (continued)┆05┆PAGE↲
↲
┆b0┆┆a1┆APPENDICIES:↲
↲
A.  REFERENCES .........................................  29↲
↲
B.  USE OF TEXTS IN ACPTRIM ............................  30↲
↲
C.  START UP ALARMS FROM BACP ..........................  34↲
↲
D.  PROCEDURE WRITESTATUS ..............................  35↲
↲

════════════════════════════════════════════════════════════════════════
↓

════════════════════════════════════════════════════════════════════════
↓
┆14┆┆b3┆┆b0┆┆a1┆┆e1┆┆f0┆┆06┆┆0b┆↲
┆b0┆┆a1┆1. INTRODUCTION↲
↲
The ACP8000 system is used for file transfer between RC8000 ↓
and an intelligent terminal, connected to an RC8000 device ↓
host by an AMX (asynchronous multiplexer). The intelligent ↓
terminal may be an RC750, RC855 or RC700, running the ↓
corresponding ACP program.↲
↲
As to the ACP8000 system, the only demand is that the ↓
terminal obeyes the protocol used. It is found in ref. (4).↲
↲
A general introduction to the system is found in ref. (1). ↓
The User's Guide is found in ref. (2).↲
↲
Chapter 2 describes the installation process of ACP8000, ↓
including user catalog, disc ressources, system parameters ↓
and system trimming.↲
↲
Chapter 3, contains operating guide, i.e. normal startup and ↓
closedown.↲
↲
Chapter 4 describes the utility program newacpcat, used in ↓
maintaining the user catalog.↲
↲
Chapter 5 contains interesting details which may be relevant ↓
for both users and operators.↲
↲
In this manual, all character values stated refer to the ISO ↓
alfabeth, and the values are in plain decimal ↓
representation.↲
↲
If you are very keen in getting started, the following will ↓
do:↲
↲
- ┆84┆read section 2.1, and make a small user catalog, skip ↓
┆19┆┆82┆┄┄corrections in trimming (section 2.2) and start the system ↓
┆19┆┆82┆┄┄with the standard startup file sacp.↲

════════════════════════════════════════════════════════════════════════
↓
┆b0┆┆a1┆2. INSTALLATION GUIDE↲
↲
The first steps of installation (loading programs etc.) is ↓
described in the Package Description. This chapter describes ↓
what to do to get a proper running system established. 3 ↓
tasks must be performed:↲
↲
1. ┆84┆Establish a user catalog, using the utility program ↓
┆19┆┆83┆┄┄newacpcat described in chapter 4, reading conventions in ↓
┆19┆┆83┆┄┄section 2.1 below.↲
↲
2. ┆84┆Consider system parameters and texts, correct the file ↓
┆19┆┆83┆┄┄acptrim, and compile the trimmed system by ALGOL. Follow ↓
┆19┆┆83┆┄┄section 2.2. below.↲
↲
3. ┆84┆Consider the process startup parameters by correcting the ↓
┆19┆┆83┆┄┄"read-and-start" file sacp. Follow section 2.3 below.↲
↲
The first two steps may be performed in a process with ↓
bases equal to max base of ACP process (surrounding all user ↓
bases, cf. section 2.1). But it may also be done at a ↓
narrow, "private" base. Step 3 should be done at system ↓
base, where the file sacp must be placed.↲
↲
↲
┆b0┆┆a1┆2.1 User Catalog↲
↲
The user catalog is a disc file containing descriptions of ↓
all users. The file is a hash-file, the hash key being user ↓
name and number. The hash function gives a segment number ↓
(home segment). Overflow is placed in the file itself - in ↓
first free position (scanning cyclic). The capacity is 16 ↓
records per segment, as one record uses 32 halfwords.↲
↲
The key (user name, number) must be unique. The catalog has ↓
the same format as the ACCESS DOOR CATALOG in RC8000 ↓
SHIPPING, cf. ref. (3). Several terminals may be logged in ↓
simultanously, using the same (user name, number).↲
↲
┆8c┆┆83┆┆d4┆↓
Note that the user catalog may be changed even during ↓
ACP8000 operation. But the updating will block ACP8000, if ↓
the user catalog by coincidence is also needed here.↲
↲
The user catalog is established using the utility program ↓
newacpcat (cf. chapter 4).↲
↲
┆a1┆┆b0┆Example↲
↲
The following commands creates a usercatalog with 2 entries;↲
↲
╞	acpcat = set 20 disc↲
╞	Scope user acpcat↲
╞	Acpcat = newacpcat init.yes↲
╞	hobo  0  1000  1999  dc plrw, disc 3↲
╞	james 1     0 8388605 c plrw,↲
    end↲
↲
┆b0┆┆a1┆Contents of a user catalog record:↲
↲
- User name:↲
  A name of max 11 characters. Part of the key.↲
↲
- User number:↲
  ┆84┆An integer number (may be negative). Part of the key. If ↓
┆19┆┆82┆┄┄not stated, zero is assumed.↲
↲
- Lower base, upper base:↲
  ┆84┆Two integers, specifying the catalog base where to find ↓
┆19┆┆82┆┄┄the "private" files of the user. The user can only obtain ↓
┆19┆┆82┆┄┄write access to files having this base, and a newly ↓
┆19┆┆82┆┄┄created file will get this base. Read access is obtained ↓
┆19┆┆82┆┄┄as "seen from" this base, but also controlled by system ↓
┆19┆┆82┆┄┄parameter visibility (cf. section 2.2).↲
↲
- Access mode:↲
  ┆84┆A bit bask giving the access rights of the user. See ↓
┆19┆┆82┆┄┄below.↲
↲
┆8c┆┆83┆┆d4┆↓
- File or disc name:↲
  ┆84┆A file name mask including wildcards in same format as may ↓
┆19┆┆82┆┄┄be stated in commands to ACP. If specified, the user can ↓
┆19┆┆82┆┄┄only access files matching the mask. If not specified, no ↓
┆19┆┆82┆┄┄restriction is invoked. If used for a disc name, this disc ↓
┆19┆┆82┆┄┄will be used for creating new files.↲
↲
- Insert time:↲
  ┆84┆A shortclock, the time of insert (by utility program ↓
┆19┆┆82┆┄┄newacpcat).↲
↲
- Last use time:↲
  A shortclock, time of last login.↲
↲
┆b0┆┆a1┆Access mode:↲
↲
Each bit permits (if stated) the function mentioned, Mode ↓
char below is the character used by newacpcat for describing ↓
the bit. The functions are described in section 5.1.↲
↲
┆a1┆┆b0┆Mode char = Name   Description┆05┆↲
↲
d = discname       ┆84┆disc specified instead of filename. This ↓
┆19┆┆93┆┄┄disc will be used for creating new files ↓
┆19┆┆93┆┄┄(instead of the disc stated in system ↓
┆19┆┆93┆┄┄trimming).↲
↲
c = close ╞	     ┆84┆close command allowed. (Function 7).↲
↲
o = onewrite╞	     ┆84┆write access is permitted once, i.e. ↓
┆19┆┆93┆┄┄after first successfull transfer, this ↓
┆19┆┆93┆┄┄bit and the write bit is cleared. The bit ↓
┆19┆┆93┆┄┄allows functions 1, 3.↲
↲
p = print╞	     ┆84┆print command, i.e. function 8.↲
↲
l = lookup╞	     ┆84┆permits survey command, i.e. function 4.↲
↲
┆8c┆┆83┆┆c8┆↓
r = read╞	     read access allowed, i.e. functions 0, 2.↲
↲
w = write╞	     ┆84┆write access allowed, i.e. functions 1, ↓
┆19┆┆93┆┄┄3. Furthermore this bit permits functions ↓
┆19┆┆93┆┄┄5 (clear).↲
↲
┆b0┆┆a1┆Base structure of user catalog:↲
↲
Each user has a base: this is an interval, used for catalog ↓
lookup on files. Files having the user base are private to ↓
the user. The base may be used for constructing a hierarcy ↓
of users, for example:↲
↲
!--------------------------------!    ACP max base↲
0                               1000↲
  !---------------------------!       user "global"↲
  10                         999↲
     !--------!                       user "project 1"↲
    100      200↲
              !--------!              user "project 2"↲
             300      400↲
     !-!!-!!-!                        ordinary users in↲
                                      "project 1"↲
              !-!!-!!-!               ordinary users in↲
                                      "project 2"↲
↲
The ordinary users may read files on "user global" base, and ↓
the corresponding project base, but not write them. They ↓
cannot read other user's files.↲
↲
The project users can read files on "user global" base (and ↓
their own files), but not any user files.↲
↲
Note that no user base may be outside process max base of ↓
the ACP process.↲
↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆b0┆┆a1┆2.2 System Trimming↲
↲
The system contains an ALGOL program text: acptrim. The ↓
trimming is done by editing this text, and compile it with ↓
the ALGOL compiler. Of course you may skip the trimming if ↓
you are satisfied with the standard.↲
↲
The program text contains:↲
↲
1. ┆84┆procedure writestatus: used for writing final result of a ↓
┆19┆┆83┆┄┄transfer. Called after each normal transfer of one file. ↓
┆19┆┆83┆┄┄Also called after transfer of a directory, if the ↓
┆19┆┆83┆┄┄transfer was not ok. Details in App. D.↲
↲
2. ┆84┆Initialization of system parameters:↲
   maxterm:       ┆84┆Maximum number of terminal users, that can ↓
┆19┆┆92┆┄┄be logged in simultanously. The value has ↓
┆19┆┆92┆┄┄no relevans to the physical number of ↓
┆19┆┆92┆┄┄terminals connected to RC8000, nor the ↓
┆19┆┆92┆┄┄number of users in the user catalog.↲
↲
   par(1)-par(4): ┆84┆Name of file holding user catalog. Must be ↓
┆19┆┆92┆┄┄visible from startup catalog base of ACP ↓
┆19┆┆92┆┄┄process.↲
↲
   par(5)-par(8): ┆84┆Name of workfile. If present, it must be ↓
┆19┆┆92┆┄┄at process max bases. If not present, it ↓
┆19┆┆92┆┄┄is created with scope temp, and removed at ↓
┆19┆┆92┆┄┄close. The size is always set/extended to:↲
╞	╞	    (maxterm+1)*par(9) segments.↲
╞	╞	    ┆84┆The file is used for holding directories.↲
↲
   par(9):        ┆84┆Work-segments per terminal. Gives an upper ↓
┆19┆┆92┆┄┄limit to directories, as each segment can ↓
┆19┆┆92┆┄┄hold 64 directory names.↲
↲
   par(10):╞	    ┆84┆Number of segments in shared buffer, used ↓
┆19┆┆92┆┄┄for scanning RC8000 main catalog. A small ↓
┆19┆┆92┆┄┄buffer gives lower primary storage ↓
┆19┆┆92┆┄┄requirements, but slower maincat scan.↲
↲
┆8c┆┆83┆┆ec┆↓
   par(11):╞	    ┆84┆Slicelength: number of segments used when ↓
┆19┆┆92┆┄┄a file is created/extended, during write. ↓
┆19┆┆92┆┄┄The most efficient value is the ↓
┆19┆┆92┆┄┄slicelength used on the disc where the ↓
┆19┆┆92┆┄┄process is given permanent ressources.↲
↲
   par(12):╞	    ┆84┆┆a1┆Visibility┆e1┆: controls the visisibility of ↓
┆19┆┆92┆┄┄files with a base outside the user base:↲
╞	╞	    1 = only files with user base visible.↲
╞	 ╞	    2 = ┆84┆all files (visible from user base) ↓
┆19┆┆96┆┄┄with base inside or equal to process ↓
┆19┆┆96┆┄┄max base are visible.↲
╞	╞	    3 = ┆84┆all files (visible from user base) are ↓
┆19┆┆96┆┄┄visible, i.e. also system files.↲
↲
╞	╞	    ┆84┆Note that this parameter is only used when ↓
┆19┆┆92┆┄┄┆a1┆reading a file specified by name┆e1┆. If a ↓
┆19┆┆92┆┄┄file is specified by a mask, only files ↓
┆19┆┆92┆┄┄having user base are examined.↲
↲
   par(13)-(16):  ┆84┆Document name of disc, where new files are ↓
┆19┆┆92┆┄┄created, if not changed by usercatalog ↓
┆19┆┆92┆┄┄information.↲
↲
   par(17):╞	    ┆a1┆┆e1┆┆84┆= 1 if terminals should be reserved at ↓
┆19┆┆92┆┄┄login, = 0 if not.↲
↲
   par(18):╞	    ┆84┆Padding character used in file names on ↓
┆19┆┆92┆┄┄RC8000.↲
↲
3. ┆84┆Initialization of texts (for terminal dialog):↲
   ┆84┆long array text (1:34). All texts may be changed. Cf. ↓
┆19┆┆83┆┄┄App. B.↲
↲
4. ┆84┆Initialization of error texts (for terminal dialog):↲
   ┆84┆long array err (1:12). All texts may be changed. Cf. App. ↓
┆19┆┆83┆┄┄B.↲
↲
┆8c┆┆83┆┆c8┆↓
5. Initialization of command texts:↲
   ┆84┆long array com (1:14). The array contains short text ↓
┆19┆┆83┆┄┄strings, appended with corresponding function number. The ↓
┆19┆┆83┆┄┄texts cannot be more than 5 characters long. Several ↓
┆19┆┆83┆┄┄texts may correspond to the same function. If more texts ↓
┆19┆┆83┆┄┄are identical, only the first one will be recognized. the ↓
┆19┆┆83┆┄┄array may be extended as much as wanted, but all elements ↓
┆19┆┆83┆┄┄should be assigned.↲
↲
6. Call of procedure acpproc.↲
   ┆84┆This procedure contains the actual system, and the call ↓
┆19┆┆83┆┄┄need not be altered.↲
↲
Example of system trimming:↲
The following commands changes the system parameters ↓
maxterm, visibility and disc for new files:↲
↲
╞	chdtrim = edit acptrim↲
╞	1./maxterm:=/, r/6/8/↲
╞	1./par(12):=/, r/3/2/↲
╞	l./disc1/, r/disc1/disc14/↲
╞	f↲
╞	bacp = algol chdtrim↲
╞	scope user bacp.↲
↲
↲
┆b0┆┆a1┆2.3 Process Requirements↲
↲
The ACP process is running at the RC8000 under the basic ↓
operating system "s". All process parameters are set in the ↓
file sacp. This file is delivered with a default content, ↓
and should be edited to match the actual system. Besides, ↓
the file is used for primary input for the process. This ↓
makes the system startup simpler.↲
↲
The file sacp must have system scope, as it is used for a ↓
read-command to s.↲
↲
┆8c┆┆83┆┆c8┆↓
┆a1┆Process bases┆e1┆: all bases of the process must equal process ↓
max base, which should surround all bases in the user ↓
catalog.↲
↲
┆a1┆Disc ressources┆e1┆: The process should have disc ressources for ↓
creating new files. The discs in question are: the default ↓
in part(13)-par(16), and discs specified in user catalog. ↓
Note that all disc ressources available for the process are ↓
shared between the users. There is no ressource restrictions ↓
on the single user. This implies, that one user may take up ↓
all disc ressources for his own private files. Note that the ↓
disc ressources given to the process are only spent when new ↓
files are created, as existing files are not counted here. ↓
And the ressources are increased when files are cleared. ↓
Section 5.4 contains details on file creation and deletion. ↓
↲
┆a1┆Runtime files┆a1┆┆e1┆: At process start 2 files are needed, visible ↓
from current catalog base:↲
↲
- program file: bacp↲
- user catalog: acpcat↲
↲
A third file (the work file: acpwrk) will be created if it ↓
is not present at max base.↲
↲
All 3 files will automatically be protected against both ↓
reading, writing and clearing by any user, so no specific ↓
protection is needed.↲
↲
┆a1┆Contents of the file sacp:↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆b0┆┆a1┆3. OPERATING GUIDE↲
↲
┆b0┆┆a1┆3.1 Start Up↲
↲
The system is started by the command to s:↲
↲
╞	att s↲
╞	read sacp↲
↲
After some seconds the system writes↲
↲
╞	cat is acpcat segm = 20 d.830902.1455 users = 32 = 10%↲
╞	acp8000 rel.1.0 started, max term = 6 paging hws = 9872↲
↲
or some alarm occurs, cf. appendix C.↲
↲
The startup should be done at a console with paper, in order ↓
to keep a hard copy of eventual errors.↲
↲
↲
┆b0┆┆a1┆3.2 Normal Operation↲
↲
During operation, no operator actions are needed.↲
↲
You may experience ALGOL alarm output, in case program ↓
errors occur. But usually the system is going on operating, ↓
only logging out the affected user.↲
↲
No normal output appears on the startup console.↲
↲
All output for console is actually written on current ↓
output.↲
↲
User catalog updating may be done during normal operation.↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆b0┆┆a1┆3.3 Close Down↲
↲
The normal close:↲
↲
Log in to the system and give the close command:↲
↲
╞	att acp↲
╞	acp8000 1.0↲
╞	type userid: operator↲
╞	function (h for help): close↲
╞	closed by operator↲
↲
╞	end of acp, logins = 27 moves = 38 bytes moved = 213715↲
╞	cpu = 363 secs↲
╞	from s ↲
╞	pause acp finis fp↲
↲
The brutal close:↲
↲
╞	att s↲
╞	proc acp break↲
↲
I will strongly warn you against using the "remove" command ↓
to get rid of the process. If some users are in the middle ↓
of a transfer, the AMX port in question will be useless for ↓
terminal connection until it is explicitly re-initialized ↓
(either by "initamx" or autoload of the device controller).↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆b0┆┆a1┆4. UTILITY PROGRAM NEWACPCAT↲
↲
This program is intended for maintenance of the ACP user ↓
catalog: initialization of a new catalog, and listing the ↓
contents of an existing one.↲
↲
↲
┆b0┆┆a1┆4.1 Examples↲
↲
newacpcat acpcat list.yes↲
↲
will output a list of all users in the user catalog acpcat.↲
↲
acpcat = newacpcat cat1↲
↲
will perform a reorganization from cat1 into acpcat.↲
↲
↲
┆b0┆┆a1┆4.2 Call↲
↲
                                      ┆82┆1             1↲
              ┆82┆1             <oldcat>     list.yes↲
(<newcat> = )   newacpcat↲
              ┆81┆0             init.yes     list.no↲
                                      ┆81┆0             0↲
↲
↲
┆b0┆┆a1┆4.3 Function↲
↲
1. ┆84┆if <newcat> is specified, a new (empty) catalog is ↓
┆19┆┆83┆┄┄initialized.↲
↲
2. ┆84┆if both <newcat> and <oldcat> is specified, all used ↓
┆19┆┆83┆┄┄records in <oldcat> are inserted in <newcat>.↲
↲
3. ┆84┆if init.yes is specified, user records are inserted in ↓
┆19┆┆83┆┄┄<newcat>, reading data (door contents) from current ↓
┆19┆┆83┆┄┄input.↲
↲
┆8c┆┆83┆┆d4┆↓
4. ┆84┆write a survey of <newcat> (if specified, else <oldcat>, ↓
┆19┆┆83┆┄┄if specified.↲
↲
5. ┆84┆if list.yes is specified, a survey of all users in ↓
┆19┆┆83┆┄┄<newcat> is output (if <newcat> specified, else <oldcat>, ↓
┆19┆┆83┆┄┄if specified). The output has a form that is readable for ↓
┆19┆┆83┆┄┄newacpcat in mode init.yes.↲
↲
↲
┆b0┆┆a1┆4.4 Parameters↲
↲
<newcat>   File names. The files must exist in advance. They↲
<oldcat>   ┆84┆need not be of same size. Their size is not ↓
┆19┆┆8b┆┄┄changed.↲
↲
list.yes   ┆84┆A listing is wanted. Default is list.no.↲
↲
init.yes   ┆84┆The contents of user records to insert is read ↓
┆19┆┆8b┆┄┄from current input, terminating on the word 'end' ↓
┆19┆┆8b┆┄┄(as a user name). The syntax for the input is ↓
┆19┆┆8b┆┄┄seen on the example output below.↲
↲
↲
┆b0┆┆a1┆4.5 Format of the Output↲
↲
The output at list.yes contains one line per user, with the ↓
information from the user entry in a form readable for ↓
newacpcat. ↲
↲
The output is sorted, according to the keys:↲
- lower base↲
- upper base (decreasing order)↲
- name↲
- number↲
↲
On the next page, an example is shown.↲

════════════════════════════════════════════════════════════════════════
↓
↲

════════════════════════════════════════════════════════════════════════
↓
Note that the "end" will terminate a later reading.↲
↲
Note that the semicolons make the rest of the line a ↓
comment.↲
↲
All output is written on current output medium.↲
↲
↲
┆b0┆┆a1┆4.6 Error Messages↲
↲
Any of these error message will set FP mode to ok.no.↲
↲
***newacpcat sorry <file> not found↲
   <file> is either <oldcat> or <newcat>↲
↲
***newacpcat sorry, no left hand side↲
   ┆84┆when init.yes is specified, a lefthand side must be ↓
┆19┆┆83┆┄┄present.↲
↲
***newacpcat sorry, unknown parameter <param>↲
   the unknown parameter is written.↲
↲
***newacpcat sorry, same file.↲
   <newcat> and <oldcat> are the same.↲
↲
***newacpcat sorry <file> not a acp usercat↲
   ┆84┆detected when the survey should be made. Word 10 of entry ↓
┆19┆┆83┆┄┄tail <> no of segments.↲
↲
When reading from current input, the following error ↓
messages may occur, all headed by↲
↲
***newacpcat sorry, line <line>:↲
   where <line> is current line number read.↲
↲

════════════════════════════════════════════════════════════════════════
↓
The rest of the line may be ↲
  line too long↲
    program buffer too small↲
  line not complete↲
    missing information↲
  illegal character↲
    only small letters, digits allowed↲
  syntax at key no↲
    key name has been read↲
  syntax at scope↲
  syntax at access mode↲
  illegal access mode↲
  line termination↲
    too much information↲
  syntax at key name↲
    not a name, or name too long.↲
  syntax at file name↲
    not a name, or name too long.↲
↲
↲
┆b0┆┆a1┆4.7 Warning Messages↲
↲
The message↲
  key conflict <name> <no> scope <low> <up> line <line>↲
↲
is written when two user keys (name, number) are the same. ↓
In the init.yes-function, the line number is output (i.e. ↓
line no of last occurence). The FP mode is set warning.yes, ↓
but the program continues.↲
↲
The message↲
  file full: <file>, <users> inserted↲
↲
indicates a too small <file>. The function (either "reorg" ↓
or "init.yes") is left, and the FP mode is set warning.yes.↲
↲

════════════════════════════════════════════════════════════════════════
↓
the message↲
  newacpcat: warning↲
↲
is written at program termination, if the FP mode was set ↓
warning.yes.↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆b0┆┆a1┆5. IMPLEMENTATION DETAILS↲
↲
This chapter describes some details of the system, that may ↓
affect both operator and users. Appendix B gives a complete ↓
list of texts used by the system.↲
↲
↲
┆b0┆┆a1┆5.1 Function Description↲
↲
The functions are selected via the array com (cf. section ↓
2.2).↲
↲
┆a1┆Login↲
When receiving an attention message from a process not ↓
already logged in (this is actually what is performed when ↓
the ESC-button is hit at the terminal, "att" is written and ↓
the name of the ACP process is typed), the user name and ↓
number must be specified (number is 0 if not specified).↲
↲
If the user is found in the user catalog, and the user bases ↓
are accessible (inside ACP max base), login is accepted, and ↓
user record updated (last use = time).↲
↲
The access mode is used to check which functions are ↓
allowed, and file/disc name is read.↲
↲
Note that all output to the terminal is written in mode 2.↲
↲
┆b0┆┆f0┆┆a1┆Command reading↲
After login, and after execution of any function, all ↓
previously typed input is dropped, txt(2) is output, and a ↓
command line is awaited from terminal keyboard. The first ↓
(max 5) text characters are compared to array com to find ↓
the function.↲
↲
┆a1┆Function 0: send text↲
If a name (RC8000 file) is specified, a terminal file name ↓
should also be specified. The file is sent as text, ↓
terminating by either EM (ISO 25) or end of file.↲
↲
┆8c┆┆83┆┆e0┆↓
If a mask is specified, a drive must also be specified. Then ↓
the RC8000 main catalog is scanned to find all user files ↓
matching the mask. Then the text files are sent one by one, ↓
using exactly the same file name at the terminal and at ↓
RC8000.↲
↲
┆a1┆Function 1: receive text↲
If a name (terminal file) is specified, also an RC8000 file ↓
name should be specified. The file is received as text (cf. ↓
section 5.4 about file creation).↲
↲
If a mask is specified, the terminal catalog is received, ↓
stating the mask. For every file name received from the ↓
terminal, the text file is received from the terminal, using ↓
the same file name at RC8000 and the terminal.↲
↲
┆a1┆Function 2: Send binary↲
↲
As function 0, except for↲
- ┆84┆no of bytes sent: if tail(9) = 0 and tail (10) > 0 then ↓
┆19┆┆82┆┄┄tail(10)↲
  else <no of segments> * 768.↲
- ┆84┆all bytes are transferred as 8 bit bytes, without ↓
┆19┆┆82┆┄┄modification.↲
↲
┆a1┆Function 3: receive binary↲
As function 1, except for↲
- ┆84┆all bytes are transferred as 8 bit bytes, without ↓
┆19┆┆82┆┄┄modification.↲
↲
┆a1┆Function 4: survey↲
A drive is either not specified (= default terminal drive) ↓
or = txt(06) (=RC8000), or = a terminal drive.↲
↲
A mask is also specified.↲
↲
If drive = RC8000, the RC8000 main catalog is scanned, and ↓
all userfiles matching the mask are written. If some extra ↓
┆8c┆┆83┆┆c8┆↓
parameter is specified after mask (and system trimming ↓
visibility >1), all files readable by the user (and with ↓
scope inside ACP max base) are taken.↲
↲
If drive is not RC8000, the terminal catalog is received, ↓
stating the mask.↲
↲
All file names received are written. The writing of file ↓
names resembles the CP/M command "dir".↲
↲
┆a1┆Function 5: clear an RC8000 file↲
A file name must be specified.↲
↲
The file must have user base, and be "not in use" (by ↓
anyone at RC8000).↲
↲
The file is cleared, and the disc ressources occupied by the ↓
file are available for the ACP process.↲
↲
┆a1┆Function 6: logout↲
All connection with the terminal is dropped.↲
↲
┆a1┆Function 7: close system↲
If any other terminal is logged in, the function is not ↓
performed.↲
↲
If a number is specified as parameter, and this number is ↓
number of terminals logged in, the close is performed ↓
anyway.↲
↲
┆a1┆Function 8: print↲
A file is specified. A printer may be specified (if not, ↓
default = txt (13) is used). The printer is actually a ↓
catalog entry describing a printer.↲
↲
A "transfer" message is sent to the PRIMO system, and a ↓
result is written on the terminal.↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆Function 9: display↲
For all terminals logged in, a line is displayed, showing↲
↲
- user name (not number!)↲
- a state showing current activity↲
  txt(21) if waiting for a command↲
  txt(31) if executing function 1 or 3↲
  txt(32) if executing function 0 or 2↲
  txt(20) otherwise↲
↲
┆a1┆Function 10: unknown command↲
Command text not found in array com. txt (17) shown.↲
↲
┆a1┆Function 11: empty command↲
No text typed before RETURN. No action done.↲
↲
┆a1┆Function 12: help menu↲
txt(33) shown.↲
↲
┆a1┆Function 13: terminal reservation↲
Eventual parameters in the command line are examined. If the ↓
letter "n" is found, the terminal process is reserved, ↓
otherwise it is released. After login the terminal is  ↓
reserved if par(17)=1. Releasing the terminal enables the ↓
user to communicate with other processes during login, as ↓
ACP8000 after attention status during input awaits an ↓
attention message.↲
↲
┆a1┆Function 14: disc claim↲
Available permanent disc ressources are output, on the disc ↓
used for new files. If a parameter is stated, temporary ↓
claims on this disc is output.↲
↲
Note that the terminal is always reserved during file ↓
transfer. Note also, that output is not interrupted by ↓
attention status.↲
↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆b0┆┆a1┆5.2 Command Syntax↲
↲
        ┆82┆1                          *↲
(<del>)   <command> (<del><param>)   <term>↲
        ┆81┆0                          0↲
↲
<command>   ┆84┆is a text. The first 5 characters are used as ↓
┆19┆┆8c┆┄┄command word, and searched for in array com.↲
↲
<param>     ┆84┆is a text. Any number of parameters may be ↓
┆19┆┆8c┆┄┄typed, but the use depends on the function. ↓
┆19┆┆8c┆┄┄Superfluous parameters are skipped. If a ↓
┆19┆┆8c┆┄┄function needs a parameter which is not stated, ↓
┆19┆┆8c┆┄┄a prompt text is output and parameter typing may ↓
┆19┆┆8c┆┄┄continue.↲
↲
<del>       ┆84┆Any number (at least one) of delimitor ↓
┆19┆┆8c┆┄┄characters, i.e. not text, blind or terminator. ↓
┆19┆┆8c┆┄┄(see below).↲
↲
<term>      ┆84┆terminator character: NL (ISO 10) or EM (ISO ↓
┆19┆┆8c┆┄┄25), or CR (ISO 13), i.e.: use RETURN button.↲
↲
text        ┆84┆Both <command> and <param> are text strings, ↓
┆19┆┆8c┆┄┄terminated by a delimitor or a terminator. ↓
┆19┆┆8c┆┄┄Leading delimitors are skipped.↲
↲
╞	        ┆84┆Characters included in text are:↲
            - all letters (both small and capital)↲
            - all digits↲
            - the characters↲
              * (ISO 42)↲
              . (ISO 46)↲
              : (ISO 58)↲
↲
Blind       ┆84┆are the characters NUL (ISO 0) and DEL (ISO ↓
┆19┆┆8c┆┄┄127).↲
↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆b0┆┆a1┆5.3 Filename and Mask Syntax↲
↲
A filename is one parameter, cf. section 5.2 (i.e. no spaces ↓
in between). The syntax is as close as possible to CP/M file ↓
names:↲
↲
           ┆82┆1                    1↲
(<drive>:)   <name> (.<suffix>)↲
           ┆81┆0                    0↲
↲
<drive>     ┆84┆A one-character specification of drive (if ↓
┆19┆┆8c┆┄┄several characters are specified, the last one ↓
┆19┆┆8c┆┄┄is used). Usually a, b, c ....↲
↲
            If not stated, "default drive" is understood.↲
↲
<name>      ┆84┆min 1, max 11 characters (if <suffix> is stated, ↓
┆19┆┆8c┆┄┄max 8). Superfluous characters are dropped. ↓
┆19┆┆8c┆┄┄Small letters are converted to capital.↲
↲
<suffix>    ┆84┆min 1, max 3 characters. Small letters are ↓
┆19┆┆8c┆┄┄converted to capital.↲
↲
When a filename is written on the screen, capital letters ↓
are converted to small (except at catalog writing).↲
↲
If <name> exceeds 8 characters and <suffix> is omitted, the ↓
last characters will represent <suffix>.↲
↲
┆a1┆Mask┆e1┆: if a star (*) or a question mark (?) is met as a ↓
chracter in either <name> or <suffix>, it is not a file ↓
name, but a file mask. This will invoke a search for all ↓
file names matching the mask: the ? means "any character", ↓
and a * as last character in <name> or <suffix> means "the ↓
rest may be anything". ↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆Mapping file names to RC8000 names:↲
↲
<drive>     is not used.↲
↲
<name>      ┆84┆is used as file name, converting capital to ↓
┆19┆┆8c┆┄┄small letters. Note that the RC8000 file system ↓
┆19┆┆8c┆┄┄demands a file name to have a letter as first ↓
┆19┆┆8c┆┄┄character, and only small letters or digits in ↓
┆19┆┆8c┆┄┄the rest. If no <suffix> is specified, this will ↓
┆19┆┆8c┆┄┄be the file name.↲
↲
<suffix>    ┆84┆If specified, it is inserted as character 9, 10 ↓
┆19┆┆8c┆┄┄and 11 (if 3 characters) of the name of total 11 ↓
┆19┆┆8c┆┄┄characters. <name> is now extended to 8 ↓
┆19┆┆8c┆┄┄chracters by padding zeroes (ISO 48) if needed, ↓
┆19┆┆8c┆┄┄constructing a 11 character name. Because of ↓
┆19┆┆8c┆┄┄this, please observe the following.↲
↲
┆a1┆CAUTION: ┆84┆avoid using filenames ending with 0 (ISO 48) in ↓
┆19┆┆89┆┄┆84┆<name> part. Note, that the padding character may ↓
┆19┆┆89┆┄┆84┆be changed in the system trimming.↲
↲
┆a1┆Mapping file names to terminal file name.↲
↲
All small letters are converted to capital. A name of 11 ↓
characters is constructed, filling unused positions with ↓
space (ISO 32).↲
↲
┆a1┆Examples of file names┆e1┆ (space shown as _):↲
↲
┆a1┆Typed             Terminal                    RC8000┆05┆↲
a                 A _ _ _ _ _ _ _ _ _ _       a↲
a27xx.obj         A 2 7 X X _ _ _ O B J       a27XX000obj↲
description       D E S C R I P T I O N       description↲
pip.7             P I P _ _ _ _ _ 7 _ _       pip000007↲
pip0.7            P I P _ _ _ _ _ 7 _ _       pip000007↲
↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆5.4 Catalog Entry Handling↲
↲
The ACP process may created, change and delete files on ↓
RC8000. First of all: function send (reading the file) never ↓
changes the file, nor the catalog entry.↲
↲
When receiving a file, the following actions are taken:↲
↲
- Find a file with this name and having user base.↲
↲
- If found (and not in use), use this file.↲
↲
- ┆84┆If not found, create a new file with user base, of size = ↓
┆19┆┆82┆┄┄slice length (cf. section 2.2), on the disc stated in user ↓
┆19┆┆82┆┄┄catalog (or system trimming), and permanent the file.↲
↲
- Receive the data, store it in file.↲
↲
- ┆84┆If bytes transferred = 0 and the file was just created, it ↓
┆19┆┆82┆┄┄is removed again (note that the final status is irrelevant ↓
┆19┆┆82┆┄┄here).↲
↲
- ┆84┆If the file is a text file, an EM (ISO 25) is inserted ↓
┆19┆┆82┆┄┄after last character.↲
↲
- Unused part of last segment is filled with EM.↲
↲
- ┆84┆If anything is written on the disc file (which may be ↓
┆19┆┆82┆┄┄avoided by interrupting), then↲
  . bytes transferred is inserted in tail (10)↲
  . shortclock is inserted in tail (6)↲
  . ┆84┆the file is cut to the segments actually written (which ↓
┆19┆┆84┆┄┄is at least one).↲
↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆b0┆┆a1┆5.5 Text File Conversion↲
↲
In contrast to a binary transfer (where all bytes are ↓
transferred unchanged), text files are subject to character ↓
conversion, for two reasons:↲
↲
- ┆84┆some characters are used by the transfer protocol, and ↓
┆19┆┆82┆┄┄should not occur in data.↲
↲
- ┆84┆to facilitate the different "NEW LINE" conventions in CP/M ↓
┆19┆┆82┆┄┄and RC8000.↲
  In CP/M a NEW LINE is CR (ISO 13) - LF (ISO 10).↲
  In RC8000 a NEW LINE is NL (ISO 10).↲
↲
┆a1┆When sending text files:↲
↲
char values > 127: illegal (i.e. not text)↲
char values 0, 13, 127: blind (skipped)↲
char values 3, 16, 17, 19, 27: illegal (reserved)↲
char value 10 is converted to: 13 - 10↲
char value 25 ends the text.↲
↲
All other values are sent without modification.↲
↲
Illegal characters stops the transmission.↲
↲
┆a1┆When receiving text files:↲
↲
char values > 127: are impossible↲
char values 0, 13: blind (skipped)↲
char values 3, 16, 17, 19, 27: illegal (reserved)↲
char value 26: signals parity error (generated by the AMX).↲
char value 25: ends the text.↲
↲

════════════════════════════════════════════════════════════════════════
↓
All other values are stored in the file without ↓
modification.↲
↲
Illegal characters stop the transmission↲
↲
Parity error characters are counted.↲

════════════════════════════════════════════════════════════════════════
↓
↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆a1┆┆b0┆A. REFERENCES↲
↲
(1)  RCSL No 991 10136↲
     RC8000 Asynkron Communikations Pakke (ACP8000)↲
     Generel beskrivelse↲
↲
(2)  RCSL No 991 10137↲
     RC8000 Asynkron Communikations Pakke (ACP8000)↲
     Brugervejledning↲
↲
(3)  RCSL No 31-D715:↲
     RC8000 Shipping↲
     General Information↲
↲
(4)  RCSL No 42-i2498↲
     Asynkron Kommunikations Protokol (ACP)↲
     Protokol beskrivelse↲

════════════════════════════════════════════════════════════════════════
↓
┆b0┆┆a1┆B. USE OF TEXTS IN ACPTRIM↲
↲
┆a1┆Long array txt┆e1┆:↲
↲
Contains normal texts used in the terminal dialog. Note that ↓
all texts are written in mode 2. In the scheme below,↲
↲
- SUP   ┆84┆means that the text is suppressed (not written) if ↓
┆19┆┆88┆┄┄the wanted parameter is already stated.↲
↲
- SKIP  ┆84┆means that the text and a trailing value (and maybe ↓
┆19┆┆88┆┄┄another text) will not be written if the text is ↓
┆19┆┆88┆┄┄empty.↲
↲
- FUNC  ┆84┆tells in which functions the text is used, cf. ↓
┆19┆┆88┆┄┄section 5.1.↲
↲
┆a1┆INDEX  WRITE  FUNC     USE┆05┆↲
 1                     ┆84┆Prelude for user name and number at ↓
┆19┆┆97┆┄┄login.↲
 2                     Prelude for next command.↲
 3     SUP    0,1,2,3  Prelude for RC8000 file name.↲
 4     SUP    0,1,2,3  Prelude for terminal file name.↲
 5     SUP    4,0,2    Prelude for drive.↲
 6            4        ┆84┆used for checking drive: if specified ↓
┆19┆┆97┆┄┄drive equals txt(6), RC8000 is meant.↲
                       One character.↲
 7     SUP    4        Prelude for file name mask.↲
 8     SUP    5        ┆84┆Prelude for RC8000 file, that should ↓
┆19┆┆97┆┄┄be cleared.↲
 9            6        Reply to command.↲
10            7        Reply to command.↲
11     SUP    8        ┆84┆Prelude for RC8000 file name, to ↓
┆19┆┆97┆┄┄print.↲
12     SUP    8        Prelude for printer name.↲
13            8        ┆84┆Used for default printer name. Max 5 ↓
┆19┆┆97┆┄┄chars.↲
┆8c┆┆83┆┆bc┆↓
┆a1┆INDEX  WRITE  FUNC     USE┆05┆↲
14     SKIP   8        ┆84┆Reply to successful print request. ↓
┆19┆┆97┆┄┄Print ident is written after the ↓
┆19┆┆97┆┄┄text.↲
15     SKIP   8        ┆84┆Reply to unsuccessful print request. ↓
┆19┆┆97┆┄┄Result delivered (by PRIMO) is ↓
┆19┆┆97┆┄┄written after the text.↲
16                     Not used.↲
17                     Reply to unknown command.↲
18     SKIP   6        ┆84┆Written if close is not accepted. (No ↓
┆19┆┆97┆┄┄of terminals logged in -1) is written ↓
┆19┆┆97┆┄┄after the text.↲
19     SKIP   6        Written after txt(18).↲
20            9        Terminal active in some function.↲
21  ╞	9        Terminal waiting for command.↲
22╞	╞	0,2,4    ┆84┆Written before the terminal file ↓
┆19┆┆97┆┄┄catalog is received.↲
23╞	╞	1,3,4    ┆84┆Written before the RC8000 main ↓
┆19┆┆97┆┄┄catalog is scanned.↲
24╞	╞	0,2      ┆84┆First text, before sending a file. ↓
┆19┆┆97┆┄┄Followed by RC8000 file name and ↓
┆19┆┆97┆┄┄txt(25).↲
25╞	╞	0,2      ┆84┆Second text, before sending a file. ↓
┆19┆┆97┆┄┄Followed by terminal file name and ↓
┆19┆┆97┆┄┄txt(26).↲
26╞	╞	0,2      ┆84┆Third text, before sending a file.↲
27╞	╞	1,3      ┆84┆First text, before receiving a file. ↓
┆19┆┆97┆┄┄Followed by terminal file name, and ↓
┆19┆┆97┆┄┄txt(28).↲
28╞	╞	1,3      ┆84┆Second text, before receiving a file. ↓
┆19┆┆97┆┄┄Followed by RC8000 file name, and ↓
┆19┆┆97┆┄┄txt(29).↲
29╞	╞	1,3      ┆84┆Third text, before receiving a file.↲
30╞	╞	0,1,2,3  ┆84┆Fourth text, before any file ↓
┆19┆┆97┆┄┄transfer. Written after all checking ↓
┆19┆┆97┆┄┄of RC8000 files.↲
31╞	╞	9        ┆84┆Terminal during function 1 or 3.↲
32╞	╞	9        Terminal during function 0 or 2.↲
33╞	╞	12       Reply (help).↲
┆8c┆┆83┆┆d4┆↓
┆a1┆INDEX  WRITE  FUNC     USE┆05┆↲
34 ╞	╞	9        Terminal during attention interrupt.↲
35╞	╞	14       Reply, part 1↲
36╞	╞	14       Reply, part 2↲
37╞	╞	         ┆84┆Output before login from a console.↲
38╞	╞	         Output at startup, if batch call.↲
↲
┆a1┆Long array err:↲
↲
Contains texts written in error situations.↲
↲
┆a1┆INDEX         FUNC     USE┆05┆↲
 1                     ┆84┆Written at login, when user name and ↓
┆19┆┆97┆┄┄number is not found in user catalog.↲
 2╞	╞	         ┆84┆Written when a command is recognized, ↓
┆19┆┆97┆┄┄function selected, but access mode ↓
┆19┆┆97┆┄┄does not permit use.↲
 3╞	╞	5,8      RC8000 file stated does not exist.↲
 4╞	╞	5        RC8000 file stated outside user base.↲
 5 ╞	╞	5        RC8000 file stated is in use.↲
 6╞	╞	5        ┆84┆RC8000 file stated could not be ↓
┆19┆┆97┆┄┄removed (after all).↲
 7╞	╞	         ┆84┆Written at login attempts, if busy ↓
┆19┆┆97┆┄┄(maxterm terminals logged in).↲
 8╞	╞	         ┆84┆Written at login, if user base cannot ↓
┆19┆┆97┆┄┄be reached by the ACP process.↲
 9╞	╞	0,1,2,3  ┆84┆User catalog contains file mask, and ↓
┆19┆┆97┆┄┄RC8000 file name stated, does not ↓
┆19┆┆97┆┄┄match it. File mask is written after ↓
┆19┆┆97┆┄┄the text.↲
10╞	╞	0,1,2,3, Reading RC8000 main catalog is not ↲
              4        ┆84┆possible p.t. as the common buffer is ↓
┆19┆┆97┆┄┄used by another terminal.↲
11╞	╞	         ┆84┆Abnormal internal alarm detected. ↓
┆19┆┆97┆┄┄Followed by 3 numbers:↲
╞	╞	         - 30 or trap-value↲
╞	╞	         - alarm cause extract 24: cause. Fx:↲
                         - 15 killed (after operator break)↲
╞	╞	╞	 - 11 give up (zone alarm)↲
┆8c┆┆83┆┆d4┆↓
┆a1┆INDEX         FUNC     USE┆05┆↲
╞	╞	╞	 -  9 break↲
╞	╞	╞	 -  2 index↲
╞	╞	╞	 -  1 stack↲
╞	╞	         - alarm cause shift (-24): param.↲
12╞	╞	         ┆84┆At login attempt: get-specs-mess not ↓
┆19┆┆97┆┄┄answered ok. Probably because of ↓
┆19┆┆97┆┄┄wrong basis system.↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆b0┆┆a1┆C. START UP ALARMS FROM BACP↲
↲
All alarms described here use "provoked alarm" procedure in ↓
ALGOL, and they are recognized by the leading text and one ↓
parameter.↲
↲
┆a1┆TEXT              EXPLANATION┆05┆↲
messbufs -n       Too few message buffers.↲
╞	╞	    Add n and restart.↲
areaprocs -n      Too few area processes.↲
╞	╞	    Add n and restart.↲
bad cat n         Usercat not ok. n is r*10+S↲
╞	╞	    r = result of reserveprocess↲
╞	╞	        1 = reserved by another↲
╞	╞	        2 = cannot be reserved (protected)↲
╞	╞	        3 = does not exist↲
╞	╞	    S = 1: ┆84┆file not found, or not a user ↓
┆19┆┆99┆┄┄catalog↲
╞	╞	        2: illegal records found.↲
bad wrk n╞	    wrkfile could not be created.↲
╞	╞	    n = result of create entry.↲
newactiv 0        Startup troubles, activities.↲
╞	╞	    Enough primary storage?↲
central n         ┆84┆Internal value in the activity monitor. ↲
                  n = result value of activate/new-activity.↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆b0┆┆a1┆D. PROCEDURE WRITESTATUS↲
↲
The procedure is called↲
- after termination of any file transfer↲
- after not-ok termination of a directory transfer↲
↲
Parameters:↲
zone z. Opened for the terminal, in mode 2.↲
integer res. Overall result of transfer↲
  res extract 10: result value, see below.↲
  res shift(-10): ┆84┆= 0 if all status blocks from terminal are ↓
┆19┆┆92┆┄┄"STOK".↲
╞	╞	    ┆84┆= 1 if any status block from terminal is ↓
┆19┆┆92┆┄┄<> "STOK".↲
                  ┆84┆Status (3) and on contains the text ↓
┆19┆┆92┆┄┄received.↲
↲
long array status.↲
  status(1): ┆84┆not of bytes in the file, i.e.: no of non-blind ↓
┆19┆┆8d┆┄┄bytes sent to the terminal or received and ↓
┆19┆┆8d┆┄┄stored on the disc - before any error occurred.↲
  status(2): ┆84┆no of parity characters (ISO26) received from ↓
┆19┆┆8d┆┄┄the terminal.↲
  status(3)  ┆84┆and on: last not-ok status block received, or ↓
┆19┆┆8d┆┄┄"STOK".↲
↲
Below is a list of the possible values of res extract 10:↲
↲
 1╞	ok↲
 2╞	terminal char illegal (fx control char in data).↲
 3╞	discfile char illegal (>127 when text)↲
 4╞	terminal char=26=parity received (status(2)=occurrences)↲
 5╞	discfile char illegal (control char in text)↲
 6╞	not used↲
 7╞	checksum error detected (maybe set if otherwise ok)↲
 8╞	terminal: get specs not ok.↲
 9╞	not used↲
10╞	not used↲
┆8c┆┆83┆┆c8┆↓
11╞	createentrylockproc <>0, or checkbase<>0: file not found↲
12╞	createentry=4 or permanententry<>0: claims exeeded↲
13╞	createentry=6: name illegal↲
14╞	createentry other results<>0↲
15╞	in use already, exclusive access wanted (i.e. write)↲
16╞	in use already, used exclusive (during write).↲
17╞	tail(1)<0: not datafile.↲
18╞	reserveprocess<>0 (at receive): reserved by another.↲
19╞	createentry notok: catbase not inside ACP standard base.↲
20╞	not used↲
21╞	terminal status timer↲
22╞	┆84┆terminal status attention↲
╞	or trap: attention-message arrived.↲
23╞	terminal giveup (hard error bit)↲
24╞	not used↲
25╞	┆84┆file status=reject. reserved by another process (at ↓
┆19┆┆84┆┄┄send).↲
26╞	┆84┆file status=end document, and func=write, and ↓
┆19┆┆84┆┄┄changeentry<>0: no ressources↲
27╞	file status=does not exist (disappeared?)↲
28╞	other status/giveup↲
29╞	not used↲
30╞	program error (alarm not provoked by trap)↲

════════════════════════════════════════════════════════════════════════
↓
┆1a┆┆1a┆sys

Full view