NBSIR 74-538

Magnetic Tape Operations on the

Sound Laboratory Data Acquisition

System: A Programmer’s Reference Manual

A. James Baroody, Jr.

Mechanics Division

Institute for Basic Standards

National Bureau of Standards

Washington, D. C. 20234

August 1974

Final

U. S. DEPARTMENT OF COMMERCE

NATIONAL BUREAU OF STANDARDS

NBSIR 74-538

MAGNETIC TAPE OPERATIONS OF THE

SOUND LABORATORY DATA ACQUISITION

SYSTEM: A PROGRAMMER'S REFERENCE MANUAL

A. James Baroody, Jr.

Mechanics Division

Institute for Basic Standards

National Bureau of Standards

Washington, D. C. 20234

August 1974

Final

U. S. DEPARTMENT OF COMMERCE, Frederick B. Dent, Secretary

NATIONAL BUREAU OF STANDARDS, Richard W. Roberts. Director
'••I

'

' : "

'

. r- ,

o'iJSM

.

f, ? i u
Disclaimer

Certain commercial equipment, instruments , or materials

are identified in this paper in order to adequately specify

the experimental procedure. In no case does such identification imply recommendation or endorsement by the National

Bureau of Standards, nor does it imply that the material

or equipment identified is necessarily the best available

for the purpose.

i
TABLE OF CONTENTS

:

1 . INTRODUCTION

2. THE KENNEDY 8000 MAGNETIC TAPE SYSTEM

2A General Specifications

2B Operating Controls and Indicators

2C Magnetic Tape Loading and Unloading ... 2D Preventive Maintenance

2E Programming Specifications

3. KENNEDY MAGNETIC TAPE SYSTEM GENERAL LOADER

3A Loader Operation

3B Loader Features

3C Loader Error Messages

4. RTOS KENNEDY 9 -TRACK MAGNETIC TAPE DRIVER AND DCB

4A Detailed Driver Description

4B Error Status Code

4C System Generation Parameters

5. BOSS KENNEDY 9 -TRACK MAGNETIC TAPE DRIVER

5A Detailed Driver Description

5B Error Status Code

5C System General Procedure

REFERENCES

Appendix A. Transporting Magnetic Tapes Between the Sound

Laboratory Data Acquisition System and the NBS UNIVAC

1108

Appendix B. Kennedy Magnetic Tape General Loader Assembly Listings . Appendix C. RTOS Kennedy 9- track Magnetic Tape Driver Assembly

Listings

Appendix D. RTOS Kennedy 9- track Magnetic Tape DCB Assembly

Listings

Appendix E. BOSS Kennedy 9- track Magnetic Tape Driver Assembly

Listings

1

!

I 2

i 2 i 2

3

3

3

78

10

12

12

19

20

21

21

26

26

28

29

30

49'

59

63

ii
1. INTRODUCTION

I

I!

i

The key subsystem of the Sound Laboratory Data Acquisition System

is an Interdata Model 70 minicomputer. Interfaced to the Interdata Model

{

0 is a Kennedy 8000 magnetic tape system. This report is a systems

rogrammer reference manual for magnetic tape operations on the Interdata

lodel 70 system.

1 The basic plan of the report is the following: The features of

the magnetic tape system are summarized in a brief discussion of the

I

ardware and of the programming techniques of the system. With this

s a background, the next three chapters present a background for magnetic

tape operations in three distinct environments. First a loader for

inputting relocatable and absolute programs from magnetic tape in a [tand-alone environment is described. Next magnetic tape operations

under the Interdata Real Time Operating System (RTOS) are described,

followed by a description of magnetic tape operations under the Interdata

^asic Operating System (BOSS)

This report assumes the reader already has a great deal of programming

I

xperience. The reader should be thoroughly familiar with Interdata assembly

anguage and have a good understanding of the Interdata operating systems.

I

|

i

i

i

i

i

i
2. 2

THE KENNEDY 8000 MAGNETIC TAPE SYSTEM

Introduction

The Kennedy 8000 magnetic tape system is designed to operate with

the Interdata Models 70, 74, or 80 processors. This tape system includes

the Kennedy 8108 tape transport, the Kennedy 8208 format control unit,

and the Xebec Systems Inc. XTC 8000 controller. The XTC 8000 controller

is designed to function as an independent DMA port or to operate on tlje

Interdata selector channel. This report assumes the XTC 8000 controller

to be interfaced to the selector channel.

2A. General Specifications

1. Tape Format: 9- track 800 CPI, NRZ1 (ANSI X3. 22-1973 Compatible)

2. Tape Speed: 25 inches per second

3. Transfer Rate: 20 KHz

4. Rewind Speed: 150 inches per second

5. Character Format: 8 bits data, 1 bit parity

6. Error Checking: Read-After-Write, VPC, LRC, and CRC checks

7. 1X4 Controller: The Kennedy 8208 format control unit can support

up to four 7- track or 9- track tape transports.

2B. Operating Controls and Indicators

1. Address Switch. A rotary thumbswitch used to select the transport

address. Positions 1 through 4 are active for the System 8000.

Position 0 is off and prevents selection.

2. Address Indicator. Illuminated when the tape transport is selected.

3. Write Enable Indicator. Illuminated whenever power is on and a tape

reel with a write enable ring is mounted on the transport.

4. Read Status Indicator. Illuminated whenever the tape transport is on line, selected, and read selected.

5. Write Status Indicator. Illuminated whenever the tape transport is on line, selected, and write selected.

6. On Line Switch. A momentary switch/ indicator which is enabled after

an initial Load or Rewind sequence. Depressing and releasing the

switch after an initial Load or Rewind sequence is initiated

puts the transport in the On-Line mode. In this condition, the

transport can accept remote commands, provided it is also ready and

selected. When the On Line switch is activated a second time, it

puts the transport in the Off-Line mode.
I

- 3

-

7 . Load Switch. A momentary action switch/ indicator . When the Load

switch is depressed after power is applied, the tape is positioned

at Load Point which is indicated by a goT nark on the tape. The

Load switch is disabled once the first Load or Rewind command has

been given after the power-on and can only be re-enabled by a loss

of tape tension or restoration of power after the power has been off.

8. Rewind Switch. A momentary action switch/ indicator which is enabled

only in the Off Line mode. Depressing and releasing the switch causes

the tape to rewind. On reaching the BOT marker, the Rewind

ceases and the Load sequence is automatically entered. The BOT tab

overshoots the photo- sensor , moves forward, and stops at the load

point. If the Rewind switch is depressed when the tape is at the

Load Point, the tape rewinds off the take-up reel and tension is lost.

Magnetic Tape Loading and Unloading

| Refer to the System 8000 Digital Magnetic Tape Recorder Operation and

jaintenance Manual, Kennedy Co. Publication No. 193-8000-001.

r

Preventive Maintenance

It is recommended that the heads and capstan be cleaned after every

eight hours of operation. It is also recommended that a READ and WRITE skew

Ilignment test be performed after each month of operation. For specific

rocedures, refer to the System 8000 Digital Magnetic Tape Recorder Operation

and Maintenance Manual, Kennedy Co. Publication No. 193-8000-001.

|e. Programming Specifications

I

The XTC 8000 controller is designed to oversee all functions

f the tape transport, including data transfers and control functions. Data

ransfers are performed using the Interdata selector channel. All control

functions are transferred via the Interdata multiplexor bus.

I n

All functions of the controller are initiated using the standard Interdata

instruction set. A brief description of how the processor I/O instructions may

t

e used follows. The reader may refer to the Magnetic Tape Controller 1/0

pecifications. Xebec Systems Publication No. 300901, and the Interdata 02-232

So lector Channel Programming Specifications.

I Commands. The Xebec XTC 8000 controller is a register oriented device.

Functional units of the controller are addressed as registers.

These registers are selected by executing an OUTPUT COMMAND instruction.

Table 2.1 shows the bit assignments for the Xebec controller command byte
- 4 -

Table 2.1 Command Byte Coding

Command Byte Value Function

0

12

3

4

5

6

7

Data Transfer

Memory Address

Controller Status

Interrupt Control

Command Word

Word Count

The processor controls the operation of the tape unit by issuing commands , encoded into a command word. The command word is transferred to the Xebec

controller by executing an OUTPUT COMMAND instruction with a command byte

of value 5, followed by execution of a WRITE HALFWORD instruction. Table

2.2 details the bit assignments for the Xebec controller command word.

Bits 0-3

Bits 4-7

0

12

3

4

5

6

78

9

A

B-F

Bit 8

Bits 9-10

Bit 11

Bit 12

Bit 13

Bits 14-15

Ignored

OP - Operation Code

No Operation

Read Record

Space File Forward

Space File Reverse

Space Record Forward

Space Record Reverse

Write Record

Write End of File

Erase 4 Inches of Tape

Rewind

Set Unit Off Line

Illegal

Ignored

DN - Density

9 Track - 11-800 bpi

01-1600 bpi

PK - Packing Mode

PR - Parity

Ignored

UN - Unit Selected

00 - Unit 1 01 - Unit 2

10 - Unit 3

11 - Unit 4

'

I

2 .

I

iape Controller Status. The Xebec magnetic tape controller returns a status byte to the processor as the result of a SENSE STATUS instruction
- 5

-

Table 2.3 SCAtus Byte Coding

Bit

Number 0 1 2 3 4 5 6 7

Status 0 0 WLR BDB DNR 0 . 0 FNB

Bits 0-1

Bit 2

Bit 3

Bit 4

Bits 5-6

Bit 7

Read as Zeros

WLR - Wrong Length Record

BDB - Bad Data Block

DNR - Data Not Ready

Read as Zeros

FNB - Formatter Not Busy

The tape transport status word is read into the processor by first

xecuting an OUTPUT COMMAND with a command byte of value 3. The controller

tatus is then read into the processor by executing a READ HALFWORD instruction,

ible 2.4 shows the bit assignments for the tape transport status word.

Table 2.4 Status word

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 0 0 0 DMA BDB PKE EOF BOT EOT FBR KUE NOL REW TBY FBY

Bits 0-3

Bit 4

Bit 5

Bit 6

Bit 7

Bit 8

Bit 9

Bit 10

Bit 11

Bit 12

Bit 13

Bit 14

Bit 15

Read as 0

DMA - DMA Timing Error

BDB - Bad Data Block

PKE - Packing Error

EOF - End-of-File

BOT - Beginning of Tape

EOT - End-of-Tape

FBR - Write Protected

MUE - Multiple Unit Error

NOL - Not on Line

REW - Rewinding

TBY - Tape Unit Busy

FBY - Formatter Busy

|) Interrupts. An external interrupt is generated whenever the status bit

formatter-not- busy sets. The formatter-not-busy is the logical NOR of

the tape-unit- busy status and the formatter busy status.

Interrupts can be enabled, disabled, armed, or disarmed using an OUTPUT

JOMMAND instruction. Table 2.5 shows the bit assignments for the

jontroller command byte.

I
- 6 -

Table 2.5 Interrupt Command Byte

0 1 2 3 4 5 6 7

DAB DAR XX 0 1 0 0

Bit 0 DAB-Disable. When set , interrupts are queued.

Bit 1 DAR-Disarm. When set, prevents interrupts from being

queued

.

Ignored

4 (Select interrupt control register)

Bit 2-3

Bit 4-7
I

- 7

-

3. KENNEDY MAGNETIC TAPE SYSTEM GENERAL LOADER

ntr oduc tion

| The Mag Tape General Loader is a stand-alone program occupying about

A 500 bytes, and is similar to the Interdata General Loader. It is, itself,

loaded by the Interdata Relocating of General Loaders (R01 versions). It is

operated from the processor control panel, input 9- track magnetic tape,

fend logs messages on the teletype. It provides program relocating,

T5NTRY and EXTRN handling, and allows forward references within programs.

I

This program loads 108-byte fixed-length object data records from 9-

rack magnetic tape. The Kennedy 8000 magnetic tape system, device address X'85'

is assumed to be the input device. The records must be in standard Interdata

I

ton-zoned loader format without the leading X'F0' character found on M16/17 paper

rape formats. For example, object records output under BOSS or RTOS with

a binary write SVC are loadable by this loader. No tape positioning is available

I

On parity error, four rereads are attempted resulting in a "READ ERROR"

essage if receipt of the parity error status bit persists. The message

"EOF READ" results from an EOM status returned, and the "DEV END" message

esults from an EOT.

r

3A. Loader Operation

The Mag Tape General Loader is a relocatable object tape; that is, it

can be loaded at a memory location specified at load time. It is loaded

sing either the Interdata Relocating Loader or the General Loader.

f The steps required to load and operate the Mag Tape General Loader are

summarized below:

1. Manually enter the 50 sequence into memory.

2. Execute the 50 sequence to load the Relocating or General Loader.

3. Place the Mag Tape General Loader into the high speed paper tape

reader. If the Mag Tape General Loader is not to be loaded at

the current bias value, X' 80', enter the bias value (MTORG) at

ORG + X'A', and execute the Relocating or General Loader at ORG

+ X'8'

.

4. Place the magnetic tape to be loaded onto the tape transport, device

address X' 85'. The tape should be in the 'LOAD' position (LOAD POINT)

If the program is not to be loaded at the current bias value,

X' 80', enter the Program Bias at MTORG + X'A' and execute the Mag

Tape General Loader at MTORG + X'8'.

Note: Absolute programs are always stored at the absolute location

specified on the tape being read.
5.

- 8 -

If an error occurs during the load, the tape stops, and an error

message is typed on the teletype (see Section 2.C).

6. When the load is complete, the tape stops. If no undefined symbols

occurred, the message 'NORMAL END' is typed on the teletype.

See Figure 3.1 for an example of a Loader Memory Map.

Figure 3-1 Loader Memory Map

ORG

MTORG

PROGRAM BIAS

GENERAL OR

RELOCATING

MAG TAPE GENERAL

LOADER

f LOADER

BUILDS

SYMBOL TABLE

DOWN

PROGRAM BUILDS UP

CTOP

3B. Loader Features

1.

Bias Printout

At the start of every load operation, the loader types the current

value of the bias pointer on the teletype. This printout occurs

prior to reading the first record of a new program, and the message

is of the form

BIAS = XXXX

where the XXXX represents the current bias value in hexadecimal form.

2. Messages

Error messages which are typed on the teletype are described in

Section 2.C.

3. ENTRY/EXTRN Handling

Programs generated by the assembler can use ENTRYs or EXTRNs to

achieve cross referencing and linkage with external programs. In

this case, the object tape for these programs contains the symbolic

names declared as ENTRYs or EXTRNs. The Mag Tape General Loader

uses a symbol table to remember these names when a program is loaded.

This symbol table builds downward in memory from the origin (MTORG)

of the Mag Tape General Loader. Each entry in the loader symbol

table requires 8 bytes of memory.

u
9

Since the loader symbol table is building downward into memory

and the programs being loaded are building upward into memory,

the loader checks to see that the loading program does not over- write the symbol table. If the loading program requires data

stored above the current bottom of the symbol table, a MEMORY

FULL message is generated and the loader halts.

When the loader is executed at its start location (MTORG) or its

bias redefinition location (MTORG + 8), the symbol table is cleared

of all names. Executing the Mag Tape General Loader at its continue

location (MTORG + 26) does not change the state of the symbol table.

At the end of each program load, the symbol table is scanned for

undefined symbols. Any undefined symbols are typed in the form

U XXXXXX

where XXXXXX is the symbol name. All such undefined names are

printed preceding the NORMAL END message. An undefined symbol

results from the fact that the symbol was declared and referenced

as an EXTRN in some program, and no program yet loaded has declared

and defined that same symbol as an ENTRY. As soon as some loading

program declares and defines that symbol as an ENTRY, the symbol

becomes defined. If more than one program declares and defines a symbol as ENTRY, the message:

M XXXXXX

where XXXXXX is the symbol name, is typed at the time the multiple

definition occurs. In this case, the first value defined remains

in the symbol table, and the second definition value is ignored.

At the end of each program load, the loader transfers immediately

to the program that has been loaded only if a transfer address is

specified on the tape and if the symbol table contains no undefined

symbols. If any symbols in the table are undefined at the end of a load, those symbols are listed, NORMAL END is printed, and the

loader halts, waiting to load the next program.

4. Label Handling

The program label can be up to 6 characters. The first character

must be a letter; subsequent characters can be letters or digits.

When the loader detects a program label, the label is typed in the

form

LABEL = ABCDEF
10

5. Forward Reference Definitions

Program object tapes generated by one-pass assemblies or load modules

from the OS Library Loader involve forward references to symbols

which are defined later in the program. The loader uses a chaining

procedure for satisfying any forward references at the time the

symbol definition is encountered.

3C. Loader Error Messages

Message Meaning

1.

CKSM ERR A checksum error was detected after reading the previous

record

.

2.

' SEQ-ERR A sequence number error was detected after reading the

previous error.

3. MEM- FULL This message is caused by a conflict between the Mag

Tape General Loader and the loading program. The program

being loaded has not been loaded to conclusion. The

alternatives are the following:

a. Load fewer programs.

b. Make absolute paper tapes of the programs to be

loaded and then use the REL Loader which requires

less memory.

c. Eliminate some EXTRNs and ENTRYs to reduce size of

symbol table.

Note that the Mag Tape General Loader cannot load programs

above itself in memory.

4. NORMAL END This case occurs when a program has successfully loaded

and no END transfer address has been specified or if

undefined external references remain. All undefined

external references are listed on the teletype preceded

by a U prior to printing the NORMAL END message. If a transfer address is specified and no undefined symbols

remain, the loader transfers directly to the address

specified, and no NORMAL END message occurs.

This message results if an illegal control item is

detected during load. Depress EXECUTE to ignore the

control item and attempt to proceed with the load.

5 . LOAD ERR
11 -

6. REF -LOOP

7. READ ERROR

8 . EOF READ

9 . DEV END

This message results if an endless forward reference or external reference chain is encountered. It indicates

that the input tape was generated incorrectly.

This message results if receipt of the parity error status

persists. Four retries are attempted following receipt

of a parity error.

} If the error persists, the tape

