• Aucun résultat trouvé

BUILD DEVICE HANDLER FORMAT

Dans le document 08/8 System Reference Manual (Page 169-173)

TAD I IRI JMS TYPE

6 FORMAT (15,'! EXCEEDS CAPACITY OF PROGRAM.') END

9.5 BUILD DEVICE HANDLER FORMAT

?SYNTAX

?SYS

SYS ERR

SYS NOT FOUND

An illegal character was typed in a BUILD command line. The line must be retyped.

One of the following conditions exists:

a. A permanent name in a SYS command was not a system handler or coresident with one.

b. A BOOT command was issued when two or more system handlers were active.

c. A BOOT command was issued when an active handler that must be coresident with a SYS handler did not have the system handler active.

An I/O error occurred with a system handler. The computer halts. Press CONT to retry or restart the BUILD procedure from the beginning. Do not assume that a valid OS/8 system remains in core.

No active handler with the name SYS was present when a BOOTSTRAP command was issued.

~---~---~

9.5 BUILD DEVICE HANDLER FORMAT

Use the BUILD command LOAD to load device handlers not provided by BUILD into core. They can then be inserted into the OS/8 system. The format of the input to LOAD is a binary file containing the handler as well as a header block that contains information pertaining to the devices included in that file. You should code the handler in PAL8 machine language. The structure of the source for a BUILD device handler is:

*0 HEADER BLOCK

*200 BODY OF DEVICE

HANDLER

The origins at 0 and 200 are vital to BUILD. The *0 is an important part of the header block. If you omit this, you cannot load. The

BUILD 9.5.1 Header Block

The header block contains the following information:

Word 1:

Words 2-9:

Words 10-17:

-x,

where X is the number of separate handlers contained in this file. Thus a handler for TC08 has the first word equal to -lO(octal).

Descriptor block for the first handler in the group.

Descriptor block for second handler in the group.

Descriptor block for the last handler in the group. If the handler is a system handler, the length of the bootstrap and the bootstrap itself follows.

Thus, each handler in the group must have an eight-word block describing its characteristics. If more than twelve handlers are in a group, an error generates during the LOAD.

9.5.2 Descriptor Block

Each eight-word descriptor block contains the following information:

Words 1,2:

Words 3,4:

Word 5:

Word 6:

Device type name. This name is the group name, or type, of all the handlers in this group. It is usually designated by the DEVICE pseudo-oPe

Example: DEVICE RK8 OS/8 device name.

name) by which recognized in the can alter it.

This is the name (permanent the particular device will be OS/8 system. The NAME command Example: DEVICE RKAO

Device Control Block. This word reflects the type of device, in accordance with Table 9-7. Bits 9-11 specify the maximum number of platters on the device (0=1).

Example: 4050

Entry point word. This word must contain the entry point offset in bits 5-11 (see Section 9.5.4). Bit 0 should be a 1 if the handler is a two-page handler. Bit 1 should be a 1 if the entry point is SYS. Bit 2 should be a 1 if the entry point is coresident with SYS.

Example: 0020

BUILD Word 7: Must be O.

Word 8: Must be 0, except for a system handler that uses it to specify the block length of the device as a negative number.

As an example, consider the handler for the nonsystem RKOS handlers.

This file contains four separate handlers; the source code would appear as follows:

*0

-4 /4 DEVICES

DEVICE RKOS; DEVICE RKAO; 40S0; 0020; ZBLOCK 2 DEVICE RKOS; DEVICE RKBO; 40S0; 0021; ZBLOCK 2 DEVICE RKOS; DEVICE RKAl; 40S0; 0022; ZBLOCK 2 DEVICE RKOS; DEVICE RKBl; 40S0; 0023; ZBLOCK 2

*200

(HANDLER BODY)

The device type of the group is RKOS (Words 1-2). The permanent device names are RKAO, RKBO, RKAl, RKBI. Since each device is RKOS,

the device control block (DCB) word for each is identical.

The entry point word indicates where the entry point particular device occurs relative to the top of the page.

the above example, RKAO enters at the 20th location from the the page, RKBO at the 21st, etc.

for that Thus, in top of It is vital that this information is accurate. If errors exist in this data, unpredictable results occur when you generate the system.

9.S.3 Breakdown of DCB Word

The DCB word for a device provides specific information that is used in the OS/8 Monitor. Table 9-7 details its structure.

Table 9 ... 7 DCB Word

r--~---.---.---- -Bit

o

1

1 1

Meaning

if file structured device

if read-only device (e.g., PTR)

Bit

Reserved for user-written Used only by OS/8 Monitor

handlers

Whenever you insert a device into OS/8, follow this structure to obtain correct results.

9.5.4 Entry Point Offset

BUILD

Current file device and entry point offsets appear below:

Device TC08 DEC tape TD8E DEC tape LINCtape System device RK8/RK8E disk RF/DF disk RXAO

RXAI

Entry Relative to Top of Page 10-17

10-17 10-17

7 20-23

24 30 34

Thus, the user-coded file devices should use entry points other than 7-24, 30, 34.

If you add a new file structured user device to the system, alter the device-length table in PIP to permit zeroing of the device directory.

To do this, use ODT as follows:

.GET SYS PIP .ODT

136nn/0000 xxxx

~C (user types CTRL/C)

.SAVE SYS PIP

The nn represents the two-digit device Table 9-12 indicates. The xxxx is the negative of the last block number on the device. Both nn and xxx x are octal numbers.

For example, if you assign the new device a code of 40 (currently the first unused entry), and the last OS/8 block on the device was block 1000, PIP would change as follows:

.GET SYS PIP 70DT

13640/0000 7000 ...!.SAVE SYS PIP

Dans le document 08/8 System Reference Manual (Page 169-173)

Documents relatifs