|
|
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: 112640 (0x1b800)
Types: TextFile
Names: »D77«
└─⟦a2495fc4f⟧ Bits:30005867/disk10.imd Dokumenter (RCSL m.m.)
└─⟦this⟧ »D77«
\f
F_ 1_._ _ _ _ _ _ _ _ _I_N_T_R_O_D_U_C_T_I_O_N_ 1.
This manual describes a system for basic handling of files on
flexible discs on the RC8000 family of computers, using the
flexible disc stations RC3650 or RC3751.
A number of standard ALGOL procedures, intended for use from an
ALGOL program, have been created, which allows the user within
the ALGOL system to handle files and I/O on a flexible disc in a
way similar to all other peripheral units.
Chapter 2 contains a brief description of the diskette as a
datamedium, handling of it and the diskette stations RC3650 and
RC3751.
Chapter 3 contains a description of the ALGOL procedures.
Furthermore som system formats are mentioned.
Chapter 4 contains a guide in using the system under various
operating systems.
Chapter 5 contains references and standards.
The system follows international and widely used standards.
For detailed information of formats and contents and deviations
from standards to the references given and the reference standard
working paper added as appendix.
This manual is not a textbook in general file handling nor a
course of advanced use of flexible discs, but merely a first
basic description of the basic tools for file handling on a
flexible disc. However, the appendix and references given will
provide the advanced user with sufficient information which might
inspire to develop more advanced strategies for private use.
\f
F_ 2_._ _ _ _ _ _ _ _ _B_R_I_E_F_L_Y_ _A_B_O_U_T_ _T_H_E_ _F_L_E_X_I_B_L_E_ _D_I_S_C_ _A_S_ _A_ _D_A_T_A_M_E_D_I_U_M_ 2.
A diskette, also called flexible disc or 'floppy disc' is a thin
(round) disc enclosed in a protective squareshaped plastic jacket
about 20*20 cm (8*8 inch).
When used the diskette is, together with the jacket, inserted in
the flexible disc station, which might be an RC3650 or an RC3751.
The diskettes are available in 6 formats presently: single- or
doublesided, each with 3 different formats: 128/256/512 charac-
ters per sector (physical record). The RC3650 model is only ca-
pable of handling one format: one sided, 128 ch/sector format.
The RC3751 model is capable of handling all 6 formats. The dif-
ferent formats are noted physically on the diskette and cannot be
altered dynamically at (high level) runtime. The diskettes can be
bought preformatted, or formatted/reformatted on installation-
level by using e.g. the formatting program mentioned in ref. 7.
Knowledge of the physical organization of the diskette will be of
value in the following.
A d_i_s_k_e_t_t_e_ is organized in 77 t_r_a_c_k_s_ (on rotation) on each s_u_r_-
f_a_c_e_ of 26/15/8 s_e_c_t_o_r_s_ of 128/256/512 c_h_a_r_a_c_t_e_r_s_ per sector,
apart from track 00 which is always organized with 128 characters
per sector.
A doublesided diskette then has 52/39/16 sectors on a pair of
tracks (called a c_y_l_i_n_d_e_r_).
In track 00 (cylinder 00 for doublesided) the organization of the
v_o_l_u_m_e_ (the diskette) is noted in sector No 7 (6 if counted from
0), see contents of volumelabel in appendices B and C.
Sector 8 to 26 (8 to 52 on doublesided) are able to contain each
one f_i_l_e_h_e_a_d_e_r_l_a_b_e_l_, describing each one datafile located on the
d_a_t_a_t_r_a_c_k_s_ (datacylinders) 1 to 74. For the format and contents
of the fileheaderlabels, see appendices B and C. The two last
tracks/cylinders are reserved for a_l_t_e_r_n_a_t_i_v_e_ _t_r_a_c_k_s_, i.e. up to\f
two tracks/cylinders may be damaged and replaced. The replacing
which cannot be performed at high level runtime, is performed
e.g. by use of ref. 7 by moving the logical number of all suc-
ceeding tracks to the next higher numbered track and then noting
the bad track numbered in the e_r_r_o_r_m_a_p_ located in sector 5 (4 if
counted from 0) on track 0. If recognizing a track which after
some time has become bad, save the data on the diskette into an-
other medium (e.g. another diskette) and send the bad discette to
your installating department/operator in order to perform the bad
track replacing. Afterwards the original data can be reloaded if
wanted and hereafter the system will automatically take the re-
placement into account.
Furthermore, a single record within a sector can be erased for
handling of this, see section 3.4.
When the diskette is read or written, datatransfer will be made
with or without character conversion. In model RC3650 this de-
pends on whether the system was originally configurated with a
conversion table or not, in RC3751 this table can be turned on or
off dynamically at runtime.
The implementation of the system has followed the widely used
ECMA/ISO standard, bent towards the IBM 3740 standard, so that
data exchange and operation conventions to a very high degree are
compatible with installations using these standards.
In all we have, from the programmer's point of wiew that flexible
disc is a datamedium which can hold up to 19 files (45 on double-
sided) holding up to approximately 1/4 M characters (1/2 M char-
acters for doublesided). By means of the ALGOL procedures offered
in this manual, the flexible disc can be operated, read and writ-
ten compatible with internationally widely used standards, here-
by permitting a high degree of data interchangeability.
A few operational notes:
- The diskette must be inserted in this way: if you hold it in\f
front of you, so that you are able to read the front de-
scription on the jacket, take it in the upper edge and in-
sert it in the device, so that the front description turns
away from the write protect lamp. Push until a gentle click
is heard, and close the gate gently with another click.
- If the write protect lamp has been lit, the diskette will be
write protected by hardware. Writing can be allowed by push-
ing the button, so that the lamp is not lit.
- Store the diskette carefully, preferably in both a dust
cover and a box, never let it be exposed to extreme tempera-
tures, never let it lie in the sun, never let it get wet,
and try to let smoke, sweatty fingers, coffeecups and the
like stay out of its life (which otherwise will soon be end-
ed).
\f
F_ 3_._ _ _ _ _ _ _ _ _D_E_S_C_R_I_P_T_I_O_N_ _O_F_ _T_H_E_ _F_L_E_X_I_B_L_E_ _D_I_S_C_ _H_A_N_D_L_I_N_G_ _A_L_G_O_L_ _P_R_O_C_E_D_U_R_E_S_ 3.
A system for file creation and handling on flexible discs (also
called floppy discs or diskettes) on the RC8000 family of com-
puters within their ALGOL system.
The system distinguishes between five phases in the handling of a
flexible disc and a file on it.
a) the mounting of a flexible disc
b) the connection of a file
c) reading from or writing into the file
d) the termination of the use of the file
e) the releasing of the flexible disc
As all other peripheral units, flexible discs are handled by
means of zones. On its first track a flexible disc contains a
catalog of labels, defining the contents of the disc. In order to
handle the flexible disc in an orderly manner according to its
labels, the information that can be held in a zone descriptor is
not sufficient. The user must therefore supply a part of the zone
buffer to be used by the system. This part is at present 33
double words, i.e. 132 halfwords.
3_._1_ _ _ _ _ _ _ _D_e_c_l_a_r_a_t_i_o_n_ _o_f_ _t_h_e_ _Z_o_n_e_ 3.1
A zone to be used by this system is declared as follows:
zone flop (33+blocklength*shares,shares,blockprocedure).
The block procedure is supplied by the user, and it may be called
during user's I/O as described in chapter 4.
Transport-errors during identification of volumes and files are
handled directly by the system itself.
The surplus-length of 33 double words in the zone buffer is used
for various purposes by the system. It is possible for the user\f
to peep into this information as described in chapter 3, but he
is warned that the whole system may collapse if he accidentally
disturbs the information stored here.
3_._2_ _ _ _ _ _ _ _M_o_u_n_t_i_n_g_ _a_n_d_ _I_d_e_n_t_i_f_i_c_a_t_i_o_n_ _o_f_ _a_ _F_l_e_x_i_b_l_e_ _D_i_s_c_ 3.2
According to ref. 1 a Volume Identifier consists of 6 so-called
"a" characters. In order to handle a flexible disc within the
present system, its Volume Identifier must consist of 1 to 6
letters or digits, supplemented with spaces or NUL-characters to
the right.
Within the RC8000 system all letters in Volume Identifiers are
capital letters, but in order to reduce confusion, capital let-
ters and small letters are handled alike. The RC8000 monitor will,
as an identifier for a peripheral process, accept a small letter
followed by up to 10 small letters or digits.
As a Volume Identifier may consist of digits alone, the ident-
ifier of the peripheral process is composed of the prefix "fd0"
followed by the volume identifier, where capital letters are con-
verted to small letters.
E_x_a_m_p_l_e_ _1_:
A program wanting connection with the volumes:
471111, DH4711 and NILFIS
will communicate with the rest of the system with messages
concerning:
fd0471111, fd0dh4711 and fd0nilfis
respectively.
\f
Two procedures for identification of a flexible disc exist. They
have the following implied procedure heads:
integer procedure flxlabel (flopz,vol _id,owner _id);
zone flopz ;
string <*max 6 chars*> vol _id ;
long array <*min declared 1:3*> owner _id ;
and
integer procedure flxmount (flopz,vol _id,owner _id);
zone flopz ;
string <*max 6 chars*> vol _id ;
long array <*min declared 1:3*> owner _id ;
The procedures test the existence of and try to reserve a peri-
pheral process of the name of <:fd0:> con vol _id. If the process
does not exist or if it cannot be reserved a parent message,
requesting the disc to be mounted, is issued.
The procedure flxlabel then creates a Volume label. The Volume
Identifier field is set equal to the max 6 first characters of
the string parameter possibly supplemented with spaces. Small
letters are converted to capital letters. The contents of the
Owner Identifier field in the label (14 characters) are set ac-
cording to the array owner _id. This is done by taking the bytes
with field indices 1 to 9 inclusive plus the leftmost 4 bits of
byte 10 and transfer them uncritically. The Volume Identifier
label is then transferred to sector 7 on track 0. The sectors 8
to 26 are filled with empty file labels. Now flxlabel continues
as flxmount after successful identification of a volume.
The procedure flxmount reads sector 7 of track 0 on the flexible
disc. If the sector can be read, and if there is coincidence be-
tween the Volume Identifier and the string parameter, the mount-
ing is considered to be successful. In any case the contents of
the Owner Identification Field are transferred to the owner _id
array, supplemented with 1 NUL character.
\f
Now flxmount and flxlabel continue by dividing the zone buffer
between the shares. First 132 halfwords are taken for internal
purposes. The remaining part is divided evenly between the
shares. A possible remainder is left unused.
Then the zone state is set to 8, i.e. open but not positioned and
the procedure returns with the value +1 if the mounting was suc-
cessfully carried out and -1 otherwise.
3_._3_ _ _ _ _ _ _ _I_d_e_n_t_i_f_i_c_a_t_i_o_n_ _a_n_d_ _C_o_n_n_e_c_t_i_o_n_ _o_f_ _F_i_l_e_s_ _o_n_ _a_ _F_l_e_x_i_b_l_e_ _D_i_s_c_ 3.3
According to ref. 1, files on a flexible disc are described by
means of File Header Labels located on track 0 of the disc, where
the sectors, apart from the first 7, can hold each one filede-
scriptor, a fileheader for datafiles located on the datatracks on
the rest of the diskette. The File Identifier consists of 12
characters. The present system will accept any character string
as a File Identifier, but in order to minimize confusion, the
system does not distinguish between capital and small letters.
Two procedures for connection of files exist. They have the fol-
lowing implied procedure heads:
integer procedure flxset (flopz,file _id,size);
zone flopz ;
string <*max 12 characters*> file _id ;
integer size ;
and
integer procedure flxopen (flopz,file _id,rel _pos);
zone flopz ;
string <*max 12 characters*> file _id ;
integer rel _pos ;
The procedure flxset is intended for creation of new files on a
flexible disc, it may also be used for re-use of existing files.
The procedure flxopen is used for connection to an existing file.\f
Both procedures require that the zone state is 8, i.e. after
either flxlabel, flxmount or flxclose. In case of success they
leave the zone in state 0, i.e. open and positioned.
Flxset proceeds as follows: the fileheaders on cylinder 0 are
searched until either a File Header Label with file _id as File
Identifier or a sector with a File Identifier field filled with
spaces or NUL-characters is found. If neither an empty File
Identifier nor a File Identifier corresponding to the file _id
parameter can be found, the procedure returns with the value -1
and no connection has been made, i.e. the zone state is unchang-
ed.
If an empty File Identifier is found, a new File Header Label is
created. The following fields are set:
The Label Identifier is set to HDR1 (note the deviation
from ref. 1).
The File Identifier is set according to the file _id
parameter. It may be padded with
spaces. All small letters are writ-
ten as capital letters, however.
The Record Length is set equal to the length of the
first share measured in characters,
but not more than a single sector
is able to contain.
The Record Format is indicated by F.
The Block Length is set equal to the Record Length.
The BOE is set to the sector immediately
after the EOE field of the pre-
ceding File Header.
The EOE is set so that a file of the wanted
size is created. If the EOE exceeds\f
the last track on the diskette,
this track is indicated in EOE.
I.e. the maximum space available
for a file on a volume can be re-
quired by asking for a large size.
However, do not ask for a size
greater than 1,000,000 sectors.
The Volume Sequence Number is set to 00.
The Creation Date is set to 01001, i.e. the first day
of year one.
The Offset is set to 00000.
The Expiration Date is set to 02001, i.e. one year
after the creation.
The EOD is set equal to the BOE.
If a field with the searched File Identifier exists, only the
EOE, Creation Date, Offset, Expiration Date and EOD fields are
set. The maximum upper value of the EOE field will not exceed the
value already found in the Label. The other fields are set as
above.
The label created as above will n_o_t_ be written on the flexible
disc. It will remain in core as a picture until the use of the
file is terminated.
The return value of flxset tells how many sectors were actually
created. The logical position of the zone will be just before
BOE.
The procedure flxopen searches the fileheaders on cylinder 0,
until either a File Header Label with the searched file _id as
File Identifier is found (this is considered to be a success) or
space filled File Identifier field is found. In case of success
the procedure will connect the zone to the file and set the logi-\f
cal position according to the value of the rel _pos parameter:
If rel _pos is < 0 the logical position will be just after EOD
(Note: not EOE).
If rel _pos is >_ 0 the logical position will be just before the
BOE + as many sectors as given by rel _pos, taking cylinder
changes into consideration.
This means that the first sector in the extent has rel _pos = 0,
the second has rel _pos = 1 etc.
The value returned by flxopen is -1 if a label cannot be found.
Otherwise, if the logical position is before EOD, the return
value of flxopen is equal to the number of sectors between the
logical position and just after EOD, else the value is equal to
the number of sectors between the logical position and just after
EOE. This last number may well be <_ 0, if the value of rel _pos >_
the size of the file.
Though flxopen is intended for opening to a named datafile, it is
possible to open to the index track 00 by opening to an empty
name, i.e. flxopen (flopz, <::>, 7) will open to the indextrack
and position to the first fileheaderlabel (which has rel _pos 7).
The fileheader can now be read, e.g. by means of inrec6, see
example 6. In order to position to the first fileheaderlabel, the
call flxopen (flopz, <::>, -1) could also be used.
After opening and positioning, the file label information is lo-
cated in the zone-buffer. By means of a getzone6-setzone6 call,
it may be inspected.
The inspection may be performed if record base (ia(14) of
getzone6) is set equal to base buffer area (ia(19)) and record
length (ia(16)) is set equal to 62. If you set a larger record
length, e.g. 132 you may damage valuable system information, and
the whole system may collapse.
\f
Now field indices 1 to 8 contain the first 12 characters of the
Volume label and field indices 9 to 62 contain the file header
label.
3_._4_ _ _ _ _ _ _ _T_h_e_ _U_s_e_ _o_f_ _t_h_e_ _F_i_l_e_ 3.4
After successful opening by means of flxopen or flxset, the share
length and the block length given in the file header label are
tuned to each other, so that each share has a size measured in
number of characters so that blocklength <_ share size <_ block
length + 2, and that the share size covers an even number of
bytes. Note that if flxset has been used, blocklength is divisib-
le by 3 for blocklengths less than the sectorlength. (The sector-
length is not divisible by 3).
Now the zone may be used by the record handling procedures
inrec6, outrec6, invar, outvar, etc. or the character handling
procedures read etc. or write etc.. If the flexible disc is con-
nected via an ISO to EBCDIC conversion in the front end processor
of the RC4000 or RC8000 or the same conversion in the RC6000, on-
ly the character handling procedures should be used.
When transferring data corresponding to a whole sector use/ask
for a number of words which can hold the whole sector/the rest of
the sector, do not use a greater number of words than necessary.
I.e. when transferring e.g. a whole sector of 128 characters, use
e.g. inrec6(z,86)/outrec6(z,86) corresponding to a transfer of
129 characters. The system will automatically cut down - that is
by input 128 + an undefined character are delivered, by output
only the first 128 characters are used.
During transfers certain transport errors may occur. In case of
transport errors, the system will warn the user by calling his
block procedure in the usual way. If the block procedure returns
through its final end, the action of the system will depend on
the returned value of the b-parameter.
\f
If b=0 on return, an input block (sector) will simply be dropped,
and the system will resume reading from the next sector. During
output, b=0 signals that output should be continued at the next
sector, beginning with the present block.
If b>0 on return, signals that a transfer of the block has been
simulated by the block procedure. During output this means that a
block will be dropped. During input the defect block will be sub-
stituted by the block created by the block procedure.
Certain transport errors are handled directly by the system and
will not call the user's block procedure.
These are:
Intervention where the system will send appropriate parent
messages so that the disc is remounted.
Stopped internal process, where the system simply will restart
the transport at the appropriate position.
No write enable during output where the system will send an
appropriate enable message to the parent.
After an intervention, the system will if possible check that the
correct disc is still mounted. This is not possible if flxmount
returned with the value -1 signalling that the volume label was
not appropriate.
Other bits may be handled by the user's blockprocedure, as norm-
ally for error handling. If the bits are not handled properly the
system may give up or break down, as normally in error situations.
The readerror bit should be mentioned. This bit occurs in case
a deleted sector is attempted accessed. (A sector can be noted
erased/deleted by a special 'addressmark' noticed by the hard-
ware, and in some installations the first character of the data
in the sector will be replaced with the letter 'D'.
\f
Nothing need be done, (apart from possibly handling the b-param-
eter) but to the user's information the block procedure is enter-
ed in case of a deleted record/erased sector, where you e.g.
might count (increment the count) the deleted records, before you
return to the flxsystem (by doing nothing further).
3_._5_ _ _ _ _ _ _ _T_h_e_ _T_e_r_m_i_n_a_t_i_o_n_ _o_f_ _t_h_e_ _U_s_e_ _o_f_ _a_ _F_i_l_e_ 3.5
When a file is no longer used, or if the user program wants to go
from e.g. reading to writing, the present use is terminated by a
call of the procedure flxclose possibly followed by new flxopen-
call.
The procedure for terminating the current use has the following
implied procedure head:
procedure flxclose (z, endmark, expiration);
value endmark, expiration ;
zone z ;
integer endmark, expiration ;
The procedure requires that the zone state is 0, 1, 2, 3, 4, 5, 6
or 8. It is blind in zonestate 8 and 4, otherwise it will leave
the zone in zone state 8, opened but not positioned after having
performed its actions, which are:
All pending transfers will be completed. If the zone was per-
forming output (zone state 3 or 6) the current block is also
sent.
Then the present position will be sensed.
Further actions are determined by the endmark parameter.
If endmark contains the bit 1 shift 0, the creation date field
of the file label will be set to current date.
\f
If endmark contains the bit 1 shift 1, the EOD field will be
set to point at the last sector touched during transfers.
If endmark contains the bit 1 shift 2, the EOE field will be
set to point at the last sector touched during transfers.
If endmark contains the bit 1 shift 4, the expiration date
field will be set to a date, which is as many days after the
possibly altered creation date field as given by the value of
the expiration parameter, if it is positive. If the expiration
parameter is <_ 0, the expiration date will be moved as many
days forward as the creation date field might have been.
If the endmark parameter =/ 0, the label held in the zone
buffer will be written back to the flexible disk.
If a flxclose is followed immediately by a flxopen call to the
previously used file, no search for the file-label will be
performed. Do not use setposition for going from e.g. reading
to writing, as this will disturb valuable information in the
zone buffer.
If a flxclose is followed by a flxopen to another named data-
file a search for the name will be performed.
If a flxclose to a named datafile is followed by a flxopen to
the indextrack (or vice versa), it is necessary in order to
avoid confusion in the system to call close (the ordinary
algolclose) and flxmount (with the appropriate parameters as
was originally done) between the flxclose and flxopen calls.
It ought to be mentioned once more that this is not necessary
if you stay on the data tracks (i.e. flxclose is one named
datafile and flxopen is another named datafile).
\f
3_._6_ _ _ _ _ _ _ _R_e_l_e_a_s_i_n_g_ _a_ _F_l_e_x_i_b_l_e_ _D_i_s_c_ 3.6
A flexible disc is released after use by simply calling the stan-
dard procedure close. The rel parameter has the following effect:
false means that the zone is released but the peripheral
process is still reserved.
true means that both zone and peripheral are released. A
suspend message, signalling that the flexible disc
may be used later, is sent to the parent.
false add 1 also means that both zone and peripheral are re-
leased, but a release message, signalling that the
flexible disc is not used later, is sent to the
parent.
3_._7_ _ _ _ _ _ _ _T_h_e_ _M_o_d_e_ _C_o_n_c_e_p_t_,_ _H_a_n_d_l_i_n_g_ _D_i_f_f_e_r_e_n_t_ _D_i_s_k_e_t_t_e_ _F_o_r_m_a_t_s_ 3.7
In this section the possibilities (in a partly program controlled
manner) of handling the different trackformats offered in model
RC3751 are explained.
In order to indicate the different diskette formats mentioned in
chapter 2, and furthermore to define various operation modes on
the diskette, each of the 'flx-procedures' can be extended by a
last mode-parameter, which should be of type integer. The mode
defines partly the physical formatting of the diskette, partly
the present operating mode.
After use of a flx-procedure the present mode will be available
in the zonedescriptor at the usual place and can be examined by
means of getzone.
!!! Never try to alter this mode in the zonedescriptor, it is of
vital importance to the whole system.
\f
The mode parameter can be used in the call of each flx-procedure.
The meaning in each case is explained below in the following sum-
marized explanation of the different modefields.
If the mode parameter is omitted, the fields normally used by the
procedure, will use the default values from these fields.
The mode parameter contains the following fields:
_b_i_t_ _N_o_ _ _ _ _ _ _ _0_-_1_8_ _ _ _1_9_ _ _ _2_0_ _ _ _2_1_ _ _ _2_2_ _ _ _2_3_ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _T_ _ _ _ _D_ _ _ _ _C_ _ _ _ _L_ _ _ _ _A_ _ _ _ _V_ _
which indicate:
T: trackformat, default value 0
0 = 26 sectors of 128 characters per track
1 = 15 sectors of 256 characters per track
2 = 8 sectors of 512 characters per track
Remember that on a double sided diskette there will be a
track on each surface of the cylinder, so that the number
of sectors per cylinder will be 52/30/16 for T=0/1/2.
Other values of T cannot be used.
The T-field corresponds to character position 76 in the
volume label (see appendices B and C for contents).
D: double/single sided, default value 0
0 = one surface on the volume, i.e. single sided
1 = two surfaces on the volume, i.e. double sided
The D-field corresponds to character position 72 in the
volume label (see appendices B and C for contents).
C: conversion, default value 0
0 = data will be tranferred without conversion
1 = data will be transferred with conversion
L: logical start, default value 1
0 = the logical first sector accessible will be the first\f
sector on track 00 (the index- or label-track/cylin-
der). Only track/cylinder 00 can be referred to, the
data tracks cannot.
1 = the logical first sector accessible will be the first
sector on track 01, which is the first data track.
Only the data track/cylinders can be referred to, the
index track/cylinders cannot.
A: The A field (named so arbitrarily) has at present no sig-
nificance whatsoever.
V: verify, default value 0
0 = read and write operations will be performed normally.
1 = read operations will be performed normally, but after
a write operation a check reading of the just written
data will be performed. The check reading will not
transfer any data.
The different fields are used in the different flx-procedures as
follows:
f_l_x_l_a_b_e_l_ (z, name, owner, mode)
The mode parameter is a call parameter in which the TD and
C fields are significant, the others not. By labelling the
diskette, the volume label pos. 76 and 72 defining track
format and surfaces are initialized according to T and D.
Furthermore character conversion in connection with data
transports is switched on/off according to C.
Note: it is not possible physically to change the format-
ting of the diskette, the T and D fields are merely
used to label the diskette correctly according to
the actual physical formatting.
f_l_x_m_o_u_n_t_ (z, name, owner, mode)
The mode parameter is a return parameter in which the TD
and C fields will be significant, the others contain the
default values (i.e. L=1, A=V=0).
\f
By mounting a prelabelled diskette (e.g. labelled by
flxlabel) the physical formatting of the diskette and, as
far as possible, the used alphabet is detected.
The T and D fields are detected from pos. 76 and 72 in the
volume label, indicating the track format and the number
of surfaces. The C field is detected by the following pro-
cedure (carried out in flxmount):
The volume label is read without conversion;
If the letters 'VOL' are recognized (as ISO letters) first
in the label (where they should be present), the C field
will become 0 and conversion will not be used;
If the letters 'VOL' cannot be recognized then the volume
is read once more, this time with conversion;
If now the letters 'VOL' are recognized (as ISO letters)
first in the label, the C field will become 1, and conver-
sion will be used;
If the letters 'VOL' cannot be recognized at all the
mounting will be regarded as unsuccessful, i.e. flxmount
becomes -1 by return.
It should be mentioned here that the same procedure is
used when recognizing the errormap, which should hold the
letters 'ERM' in the first positions. If they cannot be
recognized at all, the diskette will be regarded as free
of bad tracks. The errormap is interpreted in both
flxlabel and flxmount, the conversion is only detected in
flxmount.
Note: the errormap and the rest of the diskette can be
written in different alphabets (with/without con-
version) which will often be the case, because the
errormap may be initialized before the user uses the
diskette the first time and defines the alphabet
(conversion/no conversion).
\f
In each case the conversion detected by the letters
'VOL' will be used all over the diskette.
f_l_x_s_e_t_ (z, name, size, mode)
The mode parameter is a call parameter in which only
the V field will be significant, the others not. (T,
D and C are determined by earlier flx-calls, L is
regarded as 1, i.e. operation on the data tracks).
The value of V determines whether the read-check
after a write operation should be performed or not.
f_l_x_o_p_e_n_ (z, name, pos, mode)
The mode parameter is a call parameter in which the
L and V fields are significant, the others not. (T,
D and C are determined by earlier flx-calls).
The value of V determines whether the read-check
after a write operation should be performed or not.
The L field determines whether the opening is ex-
ecuted to the labels in track 00 or perhaps to a
named file in the data tracks.
Remembering the convention that opening to an empty
name (<::>) will open and position to a sector in
track 00, the convention is now extended, so that:
in order to open and position to a sector in track
00, either the filename must be empty (<::>) or the
L must be 0.
!!! Be careful about using L=0 in flxopen. Datafiles
may be destroyed when writing uncontrolled in
the labels.
On the other hand, when opened correctly to a data
file, the labels in track 0 are physically protected
against overwriting (and reading).
\f
f_l_x_c_l_o_s_e_ (z, marks, exp, mode)
The parameter is a return parameter, in which all
the fields (except A) are significant. The values
indicate the mode the diskette was organized and
operated in since the last flx-call. This mode value
equals the value noted in the zone descriptor.
In short we have: mode: T D C L A V
flxlabel ( , mode); s s s u u u
flxmount ( , m_o_d_e_); s s s d d d
flxset ( , mode); u u u u u s
flxopen ( , mode); u u u s u s
flxclose ( , m_o_d_e_); s s s s d s
where underlined mode means return parameter, non underlined
means call parameter. The table to the right defines the u_s_e_ of
the fields in the mode parameter (if it exists, otherwise all
fields are initially default), it does not define the resulting
mode in the zone descriptor.
s means significant
u means undefined
d means default value
Note: that this mode parameter will only be significant when
using the model RC3751. In model RC3650 the mode parameter
can be totally omitted, a mode parameter, if any, will
neither be used nor touched.
Hint:
In order to try to make your programs written for the model
RC3751 compatible with model RC3650 you might succeed (naturally
depending of how your program actually creates and reacts on the
modeparam) by the following trick (which has been used in the fd-
utilities:
at the top of your program you assign those variables you
intend to use as return parameters to the flxmount (or
perhaps flxclose) procedures to the default values i.e.\f
T=D=A=V=0, C corresponding to whether the RC3650 system is
configurated with a conversion table or not, and L depend-
ing on whether you intend to operate on the label track 00
or the data tracks.
Old programs used on either RC3650 or RC3751 will be directly
compatible as long as the standard formatting diskette single
sided, 26 tracks per sector, is used.
In each case when moving old or new programs to either an RC3650
or an RC3751 installation, they must be recompiled.
3_._8_ _ _ _ _ _ _ _A_ _S_h_o_r_t_ _S_u_r_v_e_y_ 3.8
A few facts of the ALGOL procedures are listed below. For details
see the proper description in sections 3.1-3.7.
D_e_c_l_a_r_a_t_i_o_n_ _o_f_ _Z_o_n_e_
Zone flopz (33+blocklength*shares,shares,blockprocedures)
M_o_u_n_t_i_n_g_ _a_n_d_ _I_d_e_n_t_i_f_i_c_a_t_i_o_n_ _o_f_ _a_ _F_l_e_x_i_b_l_e_ _D_i_s_c_
integer procedure flxlabel (flopz, volid, ownerid, mode);
zone flopz ;
string <*max 6 chars*> volid ;
long array <*14 alfanum chars*> ownerid ;
integer <*optional*> mode ;
creates a new volume label.
integer procedure flxmount (flopz, volid, ownerid, mode);
zone flopz ;
string <*max 6 chars*> volid ;
long array <*14 alfanum chars*> ownerid ;
integer <*optional*> mode ;
checks that correct volume is mounted.
\f
Both: after return: zonestate = 8
procedure value: +1: success
-1: otherwise
I_d_e_n_t_i_f_i_c_a_t_i_o_n_ _a_n_d_ _C_o_n_n_e_c_t_i_n_g_ _o_f_ _F_i_l_e_s_
integer procedure flxset (flopz, fileid, size, mode);
zone flopz ;
string <*max 12 chars*> fileid ;
integer size ;
integer <*optional*> mode ;
creates a new file/reuse of old file.
return value: number of sectors created.
integer procedure flzopen (flopz, fileid, relpos, mode);
zone flopz ;
string <*max 12 chars*> fileid ;
integer relpos ;
integer <*optional*> mode ;
connects the file to the zone, sets logical position
return value: -1: label cannot be found
otherwise a number of sectors
Both: before call: zone state must be 8
after return: zone state 0 in case of success.
T_h_e_ _U_s_e_ _o_f_ _t_h_e_ _F_i_l_e_
The normal ALGOL I/O procedures may be used, i.e. inrec6,
outrec6, ....read, write.... and so on.
On transport errors the blockprocedure is called, by return, sys-
tem action depends on returned b-parameter, details see section
3.4.
\f
T_e_r_m_i_n_a_t_i_o_n_ _o_f_ _t_h_e_ _U_s_e_ _o_f_ _t_h_e_ _F_i_l_e_
procedure flxclose (z, endmark, expiration, mode);
value endmark, expiration ;
zone z ;
integer endmark, expiration ;
integer <*optional*> mode ;
completes transfers, sets various fields, details in section 3.5.
before call: zone state must be 0, 1, 2, 3, 4, 5, 6 or 8.
after return: blind in zonestate 4 and 8, otherwise zonestate = 8.
R_e_l_e_a_s_i_n_g_ _a_ _F_l_e_x_i_b_l_e_ _D_i_s_c_
The ALGOL standard procedure close is used.
Details see section 3.6 and ref. 2.
T_h_e_ _U_s_e_ _a_n_d_ _S_i_g_n_i_f_i_c_a_n_c_e_ _o_f_ _t_h_e_ _M_o_d_e_ _P_a_r_a_m_e_t_e_r_
The belowstanding table defines the use of the mode parameter if
it exists (if not, all fields are initially default), it does not
define the resulting mode in the zone descriptor.
mode: T D C L A V
flxlabel ( , mode); s s s u u u
flxmount ( , m_o_d_e_); s s s d d d
flxset ( , mode); u u u u u s
flxopen ( , mode); u u u s u s
flxclose ( , m_o_d_e_); s s s s d s
s means significant
u means undefined
d means default.
3_._9_ _ _ _ _ _ _ _S_o_m_e_ _S_m_a_l_l_ _E_x_a_m_p_l_e_s_ 3.9
Some simple examples in using the flexible disc ALGOL procedures
are given on the following pages. They do not intend to be and
are not indeed\f
sophisticated at all, but give a simple basic outline for using
the procedures. For more advanced use consult the appendices and
references.
Parts of the examples e.g. the kit-mounting procedure are common
to them all, but executed one after another, you might imagine to
perform:
Example 2: having bought a new floppy-kit, create a volume label
with your ownerid on it, give the wanted mode as
input.
Example 3: you might wish to remove all files, i.e. file header
labels, from the volume, but keep the ownerid in the
volume label, the resulting mode is written out.
Example 4: create a new file and write something in it.
Example 5: read a specific file and write out contents.
Example 6: having forgotten everything about the volume or having
damaged some valuable information you might wish to
inspect and probably repair the volume label or some
file header labels in track 0. The contents of all
labels (sectors) on track/cylinder 00 are written
out.
E_x_a_m_p_l_e_ _2_:
begin <*create your own volume label on the floppy*>
zone flopz(33+1,1,stderror);
long array ownid(1:3);
integer mode;
ownid(1):=long<:myown:>; ownid(2):=ownid(3):=0;
read(in,mode);
flxlabel(flopz,<:471111:>,ownid,mode);
close(flopz,true);
end
\f
E_x_a_m_p_l_e_ _3_:
begin <*clean up the volume, remove all file header labels*>
zone flopz(33+1,1,stderror);
long array ownerid(1:3); integer i,mode; mode:=4;
<*mount correct floppy*>
for i:=flxmount(flopz,<:471111:>,ownerid,mode)
while i<>1 do
begin <*wrong floppy mounted*>
write(out,<:<10>flxmountmode=:>,<<dddddddd>,
mode,<:<10>:>)
close(flopz,true);
system(10,1,<:mount correct floppy:>);
end;
<*now correct floppy has been mounted, create the volume
label*>
write(out,<:<10>flxmountmode=:>,<<dddddddd>,mode,
<:<10>:>);
close(flopz,false);
flxlabel (flopz,<:471111:>,ownerid,mode);
close(flopz,true);
end
E_x_a_m_p_l_e_ _4_:
begin <*mount floppy, create and write a file with
blocklength 84 chars*>
zone flopz(33+14*1,1,stderror);
long array ownerid (1:3); integer i,mode;
real array navn(1:3); mode:=4;
<*mount correct floppy*>
for i:=flxmount(flopz,<:471111:>,ownerid)
while i<>1 do
begin close(flopz,true);
system(10,1,<:mount correct floppy:>);
end;
\f
<*create a file of size 50 sectors*>
navn(1):=navn(2):=navn(3):=real<::>;
movestring(navn,1<:myfirstfile:>;
i:=1; flxset(flopz,string navn (increase(i)),50);
<*write something in the file*>
write(flopz,<:hello:>);
<*terminate the use of the file, set marks*>
flxclose(flopz,1 shift 4+1 shift 1+1 shift 0,10 mode);
write(out,<:<10>flxclosemode=:>,<<dddddddd>,mode,
<:<10>:>);
<*release zone and peripheral*>
close(flopz,true);
end
E_x_a_m_p_l_e_ _5_:
begin <*read in double buffered mode the contents
of a file and display it*>
zone flopz(33+21*2,2,stderror);
long array ownerid (1:3);
real array s(1:1); integer i;
<*mount correct floppy*>
for i:=flxmount(flopz,<:471111:>,ownerid)
while i<>1 do
begin close(flopz,true);
sytem(10,1,<:mount correct floppy:>);
end;
<*open and read the file, write out contents,
see ref.2 for read/write possibilities offered*>
flxopen(flopz,<:myfirstfile:>,0);
readstring(flopz,s,1);
write(out,string s(1));
\f
<*close and release*>
flxclose(flopz,0,0);
close(flopz,true);
end
E_x_a_m_p_l_e_ _6_:
begin <*read/inspect the volume/file header labels*>
zone flopz(33+14*1,1,stderror);
<*as the blocklength should be at least 80 characters*>
long array ownerid (1:3);
integer word,mode,1,j;
integer array field iaf;
procedure outch(t);
value t; integer t;
<*the procedure writes out the last 8 bits of t as a
character and replaces nongraphicals with an'*'*>
begin t:=t extract 8;
if (t<32) or (t=95) or (t>126)
then outchar(out,42)
else outchar(out,t);
end <*outch*>;
<*mount correct floppy*>
for i:=flxmount(flopz,<:471111:>,ownerid,mode);
while i<>1 do
begin close close(flopz,true);
system(10,1,<:mount correct floppy:>);
end
<*open and position to track 00 first sector*>
flxopen(flopz,<::>,0);
<*now treat track 0 as an ordinary file. E.g. read
one sector a time and thereby inspect all labels*>
write(out,<:<10><10>the sectors on track 00,
the first 81 pocharacters::>);
write(out,<:<10>position :>);
write(out,<:1234567890123456789012345678901234567890:>);
write(out,<:12345678901234567890123456789012345678901:>);\f
for i:=1 step 1 until 26*(1+((mode shift(-4)) extract 1))
do
begin inrec6(flopz,54); iaf:=0;
write(out,<:<10>sector no:>,<<ddd>,i,<: ::>);
for j:=1 step 1 until 54//2 do
begin word:=flopz.iaf(j);
outch(word shift (-16));
outch(word shift (-8));
outch(word);
end
write(out,<:::>);
end;
write(out,<:<10end list<10><10>:>);
<*close and release*>
flxclose(flopz,0,0);
close(flopz,true);
end
A_ _G_e_n_e_r_a_l_ _R_e_m_a_r_k_
In some of the examples (2 to 6) the procedure flxclose is used
upon releasing the flexible disc, in others it is not. If we re-
gard the use of the various procedures as a parenthesis structure
(some are used at the beginning of an action, some at the termin-
ation) we have the following headrule:
If used as use as
left/beginning right/termination
flxlabel close (the ordinary ALGOL-close)
flxmount close (the ordinary ALGOL-close)
flxset flxclose
flxopen flxclose
\f
In each case, the very last action is (as normally in ALGOL) to
release the zone/peripheral by means of the normal ALGOL-pro-
cedure close, regardless of whether flxclose has been used or not
in advance.
N_o_t_e_: Not all of the five examples have been programmed general-
ly.
\f
F_ 4_._ _ _ _ _ _ _ _ _D_E_S_C_R_I_P_T_I_O_N_ _O_F_ _U_S_E_ _U_N_D_E_R_ _V_A_R_I_O_U_S_ _O_P_E_R_A_T_I_N_G_ _S_Y_S_T_E_M_S_ 4.
4_._1_ _ _ _ _ _ _ _U_s_e_ _u_n_d_e_r_ _s_ 4.1
The use is quite normal, i.e. the user writes an ALGOL program,
using the procedures described in chapter 3, compiles and runs it
as any other ALGOL-program under s. For a description of s see
ref. 3 and ref. 5.
Note: flexible discs m_u_s_t_ be handled by means of the ALGOL pro-
cedures, described in chapter 3, or by means of the fd-
utilities, see ref. 6. It is e.g. not possible to copy a
file from a flexible disc by means of the standard FP-pro-
gram copy.
4_._2_ _ _ _ _ _ _ _U_s_e_ _u_n_d_e_r_ _B_O_S_S_ _i_n_ _R_C_8_0_0_0_ 4.2
Since BOSS release 14.A a BOSS commando for calling the diskette
has been available.
Depending on whether monitor version 5.1 is present or not the
job using diskette should be run in corelock. If monitor version
5.1 is present it need not be run in corelock, for older monitor
versions consult the INFORMATION LETTER IB770913.
4_._3_ _ _ _ _ _ _ _U_s_e_ _u_n_d_e_r_ _S_O_S_ _a_n_d_ _O_t_h_e_r_ _O_p_e_r_a_t_i_n_g_ _S_y_s_t_e_m_s_ 4.3
See the documentation/guides for these systems.
\f
F_
\f
F_ A_._ _ _ _ _ _ _ _ _R_E_F_E_R_E_N_C_E_S_ A.
1 Reference standard
a) ISO/TC97/SC15 standard proposal (enclosed as appendix).
b) ECMA/TC15/76/1: working paper for a standard on labelling
and file structure for flexible disc cartridges.
c) the IBM diskette general information manual GA21-9182-0.
a), b) and c) are rather similar, a) and b) are identical
and directly used as original working paper for the RC stan-
dard.
2 RCSL No 42-i1278:
ALGOL6, User's Manual
3 RCSL No 31-D476:
RC8000 Monitor Part 7
Operation System s
4 RCSL No 42-i952:
Operating System BOSS, User's Manual and Operator's Manual
5 RCSL No 31-D300:
Monitor 3
6 RCSL No 31-D596:
Utility Programs for Flexible Disc Handling
7 RCSL No 43-GL7853:
The Diskette Formatting Program
\f
F_ B_._ _ _ _ _ _ _ _ _R_E_F_E_R_E_N_C_E_ _M_A_N_U_A_L_ B.
E C M A
E_U_R_O_P_E_A_N_ _C_O_M_P_U_T_E_R_ _M_A_N_U_F_A_C_T_U_R_E_R_S_ _A_S_S_O_C_I_A_T_I_O_N_
Working Paper for a Standard
on
Labelling and File Structure
for
Flexible Disk Cartridges
Prepared by ECMA TC15
January 1976
ECMA/TC15/76/1
\f
1. S_C_O_P_E_
This Standard ECMA-.. specifies a labelling system and file
structure for interchange of data on flexible disc cartridges.
It provides a complete labelling system for sequential files
and a framework within which additional information to deal
with the special requirements of other types of file organiza-
tion can be accomodated.
2. R_E_F_E_R_E_N_C_E_S_
ECMA-6 7-bit Input/Output Coded Character Set
ECMA-35 Extension of the 7-bit Coded Character Set
ECMA-43 8-bit Coded Character Set
ECMA-.. Data Interchange on Flexible Disk Cartridges
ECMA-.. Representation of Numeric Values in Character Strings
for Information Interchange.
3. D_E_F_I_N_I_T_I_O_N_S_
For the purpose of this Standard the following terms have the
meanings indicated. The definition of a term that is used in
an ECMA Standard related to this subject conforms to the usage
in that Standard; the definition of a term that is in common
use in a context related to this Standard conforms to that
common usage.
3_._1_ _V_o_l_u_m_e_
A dismountable physical unit of storage media, i.e. a flexible
disc cartridge. A volume may contain part of a f_i_l_e_, a com-
plete f_i_l_e_ or more than one f_i_l_e_.
A volume may contain s_e_c_t_i_o_n_s_ of one or more files but not
multiple sections of the same file.
3_._2_ _F_i_l_e_
A collection of information consisting of r_e_c_o_r_d_s_ pertaining
to a single subject.
3_._3_ _F_i_l_e_ _S_e_c_t_i_o_n_
That part of a f_i_l_e_ that is recorded on any one v_o_l_u_m_e_.
\f
3_._4_ _E_x_t_e_n_t_
A set of sectors whose addresses form amonotonic ascending
sequence.
Each f_i_l_e_ in a v_o_l_u_m_e_ shall be assigned to one extent.
3_._5_ _R_e_c_o_r_d_
Related data treated as a unit of information. A record may be
recorded in all or a part of a b_l_o_c_k_.
3_._6_ _B_l_o_c_k_
A group of characters written or read as a unit. A block may
be recorded in all or part of a sector or in more than one
sector.
3_._7_ _L_a_b_e_l_
A record, in track 00, sectors 07 to 26 that identifies and
characterizes a v_o_l_u_m_e_ or a f_i_l_e_. A label is not considered to
be part of a f_i_l_e_.
4. T_R_A_C_K_ _O_R_G_A_N_I_Z_A_T_I_O_N_
The track format is described in Standard ECMA-... However, to
facilitate the understanding of this Standard, the following
information is repeated here.
4_._1_ _T_r_a_c_k_ _F_o_r_m_a_t_
Each disc shall be organized as follows:
- 77 tracks, numbered from 00 to 76
- 26 sectors for each track, numbered from 01 to 26
- 128 bytes for each sector, all available for data interchan-
ge.
4_._2_ _D_e_f_e_c_t_i_v_e_ _a_n_d_ _A_l_t_e_r_n_a_t_e_ _T_r_a_c_k_s_
On a flexible disc, a maximum of two defective tracks are
permitted, excluding track 00 that cannot be defective. The
rule governing the use of defective and alternate tracks is
described in Standard ECMA-...
\f
4_._3_ _T_r_a_c_k_ _0_0_
Track 00 is reserved for operating system use. Sectors 07 to
26 contain the labels.
5. V_O_L_U_M_E_ _O_R_G_A_N_I_Z_A_T_I_O_N_
5_._1_ _V_o_l_u_m_e_ _S_t_r_u_c_t_u_r_e_
A flexible disc shall contain files of only one extent, but
these files may appear on more than one volume (multi-volume
files).
5_._2_ _V_o_l_u_m_e_ _E_n_t_r_y_ _P_o_i_n_t_
The volume entry point is track 00, sector 07. It contains the
Volume Label (VOL1, see 6.1).
5_._3_ _L_a_b_e_l_ _P_o_o_l_
The label pool is recorded in track 00, sectors 08 to 26,
containing one File Header Label (---1, see 6.2) each. Each
File Header Label describes one file and the extent on which
it is recorded.
6. F_O_R_M_A_T_S_ _A_N_D_ _C_O_N_T_E_N_T_S_ _O_F_ _L_A_B_E_L_S_
In this Standard "n" means any numeric character from 0 to 9.
An "a" means any numeric, alphabetic or special character of
the centre four columns of the ECMA 7-bit code table, except
those positions where there is provision for alternative
graphic representation.
In sections 6.1 to 6.3 the meaning of the table's headings is
the following:
CP - character position in the label
FIELD NAME - reference name of the field
L - length of the field
CONTENTS - contents of the field
\f
6_._1_ _V_o_l_u_m_e_ _L_a_b_e_l_ _(_V_O_L_1_)_
The Volume Label is recorded on track 00, sector 07, and shall
contain the following information:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_C_P_ _ _ _F_I_E_L_D_ _N_A_M_E_ _ _ _ _ _ _ _ _ _ _ _ _ _ _L_ _ _ _C_O_N_T_E_N_T_S_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1-4 Label Identifier 4 VOL1
5-10 Volume Identifier 6 "a" characters. Permanently
assigned by the owner to
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _i_d_e_n_t_i_f_y_ _t_h_e_ _v_o_l_u_m_e_._ _ _ _ _ _ _ _ _
11 Accessibility 1 "a" character. Indicates re-
strictions on access to the
information on the volume.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _S_p_a_c_e_ _m_e_a_n_s_ _n_o_ _r_e_s_t_r_i_c_t_i_o_n_s_._
12-37 Reserved for future 26 Spaces
_ _ _ _ _ _s_t_a_n_d_a_r_d_i_z_a_t_i_o_n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
38-51 Owner Identifier 14 "a" characters. Indicates
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _t_h_e_ _o_w_n_e_r_ _o_f_ _t_h_e_ _v_o_l_u_m_e_._ _ _ _ _
52-75 Reserved for future 24 Spaces
_ _ _ _ _ _s_t_a_n_d_a_r_d_i_z_a_t_i_o_n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
76 Sector Format 1 "a" character. Space means
that the format defined in
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _E_C_M_A_-_._._ _a_p_p_l_i_e_s_._ _ _ _ _ _ _ _ _ _ _ _ _
77-78 Sector Sequence Code 2 "n" characters. Define the
recording sequence of the
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _s_e_c_t_o_r_s_._ _S_e_e_ _E_C_M_A_-_._._._ _ _ _ _ _ _
79 Reserved for future 1 Space
_ _ _ _ _ _s_t_a_n_d_a_r_d_i_z_a_t_i_o_n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
80 Label Standard Version 1 "a" character. Indicates the
version to the Standard to
which the labels and data
formats in the volume con-
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _f_o_r_m_._ _1_ _m_e_a_n_s_ _t_h_i_s_ _v_e_r_s_i_o_n_._ _
\f
6_._2_._ _F_i_l_e_ _H_e_a_d_e_r_ _L_a_b_e_l_s_ _(_-_-_-_1_)_
The File Header Labels are recorded on track 00, sectors 08 to
26. Each ---1 corresponds to a file. Each DDR1 label shall
contain the following information:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_C_P_ _ _ _F_I_E_L_D_ _N_A_M_E_ _ _ _ _ _ _ _ _ _ _ _ _ _ _L_ _ _ _C_O_N_T_E_N_T_S_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_1_-_4_ _ _L_a_b_e_l_ _I_d_e_n_t_i_f_i_e_r_ _ _ _ _ _ _ _ _4_ _ _ _-_-_-_1_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
5-16 File Identifier 12 "a" characters. Assigned by
the originator to identify
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _t_h_e_ _f_i_l_e_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
17-21 Record Length 5 "n" characters. Specifies
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _t_h_e_ _l_e_n_g_t_h_ _o_f_ _t_h_e_ _r_e_c_o_r_d_._ _ _ _
_2_2_ _ _ _R_e_c_o_r_d_ _F_o_r_m_a_t_ _ _ _ _ _ _ _ _ _ _ _1_ _ _ _F_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
23-27 Block Length 5 "n" characters. Specifies
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _t_h_e_ _l_e_n_g_t_h_ _o_f_ _t_h_e_ _b_l_o_c_k_._ _ _ _ _
28 Reserved for future 1 Space
_ _ _ _ _ _s_t_a_n_d_a_r_d_i_z_a_t_i_o_n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
29-33 Beginning of Extent 5 "n" characters. Specify the
address of the first
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _s_e_c_t_o_r_ _o_f_ _t_h_e_ _e_x_t_e_n_t_._ _ _ _ _ _ _
34 Reserved for future 1 Space
_ _ _ _ _ _s_t_a_n_d_a_r_d_i_z_a_t_i_o_n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
35-39 End of Extent (EOE) 5 "n" characters. Specify
the address of the last
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _s_e_c_t_o_r_ _o_f_ _t_h_e_ _e_x_t_e_n_t_._ _ _ _ _ _ _ _
40 Reserved for future 1 Space
_ _ _ _ _ _s_t_a_n_d_a_r_d_i_z_a_t_i_o_n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
41 Bypass Indicator 1 "a" character. Space indi-
cates that the file is in-
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _t_e_n_d_e_d_ _f_o_r_ _p_r_o_c_e_s_s_i_n_g_._ _ _ _ _ _ _
42 Accessibility 1 "a" character. Indicates re-
strictions on access to the
information in this file. _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _S_p_a_c_e_ _m_e_a_n_s_ _n_o_ _r_e_s_t_r_i_c_t_i_o_n_s_._
43 Write Protect 1 P: the file is not to be
modified
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _S_p_a_c_e_:_ _n_o_ _r_e_s_t_r_i_c_t_i_o_n_s_._ _ _ _ _ _\f
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_C_P_ _ _ _F_I_E_L_D_ _N_A_M_E_ _ _ _ _ _ _ _ _ _ _ _ _ _ _L_ _ _ _C_O_N_T_E_N_T_S_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
44 Data Interchangability 1 "a" character. Space indi-
cates that the file can be
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _u_s_e_d_ _f_o_r_ _d_a_t_a_ _i_n_t_e_r_c_h_a_n_g_e_._ _ _
45 Multivolume Indicator 1 Space: the file begins and
ends in this volume
C: the file is continued
in another volume
L: the file ends in this
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _v_o_l_u_m_e_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
45-47 Volume Sequence Number 2 "n" characters. Specify
the sequence of volumes in a
multi-volume file, from 01
to 99. 00 means that the vo-
lume sequence check is not
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _r_e_q_u_i_r_e_d_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
48-53 Creation Date 6 "a" characters. Identify
the date at which the extent
containing the file has been
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _d_e_f_i_n_e_d_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
5_4_-_5_8_ _O_f_f_s_e_t_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _5_ _ _ _"_n_"_ _c_h_a_r_a_c_t_e_r_s_._ _ _ _ _ _ _ _ _ _ _ _ _ _
59-66 System Code 8 "a" characters. Identify
the system that recorded the
file. The identifiers are
not specified in this Stan-
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _d_a_r_d_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
67-72 Expiration Date 6 "a" characters. Identifies
the date at which the con-
tents of the file is no more
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _v_a_l_i_d_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
73-74 Reserved for future 2 Spaces
_ _ _ _ _ _s_t_a_n_d_a_r_d_i_z_a_t_i_o_n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
75-79 End of Data (EOD) 5 "n" characters. Identify
the address of the first un-
used sector within the ex-
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _t_e_n_t_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
80 Reserved for future 1 Space
_ _ _ _ _ _s_t_a_n_d_a_r_d_i_z_a_t_i_o_n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
\f
7. P_R_O_C_E_S_S_I_N_G_ _O_F_ _L_A_B_E_L_ _F_I_E_L_D_S_
7_._1_ _G_e_n_e_r_a_l_
7_._1_._1_ _C_o_n_t_e_n_t_s_ _o_f_ _L_a_b_e_l_s_
All fields shall be written with contents as specified, on
reading they may be treated as desired.
7_._1_._2_ _U_s_e_ _o_f_ _D_a_t_a_ _i_n_ _L_a_b_e_l_ _F_i_e_l_d_s_
On input, the system may overwrite data found in labels being
processed by that system with new values of that data provided
from other sources. The new values may be supplied before the
file is processed or after the processing has begun, at the
option of the system implementors. However, data found in VOL1
shall not be overlaid or overwritten.
7_._1_._3_ _F_o_r_m_a_t_ _o_f_ _A_d_d_r_e_s_s_e_s_
In label ---1 the addresses of the extents (BOE, EOE) and of
the first free sector within an extent (EOD) shall be expres-
sed as follows:
TTOSS
where: TT is the track number
OSS is the sector number
7_._1_._4_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ _o_f_ _D_a_t_e_s_
In label ---1 the initialization, creation and expiration
dates shall be represented as follows:
space YYDDD
where: YY represents the year ("n" characters)
DDD represents the day within the year (001 to 366)
7_._2_ _V_o_l_u_m_e_ _H_e_a_d_e_r_ _L_a_b_e_l_ _(_V_O_L_1_)_
The volume header label shall be preserved except as specified
below. This does not preclude the rewriting of the label with
the contents unchange.
\f
The volume header label may be changed only if authorized by
the owner, and then only as prescribed by the owner.
7_._2_._1_ _S_e_c_t_o_r_ _F_o_r_m_a_t_ _(_C_P_ _7_6_)_
For general data interchange the sector format defined in
Standard ECMA-.. and described in section 4 of this Standard
shall be used. In this case, this field shall contain a space.
The meaning of characters other than space is not defined in
this Standard.
7_._2_._2_ _S_e_c_t_o_r_ _S_e_q_u_e_n_c_e_ _C_o_d_e_ _(_C_P_ _7_7_-_7_8_)_
This field specifies the order in which the sectors shall be
recorded. This order is specified in Standard ECMA-.. and is
defined by a number from 01 to 13.
7_._3_ _F_i_l_e_ _H_e_a_d_e_r_ _L_a_b_e_l_ _(_-_-_-_1_)_
7_._3_._1_ _E_n_d_ _o_f_ _E_x_t_e_n_t_ _(_E_O_E_)_ _(_C_P_ _3_5_-_3_9_)_
This field specifies the address of the last sector in which
the file defined in the ---1 can be recorded.
7_._3_._2_ _E_x_p_i_r_a_t_i_o_n_ _D_a_t_e_ _(_C_P_ _6_7_-_7_2_)_
A file is regarded as "expired" on a day whose date is equal
to or later than the date recorded in this field. When this
condition is satisfied, the extent can be considered free and
re-used.
7_._3_._3_ _E_n_d_ _o_f_ _D_a_t_a_ _(_E_O_D_)_ _(_C_P_ _7_5_-_7_9_)_
This field defines the next unused sector within the file
extent. Its value can be, at maximum, equal to the address of
the sector following EOE.
8. S_T_R_U_C_T_U_R_E_ _O_F_ _T_H_E_ _D_A_T_A_
8_._1_ _F_i_l_e_s_
For general data interchange the only files permitted are se-
quential files. Multi-volume files are permitted, but each
file can appear only once on each volume. Each file is record-
ed on an extent, and identified by a File Header Label. The\f
space allocated to a file is defined by the Beginning of Ex-
tent (BOE) and End of Extent (EOE) addresses recorded in the
File Header Label of that file. The space used by a file at
any given moment is defined by the BOE and the End of Data
(EOD) addresses of that file. The Multi-volume Indicator
(---1, CP45) and, when applicable, the Volume Sequence Number
(---1, CP 46-47) defines the type and parameters of the file.
8_._2_ _R_e_c_o_r_d_s_ _a_n_d_ _B_l_o_c_k_s_
For general data interchange, only records of fixed lengths
are permitted. This is specified, for each file, in ---1, CP
17-21. The length of the records is not limited by the length
of the sectors.
Records may be grouped into blocks of fixed length. This is
specified, for each file, in ---1, CP 23-27. The length of the
block is not limited by the length of the sector.
Blocks shall always start at the beginning of a sector. The
part of a sector that is not occupied by a block shall be left
empty.
8_._3_ _P_a_d_d_i_n_g_
Whenever it becomes necessary or advisable to extend the
length of a block beyond the end of the last (or only) record
in it, the block shall be padded to the required length by the
use of the character in position 5/14 of the ECMA 7-bit code
table.
\f
F_ C_._ _ _ _ _ _ _ _ _P_R_E_S_E_N_T_ _R_C_ _S_T_A_N_D_A_R_D_ _W_I_T_H_ _R_E_S_T_R_I_C_T_I_O_N_S_ C.
The reference standard is followed rather closely, but not all
proposed fields are used. For comparison we list the present
logical formats used by RC.
volume labels: page 46-48
file header labels: page 49-51
For further details and information of contents of fields compare
with the reference standard enclosed as appendix B.
The user should be aware of the following disadvantages/restric-
tions of present RC system:
- Sector Sequence is always 1 (i.e. the sectors physical se-
quential).
- Multivolume files are not handled by the system, but must be
explicitly handled by the users' program.
- The volume and the files are only write protected by press-
ing the write protect button on the device (so that it is
lit).
- Not all (but to a great functional extent) of the fields in
the labels, proposed by the standard, have been used,
compare the list below with the standard.
- In order to bend towards the IBM 3740 diskette standard, the
following alteration of the original ECMA standard has been
imposed: the file identifier in the file reader labels is
now located in CP6-CP22 (of which the first 12 positions
will be significant, the rest will be regarded as spaces)
and the record length is moved to CP54-CP57.
From the programmers' point of view no restrictions are im-
posed hereby at all, but old diskettes, written by the old
ECMA standard used in releases before january 1978, will\f
seem to have lost the first character of the file ident-
ifier.
\f
F_ V_O_L_U_M_E_ _L_A_B_E_L_
track 00, sector 07
\f
F_
\f
F_
pos72: values different from SP or '2' will be regarded as an SP.
pos76: values different from SP, '1' or '2' will be regardes as
SP.
For model RC3650 CP72 and CP76 are not used, the contents are
always an SP, i.e. model RC3650 only handles single sided 128
characters per sector diskette formats.
In model RC3751 both CP72 and CP76 are used, i.e. model RC3751
handles all 6 formats.
\f
F_ F_I_L_E_ _H_E_A_D_E_R_ _L_A_B_E_L_S_
track 00, from sector 08 one Label in each sector
\f
F_
\f
F_
\f
F_
\f
E_R_R_O_R_M_A_P_
track 00, sector 05
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
char- half- con- fieldname remarks
acters word tents
_ _C_P_ _ _ _ _ _n_o_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1 E
R
M_m_m_ errormap
2 M
P_p_p_ identification
A
_ _5_ _ _ _ _ _ _ _ _ _ _ _ _ _P_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _6_ _ _ _ _ _ _4_ _ _ _ _ _ _S_P_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _s_e_p_a_r_a_t_o_r_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
M_m_m_ 7
first bad cylinder blank if no bad cylinders
P_p_p_ _ _8_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _9_ _ _ _ _ _ _6_ _ _ _ _ _ _ _ _ _ _ _1_._ _c_y_l_._i_d_e_n_t_i_f_i_c_a_t_i_o_n_ _b_l_a_n_k_ _i_f_ _n_o_ _b_a_d_ _c_y_l_i_n_d_e_r_s_ _ _ _
_1_0_ _ _ _ _ _ _ _ _ _ _ _ _ _S_P_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _s_e_p_a_r_a_t_o_r_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
M_m_m_ 11
8 second bad cylinder blank if one or no bad cyl.
P_p_p_ _1_2_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_1_3_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _2_._ _c_y_l_._i_d_e_n_t_i_f_i_c_a_t_i_o_n_ _b_l_a_n_k_ _i_f_ _o_n_e_ _o_r_ _n_o_ _b_a_d_ _c_y_l_._ _
_1_4_ _ _ _ _ _ _ _ _ _ _ _ _ _S_P_ _ _ _s_e_p_a_r_a_t_o_r_ _ _ _ _ _ _ _ _ _ _ _ _ _s_e_p_a_r_a_t_o_r_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
15 10
.
.
.
.
.
_8_0_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
\f
1_._ _ _ _ _ _ _ _ _I_n_d_l_e_d_n_i_n_g_._ 1.
I det følgende beskrives sikkerhedssystemet i LPR-systemet. Ved
sikkerhedssystemet forstås i denne sammenhæng "sikkerhed mod mis-
brug".
Systemet kan deles op i 2 dele, nemlig dels adgangskontrol til
systemet og dels efterfølgende listning af brug og misbrug af
systemet.
2_._ _ _ _ _ _ _ _ _A_d_g_a_n_g_s_k_o_n_t_r_o_l_._ 2.
LPR online programmet kan kun anvendes af personer, der er auto-
riserede, d.v.s kan identificere sig overfor systemet. Man iden-
tificerer sig med et kodeord, i det følgende kaldet en ident. En
ident får adgang til hele systemet eller kun en del af systemet.
Det foregår på den måde, at systemets kommandoer opdeles i grup-
per (kommandogrupper), og en ident bliver autoriseret til n el-
ler flere kommandogrupper.
2_._1_ _ _ _ _ _ _ _A_j_o_u_r_f_ø_r_i_n_g_ _a_f_ _i_d_e_n_t_e_r_ _o_g_ _k_o_m_m_a_n_d_o_g_r_u_p_p_e_r_._ 2.1
Sammenhængen mellem identer, kommandogrupper og kommandoer er
vist i fig. 1. Det ses heraf, at n kommando kun kan tilhøre n
kommandogruppe. En kommandogruppe kan bestå af n eller flere
kommandoer. En ident kan have adgang til n eller flere kommando-
grupper.
Fig. 1. \f
Opdeling af kommandoer i kommandogrupper samt tildeling af kom-
mandogrupper til de enkelte identer sker i kommunen ved hjælp af
programmet "ajourføring af identer mm.". Programmet kan også ud-
skrive lister med kommandogrupper og identer (se bilag F og G).
Oplysningerne opbevares i kodeform i systemregistret, der iøvrigt
indeholder forskellige specielle data om kommunen.
2_._2_ _ _ _ _ _ _ _U_d_s_k_r_i_f_t_ _a_f_ _k_o_n_t_r_o_l_l_i_s_t_e_r_._ 2.2
Medens LPR-online programmet kører, lægges alle henvendelser til
systemet på en fil (logfil). Logningen omfatter den indtastede
kommando med parametre samt dato, klokkeslet og ident. Endelig
markeres for, om kommandoen er tilladt for den pågældende ident.
Fra logfilen kan der udskrives 4 forskellige lister til kontrol
af sikkerhedssystemet.
1. Sikkerhedsrapport (LPR-07)
Denne rapport indeholder alle forsøg på misbrug af systemet,
såvel forsøg på at benytte ikke tilladte kommandoer som forsøg
på at åbne systemet med forbudte identer (se bilag B).
2. Benyttelseskontrol 1 (LPR-08)
Denne udskrift er en totallistning af alle kommandoer, såvel
korrekte som ikke tilladte, der er indtastet og findes i log-
filen. Kommandoerne er udskrevet i kronologisk orden (se bi-
lag C).
3. Benyttelseskontrol 2 (LPR-09)
Udskriftens indhold er helt analogt med Benyttelseskontrol 1,
men listen udskrives sorteret på identer (se bilag D).
\f
4. Benyttelsesstatistik (LPR-10)
Denne statistik viser, hvilke kommandoer en ident har benyttet
og hvor tit. Ikke tilladte kommandoer er markeret (se bilag E).
Udskrifterne skrives med programmet "udskrift fra logfil" og der
kan skrives n eller flere lister, efter behov.
3_._ _ _ _ _ _ _ _ _S_y_s_t_e_m_o_v_e_r_s_i_g_t_._ 3.
Fig. 2
Ovenstående figur viser sammenhængen i sikkerhedssystemet. \f
LPR online programmet (1) kontrollerer med systemregistret, når
skærme åbnes til systemet, at identen findes og, ved alle fore-
spørgsler og transaktioner, at identen må bruge de indtastede
kommandoer. Endvidere skriver programmet alle kommandoer ud på
logfilen.
Programmet "udskrift fra logfil" (2) køres efter behov og kan
udskrive n eller flere af de fire kontrollister.
I programmet "ajourføring af identer m.m" (3) kan der oprettes
nye identer samt foretages ændringer til og sletninger af eksi-
sterende identer. Endvidere kan der oprettes og slettes komman-
doer samt laves kommandogrupper.
4_._ _ _ _ _ _ _ _ _K_ø_r_s_e_l_s_v_e_j_l_e_d_n_i_n_g_._ 4.
De to programmer "udskrift fra logfil" (2 - fig. 1) og "ajourfø-
ring af identer m.m." (3 - fig. 1) kan kun køres af en, der har
kendskab til bestemte identer, som den sikkerhedsansvarlige fast-
sætter. Derfor findes kørselsvejledningen til disse programmer
ikke i den normale driftsvejledning men sammen med den totale be-
skrivelse af sikkerhedssystemet.
Kørslen af de to programmer er lagt således tilrette, at en ikke-
edb-kyndig kan køre dem, når der blot er oprettet en proces.
De identer, der er tale om for at køre programmerne, er dels den
faste ident, som er kommunens specielle ident og som oprettes en
gang for alle, når systemet afleveres, dels den variable ident,
der har en bestemt værdi ved systemets aflevering, men kan ændres
når som helst med programmet "ajourføring af identer mm.".
\f
4_._1_ _ _ _ _ _ _ _U_d_s_k_r_i_f_t_ _f_r_a_ _l_o_g_f_i_l_._ 4.1
Programnavn listlog
Funktion programmet læser logfilen og danner op til 4
udskrifter af kontrollisten.
Kald listlog funk.1.2.3.4
funk.1 = benyttelseskontrol 1
funk.2 = benyttelseskontrol 2
funk.3 = benyttelsesstatistik
funk.4 = sikkerhedsrapport
Dialog indtast den faste ident
indtast den variable ident
Slutsignal Antal records: 99999
end 999
Udskrift lp = copy skriv1 skriv2 skriv3 skriv4
skriv1 = benyttelseskontrol 1
skriv2 = benyttelseskontrol 2
skriv3 = benyttelsesstatistik
skriv4 = sikkerhedsrapport
Forudsætninger online-programmet må ikke køre
log-filen skal findes
der skal være oprettet en proces med
følgende ressourcer:
size: 20000
buf: 8
area: 8
temp disc 400 8
Bemærkninger logfilens indhold skal fjernes og det sker
ved at taste:
i logslet
\f
4_._2_ _ _ _ _ _ _ _A_j_o_u_r_f_ø_r_i_n_g_ _a_f_ _i_d_e_n_t_e_r_ _m_._m_._ 4.2
Programnavn Sikkerhed
Funktion programmet bruges til at oprette, ændre og
slette identer samt til at oprette og ændre
kommandoer og placere dem i kommandogrupper.
Kald sikkerhed
Dialog indtast den faste ident
indtast den variable ident
Den øvrige dialog fremgår af bilag A og er
selvforklarende. Dog skal bemærkes, at der
kan oprettes maksimalt 24 kommandogrupper,
som nummereres fra 1 til 24.
Modul er et tal og for LPR's vedkommende
er modul = 1.
Udskrift der skrives direkte fra programmet.
Slutsignal end 999
Forudsætninger systemregister skal findes.
online programmet må ikke køre.
der skal være oprettet en proces med
følgende ressourcer:
size: 20000
buf: 8
area: 8
temp disc 400 8
\f
A_._ _ _ _ _ _ _ _ _D_i_a_l_o_g_ _i_ _p_r_o_g_r_a_m_m_e_t_ _"_s_i_k_k_e_r_h_e_d_"_._ A.
\f
B_._ _ _ _ _ _ _ _ _S_i_k_k_e_r_h_e_d_s_r_a_p_p_o_r_t_._ B.
\f
C_._ _ _ _ _ _ _ _ _B_e_n_y_t_t_e_l_s_e_s_k_o_n_t_r_o_l_ _1_._ C.
\f
D_._ _ _ _ _ _ _ _ _B_e_n_y_t_t_e_l_s_e_s_k_o_n_t_r_o_l_ _2_._ D.
\f
E_._ _ _ _ _ _ _ _ _B_e_n_y_t_t_e_l_s_e_s_s_t_a_t_i_s_t_i_k_._ E.
\f
F_._ _ _ _ _ _ _ _ _L_i_s_t_e_ _o_v_e_r_ _i_d_e_n_t_e_r_ F.
\f
G_._ _ _ _ _ _ _ _ _L_i_s_t_e_ _o_v_e_r_ _k_o_m_m_a_n_d_o_g_r_u_p_p_e_r_._ G.
\f
I_N_D_H_O_L_D_S_F_O_R_T_E_G_N_E_L_S_E_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _S_I_D_E_
1. Indledning ........................ 1
2. Adgangskontrol .................... 1
2.1 Ajourføring af identer mm. .... 1
2.2 Udskrift af kontrollister ..... 2
3. Systemoversigt .................... 3
4. Kørselsvejledning ................. 4
4.1 Udskrift fra logfil ........... 5
4.2 Ajourføring af identer mm. .... 6
B_I_L_A_G_._
A. Dialog i programmet "sikkerhed" ... 7
B. Sikkerhedsrapport ................. 8
C. Benyttelseskontrol 1 .............. 9
D. Benyttelseskontrol 2 .............. 10
E. Benyttelsesstatistik .............. 11
F. Liste over identer ................ 12
G. Liste over kommandogrupper ........ 13
\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. BRIEFLY ABOUT THE FLEXIBLE DISC AS A DATAMEDIUM ........ 2
3. DESCRIPTION OF THE FLEXIBLE DISC HANDLING ALGOL PRO-
CEDURES ................................................ 5
3.1 Declaration of the Zone ........................... 5
3.2 Mounting and Identification of a Flexible Disc .... 6
3.3 Identification and Connection of Files on a Flex-
ible Disc ......................................... 8
3.4 The Use of the File ............................... 12
3.5 The Termination of the Use of a File .............. 14
3.6 Releasing a Flexible Disc ......................... 16
3.7 The Mode Concept, Handling Different Diskette For-
mats .............................................. 16
3.8 A Short Survey .................................... 22
3.9 Some Small Examples ............................... 24
4. DESCRIPTION OF USE UNDER VARIOUS OPERATING SYSTEMS ..... 31
4.1 Use under s ....................................... 31
4.2 Use under BOSS in RC8000 .......................... 31
4.3 Use under SOS and Other Operating Systems ......... 31
A_P_P_E_N_D_I_C_E_S_:
A. REFERENCES ............................................. 33
B. REFERENCE MANUAL ....................................... 34
C. PRESENT RC STANDARD WITH RESTRICTIONS .................. 44
\f
ii
\f
«eof»