is halted following the record containing the error.

An end-of-file mark was encountered after reading

the previous record.

The end- of- tape mark was encountered after reading

the previous record.

I
-• 12

4. RTOS KENNEDY 9-TRACK MAGNETIC TAPE DRIVER AND DCB

Introduc tion

The RTOS Kennedy 9- track Magnetic Tape Driver and DCB, when incorporated

into the Interdata Real Time Operating System, support magnetic tape

operations on the NBS Sound Laboratory Data Acquisition System. Read, write,

and wait and control operations are allowed. Read and write operations

may specify wait, proceed, or unconditional proceed. The ASCII or binary

option lias no significance, and sequential operations are always assumed.

READ requests cause 8-bit data to be read from the tape directly into

the user's buffer. The transfer stops when the buffer is full or when

the hardware senses an end of record condition. If the buffer length is

less than the record length, overflow data is lost. If a parity error occurs,

the system attempts to reread the record 4 times before giving up. At

the end of the reread operation, the tape is positioned in the inter record

gap following the defective record.

WRITE requests cause 8-bit data to be written from the user's buffer

to the tape. The operation terminates when the buffer limit is reached. If

the tape is positioned at the beginning of tape marker when a WRITE request

is received, the system generates 4 inches of blank tape before starting

the WRITE operation. This ensures that the BOT is passed prior to starting

the WRITE operation.

Note: The buffer limits specified for magnetic tape transfer must start

on an even byte boundary and end on an odd byte boundary.

All control commands are accepted. Rewind causes the tape to be

positioned at the BOT marker. Backspacing one,.record moves

the tape backward over one record and leaves it positioned in the previous

inter record gap. Forward spacing one record positions the tape in the

next inter record gap. Skip forward to file mark causes the tape to skip

as many records as necessary to get it to the next file mark. The tape is

positioned in the inter record gap just beyond the file mark. Skip backward

to file mark causes the tape to move backward until it reaches a file mark.

It goes past the file mark and stops in the preceding gap.

4A. De tailed Driver Description

In common with Interdata RTOS driver conventions the Kennedy 9- track

Magnetic Tape driver is divided into two logically distinct phases. The

Initialization phase is entered as a subroutine to SVC 1, with registers

set up by SVC 1 to contain all the pertinent information about the SVC

block. This phase runs with the external interrupts enabled. The second phase,

the Interrupt Service Routine, is entered and re-entered on all subsequent

interrupts from the magnetic tape controller and the selector channel

controller as a subroutine of the Device Control Block (DCB). This phase

runs with external interrupts disabled.
13 -

Parameter Set-up

Entry Point

MTDVR (SVC)

Contents of Registers on Entry

Rl -- Address magnetic tape DCB

R2 -- Caller pointer

R3 -- Address user parameter block

R4 -- Function code

R6 -- Physical device number

R7 -- Logical status (contains X'OOOO')

R8 -- Retry counter

RA -- Function code

RC -- Physical device number of selector

RD -- Physical device number of magnetic tape

RE -- Address of magnetic tape DCB

Functions

1. An output command stop is issued to the selector channel.

2. The status of the magnetic tape' is checked for the device

unavailable status. If the device unavailable status is returned

from the magnetic tape, R7 is loaded with X'AOOO 1 (device unavailable status) and the driver exits to the system (IOEXIT)

.

3. If the function code specifies a magnetic tape command, the

driver branches to the command processor (COMAND)

,

4. If the operation specifies a READ or a WRITE then: R8 = X'0004'

(four retires on a parity failure), followed by a branch and link

(RO as the return register) to IOPTST to determine if the buffer

limits are correct (starting address must be even and ending

address must be odd) and the buffer is within the user's allocated

memory area. If these conditions are not meet R7 is loaded with

X'COOO' (illegal function status) and the driver exits to the

system (IOEXIT).

5. The physical device number of the selector channel is doubled and

then added to X'DO' (the start of the ISP table). The driver

branches to the operation processor specified by the operation

code (WRITE or READ)

.
14 -

2. Simulate Interrupt Service Routine For READ

Entry Point: READ

Contents of Registers on Entry

R8 -- Retry counter

RA -- Function code

RC -- Physical device number of the selector channel

RD -- Physical device number of the magnetic tape

RE -- Address of the magnetic tape DCB

Functions

1. An output command stop is issued to the selector channel.

2. The number of words to be transferred is output to the tape

controller

.

3. The starting and ending address of the user buffer is output to the

selector channel.

4. The status of the magnetic tape is checked for the

device unavailable status. If this status is returned, R7

is loaded with X'AOOO' (device unavailable) and the driver

exits to the system (IOEXIT)

.

5. RF is loaded with the address of the correct interrupt service

routine (RDINT) . RA is loaded with X'OOOl' to indicate a READ operation.

6. R2 through RF are saved in the appropriate place in the DCB.

7. A simulate interrupt (SINT), using the physical device of the

magnetic tape is issued. Following the SINT instruction is an unconditional branch to the system (IOTWAT)

.

3. Simulate Interrupt Service Routine for WRITE

Entry Point: WRITE

Contents of Registers on Entry

R8 -- Retry counter

RA -- Function code

RC -- Physical device number of the selector channel

RD -- Physical device number of the magnetic tape

RE -- Address of the magnetic tape DCB
Functions:

1. The status of the magnetic tape is checked for the..

WRITE protect' status. If this bit is set, R7 is loaded

with X'8400* (unrecoverable error

exits to the system (IOEXIT)

.

2. An output command stop is issued to the selector channel.

3. The number of words to be transferred is output to the tape

controller.

4. The starting and ending address of the user buffer are output

to the selector channel.

5. The status of the magnetic tape is checked for

device unavailable status. If this status is returned, R7

is loaded with X'AOOO' (device unavailable status) and the

driver exits to the system (IOEXIT).

6. RF is loaded with the address of the correct interrupt service

routine (WRTINT) . RA is loaded with X'FFFF' to indicate a WRITE operation.

7. R2 through RF are saved in the appropriate place in the DCB.

8. A simulate interrupt, SINT, using the physical device number of

the magnetic tape is issued. Following the SINR instruction

is an unconditional branch to the system (IOTWAT)

.

Service Routine for Magnetic Tape Commands

Entry Point:

COMMAND

Contents of Registers on Entry

RA -- Function code

RC -- Physical device number of the selector channel

RD -- Physical device number of the magnetic tape

RE -- Address of the magnetic tape DCB

Functions

1. If a WRITE EOF operation is specified, the status of

the magnetic tape is tested for the write protect status. If

write protect status is set, R7 is loaded with X'8400'

(unrecoverable error) and the driver exits to the system (IOEXIT).
16 -

2. If a BACKSPACE RECORD or a BACKSPACE FILE operation is specified,

the status of the magnetic tape is tested for the

beginning of tape status (BOT) . If this bit is set, R7 is

loaded with X'9000' (end-of-medium status) and the driver

exits to the system (IOEXIT)

.

3. If a SPACE FORWARD RECORD or a SPACE FORWARD FILE operation

is specified, the physical status of the magnetic tape is

tested for the end-of-tape status. If this bit is set, R7 is

loaded with X'9000' (end-of-medium status) and the driver

exits to the system (IOEXIT).

4. A pointer to the location of the correct operation command in

the command table stored in the DCB is calculated and loaded

in RA.

5. RF is loaded with the address of the correct interrupt service

routine (CKSTAT) . RA is loaded with X'0000' to indicate a magnetic tape command operation.

6. R2 through RF are saved in the appropriate place in the DCB.

7. The appropriate magnetic tape command is issued by performing

an OUTPUT COMMAND followed by a WRITE HALFWORD to the magnetic

tape. Following the Write instruction is an unconditional

branch to the system (IOTWAT)

.

5. READ Interrupt Service Routine

Entry Point: RDINT

Contents of Registers on Entry

R8 -- Retry counter

RA -- X'OOOl'

RC -- Physical device number of the selector channel

RD -- Physical device number of the magnetic tape

RE -- Address of the magnetic tape DCB

RF -- Address of the interrupt service routine

Func cions

1. The Status of the magnetic tape is tested for the

not-on-line status. If this bit is set, R7 is loaded with

X'8400' (unrecoverable error). R8 through RF are stored in

the DCB. The address of the DCB plus one is added to the

Queue Termination List. The driver then exits to the DCB where

RF is saved. An entry to the system is made via a LPSW

ins truction.
17

2. The status of the magnetic tape is tested for the

transport busy status. If this bit is set, the driver exits

through the DCB as described in step 1, waiting for transport

busy to reset.

3. RF is loaded with the address of the appropriate interrupt service

routine (CKSTAT) . R2 through RF are stored in the DCB.

4. A read command is issued to the tape transport and a go read

command is issued to the selector channel.

5. The driver executes an unconditional branch to the system (IOTWAT)

.

WRITE Interrupt Service Routine

Entry Point

WRTINT

Contents of Registers on Entry

R8 -- Retry counter

RA -- X'FFFF 1 RC -- Physical device number of the selector channel

RD -- Physical device number of the magnetic tape

RE -- Address of the magnetic tape DCB

RF -- Address of the interrupt service routine

Functions

1. The status of the magnetic tape is tested for the

