|
|
DataMuseum.dkPresents historical artifacts from the history of: RegneCentralen RC850 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RegneCentralen RC850 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 126848 (0x1ef80)
Types: TextFile
Names: »D159«
└─⟦ae2411776⟧ Bits:30008864 Diskette med tekster der formodes at være 31-D-152…161
└─⟦this⟧ »D159«
\f
*des80user sysdok. des80sys section.1 vers.13 des80cat.des80test list.yes,
password.old
start des80 user cat.upd, v1 10.10.1979 10.21.59
des80user sysdok.des80sys section.1 vers.13 des80cat.des80test,
list.yes password.old
startsysdok: des80sys now aut.vers.13 (last vers.19)
section1. user-file
line 160 warning: previous operator no longer active
end des80 user cat.upd, v1 10.10.1979 10.22.13 cpu: 2
end 154
*finis
end 11 sec job ilm2 log flej date 1979.10.10 10.22.17
Figure 58.
B_._3_ _ _ _ _ _ _ _E_r_r_o_r_-_m_e_s_s_a_g_e_s_ B.3
The general structure underlying the
error-messages and warning print outs is shown
below:
Error:
Line <line _no.' <text'
Warning:
When errors occur the processing of the program
will be terminated, and no user description file
will be created.
The processing is not affected by warnings.
All error-messages and warnings are converted on
correct out.
\f
The error-messages and warnings which may appear
have been compiled in a list below:
Error. The number of users is larger than the
maximum number of users allowed.
Increase the maximum number of users.
Error. The number of operators is larger than the
maximum number of operators allowed.
Increase the maximum number of operators.
Error. The physical operator No is already in use
The operator number has already been used by an
operator operating under the same user or another
user.
Error. Operator No exceeds userupdat>s demension.
DES80 can only handle users with 25 operators.
Error. The maximum number of operators exceeds
99, which is the current maximum the sy-
stem can process.
DES80 can only handle a total of 99 operators.
Error. Syntax error in a catalog line.
Re syntax see p.
Error. Syntax error in a user line
Re syntax see p.
\f
Error. Syntax error in a cat-baseline
Re syntax see p.
Error. Syntax error in a user-baseline
Re syntax see p.
Error. Syntax error in an operator line
Re syntax see p.
Warning. A number contains too many digits
The number of digits must be less than or equal
12.
Warning. A text string is too long
The number of characters in a text must not exceed
10.
Warning. A section part is too long.
See Ref. 5.
Warning. Too many levels in a section.
See Ref. 5.
Warning. The maximum number of users has been
decreased
Check whether the change was intentional.
Warning. The maximum number of operators has
been decreased.
\f
Check whether the change was intentional.
Warning. Previous operator identification
has been deleted.
When a new and an old operator identification
attached to an operator number differ, the old
identification is deleted.
Warning. Previous operator is no longer active.
The number of operators has been decreased.
\f
F_ C_._1_ _ _ _ _ _ _ _D_E_S_8_0_U_P_D_A_T_E_ C.1
P_r_o_g_r_a_m_ _e_x_e_c_u_t_i_o_n_
Call of DES80UPDATE is used as a frame around the running
program system - i.e. before and after each run with
DES80ONLINE a run with DES80UPDATE is executed.
The syntax and semantics for calling the program
are descreibed below.
des80update base.<low'.<up'
init
run.
finis
1
des80cat. <user _file _name'
0
1
virtual. <file _name'
0
1
log. <log _name'
0
yes 1
list.
no 0
1
listout. <list _name'
0
des80update is the name of the program
\f
base is the standard base for the DES80 systems private
files. These comprise the user description file,
the virtual file, and the programs of the system.
Please notice that DES80UPDATE must run with a
standard base, comprising A. This base and all
the user bases. See fig. C.1
12879
user No 3>s base
12875 execution of
user No. 2>s base DES80UPDATE on
12870 this base
user No 1>s base
12865
DES80>s private base
12860 12860
Figure 59.
<low' states the lower limit for the base of the DES80
system and is stated as an integer.
<up' is the corresponding upper limit of the base.
run There are two run types:
init is an initialization run, where the users, whose
ld-description has been altered since the last
run, are initialized.
finis is a termination run, in which the information
from DES80ONLINE is transferred to the user file.
des80cat. This item refers to the user description file.
<user _file _ Standard is: des80cat.des80cat.
name' \f
virtual. The name of the virtual file is stated as shown in
<file _name' the box on p.
Standard is: virtual.des80data.
log. This item states the name of the file, in which
<log _name' the input transactions from the terminals are
written.
Standard is: log.des80log.
listout. The transaction log contains all the lines, which
<listout _ have been typed between an initialization and a
name' terminating run. This parameter states the name of
the file where the transaction log is written.
Standard is: listout.listout.
list This item states whether the transaction log is to
be printed in a terminating run.
Standard is: list.no.
\f
Example Fig. 60 shows an example of a jobfile by means of
which an initialization run can be started.
job des8 282932 time 3 0 size 50000 perm dk280928 100 1
mode list.yes
des80update base.12860.12864,
run.init,
des80cat.des80test,
virtual.des80data
finis
Figure 60.
Fig. 61, shows an example of a transaction log.
DES80 30.12.1979 10.59.40
DES80UPDATE', 25.5.79 TRANSACTION LOG PAGE 7
USER: 3
TERMINAL: 1
- 166
173 AM1 12341 23 59 23 30
174
* 195 4710 120
- 196
198 4710 100
199 BS
205 AM1 15551 0 0 0 0
221 BS
222
226 AM1 15551 1 59 1 59
227
230 4710
231 BS
* 240 AS 0 0 0 0
- 241
Figure 61.
\f
C_._2_ _ _ _ _ _ _ _L_o_g_-_p_r_i_n_t_o_u_t_s_ C.2
For identification, documentation, and control
purposes log-in-information on the run with DES-
80UPDATE is printed on out.
The first page contains general information about
the run. See fig. 62.
A page is printed for each user, the contents of
which being determined by the type of run. By ini-
tialization runs the contents will be as shown in
fig. 65.
By termination runs one line pr. user is printed
as shown in fig. 64.
Fig. 65 shows examples of printouts of log in-
formation from an initialization run by DES80UP-
DATE.
des80cat: user _name
sysdok: user _sysdok section: No. name version: No created: date hour
virtual file: file
max: users operators
number number
Figure 62.
\f
user: user _identification
descrip _file: descrip _name section _number insterted
changed
unchanged
ld _name: local _data _name created: date hour by: initials
*
db files: db _file _name
0
Figure 63.
\f
F_ (figure 65)\f
C_._3_ _ _ _ _ _ _ _E_r_r_o_r_-_m_e_s_s_a_g_e_s_ C.3
In the following section a distinction is made
between errors and warnings.
Errors affect DES80UPDATE as a whole and terminate
the processing.
Warnings are user specific. A user who has
received a warning is excluded from further use of
DES80, without this affecting the rest of the
users.
The error messages, which may appear, have been
descreibed below:
*** VIRTUAL FILE DOES NOT EXIST: name
RESULT FROM MONITOR 42 LOOKUP ENTRY = <res'
The virtual file, in which the information on
status is stored, does not exists.
*** VIRTUAL FILE CANNOT BE INITIALIZED: name
RESULT FROM MONITOR 44 CHJANGE ENTRY = <res'
The catalog tail of the virtual file cannot be
altered by an initialization run.
*** VIRTUAL FILE HAS NOT BEEN INITIALIZED: name
\f
The catalog tail (contant) of the virtual file is
not correct. The error message may occur both du-
ring an initialization run and a termination run.
Content ought to be 9.
*** SET CATBASE ERROR
RESULT FROM MONITOR 72 SET CATBASE = <res'
DES80UPDATE is not allowed to set the catalog base
in question. Ownbase must be included in userbase,
and the content equal or be contained in stdbase.
ILLEGAL BASES
The user base of the system does not comprise own
base, i.e. the base in which the private files of
the system are located.
*** ERROR IN LOOKUP OF THE LOGFILE
RESULT FROM MONITOR 42 LOOKUP ENTRY = <res'
The error is either caused by a catalog io-error,
or because the file does not exist, or because the
format of the name is illegal.
*** SORTPROCESS HARD ERROR: <cause of hard error'
Parameter errors or hard errors from sortprocbs.
*** AN ERROR IN THE SORTING OF THE LOG FILE
Please contact the maintenance department
*** A RECORD TYPE ERROR ON THE LOG FILE
\f
Please contact the maintenance department.
*** OPEN OUT AREA HARD ERROR: <listout _name'
<error _text'
An error has been made when opening the area
stated by the parameter: listout. The error text
will be one from the list below:
no area
catalog i/o error
monitor trouble
no resources
catalog base not standard
name format illegal
catalog inconsistent
file in use.
*** TOO MANY DATABASE FILES
The maximum number of databases have been excee-
ded. Above error causes that the ok.no bit is set
at exit from DES80UPDATE.
Below two errors only causes the warning.yes bit
to be set.
*** NO TERMINATION RUN HAS BEEN EXECUTED
Initialization cannot be executed after
initialization. The program exists.
*** NO INITIALIZATION HAS BEEN EXECUTED
\f
Termination run cannot be executed after termina-
tion run. The program exists.
Below error is only to be considered as a message.
*** LOG AREA NAME IS NOT UPDATED BY A TERMINA-
TION RUN
The parameter LOG should only be used at initia-
lization. The parameter is neglegted.
*** LD FILE IS NOT PRESENT IN DESCRIPFILE
The chapter containing the local data description
does not exist in the description file.
*** THE SECTION TYPE OF THE LD FILE IS NOT IN SODA
The ld-file has not been compiled with soda-ld.
*** THE COMPILATION OF THE LD FILE IS ATTACHED
WITH ERRORS.
*** THE CONTROL RECORD FOR THE LD-FILE CANNOT
BE LOCATED
An error in the ld-file. Please contact the person
in charge of maintenance.
*** THE VERSION OF THE LD-FILE IS NOT THE ONE
REQUESTED
Please contact the person in charge of maintenan-
ce.
*** THE LD DESCRIPTION CONTAINS SEVERAL FILES
\f
Only one file is allowed.
*** THE BLOCKLENGTH OF THE TRANSACTION FILE
EXCEEDS THE ALLOWED NUMER OF SEGMENTS:
<number'
In DES80 <number' must be 1. The error can either
be caused by an omission to use the parameter
>block> in DATABASE80 (see Ref.1) or because the
parameter was used incorrectly.
*** DESCRIPTION FILE DOES NOT EXIST
Please contact the person in charge of
maintenance.
*** THE FILE IS DEFECT
The error mesaage can either mean that the file
does not exist, or that the file is not a cf-file.
*** THE TRANSACTION LOG ON <list _name' HAS NOT
BEEN CONVERTED.
The file <listout _name' is permanent and can be
converted at one>s discretion.
*** CONVERT <listout _name'<error _text'
An error in connection with the conversion of the
transaction log. The errortext will be one from
the list below:
cbuf exceeded.
file not found
logik scope
temp resources exceeded
file in use
\f
*** THE FILE CONTAINING THE SORTED RECORDS
<log _name' HAS NOT BEEN REMOVED
RESULT FROM MONITOR 48 REMOVE ENTRY
= <res'
The file <log _name' should be removed normally
*** TOO MANY PERMANET VARIABLES:
<number1' HALFWORDS USED
<number2' HALFWORDS AT DISPOSAL
<number1' states the illegal number of half words
used by the permanent variables of the ld-de-
scription, and <number2' states the legal number
of half words.
\f
F_ D_._ _ _ _ _ _ _ _ _D_E_S_8_0_O_N_L_I_N_E_ D.
Call of pro- The syntax and semantics for the call of program
gram are descreibed below:
des80online base. <low'.<up'
input. <input _name'
1
virtual. <file _name'
0
1
duetp. <duet _file _name'
0
yes 1
withlog.
no 0
1
maxinst. <number'
0
des80online is the name of the program
base is the standard base for the private files of the
DES80 system, se fig. 59.
<low' is the lower limit for base of the DES80 system,
and is stated as an integer.
<up' is the corresponding upper limite for the base.
input. This parameter may be used in two different ways:
<input _name' \f
When the system is operating, input to the program
comes from the terminals via a process normally
called DES80COM. Ref. 6 descreibes how this pro-
cess is started. The name of the process is stated
as <input _name'.
When the system is being implemented to the cu-
stomer and is in the debugging phase it is expe-
dient to simulate input by means of data on a
disc store. In that case the name of this file is
stated as <input _name'
virtual This is the name of the virtual file.
<file _name' Standard is: des80data.
duetp. This parameter states the name of the file in
<duet _file _ which the compiled duet program is stored.
name' Standard is: des80duet.
withlog If the parameter specifies >yes> log information
will be created on the disc store. If the para-
meter specifies >no> no log will be created. If
nothing has been specified a log will be created.
The file name is specified.by the parameter log in
the initialization run by DES80UPDATE
maxinst. <number' states the maximum number of instructions
<number' pr. data line. This prevents infinite loops in
duet program.
Standard value for <number' is 500.
\f
Example Fig. 66 shows an example of a job file starting
DES80ONLINE.
job des8 282932 time 2 0 size 90000 temp disc 2000 30,
perm dk280928 100 1
mode list.yes
des80online base.12860.12864,
input.des80test,
duetp.des80duet,
virtual.des80data,
withlog.yes
finis
Figure 66.
\f
F_ E_._ _ _ _ _ _ _ _ _T_R_A_N_S_F_O_R_M_E_R_ E.
Purpose The program TRANSFORMER has been developed to cope
with error situations (program, data, and system
errors). By means of this program a bundle is
transformed from the internal format to a text
file, which can be used when running off-line.
Background A bundle corresponds to up to three files in
DES80>s private bases. The names of these files
all begin with the letters WRK which are followed
by 6 digits.
One of the files contains the transactions gene-
rated, and the two remaining files contain the
originally typed lines with the status informa-
tion. When typing data only one of the latter
files are used, whereas when data are corrected
both the latter files are used.
File names To gain knowledge of the file names for a bundle
the operator must log in as a priviledged operator
for the user, to whom the bundle belongs. The in-
formation converning the bundle is obtained by
using the command @TEST1 as floows:
@TEST1 bundle _name
The system reacts with a print out of the type
shown below:
BUNDLE: TIMESHEET TRANSACTION FILE WRK000522
STATE: 0 0 0 0 0
TEXT: WRK 000523 VOUCHER: 10 LINE: 47
POSITION: 13355
\f
In this example wrk000523 is to be used as the
text status file.
If the bundle is being corrected information about
the old text file will be added.
The following paragraphs give the syntax and se-
mantics for calling the program TRANSFORMER.
TRANSFORMER IN. <text _status _file'
OUT. <result _file'
YES 1
LIST.
NO 0
1
LISTOUT. <listout _name'
0
transformer is the name of the program.
in. this item states the name of the background area
<text _status _ which is to be processed.
file'
out. this item states the name of the background area
<result _file' in which the output, which will form the input for
a later off-line run, is to be saved.
list if >yes> is stated a listing will be created in an
area of the backing store.
If >no> is stated no such listing will be created.
Error messages, if any, are always printed on
current cat. Standard is: list.no.
\f
listout. This item states the name of the background area
<listout _name' in which the listing is to be written. If the area
does not exist already it will be created as a
temporary file, which is automatically converted
on the local printer. If the area has been created
previously the operator in charge of the proces-
sing must see to it himself that the area is con-
verted. Standard is listout. listout.
The listing comprises general information about
the bundle and information about each line.
Example An example with an error in a bundle is shown
below. The bundle is transformed to a text file,
which is corrected, and an off-line run is exe-
cuted with the bundle as input.
1_._ _R_u_n_ _w_i_t_h_ _D_E_S_8_0_
@ ID JOHN
@ SPECIAL
@ OPENDB ALL
THE DATABASE FILE EMPLOYEE FILE OPENED
THE DATABASE FILE CASE FILE OPENED
@ GET BUNDLE1
BUNDLE1 1120 17.09.1979 13.13.49 OPEN PRIVATE INPUT NOT FINISHED
INPUT START
ADM 619 30 79
HRS 200 40
SUM 40
ADM 020 30 79
*** EMPLNO. HAS ILLEGAL VALUE: 20
*** RECORD WITH KEY STATED DOES NOT EXIST IN SET 3
***** EMPLOYEE DOES NOT EXIST: 0
ADM 020 30 79
\f
@ OK
*** EMPLNO. HAS ILLEGAL VALUE: 20
*** RECORD WITH KEY STATED DOES NOT EXIST IN SET 3
***** EMPLOYEE DOES NOT EXIST: 0
LINE ACCEPTED
HRS 200 40
SUM 40
@ SAVE
BUNDLE1 1120 17.09.1979 13.19.44 SAVED PRIVATE INPUT FINISHED
@ BYE
THNAKS FOR TODAY
Figure 67.
2_._ _R_u_n_ _w_i_t_h_ _D_E_S_8_0_
In fig. 68 the operator assigns himself privi-
ledged status and uses the @ TEST1 command to
learn the name of the text status file.
@ ID JOHN
@ SPECIAL
@ TEST1 BUNDLE1
BUNDLE: BUNDLE1 TRANSACTION FILE: WRK 000253
STATE: 0 0 0 0 0
TEXT: WRK 000254
VOUCHER: 2 LINE: 6 POSITION: 10 390
@ BYE
THNAKS FOR TODAY
Figure 68.
\f
F_ (3. Run (with BOSS))\f
F_ (CONTENTS OF LIST FILE:)\f
(Executed under BOSS are:)\f
Subsequently the following run will be executed
under BOSS:
20/id/id john
70/020/620
save trans1 disc1
clear
scope user trans1
get des80offl
(correct input name when calling
DES80ONLINE to: trans1)
run
F_._2_ _ _ _ _ _ _ _D_a_t_a_ _e_r_r_o_r_s_ F.2
Fig. 70 shows a list of error texts which are
caused by data errors.
The errors associated with texts 1 to 12 and 14
cause the typed line to be rejected but allow the
typing of data to continue.
The error associated with 13 is more serious and
prevents the operator from typing further data
till the error has been corrected.
N_o_._ _ _E_R_R_O_R_T_E_X_T_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1 SYNTAX ERROR IN FIELD AFTER <name'
2 <name' HAS NOT BEEN TYPED
3 <name' HAS DECIMALS MISSING AFTER POINT
4 <name' HAS TOO MANY DECIMALS
5 <name' IS A TEXT WHICH HAS NOT BEEN FINIESHED
6 <name' IS A TOO LONG TEXT
7 LINE AFTER <name' HAS NOT BEEN TYPED
8 LINE MUST BE FINISHED AFTER <name'
9 SYNTAX ERROR IN FIELD AFTER <name'
\f
10 <name' HAS ILLEGAL VALUE
11 RECORD WITH KEY SPECIFIED DOES NOT EXIST
IN SET <no'
12 RECORD WITH KEY SPECIFIED ALREADY EXISTS
<no'
13 LINE TYPE CAUSES SYTEM/PROGRAM ERROR
14 <name' HAS ILLEGAL VALUE
Figure 70.
For a more detailed description, please see Ref.
3.
F_._3_ _ _ _ _ _ _C_o_m_m_a_n_d_ _E_r_r_o_r_s_._ F.3
Fig. 71 gives a survey of the error messages which
are caused by command errors. For a more detailled
description, please see Ref. 9, chapter 3.
COMMAND NAME DOES NOT EXIST
SYNTAX ERROR
NAME OF BUNDLE IS TOO LONG
OPERATOR HAS NOT BEEN ACCEPTED
WRONG IDENTIFICATION
THERE IS A PRINTLEDGED OPERATOR
COMMAND CAUSES SYSTEM/PROGRAM ERROR
NON-PRIVILEDGED OPERATOR
TRANSACTION FILE EMPTY
PREVIOUS TRANSACTION FILE NOT USED
NO BUNDLES AVAILABLE
BUNDLE IN USE
BUNDLE PRIVATE
BUNDLE NON-EXISTENT
ERROR IN USE OF BUNDLE
OPERATOR HAS NOT COMMENCED TYPING INPUT
\f
BUNDLE ALREADY EXISTING
BUNDLE CONTAINING FORCED LINES
EDIT/REPLACEMENT OPERATION FOR BUNDLE NOT FINISHED
BUNDLE CONTAINING NON FINISHED VOUCHERS
OPERATOR ATTACHED TO OTHER BUNDLE
BUNDLE NOT FINISHED
SENDING BUNDLE CAUSES A SYSTEM ERROR
TEXT NON-EXISTENT
NO INPUT OF DATA DURING POSITIONING
NO REPLACEMENT/EDITING DURING POSITIONING
NO POSITIONING DURING INPUT OR CORRECTION
TOO MANY VOUCHERS AT FORWARD POSITIONING
TOO MANY VOUCHERS AT REVERSING
TOO MANY LINES AT FORWARD POSITIONING
TOO MANY LINES AT REVERSING
NO LINES TO FORCE
USE INSTEAD @ POS
NO DELETION DURING POSITIONING
@ BREAK CAN ONLY BE EXECUTED WHEN CORRECTING
@ START CANNOT BE EXECUTED RUING INPUT OR
REPLACEMENT/EDITING
INPUT CANNOT BE TYPED DURING EDITING/REPLACEMENT
NO REPLACEMENT DURING INSERTION
DURING INSERTION NO REVERSE
TOO BIG REVERSAL
DURING INSERTION NO PRINTING
AFTER REVERSING VOUCHERS CANNOT BE DELETED
TOO MANY LINES
NO DELETION DURING INSERTION
ONLY ONE LINE CAN BE DELETED
THE SPECIFIED NUMBER CANNOT BE DELETED
INSERTION IS STARTED EARLIER
INSERTION HAS NOT BEEN STARTED
NEW LINE TOO LONG
END OF BUNDLE
DURING INPUT VOUCHERS CANNOT BE DELETED
\f
AFTER REVERSING NO VOUCHERS CAN BE LISTED
THE LINE CANNOT BE EDITED/REPLACED IN THIS
RUNTHROUGH
THE LINE CANNOT BE DELETED IN THIS RUNTHROUGH
THERE IS NO READ-IN PROGRAM FOR THIS USER <name'
LOCAL DATA DESCRIPTION INCORRECT FOR THIS USER
<name'
Figure 71.
F_._4_ _ _ _ _ _ _ _P_r_o_g_r_a_m_ _E_r_r_o_r_s_ F.4
The various program errors have been descreibed in
detail in Ref.3. The error numbers and error texts
have been listed in fig. 72. Error number 12 is
supplemented with an error text as is shown in
fig. 73.
E_r_r_o_r_ _N_o_ _ _E_r_r_o_r_ _t_e_x_t_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1 ILLEGAL BLOCKNO OR BLOCK MISSING <block _no'
2 ILLEGAL BLOCKREF, USER CONFLICT <block _no'<user _no'
3 ILLEGAL ENTRYPOINT <entry _no'
4 PRINT CHANNEL NOT SELECTED
5 ILLEGAL VARIABLE NUMBER <var _no'
6 INDEX <var _no'<index _value'
7 ILLEGAL CHANNEL NUMBER <channel _no'
8 INST.COUNT EXCEEDED <inst _count<'max _inst'
9 ILLEGAL SET NUMBER <set _no'
10 USAGE CONFLICT <set _no'
11 RECORD STATE ILLEGAL FOR THIS OPERATION <set _no'
<record _state'
12 MOVE ERROR "set _no'<text'<adr'<value'
13 SET CLOSED FOR SEQ.CCESS BY NEWSET ON ANOTHER SET
<set _no'
14 DAUGHTER RECORDS ASSOCIATED WITH CURRENT RECORD
16 CURRENT RECORD REMOVED FROM DB <set _no'
\f
17 MOTHER RECORD MISSING IN SIDE CHAIN <set _no'
18 MOTHER RECORD REMOVED FROM DB <set _no'
19 ILLEGAL STATE FOR MOTHER SET <set _no<record _stated'
20 ILLEGAL CURRENT RECORD TYPE IN MOTHER SET <set _no'
21 RECORD TYPE ILLEGAL IN SET <set _no'<record _type'
22 PRINTVALUE EXCEEDS FIELD RANGE <channel'<value'
23 ILLEGAL PRINT POSITION <start _pos'
24 PRINT FIELD EXCEEDS LINE BUFFER <start _pos'<amount'
25 ILLEGAL BS.OPERATION, POSITION AF EOF <set _no'
26 ILLEGAL DELETE POSITION <set _no'
27 SET NOT OPEN FOR SEQUENTIAL ACCESS <set _no'
28 ILLEGAL SPECIAL ACTION <algol _no'
29 ILLEGAL NUMBER OF PARAMETERS <algol _no'<no'
30 ILLEGAL TYPE OF PARAMETER <algol _no'<param _no'
31 ILLEGAL ZERO DIVISION
Figure 72.
N_o_ _ _ _ _ _ _ _ _E_r_r_o_r_ _t_e_x_t_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1 ILLEGAL ENTRYADDR IN >FLYTTETAB>
2 ILLEGAL MOVEINSTRUCTION: TYPE, ADDR:
3 SPILL DURING TRANSFER FROM VAR: ADR, VALUE:
4 INDEX: ADDR OF INDEXVAR, VALUE:
5 ILLEGAL NUMBER OF REPET. IN RPG: VARADDR, VALUE:
6_ _ _ _ _ _ _ _ _ _F_I_E_L_D_A_D_D_R_ _O_U_T_S_I_D_E_ _Z_O_N_E_R_E_C_:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Figure 73.
If the read-in program or the ld-description are
defekt the following messages will be printed:
***** USER <user _no.'<operator _no.'<error _text'
where the <error _text' is either:
READ IN PROGRAM IS NOT OK
or:
LD-DESCRIPTION IS NOT OK
\f
F_._5_ _ _ _ _ _ _ _S_y_s_t_e_m_ _E_r_r_o_r_s_ F.5
The format of the system errors is identical to
that of the program errors. For a more detailled
description, phase see Ref.3. Fig. 74 shows a
survey of the error numbers and the error texts
for the duet system.
N_o_ _ _ _ _E_r_r_o_r_ _t_e_x_t_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1 Duetrel <duetrel'<duetstop'
2 Bit 23 = 0
3 >Duetnavn'
4 Value of >udtryk> <val'<duetstop'
5 Bit 23 = 1 <duetstop'
6 Ld-tables <set _no'
7 Checksum <set _no'
8 Recordlength <set _no'
9 Connect missing in side chain <set _no'
10 File expansion impossible <result cf'
11 Record creation too expensive <result cf'
12 Deletion of last record in file
13 Skipword
14 Over/underflow <stack _stop'
15 Error in block transfer <block _no<error _text'
16 Move error
1_7_ _ _ _ _I_l_l_e_g_a_l_ _t_y_p_e_ _o_f_ _v_a_l_u_e_ _e_l_e_m_e_n_t_ _<_t_y_p_e_'_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Figure 74.
\f
F_ G_._ _ _ _ _ _ _ _ _S_P_E_C_I_A_L_ _A_C_T_I_O_N_S_ _ G.
G_._1_ _ _ _ _ _ _ _G_e_n_e_r_a_l_ G.1
Purpose There are a number of operations in the DES809 sy-
stem, which are to be executed in the user>s
read-in program, which it either is inexpdient or
impossible to implement in the Duet language.
These actions are programmet in ALGOL and are cal-
led as procedures from the read-in program.
It is the group in charge of developing the DES80
system which decides the number, and functions, of
the special actions and maintains them.
DES80 operates with special actions centering on
the following problems:
1. transactions to a text file
2. wage code problems
3. repeat line
4. check of date
These special actions will be descreibed in
accordance with the following general format:
\f
1
C_a_l_l_ algol <no.' (<param 1',...,<param 7')
0
<no.' : the number of the special action
<param 1': (call/return/type)
. . .
<param 7',
as a special action can have front 1 to 7
parameters.
D_e_s_c_r_i_p_t_i_o_n_ _o_f_ _t_h_e_ _f_u_n_c_t_i_o_n_
E_r_r_o_r_ _r_e_a_c_t_i_o_n_s_
E_x_a_m_p_l_e_
The section below first deal with the general
error reactions which may occur (program errors).
Then follows a description of the various problem
complexes.
G_._2_ _ _ _ _ _ _ _G_e_n_e_r_a_l_ _E_r_r_o_r_ _R_e_a_c_t_i_o_n_s_ G.2
When the special actions are used incorrectly the
following program error reactions will occur:
28
***** PROGRAM ERROR 29: CALL FROM : BLOCK INSTR OPT (ADR PIL ART)
30
duet - - algol - - -
<error _text'
\f
<error _text' can be one of the following:
Illegal special action
Reference has been made to a non-defined special
action.
illegal no. of parameters <amount'
The special action called does not comply with the
conventions governing the number of parameters.
The illegal number of parameters are specified.
illegal type of parameter <no'
The special action called is referenced with an
illegal parameter type. The number of the illegal
parameter is specified.
G_._3_ _ _ _ _ _ _ _T_r_a_n_s_a_c_t_i_o_n_s_ _t_o_ _a_ _T_e_x_t_ _F_i_l_e_ G.3
There are two special actions which are oriented
towards this purpose:
Algol 1 which constructs a (or only part of a)
line - it can be compared with create -
and
algol 2 which terminates the current line - it can
be compared with put.
7
C_a_l_l_ algol 1 ( <parameter i', )
i=1
<parameter i': call
type: word long text
\f
F_u_n_c_t_i_o_n_
The special action generates a part of a line,
which has the following textual representation:
<parameter 1'<terminator'<parameter 2'...<'<...n'
Where <terminator' is a character, the ISO value
of which is the value of the basis ld-variable
>terminator>.
E_x_m_a_p_l_e_
When the terminator = 44 (the ISO value for a
comma) and the item nuberm = 4711:
algol 1 (><22>, 4, item _no.)
will have the line
<22, 4, 4711
as its result.
algol 2 C_a_l_l_ algol 2
F_u_n_c_t_i_o_n_
The special action terminates a line, which is
being generated by one or several repeated calls
of algol 1, using the value of the bases
ld-variable >Line-end> as end of line symbol.
\f
E_x_a_m_p_l_e_
when terminator = 44 (,)
line-end = 10 (NL)
item number = 4711
item name = >penol 1300>
' algol 1 (><22>, 4, item _no.)
' algol 1 (127, item _name)
' algol 2
will have the line
<22, 4, 4711, 127, penol 1300 <NL'
as their result.
G_._4_ _ _ _ _ _ _ _W_a_g_e_ _C_o_d_e_s_ G.4
Special action: algol 3, not implemented.
G_._5_ _ _ _ _ _ _ _R_e_p_e_a_t_ _L_i_n_e_ G.5
As the references, requests, to the database are
coded in DUET, an algol special action has been
introduced to return the pointer to the first
field of the input line. This special action makes
it possible to read a line of the type ? it (re-
quest to the itemfile), at any level while data
are being typed, and have the answer displayed on
the terminal, without disturbing the bundle in
progress.
\f
C_a_l_l_ algol 4
F_u_n_c_t_i_o_n_
After algol 4 has been called in the Duet program
it will continue to return the pointer to the
field of the current line, untill the special
action is returned.
E_x_a_m_p_l_e_
The following example fig. 75 shows how the
database references have been coded in the
"SKANTEKMODEL>s" Duet-program:
; To determine whether the
; line is a question the
; line code is checked at
; the start of the line.
; If not a question the
; pointer is returned to
; its pre-check position,
; and the line is pro-
; cessed as an ordinary
; line.
d4: read c33 line code, t3 text, u3 number;
central(ised) reading 'if read-spec = 1
then d5 else d8.
d5: action line code of; a character field has
been read.
.?it. :d401 ; request to the item file
.?os. :d402 ; request to theopera-
tional file.
.?od. :d403 ; request to the word file
else d8 ; the line did not begin
with a request,
\f
; reading is reassumed at
; start of line, and the
; line is processed as a
; bundle line.
d8: algol 4 ; returned
'execute d10
s
d10: ; bundle line processing.
Figure 75.
\f
F_ H_._ _ _ _ _ _ _ _ _C_H_E_C_K_I_N_G_ _T_H_E_ _D_A_T_E_ H.
This algol action checks whether the date lies
within a specified format.
Call: algol 5 (date, date type, result)
word
date (call, date)
long
The date used
word
date type (call, date)
long
The specified format for date
result (return, word)
0 indicates that the date meets the
requirements set up under Function.
<' 0 indicates that the date does not
meet the requirements
F_u_n_c_t_i_o_n_
date type=1: date=ddmmyy (day-month-year)
date type=2: date=(yy) yymmdd (year-month-day)
in connection with date types 1 and 2
the algolaction checks that
1<=mm<=12
29
1<=dd<=30 (depending on mm)
31
\f
date type=3: date=(yy) yymm (year-week-no)
The algol action checks that
1<=mm<=52
date type=4: date=(yy) yydd (year - no of
day)
The algol action checks that
1<=dd<=366
When date types 2, 3, and 4 are used year may be
stated either as e.g. 79 or 1979. Date type 1 only
operates with two digits to denote the year. The
year is not checked.
\f
F_ I_._ _ _ _ _ _ _ _ _C_H_E_C_K_ _D_I_G_I_T_ _C_H_E_C_K_I_N_G_ I.
Fig. 76 shows an example of how a procedure with
the purpose of checking a number with a check
digit can be constructed in DUET.
\f
F_ (figure 76)\f
(figure 76)\f
J_._ _ _ _ _ _ _ _ _O_F_F_L_I_N_E_ _D_E_B_U_G_G_I_N_G_ J.
On the installations where DES80 has been
implemented, DES80OFFL, a skeleton job, will be
part of the software package. This job is shown on
the skeleton job contains a detailed description
of how to run with it.
Figure 78 shows an example of a user adaption. All
modifications are shown in boxes. The comments to
the input lines for the user up-dating program
have been removed - this has been marked with
NB!>s.
\f
F_ (figure 77)\f
F_ (figure 77)\f
F_ (figure 77)\f
F_ (figure 77)\f
F_ (figure 78)\f
F_ (figure 78)\f
F_ figure 78
\f
F_ figure 78
\f
The testmaterial and its construction is descrei-
bed in section 5.9 figure 79 shows a small examp-
le (TEST12)
01, @ LOGIN
01, @ ID DES80OP
01, @ GET TEST
01, ADM 100 22 78
01, HRS 110 20
01, HRS 120 20
01, SUM 40
01, ADM 200 22 78
01, HRS 220 10
01, SUM 40
01, @ SAVE FINISH
01, @ SPECIAL
01, @ SEND TEST
01, @ LOGOUT
Figure 79.
Input from and answers to the terminal are sup-
plied on DESUAR001. Figure 80 shows a part of the
latter.
* TEST START TRANSACTION: 1
@ LOGIN
* TEST FINISHED TRANSACTION: 1
* TEST START TRANSACTION: 2
@ ID DES80OP
* TEST FINISHED TRANSACTION: 2
* TEST START TRANSACTION: 3
@ GET TEST
TEST 1 3.10.1078 15.12.17 OPEN PRIVATE INPUT
UNFINISHED
\f
INPUT START
* TEST FINIESHED TRANSACTION: 3
* TEST START TRANSACTION: 4
ADM 100 22 78
* TEST FINISHED TRANSACTION: 4
* TEST START TRANSACTION: 5
HRS 110 20
* TEST FINISHED TRANSACTION: 5
* TEST START TRANSACTION: 6
HRS 120 20
* TEST FINISHED TRANSACTION: 6
* TEST START TRANSACTION: 7
SUM 40
* TEST FINISHED TRANSACTION: 7
Figure 80.
Fig. 81 shows the record which is created by
transaction no. 5.
Finally fig. 82 shows the primary output resulting
from the run.
\f
F_ (figure 81)\f
F_ (figure 82)\f
F_ (figure 82)\f
F_ (figure 82)\f
F_ (figure 82)\f
F_ (figure 82)\f
i
T_A_B_L_E_ _O_F_ _C_O_N_T_E_N_T_S_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _P_A_G_E_
1. NATIONAL VERSIONS ...................................... 1
2. FORM LENGTH ............................................ 2
\f
ii
\f
1_._ _ _ _ _ _ _ _ _N_A_T_I_O_N_A_L_ _V_E_R_S_I_O_N_S_ 1.
RC862 and RC867 are supplied containing a number of national
versions. This is done only by setting a number of switches.
The switches are placed on the Operation Panel Circuit Board as
shown in fig. 1. To Operate these switches the upper cover of the
printer has to be removed.
switch:
8 ON
M_M_ 7 ON
not to be changed
P_P_ 6 OFF
5 ON
Figure 1: Operation panel board.
Switch positions are shown in fig. 2.
s_w_i_t_c_h_ _1_ _s_w_i_t_c_h_ _2_ _s_w_i_t_c_h_ _3_ _s_w_t_i_c_h_ _4_ _v_e_r_s_i_o_n_:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _O_N_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _U_K_ _A_S_C_I_I_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _O_N_ _ _ _ _ _ _ _O_N_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _G_E_R_M_A_N_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _O_N_ _ _ _ _ _ _ _ _ _ _ _ _ _ _U_S_ _A_S_C_I_I_/_F_R_E_N_C_H_ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _O_N_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _O_N_ _ _ _ _ _ _ _ _ _ _ _ _ _ _S_W_E_D_I_S_H_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _O_N_ _ _ _ _ _ _ _O_N_ _ _ _ _ _ _ _ _ _ _ _ _ _ _D_A_N_I_S_H_/_N_O_R_W_E_G_I_A_N_ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _O_N_ _ _ _ _ _ _ _O_N_ _ _ _ _ _ _ _O_N_ _ _ _ _ _ _ _ _ _ _ _ _ _ _D_A_N_I_S_H_ _O_F_F_S_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Figure 2: Position of switches.
\f
F_ 2_._ _ _ _ _ _ _ _ _F_O_R_M_ _L_E_N_G_T_H_ 2.
If the printer is equipped with the latest version of PROM's, the
Form Length rotary switch has the following settings:
Switch position Form Length (inches)
0 3
1 3,5
2 4
3 5,5
4 6
5 7
6 8
7 8,5
8 11
9 12
\f
F_
\f
F_
\f
user: user _identification terminated
Figure 64
des80cat: des80test
sysdok: des80sys section: 1. user _file version: 13 created: 12.09.1979 13.55.00.
virtual file: des80data
max: users operators.
10 5
user: desa
descrip _file: dsadescr 51. inserted
ld _name: created: 2.09.1979 11.53.30 by: desb
user: desc
descrip _file: descr 51. inserted
ld _name: created: 18.07.1979 15.55.11 by: sjc
Figure 65.
\f
3_._ _R_u_n_ _(_w_i_t_h_ _B_O_S_S_)_
10 transformer in.wrk000254 out.trans1,
j_o_b_ _f_i_l_e_ 20 list.yes listout.listfile
30 finis
START TRANSFORMER, V1, 19.09.1979 29.09.1979 14.30.29
TRANSFORMER IN.WRK00259 OUT.TRANS1 LIST.YES LISTOUT.LISTFILE
DES80 DATE: 20.09.1979 14.30.39
TRANSFORMER, V1, 19.09.1979 PAGE: 1
BUNDLE NAME: BUNDLE1
TEXT STATUS FILES NAME: WRK000254
TRANSACTION FILES NAME: WRK000253
OLD TEXT STATUS FILES NAME:
NUMBER OF LINES: 6
NUMBER OF VOUCHERS: 2
NUMBER OF FORCED ITEMS: 1
END TRANSFORMER, V1, 19.09.1979 20.09.1979 14.30.31 CPU: O
END 69 \f
C_O_N_T_E_N_T_S_ _O_F_ _L_I_S_T_ _F_I_L_E_
START TRANSFORMER, V1, 19.09.1979 29.09.1979 13.59.24
DES80 DATE: 20.09.1979 13.59.24
TRANSFORMER, V1, 19.09.1979 PAGE 1
BUNDLE NAME: BUNDLE1
TEXT STATUS FILES NAME: WRK000254
TRANSACTION FILES NAME: WRK000253
OLD TEXT STATUS FILES NAME:
NUMBER OF LINES: 6
NUMBER OF VOUCHERS: 2
NUMBER OF FORCED ITEMS: 1
DES80 DATE: 20.09.1979 13.59.24
TRANSFORMER, V1, 19.09.1979 PAGE: 2
LINE VOUCHER NUMBER OF LINE TYPED
FORCED ITEMS
1 1 0 ADM 619 30 79
2 1 0 HRS 200 40
3 1 0 SUM 40
4 2 0 ADM 020 30 79
5 2 1 HRS 200 40
6 2 1 SUM 40
END TRANSFORMER, V1, 19.09.79 20.09.1979 13.59.25 CPU: 0
\f
Executed under BOSS are:
get trans1
list
10 01, @ LOGIN'* OFFLINE INPUT IN TRANS1*'
20 01, @ ID
30 01, @ GET BUNDLE
40 01, ADM 019 30 79
50 01, HRS 200 40
60 01, SUM 40
70 01, ADM 020 30 79
80 01, HRS 200 40
90 01, SUM 40
100 01, @ SAVE FINISH
110 01, @ SPECIAL
120 01, @ SEND BUNDLE1
130 01, @ LOGOUT
\f
d10: modify sum: = 0 ; The two auxillary variables, sum and counter,
counter: = 0 ; are initialized first. Number is the figure on
figure: = number ; which the check digit is to be cheked.
s
' while figure ' 0 do d20 ; The operation runs throught all digits in the figure.
' execute d30 ; The actual check is performed in d30.
s
d20: modify counter: +1 ; counter specifies the number of the digit, counter
; from the right hand side, which is to be processed.
digit: = figure mod 10 ; After the counter has been increased the digit is selected,
; and figure is intergerdivided by 10, enabling us
figure: = figure 11 10 ; to select the next digit
s
'assign weight: = counter of
1: 0 ; This construction assigns the individual digits
2: 2 ; weights. The box shows an example of a
3: 1 ; wight system. These can be modified to
4: 2 ; suit individual needs. Please notice that the check
5: 1 ; digit, which in the example/box is the first digit,
6: 2 ; has been assigned 0, and that the remaining digits
7: 1 ; have been assigned weights different from 0.
8: 2 ; The example can handle a 10 digit figure.
9: 1
10: 2
else d31 ; error reaction to a figure which is too large
'compute product: = wieht + digit ; weight computed.
s
'modify x: = digits (2,2) of product ; The contents of the box is only used when
y: = digits (1,1) of product ; operating with a weighted sideways sum
s ; If the ordinary sum of the digits method is used
'if x'0 then d21 ; the weighted sideways sum is not used. x is the digit
; to the left in product, and y the digit to the right
\f
'modify sum: + product ; summation of weighted digits.
s
d21: compute product: = x+y ; The contents of the box is only used when operating
s ; with the weighted sideways sum method.
d30: modify control: = digits ( 1,1 ) of number ; The controldigit is selected. In the example
check: = sum mod 10 ; the first digit to the right is selected. The
s ; box specifies the module figure as 10.
; This figure can be exchanged with others
; (9, 11, etc).
'compute check: = 10-check ; This construction computes the immediately
s ; higher multiple of the module figure instead of
'modify check: = check mod 10 ; a modulo figure
s ; (might be omitted)
' if control <' check then d32 ; the actual check
d31: print <l1 t20': >***** too large a figure ; The error messages ought
d32: print <l1 t20': >***** illegal figure> ; to reflect the current problems.
; The incorrect field should also be
; identified in the message.
Figure 76.
\f
JOB NN X JJJJJJ TIME 8 0 size 90000 perm kit1 500 5, ; *** 1) and 10)
TEMP KIT2 5000 20 AREA 14 BUF 14 ; *** 10)
MODE LIST.YES
; THE FOLLOWING JOB EXECUTES A RUN, OF THE DES80 SYSTEM FOB OFF-LINE DEBUGGING OF READ-IN PROGRAMS.
;
; INFORMATION, WHICH MUST BE STATED OR MIGHT BE MODIFIED, WILL BE LISTED BELOW. THE VARIOUS CALL OF PROGRAM
; WILL, AS A RULE, USE THE CURRENT STANDARD NAMES. THE LINES, WHICH ARE TO BE MODIFIED, HAVE BEEN MARKED
; WITH THREE ASTERISKS AND A REFERENCE TO THE LIST BELOW.
;
; 1) THE JOB LINE: INITIALS (NN), INDEX (X), AND THE PROJECT NUMBER (JJJJJJ).
; 2) BASES: LLLLLL AND UUUUUU ARE THE LOWER RESPECTIVELY THE UPPER BASES FOR THE TEMPORARY FILES.
;
; BASES ARE FOUND BY MEANS OF THE FOLLOWING OPERATION:
; PIP=SET 1
; LOOKUP PIP
; -' PIP=SET 1 ......; TEMP
; -'; 1802 302 0 17500 17501
; THIS GIVES: LLLLLL = 17500 AND UUUUUU = 175001
; THE OPERATION MUST BE EXECUTED ON A TERMINAL, WHICH HAS BEEN LOGGED IN UNDER THE SAME
; INDEX (X) AS USED IN THE JOB LINE.
; 3) USERFILE: WITH INITIALS CORRESPONDING TO THOSE OF THE JOB LINE.
; 4) USERFILE: MAX USER: USER NO. - E.G. MAX USER: 3 (USER NO. 3).
; 5) USERFILE: THE NAME OF THE DESCRIPTION FILE - E.G. DESADESCR.
; 6) USERFILE: LOCAL DATA DESCRIPTION IN: SECTION 3.1.
; 7) DES80ONLINE: THE NAME OF THE AREA, IN WHICH THE TEST MATERIAL HAS BEEN PLACED, MUST BE SPECIFIED BY
; MEANS OF THE PARAMETER INPUT.
; 8) SPLIT80: THE NAME OF THE DESCRIPTION FILE: DESADESCR.
; THE NAME OF THE TRANSACTION FILE FROM DES80: DES80IN.
; THE NAME OF THE TRANSACTION FILE AFTER SPLIT: DES80OUT.
; THE FILE NUMBERS IN THE TRANSACTION FILE AFTER SPLIT MUST BE STATED.
;
; 9) PRINT80: THE STANDARD IS USED FOR ALL PARAMETERS.
; ADAPTIONS MUST BE MADE.
;10) KIT NAME: THE NAMES KIT1 AND KIT2 MUST BE EXCHANGED WITH THE NAMES OF THE KITS HANDLING THE
; PERMANENT AND TEMPORARY RESOURCES.
;
\f
LISTOUT=COPY 0
;
; FIRST OF ALL A USER FILE WITH 1 USER AND 1 TERMINAL IS CREATED
;
USERSYS=SET 1
SYSDOK RUN.INIT SYSDOK.USERSYS.
1 DES80
2 DES80SYSTEM
3 LAUTRUPBJERG 1
4 2750 BALLERUP
5 DES80USERSYSTEM
6 123/46
7 123456
END
IF OK.NO
FINIS
SYSDOK SYSDOK.USERSYS
LOGIN UPDAT NN DES80 VERS.0 ;*** 3)
NEW GAP. 10
/1. USER CATALOG
CATALOG:
CATBASE: LLLLLL UUUUUU ;*** 2)
MAXUSER: B MAXOP: 1 ;*** 4)
USER: B DES80USER DESCRIPFILE 3.1 ;*** 4), 5), AND 6).
USERBASE: LLLLLL UUUUUU ;*** 2)
OP: 1 1 DES80OP
/
END
IF OK.NO
FINIS
CLEAR TEMP LISTOUT
USERFILE=SET 10
DES80USER SYSDOK.USERSYS SECTION.1 USERFILE.USERFILE.NEW
IF OK.NO
FINIS
;
\f
;
; AT THIS STAGE THE DESCRIPTIONS ARE INITIALIZED
;
DES80DATA=SET 1
DES80UPDATE BASE.LLLLLL.UUUUUU RUN.INIT LOG.DES80LOG ;*** 2)
IF OK.NO
FINIS
; FINALLY A RUN WITH DES80ONLINE USING DATA FROM THE AREA <INPUT' IS EXECUTED
DES80LOG=SET 1 KIT1 ;*** 10)
SCOPE USER DES80LOG
JOURNAL=SET 1 KIT1 ;*** 10)
DES80ONLINE BASE.LLLLLL.UUUUUU INPUT.INPUT TEST.2.19 ;*** 2) AND 7)
IF OK.NO
SKIP Q.7
;
; THE FOLLOWING CONCLUDING RUN PRODUCES A LOG CONTAINING THE TRANSACTIONS READ IN
;
DES80UPDATE.LLLLLL.UUUUUU RUN.FINIS LIST.YES LISTOUT.JOURNAL ;*** 2)
IF OK.NO
FINIS
;
; FINALLY ALL TRANSACTIONS GENERATED ARE DOCUMENTED THROUGH A CONVERSION OF THE POSTING JOURNAL: JOURNAL AND
; REPLY AREA: DESVAR001 PLUS BY OUTPUT FROM SPLIT80 AND PRINT80.
CONVERT JOURNAL STD
CONVERT DESVAR001 STD ;*** 8)
LOOKUP DES80IN
IF OK.NO
SKIP Q.5
DES80OUT=SET 1 KIT1 0 0 0 20.1 0 ;*** 8) AND 10)
TEXT=COPY 0
DESCRIPFILE=DESCRIP.DESCRIPFILE OUT.DES80OUT.II GVS.TEXT, ;*** 8)
IF OK.NO
SKIP Q.4
CONVERT TEXT STD
DESCRIPFILE=PRINT80 ;*** 9)
; ADAPTION INSERTED HERE
\f
IF OK.NO
SKIO Q.3
; QQQ
CLEAR USER DES80LOG
CLEAR USER JOURNAL
FINIS
Figure 77.
\f
JOB DESB 0 292932 TIME 8 0 SIZE 90000 PERM DISC1 500 5, ; *** 1) AND 10)
TEMP DISC 5000 20 AREA 14 BUF 14 ; *** 10)
MODE LIST.YES
; THE FOLLOWING JOB EXECUTES A RUN, OF THE DES80 SYSTEM FOB OFF-LINE DEBUGGING OF READ-IN PROGRAMS.
;
; INFORMATION, WHICH MUST BE STATED OR MIGHT BE MODIFIED, WILL BE LISTED BELOW. THE VARIOUS CALL OF PROGRAM
; WILL, AS A RULE, USE THE CURRENT STANDARD NAMES. THE LINES, WHICH ARE TO BE MODIFIED, HAVE BEEN MARKED
; WITH THREE ASTERISKS AND A REFERENCE TO THE LIST BELOW.
;
; 1) THE JOB LINE: INITIALS (NN), INDEX (X), AND THE PROJECT NUMBER (JJJJJJ).
; 2) BASES: LLLLLL AND UUUUUU ARE THE LOWER RESPECTIVELY THE UPPER BASES FOR THE TEMPORARY FILES.
;
; BASES ARE FOUND BY MEANS OF THE FOLLOWING OPERATION:
; PIP=SET 1
; LOOKUP PIP
; -' PIP=SET 1 ......; TEMP
; -'; 1802 302 0 17500 17501
; THIS GIVES: LLLLLL = 17500 AND UUUUUU = 175001
; THE OPERATION MUST BE EXECUTED ON A TERMINAL, WHICH HAS BEEN LOGGED IN UNDER THE SAME
; INDEX (X) AS USED IN THE JOB LINE.
; 3) USERFILE: WITH INITIALS CORRESPONDING TO THOSE OF THE JOB LINE.
; 4) USERFILE: MAX USER: USER NO. - E.G. MAX USER: 3 (USER NO. 3).
; 5) USERFILE: THE NAME OF THE DESCRIPTION FILE - E.G. DESADESCR.
; 6) USERFILE: LOCAL DATA DESCRIPTION IN: SECTION 3.1.
; 7) DES80ONLINE: THE NAME OF THE AREA, IN WHICH THE TEST MATERIAL HAS BEEN PLACED, MUST BE SPECIFIED BY
; MEANS OF THE PARAMETER INPUT.
; 8) SPLIT80: THE NAME OF THE DESCRIPTION FILE: DESADESCR.
; THE NAME OF THE TRANSACTION FILE FROM DES80: DES80IN.
; THE NAME OF THE TRANSACTION FILE AFTER SPLIT: DES80OUT.
; THE FILE NUMBERS IN THE TRANSACTION FILE AFTER SPLIT MUST BE STATED.
;
; 9) PRINT80: THE STANDARD IS USED FOR ALL PARAMETERS.
; ADAPTIONS MUST BE MADE.
;10) KIT NAME: THE NAMES KIT1 AND KIT2 MUST BE EXCHANGED WITH THE NAMES OF THE KITS HANDLING THE
; PERMANENT AND TEMPORARY RESOURCES.
;
\f
LISTOUT=COPY 0
;
; FIRST OF ALL A USER FILE WITH 1 USER AND 1 TERMINAL IS CREATED
;
USERSYS=SET 1
SYSDOK RUN.INIT SYSDOK.USERSYS.
1 DES80
2 DES80SYSTEM
3 LAUTRUPBJERG 1
4 2750 BALLERUP
5 DES80USERSYSTEM
6 123/46
7 123456
END
IF OK.NO
FINIS
SYSDOK SYSDOK.USERSYS
LOGIN UPDAT DESB DES80 VERS.0 ;*** 3)
NEW GAP. 10
/1. USER CATALOG
CATALOG:
CATBASE: 11090 11090 NB
MAXUSER: 2 MAXOP: 1 NB
USER: 2 DES80USER ISCBEST 51 NB
USERBASE: 11090 11090 NB
OP: 1 1 DES80OP
/
END
IF OK.NO
FINIS
CLEAR TEMP LISTOUT
USERFILE=SET 10
DES80USER SYSDOK.USERSYS SECTION.1 USERFILE.USERFILE.NEW
IF OK.NO
FINIS
;
\f
;
; AT THIS STAGE THE DESCRIPTIONS ARE INITIALIZED
;
DES80DATA=SET 1
DES80UPDATE BASE.11090.11090 RUN.INIT LOG.DES80.LOG ;*** 2)
IF OK.NO
FINIS
; FINALLY A RUN WITH DES80ONLINE USING DATA FROM THE AREA <INPUT' IS EXECUTED
DES80LOG=SET 1 DISC1 ;*** 10)
SCOPE USER DES80LOG
JOURNAL=SET 1 DISC1 ;*** 10)
DES80ONLINE BASE.11090.11090 INPUT.TEST12 TEST.2.19 ;*** 2) AND 7)
IF OK.NO
SKIP Q.7
;
; THE FOLLOWING CONCLUDING RUN PRODUCES A LOG CONTAINING THE TRANSACTIONS READ IN
;
DES80UPDATE.11090.11090 RUN.FINIS LIST.YES LISTOUT.JOURNAL ;*** 2)
IF OK.NO
FINIS
;
; FINALLY ALL TRANSACTIONS GENERATED ARE DOCUMENTED THROUGH A CONVERSION OF THE POSTING JOURNAL: JOURNAL AND
; REPLY AREA: DESVAR001 PLUS BY OUTPUT FROM SPLIT80 AND PRINT80.
CONVERT JOURNAL STD
CONVERT DESVAR001 STD ;*** 8)
LOOKUP TRANSFILE
IF OK.NO
SKIP Q.5
INPUT12=SET 1 DISC1 0 0 0 20.1 0 ;*** 8) AND 10)
DESBDESCR=SPLIT80 IN.TRANSFILE OUT.INPUT12.12 OUT.GENIUSFILE.20, ;*** 8)
DESCRIP.DESBDESCR
IF OK.NO
SKIP Q.4
DESBDESCR=PRINT80 FUNKTION.2 PAPER.2 DESCRIP.DESBDESCR ;*** 9)
A20 GENIUSFILE
\f
R20 OUTFORM.3 ; ALL OF THE RECORD
* ; ALL RECORD TYPES
/
IF OK.NO
SKIP Q.3
; QQQ
CLEAR USER DES80LOG
CLEAR USER JOURNAL
FINIS
Figure 78
\f
PRINT8Ø, EDITED FORM, DATE: Ø3.1Ø.79, TIME: 15.23.18 PAGE: 1
CONTENTS TYPE ADR ENQ.
R_E_C_O_R_D_:_ _ _ _ _ _ _2_ _B_S_F_I_L_E_ _R_E_C_O_R_D_
_
U2Ø._RECLONG 28 2 2 1
U2Ø._CHECKSUM -163 2 4 2
U2Ø._RECTYPE_ 2 2 6 3
U2Ø._CHANGE.DATE Ø 2 8 4
U2Ø._GENIU_SER Ø 2 1Ø 5
U2Ø._CASE.KEY 7 1Ø 6
U2Ø._CASENO. 11Ø 2 12 7
U2Ø._CASETYPE Ø 2 14 8
U2Ø._TYPE _ Ø 2 16 9
U2Ø._EMPL.KEY 7 16 2Ø
U2Ø._EMPLOYEENO. Ø 3 2Ø 21
U2Ø._WEEKNO. Ø 2 22 22
U2Ø._HOURS 2Ø 2 24 23
U2Ø.MANHOURS Ø 3 28 24
Ø='0 (NUL) NIC.
Figure 81.
\f
* LISTOUT=COPY 0
CUR.INPUT SEGM. 0 0/0
* USERSYS=SET 1
* SYSDOK RUN.INIT SYSDOK.USERSYS
START SYSDOK, V5B 03.10.1979 15.19.46
0 SYSDOK RUN.INIT SYSDOK.USERSYS.
SYSDOKFILE CREATED AND INITIALIZED
03.10.1979 15.19
FILE _NAME : USERSYS
PASSWORD : DES80
NAME : DES80SYSTEM
ADDRESS1 : LAUTRUPBJERG 1
ADDRESS2 : 2750 BALLERUP
HEADING : DES80USERSYSTEM
CASE _ : 123/456
PROJECT _. : 123456
TRANSFILE _NAME :
LANGUAGE : 00
OUTFORMAT :
MAX.INPOS : 100/65
START VERSION : 1
END SYSDOK, V5B 03.10.1979 15.19.51 CPU:1
END 1Ø2
*IF OK.NO
* SYSDOK SYSDOK.USERSYS
START SYSDOK, V5B 3.10.1979 15.19.53
Ø SYSDOK SYSDOK.USERSYS
1Ø NEW GAP. 10
12Ø END
UPDATING BEGIN
UPDATING END, VERS.1
END SYSDOK, V5B 03.10.1979 15.20.00 CPU:1
END 149
* IF OK.NO
* CLEAR TEMP LISTOUT
\f
* USERFILE=SET 10
* DES80USER SYSDOK.USERSYS SECTION.1 USERFILE.USERFILE.NEW
START DES80 USER CAT.UPD, V 03.10.1979 15.20.02
DES80USER SYSDOK.USERSYS SECTION.1 USERFILE.USERFILE.NEW
STARTSYSDOK: USERSYS NOT AUT. VERS.1
SECTION 1. USERCATALOG
*** CONVERT LISTOUT FILE NOT FOUND
END DES80 USER.CAT.UPD, V4 03.10.1979 15.10.05 CPU:1
END 107
* IF OK.NO
* DES80DATA=SET 1
* DES80DATA=SET 1
* DES80UPDATE BASE. 11090.11090 RUN.INIT LOG.DES80LOG
START DES80UPDATE V4, 11.09.78 3.10.1079 15.20.07
DES80UPDATE BASE. 11090. 11090 RUN.INIT LOG.DES80LOG
USERFILE: USERFILE
SYSDOK: USERSYS SECTION: 1. USERCATALOG VERSION: 1 CREATED: 3.10.1979
15.20.02
DES80 CONTEXT: DES80DATA
MAX: USERS OPERATORS.
2 1
USER: DES8ØUSER
DESCRIPFILE: DESBDESCR51 CHANGED
LD NAME: CREATED: 2.1Ø.1978 15.3646 BY:DESB
END DES80UPDATE, V4, 11.09.79 03.10.1979 15.21.09 CPU:3
END 204
* IF OK.NO
* DES80LOG=SET 1 DISC1
* SCOPE USER JOURNAL
* DES80RETURN=SET 1
* DES80ONLINE BASE. 11090.11090 INPUT TEST12 TEST.2.19
START DES80ONLINE, V4, 04.10.1979 03.10.1979 15.21.12
\f
DES80ONLINE BASE. 11090.11090 INPUT.TEST12, TEST.2.19
BASES: CAT STD USER MAX
11090 11090 11090 11090 11090 11090 11090 11090
INPUT: TEST12 OFFLINE
VIRTUAL FILE: DES80DATA
LOGGING ON: DES80LOG
MAX USERS: 2
MAX OPERATORS: 1
STATUS: 296
MAX D-ARRAY: 228
LINE LENGTH: 36
MAX LINE STACK: 20
MAX BUNDLES: 10
DUETSYSTEM: VERSION : 72 EAH 29.09.78
ACTIVATED : 03.10.78 - 15.21
DUETFILE: IDENT : 1 TESTUSER
AREA : DES80DUET
VERSION : 5 DESB 2.10.79 - 15.38
USER ID LOW UP
2 DES80 USER 11090 11090 OK DUETSTART: 20
DESVAR001 CREATED ON DISC
USER: 2 BUNDLE: TEST HAS BEEN SENT
END DES80ONLINE, V4, 04.10.79 03.10.1979 15.21.56 CPU:7
END 1090
* IF OK.NO
* DES80UPDATE BASE. 11090.11090 RUN.FINIS LIST.YES LISTOUT.JOURNAL
START DES80UPDATE, V4, 11.09.79 03.10.1979 15.21.58
DES80UPDATE BASE. 11090.11090 RUN.FINISH LIST.YES LISTOUT.JOURNAL
USER FILE: USERFILE
\f
SYSDOK: USERSYS SECTION: 1. USER CATALOG VERSION: 1 CREATED: 03.10.1979 15.20.02
DES80 CONTEXT: DES80DATA
MAX: USERS OPERATORS.
2 1
USER: DES80USER FINISHED
TRANSACTION LOG: DES80LOG NUMBER OF RECORDS: 28
SORTING OK: WRK001744 NUMBER OF RECORDS: 28
TRANSACTION JOURNAL ON JOURNAL HAS NOT BEEN CONVERTED
END DES80UPDATE, V4, 11.09.79 03.10.1979 15.22.06 CPU:1
END 100
* IF OK.NO
* CONVERT JOURNAL STD
* CONVERT DESVAR001 STD
* LOOKUP TRANSFILE
TRANSFILE =SET 1 DISC D.680101.0003 0 112 20.1.0 ; TEMP
; 334 167 0 11090 11090
*IF OK.NO
* INPUT12=SET 1 DISC1 0 0 0 20.1 0
* DESBDESCR+ SPLIT80 IN.TRANSFILE OUT.INPUT12.12 OUT.GENIUSFILE.20,
DESCRIP.DESBDESCR
START SPLIT80, V6 03.10.1979 15.22.13
DESBDESCR=SPLIT80 IN.TRANSFILE OUT.INPUT12.12 OUT.GENIUSFILE.20,
DESCRIP.DESBDESCR
FILE NAME NO. OF RECORDS
READ WRITTEN
TRANSFILE 4
INPUT/2 0
GENIUSFILE _ _ _ _ _ _ _4_ _ _
TOTAL: 4
END SPLIT80, V6 03.10.1979 15.22.25 CPU:2
END 122
*IF NOK.NO
* LISTOUT=COPY 0
\f
CUR.INPUT SEGM. 0 0/0
* DESBDESC=PRINT80 FUNKTION.2 PAPER.2 DESCRIP.DESBDESCR
START PRINT80, V6 03.10.1979 15.22.27
DESBDESCR=PRINT80 FUNCTION.2 PAPER.2 DESCRIP.DESBDESCR
END PRINT80, V6 03.10.1979 15.23.45 CPU:2
END 194
*IF OK.NO
* CLEAR USER DES80LOG
* CLEAR USER JOURNAL
* FINIS
Figure 82.
\f
i
F_O_R_E_W_O_R_D_
First edition: RCSL No 31-D604.
RC850 Asynchronous V.24 Line Drivers, RC850 Serial Printer
Driver, Reference Manual.
Second edition: RCSL No 31-D655.
PI-1 Machine Asynchronous V.24 Line Driver, Reference Manual.
The information given in RCSL No 31-D604 is no longer valid. The
manual is therefore replaced by RCSL No 31-D655.
Ejvind Lynning
A/S REGNECENTRALEN af 1979, November 1981
\f
ii
\f
iii
T_A_B_L_E_ _O_F_ _C_O_N_T_E_N_T_S_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _P_A_G_E_
1. INTRODUCTION .......................................... 1
2. TAsync DRIVER ......................................... 2
2.1 General Description .............................. 2
2.2 Driver Messages and Answers ...................... 2
2.2.1 Initiate Request .......................... 2
2.2.2 Special Initiate Request .................. 5
2.2.3 Transmit Request .......................... 5
2.2.4 Terminate Communication Request ........... 6
2.2.5 Illegal Requests .......................... 6
3. RAsync DRIVER ......................................... 7
3.1 General Description .............................. 7
3.2 Driver Messages and Answers ...................... 8
3.2.1 Receive Request ........................... 8
3.2.2 Illegal Requests .......................... 8
A_P_P_E_N_D_I_X_:
A. REFERENCES ............................................ 9 \f
iv
\f
F_ 1_._ _ _ _ _ _ _ _ _I_N_T_R_O_D_U_C_T_I_O_N_ 1.
The driver described in this manual runs on the PI-1 machine
(ref. 1) implemented on a Z80 microprocessor as part of an
RC700 microcomputer or an RC850 terminal.
The asynchronous V.24 line driver supports character-oriented
full duplex communication with a remote computer through a
communication line attached to the PI-1 machine via the V.24 LINE
interface, possibly through a modem. The driver uses a Z80-SIO
interface chip.
The driver is coded in Z80 assembler language and must be
included in a PASCAL80 system as part of its basic system.
As a matter of fact, in order to provide full duplex communica-
tion, i.e. simultaneous and independent transmit and receive
functions, t_w_o_ drivers service the SIO chip, the T_(ransmit)-
A_s_y_n_c_(hronous) driver and the R_(eceive)A_s_y_n_c_(hronous) driver.
Both drivers enter the c_o_m_m_u_n_i_c_a_t_i_o_n_ _p_h_a_s_e_ following an
'Initiate' request issued to the TAsync driver, and similarly
both leave the communication phase following a 'Terminate Com-
munication' request which is also issued to the TAsync driver.
In the 'Initiate' request a number of parameters are given to de-
termine details of the mode of communication, including transmis-
sion speed, number of bits per character, etc.
In the communication phase the two drivers operate independently.
When the drivers are not in the communication phase they are said
to be in the idle phase.
The driver interfaces are specified in accordance with the gen-
eral conventions for driver interfaces in PASCAL80 systems (ref.
2). Note that the TAsync and RAsync drivers each have their own
request semaphore.
\f
F_ 2_._ _ _ _ _ _ _ _ _T_A_s_y_n_c_ _D_R_I_V_E_R_ 2.
2_._1_ _ _ _ _ _ _ _G_e_n_e_r_a_l_ _D_e_s_c_r_i_p_t_i_o_n_ 2.1
The TAsync driver supports transmission of characters either in
single byte or block mode. It also handles initiation and termin-
ation of the communication phase of the operation of the asyn-
chronous line driver pair.
Regardless of the number of bits per transmitted character, each
character is taken from one byte of the data buffer, right jus-
tified, i.e. from the least significant bit positions, as many as
needed.
In the communication phase the TAsync driver always maintains RTS
(RequestToSend)=1 on the V.24 interface, and therefore expects
CTS (ClearToSend)=1. When CTS=0 occurs, transmission of charac-
ters stops immediately, and if the condition is persistent (lon-
ger than a time-out period specified in the 'Initiate' request)
during the processing of a 'Transmit' request, the request is
aborted, i.e. returned with a result indicating 'CTS time-out'.
2_._2_ _ _ _ _ _ _ _D_r_i_v_e_r_ _M_e_s_s_a_g_e_s_ _a_n_d_ _A_n_s_w_e_r_s_ 2.2
2_._2_._1_ _ _ _ _ _I_n_i_t_i_a_t_e_ _R_e_q_u_e_s_t_ 2.2.1
An 'Initiate' request causes the TAsync driver to
- program the write registers of the relevant channel of the SIO;
this includes setting DTR=1 and RTS=1,
- wait for an indication of connection, either CTS=1 or DCD
(DataCarrierDetected)=1 is acceptable,
- start the RAsync driver.
After successful processing of an 'Initiate' request the driver
pair is in the communication phase, i.e. ready to process trans-
mit and receive requests.
\f
c_o_d_i_n_g_: u1 = 1 x 4 + 0
Parameters determining the communication mode are contained in
the data buffer which is locked to the type:
comm _mode _type= RECORD
char _format: byte;
(* nobc: 0..3; (* bits 6-7 *)
unused: 0..3; (* bits 4-5 *)
nosbc: 1..3; (* bits 2-3 *)
parity: (odd, even); (* bit 1 *)
parity _enable: BOOLEAN (* bit 0 *) *)
CTS _timeout: 0..255;
transmission _speed: 0..6
END;
The effect of the communication mode parameters is described in
the following paragraphs:
c_h_a_r_a_c_t_e_r_ _f_o_r_m_a_t_ (char _format field)
The value of nosbc determines the number of stop bits added to
each transmitted character as follows:
1 1 stop bit/character
2 1 1/2 stop bit/character
3 2 stop bits/character
At least one stop bit is always excepted in received characters.
If parity is enabled (parity _enable is TRUE), received characters
are checked for correct parity and a parity bit is added to each
transmitted character (odd or even parity as indicated by the
parity field). Otherwise received characters are assumed to be
followed immediately by a stop bit, and no parity bit is added to
transmitted characters.
The value of nobc determines the number of bits per received or
transmitted character, excluding start, stop, and parity bits:
0 5 bits/character
1 7 bits/character NB
2 6 bits/character NB
3 8 bits/character
\f
C_T_S_ _t_i_m_e_-_o_u_t_ _h_a_n_d_l_i_n_g_ (CTS _timeout field)
The value of CTS _timeout determines the reaction of the TAsync
driver to the condition CTS=0 during the processing of a
'Transmit' request.
If CTS _timeout=0 this condition will cause the driver to wait
(indefinitely) for CTS=1 before transmitting another character.
Otherwise CTS _timeout indicates the CTS time-out period, measured
in basic delay time units (20 msec.).
t_r_a_n_s_m_i_s_s_i_o_n_ _s_p_e_e_d_ (transmission _speed field)
The same speed is used for the receive and transmit functions.
The speed is determined by the value of transmission _speed as
follows:
0 110 bits/sec.
1 300 bits/sec.
2 600 bits/sec.
3 1200 bits/sec.
4 2400 bits/sec.
5 4800 bits/sec.
6 9600 bits/sec.
p_o_s_s_i_b_l_e_ _a_n_s_w_e_r_s_
successful: u2 = 0
After this result is returned the drivers are in the communica-
tion phase.
Initiate timeout : u2 = 3
This result occurs if no indication of connection (CTS=1 or
DCD=1) is received within one second after the driver sets DTR=1.
After this answer the drivers are still in the idle phase.
\f
2_._2_._2_ _ _ _ _ _S_p_e_c_i_a_l_ _I_n_i_t_i_a_t_e_ _R_e_q_u_e_s_t_ (with RTS=0) 2.2.2
This request has the same effect as a normal 'Initiate' request
with the following modification:
After initialization of the SIO chip the driver normally sets
DTR=1 and RTS=1 on the V.24 interface simultaneously. When the
'Special Initiate' request is processed the driver first sets
DTR=1 and RTS=0, and only after an indication of connection does
the driver set RTS=1.
This use of the V.24 signals is intended for control of the LIS
701 line selector box, see ref. 3.
c_o_d_i_n_g_: u1 = 3 x 4 + 0
The parameters are the same as for the normal 'Initiate' request.
p_o_s_s_i_b_l_e_ _a_n_s_w_e_r_s_
As for the normal 'Initiate' request.
2_._2_._3_ _ _ _ _ _T_r_a_n_s_m_i_t_ _R_e_q_u_e_s_t_ 2.2.3
The characters contained in the driver message are transmitted,
cf. the general description of the TAsync driver.
c_o_d_i_n_g_: u1 = sbm x 8 + 2 (sbm = single byte mode)
If sbm = 1, the contents of u3 are transmitted. If sbm = 0, the
bytes to be transmitted are taken from the data buffer in the
standard way, see ref. 2.
p_o_s_s_i_b_l_e_ _a_n_s_w_e_r_s_
successful : u2 = 0
CTS time-out : u2 = 3
\f
2_._2_._4_ _ _ _ _ _T_e_r_m_i_n_a_t_e_ _C_o_m_m_u_n_i_c_a_t_i_o_n_ _R_e_q_u_e_s_t_ 2.2.4
This request is only legal in the communication phase. It causes
the TAsync driver to disable the SIO functions and both drivers
to enter the idle phase. To resume communication an 'Initiate'
request must be issued to the TAsync driver.
c_o_d_i_n_g_: u1 = 2 x 4 + 0
a_n_s_w_e_r_: u2 = 0
2_._2_._5_ _ _ _ _ _I_l_l_e_g_a_l_ _R_e_q_u_e_s_t_s_ 2.2.5
If an unintelligible driver message is received, the TAsync
driver responds with u2 = 4.
A request which is illegal in the present phase, i.e.
- an 'Initiate' request in the communication phase, or
- a transmit, receive, or 'Terminate Communication' request in
the idle phase
is answered with u2 = 1 x 8 + 4.
\f
F_ 3_._ _ _ _ _ _ _ _ _R_A_s_y_n_c_ _D_R_I_V_E_R_ 3.
3_._1_ _ _ _ _ _ _ _G_e_n_e_r_a_l_ _D_e_s_c_r_i_p_t_i_o_n_ 3.1
The RAsync driver is controlled by the TAsync driver with respect
to entering and leaving the communication phase.
In the communication phase the RAsync driver receives all char-
acters arriving on the asynchronous communication line. When
DCD=0 (no carrier signal) on the V.24 interface characters are
not received.
Received characters are obtained from the driver by issuing 'Re-
ceive' requests. 'Receive' requests are processed, i.e. used as
receive buffers, in the order they arrive. The driver does not
return a non-full buffer until an additional buffer has been re-
ceived. Therefore double buffering should be used to avoid loss
of incoming characters as well as unnecessary waiting when char-
acters are already available. Each 'Receive' request is answered
as soon as one of the following conditions hold:
- at least one character has been received into the buffer, and
at least one more 'Receive' request has been received;
- the buffer is full and an additional character has been recei-
ved. This character and any subsequent characters arriving be-
fore the next 'Receive' request are lost;
Each received character is placed in one byte of the data buffer,
right justified. If parity is enabled and the number of bits per
character is less than 8 the parity bit is included in each char-
acter byte. If the number of bits per character including parity
is less than 8, the unused high order bits of each byte will be
1. A character received with parity or framing error is replaced
by the value 128.
\f
3_._2_ _ _ _ _ _ _ _D_r_i_v_e_r_ _M_e_s_s_a_g_e_ _a_n_d_ _A_n_s_w_e_r_s_ 3.2
3_._2_._1_ _ _ _ _ _R_e_c_e_i_v_e_ _R_e_q_u_e_s_t_ 3.2.1
c_o_d_i_n_g_: u1 = 1
The data buffer is used according to convention, see ref. 2.
p_o_s_s_i_b_l_e_ _a_n_s_w_e_r_s_:
successful: u2 = 0
The message contains one or more received characters as indicated
by next, see ref. 2.
not processed : u2 = 1
This answer is used for requests which are queued when the driver
leaves the communication phase. The contents of the data message
are undefined.
overrun : u2 = 2
The message is full of received characters, i.e. next=last+1. At
least one character has been lost.
hard overrun: u2 = 2 x 8 + 2
An overrun occured in the SIO. Normally this will not be
possible.
3_._2_._2_ _ _ _ _ _I_l_l_e_g_a_l_ _R_e_q_u_e_s_t_s_ 3.2.2
If an unintelligible driver message is received, the RAsync
driver answers with u2 = 4.
\f
F_ A_._ _ _ _ _ _ _ _ _R_E_F_E_R_E_N_C_E_S_ A.
1 RCSL 31-D615:
The PI-1 Machine, Reference Manual
2 RCSL 31-D617:
PASCAL80 Driver Conventions
3 RCSL 31-D619:
LIS 701, V.24 Line Selector
\f
F_
\f
i
T_A_B_L_E_ _O_F_ _C_O_N_T_E_N_T_S_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _P_A_G_E_
1. INTRODUCTION ........................................... 1
2. DRIVER MESSAGES AND ANSWERS ............................ 2
2.1 Initiate Request .................................. 2
2.2 Transmit Request .................................. 4
2.3 Wait Ready Request ................................ 4
2.4 Illegal Requests .................................. 5
A_P_P_E_N_D_I_X_:
A. REFERENCES ............................................. 7
\f
ii
\f
1_._ _ _ _ _ _ _ _ _I_N_T_R_O_D_U_C_T_I_O_N_ 1.
This manual describes the PI-1 machine (ref. 1) printer driver
which is intended for use on RC700 and RC850. The printer driver
supports a serial printer connected to the RC700 or RC850 via the
V.24 PRINTER interface using asynchronous transmission at speeds
ranging from 110 to 9600 bps. The interface is handled by means
of the Z80-SIO chip.
The printer driver incorporates RC standard use of V.24 signals
as follows:
DCD indicates printer online/offline (1/0)
CTS indicates printer busy/not busy (0/1).
A number of parameters determining details of the mode of commu-
nication are given in an 'Initiate' request, including transmis-
sion speed, number of bits per character etc.
Characters are transmitted either in single byte or buffer mode.
The driver is transparent with respect to character codes; in
particular it gives no special treatment to CR, LF and FF. Re-
gardless of the number of bits per character, each transmit
character is taken from one byte of the data buffer (or single
byte), right justified, i.e. using the least significant bit
positions.
The driver supports timeout on the printer busy condition, accor-
ding to a timeout parameter supplied in the 'Initiate' request.
The printer driver is coded in Z80 assembly language and must be
included in a PASCAL80 system as part of its basic system.
The driver interface is specified in accordance with the general
conventions for driver interfaces in PASCAL80 systems (ref. 2).
\f
F_ 2_._ _ _ _ _ _ _ _ _D_R_I_V_E_R_ _M_E_S_S_A_G_E_S_ _A_N_D_ _A_N_S_W_E_R_S_ 2.
2_._1_ _ _ _ _ _ _ _I_n_i_t_i_a_t_e_ _R_e_q_u_e_s_t_ 2.1
The 'Initiate' request is used to specify communication mode
parameters. It must be issued as the first request to the driver
and may subsequently be re-issued any time if the parameters must
be changed.
c_o_d_i_n_g_: u1 = 1x4+0
Parameters are coded in the data buffer which is locked to the
type:
comm _mode _type= RECORD
char _format: byte;
(* nobc: 0..3; (* bits 6-7 *)
unused: 0..3; (* bits 4-5 *)
nosbc: 1..3; (* bits 2-3 *)
parity: (odd, even); (* bit 1 *)
parity _enable: BOOLEAN (* bit 0 *) *)
CTS _timeout: byte;
transmission _speed: 0..6
END;
The effect of the communication mode parameters is described in
the following paragraphs:
c_h_a_r_a_c_t_e_r_ _f_o_r_m_a_t_ (char _format field)
The value of nosbc determines the number of stop bits added to
each transmitted character as follows:
1 1 stop bit/character
2 1 1/2 stop bit/character
3 2 stop bits/character
At least one stop bit is always expected in received characters.
\f
If parity is enabled (parity _enable is TRUE) a parity bit is
added to each transmitted character (odd or even parity as indi-
cated by the parity field). Otherwise no parity bit is added.
The value of nobc determines the number of bits per received or
transmitted character, excluding start, stop and parity bits:
0 5 bits/character
1 7 bits/character NB
2 6 bits/character NB
3 8 bits/character
The normal value of char _format for RC printers (7 bits/charac-
ter, even parity) is 79.
C_T_S_ _t_i_m_e_-_o_u_t_ _h_a_n_d_l_i_n_g_ (CTS _timeout field)
The value of CTS _timeout determines the reaction of the printer
driver to the condition CTS=0 (printer busy) during the process-
ing of a 'Transmit' request.
If CTS _timeout=0 this condition will cause the driver to wait
(indefinitely) for CTS=1 before transmitting another character.
Otherwise CTS _timeout indicates the CTS time-out period, measured
in seconds.
t_r_a_n_s_m_i_s_s_i_o_n_ _s_p_e_e_d_ (transmission _speed field)
The speed is determined by the value of transmission _speed as
follows:
0 110 bits/sec.
1 300 bits/sec.
2 600 bits/sec.
3 1200 bits/sec.
4 2400 bits/sec.
5 4800 bits/sec.
6 9600 bits/sec.
p_o_s_s_i_b_l_e_ _a_n_s_w_e_r_: u2 = 0
\f
2_._2_ _ _ _ _ _ _ _T_r_a_n_s_m_i_t_ _R_e_q_u_e_s_t_ 2.2
The characters contained in the driver message are transmitted,
cf. the general description given in chapter 1.
c_o_d_i_n_g_: u1 = 8*sbm+2 (sbm means single byte mode)
If sbm=1 the contents of u3 are transmitted as one character. If
sbm=0 (buffer mode) the characters to be transmitted are taken
from the data buffer in the standard way (ref. 2).
p_o_s_s_i_b_l_e_ _a_n_s_w_e_r_s_
successful: u2 = 0
busy timeout: u2 = 0*8+3
offline: u2 = 1*8+3
If a 'Transmit' request is aborted because of timeout or printer
offline, next (ref. 2) will indicate how many characters were
transmitted before the abort.
2_._3_ _ _ _ _ _ _ _W_a_i_t_ _R_e_a_d_y_ _R_e_q_u_e_s_t_ 2.3
This request may be issued to wait for the printer to get ready
after a 'Transmit' request abort.
c_o_d_i_n_g_: u1 = 0
u3 = max. waiting time in seconds, 0 means indefinite
p_o_s_s_i_b_l_e_ _a_n_s_w_e_r_s_
successful: u2 = 0 (DCD=1, CTS=1)
busy timeout: u2 = 0*8+3 (DCD=1, CTS=0)
offline timeout: u2 = 1*8+3 (DCD=0, CTS=0)
\f
2_._4_ _ _ _ _ _ _ _I_l_l_e_g_a_l_ _R_e_q_u_e_s_t_s_ 2.4
If an unintelligible driver message is received the printer
driver answers with u2=4.
\f
F_
\f
F_ A_._ _ _ _ _ _ _ _ _R_E_F_E_R_E_N_C_E_S_ A.
1 RCSL No 31-D615:
The PI-1 Machine, Reference Manual
2 RCSL No 31-D617:
PASCAL80 Driver Conventions
\f
F_
\f
«eof»