|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 39040 (0x9880) Types: RcTekst Names: »99110138.WP«
└─⟦7fab0c8ae⟧ Bits:30005866/disk3.imd Dokumenter i RcTekst format (RCSL 99-1-*) └─⟦this⟧ »99110138.WP«
╱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