not-on-line status. If this bit is set, R7 is loaded with

X'8400' (unrecoverable error). R8 through RF are stored in

the DCB. The address of the DCB plus one is added to the

Queue Termination List. The driver then exits to the DCB where

RF is saved. An entry to the system is made via a LPSW

instruction.

2. The status of the magnetic tape is tested for the

transport busy status. If this bit is set, the driver exits

through the DCB as described in step 1, waiting for transport

busy to reset.

3. RF is loaded with the address of the appropriate interrupt

service routine (CKSTAT). R2 through RF are stored in the DCB.
18 -

4. A Write command is issued to the tape transport and a go

Write command is issued to the selector channel.

5. The driver executes an unconditional branch to the system

(IOTWAT)

.

7. Magnetic Tape Termination Interrupt Service Routine

Entry Point

' CKSTAT

Contents of Registers on Entry

R8 -- Retry counter

RA -- Operation pointer

RC -- Physical device number of the selector channel

RD -- Physical device number of the magnetic tape

RE -- Address of the magnetic tape DCB

RF -- Address of the interrupt service routine

Functions:

1. The status of the magnetic tape is tested for a parity error. If a parity error occurred the driver branches to

RETRY where the retry counter is decremented by one. If the

retry counter is now greater than zero, RF is loaded with

the address of the appropriate interrupt service routine

(RDINT or WRTINT) . R2 through RF are stored in the DCB and a BACKSPACE RECORD is issued. The driver then exits to the

system (IOTWAT).

2. If on a parity error in step 1, the retry counter is decremented

to zero, R7 is loaded with X'8400' (unrecoverable error). R8

through RF are stored in the DCB. The address of the DCB plus

one is added to the Queue Termination List. The driver then

exits to the DCB where RF is saved. An entry to the system is

made via a LPSW instruction.

3. The status of the magnetic tape is tested for the endof-file status. If this bit is set, the status is also tested

for the end-of-tape status. If both bits are set R7 is loaded

with X'9800' and the driver exits to the system (IOEXIT)

.

If only the end-^of-file status is set, RF is loaded with

X'8800' and the driver exits to the system (IOEXIT).
4. If the end-of-file status is not set, see step 3., the

physical device status is tested for the end-of-tape status.

If this bit is set, R7 is loaded with X'9000' and the driver

exits to the system (IOEXIT)

.

5. If no error status bit is set, R7 is loaded with X'0000'.

The address of the DCB plus one is loaded on the Queue

Termination List and the driver exits to the DCB. An entry

to the system is made via a LPSW instruction.

_4B. Error Status Code

" The following are the error conditions that the driver checks

for; if any of these conditions are encountered the status is returned

Jto the user's parameter block.

1. Illegal Function (X'C085')

A READ or WRITE operation was specified and the starting address of

the buffer is odd or the ending address is even, or the starting address

is greater than the ending buffer address. No data transferred. A control

operation was specified, but there was no valid function command. A WRITE

operation was attempted on a Write Protected tape. No data transferred.

.2. Device Unavailable (X'A085')

The tape transport is not on line. Either the tape transport or the

format control unit is not available to accept commands.

|3. End-of-Tape (X'9085')

I

An end-of-tape (EOT) condition was detected. This can occur on a READ,

a WRITE, a SKIP FILE FORWAPD , or a SPACE RECORD FORWARD. The end-of-tape

status is also returned when the beginning-of- tape marker is encountered on

SKIP FILE REVERSE or a SPACE RECORD REVERSE command.

L. End-of-File (X'8885')

The end-of-file status is returned if the and-of-£ile record was detected

rduring a READ operation.

5. Parity Failure (X'8485')

r READ: The parity failure status bit was detected and after four(4)

, rereads the error condition still existed. The tape is

positioned after the erroneous record.

WRITE: The parity failure status was detected and after four (4)

rewrites the error condition still existed. The tape is

positioned after the erroneous record.
20

4C. System Generation Parameters

The Kennedy 9- track Magnetic Tape driver has only one SYSGEN parameter

SELCH -- The physical address of the selector channel.

The SYSGEN parameters for the Kennedy 9- track Magnetic Tape DCB

include the following:

TOC85 -- Time out count

MT85 -- Physical device address of the magnetic tape controller

SCFO -- Physical address of the selector channel

KMDTAB -- Table of magnetic tape controller command halfwords

(See Section l.E)
5. BOSS KENNEDY 9-TRACK MAGNETIC TAPE DRIVER

Introduction

When incorporated into the Interdata Basic Operating System (BOSS),

Program No. 03-019, this driver supports magnetic tape operations on the

NBS Sound Laboratory Data Acquisition System. Read, write, and wait and

control operations are allowed. In agreement with BOSS driver conventions

read and write operations may specify wait, proceed, or unconditional proceed

However, under BOSS all 1/ 0 operations are wait. The ASCII or binary

option has no significance and sequential operations are always assumed.

READ requests cause eight bit data to be read from the tape directly

into the user's buffer. The transfer stops when the buffer is full or when the hardware senses an end of record condition. If the buffer length

is less than the record length, overflow data is lost. If a parity error

occurs, the system attempts to reread the record four times before giving

up. At the end of the reread operation, the tape is positioned in the inter

record gap following the defective record.

WRITE requests cause eight bit data to be written from core to the

tape. The operation terminates when the buffer limit is reached. If the

tape is positioned at the beginning of tape marker when a WRITE request

is received, the system generates 4 inches of blank tape before starting

the WRITE operation. This insures that the BOT is passed prior to starting

the WRITE operation. ( 5A. Detailed Driver Description

1. Parameter Set-up

Entry Point: MTDVR

Contents of Registers on Entry:

R3 -- Address of termination routine within Exec (DVRTN) that

is entered to indicate normal termination

R4 -- Physical address of magnetic tape

R5 -- Address of termination routine within Exec that is entered

to indicate device unavailable (ABTRM)

R7 -- Address of the SVC parameter block

R8 -- Function code and logical unit number

R9 -- Address of the beginning of the user buffer

RA -- X'0001'

RB -- Address of the end of the user buffer

Functions:

1. R0 is loaded with the address of the selector channel.

2. An output command stop is sent to the selector channel.
- 22 -

3. The Function Code is tested for a magnetic tape command

and a branch is executed to the proper routine (COMAND)

.

4. R6 is loaded with the number of retries permitted on a parity failure (X'0004 1 ).

5. The number of halfwords to be transferred is loaded in RA.

6. The status of the magnetic tape is tested for the

unavailable status. If this status is set, the driver exits

to the system (ABTKM)

.

7. The function code is tested for a READ or WRITE function and

a branch is executed to MTR or MTW respectively.

2. Write Service Routine

Entry Point: MTW

Contents of Registers on Entry:

RO -- Address of the selector channel

R3 -- Address of termination routine within the EXEC that is

entered to indicate normal termination (DVRTN)

R4 -- Physical device address of the magnetic, tape

R6 -- Retry counter

R7 -- Address of the SVC parameter block

R8 -- Function code and logical unit number

R9 -- Address of the start of the user buffer

RA -- Number of halfwords to be transferred

RB -- Address of the end of the user buffer

Functions

1. The status of the magnetic tape is tested for the

write protected status. If this bit is set the driver exits

to the system (UNRTRM)

.

2. The status of the magnetic tape is tested for the

end-of-tape status. If this bit is set the driver exits to

the system (ABTRM)

.

3. The status of the magnetic tape is tested for the

beginning-of- tape status. If this bit is set, four inches

of tape are erased before proceeding with the WRITE operation.
23 -

4. The number of words to be transferred is sent to the

magnetic tape controller and the starting and ending

addresses of the user buffer are sent to the selector

channel.

5. The driver sends a Write command to the magnetic tape

controller and a Go-Write command to the selector channel.

6. The driver loads R1 with a parity failure retry pointer

and branches to the termination routine (CS)

.

Read Service Routine

Entry Point: MTR

Contents of Registers on Entry:

RO -- Address of the selector channel

R3 -- Address of termination routine with the Exec that is entered

to indicate a normal termination (DVRTN)

R4 -- Physical device address of the magnetic tape

R6 -- Retry counter

R7 -- Address of the SVC parameter block

R8 -- Function code and logical unit number

R9 -- Address of the start of the user buffer

RA -- Number of halfwords to be transferred

RB -- Address of the end of the user buffer

Functions:

1. The -status of the magnetic tape is tested for the

end-of-tape status. If this bit is set, the driver exits to

the sys tern (ABTRM)

.

2. The number of halfwords to be transferred is sent to the

magnetic tape controller and the starting and ending addresses

of the user buffer are sent to the selector channel.

3. The driver sends a Read command to the magnetic tape controller

and a Go-Read command to the selector channel.

4. The driver loads Rl with a parity failure retry pointer and

branches to the termination routine (CS)

.
- 24 -

4. Command Service Routine

Entry Point: COMAND

Contents of Registers on Entry:

RO -- Address of the selector channel

R3 -- Address of termination routine within Exec that is

entered to indicate a normal termination (DVRTN)

R4 -- Physical address of magnetic tape

R5 -- Address of termination routine within the Exec that is

entered to indicate device unavailable (ABTRM)

R7 -- Address of SVC parameter block

R8 -- Function code and logical unit number

R9 -- Address of the start of the user buffer

RA -- X'0001'

RB -- Address of the end of the user buffer

Func tions

1. The function code is tested for a. WRITE END-OF-FILE command.

If this operation is specified, the status of the

magnetic tape is tested for the write protect status. If

this bit is set, the driver exits to the system (UNRTRM)

.

2. The function code is tested for the BACKSPACE FILE or the

BACKSPACE RECORD command. If either of these commands is

specified, the status of the magnetic tape is tested

for the beginning-of- tape status. If this bit is set the

driver exits to the system (EOMTRM)

.

3. The function code is tested for the SPACE FORWARD FILE of the

SPACE FORWARD REGORD command. If either of these commands

is specified, the status of the magnetic tape is

tested for the end-of-tape status. If this bit is set, the

driver exits to the system (EOMTRM) .

4. The function code is translated into an index value for the

command table, and the magnetic tape command is output to the

tape controller.

5. The driver branches to the termination routine (CS)

.
- 25 -

Termination Routine

Entry Point: CS

Contents of the Registers on Entry:

RO -- Physical address of the selector channel

R1 -- Address of parity failure retry routine

R3 — Address of the termination routine within the Exec that

is entered to indicate a normal termination (DVRTN)

R4 — Physical address of the magnetic tape

R5 -- Address of the termination routine within the Exec that is

entered to indicate device unavailable (ABTRM)

R7 -- Address of the SVC parameter block

R8 -- Function code and logical unit number

R9 -- Address of the beginning of the user buffer

RA -- Retry counter

RB -- Address of the end of the user buffer

Functions:

1. The status of the magnetic tape is tested for a parity

failure. If a parity failure occurred, the retry counter is

decremented by one. If the retry counter is greater than zero

a BACKSPACE RECORD command is sent to the magnetic tape and

the driver branches to address specified by Rl. If the retry

counter is equal to zero the driver exits to the system (UNRTRM)

2. The status of the magnetic tape is tested for the

end-of-file status. If this bit is set, the status is also

tested for the end-of-tape status. If only the end-of-file

status the driver exits to the system (EOFTRM) . If both bits

are set the driver exits to the system (ZZZZ)

.

3. If the end-of-file status is not set, the status of

the magnetic tape is tested for the end-of-tape status. If

this bit is set the driver exits to the system (EOMTRM)

.

4. If no error status bit is set, the driver exits to the system

through R3.
- 2 &

-

J>B,. Error Status Code

The following are the error conditions that the driver checks

for; if any of these conditions are encountered the appropriate status

is returned in the user's parameter block.

1. Illegal Function (X'C085')

A control operation was specified, but there was no valid function

command. A WRITE operation was attempted on a write protected tape.

No data transferred.

2. Device Unavailabe (X'A085')

The tape transport is not on line. Either the tape transport or the

format control unit is not available to accept commands.

3. End-of-Tape (X'9085')

An end-of-tape (EOT) condition was detected. This can occur on a

READ, a WRITE, a SKIP FILE FORWARD, or a SPACE RECORD FORWARD. The endof-tape status is also returned when the beginning-of- tape marker is

encountered on SKIP FILE REVERSE or a SPACE RECORD REVERSE command.

4. End-of-File (X'8885')

The end-of-file status is returned if the end-of-file marker is

detected during a READ operation.

5. Parity Failure (X'8485 1 )

READ: The parity failure status bit was detected and after four (4)

rereads the error condition still existed. The tape is

positioned after the erroneous record.

WRITE: The parity failure status was detected and after four(4)

rewrites the error condition still existed. The tape is

positioned after the erroneous record.

50. System Generation Procedure

The BOSS Kennedy 9- track Magnetic Tape driver source tape should be

inserted in the BOSS source tape prior to the END statement. The BOSS

Kennedy 9- track Magnetic Tape driver source tape should start with the

statement IF KNNEDY and should end with a PAUSE STATEMENT.
- 27 -

The statement KNNEDY EQU'85' should be inserted in the BOSS

iPTION module.

I

The SYSGEN parameters for the driver include the following:

SELCH -- Physical address of the selector channel

KMDTAB -- Table of magnetic tape controller halfwords

(See Section l.E)
28

REFERENCES

1. user's Manual, Publication Number 29-261R01 Interdara, Inc. 1971

2 Real Time Operating System Reference Manual, Interdata Publication

Number 29-240RO6. Interdata, Inc. 1970

3. 16 -Bit Loader Descriptions Manual, Interdata Publication Number

B29-231R06. Interdata, Inc. 1970

4. Basic Operating System (BOSS) Reference Manual , Interdata Publication

Number 29-292R01. Interdata, Inc. 1972

5. Selector Channel Programming Specifications, Interdata Publication

Number 02-232R01

.

6. System 8000 Digital Magnetic Tape Recorder Operation and Maintenance

Manual, Kennedy Co. Publication Number 193-8000 001.

7. System 8000 Model 8208 NRZl Format Control u“it “qq.

Maintenance Manual, Kennedy Co. Publication Number 193-8208-001.

8. Magnetic Tape Controller I/O Specifications, Xebec Systems Inc.

Publication Number 300901. 1972
- 29 -

Appendix A. Transporting Magnetic Tapes Between the Sound Lab Data

Acquisition System and the NBS UNIVAC 1108

One important use of magnetic tapes is to transport programs and data

between the Sound Lab system and the NBS UNIVAC 1108. The recording format

on the Interdata system is based on Interdata's use of the 8-bit byte

as the basic unit of memory. The UNIVAC 1108, which is a 36-bit word

length machine, uses a 9-bit data format. Hence there is a problem of

compatibility between tapes written on the Sound Laboratory Data Acquisition

System and tapes written on the UNIVAC 1108. Two programs are available

for use on the UNIVAC 1108 which handle this problem as follows:

A. RDBIN:

RDBIN is a FORTRAN callable subroutine which allows the user to read a 9- track binary tape and reformat the input into signed integers

numbers. The tape is considered a string of binary digits which the program

groups as 4, 8, 12, 16, 20, 24, 28, 30, 32, 36 bit integers. These integers are then sign extended into 36-bit l's complement format in the UNIVAC

1108 memory.

B. UTIL* C0PY-T0-9 TRK

UTIL* C0PY-T0-9 TRK. This routine allows the user to copy a symbolic element from a program file on mass storage and output it as unit record images on 9- track magnetic tape. Each 6-bit field data character

is translated into its equivalent 8-bit ASCII character. Each record is

81 frames/ charac ters long

.

Write-ups for these two programs are available from the Computer

Services Division.
Appendix B.

- 30 - Kennedy Mag Tape General Loader Assembly Listings

KENNEDY MAG TAPE GENERAL LOADER 3/23/74

0000

0001

0002

0003

0004

0005

0006

0007

0008

0009

000A

00CB

000C

0O0D

0O0E

0O0F

R0

R1R2

R3

BYTE

PICK

SEQNUM

ONE

TUO

FOUR

A

B

CD

EABSF

EQU

EQU

EQU

EQU

EQU

EQU

EQU

EQU

EQU

EQU

EQU

EQU

EQU

EQU

EQU

EQU

0

12

3

4

56

7

89

10

1112

1314

15

^SYMBOL TABLE BUILDS DOUNIJARD FROM START

0000R C8A0

0080

0004R 4300

000CR

0003R C3A0

0080

000CR 40A0

0518R

0010R 40A0

051CR

0014R 40A0

05 IER 0018R 0BAA

001AR 40 A0 CLEAR

0516R

00 IER C3A0

0000R

0022R 4OA0

0514R

002GR 0866 CONT

0023R 0EFF

002AR C870

0001

002ER CS80

0002

0032R C893

LHI A.X'80'

STH A, LOC

STH A, BIAS

STH A, PTOP .

SHR

STH

A,

A

A,LOCX

LHI A, START

STH A,CRNT

SHR

SHR

LHI

SEQNUM, SEQNUM

ABSF. ABSF

ONE, 1

LHI TUO, 2

LHI FOUR,

4

BIAS REDEFINITION

RESET PTOP TO BIAS

CLEAR SYMBOL-TABLE

CLEAR SEQNUM

SET REL MODE

SET CONSTANTS 1,2,4

LOAD IS THE START LOCATION FOR THE LOADER

GEtToAD+A AND G0"t0R LOAD+8 FOR rxlSuzfLO^^IAS

START LHI A,X’80' INITIALIZE LOC, BIAS

REDEF

*+3
KENNEDY MAG TAPE GENERAL LOADER ; 3/23/74

0004

0036R C8A0

0494R

LHI A,MCRLF INITIALIZE CRLF FOR TTY

003AR 4120

0346R

BAL R2*LIST

003ER 48A0

05 ICR LH A, BIAS

0042R C8C0

FFFC

LHI C,-4

0046R 08BA PBIAS LHR B* A UNPACK BIAS ' • 004SR CCB0

000C

SRHL B, 12 FOR PRINTING

‘ "

004CR C6B0

0030

OHI B,X'30'

0050R C5B0

003A

CLHI B,X'3A'

0054R 4280

005CR

BL *+8

0053R CAB0

0007

AH I B.7

005CR D2BC

04DBR

STB B,MBIAS+11<C)

0060R CDA0

0004

SLHL A.4

0064R 0AC7 AHR C,ONE ' 1

’ -

.. 0066R 4210

0046R

BM PBIAS

006AR C3A0

04D0R

LHI A,MBIAS . PRINT BIAS = BBBB

006ER 4120

0346R

BAL R2*LIST •;

0072R 0B67 NEXT SHR SEQNUM, ONE DECR SEQ COUNT

0074R 4120 BAL R2, INPUT INPUT ONE RECORD

03DSR

0078R C8A0

006A

LHI A, 106 COMPUTE CHECKSUM

007CR 07CC XHR C.C .... . ....

007ER 47CA

0520R

CKIT XH C.BUFFCA) BY XH OF EVERY HU OF BUFR

0082R 0BA8 SHR A,TUO AND UHEN DONE

0084R 4310

007ER

BNM CKIT

0088R C7C0

FFFF

XH I C,-l UITH-FFFF. RESULT SHOULD

008CR 4230

00ECR

BNZ CERR BE ZERO '

0090R 4560 CLH SEQNUM-BUFF COMPARE TO SEQ NUM

0520R
- 32 -

KENNEDY MAG

0Q94R 4230

00F4R

0098R C850

0524R

003CR C340

00OC

TAPE GENERAL LOADER 3/2S/74

BNE SERR

LHI PICK.BUFF+4 ADJUST PICK, BYTE

LHI BYTE, 12.

00AOR C55Q LOOP

058CR

00A4R 4330

0O72R

0OA8R 43A5

0000

0OACR 4110

03C2R

0080R 0AAA

00B2R 4SBA

00B3R

0OB6R O30B *

00B8R 0072R JUMP

0120R

02FAR

0174R

00C0R 01 SCR

0193R

01F8R

0204R

00C8R 01B3R

01C0R

01D3R

01F0R

00D0R 021OR

021CR

00D8R

031AR *

00D8R 4BA5 EITM

0000

00DCR 4110

03C2R

00E0R 05A9

00E2R 4230

010AR

00E6R 0766

03E8R 4300

00A0R

O0ECR C3A0 CERR

CLHI PICK,BUFF+10B TEST IF RECORD DONE

BNL NEXT

LH A.0(PICK) EXTRACT NEXT COMMAND

BAL R1,EXTR

AHR LH

’A.

A

B, JUMP(A) GO TO COMMAND ROUTINE

BR B

*

DC NEXT, END. CHAIN. FLIP

DC LDX.LDL.RFIN.DFIN

DC UNAB , UNRL, DUAB, DURL

DC RBCD.DBCD.EITM. LABEL

SH A.0CPICK) FETCH SECOND DIGIT

