Contact us Heritage collections Image license terms
HOME ACL Associates Technology Literature Applications Society Software revisited
Further reading □ OverviewPaper 1Paper 2Paper 3Paper 4Paper 5Paper 6Paper 7Paper 8Paper 9Paper 10Paper 11Paper 12Paper 13Paper 14Paper 15Paper 16Paper 17Paper 18Paper 19Paper 20Paper 21Paper 22Paper 23Paper 24Paper 25 revPaper 25Paper 26Paper 27Paper 28Paper 29Paper 30Paper 31Paper 32Paper 33Paper 34Paper 35Paper E
ACD C&A INF CCD CISD Archives Contact us Heritage archives Image license terms

Search

   
ACLLiteratureProgress ReportsTechnical Papers :: Literature: FR80 Technical Papers
ACLLiteratureProgress ReportsTechnical Papers :: Literature: FR80 Technical Papers
ACL ACD C&A INF CCD CISD Archives
Further reading

OverviewPaper 1Paper 2Paper 3Paper 4Paper 5Paper 6Paper 7Paper 8Paper 9Paper 10Paper 11Paper 12Paper 13Paper 14Paper 15Paper 16Paper 17Paper 18Paper 19Paper 20Paper 21Paper 22Paper 23Paper 24Paper 25 revPaper 25Paper 26Paper 27Paper 28Paper 29Paper 30Paper 31Paper 32Paper 33Paper 34Paper 35Paper E

Paper No 32: DISK FACILITIES IN DRIVER

H K F Yeung

18 June 1979

ABSTRACT

This paper describe the disk-related facilities as implemented in DRIVER. These facilities are used in the system to handle font changing, colour and picture definitions. A brief description on the FR80 disk structure is also included.

1. DISK STRUCTURE

A disk is divide into blocks of 400(octal) words and there are 2000(octal) blocks in a disk. Some blocks are reserved for special purposes and we are particularly interested in the following:

BLOCK NUMBER      PURPOSE
1754              master directory
1755-1773         user directories
1774              usage map

Fifteen user directory entries are allowed in the Master directory and 50 files are allowed in each user directory. The layout of both is shown in diagram-1. It is always possible to check what is in the disk by using the command $UT<CR> within DISK AUDIT. Effectively the system displays the usage map as illustrated in diagram-2. Alternatively, one may read the usage map directly within a program. A block is occupied if there is a '0' in the corresponding bit.

2. DISK FACILITIES IN DRIVER

The following facilities are currently provided

  1. fetch new blocks
  2. load binary files
  3. read from disk
  4. write to disk
  5. return blocks no longer used
  6. find files from the directories

An overall picture is shown in diagram-3. Operations (3), (4) and (5) are tasks in the sense that. their activities can be overlapped with others. Users are not allowed to create new files through DRIVER and all disk blocks acquired will be released at the end of a job (or as soon as it is no longer required).

2.1 FETCH NEW BLOCKS

The usage map is searched and the first available block will be allocated to the requesting process. The corresponding bit in the table will be set to '0' to indicate that it is no longer available. The operation can call the disk handler directly without goes through the CONTROL as there is no I/O involved.

2.2 LOAD BINARY FILES

Binary files consists of data organized in a set of groups with the following format:

     address 
     2's complement of 'n'
     'n' data words 

the last group is followed by either a 'JMP' or 'HLT' (in both cases bit 0 is set, so can be distinguished from an address easily).

Following this is a list of variable-names/addresses. A variable name may consist of 1 to 6 characters and 3 characters are packed into 1 word in right adjusted SQOZE code. Suppose the character codes of the 3 characters are C1,C2 and C3, the SQOZE code will be

C1*1600+C2*40+C3 

Bit O will be set in the first word for a 2-words entry. Character codes are: (in octals)

0,1,... = 1,2, ... 
A,B,... = 13,14,... 

The last paragraph is included here for information only and is not relevant to the operation concerned. It is possible .to allow this operation to be a task but at the moment it is not.

2.3 READ FROM DISK

Given the block number of the first block of a file, the remaining blocks can be traced through word 0 of each block. So a requesting process will be fed. continuously without further interaction, with the disk-read task once the request is granted. It is possible for a requesting task to terminate its own request, without waiting till the end of a file. The Read Control shown in the diagram is used to prevent two processes competing with each other. As far as the tasks are concerned, the priority of 'READ' is lower than that of 'WRITE' and this is dictated by the way they are used in DRIVER.

2.4 WRITE TO DISK

Buffers are arranged in a queue and will be written to disk in due course. While they are in the queue, word 0 of each buffer is used temporarily to record the state of that particular block, for example first or last block of a file and etc. Once again, the 'WRITE CONTROL' prevents two different processes disrupting each other. Perhaps it has to be emphasized again that all files written to disk will be lost at end of a job.

2.5 RETURN BLOCKS

This is done by setting the appropriate bit in the usage table corresponding to the number of the block returned.

2.6 FIND FILE

A filename consists of 3 parts.

   directory-name;filename-1 filename2

a directory name can be 1 to 3 characters packed into one word and is placed in the master directory. A filename can be 1 to 6 characters packed into 2 words and are placed in word-1 to word-4 of each entry in the user directory (for binary files, filename-2 should be the characters BINARY, in other cases, it may be absent). So searching a file is just an exercise of going through the directories. If a file is found, word 5 of that entry is the block number of the first data block of that file.

3. CONCLUSIONS

The disk handler is designed with other facilities in mind, which includes font changing, colour and picture definitions. At this stage it is difficult to predict how much overlapping can be achieved. Nevertheless, it is one of the aims of this exercise.

BLOCK 1754 WORD 0 WORD 1 WORD 2 WORD i WORD 15 Not used Directory name 1 Directory name 2 . . . Directory name i . . . Directory name 15 BLOCK 1754 + i WORD 0 WORD 1 WORD 2 WORD 3 WORD 4 WORD 5 Not used File name WORD -1 File name WORD -2 File name WORD -3 File name WORD -4 Block number of first block FILE i DIAGRAM 1
0000    WWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWW
0040    WWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWW
0100    XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0140    XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0200    XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0240    XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0300    XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0340    XXXXXXXXXX------ --------XXXXXXXX
0400    XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0440    XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0500    XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0540    XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0600    XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0640    XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0700    XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0740    XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1000    XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1040    XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1100    XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1140    XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1200    XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1240    XXXXXXXXX------- --XXXXXXXXXXXXXX
1300    XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1340    XXXXXXX--------- -XXXXXXXXXXXXXXX
1400    XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1440    XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1500    XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1540    XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1600    XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
1640    XXXX------------ ----------------
1700    ----------XXXXXX XXXXXXXXX-------
1740    ------------MDDD DDDDDDDDDDDDTANB
The left column gives octal disk addresses Each
letter in the table describes the usage of the block
represented by its position
         W means Debug swapping block
         X allocated file block
         - available file block
         M Master directory
         D User directory
         T Track usage table
         U Unused block
         A Message of the day
         N Tape names for each directory
         B Disk bootstrap
    DIAGRAM 2
    
(1) GET NEW BLOCK (2) LOAD BINARY (3) READ (4) WRITE (5) FREE STORAGE (6) FIND FILE DISK HANDLER READ TASK (3) (2) (1) (6) WRITE TASK (4) FREE STORAGE TASK (5) Read control Write control Free storage control P P P P P P P P P P P P HANDLER CONTROL DIAGRAM 3 P = Process
⇑ Top of page
© Chilton Computing and UKRI Science and Technology Facilities Council webmaster@chilton-computing.org.uk
Our thanks to UKRI Science and Technology Facilities Council for hosting this site