BAL Rl.EXTR OF EX CONTROL ITEMS

CLHR

BNE

A, FOUR

LERR

IF IT'S E4.ZER0 SEQ

OTHERUISE, LOAD: ERR

XHR

B SEGNUM, SEQNUM

LOOP

LHI A.MCSERR CKSM ERR MESSAGE
KENNEDY NAG TAPE GENERAL LOADER 3/25/74

00F0R

048AR

4300 B *+8

00F4R

00F8R

CSA0 SERR LHI A.MSNERR SEQ NUM ERR NESSAGE

00F8R

0496R

4120 BAL R2.LIST

00FCR

0346R

C8A0 ERROR LHI A.X' 006F* DISPLAY X'0F' TO

0100R

000F

9A7A UDR ONE, A SHOU INPUT ERROR

0102R C200 LPSU *+4 -

0 106R

0106R

8000 DC X' 3000' , A (NEXT+2)

010AR

0074R

C8B0 *

LERR LHI B,X'FE' LOAD ERR IF E1.E2.0R E3

010ER

00FE

C8A0 LHI A,MLERR BYTE IS E

0112R

04BAR

4120 BAL R2-L1ST

0116R

0346R

3A7B UDR ONE.B DISPLAY FE

0113R C200 LPSU *+4

01 ICR

01 ICR 8000 DC X' 8000', LOOP

0120R

00A0R

0B33 *

END SHR R3.R3 CLEAR R3 FOR UNDEF FLAG

0122R C8C0 LHI C, START

0126R

0000R

CBC0 END1 SHI C.8 ADJUST POINTER TO TABLE

012AR

0008

45C0 CLH C-CRNT

012ER

0514R

4220 BTC 2,END5 B IF TABLE ENTRY TO TEST

0132R

0160R

43B0 LH B.PTOP

*

0136R

051ER

40B0 END2 STH B,B IAS UPDATE BIAS

013AR

05 ICR 4eB0 STH B,LOC FORCE LOC = BIAS

013ER

0518R

0833 LHR R3,R3 TEST UNDEF FLAG

0140R 4230 BNZ END3

0144R

014AR

43 B0 LH B,LOCX GO TO NON-ZERO LOCX

0148R

0516R

023B BTCR 3,B ONLY IF UNDEF FLAG ZERO
KENNEDY MAG TAPE

0 ' 4AR C8A0 END3

04ACR

014ER 4120 END4

0345R

0152R 4SG0

05 ICR 0156R 9A7B

0158R C200

015CR

015CR 8000

0026R

0160R 48BC END5

0006

0164R 4310

0126R

016SR C3A0

0055

016CR 4130

0370R

0170R 4300

0126R

GENERAL LOADER

LHI A.MNEND

BAL R2,LIST

LH R0.BIA3

UDR ONE/B

LPSU *+4

-- 3/2S/74

DC

LH

X* 8000' -CQNT

B,6CC)

BNM END 1

LHI A.C'U'

BAL R3,SH0U

B END1

0174R C7F0

FFFF 017SR 4SA0

*

FLIP XHI

LH

ABSF,X'FFFF*

A,LOC

83 iorc 017CR 43B0

051AR

LH B,L0C+2

01S0R 40A0

051AR

STH A,L0C+2

0134R 40B0

0513R

STH B.LOC

0188R 4300

00A0R *

B LOOP

01SCR 4130

039AR

LDX BAL R3,GETT

0190R 40D0

0516R

STH D,LOCX

0194R 4300

00AGR *

B LOOP

0193R 4130

039AR LDL BAL R3,GETT

019CR 45D0

0514R

LDL0 CLH D.CRNT

01AOR 4330

027SR

BNL FERR

DISPLAY 00 FOR NORMAL END

EXAMINE TABLE ENTRY FOR

UNSATISFIED REFS

PRINT UNDEFS

R3 NON ZERO IS UNDEF FLAG

FLIP THE ABS FLAG

FLIP LOC COUNTERS

SET EXECUTION ADRS

SET LOAD LOCATION
35

KENNEDY MAG TAPE GENERAL LOADER 3/28/74

01A4R 40D0

0518R

STH D.LOC

01A3R 45D0

051ER

LDL1 CLH D.PTOP

01ACR 4280

00A0R

BL LOOP

01G0R 40D0

051ER

STH D.PTOP UP PTOP IF NEC.

01B4R 4300

00A0R *

B LOOP

01B3R 4120

03AAR

UNAS BAL R2.U0RD LOAD 2 BYTES ABS

01 BCR 4300

01C8R

’ B UNRX . 01C0R 4120

03AAR

UNRL BAL R2.U0RD LOAD 2 BYTES REL

01C4R 4AD0

05 ICR AH D.B IAS

01C8R 43CB

0518R

UNRX LH C.LOC

01CCR 40DC

0000

STH D.0CC)

' •

:

. •; 01D0R 0AC8 AHR C.UJO BUMP LOAD LOCATION

01D2R 08DC LHR D,C

01D4R 4300

013CR *

B LDL0

01DSR C8E0

01B8R

DUAB LHI E.UNAB LOAD 4 BYTES ABS

01DCR 4120

03AAR

DU BAL R2.U0RD

01E0R 43C0

0513R

LH C.LOC

01E4R 40DC

0000

STH D.0(C)

01ESR 0ACS AHR C.TUO

01 EAR 40C0

0513R

STH C.LOC

01EER 030E *BR E

01F0R C8E0

01C8R

DURL LHI E.UNRL LOAD 4 BYTES REL

01F4R 4300

01DCR *

B DU

/

- •

01F8R 4130 RF IN ' BAL R3.GETT GET REF VALUE

039AR

i

i
36 - KENNEDY MAG TAPE GENERAL LOADER 3/^8/?4

01FCR 40D0

0510R

STH D.REF

0200R 4300

00A0R *

B LOOP

0204R 4130

039AR

DFIN BAL R3-GETT GET DEF VALUE

O20OR 40DC

0512R

STH D,DEF

02GCR 4300

00A0R *

B LOOP

0210R C800

8000

RBCD LHI R0,X'8000 ' SET REF FLAG IN REG 0

0214R 48E0

0510R

LH E-REF SET REF FLAG IN REG E

0213R 4300

0222R

* B BCD1

02 ICR 0700 DBCD XHR R0.R0 CLR REF FLAG IN REG 0

021ER 43E0

0512R

LH E-DEF SET DEF VALUE IN REG E

0222R 4120

03AAR

BCD 1 BAL R2-UORD

0226R 40D0

0522R

STH D-BUFF+2 PUT 6 CHAR SYMBOL

022AR 4120

03AAR

BAL R2.UORD INTO BUFF (2-7)

022ER 4OD0

0524R

STH D-BUFF+4

0232R 4120

03AAR

BAL R2-U0RD

0236R 40D0

0526R

STH D-BUFF+6

023AR C8C0

0000R

LHI C, START SEARCH CURRENT TABLE

023ER CBC0

0008

BCD2 SHI C,8 FOR A MATCH

0242R 45C0

0514R

CLH C-CRNT

024SR 4220

0280R

*

BTC 2-BCD3

024AR 40EC

0000

STH E,0(C) ENTER NEU SYMBOL

024ER 43A0

0522R

LH A-BUFF+2

0252R 40AC

0002

STH A,2CC)
KENNEDY MAG TAPE GENERAL LOADER 3/23/74 ;•

. 0256R 48A0

0524R

LH A.BUFF+4 *• 025AR 40AC

0004

STH A, 4(C)

025ER 48A0

0526R

LH A,BUFF+6

0262R 06A0 . OHR A,R0 REF/DEF FLAG IN R0

0264R 40AC

0006

STH A, 6(0

_ ;

- . . ••.j *’ 02S8R CBC0

0008

SHI C,8 ADJUST CRNT TO POINT

026CR 40C0

0514R

STH C.CRNT TO NEXT AVAILABLE SLOT

0270R 45C0

051ER

CLH C.PTOP

0274R 4380

00A0R

BNL LOOP ... -

•

•

0278R C8A0

04A0R

FERR LHI A,MFULL MEM FULL ERROR

027CR 4300

014ER

B END4

0280R 48AC

0002

BCD3 LH A, 2(C) COMPARE BCD TO TABLE ENTRY

0284R 45A0

0522R

CLH A.6UFF+2

0288R 4230

023ER

BNE BCD2 RETN TO BCD2 IF NO MATHC

028CR 48AC LH A,4(C)

0004

0290R 45A0

0524R

CLH A,BUFF+4

0294R 4230

023ER

BNE BCD2

0293R 48AC

0006

LH A. 6(0

029CR 08BA LHR B,A SAVE REF/DEF FLAG IN B 029ER C4A0

7FFF

NHI A,X'7FFF' MASK OUT REF FLAG

02A2R 45A0

0526R

CLH A.BUFF+6

B2A6R 4230 BNE BCD2

023ER *

*POU BRM

*A MATCH

* 02AAR 0800 LHR R0.R0 TEST TAPE VALUE
KENNEDY MAG TAPE GENERAL LOADER

02ACR 4210

02C2R

BM BCD4

02GOR 03B3 LHR B,B

02B2R 4210

02EAR

BM BCD7

02B6R C8A0

4D2A

LHI A,C'M*'

028AR 4130

0334R

BAL R3.SH0WI

02GER 4300

00A0R *

8 LOOP

02C2R 48DC

0000

BCD4 LH D.0CC)

02C6R 0388 LHR B.B

02C8R 4310

0302R

BNM CHI

02CCR 07AA XHR A.

02CER 4SCD

0000

BCD5 LH C,0(D)

02D2R 43.60 02E2R

B2 BCD6

02D6R 0AA7 AHR A, ONE

02DSR 4240

033ER

BO RELP

02DCR 03DC LHR D,C

02DER 4300

02CER

6 BCD5

02E2R 40ED

0000

BCD6 STH E.BCD)

02E6R 4300

00A0R *

B LOOP

02EAR 40AC

0006

BCD7 STH A, 6(C)

02EER 43AC

0000

LH A, 0(C)

02F2R 40A0

0510R

STH A. REF

02F6R 40EC

0000 *

STH E.0(C)

02FAR 43D3

0512R

CHAIN LH D. DEF

02FER 43E0

0510R

LH E.REF

0302R 43CE

0000

CHI LH C,0(E)

3/28/74

B IF TAPE VALUE IS REF . TEST TABLE ENTRY

B IF TABLE ENTRY IS REF

MULTIPLE DEF

KEEP TABLE ENTRY AS IS

TAPE VALUE IS REF

TEST TABLE ENTRY

B IF TABLE ENTRY ID DEF

INIT COUNTER

REF-REF

COUNT LINKS IN REF CHAIN

' TOO MANYI REF-LOOP...

FOLLOW TABLE THREAD

ATTACH TAPE THREAD

TAPE DEF, TABLE REF

CLEAR REF FLAG

SET REF VALUE FROM TABLE

. SET DEF VALUE FROM TAPE

DEF THE REFS

FOLLOW THE REF THREAD
KENNEDY MAG TAPE GENERAL LOADER '3/23/74

0306R 40DE

0000

STH D»0(E) AND DEF EVERY LITTLE REF

03OAR 05CD CLHR C»D SEE IF UE'VE BEEN HERE

030CR 4330

033ER

BE RELP BEFORE. THATS REF-LOOP

0310R 03EC LHR E.C - ••• ,

0312R 4230

3302R

BNZ CHI

0316R 4300 B LOOP

0CA0R *

031AR 4120

03AAR

LABEL BAL R2.U0RD PRINT LABEL = LLLLLL

031ER 40D0

04E6R

STH D.MLABEL+8

0322R 4120

03AAR

BAL R2.U0RD

0326R 40D0

04ESR

STH D.MLABEL+10

032AR 4120

03AAR

BAL R2,(JORD

032ER 40D0

04EAR

STH D,MLABEL+12

0332R C3A0

04DER

LHI A.MLABEL ' -

' ' •-

0336R 4120

0346R

LABI BAL R2.LIST

033AR 4300

00A0R *

B LOOP

033ER C3A0

04C6R

RELP LHI A.RELPM

0342R 4300

014ER

B END4

0346R C8D0

0002

LIST LHI D,2 ASSUME TTY = DEV- NO. 2

034AR DED0

0433R

OC D.TURT

034ER D30A

0000

LI LB R0.0CA) A IS MESSAGE POINTER

0352R 4110

0366R

BAL R1.L2 OUTPUT CHAR

035SR 0AA7 AHR A, ONE

0353R C500

000D

CLHI R0,X'0D* UAS CHAR = CAR RET

035CR 4230

034ER

BNE LI

0360R C300 LHI R0,X'0A' OUTPUT LF AFTER CAR RET
40

KENNEDY MAG TAPE GENERAL LOADER 3/28/74

000A

0364R C312 LHR R1.R2

0366R 9DDE L2 SSR D-E OUTPUT CHAR FROM R3

0369R 4290

03bbR

BTC 9,L2

036CR 9AD0 UDR D.R0

036ER 0301 BR Rl

0370R 40B0

0526R

SHOU STH B,BUFF+6 PUT SYM NAME INT

0374R 48BC

0004

LH B,4(C) BUFF (2:7)

0378R 40B0

0524R

STH B.BUFF+4

037CR 48BC

0002

LH 9. 2 CCD

0380R 40B0

0522R

STH B,BUFF+2

0384R 40A0

0520R

SH0U1 STH A, BUFF PUT U OR M INTO BUF

9383.R C8A0

0D0A

LHI A,CRLF

03SCR 40A0

0528R

STH A>BUFF+8 PUT CRLF INTO BUFF (3. 9)

0330R C8A0

0520R

LHI A, BUFF

0394R 4120

0346R BAL R2,LIST PRINT U OR M SYMBOL

0398R 0303 *

GETT

BR R3

039AR 4120

03AAR BAL R2,U0RD GET 2 BYTES OF DATA

039ER 03FF LHR ABSF, ABSF AND ADD BIAS TO IT 03A0R 4233

0000 BNZ 0CR3) IF IN REL MOD

03A4R 4AD0

05 ICR AH D-BIAS

03A8R 0303 *

UORD

BR R3

03AAR 0809 LHR C , FOUR ASSEMBLE 1 UORD OR

03ACR 48A5

0000

U0RD1 LH A.-0CPICK) TUO BYTES OF DATA

03B0R 4110

03C2R

BAL Rl.EXTR INTO REG D. 03B4R CDD0

0004

SLHL D»4

83B8R 06DA OHR D,A

03BAR 0BC7 SHR C* ONE
41..-

KENNEDY MAG TAPE GENERAL LOADER 3/23/74

03BCR 4230

03ACR

. BN2 UORD1

03C0R 0302 BR • R2

03C2R CCA4

0000

'T* EXTR SRHL A.0CBYTE) EXTRACT ONE FOUR BIT

03CSR C4A0

000F

NHI A.X'F' BYTE FROM THE DATA

03CAR 0B49 SHR BYTE. FOUR IN REG A. 03CCR 4311

0000

BNM 0<R1)

03D0R C340

000C

LHI BYTE. 12 UPDATE PICK AND BYTE

03D4R 0A58 AHR PICK.TUO

03D6R 0301 BR R1 *

* mG TAPE INPUT ROUTINE

4c*READS 108-BYTE BINARY RECORDS FROM MAG TAPE *

* REDEFINE SOME REGISTERS

0002 RTN EQU R2 LINK REGISTER

000D DEV EQU D DEVICE ADDRESS

000A AC1 EQU A 0001 DAT EQU R

INPUT DATA 2. STATUS

000E CBA EQU E CURRENT BYTE ADRS POINTER

000B CRB *

*CALL

EQU 11 TEMP STOR FOR BYTE ASMS

BAL RTN . INPUT

03D8R 43D0

0592R

INPUT LH DEV.BINDV BINARY INPUT DEVICE ADDR

03DCR CSE0

0005

LHI CBA, 5 NO. OF RETRIES

03E0R C8F0

00F0

LHI SLCH.SELADR GET SELECTOR CHANNEL ADDR

03E4R DEF0

0598R

OC SLCH.SCST GIVE SELCH STOP

03ESR DED0

0590R

oc . DEV, CREG

03ECR D3D0

059ER

UH DEV, NOOP SELECT TAPE

03FGR 9DDSI SSR DEV, DAT

03F2R 4310

03F0R

BFC I, SI

03F6R DED0

05SER

OC DEV.SREG

03FAR 99D1 RHR DEV, DAT CHECK DEVICE O.K.
- 42 -

KENNEDY MAG TAPE GENERAL LOADER

03FCR C410

FF5F

NHI DAT,X'FF5F

O400R 4230

03F0R

BNZ SI

0404R C810

0036

LHI DAT. 54

04Q3R DEDO

053FR

OC DEV.UREG

043CR 93D

UHR DEV. DAT

040ER D3F0

0594R

UH SLCH.BFST

0412R D3F0

0596R

UH SLCH.BFEN

0416R DEDO

0590R

OC DEV. CREG

041AR D3D0

059AR

UH DEV.RDCM

041ER DEF0

0599R

OC SLCH.SCMD

0422R 9DF1 SSR SLCH.DAT

0424R 2031 BTBS 3. 1 0426R DEF0

0598R

OC SLCH.SCST

042AR 9DD

SSR DEV. DAT

042CR 2211 BFBS 1,

042ER DEDO

053ER

OC DEV. SREG

0432R 99D

RHR DEV. DAT

0434R C310

0400

THI DAT. X' 400'

0433R C310

0100

THI DAT.X' 100'

043CR 4230

047SR

BNZ EFER

044OR C310

0040

THI DAT.X' 40'

0444R 4230

043OR BNZ DEER

044SR C310

0A10

THI DAT.X' A

10'

044CR 4230

0468R

BNZ PEM3

0450R 0302 BR RTN 0452R GBE7 PRER SHR CBA.ONE

0454R 4330

0468R BZ PEM3

0453R DEDO

0590R

OC DEV, CREG

3/28/74

BOF AND PROTECT STATUS ALL

10S BYTES TO WORD COUNT RE

START ADDR. TO SELCH

END ADDR. TO SELCH

READ RECORD COMMAND TO FOR

START SELCH

UAIT FOR SELCH TO TERMINAT

CHECK DEVICE STATUS

GET STATUS REG

BAD DATA

EOF ERROR

EOT ERROR

ANY OTHER ERROR

DECREMENT RETRY COUNT
43

KENNEDY MAG TAPE GENERAL LOADER 3/28/74

045CR D3D0

059CR

UH DEV, SPRV SPACE REVERSE ONE RECORD

0460R 9DD1 SSR DEV, DAT

0462R 2211 BFBS 1,1

0464R 4300

03F0R

B SI

0463R C8A0

04EER

PE MS LHI A,PEMSA

046CR 4120

0346R

ERHT BAL R2,LIST

0470R C200

0474R

LPSU *4-4

0474R 8000

0026R

DC X'8000' ,CONT

0478R C8A0

04FCR

EFER LHI A,EFERA

047CR 4300

046CR

B ERHT

0483R C8A0

0506R

DEER LHI A,DEERA

0484R 4300

046CR

B ERHT

0433R 93A9 TURT DC X'9oA9' * MESSAGES

0D0A . CRLF EQU X'0D0A'

048AR 2043

4853

4D20

4552

5220

MCSERR DC C' CKSM ERR'

0434R 0D0A MCRLF DC CRLF

0496R 5345

512D

4552

5220

0D0A

MSNERR DC C' SEQ-ERR' , CRLF

04A0R 204D

454D

2D46

554C

4C20

0D0A

MFULL DC C' MEM-FULL', CRLF

04ACR 204E MNEND DC C' NORMAL END', CRLF

4F52

4D41

4C20

454E
44 -

KENNEDY

4420

0D0A

043AR 204C

4F41

4420

4552

5220

0D0A

04C6R 5245

462D

4C4F

4F50

0D0A

04D0R 4249

4153

203D

2042

4242

4220

0D0A

04DER 4C41

4245

4C20

3D20

4C4C

4C4C

4C4C

0D0A

04EER 2052

4541

4420

•4552

524F

5220

0D0A

04FCR 454F

4620

5245

4144

0D0A

0506R 2044

4556

2045

4E44

0D0A

0510R 0000 REF DC

0512R 0000 DEF DC 0514R FFECR CRNT DC

3/23/74

C' LOAD ERR '.CRLF

C ' REF-LOOP"' * CRLF

C'BIAS = BBBB'.CRLF

C' LABEL = LLLLLL'.CRLF

C' READ ERROR' , CRLF

C'EOF READ', CRLF

C' DEV END', CRLF

0

0

START-32

MAG TAPE GENERAL LOADER

MLERR DC

RELPli DC

M3IAS DC

MLABEL DC

PEMSA DC

EFERA DC

DEERA DC
KENNEDY MAG TAPE GENERAL LOADER

0516R 0000 LOCX DC 0

051 SR 0030 LOC DC X' 80'

051AR 0000 DC ' 0 05 ICR 0030 BTAS DC X'80'

051ER 0000 PTOP DC 0 C520R BUFF D3 103

05SCR DS 2 05SER 0307 SREG DC X'0307'

05SFR UREG EQU SREG+1

0590R 0500 CREG DC. X' 0500'

000F SLCH EQl) 15 0592R 0085 BINDV DC X' 0035'

00F0 SELADR EQL) X'F0'

0594R 0520R BF5T DC BURF

0596R 05FFR BFEN DC BFST+107

0598R 0330 SCST DC X'830'

0539R SCMD EQU SC3T+1

059AR 0173 RDCM DC X' 178'

659CR 0578 SPRV DC X' 578'

059ER 0078 NOOP DC X'073' *

3/23/74

05A0R END
- - 46 -

•CE'--i:Y “P3 "-=£ GENERAL LOADER Z/2By?4

HO ERRORS

A B33A

ABSF 63BF

AC 1 0O3A

3 0006

BCD 1 S222R

BCD2 C23ER

BCD3 32B6E

ECD4 C2C2R

BCD5 32CER

BEDS B2E2R

5CD7 B2EAR

BFEN 3553R

EFST 0594J? BIAS 65 ICR BINDV 8592R

BUFF 0520R

EtTE 6334

C 333

CBA 000E

CERR 00ECR

CHI 3332

CHAIN 62FRR

CKIT 337ER

CLEAR 33:==

CONT 352ER

CRB 8088

CREE 8S38R

CRLF 8D8A

CRNT 05I4R

D 080D

DAT 3331 DEED 02 ICR DEER B4S3R

L-EERA 3535R

DEF 0512R

DEV 3301* DFIN 0234?

DU 31DCR

DUhB 3113 = DURL 01F8R

E 335E EFER 64? BE EFERA 04=0?

EITT! 53'33R BED 0128R

EMil 812E=

EHD2 0123=
KENNEDY MAG TAPE GENERAL LOADER 3/23/74

END3 0 MAR

END4 014ER

END5 0163R

ERHT 04SCR

ERROR 00FCR

EXTR 03C2R

FERR 0278R

FLIP 0174R

FOUR 0009

GETT 039AR

INPUT 03D3R

JUMP 00BBR

LI 034ER

L2 036GR

- LABI 033bR

LABEL 031AR

LDL 0193R

LDL0 019CR

LDL1 01ASR

' LDX OIBCR

LERR 010AR

LIST 034SR

LOC 0518R

LOCX 0516R

LOOP O0A0R

MS IAS 04DOR

MCRLF 0434R

MCSERR 043AR

MFULL 04A0R

MLABEL 04DER

MLERR 04BAR

MNEND 04ACR

MSNERR 0496R

NEXT 0072R

NOOP 059ER

ONE 0007

PB IAS 004SR

PENS 04SSR

PEM3A 04EER

PICK 0005

PRER 0452R

PTOP 051ER

R0 • 0000

R0001

R2 0002

R3 0003

RBCD 0210R

RDCM 059AR
48

<E--vErY -tag tape general loader

REDEF 0G96R

REF 0510R

RELP SZ3ER

PELPtt 04C6R

F.FIN 01F8R

PTM 0002

SI 03F0R

SCI1D 0599R

SCST 059BR

SFLADR 0OF0

SEQMUM 0O06

SERF G0F4R

SHOD 0370R

SH0U1 0384R

SLCH 00SF

SPRV 059CR

SREG 05BER

START ee?0R

TUO 0008

TUP.T 0488R

UNAB 0 1B6R

UHRL 01C0P

UUPA 01C8R

LORD 03APR

•JORI'I 03ACR

LJEEG 056FR

\

' I

i

3/23/74
- 49 - Appendix C. RTOS Kennedy 9-Track Magnetic Tape Driver Assembly Listings

- (.

KENNEDY 9-TRACK MAG TAPE DRIVER PAGE 1 * RTOS COMPATABLE DRIVER * FOR KENNEDY 8108 TAPE SYSTEM. * A. J. BAROODY

* JUNE IB. 1974 *

*

* EXTRN/ENTRY DECLARATIONS:

0000R ENTRY MTDVR, MTTRM

0000R

)K* INTEF

EXTRN IOEXIT.LIOTRM. IOTIJAT. IOPTST

?DATA REGISTER ALLOCATIONS

0000 R0 EQU 0 ADDRESS OF DRIVER

0001 R1 EQU 1 ADDRESS OF DCB

0002 R2 EQU 2 CALLER/IOU POINTERS

0003 R3 EQU 3 POINTER TO PARAMETER BLOCK

0004 R4 EQU 4 FUNCTION CODE AND LU 0005 R5 EQU 5 ADDRESS OF BUSY FLAG

0006 R6 EQU 6 DEVICE ADDRESS

0007 R7 EQU 7 STATUS REGISTER

0007 STAT EQU ?

0008 R8 EQU 8 0009 R9 EQU 9 000A RA EQU 10 000A AC 1 EQU 10 000B AC2 EQU 11 000B RB EQU 11 000C RC EQU 12 000C SELCH EQU 12 000D RD EQU 13 000D DEV EQU 13 000E RE EQU 14 000E DCB EQU 14 000F RF EQU 15 000F ISR EQU 15 *

*

*SYSGEN PARAMETERS

&

* SELCH ADDRESS = X'F0' *

* XEBEC CONTROLLER REGISTERS *

0000R 00 KDATA DB 0 000 1R 01 KMEM DB 1 0002R 03 KSTAT DB 3 0003R 04 KINT DB 4

0004R 05 KCMD DB 5 0005R 07 KUORD *

MTDVR

DB 7 0006R 03E1 LHR DCB. R

• GET ADDR OF DCB

0003R 93D6 LBR DEV.RS AND DEV NO. 000AR C3C0

00F0

LHI SELCH, X'F0' AND SELCH ADDRESS

00GER DEC0 OC SELCH, STOP STOP SELCH

02BER
50

K£N?oV 9“ 1 RACK i- j r^P X

E DRIVE? PACE 2

B312R 4180

X

BftL R8,MTCKDU TEST FOR TAPE AVAILABLE

0016R

B29ER

C372

: : 2 ? THI STAT.X'OOBF' IS DEVICE ONLINE?

ecifiR 4333

2225?

B2 ONLINE

eaiER C872

?•_•:: LHI STAT,X'A008' DEV UNAVAILABLE

0022? 4322

6803F

B IOEXIT

COmAND OR FUNCTION'7 0325R C'3A4 Cn^ INE LHR RA.R4

002 BR 4210

02?4P

EM CCM?ND

002CR 2434 LIS R8.4 4 RETRIES CM PARITY FAIL

0C2ER 4102

2222? BAL R6, I0PTST

OK

CHECK EUFFER LIMITS

0032R 2325 52S

0O34R C670 ILFUMC LHI STAT,X’C023' ILLEGAL FUNCTION

C220

0038R 4222

0224R

B IOEXIT

*P0 I NT SELCH INTERRUPTS TO MAG TAPE DCB

2232? 25-32 0< LHR RB.SELCH

023E? 2??E AHR R3,RB

2242? 43EB

08D8 X

STH DCB,X'D2' (RB^ STORE ADDR. OF DCB IN ISPTA3

0044? eftflfi X

AHR RP.RA TEST FOR READ

224£R 4316

2234R

BUM READ

00??? C370

0-20 LRITE THI STAT,X' 2320' TEST FOR LRITE PROTECT SET

004E? 4332

223??

B2 URT1

0252R 5676

8409 LHI R7, X' B436' UNRECOVERABLE ERROR

2255? 4722

223??

B IOEXIT

005AR : 5

2 2 2EE? URT1 CC SELCH, STOP

22EE? LH AC1 . 6 CDC3) LOAD ENDING ADDR. 2225

2252? ‘•sc n. LH AC2,4(DCB> AND STARTING ADDR. INTO REG.

6204

2255? 25AE SHR AC1, AC2 CALCULATE NO. OF

22-55? 2582 AIS AC 1,2 BYTES TO TRANSFER

tii-- 523 1 ??;L5 flCl, 1 NCU UORD COUNT

2255? 5233

2223?

oc DEV, KUORD

3078? 3523 LHR DEV, AC

SEND UORD COUNT TO KENNEDY

2

? 2623 LW EELCH, 4CR3) SEND STARTING ADDRESS
- 51 -

KENNEDY 9-TRACK MAG TAPE: DRIVER PAGE 3 i 0004 1 0076R D8C3

0006

UH SELCH,6(R3) AND ENDING ADDRESS j

ii 807AR 9DD7 SSR DEV, STAT MAG TAPE DU = 0 i 007CR 4210

0088R

BTC 1, URTOK 1

i 0030R CS70

A000

LHI R7.X'A000* TAPE UNAVAILABLE

l 0084R 4300

0058R

B IOEXIT j 008SR C8F0

01E4R

URTOK LHI RF, URTINT i

»

i 003CR C8A0

FFFF

LHI AC1.-1 AC 1 NEGATIVE EQUAL UR1TE i 0090R D02E

00 1C STM R2,23(DCB) i

I 0094R C370

0080

THI STAT. X' 0080' TEST FOR BOT i

j

. 0098R 4330

00ACR

B2 URT3 i

! 009CR DEDO

0003R

LJRT2 OC DEV.KINT ENABLE TAPE INTERRUPTS j

* 00A0R DEDO

0004R

OC DEV.KCMD K

00A4R D8DE

0048

UH DEV,72(DCB) SEND ERASE TAPE COMMAND I

j 00A8R 4300

0000F

B IOTUAT i

i 00ACR E28D

0000

URT3 SINT 0CDEV) SIMULATE INTERRUPT AND UAIT |

i 00B0R 4300

00AAR

XOK

B IOTUAT 1

! . ** ! 00B4R DECO

02BER

READ OC SELCH.STOP

\: 00B8R 43AE

0006

LH AC1, 6 (DCB) LOAD FINAL ADDR INTO REG 1

j 00BCR 4SAE

0004

LH AC1.4CDCB) LOAD STARTING ADDR. ! 00C0R 0BAB SHR AC1.AC2 NOU CALCULATE ! 00C2R 26A2 A IS AC 1 ,

NO. OF BYTES i 00C4R 90A

SRLS AC 1 .AND NO. OF UORDS i 00C6R DED0

0005R

OC DEV.KUORD i 00CAR 98DA UHR DEV. AC 1 SEND UORD COUNT TO KENNEDY

00CCR D8C3

0004

UH SELCH.4CR3) SEND STARTING ADDRESS

00D0R D8C3

0006

UH SELCH.6(R3) AND ENDING ADDRESS

00D4R 9DD7 SSR DEV, STAT TEST FOR DEVICE AVAILABLE

00D6R 4210

00E2R

BTC 1.READ1

j 00DAR C870

A000

LHI STAT, X' A000' TAPE IS NOT AVAILABLE

00DER 4300 B IOEXIT

r
KENNEDY 9-TRACK MAG TAPE DRIVER

00E2R

0036R

CSF0 READ1 LHI RF,RD INT 00E6R

0184R

24A1 LIS AC 1 . 1 00EBR D02E STM R2,28 (DCE)

00ECR

O01C

E20D

0020

4300

SINT 0 (DEV)

00FCR B IOTWAT

00F4R

00B2R

C4A0 NHI RA,X'7F00'

00F8R

7F00

C3A0 THI RA,X' 0800'

00FCR

8SC0

4330 B2 CHKl

0100R

0110R

C370 THI STAT.X'0020

0104R

0020

4330 B2 MTC2

0ieSR

0140R

C878 LHI R7, X' 8400'

01 BCR 8400

4320 B IOEXIT

0110R

00E0R

C3A0 CHKl THI RA, X' 2200'

0114R

2200

4330 BZ CHK2

0118R

0I28R

C370 THI STAT, X'0080

61 ICR 0030

4330 BZ MTC2

0120R

0143R

C870 LHI R7,X'9000'

0124R

9600

4380 B IOEXIT

0128R

010ER

C3A0 CHK2 THI RA,X' 1400'

012CR

1408

4330 BZ MTC2

013BR

0143R

C37B THI STAT, X' 0040

0134R

0040

4330 BZ MTC2

0138R

0140R

CSA0 LHI RA,X’9000'

013CR

9600

43G3 B IOEXIT

0146R

0126R

2470

3k*NOU CALCULATE POINTER TO * AND LOAD INTO AC1.

3kMTC2 LIS STAT.8

0142R 91A1 CHK3 SLLS RA, 1

PAGE 4

LOAD ISR TO POINT TO READ INTERRUPT ROUTIN

SET AC 1 TO ONE FOR READ

SIMULATE INTERRUPT

LEAVE ONLY FUNC. CODE

TEST FOR WRITE EOF

TEST FOR WRITE PROTECTED

WRITE PROTECTED, UNRECOVERABLE ERROR,

TEST FOR BACKSPACE

TEST FOR BOT

TEST FOR SPACE FORWARD

TEST FOR EOT

COMMAND IN DCB
53

KENNEDY 9-TRACK MAG TAPE DRIVER PAGE 5

0144R 4210

015AR

BM MTC3

0148R 2672 A IS STAT,

014AR C370

B00C

CHI STAT- 12 TEST FOR NO COMMAND

014ER 4230

0142R

BNE CHK3

0152R C870

C000

LHI R7-X'C800'

0156R 4300

013ER

B IOEXIT

015AR 43AE

003C

MTC3 LH AC1-60CDCB) LOAD KMDTAB ADDR. IN 015ER 0AA7 AHR AC 1, STAT

0160R 3DD7 SSR DEV- STAT

0162R 4210

B16ER

BTC 1-CMDGO

0166R C373

A000

LHI STAT, X'A000' DEVICE UNAVAILABLE

016AR 4300

0158R

B IOEXIT

016ER CSF0

01E4R

CMDGQ LHI RF.CKSTAT

0172R DED8

0004R

OC DEV-KCMD

0176R D3DA

0030

UH DEV, 8 C AC 1)

. 017AR 24A0 LIS AC 1,0 SET AC1 FOR COMMAND

017CR D02E

00IC

STM R2-23CDCB)

0130R 4300

00F2R

B 10TUAT

* READ INTERRUPT SERVICE

0I84R 4130

029ER

RBINT BAL R8,MTCKDU

0183R C370

0008

THI STAT, X' 0003' IS NOL SET?

01 SCR 4330

0134R

BFC 3-RDCK

0190R 4380

0234R

B UNREC

0194R C370

0005

RBCK THI STAT- X' 0005' IS DEVICE BUSY?

0193R 4330

01A3R

BZ INPUT NO, THEN GO READ

019CR 430E

0010

B 16 (RE) YES: THEN UAIT

01A0R 43F8

01E4R

INPUT LH RF, CKSTAT

01A4R D32E

00 1C STM R2-2SCDCB)

01ASR D3DE

004C

UH DEV, 76CDCB) SEND READ COMMAND TO

01ACR DEC0 C SELCH-GORD SELCH READ COMMAND
54

KENNEDY 9-TRACK MAG TAPE DRIVER PAGE 6 02BCR

01B0R 4300 B IOTUAT

0182R

* URITE INTERRUPT SERVICE ROUTINE

* 01B4R 4130

023ER

URTINT BAL RS.MTCKDU

61B8R C370 IS NOL SET?

0038

THJ STAT.X' 0009'

01BCR 4330

01C4R

BFC 3. URCK

01C0R 43C0

0234R

B UNREC

01C4R C370

0ae5

URCK THI STAT.X'0305' IS DEVICE BSY?

01C8R 4330

01D0R

BZ OUTPUT NO; GO URITE DATA

01CCR 430E

0010

B 16CRE) YES; UAIT

01D8R C8F0

01E4R

OUTPUT LHI RF- CKSTAT

01D4R D02E R2.23CDCB)

001C

STM

01D8R DSDE

034E UH DEV.78CDCB) SEND URITE COMMAND TO KENNEDY

01DCR DEC0

02BDR

OC SELCH.GOURT SEND SELCH URITE COMMAND

01E0R 4300

01B2R

B IOTUAT

* CHECK STATUS AFTER OPERATION COMPLETE

01E4R 4190

029ER

CKSTAT BAL R8.MTCKDU

01E8R C370

0E00

THI STAT.X' E00' TEST FOR PARITY ERROR

01ECR 4330

01F8R

BZ CS1

01F8R C37e

0100

THI STAT.X' 100' IF PARITY ERROR AND EOF THEN

eiF4R 4330

022ER

BZ RETRY

01F8R C378

ei03

CS1 THI STAT.X' 100' TEST FOR EOF

B1FCR 4330

0218R

BZ NDEOF

0203R C370

ee40

THI STAT.X' 40' TEST FOR EOT

0204R 4330

02ieR

BZ EOFTRM

e202R C370

9S30

LHI STAT.X' 9800' EOF AND EOT

020CR 4300

0 IbCR B 10EXIT

02 18R C870 EOFTRM LHI STAT.X'8800'
55

KENNEDY 9-TRACK MAG TAPE DRIVER PAGE ? 8800

0214R 4308

026ER

B IOEXIT

0218R C37B

0043

N0E0F THI STAT.X'43' TEST FOR EOT

02 ICR 4233

022SR

BN2 EOMTRM . - i 0220R 2470 OKAY LIS STAT.0

0222R 4330

02E2R

B MTTRM : 022SR C870

3033

ecmtrm LHI $TAT-X'9800* f 022AR 4303

0216R

B IOEXIT

* RETRY FOR PARITY ERROR &

822ER 2781 RETRY srs R8- 1 \~ 0230R 4310

0243R

Bun CONTIN

j 0234R C870

8400

UNREC LHI STAT-X'8408' UNRECOVERABLE ERROR

0233R 433E ERRSAV STH R3-38 (DCS) r 002S U 023CR 4303

02B2R

B MTTRM -1 0240R 08AA CONTIN LHR AC1-AC1 TEST FOR READ OR URITE

0242R 4213

0274R

BM URT

0246R 4733

0234R

B2 UNREC NOT READ OR URITE

024AR C8F0

6134R

LHI RF-RDINT POINT ISR TO READ INT. ROUTINE

024ER D02E

00 1C STM R2-28CDCB)

0252R DECS

02BER

OC SELCH, STOP

0256R 3DD7 SSR DEV, STAT

0258R 4210

0204.3 BTC 1 , RDON

. 025CR C370

A000

LHI STAT- X' A330'

0260R 4303

022CR

B IOEXIT

0264R DED8

0S33R

RDON OC DEV- K I NT ENABLE TAPE INTERRUPTS

0268R DED3

0004R

OC DEV-KCMD

026CR D8DE

0O3E

UH DEV-S2IDCB) BACKSPACE RECORD AND TRY AGAIN

0278R 43C0

01E2R

B IOTUAT

0274R C8F0

0 1B4R

LRT LHI RF-URTINT POINT ISR TO URITE INTERRUPT ROUTINE

0278R D02E

001C

STM R2-28(DCB)
56

KENNEDY 9-TRACK MAG TAPE DRIVER PAGE 8

027CR DEC0 OC SELCH. STOP

02BER

023OR 9DD7 SSR DEV. STAT

02S2R 4210 BTC 1 . LRTON

023ER

0286R C870 LHI STAT.X* A000'

A000

028AR 4300 B IOEXIT

02b2R

02SER DEDO LRTON OC DFV.KINT ENALBLE TAPE INTERRUPTS

0003R

0292R DEDO OC DEV. KCMD

0004R - 0296R D8DE UH DEV.62CDCB) SEND BACKSPACE RECORD COMMAND

029AR 4300' B IOTUAT

0272R

*COMMON ROUTINE TO RETRIEVE MAGNETIC TAFE STATUS.

DEVICE STATUS UORD IS RETURNED IN STAT.

TO USE:BPL R8.MTCKDU

029ER DECO 02BER

3KMTCKDU OC SELCH. STOP

02A2R DEDO

0004R

OC DEV. KCMD

02A6R DSDE 004AUH DEV.74CDCB) SEND NO-OP COMMAND TO TAPE

02AAR DEDO

O0G2R

OC DEV.KSTAT

02AER 99D7 RHR DEV. STAT

02BSR O303 BR R8

COMMON TERMINATION ROUTINE: Adds bed +d LidTERNl

ENTRY AT MTTRM

B2B2R C8FE

0014

hTTRri Lhi isR. 20 (bCB)

82B6R 26E1 A IS DCB. 1 MAKE DCB ADDRESS ODD

02BSR 430E

0010

B 16CDCB)

02BCR 30 GORD DB X'30'

02BDR 10 GOURT DB X' 10' 02BER 0808 STOP DC x'eseo' STOP COMMAND FOR SELCH

02C0R END
KENNEDY 9-TRACK MAG TAPE DRIVER PAGE

NO ERRORS

ACl 033A

AC2 830B

CHK 0110R

CHK2 0 125R

CHK3 0142R

CKSTAT 01E4R

CMDGQ 0iSER

comuD 03F4R

COHTIN 0240R

CS1 01F8R

DCB 830E

DEV 633D

EOrTRM S210R

EOMTRM 0226R

ERRSAV 3232-

GORD 02BCR

GOURT 32BDR

ILFUNC 033 4p

INPUT 01A0R * IOEXIT 62SCR * IOPTST 8338R * IOTUAT 0231 = ISR 030F

KCMD 0004R

KDATA 633SR

KIHT 33-33P. KFEM 008 1R KSTAT 0832R

KUORD 0305R

**LIOTRM 6002

MTC2 0I43R

MTC3 0I5AR

rtTCKDU 029ER * MTDVR 300SR * MTTRM 02E2R

HOEOF 0218R

OK 093CR

OKAY 6223R

ONLINE 8026R

OUTPUT 01D0R

RB 6000

R1 888:

R2 6332

R3 6333

R4 0084

R5 0335

R6 083S

R? 6337

R8 0303

R9 0339

RA 030A

RB 000

RC 0832

RD 038D

RDCK 0194R
58

KENNEDY 9-TRACK fttG TAPE DRIVER PAGE 10 RD1NT 8134R

RDON

REREAD

READ1 RETRY

RFSELCH

STAT

STOP

UNREC

LRCK LPITE LPT

LRT1

LPT2

LPT3

LPTiNT

LPTOK

LRTOH

0264R

0OOE

00B-4R 80E2R

022ER

000F

000C

800?

02BER

0234R

01C4R

S34AR

0274R

005AR

eoscR

00ACR

01B4R

S3S3R

028ER
- 59 - Appendix D. RTOS Kennedy 9-Track Magnetic Tape DCB Assembly Listings

DCB 85—KENNEDY SI 03 TAPE SYSTEM PAGE 1 * LAB = BCB85

* A. J. BAROODY * JUNE 20, 1974 *

* ALL DEVICE DEPENDANT COMMANDS ARE STORED IN THE DCB * IN A TABLE LOCATED AT KMDTAB. *

* EXTRN/ENTRY DECLARATIONS:

000BR EXTRN SCBSY, MTTRM, MTDVR, IORSAV

0008R

0003

0'009 000F

0035

ENTRY DCB35, KMDTAB

*

* REGISTER ALLOCATIONS: *

R8 EQU 8

R9 EQU 9 RF EQU 15

MTS5 EQU X'SS*

00P0 SCF0 EQU X'F0' . DEVICE NUMBER OF SELCH

0060R 0000F DC SCBSY ACBSY FLAG)

0002R 0000 DC 0 RETURN TO IODONE IF 0

0004R 0000F DC MTTRM A (DRIVER TERMINATION ROUTINE)

0006R 0000 TOCS5 DC 0 TIME-OUT COUNT

0003R 0030 FLAG35 DC 0 FLAGS

000AR 0000F DC MTDVR A (DRIVER ENTRY POINT)

000CR 0000

0030

DCB35 DC 0,0 OLD PSU SAVE AREA

0010R 2000 DC X'2000' NEU PSU STAT( MACHINE MALFUNC.

0012R D080

0000F

STM R3, IORSAV SAVE SYSTEM REGISTERS

0016R D190

0036R

LM R9,REG9 GET DRIVER REGISTERS

001AR 030F BR RF EXIT TO DRIVER

00 ICR 40F0

0042R

STH RF, REG 15 SAVE RF

0020R D 130

0014R

NOP ISR LM R8, IORSAV RESTORE SYSTEM REGISTERS

0024R C200

000CR

LPSU DCB85 EXIT TO SYSTEM

002SR 0000 DC 0 R2 = CALLER/IOU POINTERS

002AR 0000 DC 0 R2=A (PARAMETER BLOCK)

002CR 0000 DC 0 R4=FUNCTION CODE/LU

002ER 0000 DC 0 R5

0030R 0000 DC 0 R6=DEVICE NUMBER

0O32R 0000 DC 0 R?=LOGICAL STATUS OF DEVICE

0O34R 0000 DC 0 R8

0036R REGS EQU *

003SR 0000

0000

DC 0,0, 0,0 R9,RA,RB,RC

SET)
60 -

DCB 85--KENNEDY 8108 TAPE SYSTEM

0000

0003 *v. 0O3ER 0000 DC 0 6040R 0000 DC 0 • 0042R REG 15 EOU *

O042R 0820R DC NOP I SR 0O44R 80F0 DC SCF0

004SR 0000 DC 0

0O43R KMDTAS EQU *

004SR 097S KRLJIND DC X' 973'

004AR 0578 BSPREC DC X'578'

0O4CR 0478 FORREC DC X'478'

034ER 0779 UEOF DC X'778'

0050R 0278 ' FUDFIL': DC X'278'

0052R 0378 B3PFIL DC X' 378'

0054R 0379 ERASE DC X'878'

0O5BR 0079 NOOP DC X' 078'

0058R 0178 KREAD DC X' 178'

005AR 8678 KURITE DC X'678'

01 DA ORG X' DO ' +MT85+MTSS

0 IDA 080CR DC DCBS5

01DC END

PAGE 2

RD a DEVICE number

RE*A(DCB)

RF» INTERRUPT SERVICE ROUTINE PTR. DEV NUM OF SELCH

REREAD COUNT

REUIND

BACKSPACE A RECORD

SPACE FORUARD A RECORD

URITE END OF FILE

SPACE FORUARD FILE

BACKSPACE A FILE

ERASE 4* OF TAPE

NO-OP

READ A RECORD

URITE A RECORD

ISPTAB ENTRY
*

*

- 61

DC6

MO ERRORS

BSPFIL

BSPREC

* DCB35

ERASE'

FLAG85

TORREC

FULFIL . IORSAV

KI1DTAB KREAD

KRUIND

KURITE

MT85 * MTDVR

* riTTRii. NOOP

MOP 1 SR

. R8

R9

REGIS' REG9

RF * SCBSY

8CF0

T0C8S

UEOF

35—KENNEDY 3103 TAPE SYSTEM

0052R

004AR

0OOCR

0054R

0008R

004CR

0Q50R

G922R

0048R

0058R

0048R

005AR

0085

000AR

00O4R

00S6R

002QR

0008

0009

0042R

003SR

000F

0003R

00F0

0006R

004ER

PAGE 3.

I

!
62

KENNEDY MAG TAPE GENERAL LOADER

REDEF OOOSR

REF 051OR

RELP 033ER

RELPM 04C6R

RF IN 01F8R

RTN 0002

SI 03F0R

SCMD 0599R

SCST 0598R

SELADR 0OF0

SEQNUM 0006

SERR 00F4R

.SHOU 0370R

SH0U1 0384R

SLCH 000F

SPRV 059CR

SREG 058ER

START 0000R

TUO 0008

TURT 0488R

UNAB 0IBSR

UNRL 01C0R

UHRX 01C8R

UORD 03AAR

LORD 1 03ACR

UREG 05SFR

3/28/74
-63 - ,

' . Appendix E. BOSS Kennedy 9-Track Magnetic Tape Driver Assembly Listings

BOSS MODULE 8* — MAG TAPE DRIVER PAGE 68 ***

<C *

9K X

* MAGNETIC TAPE DRIVER *

* KENNEDY 3103 4= * JIM BAROODY — 03 X20/74 4= * SET-UP FOR 800 BP I, 9-TRACK * * ' AND ODD PARITY - *

*' * * • *

103C 0000

**

DC 0

0000 SELCH EQU 0 0000 UA IT EQU 0

0001 RTNEQU 1 0002 STAT EQU 2 0083 DVRTN EQU 3 0004 DEV EQU 4

0005 ABTRM EQU 5 0006 CTRL EQU 6 003? AX2 EQU 7

• 0008 FCN EQU 8

0863 CBA EQU 9 000A ONE EQU 10 088B FBA EQU 11 000C AC0 EQU 12 000D AC1 EQU 13 * XEBEC CONTROLLER REGISTERS

103E 80 KDATA DB 0 DATA TRANSFER

103F 01 KMEM DB 1 MEMORY ADDRESS REG

1040 03 KSTAT DB 3 DEVICE STATUS

1041 04 KINT DB 4 INTERRUPT CONTROL

1042 05 KCMD DB 5 COMMAND REG. 1043 0? KUORD DB 7 UORD COUNT

1044 C800

00F0

<rMTDVR LHI SELCH, X'F0*

1043 DE00

nee

OC SELCH, SLSTOP

104C 3D02 SSR SELCH, STAT

104E 2031 BTBS 8. 1 1053 0833 REREAD LHR FCN, FCN COMMAND?

1052 4210 BM COMAND
MODULE 8* — MAG TAPE DRIVER PAGE 69 BOSS

I05S

1 12A 2465

1053 08AB

I05A 03A9

105C 26A2

105E 90A1

1060 41 10

1064

113A

CASS

106b 4210

106A

1062

C320 MTU

106E

0020

4230

1072

0788

C320 TEST1

1076

0O40

0235

107S C320

107C

0OS0

4330

1030

10SC

DE40

1034

1042

Do40

1033

1 1AC

9D42 UAIT1

103A 2211

103C DE40 URITE

1090

1043

934A

1092 9309

1094 930B

1096 DE40

109A

1042

D340

109E

1162

DEGO

10A2

1165

9D02

10A4 2881

10A6 DEGO

10AA

1166 Co 10 1088

10hE 4300

10B2

10DE

C320 MTR

LIS

LHR

SHR

A IS SRLS

BAL

CTRL.

0NE.F6A

ONE.CBA

ONE. 2 ONE. 1 RTN1.MTCKDU

AHR BM

FCN.FCN

MTR

THI STAT, X' 0020'

BNZ UNRTRM

THI STAT.X'0340'

BNZR

THI ABTRM

STAT, X' 0330'

BZ URITE

OC DEV.KCMD

UH DEV. ERASE

SSR

BFBS

OC

DEV. STAT

1.

DEV.KUORD

UHR • UHR

UHR

OC

DEV. ONE

SELCH. CBA

SELCH. FBA DEV.KCMD

UH DEV. KURITE

OC SELCH. GOURT

SSR

BTBS

OC

SELCH. STAT

8, 1 SELCH. SLSTOP

LHI RTN1.UAIT1

B CS

THI STAT, X' 0048'

RETRIES = 5

BYTE COUUT

UORD COUNT

SELECT DEVICE

TEST FOR READ

TEST WRITE PROTECT

TEST FOR EOT

TEST FOR BOT

ERASE FOUR INCHES OF TAPE

SEND UORD COUNT

SEND SELCH START. ADDRESS

AND ENDING ADDRESS

START KENNEDY

AND SELCH

WAIT FOR SELCH TERMINATION

SET UP RETURN

TEST FOR EOT
BOSS MODULE 8* — MAG TAPE DRIVER PAGE 70

0040

1086 0235 BNZR ABTRM

1088 3D42 UAIT2 SSR DEV, STAT

108A 2211 BFBS 1,

10BC DE40

1043

READ OC DEV, KUORD

10C0 984A UHR DEV, ONE

10C2 9809 UHR SELCH, CBA

10C4 3808 UHR SELCH, FBA

10C6 DE40

1042

OC DEV, KCMD

10CA D840

1180

UH DEV,KREAD

10CE DE00

1 1B4

OC SELCH, GORD

10D2 9D02 SSR SELCH, STAT

10D4 2081 BTBS 8,1

10D6 DE00

1186

OC SELCH, SLSTOP

10DA CS 10 10B8 LHI RTN 1,UA IT2

10DE 9D42 CS SSR DEV, STAT

10E0 2211 BFBS 1 , 1 10E2 DE40

1040

OC DEV,KSTAT

10E6 9942 RHR DEV, STAT

10E3 C320

0E00

THI STAT,X'E00'

10EC

• 4330

10FS

B2 CS1

10F0 C320

0100

THI STAT, X' 100'

10F4 4330

11 1A BZ RETRY

10F8 C320

0100

CS1 THI STAT,X' 100'

10FC 4330

1110 BZ NOEOF

1100 C320

0040

THI STAT, X' 40'

1104 4330

0782

BZ EOFTRM

1108 C820

9800

LHI STAT, X' 9830'

1 10C 4300

07A0

B zzzz

1110 C328

0043

NOEOF THI STAT,X' 40'

OUTPUT UORD COUNT

SEND SELCH STARTING

AND ENDING ADDRESS

START KENNEDY

UAIT FOR SELCH TERMINATION

SET UP RETURN

TEST FOR PARITY ERROR

IF PARITY ERROR AND EOF IGNORE PARITY

NO EOF, RETRY

TEST FOR EOF

TEST FOR EOT

EOF ONLY, TERMINATE

EOF AND EOT

TEST FOR EOT
66

BOSS .'CDli-E S’f — ttAS TAPE UM 0333 e:r DVRTN

1116 4330

0796

B EOMTRM

11 IA 276

RETRY SIS CTRL.

me 4210

07B3

BM UNRTRM

1120 DE43

1642

OC DEV. KCMD

1124 D343

1 1A2 UH DEV.B5PREC

112S 6391 BR Rim

112A 4110

lisA

COTRND SAL RTNl .MTCKDU

M2E C4S0

7F98

NHI FCN.X'rFOO'

1132 C3SQ

esoa

THI FCN.X'OBCO'

1136 4333

1 145 BZ CHJC1

1 13A C323

6023

THI STAT.X'2223

113E 4233

07BS BNZ UNRTRM

1142 4333

USA

S MTC2

1145 C3S3

2200

CHK1 THI FCN.X'2202*

114A 4333

115A - BZ CHK2

114E C320

0328

THI stat. x'oesa

1152 4230

8795

BN2 EOMTRM

1155 4332

1 1EA B MTC2

1 15n C32B

1423

CHK2 THI FCN.X' 1423'

1 15E C w lisa BZ MTC2

1 IE 2 C323

3840

THI STAT. X' 8048

1 166 4233

6 7 55 ENZ EOMTRM

1 16A 2403 MTC2 LIS ACO.e

: : £

91S1 CHK3 SLLS FCN. 1 lies 42 !3

1 17E BM MTC3

1172 2SC2 AIS AC3.2

DRIVER PAGE 71 NORMAL EXIT IF NOT EOT EITHER

CHECK FOR DEVICE AVAILABLE

LEAVE ONLY FUNCTION CODE

TEST FOR LRITE EOF

TEST FOR LRITE PROTECT

TEST FOR BACKSPACE

TEST FOR BOT

TEST FOR SPACE FORHARD

TEST FOR EOT
I

- 67 -

BOSS MODULE 8* — MflG TAPE DRIVER PfiGE 72

1174 C9C0 CHI AC6. 12 TEST FOR HO COit-lftND eoac

1173 0335 BER ABTRM

1178 4303 B CHK3 *

I

1 ISC

1 17E DE43 M7C3 OC DEV* KCMD

1 1042

i 1132 D84C UH DEV.KMBTABCAC0)

1103

1136 4333 B CS

16DE

*MTCKDU - CHECK FOR DEVICE R78IL0BLE *

*C0LL SEQUENCE *

' . * B0L RTN1,MTCKDU 1 *

* DEVICE STATUS RETURNED IN STAT * •

I 1180 DE43 MTCKDU OC DEV. KCMD SEND NO-OP COrrPND

1042

118E D343 UH DEV, HOOP I 110E

- 1192 DE43 OC DEV. KST0T

1043 i 1196 9942 RHR DEV.ST0T ... | 1198 C320

000F

THI STAT, X'002F' TEST FOR UNAVAILABLE

1 19C 0331 B2R RTH1

1 19E 0335 BR ABTRM

1100 KMDT0B EQU *

1183 0978 KRUIND DC X'973'

1 102 0578 BSPREC DC X'573'

1104 0478 FORREC DC X' 478’

1106 6778 UEOF DC X'?78'

1108 0278 KFUDFL DC X' 278'

1100 0378 BSPFIL DC X' 379*

1 1 AC 0373 ERASE DC X'878'

11AE 0378 HOOP DC X' 873'

« * sc* 2173 KREP2 DC X' 173'

1182 0576 K'JRITE DC X'678'

use 38 GORD DB X'30'

1 135 10 GOURT DB X' 10' i

1 156 03 SLSTOP D3 X'0S'

1 1B7 00 DS 0

1 1B3 SUPTOP END SYSGO

. “

j

NBS-114A IRE V. 7-73)

U.S. DEPT. OF COMM.

BIBLIOGRAPHIC DATA

SHEET

1. PUBLICATION OR REPORT NO.

NBSIR 74-53

2. Gov’t Accession

No.

3. Recipient’s Accession No.

4. TITLE AND SUBTITLE

Magnetic Tape Operations on the Sound Laboratory Data

Acquisition System: A Programmer's Reference Manual

5. Publication Date August 1974

6. Performing Organization Code

7. AUTHOR(S)

A. James Baroody, Jr.

8. Performing Organ. Report No. NBSIR 74-538

9. PERFORMING ORGANIZATION NAME AND ADDRESS

NATIONAL BUREAU OF STANDARDS

DEPARTMENT OF COMMERCE

WASHINGTON, D.C. 20234

10. Project/Task/Work Unit No.

11. Contract/Grant No.

12. Sponsoring Organization Name and Complete Address (Street, City, State, ZIP)

Same as No. 9

13. Type of Report & Period Covered

Final

14. Sponsoring Agency Code

15. SUPPLEMENTARY NOTES )'>

16. ABSTRACT (A 200-word or less factual summary of most significant information. If document includes a significant

bibliography or literature survey, mention it here.)

This report is a systems programmer reference manual for magnetic tape operations

on the Sound Laboratory Data Acquisition system. The hardware features of the

system are summarized, followed by a brief discussion of programming techniques.

Magnetic tape operations are discussed in three distinct environments as follows:

a stand-alone, loader, a driver compatible with the Interdata Basic Operating System,

and a driver compatible with the Interdata Real Time Operating System.

17. KEY WORDS (six to twelve entries; alphabetical order; capitalize only the first letter of the first key word unless a proper name; separated by semicolons)

Magnetic Tape; driver; Interdata Basic Operating System; Interdata Real Time Operating

System; stand-alone loader

18. AVAILABILITY ^2 Uni imited

ICy

1 For Official Distribution. Do Not Release to NTIS

I

^ Order From Sup. of Doc., U.S. Government Printing Office Washington, D.C. 20402, SD Cat. No. Cll

Order From National Technical Information Service (NTIS)

Springfield, Virginia 22151

19. SECURITY CLASS 21. NO. OF PAGES

(THIS REPORT)

72

UNCLASSIFIED

20. SECURITY CLASS 22. Price

(THIS PAGE)

UNCLASSIFIED

VJSCOMM-DC 29042-P74


cfMC

4/v

.ov^t/Oa/

^

6

- 191^