(navigation image)
Home American Libraries | Canadian Libraries | Universal Library | Community Texts | Project Gutenberg | Children's Library | Biodiversity Heritage Library | Additional Collections
Search: Advanced Search
Anonymous User (login or join us)
Upload
See other formats

Full text of ""

IDENTIFICATION 



PRODUCT CODE: 
DIAGNOSTIC CODE 
PRODUCT NAME: 
VERSION: 
DATE RELEASED: 
MAINTAINED BY: 
AUTHOR : 
UPDATE AUTHOR: 



AH-T101B-DD 

DFRPM 

^ DFRPMCO - RP04/06/07 FORMAT FER/EXERCISER 

0.3 

September 13, 1985 

36-bit Diagnostic Engineering 

Frank Gatulis 

Gregory A. Scott 

COPYRIGHT (C) 1982, 1984. 19&5 

DIGITAL EQUIPMENT CORPORATION, MAYNARD-, MASS. 

THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A 
SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLUSION 
OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, OR ANY OTHER 
COPIES THEREOF. MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE 
TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEN AND TO ONE WHO 
AGREES TO THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE 
SOFTWARE SHALL AT ALL IIMES REMAIN IN DIGITAL EQUIPMENT 
CORPORATION. 

THE INFORMATION IN THIS DOCI^FNT IS SUBJECT TO CHANGE WITHOUT 
NOTICE AnJ should NOT BE ONSTRUED AS A COMMITMENT BY DIGITAL 
EQUIPMENT CORPORATION. 

DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE 
USE OR RELIABILITY OF ITS SOFTWARE IN EQUIPMENT WHICH IS NOT 
SUPPLIED BY DIGITAL EQUIPMENT CORPORATION. 



SEQ 0001 



MA 
Fu 



HAlNDEC-10-DFRPM-B-D 
Table of Contents 



Page ii 
12 Sep 85 

Page 



SEQ 0002 



MA] 
Fur 



Al A. «. 



MAINOEC-10-DFRPM-B-D 
Table of Contents 



Page 
12 Sep 



n 
85 



1.0 
1.-| 
1.2 
1.3 
1.A 
1.5 
1.6 
isoLat1ofl.7. . 
1.8 
1.9 
1.9.1 
1.9.2 
1.9.3 
1.10 
1.11 
1.12 
1.13 
1.13.1 
1.13.2 
1.13.3 
1.13. A 
1.U 
1.15 
1.16 
1.17 

2.0 
2.1 
2.2 
2.1 
2.« 
2.5 

3.0 

3.1 

3.2 

3.3 

3.3.1 

3.3.2 

3.3.3 

3.3.4 

3.^ 

3. A.I 

3.4.2 

3. A. 3 

3.4.4 

3.4.5 

M-' 

• 3.7 



Page 



Program Abstract 

Scope of this documentation 

General program description 

Pre-requisite software 

Program size 

Program run time 2 

User mode capability 2 

. .Fault. detection and 

General user interface philosophy 2 

Compatibility 3 

CPU family 3 

Standard diagnostic support software 3 

Operating systems 4 

CPU/Memory failures 4 

Power fail/restart 4 

Disk drive failure 4 

Restrictions 4 

User mode privileges 4 

User mode transfer sizes 5 

User mode timing tests ..... 5 

User mode priority interrupts 5 

DDRPI compatibility 5 

Support of the RP06 5 

Control and monitoring of 'SS microdiaqnostics . . 5 
Support of the ISS CE cyl ider for RP07 6 

hardware Requirements 6 

CPU family 6 

Memory 6 

Load device 6 

User interface to program 6 

Operating systems 7 

Functional Description 7 

Philosophical overview 7 

Console sense switch options 11 

Program start and restart philosophy 11 

Initial program start up . 11 

Optional restart address 12 

Control-C capability (CtriC) 12 

Stoppfna the program 12 

Configuration of program and subsysteoi 13 

Finding RH205: and Drives 13 

Choosing devices and run time options .... U 

Reconfiguration capability 15 

Automatic ccnfiguration (Auto-cnnf ig) .... 15 

Handling of user data on the r?edia 15 

Dual port configurations 17 

nodes of program operation 18 

Test f'ispatcning 19 

General test philosophy 19 



SEQ QO02 



NAI 
Fun 



MAINDEC-10-DFRPM-B-D 
Table of Contents 



Page iii 
12 Sep 85 



SEQ 0003 



HAIh 
Func 




Test specification and terminology 20 

Test flow (cycling through devices) 21 

Starting the test 32 



MAlNDEC-10-DFRPM-B-D 
Table of Contents 



Page iii 
12 Sep 85 



SEQ 0003 



MA INI 
Func 



3.8 
3.9 

3.9.1 
3.9.2 
3.9.3 

3.9.4 
3.9.5 
3.9.6 
3.9.7 
3.10 
3.10.1 
3.10.2 
3.10.3 
3. 10. A 
3.10.5 
3.10.6 
3.10.7 
3.10.8 
3.10.9 
3.10.10 
3.10.11 
3.10.12 
3.10.13 
3.10.14 
3.10.15 
3.10.16 
3.10.17 
3.10.18 
3.10.19 
3.10.20 
3.10.21 
3.10.22 
3.10.23 
3.10.24 
3.10.25 
3.10.26 
3.10.27 
3.10.28 
3.10.29 
3.10.30 
3.10.31 
3.10.32 
3.10.33 
3.10.34 
3.11 
3.11.' 
3.12 
3.12.1 
!.12.1. 
L12.2 
;.13 
;.14 
1.14.1 
1.14.2 



Test specification and terminology 20 

Test flow (cycling through devices) 21 

Starting the test 22 

Stopping the test 22 

Obtaining run time status (S) 23 

Restarting the test 23 

Parameter generation 24 

Scope looping 25 

Error printouts 25 

Test and Utility descriptions 26 

EX1 - recalibrate 26 

EX2 - recalibrate, seek 26 

EX3 - recalibrate, search 27 

EX4 - seek, seek 27 

EX5 - search, search 27 

EX6 - seek, write, read, verify data 28 

EX7 - write, read, verify data . , 28 

EX8 - seek, read 29 

EX9 - data test a specific area of the media . 29 

EX10 - seek, write 31 

EX11 - read, write, read 32 

EX12 - write, read, write 32 

RONLY - read only 32 

WONLY - write only 33 

FORMAT - format the media 33 

NEW8AT - write new (clean) BAT blocks .... 35 

MAPOUT - manipulate BAT blocks 35 

PAKINT - media initialize 38 

CONFIG - perform configuration dialogue ... 39 

SKTST1 - Timing of incremental seeks 39 

SKTST2 - Timing of the seek operation .... 40 

SKTST3 - Timing seeks between any 2 cylinders 41 

NEXTST - read/write/next test 41 

PEEK - examine areas of the media 44 

TOTALS - print accumulated totals 44 

TOTCLR - clear/reset totals counters 45 

TDLST - list track descri^jtor records .... 45 

TDBLD - write trick descriptor record .... 46 

TD631 - write track descriptor record .... 47 

MODE - changing program run mode 47 

RUNTME - obtaining program run time 48 

RUNZRO - resetting program runtime to zero . . 48 

P6MSIZ - print current core usage 48 

EXIT - exit the program 48 

BAT BLOCK handling philosophy . 49 

Important considerations and suggestions ... 53 

Error reporting 53 

Reporting of hardware detected errors .... 54 

Reducing error printout 54 

User input errors at the terminal 56 

Maintenance areas on the media 56 

Program retry of commands 56 

Write track descriptor (write TD) 57 

Read track descriptor (read TD) 57 



MAINDEC-10-DFRPM-B-D 
Table of Contents 



Page iv 
12 Sep 85 




Write header and data (format) 57 

Read headers and data (read H+D) 57 

WritP Rata (yrifp) S? 



SCJ QOOi^ 



MAIND 
Funct 



MAINDEC-10-DFRPM-B-D 
Table of Contents 



Page iv 
12 Sep 85 



3.K.3 
3.U.4 
3.K.5 
.14.6 
14.7 
i. '^.8 
3.. .9 
3.K 10 
3.14. '1 
3.15 

4.0 
4.1 
4.2 

5.0 
6.0 



Write header and data (format) 57 

Read headers and data (read H+D) 57 

Write Data (write) 57 

Read Data (read) 58 

Recalibrate positioner (recal) 58 

Seek command (seek) 58 

Search command (search) 58 

Offset command (offset) 58 

Return to centerline command (return) .... 59 

Watchdog timing of tests 59 

Interfaces 59 

Diagnostic software interfaces 59 

Operating systems interfaces 59 

Glossary 59 

Appendix-A 61 



S:mJ 0004 



MAINE 
Funct 



MAINDEC-10-DFRPM-B-D 
Program Abstract 

1.0 Program Abstract 

1.1 Scope of this documentation 



Page 1 
12 Sep 85 



SEQ 0005 



HAINDI 
Funct 



MAINDEC-10-DFRPM-B-D Page 1 

Program Abstract s 12 Sep 85 

1.0 Program Abstract 

1.1 Scope of this documentation 

This is the documentation for the RP07 Formatter/Exerciser which is 
named DFRPM. To clarify the descriptions of user interfaces, this 
document makes references to figures that depict user/program 
interface dialogue. All of the figures are arranged numerically in 
Append ix-A. 



1.2 General program description 

DFRPM will function as the formatter and multi-drive performance 
exerciser for RP07s attached to RH20 Massbus controllers on the KL 
family of computers. Although not an original requirement, DFRPM 
will also interface to RPOgs. DFRPM will support any electrically 
possible configuration of RP06s/RF07s/RH20s. DFRPM will run in EXEC 
and USER mode under both TOPS-10 and TOPS-20 and unless specifically 
stated in certain areas will provide identical functionality in botn 
EXEC and USER mode. The program is designed with adequate 
functionality and safeguards to allow its operation on the fixed 
media RP07 or the RP06 disk pack drive in both exec and user mode 
without less of customer data that may be on the media. DFRPM along 
with the standard diagnostic subroutine package and monitor will 
load and execute in less than 75k of memory. 



1.3 Pre-requisite software 

DFRPM assumes no solid faults exist in the CPU/Memory/RH20 hardware 
for it to operate predictably. The following diagnostics mu' : be 
run prior to DFRPM: 










CPU and Memory diagnostics (all) 

RH20 fault isolation diagnostic (DFRHB) 

RP07 basic diagnostic (DpRPN) which includes the running of 

all of the ISS microdiagnostics 

RP06 basic diagnostic (DFRPK) 



1.4 Program size 

In the majority of system configurations DFRPM will load and execute 
in less than 75k of memory. Approximately 16k of that memory is 
dedicated to standard diagnostic software (Subrtn, Diamon.Klddt) so 
the actual diagnostic segment will be less than 58k. The program 
may exceed 75k on systems containing many drives as it will require 
approximately Ik additional core for each drive that the user 
selects for testing. The additional space is required for storage 



SEQ 0005 



MAlNDEC-10-DFRPM-B-D 
Program Abstract 



Page l 
12 Sep 85 



SEQ 0006 



of BAT block tables, error logs, 
particular to each drive. The program 

that It HvnAmirallv ovnanHc nnl\» 



and statistical 
is optimum in 

.Tc roniiiroH h\y 



information 
the respect 

fho c uc torn 



MAINDEC-10-DFRPM-B-D 
Program Abstract 



of BAT block tables, error Logs, 
particular to each drive. The program 
that it dynamically expands only 
configuration. 



and statistical 
is optimum in 
as required by 



Page 2 
12 Sep 85 



information 

the respect 

the system 



1.5 Program run time 

Program runtime varies according to the sequence of tests that are 

chosen and the number of drives being tested. In default mode 

(acceptance mode) the average run time is about 1.25 hours per 
drive. 



1.6 User mode capability 

DFRPM will run in user mode (timesharing) under TOPS- 
TOPS-20(A.O). Both of these monitors must contain 
Without RP20 support the DIAG JSYS/UUO has insufficien 
to support this software. User mode capability under o 
of the monitor is not supported. The user mode 
capability of the exerciser is accomplished entirely th 
of the DIAG JSYS/UUO (program performs its out I/O in 
privileged environment). There are some restrictions 
the diagnostic in user mode that are listed in the 
section. 



10(7.01) and 

RP20 support. 

t capability 

Ider versions 

diagnostic 

rough the use 

a real time 

imposed upon 

appropriate 



1.7 Fault detection and isolation 



The purpose of DFRPM is not 
rigorous functional acti 
reporting transient errors 
subsystem. The program is 
registers, RH20 status, int 
as a means of detecting 
status information printed 
a failing function (read 
detailed error bits in the 
subsystem that will help 
analysis is performed by tn 
module (FRU) isolation. 



to diagnos' but 
vity while con 
or inconsistenci 

functional in n 
ernal channel st 
subsystem errors 
with each error 
, write, seek, 
various hardware 
irt further di 
e program. The 



to subject the d 
tinually monitor 
es that occur in 
ature and relies 
atus and data in 
. Through an ana 
you can easily is 
etc). There 

components of t 
agnosis of a faul 
program does not 



rive to 
ing and 
the disk 
on drive 
memory 
lysis of 
olate to 
are many 
he disk 
t but no 
provide 



1.8 General user interface philosophy 



On OUTPUT the messages will be ri.car ana 'oncise. Decimal numbers 
are always followed by a point. Numbers without the point are octal 
with the exception of the dumping of RP07 maintenance register and 
error codes which are 2 digit hexadecimal lo be consistent with RP07 



SEQ 0006 



MAINDEC-10-DFRPM-B-D 
Program Abstract 



Page 3 
12 Sep 85 



SEQ 0007 



documentation and manuals. Many of the numbers output will be 
dumped in both octal and and decimal as it is often desirable in 



MAINDEC-10-DFRPM-B-D 
Program Abstract 



documentation and 
dumped in both 
disk diagnostics 
printouts. The 
wiLL be the octal 
parenthesis (eg. 



12 



Page 3 
Sep 85 



manuals. Many of the numbers output will be 
octal and and decimal as it is often desirable in 
to work in both bases when analyzing error 
notation for outputting in both octal and decimal 
value first followed by the decimal equivalent in 
UAdOO.) ). 



All INPUT will be preceded with a prompt. All input will be checked 
for legality and incorrect responses will be followed by a reprompt 
and in some cases an additional error message. All numerical input 
may be in either octal or decimal where a period following the 
number indicates decimal. Any point in the program allowing 
multiple input options will support a help message to further 
explain the options (see fig-1). The program requests only 3 types 
of input, numerical, yes or no, and sixbit. 

When an error is detected on numerical input the program reprompts 
not only with an error message but also prints out the range of 
legal input that it will except (see fig-2). 

When an error is detected on a yes or no input, the user is merely 
reprompted (see fig-3). 

When an error is detected on sixbit input the prompt is re-issued. 
The user can then query the program for further information by 
asking for help (see fig-^). 

The goal is to make the user interface so simple and complete that 
he can run ♦■he program witnout any pre-requisite reading. The 
program will -EAD (see fig-5 as an example of leading dialogue). 



1.9 Compatibility 

1.9.1 CPU family 

DFRPM will be compatible with all models of DECsystem 10/20 systems 
having the RH20 as the system Massbus controller. 



1.9.2 Standard diagnostic support software 

DFRPM will be compatible with all of the standard diagnostic 
loaders, monitors, subroutines. 



SEQ 0007 



MAlNDEC-10-DFRPM-B-D 
Program Abstract 

1.9.3 Operating systems 



Page 4 
12 Sep 85 



n 



SEQ 0008 



MAINDEC- 
F unction 



DFRPM ui I I ha flil I v cnnnnpfoH in iicop mnrta iinrlor f^A fn\inuinn 



MAINDEC-10-DFRPM-B-D 
Program Abstract 

1.9.3 Operating systems 



Page 4 
12 Sep 85 



SEQ 0008 



DFRPM wiLL be fuUy supported in user mode under the following 
monitors: 

TOPS-10 release 7.01 (with RP20 support) or newer 
TOPS-20 release A.O (with RP20 support) or newer 

The program will not be supported on older versions of the monitor 
since it requires the enhancements to the DIAG JSYS/UUO which do not 
exist in earlier monitors. 



1.10 CPU/Memory failures 

Most CPU and Memory faults are FATAL err.irs to the program and it 
will not be able to continue. The program may survive some memory 
parity errors. If the parity error is in the program data buffer, 
the program will be allowed to continue. If the error is in the 
program area itself, the error is considered FATAL. 



1.11 Power fail/restart 
Not Supported 

1.12 Disk drive failure 

Failure in one or more of the disk drives under test is tolerated by 
the program. The program will attempt errcr recovery on any disk 
subsystem related errors. Hard and soft errors will be logged and 
the proaram will continue. In the event that an UNSAFE or permanent 
error (kP07) condition occurs in the drive, the program will merely 
stop .'Sting the unsafe unit(s) and continue testing with other 
drives. * permanent error in the RP07 is defined to be any error 
conditio, that persists through 3 drive clear attempts. 



1.13 Restrictions 

1.13.1 User mode privileges 

Under TOPS-10 the user will be required to be running as [1,2] or 
have the JP.PO< privilege in order to run the program. 

Under TOPS-20 a user must have at least MAINTENANCE privileges to 
run the program. WHEELS and OPERATORS also have sufficient 
privileges to run the program in user mode. 



MAINDEC- 
F unction. 



engii 
repa 



3.A.( 

DFRPI 
logii 
for 

I 
I 
I 



DFRPI 
dual 
resp( 



MAINDEC-10-DFRPM-B-D 
Program Abstract 

1.13.2 User mode transfer sizes 



Page ! 
12 Sep Bl 



SEQ 0009 



t •« I iM J 



«W« . I I fc. X.. 



. -• _ I -A 



MAINOEC-1 
Functiona 



D 



MAINDEC-10 DFRPM-B-D 
Program Abstract 

1.13.2 User mode transfer sizes 



Page 5 
12 Sep 85 



In user mode, all transfers are restricted to being multiples of 
full sectors of data since zero fill cannot be programmed with the 
DIAG JSYS/UUO. This restriction is of little consequence in the 
ex'-'ciser and is mentioned only to make the point that the program 
will enforce the restriction automatically. 



1.13.3 User mode timing tesCs 

It is not possible to perform device timing tests in user mode. 
This essentially means that the position timing tests, and 
read/write/next testing is possible only in exec mode. The position 
timing tests are allowed to run in user mode, but only as an 
exercise of the hardware, the actual position times are neither 
measured or reported. 



1.13.4 User mode priority interrupts 

The diagnostic is not allowed to use the priority 
in user mode. In user mode, the_program will poll thie hardware 

'in exec 



registers for interrupt conditions, 
mode. 



interrupt 
, ^ poll th 
The Fl system IS used 



system 



1.U DDRPI compatibility 

DFRPM makes no attempt to provide any 
DDRPI. Both DFRPM and DDRPI contain 
not found in the other program. 



functional compatibility to 
a great deal of functionality 



1.15 Support of the RP06 

DFRPM is the RP07 formatter/exerciser but RP06 support has been 
added for the convenience of testing disk subsystems having a 
mixture of both RP07s and RP06s. The RP06 support in this program 
is intended to supplement but not replace the diagnostics and 
exercisers currently available for RP06:.. 



1.16 Control and monitoring of ISS microdiagnostics 

DFRPM contains no facility for controlling and monitoring the RP07 
device resident microdiagnostics. The resident microdiagnostics are 
accessed only ir, the RP07 basic diagnostic (DFRPM). 



SEQ 0009 



MAINDEC-10-DFRPM-B-D 
Program Abstract 



Page 
12 Sep 8 



1.17 Support of the ISS CE cylinder for RP07 



SEQ 0010 



3.6 



^L- J_J 



MAlNDEC-10-DFRPM-B-D 
Program Abstract 

1.17 Support of the ISS CE cylinder for RP07 



Page 6 
12 Sep 85 



1 



Cylinder 631 is the innermost cylinder on the drive and is reserved 
for exclusive use by the drive microdiagnostics and the RP07 basic 
diagnostic (DFRPN) if desired. There is only one routine in the 
formatter/exerciser that is capable of even accessina that cylinder. 
This limited support is found in the routine "TD631 that allows you 
to selectively rebuild track descriptor records on that cylinder. 
To the remainder of DFRPM, this cylinder is not even considered as 
existing on the media. 



2.0 Hardware Requirements 
2.1 CPU family 
DFRPM will run on any KL processor with an RH20 Massbus controller. 



2.2 Memory 

DFRPM requires at least 96K of memory of any type. Memory may be 
configured in any manner (ie. internal, external, interleaved in 
any manner). The key point is that the programs performance will 
not be effected by memory and cache options other than an overall 
program run time. 



2.3 Load device 

DFRPM will load from any standard load device. Program loading is 
IS a function of the standard diagnostic loaders and monitors (ie. 
Diamon, D20mon, Magmon, Kldcp etc.). 



2.4 User interface to program 

User interface to the program will be through dialogue at the 
terminal. In exec mode, the console switches on the KL will be used 
directly. In user mode, software sense switches arc used as 
standard procedure. All operator/program dialogue is done through 
the standard diagnostic subroutine package. Sense switch options 
are described in section-3. 



SEQ 0010 



MAlNDEC-10-OFRPM-B-D 
Hardware Requirements 



Page 7 
12 Sep 85 



SEQ 0011 



2.5 Operating systems 



A.I.- e>L 9 A ^ i^v«/« «iii>^ 



MAINDEC-10-DFRPM-B-D 
Hardware Requirements 

2.5 Operating systems 



Page 7 
12 Sep 85 



DFRPM runs in user mode under monitors supporting the DIAG JSYS/UUO. 
The monitor feature is supported in the following monitors: 

TOPS-10 (7.01) (With RP20 support) or newer. 
TOPS-20 (4.0) (With RP20 support) or newer. 

The program will not be supported on older versions of the monitor 
since it requires the enhancements to the DIAG JSYS/UUO which do not 
exist in earlier monitors. 



3.0 Functional Description 

This section provides a description of the functionality that will 
be provided by DFRPM at various program levels (start-up, 
configuration, test level, etc). 



3.1 Philosophical overview 

The functionality provided in this exerciser was determined after 
examining the needs for the RP07 and a close look at the 
functionality provided by existing disk diagnostics, formatters, and 
exercisers currently supported by diagnostic engineering. 



Most of the 
functionality 
comparisons to 
DDRPI . 



functional e ;ancements, compromises, and overall 
of DFRPM can best be understood by some very broad 
the functionality of the existing disk exerciser 



DDRPI is a very powerful tool in exec mode. It looses 
considerable power in user mode under TOPS-10 because it does 
dump mode I/O and is limited by dump mode I/O properties of 
TOPS-10. Under TOPS-20 the situation is far worse. The program 
can do very little in user mode under TOPS-20 because of the 
even greater limitations of dump mode I/O under TOPS-20. The 
there are 3 separa*-e I/O portions of DDRPI exec, TOPS-10, 
TOPS-20 which complicates the program. 



DFRPM will provide nearly identical functionality in exec mode 
and under both TOPS-10 and TOPS-20 by using the DIAG JSYS/UUO 
features as opposed to dump mode I/O to accomplish user mode 
testing. Briefly put, DFRPM will do all of its own I/O in real 
time using DIAG features and 'ill not be restricted to 
limitations particular to either of the operating systems. 
There will is one I/O interface module for EXEC- TOPS-10, 
TpPS-20 and from the point of view of the user, functionality of 
the program will be nearly identical in all three cases. 



SEQ 0011 



MAINDEC-10- 
Functional 



3.8 T( 

This i; 

tests 

dialogi 

charad 

being \ 

descrif 

The ger 
di spate 
by the 
when 1 
in the 
exampU 



A 1 
con 

ex; 

Th' 
del 
ne( 

In 
th( 

US( 

th( 

SE/ 
SE/ 

Th« 
SE( 
vai 
ar« 



Anc 
thi 

FOC 

Tej 
ver 
If 
me: 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page { 
12 Sep 8i 



DDRPI is not capable of running on any fixed media device or for 
that matter is very limited to what can (or could) be done on a 



SCO 0012 



MAINDEC-10- 
Functional 



URI 

IJDt 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 8 
12 Sep 85 



DDRPI is not capable of running on any fixed media device or for 
that matter is very limited to what can (or could) be done on a 
system structure. A scratch pack is almost a must and the drive 
must be removed from system resources to accomplish any useful 
testing. DDRPI does not take advantage of the maintenance areas 
that exist on disk pack media. 

DFRPM has the capability to run on the maintenance areas of all 
type disks (both pack end fixed media). It is possible to run 
any test on any drive, even system structures while the monitor 
is using the same device for timesharing. This ability is 
achieved through a combination of program design and the added 
capability of the DIAG JSYS/UUO. 



DFRPM will not have the ability 
DDRPI detected errors are w 
system, not through the fault 
coincidence because the program 
dump mode. In fact, under TOPS 
mode capability. If the mon 
there would be no way to get de 
error reporting capability a 
all of its own I/O it has compl 
can capture all status. DFRPM 
diagnostic I/O recorded in a di 
This feature is a standard sw 
The standard diagnostic error r 
information than a syserr entry 



to write entries to SYSERR. 
ritten to SYSERR by the operating 
of the program but simply by 

has the MONITOR doing the I/O in 
-20 because of the limited dump 
itor did not make SYSERR entries, 
vice status at all and thus no 
t all. Again, because DFRPM does 
ete control of the devices and 

supports the ability to have all 
sk file somewhere in the system, 
itch option with all diagnostics, 
eport will contain more status 

for the same errr^r condition. 



DDRPI provides no practica 
from DDRPI is performed 
cueing scheme which result 
any better than loop on 
issued to a drive. DFRPM 
the point where scope loop 
any test. The philosophy 
of detecting an error unde 
be possible to recreate th 
reproduce and troubleshoot 



I capability to LOOP ON ERROR. I/O 
via a complex memory management and 
s in the program not being able to do 
the last 10 Tor so) commands that were 
will fully implement loop on error to 
ing and troubleshooting is possible in 
here is that if a p- j'-a.n is capable 
r a given set of conditions, it should 
e falling situation as a means to 
a malfunction. 



DDRPI has a some 
where it generat 
gets no control o 
structured to f 
test using the 
parameter genera 
that allows EVERY 
user in hope that 
tool (like DDRPI) 



number of exercises/tests that it executes 

es command sequences and variables yet the user 

f those parameters. In DFRPM the tests are 

irst generate parameters and then execute the 

parameters. The key d''ference is in the 

tion. DFRPM has a variable mode of operation 

parameter in every test to be cpecified by the 

the program can be used not only as a go/no-go 

but a repair level tool as well. 



DDRPI h-v options when it comes to mapping the media. The 
program -rks hard errors as bad spots and in addition, allows 
you the option to map out ALL of the soft errors or, NONE of the 
soft errors. There have been many field requests to provide 



SEQ 0012 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 9 
12 Sep 85 



SEQ 0013 



some capability to map out soft spots on a selective basis since 
even a .soft, spot can cause sufficient system performance 



-.J 



MAINDEC-10-DFRPM-B-D 
FunctionaL Description 



Page 9 
12 Sep 85 



some capabiLity to map out soft spots on a seLective basis since 
even a soft spot can cause sufficient system performance 
degradation if Located in an area that gets accessed enough (ie. 
the swapping space). 



DFRPM has much more fLexibiLitv in the mapping of errors by 
nature of the fact that the program keeps a r re detaiLed 
description of errors in core (both hard and soft) -.id the user 
has the abiLity to manipuLate the program from his terminaL to 
determine exactLy which error? wiLL cause BAT bLock entries. 



DFRPM wiLL provide the abiLity to reconfigure the program at 
time and Later return to the oriqinaL combination of drives 
controLLers without Loosinq any statisticaL information in 
process. In qeneraL, aLl statisticaL information is saved 
aLL drives untiL you either teLL the program to reset 



counters 
address. 



any 
and 
the 
for 
its 



or, restart the program from the initiaL starting 



DDRPI does not associate errors to a particuLar disk address. 
The consequence is that a singLe soft error spot is treated as a 
new error each time the program stumbLes upon it which makes the 
programs statisticaL information misLeading (ie. the program 
may indicate 50 data checks over a period of time when in fact 
they were aLL at the same disk address). NeedLess to say this 

?ives a somewhat faLse indication of the actuaL e'-ror rate of 
he drive being tested. 



keep track of errors by disk address, 
^rogram to keep more accurate statisticaL 



DFRPM wiLL 

aLLow the 

This, feature Ts aLso tied cLoseLy 

schemes within the program 

functionaLity in these area-.-: 



This wiLL 
information, 
to error reporting and mapping 
and wiLL resuLt in greater 



DDRPI has code 
controLLers bus 
to do this aLL 
pLaces in the 
performing muL 
(RONLY), forma 
The other tests 
time but the 
the drives movi 
driving in fuLL 



that attempts 
y at the same ti 
the time there a 
proar^m where 
tipLe ontroiLe 
tting cORMAT), 
actua Ly taLk 
pairs arc pic. - 
ng you get th 



to 



paraLLeL. 



keep muLtipLe drives and 
me. WhiLe the program advertises 
re actbaLLy onLy a few isolated 
■•'t works. DDRPI is success fuL in 
operations during read onLy 
v.'d random command test (RCTEST). 
:■ one drive control Ler pair at a 
"* in such a way that if yoi watch 
illusion that the pr'^;;, dm is 



This area is being mentioried 
that is compromised in DFRPM. 
singLe drive/controller pair 



now because fl 

DFRPM will in 
at a time. 



one of the 
fact talk to 



areas 

only a 



This compromise will sacrifice some program speed in return for 
program reliability and simplicity. The majority of 
deficiencies and bugs in DDRPI are a consequence of its complex 
cueing scheme, memory management, and its conmand executor all 
which are in there to achieve parallel controller operat-'on. 



n 



SEQ 0013 



MAINDEC-10-D 
FunctionaL D 



The seco 

to use. 

When run 

selected 

cleanest 

CONFIG 

This may 

differen 

dialogue 

function 

software 



Real 

of 

sit 

Some 

test 

to b 



3.9.1 S 



ALL test 
dispatch 
order is 


3.9.2 S 


Tests ca 


In d 
thro 
diag 
altm 


imme 


curr 


repo 


In m 
the 
altm 


pLac 

is 1 



SEQ 0001 



MAINDEC-10-DFRPf1-B-D 
Functional Description 



Page 
12 Sep 



10 
85 



The prime advantage of DDRPI in this scheme was during high 
volume formatting of disk packs such as producing KLAD packs. 
DDRPI can format and map packs very rapidl>^ with parallel 
processing which saves lots of time when you consider the number 
of KLAD packs produced. Formatting and mapping with DFRPM will 
be performed one drive at a time and will of course be slower. 
With the RP07, formatting operations are performed only a 
fraction of the time we format and map disk packs and the 
increased time should not present a problem, 

DDRPI has the limitation (built into the code) that it can only 
support up to 2 types of drives at a time. It currently 
supports RPOA and RP06 and if you wish to add a new drive you 
must give up either the RPOA or RP06 support. 

DFRPM is designed for expandability. The addition of similar 
Massbus disks is simply the expansion of the programs parameter 
tables. The term similar is rather subjective. The RPOA, RP06, 
RP07 are similar and in fact are almost identical in the way 
they are programmed. The RP20 is not functionally similar to 
existing Massbus devices and is not supported in DFRPM. 



SEQ OOH 



M/ 



SEQ 0002 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 11 
12 Sep 85 



SEQ 0015 



MA 
Fui 



3.2 Console sense switch options 



TKa nn I u cuifrKttC iieA/4 Ku ^ka vHrn/vraM sr«A 



I iKe A ^ /% f 



«-k< 



k ^ Am^ « 



MAINDEC-10-DFRPM-B-D 
Functional Description 

3.2 Console sense switch options 



Page 11 
12 Sep 85 



SEQ 0015 



MAI 
Fur 



The only switches used by the program are a subset of the standard 
(Left hand) sense switch options and are listed here. 

AOOGGO If set: abort program at end of this pass 
200000 Not used 
100000 Not used 

040000 Inhibit all but FORCED printouts 

020000 Output to LPT in exec mode, DFRPM.PNT in user mode 

010000 Ring bell on error (bell is force printed) 

OOAOOO If set: loop upon first occurrence of error 
002000 Halt on error (switch is ignored in user mode) 
001000 II set: print all repetitions of errors in a scope loop 
If ^^'3et: print only on first occurrence of error in loop 

00040C 'v;ot used 

000200 If set: use abbreviated printouts where possible 

000100 If set: inhibit operation of KL paging hardware 

000040 Not used 

000020 If set (at startup): inhibit operation of cache 

000010 Not used 

000004 Not used 
000002 Not used 
000001 Not used 

There are no right hand switch options in this program. All other 
program options are selected through dialogue at the terminal. 



3.3 Program start and restart philosophy 

DFRPM provides an alternate starting address that allows you to get 
gracefully back into the program following hardware or software 
malfcnctions or in many cases after a power down/up sequence if the 
program is in core memory. 



30000. Star tin 
fhe program to 



3.3.1 Initial program start up 

The inital starting address is at 

30000 (the normal add-ess) causes 

alonq with the reinitialization of t^ 

packaye. This step actually needs to 

mmal program load. Starting at 30000 is 

STD command to KLDCP and results in maximum 

(see fig-6). 



the program tit 
co.-npletely reset 



diagnostic subroutine 
be done only once after 
identical to typing the 
dialogue at the terminal 



MAINOEC-10-DFRPM-B-D 
Functional Description 

3.3.2 Optional restart address 



Pwe Jl 



12 Sep 



SEQ 0016 



NAII 
Fum 



.-•..'__ .^^ . .^ ynnm -j 



MAINDEC-10-DKRPM-B-D 
Functional Description 

3.3.2 Optional restart address 



Page 
12 Sep 



12 
85 



The optional starting address at 30004 gives you ability to restart, 
reconfigure if desired, and preserve already accumulated program 
statistics. In addition, dialogue is very brief if you choose to 
keep the same configuration. If you choose not to reconfigure, you 
will have to enter only minimum dialogue to get the program running 
again (see fig-7 and fig-8). 



3.3.3 Control-C capability (Ctrl-C) 

The program supports the CTRL-C and CONTINUE commands in user mode 
only for both TOPS-10 and TOPS-20. The CTRL-C intercept is honored 
by the prograrr at the completion of its next I/O operation. The 
program honors the CTRL-C by cleanly terminating the program and 
returning to monitor level. If a CONTINUE command is issued from 
monitor level, the program will resume execution as if it were not 
interrupted. 



3.3.4 Stopping the program 

There is only 1 recommended way to terminate the program. The 
program should be stopped by typing (altmode, esc) and allowing it 
to come back to the "What Test" prompt. Once you are at the prompt 
you may want to consider how you wish to deal with the following 
possibilities: 

If you've been running on a non-structure you may wish to run 
mapout before you're done. Keep in mind that under this 
situation your BAT blccks may have been wiped by some of the 
testing you've been doing and running mapout will remedy this 
situation. Another reason Tor wanting to run mapout is to get 
current bad spot information transferred from the mapout data 
base to the BAT blocks. When the program finds bad spots, it 
puts them in its data base but its up to you (the user) to get 
them transferred to the BAT blocks. 

You may want to obtain totals at the end of a session. If you 
are running in default mode you get an automatic totals dump of 
all of the originally selected drives before the program returns 
to the what test prompt. 

Once you are satisfied that you are through, you may leave with 
either a control-c or an exit command from the prompt. 



SEQ 0016 



MAIN 
Func 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 1^ 
12 Sep a! 



SEQ 0017 



MA INC 
Funct 



3.4 Configuration of program and subsystem 



MAINDEC-10-DFRPM-B-D 
Functional Description 

3. A Configuration of program and subsystem 



Page 13 
12 Sep 85 



This section outlines the operations of configuring the program to 
the system at run time. There is a whole section of the program 
dedicated to configuration. Several functional steps are executed 
in configuring the program (see fig-10): 

The program goes out and polls the system in an attempt to 
determine which Massbus controllers and drives are attached to 
the system (this step is also performed in user mode). 

The program then reports the configuration on the terminal. By 
now the program has built tables that identify the hardware 
configuration. 

The program then allows the user to select the controllers he 
wishes to use during the diagnostic. 

o The program will then allow the user to run down the list of 
selected controllers and pick the drives he wishes to test on 
each. 

The program then goes to each of the selected drives and does a 
status check of the hardware, reports some properties of the 
device, and allows the user ♦■o select some of the program 
options that are appliea on a per drive basis. Wnen the 
dialogue is complete, the programs data base and options will be 
complete. During the configuring of the individual drives, the 
program expands in memory building tables, status areas, error 
logging areas, and statistics storage areas. The program 
requires about Ik for each drive that is selected for test. 
This status area is known as the device status block (DSB) and 
holds all information that is stored on a per-drive basis. Once 
established, the DSB area for a drive will never go away. 
Additional DSBs can be added by re-configuring (with CONFIG). 

particular drive (using CoNFIG) the 



By de-selecting a f,-. w.v-v-. «. .,, 
just avoids looking at the DSB area. 
re-selecting (again with CONFIG). 



You get DSB data 



program 
back by 



3.4.1 Finding RH20s and Drives 

In user mode the program reads the CONI status for each of the 8 RHs 
and if NON-0, assumes the controller exists. 

In exec mode the program looks for any of the 8 possible RH20s. The 
existence of a particular RH20 is tested for by first clearing him 
and then setting his PIA bits and checking for proper response. The 
program will allow an RH20 to be used if the following conditions 
are met: 



SEQ 0017 



MAINI 
Funci 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 14 
12 Sep 85 



SEQ 0018 



MAIND 
Funct 



Bit-O of the RH20 CONI status is clear (zero) 



0005 



~1 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page U 
12 Sep 85 



Bit-0 of the RH20 CONI status is clear (zero) 

The PIA bits can be set to 7 and cleared with an RHCLR 

No RH20 error conditions exist following the RHCLR 

There are several criteria that must be met for the program to 
recognize the existence of a testable, useable drive on any of the 
Massbus controllers. Drives are only looked for on controllers that 
passed the controller criteria mentioned in the previous step. The 
following criteria is then used for finding drives that are allowed 
by the program: 

The drive must handshake properly when the drive type register 
is read. 

The drive type must match an entry in a list of drive types that 
DFRPM is capable of testing. 

RP07s must not be interleaved 

The drive must be on-line (M0L=1) 

The program is capable of detecting and reporting the fact that 
there may be RP20s on the system but thats the extent of RP20 
support. The program will not allow you to test them even though 
they are detectable pieces of hardware. 



3. A. 2 Choosing devices and run time options 

After selecting the drives and controlers you wish to test, the 
program will go into a dialogue mode for each of the selected 
devices (see fig-10). This is the dialogue that allows you to pick 
and choose the options that are applied on a per-drive basis. Some 
of the interactive functions are: 

Determining if HOME and BAT blocks are on the media. 

Establishing if there is user data on the media and how the 



ling 
(ill 



program will protect that data. 

Establishing proper hardware status (ie. getting write protect 
switch in the correct state and insuring that medium is 
on-line). 



SEQ 0018 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 15 
12 Sep 85 



SEQ 0019 



3. A. 3 Reconfiguration capability 



J 



MAINDEC-10-DFRPM-8-D 
Functional Description 



3.4.3 Reconfiguration capability 



Page 15 
12 Sep 85 



The entire configuration package is constructed so it looks like a 

test within DPRPM. This provides the capability at any time to 

change the configuration and/or modify your run time options without 
re-initializing the program (see fig-i1). 



3. A. 4 Automatic configuration (Auto-config) 

Each time the program attempts to configure, either at startup or 
when you run 'config" you are asked if you wish to Auto-config. If 
you answer 'no' you will have to respond to the normal configuration 
questions and dialogue. 

If you choose to Auto-config, the program merely goes through all of 
the same dialogue but automatically answers all of the questions to 
satisfy a pre-determined set of default conditions. No operator 
response is required until the program asks you to select the run 
mode (MAN, VAR, DEF). 



The default conditions for Auto-config are as follows; 



All RHs and Drives 
selected for test. 



that are detected by the program 
These are currently RP04/6/7s. 



will be 



All of the drives will 

will ■ 

and 

protec 



run under OPTION-1 which means "writes' 



ui Ldc ur I wcs WILL run uriurr \jr t iun~ \ wnicn means writes 

be performed only on the maintenance cylinder but "reads" 
posit 'ons will be allowed all over the media. This mode 
ects any data that may be on the media. 



3.4.5 Handling of user da*"3 on the media 

During configuration of the program the software goes out and reads 

both HOME blocks and both BAT blocks. If any 

looks valid, the diagnostic assumes there MAY be 

the media and will prompt the user with a 

If the user answers no to BOTH ;he prompt and the confirm (are you 

sure) message, the diagnostic will use the media just like a scratch 

media, (see additional note below). 



one of the 4 blocks 
customer data on 
question to that effect. 



If the user indicates that there is data on the media to be 
preserved, the diagnostic will never perform write operations 
anywhere button the maintenance cylinder which is the last cylinder 
on the media. Some drives have a larger maintenance area but for 
the. sake of uniformity, DFRPM will use only the last, innermost, 
cylinder as the maintenance cylinder on all of the drives it 
supports. 



SEQ 0019 



MAINDEI 
Functi( 



MAINDEC-10-DFRPM-B-D 
Functional Description 



»Page 1 
12 Sep 8 



SEQ 0020 



NAINDEC 
Functio 



Aside from writing only to the maintenar area there are actually 2 
options the user has to nick from when there is data on the mprfia 



MAINOEC-10-DFRPM-B-D 
Functional Description 



Page 16 
12 Sep 85 



Aside from writing only to the maintenance area there are actually 2 
options the user has to pick from when there is data on the media 
that must be preserved: 



1. 
2. 



Option-1 allows the program to read and position anywhere on the 
media but restricts all writes to the maintenance cylinder. 



Option-2 forces the program to do 
maintenance area. Nothing wilt be 
maintenance cylinder. 



all operations to the 
done anywhere but on the 



There 

Under 

the se 

If so. 

the ma 

reads 

DEVNAM 

curren 

anywhe 

typica 



NOTE 



is another level of protection in the diagnostic. 
TOPS-20. the program does an MSTR JSYS to determine if 
lected drive is part of a currently mounted structure, 
the program will not allow write opt"''ons anywhere but 
intenance cylinder. Under TOPS-10 the diagnostic 
the structure name out of the HOME block, and does a 

a structure of that name is 
the program will not allow writes 



UUO to determine if 
tly mounted. If so. 



re but on the 
I example). 



maintenance cytind' (fig-20 shows a 



The determination of whether the data on the media must be preserved 
is part of the configuration process and is applied on a per-drive 
basis. The options can always be reselected by running CONFIG once 
more. 

The actual protection of the areas takes place at parameter 
generation time in each test. All of the parameters are generated 
at a common place in the program and this section of the code does 
all of the testing and adjusting of the test variables to protect 
against the destruction of user data. 

Finally, there is on" more level of protection against the 
accidental destruction of user data on .the media. This last check 
IS designed to catch any unknown program bugs. All transfers 
originate from a common routine in the program called XFSTRT. This 
routine is supplied with the type of transfer (the command) and the 
disk address for that transfer. The first thing that this routine 
does 13 examine the command and the address to determine if the 
progr?/n is about to write over data that we are supposed to 
preserve. We stablished this option at configuration time either 
because we h^je a mounted structure or the user answered the 

program decides that it is about to 

first prints a message to that effect 

good of everyone). This 



jecause we h^je a mounted 

questions accordingly. If the 

clobber some user data, it 



(see fig-36) and 
is a situation 



then FATALS out (for' the 
that should never occur 



and if it does, diagnostic 



SEQ 0020 



n 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 17 
12 Sep 85 



SEQ 0021 



engineering should be notified so the bug can be identified and 
repaired. 



)08 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 17 
12 Sep 85 



engineering should be notified so the bug can be identified and 
repaired. 



3. A. 6 Dual port configurations 

DFRPM does not contain explicit tests for the dual port arbitration 
logic. The arbitration testing is provided in the basic diagnostic 
for the particular drive: 

RP07 Basic diagnostic is DFRPN 
RP06 Basic diagnostic is DFRPK 
RP04 Basic diagnostic is DFRPH 



DFRPM will operate predictably on systems that are configured 
dual ported drives. DFRP« exhibits the following properties 



respect to dual ported configurations 

Case-1 : A single CPU where some or a 
ported in some fashion between the 
will treat each drive on each control 
only to that controller. The prog 
may be dual ported to some other RH b 
example we have Drive-3 dual ported 
DFRPM will test this configuration 
exist. What this means is that a 
each of the ports and the totals info 
If you w^sh to actually test the d 
need only select that particular driv 



with 
with 



II of the drives are dual 
RHs on that system. DFRPM 
ler as if it were connected 
ram realizes that the drive 
ut doesn't care. If for 
between RH-540 and RH-554, 
as if 2 separate drives 
II of the tests will run on 
rmation will be separated, 
rive from only one port you 
e for test. 



Case-2: A multiple CPU system with one or more drives dual 
ported between those systems. In a multiple CPU system DFRPM 
will be running in only one of those CPUs and will only be able 
to see the drive ports attached to that CPU. The choice of 
which CPU is a question that is asked in the configuration 
dialogue if you are running in user mode. It is perfectly legal 
to run one copy of DFRPM in each CPU and access the drives in 
that manner but consider: 

In user mode we are usinn the Diag JSYS/UUO and this means 
that although 2 copies of the program are running, they can 
never s 'multaneously access both ports of a drive ^t the 
same tin? because of Job scheduling. 

In exec m.^de you may have a copy of the program running in 
each CPU and their operation will be totally asyncronous. 
In .this, instance it will be likely that some port 
arbitration will take place (but cannot be guaranteed). 
DFRPM has logic that allows it to perform correctly in this 
Dynamic Dual Port environment. 



SEQ 0021 



09 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 1 
12 Sep 8 



SEO 0022 



During configuration, DFRPM will print a map of the various RHs 

AnH nn'uOQ rhaf ^ro nn fha cvcfom (cao fin-A) Tn near mnrfa nr 



MAINDEC-10-DFRPM-B-D 
Functional Description 



During configur 
and Drives tha 
an exec mode mu 
that there is 
detect. This h 
drive at a par 
on the other po 
This will no 
for test. Thi 
we must test 
around the prob 
allowed to acce 



Page 18 
12 Sep 85 



the various RHs 

In user mode or 

low probability 



ation, DFRPM will print a map of 
t are on the system (see fig-8). 
Itiple CPU system, there is a 

a drive out there that the program will not 
appens when the program goes out to look for a 
ticular address but the drive is currently in use 
rt by the operating system or another diagnostic. 

nrevent you from attempting to select that drive 
nor inconvenience is a consequence of the way 

tor the presence of drives and there is no way 
lem as long as 2 independent processes are 
sses the drives asyncronously. 



3.5 Modes of program operation 

There are 3 major modes of test control are provided in DFRPM (see 
fig-12). The modes of operation are called default (DEF), manual 
(MAN) and, variable (VAR). You always know the current mode because 
the program has a unique prompt in each mode: 

DEF> (implies default mode) 

MAN> (implies manual mode) 

VAR> (implies variable mode) 

In default (DEF) mode the test sequencing and parameter choice are 
entirely under control of the program. The only uspr options will 
be to choose single or multiple passes. This is similar to ACCEPT 
from DDRPI. The program merely executes a pre-determined set of 
tests on each of the drives that have been selected for test. 



individually in 



Manual (MAN) mode allows the user to select tests inaiviauaiiy 
response to the "What test (or help) - " prompt. The user selects 
from the list of all possible tests that are implemented. 

The variable (VAR) mode of operation allows the user to select tests 
from prompt level just as he does in manual mode. In variable mode 
however, the user has complete control over all parameters that are 
variable in the test he has selected. In this instance the 
parameters will be taken from the users terminal as opposed to the 
random number generator that is used in DEF and MAN modes. The 
variable mode provides the user with the capability to have complete 
control over any test in the exerciser, a feature, which is intended 
to be u valuable trouble shooting aid. 



SEQ 0022 ! 



MAINDEC-' 
Function* 



CYL1: 
CYL2= 

This 
cross 
the ^ 
desci 
bounc 



3.10. 

This 
fund 

SEEK 
WRITE 

In d( 
ope re 

In vc 

for 

trans 

The k 
time 



n 



HAINDEC-'iO-DFRPM-B-D 
Functional Description 



3.6 Test dispatching 



Page 19 
12 Sep 85 



SEQ 0023 



MAlNDEC-1 
Functiona 



3.10. 



-.. J 



"1 



MAINDEC-10-DFRPM-B-D 
Functional Description 



3.6 Test dispatching 



Page 19 
12 Sep 85 



The program has 2 test dispatchers, one for default mode and one for 

manual and variable mode. The dispatcher used in manual and 

variable modes provides the additional dialogue, control, and 

parsing that is required when the user is picking and choosing the 
tests. 



The functi 

get you 

dispatcher 

legality 

dispatcher 

separatin 

to add, 

structure 

operations 



on of the dispatcher 
from command level 

merely scans a seri 
of test name, starti 

knows nothing about 
the functions of d 
elete, or modify 

of the program. 

is done at the test 



(regardless of 

to one of the 
es of tables to 
ng address f and 

the partuula 
ispatcning and 
tests without 

The handling 

level. 



which) is to properly 

implemented tests. The 

determine things like 

iteration counts. The 

rs of the test. By 

testing it is very easy 

changirg the control 

of aU test dependent 



3.7 General test philosophy 

The disk drive is viewed as a box that can perform only a few basic 
functions (read, write, seek, search, etc). The program is made up 
of a series of tests/exercises vhat link these operations together 
in some predetermined sequences in order to cover the different 
combinations of ways the functions can be performed, 
functions has various parameters associated with 
surf, sect, si.'e, etc) which in turn become the 
test. The overall goals are then: 



Each of 
. _ them (ie. 
variables in 



the 
cyl, 
each 



Provide a diagnostic that ir 
that can be run and monitorv 
and mechanical reliability rel 



' up of a series of 
T order to determine 
flity. 



exercises 
drive data 



Provide (in the form of tests) some useful utility functions 
that are commonly used to support disk drives (ie. formatters, 
mappers, bad spot manipulator, etc). 

Provide a evel of test control that allows the program to go 
out and test the drives with a minimum of user dialogue. 



Provide a level of test control 
selectively choose a test from 
exercises and utilities. 



which allows 
the programs 



the user 
repertoire 



to 
of 



Provide another level of manual test control that allows the 
user to control the individual parameters for each test. 



Report errors that are detected during the running 
exerciser and tally the counts in a log. 



of the 



n 



SEQ 0023 



MAINDEC-10-DFRPM-B-D 
Functional Description 



12 Sep 



SEO 0024 



3.8 Test specification and terminology 



MAINDEC-10-DFRPM-B-D 
Functional Description 

3.8 Test specification and terminology 



Page 20 
12 Sep 85 



This is an introduction to some of the terminology used to describe 
tests both in this specification and in the actual program (through 
dialogue at the terminal). Each test has a name of up to 6 
characters in length. These names are recognized by the program as 
being valid tests. There are 2 levels of test description a general 
description and a detailed description. 

The general description is very functional and is used at test 
dispatch level to give you an idea of what functions are performed 
by the test. A more detailed message is available at the test level 
when the program is running in variable mode which guides the user 
in the use of the variables for a particular test. A couple of 
examples: 

Example-1 



A test (or exercise) to seek between to 
command is described at the top (dispatch 

EX5 - SEEK-X. SEEK-Y (USING A SEARCH) 



cylinders 



using a SEARCH 
level as follows: 



This describes the function of the test without going into the 
details of the particular parameters and is all that is 
necessary to run the test in either default or manual mode. 

In variable mode there is another level of help that describes 
the test in more detail. This more detailed level tells the 
user exactly which parameters he can control in a test and how 
they are used. Our example of EX5 translates to the following: 

SEARCH - CYL1.SURF1,SECT1 
SEARCH - CYL2,SURF2,SECT2 

The Variables in this test are CYL1, SURF1, SECT1, CYL2, SURF2, 
SECT2 and will all be asked for by name at the terminal. These 
variables are actually names of locations in the program that 
are part of a larger parameter pool used by all of the tests. 



Another 
this: 



Example-2 



typical specification may be for test FOO and look like 



FOO - WRITE, WRITE. READ, VERIFY (OPTIOMAL) 



Test FOO will first do 2 writes 
verification of data which is 
if he is in variable mode. The 
message may look like this: 



followed by a read and then a 
optionally specified by the user 
more detailed test level help 



SEQ 002^ 



MAINDEC-10-DFPPM-B-D 
Functional Description 



Page 21 
12 Sep 85 



SEQ 0025 



WRITE - CYLI, SURF1, 

UDTTC _ rvi 1 CIIDO 



SECT1, SIZE1, PAT1 

CCrTi 170 OATT 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 21 
12 Sep 85 



WRITE - CYL1, SURF1, SECT1, SIZE1, PATI 
WRITE - CYL2, SURF2, SECT2, SIZE2, PAT2 
READ - CYL1, SURF1, SECT1, SIZE1 



The uses of the variables here indicat 
will be a write some disk address a 
the address, the ^ize of the transfer 
will be used. The second command wi 
address and and again the user has 
address, the transfer size and the 
used. The third function uses the 
initial write and therefore the test 
and verify the data written by the fir 



e that the first operation 
nd the user has control of 
and the data pattern that 
II be a write to some disk 
complete control of the 
data pattern that will be 
same parameters as the 
in this instance will read 
St write command. 



These 2 examples are typical of the way the tests are specified in 
the descriptions of the tests/exercises. There are some tests that 
of course that have no parameters that vary and there are some that 
have a lot more and require more user/program dialogue. In all 
cases, sufficient help, prompting and input checking will be 
provided by the program. 



3.9 Test flow (cycling through devices) 



Each test/exercise ha 
In default mode, a 
the iteration count i 
test is then run 
exhausted. Tn^s cont 
correct number of 
test then returns con 
to do next (usually 
any parameters requir 
cyl, surf, sect, size 



s a number of iterations associated with it. 
drive is chosen and then the test is run until 
s exhausted. The next drive is chosen and the 
on that drive until the iteration count is 
inues until the test has been performed the 
iterations on all of the selected drives. The 
trol to the dispatcher who will determine what 
dispatch to next test). While in default mode, 
ed by the test will be generated randomly (ie. 
data pattern, etc). 



In manual mode, the test dispatcher gets you to a particular test, a 
drive is chosen and then the test is run on that drive until the 
Iteration count is exhausted. The next drive is chosen and the 
process continues until the test has been run the proper number of 
Iterations on all the drives selected for test. After running on 
all the selected drives, the test returns control to the manual mode 
test dispatcher which asks the user again to select another test. 



Handled somewha 
specifying bot 
program is the 
recreate some 
drive so that i 
of this assumpt 
get out when an 
stated in the t 
return back to 
(escape) to the 



t differently is variable mode 
h tests and parameters. Built i 
assumption that we need a variab 
failing condition that we obs 
t may be investigated and repair 
ion is that when you enter a tes 



Iteration count 
est description, 
the dispatcher 

program. 



IS exhausted, 
tests entered i 
until the use 



when the user is 
nto the design of the 
le mode in order to 
erved on a particular 
ed. The first effect 
t, you do not want to 
Unless specifically 
n variable mode never 
r types an altmode 



SEQ 0025 



MAINOEC-10-DFRPM-B-D 
Functional Description 



Page 22 
12 Sep 8^ 



SEQ 0026 



The second consideration in variable mode is determining which drive 



MAINOEC-10-DFRPM-B-D 
Functional Description 



The second consideration in variable mode is determ 
to use, keeping in mind the fact that once it start 
When running in variable mode OFRPM choses the firs 
selected for test and runs the test only on 
cleanest way to use the program in variable mode i 
CONFIG choosing only the drive you wish to test 
This may sound cumbersome at first but after exam 
different control structures this scheme resul 
dialogue for the user and the most reliable way 
functionality to code without running a risk 
software. 



Page 22 
12 Sep 85 



ining which drive 
s it never stops, 
t drive of those 

that drive. The 
s to first run 
and then proceed, 
ining a lot of 
ts in the minimum 
to reduce the 

of confusing the 



SEQ 0026 



NOTE 

Realize that there ARE exceptions to the general philosophy 
of variable mode. For instance, it does not makes sense to 
sit in a loop printing TOTALS o- loop while running CONFIG. 
Some of the program utility features are called up like 
tests but are actually ONE-SHOT events if they are allowed 
to be called in variable mode at all. 



3.9.1 Starting the test 

All tests are started automatically when arrived at from th*- test 
dispatcher. All tests are self initializing and no particular test 
order is mandatory. 



3.9.2 Stopping the test 

Tests can be stopped in several ways: 

In default mode the test dispatcher sits in a locp cycling 
through a list of tests that are pre-determined by the 
diagnostic. The user can get back into control by typing an 
altmode to the program. The altmode m'll be recognized 
immediately if no printing is taking place and at the end of the 
current error report if tre program is in the niddle of an error 
report. 

In manual mode, control will come back to the user when either 
the iteration count is exhausted or he types an altmode. The 
altmode will be recc ,nized immediately if no printing is taking 
place and at the end of the current error report if the program 
is ■in the middle of an error report. 



.J 



MAIN0EC-10-I 
Functionoil i 



"1 



MAINDEC-IO-DFRPM-B-D 
Functional Description 



Page 23 
12 Sep 85 



If the tests are being run in variable mode, the only way for 
the user to get back into control is to type the altmode. The 
altmode will be recognized immediately if no printing is taking 
place and at the end of the current error report if the program 
is in the middle of an error report. 



3.9.3 Obtaining run time status (S) 

The (S) function will be implemented as a method of determining if 
the program is still running or stuck in a loop of some sort. 
Tvpinq the character (S) while the program is running will return 
the following information as a way to insure that the program is 
actively running (see fig-21). 

Program run time (HH:MM:SS) 

Name of current test 

RH and DRIVE under test 

Total read commands issued 

Tt al write comrr.ands issued 

To.al position commands issued 

Current Cylinder, Surface, Sector 

These total counters are 36 bits each and can overflow if the 
program is run for a long enough period. There function is merely 
to show that a<-tivity going on. Their values are of no practical 
use. 

The program services the (S) in a syncronus manner so there may be a 
1 or 2 second delay before response takes place. Like the altmode 
response, you may have to wa'it for the current error printout to 
complete before the (S) is honored. 

Due to some minor differences in the way the various operating 
systems and diagnostic support programs operate, it may be necessary 
to type S<CR> in some configurations to obtain the runtime status. 



3. 9. A Restarting the test 

There is no way to jump back into the middle of a test once 
been aborted with an altmode. 



it has 



Typing an altmode in default mode has the same basic effect as 
reaching the end of a pass. If you abort out of default mode with 
an altmode and then restart, the acceptance list will be restarted 
from the beginning but totals from the previous run will be 
maintained unless the user intentionally chooses to flush them 
executing TOTCLR. 



by 



SEQ 0027 



M 
F 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 2A 
12 Sep 85 



SEQ 0028 



Fl 



In manual or variable mode you merely need to execute the test once 
more and you'll have to re-soecify the oarameters if you're runnina 



L 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 24 
12 Sep 85 



In manual o 
more and you , 
in variable mode 



r variable mode you merely need to execute the test once 
ou'll have to re-specify tht 



ie parameters if you're running 



3.9.5 Parameter generation 

Parameters all come from a random number generator except when the 
program is running in variable mode. In the latter case, the 
program will take input from the terminal instead of the random 
number generator. The validity of the parameters is always checked 
regardless of where the numbers are originated. As the numbers are 
generated for the different variables, each is checked to see if it 
will causi a data transfer or position operation to an area of the 
media t!iat was determined to be NOT USEABLE at configuration time. 
In ranrlom number mode, bad or illegal numbers wilt be aiscarded and 
a n^w ones generated. In the case of user input errors or invalid 
numbers from the terminal, the user will get an error message, a 
list of acceptable input and, a reprompt message (see fig-2). 



There are a couple of general rules that are key 
the way parameters are generated during tests: 



to understanding 



While the generation of cylinder numbers is random, it is also 
closely coupled to, and influenced by, the flavor of command 
(read, write, position) and a knowledge of whether or not the 
program is trying to preserve customer data on the media. 



Once a cylinder number is known, 
start of the transfer fs 
restrictions. This implies that 
any point in the transfer. 



the surface and sector for the 

generated randomly with no 

head switches are allowed at 



The size of the transfer is generated after knowing the starting 
address of the transfer and is restricted somewhat by the 
program such that the following rules apply: 



The largest transfer allowed is a full tracks worth of data 
on any drive. 



No transfer will be allowed to cross 
Mid-transfer seeks can not occur. 



a cylinder boundry. 








Transfers will be allowed to spiral between surfacsSc 

The minimum transfer size chat the user may specify is 1 
36-bit word, however, inside the program a channel command 
hst is constructed that uses RH20 zero fill to round the 
transfer to the nearest full sector of data. If this wore 
not done, the program would have to accept word rount errors 
as a NON error condition. 



SEQ 0028 



MA 
Fui 



MAlNDEC-10-DFRPM-B-D 
Functional Description 



Page 
12 Sep 



Some tests round ut the 

infAnral miil t- inl oc nf 



transfer sizes 

full eorfnre nr frarte ( i 



automatically to 
Dniui V 



SEQ 0029 



HA I 
Fur 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 25 
12 Sep 85 



Some tests round ut the transfer sizes automaticaLLy to 

integral multiples of full sectors or tracks (ie. RONLY, 

UONLY, FORMAT, etc). This is noted in the test 
descriptions. 

The choice of data patterns used for write operations is pseudo 
random. The program contains a table of worst case data 
patterns for magnetic recording. The random pattern selection 
is then realljf a random selection of one of the patterns in the 
table. In v/anable mode the same philosophy applies but the 
user also has the ability to specify a 56 bit data pattern of 
his choice. 



3.9.6 Scope looping 

OFRPM supports the abi'ity to loop on error in all modes if the 
appropriate sense switch is set and an error occurs. Upon detection 
of an error, The current parameters in the pool are frozen and the 
program will be forced to loop in the particular I/O sequence that 
caused the failure. The loop uses only the controller/drive pair 
that was in effect at the time the error occurred. Once a scope 
loop is entered it can be interrupted by either clearing the loop on 
error switch or typing an altmode to the program. Note that the 
altmode abort takes you all the way back to dispatch level while the 
resetting of the switch allows you to proceed from wherever you were 
looping. 

When running in variable mode the loop on error switch has very 
little effect since your in an implicitly forced scope loop in the 
first place. The only effect of th^ loop on error switch in this 
mode IS a subtle effect on the orinting. With the loop on error 
switcn set, only the first occurrence of an error is printed which 
IS standard procedure with this switch. 



3.9.7 Error printouts 

Error printouts closely resemble the error printouts provided with 
existing disk diagnostics. There are 4 basic oarts: 

The header of each message contains cosmetic information such as 
test name, type of interrupt condition, program run time etc. 

RH20 CONI status and registers are dumped 

DRIVE registers are dumped 



SEQ 0029 



nAII 
Fun( 



MAlNDEC-10-DFRPM-B-D 
Functional Description 



Page 
12 Sep 



SEQ 0030 



MAIN 
Func 



Channel command lists and logout data will be dumped if the 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 26 
12 Sep 85 



Channel command lists and logout data will be dumped if the 
CHANER bit was set in the CONI status 

Certain tests such as NEXTST provide additional test information 
as applicable 

In all of the error printouts, the registers and status data is 
dumped as a combination of ASCII, SIXBIT, and numerical data by 
default. The TXTINH sense switch (If set) will force all of the 
status to be dumped in raw octal as it appears in the various 
hardware registers (see fig-15, fig-16). 



3.10 Test and Utility descriptions 

This section describes the functions, parameters, restrictions of 
each test contained in the exerciser. The descriptions in this 
section^ cover all of those operations that may be input in response 
to the WHAT TEST prompt even though some of the operations are not 
device tests. 

The number of iterations for each exercise is arbitrarily chosen at 

this time. The final iteration counts will be tailored to provide 

the best testing in the shortest time while keeping the read/write 
ratio at about 2:1. 



3.10.1 EX1 - recalibrate 

This is a recalibrate exercise. In MANUAL and DEFAULT mode there 
are 100 recalibrate commands issued to each of the drives under 
test. 

There are no parameters to be input in VARIABLE mode and if run in 
this mode, the test will continue to issue recalibrates until 
stopped. 



3.10.2 EX2 - recalibrate, seek 

This is an exercise of the recal, seek operation. The test performs 
the following function. 

RECAL 
SEEK - CYL1 

In default and manual modes, this exercise is is performed for 750 
Iterations on each of the selected drives. 



SEQ 0030 



NAU 
Func 



MAINDEC-10-DFRPM-B-D 
Functional Description 



12 Sep 85 



SEQ 0031 



HA INI 
Fund 



In variable mode the user is asked to supply the cylinder number for 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 21 
12 Sep 85 



In variable mode the user is asked to supply the cylinder number for 
the seek. 



3.10.3 EX3 - recalibrate, search 

This test is an exercise of the recal, search operation and performs 
the following function: 

RECAL 

SEARCH - CYL1,SURF1,SECT1 

In default and manual mode this exercise is performaed for 750 
iterations on each of the selected drives. 

In variable mode the user supplies the disk address parameters for 
the search. 



3. 10. A EXA - seek, seek 

This test performs the function of seeking between any 2 cylinders 
and performs the following function: 

SEEK - CYLl 
SEEK - CYL2 

In the default and manual modes, this exercise is performed for 1000 
Iterations on each of the selected drives. 

In VARIABLE mode, the user is asked to supply the cylinder numbers 
for each of the seeks. 



3.10.5 EX5 - search, search 

This exercises the ability to position between any 2 cylinders using 
the SEARCH command and functions as follows: 

SEARCH - CYLl, SURFI, SECT1 
SEARCH - CYL2, SURF2, SECT2 

In the default and manual modes, this exercise is performed for 1000 
Iterations on each of the selected drives. 

In VARIABLE mode, the user is asked to specify the disk addresses 
for each of the search commands. 



SEQ 0031 



MAINDEC-10-DFRPM-B-D 
Functional Description 

3.10.6 EX6 - seek, write, read, verify data 



Page 
12 Sep 



SEQ 0032 



1 



0019 



MAINDEC-10-DFRPM-B-D 
Functional Description 



3.10.6 EX6 - seek, write, read, verify data 



Page 28 
12 Sep 85 



This test exercises the function of positioning, then writing and 
readino data. After reading data an in core data comparison is made 
and errors reported. The test functions as follows: 

SEEK - CYL1 

SEEK - CYL2 

WRITE - CYL2, SURF2, SECT2, SIZE2, PAT2 

READ - CYL2, SURF2, SECT2, SIZE2. PAT2 

DATA COMPARISON 



NOTE 



If CYL1=CYL2, the first seek is not performed. 



In default and manual modes this exercise is performed for 7000 
Iterations on each of the selected drives. The data compare is 
always performed. 

In variable mode the user supplies the cylinder for the initial seek 
command and then the disk address, transfer size and data patterns 
for the write, read verify portion. In variable mode, the data 
compare is optional. 

This test is essentially performing the standard write/read/verify 
operation but with an explicit seek built into the front of the 
command sequence. 



3.10.7 EX7 - ..-rite, read, verify data 

This test exercises the function of positioning, then writing and 
reading data. This is a variation of FX6 in the manner in which 
positioning is done (uses implied seek). 



made and errors 



After reading data an in core data comparison is 
reported. The test functions as follows; 

SEEK - CYL1 

WRITE - CYL2, SURF2, SECT2, SIZE2, PAT2 
READ - CYL2, SURF2, SECT2, SIZE2, PAT2 
DATA COMPARISON 

NOTE: If CYL1=CYL2, the first seek is not performed. 

In default and manual modes this exercise is performed for 7000 
Iterations on each of the selected drives. The da«:a compare is 
always performed in default and manual modes. 

In variable mode the user supplies the cylinder for the initial seek 
command and then the disk address, transfer size and data patterns 
for the write, .read verify portion. In variable mode, the data 
compare is optional. 



SEQ 0032 



020 



HAINDEC-IG-DFRPM-B-D 
Functional Description 



Page 29 
12 Sep 85 



SEQ 0033 



This test differsfrpm EX6 in.that it does not. do an. explicit, seek 



.,._.J 



MAlNDEC-10-DFRPM-B-D 
Functional Description 



Page 29 
12 Sep 85 



This test differs from EX6 in that it does not do an explicit seek 

in the front of the initial write. The seek is then implicit and 

the write is more difficult for the drive because the heads will 
have less time to settle. 



3.10.8 EX8 - seek, read 

This exercise perfor.ns the 3eek, read data operation. The data is 
not looked at and may be anything. The following function is 
performed: 

SEEK - CYL1 

READ - CYL2, SURF2. SECT2, SIZE2 

In manual and default modes this exercise is performed for 2500 
iterations on each of the selected drives. 

In variable mode the user is asked to supply the initial cylinder 
for the seek and then the parameters for the read data which are the 
disk address and the size of the transfer. 

The sequence is arranged so that the read operation follows an 
implied seek and the Pleads will have less time to settle. 



3.10.9 EX9 - data test a specific area of the media 

This exercise is a special type of exercise designed to allow the 
user to direct his data testing to a specific area of the media. 

This test runs in variable mode only and provides the user 2 
functions: 

Read only on the selected area 

Write/Read/Verify (optional verify) on the selected area 

This test always transfers full tracks at a time starting from the 
beginning. When performing write/read/verify, the data is pseudo 
random and is chosen from the table of standard data patterns. A 
new pattern is chosen at the start of each pass over the specified 
test area if we are doing the write/read operation. 

The user chooses the function (read or write/read/verify) and then 
establishes the address boundaries by entering CYL1. SURF1, CYL2, 
SyRF2. The key to the way this test operates is in understanding 
the way the addresses are processed. 



SEQ 0033 



MAlNDEC-10-DFRPM-B-D 
Functional Description 



,Page |^ 



12 Sep 
The test I005 uses ^YLI.^SyPFl as the starting boundry; of .the area 



SEQ 0034 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 30 
12 Sep 85 



The test Loop uses CYL1, SURF1 as the starting boundry of the area 
to be tested. CYL2, SURF2 will mark the ending boundry (inclusive) 
of the area being tested. The best way to explain the way EX9 deals 
with the address boundaries is through examples. 

For our examples we assume that we are looking at a cross section of 
a hypothetical disk media containing 100 cylinders numbered 00-99 



surfaces numbered 0-9. 



example-1 



CYL1=0 
CYL2=99 



SURF1=5 
SURF2=5 



This IS the classic case of wanting to test an entire surface. BX9 
will stay only on surface 5 but will test surface five on cylinders 
00-99. 



example-2 



CYL1=20 
CYL2=20 



SURF 1=0 
SURF2=9 



In this example, all testing will be done on cylinder 20 and all 
surfaces will be tested. 



example-3 



CYL1=10 
CYL2=10 



SURF 1=7 
Su.-'F2=3 



In this example all of the testing will be on cylinder 10 but EX9 
will go through the surfaces in the following order (7, 8. 9. 0, 1, 
2. 3). This is an important example to understand. 



example-4 



CYL1=5 
CYL2=7 



SURF1=3 
SURF2=5 



In this example EX9 will restrict testing to cylinders 5-7 and will 
test surfaces 3-5. The exercise starts at CYL1, SURF1 and iterates 
from SURF1 to SURF2 before going to the next cylinder. This is the 
standard incrementation scheme for EX9. 



example-5 



CYL1=97 
CYL2=3 



SURF1=1 
SURF2=5 



This is an important example also. In this example we will restrict 
our. testing to surfaces 1-5 but those surfaces will be processed in 
conjunction with the following cylinder order (97, 98, 99, 0, 1, 2. 



SEQ 0034 



MAINDEC 
Functioi 



The 
ope 
dat< 
imp 
occi 
fasi 
ma I 

To ( 
sen 
Any 
pro' 











MAlNDEC-10-DFRPM-B-O 
Functional Description 



Page 31 
12 Sep 85 



SEQ 0035 



NAIND^C- 
Functior 



example-6 



MAINDEC-IO-DFRPM-B-D 
Functional Description 



Page 31 
12 Sep 85 



exainple-6 



CYL1=98 
CYL2=1 



SURF1=8 
SURF2=1 



This is the most complicated example to understand. If we picture a 
cross section of our hypothetical media we see that we are testing 
the 4 corners of the cross section. The following table is an exact 
description of how EX9 will proceed to test within this address 
boundry. 



CYL 



SURF 



^9 



3.10.10 EX10 - seek, write 

This exercise performs the seek, write operation. The following 
function is performed: 

SEEK - CYL1 

WRITE - CYL2, SURF2, SECT2, SIZE2, PAT2 

In default and manual modes this operation is performed ^ 2500 
operations on all of the selected drives. 

In variable mode, the user is asked to supply the cylinder number 
for the seek and for the write he supplies the disk address, 
transfer size and data pattern. 

The write follows an implied seek operation giving the heads less 
time to settle. 



SEQ 0035 



J 



MAlNDEC-10-DFRPM-B-D 
Functional Description 



Page 
12 Sep 



SEQ 0036 



3.10.11 EX11 - read, write, read 



n 



MAINDEC-10-DFRPM-B-D 
Functional Description 

3.10.11 EX11 - read, write, read 



Page 32 
12 Sep 85 



This exercise performs the read, write, read operation and functions 
in the following manner: 

READ - CYL1. SURF1. SECT1. SIZE1 

WRITE - CYL2. SURF2, SECT2, SIZE2. PAT2 

READ - CYL3. SURF3. SECT3, SIZE3 

In default and manual modes this exercise is run for 2500 iterations 
on each of the selected drives. 

In variable mode user supplies the disk address and transfer sizes 
for all 3 operations, and for the write he supplies the data 
pattern. 

All of the transfers are performed with implied seeks. The data 
read during the read operation is whatever happens to be on the 
media. 



3.10.12 EX12 - write, read, write 

This exercise performs the write, read, write operation and 
functions in the following manner: 

WRITE - CYL1. SURF1. SECT1. SIZE1. PAT1 

READ - CYL2, SnRF2. SECT2. SIZE2 

WRITE - CYL3. iURF3. SECT3. SIZE3, PAT1 

In default and manual modes this exercise is performed for 2500 
iterations on each of the selected drives. 

In variable mode the user supplies the complete disk address and 
transfer size for each of the operations and for the writes he 
supplies the data pattern. The same data pattern is used for both 
writes. The read returns whatever data happens to be on the media. 

All operations are performed with implied seeks. 



3.10.13 RONLY - read only 

This exercise is a read only operation. 
follo> ig way: 

READ - CYLl. SURFl. SECTl. SIZE1 



The test functions in the 



In default and manual modes this exercise is used as a PACK SCAN. 
The parameters do not vary randomly. All transfers start at the 
beginning of the track and are a full track long. In default and 
manual mode this exercise is run for 1 iteration on all of the 



SEQ 0036 



NAIND^C-10-DFRPM-B-D 
Functional Description 



Page 
12 Sep 



SEQ 0037 



selected drives. 



MAINDEC-10-DFRPM-B-D 
Functional Description 



selected drives, 



Page 33 
12 Sep 85 



In variable mode, the user has control of the entire disk address 
and ♦'he i'ze of the transfer. 

Note that you can get almost the same effect by running EX8 and 
entering the same values for CYLl and CY12. The difference would be 
that EX8 would contain an explicit zero cylinder seek in front of 
each read. 



3.10.U WONLY - write only 

This exercise is a write only operation. The test functions in the 
following way: 

WRITE - CYLl. SURF1, SECT1, SIZE1, RATI 

This exercise is not currently set to run in default mode since very 
little information is gained from a write only operation. 

In manual mode this exercise writes the entire pack. The parameters 
do not vary randomly. All transfers start at the beginning of the 
track and are a full track long. In manual mode this exercise is 
run for 1 iteration on all of the selected drives. 

In variable mode the user gets to specify the complete disk address, 
transfer size and and the data pattern. 

Note that you can get almost the same effect by running EX10 and 
entering the same values for CYLl and CY12. The difference would be 
that EXTO contains an explicit zero cylinder seek in front of the 
write. 



3.10.15 FORMA - format the media 

This portion of the program is responsible for formatting the disk 
media in 18-bit mode. The test is specified in the following 
general manner: 

FORMAT - CYLl, SURF1 

The first important property of the formatter is that only full 
tracks are formatted at a time. 

This routine is not currently run in default mode since the media 
formatting operation is only required once, and not on every pass. 

In manual mode the formatter is run for 1 iteration on each of the 
selected drives. The entire disk is formatted with this single 
Iteration in manual mode. PAKINT performs the format function by 



SEQ 0037 



MAINDEC-10-OFRPM-B-D 
Functional Description 



Page 3A 
12 Sep 85 



SEQ 0038 



callina FORMAT. 



MAINDEC-10-DFRPM-B-D 
Functional Descriptiun 



Page 3A 
12 Sep 85 



calling FORMAT. 

In variable mode the user specifies a single track to be formatted. 

On the RP06 

The data is RP04/RP06 worst case data and is identical to the data 
written on the packs when formatted with DDRPI. DFRPM does not 
write the serial number in the key words of the header but instead 
leaves them set to zero. The rationale for this is that the key 
fields appear to be of little or no use and to back that up I use 
the argument that the key fields have been done away with on all 
drives since the RP06. Writing the serial number in the key words 
of the RPGAs and RP06s was instituted by DDRPI in early RPOA days 
because it seemed like a nice thing at the time and nobody could 
find a practical use for the keywords. 

On the RP07 

The formatting operation for t- RP07 involves a process called 
defect skipping. A short record called a track descriptor (TD) 
record is recorded by the manufacturer at the start of each track. 
The TD contains a header like any other sector and in addition 
contains information that tells the formatter about the location of 
any medi.-* defects that were identified by the manufacturers media 
scanning process. 



the 



The position or 
degree (called SOFT 
formatter first reads 
lie on the track, 
together to format 
calculations based 
lays out in core 
Included in each 



sectors on th 

SECTORING) 

the TD to f 

The forma 

AROUND the 

upon where 

a tracks worth o 

header field for 



which the formatter and the 
formatter essentially tells the m 
nassbus) how to lay down the trac 
sector fields around the defects, 
each read or write f'-om this poin 
the header fields for every sec 
identify the layout of the sector 



e RP07 is variable to a certain 

In a very general sense, the 

ind out where (if any) the defects 

tter and the rjP07 microcode work 

defects. The formatter does 

the manufactured defects occur and 
f headers for the format command. 

the RP07 sectors are words through 
RP07 microcode communicate. The 
icrocode (via header words over the 
k in a way that positions various 
The track is now formatted and on 
t on, the RP07 microcode will read 
tor that is transferred in order to 

(on the fly). 



During the RP07 format operation, DFRPM supplies onl 
words for each sector and the RP07 microcode fills 
of each sector with an all ones pattern. 



the 



the 
data 



header 
fields 



SEQ 0038 



«AIND|C-10-DFRPM-B-D 
Functiondl rescript ion 



Page 35 
12 Sep 85 



SEQ 0039 



'^.m 1A MPURAT . urito nou ( r \ a:kn'i DAT hinrLt 



MAINOEC-10-OFRPM-B-D 
Functiooiil Description 

3.10.16 NEWBAT - write new (clean) BAT blocks 



Page 35 
12 Sep 85 



SEQ 0039 



NEWBAT is a short utility routine for writing new (clean) BAT blocks 
on the media. The 2 BAT blocks are written with no bad spot 
entries. 

This routine is not run in default mode. 

In manual mode, this routine writes clean BAT blocks on each of the 
selected drives and then returns to the test dispatcher and the 
prompt. 

There are no variables in this utility and it does not run in 
variable mode. 



3.10.17 MAPOUT - manipulate BAT blocks 

MAPOUT is a utility whose prime function is to transfer the bad spot 
information accumulated by the program into the proper BAT block 
format and then write a new (updated) set of BAT blocks on the 
media. The utility works with information contained in a buffer 
area called the MAPOUT DATA BASE which is discussed in more detail 
in sectior, 3.11. 

This utility provides a secondary function of allowing the user to 
edit individual entries in the mapout data base. 

This utility i; not run in default mode. 

This t.tility is automatically run when the PAKINT utility is run. 

Functionaly speaking, the utility is set up so that running in 
manual mode causes the BAT blocks to get updated while running in 
variable mode, gives the user access to the various edit commands. 

Manual mode of operation 

Running MAPOUT in manual mode causes the program to write an updated 
set of BAT blocks on each of the selected drives. The information 
used for the BAT block update comes from the mapout data base. All 
data base entries (up to a maximum number of 61) whose bat block 
update bit (BBU) "s set will be transferred to the BAT blocks of the 
appropriate drive. 

Variable mode of operation 

By running the MAPOUT utility in variable mode the user gains access 
to e 2 level command and editing system for dealing with the mapout 
data base and its entries. The top level (1st) level provides a set 
of commands to examine and manipulate the data base, go to a second 



MAINDEC-10- 
Functional 



3.10.31 

This is 
^he '\i 
the for 
each f 
is ente 



Uhe 
USE 
CLO 
mod 



3.10.32 

This is 
the "U 
resetti 
reiniti 



3.10.33 

This is 
the "Wh 
user mo 
The si 
normal I 
status 
Re-con f 
selecte 
program 
IS to r 



3.10.34 

This is 
the "VI 
diagnos 
monitor 



SEQ 0027 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 36 
12 Sep 85 



Level for editing or, leave the mapout utility and return to the 
test dispatcher. The 2nd level provides a command set that allows 
the user to access, examine, add, delete, modify individual entries 
in the data base and finally, return to the top level commands. At 
each level the program provides a help capability which briefly 
lists the commands that are available within that level (see fig-23 
and fig-2A). 

The 1st level is called DATA-BASE-EDIT mode and the program issues a 
prompt to that effn-'ct (see fig - 23). 

The 2nd level is called ENTRY-EDIT mode and the program issues the 
appropriate prompt when you are in this mode (see fig 24). 



H - provides 
level. 



Data-Base-Edit level commands 
a brief list of command functions available at this 



DONE - leave the mapout routine and go back to the test dispatcher. 

CLRDB - clear the data base. This causes all bad spot data for a 
particular drive to be deleted. Because of the consequences of 
this command it requires confirmation. 

LIST - lists all of the information in ALL of the data base entries. 
This is the most verbose form of obtaining status (see fig-25). 
Figure 25 is a typical look at a data base containing only 1 
entry. 

LSTHRD - lists all of the information for the entries of the data 
base that are HARD errors only. These are the spots that will 
actually go to the bat blocks on subsequent updates. (see 
fig-29 for a typical printout). 

LSTSFT - lists all of the information for the entries of the data 
base that are SOFT errors only. These are the entries that will 
not go to the bat blocks on subsequent updates, (see fig-30 for 
a typical printout). 



LISTQ - provides a 



quick 
base entries. The 



(less verbose) summary of 



all of the data 
addresses and logical block numbers are given 
in decimal along with the number of times this spot showed up as 
either a HARD or SOFT error (see fig-26). The left hand column 
has a single word HARD or SOFT indicating the current status of 
this entry. Again, HARD errors go to the BAT blocks on 
subsequent updates. 



LISTQO - provides 
base entries 



e. quick (less verbose) summary of all of the 
The addresses and logical block numbers are 
in octal but the number of HARD and SOFT occurrences are 
given in decimal (see fig-27). The left hand column 
single word HARD or SOFT indicating the current status of 



data 
given 
still 
has a 

this 



entry. Again, HARD errors go to the BAT blocks on subsequent 



SEQ 0040 



SEQ 0028 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 
12 Sep 



SEQ 0041 



M 
F 



updates. 



L 



5EQ 0028 



MAINDEC-10-DFRPM-B-D 
Functional Description 

updates. 



Page 37 
12 Sep 85 



URTBAT - write an updated set of BAT blocks to the selected drive 
right now. Transfers all of the hard error spot information to 
the BAT blocks. Up to 61 BAT block entries are allowed. If 
there are more than 61, the rest will be ignored. This function 
will not be allowed if, at configuration time, the drive was 
either part of a mounted structure or, the user indicates that 
there is good data on the media. In these 2 instances, the BAT 
blocks will NOT be updated and the appropriate error message 
will be given. 

EDITL - stands for EDIT-LOGICAL and is a command that takes the user 
to ENTRY-EDIT mode. The name EDIT-LOGICAL applies because the 
user specifies the entry by its LOGICAL BLOCK number. If no 
entry exists for the specified LBN, a new one will be created 
and the user will then be allowed to execute all of the 
entry-edit commands. If the specified LBN is already in the 
data base, the program immeoiately places the user in entry-edit 
mode. 

EDITP - stands for EDIT-PHYSICAL and is a command that takes the 
user to ENTRY-EDIT mode. The name EDIT-PHYSICAL applies because 
the user specifies the entry by its physical disk address 



(Cylirider, 
specified. 



Surface, 
EDITL and 



Sector) 
EDITP are 



Aside form 
identical in 



the way the 
every way. 



entry is 



Entry-Edit commands 



Entry edit moae allows the user access to a group of commands to 
modify the individual entries of the mapout data base. Once an 
entry is chosen, it is either created (if it does not already exist) 
or is fetched from the data base (if existing) and placed in an edit 
buffer. The actual entry-edit commands are applied to the copy in 
the edit buffer and unless otherwise specified, the data base is not 
updated until either the NEXT, or DONE commands are given. 



H - lists a brief description of commands 
fig-2A). 



and their functions (see 



LIST - gives a complete description of the contents of the selectei 
data base entry. All bits and fields are listed (see fig-29). 

DONE - leave entry edit mode after first transferring the current 
edits to the data base. When you leave entry edit mode you 
return to the data base edit mode. 

NEXT - transfers the edits we have been doing into the data base and 
then ask the user for the NEXT entry he wishes to work on. This 
merely provides a sequential mode of editing. 



CANCEL - cancel the edits that have just 
This command allows th^ user to 
entry by leaving entry edit mode and 



taken place for this entry, 
abort edits for the current 
N01 updating the data base 



SBQ 0041 



Fi 



EQ 0029 



MAINDEC-10-DFRPM-B-O 
Functional Description 



Page 
12 Sep 



SEQ 0042 



MA 
Fu 



for this entry. 



MAINDEC-10-DFRPM-B-D 
Functional Description 

for this entry. 



Page 38 
12 Sep 85 



CLRENT - clears the selected data base entry. This command 
IMMEDIATELY deletes the selected entry from the mapout data base 
and leaves entry edit mode. 

HARD - declares the entry to be a HARD error (sets the B8U bit to 1) 
regardless of its current state. This entry will now go to the 
BAT blocks on subsequent BAT block updates. A status bit in the 
entry is also set that effects future LIST commands of this 
entry. Following LIST commands will give a message saying that 
the operator hcs declared that this blcck go to the BAT blocks 
(see fig-29). 

SOFT - declares the selected entry to be a SOFT error (sets the BBU 
bit to 0) regardless of its current- state. This address will 
not be transferred to the BAT blocks on subsequent updates. 
This command effects future operations of the LIST command. If 
the operator has actually changed an entry from HARD to SOFT, a 
status bit is set so that future LIST commands give a message 
indicating that the operator has performed this action (see 
fig-30). 

CLRST - clears the error irdicator type (DCK, OPI, DTE, etc) bits 
for the entry along with the counters that have been counting 
the number of hard and soft occurrences of errors at this 
address. 



MR - modify thp region that will be writen in the BAT 
This command specifies the number of blocks 
starting from the selected disk address. 



block entry, 
that are bad. 



PNT - print all errors that occur at this disk address. Under 
normal operation, only the first data error from a particular 
address is printed as a way to reduce printout. This default is 
overridden on a global basis by the use if the PALERS console 
switch or, on a per-entry basis by the PNT command. 

NOPNT - do not print future errors from this disk address. This 
command exists to nullify the PNT command and return the program 
to default mode. 



3.10.18 PAKINT - media initialize 

PAKINT is a utility to initialize the media (format- veriiy, map). 
This utility does nothing more than run FORMAT, RONLV. and MAPOUT 
with the correct defaults so that dialogue in the individual tests 
can be bypassed. 

This utility is not run in default mode. 



SEQ 0042 



MA] 
Fur 



HAIND^C-10-OFRPM-B-D 
Functional Description 



.,P«9e 39 
12 Sep 85 



SEQ 0043 



MAII 
Fun( 



In maniiAl mnHA t'hi<: iifili'f-x/ rune POOMAT DOMI V MAOnilT fnr 1 



J 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 39 
12 Sep 85 



In manual mode, this utility runs FORMAT. RONLY, MAPOUT for 1 
Iteration on each of the selected drives with a set of predetermined 
defaults. 

The utility does not run in variable mode. The routines to format, 
verify and map can be individually run in variable mode. 



3.10.19 CONFIG - perform configuration dialogue 

CONFIG is a part of the program that is coded to look like a 
utility. The function of confiQ is to give the user the ability to 
reconfigure his program to the hardware or change some of tl^e 
program options that are currently in effect. The user may: 

Reselect RH20s 

Reselect drives 

Reselect the options of how to deal with user data on the media 

Running config has no effect on the totals that have been 
accumulated during previous passes of the diagnostic. 

The config dialogue is executed once at initial start of the program 
and optionally it the program is restarted from location 30004 which 
is the alterna«"e start address. 

Config is not executed in default mode. 

Config may be called as one of the tests when in manual mode. 

Config may be called as one of the tests from variable mode but 
there are no additional features in this mode. In default and 
variable mode config performs the same function. 



3.10.20 SKTST1 - Timing of incremental seeks 

This is an exec mode only test. This test performs the function of 
measuring the access time of the drive in response to single 
cylinder seeks. Single cylinder seeks are handled slightly 
different in the hardware than other seeks and are tested 
separately. 

All single cylinder forward and reverse seeks are timed and the 
minimum, maximum, and average time is reported (see fig-3A). The 
accuracy should be within 50 microseconds. The program will tally 
the number of seeks that are out of specification according to the 
purchase specification and report the condition. Seeks that exceed 
the specification will not contribute to the hard or soft error 



SEQ 0043 



HA I 
Fun 



HAlNOEC-10-DFRPM-B-D 
Functional Description 



Page 40 
12 Sep 85 



counts unless the driup nosts a nosition prror dp. ^tc\). 



SEQ 0044 



MAir 
Func 



MAINDEC-10-DFRPM-B-D Page AO 

Functional Description 12 Sep 85 

counts unless the drive posts a position error (ie. SKI). 

This test is not currently run in default mode. 

In manual mode this test is run for 1 iteration on all the selected 
drives. 



This test does not run in variable mode, 
controllable parameters. 



NOTE 



There are no user 



Seek timing cannot be measured when running in USER MODE 
however, the test is allowed to run in user mode with no 
TIMES measured or reported. In this situation the test 
still functions as a useful mechanical exercise for the 
hardware. 



3.10.21 SKTST2 - Timing of the seek operation 

This is an exec mode only test. This test is used to 
seek time of a drive. This is a 2n seek test. This 
all the possible lengths of seeks (both forward and 
reports the minimum, maximum and, average seek 
drives(see fit, -35). The program should be accurate 
microseconds. The program will tally the number of 
out of specification according to the purchase spec 
report the condition. Seeks that exceed the specific 
contribute to the hard or soft error counts unless the 
position error (ie. SKI). 

AVE SEEK TIME = TOTAL SEEK TIME FOR ALL SEEKS / NUMBER OF SEEKS 

This test does not currently run in default mode. 

In manual mode this test is run for 1 iteration on each of the 
selected drives. 

There are no user controllable parameters and this test will not 
work in variable mode. 

NOTE 

Seek timing cannot be measured when running in USER MODE 
however, the test is allowed to run in user mode with no 
TIMES measured or reported. In this situation the test 
still functions as a useful mechanical exercise for the 
hardware. 



determine 


the 


test 


performs 


reverse) 


and 


times 


for 


the 
50 


to W1 


thin 


seeks 


that 


are 


ification 


and 


ation 


will 


not 


drive 


> posts a 



SEQ 00^^ / 



MAIN 
Func 



HAIND|C-10-DFRPM-B-D 
Functional Description 



Page 41 
12 Sep 85 



SEO 0045 



MA INI 
Funci 



\ in ?V CI^TCTs M Timir\n caaLc* Ka^ljaam srw^ D /* u I iwsA^ 



MAINDEC-10-DFRPM-B-D 
Functional Description 

3.10.22 SKTST3 - Timing seeks between any 2 cylinders 



Page 41 
12 Sep 85 



SEQ 0045 



This tests allows the user to measure the seek time between any two 

cylinders for a given number of iterations. The minimum, maximum 

and average seek times are reported along with the number of 
Iterations. 

The user specifies the cylinder numbers CYL1 and CY12 along with the 
number of seeks to perform and average. The measurement is made 
going from CYLl to CYL2 and not from CYL2 to CYL1. There is an 
approximate 16 Millisecond delay built into the software between 
each seek that is transparent to the measurement. 

This test runs in variable mode only. 

NOTE 

Seek timing cannot be measured when running in USER MODE 
however, the test is allowed to run in user mode with no 
TIMES measured or reported. In this situation the test 
still functions as a useful mechanical exercise for the 
hardware. 



3.10.23 NEXTST - read/write/next test 

This is an exec mode only test. This test verifies that the drives 
are capable of performing next sector operations without missing a 
revolution or making errors. The test uses the backup command 
features of the RH20 and tests the drives response to the following 
command pairs: 

Read followed by read 

Read followed by write 

Write followed by write 

Write followed by read 

The test is specified in the general form; 

NEXTST - Test possible combinations of read/write next. 

Nextst performs identically in manual and default modes. The test 
executes 5000 iterations of each of the 4 possible command pairs on 
each of the selected drives. Here are some properties of tne test 
in default and manual mode. 

Each iteration is made up of a command pair (1 of the 4 possible 
combinations). The first command is called the primary command 
and the second is called the secondary (backup) command. 



MA I NO 
Funct 



H 



f 



p 

n 
k 



HAlNDEC-10-DFRPM-B-D 
Functional Description 



Page 4 
12 Sep 8 



SEQ 0046 



MAINDf 
Functi 



M a^t'U 



.im,. 



._^ ....^..^.-. 






J 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 42 
12 Sep 85 



Both primary and secondary commands transfer 4 sectors 

of data to or from the disk. The. secondary command always 



starts on the sector immediately following 
primary command. 



termination 



(1-page) 

i always 

of the 



The data is random and not checked after the read. The program 
assumes that the hardware will detect data errors through parity 
checks, CRCs, and ECC checks. 

The entire test is run on the maintenance cylinder. 

While the sizes of the transfers remain fixed, the st-^'-ting 
addresses are generated at random (surface and sector). 

Because the starting addresses are picked at random and the size 
of .the transfer is fixed. Head switches will occur randomly 
during the test. The head switch may occur at any sector 
boundry during the primary or secondary command. Head switches 
may occur at the transition from primary to secondary command. 

Because of sector skew between surfaces on the RP07 due to 
defects, defective surfaces are not used during the test. If 
they were, the test would lead to false indication of failure. 

For RP06s all surfaces are used. 

During the execution of this test, the program retry algorithims 
are disabled. This test can not take advantage of the standard 
program re^ry schemes as its execution is time critical. 

When running nextst in variable mode, the same general operations 

occur but the user has some control over the parameters (see 

fig^l?). The following properties apply to the running of nextst in 
variable mode: 

Primary and secondary commands are always 4 sectors (1-page) 
each and are back to back. 

The user is able to specify the type of command pair (read/read, 
write/read etc). 

The user is allowed to pick the cylinder that will be used 
(CYLl). 

The user is allowed to pick the starting address for the primary 
command (SURF1,SECT1). 

The user is allowed to specify the surface (SURF2) for the 

secondary command as a way to force a head switch. The Starting 

sector of the backup command is predetermined to be 4 sectors 
(1-page) from the start of the primary command. 



SEQ 0046 



NAIND^C-10-DFRPM-B-D 
Functional Description 



Page 4! 
12 Sep Bl 



t\ Uki \ . 



t-kt 



I IP A r> IP 



k I I #M-lA/4 



¥ ^s ^ 1 ^ L 



^Ua 



^^«ka«^ ^ m^^m 



SEQ 0047 



._J 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page A3 
12 Sep 85 



While the user is allowed to pick the starting sector and 

surface for the primary command and the surface for the 

secondary command he must consider the consequences of his 
choice. 

The RP06 has no address restrictions for read write next and 
you should be able to use the entire selected cylinder, 

If he sets up a command that implicitly head switches from a 
defect free surface, to a surface having a defect (RP07), 
the odds are good that he'll fail nextst merely because of 
the sector skew between the good and the defective surface. 

The same sort of sector skew problem exists with RP07 if he 
chooses to issue the primary command to a defective surface 
and an implicit head switch occures. 

Nextst will work if you set up primary commands to start on 
a defective surface and you insure that no head switch 
occurs. 

In order to assist the user in the proper choice of commands and 
addresses for RP07, the program first reads all the TDs and 
Lists the surfaces (by number) that are defective. The user can 
then determine the effects of sector skew for each choice of 
operation. 

Application note 

The ultimate goals of neAtst are to guarantee that next sector 
operations do not take an extra revolution and, to insure that the 
data has come from the correct disk address. The problem with 
implementing a test like this is dealing with other errors that 
occur during the test. If not sorted and reported in the correct 
fashion, read/write next could be incorrectly identified as having a 
malfunction. 

To deal with this situation nextst has its own error handler and 
screening process that is different than the rest of the exerciser. 
Any of the following error messages can be generated from nextst to 
provide more accurate fault isolation. 

BACKUP command taking an extra revolution 

OA/DCY registers pointing to wrong addr after BACKUP command 

PCRFUL failed to set with PRIMARY command 

PCRFUL set without a SECONDARY command 

Issuing the PRIMARY command has caused an error 

Issuing SECONDARY command failed to set SCRFUL 

Issued SECONDARY command and found PCRFUL clear 



SEQ mi*7 



HAlNDEC-10-DFRPM-B-D 
Functional Description 



Page 4A 
12 Sep 85 



SEQ 0048 



« r ^ ^ft«^ i 



MAlNDEC-10-DFRPM-B-D 
Functional Description 



Page 44 
12 Sep 85 











Issuing SECONDARY command has caused 
ERROR during PRIMARY cownand 
ERROR during SECONDARY command 
Device HUNG during PRIMARY command 
Device HUNG during SECONDARY command 



an error 



3.10.2A PEEK - examine areas of the media 

Peek is a utility that allows the user to read and print the 
contents of any area of the disk. The utility provides 4 functions: 

Look at track descriptor record (RP07 only) This function causes 
3 36-bit words to be transferred from the device to memory. 

Look at header fields of a particular sector. For RP06, 2 
36-bit words are transferred from the device to memory. For the 
RP07, 3 36-bit words are transferred from the device to memory. 

Look at data field for a particular sector. 128 36-bit words 
are transferred between the device and memory. 

Look at header and data fields for a particular sector. For the 
RP06, 130 36-bit words are transferred between the device and 
memory. For the RP07, 131 36-bit words are transferred between 
the device and memory. 

The routine is specified as follows: 

PEEK - FUNCTIu\'. CYLl, SURF1, SECT1 

The utility does not run in default or manual modes. 



In variable mode the user 
addresses. When a function 
data field of a sector, the 
and the number of words 
either the entire data field 
field, (see fig-19). 



supplies the function and the disk 

is specified that includes examining the 

user is allowed to supply starting word 

which gives him the ability to display 

or a specified piece of that data 



3.10.25 TOTALS - print acccwulated totals 

This utility prints statistics that have been accumulated by running 
the program. In addition to the program performance statistics, 
totals prints (in condensed form), a list of all the hard and soft 
error addresses currently contained in the program mapout data base 
(see fig-22). 



The TOTALS function does not run 
totals is a one-shot event, 
initially selected drives, 
automatically printed at the end 



in variable mode. The 
Totals are printed for' each 
In default mode, totals 
of each pass. 



printing 



of 
the 
are 



SEQ 0048 



HAINDEC-10-DFRPM-B-D 
Functional Description 



_Page 45 
12 Sep 85 



SEQ 0049 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 45 
12 Sep 85 



SEQ 0049 



The following is a lists some of the items that are totaled as the 
program runs: 

writes = 
bits written = 
reads = 
bits read = 
recals = 
seeks = 
searches = 

data compare errors = 
ECC correctable errors = 
unrecoverable ECC errors = 
OPIs = 

header errors = 
position errors = 
device errors = 
extraneous interrupts = 
read write next taking extra revolution 
during read/read = 

during read/write = 

ouring write/write = 

during write/read = 

Totals for any category are not printed if the count is "0" for that 
category. Totals for each device are saved until explicitely 
cleared by running TOTCLR or the program is restarted at loc 30000. 



3.10.26 TOTCLR - c'.ear/reset totals counters 

TOTCLR is a utility that zeros the error logs and statistics areas 
in the program but does NOT have any effect on the hard and soft 
error information contained in the mapout data base. TOTCLR is a 
one-shot event that returns to command level immediately. 

TOTCLR runs only in manual mode on all of the selected drives. 



3.10.27 TDLST - list track descriptor records 

TDLST is a utility for listing the contents of track descriptor 
records on the RP07. It has no function for RP06. The test is 
specified in the following manner: 

TDLST - read track descriptor for CYLl, SURFI 

This utility is not run in default mode. 

In manual mode this utility reads all of the track descriptor 
records on the entire disk and prints the contents of those records 
including flag bits that may be set. The routine is performed for 1 



HAINOEC-10-DFRPM-B-D 
Functional Description 



Page 4| 



12 Sep 



SEQ 0050 



i *. *. . 



A *. i. - 



HAINDEC-10-DFRPM-B-D 
Functional Description 



Page A6 
12 Sep 85 



SEQ 0050 



NA1NDEC-' 
Functionc 



Iteration on each of the selected drives. At the end of the list, a 
brief summary is given that indicates the number of tracks with 1, 
2, 3, 4 defects along with the total number of defects on the media 
(see fig-31). The following data is printed from the contents of 
the 6 track descriptor words: 

The serial number of the drive 

The cylinder number from word-1 

The surface and sector numbers from word-2 

The defect displacements from words-3.A,5,6 

The TD-MOVED flag from word-1 

The HO-MOVED flag from word-1 

In variable mode the user specifies a range of disk addresses for 

which he would like the defect information listed. The printout is 

identical to running in manual mode but the list is a lot shorter 
(see fig-32). 



3.10.28 TDBLD - write track descriptor record 

TDBLD is a utility that allows the user to write a 
descriptor on a specified track and specify the complete 
the track descriptor record that is written. The 
specified in the following way: 

TDBLD - CYL1, SURF1 

This utility runs in variable mode only 



A.O Int( 
4.1 



new track 
contents of 
utility is 



The user is asked to first 
The program then reads 
specified track descriptor 
wishes to still modify its 
is nothing more to do 
dispatcher. If the answer 



supply the disk address (cyll, surfl). 
and reports the current contents of the 
record and then asks the user if he 
contents. If the response is "NO", there 
and^ control will return to the test 
is "YES", the user is asked to specify: 



If track descriptor 

If header zero (HO) 

The displacement value 

The displacement value 

The displacement value 

The displacement value 



(TD) is to be moved 

is to be moved 
for defect-1 
for defect-2 
for defect-3 
for defect-A 



5.0 GLo; 



Uter dialogue (see fig-33) is complete, the program: 

Rewrites the track descriptor (TD) 

Reformats the entire track with the new TD in place 

Reads the entire track into a core buffer 



i«AINDEC-10-DFRPM-B-D 
Functional Description 



Page 47 
12 Sep 85 



SEQ 0051 



MAINDEC-1 
Glossary 



MAINDEC-10-DFRPM-B-D 
Functional Description 

3.10.29 TD631 - write track descriptor record 



Page 47 
12 Sep 85 



SEO 0051 



This test performs almost the same function as TD8LD except that the 

cylinder number is not optional. This routine is included for the 

rare case of having to recreate the track descriptor records on 
cylinder-631 on an RP07. 

Cylinder-631 is the c.e. cylinder used by the ISS microdiagnostics 
and some of the data tests in the RP07 basic diagnostic DFRPN. With 
the exception of this routine there is no support for cylinder-631 
in the formatter/exerciser program, DFRPM. 



new track 
contents of 
utility is 



TD631 is a utility that allows the user to write a 
descriptor on a specified track and specify the complete 
the track descriptor record that is written. The 
specified in the following way: 

TD631 - SURF1 

This utility runs in variable mode only 

The user is asked to first supply the disk surface on CYL-631. The 
program then reads and reports the current contents of the specified 
track descriptor record and then asks the user if he wishes to still 
modify its contents. If the response is "UQ". there is nothing more 
to do and control will return to the test dispatcher. If the answer 
IS tES , the user is asked to specify: 

If track descriptor (TD) is to be moved 

If header jero (HO) is to be moved 

The displacement value for defect-1 

The displacement value for defect-2 

The displacement value for defect-3 

The displacement value for defect-4 

After dialogue (similar to that of fig-33) is complete, the program: 

Rewrites the track descriptor (TD) 

Reformats the entire track with the new TD in place 

Reads the entire track into a core buffer 



3.10.30 MODE - changing program run mode 

This is not a test or exercise but a command entered in response to 
the What Test prompt. This allows the user to get from the 
current run mode (MANual, or VARiable) '^ any other run mode 
(MANual, VARiable, DEFault). 



MAINDEC-11 
Glossary 

EXEC I 
USER I 

C( 

REMOTI 
a 

TD - I 



BAT Bl 

U' 
01 

OPI - 
ECC - 

HUNG I 

a 



NAINDEC-10-DFRPM-B-D 
Functional Description 



Page 
12 Sep 



^f 



SEO 0052 



HAlNDEC-10 
Appendix -A 



MAINDEC-10-DFRPM-B-D 
Functional Description 

3.10.31 RUNTME - obtaining program run time 



Page 48 
12 Sep 85 



to 
in 



This is not a test or exercise but a command entered in response 
••he TJhat Test ' prompt. This merely returns the program runtime 
the form HH:MM:SS for convenience. The runtime is set to zero on 
each full restart/re-init of the program or when the RUNZRO command 
is entered. 

NOTE 

Whenever a program runtime is reported by this program in 
USER MODE, the time represents CPU time rather than WALL 
CLOCK time that is normally reported when running in EXEC 
mode. 



3.10.32 RUNZRO - resetting program runtime to zero 

This is not a test or exercise but a command entered in response to 
the Vhat Test ' prompt. This provides the user a method of 
resetting the runtime of the program without completely 
reinitializing the program and its associated data tables. 



3.10.33 PGMSiZ - print current core usage 

This is not a test or exercise but a command entered in res 
the what Test" prompt. This command does nothing in exec 
user mode, print the amount of core the program is current I 
The size is printed in both "K" and "Pages" used. Th 
normally expands core at start up when buffers are assi 
status areas for drives are built during confi 
Re-configuration will cause core expansion only when dr 
selected for test that were not previously selected, 
program has expanded in memory, the only way to reclaim tha 
IS to reload the program. 



ponse to 
mode. In 
y using, 
e program 
gned and 
guration. 
ives are 
Once the 
t memory 



3.10.34 EXIT - exit the program 

This is not a test or exercise but a command entered in response to 
the what Test prompt. 'his command causes you to leave the 
diagnostic and go back to tne command level of the diagnostic 
monitor (DIAMON, etc) 



SEQ 0052 



MAINDEC-10 
Append! x-A 

6.0 Appen 

This appen 
body of th 



SEQ 00^0 



MAINDEC-10-DFRPM-B-D 
Functional Description 

3.11 BAT BLOCK handling philosophy 



Page 49 
12 Sep 85 



The BAT BLOCKS consist of 2 dedicated sectors on the disk that are 
shared by the diagnostic and either of the operating systems to 
■identify regions of the media that are unreliable and a'-e not to be 
used by the operating system for the storage of valuable data. 

The program contains a buffer area for each drive which is called 
the MAPOUT data BASE. The data base is a buffer containing 
information about errors that occur as the program runs. The 
primary need for such information is to accurately record the error 
information so that disk addresses producing HARD (unrecoverable) 
errors can be properly written into the BAT blocks when the MAPOUT 
utility is run. All of the data in the BAT blocks written by DFRPM 
IS derived from the mapout data base contents. 

The BAT block scheme used by DECsystem 10/20s allows for a maximum 
of 61 bad regions to be mapped. These entries contain the staring 
address of the bad region (by logical block number "LBN") and the 
length of the bad region (in sectors from 1 to 511.). By 
definition, bad spot entries are made only for regions that have 
exhibited non-recoverable error situations. Each BAT block entry 
also contains a small amount of CPU, drive, and controller 
information that is defined in the BAT specification. 



data base can be thought of as an extension of the 



IMC iiiajjuui. uoLo ua^c {.an ue inuuyni ui ds dri extension OT trie af\ 

blocking scheme which provides the program with some advantages no 
previously found in disk reliability exercisers. 



BAT 

)t 



The diagr'ostic 
(non-recoverable) 



is capable of remembering 
and soft (recoverable) errors. 



both hard 



Toe diagnostic catalogues all of the data errors by disk address 
which allows it to know such things as how many times an error 
occurred at a particular disk address. 



The diagnostic is also capable of 
some occasions the error was 
soft. 



remembering the fact that on 
hard while on others it may be 



The scheme allows certain error 
other reliability diagnostics. 



summary information not found in 



The diagnostic is able to remember a very large number of 
in the data base because the limit in not the number of 
that occur but actually the number of disk addresses that 
error spots. The diagnostic is capable of handling up 
individual addresses (error entries). 



errors 
errors 
define 
to AOO 



The diagnostic updates the data base as it runs and in addition, 
has a mode of operation allows the operator to go in and modify 
either the data base in its entirety or any of the individual 
entries (see the MAPOUT utility in variable mode). 



SEQ 0053 



SEQ 0041 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 
12 Sep 



SEQ 0054 



M 
A 



^ C^M jk»^bk dk>«4 






MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 50 
12 Sep 85 



For each entry, the diagnostic remembers how it got there. 
There are 3 possibilities and all of the combinations are 
remembered. 

The entry came from the Bat blocks at configuration time. 
The entry was made by the diagnostic detecting an error. 
The entry was created by the operator with MAPOUT. 



The mapout data base is typically accessed in the following ways: 

The diagnostic accesses the data base on the fly, each time a 
data error occurs. It will either create a new entry or update 
an existing entry as required. 

The user can access the data base through the MAPOUT routine and 
perform a variety of editing functions (see MAPOUT). 

The diagnostic updates the data base each time it performs a 
configuration on any drive. During configuration it reads the 
BAT blocks from the media and transfers any already existing bad 
spot information into the data base. 

The diagnostic reads the data base each time it writes BAT 
blocks to the media. BAT blocks with data data entries are 
written by either the MAPOUT utility or the PAKINT utility. 

Each entry in :he mapout data base consists of 3 PDP-10 words. The 
first 2 words are identical in format to a standard BAT block entry 
and in fact it is the first 2 words of an entry that get sent to the 
BAT block when they are written. The 3rd word contains some fields 
and bits that give the program and the user, a better insight as to 
the types of data errors that have occurred. A general description 
of the 3rd word is sufficient: 

There is soft error count field that can store the maximum count 
of 1023. This field is bumped each time a 
(DCK,ECH,DTE,OPI,HCRC,FER) error is detected. If the counter 
overflows, it will start again and a soft error overflow status 
bit will set in this word. In a sense this field is a raw error 
count rather than a soft error count. 

There i.s hard t.^ror count field that can store the maximum count 
of 1023. This field is bumped each time a hard error is 
detected. If the counter overflows, it will start again and a 
hard error , overflow status bit will set in this word. A hard 
error in this instance is the failure to recover from a 
(DCIC,ECH,DTE,OPI,FER,HCRC) after c ^tempting all of the programs 
r£?try algonthims. 



SEQ 0054 



Mi 
A| 



SI 

SI 

SI 

PI 
Tl 
Tl 
Tl 
T( 
T( 

Rl 

Rl 
P( 

e; 



HAINDEC-10-DFRPM-B-D 
Functional Description 



Page 51 
12 Sep 85 



SEQ 0055 



MA 
Ap 



MAlNDEC-10-DFRPM-B-D 
Functional Description 



Page 51 
12 Sep 85 



There are 6 flag bits that are inclusively or-ed as required to 
give an indication of the types of errors that are taking place: 



DCK - data check 

ECH - ECC hard error 

HCRC - header CRC error 

HCE - header compare error 

DTE - drive timing error 

OPI - operation incomplete 



As mentioned earlier each time one of these error bits is 
detected, the soft error counter field for this addresses mapout 
entry is incremented. 

There is a flag bit called the PNT (print) bit. When this bit 
is set for a particular entry, all errors detected at this 
address wil'. be printed. If the bit is reset. The errors are 
counted, the data base entry is updated and but error printouts 
in real time are suppressed. This provides a method of 
bypassing repeated error messages for known problem areas. In 
the normal mode of operation, each ei ror is reported only once 
in its long form and from that point on, repeated errors at the 
same di'^k addresses are not printed. More on reduced error 
printouts in section 3.12. The program honors the "print all 
errors ' console switch PALERS and if set, all errors will be 
printed. 



Errors other than 
particular address 
of the PNT bit. 



NOTE 

DTE, OPI, HCRC, DCK, ECH, FER from a 
are printed regardless of the state 



There are 3 status bit that identify the source of the mapout 
entry (who discovered the spot). The 3 bits may be set in any 
combination. 

BAT - The entry was found in the BAT blocks at configuration 

time. 

PGM - The entry was made by the diagnostic as it- r<^r^ 

OPR - The user made this entry with the MAPOb'T u. ■ 'v. 

There is one status bit that determines whether ' not a 
particular entry will oe transferred to the b/s Uock en 
subsequent BAT block updates. The bit is BBU (oat block 
update), if set, this entry will go to the BAT blocks on 
subsequent updates. If BBU is clear, the entry will not be 
transferred to the BAT block. In normal operation, only HARD 
error spots will be transferred to the BAT blocks however, the 



SEQ 0055 



ma: 

Apf 
EN^ 

ENl 
ENl 

** 

ENl 
ENl 
ENl 
ENl 

♦♦ 

ENl 
ENl 



TH] 

m 





ENl 
THE 



HAINOEC-10-OFRPM-B-D 
Functional Description 



'tn i\ 



12 Sep 



SEQ 0056 



MAIl 
Appi 



nAINDEC-10-DFRPM-B-D 
Functional Description 



Page 52 
12 Sep 85 



operator can use commands in the MAPOUT utilit)^ not only to 
create and delete entries, but to choose which entries go to the 
BAT blocks. 

There are 2 status bits that indicate when the operator has 
modified the BBU bit. 

EBU user has enabled BAT block updating for this entry. 
CBU user has cancelled Bat block updating for this entry. 



The status of the data base or and detailed information for each 
entry (including the status bits and field values for the 3rd word) 
is easily obtainable using the commands available in the MAPOU? 
utility (see fig 29.30). 

Every time a data error (DCK, HCRC. OPI. HCRC, HCE. DTE) is detected 
by the exerciser, the disk address is put in the data base. There 
is room for storing up to 400 disk addresses per drive. When the 
table is full, future error addresses will be ignored. Along with 
with the error address is information that identities the class of 
error. There are 2 classes of error, HARD and SOFT. An error is 
considered soft until it has failed all attempts at retry. When 
retry is exhausted the error is marked HARD. 

NOTE 

The last t."ing you MUST do before turning a newly formatted 
drive into a system structure is run MAPOUT in manual mode 
(this updates the BAT BLOCKS). Failure to do do this can 
occasionally cause a lot of grief. The users of this 
diagnostic (and DDRPI) assume that PAKINT has done all of 
the bat block updating and then they can't understand why 
the operating system code complains about an illegal BAT 
BLOCK format. What people fail to realize is that both 
MAPOUT and PAKINT write the BAT BLOCKS but many of the other 
tests in the diagnostic are capable of wiping them out. 
Tests and exercises in both DFRPM and DDRPI choose disk 
addresses from a random number generator and when the BAT 
BLOCK addresses are chosen, they may be overwritten 
depending on what the test is doing. Both DFRPM and DDRPI 
maintain an m-core copy of what ought to be in the "AT 
BLOCKS and if the last thing you do is write them, you will 
never run into BAT BLOCK format problems. 



SEO 0056 



OO^i* 



«AIND|C-10-DFRPH-B-D 
Functional Description 



Page 
12 Sep 



r 



SEO 0057 



MAINDEC-10-DFRPM-B-D 
Functional Description 

3.11.1 Important considerations and suggestions 



Page 53 
12 Sep 85 



SEC 0057 



A common practice when re-formatting a media in the field is to 
flush any bad spot data and assume the formatter and mapper will 
turn up all bad spots. This is general Ij^ not a good idea and DFRPM 
does not work this way. When DFRPM initially configures the the 
drive at start up time it reads the existing BAT block information 
into the mapout data base and then only adds to it after 
reformatting or doing "pakint". This is with good reason. In 
general, reformatting does not make bad spots go away. Real media 
aefect«? remain where they are and the major problem is that many of 
these media defects are data pattern sensitive. You could 
conceivably run the diagnostic for a year, mapping the bad spots and 
the operating system could stumble upon one on the first transfer it 
attempts. DFRPM preserves the original BAT block data because there 
■•s a strong possibility that there really is a bad spot at the 
oorticular address even if the diagnostic can't seem to reproduce 
.w. This reduces the risk that the operating system will once again 
turn up this same spot at the expense of some users data. There are 
obviously some cases when BAT block data may be thrown away because 
someone knows the BAT block has entrios that were incorrectly made 
due to a hardware or software malfunction. 

This explanation is to inform you of the way DFRPM operates when 
reformatting but you are not bound this scheme. Using your 
knowledge of the existing situation and the tools provided by 
mapout (in variable mode) you can manipulate the BAT block 
contents to any level you desire. 

When running ire program in the mode of preserving customer data or 
on a mounted structure, the diagnostic is capable of finding bad 
spots but is not capable of writing BAT blocks. Allowing the 
writing of BAT blocks in this situation would be to write on the 
customer data area which violates the current mode. If you really 
want to make a BAT block entry on a real structure you must either 
dismount that structure or do it in exec mode. Consider also how 
the operating system deals with the BAT block data after the media 
has been turned into a structure. Each time the monitor comes up it 
reads the BAT blocks. However, the only BAT entries monitor can 
deal with are those that are in the swapping area. If a BAT block 
entry indicates a bad spot in the file area it is ignored because 
monitor assumes that he already knows about the spot (not always the 
case). Furthermore, there is no way the monitor can take a BAT 
BLOCK entry pointing to the file area and associate this physical 
address to a particular file stored on the disk. 



3.12 Error reporting 

There are 2 types of errors considered: 



MAU 
App< 



IS 1 

YOU 

ENTE 

OPT] 
OPT] 
ENTE 

ENTE 

HELF 
DEF 
(YC 
MAN 
VAR 

Exn 

TYPE 
TYPE 
TYPE 

ENTE 

VAR) 

RUh 

RU^ 

PEEK 

ANY 

ENTE 
0=TC 
2=D/ 
ENTE 
DO ) 
ENTE 
ENTE 
ENTE 



HAIND^C-10-DFRPM-B-D 
Functional Description 



Page 54 
12 Sep 85 



SEQ 0058 



MA INI 
Appei 



NAINDEC-10-DFRPM-B-D 
Functional Description 



Page 54 
12 Sep 35 



Errors reported because the program detected a hardware fault 
Input errors made by the user from his terminal 



3.12.1 Reporting of hardware detected errors 

Hardware error reports come in several flavors depending on the type 
of error situation. Components of a typical error report (see 
fig-18): 

The first part of the error report is a general header message 
indicating test name, time of day, sense switch options etc. 



The next part of the error report will be a 
coni status and registers. 



dump of the RH20 
in the 



The RH20 ctatus is followed by a dump of the registers 
drive. 

If the RH20 status indicates that a channel error condition was 
posted at the time of the error, the 4 logout words and complete 
channel command list will be printed. 

If the error was correctable with ECC, the program will give a 
breakdown as to how ECC was applied by listing: 

ECC pa«"tern 

ECC po:ition 

Memory address woere data was corrected 

Data before ECC was applied 

Data after ECC was applied 

If the test detects a data comparison error following a 
transfer, the program will print an error summary for the 
compare error which includes good data, bad data, bits in error, 
memory address. The data comparison routine prints all errors 
if the PALERS sense switch is set, otherwise it prints only the 
first 3 words in error and merely counts the rest in the error 
log. 



3.12.1.1 R?ducing error printout 

Philosophically we wish to eliminate the continual reporting of 
nuisance errors (those addresses that have known bad spots). The 
kind of errors that fall into this category are: 



SEQ 0058 



NAINDEC-10-DFRPM-B-D 
Functional Description 



Page 55 
12 Sep 85 



SEQ 0059 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 55 
12 Sep 85 



DCK a data check 

ECH a data check not correctable with ECC 

DTE a drive timing error 

OPI a drive operation incomplete error 

HCRC a header CRC error 

PER a format error 



These are the errors that are generally detected when there is a bad 
spot at a particular address or, a bad spot on the servo surface 
corresponding to a particular address. 

The design goal is to give an error report on the first occurance of 
of such an error. On the second and following occurance of the sar.e 
type of error, the program will not report the error but will leg 
the event internally in its mapout data base. After running tie 
user can: 



1. 



Look at a totals printout (fig 26) which gives a printout of 
each address for which there is an entry in the mapout data 
base. The printout includes: 

An indication of whether the address is currently a HARD or 
SOFT error. 

A soft error count which indicates how many errors were 
actually detected (by the program) at this address. 



A hard error count 
algorirhims were 
error. 



indicating how 
unsuccessfull at 



many times 
recovering 



the 

from 



retry 
this 



2. 



Look at the individual entries in much greater detail using the 
MAPOUT routine in variable mode (f'g 29,30). Running mapout in 
variable mode will not only give you all the information 
contained in the totals printout but will allow you to see the 
types of errors that have been occuring (DCK, DTE, etc). 



This reduced error report scheme is built into the program but can 
be defeated if desired: 



The user can see all errors from any address by simply running 
MAPOUT in variable mode and telling the program to print all 
errors from this address. 

The user can see all errors by setting the "PALERS" sense swith. 



SEQ 0059 



MAINDi 
Appen( 



HELP ■ 
DEF - 
(YOU 
MAN - 
VAR - 
EXIT ■ 
TYPE: 
TYPE: 
TYPE: 

ENTER 

MAN> \ 



MAINDEC-10-DFRPM-B-D 
Functional Description 



Page 56 
12 Sep 85 



SEQ 0060 



MAINDE 
Append 



MAINDEC-10-DFRPM-B-D 
Functional Description 

3.12.2 User input errors at the terminal 



Page 56 
12 Sep 85 



All input at the terminal will be screened for correctness and the 
program will respond with an error message and a reprompt (see 



3.13 Maintenance areas on the media 

The maintenance area of any disk (pack or fixed media) is the 
innermost cylinder. This is the innermost cylinder of the media 
that is accessible without having to set any diagnostic bits or 
issue special commands to gain access. 

In addition, the RP07 has 2 maintenance cylinders that can be 
accessed by setting the diagnostic mode bit. The first of these 2 
cylinders will be used as an additional diagnostic cylinder. The 
2nd maintenance cylinder is reserved for ISS and is not even known 
to the program. 



3.14 Program retry of commands 

In general, a retry scheme is used to deal with errors that occur 
during the execution of commands. The retry scheme for a particular 
command is executed the appropriate number of times and if 
unsuccessful, the program will attempt to continue, except in the 
case where an JNSAFE or PERMANENT (unclearable) error occures. In 
the latter 2 cases the program will no longer attempt to use that 
drive. Testing on other selected drives will continue. 

When we are unsuccessful in writing data to a particular sector or, 
when data cannot be recovered from a particular sector of the disk 
following all the attempts at retry, the program will automatically 
make an entry in the mapout data base for the failing sector. The 
entry will be a HARD error and this logical block will become a BAT 
block entry when the BAT blocks are actually written. 



type, ECC (error correction 



During read error recovery of any 

recovery) is always enabled and the data will be corrected as soon 

as possible. 

This retry scheme is not activated during program configuration and 
the execution of NEXTST. 



Program 
is set. 
loop. 



"y 11 
rhis 



automatically inhibited if the LOOP-ON-ERROR swith 
is to eliminate extraneous comands within a scope 



The following sections indicate 
attempted for each type command. 



the method of retry that is 



SEQ 0060 



«AIN0^C-10-DFRPM-B-D 
Functional Description 



pf.. II 



12 Sep 



SEQ 0061 



MAINDEC-10-DFRPM-B-D 
Functional Description 

3.1A.1 Write track descriptor (write TD) 

This command is Exclusive to the RP07 and 
SEEK, WRITE-TD is attempted 3 times. 



3.K.2 Read track descriptor (read TD) 

This command is exclusive to the RP07 and 
SEEK, READ-TD is attempted 3 times. 



Page 57 
12 Sep 85 



the sequence of RECAL, 



SEQ 0061 



the sequence of RECAL, 



3.1A.3 Write header and data (format) 

This command is supported in all drives. The recovery 
RECAL, SEEK, FORMAT is attempted 3 times. 



sequence of 



3.K.A Read headers and data (read H+D) 

This command is supported in all drives although slightly different 
from RP07 to RPD6. The recovery sequence of RtCAL, SEEK, READ 
headers and data is attempted using the following algorithms: 

For RP06 



1. 
2. 
3. 
A. 
5. 

^: 

8. 



1. 
2. 



8 rimes 
8 times 
times 
times 
times 
times 
times 
times 



2 

2 
2 
2 
2 



with 
with 
with 
with 
with 
with 
with 
with 



no offset 
no offset 
+A00 u-in 
-A 00 u-in 
+800 u-in 
-800 u-in 



and HCI=0 
and HCI=1 
offset HCI=1 
offset HCJ=1 
offset HCI=1 
offset HCI=1 



+1200 u-in offset HCI= 
-1200 u-in offset HCI= 

For RP07 



8 
8 



times 
times 



with no offset and HCI=0 
with no offset and HCI=1 



3.K.5 Write Data (write) 

This is the standard command to write data fields. 
sequence is RECAL. SEEK. WRITE. This sequence is done 3 times 
HCr=0 and then 3 times with HCI=1. (HCI is Header Compare Inhibit) 



The retr 



etry 
with 



HAINOEC-10-DFRPH-B-D 
Functional Description 



Page 58 
Sep 85 



12 Sep 



SEO 0062 



. MAINDEC-10-DFRPM-B-D 
Functional Description 

3.K.6 Read Data (read) 



Page 58 
12 Sep 85 



This is the standard command to read data fields. The sequence is 
different for RP07s and RP06s because the RP07 has no head offset 
capability. The basic scheme says RECAL, SEEK, Retry using the 
following algorithm: 



For RP06 



1. 
2. 
3. 
A. 
5. 
6. 
7. 
8. 



1. 
2. 



8 
8 
2 
2 
2 
2 
2 
2 



times 
times 
times 
times 
times 
times 
times 
times 



with 
with 
with 
with 
with 
with 
with 
with 



no offset 
no offset 
+A00 u-in 
-400 u-in 
+800 u-in 
-800 u-in 



and HCI=0 
and HC1=1 
offset HCI=1 
offset 
offset 
offset 
+1200 u-in offset HCI 
-1200 u-in offset HCI 



HCI=1 
HCI=1 
HCI=1 



For RP07 



8 times with no offset and HCI=0 
8 times with no offset and HCI=1 



3.K.7 Recalibrate positioner (recal) 

Three recovery attempts at recalibration are executed. 

3.1A.8 Seek command (seek) 

Retry of the seek operation consists of the 3 attempts of the RECAL, 
SEEK sequence. 

3.1A.9 Search command (search) 

Retry of the search operation consists of the 3 attempts of the 
RECAL, SEARCH sequence. 

3.U.10 Offset command (offset) 

The offset command is particular to the RP06. This retry for this 
command consists of 3 attempts at issuing the offset command. 



SEQ 0062 











MAINDEC- 
Appendin 


ENTER 


MC 


HELP ■ 
DEF - 
(YOU 
MAN - 
VAR - 
EXIT ■ 
TYPE: 
TYPE: 
TYPE: 


- 1 
DE 

m 
v/ 

- E 
"<; 

"i 

CI 


ENTER 


MC 



MAIND^C-10-DFRPM-B-D 
Functional Description 



Page 59 
12 Sep 85 



SEO 0063 



MAINDEC- 
Appendix 



MAINDEC-10-DFRPM-B-D 
Functional Description 

3.14.11 Return to centerLine command (return) 



Page 59 

12 Sep 85 



The return to centerLine command is particular to the RP06 and its 
recovery is 3 attempts of re-issuing the command. If the three 
attempts fail, a RECAL, SEEK sequence is issued to bring the 
positioner back to track centerline. 



3.15 Watchdog timing of tests 

DFRPM has a nominal 4 second watch dog timer which monitors each 
command for hung hardware. When a device hangs, the program reports 
the situation, attempts to clear the condition and continues. 



4.0 Interfaces 

4.1 Diagnostic software interfaces 

All input and output at the terminal is handled through the 
diagnostic subroutine package. 



4.2 Operating systems interfaces 



The program makes use of the DIAG UUO interface to the operating 
system when rur^ning in a timesharing mode under TOPS-10 release 7.01 
(with RP20 support; or newer. 



The program makes use of the DIAG JSYS interface to the operating 
system when running in timesharing mode under TOPS-20 release 4.0 
(with RP20 support) or newer. 



5.0 Glossary 

DFRPM - The formatter/exerciser for RP06/RP07 on DECsystem 10/20. 

DDRPI - Existing disk reliability diagnostic and formatter for 
RP04/RP06 on DECsystem 10/20. 

DIAG JSYS - Special diagnostic interface to ti,e TOPS-20 monitor used 
for producing diagnostics that run while timesharing. 

DIAG UUO - Special diagnostic interface to the TOPS-10 monitor used 
for ngroducing diagnostics that run while timesharing. 

FRU - Field replaceable unit. 



SEQ 0063 



MAINDEC- 
Appendix' 



nAN> WHA 

HELP - Tl 
CONFIG - 
NODE - Al 
TYPE: "S- 
TYPE: "$' 
FORMAT - 
PAKINT - 
NEWBAT - 
HAPOUT - 
RONLY - 
WONLY - I 
EX1 - REI 
EX2 - REI 
EX3 - REI 
EX4 - SEI 
EX5 - SE/ 
EX6 - SEI 
EX7 - SEI 
EX8 - SEI 
EX9 - EXI 
EX10 - SI 
EX11 - Rl 
EX12 - Wl 
NEXTST - 
SKTST1 - 

SKTST2 - 

SKTST3 - 

PEEK - D 
TDLST - I 
TD631 - I 
TDBLD - I 
TOTALS - 
TOTCLR - 

RUNTME - 
RUNZRO - 
PGHSIZ - 
EXIT - B' 



r 



HAINOEC-10-DFRPM-B-D 
Glossary 



'ni 8? 



12 Sep 



SEQ 0064 



r 



NAINDEC-1 
Appendix- 



!HAINDEC-10-DFRPM-B-D 
Glossary 



Page 60 
12 Sep 85 



r 



EXEC MODE - Program running on a stand-alone system. 



USER MODE - Program runs on a timesharing system while the system 
continues to timeshare. 

REMOTE DIAGNOSIS - The ability to diagnose or exercise a device from 
a location other than the site or the timesharing system. 

TD - Abbreviation for Track Descriptor Records recorded on the front 
of each track of the RP07. 

BAT BLOCKS - Sectors 2 and 13 (octal) on every DECsystem 10/20 media 
used to log defective spots on the media. Diagnostics and 
operating systems communicate through the BAT blocks. 

OPI - Drive error condition for Operation Incomplete. 

ECC - Abbreviation for Error Correction Code. 

HUNG DEVICE - Program watchdog timer has timed out while waiting for 
a command to a drive to complete. Nominally set to 4 seconds. 



SEQ 006A 



MAINDEC-1 
Append ix- 



VAR> WHAT 
; RUNNING 
i RUNT I ME ( 
iSEEK - CY 
: WRITE - C 

READ - CY 
jDATA COMP 

iwANT DATA 
j ENTER CY 
'ENTER CY 
I ENTER SU 

ENTER SE 
'ENTER SI 
[ENTER PA 

THE FOLLO 



MAINOEC-10-DFRPM-B-D 
Appendix -A 



Page 61 
12 Sep 85 



SEQ 0065 



MAINDEC-K 
Appendix-/ 



HAINOEC-10-DFRPM-B-D 
Appendix -A 



6.0 Appendix -A 



Page 61 
12 Sep 85 



SEQ 0065 



This appendix contains the figures that are referenced throughout the 
body of the document arranged in numerical order. 



.1 



MAINDEC-1C 
Appendix-^ 



♦-♦-*-1 


' Rl 


ERROR DETE 


RUNNING - 


CON I 


5< 


RHPTCR 


RE 


RHIVR 


RE 


DRCR 


RE 


DRSR 


RE 


DRER1 


RE 


DRMR 


RE 


DRATA 


RE 


DRDA 


RE 


DRDT 


RE 


DRLA 


RE 


ORSN 


RE 


OROFST 


RE 


DRDCY 


RE 


DRRG13 


RE 


DRRGU 


RE 


DRRG15 


RE 


DRECPS 


RE 


DRECr 


RE 


CCWS 


L> 


LOC 




030600 


5 


CHAN-0 


LOC 


LOC 




000 


Kb 


001 


SU1 


002 


LAS 



SEQ 0053 



MAINDEC-10-DFRPM-B-D 
Appendix -A 

ENTER MODE (DEF, MAN, VAR, HELP) - HELP 



Page 62 
12 Sep 85 



SEQ 0066 



HELP - THIS MESSAGE 

DEF - DEFAULT MODE - DIAGNOSTIC WILL USE DEFAULT TESTS AND PARAMETERS 

(YOU MAY SPECIFY SINGLE OR MULTIPLE PASSES) 
MAN - MANUAL MODE - YOU SPECIFY TEST 
VAR - VARIABLE MODE - YOU SPECIFY TEST AND PARAMETERS 
EXIT - BACK TO "DIAMON" 

TYPE: "S<CR>" WHEN TESTS ARE RUNNING TO GET RUNTIME STATUS 
TYPE: 'V (ALTMODE) TO TERMINATE TEST AT END OF NEXT ITERATION 
TYPE: CTRL-C (CONTROL-C) TO GET TO MONITOR LEVEL. (CONTINUE WILL WORK) 

ENTER MODE (DEF, MAN, VAR, HELP) - MAN 

MAN> WHAT TEST (OR HELP) : HELP 

HELP - THIS MESSAGE 

CONFIG - ALLOWS YOU TO RESELECT DEVICES AND OPTIONS 

MODE - ALLOWS YOU TO CHANGE RUN MODE 

TYPE: "S<CR>" WHEN TESTS ARE RUNNING TO GET PROGRAM STATUS 

TYPE: "$" (ALTMODE) TO TERMINATE TEST AT END OF NEXT TEST ITERATION 

FORMAT - FORMAT 

PAKINT - MEDIA INITIALIZE (RUNS FORMAT, RONLY, MAPOUT) 

NEWBAT - WRITES A NEW SET OF BAT BLOCKS (NO ENTRIES) 

MAPOUT - MAKES BAD SPOT ENTRIES INTO BAT BLOCKS 

RONLY - READ ONLY 

WONLY - WRITE ONLY 

EX1 - RECAL 

EX2 - RECAL, SEEK-X 

EX3 - RECAL, SEARCn-X 

EXA - SEEK-X, SEEK-Y 

EX5 - SEARCH-X,SEARCH-Y 

EX6 - SEEK-X, SEEK-Y, WRITE-Y,READ-Y, VERIFY DATA 

EX7 - SEEK-X, WRITE-Y,READ-Y, VERIFY (IMPLIED SEEKS) 

EX8 - SEEK-X, READ-Y RANDOM 

EX9 - EXERCISE A SPECIFIC AREA OF MEDIA 

EX10 - SEEK-X, WRITE-Y RANDOM 

EX11 - READ-X, WRITE-Y, READ-Z RANDOM 

EX12 - WRITE-X, READ-Y, WRITE-Z RANDOM 

NEXTST - READ/WRITE NEXT (TESTS ALL COMBINATIONS OF BACKUP COMMANDS) 

(Fig - 1 continued on next page) 



M 
Ai 



* 
El 



CI 
Rl 
Rl 

Dl 

Dl 
Dl 
Dl 
Dl 
Dl 
Dl 
Dl 
Dl 
Dl 
Dl 
Dl 
Dl 
Dl 
Dl 
Dl 

CI 



o: 

CI 
L( 
0( 
0( 
0( 



V/ 



Nl 
Dl 

i; 

2} 
SI 
0- 
El 
El 
El 
El 
El 



SEQ 0054 



MAINDEC-10-DFRPM-B-D 
Appendix -A 



12 Sep 



SEQ 0067 



MA 
Ap 



SEQ 0054 



MAINOEC-10-DFRPM-B-D 
Append ix-A 



Page 63 
12 Sep 85 



SEQ 0067 



SKTST1 - MEASURES SINGLE CYLINDER SEEK TIMES. FORWARD AND REVERSE. 
(IN USER MODE, TIMES ARE NOT REPORTED) 

MEASURES SEEK TIMES FOR ALL LENGTH SEEKS. POSITIVE & NEGATIVE. 
(IN USER MODE, TIMES ARE NOT REPORTED) 
MEASURES SEEK TIME BETWEEN ANY 2 CYLINDERS 
(IN USER MODE. TIMES ARE NOT REPORTED) 
DISPLAY (IN OCTAL) VARIOUS FIELDS OF A TRACK OR SECTOR 
LIST TRACK DESCRIPTOR RECORDS FOR RP07'S 
BUILD TD'S ON RP07 C.E. CYLINDER-631 . 
WRITES A TRACK DESCRIPTOR RECORD FOR AN RP07 

- PRINT TOTALS FOR SELECTED DRIVES 

- CLEAR TOTALS LOG FOR SELECTED DRIVES 
(THE MAPOUT INFORMATION IS NOT CLEARED) 

- PRINT PROGRAM RUN TIME 

- RESET PROGRAM RUN TIME 

- PRINT CURRENT MEMORY USEAGE (USER MODE ONLY) 
BACK TO DIAMON 



SKTST2 - 

SKTST3 - 

PEEK - 
TDLST ■ 
TD631 ■ 
TDBLD ■ 
TOTALS 
TOTCLR 

RUNTME 
RUNZRO 
PGMSIZ 
EXIT - 



MAN> WHAT TEST (OR HELP): RONLY 
Fig - 1 



MA 
Api 



ERI 

Rl 

COI 
RHI 
RH 

DRi 
DR 
DRI 
DRI 
DR/ 
DRI 
DRI 
DRI 
DR: 
DRI 
DRI 
DRI 
DRI 
DRI 
DRI 
DRI 

CCI 
L( 

oil 

CH/ 
LOi 
001 
00 
00, 



Dl 
BUI 
DA 
DA 



SEQ 0055 



HAINDEC-10-DFRPM-B-O 
Append Ix-A 



""' it 



1 



12 Sep 



SEQ 0068 



MAI 
App 



MAlNDEC-10-DFRPM-B-D 
Append! x-A 

ENTER CYL1: - ? 

** — INPUT ERROR FOR "CYLV'.THE FOLLOWING IS ALLOWED: 

0(0.) THRU U56(8U.) 
ENTER CYL1: - 400. 
ENTER CYL2: - ? 

*♦ — INPUT ERROR FOR "CYL2".THE FOLLOWING IS ALLOWED: 

K56(8U.) THRU U56(8U.) 
ENTER CYL2: - 8U. 



Page 64 
12 Sep 85 



SEQ 0068 



ENTER SURF2 
ENTER SECT2 
ENTER SIZE2 



- 3. 

- 4. 

7 



♦♦ — INPUT ERROR FOR "SIZE2".THE FOLLOWING IS ALLOWED; 

1(1.) THRU 1000(512.) 
ENTER SIZE2: - 512. 
ENTER PAT2: - h 

** — INPUT ERROR FOR "PAT2".THE FOLLOWING IS ALLOWED: 
0(0.) THRU 10(8.) 

THIS IS AN INDEX INTO A STD PATTERN TABLE. ENTERING AN 8. ALLOWS 
"YOU" TO SPECIFY THE OCTAL PATTERN (UP TO 36 BITS). 

INDEX PATTERN 

575333,, 333333 WORST CASE 

1 777777 . ,777777 

2 565252., 525253 

3 365735,, G?<567 

4 633333,, 155554 

5 326661,, 533306 

6 466152,, 330651 

7 070360,, 74 1703 

8 YOU WILL BE ASKED TO SUPPLY PATTERN 



ENTER PAT2: - 

THE FOLLOWING PATTERN WILL BE USED; 

Fig - 2 



575333 333333 



HAlNOEC-10-DFRPM-B-O 
Appendix -A 



Page 65 
12 Sep 85 



SEO 0069 



MAINDEC-10-DFRPM-B-D 
Append ix-A 



Page 65 
12 Sep 85 



SEQ 0069 



xxxx-xxxx-xxxx 

CONFIGURING - DRIVE-5 RH-5;0 

DRIVE TYPE=02A022 RP06 DUAL PORTED SER. NO. =0639. 

DRSR REG-01 5AO-5: DRAES TRA PARBIT MOL DPR DRY VV 

MEDIA CONTAINS VALID "BAT" BLOCKS. 

MEDIA CONTAINS VALID "HOME" BLOCKS. VOL-ID IS "TOPS-20 - Z" 

IS THERE DATA ON THE MEDIA THAT MUST BE SAVED Y OR N <CR> - XYZ 

Y OR N <CR> - N 
ARE YOU SURE Y OR N <CR> - XYZ 



Y OR N <CR> - N 

IS THERE DATA ON THE MEDIA THAT MUST BE SAVED 
YOU HAVE 2 OPTIONS 
ENTER: (1.2 OR HELP) - 1 
XXXX-XXXX-XXXX 

Fig - 3 



Y OR N <CR> - Y 



MAN> WHAT TEST (OR HELP) 

MAN> WHAT TEST (OR HELP) 

MAN> WHAT TEST (OR HELP) 
If) 

MAN> WHAT TEST (Ok HELP) 



Fig - 4 



ROONLY 

123 
RONLY 



0057 



MAINDEC-10-DFRPM-B-D 
Append ix-A 



Page 6$ 



12 Sep 



SEQ 0070 



r^ 



n 



MAINDEC-10-DFRPM-B-D 
Appendix -A 



Page 66 
12 Sep 85 



r 



SEQ 0070 



IS THERE DATA ON THE MEDIA THAT MUST BE SAVED Y OR N <CR> - Y 
YOU HAVE 2 OPTIONS 
ENTER: (1,2 OR HELP) - H 

OPTION #1 - READ ANYWHERE ON MEDIA BUT WRITE ONLY TO MAINT AREA 
OPTION #2 - ALL READS AND WRITES ARE DONE WITHIN MAINT AREA 
ENTER: (1,2 OR HELP) - 1 

ENTER MODE (DEF, MAN, VAR, HELP) - HELP 

HELP - THIS MESSAGE 

DEF - DEFAULT MODE - DIAGNOSTIC WILL USE DEFAULT TESTS AND PARAMETERS 

(YOU MAY SPECIFY SINGLE OR MULTIPLE PASSES) 
MAN - MANUAL MODE - YOU SPECIFY TEST 
VAR - VARIABLE MODE - YOU SPECIFY TEST AND PARAMETERS 
EXIT - BACK TO 'DIAMON" 
TYPE 
TYPE 
TYPE 



"S<CR>" WHEN TESTS ARE RUNNING TO GET RUNTIME STATUS 

'V (ALTMODE) TO TERMINATE TEST AT END OF NEXT ITERATION 

CTRL-C (CONTROL-C) TO GET TO MONITOR LEVEL. (CONTINUE WILL WORK) 



ENTER MODE (DEF, MAN, VAR, HELP) - VAR 



VAR> WHAT TEST (OR HELP): PEEK 

RUNNING - PEEK DRIVE-5 RH-5A0 RP06 DUAL PORTED SER. NO. =230. 

RUNTIME(HH:MM:SS) 00:12:23 INFO ?? Y OR N <CR> - y 
PEEK - DISPLAY COMBINATIONS OF HEADER AND DATA FIELDS FOR 
ANY DISK SECTOR, TD'S ARE ALSO ALLOWED FOR RP07. DATA IS IN RAW OCTAL 



ENTER FUNCTION CODF (0-3 OR HELP <CR» - H 
0=TD'S (RP07 ONLY;. 1=HEADER FIELDS, 
2=0ATA FIELDS, 3=HEADER AND DATA FIELDS 
ENTER FUNCTION CODE (0-3 OR HELP <CR» - 3 
DO YOU WANT TO PRINT DATA ? Y OR N <CR> - N 
ENTER CYL1: - 
ENTER SURF1: - 
ENTER SECT1: - 13 

Fig - 5 



nAIN[ 
Apper 



ENTEF 
MAN> 

DRI\ 
808( 

read; 

WORD! 

HAPOl 

DRI\ 

THERE 



DRI\ 

READ! 
WORD! 

MAPOl 

DRI\ 

THERI 

STAR 



HAI 
HAI 
HAI 
HAI 
HAI 
HAI 
HAI 



0058 



HAIN0E?-10-DFRPM-B-D 
Appendix -A 



^Page 67 
12 Sep 85 



SEQ 0071 



MAIND 
Appen 



MAlNDEC-10-DFRPM-B-D Page 67 

Append! x-A 12 Sep 85 

RH20/RP07/RP06/RP0A FORMATTER/EXERCISER (DFRPM) 
VERSION 0.12, SV=0.15. TOPS-20, KLIO, CPU#=2263 

TTY SWITCH CONTROL ? - 0,S, Y OR N <CR> - n 

SWITCHES = 000000 000000 

HEMORY MAP = 

FROM TO SI2E/K 

00000000 00120777 40 

THE FOLLOWING RH'S AND DRIVES ARE DETECTED 

RH'S DRIVES 

SAO 5 (RP06) 

550 (RP07). 2(RP06). 3(RP06) 

SELECT RH'S (540, 544.550,554, 560. 564. 570, 574,A=ALL ARE LEGAL) 
RH'S = 550 

SELECT DRIVES (0-7, A=ALL, N=NONE) ON RH-550 = 

XXXX-XXXX-XXXX 

CONFIGURING - DRIVE-0 RH-550 

DRIVE TYPE=024042 RP07 DUAL PORTED SER. NO. =0639. 

DRSR REG-01 550-0: DRAES TRA PARBIT MOL DPR DRY VV 

8080 U-CODE REV-04 2901 U-CODE REV-04 
MEDIA CONTAINS VALID 'BAT" BLOCKS. 

MEDIA CONTAINS VAL^D "HOME" BLOCKS. VOL-ID IS "TOPS-20 - Z" 
****** THIS UNIT i; CURRENTLY A MOUNTED STRUCTURE ****** 
THE PROGRAM WILL ALLOW WRITES ONLY TO THE MAINTENANCE CYLINDER(S) 
YOU HAVE 2 OPTIONS 
ENTER: (1 2 OR HELP) - H 

OPTION *1 - READ ANYWHERE ON MEDIA BUT WRITE ONLY TO MAINT AREA 
OPTION #2 - ALL READS AND WRITES ARE DONE WITHIN MAINT AREA 
ENTER: (1,2 OR HELP) - 1 
XXXX-XXXX-XXXX 

ENTER MODE (DEF , MAN, VAR, HELP) - HELP 

(Fig - 6 continued on next page) 



SEQ 0071 



MAINDEC-10-DFRPM-B-D 
Appendix -A 



Page 68 



12 Sep 



SEQ 0072 



0059 



MAINDEC-10-DFRPM-B-D 
Append ix-A 



Page 68 
12 Sep 85 



SEQ 0072 



HELP - THIS MESSAGE 

DEF - DEFAULT MODE - DIAGNOSTIC WILL USE DEFAULT TESTS AND PARAMETERS 

(YOU MAY SPECIFY SINGLE OR MULTIPLE PASSES) 
MAN - MANUAL MODE - YOU SPECIFY TEST 

VAR - VARIABLE MODE - YOU SPECIFY TEST AND ITS PARAMETERS 
EXIT - BACK TO "DIAMON" 

TYPE: "S<CR>" WHEN TESTS ARE RUNNING TO GET RUNTIME STATUS 
TYPE: "%" (ALTMODE) TO TERMINATE TEST AT END OF NEXT ITERATION 
TYPE: CTRL-C (CONTROL-C) TO GET TO MONITOR LEVEL. (CONTINUE WILL WORK) 

ENTER MODE (DEF, MAN. VAR, HELP) - MAN 

MAN> WHAT TEST (OR HELP): RONLY 

Fig - 6 



0060 



MAINDE?-10-DFRPM-B-D 
Append IX-A 



Page 69 
12 Sep 85 



SEQ 0073 



MAINDEC-10-DFRPM-B-D Page 69 

Append ix-A 12 Sep 85 



RECONFIGURE ? Y OR N <CR> - N 
ENTER MODE (DEF, MAN, VAR. HELP) - MAN 
MAN> WHAT TEST (OR HELP): RONLY 

Fig - 7 

RECONFIGURE ? Y OR U <CR> - Y 

THF. FOLLOWING RH'S AND DRIVES ARE DETECTED 

RH'S DRIVES 

SAO 5 (RP06) 

570 (RP07) 

550 (RP04), 2(RP06), 3(RP06) 

SELECT RH'S (SAO, 544,550.554. 560,564, 570. 574. A=ALL ARE LEGAL) 
RH'S = 540 

SELECT DRIVES (0-7, A=ALL, N=NONE) ON RH-540 = 5 
ON RH-540 = 5 

XXXX-XXXX-XXXX 

CONFIGURING - DRP/E-5 RH-540 

DRIVE TYPE=024022 .-!P06 DUAL PORTED SER. NO. =0639. 

DRSR REG-Ol 540-5: DRAES '.RA PARBIT MOL DPR DRY VV 

MEDIA CONTAINS VALID *BAT" BLOCKS. 

MEDIA CONTAINS VALID "HOME" BLOCKS. VOL-ID IS "TOPS-20 - 2" 

*t»*»* THIS UNIT IS CURRENTLY A MOUNTED STRUCTURE ****** 

THE PROGRAM WILL ALLOW WRITES ONLY TO THE MAINTENANCE CYLINDER(S) 

YOU HAVE 2 OPTIONS 

ENTER: (1,2 OR HELP) - 1 

XXXX-XXXX-XXXX 

ENTER MODE (DEF, MAN, VAR, HELP) - MAN 

MAN> WHAT TEST (OR HELP): RONLY 

Fig - 8 

Fig - 9 



SEQ 0073 



r 



MAINDEC-10-DFRPM-B-D 
Append ix-A 



Page 70 
12 Sep 85 



SEQ 007^ 



MAlNDEC-10-DFRPM-B-D 
Append! x-A 



Page 70 
12 Sep 85 



SEQ Q07^ 



xxxx-xxxx-xxxx 

CONFIGURING - DRIVE-5 RH-5A0 

DRIVE TYPE=024022 RP06 DUAL PORTED SER. NO. =0639. 

DRSR REG-01 5AO-5: DRAES TRA PARBIT MOL DPR DRY VV 

HEDIA CONTAINS VALID 'BAT" BLOCKS. 

MEDIA CONTAINS VALID "HOME" BLOCKS. VOL-ID IS '70PS-20 - Z" 

****** THIS UNIT IS CURRENTLY A MOUNTED STRUCTURE ****** 

THE PROGRAM WILL ALLOW WRITES ONLY TO THE MAINTENANCE CYLINDER(S) 

YOU HAVE 2 OPTIONS 

ENTER: (1.2 OR HELP) - h 

OPTION #1 - READ ANYWHERE ON MEDIA BUT WRITE ONLY TO MAINT AREA 
OPTION #2 - ALL READS AND WRITES ARE DONE WITHIN MAINT AREA 
ENTER: (1.2 OR HELP) - 1 
XXXX-XXXX-XXXX 

Fig - 10 

WHAT TEST (OR HELP): CONFIG 

THE FOLLOWING RH'S AND DRIVES ARE DETECTED 

RH'S DRIVES 

SAO 5 (RP06) 

570 (RPC7) 

550 (RPOA). 2(RP06). 3(RP06) 

SELECT RH'S (540. 544. 550.554, 560. 56A. 570. 574. A=ALL ARE LEGAL) 
RH'S = 540 

SELECT DRIVES (0-7. A=ALL. N=NONE) ON RH-540 = 5 

XXXX-XXXX-XXXX 

CONFIGURING - DRlVE-5 RH-540 

DRIVE TYPE=024022 RP06 DUAL PORTED SER. NO. =0639. 

DRSR REG-01 540-5: DRAES TRA PARBIT MOL DPR DRY VV 

MEDIA CONTAINS VALID 'BAT" BLOCKS. 

MEDIA CONTAINS VALID "HOME" BLOCKS. VOL-ID IS "TOPS-20 - Z" 

IS THERE DATA ON THE MEDIA THAT MUST BE SAVED Y OR N <CR> - y 

YOU HAVE 2 OPTIONS 

ENTER: (1.2 OR HELP) - 1 

XXXX-XXXX-XXXX 

ENTER MODE (DEF. MAN. VAR. HELP) - MAN 

MAN> WHAT TEST (OR HELP): RONLY 



Fig - 11 



HAINOEC-10-DFRPM-B-D 
Append ix-A 



Page 71 
12 Sep 85 



SEQ 0075 



._.J 



)62 



MAINDEC-10-DFRPM-B-D Page 71 

; Appendix -A 12 Sep 85 



ENTER MODE (DEF .MAN. VAR. HELP) - HELP 

HELP - THIS MESSAGE 

DEF - DEFAULT MODE - DIAGNOSTIC WILL USE DEFAULT TESTS AND PARAMETERS 

(YOU MAY SPECIFY SINGLE OR MULTIPLE PASSES) 
MAN - MANUAL MODE - YOU SPECIFY TEST 
VAR - VARIABLE MODE - YOU SPECIFY TEST AND PARAMETERS 
EXIT - BACK TO "DIAMON" 
TYPE 
TYPE 
TYPE 



SEQ 0075 



■S<CR>" WHEN TESTS ARE RUNNING TO GET RUNTIME STATUS 
"%" (ALTMODE) TO TERMINATE TEST AT END OF NEXT ITERATION 
CTRL-C (CONTROL-C) TO GET TO MONITOR LEVEL. (CONTINUE WILL WORK) 



ENTER MODE (DEF. MAN. VAR. HELP) - DEF 



Fig - 12 



MAINDEC-' 
Appendix- 



VAR> WHA 
RUNNING 
RUNTIME 
LIST DEFI 
CYLl.SURI 
ENTER C^ 
ENTER SI 

ente;? C^ 

ENTER SI 

RUNNING 
RUNTIME 

SER tf I 
0131. ( 
0131. ( 

TOTAL NU( 
TRACKS U: 
TRACKS U: 



VAR> UHA' 

RUNNING 

RUNTIME 

TDBLD - ( 

THEN REF( 

*** YOU 

ENTER C 

ENTER SI 

DATA CURf 
CYL = 0(( 
DISP-#1 : 
DISP-#2 : 
0ISP-#3 : 
OISP-#A : 
DO YOU S" 
DO YOU W 
ENTER DI! 
THESE VAl 

DO TO ST. 

VAR> UHA^ 



63 



HAINDEC-10-DFRPM-B-D 
Appendix -A 



Page 72 
12 Sep 85 



SEQ 0076 



MAINDEC-1 
Appendix- 



HAINDEC-10-DFRPM-B-D Page 11 

Appendix -A 12 Sep 85 



HAN> WHAT TEST (OR HELP) : HELP 

THIS MESSAGE 

- ALLOWS YOU TO RESELECT DEVICES AND OPTIONS 
ALLOWS YOU TO CHANGE RUN MODE 

"S<CR>" WHEN TESTS ARE RUNNING TO GET PROGHAM STATUS 

"$" (ALTMODE) TO TERMINATE TEST AT END OF NEXT TEST ITERATION 

- FORMAT 

- MEDIA INITIALIZE (RUNS FORMAT, RONLY. MAPOUT) 

- WRITES A NEW SET OF BAT BLOCKS (NO ENTRIES) 

- MAKES BAD SPOT ENTRIES INTO BAT BLOCKS 

- READ ONLY 

- WRITE ONLY 
RECAL 

RECAL,SEEK-X 
RECAL. SEARCH-X 
SEEK-X.SEEK-Y 
SEARCH-X, SEARCH-Y 

SEEK-X,SEEK-Y.WRITE-Y.READ-Y, VERIFY DATA 
SEEK-X,WRITE-Y.READ-Y, VERIFY (IMPLIED SEEKS) 
SEEK-X,READ-Y RANDOM 
EXERCISE A SPECIFIC AREA OF MEDIA 

SEEK-X,WRITE-Y RANDOM 
READ-X,WRITE-Y.READ-Z RANDOM 
WRITE-X.READ-Y,WRITE-Z RANDOM 

- READ/WRITE NEXT (TESTS ALL COMBINATIONS OF BACKUP COMMANDS) 

- MEASURES SINGLE CYLINDER SEEK Tirtrs. FORWARD AND REVERSE. 
(IN USER MODE. TIMES ARE NOT REPORTED) 

- MEASURES ;EEK TIMES FOR ALL LENGTH SEEKS. POSITIVE AND NEGATIVE. 
(IN USER MODE. TIMES ARE NOT REPORTED) 

- MEASURES SEEK TIME BETWEEN ANY I CYLINDERS 
(IN USER MODE, TIMES ARE NOT REPORTED) 

DISPLAY (IN OCTAL) VARIOUS FIELDS OF A TRACK OR SECTOR 

- LIST TRACK DESCRIPTOR RECORDS FOR RP07'S 

- BUILD TD'S ON RP07 C.E. CyLINDER-631 . 

- WRITES A TRACK DESCRIPTOR RECORD FOR AN RP07 

- PRINT TOTALS FOR SELECTED DRIVES 

- CLEAR TOTALS LOG FOR SELECTED DRIVES 
(THE MAPOUT INFORMATION IS NOT CLEARED) 

- PRINT PROGRAM RUN TIME 

- RESET PROGRAM RUN TIME 

- PRINT CURRENT MEMORY USEAGE (USER MODE ONLY) 
BACK TO DIAMON 



SEQ 0076 



! 


HELP - 


i 


CONFIG 


; 


MODE - 


i = 
1 


TYPE: 




TYPE: 




FORMAT 




PAKINT 




NEWBAT 




MAPOUT 




RONLY 




UONLY 




EX1 - 




EX2 - 




EX3 - 




EXA - 




EX5 - 




EX6 - 




EX7 - 




EX8 - 




EX9 - 




EX10 - 




EX11 - 




EX12 - 




NEXTST 




SKTST1 




SKTST2 




SKTST3 




PEEK - 




TDLST 




TD631 




TDBLD 




TOTALS 




TOTCLR 




RUNTME 




RUNZRO 




PGMSIZ 




EXIT - 



■MAINDEC-1 
Appendix- 



RUNNING 
RUNTIME( 
2516. SIN 
MINIMUM S 
AVERAGE S 
MAXIMUM S 
THERE WER 



Fig - 13 



RUNNING 
RUNTIME ( 
2516. SEE 
MINIMUM S 
AVERAGE S 
MAXIMUM S 



**♦♦•*♦»* 

FATAL PRO 

PROGRAM W 

DRIVE-1 

PROGRAM D 
AC1 = 000 
PLEASE SA 

FATAL PGM 



r 



MAINDEC-10-DFRPM-B-D 
Appendix -A 



Page 73 
12 Sep 85 



SEO 0077 



HISTORY Of 



F 



MAINDEC-10-DFRPM-B-D 
Appendix -A 



VAR> WHAT TEST (OR HELP):EX6 
RUNNING - EX6 ORlVE-5 RH-5A0 
RUNTIME(HH:MM:SS^ 00:12:23 

SEEK - CYL1 

WRITE - CYL2,SURF2.SECT2.SIZE2.PAT2 

READ - CYL2.SURF2.SECT2.SIZE2 

DATA COMPARE IS OPTIONAL 

WANT DATA COMPARES Y OR N <CR> - n 



Page 
12 Sep 



73 
85 



RP06 DUAL PORTED SER. NO. =230. 
INFO ?? Y OR N <CR> - y 



ENTER 
ENTER 
ENTER 
ENTER 
j ENTER 
ENTER 



CYL1: 
CYL2: 
SURF 2 
SECT2 
SIZE2 
PAT2 



AOO. 
8K. 

3. 

A. 

512. 




THE FOLLOWING PATTERN WILL BE USED: 575333 333333 



Fig - K 







■ 

SEQ 0077 


HISTORY OF 




VERSION: 




AUTHOR: 




DATE : 




REASON: 




This versi 
command re 
the field 




VERSION: 




AUTHOR: 




DATE: 




REASON: 


t 

,i 
1 


Modified i 
tested. T^ 
which caus 
RMR proble 


i 

! 


Implenente 
type error 


i 


VERSION: 




AUTHOR: 


i 


DATE: 


' 


REASON: 


■ i - 

1 


VERSION: 


1 


AUTHOR: 


1 


DATE: 


( 


REASON: 



MAINDEC-10-DFRPM-B-D 
Appendix -A 



Page 7A 
12 Sep 85 



SEQ 0078 



MAINDEC-10-DFRPM-B-D 
Append! x-A 



Page 74 
12 Sep 85 



SEQ 0078 



♦-*-♦-* RUNTIME (HH: MM :SS) 00:12:23 
ERROR DETECTED ON DONE INTERRUPT 
RUNNING - RONLY DRIVE-5 RH-5A0 RP06 DUAL PORTED 



VERSION: 
AUTHOR: 
DATE: 
REASON: 



SER. N0.=13A, 



CONI 540: EXCEP CHN-ER CNR MBCENB ATTN DONE PIA=0 

RHPTCR REG-73 540: RCLP STORE DRIVE=5 + BLOCK CNT=4. FNCTN+G0=71 

RHIVR REG-74 540: INT VECT ADDR=000 



DRCR 

DRSR 

DRER1 

DRMR 

DRATA 

DRDA 

DRDT 

DRLA 

ORSN 

OROFST 

ORDCY 

0RRG13 

DRRG14 

0RRG15 

ORECPS 

DRECr 

CCWS 
LOC 



REG-00 
REG-01 
REG-02 
REG-03 
REG-04 
REG-05 
RE 6-06 
REG-07 
REG-10 
REG-11 
REG-12 
REG-13 
REG-14 
REG-15 
REG-16 
REG-17 

CHAN-0 
+WC 



540-5 
540-5 
540-5 
540-5 
540-5 
540-5 
540-5 
54C-5 
540-5 
540-5 
540-5 
540-5 
540-5 
540-5 
540-5 
540-5 



DRAES 
DRAtS 
DRAES 
DRAES 
DRAES 
DRAES 
DRAES 
DRAES 
DRAES 
DRAES 
DRAES 
DRAES 
DRAES 
DRAES 
DRAES 
DRAES 



TRA PARBIT DVA FNCTN(30-34)=READ 60-BIT=0 

TRA PARBIT ATA ERR MOL DPR DRY VV 

TRA DCK 

TRA 000400 

TRA PARBIT ATA-05 

TRA SURFACE=0(0.) SECT0R=4(4J 

TRA PARBIT RP06 DUAL PORTED 

TRA PARBIT SECT0R=4(4.) 

DRIVE SER. NO. =0639. 



TRA PARBIT 

TRA SGNCHG 

TRA PARBIT 

TRA PARBIT 000000 

TRA PARBIT 

TRA PARBIT 

TRA PARBIT 

TPA PARBIT 



DESIRED CYLINDER=0(0.) 



ECC P0SITI0N=7323(3795.) 
ECC PATTERN=2000 



030600 512. 



ADR 
001220C0 



MISC. 
OPDATA LSTXFR 



CHAN-0 LOGOUT DATA 
LOC 

000 ICU: 620001 243000 

001 SW1 : LOGOUT -ADRPE -WCZRO LNG-UC 

002 LAST UPDATED CCW: 610001 243400 

Fig - 15 



CLP POINTS TO: 70072 
*WC=256. ADR=1 243400 



t .... 



SEQ 0066 



f1AINDEC-10-DFRPM-B-D 
Appendix -A 



*-*-*-* RUNTIME(HH:MM:SS) 00:12:23 
ERROR DETECTED ON DONE INTERRUPT 
RUNNING - RONLY DRIVE-5 RH-540 RP06 DUAL PORTED 

CONI SAO: 000000 222610 
RHPTCR REG-73 SAO: 732205 177A71 
RHIVR REG-7A SAO: 7A0000 000000 



Page 
12 Sep 



75 
85 



SEQ 0079 



SER. N0.=13A. 



DRCR 


REG-00 


SAO 


000605 


20A070 


DRSR 


REG-01 


SAO 


010605 


350700 


DRER1 


REG-02 


SAO 


020605 


100000 


DRMR 


REG-03 


SAO 


030605 


OOOAOO 


DRATA 


REG-OA 


SAO 


0A0605 


2000A0 


DRDA 


REG-05 


SAO 


050605 


OOOOOA 


DRDT 


REG-06 


SAO 


060605 


22A022 


DRLA 


REG-07 


SAO 


070605 


2nOAAO 


DRSN 


REG-10 


SAO 


100605 


203071 


DROFST 


REG-11 


SAO 


110605 


100000 


DRDCY 


REG-12 


SAO 


120605 


200000 


DRRG13 


REG-13 


SAC 


130605 


200000 


DRRG1A 


REG-1A 


SAO 


1A0605 


200000 


DRRG15 


REG-15 


SAO 


150605 


200000 


DRECPS 


REG-16 


SAO 


160605 


207323 


DRECPT 


RE6-17 


SAO 


170605 


002000 


CCW'S 


CHAN-0 








LOC 


CCW 








030600 


620000 


12?( 


)00 




CHAN-0 


LOGOUT DATA 






LOC CONTENTS 








000 


620001 : 


OAOOC 


1 




001 


5A0100 07006' 






002 


610001 50AA0C 


) 





Fig - 16 

VAR> WHAT TEST (OR HELP): NEXTST 

RUNNING - NEXTST DRIVE-5 RH-5A0 RP06 DUAL PORTED SER. NO. =230. 

RUNTIME(HH:MM:SS) 00:12:23 INFO ?? Y OR N <CR> - y 
NEXTST - TESTS RH20 BACKUP COMMAND OPERATION (ANY COMBINATION) 
DOING 2 SECTOR TRANSFERS AT A TIME. 
1ST CMD - CYL1,SURF1.S£CT1 
2ND CMD - CYL1,SURF2 (2 SECTORS FROM 1ST CMD) 
SELECT A PAIR OF COMMANDS BY ENTERING 0-3<CR> 
0=READ/READ, 1=WRITE/WRITE. 2=READ/WRITE, 3=WRITE/READ 
ENTER NUMBER <CR> - 
ENTER CYL1: - 
ENTER 3URF1: - 
ENTER SURF2: - 10 
ENTER SECT1: - 

Fig - 17 



MAINDEC-10-DFRPM-B-D 
Append ix-A 



Page 76 
12 Sep 85 



SEQ 0080 



DEI 
DFf 



SEQ 0067 



MAINDEC-10-DFRPM-B-D 
Append ix-A 



*-*-*-* RUNTIME(HH:MM:SS) 00:12:23 
ERROR DETECTED ON DONE INTERRUPT 
RUNNING - RONLY DRIVE-5 RH-540 RP06 DUAL PORTED 



Page 76 
12 Sep 85 



SEQ 0080 



DEF 
DFR 



SER. NO. =134. 



CONI 540: EXCEP CHN-ER CNR MBCENB ATTN DONE PIA=0 

RHPTCR RE6-73 540: RCLP STORE DRIVE=5 + BLOCK CNT=4. FNCTN+G0=71 

RHIVR REG-74 540: INT VECT ADDR=000 



DRCR 


REG-00 


540-5: 


DRAES TRA PAR8IT DVA FNCTN(30-34)=READ G0-BIT=0 


DRSR 


REG-01 


540-5: 


DRAES TRA PARBIT ATA ERR MOL DPR DRY VV 


DRER1 


REG-02 


540-5: 


DRAES TRA DCK 


DRMR 


REG-03 


540-5: 


DRAES TRA 000400 


DRATA 


RE6-04 


540-5: 


DRAES TRA PARBIT 


DRDA 


RE6-05 


540-5: 


DRAES TRA SURFACE=0(0.) SECT0R=4(4.) 


DRDT 


REG-06 


540-5: 


DRAES TRA PARBIT RP06 DUAL PORTED 


DRLA 


REG-07 


540-5: 


DRAES TRA PARBIT SECT0R=4(4.) 


DRSN 


REG-10 


540-5: 


DRAES TRA PARBIT DRIVE SER. NO. =0639. 


DROFST 


REG-11 


540-5: 


DRAES TRA SGNCHG 


DRDCY 


REG-12 


54C-5: 


DRAES TRA PARBIT DESIRED CYLINDER=0(0. ) 


DRRG13 


REG-13 


540-5: 


DRAES TRA PARBIT 000000 


DRRG14 


REG-14 


540-5: 


DRAES TRA PARBIT 


DRRG15 


REG-15 


540-5: 


DRAES TRA PARBIT 


DRECPS 


REG-16 


540-5: 


DRAES TRA PARBIT ECC P0SITI0N=7323(3795.) 


DRECPT 


REG-17 


540-5: 


DRAES TRA PARBIT ECC PATTERN=2000 


CCW'S 


CHAN-0 






LOC 


+WC 


ADR 


MISC. 


030600 


512. 


Gu' 22000 OPDATA LSTXFR 



CHAN-0 LOGOUT DATA 
LOC 

000 ICU: 620001 243000 

001 SU1: LOGOUT -ADRPE -WCZRO LNG-WC 

002 LAST UPDATED CCW: 610001 243400 



CLP POINTS TO: 70072 
+WC=256. ADR=1243400 



ECC CORRECTION APPLIED 

DRIVE-5 RH-540 P0SITI0N=j795. 
BUFF ADDR 00122351 
DATA BEFORE ECC 000000 000000 
DATA AFTER ECC 000000 000100 



PATTERN=2000 



Fig - 18 



1 



SEQ 0068 



«AINDEC-10-DFRPM-B-D 
Append ix-A 



Page 77 
12 Sep 85 



r" 



SEQ 0081 



iDEf: 

DFRI 



«A1NDEC-10-DFRPM-B-D 






Page V 




Append 


1X-A 






12 Sep 85 




VAR> WHAT TEST (OR HELP) : PEEK 








RUNNING - PEEK DRIVE- 


5 RH-5A0 RP06 DUAL PORTED SER. 


NO. =230. 




RUNTIME(HH:Mf».SS) 00: 


1?:23 INFO ?? 


Y OR N <CR> - 


foR 




PEEK - 


DISPLAY COMBINATIONS OF HEADER AND DATA FIELDS 




ANY DISK SECTOR, TD'S 


ARE ALSO ALLOWED 


FOR RP07. DATA 


IS IN RAW OCTAL 




ENTER 


FUNCTION CODE (0-3 OR HELP <CR» 


- h 






0=TD'S 


(RP07 ONLY), 1= 


HEADER FIELDS. 








2=DATA FIELDS, 3=HEADER AND DATA FIELDS 








ENTER 


FUNCTION CODE (0-3 OR HELP <CR» 


- 3 






DO YOU 


WANT TO PRINT DATA ? Y OR N <CR> 


~ y 






ENTER 


CYL1: - 










ENTER 


SURF1: - 










ENTER 


SECT1: - 13 










CHOOSE 


DATA FIELD PRINTING OPTIONS 








ENTER 


STARTING WORD, 


THRU 177(127.) <CR> - 






ENTER 


TOTAL # OF WORDS 


1. THRU 200(128. 


) <CR> - 62. 






DRIVE 


-5 RH-5A0 SERIAL NO. = 0639. 








CYL = 


0(0.) SURF = 0(0.) 








HEADER 


FIELD SECT = 13(11.) 








000000 


000013 001522 000000 








DATA FIELD SECT = 13(11.) 








0. 


42A16A 000000 


777606 000004 


000000 544000 


000000 000007 




A. 


003001 U2051 


000000 035 704 


003004 142051 


000000 002300 




8. 


0030AA 0Ah<27 


000000 206650 


003062 044327 


000000 207444 




12. 


003020 2A2005 


000000 000012 


003020 242005 


000000 000002 




16. 


003100 0AA327 


000000 647160 


000000 000000 


000000 000000 




20. 


000000 000000 


000000 000000 


000000 000000 


000000 000000 




2A. 


000000 000000 


000000 000000 


000000 000000 


000000 000000 




28. 


000000 000000 


000000 000000 


000000 000000 


000000 000000 




32. 


000000 000000 


000000 000000 


000000 000000 


000000 000000 




36. 


000000 000000 


000000 000000 


000000 000000 


000000 000000 




AO. 


000000 000000 


000000 000000 


000000 000000 


000000 000000 




AA. 


000000 000000 


000000 ooooco 


000000 000000 


OOOOOC 000000 




A8. 


000000 000000 


000000 000000 


000000 000000 


000000 000000 




52. 


000000 000000 


000000 000000 


OCOOOO 000000 


mss§§» 




56. 


000000 000000 


000000 000000 


000000 000000 




60. 


000000 000000 


000000 000000 










Fig - 


19 









SEQ 0081 



DEFl 
DFRP 



HAINDEC-10-DFRPM-B-D 
Appendix- A 



Page 78 
12 Sep 85 



SEQ 0082 



DEFII 
DFRPf 



r 



MAINDEC-10-DFRPM-B-D Page 78 

Append! x-A 12 Sep 85 



SELECT RH'S (5AO,54A.550.55A,560.56A.570.574.A"ALL ARE LEGAL) 
RH'S = 5AA 

SELECT DRIVES (0-7. A=ALL, N=NONE) ON RH-540 = 4 

XXXX-XXXX-XXXX 

CONFIGURING - DRIVE-A RH-5AA 

DRIVE rYPE=02A022 RP06 DUAL PORTED SER. NO.=080A. 

DRSR REG-01 5AA-A: DRAES TRA PARBIT MOL DPR DRY VV 

HEDIA CONTAINS VALID 'BAT" BLOCKS. 

MEDIA CONTAINS VALID "HOME" BLOCKS. VOL-ID IS "TOPS-20 - VULCAN" 

*•♦♦♦* THIS UNIT IS CURRENTLY A MOUNTED STRUCTURE ****** 

THE PROGRAM WILL ALLOW WRITES ONLY TO THE MAINTENANCE CYLINDER(S) 

YOU HAVE 2 OPTIONS 

ENTER: (1.2 OR HELP) - 1 

XXXX-XXXX-XXXX 

ENTER MODE (DEF. MAN. VAR. HELP) - 



SEQ 0082 



DEF I 
DFRPI 



Fig - 20 



s RUNNING - EX6 DRIVE-5 RH-5A0 RP06 DUAL PORTED SER. NO. =230. 

RUNTIME(HH:MM:SS) 00:12:23 
RD=15(13.) WT=15v'3.) POS=1012(522.) 
CYL=23A(156.) SURF=3(3.) SECT=10(7.) 

S RUNNING - EX6 DRIVE-5 RH-5A0 RP06 DUAL PORTED SER. NO. =230. 

RUNTIME(HH:MM:SS) 00:17:0A 
RD=17(15.) WT=22(18.) POS=1012(522.) 
CYL=UA(100.) SURF=1(1.) SECT=2A(20.) 

Fig - 21 



.J 



r 



|«A1NDE^-10-DFRPM-B-D 
Append IX -A 



Page 79 
12 Sep 85 



SEO 0083 



r 



Q 0070 



HAINDEC-10-DFRPM-B-D 
Append ix-A 



ENTER MODE (DEF .MAN, VAR, HELP) - MAN 
MAN> WHAT TEST (OR HELP): TOTALS 



***** TOTALS SUMMARY ***** RUNTIME(HH:MM:SS) 00:00:01 
DRIVE-0 RH-550 RP07 DUAL PORTED SER. NO. =0131. 
8080 U-CODE REV-OA 2901 U-CODE REV-04 

READS = 3. 

WORDS READ = 390. 

HAPOUT-DATA-BASE-SUMMARY : 
DRIVE-0 RH-550 RUNTIME(HH:MM:SS) 00:00:01 
THERE ARE 0. HARD REGIONS AND 0. SOFT REGIONS KNOWN TO PGM 



Page 79 
12 Sep 85 



SEQ 0083 



***** TOTALS SUMMARY ***** RUNTIME(HH:MM:SS) 00:00:01 
DRIVE-5 RH-5A0 RP06 DUAL PORTED SER. NO. =0131. 

READS = 3. 

WORDS READ = 390. 

MAPOUT-DATA-BASE-SUMMARY : 
DRIVE-5 RH-540 RUNTIME(HH:MM:SS) 00:00:01 
THERE ARE 0. HARD REGIONS AND 0. SOFT REGIONS KNOWN TO PGM 
STARTING ADDRESSES FOR THE REGIONS ARE: 

LBN CYI SURF SECT #-HARD 0-SOFJ 





DEFIN 




DFRPM 




9 




9 




9 




9 




IC 




1C 




IC 




IC 




IC 




IC 




IC 




IC 




IC 




IC 




11 




11 



* HARD 


5755A 


100 


5 


10 


0. 


0. 


♦ HARD 


20372A 


261 


16 





). 


0. 


• HARD 


260170 


355 


10 


U 




0. 


* HARD 


5A32U 


736 


15 





)^ 




* HARD 


601 364 


1007 


7 


4 


j; 


S* 


* HARD 


601374 


1007 


7 


14 


* HARD 


601560 


1007 


15 


10 


0. 


0. 



Fig - 22 



0071 



MAlNDEC-10-DFRPH-B-D 
Append ix-A 



P,,e II 



r 



12 Sep 



SEQ 0084 



DEFINI 
DFRPM^ 



MAINDEC-10-DFRPM-B-D 
Appendix -A 



Page 80 
12 Sep 85 



SEQ 0084 



VAR> WHAT TEST (OR HELP): MAPOUT 

RUNNING - PEEK DRIVE-7 RH-55A RP06 DUAL PORTED SER. NO. =320. 

RUNT1ME(HH:1M:SS) 00:12:23 INFO ?? Y OR N <CR> - y 
MAPOUT - ALLOWS YOU TO EXAMINE AND MODIFY MAP0UT-DATA-6ASE 

NOW EDITING DATA-BASE 

DATA-BASE-EDIT CMD (OR H<CR» - H 

LSTHRD - LIST ENTRIES THAT WILL 60 TO BAT BLOCKS (1ST 61 GO TO BAT) 

LSTSFT - LIST ENTRIES THAT WILL NOT GO TO THE BAT BLOCKS 

LIST - LIST ALL ENTRIES IN DATA BASE 

LISTQ - SUMMARY AND QUICK LIST BY DISK ADDR (DECIMAL) 

LISTQO - SUMMARY AND QUICK LIST BY DISK ADDR (OCTAL) 

CLRDB - CLEAR THE DATA BASE (ALL BAD SPOT DATA IS LOST) 

WRTBAT - WRITES BAT BLOCKS NOW 

DONE - EXIT THE MAPOUT ROUTINE 

EDITL - EDIT ENTRIES BY LOGICAL BLOCK NUMBERS 

EDITP - EDIT ENTRIES IN PHYSICAL ADDRESS MODE 

H - BLURB OF THIS LIST 



Fig - 23 



NOW EDITING INDIVIDUAL DATA-BASE-ENTRIES 
LOGICAL BLOCK (LBN) - 1234 
CREATING A NEW ENTRY 
ENTRY-EDIT CMD (OR H<CR» - H 

LIST - LIST STATE OF THE CURRENT (EDITED) ENTRY 

MR - MODIFY REGION (# OF BAD BLOCKS IN REGION) 

HARD - ENTRY BECOMES HARD ERROR AND WILL GO TO BAT BLOCK 

SOFT - ENTRY BECOMES SOFT ERROR AND WILL NOT GO TO BAT BLOCK 

CLRST - CLEAR ERROR STATUS AND COUNTERS 

PNT - ALLOWS FURTHER REPORTING OF ERRORS FROM THIS DISK ADDRESS 

NOPNT - INHIBITS FURTHER PRINTING OF ERRORS FROM THIS DISK ADDRESS 

CLRENT - DELETE THIS ENTRY FROM THE DATA BASE (IMMEDIATELY) 

LANCEL - LEAVE ENTRY EDIT MODE (NOW) AND DON'T UPDATE THE DATA BASE 

DONE - LEAVE ENTRY EDIT MODE AFTER UPDATING THE DATA BASE 

NEXT - UPDATE THE DATA BASE AND PROCESS ANOTHER ENTRY 

H - THIS MESSAGE 



Fig - 24 



HAINDEC-10-DFRPM-B-D 
Appendix -A 



12 Sep 



SEQ 0085 



W72 



MAINDEC-10-DFRPM-B-D 
Appendix -A 



Page 81 
12 Sep 85 



SEQ 0085 



DATA-BASE-EDIT CMD (OR H<CR» - LSTHRD 

RUNNIN6-MAP0UT DRIVE-7 RH-5AA RUNTIME (HHrMMrSS) 00:00:03 

MAPOUT ENTRY: CHAN(RH)-1 ON DRIVE (S) 7 MULTI-RH:NO APRID=2263. 

LBN=7404(38AA.) CYL=12(10.) SURF=2(2.) SECT=A(4.) 

ENTRY CAME FROM: OPR BLOCKS IN REGI0N=34. 

HARD ERRORS DETECTED=0. SOFT ERRORS DETECTED=0. 

ENTRY WILL BE PUT IN BAT BLOCK (OPR REQUESTED UPDATE) 

FURTHER ERRORS FROM THIS ADDRESS WILL NOT BE REPORTED 



Fig - 25 



DATA-BASE-EDIT CMD (OR H<CR» - LISTQ 

MAPOUT-DATA-BASE-SUMMARY : 
DRIVE-7 RH-5AA RUNTIME (HH:MM:SS) 00:00:03 
THERE ARE 0. HARD REGIONS AND 0. SOFT REGIONS KNOWN TO PGM 
STARTING ADDRESSES FOR THE REGIONS ARE: 

LBN CYL SURF SECT #-HARD #-SOFT 



SOFT 668. 


1. 


K. 


8. 


0. 


0. 


HARD 38A4. 


10. 


2. 


4. 


0. 


0. 


HARD 69A12. 


182. 


12. 


12. 


0. 


0. 



Fiq - 26 



DATA-BASE-EDIT CMD (OR H<CR» - LISTQO 

MAPOUT-DATA-BASE-SUMMARY : 
DRIVE-7 RH-5A4 RUNTIME(HH:MM:SS) 00:00:03 
THERE ARE 0. HARD REGIONS AND 0. SOFT REGIONS KNOWN TO PGM 
STARTING ADDRESSES FOR THE REGIONS ARE: 

LBN CYL SURF SECT #-HARD #-SOFT 



SOFT 


123A 


1 


16 


10 


0. 





HARD 


7404 


12 


2 


4 


0. 


Q 


HARD 


207444 


266 


14 


14 


0. 






Fig - 27 



0073 



HAINOEC-10-DFRPM-B-D 
Appendix -A 



Page 
12 Sep 



SEO 0086 



MAINDEC-10-DFRPM-B-D 
Appendix -A 



Page 82 
12 Sep 85 



SEQ 0086 



LIST - LIST STATE OF THE CURRENT (EDITED) ENTRY 

MR - MODIFY REGION (# OF BAD BLOCKS IN REGION) 

HARD - ENTRY BECOMES HARD ERROR AND WILL GO TO BAT BLOCK 

SOFT - ENTRY BECOMES SOFT ERROR AND WILL NOT GO TO BAT BLOCK 

CLRST - CLEAR ERROR STATUS AND COUNTERS 

PNT - ALLOWS FURTHER REPORTING OF ERRORS FROM THIS DISK ADDRESS 

NOPNT - INHIBITS FURTHER PRINTING OF ERRORS FROM THIS DISK ADDRESS 

CLRENT - DELETE THIS ENTRY FROM THE DATA BASE (IMMEDIATELY) 

CANCEL - LEAVE ENTRY EDIT MODE (NOW) AND DON'T UPDATE THE DATA BASE 

DONE - LEAVE ENTRY EDIT MODE AFTER UPDATING THE DATA BASE 

NEXT - UPDATE THE DATA BASE AND PROCESS ANOTHER ENTRY 

H - THIS MESSAGE 



Fig - 28 



DATA-BASE-EDIT CMD (OR H<CR» - LSTHRD 

RUNNING-MAPOUT DRIVE-7 RH-54A RUNTIME (HH:W1:SS) 00:00:03 

MAPOUT ENTRY: CHAN(RH)-1 ON DRIVE(S) 7 MULTI-RH:NO APRID=2263. 

LBN=7A0A(384A.) CYL=12(10.) SURF=2(2.) SECT=A(A.) 

ENTRY CAME FROM: OPR BLOCKS IN REGI0N=34. 

HARD ERRORS DETECTED=0. SOFT ERRORS DETECTED=0. 

ENTRY WILL BE PUT IN BAT BLOCK (OPR REQUESTED UPDATE) 

FURTHER ERRORS FROM THIS ADDRESS WILL NOT BE REPORTED 



Fig - 29 



DATA-BASE-EDIT CMD (OR H<CR» - LSTSFT 

RUNNING-MAPOUT DRlVE-7 RH-54A RUNTIME(HH:MM:SS) 00:00:03 

MAPOUT ENTRY: CHAN(RH)-1 ON DRIVE(S) 7 MULTI-RH:NO APRID=2263. 

LBN=7A0A(3844.) CYL=12(10.) SURF=2(?.) SECT=4(4.) 

ENTRY CAME FROM: PGM BAT BLOCKS IN REGI0N=34. 

HARD ERRORS DETECTED=3. SOFT ERRORS DETECTED=0. 

ENTRY WILL NOT BE PUT IN BAT BLOCK (OPR CANCELED UPDATE) 

FURTHER ERRORS FROM THIS ADDRESS WILL NOT BE REPORTED 



Fig - 30 



iHAlNDEC-10-DFRPM-B-D 
; Appendix -A 



Page 
12 Sep 



SEQ 0087 



DEFINS 

DFRPMT 



)07^ 



MAlNDEC-10-DFRPM-B-D 
Append ix-A 



MAN> WHAT TEST (OR HELP): TDLST 
RUNNING - TDLST DRIVE-5 RH-540 
RUNTIME(HH:MM:SS) 00:12:23 



Page 83 
12 Sep 85 



SEO 0087 



RP07 DUAL PORTED SER. NO. =131 



SER # 


CYL # 


SURF # DISP-1 


0131. 


0. 


1. 12578. 


0131. 


0. 


6. 1379A. 



DISP-2 DISP-3 DISP-4 



typical 



0131. 
0131. 



6. 
6. 



15. 
31. 



878. 
82. 



HO-MOVED 

11174. TD-MOVED 



typical 



TOTAL NUMBER OF DEFECTS 
TRACKS WITH 0. DEFECTS = 
TRACKS WITH 1. DEFECTS = 
TRACKS WITH 2. DEFECTS = 
TRACKS WITH 3. DEFECTS = 
TRACKS WITH 4. DEFECTS = 



Fig - 31 



-- 21*57. 
17946. 
2050. 
182. 
13. 
1. 



075 



HAINDEC-10-DFRPM-B-D 
AoDendix-A 



Page 84 
12 sId 85 



SEO 0088 



lOEFINS f 

ihCDOMT k 



MAINDEC-10-DFRPM-B-D 
Append ix-A 



Page 84 
12 Sep 85 



SEQ 0088 



VAR> WHAT TEST (OR HELP): TDLST 

RUNNING - TDLST DRIVE-5 RH-540 RP07 DUAL PORTED SER. NO. =131. 

RUNTIME(HH:MM:SS) 00:12:23 
LIST DEFECT INFORMATION FROM RP07 TD'S WITHIN THE RANGE OF 
CYL1,SURF1 AND CYL2,SURF2 INCLUSIVELY 
ENTER CYL1 : - 
ENTER SURF1: - 
ENTE;^ CYL2: - 
ENTER SURF2: - 6 



RUNNING - TDLST DRIVE-5 RH-5A0 
RUNTIME (HH:MM:SS:) 00:02:10 



SER # 


CYL ^ 


SURF # DISP-1 


0131. 


0. 


1. 12578. 


0131. 


0. 


6. 13794. 



DISP-2 DISP-3 DISP-4 



TOTAL NUMBER OF DEFECTS = 2. 
TRACKS WITH 0. DEFECTS = 5. 
TRACKS WITH 1. DEFECTS = 2. 



Fig - 32 



VAR> WHAT TEST (OR HELP): TDBLD 

RUNNING - TDBLD DRIVE-5 RH-540 RP07 DUAL PORTED SER. NO. =131 

RUNTIME(HH:MM:SS) 00:12:23 
TDBLD - CREATE A NEW TD RECORD FOR CYLl. SURF1 
THEN REFORMAT AND .^EREAD THE TRACK CHECKING FOR ERRORS 

*** YOU BEST UNDERSTAND WHAT YOU ARE DOING •** 
ENTER CYLl: - 0. 
ENTER SURF1: - 6. 

DATA CURRENTLY IN THIS TD: 

CYL = 0(0.) SURF = 6(6.) 

DISP-#1 = 32742(13794.) 

DISP-#2 = 140000 

0ISP-#3 = 140000 

0ISP-#4 = 140000 

DO YOU STILL WISH TO MODIFY ? Y OR N <CR> - Y 

DO YOU WISH TO INCLUDE ANOTHER DEFECT ? Y OR N <CR> - Y 

ENTER DISTANCE (16 BIT WOS) FROM INDF/ 

THESE VALUES ARE ALLOWED 251 (!69.) THRU 42100(1)472.; - ]3794. 



DO TO STILL WISH TO MODIFY ? Y OR N <CR> - N 
VAR> WHAT TEST (OR HELP): 

Fig - 33 



HAINDEC-10-DFRPM-B- 
Append ix-A 



Page 
12 Sep 



SEO 0089 



DEFINS 

DAB AM 



76 



MAINDEC-10-DFRPM-B-D 
Appendix -A 



Page 85 
12 Sep 85 



SEO 0089 



RUNNING - SKTST1 DRIVE-5 RH-540 RP06 DUAL PORTED SER. NO. =230. 

RUNTIME(HH:MM:SS) 00:12:23 
2516. SINGLE CYLINDER SEEKS WERE MEASURED 
MINIMUM SINGLE CYLINDER SEEK TIME = 3.2-^ MS 
AVERAGE SINGLE CYLINDER SEEK TIME = 3.66 MS 
MAXIMUM SINGLE CYLINDER SEEK TIME = 4.39 MS 
THERE WERE 9A. SINGLE CYLINDER SEEKS ABOVE THE MAX OF 4. MS 



Fig - 34 



RUNNING - SKTST2 DRIVE-5 RH-540 
RUNTIME (HH:MM:SS) 00:12:23 
2516. SEEK LENGTHS WERE MEASURED 
MINIMUM SEEK TIME = 3.51 MS 
AVERAGE SEEK TIME = 25.12 MS 
MAXIMUM SEEK TIME = 37.40 MS 



RP06 DUAL PORTED SER. NO. =230. 



Fig - 35 



FATAL PROGRAM BUG. PGM ABOUT TO WRITE ON CUSTOMER DATA AREA. 
PROGRAM WILL FATAL OUT TO PREVENT THIS FROM HAPPENING. 
ORIVE-1 RH-540 RP04 DUAL PORTED SN=0145. ID=MULWIR 

PROGRAM DEVICE STATUS WORD (DSW) = 002247 162773 

AC1 = 000000 073012 AC2 = 000000 035241 AC3 = 000000 000000 

PLEASE SAVE THIS INFORMATION 

FATAL PGM ERROR AT PC - 074774 
Fig - 36 



[End of D&cumentJ 



DEFINS 
PARAM 



HISTORY OF DFRPM 



SEQ 0090 



DEFINS MA 

DADAM y> 



HISTORY OF DFRPM 



SEQ 0090 



VERSION: 
AUTHOR: 
DATE: 
REASON: 



MAINDEC-10-DFRPM-A Version 11 Jl (field test version) 

Frank Gatulis 

October 1981 

Unreleased version for use in RP07 field test environment. 



This version of the program does not contain the full implementation of 
command retry code but the program is adequate as a support tool during 
the field test. 



VERSION; 
AUTHOR: 
DATE: 
REASON: 



MAINDEC-10-DFRPM-A Version 11.11 (field test version) 

Frank Gatulis / Marshall Smith 

January 1982 

Unreleased version for use in RP07 field test environment. 



Modified interrupt service logic to filter out ATA's from drives not being 
tested. This fixed a problem of drive clears occuring at the wrong time 
which caused come error information to get lost. It also caused occasional 
RMR problems when the attentions were cleared with a drive clear. 

Implemented the retry code. Added routines to reduce printing of nuisance 
type errors (DTE. OPI. DCK. ECH. HCRC. FER). 



VERSION: 
AUTHOR: 
DATE: 
REASON: 



MAINDEC-10-DFRPM-A Version 0.1 

Frank Gatulis / Marshall Smith 

February 1982 

First official release of the program through the SDC, 



VERSION; 
AUTHOR: 
DATE: 
REASON: 



Version 0.2 



MAINDEC-10-DFRPM-8 

Richard Jevon 

MARCH 1984 

CORRECTED TOPS 10 USERMODE BUG. 



SEQ 0091 



SEQ 0091 



VERSION: 
AUTHOR: 
DATE: 
REASON: 



MAINDEC-10-DFRPM-C Version 0.3 

Gregory A. Scott 

September 13, 1985 

Fix documentation (table of contents, spelling, etc). 

If DFRPM is run on TOPS-20 6.0 or later and there is a 
drive that is dualported to another system on the same 
channel as the drive you want to test, the DIAG JSYS fails 
with "DIAG illegal for Dual Ported Drives". Recover from 
this better and instruct the operator on what to do to make 
it work. 



DEFINS 
PARAN 



I 



k 

m 

A07 
408 
409 
410 
411 
412 
413 
414 
415 

4 



SEQ 0079 




r 



DE 
PAI 



SEQ 0080 



DEFINS MACRO X53B(1242) 19:3( 
DFRPMT MAC 11-Sep-85 Mul 



. 12-Sep-85 
'2 DFR 



FR?M TITLE FILE (DEFINS. UNV) 



SEQ 0095 



DEF 
PAR 



DEFINS 
DFRPMT 

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
K 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 

t^ 
tl 

50 
51 

5; 

55 



MACRO X53B(1242) 19:36 i2-Sep-85 Page 1 



MAC 



11-Sep-85 14:22 



000000 
000003 



000137 
000137 



000000 000003 



DFRPM TITLE FILE (DEFINS. UNV) 



SUBTTL DFRPM TITLE FILE (DEFINS. UNV) 
UNIVERSAL DEFINS 
SEARCH M0NSYM,UU0SYM 

EXTERN TEXT.,TEXTF.,Q 
EXTERN START, STARTA,P6MNAM 



SEQ 0093 



DEF 
PAR 



.REQUIRE 
.REQUIRE 
.REQUIRE 
.REQUIRE 
.REQUIRE 
.REQUIRE 
.REQUIRE 
.REQUIRE 
.REQUIRE 
.REQUIRE 
.REQUIRE 

HCNVER==0 
DECVER==3 



XLIST 



DFRPM 

DFRPM1 

DFRPM2 

DEFECT 

CONFIG 

GENVAR 

RH20 

GENRGS 

MAPSUP 

DISKS 

UTIL1 



COPYRIGHT (C) 1981, 1982, 1984. 1985 
DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS. 

THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY 
ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH 
THE INCLUSION OF THE OF THE ABOVE COPYRIGHT NOTICE. THIS 
SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PROVIDED 
OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON EXCEPT FOR USE 
ON SUCH SYSTEM AND TO ONE WHO AGREES TO THESE LICENSE TERMS. 
TITLE TO AND OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES 
REMAIN IN DEC. 

THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE 
WITHOUT NOTICEAND SHOULD NOT BE CONSTRUED AS A COMMITMENT 
BY DIGITALEQUIPMENT CORPORATION. 

DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF 
ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. 



AUTHOR: 
MAINTAINER; 



LOC 137 
MCNVER,,DECVER 



F.GATULIS 

PDP-10 DIAGNOSTIC ENGINEERING 



PAGE 



DEFINS MACRO X53B(1242) 19:36 12-Sep-85 Page 1-1 

DFRPMT MAC 11-Sep-85 14:22 RH20/RP07/6/4 FORMATTER - EXERCISER VERSION 0,3 



SEQ 0094 



DEF] 
PAR; 



;eq 0081 



DEFINS MACRO X53B(1242) 19:36 12-Sep-85 Page 1-1 



DFRPMT MAC 

56 
57 
58 
59 
60 
61 
62 
63 
6A 
65 
66 
67 
68 
69 
70 
71 



11-Sep-85 14:22 



RH20/RP07/6/4 F0R"1ATTER - EXERCISER VERSION 0,3 
LIST 

;*NEW SUBROUTINE PACKAGE DEFINITIONS 



SEQ 0094 



DEF 
PAR/ 



000001 


KL10==1 


■RUN ON KL10 


000001 


USRAS8==1 


■RUN IN USER MODE 


000001 


EXCASB==1 


;RUN IN EXEC MODE 


000000 


ITERAT—0 


;# OF PROGRAM ITERATIONS 


000001 


MFW1AP==1 


[ASSEMBLE THE MEMORY MAPPER 


000200 


DEBUG==200 


;A 200 LOCATION PATCH AREA 


030577 


i10DDVL==ENDFIX 




030577 


M0DDVU==ENDFIX 




000001 


$LPAPER=1 

PAGE 


» « 



EQ 0082 



DEFINS MACRO X53B{1242> 19:3 
DFRPMT MAC lT-SeD-85 ' 



:36 12-Sep-85 Page 1-2 
14:22 RH20/RP07/6/4 FORMATTER 



- EXERCISER VERSION 0.3 



SEQ 0095 



DEFI^ 
r Tver 



DEFINS 
DFRPMT 

72 
73 
7A 
75 
76 
77 
78 
79 
80 
81 
82 
83 
84 
85 
86 
87 
88 
89 
90 
91 
92 
93 
94 
95 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-2 

MAC 11-Sep-85 14:22 RH20/RP07/6/4 FORMATTER - EXERCISER VERSION 0.3 



SEQ 0095 



iDEF 
FIXE 



254200 
254200 
254200 
254200 
254200 

331214 

444662 
605664 



000000* 

030000 

030000 

030007 

030007 

030007 

030000 

030000 

030000 

030000 

030000 

654534 
000000 
605500 
000000 
000000 
000000 



:*S0ME PROGRAM ADDRESS OPTIONS AND PARAMETERS 

S*; ******************* t *♦*♦**»»*•♦**»«**»*♦»*••♦*»»***»*•♦***<» »♦♦♦*»«•*♦• 

SPECIAL FEATURE START 
POWER FAIL RESTART 
REENTER STARTING ADDRESS 
DDT START 

CONTROL C TRANSFER ADDRESS 
ALTMODE TRANSFER ADDRESS 



SADR1= 


Q 


SADR2= 


BEGIN : 


SADR3= 


BEGIN 


SADR4= 


SRTDDT 


SADR5= 


SRTDDT 


SADR6= 


SRTDDT 


SADR7= 


HALT BEGIN 


SADR8= 


HALT BEGIN 


SADR9= 


HALT BEGIN 


S ADR 10= 


HALT BEGIN 


SADR11= 


HALT BEGIN 


PAREA1= 


331214654534 


PAREA2= 





PAREA3= 


SIXBIT /DFRPM/ ; 


PAREA4= 


SIXBIT /PHI/ 


PAREA5= 





PAREA6=0 




PAGE 



RANDOM BASE 

SYSTEM EXERCISER SWITCHES 
USER MODE OUTPUT FILE NAME 
USER MODE OUTPUT FILE EXT 



r 



DEFINS MACRO X53B(1242) 19:36 12-Sep-85 
DFRPMT MAC lT-Sep-85 14:22 



RH?8/RP07/6/4 



FORMATTER - EXERCISER VERSION 0.3 



SEQ 0096 



iDEFIN 
iFIXFn 



Q 0083 



DEFINS MACRO X53B(12A2) 19:36 12-Sep-85 Page 1-3 

DFRPMT MAC 11-Sep-85 U:22 RH20/RP07/6/4 FORMATTER - EXERCISER VERSION 0.3 



SEQ 0096 



96 
97 
98 
99 
100 
101 
102 
103 
10A 
105 
106 
107 
108 
109 
110 
111 



000016 
000015 
OOOOK 
OOOOU 
000013 

000011 
000010 
000007 
000006 



; SOME AC DEFINITIONS 

MBCN=16 

DRIVE=15 

DSW=U 

DSBP=DSW 

X1=13 

ERFLG=11 
RGLIST=I0 
X=7 
Y=6 

PAGE 



HOLDS RW DEVICE CODE 

HOLDS RP07 * 

HOLDS STATUS,. PTR FROM UNTBL 

THEY ARE IDENTICAL 

0=RP07 ==>HOLDS LOGICAL TYPE 

1=RP07+ 

PGM ERROR FLAG 

BITS DESCRIBING REG'S FOR PRINTING 

GENERAL INDEX REG 

GENERAL INDEX REG 



Q 0084 



DEFINS MACRO X53B(12A2} 19:36 12-Sep-85 Page 1-A 

DFRPMT MAC 11-SeD-85 }iii22 RH20/RP07/6/4 FORMATTER 



EXERCISER VERSION 0.3 



SEQ 0097 



0084 



OEFINS 
DFRPMT 

112 
113 
1U 
115 
116 
117 
118 
119 
120 
121 
122 
123 
12A 
125 
126 
127 
128 
129 
130 
131 
132 
133 
134 
135 
136 
137 
138 
139 
UO 
1A1 
U2 
K3 
K4 
U5 
K6 
K7 
148 
149 
150 
151 
152 
153 
154 
155 
156 
157 
158 
159 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-4 

MAC 11-Sep-85 14:22 RH20/RP07/6/4 FORMATTER - EXERCISER VERSION 0,3 



SEQ 0097 



030000 000000 
031000 000000 

000000* 
000000* 



;*HERE ARE THE PROGRAM UUO AND MACRO DEFINITIONS 

S*; *****»*********•-***•♦♦♦♦**♦***«♦**♦**«» ******************************* 



OPDEF 
OPDEF 



TEXT 
TEXTF 



[30B8J .-PRINTS ASCIZ NOT FORCED 
C31B8: .-PRINTS ASCIZ FORCED 



LUU030= TEXT. 
LUU031= TEXTF. 



S*; ********************************************************************** 

;*MACRO DEFINITIONS 

S*; ********************************************************************** 

COMMENT S 

THE BOX MACRO IS USED IN THE SOURCE CODE TO FACILITATE 
DOCUMENTATION OF GENERAL PURPOSE SUBROUTINES USED IN 
THE PROGRAM. IT TAKES 2 TEXT ARGUMENTS. ITS USE: 

XLIXT 

BOX <THIS TEXT GOES BETWEEN THE STARS>.< 

THIS TEXT IS PUT IN AS COMMENTS AND IS USED TO DESCRIBE THE 

SUBROUTINE FUNCTIONS, CALLS. ETC. > 



DEFINE BOX (TEXTA.TEXTBX 

LALL 

LIST 

PAGE 
S 

;* TEXTA 
S 



COMMENT $ 
TEXTB 



S 

XLIST 

XALL 

LIST 

LIST 



iDEFINS 
I DFRPMT 



MACRO X53B(1242) 19:36 12-Sep-85 Page 2 

MAC lT-SeD-85 14:22 RH20/RP07/6/4 FORMATTER - EXERCISER VERSION 0.3 



SEO 0098 



r t urr\ 



DEFINS MACRO X53B(12A2) 19:36 12-Sep-85 Page 2 

DFRPMT MAC 11-Sep-85 14:22 RH20/RP07/6/4 FORMATTER - EXERCISER VERSION 0.3 



SEQ 0098 



160 
161 
162 
163 
16A 
165 
166 
167 
168 
169 
170 
171 
172 
173 
174 
175 
176 
177 
178 
179 
180 
181 
182 



COMMENT X 

THE UTIL MACRO IS IDENTICAL TO BOX WITH ONE EXCEPTION. 

UTIL DOES NOT GO TO TOP OF NEXT PAGE. THIS IS TO BE 

USED FOR SUBROUTINES. 

X 

DEFINE UTIL (TEXTA,TEXTB)< 

LALL 

LIST 
S 

;* TEXTA 
S 

COMMENT $ 
TEXTB 

$ 

XLIST 

XALL 

LIST 

> 

LIST 



r" 



DEFINS 
DFRPMT 



MACRO 
MAC 



«3B(1242) 
11-SeD-85 



19:36 12-Sep-85_PMe_3 



\m 



RH20/RP07'6/A FORMATTER - EXERCISER VERSION 0.3 



SEQ 0099 



DEFINS 



DEFINS MACRO );53B(1242) 19:36 12- 
DFRPMT MAC 11-Sep-85 U:22 

183 

ISA 

185 

186 

187 

188 

189 

190 

191 

192 

193 

19A 

195 

196 

197 

198 

199 

200 

201 

202 

203 

20« 

205 

206 

207 

208 

209 

210 

211 

212 

213 

2U 

215 

216 

217 

218 

219 

220 

221 

III 



Sep-85 Page 3 
-|20 — 



RH20/RP07'6/4 FORMATTER - EXERCISER VERSION 0.3 

COMMENT $ 

THE NLWTST MACRO IS USED IN THE SOURCE CODE 

TO DOCUMENT THE ACTUAL MAINLINE DIAGNOSTIC TEXT. U TAKES 

3 TEXT ARGUMENTS. ITS USE: 

XLIST 

NEUTST <THIS TEXT GOES BETWEEN THE STARS>.< 

THIS TEXT BECOMES THE TEST DESCRIPTION >,< 

THIS TEXT PROVIDES ADDITIONAL TROUBLESHOOTING AIDS. > 



DEFINE NEUTST (PA,PB,PC) < 

LALL 

LIST 

PAGE 
S 

;• PA 
S 

COMMENT $ 

TEST DESCRIPTION 



SEO 0099 



PB 



ADDITIONAL TEST NOTES 



PC 



XLIST 

XALL 

LIST 

> 

LIST 



XLIST 

LIST 

PAGE 



DEFINS MACRO X53B(1242) 19:36 12-Sep-85 Page 3-1 



Fvporicpo uPDctniu n ? 



ceo nmn 



DEFINS 



r 



DEFINS 
DFRPMT 

223 
22A 
225 
226 
227 
228 
229 
230 
231 
232 
233 
23A 
235 
236 
237 
238 
239 
240 
2A1 

2A3 
2^^ 
2A5 
2A6 
247 
248 
249 
250 
251 
252 
253 
254 
255 
256 
257 
258 
259 
260 
261 
262 
263 
264 
265 
266 
267 
268 



MACRO X53B(1242) 19:36 12-Sep-85 Page 3-1 

MAC 11-Sep-85 14:22 RH20/RP07/6/4 FORMATTER - EXERCISER VERSION 0.3 



r 



SEQ 0100 



;• SW00-SW17 OPERATIONAL DESCRIPTION 



COMMENT $ 



THESE SWITCHES ON A KL-10 ARE THE PDP-11 CONSOLE 
SWITCHES. THESE SWITCHES, IF USED BY THE PROGRAM, PERFORM 
THE FOLLOWING FUNCTIONS:- (SHOWN IN PDP-10 FORMAT) 



400000 
200000 
100000 

040000 
020000 
010000 

004000 
002000 
001000 



000400 
000200 
000100 

000040 
000020 
000010 

000004 
000002 
000001 



IF SET: ABORT PGM AT THE END OF 
NOT USED 
NOT USED 



THIS PASS 



INHIBIT ALL BUT FORCED PRINTOUTS 

OUTPUT TO LPT (OR LOGICAL DEVICE IN USER MODE) 

RING THE BELL ON ERROR (THIS IS FORCED) 

IF SET: LOOP ON FIRST OCCURANCE OF ERROR 
HALT ON ERROR (SWITCH IGNORED IF IN USER MODE) 
IF SET: PRINT ALL REPETITIONS OF AN ERROR. 
IF RESET: PRINT ONLY FIRST OCCURANCE. 

NOT USED 

IF SET: USE ABBREVIATED PRINTOUTS WHERE POSSIBLE 

IF SET: INHIBIT OPERATION OF KL-10 PAGING HARDWARE 

NOT USED 

If SET: INHIBIT OPERATION OF THE CACHE (• SEE NOTE *) 

OPERATOR SELECTED TESTS 

NOT USED 
NOT USED 
NOT USED 



♦NOTE* 

EXAMINATION OF THIS SWITCH TAKES PLACE ONLY ONCE. IMMEDIATELY 

FOLLOWING THE INITIAL LOAD OF THE DIAGNOSTIC INTO CORE FROM 

ITS STORAGE MEDIA. THE CACHE OPTION IS SELECTED ONLY DURING 

THE VERY FIRST PROGRAM INITIALIZATION CYCLE. ATTEMPTING TO 

ALTER THE STATE OF THE SWITCH FROM THAT POINT ON WILL HAVE 

NO EFFECT 

S 

XLIST 

LIST 

PAGE 



DEFINS MACRO X53B(1242) 19:36 12-Sep-85 Page 3-2 



OMATTCO _ CVCDrrrCD UCDCI.-m n 1 



ecn nirti 



DEFINS 



DEFINS MACRO X53B(1242) 19:36 12-Sep-85 Page 3-2 

DFRPMT MAC 11-Sep-85 14:22 RH2O/RP07/6/4 FORMATTER - EXERCICER VERSION 0.3 



SEQ 0101 



? 



n 



R 



R 



400000 
200000 
100000 


ABORT== 
RSTART= 
TOTALS= 


400000 
=200000 
=100000 


040000 
020000 
010000 


NOPNT== 
PNTLPT= 
DING== 


040000 

=020000 

010000 


004000 
002000 
001000 


LOOPER= 
ERST0P= 
PALERS= 


=004000 
=002000 
=001000 


000400 
000200 
000100 


RELIAB= 
TXTINH= 
INHPAG= 


=000400 
=000200 
=000100 


000040 
000020 
000010 


MODDVC= 
INHCSH= 
0PRSEL= 


=000040 
=000020 
=000010 


000004 


CHAIN== 


000004 


000002 


KAHZ50= 


=000002 



SUBTTL ♦PARAM* CONSOLE DATA SWITCH ASSIGNMENTS. SEPT 18.1979 

DEFINE S.<; *************♦***♦****************♦***♦****♦********♦******♦♦*♦**♦***> 

♦DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE) 

♦LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE 

♦AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC, FUNCTIONS 

*********4r*i^**************<r********t* **************** ***************** 

ABORT PROGRAM ON PASS COMPLETION 
RESTART TEST. PRINT TOTALS 
PRINT TOTALS, CONTINUE 

INHien ALL PRINT/TYPE OUT (EXCEPT FORCcD) 

PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE) 

RING BELL ON ERROR 

ENTER EXERCISE/CHECK LOOP ON ERROR 
HALT ON TEST ERROR 
PRINT ALL ERRORS 

RELIABILITY MODE 
INHIBIT ERROR TEXT 
INHIBIT PAGING 

MODIFY DEVICE CODE 
INHIBIT CACHE 
OPERATOR SELECTION 

CHAIN CONTROL SWITCH 

KA10 50 HERTZ POWER 

SWITCH 17 RESERVED !!! 



DEFINS 

DAB AM 



MACRO X53B(1242) 19:36 12-Sep-85 Page 2 

VI M 1A.Cun.7Q 17.1 A *DA0AM* 



DonroAM/ciiQoniiTruc daoahctcdc ccor lo iq7Q 



ccn mno 



I 

DEFINS 



DEFINS 
PARAM 

305 
306 
307 
308 
309 
310 
311 
312 
313 
3K 
315 
316 
317 
318 
319 
320 
321 
322 
323 
324 
325 
326 
327 
328 
329 
330 
331 
332 
333 
334 
335 
336 



MACRO X53B(1242) 19:36 12-Sep-85 Page 2 
*PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18.1979 



r" 



KLM 



18-Sep-79 17:16 



SEQ 0102 



027772 


FSELNK= 


nm 


027773 


FRDLNK= 


27771 


027774 


LDLNK= 


27771, 


027775 


DDTLNK= 


27775 


027776 


nODLNK= 


27776 


027777 


SUBLNK= 


27777 



SUBTTL *PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979 

; ********************************************************************** 

.••SPECIAL SUBPROGRAM LINKAGES 

; ********************************************************************** 

FILE SELECT LINK 

FILE READ LINK 

LOAD LINKAGE ADDRESS 

DDT LINKAGE ADDRESS 

OPERATIONAL MODE CHECK LINKAGE ADDRESS 

SUBROUTINE LINKAGE ADDRESS 

********************************************************************** 

•SPECIAL SUBROUTINE FATAL HALTS 

•USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE 
********************************************************************** 

ADDRESS TAG REASON 



1010 
1011 
1012 
1013 
1014 
1015 
1016 
1017 
1020 



NOEXEC 

PLERR 

PLERR1 

MUOERR 

DTEBER 

DTECER 

CPIERR 

EOPERR 

LUOERR 



PROGRAM NOT CODED FOR EXEC MODE OPERATION 

FATAL PUSH LIST POINTER ERROR 

INITIAL PUSH LIST POINTER ERROR 

MUUO WITH LUUO HANDLER WIPED OUT 

DTE20 INTERRUPT WITHOUT DOORBELL 

DTE20 CLOCK INTERRUPT WITHOUT FLAG SET 

CPU INITIALIZATION ERROR 

END OF PROGRAM ERROR 

INTERRUPT WITH LUUO HANDLER WIPED OUT 



********************************************************************** 



DEFINS 
RH20 

877 






DEFINS MACRO X53B(1242) 19:36 12-Sep-85 Page 3 



Dbnro/iM /ci mom iT t kic n*BaiicrcBr rcnr ID in7n 



ecn AiAT 



DFFIM<; MA 



OEFINS 
PARAM 

337 
338 
339 
3A0 
3A1 
3A2 
3A3 
3AA 
345 
3A6 
3A7 
3A8 
3A9 
350 
351 
352 
353 
35A 
355 
356 
357 
358 
359 
360 
361 
362 
363 
36A 
365 
366 
367 
368 
369 
370 
371 
372 
373 
374 
375 
376 
377 
378 
379 



MACRO X53B(12A2) 19:36 12- 
KLM 18-Sep-79 17:16 



Sep-85 Page 3 
•PARAM* 



PROGRAM/ SUBROUTINE PARAMETERS, SEPT 18.1979 



SEO 0103 



260740 
263740 
261740 
262740 
254000 
254200 
254100 
254500 



000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 



265000 030011 



037640 000004 
037600 000004 



037000 
037040 
037100 
037140 
037200 
037240 
037300 
037340 
037400 
037440 
037500 



000003 
000003 
000003 
000003 
000003 
000003 
000003 
000003 
000003 
000003 
000003 



OPERATOR DEFINITIONS (NON-UUO'S) 



OPDEF GO [PUSHJ PJ 

OPDEF RTN [POPJ PJ 

OPDEF PUT [PUSH PJ 

OPDEF GET [POP PJ 

OPDEF PJRST [JRST ] 

OPDEF HALT [JRSf 4 J 

OPDEF JRSTF [JRST 2J 

OPDEF JEN [JRST 12J 



SUBROUTINE CALL 
SUBROUTINE RETURN 
PUT DATA ON PUSH LIST 
GET DATA FROM PUSH LIST 
JRST TO ROUTINE THAT RTN'S 
DEFINITION FOR DDT 
DEFINITION FOR DDT 
DEFINITION FOR DDT 



SUBROUTINE INITIALIZATION CALL 



OPDEF PGMINT [JSP 0,SBINIT3 



.•SUBROUTINE INITIALIZATION 



********************************************************************** 

HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION), 
***********************»****t**t*****************««** ***************** 

OPDEF FATAL [37B8! 15B12!4J .-FATAL PROGRAMMING HALT 
OPDEF ERRHLT [37B8I 14B12!4] .-PROGRAM ERROR HALT 

••**•»»*•*»**•**»*»♦»***•♦*•*»***»****»*•*♦•♦♦***•»♦**♦•*•*»♦•,»*♦*♦*♦ 

TERMINAL INPUT UUO'S 

ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE 
CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE. 
******************tt**t**************************4********«t********** 

TTY. INPUT ANY CHARACTER 

TTY. NORMAL RETURN Y 

TTY. NORMAL RETURN N 

TTY. INPUT OCTAL WORD 

TTY. INPUT DECIMAL WORD 

TTY, INPUT CONVERTABLE WORD 

TTY. KEYBOARD CHECK 

TTY. ALT-MODE CHECK 

TTY, INPUT SIXBIT WORD 

TTY, IMAGE MODE INPUT 

TTY. CLEAR INPUT 



OPDEF 


TTICHR 


[37B8 


OPDEF 


TTIYES 


[37B8 


OPDEF 


TTINO 


[37B8 


OPDEF 


TTIOCT 


[37B8 


OPDEF 


TTIDEC 


r37B8 


OPDEF 


TTICNV 


.37B8 


OPDEF 


TTLOOK 


:37B8 


OPDEF 


TTALTM 


:37B8 


OPDEF 


TTSIXB 


:37B8 


OPDEF 


TTVINP 


:37B8 


OPDEF 


TTICLR 


[37B8 



I0B12 


3] ; 


!1B12 


33 ; 


I2B12 


3] ; 


!3B12 


3] ; 


14B12 


3] ; 


15B12 


33 ; 


I6B12 


33 ; 


I7B12 


33 : 


!10B12!3] ; 


I11B12I3] ; 


112Bi; 


?!33 ; 



I ' 

I 

DEFINS MA 
RH20 DE 

i 878 

879 
I 880 
\ 881 

882 
' 883 

884 

885 



DEFINS MACRO X53B(1242) 19:36 12-Sep-85 Page 4 



> M ^^ ^ * 



DEFINS MA( 



DEFINS 
PARAM 

380 
381 
382 
383 
38A 
385 
386 
387 
388 
389 
390 
391 
392 
393 
39A 
395 
396 
397 
398 
399 
AOO 
401 
402 
403 
404 
405 
406 
407 
408 
409 
410 
411 
412 
413 
414 
415 
416 
417 
418 
419 
420 
421 
422 
423 



MACRO X53B(1242) 19:36 12-Sep-85 Page 4 



KLM 



18-Sep-79 17:16 



t 



*PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18.1979 



SEQ 0104 



037000 
037000 
037740 
037740 
037600 
037640 
037000 
037040 
037100 
037200 
037000 
037040 
037500 
037500 
037040 
037040 
037100 
037100 
037140 
037140 
037200 
037200 
037240 
037240 
037300 
037300 
037340 
037340 
0i.'440 
037440 
037400 
037400 
037600 
037600 
037540 
037540 
037700 
037740 
037640 
037640 
037700 
037700 



000000 
000001 
000000 
000001 
000003 
000003 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000001 
000000 
000001 
000000 
000001 
000000 
000001 
000000 
000001 
000000 
000001 
000000 
000001 
000000 
000001 
000000 
000001 
000000 
000001 
000000 
000001 
000000 
000001 
000003 
000003 
000000 
000001 
000000 
000001 



.•TERMINAL OUTPUT UUO'S. 



[3788 

;37B8 

*^37B8 

37B8 

37B8 

37B8 

37B8 

.3788 

C3788 

:3788 

13788 

:3788 

:3788 

:3788 

3788 

3788 

3788 

3788 

3788 

.3788 

[3788 

3788 

.3788 

[3788 

:3788 

[3788 

3788 

37B8 

3788 

3788 

3788 

3788 

3788 

.3788 

[3788 

"37B8 

3788 

3788 

.3788 

:3788 

:3788 

^3788 



OPDEF 


PNTA 


OPDEF 


PNTAF 


OPDEF 


PNTAL 


OPDEF 


PNTALF 


OPDEF 


PSIXL 


OPDEF 


PSIXLF 


OPDEF 


PNTMSG 


OPDEF 


PNTMSF 


OPDEF 


PSIXM 


OPDEF 


PSIXMF 


OPDEF 


PNTCI 


OPDEF 


PNTCIF 


OPDEF 


PNTCHR 


OPDEF 


PNTCHF 


OPDEF 


PNT1 


OPDEF 


PNT1F 


OPDEF 


PNT2 


OPDEF 


PNT2F 


OPDEF 


PNT3 


OPDEF 


PNT3F 


OPDEF 


PNT4 


OPDEF 


PNT4F 


OPDEF 


PNT5 


OPDEF 


PNT5F 


OPDEF 


PNT6 


OPDEF 


PNT6F 


OPDEF 


PNT7 


OPDEF 


PNT7F 


OPDEF 


PNT11 


OPDEF 


PNT11F 


OPDEF 


PNTADR 


OPDEF 


PNTADF 


OPDEF 


PNTOCT 


OPDEF 


PNTOTF 


OPDEF 


PNTHW 


OPDEF 


PNTHWF 


OPDEF 


PNTOCS 


OPDEF 


PNTOCF 


OPDEF 


PNTDEC 


OPDEF 


PNTDCF 


OPDEF 


PNTDS 


OPDEF 


PNTDSF 



0B1210] 


; PRINT 


0B1211] 
17B1210J 


; PRINT 


; PRINT 


17B12I1J 


; PRINT 


14B12!3J 


; PRINT 


15B12I3J 


; PRINT 


0B12I0J 


; PRINT 


1B1210J 


; PRINT 


2B12I0D 


; PRINT 


4B12I03 


•PRINT 


OBI 2! 03 


•PRINT 


1B1210J 


•PRINT 


12B12I03 


; PRINT 


12B12!n 


•PRINT 


181210] 


■PRINT 


1812113 


•PRINT 


2B1210] 


•PRINT 


2812113 


•PRINT 


3B12!03 


•PRINT 


3812113 


•PRINT 


4B12103 


•PRINT 


4812113 


•PRINT 


5812103 


•PRINT 


5B12113 , 


•PRINT 


6B12103 , 


•PRINT 


6B12113 , 


PRINT 


7B12103 , 


PRINT 


7812113 , 


PRINT 


11B12103 , 


PRINT 


11B12113 , 


PRINT 


1GB12103 . 


PRINT 


10B12113 . 


PRINT 


14B12103 , 


PRINT 


14B12113 . 


PRINT 


13B12103 , 


PRINT 


13B12113 , 


PRINT 


16B12133 . 


PRINT 


17B12133 . 


PRINT 


15B12103 . 


PRINT 


15B12113 . 


PRINT 


16B12103 . 


PRINT 


16B12113 , 


PRINT 



ASCII WORD 

ASCII WORD FORCED 

ASCIZ LINE 

ASCIZ LINE FORCED 

SIXBIT'Z LINE 

SIXBIT'Z LINE FORCED 

MESSAGE IMMEDIATE 

MESSAGE IMMEDIATE FORCED 

SIXBIT'Z MSG IMMEDIATE 

SIXBIT'Z MSG IMM FORCED 

CHARACTER IMMEDIATE 

CHARACTER IMMEDIATE FORCED 

CHARACTER 

CHARACTER FORCED 

ONE OCTAL DIGIT 

1 OCTAL DIGIT FORCED 
TWO OCTAL DIGITS 

2 OCTAL DIGITS FORCED 
THREE OCTAL DIGITS 

THREE OCTAL DIGITS FORCED 

FOUR OCTAL DIGITS 

FOUR OCTAL DIGITS FORCED 

FIVE OCTAL DIGITS 

FIVE OCTAL DIGITS FORCED 

SIX OCTAL DIGITS 

SIX OCTAL DIGITS FORCED 

7 OCTAL DIGITS 

7 OCTAL DIGITS FORCED 

11 OCTAL DIGITS 

11 OCTAL DIGITS FORCED. 

PHYSICAL ADDRESS 

PHYSICAL ADDRESS FORCED 

FULL WORD OCTAL 

FULL WORD OCTAL FORCED 

OCTAL HALF WORDS. 6 SP 6 

OCTAL HALF WORDS. 6 SP 6 FORCED 

OCTAL. SUPPRESS LEADING O'S 

OCTAL. SUPPRESS LEADING O'S FORCED 

DECIMAL. SUPRESS LEADING O'S 

DECIMAL. SUPRESS LEADING O'S FORCED 

DECIMAL. SPACES FOR LD O'S 

DECIMAL. SPACES FOR LD O'S FORCED 



DEFINS 
RH20 



MAC 
DEF 



1^ 

)6 









r 



SEQ 0092 



DEFINS 
PARAM 

A24 
A25 
426 
427 
428 
429 
430 
431 
432 
433 
434 
435 
436 
437 
438 
439 
440 
441 
442 
443 
444 
445 
446 
447 
448 
449 
450 
451 
452 
453 
454 
455 
456 
457 
458 
459 
460 
461 
462 
463 
464 
465 
466 
467 



MACRO X53B(1242) 19:36 12-Sep-85 Page 5 

KLM 18-Sep-79 17:16 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979 



SEQ 0105 



037200 
037000 
037040 
037240 
037100 
037140 
037000 
037040 
037000 
037040 
037000 
037040 
037040 



000002 
000002 
000002 
000002 
000002 
000002 
030242 
030242 
000040 
000040 
030243 
030243 
000007 



037040 000026 



037400 000002 



037540 000004 
037200 000004 



037040 000004 
037100 000004 
037140 000004 



DE 
RH 



OPDEF 
OPDEF 
OPDEF 
OPDEF 
OPDEF 
OPDEF 
OPDEF 
OPDEF 
OPDEF 
OPDEF 
OPDEF 
OPDEF 
OPDEF 



PNTNM 

PNTSIX 

PNTSXF 

DROPDV 

PNTCW 

PNTCWF 

PCRL 

PCRLF 

PSP 

PSPF 

PCRL2 

PCRL2F 

PBELL 



[37B8 
[37B8 
[37B8 
C37B8 
[37B8 
[37B8 
[37B8 
C3788 
C3788 
C3788 
[37B8 
C37B8 
[3788 



4B12 
OBI 2 
1B12 
5B12 
2B12 
3B12 
OBI 2 
1B12 
OBI 2 
1B12 
OBI 2 
1B12 
1B12 



21 ; PRINT PROGRAM NAME 
23 ;PRINT SIXBIT WORD 

22 .-PRINT SIXBIT WORD FORCED 

21 .-CLOSE LOGICAL FILE. USER MODE 

23 .-PRINT DF10 CONTROL WORD 

21 .-PRINT DF10 CONTROL WORD FORCED 

CRLF] .-PRINT CARRIAGE RETURN/LINE FEED 

CRLF] .-PRINT CARRIAGE RETURN/LINE FEED FORCED 

403 .-PRINT SPACE 

403 :PRINT SPACE FORCED 

CRLF2J .-PRINT CARRIAGE RETURN/LINE FEED (TWICE) 

CRLF23 .-PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED 

73 .-PRINT TTY BELL 



OPDEF PFORCE [3788!1B12!263 .-PRINT FORCE, CONTROL OVERRIDE 

DEFINE PMSG (AR6),< 

PSIXM [SIX8IT\ARG'.\3> 

DEFINE PMSGF (AR6),< 

PSIXMF [SIXBIT\ARG'.\3> 

;SIXBTZ — MACRO TO GENERATE SIXBIT DATA FOR PRINTING 
CONSERVES CORE OVER ASCIZ 

DEFINE SIXBTZ (ARG).< CSIXBIT\ARG'.\3> 

CONSOLE SWITCH INPUT UUO. 

READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF 
USER MODE. 

OPDEF SWITCH C37B8! 10B12I23 .-INPUT CONSOLE SWITCHES 

.-CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION 

.-EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR. 



OPDEF CLOKOP [3788: 13B12I43 
OPDEF MTROP [3788! 481 2! 43 



.-CLOCK OPERATION UUO - PDP-11 CLOCK 
.-CLOCK OPERATION UUO - DK20 METER 



;KL10 ONLY CACHE OPERATION UUO'S 



OPDEF CINVAL 
OPDEF CFLUSH 
OPDEF CWRT8I 



[3788!1B12!43 
[3788!2B12!4] 
[3788 13812! 43 



CACHE INVALIDATE 

CACHE FLUSH 

CACHE WRITE-BACK & INVALIDATE 



SEQ 0093 



DEFINS 
PARAM 



MACRO X53B(1242) 19:36 12-Sep-85 
KLM 18-SeD-79 17:16 



Page 6 
♦PARAM* 



PROGRAM/SUBROUTINE PARAMETERS. SEPT 18.1979 



SEQ 0106 



DEf 



DEFINS 
PARAM 

A68 
469 
470 
A71 
472 
473 
474 
475 
^76 
477 
478 
479 
480 
481 
482 
483 
484 
485 
486 
487 
488 
489 
490 
491 
492 
493 
494 
495 
496 
497 
498 
499 
500 
501 
502 
503 
504 
505 
506 
507 
508 
509 
510 



MACRO X53B(1242) 19:36 12-Sep-85 Page 6 

KLM 18-Sep-79 17:16 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979 

;END OF PASS/PROGRAM UUOS 



037500 000004 
037700 000004 



037000 
037500 
037440 
037540 
037640 
037600 
037740 



000004 
000002 
000002 
000002 
000002 
000002 
000002 



037340 000002 
037300 000002 



037240 
037300 
037340 
037400 



000004 
000004 
000004 
000004 



037700 00G002 



SEQ 0106 



DEF 
RH2 



.•PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT, 
.•DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC. 



OPDEF ENDUUO [37B8!12B12!4J 
OPDEF EOPUUO C37B8!16B12!4] 



;UUO TO DISPLAY LIGHTS 
;END OF PROGRAM UUO 



MEMORY MANAGEMENT UUO'S 

UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING, 

ADDRESS CONVERSION, ETC... 



OPDEF 
OPDEF 
OPDEF 
OPDEF 
OPDEF 
OPDEF 
OPDEF 



MAPMEM 
MEMZRO 
MEMSEG 
MAPADR 
MAPCNK 
MAPSET 
MAPPNT 



[3788 
C37B8 
C37B8 
C37B8 
[3788 
C3788 
[37B8 



OBI 2 

12B12 

11B12 

13B12 

15B12 

14B12 

17B12 



4J 
23 

2: 

2] 
22 
21 
22 



MAP MEMORY 

ZERO MEMORY 

SETUP MEMORY SEGMENT 

VIRTUAL TO PHYSICAL ADR CONVERT 

MAP MEMORY CHUNK 

SET KI10 EXEC PAGE MAP 

PRINT MEMORY MAP 



DEVICE CODE MODIFICATION UUO 

ALLOWS THE MODIFICATION OF lOT'S TO ONE DEVICE TO BE CHANGED TO 

lOT'S TO A DIFFERENT DEVICE CODE. 



OPDEF 
OPDEF 



MODPCU 
MODPCP 

IFNDEF 
IFNDEF 



[3788 17812! 23 
[37881681 2! 2] 



.•MODIFY PERHIPERAL CODE, USER 
.•MODIFY PERHIPERAL CODE, PROGRAM 



M0DDVL,<M0DDVL==8EGIN> 
M0DDVU,<M0DDVU==8EGIN> 



.•"DIAMON" FILE SELECTION AND READ UUOS 



OPDEF FSELECT [3788! 581 2! 43 

OPDEF FREAD [3788! 681 2! 43 

OPDEF FRD36 [3788! 781 2! 43 

OPDEF FRD8 [3788! 1081 2! 43 



FILE SELECTION 

FILE READ - ASCII DATA 

FILE READ - 36 BIT DATA 

FILE READ - 8 BIT DATA 



;KI10 ONLY UUO FOR PRINTING MARGIN VALUES 

OPDEF PNTMGN [3788! 1681 2! 23 ; PRINT MARGIN VALUE 



IFNDEF 



XLIST 
KLOLD,<LIST 



DEFINS MACRO X53B(1242) 19:36 12-Sep-85 
PARAM KLM 18-SeD-79 17:16 



Page 
ERROR 



HANDLING UUO DEFINITIONS. SEPT 18.1979 



SEQ 0107 



DEF 



DEFINS 
PARAM 

511 
512 
513 
5U 
515 
516 
517 
518 
519 
520 
521 
522 
523 
52A 
525 
526 
527 
528 
529 
530 
531 
532 
533 
53A 
535 
536 
537 
538 
539 
5A0 
5A1 
5A2 
5A3 
%U 
545 
546 
54 7 
548 



MACRO X53B(1242) 19:36 12-Sep-85 Page 7 



KLM 



18-Sep-79 17:16 



036000 000000 

035000 000000 

035040 000000 

035100 000000 

034000 000000 



ERROR HANDLING UUO DEFINITIONS. SEPT 18,1979 

SUBTTL ERROR HANDLING UUO DEFINITIONS, SEPT 18,1979 

***«********************«***t****«******************* *********** «■***«* 

ERROR HANDLER PARAMETERS 
************«'-.******************************************* ******t****** 



SEQ 0107 



QPDEF 
OPDEF 
QPDEF 
OPDEF 
OPDEF 



ERUUO 

ERLOOP 

nLPI 

'^r,LP2 

PTUO 



[36883 

[35883 

[358811812] 

[3588128123 

[34883 



ERROR CALL UUO 

ERROR LOOP, CHECKS PC, REPT. REPT1 , ERROR 

ERROR LOOP U PC'S MATCH 

ERROR LOOP IF ANY ERROR 

REPEAT LOOP UUO 



.-THE ERROR HANDLER MACROS 

;A MACRO TO REPORT AN ERROR AND LOOP 

DEFINE ERROR (ADR, FORMAT, COR?CT, ACTUAL, F ,D,ERR)< 

SALL 
ERUUO FORMAT, [T,,[SIXBIT\F' \3 
CORECT,, ACTUAL 
[S1XBIT\D' \3,,ERR3 

XALL 
ERLOOP ADR ;IF ERROR, LOOP TO ADR 



;A MACRO TO REPORT AN ERROR AND NOT LOOP 

DEFINE ERR0R1 (FORMAT, CORECT, ACTUAL. F.D.ERRX 

ERUUO FORMAT, [T,,[SIX8IT\F' \3 
CORECT,, ACTUAL 
CSIXBITVD* \3..ERR3 



SALL 



XALL> 



>;END OF KLOLD CONDITIONAL 

XLIST 
LIST 



OEFINS MACRO X53B(1242) 19:36 12-Sep-85 Page 1 



nuToni Akl^ nrcoArrij crnoArc 



CCCJT 1Q 1Q7Q 



ccn nino 



r 



r" 



:Q 0095 



DEFINS 
FIXED 

5A9 
550 
551 
552 
553 
554 
555 
556 
557 
558 
559 
560 
561 
562 
563 
56A 
565 
566 
567 
568 
569 
570 
571 
572 
573 
574 
575 
576 
577 
578 
579 
580 
581 
582 
583 
58A 
585 



MACRO X53B(1242) 19:36 12-Sep" 
KLM 18-Sep-79 17:18 



030000 



030000 25A 00 1 00 027776 

030001 25A 00 00 000000* 

030002 254 00 1 00 027774 

030003 254 00 1 00 027774 

030004 254 00 00 000000* 

030005 254 00 00 030000 

030006 254 00 00 030000 

030007 

030007 254 00 1 00 027775 

030010 254 00 00 000000* 

030011 254 00 1 00 ^27117 

030012 OuJOOO Of^OOOO 

030013 254200 030000 

030014 254200 030000 

030015 254200 030000 

030016 254200 030000 

030017 254200 030000 



85 Page 1 

•FIXED* FIXED CONTROL AND DISPATCH STORAGE. SEPT 18,1979 

SUBTTL •FIXED* FIXED CONTROL AND DISPATCH STORAGE. SEPT 18J979 

LOC 30000 

.•PROGRAM STARTING ADDRESSES 

.-THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS 
.-NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE 
.-OF END OF PASS. POWER FAILURE. DDT START, RE-ENTERINGCTYPICALLY USER 
.-NODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS. 



SEQ 0108 



BEGIN: JRST 

tSTART: JRST 

DIAGMN: JRST 

SYSEXR: JRST 

SFSTRT: JRST 

PFSTRT: JRST 

REENTR: JRST 



SRTDDT; 
DDTSRT: 

BEGIN1: 
SBINIT: 
RETURN: 



JRST 

JRST 
JRST 




START1: SADR7 

START2: SADR8 

START3: SADR9 

START4: SADRIO 

STARTS: SADR11 



aMODLNK 
START 

aLDLNK 

aLDLNK 

SADR1 

SADR2 

SADR3 

aDDTLNK 

START A 
SSU6LNK 



STAND-ALONE START 

MODE CHECK STARTING ADDRESS 

DIAGNOSTIC MONITOR START 

SYSTEM EXERCISER START 

SPECIAL FEATURE START 

POWER FAIL RESTART 

REENTER START (USUALLY USER MODE ONLY) 

COMMONLY MISTAKEN NAME FOR "DDTSRT" 
DDT START 

LOOP START (END OF PASS COMES HERE) 

PMGINT LINKAGE 

RETURN ADDRESS STORAGE 

OPTIONAL STARTING ADR/INSTRUCTIONS 



n nnoA DEFINS MACRO X53B(1242) 19:36 12-Sep-85 Page 2 

Q 0096 FIXFH KIM lA-';i.n-7q 17!lR tFIfFD* FiyPO r 



nNTRni AMH nKPATTM <;TnBAr;F QFPr 1« 1070 



CFO nino 



3 0096 



DEFINS 
FIXED 

586 
587 
588 
589 
590 
591 
592 
593 
59A 
595 
596 
597 
598 
599 
600 
601 
602 
603 
60A 
605 
606 
607 
608 
609 
610 
611 
612 
613 
6U 
615 
616 
617 
618 
619 
620 
621 
bZ2 
62Z 
624 
625 



MACRO X53B(1242) 19:36 12-Sep-85 Page 2 

KLM 18-Sep-79 17:18 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979 

********************************************************************** 

PROGRAM FIXED PARAMETER AREA 



SEO 0109 



DEFIN 
RH20 



0:>0020 
030021 
030022 
030023 
030024 
030025 
030026 
030027 
030030 
030031 
030032 
030033 
030034 
030035 
030036 



030037 
030040 
030041 
030042 
030043 
030044 
030045 
030046 
030047 
030050 
030051 
030052 
030053 
030054 
030055 
030056 



444662 605500 

605664 000000 

331214 654534 

000000 000000 

000000 000000 
000000000000# 

000000 000003 

000000 030577 

000000 030577 

777777 777777 

777777 777777 

000000 000000 

777777 777777 

000000 000000 

000000 000000 



000000 
000000 
000000 
777777 
000000 

oonooo 

GuJOOO 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 



000000 
000000 
000000 
777777 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 



PNTNAM: 

PNTEXT: 

RANDBS: 

SWTEXR: 

ITRCNT: 

SPNAME : 

$PVER: 

SnODVL : 

$M0DVU: 

$EMODE : 

$UnODE : 

SDSKUP: 

SWAP: 

PAREA7: 

PAREA8: 



PAREA3 

PAREA4 

PAREA1 

PAREA2 

ITERAT 

PGMNAM 

MCNVER,,DECVER 

MODDVL 

MODDVU 

IFNDEF 

IFNDEF 

IFNDEF 

•FNDEF 

PAREA5 

PAREA6 



SIXBIT PROGRAM NAME 
SIXBIT PROGRAM EXTENSION 
RANDOM BASE NUMBER 
SYSTEM EXERCISER SWITCHES 
PROGRAM ITERATIONS 
POINTER TO PROGRAMS NAME 
MCN e DEC VERSION LEVEL 
DEVICE CODE CHANGE LOWER LIMIT 

CODE CHANGE UPPER LIMIT 

EXCASB,<-1> 

USRASB,<-1> 

DSKUPD,<-1> 



.DEVICE 

EXCASB,<0> IFDEF 

USRAS8,<0> IFDEF 

DSKUPD,<0> IFDEF 

MEMMAP,<0> IFDEF MEMMAP;<-1> 
; OPTIONAL PARAMETER 
.'OPTIONAL PARAMETER 



EXEC ALLOWED 
USER ALLOWED 
DISK UPDATE MODE 
ALLOW MEMORY RTNS 



********************************************************************** 

PROGRAM VARIABLE PARAMETER AREA 

********************************************************************** 



USER: 
KAIFLG: 
KLFLG: 
HONFLG: -1 
MONCTL; 
NONTEN: 
CLOCKF: 
CONSW: 
PASCNT: 
RUNFLG: 
TESTPC: 
ERRPC : 
ERRTLS: 
TICKS: 
MARGIN: 
SONETM: 












= EXEC, -1 = USER MODE FLAG 
PROCESSOR TYPE, = KA10, -1 = KI10 
PROCESSOR TYPE, = KA/KI, -1 = KLIO 
DIAG MONITOR SPECIAL USER FLAG 
D1A6 MON/SYS EXR FLAG 
-1= LOADED BY 10 
CLOCK TICKED FLAG 
CONSOLE SWITCH SETTINGS 
PROGRAM PASS COUNT 
PROGRAM RUN FLAG 
SUBTEST PC 
ERROR PC 
ERROR TOTALS 
PROGRAM RUNNING TIME 
KIIO MARGIN WORD VALUE 
SUBROUTINE INITIALIZATION FLAG 



[" 



I 0097 



DEFINS MACRO ):53B(1242) 19:36 12-Sep-85 Page 3 



r t \/cr\ rrifciTfini 



Akir\ isrrnAmi rmnMrr 



rrr\T ^ o i rtin 



e*c/\ A< < A 



DEFIN! 



DEFINS 
FIXED 

626 
627 
628 
629 
630 
631 
632 
633 
63A 
635 
636 
637 
638 
639 
6A0 
6A1 
6A2 
6A3 
6AA 
6A5 
6A6 
6A7 
6A8 
6A9 
650 
651 
652 
653 
65A 
655 
656 
657 
658 
659 
660 
661 
662 
663 
66A 
665 
666 
667 
668 
669 
670 
671 
672 
673 
67A 
675 
676 



MACRO X53B(12A2) 19:36 12-Sep-85 Page 3 

KLM 18-Sep-79 17:18 *FIXED* FIXED CONTROL AND DISPATCH STORAGE. SEPT 18,1979 



SEQ 0110 



030057 
030060 
030061 
030062 
030063 
03006A 
03006A 
030065 
030065 
030066 
030067 
030070 
030071 
030072 
030073 
03007A 
030075 
030076 
030077 
030100 
030101 
030102 

030103 
030104 
030105 



030106 
030107 
030110 
030111 
030112 

030113 
0301 U 

030115 
030116 
030117 
030120 
030121 
030122 
030123 



o37 12 00 OOOOOA 
254 00 00 030010 
037 16 00 000004 
000000 030007 
000000 030007 

350 00 17 000000 



263 17 
255 00 
255 00 
255 00 
255 00 
255 00 



255 00 
255 00 



255 00 
255 00 



255 00 
255 00 



255 00 
254 04 



00 000000 
00 000000 
00 000000 
00 000000 
00 000000 
00 000000 
00 000000 
00 000000 
00 000000 
00 000000 
00 000000 
00 000000 
00 000000 
00 030102 



000000 000000 
000000 000000 
000000 000000 



000000 
000000 
000000 
000000 
000000 

000000 
000000 

000000 
000000 
000000 
000000 
000000 
000000 
000000 



000000 
000000 
000000 
000000 
000000 

000000 
000000 

000000 
000000 
000000 
000000 
000000 
000000 
000000 



; ************************************************ik**t* ***************** 

.•SPECIAL PROGRAM DISPATCH ADDRESSES 

• ************************************************************* ********* 



BEGEND 
SBEND1 
SBEND2 
CNTLC: 
ALTMGO 
CP0PJ1 
UUOSKP 
CPOPJ : 
UUOEXT 
UUORTN 
SUORTX 
SUUOER 
SITRHL 
IITRXI 
SUSRHL 
SRSRTX 
SRSRTY 
RESRT1 
RESRT2 
SPARER 
ERMORE 



SPSHER: 

ITRCH1: 





ENDUUO 

JRST 

EOPUUO 

SADR5 

SADR6 

AOS 



BEGIN1 



(P) 



: RTN 


























HALT 



END OF PASS 

KEEP RUNNING PROGRAM 

END OF PROGRAM - NO RETURN 

CONTROL C XFER ADDRESS 

ALTMODE XFER ADDRESS 

SKIP RETURN 

SKIP RETURN FROM UUO 

NON-SKIP REGULAR RETURN 

UUO RETURN 

ADDITIONAL USERS UUO ROUTINE 

ADDITIONAL UUO LINKAGE 

INITED AS (JRST SUOERX) 

ADDITIONAL INTE.9RUPT LINKAGE 



ADDITIONAL POWER FAIL LINKAGE 
INITED AS (JRST RESRTX) 

I I 

ADDITIONAL PARITY ERROR LINKAGE 
ADDITIONAL ERROR HANDLER LINKAGE 
IMPROPER TRANSFER HALT 

INITED AS (JRST PSHERR) 

PC S FLAGS OF CURRENT INTERRUPT 

INITED AS (JRST SITRCD 



; ************************************************* ***«r ***************** 

.'PROCESSOR CONTROL STORAGE 

• *******************************************************«:«*********«*** 



SACCO: 

$SVPI : 

SSVAPR: 

SSVPAG: 

SSPAGI: 

SSVUUO: 

$SVUPC: 

REPTU: 

SCOPE: 
j;CORFLG:0 

XCOREC: 

XACTFL: 

XACTUL: 

XDISCR: 



INTERRUPT SAVED ACO 

INTERRUPT SAVED PI 

INTERRUPT SAVED APR 

INTERRUPT SAVED PAG (DATAI) 

INTERRUPT SAVED PAG (CONI) 

.•CURRENT USERS UUO 

;PC OF CURRENT USERS UUO 

REPEAT UUO ITERATIONS 

ERROR HANDLER SCOPE LOOP FLAG 

" CORRECT FLAG 

" CORRECT DATA 

" ACTUAL FLAG 

" ACTUAL DATA 

" DISCREPENCY DATA 



DEFINS MACRO X53B(1242) 19:36 12-Sep-85 Page 4 



DEFINS 
FIXED 

677 
678 
679 
680 
681 
682 
685 
68A 
685 
686 
687 
688 
689 
690 
691 
692 
693 
69A 
695 
696 
697 
698 
699 
700 
701 
702 
703 
70A 
705 
706 
707 
708 
709 
710 
711 
712 
713 
7K 
715 
716 
717 
718 
719 
720 
721 

ni 

723 
721^ 
725 
726 
717 
728 
729 



030142 000000 000000 

030U3 000000 000000 

030U4 000000 000000 

030145 000000 000000 
030146 



030217 
030220 
030221 
030222 
030223 
030224 
030225 
030226 
030227 
030230 
030231 
030232 
030233 
030234 
030235 
030236 
030237 
030240 
030241 



000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 

mooo 

000000 



000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 

ocoooo 

000000 
000000 
000000 
000000 
000000 
000000 



MACRO X53B(1242) 19:36 12-Sep-85 Page 4 

KLM 18-Sep-79 17:18 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979 

UUO DISPATCH TABLE 
********************************************************************** 

XLIST 
LIST 

030124 030070 030070 UUODIS: LUU01,,$UU0ER 

030125 030070 030070 LUU03,,LUU02 

030126 030070 030070 LUU05,,LUU04 

030127 030070 030070 LUU07,.LUU06 

030130 030070 030070 LUU011 ,,LUU010 

030131 030070 030070 LUU013,,LUU012 

030132 030070 030070 LUU015,,LUU014 

030133 030070 030070 LUU017,.LUU016 

030134 030070 030070 LUU021 ,,LUU020 

030135 030070 030070 LUU023,.LUU022 

030136 030070 030070 LUU025,.LUU024 

030137 030070 030070 LUU027,,LUU026 

030140 000000* 000000* LUU031..LUU030 

030141 030070 030070 LUU033.,LUU032 



SEQ 0111 



********************************************************************** 

MEMORY MANAGMENT STORAGE 

********************************************************************** 



l>F22f : 

MAPNEU: 

HEMTOT: 

MEMLOW: 

HEMSIZ: BLOCK *D41 



DF10 CONTROL FLAG, = 18, -1 = 22 BIT 

MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING 

TOTAL MEMORY SIZE IN K (1024.) 

LOWEST USABLE MEMORY 

MEMORY SEGMENT POINTER TABLE 



; ********************************************************************** 

;PRINT CONTROL STORAGE 

• ********************************************************************** 



PNTFL6: 

PNTENB: 

PDISF: 

PNTINH: 

PNTSPC: 

OPTIME: 

STWCNT: 

SDVOFF: 

TTYFIL: 

TTYSPD: 

STTCHR; 

SCHRIN: 

STYPNB: 

SCRLF: 

$TABF : 

$FFF: 

$VTF: 

USRLFF: 5 

USRCRF: 



PRINT FLAG, -1 WHILE IN PRINT ROUTINE 

PRINT ENABLE 

PRINT DISABLED FLAG 

INHIBIT PRINT INPUT CHECKS 

PRINT SPACE CONTROL 

TYPE-IN WAIT TIME 

TIME WAITED 

LOGICAL DEVICE INITED FLAG 

TTY EXEC FILLERS FLAG 

TTY EXEC BAUD RATE 

ACTUAL TYPED IN CHAR 

UPPER CASED & PARITY STRIPPED CHAR 

TYPED IN NUMBER 

FREE CR/LF FLAG 

TAB CONVERSION FLAG 

FORM FEED CONVERSION FLAG 

VERTICAL TAB CONVERSION FLAG 

USER LF FILLERS 

USER CR FILLERS 



DEFINS MACRO X53B(1242) 19:36 12-Sep-85 Page 5 



DEFINS 


MACRO 


FIXED 


KLM 


730 




731 




732 




733 




73A 




735 




736 




737 


030242 


738 


030242 


739 


030243 


7A0 




741 


030243 


7A2 


030244 


7A3 


030245 


7AA 


030246 


745 


030247 


746 


030250 


747 


030250 


748 


030251 


749 


030252 


750 


030253 


751 


030254 


752 


030255 


753 


030256 


754 


030257 


755 


030260 


756 


030261 


757 


030262 


758 


030263 


759 


030264 


760 




761 




762 




763 




764 




765 


030265 


766 


030270 


767 


030271 


768 


030272 


769 




770 




771 




m 




111 




774 


030274 


775 


030277 


776 


030300 


m 


030301 



MACRO X53B(1242) 19:36 12-Sep-85 Page 5 

18-Sep-79 17:18 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979 

;THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED 
;T0 FACILITATE PRINTING AND ARE CALLED AS FOLLOWS: 

MOVE I NAME 

PNTA ;0R PNTAF 



SEQ 0112 



015 012 000 000 000 



015 012 015 012 000 

054 000 000 000 000 

056 000 000 000 000 
040 000 000 000 000 
Oil 000 000 000 000 

055 000 000 000 000 
053 000 000 000 000 
052 000 000 000 000 
IOC 000 000 000 000 

050 000 000 000 000 

051 000 000 000 000 
007 0000000000 

077 000 000 000 000 

057 000 000 000 000 
044 000 000 000 000 
000000 000012 
000000 000040 
000000 000012 



60 62 51 56 64 00 
60 56 64 00 00 00 



60 62 51 56 64 00 
60 56 64 00 00 00 



CRLF: 

/ 

CRLF2; 



ASCII/ 
ASCII/ 



/ 

COMMA: ASCII/./ 

PERIOD: ASCII/./ 

SPACE: ASCII/ / 

TAB: ASCII/ / 
MINUS: 

HYPEN: ASCII/-/ 

PLUS: ASCII/+/ 

AST: ASCII/*/ 

ATSIN: ASCII/a/ 

LFP: ASCII/(/ 

RTP: ASCII/)/ 

BELL: BYTE (7) 007 

QUEST: ASCII/?/ 

SLASH: ASCII!/! 

DOLLAR: ASCII/$/ 

RADIX: *D10 

RADLSP: 40 

RADLSC: *D10 



.•DECIMAL PRINT RADIX 
.•DECIMAL PRINT LEADING CHAR 
.•DECIMAL PRINT LEADING CHAR COUNT 



*********************««*«***********t****************** *************** 
USER MODE OUTPUT FILE INFORMATION 



$OBUF : BLOCK 3 

$OUTNM: SIXBIT /PRINT/ 

SOUTEX: SIXBIT /PNT/ 

BLOCK 2 



.•LOGICAL FILE OUTPUT BUFFER HEADER 

;FILE NAME 

.•FILE NAME EXTENSION 



********************************************************************** 
DISK UPDATE MODE FILE INFORMATION 

SIBUF: BLOCK 3 

$INNM: SIXBIT /PRINT/ 

$INEXT: SI>!BIT /PNT/ 

BLOCK 2 



PIf.iNS MACRO X53B (12421.1?: 36, 12-SeD-85 Page. 6 



r 



hEP IMC 



DEFINS 
FIXED 

778 
779 
780 
781 
782 
783 
78A 
785 
786 
787 
788 
789 
790 
791 
792 
793 
79A 
795 
796 
797 
798 
799 
800 
801 
802 
803 
804 
805 
806 
807 
808 
809 
810 
811 
812 
813 
814 
815 
816 
817 
818 
819 
820 
821 
822 
823 



MACRO X53B(12A2) 19:36 12- 
KLM 18-Sep-79 17:18 



030303 invn 030303 

03030A 

030504 000000 000000 



030505 000000 000000 



030506 000000 000000 

030507 000000 000000 



03051 C 000000 000000 



030511 000000 000000 



030512 000000 000000 

030513 000000 000000 

030514 000000 000000 



030515 000000 000000 



Sep-85 Page 6 

•FIXED* FIXED CONTROL AND DISPATCH STORAGE. SEPT 18,1979 

********************************************************************** 

PUSHDOWN LIST CONTROL INFORMATION 
********************************************************************** 

PLIST: PLIST-PLISTE..PLIST 
PLISTS: BLOCK 200 



SEQ 0113 



PLISTE: 



;END OF PUSHDOWN LIST 



POWER LINE CLOCK FREQUENCY FLAG 
********************************************************************** 



CYCL60: 



;0 = 60, -1 = 50 CYCLE 



********************************************************************** 

KL10 CACHE CONTROL FLAGS 
********************************************************************** 



CSHFLG: 
CSHMEM: 



.•ALLOW CACHE IF 

.•CACHE MEMORY SEGMENTS IF 



********************************************************************** 

NUMBER INPUT DIGIT FLAG 

********************************************************************** 



TTNBRF: 



;-1 IF ANY DIGIT TYPED 



********************************************************************** 

KL10 I KI10 "INHPAG" SWITCH PAGING PREVENTION 

********************************************************************** 



PVPAGI: 



lU NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION 



********************************************************************** 

ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS 
********************************************************************** 



XERHII: 
J[ERHI2: 
XERHI3: 



.•IF NON-ZERO. XCT'D AT START OF XERUUO 
:U NON-ZERO, XCT'D AT END OF XERUUO 
lU NON-ZERO. XCT'D AFTER "PC" OF XERUUO 



********************************************************************** 

SPECIAL USERS UUO INTERCEPT INSTRUCTION 
********************************************************************** 



S$UUO: 



;IF NON-ZERO. XCT'D AT START OF SUORTN 



DEFINS 
END 



PEFJNS MACRO X53B(1242). 19:36. 12-Sep-85 Page 7 



r\cc tkic 



DEHNS 
FIXED 



1^ 



MACRO X55B(12A2) 19:36 12- 
KLM 18-Sep-79 17:18 



030516 000000 000000 



030517 000000 000000 



030520 000000 000000 



030521 000000 000000 



030522 000000 000000 

030523 OOOOOO 000000 



03052A OOOOOO OOOOOO 



030525 OOOOOO OOOOOO 



030577 

030577 OOOOOO OOOOOO 



Sep-85 Page 7 

♦FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979 

**********»**************»»»»**»*****»*********tt**** ***♦*»****♦♦♦♦♦•• 

USER MODE MONITOR TYPE FLAG 



MONTYP: 



;0 = T0PS10, -1 = TOPS20 



SPECIAL USERS MUUO INTERCEPT INSTRUCTION 



SSMUUO: 



;IF NON-ZERO, XCT'D AT START OF MUUOER 



SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION 



$$OUTER:0 



:1F NON-ZERO, XCT'D AT END OF USER MODE ERROR 



'SWITCH" CALL USAGE CONTROL 



$$TOG6LE:0 



:1F NON-ZERO, USE C(CONSW) FOR SWITCHES 



A******************-*************************************************** 

SPECIA' UScRS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS 



$$TAX1: 
$$TAX2: 



;Ir NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL 
;IF NON-ZERU, XCT'D AT END OF ALTMODE SWITCH CALL 



; ****«-******it*v ******************************************************** 

;SM10 (K5'10) PROCESSOR TYPE FLAG 



SM10: 



:lf -1 THIS IS A KS-10 



***** «*t***************4r*«******«;*4***1^** ******************* t •*•**#*** 

RIGHT HALF SWITCHES PROMPT TABLE A.i: DRESS 
********************************************************************** 



SWPfAS: 



;0 = NO PROMPT, ADR = ADR OF SIXBIT PROMPT TABLE 



; ********************************************************************** 

.•SPECIAL FUTURE EXPANSION ROOM 

; ************************************************»,********************* 
; ********************************************************************** 

;END OF FIXED STORAGE 

• ********************************************************************** 



ENDFIX: 



30577 



;END OF FIXED STORAGE 



SEQ 01 U 



DEFINS f 
END l> 

ABORT 

ALTMGO 

ANXM 

AROV 

AROVU 

AST 

ATNEN 

ATSIN 

ATTN 

ATTNEN 

BEGEND 

BEGIN 

BEGIN1 

BELL 

BIS 

BLKADR 

BLKCNT 

BLKSIZ 

CBLK 

CCA 

CCWPTR 

CCYL 

CFLUSH ( 

CHAIN 

CHERR 

CHNHLT 

CHNOFF 

CHNON 

CINVAL ( 

CLK 

CLKCLR 

CLKDIS 

CLKENB 

CLKU 

clockf 

CL0G1 

CL0G2 

CL0G3 

CLOGA 

CLOKOP ( 

CNTLC 

COMMA 

CON ID 

CONSW 

CPOPJ 

CP0PJ1 

CRLF 

CRLF2 

CRYO 

CRYl 

CSECT 

CSHFLG 

CSHMEM 

CSURF 

CWRTBI ( 



r 



; DEFINS MACRO 1t53BCl242) 19:36 12-SeD-85 Paae 1 



ncc iilic 



r 



r 



)2 



OEFINS 

RH20 

877 



MACRO X558('I242) 19:36 12-Sep-85 Page 1 



DEF 



9-Sep-85 09:49 



*Fi3eD* fixed control and dispatch storage, sept 18.1979 
PAGE 



SEQ 0115 



DEF INS 
END 

LFP 
LINSTF 

lint 

LIOCLR 

LIOPFE 

LKNTRP 

LKTRP 

LLACBL 

LLDUSB 

LLPRCN 

LHUUO 

LMliJOP 

LNGUC 

LNXMEN 

LNXMER 

LOOPER 

LPAREN 

LPARER 

LPDOVT 

LPFUPC 

LPGFTR 

LPICHI 

LPICH2 

LPICH3 

LPICHA 

LPICH5 

LPICH6 

LPICH7 

LPICHA 

LPICLR 

LPIIP1 

LPIIP2 

LPIIP3 

LPIIPA 

LPIIP5 

LPIIP6 

LPIIP7 

LPIOFF 

LPION 

LPNTRP 

LPRCH1 

LPRCH2 

LPRCH3 

LPRCHA 

LPRCH5 

LPRCH6 

LPRCH7 

LPTRP 

LPWRFE 

LPWRFL 

LR 

LREQSE 

LROCLR 

LSBSEN 

LSBUSE 



r>FFIM<; MAfRn YS^RM?/.?^ \Q-'^f, IP-^en-RS Pane 1-1 



i\rr tkir 



r" 



DEFINS 
RH20 

878 
879 
880 
881 
882 
883 
884 
885 



MACRO X55B(1242} 19:36 12-SeD-85 Page 1-1 

DEF 9-Sep-85 09:A9 MASSBUS DEVICE DEFINJTIOM FILE 



SEQ 0116 



000001 
000000 



SUBTIL MASSBUS DEVICE DEFINITION FILE 

RH20=1 .-ASSEMBLE FOR THE RH20 

RH10=0 

XLIST 

LIST 

PAGE 



DEFINS 


MA 


END 


MA 


PNTDSF 


03 


PNTENB 




PNTEXT 




PNTFL6 




PNTHU 


01 


PNTHUF 


03 


PNTINH 




PNTLPT 




PNTNGN 


03 


PNTMSF 


03 


PNTMS6 


03 


PNTNAM 




PNTNM 


03 


PNTOCF 


03 


PNTOCS 


03 


PNTOCT 


03 


PNTOTF 


03 


PNTSIX 


03 


PNTSPC 




PNTSXF 


03 


POSADR 




POSCNT 




PS I XL 


03 


PSIXLF 


03 


PSIXM 


03 


PSIXMF 


03 


PSP 


03 


PSPF 


03 


PTCRD 




PUT 


2(. 


PVPAGI 




PUFCLR 




Q 




QUEST 




ROD 




R10D 




R11D 




R12D 




R13D 




RUD 




R15D 




R16D 




R17D 




RID 




R2D 




R3D 




RAD 




R5D 




R6D 




R7D 




RADIX 




RADLSC 




RADLSP 




RAE 




RAECLR 





DEFINS MACRO 1538(124?) 19:36 1?-Seo-85 Paa* 1-? 



r 



r" 



DEFINS MACRO X53B(1242) 19:36 12-Sep-85 Page 1-2 

RH20 DEF 9-Sep-85 09:49 MASSBUS DEVICE DEFINITION FILE 



886 
887 
888 
889 
890 
891 
892 
893 
894 
895 
896 
897 
898 
899 
900 
901 
902 
903 
904 
905 
906 



SEO 0117 



;* CONDITIONAL ASSEMBLY NOTES 



COmENT $ 



THE CODE IN THIS FILE IS ASSEMBLED BASED ON SWITCHES DEFINED 
IN THE PROGRAMS TITLE FILE. THEY ARE: 



RH20==1 
RH10==1 



.•ASSEMBLE CODE FOR THE RH20 
.•ASSEMBLE CODE FOR THE RHIO 



NOTE: 
S 

XLIST 
LIST 

XLIST 

LIST 

PAGE 



DO NOT SELECT MORE THAN 1 CONTROLLER AT A TIME 



DEFINS 
END 

SITRXI 

tLPAPE 

$MMAP 

$MODVL 

$MODVU 

tOBUF 

$ONETM 

$OUTEX 

$OUTNM 

SPARER 

tPNAME 

SPSHER 

$PVER 

$RSRTX 

$RSRTY 

tSPAGI 

SSTART 

$SVAPR 

SSVPAG 

SSVPI 

$SVUPC 

SSVUUO 

$TABF 

STTCHR 

STWCNT 

STYPNB 

SUMODE 

SUORTX 

$USRHL 

SUUOER 

$VTF 

XACTFL 

XACTUL 

XCOREC 

XCORFL 

XDISCR 

XERHI1 

XERHI2 

XERHI3 

.JB41 

.JBAPR 

•JBCNI 

.JBDDT 

.JBFF 

.JBOPC 

.JBREL 

.JBREN 

.JBSA 

.JBSYM 

.JBTPC 

.JBUSY 

.J6UU0 

.JBVER 



SEQ 0105 



DEFINS MACRO 
RH20 DBF 

907 
908 
909 
910 
911 
912 
913 
914 
915 
916 
917 
918 
919 
920 
921 
922 
923 
92A 
925 
926 



X53B(1242) 19:36 12-Sep-85 Page 1-3 

9-Sep-85 09:49 MASSBUS DEVICE DEFINITION FILE 



SEQ 0118 



Dl 

Dl 



;* DEFAULT ASSEMBLY SWITCHES 



COMMENT $ 



THIS CODE DEFINES, AND SETS TO ZERO, ALL SYMBOLS THAT ARE 

NECESSARY BUT MAY NOT HAVE BEEN SET UP BY THE USER 

IN HIS TITLE FILE. 

$ 

XLIST 

LIST 

IFNDEF RH20,<RH20==0> 
IFNDEF RH10,<RH10==0> 

XLIST 
LIST 

PAGE 



SEQ 0106 



DEFINS MACRO X53B(1242) 19:36 12-Sep-85 Page 1-4 



DF 



DEFINS 


MACRO X53B(1242) 19:36 12-SeD-85 Page 1 


-4 






RH20 


DEF 9-Sep-85 09:49 


MASSBUS 


DEVICE 


DEFINITION FILE 




927 
928 
929 
930 








SUBTTL 


RH20 BIT DEFINITIONS 






S*; ********************************************************************** 


931 






;* DEVICE CODES 


FOR THE RH20 




932 






S*; ********************************************************************** 


933 














934 


540000 


000000 


RHO= 


540000, 


,0 


;1ST CONTROLLER 


935 


544000 


000000 


RH1 = 


544000, 


,0 


;2ND CONTROLLER 


936 


550000 


000000 


RH2= 


550000, 


,0 


;3RD CONTROLLER 


937 


554000 


000000 


RH3= 


554000, 


,0 


;4TH CONTROLLER 


938 


560000 


000000 


RH4= 


560000, 


,0 


;5TH CONTROLLER 


939 


564000 


000000 


RH5= 


564000, 


,0 


;6TH CONTROLLER 


9A0 


570000 


000000 


RH6= 


570000, 


,0 


;7TH CONTROLLER 


9A1 
9A2 
9A3 


574000 


000000 


RH7= 


574000, 


,0 


;8TH CONTROLLER 






S*; ********************************************************************** 


944 






;* CONO BIT ASSIGNMENTS FOR THE 1 


?H20 


945 
946 
947 






S*; ********************************************************************** 




004000 


RAECLR= 


4000 




;RE6ISTER ACCESS ERROR CLEAR 


948 




002000 


RHCLR= 


2000 




^MASTER CONTROLLER CLEAR 


949 




001000 


XECLR= 


1000 




; TRANSFER ERROR CLEAR 


950 




000400 


MBE= 


0400 




;MASSBUS ENABLE 


951 




000200 


RCLPA= 


0200 




;RESET COMMAND LIST POINTER 


952 




000100 


DSCR= 


0100 




•DELETE SECONDARY COMMAND REGISTER 


953 




000040 


ATTNEN= 


0040 




jATTENTION INTERRUPT ENABLE 


954 




000020 


STOP= 


0020 




•STOP TRANSFER 


955 




000010 


DONCLR= 


0010 




•CLEAR DONE FLOP 


956 
957 




000007 


PIA= 


0007 




■PI CH ASSIGNMENT FIELD 


w J f 

958 






S*; *********************************************************************** 


959 






;* CONI 


BIT ASSIGNMENTS FOR THE RH20 


960 
961 
962 






S*; ****************************************************************t***** 




400000 


D6PE= 


400000 




•DATA BUSS PARITY ERROR 


963 




200000 


DREXC= 


200000 




•DRIVE EXCEPTION ERROR 


964 




100000 


LN6WC= 


100000 




•LONG WORD COUNT STATUS 


965 




040000 


SHTWC= 


040000 




SHORT WORD COUNT STATUS 


966 




020000 


CHERR= 


020000 




M-BOX ERROR 


967 




010000 


DRE= 


010000 




DRIVE RESPONSE ERROR 


968 




004000 


RAE= 


CO'.OOO 




REGISTER ACCESS ERROR 


969 




992000 


CHNHLT= 


002000 




M-BOX HALTED 


970 




001000 


OVRRUN= 


001000 




OVERRUN ERROR 


971 




000400 


MBCENB= 


000400 




MASSBUS ENABLED 


972 




000200 


ATTN= 


000200 




ATTENTION FROM DRIVE 


973 




000100 


SCRFUL= 


000100 




SECONDARY CMD REG FULL 


974 




000040 


ATNEN= 


000040 




ATTENTION INTERRUPT ENABLED 


975 




000020 


PCRFUL= 


000020 




PRIMARY CMD REG FULL 


976 




M^'^^ 


DONE= 


000010 
000007 




COMMAND DONE 


977 




000007 


PIA= 




PIA ADDRESS FIELD 


978 








PAGE 







SEQ 0119 



DFl 
DFI 



DEFINS MACRO X53B(1242) 19:36 12-Sep-85 Page 1-5 



I • V V ^ft *«« 



DFF 



DEFINS 
RH20 

979 

980 

981 

982 

983 

984 

985 

986 

987 

988 

989 

990 

991 

992 

993 

99A 

995 

996 

997 

998 

999 

1000 

1001 

1002 

1003 

100A 

1005 

1006 

1007 

1008 

1009 

1010 

1011 

1012 

1013 

10U 

1015 

1016 

1017 

1018 

1019 

1020 

1021 

1022 

1023 

102A 

1025 

1026 

1027 

1028 

1029 

1030 

1031 



MACRO );53B(12A2) 19:36 12-Sep-85 Page 1-5 

DEF 9-Sep-85 09:A9 RH20 BIT DEFINITIONS 



SEQ 0120 



DFR 
DFR 



770000 000000 

004000 000000 

001000 000000 

000400 000000 

000200 000000 

000007 000000 

400000 
200000 
\77777 



710000 OOOOrO 

700000 000000 

730000 000000 

720000 000000 

740000 rooooo 

750000 000000 

760000 000000 

770000 000000 



770000 000000 

004000 000000 

002000 000000 

000200 OC "^00 

000007 O*" 00 

200000 
177700 
000077 



770000 000000 
004000 000000 
000007 000000 

}77777 



;* DATAO-DATAI BITS FOR DRIVE REGISTERS 

S*; *****************♦♦♦****••******♦♦•*♦***♦*♦♦♦♦♦♦♦♦»**♦*♦♦**♦*•**♦*♦♦** 



RGSEL= 770000., 

LR= 004000,, 

PEER= 001 000,, 

DRAES= 000400,, 

TRA= 000200,, 

DRSEL= 000007,, 

EP= 400000 

PAR= 200000 

RDAT= ^77777 



REGER SELECT FIELD 
LOAD REGISTER BIT 
PARITY ERROR DETECTED 
DISABLE REG ACCESS ERROR STOP 
HANDSHAKE TRANSFER COMPLETE 
DRIVE SELECT FIELD 

WRITE WITH EVEN PARITY 

PARITY FROM LAST REGISTER READ 

DATA FIELD FOR DRIVE REGISTERS 



S*; ***♦»♦»♦*»»»♦»♦*«»*♦**♦•** ******************************************* 

;* RH20 INTERNAL REGISTER ASSIGNMENTS 

S*; ********************************************************************** 



RHSTCR= 710000,. 
RHSBAR= 700000,, 
RHPTCR= 730000,, 
RHPBAR= 720000.. 
RHIVR= 740000.. 
RHRDRG= 750000.. 
RHUTRG= 760000.. 
RHDIAG= 770000.. 



SECONDARY XFER CONTROL REGISTER 
SECONDARY BLOCK ADDRESS REGISTER 
PRIMARY TRANSFER CONTROL REGISTER 
PRIMARY BLOCK ADDRESS REGISTER 
INTERRUPT VECTOR INDEX REGISTER 
READ REGISTER 
WRITE REGISTER 
DIAGNOSTIC CONTROL REGISTER 



S*; ********************************************************************** 

;* DATAO-DATA: FOR RH20 SECONDARY TRANSFER CTRL REG (71) 

S*; ********************************************************************** 



R6SEL= 770000.. 

LR= 004000.. 

RCLP= 002000.. 

STORE= 000200.. 

DRSEL= 000007.. 

DTES= 200000 

BLKCNT= 177700 

FNCTN= 000077 



REGISTER SELECT FIELD 

LOAD REGISTER BIT 

RESET COMMAND LIST POINTER 

FORCE CHANNEL TO STORE LOGOUT STATUS 

DRIVE SELECT FIELD 

DISABLE TRANSFER ERROR SHUTDOWN 
2'S COMP BLOCK COUNT FIELD 
FUNCTION FIELD AND GO BIT 



S*; -^****V**************** *********************************************** 

. '. DATAO-DATAI FOR RH20 SECONDARY BLOCK ADDRESS REGISTER (70) 

S*; ********************************************************************** 



RCSE:= 770000.. 
LR^ 004000.. 
DRSEL= 000007., 

BLKADR= y77777 
PAGE 



REGISTER SELECT FIELD 
LOAD REGISTER BIT 
DRIVE SELECT FIELD 

.•BLOCK ADDRESS FIELD 



r 



DEFINS MACRO X53B(1242) 19:36 12-SeD-85 Paae 1-6 



Q 0108 



r 

iDEFINS 
RH20 

1032 
1033 
103A 
1035 
1036 
1037 
1038 
1039 
10A0 
10A1 
10A2 
10A3 
10AA 
10A5 
10A6 
10A7 
10A8 
10A9 
1050 
1051 
1052 
1053 
1054 
1055 
1056 
1057 
1058 
1059 
1060 
1061 
1062 
1063 
106A 
1065 
1066 
1067 
1068 
1069 
1070 
1071 
1072 
1073 
107A 
1075 
1076 
1077 
1078 
1079 
1080 



MACRO X53B(12A2) 19:36 12-Sep-85 Page 1-6 

DEF 9-Sep-85 09:A9 RH20 BIT DEFINJTI 



ONS 



SEO 0121 



770000 000000 

002000 000000 

000200 000000 

000007 000000 

200000 
177700 
000077 



770000 000000 
000007 000000 



\77777 



770000 000000 
OOAOOO 000000 

000777 



770000 000000 
OOAOOO 000000 

777777 



770000 000000 
777777 



DFRI 
DFRI 



5*- ********************************************************************** 

;• DATAI FOR RH20 PRIMARY TRANSFER CONTROL REGISTER (73) 

$*• ********************************************************************** 



R6SEL= 770000., 

RCLP= 002000,. 

ST0RE= 000200,, 

DRSEL= 000007,, 

DTES= 200000 

BLKCNT= 177700 

FNCTN= 000077 



.-REGISTER SELECT FIELD 
.•RESET COMMAND LIST POINTER 
.•FORCE CHAN TO STORE LOGOUT STATUS 
.•DRIVE SELECT FIELD 

.-DISABLE TRANSFER ERROR SHUTDOWN 
;2'S COMPLEMENT BLOCK COUNT FIELD 
.-FUNCTION CODE AND GO BIT FIELD 



;♦ DATAI FOR RH20 PRIMARY BLOCK ADDRESS REGISTER i72) 

S*; •*»*»»♦♦••*»♦♦*♦*♦♦♦♦♦♦♦♦*»***♦*»*♦•»»***•*♦•*»*♦♦**»•*«♦♦♦*♦*♦♦*♦♦♦*' 



R6SEL= 770000,. 
DRSEL= 000007,. 

BLKADR= }77777 



;REGISTER SELECT FIELD 
,-DRIVE SELECT FIELD 

.-BLOCK ADDRESS FIELD 



;* DATAO-DATAI FOR RH20 INTERRUPT VECTOR REGISTER (7A) 



R6SEL= 770000., 
LR= OOAOOO., 

IVADR= 000777 



.-REGISTER SELECT FIELD 
.-LOAD REGISTER BIT 

.-VECTOR ADDRESS FIELD 



S*; ********************************************************************** 

;• DATAO TO RH20 WRITE REGISTER (76) 

S*; ********************************************************************** 



RGSEL= 
I.R= 



770000.. 
OOAOOO.. 



DATA= 777777 



.-REGISTER SELECT FIELD 
.-LOAD REGISTER BIT 

;18 BIT DATA FIELD 



S*; ********************************************************************** 

;* DATAI TO RH20 READ REGISTER (75) 

S*; ********************************************************************** 



RGSEL= 770000.. 

DATA=777777 
PAGE 



.-REGISTER SELECT FIELD 
.-DATA FIELD 



3 nino 



r 



DEFINS MACRO X53B(12A2)_1?i36_12-Sep-85_Page_h7 



hPDP 



r 



I 0109 



DEFINS 
RH20 

1081 
1082 
1083 
108A 
1085 
1086 
1087 
1088 
1089 
1090 
1091 
1092 
1093 
109A 
1095 
1096 
1097 
1098 
1099 
1100 
1101 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-7 
DEF 9-Sep-85 09:49 RH20 BIT 



770000 000000 
OOAOOO 000000 

001000 
000400 
000200 
000100 
000040 
000020 
000010 
000002 
000001 



DEFINITIONS 



;* DATAO-DATAI TO RH20 DIAGNOSTIC CONTROL REGISTER {77) 

§•; ********************************************************************** 

.•REGISTER SELECT FIELD 
.-LOAD REGISTER BIT 

DIAGNOSTIC MODE TRA 

CONTROL BUSS TEST (LOOPBACK) 

BLOCK ADDRESS REGISTER TEST (LOOPBACK) 

EVEN PARITY TEST 

R/U ALLOWED (DATA BUSS LOOPBACK) 

DIAGNOSTIC EXCEPTION (L.E.T.) 

DIAGNOSTIC EBL (L.E.T.) 

DIAGNOSTIC ATA (L.E.T.) 

DIAGNOSTIC SYN CLK (T.E.T.) 



SEQ 0122 



RGSEL= 


770000. 


,0 


LR= 


004000. 


.0 


DXFER= 


001000 




DCBT= 


000400 




DBART= 


000200 




DEPT= 


000100 




DRUAL= 


000040 




DEXEP= 


000020 




DEBL= 


000010 




DATA= 


000002 




DCLK= 


000001 

XLIST 
LIST 





DEFINS MACRO X53B(1242) 19:36 12-SeD-85 Paae 2 



DEFINS 
END 

1102 
1103 
110A 
1105 
1106 
M07 
•108 
1109 
1110 
1111 
1112 
1113 
1114 
1115 
1116 
1117 
1118 
1119 
1120 
1121 
1122 
1123 
1124 
1125 
1126 
1127 
1128 
1 129 
i'i30 
1131 
1132 
1133 
1134 
1135 
1136 
1137 
1138 
1139 
1140 
1141 
1142 
1143 



MACRO X53B(1242) 19:36 12-Sep-85 Page 2 

MAC 9-Sep-85 09:49 HERE IS WHERE OFFSETS INTO THE DS8 AREA ARE DEFINED 

SUBTTL HERE IS WHERE OFFSETS INTO THE DSB AREA ARE DEFINED 



SEQ 0123 



000000 



000001 



OFFSETS INTO THE DEVICE STATUS BLOCK (DSB) 

YOU CAN INDEX INTO THIS TABLE USING DSW OR DSBP 

DSW IS AN ENTRY THAT COMES FROM DEVTBL. THERE IS ONE PER DRIVE 



STBLI(=0 



C0NID=1 



000002 


SBARD=C0NID+1 


000003 


STCRD=SBARD+1 


000004 


PBARD=STCRD+1 


000005 


PTCRD=PBARD+1 


000006 


IVIRD=PTCRD+1 


000007 


R0D=IVIRD+1 


000010 


R1D=R0D+1 


000011 


R2D=R1D+1 


000012 


R3D=R2D+1 


000013 


R4D=R3D+1 


000014 


R5D=R4D+1 


000015 


R6D=R5D+1 


000016 


R7D=R6D+1 


000017 


R10D=R7D+1 


000020 


R11D=R10D+1 


000021 


R12D=R11D+1 


000022 


R13D=R12D+1 


000023 


R14D=R13D+1 


000024 


R15D=R14D+1 


000025 


R16D=R15D+1 


000026 


R17D=R16D+1 




.•STORAGE FOR 


000027 


CL061=R17D+1 


000030 


CL062=CL0G1+1 


000031 


CL0G3=CL0G2+1 


000032 


CL0G4=CL0G3+1 




PAGE 



.-THIS FIRST LOCATION IS A POINTER 
.-PACK TO THE DEVTBL LOCATION WHERE 
;DSW CAME FROM IN THE FIRST PLACE 

.•STORAGE FOR CONI DATA 

.•STORAGE FOR RH20 REGISTERS 



.•STORAGE FOR REGISTER DATA 



LOGOUT WORD 
LOGOUT WORD 
LOGOUT WORD 
LOGOUT WORD 



DEFINS MACRO X53R(1?4?) 19:36 1?-Spn-fi5 PaoP ?-1 



DEFINS 
END 

1KA 
11A5 
1U6 
11A7 
1K8 
1149 
1150 
1151 
1152 
1153 
115A 
1155 
1156 
1157 
1158 
1159 
1160 
1161 
1162 
1163 
116A 
1165 
1166 
1167 
1168 
1169 
1170 
1171 
1172 
1173 
1174 
1175 
1176 
1177 
1178 
1179 
1180 
1181 
1182 
1183 
1184 
1185 
1186 



MACRO X53B(1242) 19:36 12-Sep-85 Page 2-1 

MAC 9-Sep-85 09:49 HERE IS WHERE OFFSETS INTO THE DS8 AREA ARE DEFINED 



SEQ 0124 



000033 
000034 
000035 
000036 
000037 

000040 
000041 

000042 
000043 
000044 

000045 
000046 
000047 

000050 
000051 

000052 
000053 



000054 
000055 
000056 
000057 



.•BOOKKEEPING PARAMETERS USED FOR RETRY OF OPERATIONS 



XFST1=CL064+1 

XFST2=XFST1+1 

XFST3=XFST2+1 

BLKSIZ=XFST3+1 

CCWPTR=BLKSIZ+1 

LASTC=CCWPTR+1 
P0SADR=LASTC+1 

IBLK=P0SADR+1 

CBLK=I8LK+1 

FBLK=CBLK+1 

RIBLK=FBLK+1 

RCBLK=RI8LK+1 

RFBLK=RC8LK+1 

RC0UNT=RF8LK+1 
RWCLXF=RC0UNT+1 

RBKCNT=RUCLXF+1 
RXFST3=R6KCNT+1 



ARGl FROM XFSTRT ROUTINE 

ARG2 FROM XFSTRT ROUTINE 

ARG3 FROM XFSTRT ROUTINE 

# OF WDS/BLOCK IN LAST TRANSFER 

CTR,,PTR TO START OF LAST CMD LIST 

LAST POSITION OR DATA COMMAND ISSUED 
DISK ADDR OF LAST POSITION COMMAND 

INITIAL BLOCK « (USED BY ECO 
CURRENT BLOCK NUMBER (USED BY ECO 
FINAL BLOCK NUMBER (USED BY ECO 

INITIAL RETRY BLOCK 
CURRENT RETRY BLOCK 
FINAL RETRY BLOCK 

COUNTER FOR RETRYS USED IN HOUSKEEPING 
NUMBER OF WORDS IN LAST SECTOR, IF 
SAME AS BLKSIZ 

RETRY BLOCK COUNT, USED CAL CORE ADDR 
USED TO HOLD ORIGINAL WC,,COR ADR 



.-PACK (OR MEDIA) I.D. IS STORED HERE IN 5IX8IT IF IT EXISTS 
.-THIS COMES FROM THE HOME BLOCK IF IT EXISTS 

PAKID=RXFST3+1 ;THE PACK I.D. 

.•MONITOR NAME IN SIX8IT AS FOUND IN THE HOME BLOCKS 

M0NNAM=PAKID+1 ;T0PS10, T0PS20, OR ???? 

;L0W ORDER 16 BITS OF SERIAL NUMBER IS SAVED HERE 

DRVSN=M0NNAM+1 ;UNIT SERIAL NUMBER ... 

.•MICROCODE REVISION LEVEL HERE IF NECESSARY 

MCDVER=DRVSN+1 .-MICROCODE VERSION(S) 

PAGE 



DEFINS MACRO X53B(1242) 19:36 12-SeD-85 Paae 2-2 



DEFINS 
END 

1187 
1188 
1189 
1190 
1191 
1192 
1193 
119A 
1195 
1196 
1197 
1198 
1199 
1200 
1201 
1202 
1203 
120A 
1205 
1206 
1207 
1208 
1209 
1210 
1211 
1212 
1213 
121A 
1215 
1216 
1217 
1218 
1219 
1220 
1221 
1222 
1223 
122A 
1225 
1226 
1227 
1228 
1229 
1230 
1231 
1232 
1233 
1234 
1235 
1236 
1237 
1238 
1239 
12A0 
12A1 



MACRO 3;53B(12A2) 19:36 12-Sep-85 Page 2-2 

MAC 9-Sep-85 09:49 HERE IS WHERE OFFSETS INTO THE DSB AREA ARE DEFINED 



STORAGE AREA FOR THE DATA BASE USED BY "MAPOUT" 

EACH ENTRY REQUIRES 3 WORDS OF STORAGE. WE HAVE ROOM FOR 4C0. 
THESE ARE "NOT" WIPED OUT WITH "TOTCLR" 



SEQ 0125 



000060 
002260 
002337 
002340 
002341 



002342 
002343 
002344 
002345 
002346 
002347 
002350 
002351 
002352 
002353 
002354 
002355 
002356 
002357 
002360 
002361 
002362 
002363 
002364 



002364 
002365 
002366 
002367 
002370 
002371 
002372 
002373 



002374 
002375 
002376 
002377 
002400 
002401 
002402 



DBSTRT=MCDVER+1 

DBSIZE=*D3**D400 

DBEND=DBSTRT+D8SIZE-1 

SSP0TS=D8tND+l 

HSP0TS=SSP0TS+1 



START OF THE DATA BASE 
ARBITRARY SIZE OF THE DATA BASE 
MARKS THE END OF THE DATA BASE 

* OF SOFT SPOTS IN DATA BASE 

# OF HARD SPOTS IN DATA BASE 



.-STORAGE OFFSETS FOR STATISTICS AND ERROR TOTALS 
.-"TOTCLR" CLEARS FROM HERE TO THE END OF THE DSB AREA 



HARDER 
SOFTER 
E.COMP 
XINTR= 
WTCNT= 
RDCNT= 
SKCNT= 
RCCNT= 
SRCNT= 
RCLCNT 
OFSCNT 
POSCNT 
WDSWRT 
UDSRD- 
RETPOS 
RETDAT 
RETREQ 
RETFAL 
HAPOVR 



HSPOTS+1 
=HARDER+1 
=S0FTER+1 
E.COMP+1 
XINTR+1 
WTCNT+1 
RDCNT+1 
SKCNT+1 
RCCNT+1 
=SRCNT+1 
=RCLCNT+1 
=0FSCNT+1 
=P0SCNT+1 
WD5WRT+1 
=WDSRD+1 
=RETP0S+1 
=RETDAT+1 
=RETREQ+1 
=RETFAL+1 



TOTAL # OF UNCORRECTABLE ERRORS 
TOTAL # OF CORRECTABLE ERRORS 
COUNTS DATA COMPARE ERRORS 
EXTRANEOUS INTERRUPT COUNTER 
# OF WRITES 

OF READS 

OF SEEKS 

OF RECALS 

OF SEARCHES 

OF RTN TO CTR LINE COMMANDS 
OFFSET COMMANDS ISSUED 
POSITIONS OF ANY TYPE 

OF WORDS WRITTEN 

OF WORDS READ 

OF POSITION RETRIES 

OF DATA RETRIES 

OF RETRY REQUESTS (TOTAL) 

OF RETRY REQUESTS THAT FAILED (TOTAL) 

OF TIMES MAPOUT OVER FLOWED 



DFRPM 
DFRPM 

1582 
1583 
1584 
1585 
1586 
1587 
1588 
1589 
1590 
1591 
1592 
1593 
1594 
1595 
1596 
1597 
1598 
1599 
1600 
1601 



OF 
OF 



.-THESE ARE TALLIED IN THE ROUTINE "LOGERR" 



ECH=RETFAL+1 

DCK=ECH+1 

0PI=DCK+1 

HCRC=0PI+1 

HCE=HCRC+1 

FER=HCE+1 

DTE=FER+1 

IAE=DTE*1 

.-TOTALS FOR RUNNING NEXTST, 
.-THOSE TRANSFERS THAT TAKE 



# OF TIMES WE GOT ECH 

# OF TIMES WE GOT DCK WITHOUT ECH 

# OF TIMES WE GOT OPI 

# OF TIMES WE GOT HCRC 

# OF TIMES WE GOT HCE WITHOUT HCRC 

# OF TIMES WE GOT FER WITHOUT HCRC 

# OF TIMES WE GOT DTE 

# OF TIMES WE GOT lAE 



THE ONLY FAILURES TOTALED ARE 
A REVOLUTION.... 



TOTRR= 

FAILRR 

TOTRW= 

FAILRW 

TOTWW 

FAILWW 

TOTWR= 



IAE+1 

=T0TRR+1 

FAILRR+I 

TOTRW+1 
FAlLRW+1 

TOTWW+1 
FAILWW+1 



NUMBER OF 
NUMBER OF 
NUMBER OF 
NUMBER OF 
NUMBER OF 
NUMBER OF 
NUMBER OF 



READ/READS EXECUTED 
READ/READ FAILURES 
READ/WRITES EXECUTED 
READ/WRITE FAILURES 
WRITE/WRITES EXECUTED 
WRITE/WRITE FAILURES 
WRITE/READS EXECUTED 



hPPtkJC MAron V(;7DnD/.D> 1Q.tA ID-CarN.flC D^n^ o~x 



DEFINS MACRO X53B(12A2) 19:36 12- 
END MAC 9-Sep-85 09:49 



Sep-85 Page 2-3 

HERE IS WHERE OFFSETS INTO THE DSB AREA ARE DEFINED 



SEQ 0126 



12A2 
12A3 
12A4 
12A5 
12A6 
12A7 
12A8 
12A9 
1250 
1251 
1252 
1253 
125A 
1255 
1256 
1257 
1258 
1259 
1260 
1261 
1262 
1263 
126A 
1265 



002A03 



002A0A 
002A05 

002A06 
002A07 



002A10 
002A11 
002A12 



002A13 



FAILWR=T0TUR+1 



.-NUMBER OF WRITE/READ FAILURES 



TOTALS THAT COME FROM THE SEEK TIMING TESTS 

THE INCREMENTAL SEEK TIME TEST ... 

THE OVERAL DRIVE SEEK TIME MEASUREMENT TEST 



INCT0T=FAILUR+1 
INCBAD=INCT0T+1 

SEKT0T=INCBAD+1 
SEKBAD=SEKT0T+1 



; TOTALS * INCREMENTAL SEEKS TIMED 
;* OF INCR SEEKS ABOVE MAXIMUM 

.•TOTAL * OF GENERAL SEEKS TIMED 

;# OF GENERAL SEEKS ABOVE THE MAXIMUM 



.•CURRENT DISK ADDRESS FOR THE S-FUNCTION (RUNTIME STATISTIC) 



CCYL=SEK8AD+1 

CSURF=CCYL+1 

CSECT=CSURF+1 



CURRENT CYLINDER 
CURRENT SURFACE 
CURRENT SECTOR 



.•DEFINE THE END OF THE TOTALS AREA 
DS8SIZ=CSECT+1 



030601 



RELOC 
END 



+1 



;END STATEMENT FOR TITLE FILE 



NO ERRORS DETECTED 

PROGRAM BREAK IS 030601 
ABSOLUTE BREAK IS 030600 
CPU TIME USED 00:06. 8A0 

113P CORE USED 



DFRPM 
DFRPM 

1602 
1603 
160A 
1605 
1606 
1607 
1608 
1609 
1610 
1611 
1612 
1613 
161A 
1615 
1616 
1617 
1618 
1619 
1620 
1621 
1622 
1623 
162A 
1625 
1626 
1627 
1628 
1629 
1630 
1631 
1632 
1633 
163A 
1635 
1636 
1637 
1638 
1639 
16A0 
16A1 
16A2 
16A3 
16AA 
16A5 
16A6 
16A7 
16A8 
16A9 
1650 
1651 
1652 
1653 
165A 
1655 
1656 



r\cctkic tiiron «C7q/i-^/')\ 10.7^ ii_c. oc o.» r_i 



DEFINS 
END 

ABORT 

ALTMGO 

ANXM 

AROV 

AROVU 

AST 

ATNEN 

ATSIN 

ATTN 

ATTNEN 

BEGEND 

BEGIN 

BEGIN1 

BELL 

BIS 

BLKADR 

BLKCNT 

BLKSIZ 

CBLK 

CCA 

CCUPTR 

CCYL 

CFLUSH 

CHAIN 

CHERR 

CHNHLT 

CHNOFF 

CHNON 

CINVAL 

CLK 

CLKCLR 

CLKDIS 

CLKENB 

CLKU 

clockf 

CL0G1 

CL0G2 

CL0G3 

CLOGA 

CLOKOP 

CNTLC 

COHMA 

CON ID 

CONSW 

CPOPJ 

CP0PJ1 

CRLF 

CRLF2 

CRYO 

CRYl 

CSECT 

CSHFL6 

CSHMEM 

CSURF 

CWRTBI 



MACRO X53B(12A2) 19:36 12-Sep-85 Page S-1 
MAC 9-Sep-85 09:49 SYMBOL TABLE 



400000 spd 

030063 

010000 spd 

400000 spd 

000010 spd 

030252 

000040 

030253 

000200 

000040 

030057 

030000 

030010 

030256 

020000 spd 

Mini 

1 77700 

000036 

000043 

000014 spd 

00C037 

002410 
037100 000004 

000004 spd 

020000 

002000 

001000 spd 

002000 spd 
037040 000004 

001000 spd 

Cu'OOO spd 

004000 spd 

002000 spd 

001000 spd 

030045 

000027 

000030 

000031 

000032 
037540 000004 

030062 

030244 

000001 

030046 

030065 

030064 

030242 

030243 

200000 spd 

100000 spd 

002412 

030506 

030507 

002411 
037140 000004 



CYCL60 

DATA 

DBART 

DBEND 

DBPE 

DBSIZE 

DBSTRT 

DCBT 

DCK 

DCLK 

DDTLNK 

DDTSRT 

DE6L 

DEBUG 

DECVER 

DEPT 

DEXEP 

DF22F 

DIAGMN 

DING 

DOLLAR 

DONCLR 

DONE 

DRAES 

DRE 

DREXC 

DRIVE 

DROPDV 

DRSEL 

DRVSN 

DRUAL 

DSBP 

DSBSIZ 

DSCR 

Dsy 

DTE 

DTES 

DXFER 

E.COMP 

ECH 

ENDFIX 

ENDUUO 

EOPUUO 

EP 

ERFLG 

ERLOOP 

ERLP1 

ERLP2 

ERMORE 

ERRHLT 

ERRPC 

ERRTLS 

ERSTOP 

ERUUO 

EXCASB 



000400 



037240 
000007 



037500 
037700 



035000 
035040 
035100 

037600 



036000 



030505 
000002 
000200 
002337 
400000 
002260 
000060 
000400 
002365 
000001 
027775 
030007 
000010 
000200 
000003 
000100 
000020 
030142 
030002 
010000 
030261 
000010 
000010 
000000 
010000 
200000 
000015 
000002 
000000 
000056 
000040 
000014 
002413 
000 1 00 
000014 
002372 
200000 
001000 
002344 
002364 
030577 
000004 
000004 
400000 
000011 

nooooo 

000000 
000000 
030101 
000004 
030052 
)30055 
020^0 
OOi 
)00001 



spd 



spd 
spd 



spd 



spd 
spd 



EXIOT 

FAILRR 

FAILRU 

FAILUR 

FAILUU 

FATAL 

FBLK 

FER 

FNCTN 

FOV 

FOVU 

FRD36 

FRD8 

FRDLNK 

FREAD 

FSELEC 

FSELNK 

FXU 

GET 

GO 

HALT 

HARDER 

HCE 

HCRC 

HSPOTS 

HYPEN 

lAE 

IBLK 

INCBAD 

INCTOT 

INHCSH 

INHPAG 

INXM 

lOCLR 

HERAT 

ITRCH1 

ITRCNT 

IVADR 

IVIRD 

JEN 

J0B41 

J OB APR 

JOBCNI 

JOBDDT 

JOBFF 

JOBOPC 

JOBREL 

JOBREN 

JOBSA 

JOBSYM 

JOBTPC 

JOBUSY 

JOBUUO 

JOBVER 

JRSTF 



037640 



037340 
037400 

037300 
037240 



262740 
260740 
254200 



254500 



254100 



004000 

002375 

002377 

002403 

002401 

000004 

000044 

002371 

000077 

040000 

000100 

000004 

000004 

027773 

000004 

000004 

027772 

000100 

000000 

000000 

000000 

002342 

002370 

002367 

002341 

030250 

002373 

000042 

002405 

002404 

000020 

000100 

000100 

200000 

000000 

030104 

030024 

000777 

000006 

000000 

000041 

000125 

000126 

000074 

000121 

000130 

000044 

000124 

000120 

000116 

000127 

000117 

000040 

000137 

000000 



spd 



spd 
spd 



spd 



spd 
spd 
spd 
spd 
spd 



spd 
spd 
spd 
spd 
spd 
spd 
spd 
spd 
spd 
spd 
spd 
spd 
spd 
spd 







SEQ 0127 


KAHZ50 


000002 


spd 


KAIFLG 


030040 




KL10 


000001 


spd 


KLFLG 


030041 




LAPRAL 


127520 


spd 


LAPRP1 


000001 


spd 


LAPRP2 


000002 


spd 


LAPRP3 


000003 


spd 


LAPRP4 


000004 


spd 


LAPRP5 


000005 


spd 


LAPRP6 


000006 


spd 


LAPRP7 


000007 


spd 


LAROVT 


000421 


spd 


LASTC 


000040 




LCASDE 


000020 


spd 


LCASLD 


200000 


spd 


LCASLO 


400000 


spd 


LCASWB 


200000 


spd 


LCASUD 


000020 


spd 


LCCASD 


020020 


spd 


LCHNOF 


001000 


spd 


L CHNON 


002000 




LCIOPF 


020400 


spd 


LCNTRP 


000434 


spd 


LCNXER 


022000 


spd 


LCPAER 


021000 


spd 


LCPURF 


020100 


spd 


LCSBER 


024000 


spd 


LCSLOA 


200000 


spd 


LCSLOO 


400000 


spd 


LCTRP 


000435 


spd 


LCWSX 


000040 


spd 


LDATAF 


000200 


spd 


LDCASD 


040020 


spd 


LDIOPF 


040400 


spd 


LDLNK 


027774 




LDNXER 


042000 


spd 


LDPAER 


041000 


spd 


LDPWRF 


040100 


spd 


LDSBER 


044000 


spd 


LECASD 


100020 


spd 


LEIOPF 


100400 


spd 


LENXER 


102000 


spd 


LEPAER 


101000 


spd 


LEPWRF 


100100 


spd 


LESBER 


104000 


spd 


LEUPFW 


000420 


spd 


LEVNCD 


100000 


spd 


LEVNPA 


400000 


spd 


LEVNPD 


200000 


spd 


LEXCMP 


000000 


spd 


LFLGCL 


020000 


spd 


LFLGDS 


040000 


spd 


LFLGEN 


100000 


spd 


LFLGST 


010000 


spd 



DFRPM 
DFRPM 

1657 
1658 
1659 
1660 
1661 
1662 
1663 
1664 
1665 
1666 
1667 



ncciuc M^ron y<;7DM'3/.?> iq.7a io.c<>...ac o-^/.^ c? 



iDEFINS 
I END 

Ilfp 

LINSTF 

LINT 

LIOCLR 

LIOPrE 

LKNTRP 

LKTRP 

LLACBL 

LLDUSB 

LLPRCN 

LHUUO 

LMLSJOP 

LNGUC 

LNXMEN 

LNXMER 

LOOPER 

LPAREN 

LPARER 

LPDOVT 

LPFWPC 

LPGFTR 

LPICH1 

LPICH2 

LPICH3 

LPICHA 

LPICH5 

LPICH6 

LPICH7 

LPICHA 

LPICLR 

LPIIP1 

LPIIP2 

LPIIP3 

LPIIPA 

LPIIP5 

LPIIP6 

LPIIP7 

LPIOFF 

LPION 

LPNTRP 

LPRCH1 

LPRCH2 

LPRCH3 

LPRCHA 

LPRCH5 

LPRCH6 

LPRCH7 

LPTRP 

LPWRFE 

LPWRFL 

LR 

LREQSE 

LRQCLR 

LSBSEN 

LSBUSE 



MACRO X53B(1242) 19:36 12-Sep-85 Page S-2 
MAC 9-Sep-85 09:A9 SYMSOi TABLE 



SEQ 0128 



03025A LSCASD 

OOOAOO spd LSECMO 

000010 spd LSIOPF 

200000 spd LSMODE 

000400 spd LSNTRP 

000A30 spd LSNXER 

000431 spd LSPAER 

400000 spd LSPURF 

100000 spd LSSBER 

200000 spd LSTRP 

000424 spd LTRP3T 

000425 spd LTRPAE 
100000 LTRPEN 
002000 spd LUSCMP 
002000 spd LUUO 
004000 spd LUU01 
001000 spd LUU010 
001000 spd LUU011 
000422 spd LUU012 

000426 spd LUU013 
00C427 spd LUUQ14 
000100 spd LUU015 
000040 spd LUU016 
000020 spd LUU01 7 
000010 spd LUU02 
000004 spd LUU020 
000002 spd LUU021 

000001 spd LUU022 
000177 spd LUU023 
010000 spd LUU024 
0««.»000 spd LUU025 
020000 spd LUU026 
010000 spd LUU027 
004000 spd LUU03 
002000 spd LUU030 
001000 spd LUU031 
000400 spd LUU032 
000400 spd LUU033 
000200 spd LUU04 

000436 spd LUU05 
0001 CO SDd LUU06 
000040 spd LUU07 
QOOOc'O 5pd LUUOI 
00001 C spd LURITE 
000004 spd MAPADR 

000002 spd MAPCNK 
000001 spd MAPMEM 

000437 spd MAPNEW 
000100 spd MAPOVR 
000100 spd MAPPNT 

004000 000000 MAPSET 

DQ4000 spd MARGIN 

D20000 spd NBCENB 

D04000 spd MBCN 

mOOO spd NBE 



037540 
037640 
037000 



037740 
037600 



010020 spd 
040000 spd 
010400 spd 
040000 spd 

000432 spd 
012000 spd 
011000 spd 
010100 spd 
014000 spd 

000433 spd 
000423 spd 
020000 spd 
020000 spd 
000040 spd 

000040 spd 
030070 
030070 
030070 
030070 
030070 
030070 
030070 
030070 
030070 
030070 
030070 
030070 
030070 
030070 
030070 
030070 
030070 
030070 
030070 
QOOOOO* 
QOOOOO* 
030070 
030070 
030070 
030070 
030070 
030070 

000041 spd 
000100 spd 
000002 
000002 
000004 
030143 
002364 
000002 
000002 
330055 
500400 
300016 
300400 



HCDVER 
nCNVER 
MEMLOU 
nEMMAP 
NEHSEG 

MEnsiz 

HEHTOT 

NEMZRO 

MINUS 

NODDVC 

NODDVL 

NODDVU 

NODLNK 

HODPCP 

HODPCU 

HONCTL 

NONFLG 

MONNAM 

NONTEN 

HONTYP 

MPVU 

HTROP 

NOPNT 

NXMU 

OFSCNT 

DPI 

OPRSEL 

OPTIME 

OVRRUN 

P 

PAG 

PAKID 

PALERS 

PAR 

PARCLR 

PARDIS 

PAREA1 

PAREA2 

PAREA3 

PAREA4 

PAREA5 

PAREA6 

PAREA7 

PAREA8 

PARENB 

PARU 

PASCNT 

PBARD 

PBELL 

PCRFUL 

PCRL 

PCRL2 

PCRL2F 

PCRLF 

PDISF 



037440 
037500 



037300 
037340 



037200 



331214 

444662 
605664 



037040 

037000 
037000 
037040 
037040 



000057 

000000 spd 
030145 

000001 spd 
000002 
030146 
030144 
000002 
030250 
000040 spd 
030577 spd 
030577 spd 
027776 
000002 
000002 
030043 
030042 
000055 
030044 
030516 
020000 spd 
000004 
040000 spd 
010000 spd 
002354 
002366 
000010 spd 
030224 
001000 
000017 
000010 spd 
000054 
001000 spd 
200000 
200000 spd 
100000 spd 
654534 
000000 
605500 
QOOOOO 
QOOOOO 
QOOOOO 
030035 
030036 
040000 spd 
004000 spd 
030047 
000004 
000007 
000020 
030242 

mn 

030242 
030221 



PDLOVU 

PEER 

PERIOD 

PFORCE 

PFSTRT 

PGMINT 

PGMNAM 

PIA 

PICHN1 

PICHN2 

PICHN3 

PICHN4 

PICHN5 

PICHN6 

PICHN7 

PICHNA 

PICLR 

PIOFF 

PI ON 

PJRST 

PLIST 

PLISTE 

PLISTS 

PLUS 

PNT1 

PNT11 

PNT11F 

PNT1F 

PNT2 

PNT2F 

PNT3 

PNT3F 

PNT4 

PNT4F 

PNT5 

PNT5F 

PNT6 

PNT6F 

PNT7 

PNT7F 

PNTA 

PNTADF 

PNTADR 

PNTAF 

PNTAL 

PNTALF 

PNTCHF 

PNTCH9 

PNTCI 

PNTCIF 

PNTCy 

PNTCWF 

PNTDCF 

PNTDEC 

PNTDS 



001000 
037040 
265000 



254000 



037040 
037440 
037440 
037040 
037100 
037100 
037140 
037140 
037200 
037200 
037240 
037240 
037300 
037300 
037340 
037340 
037000 
037400 
037400 
037000 
037740 
037740 
037500 
037500 
037000 
037040 
037100 
037140 
037640 
037640 
037700 



200000 spd 

000000 

030245 

000026 

030005 

030011 

000000 ext 
000007 
000100 spd 
000040 spJ 
000020 spd 
000010 spd 
000004 spd 
000002 spd 

000001 spd 
000177 spd 
010000 spd 
000400 spd 
000200 spd 
000000 
030303 
030504 
030304 
030251 
000000 
000000 
000001 
000001 
000000 
000001 
000000 
000001 
000000 
000001 
000000 
000001 
000000 
000001 
000000 
000001 
000000 
000001 
000000 
000001 
000000 
000001 
000001 
000000 
000000 
000000 
000002 
000002 
000001 
000000 
000000 



DFRPM 
DFRPM 

1668 
1669 
1670 
1671 
1672 
1673 
1674 
1675 
1676 
1677 
1678 
1679 
1680 
1681 
1682 
1683 
1684 
1685 
1686 
1687 
1688 
1689 
1690 
1691 
1692 
1693 
1694 
1695 
1696 
1697 



rtrrikir tkrnn wCJo / 1 T/ -> \ in.TZ i T c oc r> r T 



DEFINS 
END 

PNTDSF 

PNTENB 

PNTEXT 

PNTFL6 

PNTHU 

PNTHUF 

PNTINH 

PNTLPT 

PNTMGN 

PNTNSF 

PNTMS6 

PNTNAM 

PNTNM 

PNTOCF 

PNTOCS 

PNTOCT 

PNTOTF 

PNTSIX 

PNTSPC 

PNTSXF 

POSADR 

POSCNT 

PS I XL 

PSIXLF 

PSIXM 

PSIXMF 

PSP 

PSPF 

PTCRD 

PUT 

PVPAGI 

PWFCLR 

Q 

QUEST 

ROD 

R10D 

R11D 

R12D 

R13D 

R14D 

R15D 

R16D 

R17D 

RID 

R2D 

R3D 

R4D 

R5D 

R6D 

R7D 

RADIX 

RADLSC 

RADLSP 

RAE 

RAECLR 



MACRO X53B(1242) 19:36 12-Sep-85 Page S-3 
MAC 9-Sep-85 09:49 SYMBOL TABLE 

037700 



037540 
037540 



SEO 0129 



DFRPM 
DFRPM 



037700 
037040 
037000 

037200 
037740 
037700 
037600 
037600 
037000 

037040 



037600 
037640 
037100 
037200 
037000 
037040 

261740 



000001 


RAND6S 




030022 


030220 


RBKCNT 




000052 


030021 


RCBLK 




000046 


030217 


RCCNT 






000000 


RCLCNT 




000001 


RCLP 


002000 


000000 


030222 


RCLPA 




000200 


020000 spd 


RCOUNT 




000050 


000002 


RDAT 




-[77777 


000000 


RDCNT 




0023^7 


000000 


REENTR 




030006 


030020 


RELIAB 




000400 


000002 


REPT 




000015 


000003 


REPT1 




000016 
030115 


000003 


REPTU 




000000 


REPTUO 


034000 


000000 


000001 


REQSET 




004000 


000002 


RESRT1 




030076 


030223 


RESRT2 




030077 


000002 


RETDAT 




002361 


000041 


RETFAL 




002363 


002355 


RETPOS 




002360 


000003 


RETREQ 




002362 


000003 


RETURN 




030012 


000000 


RFBLK 




000047 


000000 


RGLIST 




000010 


000040 


R6SEL 


770000 


000000 


000040 


RHO 


540000 


000000 


000005 


RH1 


544000 


000000 


000000 


RH10 




000000 


Gi.»511 


RH2 


550000 


000000 


400000 spd 


RH20 




000001 


030004 ext 


RH3 


554000 


000000 


)30257 


RH4 


560000 


000000 


)00007 


RH5 


564000 


000000 


)00017 
)00020 


RH6 


570000 


000000 


RH7 


574000 


000000 


)00021 


RHCLR 




002000 


)00022 


RHDIAG 


770000 


000000 


)00023 


RHIVR 


740000 


000000 


)00024 


RHPBAR 


720000 


000000 


)00025 


RHPTCR 


730000 


000000 


)00026 


RHRDR6 


750000 


000000 


)00010 


RHSBAR 


700000 


000000 


)00011 


RHSTCR 


710000 


000000 


)00012 


RHUTRG 


760000 


000000 


)00013 


RI6LK 




000045 
200000 


)00014 
)00015 


RSTART 




RTN 


263740 


OQOOOO 
030255 


)00016 


RTP 




)30262 


RUNFLG 




030050 


)30264 


RWCLXF 




Q0Q051 


)30263 


RXFST3 




000053 
QQQOOO* 


)04000 


SADR1 




SADR10 


254200 


030000 



spd 
spd 
spd 



spd 



spd 



SADR11 


254200 


030000 


SADR2 




30000 


SADR3 




30000 


SADR4 




30007 


SA0R5 




30007 


SADR6 




30007 


SADR7 


254200 


30000 


SADR8 


254200 


30000 


SADR9 


254200 


30000 


SBARD 




QQ0002 
030011 


SBINIT 




SCOPE 




30116 


SCRFUL 




00100 


SEKBAD 




02407 


SEKTOT 




002406 
030004 


SFSTRT 




SHTWC 




)40000 


SKCNT 




)02350 


SLASH 




SM10 




ioS343 


SOFTER 




SPACE 




)30246 


SRCNT 




)02352 


SRTDDT 




030007 
002340 


SSPOTS 




START 




;oooi 


STARTl 




:0013 


START2 




JOOU 


START3 




;ooi5 


START4 




:ooi6 


START5 




:ooi7 


STARTA 




JOOIO 


STBLK 




(0000 


STCRD 




( 000? 


STOP 




(0020 


STORE 


000200 


m^ 


SUBLNK 




SWITCH 


037400 


)002 


SWPTAB 




3)525 


SUTEXR 




3)023 


SYSEXR 




3)003 


TAB 




: 3 )247 


TESTPC 




: 3)051 


TEXT 


030000 


0)000 


TEXT. 




3)140 


TEXTF 


031000 


QOOOO 
QOOOO 


TEXTF. 




TICKS 




)3 )054 


TOTALS 






TOTRR 




)02374 


TOTRU 




)02376 


TOTWR 




{02402 


TOTUU 






TRA 


m^ 


300000 


TTALTM 


300003 



ext 



ext 



ext 
ext 
spd 



TTICHR 

TTICLR 

TTICNV 

TTIDEC 

TTINO 

TTIOCT 

TTIYES 

TTLOOK 

TTNBRF 

TTSIXB 

TTYFIL 

TTYINP 

TTYSPD 

TXTINH 

USER 

USERF 

USRASB 

USRCRF 

USRLFF 

UUODIS 

UUOEXT 

UUORTN 

UUOSKP 

UDSRD 

UDSWRT 

WrCNT 

X 

XI 

XECLR 

XFST1 

XFST2 

XFST3 

XINTR 

Y 

SSNUUO 

WOUTE 

$$TAX1 

$$TAX2 

$$T0GG 

$SUU0 

$ACCO 

$BEND1 

$BEND2 

SrHRIN 

$CRLF 

SDEVCH 

SDSKUP 

$DVCH1 

$DVOFF 

$EMODE 

iFFF 
IBUF 
INEXT 
SINNM 
$ITRHL 



037000 
037500 
037240 
037200 
037100 
037140 
037040 
037300 

037400 

037440 



000003 

000003 

000003 

000003 

000003 

000003 

000003 

000003 

030510 

000003 

030227 

000003 

030230 

000200 

030037 

010000 

000001 

030241 

030240 

030124 

030065 

030066 

030064 

002357 

002356 

002346 

000007 

000013 

001000 

000033 

000034 

000035 

002345 

000006 

030517 

030520 

030522 

030523 

030521 

030515 

030106 

030060 

030061 

030232 

030234 

000017 

030033 

000016 

030226 

030031 

030236 

030274 

030300 

030277 

030071 



spd 

spd 
spd 



spd 
spd 



DEFINS 
END 

SITRXI 

UPAPE 

SHMAP 

$MODVL 

SMODVU 

S06UF 

$ONETM 

$OUTEX 

tOUTNM 

SPARER 

tPNAME 

$PSHER 

$PVER 

$RSRTX 

SRSRTY 

SSPAGI 

SSTART 

$SVAPR 

SSVPAG 

$SVPI 

SSVUPC 

SSVUUO 

$TABF 

STTCHR 

STWCNT 

STYPNB 

SUMODE 

SUORTX 

SUSRHL 

SUUOER 

$VTF 

XACTFL 

XACTUL 

XCOREC 

XCORFL 

XOISCR 

XERHI1 

XERHI2 

XERHI3 

.JBA1 

.JBAPR 

.JBCNI 

.JBODT 

.JBFF 

.JBOPC 

.JBREL 

.JBREN 

.JBSA 

•JBSYM 

.JBTPC 

.JBUSY 

.J6UU0 

.JBVER 



MACRO X53B(1242) 19:36 12-Sep-85 Page S-4 
MAC 9-Sep-85 09:A9 SYMBOL TABLE 

030072 
000001 
03003A 
030027 
030030 
030265 
030056 
030271 
030270 
030100 
030025 
030103 
030026 
030074 
030075 
030112 
030001 
030110 
030111 
030107 
030114 
030113 
030235 
030231 
030225 
030233 
030032 
030067 
030073 
030070 
0iJ237 
030121 
030122 
030120 
030117 
030123 
030512 
030513 
0305U 
000041 
000125 
000126 
000074 
000121 
000130 
QQ0044 
000124 
000120 
000116 
000127 
000117 
" "0040 
0137 



spd 
spd 
spd 
spd 
spd 
spd 
spd 
spd 
spd 
spd 
spd 
spd 
spd 
spd 



SEQ 0130 



DFRPM 
OFRPM 

1729 
1730 
1731 
1732 
1733 
1734 
1735 
1736 
1737 
1738 
1739 
1740 
1741 
1742 
1743 
1744 
1745 
1746 
1747 
1748 
1749 
1750 
1751 
1752 
1753 
1754 
1755 
1756 
1757 
1758 
1759 
1760 
1761 
1762 
1763 
1764 
1765 
1766 
1767 
1768 
1769 
1770 
1771 
1772 
1773 
1774 
1775 
1776 
1777 
1778 
1779 
1780 
1781 
1782 
1783 



DFRPM 
DFRPM 

1266 
1267 
1268 
1269 
1270 
1271 
1272 
1273 
127A 
1275 
1276 
1277 
1278 
1279 
1280 
1281 
1282 
1283 
1284 
1285 
1286 
1287 
1288 
1289 
1290 
1291 
1292 
1293 
129A 
1295 
1296 
1297 
1298 
1299 
1300 
1301 
1302 
1303 
130A 
1305 
1306 
1307 
1308 
1309 
1310 
1311 
1312 
1313 
13K 
1315 
1316 
1317 
1318 
1319 
1320 



RP07/6/5M Exerciser 
MAC 12-Sep-85 17:02 



000137 
000137 
030600 



000000 000003 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1 
MAINLINE CODE 

TITLE DFRPM RP07/6/5/4 Exerciser 
SUBTTL MAINLINE CODE 



SEQ 0131 



D 
D 



SEARCH DEFINS,M0NSYM 
LOC 137 
MCNVER,,DECVER 
LOC ENDFIX+1 
.DIREC FLBLST 



;SET UP VERSION NUMBERS 

.-RELOCATE TO END OF FIXED AREA 
.-First line binary listing only 



ENTRY 
ENTRY 



..CONI., 
STARTQ 



,C0N0,..RDR6,PT0TAL,Q,S, START, STARTA 



INTERN ALTF,AT0C0N, BACKUP, BSYCNT,BUF1A,BUF2A,BUFSIZ,CBUFF 

INTERN ERCNT, ERROR, FLIST,FREC0R, FREE, HUNG, N0RET,N0RPT 

INTERN PATCH, PGMNAM,RANDF,RETRYF,SCPPC,SELFLG,SHMODE, ST. NAM 

INTERN TSTNAM,UREL,UREQ,USEPI,VARFLG 

.-THESE ARE LOCATED IN DFRPM1... 

EXTERN . NAME,. NAMEF,.PIOFF,.RECAL,. SEEK,. SRCH,ASBUF, BRANCH 
EXTERN DELAY, IDENT,INITPI, PARSER, SETTRP.STATCK, UNIT, XFSTRT 

.-THESE ARE LOCATED IN THE MAPOUT SUPPORT MODULE 'WAPSUP" 

EXTERN DBEDIT.LSTQO.MAKBAT 

.-THESE ARE LOCATED IN THE COMMON DISK FILE 

EXTERN ADCON.CWFMT,CWFTD,CWHDC,CWRHDC,CWRTD,CWRWD,DATTBL 
EXTERN DRVNAM,FCYCE.GENBAT,LBCE,LCYCE.MXSCTM,MXSEC,MXSKTM 
EXTERN MXSUR 

.-THESE ARE LOCATED IN DFRPM2 (INTERRUPT SERVICE AND RETRY) 

EXTERN lOWAIT.LOGERR 
.-THESE ARE LOCATED IN THE CONFIGURATION MODULE 

EXTERN CONFIG, DEVSEL.DEVWD.RHWD. SELECT 
.-THESE ARE LOCATED IN THE RP07 DEFECT HANDLER MODULE 

EXTERN CNTDEF. DEFECT, GENHDR.LDENT.LDENTH.TDINP 
.-THESE ARE LOCATED IN RH20 CONTROLLER CODE 

EXTERN CBASE.CCCLR.CCFLG.DEVREL.DIAGCR.FFF.ULOAD.UREAD 
.-THESE ARE LOCATED IN GENERAL UTILITIY MODULE 

EXTERN . CLOSE,. GTCOR,. RESET, C0MPBB,C0RSIZ,6ENRAN,IC0RE,PNTBCD 
EXTERN POCDEC,POCDEF,PSDN,QSTN,RNSEED,RUNTME,RUNTMF,STCLOK 
EXTERN TSCAN,XCOMP 

.-THESE ARE LOCATED IN THE ROUTINE THAT GENERATES VARIABLES 



• m f\^ ^ n 



DFRPM RPn7/6/S/4 Fyprri«;pr 



MACRn J!53Rn?4?) 19:36 1?-<;pn-fi5 PaaP 1-1 



;eq 0119 



>/4 Exerciser 
12-Sep-85 17:02 



DFRPH RP07/6/5/4 Exerciser 
DFRPM MAC '" 

1321 
1322 
1323 
1324 
1325 
1326 
1327 
1328 
1329 
1330 
1331 
1332 
1333 
1334 
1335 
1336 
1337 



MACRO 3;53B(12A2) 19:36 12-Sep-85 Page 1-1 
MAINLINE CODE 



EXTERN ADR1,CMDA,CYLl,CyL2,CYL3,DRVl,DRV2,DRV3 
EXTERN DRV4,GENVAR, INPUT, PAT1.PAT2,PAT3,PAT4,SECT1 
EXTERN SECT2,SECT3,SI2E1,SIZE2,SIZE3,SURF1,SURF2,SURF3 

;IN GENERAL, THE TESTS IN THIS MODULE DON'T DO ANY I/O. THE EXCEPTION 

;T0 THIS RULE IS NEXTST WHICH MUST 90 A LOT OF SPECIAL THINGS BECAUSE 

;IT IS VERY TIMING DEPENDENT. THE VARIABLES DECLARED HERE ARE USED IN 
.•NEXTST. 

EXTERN .C0NI,.C0N0,.REL.ABBPCY.ABBPT,CMD1.CMD2,DUMPA 

EXTERN DUMPS. 6ETLOG,LOGPNT,NUMIN.RDRG00,RDRG05,RDRG07,RDRG12 

EXTERN SECTA.SNAPA.TYPBIT.TYPLIN 

XLIST 

LIST 

PAGE 



1 



SEQ 0132 



DF 
DF 



^M A« i^/V 



DFRPM Rpn7/ft/S/4 Fyprri«tPr 



MAfPn XS^RMPA?) ^Q^.^^f^ 1?-<;*»n-fi'; P^n^ 1-? 



Q 0120 



DFRPM 
DFRPM 

1358 
1339 
13A0 
13A1 
13A2 
13A3 
13AA 
1345 
1346 
1347 
1348 
1349 
1350 
1351 
1352 
1353 
1354 
1355 
1356 
1357 
1358 
1359 
1360 
1361 
1362 
1363 
1364 
1365 
1366 
1367 
1368 
1369 
1370 
1371 
1372 
1373 
1374 
1375 
1376 
1377 
1378 
1379 
1380 
1381 
1382 
1383 
1384 
1385 
1386 
1387 
1388 
1389 
1390 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



030600 
030624 



030724 000 00 00 000000 

030725 000 00 00 000000 

030726 000 00 00 000000 

030727 OuJ 00 J 00 000000 



03C730 000 00 00 000000 



030731 000 00 00 000000 



030732 000 00 00 000000 



030733 000 00 00 oOOOOO 



MACRO J:53B(1242) 19:36 12-Sep-85 Page 1-2 
MAINLINE CODE 

S*; %*****»**♦*****♦*♦*♦♦♦*♦***♦**♦********♦♦♦*♦*♦♦*•**♦*♦*♦*♦•***♦*♦*•*** 

;* STORAGE AREA FOR CCW LIST AND PATCH AREA 

S*; ♦****♦♦*»*******♦*♦♦*♦♦****•»»***•***#♦•*•♦♦*♦♦♦*♦**•♦♦♦****♦♦**♦***♦* 



SEQ 0133 



iDFR 
DFR 



COMMENT 


$ 

$ 

XLIST 
LIST 




CBUFF: 


BLOCK 


*D20 


PATCH: 


BLOCK 


*D64 



;THE CHANNEL COMMAND LIST BUFFER 
.•ASSUME 512. WORDS/CCW IH USER MODE .. 

;64. LOCATION PATCH AREA 

XLIST 
LIST 

;* VARIABLES DEFINED IN THIS MODULE 



COMMENT 


$ 


BUF1A: 
BUF2A: 
BUFSIZ: 


$ 

XLIST 

LIST 

Z 

Z 

z 


FULLI: 


z 


SAVP: 


z 



VARFLG: Z 



MPASS: Z 



TSTNAM: Z 

PAGE 



HOLDS ADPR OF BUFFER-1 
HOLDS ADDR OF BUFFE^^-P 
.-iOLDS SIZE ijf LONGEST EXFC MODE BUFFER 

SET rO -1 AFTER PPV HAS GOWE THROUGH 
FULL INITIALIZATIJ AT LEAST ONCE 

THE STACK POINTER (P) IS SAVED HERE AT 
PROGRAM START UP SO IT CAN BE INIT'D 
WITHOUT ANOTHER PGMINT. 

-1 MEANS THE USER IS SELECTING THE 
PARAMETERS IN EACH TEST. IT HAS NO 
MEANING IN DEFAULT MODE. 

THIS IS USED IN DEFAULT MODE ONLY. IT 
IS SET TO -1 IF THE USER WANTS TO RUN 
THE TESTS OVER AND OVER AGAIN UNTIL HE 
ABORTS WITH AN ALTMODE. IF SET TO ZERO. 
THE TEST WILL EXIT TO THE DISPATCHER 
AFTER A SINGLE PASS. FLAG HAS NO 
MEANING IN MANUAL MODE. 

DURING A TEST. THIS HOLDS THE SIXBIT 
NAME OF THE TEST. IT 62 TS THE NAME 
THE TABLE 'TSTLST'. 



OC1A7 /L /C U 



Mtran *CTB/lT/")\ 1 n . 7Z lT_r 



OC n 



DFRPM 
DFRPM 

1391 
1392 
1393 
139A 
1395 
1396 
1397 
1398 
1399 
1400 
KOI 
1402 
1403 
1404 
1405 
1406 
1407 
1408 
1409 
1410 
1411 
1412 
1413 
1414 
1415 
1416 
1417 
1418 
1419 
1420 
1421 
1422 
1423 
1424 
1425 
1426 
1427 
1428 
1429 
1430 
1431 
1432 
1433 
1434 
1435 
1436 
1437 
1438 
1439 
1440 
1441 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 

030734 000 00 00 000000 



MACRO J:53B(1242) 
MAINLINE CODE 

ST. NAM: Z 



19:36 12-Sep-85 Page 1-3 



SEQ 0134 



DFR 
DFR 



030735 000 00 00 000000 



TSTITR: Z 



030736 000 00 00 000000 



030737 000 00 00 000000 



03074C 000 00 00 000000 



TSTADD: Z 



ALTF: Z 



ALTADD: Z 



030741 000 00 00 000000 

030742 000 00 00 000000 

030743 000 00 00 000000 

030744 000 00 00 000000 



030745 000 00 00 000000 



030746 000 00 00 000000 



030747 000 00 00 000000 



HUNG: Z 

NORET: Z 

NORPT: Z 

NOCOMP: Z 



BSVCNT: Z 
BACKUP: Z 

RANDF: Z 

PAGE 



THIS HOLDS A "SUB-TEST" NAME FOR CASES 
LIKE "PAKINT" WHICH RUNS FORMAT, RONLV, 
AND MAPOUT. THIS LOCATION IS LOOKED AT 
IN ROUTINE ".NAME*^' AND IS WHEN NO 
NO SUB-TEST IS BEING RUN. IT HOLDS THE 
SUBTEST NAME IN SIXBIT DURING A SUBTEST. 

THIS IS VALID DURING A TEST. IT IS USED 

IN DEFAULT MODE AND MANUAL MODE 

ITS USE IS TO KEEP TRACK OF 

THE NUMBER OF ITERATIONS LEFT TO GO. 

IT GETS ITS INITIAL VALUE FROM THE 

LEFT HALF OF THE TABLE 'TSTADR' AND 

IS SET UP AT TEST INIT TIME "TINT" 

THIS IS VALID DURING A TEST. IT HOLDS 
THE STARTING ADDRESS OF THE CURRENT 
TEST. IT GETS ITS INITIAL VALUE FROM 
THE RIGHT HALF OF THE TABLE 'TSTADR' 

-1 IF AN ALTMODE IS STRUCK. USUALLY 
CLEARED AFTER IT IS ACKNOWLEDGED.. 
THIS LOCATION IS CLEARED IN EACH CALL 
TO TEST INITIALIZER '"TINT" AT MINIMUM. 

THIS IS SET UP IN EACH TEST. IT HOLDS 
THE ADDRESS OF WHERE THE CODE SHOULD 
BRANCH IF AN ALTMODE IS STRUCK. IT IS 
PART OF THE MECHANISM FOR GETTING OUT 
OF TESTS. THE ALTMODE WILL ALWAYS GET 
VOU BACK TO THE 'WHAT TEST' QUESTION. 

-1 IF DEVICE GETS HUNG 

-1 IF YOU WISH TO INHIBIT RETRY 

-1 IF YOU WISH TO INHIBIT ERROR REPORTS 

;-1 INHIBITS DATA COMPARISONS IN TESTS 
.•THAT WOULD NORMALLY DO DATA COMPARES. 

;AN UP/DOWN COUNTER THAT ALWAYS REFLECTS 
; THE NUMBER OF OUTSTANDING INTERRUPTS. 

SET TO -1 AT START OF XFER IF YOU WANT 
NEXT COMMAND TO BE A BACKUP COMMAND. 
XFER START LOOKS AT THIS FLAG AND KNOWS 
WETHER OR NOT TO APPEND CHANNEL COMMANDS. 

-1 MAKES VARIABLES GET GENERATED FROM 
RANDOM NUMBERS INSTEAD OF FROM 
THE TTY 



rtFDPM 



DPn7/A/C;/Z. Cvarricar 



MAron y^^^Df^OL^)\ iq-ta i?.can.fi<; oana i.a 



1 0^22 



DFRPM 
DFRPM 

HA2 
HA3 
KAA 
KA5 
1AA6 
HA7 
14A8 
K49 
1450 
1451 
1452 
1453 
1454 
1455 
1456 
1457 
1458 
1459 
1460 
1461 
1462 
1463 
1464 
1465 
1466 
1467 
1468 
1469 
1470 
1471 
1472 
1473 
1474 
1475 
1476 
1477 
1478 
1479 
1480 
1481 
1482 
1483 
1484 
1485 
1486 
1487 
1488 
1489 
1490 
1491 
1492 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



030750 000 00 00 000000 



MACRO j;53B(1 242) 19:36 12-Sep-85 Page 1-4 
MAINLINE CODE 



SEO 0135 



RETRYF: Z 



030751 000 00 00 000000 



030752 000 00 00 000000 



030753 000 00 00 000000 

030754 000 00 00 000000 

030755 000 00 00 000000 



030756 777-^77 777777 



SHMODE: Z 



ERROR: Z 



SCPPC: Z 
ERCNT: Z 

SELFLG: Z 



USEPI: -1 



030757 000 00 00 000000 



030760 000 00 00 OOOOPO 



UREQ: Z 



UREL: Z 



PAGE 



THIS IS ACTUALLY A FLAG THAT HOLDS 
ONLY 1 OF 7 STATES AT A TIME. IT IS USED 
BY "lOWAIT". "SERV", AND "RETRY" TO TALK 
INTELEGENTLY TO ONE ANOTHER. 

BIT-35 IS USED PRIMARILY BY INTERRUPT 
SERVICE. HE SETS THIS BIT TO LET RETRY KNOW 
THAT THIS OPERATION NEEDS TO BE RETRIED. 

BIT-34 IS SET BY RETRY TO LET INTERRUPT 
SERVICE KNOW THAT THE CURRENT OPERATION 
IS IN RESPONSE TO HIS REQUEST FOR RETRY. 
INTERRUPT SERVICE USES THIS TO INHIBIT 
SOME ERROR REPORTS. 

BIT-33 IS SET BY RETRY TO LATCH THE FACT 
THAT YOUR IN THE PROCESS OF RETRYING A 
"SEQUENCE" OF THINGS. (IE. MULTI-SECTORS) 

-1 TO GET INTO SHORT PRINTOUT MODE. 
THIS IS THE SAME AS THE TXTINH SWITCH 
NO ENGLISH PRINTOUTS, ONLY NUMERICAL. 



USED BY 'BRANCH" TO FIGURE OUT WHEN TO 
LOOP ON ERROR. CLEARED IN 'BRANCH" AND 
"TINT". SET ANY TIME WE SET "ERFLG" 

SCOPE PC. ALWAYS P IN THIS PGM 

ERR CTR FOR SCOPE. ALWAYS IN THIS PGM 

SET THIS TO -1 BEFORE CALLING SELECT 
IF YOU WANT TO START SELECTION PROCESS 
OTHERWISE THE NEXT DRIVE AVAILABLE FOR 
TEST WILL BE CHOSEN. 

DON'T USE THE PI SYSTEM (EXEC MODE) 
-1 USE THE PI SYSTEM (EXEC MODE). THIS 
IS THE DEFAULT FOR THIS PROGRAM. 
(UNLESS NOTED OTHERWISE IN A PARTICULAR 
TEST WHERE TIMING MAY BE TO CRITICAL) 
ONLY SET AT PROGRAM LOAD TIME 

IF NON-0. THIS LOCATION WILL GET 
EXECUTED AT THE END OF EACH DEVICE 
REQUEST AS THE LAST THING THAT HAPPENS 
ALWAYS IN THIS PROGRAM 

IF NON-0, THIS LOCATION WILL GET 
EXECUTED JUST BEFORE THE DEVICE IS 
GIVEN BACK TO THE MONITOR. 
ALWAYS IN THIS PROGRAM 



isr rtnu 



r%r*AT» / z / c / y 



MA^nn «r7r\/1^/n\ 4 r\ . 



DFRPM 
DFRPM 

U93 
U9A 
U95 
U96 
H97 
1498 
1499 
1500 
1501 
1502 
1503 
1504 
1505 
1506 
1507 
1508 
1509 
1510 
1511 
1512 
1513 
1514 
1515 
1516 
1517 
1518 
1519 
1520 
1521 
1522 
1523 
1524 
1525 
1526 
1527 
1528 
1529 
1530 
1531 
1532 
1533 
1534 
1535 
1536 
1537 
1538 
1539 
1540 
1541 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 

030761 000 00 00 000000 



030762 000 00 00 000000 



MACRO :53B(1242) 19:36 12-Sep-85 Page 1-5 
MAINLINE CODE 



r 



LOCFLG: Z 



FLIST: Z 



030763 000 00 00 000000 



FRECOR: Z 



030764 000 00 00 000000 



FREE: Z 



030765 000 00 00 000000 



030766 000 00 00 000000 



PKIFL6: Z 



ATOCON: Z 



A GENERAL PURPOSE FLAG USED 'LOCALLY' 
IN EACH TEST. ITS MEANING FOR THAT TEST 
IS DOCUMENTED AT THE TEST ITSELF. IT 
WILL NEVER BE LOOKED AT EXCEPT AT THE 
TOP LEVEL OF TEST CODE. 

LOOKED AT BY THE FORMATTER FOR RP07. 
FLAG DETERMINES WETHER OR NOT DEFECT 
DISPLACEMENTS ARE PRINTED AS FORMATTING 
TAKES PLACE. NOT YET SURE HOW I WANT TO 
HANDLE INITIALIZATION OF THIS. THE ACTUAL 
PRINTING IS DONE IN THE DEFECT PROCESSOR 
MODULE. 

USED FOR PGM MEMORY MANAGEMENT.... 
THIS ALWAYS POINTS TO FREE CORE AND IS 
USED BY THE UTILITY ".GTCOR" 
IT IS INITIALIZED TO .JBSA(LEFT) AT 
PROGRAM INIT TIME OR WHENEVER YOU WISH 
TO RECLAIM BUFFERS AND THE EXPANDABLE 
MEMORY AREAS OF THE PROGRAM. THIS DIFFERS 
FROM FREE BECAUSE CORE ABOVE THIS 
POINTER MAY NOT BE ASSIGNED TO YOUR JOB 

AFTER INITIAL CONFIG, THIS WILL ALWAYS 
POINT TO A FREE CORE BUFFER FOR MISC 
CONFIGURATION TASKS. THIS FREE AREA IS THE 
SIZE OF A DSB AREA AND IS GUARANTEED TO 
BE MAPPED INTO JOBS MEMORY SPACE. 



FLAG IS SET TO -1 ONLY DURING THE 
EXECUTION OF TEST "PAKINT". THE FLAG IS 
USED SO THAT FORMAT, RONLY, MAPOUT CAN 
BE LINKED TOGETHER DURING MEDIA INITIALIZE 
WITHOUT HAVING TO GO THROUGH THE DISPATCHER 

AUTO-CONFIGURE FLAG.. SET UP IN RESPONSE 
TO A QUESTION ASKED IN THE CONFIG MODULE. 
IF NON-0. WE DO AN AUTO CONFIGURATION 
WHICH MEANS WE DEFAULT THROUGH THE 
CONFIGURATOR PICKING ALL DRIVES AND 
CHOOSE OPTION-1 IF THERE IS A BAT OR HOM 
BLOCK THERE. THIS MEANS WE WRITE 'IQNLY" 
TO THE MAINTENANCE CYLINDERS BUT READ 
AND POSITION ANYWHERE ON THE MEDIA. 



SEQ 0136 



PAGE 



OFRPM RP07/6/5/4 Exerciser 
DFRPM MAC 12-Sep-85 17:02 



15A2 
1543 
154A 
15A5 
15A6 
15A7 
15A8 
15A9 
1550 
1551 
1552 
1553 
155A 
1555 
1556 
1557 
1558 
1559 
1560 
1561 
1562 
1563 
156A 
1565 
1566 
1567 
1568 
1569 
1570 
1571 
1572 
1573 
1574 
1575 
1576 
1577 
1578 
1579 
1580 
1581 



MACRO :53B(1242) 19;36 12-Sep-85 Page 1-6 
MAINLINE CODE 



030767 000 00 00 000000 



TEMA: 



030770 000 00 00 000000 



TEMB: 



030771 000 00 00 000000 



TEMC: 



030772 000 00 00 000000 



TEMD: 



XLIST 

LIST 

PAGE 



A GENERAL PURPOSE TEMPORARY LOCATION 
WHOSE USE MAY VARY FROM TEST TO TEST 
AND IS THERFORE DESCRIBED AT THE TEST 
THAT USES THIS CELL. 
THIS CELL MAY BE USED ANYWHERE AT ANY 
LEVEL SO IT WILL BE UP TO THE ROUTINE 
USING IT TO SAVE AND RESTORE IT IF IT 
IT USED BELOW THE TOP LEVEL (MAILINE) 

A GENERAL PURPOSE TEMPORARY LOCATION 
WHOSE USE MAY VARY FROM TEST TO TEST 
AND IS THERFORE DESCRIBED AT THE TEST 
THAT USES THIS CELL. 
THIS CELL MAY BE USED ANYWHERE AT ANY 
LEVEL SO IT WILL BE UP TO THE ROUTINE 
USING IT TO SAVE AND RESTORE IT IF IT 
IT USED BELOW THE TOP LEVEL (MAILINE) 

A GENERAL PURPOSE TEMPORARY LOCATION 
WHOSE USE MAY VARY FROM TEST TO TEST 
AND IS THERFORE DESCRIBED AT THE TEST 
THAT USES THIS CELL. 
THIS CELL MAY BE USED ANYWHERE AT ANY 
LEVEL SO IT WILL BE UP TO THE ROUTINE 
USING IT TO SAVE AND RESTORE IT IF IT 
IT USED BELOW THE TOP LEVEL (MAILINE) 

A GENERAL PURPOSE TEMPORARY LOCATION 
WHOSE USE MAY VARY FROM TEST TO TEST 
AND IS THERFORE DESCRIBED AT THE TEST 
THAT USES THIS CELL. 
THIS CELL MAY BE USED ANYWHERE AT ANY 
LEVEL SO IT WILL BE UP TO THE ROUTINE 
USING IT TO SAVE AND RESTORE IT IF IT 
IT USED BELOW THE TOP LEVEL (MAILINE) 



SEQ 0137 



r 



r 



DFRPM 
DFRPM 

1582 
1583 
158^ 
1585 
1586 
1587 
1588 
1589 
1590 
1591 
1592 
1593 
159A 
1595 
1596 
1597 
1598 
1599 
1600 
1601 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



030773 

030773 015 012 015 012 122 



MACRO X53B(12A2) 19:36 12-Sep-85 Page 1-7 
MAINLINE CODE 

$*• ********************************************************************** 
;* THE PROGRAM NAME MESSAGE 

S*; **************♦***♦♦♦♦*******♦*♦***♦***««*♦*♦*♦*••*♦♦♦**•***♦***•♦*♦♦• 

COMMENT $ 

% 

XLIST 
LIST 

PGMNAM: ASCIZ? 

RH20/RP07/6/4 FORMATTER/EXERCISER (DFRPM) 



SUBTTL START AND RESTART CODE 
XLIST 
LIST 
PAGE 



SEQ 0138 



126 



DFRPM 
DFRPM 

1602 
1603 
1604 
1605 
1606 
1607 
1608 
1609 
1610 
1611 
1612 
1613 
16K 
1615 
1616 
1617 
1618 
1619 
1620 
1621 
1622 
1623 
1624 
1625 
1626 
1627 
1628 
1629 
1630 
1631 
1632 
1633 
163A 
1635 
1636 
1637 
1638 
1639 
1640 
1641 
1642 
1643 
1644 
1645 
1646 
1647 
1648 
1649 
1650 
1651 
1652 
1653 
1654 
1655 
1656 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



031005 
031005 
031006 
031007 
031010 
031011 
031012 

031013 
031014 
031015 

031016 
031017 
031020 

031021 
031022 

031023 
031024 
031025 
031026 
031027 
031030 
031031 



031032 
031033 

031034 
031035 
031036 

031037 
031040 



255 00 
332 00 
254 00 
402 00 
476 00 
476 00 



00 000000 
00 030056 
00 031046 
00 030727 
00 030143 
00 030511 



402 00 00 030056 
265 00 00 030011 
202 17 00 030730 

40? 00 00 030047 
2uJ 01 00 042077' 
202 00 00 030072 

200 01 00 042100' 
202 01 00 030220 



205 00 

502 00 

201 00 

202 00 
260 17 
260 17 
260 17 



00 500000 
00 -000400 
00 340000 
00 000000* 
00 000000* 
00 000000* 
00 000000* 



554 01 00 000120 
202 01 00 030763 

402 00 00 030724 
402 00 00 030725 
402 00 00 030764 

200 01 00 000000* 
402 00 01 000000 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-8 
START AND RESTART CODE 

;* FULL START UP AND INIT CODE 

COMMENT $ 

$ 

XLIST 
LIST 

NOTE: - THERE ARE 2 MAJOR WAYS TO START A DIAGNOSTIC 
STD - STARTS YOU AT 30000 WITH THE FLAG "SONETM" AS IS. 
STM - STARTS YOU AT 30000 WITH THE FLAG "SONETM" CLEARED. 

STM IS THEREFORE USED FOR FULL START/RESTART 
STD IS THEREFORE USED FOR QUICK STARTUP 



SEQ 0139 



DFRPM 
DFRPM 

2142 
2143 
2144 
2145 
2146 
2147 
2148 
2149 
2150 



S: 

START; 



STA: 



JFCL 

SKIPE 

JRST 

SETZM 

SETOM 

SETOM 

SETZM 

PGMINT 

MOVEM 

SETZM 

MOVE 

MOVEM 

MOVE 
MOVEM 



STARTE: MOVSI 
HLLM 
MOVE I 
MOVEM 
GO 
GO 
GO 



JONETM 

STARTQ 

FULLI 

MAPNEU 

PVPAGI 

SONETM 

P.SAVP 

PASCNT 

1,CJSR PARSER] 

SITRX1 

1.C400000,.1] 
1.PNTENB 

0.500000 

0.400 

0.340000 

O.CBASE 

STCLOK 

RNSEED 

SETTRP 



IS SUBRTN PK6 ALREADY INITIALIZED ? 
YES. TRY FOR A QUICK START... 
NO. CLEAR THE FULL INIT FLAG 
MAP ALL MEMORY 
ALWAYS USE PAGING 

CLEAR ONCE FLAGS 
INIT SUBROUTINE PKG 
SAVE STACK VALUE 

INIT PASS COUNTER 

ADDITIONAL PARITY SERVICE ROUTINE 

PATCH INTO SUBROUTINE PKG 

A LARGE NEG NUMBER 

CAN'T EXCEED PRINT LIMIT NOW 

ACCESS BITS FOR THE PAGE TABLE 
MAPS 340000 TO PHYSICAL 
CAUSES PAGING WHEN E IS CALCULATED 
CHANNEL ROUTINES NOW PAGE CORRECTLY 
INIT PGM RUNTIME TO 00:00:00 
SEED THE RANDOM NUMBER GENERATOR 
PATCH IN A UUO HANDLER 



.-RECLAIM ALL THE DYNAMIC BUFFER AREAS 



HLRZ 
MOVEM 

SETZM 
SETZM 
SETZM 

MOVE 
SETZM 



1..JBSA 
1.FREC0R 

BUF1A 
BUF2A 
FREE 

1.RHWD 
0(1) 



.•THIS GETS FIRST FREE CORE LOCATION 
.-INIT'S POINTER FOR ".GTCOR" 

;1ST BUFFER 
.-NOW 2ND BUFFER 
.•RECLAIMS FREE DSB AREA 

.•CLEAR RH STATUS TABLE 



21 



DFRPM 
DFRPM 

1657 
1658 
1659 
1660 
1661 
1662 
1663 
166A 
1665 
1666 
1667 



RP07/6/5/4 Exerciser 

MAC 12-Sep-85 17:02 

0310A1 253 01 00 031040 

031042 200 01 00 000000* 

031 043 402 00 01 OQOOOQ 

031044 253 01 GO 031043 

031045 254 00 00 031061 



MACRO J:538(1242) 19:36 12-Sep-85 Page 1-9 
START AND RESTART CODE 



SEQ 0140 



DFRPM 
DFRPM 



AOBJN 1..-1 



MOVE 
SET7M 
AOBJN 
JRS: 



XLIST 

LIST 

PAGE 



I.DEVWD 
0(1) 
1..-1 
INI COM 



.-CLEAR DRIVE STATUS TABLE 
;T0 COMMON CODE 



r 



r 



DFRPM 
DFRPM 

1668 
1669 
1670 
1671 
1672 
1673 
1674 
1675 
1676 
1677 
1678 
1679 
1680 
1681 
1682 
1683 
1684 
1685 
1686 
1687 
1688 
1689 
1690 
1691 
1692 
1693 
1694 
1695 
1696 
1697 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



031046 
031046 
031047 

031050 
031051 
031052 
031053 

031054 
031055 
031056 
031057 
031060 



336 00 00 030727 

254 00 00 031010 

200 17 00 030730 
336 00 00 030037 
7 024 20 00 002000 

255 00 00 000000 



031 00 00 042101' 
260 17 00 000000* 
00 031054 
00 031075 
JO 00 031061 



254 OC 

254 

25>- 



MACRO :538(1242) 19:36 12-Sep-85 Paqe 1-10 
START AND RESTART CODE 

S*- •♦****************«♦*♦**»**»******•**•♦***»**•**♦****♦*******♦»»••«*** 
:* SHORT INITILIZATJON ROUTINE 



SEQ 0141 



COMMENT $ 



HERE BECAUSE PROGRAM WAS STARTED AT 30004 OR, PROGRAM WAS 

RESTARTED WITH AN 'STD' COMMAND. 

$ 

XLIST 

LIST 



STARTQ: SKIPN FUI.LI 

JRST STA 

MOVE P.SAVP 

SKIPN USER 

CONO 24.1825 
JFCL 

TEXTF CASCIZ/ 

RECONFIGURE ? /] 

60 QSTN 

JRST .-2 

JRST DISPAT 

JRST INICOM 

XLIST 

LIST 

PAGE 



DFRPM 
DFRPM 

2206 
2207 
2208 

2210 
2211 
2212 
2213 
2214 
2215 



.-SKIP IF WE'VE DONE A FULL INIT 
.•NEVER. THEN DO ONE 

.•RESTORE PUSH DOWN LIST 

.-USER MODE ? 

;RE-STARTS CLOCK ... MAY HAVE BEEN SHUT 

; DOWN BY KLDCP. DDT. ETC 



ASK ABOVE QUESTION 
TIMEOUT 

ANSWER IS 'W 
ANSWER IS YES 



DFRPM 


RP07/6/5/4 I 


■xerciser 


DFRPM 


MAC 


12-Sep-85 17:02 


1698 












1699 












1700 












1701 












1702 












1703 












1704 












1705 












1706 












1707 












1708 












1709 












1710 


031061 


037 


10 





00 000002 


1711 


031062 


336 


00 





00 030037 


1712 


031063 


260 


17 





00 000000* 


1713 


031 064 


260 


17 





00 000000* 


171A 


031065 


332 


00 





00 030764 


1715 


031066 


254 


00 





00 031072 


1716 


031067 


201 


01 





00 002413 


1717 


031070 


260 


17 





00 000000* 


1718 


031071 


202 


01 





00 030764 


1719 












1720 


031072 


260 


17 





00 000000* 


1721 


031073 


476 00 00 030727 


1722 
1723 
172A 


031074 


254 


00 


00 031075 












1725 












1726 












1727 












1728 













MACRO X53B(1242) 19:36 12-Sep-85 Page 1-11 
START AND RESTART CODE 

$•• »»*»♦•»*•»»••*»»*♦*♦*»»***»****♦»**»**»»*♦*♦»*»♦*♦**♦♦♦♦**•♦*♦**♦♦♦♦♦* 
;* THIS IS COMMON INJT CODE FOR EVERYONE 

COMMENT $ 

HERE WE BUILD BUFFERS (AS REQ'D), PERFORM CONFIGURATION AND 

THEN BRANCH TO THE DISPATCHER 

S 

XLIST 

LIST 

INICOM: SWITCH ;READ CONSOLE SWITCHES 

USER MODE ? 

NO.. INIT THE PI SYSTEM 
ASSIGN 2 DATA BUFFERS 
ASSIGN A FREE DSB AREA IF NEEDED 

ALREADY THERE 

GET SIZE OF DSB AREA 

GET MEMORY ALLOCATED AND CLEARED 

NOW HAVE IT ASSIGNED 

CONFIG AND SET UP "DIAG" 
FULL INIT HAS BEEN DONE 
TO DISPATCHER 



SEO 0142 



SWITCH 




SKIPN 


USER 


GO 


INITPI 


GC 


ASBUF 


SKIPE 


FREE 


JRST 


.+4 


MOVE I 


1.DSBSIZ 


GO 


.6TC0R 


MOVEM 


1,FREE 


60 


CONFIG 


SETOM 


FULLI 


JRST 


D I SPAT 


OP LEVEL TEST DI 


XLIST 




LIST 




PAGE 





DFRPM 
DFRPM 

2216 
2217 
2218 
2219 
2220 
2221 
2222 
2223 
2224 
2225 
2226 
2227 
2228 
2229 
2230 
2231 
2232 
2233 
2234 
2235 
2236 
2237 
2238 
2239 
2240 
2241 
2242 
2243 
2244 
2245 
2246 
2247 
2248 
2249 
2250 
2251 
2252 
2253 
2254 
2255 
2256 
2257 
2258 
2259 
2260 
2261 
2262 
2263 
2264 
2265 
2266 
2267 
2268 
2269 
2270 



r 



DFRPM 
OFRPM 

1729 
1730 
1731 
1732 
1733 
173A 
1735 
1736 
1737 
1738 
1739 
17A0 
1741 
1742 
1743 
1744 
1745 
1746 
1747 
1748 
1749 
1750 
1751 
1752 
1753 
1754 
1755 
1756 
1757 
1758 
1759 
1760 
1761 
1762 
1763 
1764 
1765 
1766 
1767 
1768 
1769 
1770 
1771 
1772 
1773 
1774 
1775 
1776 
1777 
1778 
1779 
1780 
1781 
1782 
1783 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



031075 
031076 
031077 
031100 
031101 
031102 
031103 

031104 
031105 
031106 
031107 
031110 
031111 
031112 
031113 
031114 
031115 
031116 
031117 
031120 
031121 
031122 
031123 
031124 
031125 
031126 
031127 

031130 
031131 

031132 
031133 
031134 
031135 
031136 
031137 
031140 
031141 



336 00 
260 17 
402 00 
402 00 
402 00 
402 00 
402 00 

031 00 
037 10 
254 00 
316 00 
254 00 
316 00 
254 00 
3 10 00 
254 00 
316 00 
254 00 
316 00 
254 00 
316 00 
254 00 
312 00 
254 00 
476 00 
260 17 
254 00 



00 030037 
00 031063* 
00 030731 
00 030732 
00 030733 
00 030736 
00 030735 

00 042105' 
00 000003 
00 031075 
00 042114' 
00 031175 
00 042115' 
00 031166 
00 042116' 
00 031130 
00 042117' 
00 031130 
00 042120' 
00 031132 
00 042121' 
00 031126 
00 042122' 
00 031075 
00 030751 
00 031254 
00 031075 



031 00 00 040130 
254 00 00 031075 



402 00 
031 00 
037 10 
254 00 
316 00 
254 00 
312 00 
254 00 



00 030732 
00 042123' 
■ 00 000003 
00 031132 



00 042134' 
00 031144 
00 042135' 
00 031132 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-12 
TOP LEVEL TEST DISPATCH AND USER INTERFACE 

$•• ********************************************************************** 
;* DISPAT - PROGRAM DISPATCHER 



SEQ 0143 



COMMENT $ 



DOES DIALOGUE WITH OPERATOR DIALOGUE AND SETS UP FLAGS THAT 

INDICATE WHETHER OR NOT WE'RE RUNNING IN DEFAULT MODE AND IF IN 

DEFAULT MODE, WHETHER OR NOT MULTIPLE PASSES ARE TO BE RUN. AT 

THE END OF EACH PASS SWITCH 2 IS EXAMINED FOR TOTALS PRINTING AND 

SWITCH EXAMINE TO SEE IF WE ABORT BACK TO DIAMON. 

$ 

XLIST 

LIST 



DISPAT: 



SKIPN 

GO 

SETZM 

SETZM 

SETZM 

SETZM 

SETZM 

TEXTF 



USER 

INITPI 

VARFLG 

MPASS 

TSTNAM 

TSTADD 

TSTITR 

CASCIZ/ 



USER MODE ? 

NO.. INIT THE PI SYSTEM 

CLEAR THE VARIABLE MODE FLAG 

CLEAR MULTI PASS FLAG 

TEST NAME 

TEST ADR 

ITERATIONS 



ENTER MODE (DEF, MAN. VAR, HELP) - /J 



VQ: 



DISHLP: 



TTSIXB 

JRST 

CAMN 

JRST 

CAMN 

JRST 

CAMN 

JRST 

CAMN 

JRST 

CAMN 

JRST 

CAMN 

JRST 

CAME 

JRST 

SETOM 

GO 

JRST 

TEXTF 
JRST 



DISPAT 

CSIXBIT/DDT/J 

EXDD 

CSIXBIT/EXIT/: 

EXX 

CSIXBIT/HELP/J 

DISHLP 

CSIXBIT/H/] 

DISHLP 

CSIXBIT/DEF/: 

DISDEF 

CSiXBIT/MAN/] 

VQ 

[SIX8IT/VAR/] 

DISPAT 

VARFLG 

MNSEL 

DISPAT 

HELP1 
DISPAT 



.•INPUT SIXBIT 
.•ERROR 



;END PROG UUO . 
.■GIVE HELP MS6 



TO DIAMON 



.•WANTS DEFAULT MODE 

.•MANUAL MODE DESIRED 

.•ILLEGAL INPUT 
.•VARIABLE MODE IS DESIRED 
;RUN A MANUAL TEST 
;60 BACK AND TRY AGAIN 

.•APPROPRIATE HELP MESSAGE 
;MORE INPUT 



DISDEF: SETZM 
TEXTF 
TTSIXB 
JRST 
CAMN 
JRST 
CAME 
JRST 



MPASS ;SET UP FOR SINGLE PASS 

[ASCIZ/DEF> SINGLE OR MULTIPLE PASSES (S OR M) - /] 

.•INPUT 
DISDEF ;ERROR 
CSIXBIT/S/] 

STARTA ;SINGLE 
CSIXBIT/M/] 
DISDEF ;ERROR. NEITHER 







DFRPM 


R 


DFRPM 


M 


2271 





2272 





2273 


C 


2274 


C 


2275 


C 


2276 





2277 




2278 




2279 




2280 





2281 


c 


2282 


c 


2283 





2284 


c 


2285 


c 


2286 


c 


2287 


C 


2288 


c 


2289 


C 


2290 


c 


2291 


C 


2292 


c 


2293 


c 


2294 


c 


2295 


C 


2296 


c 


2297 


c 


2298 


c 


2299 





2300 


c 


2301 




2302 




2303 




2304 




2305 





DFRPM 
DFRPM 

178A 
1785 
1786 
1787 
1788 
1789 
1790 
1791 
1792 
1793 
1794 
1795 
1796 
1797 
1798 
1799 
1800 
1801 
1802 
1803 
180A 
1805 
1806 
1807 
1808 
1809 
1810 
1811 
1812 
1813 
18K 
1815 
1816 
1817 
1818 
1819 
1820 
1821 
1822 
1823 
182A 
1825 
1826 
1827 
1828 
1829 
1830 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO 3!53B(1242) 19;36 12-Sep-85 Page 1-13 
TOP LEVEL TEST DISPATCH AND USER INTERFACE 



SEQ 0144 



031142 
031143 

031144 
031145 
031146 
031147 
031150 
031151 
031152 
031153 
031154 
031155 
031156 
031157 
031160 
031161 
031162 
031163 



031164 
031165 



031166 
031167 
031170 
031171 
031172 
031173 
031174 

031175 
031176 
031177 
031200 
031201 
031202 
031203 



476 00 00 030732 
254 00 00 031144 



260 17 
332 00 
254 00 
037 10 
200 00 
603 00 
260 17 
603 00 
254 00 
603 00 
254 00 
037 07 
334 00 
254 00 
332 00 
254 00 



00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 



031204 
030737 
031075 
000002 
030046 
100000 
037375 
200000 
031075 
400000 
031166 
000003 
000000 
031075 
030732 
030057 



031 00 00 042136' 
254 00 00 031075 



336 00 

037 16 

260 17 

402 00 

2oJ 17 

260 17 

037 16 

336 00 
254 00 
260 17 
402 00 
260 17 
260 17 
254 00 



00 030037 
00 000004 
00 000000* 
00 000000* 
00 000000* 
00 000000* 
00 000004 

00 030037 
00 030007 
00 031170* 
00 031171* 
00 031172* 
00 031173* 
00 030007 



SETOM MPASS 
JRST STARTA 



SWC; 



STARTA: GO 

SKIPE 

JRST 

SWITCH 

MOVE 

TLNE 

GO 

TLNE 

JRST 

TLNE 

JRST 

TTALTM 

SKI PA 

JRST 

SKIPE 

JRST 

TEXTF 

END OF SINGLE 



ACCEPT 

ALTF 

DISPAT 

0,CONSW 

0, TOTALS 

TOTPNT 

0,RSTART 

DISPAT 

0, ABORT 

EXX 



/3 



JRST 



DISPAT 
MPASS 
BEGEND 
CASCIZ/ 
PASS 

DISPAT 



MULTIPLE PASSES 
GO DO A PASS 

RUN A PASS 

ALTMODE STRUCK ? 

YES 

READ THE SWITCHES 

FETCH CONSOLE SWITCHES 

WANT TOTALS 

YES. PRINT THEM 

WANT TO RESTART 

YES 

WANT TO ABORT? 

YES. TO DIAMON 

ALTMODE ? 

NO 

YES 

WANT MULTI-PASS. 



;BACK TO DISPATCHER 



;HERES EXIT TO DDT AND DIAMON CODE 



EXX: 



EXDD: 



SKIPN 

EOPUUO 

GO 

SET2M 

GO 

GO 

EOPUUO 

SKIPN 

JRST 

GO 

SET7M 

GO 

GO 

JRST 



USER 

CCCLR 
CCFL6 
.CLOSE 
.RESET 



USER 

DDTSRT 

CCCLR 

CCFI.G 

.CLOSE 

.RESET 

DDTSRT 



USER MODE ? 

NO... END PGM 

TURN OFF CTRL-C CAPABILITY 

CLEAR CTRL-C FLAG 

CLOSE PNT FILE IF USING LPT 

RESET THE JUB 

DO END OF PROGRAM UUO 

USER MODE ? 

NO 

TURN OFF CTRL-C CAPABILITY 

CLEAR CTRL-C FLAG 

CLOSE PNT FILE IF USING LPT 

RESET THE JOB 

GO TO DDT IF ITS THERE 



SUBTTL TEST DISPATCHER IN DEFAULT MODE 
XLIST 
LIST 
PAGE 



r\r rvrtu 



r\r*A"> 1 1 ic 1 1 



uA/«nA wr '9r\ / 4 't / n \ 4n.7/ ^ '\ r- . 



V 



SEQ 0132 



DFRPM 


RP07/6/5/4 Exerciser 


MACRO X53B(1242) 19:36 12-SeD-85 


Page 1-14 


DFRPM 


MAC 


12-Sep-85 17:02 


TEST DISPATCHEF 


1 IN DEFAULT MODE 


J 


1831 






S*' **•***•**•********♦ V :*•*********•***********•************•*****•**♦*♦* 


1832 






;* ACCEPT -- RUNS THE DEFAULT DISPATCH LIST 


1833 






S*; ********************************************************************** 


1834 












1835 






COMMENT $ 






1836 












1837 






FORMAT, 


MAPOUT ARE NOT RUN. ANY EXERCISE 


1838 






CAN BE 


SKIPPED BY MAKING 


HIS ITERATION COUNT IN THE 


1839 






TSTADR 


TABLE. 




1840 






CALL SEQ: 




1841 






GO 


ACCEPT 


;CALL THE ROUTINE 


1842 






RTN 




;IT RETURNS HERE 


1843 






$ 






1844 






XLIST 






1845 






LIST 






1846 












1847 


031204 


402 00 00 030737 


ACCEPT: SETZM 


ALTF 


;CLR ALTMODE FOUND FLAG 


1848 


031205 


261 17 00 OOOOOO 


PUT 





;SAVE THINGS 


1849 


031206 


261 17 00 000007 


PUT 


X 




1850 


031207 


476 00 00 000007 


SETOM 


X 


;INIT THE POINTER TO -1 


1851 


031210 


402 00 00 030731 


SETZM 


VARFLG 


;OUT OF MANUAL MODE 


1852 


031211 


332 00 00 030737 


ACBP: SKIPE 


ALTF 


•ALTMODE STRUCK ? 


1853 


031212 


254 00 00 031250 


JRST 


ACPTX 


•YES 


1854 


031213 


350 00 00 000007 


AOS 


X 


•BUMP TEST INDEX POINTER 


1855 


031214 


200 00 07 040001 


MOVE 


0,TSTLST(X) 


•GET NAME FROM TESTLIST 


1856 


031215 


322 00 00 031251 


JUMPE 


0,ACPTX1 


•0 MEANS WERE DONE 


1857 


031216 


202 00 00 030733 


MOVEM 


0, TS TNAM 


•SAVE TEST NAME 


1858 


031217 


550 00 07 040036 


HRRZ 


0,TSTADR(X) 


•GET TEST ADDR 


1859 


031220 


202 00 00 030736 


MOVEM 


O.TSTADD 


•SAVE T 


1860 


031221 


554 00 07 040036 


HLRZ 


0,TSTADR(X) 


•GET ITERATION COUNT 


1861 


031222 


3^^ 00 00 031211 


JUMPE 


O.ACBP 


•DON'T DO IF ZERO 


1862 


031223 


402 00 00 030765 


SETZM 


PKIFLG 


•CLEAR PAKINIT FLAG 


1863 


031224 


261 17 00 000007 


PUT 


X 




1864 


031225 


261 17 00 OOOOOO 


PUT 







1865 


031226 


261 17 00 000001 


PUT 


1 




1866 


031227 


261 17 00 000002 


PUT 


2 






031230 


261 17 00 000003 


PUT 


3 




1868 


031231 


261 17 00 000004 


PUT 


4 




1§69 


031232 


261 17 00 000005 


PUT 


5 




1870 


031233 


260 17 1 00 030736 


GO 


aTSTADD 


DISPATCH TO THE TEST 


1871 


031234 


261 17 00 030737 


PUT 


ALTF 


SAVE STATE OF ALTMODE FLAG 


1872 


031235 


332 00 00 030737 


SKIPE 


ALTF 


IF ALTMODE EXIT WE WANT TOTALS .. 


1873 


031236 


260 17 00 037375 


GO 


TOTPNT 


PRINT TOTALS 


1874 


031237 


262 17 C 00 030737 


GET 


ALTF 


RESTORE STATE FOR DISPATCHER LINKEAGE 


1875 


031240 


262 17 00 000005 


GET 


5 




1876 


031241 


262 17 00 000004 


GET 


4 




1877 


031242 


262 17 00 000003 


GET 


3 




1878 


031243 


262 17 00 000002 


GET 


2 




18;'9 


031244 


262 17 00 000001 


GET 


1 






031245 


262 17 00 OOOOOO 


GET 







1881 


031246 


262 17 00 000007 


GET 


X 




1883 
1884 


031247 


254 00 00 031211 


JRST 


ACBP 


SELECT NEXT TEST 












1885 


031250 




ACPTX: TEX'T 


CASCIZ/ 





SEQ 0145 



Dl 
Dl 



r 



r 



EQ 0133 



DJ-RPM 
DFRPM 

1886 
1887 
1888 
1889 
1890 
1891 
1892 
1893 
189A 
1895 



RP07/6/5/A Exerciser 
MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 
TEST DISPATCHER IN DEFAULT MODE 



1-15 



SEQ 0U6 



DPI 
DPI 



031250 031 00 

031251 262 17 

031252 262 17 

031253 263 17 



00 0A2143' 
00 000007 
00 000000 
00 000000 



LEAVING DEFAULT MODE 

ACPTX1: GET X 

GET 

RTN 



/] 



SUBTTL TEST DISPATCHER FOR MANUAL TEST SELECTION 

XLIST 

LIST 

PAGE 



r 



BQ 0134 



DFRPM 
DFRPM 

1896 

1897 

1898 

1899 

1900 

1901 

1902 

1903 

1904 

1905 

1906 

1907 

1908 

1909 

1910 

1911 

1912 

1913 

19U 

1915 

1916 

1917 

1918 

1919 

1920 

1921 

1922 

1923 

1924 

1925 

1926 

1927 

1928 

1929 

1930 

1931 

1932 

1933 

1934 

1935 

1936 

1937 

1938 

1939 

1940 

1941 

1942 

1943 

1944 

1945 

1946 

1947 

1948 

1949 

1950 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



031254 
031255 
031256 
031257 
031260 
031261 

031262 
031263 

031264 
031265 
031266 
031267 
031270 
031271 
031272 
031273 
031274 
031275 
031276 
031277 
031300 
031301 
031302 
0.^303 
031304 
031305 
031306 
031307 
031310 
031311 
031312 
031313 
031314 
031315 
031316 
031317 
031320 
031321 
031322 
031323 
C31324 



261 17 00 000000 
261 17 00 000001 
261 17 00 000002 
254 00 00 031261 
031 00 00 042150* 
402 00 00 030733 

201 01 00 042151' 
332 00 00 030731 



01 
00 
00 



201 
031 
031 

037 10 
254 00 
322 00 
316 00 
254 00 
5ir 00 
254 00 
316 00 
254 00 
316 00 
254 00 
312 00 
254 00 
260 17 
254 00 
312 00 
254 00 
260 17 
254 00 
312 00 
254 00 
260 17 
254 00 
316 00 
254 00 
312 00 
254 00 
200 U 
254 00 
200 02 



00 042153' 
01 000000 
00 042155' 
00 000003 
00 031260 
00 031260 
00 042116' 
00 031352 
00 042117' 
00 031352 
00 042162' 
00 031354 
00 042115' 
00 031166 
00 042163' 
00 031306 
00 000000* 
00 031261 
00 042164' 
00 031312 
00 000000* 
00 031261 
00 042165' 
00 031316 
00 031027* 
00 031261 
00 042114' 
00 031175 
00 042166' 
00 031324 
00 030730 
00 031061 
00 000000 



MACRO :53B(1242) 19:36 12-Sep-85 Page 1-16 
TEST DISPATCHER FOR MANUAL TEST SELECTION 

:*'MANSEL — TEST DISPATCHER FOR MANUAL AND VARIABLE MODE 

5*; **********ft****************************************t****************** 



SEO 0147 



OFF 
DFF 



COMMENT $ 



ROUTINE IS CALLED FROM WITHIN "DISPAT" AND RETURNS ONLY WHEN THE 

NAME 'WODE" IS ENTERED IN RESPONSE TO WHAT TEST. 

$ 

XLIST 

LIST 



MNSEL: 

MINERR: 
MANSE L: 

MAN> /I 
VAR> /J 



PUT 

PUT 

PUT 

JRST 

TEXTF 

SETZM 

MOVE I 

StClPE 
MOVE I 

TEXTF 

TEXTF 

TTSIXB 

JRST 

JUMPE 

CAMN 

JRST 

CAMN 

JRST 

CAMN 

JRST 

CAMN 

JRST 

CAME 

JRST 

60 

JRST 

CAMt 

JRST 

GO 

JRST 

CAME 

JRST 

GO 

JRST 

CAMN 

JRST 

CAME 

JRST 

MOVE 

JRST 

MOVE 





1 

2 

MANSE L 

CASCIZ/???/] 

TSTNAM 

1, CASCIZ/ 

VARFLG 
1, CASCIZ/ 



.•INVALIDATE THE NAME 

.•MANUAL MODE PROMPT 

.•MODIFY PROMPT IF IN VARIABLE MODE 



(1) ;PRINT APPROPRIATE PROMPT 

CASCIZ/WHAT TEST (OR HELP): /] 

.•INPUT 
MINERR ; ERROR 
O.MINERR ;ZERO IS ALSO AN ERROR 
O.CSIXBIT/HELP/] 
MANHLP .-WANTS HELP 
O.CSJXBIT/H/] 

MANHLP ; WANTS HELP 
O.CSIXBIT/MODE/] 
MANEX 

0.C5IXBIT/EXIT/] 

EXX ;END PROG UUO ... TO DIAMON 

O.CSIXBIT/RUNTME/] ;WANT RUNTIME ? 
.♦■3 ;N0 

RUNTMF ; FORCE PRINT IT 
MANSEL ;NOW PROCESS NEXT CMD 
O.CSIXBIT/PGMSIZ/] .-WANT PROGRAM SIZE ? 
.+3 ;N0 

CORSIZ ;YES. PRINT IT 
MANSEL .-AND RE-PROMPT 
O.CSIXBIT/RUNZRO/] 
.+3 .-NOT A RUNZRO CMD 

STCLOK ;INIT PGM RUNTIME TO ZERO 
MANSEL ;G0 BACK FOR NEXT COMMAND 
O.CSIXBIT/DDT/J 
EXDD ;T0 DDT 

O.CSIXBIT/CONFIG/] ;RE-SELECT OPTIONS ? 
.+3 ;N0 ... 

P.SAVP ;NOT ELEGANT 

INICOM ; ....BUT VERY EFFECTIVE ... 
2.0 .-NAME TO 2 FOR SCAN 



r" 



— 

DFRPM 


RP07/6/5/4 1 


[xerciser 


MACRO X53B(1242) 19:36 12-SeD-85 


Page 1-17 
SELECTION 


OFRPM 


MAC 


12-: 


>ep" 


-85 17:02 


TEST DISPATCHER 


FOR MANUAL TEST 


1951 


031325 


201 


01 





00 040001 


MOVE I 


1.TSTLST 


jPOINTER TO TABLE 


1952 


031326 


260 


17 





00 OOOOOO* 


GO 


TSCAN 


rSCAN FOR THE NAME 


1953 


031327 


254 


00 





00 031260 


JRST 


MINERR 


;NOT FOUND 


1954 


031330 


202 


02 


00 030733 


MOVEM 


2.TSTNAM 


;AC1 IS NOW AN INDEX 


1955 


031331 


550 02 





01 040036 


HRRZ 


2.TSTADR(1) 


;6ET ADDRESS ONLY 


1956 


031332 


202 


02 





00 030736 


MOVEM 


2,TSTADD 


;AND SAVE IT (DISPATCH ADDRESS) 


1957 


031333 


402 


00 





00 030765 


SETZM 


PKIFLG 


;CLEAR PAKINIT FLAG 


1958 


031334 


261 







00 OOOOOO 


PUT 





•SAVE AC'S 


1959 


031335 


261 







00 000001 


PUT 


1 




1960 


031336 


261 







00 000002 


PUT 


2 




1961 


031337 


261 







00 000003 


PUT 


3 




1962 


031340 


261 







00 000004 


PUT 


4 




1963 


031341 


261 







00 000005 


PUT 


5 




1964 


031342 


260 




1 


00 030736 


60 


aTSTADD 


•DISPATCH TO THE TEST 


1965 


031343 


262 







00 000005 


GET 


5 


•RESTORE 


1966 


031344 


262 







00 000004 


GET 


4 




1967 


031345 


262 







00 000003 


GET 


3 




1968 


031346 


262 







00 000002 


GET 


2 




1969 


031347 


262 







00 000001 


GET 


1 




1970 


031350 


262 







00 OOOOOO 


GET 







1971 


031351 


254 


00 





00 031261 


JRST 


MANSE L 


•HERE AFTER ITERATIONS COMPLETE 


1972 


031352 


031 


00 





00 040322 


MANHLP: TEXTF 


HELP2 


•HELP MESSAGE 


1973 
1974 
1975 


031353 


254 


00 





00 031261 


JRST 


MANSE L 


•ASK AGAIN 


031354 










MANEX: TEXTF 


[ASCIZ/ 




1976 


031354 


031 


00 





00 042167' 


LEAVING CURRENT 


RUN MODE /] 




1977 


031355 


262 


17 





00 000002 


GET 


2 


RESTORE THINGS 


1978 


031356 


262 


17 00 000001 


GET 


1 




1979 


031357 


262 


17 00 OOOOOO 


GET 







1980 
1981 
1982 


031360 


263 


17 





00 OOOOOO 


RTN 


1 


AND EXIT 


















1983 












SUBTTL EX1 - A 


RECALIBRATE EXERCISE 


1984 












XLIST 






1985 












LIST 






1986 












PAGE 







SEQ 0148 



r 



r" 



I 0136 



OFRPM 
DFRPM 

1987 
1988 
1989 
1990 
1991 
1992 
1993 
199A 
1995 
1996 
1997 
1998 
1999 
2000 
2001 
2002 
2003 
200A 
2005 
2006 
2007 
2008 
2009 
2010 
2011 
2012 
2013 
20K 
2015 
2016 
2017 
2018 
2019 
2020 
2021 
2022 
2023 
2024 
2025 
2026 
2027 
2028 
2029 
2030 
2031 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



031361 
031362 
031363 
031 36A 
031365 
031366 
031367 
031370 
031371 
031372 



031373 
031374 
031375 
031376 
031377 
03U00 
03U01 
031402 
031403 
031404 
031405 



201 00 

202 00 
476 00 
260 17 
254 00 
260 17 
254 00 
254 00 
254 00 
260 17 



260 17 
2o.' 17 
260 17 
254 00 
254 00 
332 00 
254 00 
373 00 
254 00 
254 00 
263 17 












00 031405 
00 030740 
00 030755 
00 000000* 
00 031405 
00 000000* 
00 031364 
00 031372 
00 031372 
00 037722 



00 000000* 
00 000000* 

00 000000* 

1 00 030740 
00 031373 
00 030731 

00 031373 
00 030735 
00 031373 
00 031364 
00 000000 



MACRO ;53B(1242) 19;36 12-Sep-85 Page 1-18 
EX1 - A RECALIBRATE EXERCISE 

$*• **********•»♦»*♦**♦*♦♦♦♦*»**♦****♦*«***♦♦♦»*♦******♦*****♦*♦•*♦♦*♦***** 
;♦ EX1 - A RECALIBRATE EXERCISE 



SEQ 0149 



COMMENT $ 



ISSUE 100 RECALS TO ALL OF THE SELECTED DRIVES. IN VARIABLE 
MODE THE TEST RUNS UNTIL STOPPED. 



CALL SEQ: 

60 EXl 

RTN 

$ 

XLIST 

LIST 



EXl: 
EXIS: 



MOVE I 

MOVEM 

SETOM 

60 

JRST 

60 

JRST 

JRST 

JRST 

60 



;D0 THE I/O 



EXIA: 



EXIB: 
EX1X: 



60 

60 

60 

JRST 

JRST 

SKIPE 

JRST 

SOSLE 

JRST 

JRST 

RTN 



EX1X 

ALTADD 

SELFL6 

SELECT 

EXIX 

STATCK 

EXIS 

.+2 

.+1 

TINT 



.RECAL 

lOWAIT 

BRANCH 

aALTADD 

EXIA 

VARFL6 

lXIA 

TSTITR 

EXIA 

EXIS 



.-CALL THE ROUTINE 
.•RETURNS HERE 



6ET ALTMODE ADDRESS 

VECTOR NOW SET UP 

INIT THE SELECTION ROUTINE 

PICK A DRIVE FOR TEST 

TRIED ALL 

CHECK DRIVE STATUS FROM DSW 
♦1 NOT USEABLE OR OFF-LINE 
+2 WRITE PROTECTED (VARIABLE MODE) 
+3 WRITE PROTECTED (MAN OR DEF MODE) 
+4 PASSED CHECKS. INITIALIZE THE TEST. 



ISSUE A RECAL 

WAIT TILL I/O COMPLETES 

THE ERROR LOOP ROUTINE 

ALTMODE HIT 

LOOP 

CONTINUE. VARIABLE MODE ? 

YES 

DEC. ITERATION COUNT 

LOOP 

DONE. SELECT THE NEXT DRIVE 

EXIT 



SUBTTL EX2 - RECALIBRATES FOLLOWED BY SEEKS 
XLIST 
LIST 
PA6E 



_..J 



0137 



DFRPM 
DFRPM 

2032 
2033 
203A 
2035 
2036 
2037 
2038 
2039 
20A0 
2041 
20A2 
2043 
2044 
2045 
2046 
2047 
2048 
2049 
2050 
2051 
2052 
2053 
2054 
2055 
2056 
2057 
2058 
2059 
2060 
2061 
2062 
2063 
2064 
2065 
2066 
2067 
2068 
2069 
2070 
2071 
2072 
2073 
2074 
2075 
2076 
2077 
2078 
2079 
2080 
2081 
2082 
2083 
2084 
2085 
2086 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



031406 
031407 
031410 
031411 
031412 
031413 
031414 
031415 
031416 
031417 



031420 
031421 
031422 



031423 
03U24 
031425 
031426 
031427 
031430 
031431 
031432 
031433 
031434 
031435 
031436 
031437 
031440 



201 00 

202 00 
476 00 
260 17 
254 00 
260 17 
254 00 
254 00 
254 00 
260 17 



00 031440 
00 030740 
00 030755 
00 031364* 
00 031440 
00 031366* 
00 031411 
00 031417 
00 031417 
00 037722 



4yi 00 00 000002 
201 01 00 000000* 
260 17 00 000000* 



260 17 
260 17 
514 01 
260 17 
260 17 
260 17 
254 00 
254 00 
332 00 
254 00 
373 00 
254 00 
254 00 
263 17 



00 031373* 
00 031374* 
00 031421* 
00 000000* 
00 031424* 

00 031375* 

1 00 030740 
00 031423 
00 030731 
00 031423 
00 030735 
00 031420 
00 031411 
00 000000 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-19 
EX2 - RECALIBRATES FOLLOWED §Y SEEKS 

;* EX2 - RECALIBRATE THEN SEEK 



SEQ 0150 



COMMENT $ 



RECALIBRATES THE DRIVE THEN SEEKS TO 

RANDOM CYLINDER ON THAT DRIVE. 

IN VARIABLE MODE THE USER SPECIFIES CYLINDER 



CALL SEQ: 

GO EX2 

RTN 

$ 

XLIST 

LIST 



EX2: 
EX2S: 



MOVE I 

MOVEM 

SETOM 

GO 

JRST 

GO 

JRST 

JRST 

JRST 

GO 



EX2X 

ALTADD 

SELFL6 

SELECT 

EX2X 

STATCK 

EX2S 

.+2 

.+1 

TINT 



.•GENERATE VARIABLES 

EX2A: SETZM 2 

MOVEI 1,CYL1 
GO GENVAR 



;D0 THE I/O 



EX2B: 



EX2C; 
EX2X: 



GO 

GO 

HRLZ 

GO 

60 

GO 

JRST 

JRST 

SKIPE 

JRST 

SOSLE 

JRST 

JRST 

RTN 



.RECAL 

lOWAIT 

1,CYL1 

.SEEK 

lOWAIT 

BRANCH 

aALTADD 

EX2B 

VARFL6 

EX28 

TSTITR 

EX2A 

EX2S 



.•CALL THE ROUTINE 
.•RETURNS HERE 



GET EXIT ADDRESS 

ALTMODE VECTOR 

INIT THE SELECTION ROUTINE 

PICK A DRIVE FOR TEST 

TRIED ALL 

CHECK DRIVE STATUS FROM DSW 
+1 NOT USEABLE OR OFF-LINE 
+2 WRITE PROTECTED (VARIABLE MODE) 
+3 WRITE PROTECTED (MAN OR DEF MODE) 
+4 PASSED CHECKS. INITIALIZE THE TEST. 



NO RESTRICTION 

CYL1 IS WHAT WE WANT 

GENERATE CYLl 



ISSUc RECAL 

WAIT TILL IT COMPLETES 

GET CYLINDER NUMBER 

ISSUE THE SEEK 

WAIT UNTIL FINISHED 

THE ERROR LOOP ROUTINE 

ALTMODE 

LOOP 

CONTINUE. VARIABLE MODE? 

YES 

NO. DONE ? 

MORE TO DO 

DONE. SELECT NEXT DRIVE 

EXIT 



SUBTTL EX3 - RECALIBRATES FOLLOWED BY SEARCHES 
XLIST 
LIST 
PAGE 



r 



r 



DFRPM 
DFRPM 

2087 
2088 
<i089 
2090 
2091 
2092 
2093 
209A 
2095 
2096 
2097 
2098 
2099 
2100 
2101 
2102 
2103 
2104 
2105 
2106 
2107 
2108 
2109 
2110 
2111 
2112 
2113 
21K 
2115 
2116 
2117 
2118 
2119 
2120 
2121 
2122 
2123 
212A 
2125 
2126 
2127 
2128 
2129 
2130 
2131 
2 1 32 
2t33 
2134 
2135 
2136 
2137 
2138 
2139 
2U0 
2^^^ 



RP07/6/5/A Exerciser 
MAC 12-Sep-85 17:02 



MACRO X53B(12A2) 19:36 12-Sep-85 Page 1-20 
EX3 - RECALIBRATES FOLLOWED BY SEARCHES 

$*• *********♦******♦*♦*♦♦•♦***»*******•***»*******»«***»**•**♦***♦*♦♦♦*** 
;* EX3 - RECALIBRATE THEN POSITION USING "SEARCH CMD" 



SEQ 0151 



COMMENT $ 













CALLING 


SEQ: 












GO 


EX3 












RTN 
$ 














XLIST 














LIST 




03U41 


201 


00 


00 03 504 


EX3: 


MOVE I 


0.EX3X 


03U42 


202 


00 


00 030740 




MOVEM 


O.ALTADD 


03K43 


476 


00 


00 030755 




SETOM 


SELFLG 


031 44A 


260 


17 


00 03 411* 


EX3S: 


60 


SELECT 


031445 


254 


00 


00 031504 




JRST 


EX3X 


031446 


260 


17 


00 031413* 




GO 


STATCK 


031447 


254 


00 


00 031444 




JRST 


EX3S 


031450 


254 


00 


00 031452 




JRST 


.+2 


031451 


254 


00 


00 031452 




JRST 


.+1 


031452 


260 


17 


00 037722 




GO 


TINT 










; GENERATE VARIABLES 


031453 


cV 


01 


00 031425* 


EX3A: 


MOVE I 


1.CYL1 


031454 


402 


00 


00 000002 




SETZM 


2 


031455 


260 


17 


00 031422* 




GO 


6ENVAR 


031456 


201 


01 


00 000000* 




MOVE I 


1.SURF1 


031457 


402 


00 


00 000002 




SETZM 


2 


031460 


260 


17 00 031455* 




GO 


GENVAR 


031461 


201 


01 


00 000000* 




MOVE I 


l.SECTl 


031462 


402 


00 


00 000002 




SETZM 


2 


031463 


260 


17 


00 031460* 


.•START 


GO 
I/O 


GENVAR 


031464 


260 


17 


00 031423* 


EX3P: 


GO 


.RECAL 


031465 


260 


17 


00 031427* 




GO 


lOUAIT 


031466 


200 01 


00 031456* 




MOVE 


l.SURFl 


031467 


242 


01 


00 000010 




LSH 


l.*D8 


031470 


434 


01 


00 031461* 




I OR 
HftL 


l.SECTl 


031471 


504 


01 


00 031453* 




1.CYL1 


031472 


260 


17 


00 000000* 




^ 


.SRCH 


031473 


260 


17 00 031465* 




IOWA IT 


031474 


260 


17 00 031430* 




GO 


BRANCH 


031475 


254 


00 1 


00 030740 




JRST 


iALTADD 
EX3B 


031476 


254 


00 00 031464 




JRST 


031477 


332 00 00 030731 




SKIPE 


VARFLG 


031500 


254 


00 


00 031464 




JRST 


EX3B 



RECALIBRATE THEN POSITION TO A RANDOM 

ADDRESS USING THE SEARCH COMMAND. 

IN VARIABLE MODE THE USER SPECIFIES CYLINDER, SECTOR. SURFACE 



.•CALL THE ROUTINE 
;IT RETURNS HERE 



ALTMODE ADDRESS 

ALTMODE ADDRESS 

INIT THE SELECTION ROUTINE 

SELECT A DRIVE FOR TEST 

TRIED ALL 

CHECK DRIVE STATUS FROM DSW 
+1 NOT USEABLE OR OFF-LINE 
+2 WRITE PROTECTED (VARIABLE MODE) 
+3 WRITE PROTECTED (MAN OR DEF MODE) 
♦4 PASSED CHECKS. INITIALIZE THE TEST. 



THE PARAMETER 

NO RESTRICTION 

GENERATE CYLl 

PARAMETER 

NO RESTRICTIONS 

GENERATE SECTl 

PARAMETER 

NO RESTRICTIONS 

GENERATE SURF1 



RECALIBRATE 

WAIT UNTIL I/O COMPLETE 

GET CURRENT SURFACE 

POSITION IT 

INCLUDE SECTOR 

GET CYLINDER NUMBER 

ISSUE A SEARCH COMMAND 

WAIT UN^L I/O COMPLETES 

SCOPE LOOPER 

ALTMODE 

LOOP 

CONTINUE 

VARIABLE MODE 



)139 



DFRPM 
DFRPM 

2U2 
2U3 
21AA 
2U5 
2146 

2U8 
2U9 
2150 



RP07/6/5/A Exerciser 
MAC 12-Sep-85 17:02 



031501 
031502 
031503 
031504 



373 00 
25A 00 
254 00 
263 17 



00 030735 
00 031453 
00 031444 
00 000000 



MACRO 
EX3 - 

EX3C: 



X53B(1242) 19:36 12-Sep-85 Page 1-21 
RECALIBRATES FOLLOWED BY SEARCHES 



SEO 0152 



EX3X: 
SUBTTL 



SOSLE 
JRST 
JRST 
RTN 



TSTITR 

EX3A 

EX3S 



;DEC ITERATION COUNT 

.-NOT DONE 

.•DONE. SELECT NEXT DRIVE 

.•EXIT 



EX4 - SEEKS 
XLIST 
LIST 
PAGE 



FOLLOyED BY SEEKS 



DFRPM 
DFRPM 

2691 
2692 
2693 
2694 
2695 
2696 
2697 
2698 
2699 
2700 
2701 
2702 
2703 
2704 
2705 
2706 
2707 
2708 
2709 
2710 
2711 
2712 
2713 
2714 
2715 
2716 
2717 
2718 
2719 
2720 
2721 
2722 
2721 
2721^ 
272S 
272t 
2727 
2728 
2729 
2730 
2731 
2732 
2733 
2734 
2735 
2736 
2737 
2738 
2739 
2740 
2741 
2742 
2743 
2744 
2745 



DFRPM 
DFRPM 

2151 
2152 
2153 
21 5A 
2155 
2156 
2157 
2158 
2159 
2160 
2161 
2162 
2163 
21 6A 
2165 
2166 
2167 
2168 
2169 
2170 
2171 
2172 
2173 
2174 
2175 
2176 
2177 
2178 
2179 
2180 
2181 
2182 
2183 
21 8A 
2185 
2186 
2187 
2188 
2189 
2190 
2191 
2192 
2193 
2194 
2195 
2196 
2197 
2198 
2199 
2200 
2201 
2202 
2203 
2204 
2205 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



031505 
031506 
031507 
031510 
031511 
031512 
031513 
031514 
03151: 
031516 



031517 
031520 
031521 
031522 
031523 
031524 
031525 
031526 
031527 
031530 
031531 
031532 



031533 
031534 
031535 
031536 
031537 
031540 
031541 
031542 
031543 
031544 



201 01 

202 01 



476 00 
260 17 



254 00 
260 17 
254 00 
254 00 
254 00 
260 17 



00 031551 
00 030740 
00 030755 
00 031444* 
00 031551 
00 031446* 
00 031510 
00 031516 
00 031516 
00 037722 



l:>: 00 
254 00 
201 01 



402 00 
260 17 



254 00 
402 00 



200 00 
202 00 
201 






402 00 
260 17 



01 



514 01 

260 17 

260 17 

514 01 

260 17 

260 17 

260 17 

254 00 1 



254 00 
332 00 



00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 



00 
00 
00 
00 
00 
00 
00 
00 
00 
00 



030731 

031525 

031471* 

000002 

031463* 

031530 

000000* 

031525* 

031521* 

031526* 

000002 

031523* 



031527* 

031426* 

031473* 

031530* 

031534* 

031535* 

031474* 

030740 

031533 

030731 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-22 
EX4 - SEEKS FOLLOWED BY SEEKS 

;* EX4 - POSITION BETWEEN 2 CYLINDERS USING SEEK COMMAND 

S*; *»****»*»*»»*»»*»»***t*****»***»*»«****»«**»****«****»****** ********** 



SEO 0153 



COMMENT $ 



SEEK FROM SOME CYLINDER ON SOME DRIVE TO SOME 

OTHER CYLINDER ON THAT DRIVE. 

IN VARIABLE MODE, THE USER SPECIFIES CYLINDER NUMBERS. 



CALL SEQ: 
GO EX4 
RTN 
S 

XLIST 
LIST 



EX4: 
EX4S: 



MOVE I 

MOVEM 

SETOM 

GO 

JRST 

GO 

JRST 

JRST 

JRST 

GO 



1,EX4X 

1,ALTADD 

SELFLG 

SELECT 

EX4X 

STATCK 

EX4S 

.*2 

. + 1 

TINT 



.•GENERATE THE VARIABLES 



EX4A: 
EX4B: 

EX4C: 



SKIPN 

JRST 

MOVE I 

SETZM 

GO 

JRST 

SETZM 

MOVE 

MOVEM 

MOVE I 

SETZM 

60 



;D0 THE I/O 



EX4D: 



HRLZ 

60 

60 

HRLZ 

60 

60 

60 

JRST 

JRST 

SKIPE 



VARFL6 

EX4A 

1,CYL1 

GENVAR 

EX4C 

CYL2 

0.CYL2 

0.CYL1 

1.CYL2 

2 

6ENVAR 



l.CYLl 

.SEEK 

lOWAIT 

1.CYL2 

.SEEK 

lOWAIT 

BRANCH 

aALTADD 

EX4D 

VARFL6 



.•CALL THE ROUTINE 
.•RETURNS HERE 



6ET ALTMODE ADDRESS 

SETS UP ALTMODE ADDRESS 

INIT THE SELECT ROUTINE 

SELECT A DEVICE FOR TEST 

TRIED ALL. EXIT 

CHECK DRIVE STATUS FROM DSW 
+1 NOT USEABLE OR OFF-LINE 
♦2 WRITE PROTECTED (VARIABLE MODE) 
♦3 WRITE PROTECTED (MAN OR DEF MODE) 
+4 PASSED CHECKS. INITIALIZE THE TEST. 



VARIABLE MODE 

NO 

6ET PARAMETER 

NO RESTRICTION 

6ENERATE VARIABLE 

60 6ET OTHER PARAMETERS 

CLEAR 2ND PARAMETER 

CYL2 TO CYL1 

PARAMETER 

NO RESTRICTION 

6ENERATE VARIABLE 



1ST ADDRESS 

ISSUE SEEK (NORMALLY A 

WAIT UNTIL I/O COMPLETES 

2ND ADDRESS 

ISSUE THE SEEK 

WAIT TILL DONE 

CALL LOOP ROUTINE 

ALTMODE STRUCK 

LOOP 

VARIABLE MODE 



CYL) 



DFRPM 
DFRPM 

2746 
2747 
2748 
2749 
2750 
2751 
2752 
2753 
2754 
2755 
2756 
2757 
2758 
2759 
2760 
2761 
2762 
2763 
2764 
2765 
2766 
2767 
2768 
2769 
2770 
2771 
2772 
2771 
277k 
2775 
2776 
2777 
277% 
2779 
2780 
2781 
2782 
2783 
2784 
2785 
2786 
2787 
2788 
2789 
2790 
2791 
2792 
2793 
2794 
2795 
2796 
2797 
2798 
2799 
2800 



41 



I 

I 

DFRPM 
DFRPM 

2206 
2207 
2208 

2210 
2211 
2212 
2213 
2214 
2215 



RP07/6/5/A Exerciser 
MAC 12-Sep-85 17:02 



MACRO X53B(12A2) 19:36 12-Sep-85 Page 1-23 
EX4 - SEEKS FOLLOWED BY SEEKS 



r 



SEQ 0154 



031545 
031546 
031547 
031550 
031551 



254 00 00 031533 
373 00 00 030735 
254 00 00 031526 

263 17 00 000000 



EX4E: 
EX4X: 



JRST 

SOSLE 

JRST 

JRST 

RTN 



FX4D 
TSTITR 
EX4B 
EX4S 



YES 

DECREMENT ITERATIONS 

NOT DONE 

DONE. SELECT NEXT DRIVE 

EXIT 



SUBTTL SEARCHES FOLLOWED BY SEARCHES 
XLIST 
LIST 
PAGE 



DFRPM 
DFRPM 

2801 
2802 
2803 
2804 
2805 
2806 
2807 
2808 
2809 
2810 
2811 
2812 
2813 
2814 
2815 
2816 
2817 
2818 
2819 
2820 
2821 
2822 
2823 
2824 
2825 
2826 
2827 
2828 
2829 
2830 
2831 
2832 
2833 
2834 
2835 
2836 
2837 
2838 
2839 
2840 
2841 
2842 
2843 
2844 
2845 
2846 
2847 
2848 
2849 
2850 
2851 
2852 
2853 
2854 
2855 



\2 



DFRPM 


RP07/6/5/4 1 


Exerciser 


DFRPM 


MAC 


12-! 


>ep-85 17:02 


2216 












2217 












2218 












2219 












2220 












2221 












2222 












2223 












222A 












2225 












2226 












2227 












2228 












2229 












2230 












2231 












2232 












2233 


031552 


201 


01 


00 031647 


223A 


031553 


202 


01 


00 


030740 


2235 


031554 


476 


00 


00 


030755 


2236 


031555 


260 


17 


00 


031510* 


2237 


031556 


254 


00 


00 


031647 


2238 


031557 


260 


17 


00 


031512* 


2239 


031560 


254 


00 


00 


031555 


2240 


031561 


254 


00 


00 


031563 


2241 


031562 


254 


00 


00 


031563 


22*^2 


031563 


260 


17 


00 


037722 


2243 












2244 












2245 












2246 


031564 


5:>r 


00 


00 


030731 


2247 


031565 


254 


00 


00 


031601 


2248 


031566 


201 


01 


00 


031533* 


2249 


031567 


402 


00 


00 


000002 


2250 


031570 


551 


03 00 


000031 


2251 


031571 


260 


17 00 


031532* 


2252 


031572 


201 


01 


00 


031466* 


2253 


031573 


402 


00 00 


000002 


2254 


031574 


260 


17 00 


031571* 


2255 


031575 


201 


01 


00 031470* 


2256 


031576 


402 00 00 000002 


2257 


031577 


260 


17 00 031574* 


2258 


031600 


254 


00 00 031612 


2259 


031601 


402 


00 


00 


031536* 


2260 


031602 


402 


00 00 000000* 


2261 


031603 


402 


00 00 000000* 


2262 


031604 


200 00 00 031601* 


2263 


031605 


2^2 


00 00 031566* 


2264 


031606 


200 00 00 031602* 


2265 


031607 


2^2 


00 00 031572* 


2266 


031610 


200 00 00 031603* 


2267 


031611 


202 00 00 031575* 


2268 


031612 


201 


01 


^^ 031604* 


2269 


031613 


402 00 00 000002 


2270 


031614 


260 


M ^^^ 031577* 



MACRO :53B(1242) 19:36 12-Sep-85 Page 1-24 
SEARCHES FOLLOWED BY SEARCHES 

$•• ****«*»»****»*******t** ♦***•**♦*♦*****♦****♦♦*»*****•**♦***•****•♦♦*♦* 
;* EX5 - POSITION BETWEEN 2 ADDRESSES USING SEARCH COMMAND 

S*; »»******»*****♦*****♦*♦•♦*♦*•*****»♦♦♦♦**♦***♦•♦»*»♦•♦*«♦♦*»♦♦***♦♦*** 



SEQ 0155 



COMMENT S 



POSITION BETWEEN TWO DISK ADDRESSES USING 

THE SEARCH COMMAND. IN VARIABLE MODE THE USER SPECIFIES 

THE COMPLETE DISK ADDRESS FOR EACH SEARCH. 



CALL SEQ: 

60 EX5 

RTN 

S 

XLIST 

LIST 



EX5: 
EX5S: 



MOVE I 

MOVEM 

SETOM 

GO 

JRST 

GO 

JRST 

JRST 

JRST 

GO 



1,EX5X 

1,ALTADD 

SELFLG 

SELECT 

EX5X 

STATCK 

EX5S 

.+2 

. + 1 

TINT 



.•GENERATE SOME VARIABLES 



EX5A: 
EX5B: 

EX5C: 



SKIPN 

JRST 

MOVE I 

SETZM 

HRRZI 

GO 

MOVE I 

SETZM 

GO 

MOVE I 

SETZM 

GO 

JRST 

SETZM 

SETZM 

SETZM 

MOVE 

MOVEM 

MOVE 

MOVEM 

MOVE 

MOVEM 

MOVE I 

SETZM 

GO 



VARFLG 

EX5A 

I.CYLI 

2 

3,31 

GENVAR 

I.SURFI 

2 

GENVAR 

1,SECT1 

GENVAR 

EX5C 

CYL2 

SURF2 

SECT2 

0,CVL2 

O.CYLI 

0. SURF 2 

O.SURFI 

0,SECT2 

0,SECT1 

1.CYL2 

2 

GENVAR 



.-CALL 
.•EXIT 



THE ROUTINE 



GET ALTMODE ADDRESS 

SET UP ALTMODE ADDRESS 

INIT THE SELECTION ROUTINE 

SELECT A DRIVE FOR TEST 

TRIED ALL. EXIT. 

CHECK DRIVE STATUS FROM DSW 
♦1 NOT USEABLE OR OFF-LINE 
♦2 WRITE PROTECTED (VARIABLE MODE) 
♦3 WRITE PROTECTED (MAN OR DEF MODE) 
+4 PASSED CHECKS. INITIALIZE THE TEST. 



VARIABLE MODE 

NO 

PARAMETER 

NO RESTRICTION 

SEARCH COMMAND 

INPUT VARIABLE 

GET PARAMETER 

NO RESTRICTIONS 

GENERATE PARAMETER 

GET PARAMETER 

NO RESTRICTIONS 



GENERATE PARAMETER 
GET OTHER PARAMETERS 
INIT 2ND PARAMETERS 



;CYL2 TO CYLl 

.-SURF 2 TO SURF1 

;SECT2 TO SECT1 

GET PARAMETER 
NO RESTRICTIONS 
GENERATE VARIABLE 



DFRPM 
•DFRPM 

; 2856 
! 2857 
i 2858 
; 2859 
i 2860 
; 2861 
2862 
I 2863 
! 2864 
j 2865 
2866 
I 2867 
I 2868 
2869 
2870 
2871 
2872 
2873 
2874 
2875 
2876 
2877 
2878 
2879 
2880 
2881 
2882 
2883 
2884 
2885 
2886 
2887 
2888 
2889 
2890 
2891 
2892 
2893 
2894 
2895 
2896 
2897 
2898 
2899 
2900 
2901 
2902 
2903 
2904 
2905 
2906 
2907 
2908 
2909 
2910 



I — 



I 

I 

DFRPM 
DFRPM 

2271 
2272 
2273 
227A 
2275 
2276 
2277 
2278 
2279 
2280 
2281 
2282 
2283 
228A 
2285 
2286 
2287 
2288 
2289 
2290 
2291 
2292 
2293 
229A 
2295 
2296 
2297 
2298 
2299 
2300 
2301 
2302 
2303 
230A 
2305 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-25 
SEARCHES FOLLOWED BY SEARCHES 



SEQ 0156 



031615 


201 


01 00 031606* 




MOVE I 


1.SURF2 


; PARAMETER 


031616 


402 


00 00 000002 




SETZM 


2 


;N0 RESTRICTIONS 


031617 


260 


17 00 031614* 




60 


GENVAR 


; GENERATE IT 


031620 


201 


01 00 031610* 




MOVE! 


1,SECT2 


;6ET PARAMETER 


031621 


402 00 00 000002 




SETZM 


2 


•NO RESTRICTIONS 


031622 


260 


17 00 031617* 


;D0 THE 


GO 
I/O 


GENVAR 


•GENERATE PARAM 


031623 


200 


01 00 031607* 


EX5D: 


MOVE 


I.SURFI 


•GET SURFACE 


031 62A 


242 


01 00 000010 




LSH 


1.*D8 


•POSITION IT 


031625 


434 


01 00 031611* 




I OR 


1.SECT1 


•INCLUDE SECTOR 


031626 


504 


01 00 031605* 




HRL 


1.CYL1 


•NOW CYLINDER 


031627 


260 


17 00 031472* 




GO 


.SRCH 


•ISSUED COMMAND 


031630 


260 


17 00 031540* 




GO 


lOWAIT 


•WAIT UNTIL DONE 


031631 


200 


01 00 031615* 




MOVE 


1.SURF2 


•GET SURFACE 


031632 


242 


01 00 000010 




LSH 


l.*D8 


•POSITION IT 


031633 


434 


01 00 031620* 




I OR 


1.SECT2 


•INCLUDE RECORD 


031 63A 


504 


01 00 031612* 




HRL 


1.CYL2 


•INCLUDE CYL 


031635 


260 


17 00 031627* 




60 


.SRCH 


•ISSUE THE CMD 


031636 


260 


17 00 031630* 




60 


lOWAIT 


•WAIT UNTIL DONE 


031637 


260 


17 00 031541* 




GO 


BRANCH 


•CALL LOOP ROUTINE 


031 6A0 


254 


00 1 00 030740 




JRST 


iALTADD 


•ALTMODE 


031 6A1 


254 


00 00 031623 




JRST 


EX5D 


•LOOP 


031 6A2 


332 


00 00 030731 




SKJPE 


VARFLG 


•CONT. VARIABLE MODE 


031643 


254 


00 00 031623 




JRST 


EX5D 


YES 


031644 


373 00 00 030735 


EX5E: 


SOSLE 


TSTITR 


NO. DEC. ITERATION COUNT 


031645 


254 


00 00 031604 




JRST 


EX5B 


LOOP 


031646 


254 


00 00 031555 




JRST 


EX5S 


DONE. SELECT NEXT DRIVE 


031647 


263 


17 00 000000 


EX5X: 


RTN 




EXIT 








SUBTTL 


EX6 - SEEK, WRITE. READ. VERIFY 










XLIST 














LIST 














PAGE 







I 

I 

DFRPM 
DFRPM 

2911 
2912 
2913 
2914 
2915 
2916 
2917 
2918 
2919 
2920 
2921 
2922 
2923 
2924 
2925 
2926 
2927 
2928 
2929 
2930 
2931 



L. 



SEQ o^A^ 



DFRPM 
DFRPM 

2306 
2307 
2308 
2309 
2310 
2311 
2312 
2313 
2314 
2315 
2316 
2317 
2318 
2319 
2320 
2321 
2322 
2323 
2324 
2325 
2326 
2327 
2328 
2329 
2330 
2331 
2332 
2333 
2334 
2335 
2336 
2337 
2338 
2339 
2340 
2341 
2342 
23A3 
2^44 
2345 
2346 
2347 
2348 
2349 
2350 
2351 
2352 
2353 
2354 
2355 
2356 
2357 
2358 
2359 
2360 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



031650 
031651 
031652 
031653 
031654 
031655 
031656 
031657 
031660 
031661 



031662 
031663 

031664 
031665 
031666 
031667 
C31670 
031671 
031672 
031673 
031674 
031675 
031676 
031677 
031700 
031701 
031702 
031703 
031704 
031705 
031706 
031707 



201 01 

202 01 
476 00 
260 17 
254 00 
260 17 
254 00 
254 00 
254 00 
260 17 



00 031743 
00 030740 
00 030755 
C 00 031555* 
00 031743 
00 031557* 
00 031653 
00 031743 
00 031653 
00 037722 



336 00 00 C30731 
254 00 00 031675 



151 00 
260 1 7 
254 00 
354 00 
402 00 

201 01 
402 00 
260 17 
254 00 
402 00 

200 00 

202 00 

201 01 
201 02 
201 03 
260 17 
201 01 
402 00 
260 17 
201 01 



00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 



042 V5' 

031055* 

031664 

030744 

030744 

031626* 

000002 

031622* 

031700 

031634* 

031675* 

031671* 

031676* 

000003 

000061 

031673* 

031631* 

000002 

031703* 

031633* 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-26 
EX6 - SEEK, WRITE, READ, VERIFY 

$*• ********************************************************************** 
;*'EX6 — SEEK, WRITE, READ, VERIFY 

S*; ********************************************************************** 



SEQ 015? 



COMMENT $ 



ISSUE A SEEK TO SOME DISK ADDRESS. FOLLOW UP WITH 
A WRITE ,READ, VERIFY OF VARIABLE LENGTH DATA FROM 
SOME OTHER DISK ADDRESS. 

IN VARIABLE MODE, ALL PARAMS MAY BE SPECIFIED. 
IN VARIABLE MODE. DATA COMPARES ARE ALSO OPTIONAL 



uX6: 
EX6S; 



CALL 

60 

RTN 

S 

XLIST 

LIST 

MOVE I 

MOVEM 

SETOM 

60 

JRST 

60 

JRST 

JRST 

JRST 

60 



SEQ: 
EX6 



1,EX6X 

1,ALTADD 

SELFL6 

SELECT 

EX6X 

STATCK 

EX6S 

EX6X 

EX6S 

TINT 



.•GENERATE THE VARIABLES 

SKIPN VARFLG 
JRST EX6A 
TEXTF CASCIZ/ 
WANT DATA COMPARES/] 



EX6A: 
EX6B: 

EX6C: 



60 

JRST 

AOSA 

SETZM 

MOVE I 

SETZM 

60 

JRST 

SETZM 

MOVE 

MOVEM 

MOVE I 

MOVE I 

MOVE I 

60 

MOVE I 

SETZM 

60 

MOVE I 



QSTN 

.-2 

NOCOMP 

NOCOMP 

1,CYL1 

2 

GENVAR 

EX6C 

CYL2 

0,CYL2 

0,CYL1 

1,CYL2 

2,5 

3,61 

GENVAR 

1. SURF 2 

2 

GENVAR 

1.SECT2 



.-CALL THE ROUTINE 
.•RETURN 



GET ALTMODE ADDRESS 

SET UP THE VECTOR 

INIT THE SELECTION ROUTINE 

SELECT A DEVICE FOR TEST 

TRIED ALL. EXIT. 

CHECK DRIVE STATUS FROM DSW 
+1 NOT USEABLE OR OFF-LINE 
+2 WRITE PROTECTED (VARIABLE MODE) 
+3 WRITE PROTECTED (MAN OR DEF MODE) 
+4 PASSED CHECKS. INITIALIZE THE TEST, 



.•VARIABLE MODE ? 
;N0 



A K THE QUESTION 

TIMEOUT OR ERROR 

NO. SET INHIBIT COMP FL6 

YES. ALLOW COMPARES 

6ET PARAM 

NO RESTRICTIONS 

6ENERATE THE VARIABLE 

TO COMMON CODE 

CLEAR PARAMETERS 



6ET THE PARAMETER 
RESTRICTION CODE - 3 
A WRITE COMMAND 
6ENERATE THE VARIABLE 
6ET PARAM 
NO RESTRICTION 
6ENERATE THE VARIABLE 
6ET THE PARAM 



r 



SEQ 0U5 



DFRPM 
DFRPM 

2361 
2362 
2363 
236A 
2365 
2366 
2367 
2368 
2369 
2370 
2371 
2372 
2373 
237A 
2375 
2576 
2377 
2378 
2379 
2380 
2381 
2382 
2383 
2384 
2385 
2386 
2387 
2388 
2389 
2390 
2391 
2392 
2393 
239A 
2395 
2396 
2397 
2398 
2399 
2A00 
2A01 
2402 
2403 
2404 
2405 
2406 
2407 
2408 
2409 
2410 
2411 
2412 
2413 
2414 
2415 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO :53B(1242) 19:36 12-Sep-85 Page 1-27 
EX6 - SEEK, WRITE, READ, VERIFY 



SEQ 0158 



Dl 
Dl 



031710 
031711 
031712 
031713 
031714 
031715 
031716 
031717 
031720 
031721 
031722 
031723 
031724 



031725 
031726 
031727 
031730 
031731 



031732 
031733 
031734 
031735 
031736 
031737 
031740 
031741 
031742 
031743 



031744 
031745 
031746 
031747 
031750 
031751 
031752 
031753 
031754 
031755 
031756 
031/57 
031760 
031761 
031762 
031763 
031764 
031765 



402 GO 
260 17 



201 01 
402 GO 

200 04 
242 04 
434, 04 
504 04 
260 17 

201 01 
402 00 
260 17 



254 GO 



00 0G0002 
00 031706* 
00 OGGOOO* 
00 000002 
00 031704* 
GO G0CG10 
GO 031707* 
GO 031700* 
00 031711* 
00 000000* 
00 000002 
00 031720* 
00 031725 



200 01 00 031721* 
200 02 01 GOGGOO* 
514 01 GO 031712* 
540 G1 GO G3G724 
260 17 GO GOGGOO* 



260 17 
260 17 



254 00 1 
254 GO 



332 GO 
254 00 
3f< GO 
254 00 
254 GO 
263 17 



200 01 
316 01 
254 00 
514 01 
260 17 . 
260 17 
514 01 
260 17 
260 17 



201 01 
550 02 
242 02 
504 02 
434 02 
504 03 
540 03 
260 U 
332 00 



GO 031744 
GO G31637* 
GO G30740 
00 031732 
00 030731 
00 031732 
00 030735 
00 031676 
00 031653 
GO OGGOOO 



GO 031677* 
00 031717* 
00 031752 
00 031744* 
00 031537* 
00 031636* 
00 031745* 
00 031750* 
00 031751* 
00 000061 
00 031714* 
00 G0GG10 
00 031752* 
00 031716* 
00 031727* 
00 030724 
00 000000* 
00 030744 



SET2M 

GO 

MOVE I 

SETZM 

MOVE 

LSH 

I OR 

HRL 

GO 

MOVE I 

SETZM 

60 

JRST 



2 

GENVAR 

1,SIZE2 

2 

4,SURF2 

4,*D8 

4,SECT2 

4,CYL2 

GENVAR 

1,PAT2 

2 

GENVAR 

EX6D 



.•GENERATE A WRITE BUFFER OF DATA 



EX6D: 



MOVE 

MOVE 

HRLZ 

HRR 

GO 



1,PAT2 
2,DATTBL(1) 
1,SIZE2 
1,BUF1A 
I CORE 



;D0 I/O AND BRANCH ACCORDINGLY 



EX6E! 



EX6F 



EX6X: 



GO 

GO 

JRST 

JRST 

SK I PE 

JRST 

SOSLE 

JRST 

JRST 

RTN 



106 

BRANCH 

8ALTADD 

EX6E 

VARFLG 

EX6E 

TSTITR 

EX6B 

EX6S 



;THE I/O AND COMPARISON SECTION 



106; MOVE 
CAMN 
JRST 
HRLZ 
GO 
GO 

EX6S<2: HRLZ 
GO 
GO 

MOVE I 
HRRZ 
LSH 
HRL 
I OR 
HRL 
HRR 
GO 
SKIPE 



1,CYL1 

1,CYL2 

EX6SK2 

1,CYL1 

.SEEK 

lOl'AIT 

1,CYL2 

.SEEK 

lOWAIT 

1,61 

2,SURF2 

2,*D8 

2,CYL2 

2,SECT2 

3,SIZE2 

3,BUF1A 

XFSTRT 

NOCOMP 



NO RESTRICTION 
GENERATE THE VARIABLE 
GET THE PARAMETER 
NO RESTRICTION 
GET START SURF 
POSITION IT 
INCLUDE SECTOR 
AND CYLINDER 
GENERATE THE VARIABLE 
GET THE PARAM 
NO RESTRICTIONS 
GENERATE THE VARIABLE 
AND CONTINUE 



GET PATTERN INDEX 

GET PATTERN 

GET SIZE 

AND BUFFER ADDRESS 

INIT CORE 



CALL THE I/O ROUTINE 

THEN THE LOOP ROUTINE 

ALTMODE 

LOOP ON ERROR 

CONTINUE. VAR MODE ? 

YES 

DEC ITERATION COUNT 

NOT DONE 

DONE. SELECT NEXT DEVICE 

EXIT 



GET CYL1 

IS CYL1 = CYL2 ? 

Y5S. SKIP 1ST SEEK 

GET CYLINDER * 

POSITION 

WAIT UNTIL DONE 

GET CYL2 

DO A SEEK 

WAIT TILL IT FINISHES 

A WRITE COMMAND 

GET SURFACE # 

POSITION IT 

GET CYLINDER 

AND SECTOR NUMBER 

GET SIZE 

GET BUFFER ADDRESS 

START THE WRITE 

WANT COMPARES ? 



SEQ 0146 



DFRPM 
DFRPM 

2A16 
2A17 
2A18 
2A19 
2420 
2421 
2422 
2423 
2424 
2425 
2426 
2427 
2428 
2429 
2430 
2431 
2432 
2433 
2434 
2435 
2436 
2437 
2438 
2439 
2440 
2441 
2442 
2443 
2444 
2445 
2446 
2447 
2448 
2449 
2450 
2451 
2452 
2453 
2454 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO J:53B(1242) 19:36 12-Sep-85 Page 1-28 
EX6 - SEEK, WRITE, READ, VERIFY 



SEQ 0159 



OFI 
DFI 



031766 
031767 
031770 
031771 
031772 
031773 
031774 
031775 
031776 
031777 
032000 
032001 
032002 
032003 
032004 
032005 
032006 
032007 
032010 
032011 



032012 
032013 
032GU 
032015 
032016 

032017 
032020 
032021 



254 00 
200 02 

200 01 
504 01 
260 17 
260 17 

201 01 
540 02 
242 02 
434 02 



504 02 
504 03 



540 03 
260 17 
260 17 
332 00 
254 00 
200 01 
504 01 
200 02 



00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 



031773 

030725 

030724 

031762* 

000000* 

031754* 

000071 

051756* 

000010 

031761* 

031760* 

031771* 

030725 

031764* 

031773* 

030744 

032021 

030725 

032001* 

030724 



260 17 00 031655* 
254 00 00 032021 
254 00 00 032021 

254 00 00 032021 

255 00 00 000000 

260 17 00 000000* 
4^; 00 00 030752 
263 17 00 000000 



I06A: 



JRST 
MOVE- 
MOVE 
HRL 
GO 
GO 

MOVE I 
HRR 
LSH 
I OR 
HRL 
HRL 
HRR 
60 
GO 

SKIPE 
JRST 
MOVE 
HRL 
MOVE 



I06A 

2.BUF2A 

1,BUF1A 

1,SIZE2 

XCOMP 

lOUAIT 

1.71 

2,SURF2 

2, -08 

2.SECT2 

2,CYL2 

3,SIZE2 

3,8UF2A 

XFSTRT 

lOUAIT 

NOCOMP 

1066 

1,BUF2A 

1,SIZE2 

2,BUF1A 



NO 

YES. SET UP READ BUFFER 

TO COMP OF WRITE BUFFER 
GET THE SIZE 

FINALLY SET UP THE READ BUFF 
WAIT UNTIL WRITE COMPLETES 
A READ COMMAND 
GET SURFACE 
POSITION IT 
INCLUDE THE SECTOR 
AND CYLINDER 
GET SIZE OF XFER 
ADDR OF READ BUFFER 
READ WHAT WAS JUST WRITTEN 
WAIT UNTIL THE READ COMPLETES 
WANT DATA COMPARES ? 
NO 

YES. GET ADDR OF READ BUFFER 
GET THE SIZE 
GET THE ADR OF WRITE BUFF 



.•QUICK TEST TO SEE IF DEVICE IS USEABLE 



IF NOT, NO COMPARE 



GO 

JRST 

JRST 

JRST 

JFCL 



STATCK 
I06B 
1066 
1066 



1068: 



GO C0MP88 
SETOM ERROR 
RTN 



.•CHECK STATUS FROM DSW 

; +1 NOT USEA6LE OR OFF-LINE 

; +2 WRITE LOCKED (VAR MODE) 

; +3 WRITE LOCKED (MAN OR DEF MODE) 

; +4 NONE OF THE A60VE 

.•eUFFER TO BUFFER COMPARE 
;S0 TEST WILL LOOP 



SUBTTL EX7 - (IMPLIED SEEK) , WRITE, READ, VERIFY 
XLIST 
LIST 
PAGE 



r' 



r 



SEQ 01^7 



DFRPM 
DFRPM 

2A55 
2A56 
2457 
2A58 
2459 
2460 
2461 
2462 
2463 
2464 
2465 
2466 
2467 
2468 
2469 
2470 
2471 
2472 
2473 
2474 
2475 
2476 
2477 
2478 
2479 
2480 
2481 
2482 
2483 
2484 
2485 
2486 
2487 
2488 
2489 
2490 
2491 
2492 
2493 
2494 
2495 
2496 
2497 
2498 
2499 
2500 
2501 
2502 
2503 
2504 
2505 
2506 
2507 
2508 
2509 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



032022 
032023 
032024 
032025 
032026 
032027 
03203C 
032031 
032032 
032033 



032034 
032035 

032036 
032037 
032040 
032041 
032042 
032043 
032044 
032045 
032046 
032047 
032050 
032051 
032052 
032053 
03205^ 
032055 
032056 
032057 
032060 
032061 



201 01 

202 01 
476 00 
260 17 
254 00 



260 17 
254 00 
254 00 
254 00 
260 17 



00 
00 
00 
00 
00 
00 
00 
00 
00 
00 



032115 

030740 

030755 

031653* 

032115 

032012* 

032025 

032115 

032025 

037722 



336 00 00 030731 
254 00 00 032047 



031 
260 



00 
17 



254 00 
354 00 



402 00 

201 01 
402 00 
260 17 
254 00 
402 00 

200 00 

202 00 
201 
201 
201 
260 17 

201 01 












01 

02 

03 



402 00 
260 U 
201 01 



00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 



042175' 

031665* 

032036 

030744 

030744 

031747* 

000002 

031723* 

032052 

032000* 

032047* 

032043* 

032050* 

000003 

000061 

032045* 

031775* 

000002 

032055* 

031777* 



MACRO :53B(1242) 19:36 12-Sep-85 Page 1-29 
EX7 - (IMPLIED SEEK). WRITE. READ. VERIFY 

S*' ********************************************************************** 
;* EX7 — WRITE. READ. VERIFY 

S*; ********************************************************************** 



r 



SEQ 0160 



DFf 
DFF 



COMMENT S 



IMPLIED SEEK TO SOME DISK ADDRESS. FOLLOW UP WITH 
A WRITE .READ, VERIFY OF VARIABLE LENGTH DATA FROM 
THAT DISK ADDRESS. 

IN VARIABLE MODE. ALL PARAMS MAY BE SPECIFIED. 
IN VARIABLE MODE. DATA COMPARES ARE ALSO OPTIONAL 



EX7: 
EX7S: 



CALL 
GO 
RTN 
S 

XLIST 
LIST 

MOVE I 

MOVEM 

SETOM 

GO 

JRST 

GO 

JRST 

JRST 

JRST 

GO 



SEQ: 
EX7 



1.EX7X 

1.ALTADD 

SELFLG 

SELECT 

EX7X 

STATCK 

EX7S 

EX7X 

EX7S 

TINT 



.•GENERATE THE VARIABLES 

SKIPN VARFLG 
JRST EX7A 
TEXTF CASCIZ/ 
WANT DATA COMPARES/] 



EX7A: 
EX78; 

EX7C: 



60 

JRST 

AOSA 

SETZM 

MOVE I 

SETZM 

GO 

JRST 

SETZM 

MOVE 

MOVEM 

MOVE I 

MOVE I 

MOVE I 

GO 

MOVE I 

SETZM 

GO 

MOVE I 



QSTN 

.-2 

NOCOMP 

NOCOMP 

1.CYL1 

2 

GENVAR 

EX7C 

CYL2 

0.CYL2 

0.CYL1 

1.CYL2 

3.61 
GENVAR 
1, SURF 2 

GENVAR 
1.SECT2 



;CALL THE ROUTINE 
.•RETURN 



GET ALTMODE ADDRESS 

SET UP THE VECTOR 

INIT THE DRIVE SELECTION 

PICK A DRIVE FOR TEST 

TRIED ALL. EXIT. 

CHECK DRIVE STATUS FROM DSW 
♦1 NOT USEABLE OR OFF-LINE 
♦2 WRITE PROTECTED (VARIABLE MODE) 
+3 WRITE PROTECTED (MAN OR DEF MODE) 
+4 PASSED CHECKS. INITIALIZE THE TEST. 



.•VARIABLE MODE ? 
:N0 



ASK THE QUESTION 

TIMEOUT OR ERROR 

NO. SET INHIBIT COMP FLG 

YES. ALLOW COMPARES 

GET PARAM 

NO RESTRICTIONS 

GENERATE VARIABLES 

TO COMMON CODE 

CLEAR PARAMETERS 

XFER CYL2 TO CYLl 

GET THE PARAMETER 
RESTRICTION CODE - 3 
A WRITE COMMAND 
GENERATE THE VARIABLE 
GET PARAM 
NO RESTRICTION 
GENERATE THE VARIABLE 
GET THE PARAM 



EQ 0148 



DFRPM 


RP07/6/5/4 1 


■xerciser 


MACRO 


X53B(1242) 19:36 12-Seo-85 


Page 1-30 
I/ERIFY 


DFRPM 


MAC 


12-; 


Sep- 


-8! 


5 17:02 


EX7 - 


(IMPLIED 


SEEK). WRITE. READ, 


2510 


032062 


402 


00 





00 000002 




SETZM 


2 


;N0 RESTRICTION 


2511 


032063 


260 


17 





00 032060* 




60 


GENVAR 


; GENERATE THE VARIABLE 


2512 


032064 


201 


01 





00 032010* 




MOVE I 


1.SIZE2 


.-GET THE PARAMETER 


2513 


032065 


402 


00 





00 000002 




SETZM 


2 


;N0 RESTRICTION 


2514 


032066 


200 04 





00 032056* 




MOVE 


4. SURF 2 


;GET START SURF 


2515 


032067 


242 


04 





00 000010 




LSH 


4.*D8 


.-POSITION IT 


2516 


032070 


434 


04 





00 032061* 




I OR 


4.SECT2 


.-INCLUDE SECTOR 


2517 


032071 


504 


04 





00 032052* 




HRL 


4.CYL2 


;AND CYLINDER 


2518 


032072 


260 


17 





00 032063* 




GO 


GENVAR 


; GENERATE THE VARIABLE 


2519 


032073 


201 


01 


00 031725* 




MOVE I 


1.PAT2 


;GET THE PARAM 


2520 


032074 


402 00 


00 000002 




SETZM 


2 


;N0 RESTRICTIONS 


2521 


032075 


260 


17 





00 032072* 




GO 


GENVAR 


; GENERATE THE VARIABLE 


2522 
2523 
2524 
2525 
2526 


032076 


254 


00 





00 032077 




JRST 


EX7D 


.-AND CONTINUE 












.•GENERATE A \JR1TE BUFFER OF DATA 




032077 


200 


01 





00 032073* 


EX7D: 


MOVE 


1.PAT2 


;GET PATTERN INDEX 


2527 


032100 


200 


02 





01 031726* 




MOVE 


2.DATTBL(1) 


;GET PATTERN 


2528 


032101 


514 


01 





00 032064* 




HRLZ 


1.SIZE2 


;GET SIZE 


2529 


032102 


540 


01 





00 030724 




HRR 


1.8UF1A 


;AND BUFFER ADDRESS 


2530 
2531 
2532 


032103 


260 


17 





00 031731* 




GO 


I CORE 


;INIT CORE 












;D0 I/O AND BRANCH ACCORDINGLY 




2533 




















2534 


032104 


260 


17 





00 032116 


EX7E: 


GO 


107 


rCALL THE I/O ROUTINE 


2535 


03210S 


260 


17 





00 031733* 




GO 


BRANCH 


jTHEN THE LOOP ROUTINE 


2536 


032106 


254 


00 


1 


00 030740 




JRST 


aALTADD 


jALTMODE 


2537 


032107 


254 


00 





00 032104 




JRST 


EX7E 


aOOP ON ERROR 


2538 


032110 


332 


00 





00 030731 




SKIPE 


VARFLG 


; CONTINUE. VARIABLE MODE ? 


2539 


032111 


254 


00 





00 032104 




JRST 


EX7E 


;YES 


2540 


032112 


3^< 


00 





00 030735 


EX7F : 


SOSLE 


TSTITR 


;DEC ITERATION COUNT 


2541 


032113 


254 


00 





00 032050 




JRST 


EX78 


•NOT DONE 


2542 


032114 


254 


00 





00 032025 




JRST 


EX7S 


•DONE. SELECT NEXT DRIVE 


2543 
2544 
2545 
2546 
2547 


032115 


263 


17 





00 000000 


EX7X: 


RTN 




•EXIT 












;THE ] 


[/O AND COMPARISON SECTION 




032116 


200 


01 





00 032051* 


107: 


MOVE 


1.CYL1 


•GET FIRST CYLINDER 


2548 


032117 


316 


01 





00 032071* 




CAMN 


1.CYL2 


•CYL1 = CYL2 ? 


2549 


032120 


254 


00 





00 032124 




JRST 


07NS 


•YES. NO SEEK REQUIRED. 


2550 


032121 


514 


01 





00 032116* 




HRLZ 


1.CVL1 


•GET CYL1 


2551 


032122 


260 


17 00 031753* 




GO 


• SEEK 


•ISSUE THE SEEK 


2552 


0321^3 


^uO 


17 


00 032004* 




GO 


lOUAIT 


•WAIT TILL IT FINISHES 


2553 


032 '.:4 


f-r, 


U1 





00 0G0061 


I07NS 


MOVE I 


1.61 


•A WRITE COMMAND 


2554 


032 1 25 


S'O 


0^~ 


n 


no 032066* 




HRRZ 


2.SURF2 


GET SURFACE # 


2555 


032^26 


1-42 


Od 





U[J 000010 




LSH 


2.-D8 : 


POSITION IT 


2556 


032127 


504 


02 





00 032117* 




HRL 


2,CYL2 


GET CYLINDER 


2557 


032130 


434 


o; 





00 032070* 




I OR 


2.SECT2 


AND SECTOR NUMBER 


2558 


032131 


504 


03 





00 032101* 




HRL 


3.SIZE2 


GET SIZE 


2559 


032132 


540 03 





00 030724 




HRR 


3.BUF1A 


GET BUFFER ADDRESS 


2560 


032133 


260 


17 





00 032003* 




GO 


XFSTRT 


START THE WRITE 


2561 


032134 


332 00 





00 030744 




SKIPE 


NOCOMP 


WANT COMPARES ? 


2562 


032135 


254 00 00 032142 




JRST 


I07A 


NO 


2563 


032136 


?00 02 00 030725 




MOVE 


2.BUF2A 


YES. SET UP READ BUFFER 


2564 


032137 


200 01 


00 030724 




MOVE 


1.BUF1A 


TO COMP OF WRITE BUFFER 



SEQ 0161 



r' 



Q 0U9 



DFRPM 


RP07/6/5/4 [ 


■xerciser 


DFRPM 


MAC 


12-! 


5ep-85 17:02 


2565 


032140 


504 


01 00 032131* 


2566 


032141 


260 


17 00 031772* 


2567 


032142 


260 


17 00 032123* 


2568 


032143 


201 


01 00 000071 


2569 


032144 


540 


02 00 032125* 


2570 


032145 


242 


02 00 000010 


2571 


032146 


434 


02 00 032130* 


2572 


032147 


504 


02 00 032127* 


2573 


032150 


504 


03 00 032140* 


2574 


032151 


540 


03 00 030725 


2575 


032152 


260 


17 00 032133* 


2576 


032153 


260 


17 00 032142* 


2577 


032154 


332 


00 00 030744 


2578 


032155 


254 00 00 032170 


2579 


032156 


200 


01 00 030725 


2580 


032157 


504 


01 00 032150* 


2581 


032160 


200 


02 00 030724 


2582 








2583 








2584 








2585 


032161 


260 


17 00 032027* 


2586 


032162 


254 


00 00 032170 


2587 


032163 


254 


00 00 032170 


2588 


032164 


254 


00 00 032170 


2589 


032165 


255 


00 00 000000 


2590 








2591 


032166 


260 


17 00 032017* 


2592 


032167 


476 


00 00 030752 


2593 


032170 


263 


17 00 000000 


2594 








2595 








2596 








2597 








2598 









MACRO X53B(1242) 19:36 12-Sep-85 Page 1-31 
EX7 - (IMPLIED SEEK), WRITE, READ, VERIFY 



SEQ 0162 



I07A: 



HRL 

GO 

GO 

MOVE I 

HRR 

LSH 

I OR 

HRL 

HRL 

HRR 

60 

GO 

SKIPE 

JRST 

MOVE 

HRL 

MOVE 



1,SIZE2 

XCOMP 

lOUAIT 

1.71 

2,SURF2 

2,*D8 

2,SECT2 

2,CYL2 

3,SJZE2 

3,8UF2A 

XFSTRT 

lOUAIT 

NOCOMP 

1078 

1,BUF2A 

1,SIZE2 

2,8UF1A 



GET THE SIZE 

FINALLY SET UP THE READ BUFF 

WAIT UNTIL WRITE COMPLETES 

A READ COMMAND 

GET SURFACE 

POSITION IT 

INCLUDE THE SECTOR 

AND CYLINDER 

GET SIZE OF XFER 

ADDR OF READ BUFFER 

READ WHAT WAS JUST WRITTEN 

WAIT UNTIL THE READ COMPLETES 

WANT DATA COMPARES ? 

NO 

YES. GET ADDR OF READ BUFFER 

GET THE SIZE 

GET THE ADR OF WRITE BUFF 



.•QUICK TEST TO SEE IF DEVICE IS USEABLE .. IF NOT, NO COMPARE 



GO 

JRST 
JRST 
JRST 
JFCL 



STATCK 
1 078 
1078 
1078 



I07B: 



GO COMPBB 
SETOM ERROR 
RTN 



CHECK STATUS FROM DSW 
+1 NOT USEABLE OR OFF-LINE 
+2 WRITE LOCKED (VAR MODE) 
+3 WRITE LOCKED (MAN OR DEF MODE) 
+4 NONE OF THE ABOVE 

.-BUFFER TO BUFFER COMPARE 
;S0 TEST WILL LOOP 



SUBTTL EX8 - SEEK AND THEN READ 
XLIST 
LIST 
PAGE 



1 0150 



DFRPM 
DFRPM 

2599 
2600 
2601 
2602 
2603 
2604 
2605 
2606 
2607 
2608 
2609 
2610 
2611 
2612 
2613 
2614 
2615 
2616 
2617 
2618 
2619 
2620 
2621 
2622 
2623 
2624 
2625 
2626 
2627 
2628 
2629 
2630 
2631 
2632 
2633 
2634 
2635 
2636 
2637 
2638 
2639 
2640 
2641 
2642 
2643 
2644 
2645 
2646 
2647 
2648 
2649 
2650 
2651 
2652 
2653 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



032171 
032172 
032173 
032174 
032175 
032176 
032177 
032200 
032201 
032202 



032203 
032204 
032205 
032206 
032207 
032210 
032211 
032212 
032213 
032214 
032215 
032216 
032217 
032220 
032221 
052222 
032223 
032224 
032225 
032226 
0Z2227 
032230 
032231 
032232 



201 01 

202 01 
476 00 
260 17 
254 00 
260 17 
254 00 
254 00 
254 00 
260 17 



00 032246 
00 030740 
00 030755 
00 032025* 
00 032246 
00 032161* 
00 032174 
00 032202 
00 032202 
00 037722 



336 00 
254 00 

201 01 
402 00 
260 17 
254 00 
402 00 

200 00 

202 00 

201 01 
201 02 
201 03 
260 17 
201 01 
402 00 
260 17 
201 01 
402 00 
260 17 
201 01 
402 00 
200 04 
242 04 
434 04 



00 030731 
00 032211 
00 032121* 
00 000002 
00 032075* 
00 032214 
00 032147* 
00 032211* 
00 032205* 
00 032212* 
00 000001 
00 000071 
00 032207* 
00 032144* 
00 000002 
00 032217* 
00 032146* 
00 000002 
00 032222* 
00 032157* 
00 000002 
00 032220* 
00 000010 












MACRO X53B(1242) 19:36 12-Sep-85 Page 1-32 
EX8 - SEEK AND THEN READ 

$*• ********************************************************************** 
;* EX8 — SEEK. READ 

S*; ********************************************************************** 



SEQ 0163 



COMMENT $ 



ISSUE A SEEK TO SOME DISK ADDRESS. FOLLOW UP WITH 

A READ OF VARIABLE LENGTH DATA FROM 

SOME OTHER DISK ADDRESS. 

IN VARIABLE MODE, ALL PARAMS MAY BE SPECIFIED. 



EX8: 
EX8S: 



CALL 
60 
RTN 
S 

XLIST 
LIST 

MOVE I 

MOVEM 

SETOM 

60 

JRST 

60 

JRST 

JRST 

JRST 

60 



SEQ: 
EX8 



1.EX8X 

l.ALTADD 

SELFLG 

SELECT 

EX8X 

STATCK 

EX8S 

.+2 

.+1 

TINT 



;6ENERATE THE VARIABLES 



EX8A: 
EX8B: 

EX8C: 



SKIPN 

JRST 

MOVEI 

SET2M 

60 

JRST 

SETZM 

MOVE 

MOVEM 

MOVEI 

MOVEI 

MOVEI 

GO 

MOVEI 

SETZM 

60 

MOVEI 

SETZM 

60 

MOVEI 

SETZM 

MOVE 

LSH 

I OR 



VARFLG 

EX8A 

1,CYL1 

2 

6ENVAR 

EX8C 

CYL2 

0,CYL2 

0,CYL1 

1,CYL2 

2.1 

3.71 

6ENVAR 

1.SURF2 

2 

6ENVAR 

1.SECT2 

2 

6ENVAR 

1,SIZE2 

2 

4. SURF 2 

4,*D8 

4.SECT2 



.•CALL THE ROUTINE 
.•RETURN 



GET ALTMODE ADDRESS 

SET UP THE VECTOR 

INIT THE SELECTION ROUTINE 

SELECT A DEVICE FOR TEST 

TRIED ALL. EXIT. 

CHECK DRIVE STATUS FROM DSW 
+1 NOT USEABLE OR OFF-LINE 
+2 WRITE PROTECTED (VARIABLE MODE) 
+3 WRITE PROTECTED (MAN OR DEF MODE) 
+4 PASSED CHECKS. INITIALIZE THE TEST. 



VARIABLE MODE ? 

NO 

GET PARAM 

NO RESTRICTIONS 

GENERATE THE VARIABLE 

TO COMMON CODE 

CLEAR PARAMETERS 



GET THE PARAMETER 
RESTRICTION CODE - 1 
A READ COMMAND 
GENERATE THE VARIABLE 
GET PARAM 
NO RESTRICTION 
GENERATE THE VARIABLE 
GET THE PARAM 
NO RESTRICTION 
GENERATE THE VARIABLE 
GET THE PARAMETER 
NO RESTRICTION 
GET START SURF 
POSITION IT 
INCLUDE SECTOR 



. .-, 



0151 



DFRPM 
DFRPM 

265A 
2655 
2656 
2657 
2658 
2659 
2660 
2661 
2662 
2663 
266A 
2665 
2666 
2667 
2668 
2669 
2670 
2671 
2672 
2673 
2674 
2675 
2676 
2677 
2678 
2679 
2680 
2681 
2682 
2683 
268A 
2685 
2686 
2687 
2688 
2689 
2690 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 

032233 
03223A 



032235 
032236 
032237 
032240 
032241 
032242 
032243 
032244 
032245 
032246 



032247 
032250 
032251 
032252 
032253 
032254 
032255 
032256 
032257 
032260 
032261 
032262 
03226? 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-33 
EX8 - SEEK AND THEN READ 



SEQ 0164 



504 04 00 032214* 




HRL 


4,cyL2 


•AND CYLINDER 


260 17 00 032225* 




GO 


GENVAR 


•GENERATE THE »ARIABLE 




;D0 I/O AND BRANCH ACCORDINGLY 




260 17 00 032247 


EX8E: 


GO 


108 


•CALL THE I/O ROUTINE 


260 17 00 032105* 




GO 


BRANCH 


•THEN THE LOOP ROUTINE 


254 00 1 00 030740 




JRST 


aALTADD 


•ALTMODE 


254 00 00 032235 




JRST 


EX8E 


■LOOP ON ERROR 


332 00 00 030731 




SKIPE 


VARFLG 


•CONTINUE. VARIABLE MODE ? 


254 00 00 032235 




JRST 


EX8E 


•YES 


373 00 00 030735 


EX8F: 


SOSLE 


TSTITR 


•DEC ITERATION COUNT 


254 00 00 032212 




JRST 


EX8B 


•NOT DONE 


254 00 00 032174 




JRST 


EX8S 


■DONE. TRY NEXT DRIVE. 


263 17 00 000000 


EX8X: 


RTN 




•EXIT 




;THE 


I/O SECTION 




514 01 00 032213* 


108: 


HRLZ 


I.CYLI 


•GET CYLINDER ft 


260 17 C 00 032122* 




60 


• SEEK 


•POSITION 


260 17 00 032153* 




GO 


lOWAIT 


•WAIT UNTIL DONE 


201 01 00 000071 




MOVE I 


1.71 


•A READ COMMAND 


540 02 00 032230* 




HRR 


2,SURF2 


•GET SURFACE 


242 02 00 000010 




LSH 


2.*D8 


•POSITION IT 


434 02 00 032232* 




I OR 


2.SECT2 


•INCLUDE THE SECTOR 


504 02 00 032233* 




HRL 


2.cyL2 


•AND CYLINDER 


504 03 00 032226* 




HRL 


i,snE2 


•GET SIZE OF XFER 


540 03 00 030725 




HRR 


3.BUF2A 


•ADDR OF READ BUFFER 


260 17 00 032152* 




60 


XFSTRT 


•READ WHAT WAS JUST WRITTEN 


260 17 00 032251* 




60 


lOUAIT 


•WAIT UNTIL THE READ COMPLETES 


2c < 17 00 000000 


1088: 


RTN 







SUBTTL EX9 - EXERCISE A SPECIFIC AREA OF THE DISK 
XLIST 
LIST 
PAGE 



0152 



DFRPM 
DFRPM 

2691 
2692 
2693 
269A 
2695 
2696 
2697 
2698 
2699 
2700 
2701 
2702 
2703 
270A 
2705 
2706 
2707 
2708 
2709 
2710 
2711 
2712 
2713 
27K 
2715 
2716 
2717 
2718 
2719 
2720 
2721 
2122 
2121 
2121^ 
2125 
2126 
2121 
2728 
2729 
2730 
2731 
2732 
2733 
273A 
2735 
2736 
2737 
2738 
2739 
2740 
2741 
21^2 

2m 

2H^U 
27A5 



RP07/6/5/A Exerciser 
MAC 12-Sep-85 17:02 



MACRO :538(1242) 19:36 12-Sep-85 Page 1-34 
EX9 - EXERCISE A SPECIFIC AREA OF TRE DISK 

.••'EX9 — EXERCISE A SPECIFIC AREA OF THE DISK 



SEQ 0165 



COMMENT S 



032264 
032265 

032266 
032267 

032270 
032271 
032272 
032273 
032274 
032275 
032276 
032277 
032300 
032301 



332 00 00 030731 
254 00 00 032270 

031 00 00 042202* 
254 00 00 032423 



201 01 

202 01 
476 00 
260 
254 

260 17 
254 00 
254 00 
254 00 
260 M 









17 

^^ 

~ 











00 032423 
00 030740 
00 030755 
00 032174* 
00 032423 
00 032176* 
00 032273 
00 032423 
00 032273 
00 ^V122 



EX9: 
/] 

EX9A: 
EX9S: 



THIS IS A VARIABLE MODE ONLY TEST. THIS TEST ALLOWS THE USER 
TO PERFORM 1 OF 2 FUNCTIONS TO AN AREA OF THE DISK WHICH HE 
SPECIFIES. 

THE I FUNCTIONS ARE: "READ ONLY" OR "READ WRITE VERIFY" AND 
ARE PERFORMED ONLY ON FULL TRACKS AT A TIME. IMPLIED SEEKS 
ARE USED TO SPEED UP THE TESTING. 

THE USER SPECIFIES THE BOUNDRIES OF THE AREA TO BE TESTED. 
THE CYLINDERS ARE BOUNDED BY CYLl, CYL2 AND THE SURFACES ARE 
BOUNDED BY SURF1 AND SURF2. THE DATA TRANSFERS ARE ALWAYS 
PSEUDO RANDOM AND A FULL TRACK LONG. THE LIMITS ARE INCLUSIVE. 

TESTING BEGINS AT CYL1,SURF1 AND ITERATES TO CYL1,SURF2 

AT THAT POINT THE CYLINDER NUMBER IS BUMPED AND WE START OVER 

AND CONTINUE THROUGH ALL THE CYLINDERS. 

THIS TEST IS VERY USEFUL IF YOU SUSPECT A HEAD PROBLEM BECAUSE 
YOU CAN TEST A SINGLE SURFACE BY MAKING SURF1=SURF2. 

THE TEST THEN HAS AS VARIABLES. ONLY THE CYLINDER NUMBER AND 
SURFACE NUMBER. THE LOOP RUNS WITH THE SURFACE NUMBER BEING 
THE MOST RAPIDLY CHANGING VARIABLE WHICH SPEEDS UP TESTING. 



CALL 
GO 
RTN 
$ 

XLIST 
LIST 

SKIPE 

JRST 

TEXTF 

JRST 

MOVE I 

MOVEM 

SETOM 

GO 

JRST 

GO 

JRST 

JRST 

JRST 

GO 



SEQ: 
EX9 



VARFLG 

EX9A 

CASCIZ/EX9 

EX9X 

1.EX9X 

1.ALTADD 

SELFLG 

SELECT 

EX9X 

STATCK 

EX9S 

EX9X 

EX9S 

TINT 



.•CALL THE ROUTINE 
.•RETURN 



.-ARE WE IN VARIABLE MODE ? 
•YES 
RUNS ONLY'JN variable MODE 

EXIT THE TEST 



GET ALTMODE ADDRESS 

SET UP THE VECTOR 

INIT THE DRIVE SELECTION 

PICK A DRIVE FOR TEST 

TRIED ALL. EXIT. 

CHECK DRIVE STATUS FROM DSW 
+1 NOT USEABLE OR OFF-LINE 
♦2 WRITE PROTECTED (VARIABLE MODE) 
♦3 WRITE PROTECTED (MAN OR DEF MODE) 
+4 PASSED CHECKS. INITIALIZE THE TEST, 



DFRPM 
DFRPM 

3330 
3331 
3332 
3333 
3334 
3335 
3336 
3337 
3338 
3339 
3340 
3341 
3342 
3343 
3344 
3345 
3346 
3347 
3348 
3349 
3350 
3351 
3352 
3353 
3354 
3355 
3356 
3357 
3358 
3359 
3360 
3361 
3362 
3363 
3364 
3365 
3366 
3367 
3368 
3369 
3370 
3371 
3372 
3373 
3374 
3375 
3376 
3377 
3378 
3379 
3380 
3381 
3382 
3383 
3384 



r 



)153 



DFRPM 
DFRPM 

27A6 
27A7 
27A8 
27A9 
2750 
2751 
2752 
2753 
275A 
2755 
2756 
2757 
2758 
2759 
2760 
2761 
2762 
2765 
276A 
2765 
2766 
2767 
2768 
2769 
2770 
2771 

nil 

2773 
277U 
2775 
2776 
2777 
2778 
2779 
2780 
2781 
2782 
2783 
278A 
2785 
2786 
2787 
2788 
2789 
2790 
2791 
2792 
2793 
279A 
2795 
2796 
2797 
2798 
2799 
2800 



RP07/6/5/A Exerciser 
MAC 12-Sep-85 17:02 



032302 
032302 
032303 
03230A 
032305 
032306 
032307 
032310 
032311 

032312 
032313 
03231A 
032315 
032316 

032317 
032320 



032321 
032321 
032322 
032323 
03232A 
032325 



032326 
032327 
032330 

032331 
032332 
032333 
03233A 
032335 
032336 

032337 
0323A0 
0323A1 
0323A2 
0323A3 
0323AA 

0323A5 
032346 
0323A7 



031 00 
037 10 
25A 00 
312 00 



254 00 
402 00 
476 00 



254 00 



00 
00 
00 
00 
00 
00 
00 
00 



042211* 

000003 

032302 

042226' 

032312 

030761 

030744 

032326 



00 042227* 
00 032302 
00 030761 



312 00 

254 00 

476 00 

607 14 00 000010 

254 00 00 032321 

031 00 00 042230* 
254 00 00 032307 



031 
260 



00 
17 



254 00 
354 00 



00 042175* 
00 032037* 
00 032321 
00 030744 



402 00 00 030744 



200 01 13 000000* 
202 01 00 000000* 
402 00 00 000000* 



01 



201 
201 
201 
332 00 



00 032247* 

02 00 000003 

03 00 000071 
"' 00 030761 

201 03 00 000061 
260 17 00 032234* 



201 01 
201 02 
201 03 
332 00 
201 03 
260 17 



00 032256* 
00 000003 
00 000071 
00 030761 
00 000061 
00 032336* 



201 
402 
260 



01 00 031623* 
00 000002 
"344* 



"U 



00 032! 



032350 201 01 00 032253* 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-35 
EX9 - EXERCISE A SPECIFIC AREA C? TflE DISK 

.•PERFORM THE DIALOGUE TO SET UP THE FUNCTION 

IN9A: TEXTF [ASCIZ? 

FUNCTIONS: R=READ. URV=WRITE/READ/VERIFy (ENTER R OR URV) - ?] 

INPUT IN SIXBIT 
ERROR ON INPUT 
READ ONLY ? 
- .NO. CHECK RWV 

IN9RD: SETZM L0CFL6 ;YES. CLEAR WRITE FLAG 

AND INHIBIT COMPARES 
GO GENERATE VARIABLES 

1N9RE: 



SEQ 0166 



/3 



TTSIX8 




JRST 


IN9A 


CAME 


O.CSIXBIT/R/: 


JRST 


IN9RE 


SETZM 


L0CFL6 


SETOM 


NOCOMP 


JRST 


EX9VAR 


CAME 


O.CSIXBIT/URV/] 


JRST 


IN9A 


SETOM 


LOCFLG 


TLNN 


DSW.dBU) 


JRST 


IN9B 


TEXTF 


[ASCIZ/DRIVE UR 



WANT WRITE/READ/VERIFY ? 

NEITHER INPUT.. REPROMPT 

SET THE WRITE FLAG 

DRIVE WRITE PROTECTED ? 

.NO. SEE IF HE WANTS COMPARES 

[ASCIZ/DRIVE WRITE-PROTECTED. DEFAULTING TO READ OPTION. 



JRST 



IN9RD 



IN9B: TEXTF [ASCIZ/ 
WANT DATA COMPARES/] 
GO QSTN 
JRST .-2 
AOSA NOCOMP 
SETZM NOCOMP 



;AS IF HE HAD ENTERED AN R 



ASK THE QUESTION 
TIMEOUT OR ERROR 
NO. SET INHIBIT COMP FLG 
YES. ALLOW COMPARES 



.-HERE IS WHERE WE SET UP PARAMETERS 



EX9VAR: 



MOVE 

MOVEM 

SETZM 

MOVE I 
MOVE I 
HOVE I 
SKIPE 
HOVE I 
GO 

HOVE I 
HOVE I 
HOVE I 
SKIPE 
HOVE I 
60 

HOVE I 
SETZM 
GO 



I.CWFTD(XI) 

1.SIZE1 

SECT3 

1.CYL1 

2.3 

3.71 

LOCFLG 

3.61 

GENVAR 

1.CYL2 

2.3 

3.71 

LOCFLG 

3.61 

GENVAR 

1.SURF1 

2 

GENVAR 



HOVE I 1, SURF 2 



SIZE IS ALWAYS A FULL TRACK 

WE SAVE THE SIZE 

ALWAYS START AT FIRST SECTOR 

GET PARAM 

RESTRICTION CODE - 3 
GET A READ COMMAND ... 

SEE IF READ WAS RIGHT GUESS 
WRONG. GET WRITE COMMAND 
GENERATE VARIABLES 

GET THE PARAMETER 
RESTRICTION CODE - 3 
GET A READ COMHAND ... 

SEE IF READ WAS RIGHT GUESS 
WRONG. GET WRITE COMMAND 
GENERATE THE VARIABLE 

GET PARAM 

NO RESTRICTION 

GENERATE THE VARIABLE 

;GET PARAM 



DFRPM 
DFRPM 

3385 
3386 
3387 
3388 
3389 
3390 
3391 
3392 
3393 
3394 
3395 
3396 
3397 
3398 
3399 
3400 
3401 
3402 
3403 
3404 
3405 
3406 
3407 
3408 
3409 
3410 
3411 
3412 
3413 
3414 
3415 
3416 
3417 
3418 
3419 
3420 
3421 
3422 
3423 
3424 
3425 
3426 
3427 
3428 
3429 
3430 
3431 
3432 
3^33 
3434 
3435 
3436 
3437 
3438 
3439 



154 



DFRPM 
DFRPM 

2801 
2802 
2803 
2804 
2805 
2806 
2807 
2808 
2809 
2810 
2811 
2812 
2813 
28U 
2815 
2816 
2817 
2818 
2819 
2820 
2821 
2822 
2823 
2824 
2825 
2826 
2827 
2828 
2829 
2830 
2831 
2832 
2833 
2834 
2835 
2836 
2837 
2838 
2839 
2840 
2841 
2842 
2843 
2844 
2845 
2846 
2847 
2848 
2849 
2850 
2851 
2852 
2853 
2854 
2855 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



032351 
032352 



032353 
032354 
032355 

032356 
032357 
032360 
032361 
032362 

032363 
032364 
032365 
032366 



032367 
032370 
032371 
032372 
032373 

032374 
032375 

032376 
032377 
032400 
032401 
032402 



032403 
032404 
032405 
032406 
032407 
032410 
032411 



032412 
032413 



402 00 00 000002 
260 17 00 032347* 



201 00 00 000007 
260 17 00 000000* 

202 00 00 000000* 

200 01 00 032355* 
200 02 01 032100* 
00 032327* 



514 01 
540 01 



00 030724 



260 17 00 032103* 

200 01 00 032331* 

202 01 00 000000* 

200 01 00 032345* 

202 01 00 000000* 



260 17 00 032275* 
254 00 00 032423 
254 00 00 032374 
254 00 00 032374 
23 00 00 032376 

332 00 00 030761 
254 00 00 032423 



260 
260 



17 00 032424 

ir 



00 032236* 
254 00 1 00 030740 
254 00 00 032367 
254 00 00 032403 



200 01 
316 01 
254 00 
350 01 
313 01 
402 00 
254 00 



00 032366* 
00 032350* 
00 032412 
00 032403* 
13 000000* 
00 032406* 
00 032367 



200 01 00 032365* 
202 01 00 032410* 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-36 
EX9 - EXERCISE A SPECIFIC AREA OF TRE DISK 



SEO 0167 



SETZM 2 

GO GENVAR 



;N0 RESTRICTION 
.-GENERATE THE VARIABLE 



.•HERE IS THE START OF THE MAIN TEST LOOP 

;CYL1,SURF1 AND CYL2.SURF2 BOUND THE ADDRESSES 

;CyL3.SURF3 BECOME THE WORKING PARAMETERS WITH SURF3 VARYING MORE RAPIDLY 



EX9L1 



EX9L2; 



MOVE I 

GO 

HOVEM 

MOVE 

MOVE 

HRLZ 

HRR 

GO 

MOVE 
MOVEM 
MOVE 
MOVEM 



0.7 

GENRAN 

O.PATI 

1.PAT1 
2.DATTBL(1) 
I.SIZEI 
1.8UF1A 
I CORE 

1.CYL1 
1.CYL3 
1.SURF1 
1. SURF 3 



;D0 I/O AND BRANCH ACCORDINGLY 



EX9L3; 



EX9L4: 
EX9L5: 



GO 

JRST 

JRST 

JRST 

JRST 

SKIPE 
JRST 

GO 

GO 

JRST 

JRST 

JRST 



STATCK 

EX9X 

EX9L4 

EX9L4 

EX9L5 

LOCFLG 
EX9X 

109 

BRANCH 

iALTADD 

EX9L3 

EX9L6 



MAX RANDOM SIZE FOR PAT1 

CALL THE RANDOM NUMBER GENERATOR 

NOW HAVE PATTERN INDEX 

GET PATTERN INDEX 

GET PATTERN 

GET SIZE 

AND BUFFER ADDRESS 

INIT CORE 

GET INITIAL CYLINDER 
INITIALIZE THE WORKING VARIABLE 
GET INITIAL SURFACE 
INITIALIZE THE WORKING VARIABLE 



CHECK DRIVE STATUS 
+1 OFF-LINE OR NOT-USEABLE 
+2 WRITE PROTEDTED (VAR MODE) 
+3 WRITE PROTECTED (MAN MODE) 
+4 PASSED ALLL TESTS 

;IS WRITE/READ/VERIFY CHOSEN ? 
;YES ... CAN NO LONGER CONTINUE 

CALL THE I/O ROUTINE 

THEN THE LOOP ROUTINE 

ALTMODE 

LOOP ON ERROR 

CONTINUE 



.-HERE WE UPDATE CYL3. SURF3 AND BRANCH ACCORDINGLY 



EX9L6: 



MOVE 

CAMN 

JRST 

AOS 

CAMLE 

SETZM 



1. SURF 3 

1.SURF2 

EX9L7 

1. SURF 3 

I.MXSUR(XI) 

SURF 3 



JRST EX9L3 



GET VALUE OF SURF3 

ARE WE AT UPPER SURFACE BOUNDRY ? 

YES. GO UPDATE CYLINDER CYL3 

NO. BUMP AC1 AND SURF 3 

WE PASSED THE MAXIMUM SURFACE NUMBER 

YES. RESET IT TO ZERO 

AND LOOP... 



;SURF3=SURF2 SET SURF3=SURF1 AND ADJUST CVL3 ACCORDINGLY 



EX9L7: 



MOVE 
MOVEM 



1.SURF1 
1. SURF 3 



.-GET INITIAL SURFACE ? 
.•STUFF IT IN WORKING VARIABLE 



DFRPM 
DFRPM 

3440 
3441 
3442 
3443 
3444 
3445 
3446 
3447 
3448 
3449 
3450 
3451 
3452 
3453 
3454 
3455 
3456 
3457 
3458 
3459 
3460 
3461 
5462 
3463 
3464 
3465 
3466 
3467 
3468 
3469 
3470 
3471 
3472 
3473 
3474 
3475 
3476 
3477 
3478 
3479 
3480 
3481 
3482 
3483 
3484 
3485 
3486 
3487 
3488 
3489 
3490 
3491 
3492 
3493 
3494 



r" 



155 



OFRPM 
DFRPM 

2856 
2857 
2858 
2859 
2860 
2861 
2862 
2863 
2864 
2865 
2866 
2867 
2868 
2869 
2870 
2871 
2872 
2873 
2874 
2875 
2876 
2877 
2878 
2879 
2880 
2881 
2882 
2883 
2884 
2885 
2886 
2887 
2888 
2889 
2890 
2891 
2892 
2893 
2894 
2895 
2896 
2897 
2898 
2899 
2900 
2901 
2902 
2903 
2904 
2905 
2906 
2907 
2908 
2909 
2910 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-37 
EX9 - EXERCISE A SPECIFIC AREA OF TRE DISK 



S£Q 0168 



032414 
032415 
032416 
032417 
032420 
032421 
032422 



032424 
032425 
032426 
032427 
032430 
032431 
032432 
032433 
032434 
032435 



032436 
032437 
032440 
032441 
032442 
032443 



032444 

032445 

032446 

032447 

032450 

032451 

032452 

0324S3 



C. " 



032456 
032457 
032460 



200 01 
316 01 
254 00 
350 01 
313 01 
402 00 
254 00 



00 032364* 
00 032337* 
00 032353 
00 032414* 
13 000000* 
00 032417* 
00 032367 



032423 263 17 00 000000 



336 00 
254 00 
201 01 
550 02 
242 02 
504 02 
434 02 
504 03 
540 03 
260 17 



00 030761 
00 032444 
00 000061 
00 032413* 
00 000010 
00 032421* 
00 032330* 
00 032360* 
00 030724 
00 032261* 



5:.i 00 00 030744 
254 00 00 032444 
200 02 00 030725 



200 01 
504 01 
260 17 



00 030724 

00 032433* 

00 032141* 



260 
201 



17 
01 



540 02 
242 02 
434 02 
504 02 
504 03 
540 03 
260 17 
260 17 



00 032262* 
00 000071 
00 032427* 
00 000010 
00 032432* 
00 032431* 
00 032442* 
00 030725 
00 032435* 
00 032444* 



332 00 00 030744 
254 00 00 032472 
200 01 00 030725 





MOVE 


1.crL3 




CAMN 


i,cyL2 




JRST 


EX9L1 




AOS 


i.cyL3 




CAMLE 


I.LCyCE(Xl) 




SET2M 


CYL3 




JRST 


EX9L3 


.•HERE 


S WHERE 


WE EXIT 


EX9X: 


RTN 





AC1 



GET CYL3 TO 

CyL3^CVL2 ? 

YES. THIS PASS IS FINISHED 

NO. BUMP AC1 AND CyL3 

SEE IF WE'VE PASSED LAST CYL ON MEDIA 

NO. RESET TO CYLINDER 

AND LOOP 



.•RETURN TO DISPATCHER 



.-THE I/O AND COMPARISON SECTION 

;AT THIS POINT WE DO OUR I/O TO CYL3. SURF3. SECT3. SIZE1. PAT1 



109: SKIPN 


LOCFLG 


;WISH TO WRITE ? 


JRST 


I09A 


;N0. PROCEED TO THE READ 


HOVE I 


1.61 


;A WRITE COMMAND 


HRRZ 


2. SURF 3 


;GET SURFACE # 


LSH 


2.*D8 


^POSITION IT 


HRL 


2.CYL3 


;GET CYLINDER 


I OR 


2.SECT3 


;AND SECTOR NUMBER 


HRL 


3.SIZE1 


;GET SIZE 


HRR 


3.8UF1A 


;GET BUFFER ADDRESS 


GO 


XFSTRT 


; START THE WRITE 


;IF DOING COMPARES WE CAN PREPARE READ BUFFER WHILE WRITING 


SKIPE 


NOCOMP 


;WANT COMPARES ? 


JRST 


I09A 


;N0 


MOVE 


2.8UF2A 


;yES. SET UP READ BUFFER 


MOVE 


1.BUF1A 


TO COMP OF WRITE BUFFER 


HRL 


1.SIZE1 


•GET THE SIZE 


GO 


XCOMP 


•FINALLY SET UP THE READ BUFF 


.•WAIT FOR ANY 


I/O TO FIFISH AND ! 


START UP THE READ 


I09A: GO 


lOWAIT 


■WAIT UNTIL WRITE COMPLETES 


MOVE I 


1,71 


■A READ COMMAND 


HRR 


2.SURF3 


•GET SURFACE 


LSH 


2.*D8 


•POSITION IT 


I OR 


2.SECT3 


•INCLUDE THE SECTOR 


HRL 


2.cyL3 


AND CYLINDER 


HRL 


3.SIZE1 


GET SIZE OF XFER 


HRR 


3.8UF2A 


ADDR OF READ BUFFER 


GO 


XFSTRT 


READ WHAT WAS JUST WRITTEN 


60 


lOWAIT 


WAIT UNTIL THE READ COMPLETES 


;I/0 FINALLY FINISHED. DECIDE WH/ 


\J TO DO ABOUT DATA COMPARE 


SKIPE 


NOCOMP 


WANT DATA COMPARES ? 


JRST 


1 098 


NO 


MOVE 


1.8UF2A 


YES. GET ADDR OF READ BUFFER 



DFRPM 
DFRPM 

3495 
3496 
3497 
3498 
3499 
3500 
3501 
3502 
3503 
3504 
3505 
3506 
3507 

3508 
3509 
3510 
3511 
3512 
3513 
3514 



56 



DFRPM 
DFRPM 

2911 
2912 
2913 
291 A 
2915 
2916 
2917 
2918 
2919 
2920 
2921 
2922 
2923 
292A 
2925 
2926 
2927 
2928 
2929 
2930 
2931 



RP07/6/5/A Exerciser 
MAC 12-Sep-85 17:02 

032A61 50A 01 00 032A52* 
032A62 200 02 00 03072A 



032A63 260 17 00 032367* 

032A6A 25A 00 00 032A72 

032A65 25A 00 00 032A72 

032A66 25A 00 00 032A72 

032A67 255 00 00 000000 

032<''0 260 17 00 032166* 

032A71 A76 00 00 030752 

032A72 263 17 00 000000 



MACRO X53B(12A2) 19:36 12-Sep-85 Page 1-38 
EX9 - EXERCISE A SPECIFIC AREA OF TflE DISK 



SEQ 0169 



HRL 
MOVE 



1,SIZE1 
2,8UF1A 



;6ET THE SIZE 

;GET THE ADR OF WRITE BUFF 



.•QUICK TEST TO SEE IF DEVICE IS USEABLE .. IF NOT, NO COMPARE 



GO 

JRST 

JRST 

JRST 

JFCL 



STATCK 
1 098 
1098 
1098 



1098: 



GO C0MP88 
SETOM ERROR 
RTN 



CHECK STATUS FROM DSW 
+1 NOT USEABLE OR OFF-LINE 
+2 WRITE LOCKED (VAR MODE) 
+3 WRITE LOCKED (MAN OR DEF MODE) 
+A NONE OF THE ABOVE 

; BUFFER TO BUFFER COMPARE 
;S0 TEST WILL LOOP 



SUBTTL EX10 - SEEK AND THEN WRITE 
XLIST 
LIST 
PAGE 



DFRPM 
DFRPM 

3515 

3516 

3517 

3518 

3519 

3520 

3521 

3522 

3523 

352A 

3525 

3526 

3527 

3528 

3529 

3530 

3531 

3532 

3533 

353A 

3535 

3536 

3537 

3538 

3539 

35A0 

35A1 

35A2 

35A3 

35AA 

35A5 

35A6 

35A7 

35A8 

35A9 

3550 

3551 

3552 

3553 

355A 

3555 

3556 

3557 

3558 

3559 

3560 

3561 

3562 

3563 

356A 

3565 

3566 

3567 

3568 

3569 



SEQ 015? 



DFRPM 


RP07/6/5/4 Exerciser 


MACRO 5:53B(1?42) 19:36 12-SeD-85 


Page 1-39 


DFRPM 


MAC 


12-Sep-85 17:02 


EX10 - 


SEEK AND 


THEN WRITE 


^ ( 


2932 






S*; ********************************************************************** 


2933 






;* EX1C 


— SEEK 


, WRITE 




2934 






S*; ************************************************************************* 


2935 














2936 






COMMENT 


$ 






2937 














2938 








ISSUE A 


SEEK TO SOME DISK ADDRESS. FOLLOW UP WITH 


2939 








A W.?ITE 


OF VARIABLE LENGTH DATA FROM 


2940 








SOME OTHER DISK ADDRESS. 




2941 
2942 
2943 








IN VARIABLE MODE, ALL PA, 


AMS MAY BE SPECIFIED. 








CALL 


SEQ: 




2944 








GO 


EX10 


;CALL THE ROUTINE 


2945 








RTN 




jRETURN 


2946 








$ 






2947 








XLIST 






2948 








LIST 






2949 














2950 














2951 


032473 


201 01 00 032561 


EX10: 


MOVE I 


1,EX10X 


;GET ALTMODE ADDRESS 


2952 


032474 


202 01 00 030740 




MOVEM 


1,ALTADD 


;SET UP THE VECTOR 


2953 


032475 


476 00 00 030755 




SETOM 


SELFL6 


^INITIALIZE THE SELECTION ROUTINE 


2954 


032476 


260 17 00 032273V 


EX10S- 


GO 


SELECT 


rSELECT A DRIVE FOR TEST 


2955 


032477 


254 CO 00 032561 




JRST 


EX10X 


; TRIED ALL. EXIT 


2956 


032500 


260 17 00 032463* 




GO 


STATCK 


rCHECK DRIVE STATUS FROM DSW 


2957 


032501 


254 00 00 032476 




JhST 


EX10S 


; +1 NOT USEABLE OR OFF-LINE 


2958 


032502 


254 00 00 032561 




JRST 


EX10X 


; +2 WRITE PROTECTED (VARIABLE MODE) 


2959 


032503 


254 00 00 032476 




JRST 


EX10S 


; +3 WRITE PROTECTED (MAN OR DEF MODE) 


2960 
2961 
2962 
2963 
2964 


032504 


260 17 00 037722 




GO 


TINT 


; +4 PASSED CHECKS. INITIALIZE THE TEST. 






.•GENERATE THE VARIABLES 




032505 


336 00 00 030731 




SKIPN 


VARFLG 


•VARIABLE MODE ? 


2965 


032506 


254 00 00 032513 




JRST 


EX10A 


•NO 


2966 


032507 


201 01 00 032363* 




MOVE I 


1.CYL1 


•GET PARAM 


2967 


032510 


402 00 00 000002 




SETZM 


2 


•NO RESTRICTIONS 


2968 


032511 


260 17 00 032352* 




GO 


GENVAR 


•GENERATE THE VARIABLE 


2969 


032512 


254 00 00 032516 




JRST 


EXIOC 


•TO COMMON CODE 


2970 


032513 


402 00 00 032415* 


EX10A: 


SETZM 


CYL2 


•CLEAR PARAMETERS 


2971 


032514 


200 00 00 032513* 


EX10B: 


MOVE 


0,CYL2 




2972 


032515 


202 00 00 032507* 




MOVEM 


CCYLI 




2973 


032516 


201 01 00 032514* 


EXIOC: 


MOVE I 


i.cyL2 


■GET THE PARAMETER 


2974 


032517 


201 02 00 000003 




MOVE I 


2,3 


RESTRICTION CODE - 3 


2975 


032520 


201 03 00 000061 




MOVE I 


3.61 


A WRITE COMMAND 


2976 


032521 


260 17 00 032511* 




GO 


GENVAR 


GENERATE THE VARIABLE 


2977 


032522 


201 01 00 032404* 




MOVE I 


1.SURF2 


GET PARAM 


2978 


032523 


402 00 00 000002 




SETZM 


2 : 


NO RESTRICTION 


2979 


032524 


260 17 00 032521* 




GO 


GENVAR 


GENERATE THE VARIABLE 


2980 


032525 


201 01 00 032255* 




MOVE I 


1.SECT2 


GET THE PARAM 


2981 


032526 


402 00 00 000002 
260 17 00 032524* 




SETZM 


2 ; 


NO RESTRICTION 


2982 


032527 




GO 


GENVAR 


GENERATE THE VARIABLE 


2983 


032530 


201 01 00 032257* 




MOVE I 


1.SIZE2 


GET THE PARAMETER 


2984 


032531 


402 00 00 000002 




SETZM 




NO RESTRICTION 


2985 


032532 


200 04 00 032522* 




MOVE 


4.SURF2 ! 


GET START SU^f 


2986 


032533 


242 04 00 000010 




LSH 


4.-D8 


POSITION IT 



SEQ 0170 



Dl 
Df 



SEQ 0158 



DFRPM 
DFRPM 

2987 
2988 
2989 
2990 
2991 
2992 
2993 
299A 
2995 
2996 
2997 
2998 
2999 
3000 
3001 
3002 
3003 
3004 
3005 
3006 
3007 
3008 
3009 
3010 
3011 
3012 
3013 
3014 
3015 
3016 
3017 
3018 
3019 
3020 
3021 
3022 
3023 
3024 
3025 
3026 
3027 
3028 
3029 
3030 
3031 
3032 
3033 
3034 
3035 
3036 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



032534 
032535 
032536 
032537 
032540 
032541 
032542 



032543 
032544 
032545 
032546 
032547 



032550 
032551 
032552 
032553 
032554 
032555 
032556 
032557 
032560 
032561 



032562 
032563 
032564 
032565 
032566 
032567 
032570 
032571 
032572 
032573 
032574 
032575 
032576 



434 04 
504 04 
260 17 
201 01 
402 00 
260 17 












00 
00 
00 
00 
00 
00 



254 00 00 



032525* 

032516* 

032527* 

032077* 

000002 

032536* 

032543 



200 01 
200 02 
514 01 
540 01 
260 17 



260 17 
260 17 
254 00 
254 00 
332 00 
254 00 
373 00 
254 00 
254 00 
263 17 



514 01 
260 17 
260 17 
201 01 
550 02 
242 02 
504 02 
434 02 
504 03 
540 03 
260 17 
260 17 
263 17 



00 032537* 
01 



032357* 
00 032530* 
00 030724 
00 032362* 



00 032562 

00 032377* 

1 00 030740 
00 032550 
00 030731 

00 032550 
00 030735 
00 032514 
00 032476 
00 000000 



00 032515* 
00 032250* 
00 032455* 
00 000061 
00 032532* 
00 000010 
00 032535* 
00 032534* 
00 032545* 
00 030724 
00 032454* 
00 032564* 
00 000000 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-40 
EX10 - SEEK ANO T'lEN URITE 



SEQ 0171 



DF 
DF 



I OR 

HRL 

60 

MOVE I 

SETZM 

60 

JRST 



4.SEtT2 

4,CYL2 

6ENVAR 

1,PAT2 

2 

6ENVAR 

EX10D 



;6ENERATE A URITE BUFFER OF DATA 

EX10D: MOVE 1,PAT2 

MOVE 2.DATTBL(1) 

HRLZ 1,S]ZE2 

HRR 1. SUFI A 

GO I CORE 

;D0 I/O AND BRANCH ACCORDINGLY 



EX10E; 



EX10F 



EXIOX: 



60 

60 

JRST 

JRST 

SKIPE 

JRST 

SOSLE 

JRST 

JRST 

RTN 



1010 

BRANCH 

aALTADD 

EX10E 

VARFL6 

EX10E 

TSTITR 

EX10B 

EX10S 



;THE I/O SECTION 



1010: 



101 OB: 



HRLZ 

60 

60 

MOVE I 

HRRZ 

LSH 

HRL 

I OR 

HRL 

HRR 

60 

60 

RTN 



I.CYLI 

.SEEK 

lOWAIT 

1.61 

2,SURF2 

2/D8 

2,CYL2 

2,SECT2 

3.SIZE2 

3,BUF1A 

XFSTRT 

lOWAIT 



INCLUDE SECTOR 
AND CYLINDER 
6ENERATE THE VARIABLE 
6ET THE PARAM 
NO RESTRICTIONS 
6ENERATE THE VARIABLE 
AND CONTINUE 



6ET PATTERN INDEX 

6ET PATTERN 

6ET SIZE 

AND BUFFER ADDRESS 

INIT CORE 



CALL THE I/O ROUTINE 

THEN THE LOOP ROUTINE 

ALTMODE 

LOOP ON ERROR 

CONTINUE. VARIABLE MODE ? 

YES 

DEC ITERATION COUNT 

NOT DONE 

DONE. SELECT NEXT DRIVE 

EXIT 



6ET CYLINDER M 

POSITION 

WAIT UNTIL DONE 

A URITE COMMAND 

GET SURFACE * 

POSITION IT 

GET CYLINDER 

AND SECTOR NUMBER 

6ET SIZE 

6ET BUFFER ADDRESS 

START THE URITE 

UAIT UNTIL URITE COMPLETES 



SUBTTL EX11 - (IMPLIED SEEK), READ, URITE, READ 
XLIST 
LIST 
PA6E 



n 



SEQ 0159 






DFRPM 
DFRPM 

3037 

3038 

3039 

30A0 

3041 

30A2 

3043 

3044 

3045 

3046 

?047 

i0s3 

3049 

3050 

3051 

3052 

3053 

3054 

3055 

3056 

3057 

3058 

3059 

3060 

3061 

3062 

3063 

3064 

3065 

3066 

3067 

3068 

3069 

3070 

3071 

3072 

3073 

3074 

3075 

3076 

3077 

3078 

3079 

3080 

3081 

3082 

3083 

3084 

3085 

3086 

3087 

3088 

3089 

3090 

3091 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



032577 
032600 
032601 
032602 
032603 
032604 
032605 
032606 
032607 
032610 



032611 
032612 
032613 
032614 
032615 
032616 
032617 
032620 
032621 
032622 
032623 
032624 
032625 
032626 
032627 
032630 
032631 
032632 
032633 
032634 
032635 
032636 
032637 
032640 
032641 



201 01 

202 01 



00 
00 



476 00 00 



260 17 
254 00 
260 17 
254 00 



00 
00 
00 
00 



254 00 00 
254 00 00 
260 17 00 



032716 

030740 

030755 

032476* 

032716 

032500* 

032602 

032716 

032602 

037722 



cV 01 
201 02 
201 03 
260 17 
201 01 
402 00 
260 17 
201 01 
402 00 
260 17 
201 01 
402 00 

200 04 
242 04 
434 04 
504 04 
260 17 

201 01 
201 02 
201 03 
260 17 
201 01 
402 00 
260 U 
201 01 



00 032562* 
00 000003 
00 000071 
00 032541* 
00 032412* 
00 000002 
00 032614* 
00 031625* 
00 000002 
00 032617* 
00 032461* 
00 000002 
00 032615* 
00 000010 
00 032620* 
00 032611* 
00 032622* 
00 032570* 
00 000003 
00 000061 
00 032631* 
00 032566* 
00 000002 
00 032635* 
00 032571* 



MACRO 3!53B(1242) 19;36 12-Sep-85 Page 1-41 
EX11 - (IMPLIED SEEK), READ, WRITE, READ 

S*' *♦************♦******♦♦**♦**********»♦*•♦*****♦*•**«*♦*******♦**♦***♦* 

;* EX11 — READ, WRITE, READ 

S*; ********************************************************************** 



SEQ 0172 



COMMENT $ 



THREE OPERATIONS TAKE PLACE. EACH IS TO A RANDOM DISK 

ADDRESS AND IS OF RANDOM SIZE. 

IN VARIABLE MODE, ALL PARAMS KAY BE SPECIFIED. 



EX11: 
EX11S; 



CALL 
GO 
RTN 
$ 

XLIST 
LIST 

MOVE I 

MOVEM 

SETOM 

GO 

JRST 

GO 

JRST 

JRST 

JRST 

GO 



SEQ: 
EX11 



1,EX11X 

1,ALTADD 

SELFLG 

SELECT 

EXllX 

STATCK 

EXllS 

EXllX 

EXllS 

TINT 



.•GENERATE THE VARIABLES 



EX11B: 



EX11C: 



MOVE I 
MOVE I 
MOVE I 
GO 

MOVE I 
SETZM 
GO 

MOVE I 
SETZM 
GO 

MOVE I 
SETZM 
MOVE 
LSH 
I OR 
HRL 
60 

MOVE I 
MOVE I 
MOVE I 
GO 

MOVE I 
SETZM 
GO 
MOVE I 



1,CYL1 

2,3 

3,71 

GENVAR 

1,SURF1 

2 

GENVAR 

1,SECT1 

2 

GENVAR 

1,SIZE1 

2 

4,SURF1 

4,*D8 

4,SECT1 

4,CYL1 

GENVAR 

i,cyL2 

3,61 

GENVAR 

1, SURF 2 

2 

GENVAR 

1,SECT2 



.•CALL THE ROUTINE 
.-RETURN 



GET ALTMODE ADDRESS 

SET UP THE VECTOR 

INIT THE SELECT ROUTINE 

SELECT A DRIVE FOR TEST 

DONE. EXIT THE TEST 

CHECK DRIVE STATUS FROM DSW 
+1 NOT USEABLE OR OFF-LINE 
+2 WRITE PROTECTED (VARIABLE MODE) 
♦3 WRITE PROTECTED (MAN OR DEF MODE) 
♦4 PASSED CHECKS. INITIALIZE THE TEST. 



GET PARAM 
RESTRICT CODE-3 
A READ COMMAND 
GENERATE THE VARIABLE 
GET THE PARAMETER 
NO RESTRICTIONS 
GENERATE THE VARIABLES 
VARIABLE 
NO RESTRICTION 
GENERATE THE VARIABLE 
VARIABLE NAME 
NO RESTRICTION 
GET THE SURFACE 
POSITION IT 
INCLUDE SECTOR 
AND CYLINDER 
GENERATE THE VARIABLE 
GET THE PARAMETER 
RESTRICTION CODE - 3 
A WRITE COMMAND 
GENERATE THE VARIABLE 
GET PARAM 
NO RESTRICTION 
GENERATE THE VARIABLE 
GET THE PARAM 



DFR 
DFR 

3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 



SEQ 0160 



DFRPM 
DFRPM 

3092 
3093 
309A 
3095 
3096 
3097 
3098 
3099 
3100 
3101 
3102 
3103 
31 OA 
3105 
3106 
3107 
3108 
3109 
3110 
3111 
3112 
3113 
31U 
3115 
3116 
3117 
3118 
3119 
3120 
3121 
3122 
3123 
31 2A 
3125 
3126 
3127 
3128 
3129 
3130 
3131 
3132 
3133 
3134 
3135 
3136 
3137 
3138 
3139 
3U0 
3K1 
3U2 
3U3 
3U4 
3U5 
3U6 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO 3:538(1242) 19:36 12-Sep-85 Page 1-42 
EX11 - (IMPLIED SEEK), READ. wRiTE. READ 



SEQ 0173 



032642 
032643 
032644 
032645 
032646 
032647 
032650 
032651 
032652 
032653 
032654 
032655 
032656 
032657 
032660 
032661 
032662 
032663 
032664 
032665 
032666 
032667 
032670 
032671 
032672 
032673 
032674 
032675 
032676 
032677 



032700 
032701 
032702 
032703 
032704 



032705 
032706 
032707 
032710 
032711 
032712 
032713 
032714 
032715 
032716 



402 00 
260 17 
201 01 
402 00 
200 04 
242 04 



434 04 
504 04 



260 17 
201 01 
402 00 



260 17 
201 01 



201 
201 



02 

03 



260 17 
201 01 
402 00 
260 17 



201 01 
^02 00 
cdO 17 
201 01 
402 00 
200 04 
242 04 
434 04 



504 04 
260 17 
254 00 



200 01 
200 02 
514 01 
540 01 
260 17 



260 17 
260 17 
254 00 
254 00 
332 00 
254 00 
373 00 
254 00 
254 00 
263 U 



00 000002 
00 032640* 
00 032572* 
00 000002 
00 032636* 
00 000010 
00 032641* 
00 032632* 
00 032643* 
00 032543* 
00 000002 
00 032652* 
00 032451* 
00 000003 
00 000071 
00 032655* 
00 032446* 
00 000002 
00 032661* 
00 032450* 
00 000002 
00 032664* 
00 000000* 
00 000002 
00 032662* 
00 000010 
00 032665* 
00 032656* 
00 032667* 
00 032700 



00 032653* 

01 032544* 
00 032644* 
00 030724 
00 032547* 



00 
00 
00 
00 
00 
00 
00 
00 
00 
00 



032717 

032551* 

030740 

032705 

030731 

032705 

030735 

032611 

032602 

000000 



032717 201 01 00 000071 



EX11C1 



SETZM 

60 

HOVE I 

SETZM 

HOVE 

LSH 

lOR 

HRL 

GO 

HOVE I 

SETZM 

GO 

HOVE I 

HOVE I 

HOVE I 

GO 

HOVE I 

SETZM 

GO 

HOVE I 

SETZM 

GO 

HOVE I 

SETZM 

HOVE 

LSH 

lOR 

mi 

GO 
JRST 



2 

GENVAR 

1,SIZE2 

2 

4, SURF 2 

4,*D8 

4,SECT2 

4,CYL2 

GENVAR 

1,PAT2 

2 

GENVAR 

1.CYL3 

2,3 

3,71 

GENVAR 

1, SURF 3 

2 

GENVAR 

1,SECT3 

2 

GENVAR 

1,SIZE3 

4, SURF 3 

4,»D8 

4.SECr3 

4.CYL3 

GENVAR 

EX11D 



.•GENERATE A WRITE BUFFER OF DATA 



EX11D: 



MOVE 

MOVE 

HRLZ 

HRR 

60 



1,PAT2 
2,DATTBL(1) 
1,SIZE2 
1. SUFI A 
I CORE 



;D0 I/O AND BRANCH ACCORDINGLY 



EX11E: 



EX11F; 



EX11X; 



GO 
GO 

JRST 

JRST 

SKIPE 

JRST 

SOSLE 

JRST 

JRST 

RTN 



1011 

BRANCH 

aALTADD 

EX11E 

VARFLG 

EX11E 

TSTITR 

EX11B 

EX11S 



.THE I/O SECTION 
1011: MOVEI 1.71 



NO RESTRICTION 
GENERATE THE VARIABLE 
GET THE PARAMETER 
NO RESTRICTION 
GET START SURF 
POSITION IT 
INCLUDE SECTOR 
AND CYLINDER 
GENERATE THE VARIABLE 
GET THE PARAM 
NO RESTRICTIONS 
GENERATE THE VARIABLE 
THE VARIABLE 
REST CODE-3 
A READ COMMAND 
GENERATE THE VARIABLE 
THE VARIABLE 
NO RESTRICTIONS 
GENERATE THE VARIABLE 
THE VARIABLE 
NO RESTRICTIONS 
GENERATE THE VARIABLE 
THE VARIABLE 
NO RESTRICTION 
GET THE SURFACE 
POSITION IT 
INCLUDE THE SECTOR 
INCLUDE CYLINDER 
GENERATE THE VARIABLE 
AND CONTINUE 



GET PATTERN INDEX 

GET PATTERN 

GET SIZE 

AND BUFFER ADDRESS 

INIT CORE 



CALL THE I/O ROUTINE 

THEN THE LOOP ROUTINE 

ALTMODE 

LOOP ON ERROR 

CONTINUE. MAN MODE ? 

YES 

DEC ITERATION COUNT 

NOT DONE 

DONE. SELECT NEXT DRIVE 

EXIT 



;A READ COMMAND 



EQ 0161 



OFRPM 
DF9PM 

3H7 
3148 
3U9 
3150 
3151 
3152 
3153 
3154 
3155 
3156 
3157 
3158 
3159 
3160 
3161 
3162 
3163 
3164 
3165 
3166 
3167 
3168 
3169 
3170 
3171 
3172 
3173 
3174 
3175 
3176 
3177 
3178 
3179 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO J[53B(1242) 19:36 12-Sep-85 Page 1-43 
EX11 - (IMPLIED SEEK), READ. WRITE. READ 



SEQ 0174 



032720 
032721 
032722 
032723 
032724 
032725 
032726 
032727 
032730 
032731 
032732 
032733 
032734 
032735 
032736 
032737 
032740 
032741 
032742 
032743 
032744 
032745 
032746 
032747 
032750 
032751 
032752 



540 02 
242 02 
434 02 
504 02 
504 03 
540 03 
260 17 
260 17 
201 01 
550 02 
242 02 
504 02 
434 02 
504 03 
540 03 
260 17 
260 17 
201 01 
540 02 
242 02 
434 02 
504 02 
504 03 
540 03 
260 17 
260 17 
263 17 



00 032625* 
00 000010 
00 032627* 
00 032630* 
00 032623* 
00 030725 
00 032574* 
00 032575* 
00 000061 
00 032646* 
00 000010 
00 032651* 
00 032650* 
00 032702* 
00 030724 
00 032726* 
i 00 032727* 
00 000071 
00 032672* 
00 000010 
00 032674* 
00 032675* 
00 032670* 
00 030725 
00 032737* 
00 032740* 
00 000000 



I011A: 



I011B: 



HRR 


2. SURF 1 


LSH 


2.*D8 


I OR 


2.SECT1 


HRL 


2.CYL1 


HRL 


3.SIZE1 


HRR 


3,BUF2A 


60 


XFSTRT 


60 


lOWAIT 


MOVE I 


1.61 


HRRZ 


2.SURF2 


LSH 


2.*D8 


HRL 


2.CYL2 


I OR 


2.SECT2 


HRL 


3.SIZE2 


HRR 


3.BUF1A 


60 


KFSTRT 


60 


OWAIT 


MOVE I 


.71 


HRR 


2. SURF 3 


LSH 


2."D8 


I OR 


2.SECT3 


HRL 


2.CYL3 


HRL 


3.SIZE3 


HRR 


3.BUF2A 


GO 


XFSTRT 


GO 


I OWAIT 


RTN 





GET THE SURFACE 

POSITION IT 

INCLUDE SECTOR 

AND THE CYLINDER 

6ET THE SIZE 

ADDR OF READ BUFFER 

DO THE OPERATION 

WAIT UNTIL DONE 

A WRITE COMMAND 

6ET SURFACE # 

POSITION IT 

6ET CYLINDER 

AND SECTOR NUMBER 

6ET SIZE 

6ET BUFFER ADDRESS 

START THE WRITE 

WAIT UNTIL WRITE COMPLETES 

A READ COMMAND 

6ET SURFACE 

POSITION IT 

INCLUDE THE SECTOR 

AND CYLINDER 

6ET SIZE OF XFER 

ADDR OF READ BUFFER 

STA',T THE OPERATION 

WA." UNTIL IT COMPLETES 



SUBTTL EX12 - (IMPLIED SEEK) .WRITE. READ.WRITE 
XLIST 
LIST 
PA6E 



DFRPM 
DFRPM 

3180 
3181 
3182 
3183 
31 8A 
3185 
3186 
3187 
3188 
3189 
3190 
3191 
3192 
3193 
31 9A 
3195 
3196 
3197 
3198 
3199 
3200 
3201 
3202 
3203 
320A 
3205 
3206 
3207 
3208 
3209 
3210 
3211 
3212 
3213 
321A 
3215 
3216 
3217 
3218 
3219 
3220 
3221 
3222 
3223 
322A 
3225 
3226 
3227 
3228 
3229 
3230 
3231 
3232 
3233 
323A 



RP07/6/5/A Exerciser 
MAC 12-Sep-85 17:02 



032753 
032754 
032755 
032756 
032757 
032760 
032761 
032762 
032763 
032764 



032765 
032766 
032767 
032770 
032771 
032772 
032773 
032774 
032775 
032776 
032777 
033000 
033001 
033002 
033003 
033004 
033005 
033006 
033007 
033010 
033011 
033012 
033013 
033014 



201 01 00 033077 

202 01 00 030740 
476 00 00 030755 
260 17 00 032602* 
254 00 00 033077 
260 17 00 032604* 
254 00 00 032756 
254 00 00 033077 
254 00 00 032756 
260 17 00 037722 



201 01 
201 02 
201 03 
260 17 
201 01 
402 00 
260 17 
201 01 
402 00 
260 17 
201 01 
402 00 

200 04 
242 04 
434 04 
504 04 
260 17 

201 01 
402 00 
260 17 
201 01 
201 02 
201 03 
260 17 



00 032723* 
00 000003 
00 000061 
00 032676* 
00 032720* 
00 000002 
00 032770* 
00 032722* 
00 000002 
00 032773* 
00 032724* 
00 000002 
00 032771* 
00 000010 
' 00 032774* 
00 032765* 
00 032776* 
00 032356* 
00 000002 
00 033005* 
00 032733* 
00 000003 
00 000071 
00 033010* 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-44 
EX12 - (IMPLIED SEEK), WRITE, READ, WRITE 

5*- ♦»***«■*♦♦«*•*****»♦♦♦♦♦*•♦♦*♦♦♦*♦****♦♦*♦**♦***♦**♦*******♦*♦*******♦* 
;*'EX12 - JRITE, READ, WRITE 

S*; ***** *************************************************************** 



SEQ 0175 



COMMENT $ 



THREE OPERATIONS TAKE PLACE. EACH IS TO A RANDOM DISK 

ADDRESS AND IS OF RANDOM SIZE. 

SAME DATA USED FOR BOTH WRITES 

IN VARIABLE MODE, ALL PARAMS MAY BE SPECIFIED. 



CALL 
60 
RTN 
$ 

XLIST 
LIST 



SEQ: 
EX12 



EX12: 
EX12S; 



EX12B: 



EX12C; 



MOVEI 


1.EX12X 


MOVEM 


l.ALTADD 


SETOM 


SELFLG 


GO 


SELECT 


JRST 


EX12X 


GO 


STATCK 


JRST 


EX12S 


JRST 


EX12X 


JRST 


EX12S 


GO 


TINT 


E THE 


VARIABLES 


MOVEI 


1,CYL1 


MOVEI 


2,3 


MOVEI 


3,61 


GO 


GENVAR 


MOVEI 


1.SURF1 


SETZM 


2 


GO 


GENVAR 


MOVEI 


1.SECT1 


SETZM 


2 


GO 


GENVAR 


MOVEI 


1,SIZE1 


SETZM 


2 


MOVE 


4. SURF 1 


LSH 


4,*D8 


I OR 


4,SECT1 


HRL 


4,CYL1 


GO 


GENVAR 


MOVEI 


1,PAT1 


SETZM 


2 


GO 


GENVAR 


MOVEI 


1,CYL2 


MOVEI 


i'l 


MOVEI 


3,71 


GO 


GENVAR 



.•CALL THE ROUTINE 
.•RETURN 



GET ALTMODE ADDRESS 

SET UP THE VECTOR 

INIT THE SELECT ROUTINE 

SELECT A DRIVE FOR TEST 

TRIED ALL. EXIT. 

CHECK DRIVE STATUS FROM DSW 
+1 NOT USEABLE OR OFF-LINE 
+2 WRITE PROTECTED (VARIABLE MODE) 
+3 WRITE PROTECTED (MAN OR DEF MODE) 
+4 PASSED CHECKS. INITIALIZE THE TEST. 



GET PARAM 
RESTRICT CODE-3 
A WRITE COMMAND 
GENERATE THE VARIABLE 
GET THE PARAMETER 
NO RESTRICTIONS 
GENERATE THE VARIABLES 
VARIABLE 
NO RESTRICTION 
GENERATE THE VARIABLE 
VARIABLE NAME 
NO RESTRICTION 
GET THE SURFACE 
SHIFT INTO POSITION 
INCLUDE SECTOR 
THE CYLINDER 
GENERATE THE VARIABLE 
GET THE PARAM 
NO RESTRICTIONS 
GENERATE THE VARIABLE 
GET THE PARAMETER 
RESTRICTION CODE - 3 
A READ COMMAND 
GENERATE THE VARIABLE 



Q 0163 



DFRPM 


RP07/6/5/4 Exerciser 


MACRO J:53B(1242) 19:36 12-SeD-85 


Page 1-45 
.WRITE 


DFRPM 


MAC 


12-Sep-8^ V:02 


EX12 - 


(IMPLIED 


SEEK), WRITE, READ 


3235 


033015 


201 01 


00 032731* 




MOVE I 


1,SURF2 


;GET PARAM 


3236 


033016 


402 00 


00 000002 




SETZM 


2 


;N0 RESTRICTION 


3237 


033017 


260 17 


00 033014* 




GO 


GENVAR 


; GENERATE THE VARIABLE 


3238 


033020 


201 01 


00 032734* 




MOVE I 


1,SECT2 


;GET THE PARAM 


3239 


033021 


402 00 


00 000002 




SETZM 


2 


;N0 RESTRICTION 


32A0 


033022 


260 17 


00 033017* 




GO 


GENVAR 


; GENERATE THE VARIABLE 


32A1 


033023 


201 01 


00 032735* 




MOVE I 


1.SIZE2 


;6ET THE PARAMETER 


32A2 


033024 


402 00 


00 000002 




SETZM 


2 


;N0 RESTRICTION 


3243 


033025 


200 04 


00 033015* 




MOVE 


4, SURF 2 


;6ET START SURF 


3244 


033026 


242 04 


00 000010 




LSH 


4,*D8 


;P0SITI0N IT 


3245 


033027 


434 04 


00 033020* 




I OR 


4,SECT2 


[INCLUDE SECTOR 


3246 


033030 


504 04 


00 033011* 




HRL 


4,CYL2 


;AND CYLINDER 


3247 


033031 


260 17 


00 033022* 




GO 


GENVAR 


; GENERATE THE VARIABLE 


3248 


033032 


201 01 


00 032745* 


EX12C1 


MOVE I 


1,CYL3 


;THE VARIABLE 


3249 


033033 


201 02 


00 000003 




MOVE I 


2,3 


;REST CODE-3 


3250 


033034 


201 03 


00 000061 




MOVE I 


3,61 


;A WRITE COMMAND 


3251 


033035 


260 17 00 033031* 




GO 


GENVAR 


; GENERATE THE VARIABLE 


3252 


033036 


201 01 


00 032742* 




MOVE I 


1,SURF3 


■THE VARIABLE 


3253 


033037 


402 00 


00 000002 




SETZM 


2 : 


•NO RESTRICTIONS 


3254 


033040 


260 17 


00 033035* 




GO 


GENVAR 


•GENERATE THE VARIABLE 


3255 


033041 


201 01 


00 032744* 




MOVE I 


1,SECT3 


•THE VARIABLE 


3256 


033042 


402 00 


00 000002 




SETZM 


2 : 


•NO RESTRICTIONS 


3257 


033043 


260 17 


00 033040* 




GO 


GENVAR 


•GENERATE THE VARIABLE 


3258 


033044 


201 01 


00 032746* 




MOVE I 


1,SIZE3 


•THE VARIABLE 


3259 


033045 


402 00 


00 00000? 




SETZM 


2 


•NO RESTRICTION 


3260 


033046 


200 04 


00 033036* 




MOVE 


4,SURF3 


•GET THE SURFACE 


3261 


033047 


242 04 


00 000010 




LSH 


4,*D8 


■POSITION IT 


3262 


033050 


4'' 04 


00 033041* 




I OR 


4,SECT3 


•INCLUDE SECTOR 


3263 


033051 


5 04 


00 033032* 




HLL 


4,CYL3 


•INCLUDE CYLINDER 


3264 


033052 


26«: 17 


00 033043* 




GO 


GENVAR 


■GENERATE THE VARIABLE 


3265 
3266 
3267 
3268 
3269 


033053 


2r- 00 


00 033054 




JRST 


EX12D 


■AND CONTINUE 








; GENERATE A WRITE BUFFER OF DATA 


(USE LARGER OF 2 SIZES) 


033054 


200 01 


00 033006* 


EX12D: 


MOVE 


1,PAT1 


GET PATTERN INDEX 


3270 


033055 


200 02 


01 032701* 




MOVE 


2,DATTBL(1) 


GET PATTERN 


3271 


033056 


200 01 


00 033023* 




MOVE 


1,SIZE2 


GET ONE OF THE SIZES 


3272 


033057 


317 01 


00 033044* 




CAMG 


1,SIZE3 


SELECT TME LARGER OF THE 2 SIZES 


3273 


033060 


254 00 


00 033063 




JRST 


.+3 


SIZE3 IS LARGER 


3274 


033061 


514 01 


00 033056* 




HRLZ 


1,SIZE2 


SIZE2 IS LARGER 


3275 


033062 


334 00 00 000000 




SKI PA 






3276 


033063 


514 01 


00 033057* 




HRLZ 


1,SIZE3 


SIZE3 IS LARGER 


3277 


033064 


540 01 


00 030724 




HRR 


1,8UF1A 


AND BUFFER ADDRESS 


3278 
3279 
3280 
3281 
3282 


033065 


260 17 00 032704* 




GO 


I CORE 


INIT CORE 








;D0 I/O AND BRANCH ACCORDINGLY 




033066 


260 17 00 033100 


EX12E; 


GO 


1012 


CALL THE I/O ROUTINE 


3283 


033067 


260 17 


00 032706* 




GO 


BRANCH 


THEN THE LOOP ROUTINE 


3284 


033070 


254 00 


1 00 030740 




JRST 


aALTADD 


ALTMODE 


3285 


033071 


254 00 00 033066 




JRST 


EX12E 


LOOP ON ERROR 


3286 


033072 


332 00 00 030731 




SKIPE 


VARFLG 


CONTINUE. VARIABLE MODE ? 


3287 


033073 


254 00 00 033066 




JRST 


EX12E 


YES 


3288 


033074 


373 00 00 030735 


EX12F: 


SOSLE 


TSTITR 


DEC ITERATION COUNT 


3289 


033075 


254 00 00 032765 




JRST 


EX12B 


NOT DONE 



"^^^^ 



SEQ 0176 



I 0164 



DFRPM 
DFRPM 

3290 
3291 
3292 
3293 
3294 
3295 
3296 
3297 
3298 
3299 
3300 
3301 
3302 
3303 
3304 
3305 
3306 
3307 
3308 
3309 
3310 
3311 
3312 
3313 
3314 
3315 
3316 
3317 
3318 
3319 
3320 
3321 
3322 
3323 
3324 
3325 
3326 
3327 
3328 
3329 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



033076 
033077 



033100 
033101 
033102 
033103 
033104 
033105 
033106 
033107 
033110 
033111 
033112 
033113 
033114 
033115 
033116 
033117 
033120 
033121 
033122 
033123 
033124 
033125 
033126 
033127 
033130 
033131 
033132 
033133 



254 00 00 032756 
263 17 00 000000 



201 01 
540 02 
242 02 
434 02 
504 02 
504 03 
540 03 
260 17 
260 17 
201 01 
550 02 
242 02 
504 02 
434 02 
504 03 
54C 03 
260 17 
260 17 
201 01 
540 02 
242 02 
434 02 
504 02 
504 03 
540 03 
2o.' 17 
260 17 
263 17 



00 000061 
00 033001* 
00 000010 
00 033003* 
00 033004* 
00 032777* 
00 030724 
00 032750* 
00 032751* 
00 000071 
00 033025* 
00 000010 
00 033030* 
00 033027* 
00 033061* 
00 030725 
00 033107* 
00 033110* 
00 000061 
00 033046* 
00 000010 
00 033050* 
00 033051* 
00 033063* 
00 030724 
00 033120* 
00 033121* 
00 000000 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-46 
EX12 - (IMPLIED SEEK), WRITE, READ, WRITE 



SEQ 0177 



EX12X; 



JRST 
RTN 



;THE I/O SECTION 



1012: 



101 2A: 



I012B: 



MOVE I 

HRR 

LSH 

I OR 

HRL 

HRL 

HRR 

GO 

GO 

MOVE I 

HRRZ 

LSH 

HRL 

I OR 

HRL 

HRR 

GO 

GO 

MOVE I 

HRR 

LSH 

I OR 

HRL 

HRL 

HRR 

GO 

GO 

RTN 



SUBTTL RONLY ■ 
XLIST 
LIST 
PAGE 



EX12S 


•DONE. SELECT NEXT DRIVE 


t 


■EXIT 


1.61 


•A WRITE COMMAND 


2,SURF1 


•GET THE SURFACE 


2,*D8 


■POSITION IT 


2,SECT1 


■INCLUDE SECTOR 


2,CYL1 


■AND THE CYLINDER 


3,SIZE1 


■GET THE SIZE 


3,BUF1A 


■ADDR OF WRITE BUFFER 


XFSTRT 


■DO THE OPERATION 


lOWAIT 


■WAIT UNTIL DONE 


1,71 


■A READ COMMAND 


2,SURF2 


■GET SURFACE # 


2,*D8 


■POSITION IT 


2,CYL2 


■GET CYLINDER 


2,SECT2 


•AND SECTOR NUMBER 


3,SI2E2 


■GET SIZE 


3,BUF2A 


■GET BUFFER ADDRESS 


XFSTRT 


■START THE READ 


lOWAIT 


■WAIT UNTIL READ COMPLETES 


1,61 


•A WRITE COMMAND 


2,SURF3 


■GET SURFACE 


2,*D8 


■POSITION IT 


2,SECT3 


•INCLUDE THE SECTOR 


2,CYL3 


•AND CYLINDER 


3,SIZE3 


GET SIZE OF XFER 


3,BUF1A 


ADDR OF WRITE BUFFER 


XFSTRT 


START THE OPERATION 


lOWAIT 


WAIT UNTIL IT COMPLETES 



DFRPM 
DFRPM 

3860 
3861 
3862 



WONLY - (READ ONLY AND WRITE ONLY) 



0165 



DFRPM 
DFRPM 

3330 
3331 
3332 
3333 
3334 
3335 
3336 
3337 
3338 
3339 
33A0 
33A1 
33A2 
33A3 
33AA 
33A5 
33A6 
33A7 
33A8 
33A9 
3350 
3351 
3352 
3353 
335A 
3355 
3356 
3357 
3358 
3359 
3360 
3361 
3362 
3363 
336A 
3365 
3366 
3367 
3368 
3369 
3370 
3371 
3372 
3373 
3374 
3375 
3376 
3377 
3378 
3379 
3380 
3381 
3382 
3383 
3384 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



033134 
033135 
033136 
033137 



033140 
033141 
033142 
033143 
033144 
033145 
033146 
033147 



033150 
033151 

033152 
033153 
033154 
033155 



MACRO :53B(1242) 19:36 12-Sep-85 Page 1-47 
RONLY - WONLY - (READ ONLY AND WRITE ONLY) 

;*' RONLY -- WONLY 



SEO 0178 



COMMENT $ 



READ AND WRITE ONLY ROUTINES. 

THESE ROUTINES TRANSFER A WHOLE TRACK AT A TIME. WHEN 
DOING WONLY IN VARIABLE MODE IT IS POSSIBLE TO SPECIFY THE 
PATTERN. IN DEFAULT MODE, WORST CASE DATA IS WRITTEN DURING 
WONLY. IN VARIABLE MODE. THE USER MAY SPECIFY THE SIZE OF 
THE TRANSFER. 

THIS TEST USES ESSENTIALLY THE SAME CODE FOR RONLY AND WONLY, 
TO DIFFERENTIATE BETWEEN THE 2 OPTIONS, A FLAG CALLED "LOCFLG" 
IS USED. L0CFLG=-1 MEANS WONLY AND L0CFL6=0 MEANS RONLY. 

RONLY HONORS A FLAG CALLED "PKIFLG" WHICH ALLOWS LINKEAGE TO 

THE ROUTINE WHEN CALLtD FROM THE PACK INIT ROUTINE RATHER THAN THE 

TEST DISPATCHER. PKIFLG=-1 IMPLI.o WE GOT HERE FROM "PAKINT". 



CALL SEQ: 
GO XXX 
RTN 
$ 

XLIST 
LIST 

.•HERE FOR RONLY COMMAND 



;XXX MAY BE RONLY. WONLY 
.'RETURN IS TO HERE 



2u' 01 00 033274 
202 01 00 030740 
402 00 00 030761 
254 00 00 033150 



RONLY; 



MOVE I 
MOVEM 
SETZM 
JRST 



1.RWX 
1.ALTADD 
LOCFLG 
RWC 



.-HERE FOR WONLY CODE 



201 01 

202 01 
476 00 
200 01 
504 01 
200 02 
260 17 
254 00 00 033150 



00 033274 
00 030740 
00 030761 
00 030724 
00 030726 
00 033055* 
00 033065* 



WONLY: 



MOVE I 

MOVEM 

SETOM 

MOVE 

HRL 

MOVE 

GO 

JRST 



1.RWX 

1.ALTADD 

LOCFLG 

I.BUFIA 

1,BUFSIZ 

2.DATTBL 

ICORE 

RWC 



; COMMON CODE FOR RONLY WONLY 



332 00 00 030765 
254 00 00 033172 

476 00 00 030755 
260 17 00 032756* 
254 00 00 033274 
336 00 00 030761 



RWC; 



RWSEL : 



SKIPE 
JRST 

SETOM 
GO 

JRST 
SKIPN 



PKIFLG 
RW1 

SELFLG 
SELECT 
RWX 
LOCFLG 



;GET ALTMODE ADDRESS 
.'SETS UP THE VECTOR 
.•CLEAR THE WRITE FLAG 
;T0 COMMON CODE 



GET ALTMODE ADDRESS 

SETS UP THE VECTOR 

SET THE WRITE FLAG 

ADDR OF WRITE BUFFER 

SIZE 

GET DATA PATTERN (WORST) 

INITS CORE 

TO COMMON CODE 



.•DOING "PAKINT" ? 

;YES. JUMP OVER SELECT AND INIT 

;INIT FOR SELECTION ROUTINE 
.•SELECT A DEVICE FOR TEST 
.•TRIED ALL. EXIT THE TEST 
; RONLY OR WONLY ??? 



DFRPM 
DFRPM 

3863 
3864 
3865 
3866 
3867 
3868 
3869 
3870 
3871 
3872 
3873 
3874 
3875 
3876 
3877 
3878 
3879 
3880 
3881 
3882 
3883 
3884 
3885 
3886 
3887 
3888 
3889 
3890 
3891 
3892 
3893 
3894 
3895 
3896 
3897 
3898 
3899 
3900 
3901 
3902 
3903 
3904 
3905 
3906 
3907 
3908 
3909 
3910 
3911 
3912 
3913 
3914 
3915 
3916 
3917 



r 



0166 



DFRPM 
DFRPM 

3585 
3386 
3387 
3388 
3389 
3390 
3391 
3392 
3393 
339A 
3395 
3396 
3397 
3398 
3399 
3A00 
3A01 
3402 
3403 
3404 
3405 
3406 
3407 
3408 
3409 
3410 
3411 
3412 
3413 
3414 
3415 
3416 
3417 
3418 
3419 
3420 
3421 
3422 
3423 
3424 
3425 
3426 
3427 
3428 
3429 
3430 
3431 
3432 
3^33 
3434 
3435 
3436 
3437 
3438 
3439 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 

033156 254 00 00 033165 



MACRO 3:538(1242) 19:36 12-Sep-85 Page 1-48 
RONLY - UONLY - (READ ONLY AND WRITE ONLY) 



SEO 0179 



033157 
033160 
033161 
033162 
033163 
033164 



035165 
055166 
055167 
055170 
055171 



055172 
055175 
055174 
055175 
055176 
055177 
055200 
055201 
055202 
055205 
055204 
055205 
055206 
055207 
055210 
055211 
055212 
055213 



055214 
055215 
055216 
055217 
055220 
055221 
055222 
055223 
055224 
033225 
033226 
033227 
033230 



260 17 
254 00 
254 00 
254 00 
260 17 
254 00 00 035172 



00 052760* 
00 053153 
00 033274 
00 033155 
00 057722 



260 17 



254 
254 



00 
00 



00 055157* 
00 055155 
00 055171 



254 00 00 055171 
260 17 00 057722 



552 00 
254 00 
402 00 
402 00 
402 00 

201 00 

202 00 
605 14 
254 00 
3:>z 00 
254 00 
607 14 
254 00 
200 00 
202 00 
200 00 
202 00 
254 00 



201 05 
556 00 
201 05 
201 02 
201 01 
260 17 
201 01 
201 02 
260 17 
201 01 
201 02 
260 W 
201 01 



00 050751 
00 055214 
00 055104* 
00 055101* 
00 053103* 
00 000000 
00 055054* 
00 000100 
00 033207 
00 030761 
00 035211 
00 000040 
00 033211 
13 000000* 
00 033174* 
13 032326* 
00 033105* 
00 035252 



00 000065 
00 050761 
00 000073 
00 000005 
00 055210* 
00 000000* 
00 053175* 
00 000000 
00 033221* 
00 033176* 
00 000000 
00 033224* 
00 033212* 



JRST 

.•DOING UONLY 

60 

JRST 

JRST 

JRST 

GO 

JRST 

.•DOING RONLY 



RUO: 



GO 

JRST 

JRST 

JRST 

GO 



RUO 



STATCK 

RWSEL 

RUX 

RUSEL 

TINT 

RU1 



STATCK 
RUSEL 
.♦2 
. + 1 
TINT 



.•COMMON CODE RONLY. UONLY 



RU1: SKIPE 
JRST 
SETZM 
SETZM 
SETZM 

WONPAT: MOVE I 
MOVEM 
TLNE 
JRST 
SKIPN 
JRST 
TLNN 
JRST 

RUIA: MOVE 
MOVEM 

RW18: MOVE 
MOVEM 
JRST 



VARFLG 

RU2A 

CYL1 

SURFl 

SECTl 

0.0 

0.PAT1 

DSU.(IBII) 

RUIA 

LOCFLG 

RU1B 

DSU.(1B12) 

RUIB 

O.FCYCE(XI) 

O.CYLl 

O.CUFTD(XI) 

O.SIZEl 

RUTK 



.•INPUT VARIABLES 



RU2A: 



MOVE I 
SKIPN 
HOVE I 
HOVE I 
HOVE I 
GO 

HOVE I 
HOVE I 
GO 

HOVE I 
HOVE I 
GO 
HOVE I 



5.65 

LOCFLG 

3.75 

2.5 

1.CYL1 

INPUT 

1. SURFl 

2.0 

INPUT 

1. SECTl 

2.0 

INPUT 

1.SIZE1 



.-RONLY . 



CHECK DRIVE STATUS FROM DSW 
♦1 NOT USEABLE OR OFF-LINE 
♦2 URITE PROTECTED (VARIABLE MODE) 
+3 WRITE PROTECTED (MAN OR DEF MODE) 
+4 PASSED CHECKS. INITIALIZE THE TEST. 

TO COMMON CODE 



CHECK DRIVE STATUS FROM DSU 
♦1 NOT USEABLE OR OFF-LINE 
♦2 URITE PROTECTED (VARIABLE MODE) 
+3 URITE PROTECTED (HAN OR DEF MODE) 
♦4 PASSED CHECKS. INITIALIZE THE TEST. 



VARIABLE MODE? 

YES 

CYL=0 

SURFACE=0 

SECT0R=0 

HAKE PATTERN INDEX = 

BUT UE ARE FLEXIBLE .. 

BIT-11 SET ? 

YES. USE CE AREA 

NO. URITE FLAG SET ? 

NO. 

YES. IS BIT-12 SET ? 

NO 

GET 1ST CYL IN CE. AREA 

NOU POINTING TO CE. AREA 

FULL TRACK IS THE SIZE 

SAVE THE SIZE 

TO COMMON CODE 



WRITE COMMAND 

SKIP If UE ARE REALLY URITING 

ELSE GET A READ COMMAND 

DON'T ALLOU URITE OVER CUSTOMER DATA 

NEXT PARAMETER TO INPUT 

GET IT 

NEXT PARAMETER TO INPUT 

NO RESTRICTION ON SURFACE 

GET THE INPUT 

PARAMETER UE UANT 

NO RESTRICTION 

INPUT THE STARTING SECTOR 

UANT TO INPUT THE SIZE 



DFRPM 
DFRPM 

3918 
3919 
3920 



3167 



DFRPM 


RP07/6/5/A f 


ixerc iser 


DFRPH 


MAC 


12-! 


Jep-85 17:02 


3A40 


033231 


201 


02 





00 000000 


3AA1 


033232 


200 OA 





00 033222* 


;AA2 


033233 


2A2 


OA 





00 000010 


:AA3 


03323A 


A3A 


OA 





00 033225* 


3AAA 


033235 


50A 


OA 





00 033220* 


3AA5 


033236 




17 





00 033227* 


3AA6 


033237 


336 00 





00 030761 


3AA7 


0332A0 


25A 


00 





00 0332AA 


3AA8 


0332A1 


201 


01 





00 033200* 


3AA9 


0332A2 


A02 00 


00 000002 


3A50 


0332A3 


260 


17 





00 033236* 


3A51 


0332AA 


200 01 





00 0332A1* 


3A52 


0332A5 


200 02 





01 0331A5* 


3A53 


0332A6 


200 01 





00 03072A 


3A5A 


0332A7 


50A 


01 





00 033230* 


3A55 


033250 


332 


00 





00 0332AA* 


3A56 


033251 


260 


W 





00 0331A6* 


3A57 












3A58 


033252 


260 


17 





00 033275 


3A59 


033253 


260 


17 





00 033067* 


3A60 


03325A 


25A 


00 


1 


00 0307A0 


3A61 


033255 


25A 


00 





00 033252 


3A62 


033256 


332 


00 





00 030731 


3A63 


033257 


25A 


00 





00 033252 


3A6A 












3A65 












3A66 












3A67 


03326J 


350 


01 





00 033232* 


3A68 


033261 


317 


01 





13 032A07* 


3A69 


033262 


25A 


00 





00 033252 


3A70 


033265 


Av;-^ 


00 





00 033260* 


3A71 


03326A 


350 01 





00 033235* 


3A72 


033265 


317 


01 





13 032A20* 


3A73 


033266 


25A 


00 





00 033252 


3A7A 


033267 


255 


00 





00 000000 


3A75 












3A76 












3A77 












3A78 


033270 


373 00 





00 030735 


3A79 


033271 


25A 


00 





00 033172 


3A80 


033272 


336 


00 





00 030765 


3A81 


033273 


25A 


00 





00 033153 


3A82 


03327A 


263 


17 





00 000000 


3A83 












3A8A 












3A85 












3A86 












3A87 


033275 


261 


u 





00 000001 


3A88 


033276 


261 


17 





00 000002 


3A89 


033277 


261 


17 





00 000003 


JA90 












;A91 
::a92 












3A93 


033300 


201 


01 





00 000071 


3A9A 


033301 


200 03 





00 030725 



HACRO :53B(12A2) 19:36 12-Sep-85 Page 1-A9 
RONLY - WONLY - (READ ONLY AND WRITE ONLY) 



SEQ 0180 



RU3: 



RUA: 



RUTK: 



MOVE I 

MOVE 

LSH 

I OR 

HRL 

GO 

SKIPN 

JRST 

NOVEI 

SETZM 

GO 

MOVE 

HOVE 

HOVE 

HRL 

SKIPE 

GO 

GO 
GO 

JRST 
JRST 
SKIPE 
JRST 



2.0 

A, SURF 1 

A/D8 

A.SECT1 

A.CYL1 

INPUT 

L0CFL6 

RUA 

1.PAT1 

2 

INPUT 

1.PAT1 

2.DATTBL(1) 

1.BUF1A 

1.SI2E1 

PAT1 

I CORE 

RUTTRK 

BRANCH 

aALTADD 

RWTK 

VARFLG 

RUTK 



.-TIME TO UPDATE PARAMETERS 



RU6: 



AOS 

CAMG 

JRST 

SETZM 

AOS 

CAMG 

JRST 

JFCL 



1,SURF1 

1,f1XSUR(Xl) 

RUTK 

SURF1 

1.CYL1 

1.LCYCE{X1) 

RWTK 



NO RESTRICTION 

SET UP SURFACE 

POSITION IT 

INCLUDE THE SECTOR 

INCLUDE CYLINDER # 

INPUT PARAMETER 

WRITING 

NO 

YES. PARAM TO INPUT 

NO RESTRICTION 

INPUT DATA PATTERN INDEX 

GET PATTERN INDEX 

GET USER PATTERN 

GET BUFFER ADDRESS 

AND WORD COUNT 

SKIP IF PATT WAS WORST CASE 

GENERATE A BUFFER OF DATA 

DO THE I/O 

BRANCH ACCORDINGLY 

ALTMODE RETURN 

LOOP RETURN 

CONTINUE. VARIABLE MODE ? 

YES. LOOP. 



INCREMENT SURFACE NUMBER 
GREATER THAN MAXIMUM ? 
NO. THEN LOOP AND DO IT 
YES. RESET SURFACE 
INCREMENT THE CYLINDER NUMBER 
GREATER THAN MAXIMUM ? 
NO. DO THE NEXT CYLINDER 
YES. MEDIA HAS BEEN DONE. 



DFRPM 
DFRPM 

3921 
3922 
3923 
392A 
3925 
3926 
3927 
3928 
3929 
3930 
3931 
3932 
3933 
393A 
3935 
3936 
3937 
3938 
3939 
39A0 
39A1 
39A2 
39A3 
39AA 
39A5 
39A6 
39A7 
39A8 
39A9 
3950 
3951 
3952 
3953 
395A 
3955 



.•FINISHED THE SCAN. UPDATE ITERATION COUNT AND BRANCH ACCORDINGLY 



RW7: 



RWX: 



SOSLE 

JRST 

SKIPN 

JRST 

RTN 



TSTITR 
RU1 

PKIFLG 
RWSEL 



.READ OR WRITE I/O 



RWTTRK; 



PUT 
PUT 
PUT 



1 
2 
3 



DECREMENT ITERATION COUNT AND TEST 
NOT DONE. DO ANOTHER ITERATION 
DONE. HERE BECAUSE OF 'V^K1U^" ? 
NO. THEN SELECT NEXT DRIVE. 
EXIT THIS ROUTINE 



;SAVE AC'S 



.-EXECUTE THE PROPER COMMAND (READ OR WRITE) 



RWIO: 



MOVE I 
MOVE 



1.71 
3.8UF2A 



;YES. SET UP THE CALL. READ 
.•READ BUFFER ADDR 



J #UU' Lf^ 



»Mi.ni/ uui t I. n nuUfA 



168 



DFRPM 


RP07/6/5/A Exerciser 


DFRPM 


MAC 


12-Sep-85 17:02 


3A95 


033302 


336 00 00 030761 


3A96 


033303 


25A 00 00 033306 


3A97 


03330A 


20 i 01 00 000061 


3A98 


033305 


200 03 00 03072A 


3A99 


035306 


50A 03 00 0332A7* 


3500 


033307 


550 02 00 033263* 


3501 


033310 


2A2 02 00 000010 


3502 


033311 


A3A 02 00 03323A* 


3503 


033312 


50A 02 00 03326A* 


350A 


033313 


260 17 00 033131* 


3505 


0333K 


260 17 00 033132* 


3506 


033315 


262 17 00 000003 


3507 


033316 


262 17 00 000002 


3508 


033317 


262 17 00 000001 


3509 


033320 


263 17 00 000000 


3510 






3511 






3512 






3513 






35K 







MACRO 1538(1 2A2) 
RONLV - UONLY - (READ 



19:36 12-Sep-85 Page 1-50 
ONLY AND WRITE ONLY) 



SEQ 0181 



RUTTX; 



SUBTTL 



SKIPN 

JRST 

HOVE! 

NOVF 

HRL 

HRRZ 

LSH 

I OR 

HRL 

GO 

GO 

GET 

GET 

GET 

RTN 

FORMAT 
XLIST 
LIST 
PAGE 



LOCFLG 

.♦3 

1,61 

3,BUF1A 

3,SIZE1 

2, SURF 1 

2,*D8 

2.SECT1 

2.cyLi 

XFSTRT 
lOWAIT 
3 
2 

1 



DID YOU WANT READ ? 

YES 

NO. GET WRITE COMMAND 

AND WRITE BUFF ADDR 

INCLUDE THE SIZE 

GET SURFACE 

SHIFT INTO POSITION 

INCLUDE THE SECTOR NUMBER 

NOW HAVE CYLINDER NUMBER 

START THE TRANSFER 

WAIT TILL XFER COMPLETE 

RESTORE THINGS 



;AND EXIT 



- TOP LEVEL FORMATTER CONTROL FOR ALL DRIVE TYPES 



DFRPM 
DFRPM 

3956 
3957 
3958 
3959 
3960 
3961 
3962 
3963 
396A 
3965 
3966 
3967 
3968 
3969 
3970 
3971 
3972 
3973 
397A 
3975 
3976 
3977 
3978 
3979 



69 



DFRPM 
DFRPM 

3515 

3516 

3517 

3518 

3519 

3520 

3521 

3522 

3523 

352A 

3525 

3526 

3527 

3528 

3529 

3530 

3531 

3532 

3533 

353A 

3535 

3536 

3537 

3538 

3539 

3540 

35A1 

3542 

3543 

3544 

3545 

3546 

3547 

3548 

3549 

3550 

3551 

3552 

3553 

3554 

3555 

3556 

3557 

3558 

3559 

3560 

3561 

3562 

3563 

3564 

3565 

3566 

3567 

3568 

3569 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



033321 
033322 
033323 
033324 
033325 
033326 
033327 
033330 
033331 
033332 
033333 
033334 
033335 
033336 
033337 
033340 
033341 
033342 



033343 
033344 
033345 
033346 
033347 
033350 
033351 
033352 
033353 



033354 
033354 
033355 



332 00 
254 00 
476 00 
260 17 
254 00 
260 17 
254 00 
254 00 
254 00 
260 17 



260 17 1 



5:>^ 00 
254 00 
373 00 
254 00 
336 00 
254 00 
263 17 



000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 



00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
13 
00 
00 
00 
00 
00 
00 
00 



030765 

033333 

030755 

033153* 

033342 

033165* 

033324 

033342 

033324 

037722 

033343 

030737 

033342 

030735 

033324 

030765 

033324 

000000 



033651 
033651 
033354 
033361 
033651 
033354 
033354 
033354 
033354 



031 00 00 042243' 
200 00 13 000000* 



MACRO :53B(1242) 19:36 12-Sep-85 Page 1-51 

FORMAT - TOP LEVEL FORMATTER CONTROL FOR ALL DRIVE TYPES 

:*' FORMAT - MEDIA FORMATTER 



SEQ 0182 



DFRPM 
DFRPM 



COMMENT $ 



THIS IS THE FRONT END PROCESSOR THAT ACTUALLY TAKES YOU 
OF TO THE CORRECT FORMATTER FOR THE TYPE OF DRIVE YOU WISH 
TO USE. RP04.RP06,RP07,RM03 

THIS MAY BE CALLED AS A SUB-TEST FROM "PAKINT" IN WHICH 
CASE "PKIFL6" WILL BE -1. 



CALL SEQ: 

RTN 

$ 

XLIST 
LIST 



FORMAT: SKIPE 
JRST 



FORMS: 



FORML: 



FORMX: 



SETOM 

GO 

JRST 

60 

JRST 

JRST 

JRST 

GO 

GO 

SKIPE 

JRST 

SOSLE 

JRST 

SKIPN 

JRST 

RTN 



PKIFLG 

FORML 

SELFLG 

SELECT 

FORMX 

STATCK 

FORMS 

FORMX 

FORMS 

TINT 

aFMTTR(Xl) 

ALTF 

FORMX 

TSTITR 

FORMS 

PKIFLG 

FORMS 



.-CALL THE ROUTINE 

.•RETURNS HERE. MEDIA IS FORMATTED 



DOING PAKINT ? 

YES. SKIP SELECT AND INITIALIZATION 

INIT DRIVE SELECT ROUTINE 

SELECT A DRIVE FOR TEbT 

TRIED ALL. EXIT THE TEST 

CHECK DRIVE STATUS FROM DSW 
♦1 NOT USEABLE OR OFF-LINE 
+2 WRITE PROTECTED (VARIABLE MODE) 
>3 WRITE PROTECTED (MmN OR DEF MODE) 
♦4 PASSED CHECKS. INITIALIZE THE TEST. 

DISPATCH ACCORDING TO DRIVE TYPE 

ALTMODE STRUCK YET ? 

YES. EXIT THIS TEST 

DECREMENT ITERATION COUNT. SEE IF DONE. 

NOT DONE YET. 

DOING PAKINT ? 

NO. GO SELECT THE NEXT DRIVE. 

EXIT 



;THIS TABLE POINTS TO PROPER FORMATTER 



FMTTR: 



FORMXX 
FORMXX 
FORMZZ 
F0RM07 
FORMXX 
FORMZZ 
FORMZZ 
FORMZZ 
FORMZZ 



RP04 

RP06 

SPARE 

RP07 (600 MB) 

RM03 

SPARE 

RP20 (T0PS10) 

RP20 (TOPS20) 

AN EXTRA 



.-HERE'S CODE TO HANDLE AN ATTEMPT TO RUN ON AN UNSUPPORTED DRIVE 



FORMZZ: TEXTF [ASCIZ/ 
THIS PROGRAM CAN'T FORMAT /] 
MOVE O.DRVNAM(XI) 



;GET SIXBIT NAME 



3980 
3981 
3982 
3983 
3984 
3985 
3986 
3987 
3988 
3989 

3990 C 

3991 C 

3992 C 

3993 C 

3994 C 

3995 C 

3996 C 

3997 C 

3998 C 

3999 C 

4000 C 
4001 

4002 C 

4003 C 

4004 C 

4005 C 
4006 
4007 



C 



SEQ 0170 



DFRPM RP07/6/5/4 Exerciser 
DFRPM MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-Sep-85 Paae 1-52 

FORMAT - TOP LEVEL FORMATTER CONTROL FOR ALL DRIVE TYPES 



SEQ 0183 



DF 
DF 



3570 033356 

3571 033357 

3572 033360 
3573 

357A 
3575 
3576 
3577 



037 01 
037 01 
263 17 



00 000002 
00 0302A2 
00 000000 



PNTSXF 

PCRLF 

RTN 



; PRINT IT 
;T0 NEXT LINE 



SUBTTL CODE TO SUPPORT FORMATTING OF RP07 MEDIA 
XLIST 
LIST 
PAGE 



SEQ 0171 



DFRPM 
DFRPM 

3578 
3579 
3580 
3581 
3582 
3583 
358A 
3585 
3586 
3587 
3588 
3589 
3590 
3591 
3592 
3593 
359^ 
3595 
3596 
3597 
3598 
3599 
3600 
3601 
3602 
3603 
360A 
3605 
3606 
3607 
3608 
3609 
3610 
3611 
3612 
3613 
36U 
3615 
3616 
3617 
3618 
3619 
3620 
3621 
3622 
3623 
3624 
3625 
3626 
3627 
3628 
3629 
3630 
3631 
3632 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



033361 
033362 
033363 
033364 
033365 
033366 
033367 
033370 
033371 
033372 



033373 
033374 
033375 
033376 
033377 
033400 



033401 
033402 



033403 
033404 
033405 
033406 
033407 



201 00 

202 00 
332 00 
254 00 
402 00 
402 00 
200 00 
603 14 
20? 00 
cy 00 



00 033423 
00 030740 
00 030731 
00 033373 
00 033312* 
00 033307* 
13 033207* 
00 000140 
00 033365* 



00 033401 



201 02 
201 01 
260 17 
201 01 
201 02 
260 17 00 033375* 



00 000004 
00 033371* 
00 033243* 
00 033366* 
00 000000 



332 00 00 030762 
260 17 00 000000* 



332 00 00 033541 
260 17 00 033542 
260 17 00 033424 
260 17 00 033253* 
254 00 1 00 030740 



MACRO Z53B(1242) 19:36 12-Sep-85 Page 1-53 
CODE TO SUPPORT FORMATTING OF RP07 MEDIA 

$•• **♦**••**********♦*♦♦•♦♦*♦****»****♦****♦*•*****♦♦**********♦********* 

* rORM07 - SUBROUTINE TO FORMAT THE MEDIA FOR RP07 

*********************************************************************** 



SEQ 0184 



DFI 
DFI 



§ 



COMMENT $ 



THIS SUBROUTINE AUTOMATICALLY FORMATS THE ENTIRE MEDIA ADDING 
DEFECTS AS SPECIFIED IN THE TRACK DESCRIPTOR RECORD. U A 
TRACK DESCRIPTOR RECORD IS NOT RECOVERABLE,, THE HARDWARE WILL 
PREVENT THE TRACK FROM BEING FORMATTED. THERE'S NOTHING THAT 
CAN BE DONE AT THIS POINT. YOU MAY GO BACK LATER AND RUN "TDBLD" 
ON THAT TRACK AND THEN REFORMAT THE TRACK IF YOU ARE SUCCESSFUL 
IN REBUILDING THE TRACK DESCRIPTOR RECORD. 



CALL SEQ 

GO FORMAT 

RTN 

$ 

XLIST 

LIST 

F0RM07: MOVE I 
MOVEM 



FVO: SKIPE 
JRST 
SETZM 
SETZM 
MOVE 
TLNE 
MOVEM 
JRST 

.•INPUT VARIABLES 



FVX 

ALTADD 

VARFLG 

FV2A 

CYL1 

SURF1 

0,FCYCE(X1) 

DSW.(1B11!1B12) 

0,CYL1 

FVTK 



FV2A: 



MOVE I 
MOVE I 
GO 

MOVE I 
MOVE I 
GO 



2,4 

1,CYL1 

INPUT 

1,SURF1 

2,0 

INPUT 



.•CALL THE ROUTINE 
.•RETURNS HERE 



ALTMODE ADDR 

SET IT UP 

MANUAL MODE? 

YES 

CYL=0 

SURFACE=0 

GET MAINT AREA 

RESTRICT ? 

YES. USE MAINT AREA 

FORMAT THE TRACK 



DON'T ALLOW FORMAT OVER CUSTOMER DATA 

NEXT PARAMETER TO INPUT 

GET IT 

NEXT PARAMETER TO INPUT 

NO RESTRICTION ON SURFACE 

INPUT PARAMETER 



;IF LISTING IS DESIRED, PRINT THE HEADER 



FVTK: 



SKIPE 
GO 



FLISr 
LDENTH 



.•SKIP IF WE DON'T WANT TO LIST 
.-PRINT A 1 LINE HEADER MESSAGE 



SPECIAL DECISION LOGIC BASED ON MA6ICF 

If MAGICF=0, FORMAT THE TRACK 

IF MAGICF=-1, REWRITE THE TD, VERIFY IT AND THEN FORMAT THF- TRACK 



FVTKO: 



SKIPE 


MAGICF 


^ 


MAG C 


FMT RK 


60 


BRANCH 


JRST 


aALTADD 



DO WE WANT TO REWRITE TD'S 

YES ... DO IT 

NOW FORMAT THE TRACK 

LOOP ON ERROR GUY 

ALTMODE 






SEQ 0172 



DFRPM 


RP07/6/5/4 Exerciser 


DFRPM 


MAC 


12-Sep-85 17:02 


3633 


033410 


254 00 00 033403 


363A 


033411 


336 00 00 030731 


3635 


033412 


254 00 00 033414 


3636 


033413 


254 00 00 033403 


3637 






3638 






3639 






36A0 


033414 


350 01 00 033376* 


36A1 


033415 


317 01 13 033261* 


3642 


033416 


254 00 00 033403 


36A3 


033417 


402 00 00 033414* 


364A 


033420 


350 01 00 033374* 


36A5 


033421 


317 01 13 033265* 


36A6 


033422 


254 00 00 033403 


3647 






3648 






3649 






3650 


033423 


263 17 00 000000 


3651 







MACRO X53B(1242) 19:36 12-Sep-85 Page 1-54 
CODE TO SUPPORT FORMATTING OF RP07 MEDIA 



SEQ 0185 



JRST 
SKIPN 
JRST 
JRST 



FVTKO 
VARFL6 
FV6 
FVTKO 



.•UPDATE VARIABLES 



FV6: 



AOS 

CAMG 

JRST 

SETZM 

AOS 

CAMG 

JRST 



1,SURF1 

l.MXSUR(Xl) 

FVTKO 

SURF1 

1,CYL1 

1,LCyCE(Xl) 

FVTKO 



LOOP 

CONTINUE. VARIABLE MODE 

NO. 

LOOP 



BUMP SURFACE 

GREATER THAN MAX 

NO. 

YES. CLEAR IT 

BUMP CYLINDER 

GREATER THAN MAX 

NO. 



.•FINISHED A PASS. EXIT. 



FVX: 



RTN 
PAGE 



.•RETURNS 



SEQ 0173 



DFRPM 
DFRPM 

3652 
3653 
365A 
3655 
3656 
3657 
3658 
3659 
3660 
3661 
3662 
3663 
366A 
3665 
3666 
3667 
3668 
3669 
3670 
3671 
3672 
3673 
367A 
3675 
3676 
3677 
3678 
3679 
3680 
3681 
3682 
3683 
3684 
3685 
3686 
3687 
3688 
3689 
3690 
3691 
3692 
3693 
3694 
3695 
3696 
3697 
3698 
3699 
3700 
3701 
3702 
3703 
370A 
3705 
3706 



RP07/6/5/A Exerciser 
MAC 12-Sep-85 17:02 



03342A 
033A25 
033A26 



033A27 
033A30 
033A31 
033432 
033433 



033434 
033435 
033436 
033437 
033440 
033441 
033442 
033443 
033444 
033445 



033446 
033447 
033450 
033451 



261 17 00 000001 
261 17 00 000002 
261 17 00 000003 



200 01 00 030724 
200 02 00 033417* 
504 02 00 033420* 
260 17 00 000000* 
260 17 00 033452 



2u' 01 
505 01 
200 02 
242 02 
504 02 
200 03 
504 03 
260 17 
260 17 
254 00 



00 000063 
00 100000 
00 033430* 
00 000010 
00 033431* 
00 030724 
17 000000* 
00 033313* 
00 033314* 
00 033446 



262 1^ 00 000003 
262 ./ 00 000002 

262 17 00 000001 

263 17 00 000000 



033452 402 00 00 000011 

033453 514 03 13 000000* 

033454 540 03 00 030725 



MACRO 3!53B(1242) 19:36 12-Sep-85 Page 1-55 
CODE TO SUPPORT FORMATTING OF RP07 MEDIA 



THIS IS THE CODE THAT DOES THE FORMATTING A FULL TRACK AT A TIME 
THIS CODE IS USED BY THE RP07 FORMATTER AND IS ALSO CALLED FROM 
THE "TDBLD" UTILITY TO REFORMAT THE TRACK AFTER WRITING A NEW TD. 

- BUILDS A CLEAN TRACK IMAGE IN BUF1 

- READS TD INTO BUF2 

- CALCULATES DEFECT INFORMATION AND UPDATES TRACK IMAGE ACCORDINGLY 

- FORMATS THE TRACK OUT OF BUF1 

TO USE: 
THE CYLINDER NUMBER MUST BE IN "CYL1" 
THE SURFACE ^' ,'M8ER MUST BE IN "SURF1" 

GO 1TTRK .-CALL THE ROUTINE 

RTN+1 .-ALWAYS 



SEQ 0186 



FMTTRK: PUT 1 

PUT 2 

PUT 3 

.•UPDATE BUFFERS HEADER DATA 



MOVE 

MOVE 

HRL 

GO 

GO 



1.8UF1A 
2. SURF 1 
2,CYL1 
GENHDR 
TD°CS 



.•ISSUE A WRITE FORMAT COMMAND 



FW1 



MOVE I 

HRL I 

MOVE 

LSH 

HRL 

MOVE 

HRL 

GO 

GO 

JRST 



.•EXIT CODE 



FMTTX: 



GET 
GET 
GET 
RTN 



1.63 

1.(182) 

2. SURF 1 

2.*D8 

2.CYL1 

3.BUF1A 

3.CWFMT(X1) 

XFSTRT 

lOWAIT 

FMTTX 



3 

2 

1 



.•SAVE AC'S 



GET STARTING ADDRESS 
NOW HAVE SURFACE 
NOW HAVE CYLINDER 
GENERATE HEADERS 
HANDLE T.D.'S AND DEFECTS 



WRITE HEADER COMMAND 

COMMAND MODIFIER SET 

DA VALUE 

SHIFT TO CORRECT POSITION 

GET CYLINDER NUMBER 

GETS BUFFER ADDRESS 

#WORDS/TRACK 

START THE OPERATION 

WAIT TILL I/O COMPLETE 

TRACC. COMPLETE 



.•RESTORE THINGS 



;AND EXIT 



;READ TD INTO BUF2 AND PROCESS THE DEFECT INFO. 

;IF NOT ABLE TO READ TD, PROCESS AS IF NO DEFECTS PRESENT. 



TDPCS: 



SETZM 

HRLZ 

HRR 



ERFLG 

3,CWRTD(X1) 

3.BUF2A 



YES. CLEAR THE ERROR FLAG 

WC..0 

WC, .BUFFER ADDRESS FOR t.d. 



1 r 



1 



;EQ 0174 



DFRPM 
DFRPM 

3707 
3708 
3709 
3710 
3711 
3712 
3713 
37U 
3715 
3716 
3717 
3718 
3719 
3720 
3721 
3722 
3723 
372A 
3725 
3726 
3727 
3728 
3729 
3730 
3731 
3732 
3733 
3734 
3735 
3736 
3737 
3738 
3739 
3740 
3741 
3742 
3743 
3744 
3745 
3746 
3747 
3748 
3749 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



033455 
033456 
033457 
033460 
033461 
033462 
033463 
033464 
033465 
033466 
033467 
033470 
033471 
033472 
033473 
033474 
033475 
033476 
033477 
033500 



033501 
033502 
033503 
033504 
033505 
033506 
033507 
033510 
033511 
033512 



033525 
033525 



550 02 
242 02 



504 02 
435 02 
201 01 

505 01 
260 17 
260 17 
322 11 
515 01 
540 01 
402 00 
253 01 
255 00 
260 17 
402 00 
200 01 
200 02 
260 17 
263 17 



261 17 

030 00 

200 00 

260 17 



030 00 
200 00 
260 17 



03 J 00 

262 17 

263 17 



00 033436* 
00 000010 
00 033440* 
00 000377 
00 000075 
00 100000 
00 033443* 
00 033444* 
00 033475 
00 777766 

00 030725 

01 000001 
00 033470 
00 000000 
00 033501 
00 000011 
00 030725 
00 030724 
00 000000* 
00 000000 



00 000000 
00 033513 
00 033457* 
00 000000* 
00 042251 • 
00 033455* 
00 033504* 
00 033525 
00 000000 
00 000000 



033513 040 052 052 052 052 



015 012 124 122 101 



MACRO 3:538(1242) 19:36 12-Sep-85 Page 1-56 
CODE TO SUPPORT FORMATTING OF RP07 flEDIA 



SEQ 0187 



LNE: 



HRRZ 

LSH 

HRL 

lORI 

MOVE I 

HRL I 

GO 

GO 

JUMPE 

HRLZI 

HRR 

SETZM 

AOBJN 

JFCL 

GO 

SETZM 

MOVE 

MOVE 

GO 

RTN 



2, SURF 1 

2,*D8 

2,CYL1 

2,577 

^.7S 

1,(182) 

XFSTRT 

lOWAJT 

erflg.lne 
i,-*d1o 

1,8UF2A 

1(1) 

1,.-1 

LAYERR 

ERFLG 

1,BUF2A 

2,BUF1A 

DEFECT 



SURF 

POSITION THE SURFACE 

CYLINDER..SURFF,SECT=0 

SECT IS 377 FOR TRACK DESCRIPTOR 

A READ TRACK DESCRIPTOR CMD 

SETS THE COMMAND MODIFIER BIT 

START THE READ 

WAIT TILL DONE 

JUMP IF NO ERROR 

-CNT,,0 

-CNT,,ADR 

CLEAR DEFECT INFORMATION 

10 WDS IS ENOUGH FOREVER. 

ADDR INFO IS LEFT IN TACT 

REPORT THE PROBLEM 

CLEAR HE ERROR FLAG 

PTR TO T.D. BUFFER 

PTR TO TRACK DATA BUFFER 

PROCESS THE DEFECTS 

THEN EXIT 



.•REPORT ERROR... UNABLE 



LAYERR: PUT 
TEXT 
MOVE 
60 
TEXT 
MOVE 
GO 
TEXT 
GET 
RTN 





LAYEM1 
0.CYL1 
POCDEC 



TO READ TD ETC.... 
.-SAVE AC 



CASCIZ/ SURFACE - /3 
0,SURF1 



.-GET CYLINDER » 
.•PRINT IT 



POCDEC 
LAYEM2 




.•PRINT IT 

.•RESTORE 
.•EXIT 



LAYEM1: ASCIZ/ ***** 

CAN'T READ T.D. RECORD FOR CYLINDER - / 

LAYEM2: ASCIZ/ 

TRACK WILL BE FORMATTED AS IF IT'S DEFECT FREE 
***** 

/ 

PAGE 



0175 



DFRPM 
DFRPM 

3750 
3751 
3752 
3753 
375A 
3755 
3756 
3757 
3758 
3759 
3760 
3761 
3762 
3763 
376A 
3765 
3766 
3767 
3768 
3769 
3770 
3771 
3772 
3773 
377A 
3775 
3776 
3777 
3778 
3779 
3780 
3781 
3782 
3783 
3784 
3785 
3786 
3787 
3788 
3789 
3790 
3791 
3792 
3793 
379A 
3795 
3796 
3797 
3798 
3799 
3800 
3801 
3802 
3803 
3804 



RP07/6/5/A Exerciser 
MAC 12-Sep-85 17:02 



033541 000000 000000 



033542 
033543 
033544 
033545 



033546 
033547 
033550 
033551 
033552 
033553 
033554 
033555 
033556 
033557 
033560 



033562 
033563 
033564 
033565 
033566 
033567 
033570 
033571 
033572 
033573 
033574 
033575 



033576 
033577 
033600 
033601 



261 17 00 000000 

261 17 00 000001 

261 17 00 000002 

261 17 00 000003 



402 00 
514 03 
540 03 
550 02 
242 02 



435 02 

504 02 
201 01 

505 01 



260 17 
2o; 17 



00 
13 
00 
00 
00 
00 
00 
00 
00 
00 
00 



000011 

033453* 

030725 

033506* 

000010 

000377 

033503* 

000075 

100000 

033463* 

033464* 



033561 322 11 00 033576 



030 00 
200 00 
260 17 
030 00 
200 00 
260 17 
037 00 
661 02 
202 02 
200 02 
202 02 
202 02 



00 
00 
00 
00 



00 



00 
00 
00 
03 
00 
03 
03 



042254' 

033554* 

033507* 

042262* 

033551* 

033564* 

030242 

030000 

000000 

042264' 

000001 

000002 



402 00 00 000011 
514 03 13 033547* 
540 03 00 030725 
550 02 00 033566* 



MACRO :53B(1242) 19-36 12-Sep- 
CODE TO SUPPORT FORWNTTING OF 



85 Page 1-57 
RP07 flEDIA 



SEO 0188 



MAGIC 
SPECIAL FOR SOME EN3INEEi>ING TESTS ON PROTO RP07 
READ TD INTO BUF2 

IF BAD TD, GENERATE CLEAN ONE IN BUF2 
WRITE TD FROM BUF2 

READ TD INTO BUF2 AND REPORT ANY ERROR 
EXIT 



YOU SET MAGICF=1 (WITH DDT) TO INVOKE THIS. 
IT'S CALLED OUT OF FORMAT JUST BEFORE FMTTRK. 



MAGICF; 
MAGIC: 



PUT 
PUT 
PUT 
PUT 




1 
2 
3 



.•DEFAULT .... 
.-SAVE THINGS 



DON'T RUN THIS 



;HERES A READ OF THE TD 



SETZM 

HRLZ 

HRR 

HRRZ 

LSH 

lORI 

HRL 

MOVE I 

HRL I 

GO 

GO 



ERFLG 

3.CWRTD(X1) 

3,8UF2A 

2, SURF 1 

2,*D8 

2,577 

2,CYL1 

1,75 

1.(182) 

XFSTRT 

lOWAIT 



CLEAR ERROR FLAG 

WC..0 

WC..AUDR 

GET SURFACE 

SHIFT INTO POSITION 

SECT 377 FOR TD 

GET CYLINDER 

GET THE COMMAND 

SETS COMMAND MODIFIER 

START THE I/O 

WAIT TILL IT COMPLETES 



.•TEST FOR ERROR, If SO, BUILD A TD WITHOUT DEFECTS IN BUF2 



JUMPE 
TEXT 
WRITING CLEAN 
MOVE 
GO 
TEXT 
MOVE 
GO 

PCRL 
TLO 
MOVEM 
MOVE 
MOVEM 
MOVEM 



ERFLG, MWTD ;N0 ERROR GO REWRITE TD 
CASCIZ/ 
TD FOR CYL - /] 
O.CYLI 
POCDEC 

CASCIZ/ SURF - /] 
0,SURF1 
POCDEC 

2,030000 -MAKES AC2 A PROPER TD ADDRESS 
2,(3) -PUT IN THE BUFFER (FIRST 2 TD WDS) 

2, [140000,, 140006] .-GETS PATTERN FOR NO DEFECT SKIP 
2,1(3) .-PUTS SECOND 2 WORDS IN TD BUFFER 
2,2(3) .-PUTS LAST 2 WORDS IN THE TD BUFFER 



;HERES A WRITE OF THE TD FROM BUF2 



MWTD: 



SETZM 
HRLZ 
HRR 
HRRZ 



ERFLG 

3,CWRTD(X1) 
3,BUF2A 
2,SURF1 



CLEAR ERROR FLAG 
WC..0 
WC..ADDR 
GET SURFACE 



Q 0176 



DFRPM 
DFRPM 

3805 
3806 
3807 
3808 
3809 
3810 
3811 
3812 
3813 
38U 
3815 
3816 
3817 
3818 
3819 
3820 
3821 
3822 
3823 
382A 
3825 
3826 
3827 
3828 
3829 
3830 
3831 
3832 
3833 
3834 
3835 
3836 
3837 
3838 
3839 
3840 
3841 
3842 
3843 
3844 
3845 
3846 
3847 
3848 
3849 
3850 
3851 
3852 
3853 
3854 
3855 
3856 
3857 
3858 
3859 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



033602 
033603 
033604 
033605 
033606 
033607 
033610 



242 02 
435 02 

504 02 
201 01 

505 01 
260 17 
260 17 



00 000010 
00 000377 
00 033563* 
00 000065 
00 100000 
00 033557* 
00 033560* 



033611 322 11 00 033621 



033612 
033613 
033614 
033615 
033616 
033617 
033620 



033621 
03362i: 
033623 
033624 
033625 
033626 
033627 
033630 
033631 
033632 
033633 



033634 
033635 
033636 
033637 
033640 
033641 
033642 
033643 



033644 
033645 
033646 
033647 
033650 



030 00 
200 00 



260 17 
030 00 



200 00 
260 17 
037 00 



402 00 
514 03 
540 03 
550 02 
242 02 



435 02 

504 02 
201 01 

505 01 
260 17 
2o; 17 



322 11 
030 00 
200 00 
260 17 
030 00 
200 00 
260 17 
037 00 



00 042265' 
00 033604* 
00 033567* 
00 042262' 
00 033601* 
00 033614* 
00 030242 



00 000011 
13 033577* 
00 030725 
00 033616* 
00 000010 
00 000377 
00 033613* 
00 000075 
00 100000 
00 033607* 
00 033610* 



00 033644 
00 042273' 
00 033627* 
00 033617* 
00 042262' 
00 033624* 
00 033637* 
00 030242 



262 17 

262 17 

262 17 

262 17 

263 17 



00 000003 
00 000002 
00 000001 
00 000000 
00 000000 



MACRO 3;53B(1242) 19:36 12-Sep-85 Page 1-58 
CODE TO SUPPORT FORMATTING OF RP07 WEDIA 



SEQ 0189 



LSH 

lORI 

HRL 

MOVE I 

HRL I 

GO 

60 



2,*D8 

2,377 

2.CYL1 

1,65 

1,(182) 

XFSTRT 

lOWAIT 



JUMPE ERFLn,MRTD 
TEXT CASC.Z/ 
ERROR ON TD WRITE CYL - /] 



.-SHIFT INTO POSITION 
;SECT 377 FOR TD 
;6ET CYLINDER 
;6ET THE COMMAND 
.-SETS COMMAND MODIFIER 
.•START THE I/O 
.•WAIT TILL I/O DONE 

;IF NO ERROR 60 AND READ 



MOVE 

GO 

TEXT 

MOVE 

60 

PCRL 



0.CYL1 

POCDEC 

CASCIZ/ 

O.SURFl 

POCDEC 



SURF - /J 



;HERES A READ OF THE TD 



MRTD! 



SETZM 

HRLZ 

HRR 

HRRZ 

LSH 

lORI 

HRL 

MOVE I 

HRLI 

60 

60 



ERFL6 

3,CWRTD(X1) 

3.BUF2A 

2. SURF 1 

2,*D8 

2,377 

2,cyLi 

1,75 
1,(182) 
XFSTRT 
lOWAIT 



CLEAR ERROR FLAG 

WC,,0 

WCADDR 

GET SURFACE 

SHIFT INTO POSITION 

SECT 377 FOR TD 

6ET CYLINDER 

6ET THE COMMAND 

SETS COMMAND MODIFIER 

START THE I/O 

WAIT TILL I/O IS DONE 



;SEE IF REWRITE WORKED. IF NOT REPORT ERROR. 
;N0 CORRECTIVE ACTION TAKEN 



JUMPE 

TEXT 

MOVE 

GO 

TEXT 

MOVE 

GO 

PCRL 



ERFLG.MAGICX ;T0 EXIT CODE IF NO ERROR 
CASCIZ/CAN'T READ TD AFTER IT WAS REWRITTEN. 
0,CYL1 



CYL - /3 



.•EXIT CODE 



MAGICX: 



GET 
GET 
GET 
GET 
RTN 



POCDEC 
CASCIZ/ 
O.SURFl 
POCDEC 



3 
2 

1 




SURF - /] 



.•RESTORE THINGS 



.-EXIT 



SU8TTL FORMATTER SUPPORT CODE FOR ALL DRIVES EXCEPT RP07 



>juu I I u I uiirin i i Ln j\ji i \jr\ i v.ui/1. lun nL.1. uniVL.>J LAV.i.ri nrv/r 



tti^l 



I 0177 



DFRPM RP07/6/5/4 Exerciser 
DFRPM MAC 12-Sep-85 17:02 

3860 
3861 
3862 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-59 
FORMATTER SUPPORT CODE FOR ALL DRIVES EXCEPT RP07 

XLIST 

LIST 

PAGE 



SEQ 0190 



DFRPM 
DFRPM 

4321 
4322 
4323 
4324 
4325 
4326 
4327 
4328 
4329 
4330 
4331 
4332 
4333 
4334 
4335 
4336 
4337 
4338 
4339 
4340 
4341 
4342 
4343 
4344 
4345 
4346 
4347 
4348 
4349 
4350 
4351 
4352 
4353 
4354 
4355 
4356 
4357 
4358 
4359 
4360 
4361 
4362 
4363 
4364 
4365 
4366 
4367 
4368 
4369 
4370 
4371 
4372 
4373 
4374 
4375 



UlT'i 



0178 



DFRPM 


RP07/6/5/A f 


ixerciser 


DFRPM 


MAC 


12-! 


5ep-85 17:02 


3863 










3864 










3865 










3866 










3867 










3868 










3869 










3870 










3871 










3872 










3873 










387A 










3875 










3876 












033651 


201 


00 00 033707 


3878 


033652 


202 


00 


00 030740 


3879 


035653 


332 


00 


00 030731 


3880 


03365A 


254 


00 


00 033663 


3881 


033655 


402 


00 


00 033636* 


3882 


033656 


402 


00 00 033641* 


3883 


033657 


20C 


00 


13 033367* 


388A 


033660 


603 


14 


00 000140 


3885 


033661 


202 


00 


00 033655* 


3886 


033662 


254 


00 


00 033671 


887 










:888 










:«89 










:890 


033663 


201 


02 


00 000004 


:891 


033664 


201 


01 


00 033661* 


1892 


033665 


260 


17 


00 033400* 


;893 


033666 


Iv 


01 


00 033656* 


"894 


033667 


201 


02 


00 000000 


:895 


033670 


260 


17 


00 033665* 


:896 










:897 










:i898 










:899 


033671 


260 


17 


00 033710 


3900 


033672 


260 


17 


00 033406* 


3901 


033673 


254 


00 


1 00 030740 


3902 


033674 


254 


00 00 033671 


3903 


033675 


336 00 00 030731 


:90A 


033676 


254 


00 00 033700 


:905 


033677 


254 


00 


00 033671 


;906 










:907 










3908 










3909 


033700 


350 


01 


00 033666* 


3910 


033701 


317 01 


13 033415* 


3911 


033702 


254 


00 


00 033671 


::912 


033703 


402 00 00 033700* 


::913 


033704 


350 01 


00 033664* 


::9U 

'915 


033705 


317 01 


13 033421* 


033706 


254 


00 00 033671 


:916 










3917 











MACRO :53B(1242) 19:36 12-Sep-85 Page 1-60 
FORMATTER SUPPORT CODE FOR ALL DRIVES EXCEPT RP07 

.••'fORMXX - FORMAT THE MEDIA FOR RP04. RP06, RM03 

COMMENT $ 



SEQ 0191 



CALL SEQ 



FORMXX: 
• FVO: 



GO 

RTN 

% 

XLIST 
LIST 

MOVE I 

MOVEM 

SKIPE 

JRST 

SETZM 

SETZM 

MOVE 

TLNE 

MOVEM 

JRST 



FORMXX 



0,.FVX 

O.ALTADD 

VARFL6 

.FV2A 

CYLI 

SURF1 

0,FCYCE(X1) 

DSU. (181111812) 

O.CYLI 

.FVTK 



.•INPUT VARIABLES 



.FV2A: 



MOVE I 
MOVE I 
60 

MOVE I 
MOVE I 
GO 



2.4 

I.CVLI 

INPUT 

1.SURF1 

2,0 

INPUT 



.•HERE WHERE WE START TO FORMAT 



.FVTK: 



60 
60 

JRST 

JRST 

SKIPN 

JRST 

JRST 



.FMTRK 

BRANCH 

aALTADD 

.FVTK 

VARFLG 

.FV6 

.FVTK 



.•UPDATE VARIABLES 



.FV6: 



AOS 

CAMG 

JRST 

SETZM 

AOS 

CAMG 

JRST 



I.SURFI 

I.MXSUP(XI) 

.FVTK 

SURF1 

1.CYL1 

1,LCYCE(X1) 

.FVTK 



.•CALL THE ROUTINE 
.•RETURNS HERE 



ALTMODE ADDR 

SET IT UP 

MANUAL MODE? 

YES 

CYL=0 

SURFACE=0 

GET MAINT AREA 

RESTRICT ? 

YES. USE MAINT AREA 

FORMAT THE TRACK 



DON'T ALLOW FORMAT OVER CUSTOMER DATA 

NEXT PARAMETER TO INPUT 

6ET IT 

NEXT PARAMETER TO INPUT 

NO RESTRICTION ON SURFACE 

INPUT PARAMETER 



FORMAT THE TRACK 

LOOP ON ERROR 6UY 

ALTMODE 

LOOP 

CONTINUE. VARIABLE MODE 

NO. 

LOOP 



BUMP SURFACE 

6REATER THAN MAX 

NO. 

YES. CLEAR IT 

BUMP CYLINDER 

GREATER THAN MAX 

NO. 



.•FINISHED A PASS. EXIT, 



DFRPM 
DFRPM 

4376 
4377 
4378 
4379 
4380 
4381 
4382 
4383 
4384 
4385 
4386 
4387 
4388 
4389 
4390 
4391 
4392 
4393 
4394 
4395 
4396 
4397 
4398 
4399 
4400 
4401 
4402 
4403 
4404 
4405 
4406 
4407 
4408 
4409 
4410 
4411 
4412 
4413 
4414 
4415 
4416 
4417 
4418 
4419 
4420 
4421 
4422 
4423 
4424 
4425 
4426 
4427 
4428 
4429 
4430 



,r ir^i jriLl/ n rnjj. c A J i . 



A43U 



0179 



DFRPM 
DFRPM 



r 



RP07/6/5/4 Exerciser 
WAC 12-Sep-85 17:02 



MACRO X538(1242) 19:36 12-Sep-85 Page 1-61 
FORMATTtR SUPPORT CODE FOR ALL DRIVES EXCEPT RP07 



SEQ 0192 



3918 

3919 033707 263 17 00 000000 

3920 



.FVX; 



RTN 
PAGE 



.•RETURNS 



DFRPM 
DFRPM 

AA31 
AA32 
AA33 
AA3A 
AA35 
4436 
4437 
4438 
4439 
4440 
4441 
4442 
4443 
4444 
4445 
4446 
4447 
4448 
4449 
4450 
4451 
4452 
4453 
4454 
4455 
4456 
4457 
4458 
4459 
4460 
4461 
4462 
4463 
4464 
4465 
4466 
4467 
4468 
4469 
4470 
4471 
4472 
4473 
4474 
4475 
4476 
4477 
4478 
4479 
4480 
4481 
4482 
4483 
4484 
4485 



AA85 



3180 



DFRPM 
DFRPM 

3921 
3922 
3923 
3924 
3925 
3926 
3927 
3928 
3929 
3930 
3931 
3932 
3933 
393A 
3935 
3936 
3937 
3938 
3939 
39A0 
39A1 
3942 
3943 
3944 
3945 
3946 
3947 
3948 
3949 
3950 
3951 
3952 
3953 
3954 
3955 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



033710 
033711 
033712 



033713 
033714 
033715 
033716 



033717 
033720 
033721 
033722 
033723 
033724 
033725 
033726 
033727 
03373C 



033731 
033732 
033733 
033734 



261 17 00 000001 
261 17 00 0000U2 
261 17 00 000003 



200 01 00 030724 
200 02 00 033703* 
504 02 00 033704* 
260 17 1 13 033735 



201 01 
256 00 
200 02 



242 02 
504 02 
200 03 



504 03 
260 17 



260 17 
254 00 



00 000063 
13 033745 
00 033714* 
00 000010 
00 033715* 
00 030724 
13 033442* 
00 033632* 
00 033633* 
00 033731 



26? 17 00 000003 

2oJ 17 00 000002 

262 17 00 000001 

263 17 00 000000 



MACRO )!53B(1242) 

FORMATTER SUPPORT CODE FOR ALL 



19:36 12-Sep-85 Page 1-62 
.r. ppjyfj EXCEPT RP07 



SEO 0193 



.•THIS IS THE CODE THAT DOES THE FORMATTING A FULL TRACK AT A TIME 

.•SAVE AC'S 



.FMTRK: PUT 
PUT 
PUT 



1 
2 
3 



.•UPDATE BUFFERS HEADER DATA 



MOVE 
MOVE 
HRL 
GO 



1.8UF1A 
2. SURF 1 
2.CYL1 
aT8XX{Xl) 



.•GET STARTING ADDRESS 

;NOW HAVF SURFACE 

;NOU HAVE CYLINDER 

.•GENERATE HEADERS BY DRIVE TYPE 



ISSUE A WRITE FORMAT COMMAND 



.FW1 



MOVE I 

XCT 

MOVE 

LSH 

HRL 

MOVE 

HRL 

GO 

GO 

JRST 



;EXIT CODE 

.FMTTX: GET 
GET 
GET 
RTN 

PAGE 



1.63 

TBCMOD(XI) 
2,SURF1 
2.*D8 

2.cyLi 

3.8UF1A 

3.CWFMT(X1) 

XFSTRT 

lOWAIT 

.FMTTX 



3 

2 

1 



.•WRITE HEADER COMMAND 
;SETS COMMAND MODIFIER IF 
.•DA VALUE 

.•SHIFT TO CORRECT POSITION 
.•GET CYLINDER NUMBER 
;GETS BUFFER ADDRESS 
;#WORDS/TRACK 
.•START THE OPERATION 
;WAIT TILL I/O COMPLETE 
.•TRACK COMPLETE 



.•RESTORE THINGS 



RP07 



;AND EXIT 



DFRPM 
DFRPM 

4488 
4489 
4490 

/./of 

449^ 



181 



DFRPM 
DFRPM 

3956 
3957 
3958 
3959 
3960 
3961 
3962 
3963 
396A 
3965 
3966 
3967 
3968 
3969 
3970 
3971 
3972 
3973 
397A 
3975 
3976 
3977 
3978 
3979 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



033735 
033736 
033737 
033740 
033741 
033742 
033743 
03374A 



033745 
033746 
033747 
033750 
033751 
033752 
033753 
033754 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-63 
FORMATTER SUPPORT CODE FOR ALL DRIVES EXCEPT RP07 



.•TABLE POINTING TO PROPER TRACK FORMAT DATA GENERATORS 



r 



SEO 0194 



000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 



255 00 
255 00 
255 00 
505 01 
255 00 
255 00 
255 00 
255 00 



033755 

033755 

042304' 

042304' 

033755 

042304' 

042304' 

042304' 



TBXX: 



RKFMT 
RKFMT 
RTN] 
RTN] 
RKFMT 
[RTN] 
RTN] 
RTN] 



RP04 

RP06 

SPARE 

RP07(600 MB) 

RM03 

SPARE 

RP20(TOPS10) 

RP20(TOPS20) 



.•TABLE FOR SETTING COMMAND MODIFIER If DRIVE IS RP07 



00 000000 
00 000000 
00 000000 
00 100000 
00 000000 
00 000000 
00 000000 
00 000000 



TBCMOD: 



JFCL 
JFCL 
JFCL 
HRLI 
JFCL 
JFCL 
JFCL 
JFCL 

PAGE 



1.100000 



RP04 

RP06 

SPARE 

RP07(300MB) 

RM03 

SPARE 

RP20(T0PS10) 

RP20(T0PS20) 



DFRPM 
DFRPM 

4495 

4496 

4497 

4498 

449v 

4500 

4501 

4502 

4503 

4504 

4505 

4506 

4507 

4508 

4509 

4510 

4511 

4512 

4513 

4514 

4515 

4516 

4517 

4518 

'.519 

i.520 

4521 

4522 

4523 

4524 

4525 

4526 

4527 

4528 

4529 

4530 

4531 

4532 

4533 

4534 

4535 

4536 

4537 

4538 

4539 

4540 

4541 

4542 

4543 

4544 

4545 

4546 

4547 

4548 

4549 



J 



45«9 



82 



DFRPM 
DFRPM 

3980 
3981 
3982 
3983 
398A 
3985 
3986 
3987 
3988 
3989 
3990 
3991 
3992 
3993 
399A 
3995 
3996 
3997 
3998 
3999 
4000 
4001 
4002 
4003 
4004 
4005 
4006 
4007 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



033755 
033756 
033757 
033760 
033761 
033762 
033763 
033764 
033765 
033766 
033767 
033770 
033771 
033772 
033773 
033774 



261 17 
261 17 

261 17 
210 03 
514 03 
540 02 
242 02 
434 02 
500 02 
260 17 
270 01 
253 03 

262 17 
262 17 

262 17 

263 17 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-64 
FORMATTER SUPPORT CODE FOR ALL DRIVES EXCEPT RP07 

HEADER GENERATOR FOR RM03, RP04. RP06 

THIS ROUTINE GENERATES A FULL TRACK OF DATA IN THE BUFFER 

CONSISTING OF PROPER HEADERS AND WORST CASE DATA IN THE DATA 

FIELDS. THE KEY WORDS OF RP04'S/6'S ARE LEFT CLEAR. 

CALL SEO 

MOVE 1.ARG1 ;AC1 IS THE BUFFER ADDRESS 
MOVE 2.ARG2 ;AC2 IS CYLINDER,. SURFACE 
60 TRKFMT ;CALL ROUTINE 
RTN+1 .-DATA IN THE BUFFER 



SEQ 0195 



00 000003 
00 000002 
00 000001 
13 000000* 
00 000003 

17 imii 

00 000010 
00 000003 

17 nnn 

00 033775 
13 000000* 
00 033762 
00 000001 
00 000002 
00 000003 
00 000000 



'RK^»,r; 



TRKFL; 



PUT 

PUT 

PUT 

MOVN 

HRLZ 

HRR 

LSH 

I OR 

MIL 

GO 

ADD 

A06JN 

GET 

GET 

GET 

RTN 

PAGE 



3 
2 

1 

3,A88PT(X1) 

3.3 

2.*D8 
2.3 

2.-1(P) 
SECFMT 

I.CWRHDC(XI) 
3.TRKFL 

2 
3 



.•SAVE AC'S 



AC3/-# OF SECTORS 
kiH-n SECT. .SECT 
AC2/SURF NUMBER 

SHIFT SURFACE 
AC2/-?.. SURF. SECT 



PER TRACK 

# (START AT ZERO) 



INTO POSITION 

._ (INCLUDE THE SECTOR) 

AC2/CYLINDER,. SURF. SECT (CORRECT FORMAT) 
GENERATE 1 SECTORS WORTH OF DATA 
ADJUST BUFFER POINTER BY 1 SECTORS WORTH 
LOOP FOR ENTIRE TRACKS WORTH 
DONE. RESTORE THINGS 



;AND EXIT 



DFRPM 


R 


DFRPM 


M 


4550 





4551 





4552 





4553 





4554 





4555 





4556 




4557 




4558 




4559 





4560 





4561 





4562 





4563 





4564 








SEQ 0183 



DFRPM 
DFRPM 

A008 
A009 
A010 
A011 
A012 
A013 
AOU 
4015 
4016 
4017 
4018 
'>019 
4020 
4021 
4022 
4023 
4024 
4025 
4026 
4027 
4028 
4029 
4030 
4031 
4032 
4033 
4034 
4035 
4036 
4037 
4038 
4039 
4040 
4041 
4042 
4043 
4044 
4045 
4046 
4047 
4048 
4049 
4050 
4051 
4052 
4053 
4054 
4055 
4056 
4057 
4058 
4059 
4060 
4061 
4062 



RP07/6/5/4 Exercise- 
MAC 12-Sep-85 1 ■:02 



033775 
033776 
033777 
034000 
034001 
034002 
G 34003 



034004 
034005 
034006 



034007 
034010 
034011 
034012 
034013 
034014 
034015 
034016 
034017 
034020 



034021 
034022 
034023 
034024 
034025 
034026 
034027 
034030 



034031 
034032 
034033 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-65 
FORMATTER SUPPORT CODE FOR ALL DRIVES EXCEPT RP07 

HEADER GENERATOR FOR RM03, RP04, RP06 

THIS ROUTINE GENERATES 1 SECTOR OF DATA IN THE BUFFER 

CONSISTING OF PROPER HEADERS AND WORST CASE DATA IN THE DATA 

FIELD. THE KEY WORDS OF RP04'S/6'S ARE LEFT CLEAR. 

THE ONIY DIFFERENCE BETWEEN RP04/6 HEADERS AND RM03 HEADERS IS 

THE FACT THAT THERE ARE NO KEYWORDS WITH THE RM03. 

CALL SEQ 

MOVE 1,ARG1 ;AC1 IS THE BUFFER ADDRESS 
MOVE 2,AR62 ;AC2 IS CYLINDER,, SURFACE, SECTOR 
GO SECFMT .-CALL ROUTINE 
RTN+1 .-DATA IN THE BUFFER 



SEO 0196 



261 
261 
261 
202 
402 
350 
256 



17 
17 
17 
02 
00 
00 
00 



00 000003 
00 000002 
00 000001 
■ 000000 
000001 
00 000001 
13 034021 



01 
01 



SECFMT: PUT 
PUT 
PUT 
MOVEM 
SETZM 
AOS 
XCT 



3 
2 

1 

2,(1) 

1(1) 

1 

ADJ(XI) 



;SAVE AC'S 



PUTS ADDRESS IN FIRST BUFFER LOCATION 

CLEAR SECOND BUFFER ADDR (KEY MDS FOR RP04/6) 

BUMP POINTER ^0 START OF DATA FIELD 

RP04 AND RP06 NEED A BUMP OVER THE KEY WORDS 



;BLT THE FIRST 8 WORD CYCLE OF WORST CASE DATA INTO THE BUF.'ER 



505 03 00 034031 
540 03 00 000001 
251 03 01 000007 



HRLI 

HRR 

BLT 



3,WCDAT 

3,1 

3,*D7(1) 



SOURCE,,? 

SOURCE, ,DEST (DEST IS THE BUFFER) 

FILLS THE FIRST 8 DATA LOCATIONS 



;8LT THE WORST CASE PATTERN TO FILL THE REST OF THE DATA FIELD 



514 03 
540 03 
2?' 03 
550 02 
270 02 
251 03 
262 17 
262 17 

262 17 

263 17 



00 000001 
00 000001 
00 000010 
13 000000* 
00 000001 

02 mm 

00 000001 
00 000002 
00 000003 
00 000000 



HRLZ 

HRR 

ADDI 

HRR2 

ADD 

BLT 

GET 

GET 

GET 

RTN 



3,1 

3,1 

3,*D8 

2,CWRWD(X1) 

2,1 

3,-1(2) 

1 

2 

3 



SOURCE,, (START OF BUFFER) 
START BUILDING DESTINATION 
DEST = SOURCE + » WDS IN PATTERN 
AC2/# OF WIRDS IN THE DATA FIELD 
START + NUMBER OF WORDS 
FILLS THE REST OF THE SECTOR 
RESTORE AC'S 



;AND EXIT 



;INSTRUNCTION FOR SKIPPING THE KEY WORD WITH RP04 AND RP06'S 



350 00 
350 00 



255 00 
255 00 
255 00 
255 00 
255 00 
255 ^^ 



00 000001 
00 000001 
00 000000 
00 000000 
00 000000 
00 000000 
00 000000 
00 000000 



ADJ: 



AOS 

AOS 

JFCL 

JFCL 

JFCL 

JFCL 

JFCL 

JFCL 



RP04 

RP06 

SPARE 

RP07 (600 MB) 

RM03 

SPARE 

RP20 (TOPSIO) 

RP20 (T0PS20) 



726666 666676 
555555 555753 
333333 337266 



.•WORST CASE DATA FOR RP04/RP06/KM03 (8 WORD CYCLE) 

WCDAT: 726666,, 666676 
555555, ,555753 
333333,, 337266 



SEQ 0184 



DFRPM 


RP07/6/5/4 Exerciser 


DFRPM 


MAC 


12-Sep-85 17:02 


4063 


034034 


666666 


765555 


4064 


034035 


555557 


533333 


4065 


034036 


333372 


666666 


4066 


034037 


mm 


555555 


4067 


034040 


333333 


4068 
4069 
4070 


034041 


000000 


000000 








4071 








4072 








4073 








4074 








4075 








4076 








4077 








4078 









MACRO X53B(1242) 19:36 
FORMATTER SUPPORT CODE 

666666,, 765555 
555557,, 533333 
333372,, 666666 
667655,, 555555 
573333,, 333333 
000000,, 000000 



12-Sep-85 Page 
FOR ALL DRIVES 



1-66 
EXCEPT 



RP07 



SEQ 0197 



.•EXTRA WORD. NOT PART OF PATTERN 



SUBTTL NEUBAT 
XLIST 
LIST 
PAGE 



- CREATE NEW (CLEAN) BAT BLOCKS 



EQ 0185 



DFRPM 
DFRPM 

4079 
4080 
4081 
4082 
4083 
4084 
4085 
4086 
4087 
4088 
4089 
4090 
4091 
4092 
4093 
4094 
4095 
4096 
4097 
4098 
4099 
4100 
4101 
4102 
4103 
4104 
4105 
4106 
4107 
4108 
4109 
4110 
4111 
4112 
4113 
4114 
4115 
4116 
4117 
4118 
4119 
4120 
4121 
4122 
4123 
4124 
4125 
4126 
4127 
4128 
4129 
4130 
4131 
4132 
4133 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



034042 
034043 

034044 
03^045 
034046 
034047 
034050 
034051 
034052 
034053 
034054 
034055 
034056 
034057 
034060 
034061 
034062 
034063 
034064 
034065 
034066 
034067 
034070 
034071 
034072 
034073 
034074 
034075 
034076 
034077 
034100 

034101 
034102 
034103 
034104 



336 00 00 030731 
254 00 00 034046 



00 
00 
01 



031 
254 
201 

202 01 
476 00 
260 17 
254 00 
260 17 
254 00 
2o-. 00 
254 00 
260 17 
607 14 
254 00 
260 17 
254 00 

200 02 

201 01 
260 17 
201 01 
201 02 
200 03 
504 03 
260 17 
260 17 
260 17 
254 00 

254 00 

255 00 



00 042305' 
00 034112 
00 034112 
00 030740 
00 030755 
00 033324* 
00 034112 
00 033326* 
00 034051 
00 034056 
00 034051 
00 037722 
00 000200 
00 034064 
00 034113 
00 034051 
00 030724 
00 000002 
00 000000* 
00 000061 
00 000002 
00 030724 
1^ 034012* 
r ^33726* 
I J33727* 

OU 033672* 

1 00 030740 
00 034067 
00 000000 



201 01 00 000061 

201 02 00 000013 

202 02 03 000177 
260 17 00 034073* 



MACRO X53B(1242) 19: 
NEWBAT - CREATE NEW 



36 12-Sep-85 Page 1-67 
(CLEAN) BAT BLOCKS 



SEQ 0198 



$*• ********************************************************************** 

;*'nEW8AT - - WRITES A SET OF CLEAN 'BAT" BLOCKS 

§*• ********************************************************************** 



COMMENT $ 



NEWBAT : 



/] 



NBO: 



NBS: 



NBL1: 



NBL2: 



BOTH DEFAULT AND MANUAL MODES ARE THE SAME. YOU CAN'T 
SPECIFY ANYTHING. THIS ROUTINE WRITES NEW BAT BLOCKS IN 
SECTORS 2 AND 13 (OCTAL) OF CYLINDER-0 SURFACE-0. THIS 
ROUTINE HAS NO LOOPING CAPABILITIES. YOU ARE NOT ALLOWED 
TO WRITE BAT BLOCKS IF THERE IS USER DATA ON THE MEDIA. 
THIS QUESTION WAS ASKED AT CONFIGURATION TIME. 



CALL 


SEQ: 




GO 


NEWBAT 


;CALL THE ROUTINE 


RTN 
$ 

XLIST 




;RTN+1 ALWAYS 






LIST 






SKIPN 


VARFL6 


; VARIABLE MODE ? 


JRST 


NBO , 


;N0. 


TEXTF 


[ASCIZ/"NEWBAT" 1 


)OES NOT RUN IN VARIABLE MODE 


JRST 


NBX 


;AND EXIT 


MOVE I 


1,N8X 


;GET THE ALTMODE ADDRESS 


MOVEM 


1,ALTADD 


iSA't? jy 


SETOM 


SELFLG 


;IN. . THE SELECTION ROUTINE 


GO 


SELECT 


rPICK A DRIVE FOR TEST 


JRST 


NBX 


; TRIED ALL 


GO 


STATCK 


; CHECK DRIVE STATUS FROM DSW 


JRST 


NBS 


; +1 NOT USEABLE OR OFF-LINE 


JRST 


.+1 


; +2 WRITE PROTECTED (VARIABLE MODE) 


JRST 


NBS 


■ +3 WRITE PROTECTED (MAN OR DEF MODE) 


GO 


TINT 


• +4 PASSED CHECKS. INITIALIZE THE TEST 


TLNN 


DSW.(IBIO) 


•USER DATA ON MEDIA ? 


JRST 


.+3 


•NO. O.K. TO PROCEEDE 


GO 


NBO 


•YES. PRINT OMISSION MESSAGE 


JRST 


NBS 


•GO SELECT NEXT DRIVE 


MOVE 


2,BUF1A 


•GET BUFFER ADDRESS 


MOVE I 


1,2 


•GET BLOCK ft 


GO 


GENBAT 


•GENERATE CORE IMAGE 


MOVE I 


1,61 


•A WRITE DATA COMMAND 


MOVE I 


2.2 


•CYL=0 SURF=0 SECT=2 


MOVE 


3,BUF1A 


•BUFFFER ADDRESS 


HRL 


3,CWRWD(X1) 


•+WC ,. ADDR 


GO 


XFSTRT 


•START THE TRANSFER 


GO 


lOWAIT 


WAIT TILL DONE 


GO 


BRANCH 


•TEST CONDITIONS 


JRST 


aALTADD 


ALTMODE WAS STRUCK 


JRST 


NBLl 


LOOP 


JFCL 




CONTINUE 


MOVE I 


1,61 


GET A WRITE DATA COMMAND 


MOVE I 


2,13 


GET 2ND BLOCK # 


MOVEM 


2,*D127(3) 


PLUG 2ND NUMBER INTO THE BUFFER 


GO 


XFSTRT 


START THE TRANSFER 



__.i 



— -i 



...J 



EQ 0186 



DFRPM 
DFRPM 

A134 
A135 
4136 
4137 
4138 
4139 
4140 
4141 
4142 
4143 
4144 
4145 
4146 
4147 
4148 
4149 
4150 
4151 
4152 
4153 
4154 
4155 



RP07/6/5/4 Exerciser 

MAC 12-Sep-85 17:02 

034105 260 17 00 034074* 

034106 260 17 00 034075* 

034107 254 00 1 00 030740 

034110 254 00 00 034101 

034111 254 00 00 034051 

034112 263 17 00 000000 



034113 030 00 00 042316' 

034114 260 17 00 000000* 



034115 030 00 00 042325' 

034116 263 17 00 000000 



MACRO !I!53B(1242) 19:36 12-Sep-85 Page 1-68 
NEWBAT - CREATE NEW (CLEAN) BAT BLOCKS 



SEQ 0199 



NBX: 



GO 


lOWAIT 


GO 


BRANCH 


JRST 


aALTADD 


JRST 


NBL2 


JRST 


N6S 


RTN 





.-WAIT TILL ITS DONE 
TEST CONDITIONS 
ALTMODE STRUCK 
LOOP 

SELECT NEXT DEVICE 
EXIT 



.•REPORT THAT WE CAN'T WRITE NEW BAT BLOCKS OVER CUSTOMER AREA 
NBO: 



/: 



TEXT [ASCIZ/ **** NOT WRITING 'BAT" BLOCKS /: 
GO IDENT ; IDENTIFY DRIVE AND CONTROLLER 
TEXT [ASCIZ/ 
USER DATA IS ON THE MEDIA 



RTN 



SUBTTL NEXTST 
XLIST 
LIST 
PAGE 



- K/J2''' READ/WRITE NEXT TEST TOR BACKUP COWIANDS 



"1 



DFRPM 
DFRPM 

41 56 

4157 

4158 

4159 

4160 

4161 

4162 

4163 

4164 

4165 

4166 

4167 

4168 

4169 

4170 

4171 

4172 

4173 

4174 

4175 

4176 

4177 

4178 

4179 

4180 

4181 

4182 

4183 

4184 

4185 

4186 

4187 

4188 

4189 

4190 

4191 

4192 

4193 

4194 

4195 

4196 

4197 

4198 

4199 

4200 

4201 

4202 

4203 

4204 

4205 

4206 

4207 

4208 

4209 

4210 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



034117 
034120 



034121 
034122 
034123 
034124 
034125 



034126 
034127 
034130 
034131 
034132 
034133 
034134 



034135 
034136 
034137 
034140 
034141 
034142 
034143 
034144 
034145 
034146 
034147 
034150 



034151 
034152 



336 00 00 030037 
254 00 00 034123 



030 00 00 042335' 
254 00 00 034441 

201 01 00 034440 

202 01 00 030740 
17 00 



261 



476 00 00 
} 17 00 



030756 



^0 

254 00 
202 16 
260 17 
260 17 
254 00 



476 00 
260 17 
254 00 
260 17 
254 00 
254 00 
254 00 
260 17 
402 00 
402 00 
336 00 
254 00 



00 
00 
00 
00 
00 



030755 

034051* 

034135 

000000* 

000000* 

000000* 

034127 



00 030755 
00 034127* 
00 034440 
00 034053* 
00 034136 
00 034440 
00 034136 
00 037722 
00 030756 
00 030761 
00 030731 
00 034233 



031 00 00 042345' 
254 00 00 034155 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-69 

NEXTST - RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 

S*' ♦•***•**♦•****♦**♦*•*•**************•****•******♦••**♦**************** 

:* NEXTST - RH20 BACKUP COMMAND TEST 

S*; *********************************************************************** 



SEQ 0200 



COMMENT $ 



THIS TEST IS DESIGNED TO TEST THE BACKUP COMMAND FEATURE OF THE 

RH20. IN DEFAULT MODE IT USES ALL POSSIBLE COMBINATIONS OF R/W 

NEXT. IN VARIABLE MODE, THE USER SELECTS THE COMBINATIONS AND 

PARAMETERS. IN DEFAULT MODE, ONLY THOSE SURFACES THAT ARE DEFECT 

FREE (ACCORDING TO T.D.) ARE USED. 

THIS TEST RUNS WITHOUT THE PI SYSTEM BECAUSE OF CRITICAL TIMING 

$ 

XLIST 

LIST 



NEXTST: 



SKIPN USER 
JRST NEXO 
TEXT CASCIZ/ 
NEXTST - DOES NOT RUN IH USER MODE 



;IN USER MODE ? 

;N0. OK TO RUN THE TEST 



n 

NEXO: 



JRST 
MOVEI 
MOVEM 
PUT 



NEXTX 
1,NEXTEX 
1,ALTADD 
USEPI 



BACK TO TEST DISPATCHER 
GET THE EXIT TAG 
SETS UP ALTMODE VECTOR 
SAVE STATE OF PI SYSTEM 



.-CODE TO DETACH RH FROM THE PI SYSTEM AND GET IT INIT'D PROPERLY 
.-CODE MAY NOT BE REQUIRED BUT IS HERE FOR A PRECAUTION 



NXTOO: 



SETOM 

60 

JRST 

MOVEM 

GO 

GO 

JRST 



SELFLG 

SELECT 

NXTSO 

M8CN,DIAGCR 

.PIOFF 

DEVREL 

NXTOO+1 



INIT THE SELECT ROUTINE 

CHOOSE DRIVE 

TRIED ALL ... 

FOR THE RELEASE ROUTINE TO FUNCTION 

DETACH RH FROM PI CHAN 

THIS INIT'S THE RH 

NOW LOOP THRU ALL RH'S 



.-INTO NORMAL SELECTION STUFF FOR NEXTST 



NXTSO: 
NEXTS: 



NEX1 



SETOM 

GO 

JRST 

GO 

JRST 

JRST 

JRST 

60 

SETZM 

SETZM 

SKIPN 

JRST 

TEXTF 



0=READ/READ, 1 
JRST 



SELFLG 
SELECT 
NEXTEX 
STATCK 
NEXTS 
NEXTEX 
NEXTS 
TINT 
USEPI 
LOCFLG 
VARFL6 
NEXA 

CASCIZ7SELECT 
=WRITE/WRITE, 2= 

NEX3 



INIT THE SELECTION ROUTINE 
SELECT A DRIVE FOR TEST 
TRIED ALL. EXIT. 
CHECK DRIVE STATUS FROM DSW 
+1 NOT USEABLE OR OFF-LINE 
+2 WRITE PROTECTED (VARIABLE MODE) 
+3 WRITE PROTECTED (MAN OR DEF MODE) 
+4 PASSED CHECKS. INITIALIZE THE TEST. 
SET UP TO 'NOT' USE THE PI SYSTEM 
CLEAR A LOCAL FLAG 
USER SPECIFYING PARAMETERS ? 
,N0. GO USE DEFAULTS 
A PAIR OF COMMANDS BY ENTERING 0-3<CR> 
READ/WRITE, 3=WRITE/READ 

.•JUMP OVER ERROR CODE 



•*CtV VJ'*\JC CJH UU W UU \JJHfJJ 



jno\ 



WCAJ 



;junr uvcn c«nuR luuc 



•'l 



) 0188 



DfRPM 
DFRPM 

A211 

^212 

A213 

A2K 

4215 

A216 

4217 

4218 

4219 

4220 

4221 

4222 

4223 

4224 

4225 

4226 

4227 

4228 

4229 

4230 

4231 

4232 

4233 

4234 

4235 

4236 

4237 

4238 

4239 

4240 

4241 

4242 

4243 

4244 

4245 

4246 

4247 

4248 

4249 

4250 

4251 

4252 

4253 

4254 

4255 

4256 

4257 

4258 

4259 

4260 

4261 

4262 

4263 

4264 

4265 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



034153 
034154 
034155 
034156 
034157 
034160 
034161 
034162 



034163 
034164 
034165 
034166 
034167 



034170 
034171 
034172 
034173 
034174 
034175 

034176 
034177 

034200 
034201 
034202 
034203 

034204 
034205 
034206 
034207 
034210 
034211 
034212 
034213 



034214 
034215 



034216 
034217 



031 00 
254 00 
031 00 
200 00 
260 17 
254 00 

254 00 

255 00 



202 00 
200 01 
200 01 
556 01 
552 01 



607 14 
254 00 
306 00 
254 00 
200 00 
202 00 



00 042372' 
00 034151 
00 042376' 
00 042403' 
00 000000* 
00 034156 
00 034153 
00 000000 



00 000000* 

00 000000 

01 034442 
00 000000* 
00 000000* 



00 000200 
00 034200 
00 000000 
00 034204 
13 033657* 
00 033723* 



031 00 00 042404' 
254 00 00 034216 

201 01 00 034175* 
402 00 00 000002 
260 17 00 033670* 
254 00 00 03't216 



200 03 

201 01 
402 00 
260 17 
200 00 
311 
254 



00 
00 



476 00 



00 034166* 
00 034200* 
00 000002 
00 034202* 
00 034205* 
13 034174* 
00 034216 
00 030761 



031 00 00 042415' 
254 00 00 034216 



402 00 00 030772 
254 00 1 13 034220 



024220 000000 034330 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-70 

NEXTST - RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 



SEQ 0201 



NEX2: 
/] 

NEX3: 



TEXTF CASCJZ/** — INPUT ERROR 



JRST 

TEXTF 

MOVE 

GO 

JRST 

JRST 

JFCL 



NEXl ;TRY AGAIN 

CASCIZ/ENTER NUMBER <CR> - /] 



0.C0,.33 
NUMIN 
.-2 
NEX2 



THESE ARE THE LIMITS 
CALL NUMBER INPUT ROUTINE 
TIMEOUT ... 
INPUT ERROR 
NORMAL 



;SET UP CMD1,CMD2 ACCORDING TO THE NUMBER JUST INPUT 



MOVEM 

MOVE 

MOVE 

HLRZM 

HRRZM 



CMD4 

1,0 

1,NEXTBL(1) 

1,CMD1 

1,CMD2 



SAVE INPUT IN CMD4 FOR NEXERR 

NUMBER TO ACl 

GET COMMAND PAIR FROM THE TABLE 

FIRST COMMAND 

SECOND (BACKUP) COMMAND 



;GET A CYLINDER NUMBER BASED ON THE COMMAND PAIR CHOSEM AND WETHER OR NOT 
; THERE IS USER DATA ON THE MEDIA. ACO STILL HOLDS THE ORIGINAL NUMBER. 



NEX4: 



n 



NEX5: 



NEX6: 



TLNN 

JRST 

CAIN 

JRST 

MOVE 

MOVEM 

TEXTF 

JRST 

MOVEI 
SETZM 
60 
JRST 

MOVE 

MOVEI 

SETZM 

GO 

MOVE 

CAML 

JRST 

SETOM 

TEXTF 



DSW.(IBIO) 

NEX5 

0,0 

NEX6 

0,FCYCE(X1) 

0,CYL1 

CASCIZ/MAINT CYL 

NEX7 



1,CYL1 
2 

IMPUT 
NEX7 

3,CMD1 

1,CYL1 

2 

INPUT 

0,CYL1 

0,FCYCE(X1) 

NEX7 

LOCFLG 

CASCIZ7Y0U 



IS USER DATA ON THE MEDIA ? 

NO 

YES ... HAS READ/READ BEEN SELECTED ? 

READ/READ IS THE PAIR 

SOMTHING ELSE SELECTED. USE CE AREA 

MAINT AREA NOW SELECTED 

BEING USED TO PROTECT USER DATA 

TO COMMON CODE 



WANT TO INPUT CYL1 
NO RESTRICTION 
INPUT CYLl 
TO COMMON CODE 

GET READ COMMAND 
WANT TP INPUT CYLl 
NO RES! ICTIONS 
INPUT ( LI 

:" , .. '"^ER JUST INPUT 
H , MAJMl CYL BEEN SELECTED ? 
YES 

NO. FLAG T'^E FACT THAT WERE USING USER AREA 
HAVE" SELECTED KcAD/READ ON A CYL WITH USER DATA . 



THE PROGRAM WILL SKIP THE STEP THAT INITIALIZES THE MEDIA. 

JRST NEX7 ;T0 COMMON CODE 

.•BRANCH TO CODE BASED ON THE DRIVE TYPE WE ARE TESTING 



NEX7: 



SETZM 
JRST 



NXTYP: NEXC 



TEMD .-START WITH NO DEFECTIVE SURFACES 

aNXTYP(XI) .-BRANCH ACCORDING TO DRIVE TYPE 

;RP04 



tCU^ V/JVCCW VV/VV/WV UJf JJW 



ii|A I »r; niCAt 



.nrvy* 



0189 



DFRPM 
DFRPM 

4266 

4267 

4268 

4269 

4270 

4271 

4272 

4273 

4274 

4275 

4276 

4277 

4278 

4279 

4280 

4281 

4282 

4283 

4284 

4285 

4286 

4287 

4288 

4289 

4290 

4291 

4292 

4293 

4294 

4295 

4296 

4297 

4298 

4299 

4300 

4301 

4302 

4303 

4304 

4305 

4306 

4307 

4308 

4309 

4310 

4311 

4312 

4313 

4314 

4315 

4316 

4317 

4318 

4319 

4320 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO 3:538(1242) 19:36 12-Sep-85 Page 1-71 

NEXTST - RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 



SEQ 0202 



034221 
034222 
034223 
034224 
034225 
034226 
034227 



034230 
034231 
034232 



034233 
034234 
034235 

034236 
034237 



034240 
034241 
034242 
034243 
034244 
034245 
034246 
034247 

034250 
034251 
034252 
034253 
034254 
034255 
034256 



034257 
034260 
034261 
034262 
034263 
034264 
034265 



000000 
000000 

oocooo 
oocooo 

000000 
000000 
000000 



034330 

042304' 

034230 

034330 

042304' 

034330 

034330 



260 17 00 035112 
260 17 00 035034 
254 00 00 034330 



200 00 13 034211* 
202 00 00 034210* 
402 00 00 030772 

260 17 1 13 034240 
254 00 00 034250 



000000 
000000 
000000 
000000 
000000 
OuJOOO 
000000 
000000 

205 03 
540 03 1 



042304' 

042304' 

042504' 

035112 

042304' 

042304' 

042304' 

042304' 



200 02 
514 01 
260 17 
255 00 
254 00 



00 
00 
13 
00 
00 
00 
00 



000001 

030724 

000000- 

034234* 

035232 

000000 

034257 



200 00 
202 00 



221 
202 



00 
00 



403 07 
402 00 
200 00 



00 030735 
00 030767 
00 000004 
00 030735 
00 034163* 
00 000006 
07 034442 



NEXC 

CRTNJ 

NEX8 

NEXC 

CRTN] 

NEXC 

NEXC 



RP06 

SPARC 

RP07 (600 MB) 

RM03 

SPARE 

RP20 (TOPS10) 

RP20 (T0PS20) 



.-CODE TO PROCESS TRACK DESCRIPTORS FOR THE RP07 



NEX8: GO 6ETTD 
GO INFO 
JRST NEXC 



READS TD'S AND FINDS DEFECTIVE AREAS 
INFORM USER OF DEFECTIVE AREAS 
PROCEED TO 'OMMON CODE 



.-HERE BECAUSE WE ARE USING DEFAULT PARAMETERS IN THE TEST 
NEXA: 



MOVE 

MOVEM 

SETZM 

60 
JRST 



0,FCYCE(X1) 

0,CYL1 

TEMD 

aTDPRO(XI) 
NEXAO 



;GET MAINTENANCE CYLINDER 

.•FORCE TESTING ON THE MAINT CYLINDER 

.•START WITH NO DEFECTIVE SURFACES 

.•PROCESS T.D. ACCORDING TO DRIVE TYPE 
;JUMP AROUND DISPATCH TABLE 



;OFF TO APPROPRIATE SUBROUTINES TO PROCESS TRACK DESCRIPTORS 
TDPRO: 



NEXAO: 



CRTNJ 
CRTN3 
CRTNJ 
GETTD 
CRTNJ 
CRTNJ 
CRTNJ 
CRTNJ 

MOVSI 

HRR 

MOVE 

HRLZ 

GO 

JFCL 

JRST 



3.1 

3,aBUF1A 

2,A88PCY(X1) 

1.CYL1 

lAREA 

NEXA1 



RP04 

RP06 

SPARE 

RP07 (600 MB) 

RM03 

SPARE 

RP20 (TOPS10) 

RP20 (T0PS20) 

A PATTERN INDEX 

BUFFER ADDRESS 

GET NUMBER OF BLOCKS PER CYLINDER 

GET CYL., SURF, SECT 

INITIALIZE THE CYLINDER 

ERROR RETURN 

NORMAL RETURN 



.•CYLINDER NOW INITIALIZED. MULTIPLY THE NUMBER OF TEST ITERATIONS BY 

;4 BECAUSE WE ARE GOING TO DO 4 COMBINATIONS OF READ/WRITE NEXT 

.•INITIALIZE SOME LOOP COUNTERS AND INDEX REGISTERS 
;(Y) COUNTS ITERATIONS PER COMBINATION 
;(X) INDEX INTO NEXTBL 



NEXA1 



MOVE 


O.TSTITR 


MOVEM 


TEMA 


IMULI 


0.4 


MOVEM 


O.TSTITR 


SETZB 


X.CMD4 


SETZM 


Y 


MOVE 


O.NEXTBL(X) 



GET ITERATION COUNT 

SAVE IN TEMPORARY LOCATION 

ACO = AC0*4 

DESIRED ITERATION COUNT 

CLEAR AN INDEX REGISTER 

CLEAR A COUNTR 

GET THE COMMAND PAIR 



^iidU U3A<r03 dVU UU U Uf [Jitiiikii 



nuvt 



U.NtAIBLU; 



;6tF (Ht LUnriAND PAIR 



0190 



DFRPM 
DFRPM 

A321 
A322 
A323 
432A 
A325 
A326 
A327 
A328 
4329 
4330 
4331 
4332 
4333 
4334 
4335 
4336 
4337 
4338 
4339 
4340 
4341 
4342 
4343 
4344 
4345 
4346 
4347 
4348 
4349 
4350 
4351 
4352 
4353 
4354 
4355 
4356 
4357 
4358 
4359 
4360 
4361 
4362 
4363 
4364 
4365 
4366 
4367 
4368 
4369 
4370 
4371 
4372 
4373 
4374 
4375 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 

034266 556 00 00 034204* 

034267 552 00 00 034167* 
034270 254 00 00 034271 



MACRO X53B(1242) 19:36 12- Sep-85 Page 1-72 

NEXTST - RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 



SEQ 0203 



034271 
034272 
034273 
034274 
034275 
034276 
034277 
034300 
034301 
034302 
034303 

034304 
034305 
034306 
034307 
034310 
034311 
034312 
034313 
034314 

034315 
034316 
034317 
034320 
034321 
034322 
034323 
034324 
034325 

034326 
034327 



034330 
034331 
034332 

034333 
034334 
034335 



350 00 
317 06 
254 00 
301 07 
254 00 
350 00 
202 07 
201 06 
200 00 
556 00 
552 



00 000006 
00 030767 
00 034304 
00 000003 
00 034440 
00 000007 
00 034263* 
00 000001 
07 034442 
00 034266* 



00 00 034267* 



201 01 
402 00 
260 17 
200 01 
210 02 
205 03 
242 03 
612 01 
254 00 00 034304 













00 033721* 
. 00 000002 
00 033052* 
00 030772 
00 034304* 
00 400000 
02 000000 
00 000003 



201 01 
4uJ 00 
260 17 
200 01 
210 02 
205 03 
242 03 
612 01 
254 00 



00 033112* 
00 000002 
00 034306* 
00 030772 
00 034315* 
00 400000 
02 000000 
00 000003 
00 034315 



260 17 00 034446 
254 00 00 034360 



201 01 00 034310* 
402 00 00 000002 
260 17 00 034317* 



201 01 
402 00 
260 17 



00 034321* 
00 000002 
00 034332* 



034336 260 17 00 034446 



HLRZr 0,CMD1 
HRRZM 0,CMD2 
JRST NEXB 



.-GENERATES THE FIRST COMMAND 
.•THIS IS SECOND (BACKUP) COMMAND 



.•THIS CODE CYCLES ALL TO THE COUNTERS AND THE INDEX REGISTER, GENERATES 
;SURF1. SURF2, AND SECTl (2 NON-DEFECTIVE SURFACES AND THE STARTIN(= SECTOR) 



NEXB: 



NEXBl 



NEXB2: 



NEXB3: 



AOS 

CAMG 

JRST 

CAIL 

JRST 

AOS 

MOVEM 

MOVE I 

MOVE 

HLRZM 

HRRZM 

MOVE I 

SETZM 

GO 

MOVE 

MOVN 

MOVSI 

LSH 

TDNE 

JRST 

MOVE I 

SETZM 

GO 

MOVE 

MOVN 

MOVSI 

LSH 

TDNE 

JRST 

GO 
JRST 



Y 

Y.TEMA 

NEXBl 

X.3 

NEXTEX 

X 

X.CMD4 

Y.I 

O.NEXTBL(X) 

0.CMD1 

0.CMD2 

1.SURF1 

2 

GENVAR 

l.TEMD 

2. SURF 1 

3,400000 

3.(2) 

NEXBl 

1. SURF 2 

2 

GENVAR 

l.TEMD 

2.SURF2 

3.400000 

3.(2) 

NEXB2 

GENSEC 
NEXD 



BUMP COUNTER 

FINISHED THIS COMBINATION ? 

NOT DONE. GO GENERATE SURFl... 

FINISHED COMBINATION. IS THERE MORE TO DO 

TRIED ALL. DONE WITH TEST 

NOT DONE. BUMP THE INDEX REGISTER 

SAVE IN A CELL FOR ERROR REPORTER 

RE-INIT Y 

GET COMMAND PAIR 

SAVE FIRST COMMAND 

SAVE 2ND (BACKUP) COMMAND 

WANT TO GENERATE SURFl 

NO RESTRICTIONS 

GENERATE A RANDOM SURFACE 

GET CELL INDICATING DEFECTIVE SURFACES 

GET -(SURFl) FOR A RIGHT SHIFT 

SET BIT-O 

SHIFT MASK TO PROPER POSITION 

IS SURFACE DEFECTIVE ? 

YES. GENERATE ANOTHER. 

WANT TO GENERATE SURF2 

NO RESTRICTIONS 

GENERATE A RANDOM SURFACE 

GET CELL INDICATING DEFECTIVE SURFACES 

GET (-SURF2) FOR A RIGHT SHIFT 

SET BIT-O 

SHIFT MASK TO PROPER POSITION 

IS SURFACE DEFECTIVE ? 

YES. GENERATE ANOTHER. 

GENERATE SECTl FOR NEXTST 



;THIS CODE INPUTS SURFl. SURF2. SECTl WHEN THE USER IS SPECIFYING THE 
.•VARIABLES. THE SURFACES GET INIT'D TO -1 IF LOCFLG=0 



NEXC; 



MOVE I 
SETZM 
GO 

MOVE I 
SETZM 
GO 

GO 



1. SURFl 

2 

GENVAR 

1.SURF2 

2 

GENVAR 

GENSEC 



;WANT TO INPUT SURFl 
;N0 RESTRICTIONS 
.•INPUT SURFl 

.•WANT TO INPUT SURF2 
;N0 RESTRICTIONS 
.•INPUT SURF 2 

.•GENERATE SECTl IN NEXTST 



i*57^ 



D191 



DFRPM 
DFRPM 

4376 
4377 
4378 
4379 
4380 
4381 
4382 
4383 
4384 
4385 
4386 
4387 
4388 
4389 
4390 
4391 
4392 
4393 
4394 
4395 
4396 
4397 
4398 
4399 
4400 
4401 
4402 
4403 
4404 
4405 
4406 
4407 
4408 
4409 
4410 
4411 
4412 
4413 
4414 
4415 
4416 
4417 
4418 
4419 
4420 
4421 
4422 
4423 
4424 
4425 
4426 
4427 
4428 
4429 
4430 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



034337 
034340 
034341 
034342 
034343 
034344 
034345 
034346 
034347 
034350 



034364 
034365 
034366 
034367 
034370 
034371 
034372 
034373 
034374 
034375 
034376 
034377 



332 00 
254 00 
205 03 
540 03 
200 02 
200 01 
242 01 
504 01 
260 17 



00 030761 
00 034360 

00 000001 

1 00 030724 
13 033760* 
00 034330* 
00 000010 
00 034253* 

00 035232 



255 00 00 000000 



034351 200 01 

034352 242 01 

034353 504 01 

034354 260 17 

034355 255 00 

034356 254 00 



00 034333* 
00 000010 
00 034346* 
00 035232 
00 000000 
00 034360 



034357 000000 000004 



034360 2u.' 01 00 033311* 

034361 270 01 00 034357 

034362 230 01 13 034343* 

034363 202 02 00 033115* 



200 01 
200 00 
221 00 

270 01 

261 17 

271 01 
?10 01 
202 02 

262 U 

?:n 01 

c^O 01 
2C? 02 



00 034360* 
00 034357 
00 000002 
00 000000 
00 000001 
00 000001 
13 034362* 
00 C33125* 
00 000001 
00 000002 
13 034372* 
00 000000* 



MACRO 5!53B(1242) 19:36 12-Sep-85 Page 1-73 

NEXTST - RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 



SEQ 0204 



SKJPE 

JRST 

MOVSI 

HRR 

MOVE 

MOVE 

LSH 

HRL 

GO 

JFCL 

MOVE 

LSH 

HRL 

GO 

JFCL 

JRST 



LOCFLG 

NEXD 

3.1 

3,aBUFlA 

2,AB6PT(X1) 

1,:URF1 

1,*D8 

1,CYL1 

lAREA 



1, SURF 2 
1.-D8 
1,CYL1 
I AREA 



NEXD 



CAN SURF1, SURF2 BE INITIALIZED ? 

NO. SKIP OVER THE INITIALIZE CODE 

PATTERN INDEX 

BUFFER ADDRESS 

GET NUMBER OF BLOCKS PER TRACK 

GET SURFI 

POSITION SURFACE 

CYL1,,SURF1,0 

INIT THE FIRST SURFACE 

ERROR RTN 

GET SURF2 

POSITION THE SURFACE 

CYL1,.SURF2,0 

INITIALIZE THE SURFACE 

ERROR RETURN 

NORMAL 



N: 



CALCULATE SECT2, SIZE1, AND ENDING TARGET SECTORS (SECT3. SECT4) FOR 
DETERMINING IF THE BACKUP COMMAND IS TAKING TO LONG. BOTH THE FIRST 
AND SECOND COMMANDS TRANSFER 4 SECTORS BACK TO BACK. A FREE SECTOR 
FOLLOWING THE COMPLETION OF THE SECOND TRANSFER IS USED TO BUFFER ANY 
SECTOR SKEW SO THE TARGET SECTORS START 9 SECTORS AWAY FROM THE INITIAL 
SECTOR (SECTl). 

4 .-DEFAULT » OF SECTORS PER TRANSFER 

FIRST CALCULATE SECT2 WHICH IS THE REMAINDER OF THE FOLLOWING 
DIVISION .... (SECT1+N)/(SECT0RS PER TRACK) 



NEXD: 



MOVE 
ADD 
IDIV 
MOVEM 



1, SECTl 
I.N 

I.ABBPT(XI) 
2.SECT2 



GET SECTl 

SECT1+N 

DIVIDE BY SECTORS PER TRACK 

SAVE. THIS IS WHERE SECONDARY COMMAND STARTS 



NOW CALCULATE 2 SECTORS BY WHICH THE TRANSFER MUST BE COMPLETE. 
THESE ARE THE TARGET SECTORS SAVED IN SECT3. SECT4. SECT3 AND SECT4 
ARE THE REMAINDERS OF THE FOLLOWING 2 DIVISIONS ... 
SECT3 = REMAINDER OF (SECT1+2N+1)/(SECT0RS PER TRACK) 
SECT4 = REMAINDER OF (SECT1+2N+2)/(SECT0RS PER TRACK) 



MOVE 

MOVE 

IMULI 

ADD 

PUT 

ADDI 

IDIV 

MOVEM 

GET 

ADDI 

IDIV 

MOVEM 



1, SECTl 

O.N 

0.2 

1.0 

1 

1.1 

I.ABBPT(XI) 

2,SECT3 

1,2 

1,ABBPT(X1) 

2,SECT4 



GET SECTl 

GET N 

N*2 

AC1 = SECT1+2N 

SAVE FOR FUTURE NEED ... 

AC1 = SECT1+2N+1 

DIVIDE BY SECTORS PER TRACK 

SAVE REMAINDER (1ST TARGET SECTOR) 

SAVE FROM EARLIER (SECT1+2N) 

AC1 = SECT1+2N+2 

DIVIDE BY SECTORS PER TRACK 

SAVE REMAINDER (2ND TARGET SECTOR) 



CALCULATE SIZE OF EACH TRANSFER 



A430 



CALCULATE SIZE OF EACH TRANSFER 



1192 



DFRPM 
DFRPM 

A431 
4A32 
AA33 
AA34 
4A35 
4A36 
4437 
4438 
4439 
4440 
4441 
4442 
4443 
4444 
4445 
4446 
4447 
4448 
4449 
4450 
4451 
4452 
4453 
4454 
4455 
4456 
4457 
4458 
4459 
4460 
4461 
4462 
4463 
4464 
4465 
4466 
4467 
4468 
4469 
4470 
4471 
4472 
4473 
4474 
4475 
4476 
4477 
4478 
4479 
4480 
4481 
4482 
4483 
4484 
4485 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



034400 200 01 13 034072* 

034401 220 01 00 034357 

034402 202 01 00 033306* 



034403 
034404 
034405 
034406 
034407 
034410 
034411 
034412 
034413 
0344K 



034415 
034416 
034417 
034420 
034421 
034422 
034423 
034424 
034425 
034426 
034427 
034430 
034431 
034432 
034433 
034434 
034435 
034436 
034437 
034440 
034441 



200 02 
242 02 
434 02 
504 02 



476 00 
260 17 
270 01 
260 17 
202 02 
254 00 



260 17 

260 17 

260 17 

332 00 

260 17 

260 17 



373 00 
254 00 
254 00 

262 17 

263 17 



260 17 
254 00 
260 17 
254 00 
254 00 



254 00 1 

254 00 

255 00 
332 00 
254 00 



00 
00 
00 
00 
00 
00 
00 
00 
00 
00 



034351* 

000010 

034363* 

034353* 

000001 

000000* 

034357 

034410* 

030771 

034415 



00 034534 
00 034422 
00 034621 
00 034422 
00 034424 
00 000000* 
00 000000* 
00 000000* 
00 000011 
00 034730 
00 034106* 
00 030740 
00 034415 
00 000000 
00 030731 
00 034415 
00 030735 
00 034271 
00 034136 
00 030756 
00 000000 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-74 

NEXTST - RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 

SIZE1 = (N) (WORDS PER SECTOR) 



SEO 0205 



MOVE 
IMUL 
MOVEM 



1,CWRWD(X1) 

1,N 

1,SI2E1 



NUMBER OF WORDS PER SECTOR 

MULTIPLY BY N 

SAVE THE SIZE (IN WORDS) 



CALCULATE THE VALUE THAT SHOULD BE CONTAINED IN DA AND DCY 
WHEN THE BOTH COMMANDS ARE OVER. THESE VALUES ARE VERIFIED 
IN 'ENDCMD' AND IF INCORRECT, MAY INDICATE THAT THE DISK 
TRANSFERRED DATA FROM THE WRONG DISK ADDRESS. THIS FINAL 
ADDRESS IS SUPPOSED TO BE (N) LOGICAL BLOCKS AWAY FROM 
SECT2. THE VALUE CALCULATED HERE WILL BE SAVED IN 'TEMC 
WE MAKE USE OF THE PROPERTY THAT WHEN AN RP SPIRALS OFF THE END 
OF THE DISK. THE DCY DOES NOT GET AUTOMATICALLY RESET TO BUT 
INSTEAD INCREMENTS TO AN ILLEGAL CYLINDER. 



MOVE 

LSH 

I OR 

HRL 

SETOM 

GO 

ADD 

GO 

MOVEM 

JRST 



2,SURF2 

2,*D8 

2,SECT2 

2,CYL1 

1 

AD CON 

I.N 

AD CON 

2, TEMC 

NEXE 



GET STARTING SURFACE 

POSITION ir 

INCLUDE THE SECTOR NUMBER 

INCLUDE THE CYLINDER 

TELL ADCON TO CONVERT TO LBN 

GETS A LBN TO AC1 

ADD (N) 

CONVERT BALK TO A PHYSICAL ADDRES 

AND SAVE FOR 'ENDCMD' 



ALAS 1! THE ACTUAL TEST LOOP .... PARAMETERS h,^VE BEEN GENERATED AND WE 
NOW PERFORM THE TEST USING THOSE PARAMETERS. THIS CODE STARTS ISSUES 
THE COMMANDS, MONITORS THE RESULTS AND REPORTS PROBLEMS 



NEXE : GO 

JRST 
GO 

JRST 
JRST 

NEXE1: GO 
GO 

NEXE2: GO 

SKIPE 

GO 

GO 

JRST 

JRST 

JFCL 

SKIPE 

JRST 

SOSLE 

JRST 

JRST 

NEXTEX: GET 

NEXTX: RTN 



STCMD 

NEXE1 

ENDCMD 

NEXE1 

NEXE2 

SNAPA 

GETLOG 

.REL 

ERFLG 

NEXERR 

BRANCH 

8ALTADD 

NEXE 

VARFLG 

NEXE 

TSTITR 

NEXB 

NEXTS 

USEPI 



ROUTINE STARTS 2 COMMANDS 

... ERROR RETURN 

WAIT TILL BOTH COMMANDS COMPLETE 

... ERROR RETURN 

NORMAL RETURN 

SNAPSHOT REGISTERS 

GET LOGOUT DATA 

RELEASE THE DEVICE 

WAS THERE AN ERROR ? 

YES. REPORT IT 

NO. DECIDE HOW TO BRANCH 

+1 RTN. ALTMODE STRUCK 

+2 RTN. LOOP ON ERROR 

CONTINUE. 

MANUAL MODE ? 

YES. STAY IN THE LOOP 

DECREMENT THE ITERATION COUNT 

MORE TO DO 

SELECT THE NEXT DRIVE 

RESTORE ORIGINAL PI SYSTEM STATE 

FINISHED. BACK TO DISPATCHER 



.•HERE'S THE COMMAND PAIR TABLE WE USE IN THIS TEST 



4485 



jHERE'S THE COMMAND PAIR TABLE WE USE IN THIS TEST 



93 



DFRPM RP07/6/5/A Exerciser 
DFRPM MAC 12-Sep-85 17:02 



4486 
4487 
4488 
4489 
4490 

A493 



034442 
034443 
034444 
034445 



000071 
000061 



000071 

QQQQ61 

000061 
000071 



MACRO X53B(1242) 19:36 12-SeD-85 Page 1-75 

NEXTST - RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 

.•LEFT SIDE GOES TO CMD1 AND RIGHT SIDE GOES TO CMD2 

NEXTBL; 



SE 0206 



7 ,.71 
61.. 61 
71. .61 
61. .71 



PAGE 



.•READ. READ 
;WRITf. WRITE 
; READ -WRITE 
.•WRITE. READ 



r 



9A 



DFRPM 
DFRPM 

AA95 

4A96 

AA97 

4A98 

4A99 

4500 

A501 

4502 

4503 

4504 

4505 

4506 

4507 

4508 

4509 

4510 

4511 

4512 

4513 

4514 

4515 

4516 

4517 

4518 

',519 

i>520 

4521 

4522 

4523 

4524 

4525 

4526 

4527 

4528 

4529 

4530 

4531 

4532 

4533 

4534 

4535 

4536 

4537 

4538 

4539 

4540 

4541 

4542 

4543 

4544 

4545 

4546 

4547 

4548 

4549 



.._ ) 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



034446 
034447 
034450 
034451 
034452 
034453 
034454 
034455 
034456 
034457 
034460 
034461 
034462 



034463 
034464 
034465 

034466 



034467 
034470 
034471 



261 
261 
261 
2o' 
332 
254 
201 
402 
260 
260 
315 
202 
254 



17 
17 
17 
17 
00 
00 
01 
00 
17 
17 
01 
01 
00 



00 000000 
00 000001 
00 000002 
00 030767 
00 030731 
00 034463 
00 034364* 
00 000002 
00 034335* 
00 034505 
00 034454* 
00 034460* 



00 034500 



260 17 00 034505 
202 01 00 030767 
254 00 00 034472 



034466 031 00 00 042445' 



550 00 
260 17 
037 01 



00 030767 
00 000000* 
00 030242 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-76 

NEXTST - RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 

THIS SUBROUTINE IS USED TO GENERATE SECT1 FOR NEXTST. THIS TEST 
DOES THE GENERATION OF SECT1 IN A VERY SPECIAL WAY TO INSURE THAT 
THE PAIR OF TRANSFERS ISSUED DOES NOT CAUSE THE DISK TO ATTEMPT 
AN 'IMPLIED TRANSFER TO ANOTHER CYLINDER. 

LET: 
N = THE NUMBER OF SECTORS TRANSFERED WITH EACH COMMAND 
MXSUR = THE MAXIMUM SURFACE NUMBER ON A CYLINDER 
MXSEC = MAXIMUM SECTOR NUMBER ON A TRACK 
SURF1 = SURFACE USED FOR THE FIRST TRANSFER 
SURF2 = SURFACE USED FOR THE SECOND TRANSFER 
SECT1 = SECTOR WHERE THE FIRST TRANSFER WILL START 

THE FOLLOWING RELATIONSHIPS MUST BE MADE TO HOLD TRUE 
IF: SURF2=MXSUR; THEN: SECT1<=MXSEC+1-(2*N) 
IF: SURF1=MXSUR; THEN: SECT1<=MXSEC+1-N 
IF: SURF1 .NE. MAXSUR .AND. SURF1+1 DEFECTIVE; THEN: SECT1<=MXSEC+1-N 

IF THESE RULES ARE APPLIED. THE FOLLOWING WILL BE ALLOWED. 
HEAD SWITCH AT END OF PRIMARY COMMAND 
HEAD SWITCH DURING PRIMARY COMMAND 
HEAD SWITCH DURING SECONDARY COMMAND 



?£(> 0207 



CALL SEQ: 






GO 


GENSEC 


;CALL THE ROUTINE 


RTN 




;RTN ... SECT1 IS SET UP 


ENSEC: PUT 





;SAVE AC'S 


PUT 


1 




PUT 


2 




PUT 


TEMA 




5KIPE 


VARFLG 


•USER SUPPLYING VARIABLES? 


JRST 


GENS1 


•YES 


MOVE I 


1.SECT1 


•NO. WANT TO GENERATE SECT1 


SETZM 


2 


•NO RESTRICTIONS 


i8 


GENVAR 


■GENERATE THE VARIABLE 


GMXSEC 


■GET UPPER BOUND FOR SECTI 


CAM6E 


1,SECT1 


■SECT1 LESS THAN OR EQUAL TO LIMIT 


MOVEM 


I.SECTI 


■NO. USE THE LIMIT 


JRST 


GENSX 


■YES. THE WERE DONE 



.•GENERATE UPPER LIMIT AND INPUT SECTI FROM TTY 



GENS1 : 



GO 

MOVEM 

JRST 



GMXSEC 
I.TEMA 
INSEC 



ERSEC: TEXTF [ASCIZ/ 

*♦ — INPUT ERROR FOR "SECTV 

0(0.) THRU /] 



GET MAX SECTI VALUE TO ACI 

TEMPORARILY SAVE IT 

WANT TO INPUT FROM THE TTY 



THE FOLLOWING IS ALLOWED: 



HRRZ 

GO 

PCRLF 



O-TEMA 
POCDEF 



;GET THE LIMIT 
.•PRINT IT 



4549 



)5 

















DFRPM 


RP07/6/5/4 Exerciser 


MACRO X53B(1242) 19:36 12 


-Sep- 
NEXT 


-85 Page 1-77 
TEST FOR BACKUP COMMA 


DFRPM 


MAC 


12-Sep-85 17:02 


NEXTST - RH20 


READ/WRITE 


4550 


034472 


031 00 QQ 042464' 
550 00 00 Q30767 
260 17 OQ 034157* 
254 00 QO Q34472 
254 00 00 034466 


INSEC: TEXTF 


[ASCIZ/ENTER 


SECT1: - n 


4551 


034473 


HRRZ 


).TEMA 




;GET THE LIMITS 


4552 


034474 


60 


miH 




.•INPUT FROM THE TTY 


4553 


0^4475 


JRST 


NSEC 




.•TIMEOUT 


4554 


034476 


JRST 


i;rsec 




.•ERROR ON THE INPUT 


4555 


034477 


202 00 00 034461* 


MOVEM 


O.SECTI 




.•OK. SAVE RESULTS 


4556 














4557 






.-EXIT CODE 








4558 














4559 


034500 


262 17 00 030767 


GENSX: GET 


TEMA 




.•RESTORE THINGS 


4560 


034501 


262 17 00 000002 


GET 


2 






4561 


034502 


262 17 00 000001 


GET 


1 






4562 


034503 


262 17 00 000000 


GET 









4563 


034504 


263 17 00 000000 


RTN 






;AND EXIT 


4564 






PAGE 









iEQ 0208 



OFRPM 
DFRPM 

A565 

A566 

A567 

4568 

4569 

A570 

4571 

4572 

4573 

4574 

4575 

4576 

4577 

4578 

4579 

4580 

4581 

4582 

4583 

4584 

4585 

4586 

4587 

4588 

4589 

4590 

4591 

4592 

4593 

4594 

4595 

4596 

4597 

4598 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



034505 
034506 
034507 
034510 
034511 
034512 
034513 
034514 
034515 
034516 
034517 
034520 
034521 
034522 
034523 
034524 
034525 
034526 
034527 
034530 
^34531 
.34532 
034533 



261 17 
261 17 
200 01 
200 02 
312 02 
254 00 
271 01 
274 01 
271^ 01 
254 00 
200 02 - 
316 02 
254 00 
271 02 
200 03 
242 03 
607 03 
254 00 
271 01 
274 01 
26? 17 



17 



<0w .. 

263 17 



00 000002 
00 000003 
13 000000* 
00 034403* 
13 033701* 
00 034517 
00 000001 
00 034357 
00 034357 
00 034531 
00 034344* 
13 034511* 
00 034530 
00 000001 
00 030772 
02 000000 
00 400000 
00 034531 
00 000001 
00 034357 
00 000003 
00 000002 
00 000000 



MACRO !I!53B(1242) 19;36 12-Sep-t?5 Page 1-78 

NEXTST - RH20 READ/WRITE NEXT ..ST FOR BACKUP COMMANDS 



.•THIS ROUTINE LOOKS AT SURF1 AND SURF2 AND SETS A MAXIMUM 
VALUE THAT SECT1 CAN TAKE ON WITHOUT CROSSING A CYLINDER 
BOUNDRY WITH EITHER IF THE 2 TRANSFERES THAT NEXTST WILL PERFORM. 



SEQ 0209 



or 
or 



CALL 



SEQ: 

GO 

RTN 



GMXSEC: PIT 
PUT 
MOVE 
MOVE 
CAME 
JRST 
ADDI 
SUB 
SUB 
JRST 
GMX1 : MOVE 
CAMN 
JRST 
ADDI 
MOVE 
LSH 
TLNN 
JRST 
GMX2: ADDI 
GMX2A: SUB 
6MXX: GET 
GET 
RTN 

PAGE 



GMXSEC 



2 
3 

I.MXSEC(XI) 
2. SURF 2 
2.MXSUR(X1) 
GMXl 

,N 
1,N 
GMXX 
2.SURF1 
2.MXSUR(X1) 
GMX2A 

3.TEMD 

3,(2) 

3.400000 

GMXX 

IJ 

..N 

2 



.-CALL THE ROUTINE 

;AC1 HOLDS THE MAXIMUM VALUE 

.•SAVE AC'S 

;6ET MAXIMUM SECTOR TO START WITH 

;6ET VALUE OF SURF 2 

;IS SURF2=MXSUR ? 

;N0. 

;YES. MAKE AC1=MAXSEC+1-(2N) 



TH EXIT CODE 

Gr'T VALUE OF SURF1 

SURF1=MXSUR ? 

YES. MAKE AC1=MXSEC-N 

AC2=SURFU1 

GET WORD WITH DEFECTIVE SURFACE BITS 

GET SURF1+1 BIT UNDER BIT-O 

IS SURF1+1 DEFECTIVE ? 

NO. TO EXIT CODE 

YES. MAKE AC1=MXSEC+1-N 

RESTORE AC'S 

ACl NOW HAS MAXIMUM VALUE 



OFRPH 
DFRPM 

4599 
Lt.t\r\ 



RP07/6/5/4 Exerciser 
MAC 



5/4 Exerciser 
12-Sep-85 !7:02 



MACRO X538(1242) 19:36 12-SeD-85 Page 1-79 

NEXTST - RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 

:THIS SUBROUTINE IS THE USED TO START THE READ/WRITE NEXT PAIR IN NEXTST. 
.IT DCTiieuc uucu CTTUCD OHTu rrtMMAunc ADC ciirrcceciii I V iiAincoLiAv na au 



SEQ 0210 



DF 
DF 



DFRPM 
DFRPM 

4599 

4600 

4601 

4602 

4603 

4604 

4605 

4606 

4607 

460P 

4609 

4610 

4611 

4612 

4613 

4614 

4615 

4616 

4617 

4618 

4619 

4620 

4621 

4622 

4623 

4624 

4625 

4626 

4627 

4628 

4629 

4630 

4631 

4632 

4633 

4634 

4635 

4636 

4637 

4638 

4639 

4640 

4641 

4642 

4643 

4644 

4645 

4646 

4647 

4648 

4649 

4650 

4651 

4652 

4653 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



Cj*»bi4 
034535 
034536 



034537 
034540 



034541 
034542 
034543 
034544 
034545 
034546 
034547 
034550 



034551 
034552 
034553 
03455^ 
034555 
034556 
034557 
034560 
034561 
034562 
034563 



034564 
034565 
034566 
034567 
034570 



261 17 00 000001 
261 17 00 000002 
261 17 00 000003 



200 01 00 034277* 
256 00 01 034615 



200 01 
200 02 
242 02 
434 02 
504 02 
c\j} 03 
504 03 
260 17 



402 00 
260 17 
205 11 
606 01 
254 00 
205 11 
602 01 
254 00 
205 11 
602 01 
254 00 



476 00 
200 01 
200 02 
2k2 02 
434 02 



00 034302* 
00 034517* 
00 000010 
00 034477* 
00 034406* 
00 030724 
00 034402* 
00 034104* 



00 000011 
00 000000* 
00 2000C0 
00 000020 
00 034611 
00 100000 
00 000100 
00 034611 
00 040000 
00 775000 
00 034611 



00 030746 
00 034303* 
00 034510* 
00 000010 
00 034405* 



MACRO 3!53B(1242) 19:36 12-Sep-85 Page 1-79 

NEXTST - RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 

THIS SUBROUTINE IS THE USED TO START THE READ/WRITE NEXT PAIR IN NEXTST, 
IT RETURNS WHEN EITHER BOTH COMMANDS ARE SUCCESSFULLY UNDERWAY OR AN 
ERROR OCCURS DURING THE PROCESS OF STARTING ONE OF THE COMMANDS. WHEN 
THE ERROR RETURN IS TAKEN, ERFLG WILL HAVE A BIT SET THAT SERVES AS 
AN ERROR CODE DESCRIBING THE FAILURE. THE ERROR CODES ARE LISTED IN 
THE NEXTST ERROR REPORTING ROUTINE 'NEXERR'. THE PRIMARY COMMAAND USES 
CMDl, CYL1- SURFl. SECTl, SIZEl. BUFl. THE SECONDARY COMMAND USES CMD1, 
CYLl. SURF2. SECT2, SIZEl. BUF2. 



SEQ 0210 



DFI 
DFI 



CALL SEQ: 
GO 

RTN-1 
RTN-2 



STCMD: 



PUT 
PUT 
PUT 



STCMD 



1 
2 
3 



CALL ROUTINE 

ERROR 

NORMAL 

.•SAVE AC'S 



.-FIRST COUNT THE OPERATION FOR THE PURPOSE OF TOTALS REPORTING 



MOVE 
XCT 



1.CMD4 
NXCMCT(I) 



.•START FIRST (PRIMARY) COMMAND 



MOVE 

MOVE 

LSH 

I OR 

HRL 

MOVE 

HRL 

GO 



l.CMDl 
2. SURF 1 
2.*D8 
2.SECT1 
2. CYLl 
3.8UFU 
3, SIZEl 
XFSTRT 



;GETS INDEX INDICATING COMMAND PAIR 
.•BUMPS APPROPRIATE COUNTER IN DSB AREA 



GET COMMAND 
GET SURFACE NUMBER 
POSITION IT 
INCLUDE THE SECTOR 
INCLUDE CYLINDER 
ADDR OF BUFFER 
+WORD COUNT 
START THE TRANSFER 



.•TRANSFER INITIATED. TEST FOR CORRECT STATUS. 



SETZP1 

GU 

MOVSI 

TRNN 

JRST 

MOvSI 

TRNE 

JRST 

MOVSI 

TRNE 

JRST 



ERFLG 

.CONI 

ERFLG. (1B1) 

1,20 

STCMDX 

ERFLG, (182) 

1,100 

STCMDX 

ERFL6,(1B3) 

1,775600 

STCMDX 



CLEAR ERROR FLAG FOR A CLEAN START 

DO A CONI li-JO AC1 

ANTICIPATE ERROR 

DID PCRFUL SET ? 

NO. ERROR 

ANTICIPATE PRROR 

IS SCRFUL ' "^ ? 

YES. ERROR 

ANTICIPATE ERROR 

ANY ERRORS DETECTED BY HARDWARE ? 

YES. ERROR 



;N0 ERROR SO FAR. START THE SECONDARY (BACKUP) COMMAND 



SETOM 
MOVE 
MOVE 
LSH 
I OR 



BACKUP 

1,CMD2 

2.SURF2 

2.*D8 

2,SECT2 



THIS LETS XFSTRT DO SECONDARY COMMAND 
GETS SECONDARY COMMAND 
GET SURFACE NUMBER 
POSITION THE SURFACE NUMBER 
INCLUDE SECTOR 



DFRPM 
DFRPM 



4654 

/ACC 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



034571 



m 8? 82 21^5^?^ 



MACRO X53B(1242} 19:36 12-SeD-85 Page 1-80 

NEXTST - RH20 READ/WRME NEXT TEST FOR BACKUP COMMANDS 



SEQ 0211 



HRL 



2. CYLl 

» niir->« 



.•INCLUDE CYLINDER NUilBER 



.ftiirrm jif\rvnrrr 



DFR 
DFR 

5 



DFRPM 
DFRPM 

A65A 
A655 
A656 
4657 
4658 
A659 
A660 
4661 
4662 
4663 
4664 
4665 
4666 
4667 
4668 
4669 
4670 
4671 
4672 
4673 
4674 
4675 
4676 
4677 
4678 
4679 
4680 
4681 
4682 
4683 
4684 
4685 
4686 
4687 
4688 
4689 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 

034571 504 02 00 034545* 

034572 200 03 00 030725 

034573 504 03 00 034547* 

034574 260 17 00 034550* 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-80 

NEXTST - RH20 READ/WRIlE NEXT TEST FOR BACKUP COMMANDS 



SEQ 0211 



034575 
034576 
034577 
034600 
034601 
034602 
034603 
034604 
034605 
034606 



034607 
034610 
034611 
034612 
034613 
0346U 



260 17 
205 11 
606 01 
254 00 
205 11 
606 01 
254 00 
205 11 
602 01 
254 00 



402 00 
350 00 
262 17 
262 17 

262 17 

263 17 



00 034552* 
00 020000 
00 000100 
00 034611 
00 010000 
00 000020 
00 034611 
00 004000 
00 775000 
00 034611 



00 000011 

17 imi'i 

00 000003 
00 000002 
00 000001 
00 000000 



034615 53 J 00 14 002374 

034616 350 00 14 002400 

034617 350 00 14 002376 
034620 350 00 14 002402 



DFR 
DFR 



HRL 
MOVE 
HRL 
GO 



2.CYL1 
3,BUF2A 
3,SIZE1 
XFSTRT 



INCLUDE CYLINDER NUMBER 
BUFFER ADDRESS 
INCLUDE +W0RD COUNT 
START THE TRANSFER 



.•CHECK FOR CORRECT STATUS ON SECONDARY COMMAND START UP 



60 

MOVSI 

TRNN 

JRST 

MOVSI 

TRNN 

JRST 

MOVSI 

TRNE 

JRST 

;EXIT CODE 

STCMDE: SETZM 
AOS 

STCMDX: GET 
GET 
GET 
RTN 



.CONI 

ERFLG,(1B4) 

1,100 

STCMDX 

ERFLG.(1B5) 

1,20 

STCMDX 

ERFL6.(1B6) 

1,775600 



STCMDX 



ERFLG 

-3(P) 

3 

2 

1 



DO A CONI INTO AC1 

ANTICIPATE ERROR 

IS SCRFUL SET 

NO. ERROR 

ANTICIPATE ERROR 

IS PCRFUL STILL SET 

NO. ERROR 

ANTICIPATE ERROR 

ANY HARDWARE DETECTED ERRORS 

YES. ERROR 



;N0 ERRORS 
;BUMP RETURN 
.•RESTORE THINGS 



;AND EXIT 



.•TABLE OF INSTRUCTIONS TO COUNT TYPES OF PAIRS ISSUED. INDEXED INTO BY CMD4 



NX CMC T: 



AOS 
AOS 
AOS 
AOS 

PAGE 



TOTRR(DSW) 
TOTUW(DSU) 
TOTRU(DSU) 
TOTUR(DSU) 



BUMP TOTAL READ, READS 
BUMP TOTAL WRITE, WRITES 
BUMP TOTAL READ. WRITES 
BUMP TOTAL WRITE, READS 



DFRPM 
DFRPM 



'm 



^^^llhlMk Exerciser 
MAC 12-Sep-85 17:f 



MACRO XS3B(1242) 19:36 12-SeD-85 Page 1-81 

NEXTST - RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 

;THIS SUBROUTINE IS RESPONSIBLE FOR MONITORING THE PROGRESS OF THE COMMANDS 



SEQ 0212 



DFRI 
DFRI 



DFRPM 
DFRPM 

4690 
4691 
4692 
4693 
4694 
4695 
4696 
4697 
4698 
4699 
4700 
4701 
4702 
4703 
4704 
4705 
4706 
4707 
4708 
4709 
4710 
4711 
4712 
4713 
4714 
4715 
4716 
4717 
4718 
4719 
4720 
4721 
4722 
4723 
4724 
4725 
4726 
4727 
4728 
4729 
4730 
4731 
4732 
4733 
4734 
4735 
4736 
4737 
4738 
4739 
4740 
4741 
4742 
4743 
4744 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:1^ 



034621 
034622 
034623 



034624 
034625 



034626 
034627 
034630 
034631 
034632 
034633 
034634 

034635 
034636 
034637 
034640 
034641 



034642 
034643 
034644 
034645 



034646 
034647 
034650 
034651 
034652 
034653 



261 17 00 000001 
261 17 00 000002 
261 17 00 000003 



402 00 00 000011 
201 03 00 076400 



260 17 
606 01 
254 00 
205 11 
606 01 
2v< 11 
254 00 

606 01 
254 00 
365 03 
205 11 
254 00 



00 034575* 
00 775000 
00 034635 
00 002000 
00 000100 
00 001000 
00 034722 

00 000100 
00 034642 
00 034626 
00 000400 
00 034722 



201 01 00 000410 
260 17 00 000000* 
201 03 00 076400 
254 00 00 034646 



260 17 
606 01 
254 00 
602 01 



254 
254 



% 



00 034626* 
00 000010 
00 034676 
00 775000 
00 034654 
00 034656 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-81 

NEXTST - RH20 READ/URITE NEXT TEST FOR BACKUP COMMANDS 

THIS SUBROUTINE IS RESPONSIBLE FOR MONITORING THE PROGRESS OF THE COMMANDS 
BEING EXECUTED IN NEXTST. IT WILL RETURN IF THERE IS AN ERROR OR, THE 
COMMANDS COMPLETE OR. THE DEVICE HANGS. THE COMMAND MUST BE COMPLETE BEFORE 
SECT3 OR SECT4 (THE TARGET SECTORS) COME UNDER THE HEADS OR WE KNOW THAT 
READ/WRITE NEXT IS TAKING AN EXTRA REVOLUTION. WHEN THE ERROR RETURN IS TAKEN, 
ERFLG WILL HAVE A BIT SET THAT CORRESPONDS TO AN ERROR CODE DESCRIBING THE 
FAILURE. THE ERROR CODES ARE LISTED COMPLETELY IN THE ERROR REPORTER FOR 
NEXTEST 'NEXERR'. 



SEQ 0212 



DFRI 
DFRI 



CALL SEQ: 
GO 

RTN-1 
RTN-2 



ENDCMD: 



PUT 
PUT 
PUT 



ENDCMD 



1 
2 
3 



CALL THE ROUTINE 

ERROR 

NORMAL 

.-SAVE AC'S 



.-CLEAR ERROR FLAG AN D INIT A HUNG DEVICE TIMER 



SETZM 
MOVE I 



ERFLG 
3.*D32000 



.•PROBABLY REDUNDANT WITH THE MAINLINE 
;A DROP DEAD TIMER 



.•MONITOR THE STATUS OF THE PRIMARY COMMAND AND WAIT FOR IT TO COMPLETE 



ENCMDl: GO 

TRNN 

JRST 

MOVSI 

TRNN 

MOVSI 

JRST 

ENCMD2: TRNN 
JRST 
SOJGE 
MOVSI 
JRST 



.CONI 

1,775000 

ENCMr2 

ERFLG. (1B7) 

1,100 

ERFLG. (1B8) 

ENCMDB 

1.100 
ENCMD3 
3,ENCMD1 
ERFLG. (1B9) 
ENCMDB 



DO A CONI INTO AC1 

ANY HARDWARE ERROR CONDITION YET ? 

NO. 

YES 

IS SCRFUL SET ? 

NO. GET A DIFFERENT ERROR CODE 

SCRFUL IS SET. TO EXIT CODE 

;IS FIRST COMMAND DONE DONE ? 

;YES (SCRFUL=0) 

;NU (SCRFUL=1) DECREMENT GROSS TIMER 

;HUNG DEVICE 

;T0 EXIT CODE 



.•FIRST COMMAND DONE. CLEAR DONE FLOP AND RE-INIT THE TIMER 



ENCMD3: MOVE I 
GO 

MOVE I 
JRST 



1.410 
.CONO 
3.*D32000 
ENCMDA 



;M2E + DONE CLEAR 

;CLFAR DONE. 

;Rt-iNIT TIMER FOR NEXT COMMAND 

;oO WORK ON BACKUP COMMAND 



;BUKUP COMMAND NOW U.'JDERWAY. MONITOR ITS PROGRESS FOR ERRORS AND 
.-COMPLETION BEFORE REACHING THE TARGET SECTORS (SECT3. SECT4) 



ENCMDm: 



GO 

TRNN 

JRST 

TRNE 

JRST 

JRST 



.CONI 

1.10 

ENCMA1 

1.775000 

.♦2 

ENCMAO 



;D0 A CONI INTO ACI 

;IS DONE SET ? 

;N0. 

.-HARDutARE ERRORS? 

;YES 

;N0 



DFRPM RP07/6/5/4 Exerciser 
DFRPM MAC 12-Sep-85 17:02 

4745 034654 205 11 00 QOC 



MACRO X53B(1242} 19:36 12-SeD-85 Page 1-82 

NEXTST - RH20 READ/URITE NEXT TEST FOR BACKUP COMMANDS 



SEQ 0213 



MOVSI 



ERPLG.dBIO) 



;GET AN ERROR CODE 



^ it ff ▼ /»^i«r 



DFRF 
DFRF 



DFRPM 


RP07/6/5/4 Exerciser 


MACRO J:53B(1242) 19:36 12-SeD-85 Paae 1-82 




DFRPM 


MAC 


12-Sep-85 17:02 


NEXTST 


- RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 


SEQ 


4745 


034654 


205 11 00 000200 




MOVSI 


ERFLG,(1B10) 


;GET AN ERROR CODE 




4746 
4747 
4748 
4749 
4750 


034655 


254 00 00 034722 




JRST 


EKCMDB 


;T0 EXIT CODE 








.-READ REGISTERS 


AND CHECK FOR CORRECT FINAL VALUES OF DA AND DCY 




034656 


402 00 00 000001 


ENCMAO: 


SET2M 


1 


;UANT TO READ DA REG 




4751 


034657 


260 17 00 000000* 




GO 
60 


RDRG05 


;READ DA REG 




4752 


034660 


260 17 00 000000* 




FFF 


;CBTO IS A FATAL 




4753 


034661 


260 17 00 034660* 




60 


FFF 


; PARI TV ERROR IS A FATAL 




(,75ii 


034662 


202 01 14 000014 




MOVEM 


1,R5D(DSU) 


;PUT IN CORE 




4755 


034663 


402 00 00 000001 




SETZM 


1 


;WANT TO READ DCY REG 




4756 


034664 


260 17 00 000000* 




60 


RDRG12 


;READ DCY 




4757 


034665 


260 17 00 034661* 




^0 


FFF 


;CBTO IS A FATAL 




4758 


034666 


260 17 00 034665* 




60 


FFF 


; PARITY ERROR IS FATAL 




4759 


034667 


202 01 14 000021 




MOVEM 


1,R12D(DSW) 


:SAVE DESIRED CYLINDER IN CORE 




4760 


034670 


135 01 00 042470* 




LDB 


1,CP0INT 16.R5D(DSW)-35J ;GET DA REG VALUE 




4761 


034671 


135 02 00 042471' 




LDB 


2,CP0INT 16,R12D 


(DSW),35J ;AND GET DCY DATA 




4762 


034672 


504 01 00 000002 




HRL 


1,2 


;AC1 = DCY,, DA 




4763 


034673 


312 01 00 030771 




CAME 


1,TEMC 


rIS THE FINAL VALUE OK ? 




4764 


034674 


205 11 00 000020 




MOVSI 


ERFLG,(1B13) 


;N0. GET AN ERROR CODE 




4765 
4766 
4767 


034675 


254 00 00 034722 




JRST 


ENCMDB 


;T0 EXIT CODE 








.•COMMAND NOT YET DONE. CHECK LOOK AHEAD REGISTER (LA) 




4768 
4769 
4770 






;T0 SEE 


IF WE'RE TAKING TO LONG ' 


rO COMPLETE 'HE OPERATION 




034676 


402 00 00 000001 


ENCMA1 : 


SETZM 


1 


; CLEAR ACI 




4771 


034677 


260 17 00 000000* 




GO 


RDRG07 


;READ LOOK AHEAD 




4772 


034700 


260 17 00 034666* 




GO 


FFF 


rCBTO ERROR .... FATAL 




4773 


034701 


254 00 00 034676 




JRST 


.-3 


rPARITY ERROR. RETRY 




4774 


034702 


20? 01 00 000002 




MOVEM 


1,2 


rOK. HOLD RESULTS IN AC2 




4775 


034703 


4ui 00 00 000001 




SETZM 


1 


;UISH TO READ LOOK AHEAD AGAIN 




4776 


034704 


260 17 00 034677* 




GO 


RDRG07 


;READ LOOK AHEAD FOR 2ND TIME 




4777 


034705 


260 17 00 034700* 




GO 


FFF 


;CBTO ERROR .... FATAL 




4778 


034706 


254 00 00 034703 




JRST 


.-3 


rPARITY ERROR. RETRY 




4779 


034707 


135 01 00 042472' 




LDB 


1,CP0INT 8,1,29: 


;WANT TO MAKE SURE READS ARE EQUAL 




47P0 


034710 


135 02 00 042473' 




LDB 


2,CP0INT 8,2,29J 






471 1 


034711 


312 01 00 000002 




CAME 


1.2 


•ARE THEY THE SAME. 




4782 


034712 


254 00 00 034676 




JRST 


ENCMA1 


•NO. RE-READ 




4783 


034713 


316 01 00 034373* 




CAMN 


1,SECT3 


•ARE WE TAKING TO LONG ? 




4784 


034714 


205 11 00 000100 




MOVSI 


ERFLG.dBID 


•YES. SET ERROR CODE. 




4785 


034715 


316 01 00 034377* 




CAMN 


1,SECt4 


•CHECK AGAINST 2ND TARGET SECTOR 




4786 


034716 


205 11 00 000100 




MOVSI 


ERFLG.dBID 
3,ENCMDA 


;ERROR. TAKING TO LONG. 




4787 


034717 


365 03 00 034646 




SOJGE 


;JUMP IF NOT HUNG. 




4788 


034720 


205 11 00 000040 




MOVSI 


ERFLG,(1B12) 


•SETS UP THE HUNG ERROR CODE 




4789 
4790 
4791 
4792 


034721 


254 00 00 034722 




JRST 


ENCMDB 










;EXIT CODE 








4793 


034722 


336 00 00 000011 


ENCMDB: 


SKIPN 


ERFL6 


•ANY ERRORS DETECTED SO FAR ? 




4794 


034723 


350 00 17 777775 




AOS 


-3(P) 


■NO. BUMP THE RETURN 




4795 


034724 


262 UO 00 000003 




GET 




•RESTORE AC'S 




4796 
4797 


034725 
034726 






GET 
GET 


^ 






4798 
4799 


034727 






RTN 




•EXIT 





DFRPM 
DFRPM 

4800 



RP07/6/5/4 Exerciser 
MAC 12-Sep-fi5 17:02 



MACRO X538(1242) 19:36 12-SeD-85 Page 1-83 

NEXTST - RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 

PAGE 



SEQ 0214 



DFRPM 
DFRPM 

4800 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO 31538(1242) 19:36 12-Seg-85 Page 1-83 

NEXTST - RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 

PAGE 



SEQ 0214 



DFRPM 
DFRPM 

4801 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO X53B(1242} 19:36 12-SeD-85 Page 1-84 

NEXTST - RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 

.-THIS SUBROUTINE IS THE ERROR HANDLER FOR NEXTST. IT IS CALLED ONLY WHEN 



SEQ 0215 



DFRPM 
DFRPM 

4801 
4802 
4803 
4804 
4805 
4806 
4807 
4808 
4809 
4810 
4811 
4812 
4813 
4814 
4815 
4816 
4817 
4818 
4819 
4820 
4821 
4822 
4823 
4824 
4825 
4826 
4827 
4828 
4829 
4830 
4831 
4832 
4833 
4834 
4835 
4836 
4837 
4838 
4839 
4840 
4841 
4842 
4843 
4844 
4845 
4846 
4847 
4848 
4849 
4850 
4851 

4853 
4854 
4855 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



034730 
034731 
034732 
034733 
034734 
034735 

034736 
034737 
034740 

034741 
034742 
034743 
034744 
034745 
034746 

034747 
034750 
034751 
034752 
034753 
034754 

034755 
034756 
034757 



261 17 00 000001 
261 17 00 000002 
261 17 00 000010 
030 00 00 042474- 
2uJ 01 00 034537* 
030 00 1 01 035005 

030 00 00 042501 ' 
260 17 00 000000* 
260 17 00 000000* 



030 00 
2C0 00 
260 17 
030 00 
200 00 
260 17 

030 00 
200 00 
260 17 
030 00 
200 00 
260 17 




00 042503* 
00 034542* 
00 033642* 
00 042511* 
00 034544* 
00 034743* 

00 042513* 
00 034566* 
00 034746* 
00 042511* 
00 034570* 
00 034751* 



42521 * 

34357 

34754* 



MACRO 3;53B(1242) 19:36 12-Sep-85 Page 1-84 

NEXTST - RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 

THIS SUBROUTINE IS THE ERROR HANDLER FOR NEXTST. IT IS CALLED ONLY WHEN 
AN ERROR WAS DETECTED BACK IN THE MAINLINE. THE ERRORS WERE 
DETECTED BACK IN *STCMD* AND *ENCMD*. THOSE ROUTINES SET BITS IN 'ERFLG* 
CORRESPONDING TO THE VARIOUS TYPES OF ERRORS THEY DETECTED. THIS ROUTINE 
INTERPRETS THOSE CODES (TRANSLATES BIT SETTINGS TO ERROR MESSAGES) 

BIT MEANING 

1 PCRFUL FAILED TO SET WITH PRIMARY COMMAND 

2 SCRFUL SET WITHOUT A SECONDARY COMMAND 

3 ISSUING PRIMARY COMMAND CAUSED AN ERROR 

4 ISSUING SECONDARY COMMAND FAILED TO SET SCRFUL 

5 ISSUED SECONDARY COMMAND AND FOUND PCRFUL CLEAR 

6 ISSUING SECONDARY COMMAND CAUSED AN ERROR 

7 ERROR ON PRIMARY COMMAND 

8 ERROR ON PRIMARY COMMAND 

9 DEVICE HUNG DURING PRIMARY COMMAND 

10 ERROR ON SECONDARY COMMAND 

11 BACKUP COMMAND TOOK A REVOLUTION 

12 DEVICE HUNG DURING SECONDARY COMMAND 

13 DA/DCY POINTING TO WRONG ADDR AFTER SECONDARY COMMAND 



SEQ 0215 



CALL SEQ: 
GO 
RTN 



NEXERR 



NEXERR: 



n 



PUT 

PUT 

PUT 

TEXT 

MOVE 

TEXT 

TEXT 

GO 
GO 
TEXT 



.-SAVE AC*S 



1 
2 

RGLIST 

CASCIZ/*** NEXTST ERROR DURING /] 



1.CMD4 

aNFTBLd) 

CASCIZ/ 



*t* 



UNIT 

RUNTME 

CASCIZ/ 



;GET FUNCTION 

.•PRINT CORRECT MESSAGE 



.•IDENTIFY UNIT 
.•PRINT THE RUNTIME 



1ST CMD STARTS AT SURF - /] 



MOVE 

GO 

TEXT 

MOVE 

GO 

TEXT 



O.SURFI 

POCDEC 

CASCIZ/ 

O.SECTl 

POCDEC 

CASCIZ/ 



SECT - /J 



2ND CMD STARTS AT SURF - /] 
MOVE 0. SURF 2 
GO POCDEC 
TEXT CASCIZ/ 
MOVE 0.SECT2 
GO POCDEC 
TEXT CASCIZ/ 

EACH CMD TRANSFERS /] 
HOVE O.N 
GO POCDEC 



SECT - /] 



TEXT CASCIZ/ SECTORS 6f DATA 



.•GET NUMBER OF SECTORS 
PRINT 



OFRPM RP07/6/5/4 Exercis'r 
DFRPM MAC 12-Sep-85 .7:02 

^556 03AZ$0 030 00 00 0A252$' 



MACRO X53B(1242) 19:36 12-Seo-85 Page 1-85 

NEXTST - RH20 READ/URITE NEXT TEST FOR BACKUP COMMANDS 

n 



SEQ 0216 



DFRPM 
OFRPM 

4856 

A857 

4858 

4859 

4860 

4861 

4862 

4863 

4864 

4865 

;866 

4867 

4868 

4869 

4870 

4871 

4872 

4875 

4874 

4875 

4876 

4877 

4878 

4879 

4880 

4881 

4882 

4883 

4884 

4885 

4886 

4387 

4888 

4889 

4890 

4891 

4892 

4893 

4894 

4895 

4896 

4897 

4898 

4899 

4900 

4901 

4902 

49^^ 

4W 

4905 

4906 

4907 

4908 

4909 

4910 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 .7:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-85 

NEXTST - RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 



SEQ 0216 



034760 
034761 
034762 
034763 
034764 
034765 
034766 
034767 
034770 
034771 
034772 
034773 
034774 
034775 
034776 
034777 



035000 
035001 
035002 
035003 
035004 



030 00 

200 01 

201 02 
260 17 
037 00 
607 11 
254 00 
201 10 
260 17 
200 01 
256 00 
254 00 
260 17 
260 17 
260 17 00 



00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
01 
00 
00 
00 



260 17 J 00 



042526' 

000011 

035011 

000000* 

030243 

OC0100 

034774 

412300 

000000* 

034734* 

035030 

034777 

000000* 

000000* 

000000* 

034740* 



030 00 00 042532' 
262 17 00 000010 
262 17 00 000002 

262 17 00 000001 

263 17 00 000000 



035005 000000 042534' 

035006 000000 04?536' 

035007 000000 04?S/r 
035010 000000 04t,vH' 



035011 
035012 
035013 
035014 
035015 
035016 
035017 
035020 
035021 
035022 
035023 
035024 
035025 
035026 
035027 



035030 
035031 
035032 



377760 
400030 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 

ooouoo 

000000 



000000 

777777 

042547' 

042560' 

042570' 

042600' 

042612' 

042624' 

042635' 

042635' 

042643' 

042652' 

042661 ' 

0^2670' 

042700' 



MOVE 

MOVE I 

60 

PCRL2 

TLNN 

JRST 

MOVE I 

GO 

MOVE 

XCT 

JRST 

NEXER1: 60 
60 
60 

NXEREX: 60 
TEXT 



/] 



6ET 
6ET 
6ET 
RTN 



1,ERFL6 

2,NERTBL 

TYPLIN 

ERFLG.dBID 

nexerI 

RGLioT, 412300 

DUMPS 

1,CMD4 

NRTBKD 

NXEREX 

L06ERR 

DUMPA 

L06PNT 

RUNTME 

CASCIZ/ 



R6LIST 

2 

1 



6ET ERROR CODE 

ADOR OF TABLE 

INTERPRET DATA 

A CRLF PAIR 

JUST TO SLOW ??? 

NO. OTHER PROBLEMS ALSO 

Q-RE6ISTERS FOR PRINTING 

DUMP STATUS 

6ET INDEX TELLING TYPE OF COMMAND 

COUNT THE FAILURE (BY TYPE OF OPERATION) 

TO EXIT CODE 

COUNT DRIVE ERRORS IN DSB AREA 

DUMP HARDWARE STATUS 

DUMP LOGOUT DATA 

PRINT RUNTIME 



.•RESTORE AC'S 
;AND EXIT 



.•TABLE OF FUNCTIONS PERFORMED BY THIS TEST 

NFTBL: CASCIZ7READ/READ?: 
CASCIZ7WRITE/WRITE?] 
CASCI2?READ/WRITE?3 
[ASCIZ7WRITE/READ?] 

; TABLE FOR TRANSLATING THE ERROR CODES 

NERTBL: 377760,. .'ERROR BITS 

400030.. 777777 

CASCIZ/PCRFUL FAILED TO SET WITH PRIMARY COMMAND/] 
CASCIZ/SCRFUL SET WITHOUT A SECONDARY COMMAND/: 
CASCIZ/ISSUING PRIMARY COMMAND CAUSED AN ERROR/] 
CASCIZ/ISSUIN6 SECONDARY COMMAND FAILED TO SET SCRFUL/] 
CASCIZ/ISSUED SECONDARY COMMAND AND FOUND PCRFUL CLEAR/] 
LASCIZ/ISSUIN6 SECONDARY COMMAND CAUSED AN ERROR/] 
CASCIZ/ERROR DURIN6 PRIMARY COMMAND/] 
CASCIZ/ERROR DURIN6 PRIMARY COMMAND/] 
LASCIZ/DEVICE HUN6 DURIN6 PRIMARY COMMAND/] 
CASCIZ/ERROR DURIN6 SECONDARY COMMAND/] 
CASCIZ/BACKUP COMMAND TOOK A REVOLUTION/] 
CASCIZ/DEVICE HUN6 DURIN6 SECONDARY COMMAND/] 
CASCIZ7DA/DCY POINTING TO WRONG ADDR AFTER SECONDARY CMD7] 

.•TABLE OF INSTRUCTIONS FOR COUNTING ERRORS (CLASSIFIED 3Y TYPE OPERATION) 



350 00 14 002375 
350 00 Q 14 Q024Q1 
350 00 14 002377 



NRTB1 : AOS 
AOS 
AOS 



FAILRR(DSW) 
FAILWW(DSW) 
FAILRW(DSW) 



FAILS READ.READ 
FAILS WRITE, WRITE 
FAILS READ. WRITE 



DFRPM 
DFRPM 



RP07/6/5/4 Exerciser 

12-Sep-85 17:02 



MAC 
4911 035033 



;S0 00 U 00?40^ 



MACRO X53B(1242) 

NEXTST - RH20 READ/WRITE NEX 



19:36 12-SeD-85 Page 1-86 
T TEST FOR BACKUP COMMANDS 



SEQ 0217 



AO.^ 



FAIIUR(D!;U) 



FATI .<; UftrTF.RFAD 



DFRPM 
OFRPM 

4911 
4912 
4913 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 

035033 350 00 14 002403 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-86 

NEXTST - RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 



SEQ 0217 



AOS 
PAGE 



FAILUR(DSU) 



.•FAILS WRITE, READ 



OFRPM 
OFRPM 

4QU 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO XS3B(1242) 19:36 12-SeD-85 Page 1-87 

NEXTST - RH20 READ/URITE NEXT TEST FOR BACKUP COMMANDS 

•TUTIC QnilTTMF TnFMTTFrFK FOP TUP IISFO UUTTU CilPFArFC MIV FAfl PFAR 



SEQ 0218 



I 



DFRPM 


RP07/6/5/4 Exerciser MACRO :53B(1242) 19:36 12-SeD-85 Paae 1-87 




DFRPM 


MAC 


12-Sep-85 17:02 NEXTS1 


- RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 


SEQ 


4914 






;THIS 


ROUTINE IDENTIFIES FOR THE USER. WHICH SURFACES MAY FAIL READ 




4915 






; WRITE 


NEXT IF 


THEY ARE SELECTED. HE IS NOT HOWEVER PREVENTED FROM 




4916 






; SELECTING THEM 


. THE SURFACES MAY CAUSE ERRORS IF SELECTED BECAUSE 




4917 






;Y0U ARE USING A SURFACE CONTAINING A DEFECTIVE SPOT. OR. SUFFERING 




4918 






;FR0M 


SECTOR SKEW BECAUSE OF A DEFECTIVE SPOT. THE DEFICTIVE SURFACES 




4919 






;UERE 


IDENTIFIED IN WHEN TD'S WERE READ. 1 BIT PER SURFACE IS ALLOCATED 




4920 






;IN THE CELL 'TEMD'. 




4921 














4922 






CALL 


SEQ: 






4923 








GO 


INFO 




ti92i^ 








RTN 






4925 














4926 


035034 


336 00 00 030772 ] 


INFO: 


SKIPN 


TEMD ;ANY DEFECTIVE SURFACES ? 




4927 


035035 


263 17 00 000000 




RTN 


;N0. EXIT 




4928 


035036 


261 17 00 000001 




PUT 


1 ;SAVE AC'S 




4929 


035037 


261 17 00 000002 




PUT 






4930 








TEXT 


CASCIZ/NEXTST MAY FAIL IF THE FOLLOWING SURFACE(S) ARE CHOSEN. 




4931 


035040 


030 00 00 042712' ! 


SURFACE (S): H 






4932 


035041 


200 01 00 030772 




MOVE 


1,TEMD ;6ET THE CELL 




4933 


035042 


201 02 00 035050 




MOVE I 


2.NXTSUR ;GET TABLE ADDRESS 




4934 


035043 


260 17 00 000000* 




GO 


TYPBIT .-INTERPRET THE DATA 




4935 


035044 


037 00 00 030242 




PCRL 


;A CRLF 




4936 


035045 


262 17 00 000002 




GET 


2 .-RESTORE AC'S 




4937 


035046 


262 17 00 000001 




GET 






4938 


035047 


263 17 00 000000 




RTN 


.-EXIT 




4939 














4940 
4941 
4942 






;HERE 


IS THE TRANSLATOR TABLE SET FOR A MAX OF 32. SURFACES. 




035050 


777777 777760 I 


\IXTSUF 


1: 777777, 


.777760 




4943 


035051 


000000 000017 




17 






4944 


o;. -2 


2u 16 00 00 00 00 




SIXBH 


/O./ 




4945 


03:)U53 


21 16 00 00 00 00 




SIXBIT 


/I./ 




4946 


035054 


22 16 00 00 00 00 




SIXBIT 


/2./ 




4947 


035055 


23 16 00 00 00 00 




SIXBIT 


/3./ 




4948 


035056 


24 16 00 00 00 00 




SIXBIT 


/4./ 




4949 


035057 


25 16 00 00 00 00 




SIXBIT 


/5./ 




4950 


035060 


26 16 00 00 00 00 




SIXBIT 


/6./ 




4951 


035061 


27 16 00 00 00 00 




SIXBIT 


/7./ 




4952 


035062 


30 16 00 00 00 00 




SIXBIT 


/8./ 




4953 


035063 


31 16 00 00 00 00 




SIXBIT 


/9./ 




4954 


035064 


21 20 16 00 00 00 




SIXBIT 


/10./ 




4955 


035065 


21 21 16 00 00 00 




SIXBIT 


/11./ 




4956 


035066 


21 22 16 00 00 00 




SIXBIT 


/12./ 




4957 


035067 


21 25 16 00 00 00 




SIXBIT 


/13./ 




4958 


055070 


21 24 16 00 00 00 




SIXBIT 


/U./ 




4959 


035071 


21 25 16 00 00 00 




SIXBIT 


/15./ 




4960 


035072 


21 26 16 00 00 00 




SIXBIT 


/16./ 




4961 


035073 


21 27 16 00 00 00 




SIXBIT 


/17./ 




4962 


035074 


21 30 16 00 00 00 




SIXBIT 


/18./ 




4963 


035075 


21 31 16 00 00 00 




SIXBIT 


/19./ 




4964 


035076 


22 20 16 00 00 00 




SIXBIT 


/20./ 




4965 


035077 


* 




SIXBIT 


/21./ 




4966 


035100 




SIXBIT 






4967 


035101 
035102 




SIXBIT 


/23*/ 




4968 




SIXBIT 


/24!/ 





DrRPM RP07/6/5/4 Exerciser 
DFRPM MAC 12-Sep-85 17:02 

40A9 n^«;in^ ?p ?«; ia nn nn nn 



MACRO X538(1242) 19:36 12-SeD-85 Page 1-88 

NEXTST - RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 



SEQ 0219 



RIJtRIT /?S./ 



DPRPM 
DFRPf* 


RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 


4969 
4970 
4971 
4972 
4973 
4974 
4975 
4976 
4977 


035103 

035110 
035111 


M 11 ]t 88 88 88 

22 27 16 00 00 00 
22 30 16 00 00 00 

22 31 16 00 00 00 

23 20 16 00 00 00 
23 21 16 00 00 00 







MACRO X53B(1242) 19:36 12-SeD-85 Page 1-88 

NEXTST - RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 



SEQ 0219 



SIXBIT 
SIXBIT 
SIXBIT 
SIXBIT 
SIXBIT 
SIXBIT 
SIXBIT 

PAGE 



/25./ 
/26./ 
/27./ 
/28./ 
/29./ 
/30./ 
/31./ 



.•ACCOMODATE 32. SURFACES (00-31) 



DFRPM 
DFRPM 

5511 
5512 
5513 
5514 
5515 
5516 
5517 
5518 
5519 
5520 
5521 
5522 
5523 
5524 
5525 
5526 
5527 
5528 
5529 
5530 
5531 
5532 
5533 
5534 
5535 
5536 
5537 
5538 
5539 
5540 
5541 
5542 
5543 
5544 
5545 
5546 
5547 
5548 
5549 
5550 
5551 
5552 
5553 
5554 
5555 
5556 
5557 
5558 
5559 
5560 
5561 

5563 
5564 
5565 



DFRPM 
DFRPM 

/.Q7B 



RP07/6/i. 
MAC 



Exercis 



Exerciser 
12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-SeD-85 Page 1-89 

NEXTST - RH20 READ/URITE NEXT TEST FOR BACKUP COMMANDS 

• rutc ciiDDniiTtMC DCAnc Ai I Tuc TDAri/ nccroTDTnac cno rvi i 'un i nnye cnt> 



SEQ 0220 



DFRPM 
DFRPM 



DFRPM 
DFRPM 

4978 

4979 

4980 

4981 

4982 

4983 

4984 

4985 

4986 

4987 

4988 

4989 

4990 

4991 

4992 

4993 

4994 

4995 

4996 

4997 

4998 

4999 

5000 

5001 

5002 

5003 

5004 

5005 

5006 

5007 

5008 

5009 

5010 

5011 

5012 

5013 

5014 

5015 

5016 

5017 

5018 

5019 

5020 

5021 

5022 

5023 

5024 

5025 

5026 

5027 

5028 

5029 

5030 

5031 

5032 



RP07/6/:). Exerciser 
MAC 12-Sep-85 17:02 



035112 
035113 
035114 
035115 
035116 
035117 
035120 



035121 
035122 
035123 



035124 
035125 
035126 
035127 



035130 
035131 
035132 
035133 
035134 
035135 
035136 
035137 
035140 
035141 



261 17 

261 17 

261 17 

261 17 

261 17 

261 17 

261 17 



00 000001 
00 000002 
00 000003 
00 000007 
00 000006 
00 000011 
00 030743 



402 00 Ci 030772 
201 07 00 000001 
476 00 00 000006 



350 00 00 000006 

241 07 00 nmi 

402 00 00 000011 
402 00 00 030743 



514 03 
540 03 
550 02 
242 02 
435 02 



13 O: 
00 " 



504 02 
201 01 

505 01 
260 17 
260 M 



2* 
0. -4 
00 00U006 
00 000010 
00 000377 
00 034571* 
00 000075 
00 100000 
00 034574* 
00 034105* 



035142 260 17 00 035201 

035143 326 11 Q 00 035165 

035144 200 02 00 030724 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-89 

NEXTST - RH20 READ/URITE NEXT TEST FOR BACKUP COMMANDS 

THIS SUBROUTINE READS ALL THE TRACK DESCRIPTORS FOR CYLl AND LOOKS FOR 
DEFECTS ON THOSE SURFACES. IF A PARTICULAR SURFACE HAS ANY DEFECTS, 
THIS ROUTINE FLAGS THAT FACT BY SETTING THE APPROPRIATE BIT IN CELL 
'TEMD'. BIT-0 OF TEMD CORRESPONDS TO SURF-0 ETC... THIS IS USED BY 
NEXTST IN MANUAL, VARIABLE AND DEFAULT MODE. 

THIS ROUTINE RUNS WITH NO ERROR REPORTING AND NO RETRY OPTIONS SELECTED. 
THIS ROUTINE DOES NOT LOOP. IT MERELY PLOWS AHEAD READING ALL THE TD'S 
AND RETURNS WHEN TEMD IS SET UP. IF AN ERROR IS ENCOUNTERED WHEN READING 
TD FOR A PARTICULAR SURFACE, THAT SURFACE IS ASSUMED TO BE DEFECTIVE AND 
WILL BE MARKED THAT WAY SO NEXTST WON'T USE IT. 



SEQ ^22^ 



DFRPM 
DFRPM 

5566 



CALL SEQ: 
60 
RTN 



GETTD: 



PUT 
PUT 
PUT 
PUT 
PUT 
PUT 
PUT 



GETTD 



1 
2 
3 

X 
Y 

ERFLG 
NORPT 



;INIT NECESSARY VARIABLES 



SETZM 
MOVE I 
SETOM 



TEMD 

X,1 

Y 



; ENTER THE MAIN LOOP 



6ETTD1 



AOS 
ROT 
SETZM 
SETZM 



Y 

X,-1 
ERFLG 
NORPT 



;SET UP AND READ TD INTO BUF1 

HRLZ 3,CWRTD(X1) 

HRR 3.BUF1A 

HRRZ 2,Y 

LSH 2,*D8 

lORI 2,377 

HRL 2, CYLl 

MOVEI 1,75 

HRLI 1,(1B2) 

GO XFSTRT 

GO lOWAIT 



FIDDLE: GO 



TDCHK 



;CALL 
;TEMD 



THE ROUTINE 
IS SET UP 



;SAVE THINGS ON THE STACK 



JUMPN ERFLG,GETTD3 
MOVE 2,BUF1a 



.•START WITH NO DEFECTIVE AREAS 

.-SINGLE BIT MASK (WILL BE ROTATED RIGHT) 

;A COUNTER (WILL fiE USED FOR SURFACE) 



BUMP SURFACE NUMBER 

ROTATE MASK TO NEXT SURFACE POSITION 

START WITH NO ERRORS 

ALLOW ERROR PRINTOUT 



GET * OF WORDS IN TD 

BET BUFFER ADDRESS 

USE SURFACE FROM Y 

POSITION THE SURFACE 

USE SECT-377 FOR TD RECORDS 

INCLUDE THE CYLINDER NUMBER 

COMMAND TO READ TD 

CAUSES COMMAND MODIFIER TO BE SET 

START THE TRANSFER 

WAIT TILL TRANSFER COMPLETES 

TEMPORARY 

JUMP IF THERE WAS AN ERROR 
NO ERROR. GET BUFFER ADDRESS 



DFRPM 
DFRPM 



envT 



RP07/6/5/4 Exer 
MAC 



/4 Exerciser ^^ 
12-Sep-85 17:02 



A*C1 I C 



MACRO X53B(1242) 19:36 12-SeD-85 jge 1-90 

NEXTST - RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 



SEQ 0221 



DFRPM 
DFRPM 



. ^PT rtn^T ■ mniv r\r vn 



DFRPM 
OFRPM 

5033 
5034 
5035 
5036 
5037 
5038 
5039 
50A0 
50A1 
50A2 
50A3 
50AA 
50A5 
50A6 
5047 
50A8 
50A9 
5C:;0 
5051 
5052 
5053 
505A 
5055 
5056 
5057 
5058 
5059 
5060 
5061 
5062 
5063 
506A 
5065 
5066 
5067 
5068 
5069 
5070 
5071 



RP07/6/5/A Exerciser 
MAC 12-Sep-85 17:02 



035U5 
035H6 
035147 
035150 
035151 
035152 
035153 
035154 
035155 
035156 
035157 
035160 
035161 
035162 
035163 
035164 



035166 
035167 
0351 7C 
035171 
035172 
035173 
035174 
035175 
035176 
035177 



200 01 
603 01 
254 00 
554 01 
302 01 
254 00 
550 01 
302 01 
254 00 
554 01 
302 01 
254 00 
550 01 
302 01 
254 00 
254 00 



02 000000 
00 140000 
00 035165 
02 000001 
00 140000 
00 035165 
02 000001 
00 140000 
00 035165 
02 000002 
00 140000 
00 035165 
02 000002 
00 140000 
00 035165 
00 035166 



035165 436 07 00 030772 



315 
254 
262 
262 
262 
262 
26? 
co^ 
262 
263 



06 
00 
17 
17 
17 
17 
17 
17 
17 
17 



13 
00 
00 
00 
00 
00 

^ 

00 
00 



034520* 

035124 

030743 

00001 1 

000006 

000007 

000003 

000002 

000001 

000000 



035200 037777 0^7777 



MACRO j;53B(1242) 19:36 12-Sep-85 
NEXTST - RH20 READ/WRITE NEXT TEST 



1-90 



■^PoR BACKUP COMMANDS 



SEQ 0221 



MOV. 
TLNE 
JRST 
HLRZ 
CAIE 
JRST 
HRRZ 
CAIE 
JRST 
HLRZ 
CAIE 
JRST 
HRRZ 
CAIE 
JRST 
JRST 



1,(2) 

1-(182!1B3) 

GfTTD3 

1,1(2) 

1,140000 

6ETTD3 

1,1(2) 

1,140000 

GtuOZ 

1,2(2) 

1,140000 

GETTD3 

l,2i2) 

1,140000 

GETTD3 

GETTD4 



GET FIRST WORD OF TD 

DON'T SKIP IF TD OR HO IS MOVED 

HO OR TD MOVED.. MARK AS DEFECTIVE 

GET 1ST DISP 

IS IT THE NULL PATTERN ? 

NO. MARK AS DEFECTIVE 

GET 2ND DISP 

IS IT THE NULL PATTERN ? 

NO. MARK AS DEFECTIVE 

GET 3RD DISP 

IS TI THE NULL PATTERN ? 

NO. MARK AS DEFECTIVE 

GET 4TH DISP 

IS IT THE NULL PATTERN ? 

NO. MARK AS DEFECTIVE 

NO DEFECTS OR ERRORS ON THIS SURFACE. 



.•DEFECT OR ERROR. MARK SURFACE BAD. 

GETTD3: lORM X.TEMD .-MARKS THIS SURF AS DEFECTIVE 

.-BUMP SURFACE NUMBERS AND EXIT IF DONE 



GETTD4: CAMGE 
JRST 

GETTDX: GET 
GET 
GET 
GET 
GET 
GET 
GET 
RT^ 



Y,MXSUR(X1) 

GETTDl 

NORPT 

ERFIG 

Y 

X 

3 

2 

1 



TRIED ALL SURFACES 
NOT FINISHED. LOOP 
RESTORE FROM STACK 



.•MARKS 0^r THE FIELDS OF 
TDMASK: 037777,, 037777 
PAGE 



.-AND f>..{ 
DEFECT DISPLACEMENTS FROM TRACK DESCRIPTOR 



DFRPM 
DFRPM 

5567 
5568 
5f69 
5370 
•^571 
'i572 
5573 
5574 
5575 
5576 
5577 
5578 
5579 
5580 
5581 
5582 
5583 
5584 
5585 
5586 
5587 
5588 
5589 
5590 
5591 
5592 
5593 
5594 
5595 
5596 
5597 
5598 
5599 
5600 
5601 
5602 
5603 
5604 
5605 
5606 
5607 
5608 
5609 
5610 
5611 
5612 



0209 



DrRPM 


RP07/6/5/A Exerciser 


DrRPM 


MAC 


12-Sep-85 17:02 


5072 






5073 






5074 


035201 


261 17 00 000000 


5075 


035202 


261 17 00 000001 


5076 


035203 


135 01 00 042730' 


5077 


035204 


312 01 00 035135* 


5078 


035205 


254 00 00 035211 


5079 


035206 


135 01 GO 042731' 


5080 


035207 


316 01 00 000006 


5081 


035210 


254 00 00 035227 


5082 


035211 


200 00 00 035204* 


5083 


035212 


260 17 00 034757* 


5084 


035213 


030 00 00 042732' 


5085 


035214 


200 00 00 000C06 


5086 


035215 


260 17 00 035212* 


5087 


035216 


030 00 00 042732' 


5088 


035217 


200 01 00 030724 


5089 


035220 


200 00 01 000000 


5090 


035221 


037 13 00 000000 


5091 


035222 


200 00 01 000001 


5092 


035223 


037 13 00 000000 


5093 


035224 


200 00 01 000002 


5094 


035225 


037 13 00 000000 


5095 


035226 


037 00 00 030242 


5096 


035227 


262 17 00 000001 


5097 


035230 


262 17 00 000000 


5098 


035231 


263 17 00 000000 


5099 






5100 






5101 






5102 






5103 







MACRO X53B(1242) 19:36 12-Sep-85 Page 1-91 

NEXTST - RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 

.•REPORT THE INCORRECT READING OF TD RECORDS DURING NEXTST 



■-J ^m 



D 
Dl 



TDCHK; 



TDERR: 



TDCHX; 



PUT 

PUT 

LDB 

CAME 

JRST 

LDB 

CAMN 

JRST 

MOVE 

GO 

TEXT 

MOVE 

GO 

TEXT 

MOVE 

MOVE 

PNTHW 

MOVE 

PNTHW 

MOVE 

PNTHW 

PCRL 

GET 

GET 

RTN 



XLIST 

LIST 

PAGE 




1 



.-SAVE AC'S 



1, [POINT 12,aBUFlA,17] ;GET CYLINDER # 
1,CYL1 ;IS IT CORRECT ? 
TDERR ;N0 

1, [POINT 8. aBUFIA. 27] ;6ET SURFACE 



1,Y 

TDCHX 

0.CYL1 

POCDEC 

[ASCIZ/ /] 

0,Y 

POCDEC 

[ASCIZ/ /] 

UBUFIA 

0,(1) 

0,1(1) 

0,2(1) 



1 




;IS IT CORRECT ? 
;YES 



;TAB 



"TAB 

•GET POINTER TO BUFFER 



5210 



DFRPM 
DFRPM 

5104 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO X53B(i:''2) 19:36 12-SeD-85 Page 1-92 

NEXTST - RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 



SEO 0223 



OF 
DF 



DFRPM RP07/6/5/A Exerciser 
DFRPM MAC 12-Sep-85 17:02 



510A 
5105 
5106 
5107 
5108 
5109 
5110 
5111 
5112 
5113 
51U 
5115 
5116 
5117 
5113 
5119 
5120 
5121 
5122 
5123 
5124 
5125 
5126 
5127 
5128 
5129 
5130 

5131 035232 

5132 035233 
5133 

513A 
5135 
5136 
5137 
5138 
5139 



MACRO 5:538(1242) 19:36 12-Sep-85 Page 1-92 

NEXTST - RH20 READ/WRITE NEXT TEST FOR BACKUP COMMANDS 

;* lAREA - - ROUTINE TO INIT THE MEDIA 



SEQ 0223 



COMMENT $ 



THIS ROUTINE WAS WRITTEN PRIMARILY FOR NEXTTST BUT MAY BE 
USED ANYWHERE IN THE EXERCISER. IT INITIALIZES A PORTION OF 
THE MEDIA TO ONE OF THE STANDARD PATTERNS. 



CALLING SEQ: 



MOVE 

MOVE 

MOVE 

GO 

RTN-1 

RTN-2 



3.ARG1 
2.AR62 
1 ,ARG1 
lAREA 



ARG1/PATTERN INDEX,, BUFFER ADDRESS 
H OF SECTORS TOTAL (TO INIT) 
CYL,. SURF, SECT (STARTING ADDRESS) 
CALL THE ROUTINE 
ERROR RETURN 
NORMAL RETURN 



NOTE: - - ERROR LOOPING NOT DONE WITHIN lAREA 
$ 

XLIST 
LIST 



;NOT YET WRITTEN 



350 00 17 000000 
263 17 00 000000 



lAREA: AOS (P) 
RTN 

SUBTTL SKTST1-SKTST2 SEEK TIMING TESTS 



;BUMP RETURN 
;EXIT 



XLIST 

LIST 

PAGE 



OF 
DF 



DFRPM 
DFRPM 

5H0 



RP07/6/5/4 Exerciser 
MAC " 



>/4 Exerciser 
12-Sep-85 17:02 



MACRO X53B(12«2) 19:36 12-SeD-85 Page 1-93 
SKTST1-SKTST2 SEEK TIMING TESTS 

S*; •*♦*♦*♦♦♦♦*♦♦♦*♦♦♦♦♦♦♦♦♦♦*♦♦♦*♦♦♦♦♦♦♦♦*♦**♦♦**♦♦♦♦♦♦***♦♦♦♦♦♦•♦♦*♦♦♦♦• 



SEQ 0224 



DFI 

DFI 



DFRPM 
DFRPM 

5U0 
51A1 
5U2 
5H3 
SUA 
5U5 
5U6 
5147 
5U8 
5U0 
51 5U 
5151 
5152 
5153 
515A 
5155 
5156 
5157 
5158 
5159 
5160 
5161 
5162 
5163 
51 6A 
5165 
5166 
5167 
5168 
5169 
5170 
5171 
5172 
5173 
51 7A 
5175 
5176 
5177 
5178 
5179 
5180 
5181 



RP07/6/5/A Exerciser 
MAC 12-Sep-85 17:02 



03523A 
035235 

035236 
035237 
0352A0 
0352A1 
0352A2 
0352A3 
0352AA 
0352A5 
0352A6 
0352A7 
035250 
035251 



035252 
035253 
03525A 
035255 
035256 
035257 



336 00 00 030731 
25A 00 00 0352A0 



031 00 
25A 00 

201 01 

202 01 
A 76 00 
260 17 
25A 00 
260 17 
25A 00 



00 
00 
00 
00 
00 
00 
00 
00 
00 



25A 00 00 



23: 00 

260 17 



201 01 

202 01 
A02 00 
A02 00 
A02 00 
A02 00 



00 
00 



0A2733' 

035A00 

035A00 

0307A0 

030755 

03A136* 

035A00 

03A1A0* 

0352A3 

035251 

035251 

037722 



00 mm 

00 0A2073' 
00 0A207r 
00 0A206A' 
00 0A2066' 
00 0A2075' 



MACRO X53B(12A2) 19:36 12-Sep-85 Page 1-93 
SKTST1-SKTST2 SEEK TIMING TESTS 

;* SKT3T1 — TIMING OF SINGLE CYLINDER SEEKS 



SEQ ^2lt* 



DFI 
DFI 



COMMENT $ 



ALL SINGLE CYLINDER FORWARD AND REVERSE SEEKS ARE TIMED (TWICE) 
AND THE MINIMUM. MAXIMUM, AND AVERAGE TIME IS REPORTED. 



CALLING SEQ: 

60 SKTST1 

RTN 

$ 

XLIST 

LIST 



SKTST1: SKIPN 
JRST 
TEXTF 

/] 

JRST 

SKT1G: MOVEI 
MOVEM 
SETOM 

SKT1S: GO 
JRST 
GO 

JRST 
JRST 
JRST 
GO 



VARFLG 

SKT1G 

CASCIZ/SKTST1 

SKT1X 

1.SKT1X 

1.ALTADD 

SELFLG 

SELECT 

SKT1X 

STATCK 

SKT1S 

.+2 

.+1 

TINT 



.•CALL THE ROUTINE 
.•RETURNS HERE 



;IN VARIABLE MODE ? 

:N0 

DOES NOT RUN IN VARIABLE nODE 

;GET OUT 

.-GET ALTMODE ADDRESS 

.-SETS UP ALTMODE ADDRESS 

;INIT THE SELECTION ROUTINE 

.•PICK A DRIVE 

.•TRIED ALL 

.•CHECK DRIVE STATUS FROM DSW 

; +1 NOT USEABLE OR OFF-LINE 

; +2 WRITE PROTECTED (VARIABLE MODE) 

; +3 WRITE PROTECTED (.iAN OR DEF MODE) 

; U PASSED CHECKS. INITIALIZE THE TEST. 



; CLEAR THE LOCATIONS WHERE THE INTERMEDIATE STATS ARE KEPT 

MOVEI }. 777777 ;INIT THE MIN INC TIME 

MOVEM 1.MININC# ;MIN SEEK TIME IS KEPT HERE 

SETZM MAXINC* ;MAX HERE 

SETZM AVEINC* .-AVERAGE HERE 

SETZM BADINCI .-NO. OF OUT OF RANGE RESULTS KEPT HERE 

SETZM NUMINCf .-NUMBER OF SEEKS ISSUED 
PAGE 



DFRPM 
DFRPM 

5182 



RP07/6/5/A Exergisf 
MAC 



>/A Exerciser 
12-Sep-85 17:02 



MACRO XS3B(12A2) 19:36 12-SeD-85 Page 1-9A 
SKTST1-SKTST2 SEEK TIMING TESTS 

.•FIRST WE'LL <;FFK TOWARDS CYl INDFR MAX RV TNCRFMFNTS OF ONF 



SEQ 0225 



r 

DFR 
DFR 



!12 



DFRPM 
DFRPM 

5182 
5183 
51 8A 
5185 
5186 
5187 
5188 
5189 
5190 
5191 
5192 
5193 
51 9A 
5195 
5196 
5197 
5198 
5199 
5200 
5201 
5202 
5203 
520A 
5205 
5206 
5207 
5208 
5209 
5210 
5211 
5212 
5213 
521A 
5215 
5216 
5217 
5218 
5219 
5220 
5221 
5222 
5223 
5224 
5225 
5226 
5227 
5228 
5229 
5230 
5231 
5232 
5233 
5234 
5235 
5236 



RP07/6/5/A Exerciser 
MAC 12-Sep-85 17:02 



035260 
035261 
035262 
035263 
03526A 
035265 

035266 
035267 
035270 
035271 

035272 
035273 
03527A 
035275 
035276 
035277 
035300 
035301 
035302 
035303 
035304 
035305 



035306 
035307 
035310 
035311 
035312 

035313 
035314 
035315 
035316 

035317 
035320 
035321 
035322 
035323 
035324 
035325 
035326 
035327 
035330 
035331 
03533? 
03533i 
035334 



402 00 
402 00 
350 00 
514 01 
260 17 
260 17 



00 
00 
00 
00 
00 
00 



035211* 
033114* 
035261* 
035260* 
032563* 
035141* 



332 00 00 030037 
254 00 00 035272 
260 17 00 000000* 
260 17 00 035771 



514 01 
260 17 
260 17 
260 17 



254 00 1 
254 00 



260 17 
350 00 
350 00 
200 01 
317 01 
254 00 



370 00 
3? J 00 
514 01 
260 17 
260 17 



00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
13 
00 



035262* 

035264* 

035265* 

034427* 

030740 

035263 

035403 

035263* 

035272* 

035302* 

034233* 

035263 



00 035301* 
00 035303* 
00 035307* 
00 035273* 
00 035274* 



332 00 00 030037 
254 00 00 035317 
260 17 00 035270* 
260 17 00 035771 



514 01 
260 17 
260 17 
260 17 



254 00 1 
254 00 



260 17 
370 00 
370 00 
200 " 
131 



in 88 8 

254 00 



00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 



035306* 

035311* 

035312* 

035275* 

030740 

035310 

035403 

035317* 

035310* 

035326* 




MACRO X53B(1242) 19;36 12-Sep-85 Page 1-94 
SKTST1-S)(TST2 SEEK TIMING TESTS 

.•FIRST WE'LL SEEK TOWARDS CYLINDER MAX BY INCREMENTS OF ONE 



SEQ 0225 



OFF 
OFF 



SKT1ST: SETZM 
SETZM 
AOS 

SKT1A: HRLZ 
GO 
GO 

SKIPE 
JRST 
GO 
GO 

HRLZ 

GO 

GO 

GO 

JRST 

JRST 

GO 

AOS 

AOS 

MOVE 

CAM6 

JRST 



CYLl 

CYL2 

CYL2 

1,CYL1 

.SEEK 

lOWAIT 

USER 
.+3 
DELAY 
TIMEON 

1.CYL2 

.SEEK 

lOWAIT 

BRANCH 

aALTADD 

SKT1A 

INC80X 

CYLl 

CYL2 

1,CYL2 

1,FCYCE(X1) 

SKTIA 



SAVE THE STARTING CYL ADDRESS HERE 

SAVE THE DESTINATION CYL ADDRESS HERE 

FIRST SEEK IS FROM CYL TO CYL 1 

GET THE STARTING CYLINDER ADR FOR .SEEK 

START THE SEEK 

WAIT FOR THE I/O TO COMPLETE 

IN USER MODE ? 
YES. SKIP DELAY AND TIMING 
ABOUT A 16 MS DELAY 
ALLOW TIMING TO BEGIN 

GET THE DESTINATION CYL ADDRESS 

START THE SEEK 

WAIT FOR COMPLETION 

CALL LOOP ROUTINE 

ALTMODE STRUCK 

LOOP 

INTERPRET THE RESULT 

BUMP CYL ADDRESSES 

GET IT 

ARE WE DONE ? 

NO 



;NOW WE'RE GOING TO REVERSE DIRECTIONS AND SEEK TOWARDS CYL 



SKT1B: 



SOS 

SOS 

HRLZ 

GO 

GO 

SKIPE 
JRST 
GO 
GO 

HRLZ 

GO 

60 

GO 

JRST 

JRST 

GO 

SOS 

SOS 

MOVE 

SKI PL 

JRST 

SOSLE 

JRST 



CYLl 
CYL2 
1,CYL2 
• SEEK 
lOWAIT 

USER 
.+3 

DELAY 
TIMEON 

1,CYL1 

.SEEK 

lOWAIT 

BRANCH 

aALTADD 

SKT1B 

INCBOX 

CYLl 

CYL2 

1.CYL1 

SKT1B 

TSTITR 

SKT1ST 



FIRST BACKWARD SEEK FROM MAXCYL 

TO MAXCYL-1 

GET THE STARTING DISK ADR FOR THE SEEK 

START THE SEEK 

WAIT FOR I/O TO COMPLETE 

IN USER MODE ? 
YES. SKIP DELAY AND TIMING 
ABOUT A 16 MS DELAY 
ALLOW TIMING TO BEGIN 

GET THE DESTINATION DISK ADDRESS 

START THE SEEK 

WAIT FOR COMPLETION 

CALL LOOP ROUT'NE 

ALTMODE STRUCK 

LOOP 

INTERPRET THE RESULT 

DECR CYL ADDRESSES 

GET IT 

ARE WE DONE ? 

NO 

SKIP IF ITERATIONS DONE 

MORE PASSES OVER THE DISK 



13 



DFRPM 
DFRPM 

5237 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MAf J 1538(1242) 19:36 12-SeD-85 Page 1-95 
SKTbT1-SKTST2 SEEK TIMING TESTS 

jRFPORT THF TFMFS 



SEQ 0226 



DFR 
DFR 



I 



13 



DFRPM 
DFRPM 

5237 
5238 
5239 
52A0 
52A1 
5242 
5243 
5244 
5245 
5246 
5247 
5248 
5249 
5250 
5251 
5252 
5253 
5254 
5255 
5256 
5257 
5258 
5259 
5260 
5261 
5262 
5263 
5264 
5265 
5266 
5267 
5268 
5269 
5270 
5271 
5272 
5273 
5274 
5275 
5276 
5277 
5278 
5279 
5280 
5281 
5282 
5283 
5284 
5285 
5286 
5287 
5288 
5289 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



035335 
035336 
035337 
035340 
035341 
035342 
035343 
035344 
035345 

035346 
035347 
035350 
035351 

035352 
035353 
035354 
035355 
035356 
035357 

035360 
035361 
035362 
035363 



332 00 
254 00 
037 00 
260 17 
260 17 
037 00 
200 00 
260 17 
030 00 



00 030037 
00 035377 
00 030242 
00 000000* 
00 034777* 
00 030242 
00 042075' 
00 000000* 
00 042744* 



030 00 00 042754' 
200 00 00 042073' 
200 01 00 035402 
260 17 00 036044 



030 00 
200 00 
200 01 
230 00 
200 01 
260 17 



00 042764' 
00 042064' 
00 042075' 
00 000001 
00 035402 
00 036044 



030 00 00 042775' 
200 00 00 042071 ' 
200 01 00 035402 
260 17 00 036044 



035364 030 00 00 043006' 



035365 
035366 
035367 
035370 
035371 
035372 
035373 
035374 
035375 



336 00 
254 00 
030 00 
200 00 
260 17 
030 00 
200 00 
231 00 
260 17 



00 042066' 
00 



035377 
00 043010' 
00 042066' 
00 035344* 
00 043013' 
. 13 000000* 
00 001750 
00 035371* 



035376 030 00 00 043006' 



035377 
035400 
035401 



254 00 
260 17 
263 17 



00 035243 
00 036002 
00 000000 



035402 000002 001750 



MACRO J!53B(1242) 19:36 12-SeD-85 Page 1-95 
SKTST1-SKTST2 SEEK TIMING TESTS 



SEQ 0226 



DFR 
DFR 



.•REPORT THE TIMES 



SKIRPT: SKIPE 
JRST 
PCRL 
GO 
GO 
PCRL 
MOVE 
GO 
TEXT 
TEXT 

MINIMUM SINGLE 
MOVE 
MOVE 
GO 
TEXT 

AVERAGE SINGLE 
MOVE 
MOVE 
IDIV 
MOVE 
GO 
TEXT 

MAXIMUM SINGLE 
MOVE 
MOVE 
60 
TEXT 

/] 

SKIPN 

JRST 

TEXT 

MOVE 

60 

TEXT 

MOVE 

IDIVI 

GO 

TEXT 



USER 
SKT1EX 

.NAME 
RUNTME 

0,NUMINC 

PSDN 

[ASCIZ/ 

CASCI2/ 
CYLINDER 

MININC 

USKTPNT 

PFDN 

CASCIZ/ 
CYLINDER 

AVEINC 

1,NUMINC 

0.1 

I.SKTPNT 

PFDN 

CASCIZ/ 
CYLINDER 

MAXINC 

I.SKTPNT 

PFDN 

CASCIZ/ 



.-USER MODE ? 

;YES, DON'T REPORT ANY TIMES 
;A BLANK LINE 
.•IDENTIFY TEST ETC 
.•REPORT RUNTIME 
;T0 NEXT LINE 

.-GET NUMBER OF SEEKS THIS TIME 
.•PRINT IN DECIMAL 
SINGLE CYLINDER SEEKS WERE MEASURED/3 

SEEK TIME = /3 

.•PRINT TWO DEC PLACES 

MS 

SEEK TIME = n 

;GET NUMBER OF SEEKS 
.•COMPUTE THE AVERAGE 



MS 

SEEK TIME = /] 



MS 



BADINC .-WERE THERE ANY OUT OF RANGE RESULTS 

SKT1EX ;N0 

CASCIZ/THERE WER§ /3 

BADINC .-GET THE NO. 

PSDN /PRINT IT 

CASCIZ/ SINGLE CYLINDER SEEKS ABOVE THE MAX OF /] 

O.MXSCTM(XI) ;6ET MAX 

0.*D1000 /CONVERT US TO MS 

PSDN /PRINT IN DECIMAL 

CASCIZ/ MS 



SKT1EX: JRST SKTiS 
SKT1X: GO TIMEOF 
RTN 

SKTPNT: 2..*D1000 



PAGE 



/DONE. SELECT THE NEXT DRIVE. 
/CLEAR TIMING SCHEME 



/CAUSES PFDN ROUTINE TO PRINT 
/TWO DECIMAL PLACES 
/TWO DECIMAL PLACES 



14 



DFRPM RP07/6/5/4 Exerciser 
DFRPM MAC 12-Sep-85 17:02 

coon r\XKi.f\t ifi t\f\ n t\r\ r\rt\t\rt 



MACRO XS3B(1242) 19:36 12-SeD-85 Page 1-96 
SKTST1-SKTST2 SEEK TIMING TESTS 



SEQ 0227 



DFRI 
DFRI 



. iiccD Mnrtc o 



DFRPM 
DFRPM 

5290 

5291 

5292 

5293 

529A 

5295 

5296 

5297 

5298 

5299 

5300 

5301 

5302 

5303 

530A 

5305 

5306 

5307 

5308 

5309 

5310 

5311 

5312 

5313 

53U 

5315 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO J[53B(1242) 19:36 12-SeD-85 Page 1-96 
SKTST1-SKTST2 SEEK TIMING TESTS 



SEQ 0227 



DFRI 
DFRI 



035403 332 00 00 030037 

035A0A 25A 00 00 035426 

035A05 261 17 00 000000 

035406 261 17 00 000001 



035407 
035410 
035411 
035412 
035413 
035414 
035415 
035416 
035417 
035420 
035421 
035422 
035423 



350 00 
350 00 
120 00 
274 01 
315 01 
202 01 
313 01 
202 01 
272 01 
317 01 
254 00 
350 00 
350 00 



14 002404 
00 042075* 
00 036040 
13 035620 
00 042073' 
00 042073' 
00 042071' 
00 042071' 
00 042064' 

13 035373* 
00 035424 
00 042066' 

14 002405 



035424 262 17 00 000001 

035425 262 17 00 000000 

035426 263 17 00 000000 



INCBOX: 



SKIPE 
JRST 
PUT 
PUT 

AGS 

AGS 

DMOVE 

SUB 

CAJIGE 

MGVEM 

CAMLE 

MGVEM 

ADDM 

CAMG 

JRST 

AOS 

AGS 



GET 

GET 

INCBXX: RTN 

XLIST 

LIST 

PAGt 



USER 
INCBXX 

1 

INCTOT(DSW) 

NUMINC 

O.IOTIME 

1,SKADJ(X1) 

1,MININC 

1,MININC 

1,MAXINC 

1,MAXINC 

1,AVEINC 

I.MXSCTM(XI) 

.+3 

BAD INC 

INCBADCDSU) 

1 




USER MODE ? 

YES- WE DON'T TIME IN USER MODE 

SAVE THE AC'S 



RUNNING SUM IN DSB AREA 

LOCAL TOTAL FOR THIS TEST 

GET THE TIME FOR THE LAST EVENT 

ADJUSTMENT NESSARY FOR SOME DRIVES 

IS IT A NEW MIN INCREMENTAL TIME ? 

YES 

IS IT A NEW MAX ? 

YES 

ADD IT TO THE CUMULATIVE TIME 

IS IT OUT OF RANGE ? 

NO 

YES, COUNT IT LOCALLY 

AND RUNNING TOTAL IN DSB AREA 



.-RESTORE THE AC'S 



DFRPM 
DFRPM 



Cllil 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-SeD-85 Page 1-97 
SKTST1-SKTST2 SEEK TIMING TESTS 



SEO 0228 



DFRF 
DFRF 



DFRPM 


RP07/6/5/4 Exerciser 


MACRO X53B(1242) 19:36 12-! 


5ep- 
TES 


B5 Page 1-97 




DFRPM 


MAC 


12-Sep-85 17:02 


SKTST1- 


•SKTST2 


SEEK TIMING 


JS, 


SEC 


5316 






S*; ********************************************************************** 




5317 






;* SKTST2 — TIMING OF ALL 


POSSIBLE SEEK LENGTHS 




5318 






S*; ********************************************************************** 




5319 


















5320 
5321 






COMMENT S 


















ALL LENGTH FORWARD 


AND 


REVERSE SEEKS ARE TIMED (TWICE) 




532A 
5325 








AND THE 


MINIMUM, MAXIMUM, AND AVERAGE TIME IS REPORTED. 










CALLING 


SEQ: 








5326 








GO 


SKTST2 




;CALL THE ROUTINE 




5327 








RTN 






.•RETURNS HERE 




5328 








$ 










5329 








XLIST 










5330 
5331 








LIST 










5332 


035427 


336 00 00 030731 


SKTST2: 


SKIPN 


VARFLG 




;ARE WE IN VARIABLE MODE ? 




5333 


035430 


254 00 00 035433 




JRST 


SKT2G 




:N0. CONTINUE 




533A 








TEXTF 


CASCIZ/SKTST2 


- DOES NOT RUN IN VARIABLE MODE 




5335 


035431 


031 00 00 043024' 


/] 












5336 


035432 


254 00 00 035572 




JRST 


SKT2X 






•GET OUT 




5337 


035433 


201 01 00 035572 


SKT2G: 


MOVE I 


1,SKT2X 






•GET ALTMODE ADDRESS 




5338 


035434 


202 01 00 030740 




MOVEM 


1,ALTADD 
SELFLG 






•SETS UP ALTMODE ADDRESS 




5339 


035435 


476 00 00 030755 




SETOM 






;INIT THE SELECTION ROUTINE 




5340 


035436 


260 17 00 035243* 


SKT2S: 


60 


SELECT 






;PICK A DEVICE 




5341 


035437 


254 00 00 035572 




JRST 


SKT2X 






; TRIED ALL 




5342 


035440 


260 17 00 035245* 




GO 


STATCK 






•CHECK DRIVE STATUS FROM DSW 




5343 


035441 


254 00 00 035436 




JRST 


SKT2S 






• +1 NOT USEABLE OR OFF-LINE 




5344 


035442 


254 00 00 035444 




JRST 


.+2 






■ +2 WRITE PROTECTED (VARIABLE MODE) 




fl^5 


035443 


254 00 00 035444 




^" 


.+1 






• +3 WRITE PROTECTED (MAN OR DEF MODE) 




5346 
5347 

5350 


035444 


2oJ 17 00 037722 




TINT 






• +4 PASSED CHECKS. INITIALIZE THE TEST. 








; CLEAR 


THE LOCATIONS WHERE 


THE 


INTERMEDIATE STATS ARE KEPT 




035445 


201 01 00 mm 




MOVE I 


}, 777777 




;INIT THE MIN TIME 




5351 


035446 


202 01 00 042074' 




MOVEM 


1 ,MINSEK# 




;MIN SEEK TIME IS KEPT HERE 




5352 


035447 


402 00 00 042072' 




SET2M 


mAxsek# 




:MAX HERE 




ll|3 


035450 


402 8o 00 Stior' 




SETZM 


AVESEKI 




.•AVERAGE HERE 




5354 


035451 




SETZM 


BADSEK# 




.•COUNT THE OUT OF RANGE TIMES HERE 




5355 


035452 


402 00 00 0420;.' 




SETZM 


NUMSEKI 




: NUMBER OF SEEKS TOTAL 




5356 






PAGE 















DFRPM 
DFRW* 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-SeD-85 Page 1-98 
SKTST1-SKTST2 SEEK TIMING TESTS 

• CTDCT UC*M CCCtf TnUAOnC rVI tUM:D MAV 



SEQ 0229 



DFRPM 
DFRPP 

535V 

5358 

5359 

5360 

5361 

5362 

5363 

5364 

5365 

5366 

5367 

5368 

5369 

5370 

5371 

5372 

5373 

5374 

5375 

5376 

5377 

5378 

5379 

5380 

5381 

5382 

5383 

5384 

5385 

5386 

5387 

5388 

5389 

5390 

5391 

5392 

5393 

5394 

5395 

5396 

5397 

5398 

5399 

5400 

5401 

5402 

5403 

5404 

5405 

5406 

5407 

5408 

5409 

5410 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



035453 
035454 
035455 
035456 
035457 

035460 
035461 
035462 
035463 

035464 
035465 
035466 
035467 
035470 
035471 
035472 
035473 
035474 
035475 
035476 



035477 
035500 
035501 
035502 
03';503 
C ' 04 
0. j05 

035506 
035507 
035510 
035511 

035512 
035513 
035514 
035515 
035516 
035517 
035520 
035521 
035522 
035523 
035524 
035525 
035526 



402 00 GO 035330* 
350 00 00 035453* 
402 00 00 000001 
260 17 00 035320* 
260 17 00 035321* 



332 00 
254 00 
260 17 
260 17 

514 01 
260 17 
260 17 
260 17 
254 00 
254 00 
260 17 
350 00 
200 01 
317 01 
254 00 



00 030037 
00 035464 
00 035315* 
00 035771 



200 01 
202 01 
27'^ 01 
c\)l 01 
514 01 
260 17 
260 17 



00 035454* 
00 035456* 
00 035457* 
00 035322* 
00 030740 
00 035455 
00 035574 
00 035464* 
00 035473* 
13 035304* 
00 035455 



13 035475* 
00 035327* 
00 000001 
00 035474* 
00 035500* 
00 035465* 
00 035466* 



332 00 00 030037 
254 00 00 035512 
260 17 00 035462* 
260 17 00 035771 



514 01 
260 17 
260 17 
260 17 
254 00 
254 00 
260 17 
370 00 
200 01 
331 00 
254 00 
373 00 
254 00 



00 035502* 
00 035504* 
00 035505* 
00 035467* 
00 030740 
00 035503 
00 035574 
00 035512* 
00 035521* 
QQQQ01 

iQ735 
;5453 




MACRO X53B(1242) 19:36 12-Sep-85 Page 1-98 
SKTST1-SKTST2 SEEK TIMING TESTS 

.•FIRST WE'LL SEEK TOWARDS CYLINDER MAX 

SKT2ST: 

SKT2A: 



SEQ 0229 



SKT2B: 



PAGE 



SETZM 


CYL1 


■SAVE DESTINATION CYL HERE 


AOS 


CYL1 


■FIRST SEEK IS TO CYL 1 


SETZM 


1 


■TIME SEEKS STARTING FROM CYL 


GO 


.SEEK 


•START THE SEEK 


GO 


lOWAIT 


■WAIT FOR COMPLETION 


SKIPE 


USER 


■IN USER MODE ? 


JRST 


.+3 


■YES. SKIP DELAY AND TIMING 


60 


DELAY 


■ABOUT A 16 MS DELAY 


GO 


TIMEON 


■ALLOW TIMING TO BEGIN 


HRLZ 


1,CYL1 


■GET THE ARGUMENT FOR .SEEK 


GO 


.SEEK 


START THE SEEK 


GO 


lOWAIT 


■WAIT FOR THE I/O TO COMPLETE 


60 


BRANCH 


■CALL LOOP ROUTINE 


JRST 


aALTADD 


•ALTMODE STRUCK 


JRST 


SKT2A 


■LOOP 


GO 


AVEBOX 


■INTERPRET THE RESULT 


AOS 


CYL1 


■BUMP CYL ADDRESS 


MOVE 


1,CYL1 


■GET IT 


CAMG 


I.FCYCE(XI) 


■ARE WE DONE ? 


JRST 


SKT2A 


•NO 


RE GONNA REVERSE DIRECTIONS AND SEEK TOWARDS CYL 


MOVE 


1,FCYCE(X1) 


■GET CYL MAX 


MOVEM 


1,CYL2 


■AND SAVE IT HERE 


SUBI 


U 


■FIRST BACKWARD SEEK 


MOVEM 


1,CYL1 


;IS 1 BACK FROM LAST 


HRLZ 


1,CYL2 


;ALL SEEKS START FROM CYL MAX 


GO 


.SEEK 


;START THE SEEK 


60 


lOWAIT 


■WAIT FOR COMPLETION 


SKIPE 


USER 


■IN USER MODE ? 


JRST 


.+3 


■YES. SKIP DELAY AND TIMING 


GO 


DELAY 


■ABOUT A 16 MS DELAY 


GO 


TIMEON 


■ALLOW TIMING TO BEGIN 


HRLZ 


1,CYL1 


■GET THE ARG 


!0 


.SEEK 


•START THE SEEK 


18 


lOWAIT 


•WAIT FOR I/O TO COMPLETE 


BRANCH 


•CALL LOOP ROUTINE 


JRST 


aALTADD 


•ALTMODE STRUCK 


JRST 


SKT2B 


•LOOP 


s8s 


AVEBOX 


•INTERPRET THE RESULT 


CYL1 


•DECR CYL ADDRESS 


MOVE 


1.CYL1 


GET U 


SKIPL 


1 


ARE WE DONE ? 


JRST 


SKT2B 


NO 


SOSLE 


TSTITR 
SKT2ST 


ITERATION COUNT DECREMENT 


JRST 


NOT DONE. SWEEP OVER DISK AGAIN 



DFRPM RP07/6/5/4 Exerciser 
DFRPM MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-SeD-85 Page 1-99 
SKTST1-SKTST2 SEEK TIMING TESTS 



SEO 0230 



C/ 1i 



.Bcnonr riic rtiirr 



DFRPM 


RP07/6/5/4 Exerciser 


DFRPM 


MAC 


12-Sep-85 17:02 


5411 






5412 






5413 


035527 


332 00 00 030037 


5414 


035530 


254 00 00 035571 


5415 


035531 


037 00 00 030242 


5416 


035532 


260 17 00 035340* 


5417 


035533 


260 17 00 035341* 


5418 


035534 


037 00 00 030242 


5419 


035535 


200 00 00 042076' 


5420 


035536 


260 17 00 035375* 


5421 
5422 
5423 


035537 


030 00 00 043035' 


035540 


030 00 00 043043' 


5424 


035541 


200 00 00 042074' 


5425 


035542 


200 01 00 035402 


5426 


035543 


260 17 00 036044 


5427 






5428 


035544 


030 00 00 043050' 


5429 


035545 


200 00 00 042065' 


5430 


035546 


200 01 00 042076' 


5431 


035547 


230 00 00 000001 


5432 


035550 


200 01 00 035402 


5433 


035551 


260 17 00 036044 


5434 






5435 


035552 


030 00 00 043056' 


5436 


035553 


200 00 00 042072' 


5437 


035554 


200 02 00 035402 


5438 


035555 


260 17 00 036044 


5439 






5440 


035556 


030 00 00 043006' 


5441 


035557 


33o 00 00 042067' 


5442 


035560 


254 00 00 035571 


5443 


035561 


030 00 00 043010' 


5444 


035562 


200 00 00 042067' 


5445 


035563 


260 17 00 035536* 


5446 


035564 


030 00 00 043064' 


5447 


035565 


200 00 13 000000* 


5448 


035566 


231 00 00 001750 


5449 


035567 


260 17 00 035563* 


5450 






5451 


035570 


030 00 00 043006' 


5452 






5453 


035571 


254 00 )^00 035436 


5454 


035572 


260 17 ) 00 036002 


5455 
5456 
5457 


035573 


263 17 00 000000 







MACRO 3:536(1242) 19:36 12-Sep-85 Page 1-99 
SKTST1-SKTST2 SEEK TIMING TESTS 



SEQ 0230 



.•REPORT THE TIMES 



SK2RPT: 



SKIPE 

JRST 

PCRL 

GO 

GO 

PCRL 

MOVE 

GO 

TEXT 

TEXT 



USER 
SKT2EX 

.NAME 
RUNTME 



O.NUMSEK 

PSDN 

CASCIZ/ SEEK 

CASCIZ/ 
MINIMUM SEEK TIME = /D 
MOVE MINSEK 
MOVE 1,SKTPNT 
60 PFDN 
TEXT CASCIZ/ MS 
AVERAGE SEEK TIME = H 
MOVE AVESEK 
MOVE 1 ,NUMSEK 
IDIV 0,1 
MOVE KSKTPNT 
GO PFDN 
TEXT CASCIZ/ MS 
SEEK TIME = n 
MOVE MAXSEK 
MOVE 2,SKTPNT 
GO PFDN 
TEXT CASCIZ/ MS 



;USER MODE ? 

YES, WE DON'T TIME IN USER MODE 
;A BLANK LINE 
;NAME OF TEST AND RH, ETC 
;AND RUNTIME 

TO NEXT LINE 

:GET NUMBER OF SEEKS MEASURED 
jPRINT IT 
LENGTHS WERE MEASURED/] 



; SCALE BY A THOU AND PRINT TWO DEC PLACES 



;GET NUMBER OF SEEKS ISSUED 
.•COMPUTE THE AVERAGE 



MAXIMUM 



/: 



n 



SKIPN BADSEK 

JRST SKT2EX 

TEXT CASCIZ/THERE 

MOVE BADSEK 

GO PSDN 

TEXT CASCIZ/ SEEK 

MOVE O.MXSKTM(Xl) 

IDIVI 0.*D1000 

GO PSDN 

TEXT CASCIZ/ MS 



SKT2EX: JRST SKT2S 
SKT2X: GO TIMEOF 
RTN 

PAGE 



.•WERE THERE ANY OUT OF RANGE TIMES 

;N0 
WERf /] 

.•GET THE NO. 

.•PRINT \1 
LENGTHS ABOVE THE MAX OF /: 

;GET MAX 

.•CONVRT US TO MS 

.•PRINT MAX 



.•DONE, GET NEXT DEVICE. 
.•CLEAR THE TIMING SCHEME 



DFRPM RP07/6/5/4 Exer^ist 
DFRPM MAC "" 



>/4 Exerciser 
12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-SeD-85 Page 1-100 
SKTST1-SKTST2 SEEK TIMING TESTS 



SEQ 0231 



DFRPM 


RP07/6/5/4 Exerciser MACRO J:53B(1242) 19:36 12-SeD-85 Paae 1-100 


DFRPM 


MAC 


12-Sep-85 17:02 J 


)KTST1-SKTST2 


SEEK TIMING 


TESTS SE( 


5458 


035574 


332 00 00 030037 AVEBOX: SKIPE 


USER 


.-USER MODE ? 


5459 


035575 


254 00 00 035617 


JRST 


AVEBXX 


;YES 


5460 


035576 


261 17 00 000000 


PUT 





.-SAVE THE AC'S 


5461 


035577 


261 17 00 000001 


PUT 


1 




1^62 


035600 


350 00 14 002406 


AOS 


SEKTOT(DSW) 




^RUNNING TOTAL KEPT IN THE DSB AREA 


5463 


035601 


350 00 00 042076* 


AOS 


NUMSEK 




;A LOCAL COUNTER FOR THIS TEST 


5464 


035602 


120 00 00 036040 


DMOVE 


OJOTIME 




r6ET THE TIME FOR THE LAST EVENT 


5465 


035603 


274 01 


13 035620 


SUB 


1,SKADJ(X1) 




;ADJUSTMENT NESSARY FOR SOME DRIVES 


5466 


035604 


315 01 


00 042074' 


CAMGE 


1,MINSEK 




;IS IT A NEW MIN TIME ? 


5467 


035605 


202 01 


00 042074' 


MOVEM 


1,MINSEK 




;YES 


5468 


035606 


313 01 


00 042072' 


CAMLE 


1,MAXSEK 




;IS IT A NEW MAX ? 


5469 


035607 


202 01 


00 042072' 


MOVEM 


1,MAXSEK 




;YES 


5470 


035610 


272 01 


00 042065' 


ADDM 


1,AVESEK 




;ADD IT TO THE CUMULATIVE TIME 


5471 


035611 


317 01 


13 035565* 


CAM6 


l.MXSKTM(Xl) 


;IS TIME OUT OF RANGE 


5472 


035612 


254 00 00 035615 


JRST 


.+3 




;N0 


5473 


035613 


350 00 14 002407 


AOS 


SEKBAD(DSU} 




;A RUNNING TOTAL IN DSB AREA 


5474 


035614 


350 00 00 042067' 


AOS 


U.DSEK 




;YES, COUNT IT. 


5475 


035615 


262 17 00 000001 


GET 


1 




: RESTORE THE AC'S 


5476 


035616 


262 17 00 000000 


GET 







5477 


035617 


263 17 00 000000 AVEBXX: RTN 






5478 














5479 














5480 














5481 








•Ta'BLE SPECi 


S AMOUNT TO BE SUBTRACTED (IN US) FROM EACH SEEK TO 


5482 
5483 
5484 








^ACCOUNT FOR PROGRAM PERFORMANCE AND DRIVE HARDWARE OPERATION DURING SEEKS 








•THE NUWER OF 


MICROSECONDS 


SUBTRACTED OUT FOR THE PROGRAM ASSUMES 


5485 








;THAT WE AVERAGE ABOUT 2.5 


US PER PDP-10 INSTRUCTION. THIS ADJUSTMENT 


5486 








^ACCOUNTS FOR 


THE OVERHEAD 


IN THE TIME THE SEEK COMPLETES UNTIL THE 


5487 








^SOFTWARE ACTUALLY GETS AROUND TO READING THE TIME BASE .... 


5488 








; APPROX 5 INSTRUCTIONS IN 


■7MST0P" 


5489 








', APPROX 4 INSTRUCTIONS IN 


1»HSER" 


5490 
5491 
5492 
5493 
5494 








; APPROX 8 INSTRUCTIONS IN 


•.CONI" 








: TOTAL 17 INSTRUCTIONS X (2.5US) = 42.5 US OF PGM OVERHEAD .... 








•THE PROGRAM OVERHEAD IS SO 


SMALL IN RELATION TO THE TIMES WE ARE TRYING 


5495 
5496 
5497 








;T0 MEASURE, THIS ADJUSTMENT FACTOR IS PROBABLY INSIGNIFICANT TO THE TESTS. 














5498 


035620 


000000 


000052 J 


5KADJ : "042 






•RP04 


5499 


035621 


000000 


000052 


•D42 






-RP06 


5500 


035622 


000000 


000000 


•DO 






■SPARE 


5501 


035623 


000000 


000052 


•D42 






'RP07 (600 MB) 


5502 


035624 






*D42 






■RM03 


5503 


035625 


880000 


IE 


•DO 






•SPARE 


5504 


035626 


•D42 






•RP2Q (T0PS1Q) 
•RP20 (TOPS20) 


5505 


035627 


000000 


•D42 






5506 














5507 






1 


5UBTTL SKTST3 


- TIMES SEEKS BETWEEN ANY 2 CYLINDERS 


5508 








XLIST 






5509 








.1ST 






5510 








PAGE 


• 





DFRPM 
DFRPM 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO X538(1242} 19:36 12-Sep-85 Page 1-101 
SKTST3 - TIMES SEEKS BETWEEN ANY 2 CYLINDERS 



SEQ 0232 



r 



I 



DFRPM 
OFRPM 

5511 

5512 

5513 

55U 

5515 

5516 

5517 

5518 

5519 

5520 

5521 

5522 

5523 

552A 

5525 

5526 

5527 

5528 

5529 

5530 

5531 

5532 

5533 

553A 

5535 

5536 

5537 

5538 

5539 

55A0 

5541 

55A2 

55A3 

554A 

5545 

5546 

5547 

5548 

5549 

5550 

5551 

5552 

5553 

5554 

5555 

5556 

5557 

5558 

5559 

5560 

5561 

l|62 

5563 

5564 

5565 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



035630 
035631 

035632 
035633 
035634 
035635 
035636 
035637 
035640 
035641 
035642 
035643 
035644 
035645 



035646 
035647 
035650 
035651 
035652 
035653 



035654 
035655 



035656 
035657 
035660 
035661 
035662 



332 00 00 030731 
254 00 00 035634 



031 00 
263 17 

201 01 

202 01 
476 00 
260 17 
254 00 
260 17 
254 00 
?54 00 
2d ■ 00 
260 17 



00 043073' 
00 000000 
00 035705 
00 030740 
00 030755 
00 035436H 
00 035705 
00 035440* 
00 035637 
00 035645 
00 035645 
00 037722 



201 01 00 035522* 
402 00 00 000002 
260 17 00 034456* 
201 01 00 035503* 
402 00 00 000002 
260 17 00 035650* 



260 17 00 035725 
202 00 00 030735 



201 01 

202 01 
402 
402 
402 



00 nnii 

00 042074- 
^\^^ 042072' 
00 042065' 
00 042076' 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-101 
SKTST3 - TIMES SEEKS BETWEEN ANY 2 CYLINDERS 

;* SKTST3 - TIMES SEEKS BETWEEN ANY 2 CYLINDERS 



SEQ 0232 



COMMENT S 



SEEK BETWEEN 2 CYLINDERS AND MEASURE THE SEEK TIMES. 
USER SPECIFIES CYLINDERS AND ITERATIONS. 
THIS UTILITY RUNS IN VARIABLE MODE ONLY. 



CALL SEQ: 

GO SKTST3 

RTN 

$ 

XLIST 

LIST 

SKTST3: SKIPF 
JRST 



/] 



TEXTF 



VARFL6 

.+3 

[ASCIZ/SKTST3 



RTN 
MOVE I 
MOVEM 
SETOM 
SKT3S: GO 
JRST 
GO 
JRST 
JRST 
JRST 
GO 

.•INPUT 'VARIABLES 

MOVE I 

SETZM 

GO 

MOVE I 

SETZM 

GO 



1,SKT3X 

1,ALTADD 

SELFL6 

SELECT 

SKT3X 

STATCK 

SKT3S 

.♦2 

.+1 

TINT 



1,CYL1 

2 

6ENVAR 

1,CYL2 

2 

GENVAR 



.•INPUT ITERATION COUNT 



GO 
MOVEM 



GETITR 
O.TSTITR 



.-CALL THE ROUTINE 
.•RETURNS HERE 



.-ARE WE IN VARIABLE MODE ? 

;YES. THEN CONTINUE 

RUNS ONLY IN VARIABLE MODE 



GET OUT 

GET ALTMODE ADDRESS 

SETS UP ALTMODE ADDRESS 

INIT THE SELECT ROUTINE 

SELECT A DEVICE FOR TEST 

TRIED ALL. EXIT 

CHECK DRIVE STATUS FROM DSW 
♦1 NOT USEABLE OR OFF-LINE 
♦2 WRITE PROTECTED (VARIABLE MODE) 
♦3 WRITE PROTECTED (MAN OR DEF MODE) 
+4 PASSED CHECKS. INITIALIZE THE TEST. 



GET PARAMETER 
NO RESTRICTION 
GENERATE VARIABLE 
PARAMETER 
NO RESTRICTION- 
GENERATE VARIABLE 



.•INPUT THE ITERATION COUNT 
.•SAVE AS THE ITERATION COUNT 



.•INITIALIZE COUNTERS USED IN THIS TEST 



MOVE I 
MOVEM 
SETZM 
SETZM 
SETZM 



1.MINSEK 
MAXSEK 
AVESEK 
NUMSEK 



SET UP MINIMUM TIME 

MINIMUM SEEK TIME IS K:PT HERE 

MAXIMUM SEEK TIME IS KEPT HERE 

AVERAGE SEEK TIME IS KEPT HERE 

RUNNING TOTAL OF NUMBER OF SEEKS MEASURED 



OFRPM RP07/6/5/4 Exer;isfr 
DFRPM MAC ■ ■ ~ 



5/4 Exerciser 
12-Sep-85 T7:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-102 
SKTST3 - TIMES SEEKS BETWEEN ANY 2 CYLINDERS 



SEQ 0233 



DFRPM 
DFRPM 

5566 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-102 
SKTST3 - TIMES SEEKS BETWEEN ANY 2 CyilNDERS 

PAGE 



SEQ 0233 



DFRPM RP07/6/5/A Exercise 
DFRPM MAC 



>/A Exerciser 
12-Sep-85 17:02 



MACRO XS3B(12A2} 19:36 12-Sep-85 Page 1-103 
SKTST3 - TIMES SEEKS BETWEEN ANY 2 CYLINDERS 



SEQ 0234 



DFRPM 


RP07/6/5/4 Exerciser 


MACRO X53B(1242) 19:36 12-SeD-85 Page 1-103 


DFRPM 


MAC 


12-Sep-85 17:02 


SKTST3 


- TIMES 


SEEKS BETWEEN ANY 2 CYLINDERS 


5567 






;D0 THE 


I/O 






5568 














5f69 


035663 


514 01 00 035646* 


SKT3B: 


HRLZ 


1,CYL1 


;1ST ADDRESS 


5370 


035664 


260 17 00 035513* 




GO 


SEEK 


.-ISSUE SEEK (NORMALLY A CYL) 


1^571 
'3572 
5573 


035665 


260 17 00 035514* 




GO 


lOWAIT 


;UAIT UNTIL I/O COMPLETES 


035666 


332 00 00 030037 




SKIPE 


USER 


;IN USER MODE ? 


5574 


035667 


254 00 00 035672 




JRST 


.♦3 


;YES NO TIMING IS DONE 


5575 


035670 


260 17 00 035510* 




GO 


DELAY 


;A 16 MS DELAY 


5576 
5577 
5578 


035671 


260 17 00 035771 




GO 


TIMEON 


.•ACTIVATE THE TIMING SCHEME 


035672 


514 01 00 035651* 




HRLZ 


i.cyL2 


;2ND ADDRESS 


5579 


035673 


260 17 00 035664* 




GO 


.SEEK 


.-ISSUE THE SEEK 


5580 


035674 


260 17 00 035665* 




60 


lOUAIT 


.-WAIT TILL DONE 


5581 


035675 


260 17 00 035515* 




60 


BRANCH 


.-CALL LOOP ROUTINE 


5582 


035676 


254 00 1 00 030740 




JRST 


aALTADD 


.•ALTMODE STRUCK 


5583 


035677 


254 00 00 035663 




JRST 


SKT38 


.-LOOP 


558A 


035700 


260 17 00 035706 




GO 


AV^BX 


.-UPDATE INTERMEDIATE STATISTICS 


5585 


035701 


373 00 00 030735 


SKT3E: 


SOSLE 


TSTITR 


.-DECREM'^NT ITERATIONS 


5586 


035702 


254 00 00 035663 




JRST 


SKT3B 


.-NOT Dc..L 


5587 


035703 


336 00 00 030037 




SKIPN 


USER 


;DONT PRINT IF IN USER MODE 


5588 


035704 


260 17 00 035743 




GO 


SK3RPT 


;OFF TO THE PRINTER 


5589 
5590 
5591 


035705 


263 17 00 000000 


SKT3X: 


RTN 




.-EXIT 


5592 
5593 
5594 
5595 






:HERE WE KEEP 


THE TOTALS AS UE 


RUN 


5596 


C35706 


33? 00 00 030037 


AVE9X: 


SKIPE 


USER 


.-USER MODE ? 


5597 


035707 


2o< 17 00 000000 




RTN 




;YES... NO TOTALS ARE KEPT 


5598 


035710 


261 17 00 000000 




PUT 





.-SAVE AC'S 


5599 


035711 


261 17 00 000001 




PUT 


1 




5600 


035712 


350 00 00 042076' 




AOS 


NUMSEK 


.-COUNT THE NUMBER OF SEEKS 


5601 


035713 


120 00 00 036040 




DMOVE 


OJOTIME 


.-GET TIME FOR THE LAST EVENT 


56C2 


035714 


274 01 3 035620 




SU8 


1,SKADJ(X1) 


.-ADJUST FOR PROGRAM OVERHEAD 


5603 


035715 


315 01 00 042074' 




CAMGE 


1.MINSEK 


.-IS IT A NEW MINIMUM TIME ? 


5604 


035716 


202 01 00 042074' 




MOVEM 


l.MINSEK 


.-YES. SAVE IT 


5605 


035717 


313 01 00 042072" 




CAMLE 


1.MAXSEK 


.-IS IT A NEW MAXIMUM ? 


5606 


035720 


202 01 00 042072' 




MOVEM 


1.MAXSEK 


.-YES 


5607 


035721 


in 01 00 042065' 




ADDM 


I.AVESEK 


.-ADD TO THE RUNNING SUM FOR LAT 


5608 


035722 


262 17 00 000001 




GET 


1 


.-RESTORE AC'S 


5609 


035723 


262 17 00 OOOOOQ 

263 17 00 000000 




GET 







5610 
5611 


035/24 




RTN 




.-AND EXIT 


5612 








PAGE 







SEO 0234 



0222 



DFRPM 
DFRPM 

5613 
56U 
5615 
5616 
5617 
5618 
5619 
5620 
5621 
5622 
5623 
562A 
5625 
5626 
5627 
5628 
5629 
5630 
5631 
5632 
5633 
563A 
5635 
5636 
5637 
5638 
5639 
56A0 
56A1 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-104 
SKTST3 - TIMES SEEKS BETWEEN ANY 2 CYLINDERS 

; SUBROUTINE TO INPUT THE NUMBER OF ITERATIONS FROM TTY. 

;THE NUMBER IS RETURNED IN ACO 

;1 THRU 5000 ARE ALLOWED ... 
CALL SEQ: 



SEQ 0235 



D 
D 



035725 254 00 00 035734 

035726 031 00 00 043103' 



035727 
035730 
035731 
035732 
035733 

035734 
035735 
035736 
035737 
035740 
035741 
035742 



031 
201 

260 17 
037 01 



043113* 
011610 
00 034470* 
00 030242 



00 
00 Qy 



GETITR: 
ITRER: 
1 THRU 



254 00 00 035734 



031 00 
037 05 
254 00 
301 00 
303 00 
254 00 
263 17 



00 043123' 
00 000003 
00 035726 
00 000001 
00 011610 
00 035726 
00 000000 



ITRIN: 



GO 
RTN 

JRST 

TEXTF 
TEXTF 

n 

MOVE I 
GO 

PCRLF 
JRST 

TEXTF 

TTICNV 

JRST 

CAIL 

CAILE 

JRST 

RTN 



PAGE 



GETITR 
ITRIN 



.•CALL THE ROUTINE 
.-NUMBERIN ACO 

.-SKIP OVER INPUT ERROR CODE 



CASCIZ/** — INPUT ERROR FOR "ITERATIONS"./] 
CASCIZ/ THE FOLLOWING IS ALLOWED: 



0,*D5000 
POCDEF 

I7RIN 



;WE ALLOW UP TO 5000 
.•PRINT IT 

.•RETRY .. 



CASCIZ/NUMBER OF ITERATIONS - /3 

; INPUT A CONVERTABLE NU^BER 
ITRER ; ERROR OR TIMEOUT 

OJ .-RANGE TEST 

0/D5000 
ITRER ;OUT OF RANGE 

;0K. EXIT WITH NUMBER IN ACO 



0223 



DFRPM 
DFRPM 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19:36 

SKTST3 - TIMES SEEKS BETWEEN ANY 



12-Sep-85 Page 1-105 
" "" 2 CYLINDERS 



SEQ 0236 



r 

OF 
•)F 



KS.J.'i 



.ucBC tc rue ooikiTco ena ruic rccr 



L 



1 



0223 



DFRPM 
DFRPM 

56A2 
56A3 
56AA 
56A5 
56A6 
56A7 
56A8 
56A9 
5650 
5651 
5652 
5655 
565A 
5655 
5656 
5657 
5658 
5659 
5660 
5661 
5662 
5663 
566A 
5665 
5666 
5667 
5668 
5669 
5670 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



0357A3 
0357A4 
0357A5 
035746 
0357A7 
035750 

035751 
035752 
035753 
03575A 

035755 
035756 
035757 
035760 
035761 
035762 

035763 
03576A 
035765 
035766 

035767 
035770 



037 00 00 030242 
260 17 00 035532* 
260 17 00 03S533* 
037 00 00 030242 
200 00 00 042076' 
260 17 00 035567* 

030 00 00 043130* 
200 00 00 042074' 
200 01 00 035402 
260 17 00 036044 



030 00 
200 00 
200 01 
230 00 
200 01 
260 17 



00 043140' 
00 042065' 
00 042076' 
00 000001 
00 035402 
00 036044 



030 00 00 043145' 
200 00 00 042072' 
200 02 00 035402 
260 17 00 036044 

030 00 00 043006' 
263 17 00 000000 



MACRO J:53B(1242) 19:36 12-Sep-85 Page 1-105 
SKTST3 - TIMES SEEKS BETWEEN ANY 2 CYLINDERS 



SEQ 0236 



OF 
OF 



.-HERE IS THE PRINTER FOR THIS TEST 



SK3RPT: PCRL 
GO 
60 
PCRL 
MOVE 
GO 
TEaT 

MINIMUM TIME 
MOVE 
MOVE 
GO 
TEXT 

AVERAGE TIME 
MOVE 
MOVE 
IDIV 
MOVE 
GO 
TEXT 

MAXIMUM TIME 
MOVE 
MOVE 
GO 
TEXT 

n 

RTN 
PAGE 



.NAME 
RUNTME 



0,NUMSEK 

PSDN -PRINT IT 

[ASCI 2/ SEEKS WERE MEASURED 

n 



;A BLANK LINE 

.•NAME OF TEST AND RH, ETC 

;AND RUNTIME 

;T0 NEXT LINE 

;GET NUMBER OF SEEKS MEASURED 



MINSEK 
1,5KTPNT 
PFDN 
[ASCIZ/ MS 

AVESEK 
1.NUMSEK 
0.1 

I.SKTPNT 
PFDN 

CASCIZ/ MS 
/] 

MAXSEK 
2.SKTPNT 
PFDN 
CASCIZ/ MS 



.•SCALE BY A THOU AND PRINT TWO DEC PLACES 



;GET NUMBER OF SEEKS ISSUED 
; COMPUTE THE AVERAGE 



.•EXIT THE TEST 



)224 



DFRPM 
DFRPM 



RP07/6/5/4 
MAC 



/4 Exerciser ^ 
12-Sep-85 17:02 



MACRO X53B(1 242) 19:36 12-Sep-85 Page 1-106 
SKTST3 - TIMES SEEKS BETWEEN ANY 2 CYLINDERS 



SEQ 0237 



DFI 
OFI 



. ▼ f Mr/\fci 



r tMr/tP 



Ti inki f tr\ ▼ ff u r fti^ ^^tif\rr t r r\e\ ci^rrri 



f»i/ rr* T^ \ 



L_ 



mi* 



DFRPM 
OFRPM 

5671 
5672 
5673 
5674 
5675 
5676 
5677 
5678 
5679 
5680 
5681 
5682 
5683 
568A 
568"^ 
568o 
5687 
5688 
5689 
5690 
5691 
5692 
5693 
569A 
5695 
5696 
5697 
5698 
5699 
5700 
5701 
5702 
5703 



RP07/6/5/A Exerciser 
MAC 12-Sep-85 17:02 



035771 
035772 
035773 
035774 
035775 
035776 
035777 
036000 
036001 

036002 
036003 
036004 
036005 
036006 
036007 



332 00 
263 17 

261 17 
200 00 
202 00 
200 00 
202 00 

262 17 

263 17 

261 17 
200 00 
202 00 
202 00 
26? 
Zoi 



17 
17 



MACRO :53B(1242) 19:36 12-Sep-85 Page 1-106 
SKTST3 - TIMES SEEKS BETWEEN ANY 2 CYLINDERS 

TIMEON - TIMEOF — TURN I/O TIMING ON/OFF (FOR SKTSTI. SKTST2) 

UMEON WILL CAUSE I/O OPERATIONS TO BE TIMED 
BY LOADING CALLS TO APPROPRIATE ROUTINES INTO LOCATIONS 
ULOAD AND UREAD IN THE RH20 SERVICE MODULE. THE ROUTINE 
CALLED FROM ULOAD WILL GET EXECUTED WHENEVER A REGISTER 
IS WRITTEN. THE ROUTINE CALLED FROM UREAD WILL GET 
EXECUTED EVERY TIME A CONI IS ISSUED TO THE RH20. 



SEQ 0237 



DFI 
DFI 



TIMEOF WILL CAUSE TIMING K CEASE BY NO-OP-ING THESE 2 LOCATIONS 



CALLING SEQ: 
GO TIMEXX 
RTN+1 



00 030037 
00 000000 
00 000000 
00 043152* 
. 00 000000* 
00 043153' 
00 000000* 
00 000000 
00 000000 











00 000000 
00 043154' 
00 035775* 
00 035777* 
00 000000 
CO 000000 



TIMEON: SKIPE 
RTN 
PUT 
HOVE 
MOVEM 
MOVE 
MOVEM 
GET 
RTN 

TIMEOF: PUT 
MOVE 
MOVEM 
MOVEM 
GET 
RTN 

PAGE 



USER 



0,[GO TMSTRT.1 
0, ULOAD 
0,LGO TMSTOPJ 
0, UREAD 




0,CJFCL] 
0, ULOAD 
0, UREAD 




TURN TIMJNG ON/OFF 
RETURNS HERE ALWAYS 

USER MODE ? 

YES, WE DON'T TIME IN USER MODE 

SAVE ACO 

GET AN INST TO CALL TMSTRT 

AND PLACE IT IN THIS LOCATION 

GET AN INST TO CALL TMSTOP 

AND PLACE IT IN THIS LOCATION 

RESTORE THE AC 



.-SAVE AC 
;A NO-OP 
; NO-OPS LOCATIONS IN RH20 CODE 

.•RESTORE THE AC 



225 



DFRPM 
OFRPM 



RP07/6/5/4 

MAC 



Exerciser 
12-Sep-85 1/:02 



MACRO X538(1242) 19:36 12-Sep-85 Page 1-107 
SKTST3 • TIMES SEEKS BETWEEN ANY 2 CYLINDERS 



SEQ 0238 



DFR 
DFR 



L_ 



225 



DFRPM 
DFRPM 

570A 
5705 
5706 
5707 
5708 
5709 
5710 
5711 
5712 
5713 
57K 
5715 
5716 
5717 
5718 
5719 
5720 
5721 
5722 
5723 
572A 
5725 
5726 
5727 
5728 
5729 
5730 
5731 
5732 
5733 
573A 
5735 
5736 
5737 
5738 
5739 
5740 
574 1 
57A2 
5743 
5744 
5745 
5746 
5747 
5748 
5749 
5750 
5751 
5752 
5753 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



036010 
036011 



036012 
036013 
036014 
036015 
036016 
036017 
036020 
036021 
036022 
036023 

036024 
036025 
036026 
036027 
036030 
036031 
036032 
036033 
036034 
036035 
036036 
036037 

036040 

036042 



7 020 04 00 036042 
263 17 00 000000 



261 17 
135 00 
302 00 
306 00 
334 00 
254 00 
602 01 
7 020 04 
26? 17 
2o< 17 

261 17 
261 17 
606 01 
254 00 
7 020 04 
115 00 



244 00 

124 00 

260 17 

262 17 

262 17 

263 17 



00 000000 
00 043155- 
00 000000 
00 000071 
00 000000 
00 036022 
00 000001 
00 036042 
00 000000 
00 000000 

00 000000 
00 000001 
00 004210 
00 036035 
00 000000 
00 036042 
00 777764 
00 036040 
00 036002 
00 000001 
00 000000 
00 000000 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-107 
SKTST3 - TIMES SEEKS BETWEEN ANY 2 CyilNDERS 

;TMSTRT - TMSTOP — ROUTINES TO TIME AN I/O EVENT 
.-USED IN SKTST1. SKTST2, SKTST3 

ItMSTRT GETS CALLED WHENEVER A REGISTER IS WRITTEN. IF THE 
;REGISTER BEING WRITTEN IS THE DEVICE CONTROL REGISTER OR 
.-THE STCR AND THE GO BIT IS BEING SET THEN THE 1MHZ CLOCK 
.•WILL BE READ AND THE RESULT SAVED FOR FUTURE USE. 

•TMSTOP GETS CALLED WHENEVER A CONI IS ISSUED TO THE RH20. 
;IF THE CONDITIONS SHOW AN INTERRUPT CONDITION (DONE+ATTN+RAE) 
;THEN THE 1MHZ CLOCK WILL BE READ AGAIN AND THE RESULT SAVED. 

I CALLING SEQ: 

; 60 TMXXXX .-CALL THE APPROPRIATE ROUTINE 
RTN+1 .-RETURNS HERE ALWAYS 



r 



SEQ 0238 



DFF 
DFR 

e 
e 
e 



TMSTRT: 



DATAI 
RTN 



20.I0TEMP 



.•READ CLOCK AS START TIME 
;AND EXIT 



.•FOLLOWING CODE WAS ONCE ur D IN HERE, 



TMSTOP: 



TMSTPX: 



PUT 

LDB 

CAIE 

CAIN 

SKI PA 

JRST 

TRNE 

DATAI 

GET 

RTN 

PUT 

PUT 

TRNN 

JRST 

DATAI 

DSUB 

ASHC 

DMOVEM 

GO 

GET 

GET 

RTN 





O.CPOINT 6.1.5J 

0,0 

0.71 

.♦3 

1.1B35 
20,I0TEHP 






1 

1.4210 

TMSTPX 

20.0 

O.IOTEMP 

0.--D12 

O.IOTIME 

TIMEOF 

1 





lOTIME: BLOCK 2 
lOTEMP: BLOCK 2 
PAGE 



SAVE ACO 

GET REG SEL CODE 

IS IT THE DEV CONTROL REG ? 

IS IT THE STCR ? 

IT'S ONE OR THE OTHER. CHK THE GO BIT 

NEITHER. GET OUT 

IS THE GO BIT SET ? 

YES. READ THE CLOCK 

RESTORE ACO 



SAVE THE AC'S 

DID CONI SEE AN INTERRUPT CONDITION ? 

NC. GET OUT. 

YES. READ THE CLOCK. 

TAKE THE DIFFERENCE 

AND RIGHT JUSTIFY 

THEN SAVE IT HERE 

STOPS THE EVENT TIMING OPERATIONS 

RESTORE THE AC'S 



THIS IS WHERE THE RESULTS OF 
READING THE CLOCK ARE KEPT 
TEMP CLOCK STORAGE 



I2t 



OFRPH RP07/6/5/4 Exer 
DFRPM MAC 



/4 Exerciser 
12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-108 
SKTST3 - TIMES SEEKS BETWEEN ANY 2 CYLINDERS 



SEQ 0239 



DFR 
DFR 



I2b 



DFRPM 


RP07/6/5/A Exerciser MACRO X53B(12A2) 19:36 i2-SeD-85 Pane 1-108 




DFRPM 


MAC 


12-Sep-85 17:02 J 


)KTST3 


- TIMES 


SEEKS BETWEEN 


ANY 2 CYLINDERS 


SEQ 0239 


575A 
5755 
5756 




1 


;PFDN 


- - PRINTS FRACTIONAL 


)ECIMAL NUMBERS 






1 


USED 


ro PRINT 


MS SEEK TIMES 


IN SKTST1, SKTST2, SKTST3 




5757 




1 












5758 




( 


•PFDN 1 


PRINTS THE CONTENTS OF 


ACO AS A DECIMAL NUMBER 


- ■'■'■'•,:'' ■ "■""'.''"■,. ' ' 


5759 




1 


•WITH 1 


^ FRACTION. AC1 CONTAINS THE DESIRED M OF DECIMAL 




5760 
5761 
5762 




i 


•PLACES IN THE 


LEFT HALF AND 


A DIVISOR IN THE RIGHT HALF. 






1 

1 


•FOR INSTANCE. 


IF ACO CONTAINS A NUMBER OF MICROSECONDS 


:/■■■"•>;.■■■.;'■■" 


5763 






•AND THE DESIRE 


■ IS TO PRINT 


IT IN MILLISECONDS. ACl 




576A 




1 


•WOULD 


CONTAIN 


A SCALE FACTOR OF 1.000(10) IN THE RH. 




5765 




.'. ■ ■ 1 












5766 




1 




CALL SEQ: 




•■_ - , .,- i ■. - • , ' ' ' 


5767 






t 


MOVE ACO. AR61 


;ARG1 IS THE * TO BE PRINTED 




5768 




^;- 


', 


MOVE AC1, ARG2 


;ARG2 IS * DEC PLACES., DIVISOR 




5769 






i 


GO PFDN 






5770 
5771 
5772 




A 




RTN 




.•RETURNS HERE 




0360AA 


261 17 00 000000 PFDN: 


PUT 





.•SAVE THE AC'S 




5773 


036045 


261 17 00 000001 




PUT 


1 






577A 


036046 


261 17 00 000002 




PUT 








5775 


036047 


261 17 00 000003 




PUT 


3 




■■ .', '■■'.:>]■■■■ 


5776 


036050 


554 03 17 777776 




HLRZ 


3, -2(P) 


;GET * OF DECIMAL PLACES 




5777 


036051 


550 01 17 77777b 




HRRZ 


1, -2(P) 


;6ET THE DIVISOR 




5778 


036052 


202 01 00 042070* 




MOVEM 


1,DVIS0R# 


.•SAVE IT 


' ■ -..'''-' . ■■ ' 


5779 


036053 


230 00 00 000001 




IDIV 


0. 1 


.•COMPUTE INTEGER PART OF rut NUMBER 




5780 


036054 


037 15 00 000000 




PNTDEC 




.•PRINT IT 




5781 


036055 


030 00 00 043156' 




TEXT 


CASCIZ/./] 






5782 


036056 


337 00 00 000003 ( 


'FDNl : 


SKI PC 


3 


.•DECIMAL PLACES DESIRED ? 




5783 


036057 


254 00 00 036070 




JRST 


PFDNX 


;N0 


■ ,- -■ ■;■■■'■■: " ■ ' ■■■■;- :■" 


5^8^ 


036060 


2^} 00 00 000001 




MOVE 


1 


.•REMAINDER OF DIVISION TO ACO 


^ -:, ■ ■■'■.■ 


5785 


036061 


200 01 00 042070' 




MOVE 


1,DVIS0R , 


;6ET OUR DIVISOR 




5786 


036062 


231 01 00 000012 




IDIVI 


1,12 


.•SCALE IT BY TEN 




5787 


056063 


202 01 00 042070' 




MOVEM 


I.DVISOR 


.•SAVE IT FOR NEXT PASS 




5788 


036064 


230 00 00 000001 




IDIV 


OJ 


.•COMPUTE CURRENT DECIMAL DIGIT 




5789 


036065 


037 15 00 000000 




PNTDEC 




.•PRINT IT 




5790 


036066 


370 00 00 000003 




SOS 


3 


.•DECR PLACES COUNT 




5791 
5792 
5793 


036067 


254 00 00 036056 




JRST 


PFDN1 


;AND GO BACK FOR MORE 




036070 


262 17 00 000003 \ 


>FDNX: 


GET 


3 


;RESTORE AC'S 




5794 


036071 


262 )7 00 000002 




GET 


2 




' ■■"■,''■■" 


5795 


036072 


262 17 00 000001 




GET 


1 






5796 


036073 


262 17 00 OOQOOO 

263 17 00 000000 




GET 









5797 


036074 




RTN 








5798 
















5799 
















5800 




i 

* 


5UBTTL 


PEEK - UTILITY TO DISPLAY RAW DISK DATA 




5801 








XLIST 








5802 








LIST 








5803 








PAGE 






■. ••' 



>27 



DFRPM RP07/6/5/4 Exerciser 
DFRPM MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-109 
PEEK - UTILITY TO DISPLAY RAW DISK DATA 



SEQ 0240 



127 



OFRPM 
DFRPM 

580A 

5805 

5806 

5807 

5808 

5809 

5810 

5811 

5812 

5813 

58H 

5815 

5816 

5817 

5818 

5819 

5820 

5821 

5822 

5823 

582A 

5825 

5826 

5827 

5828 

5829 

5830 

5831 

5832 

5833 

5834 

5835 

5836 

5837 

5838 

5839 

58A0 

58A1 

58A2 

5843 

5844 

5845 

5846 

5847 

5848 

5849 

5850 

5851 

5852 

5853 

5854 

«55 

5856 

§|57 

5858 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



036075 
036076 
036077 
036100 
036101 
036102 
036103 
036104 
036105 
036106 
036107 
036110 
036111 
0361 r 
03611 



332 00 



254 
031 



00 
00 




254 00 

201 01 

202 01 
476 00 
260 17 
254 00 
260 17 
254 00 
254 00 
254 00 
260 17 
254 00 



MACRO X538(1242) 19:36 12-Sep-85 Page 1-109 
PEEK - UTILITY TO DISPLAY RAW DISK DATA 

S*; ******************* t ******************************************* ******* 

:♦ PEEK - DISPLAYS AREAS OF THE DISK 

S*; ************************ f ********************************** *********** 



SEQ 0240 



COWENT $ 



030731 
036101 
043157' 
036251 
036251 
030740 
030755 
035637* 
036251 
035641* 
036104 
00 036112 
00 036112 
00 037722 
00 036115 



00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 



PEEK: 



THIS UTILITY IS EXECUTED ONLY IN VARIABLE MODE WHEN USER IS 
SPECIFYING PARAMETERS. IT IS DESIGNED TO LET YOU SEE THE BITS 
RECORDED ON THE DISK WITHOUT MODIFICATION. YOU INDICATE WHAT YOU 
WISH TO DO BY SPECIFYING A FUNCTION CODE. THIS UTILITY HAS 
NO PRACTICAL USE AS A DIAGNOSTIC, BUT IS DESIGNED TO BE A HELPFUL 
TROUBLSHOOTING TOOL. 

CODE FUNCTION 

LOOK AT TRACK DESCRIPTOR (RP07 ONLY) 

1 LOOK AT COMPLETE HEADERS 

2 LOOK AT DATA FIELD ONLY 

3 LOOK AT BOTH HEADER AND DATA FIELDS 

WHENEVER YOU USE CODE 2 OR 3 YOU GET TO SPECIFY THE STARTING 
WORD IN THE DATA FIELD AND THE NUMBER OF WORDS YOU WISH TO 
EXAMINE. THE DISK DATA IS DUMPED IN OCTAL. 

PRINTING IS ALSO OPTIONAL. BY CHOOSING NOT TO PRINT YOU CAN USE 
THE UTILITY TO LOOP ON A PARTICULAR READ FUNCTION. 

CODE-0 DOES A READ TRACK DESCRIPTOR 

CODE-1 DOES READ HEADERS AND DATA WITH COMMAND MODIFIER SET 

CODE-2 DOES A READ DATA FIELD ONLY 

CODE-3 DOES A READ HEADER AND DATA FOLLOWED BY READ DATA 

HEADER COMPARE INHIBIT IS ALWAYS SET. THIS ALLOWS YOU TO EXAMINE 

HEADER AND/OR DATA FIELDS OF A SECTOR EVEN WHEN THE HEADER IS BAD 

$ 

XLIST 

LIST 



SKIPE 
JRST 
TEXTF 
JRST 
PEEKO: MOVE I 
HOVEM 
SETOM 
GO 

JRST 
60 
JRST 
JRST 
JRST 
GO 
JRST 



VARFLG 

PEEKO 

[ASCIZ/"PEEK" 

PEEKEX 

l.PEEKEX 

l-ALTADD 

SELFLG 

SELECT 

PEEKEX 

STATCK 

.-3 

.-^2 

.-^1 

TINT 

PEEKFI 



;ARE WE IN VARIABLE MODE ? 
;N0. THEN PROCEED 
RUNS ONLY IN VARIABLE MODE/] 

EXIT THE TEST 

GET ADDR OF EXIT CODE 

SET UP THE ALTMODE ADDRESS 

INIT SELECT ROUTINE 

CHOOSE FIRST DRIVE THATS SELECTED 

TRIED ALL. EXIT 

CHECK DRIVE STATUS FROM DSW 
+1 NOT USEABLE OR OFF-LINE 
+2 WRITE PROTECTED (VARIABLE MODE) 
+3 WRITE PROTECTED (M,\N OR DEF MODE) 
+4 PASSED CHECKS. INITIALIZE THE TEST. 

TO FUNCTION INPUT CODE 



;8L0CK OF CODE TO INPUT THE DESIRED FUNCTIONS 



28 



DFRPM RP07/6/5/4 Exerciser 
DFRPM MAC 12-Sep-85 17:02 



MACRO X53B(1 242) 19:36 12-Sep-85 Page 1-110 



PEEK - UTILITY TO DISPLAY RAW DISK DATA 



ih 



SEQ 0241 



8 



OFRPM 
DFRPM 

5859 

5860 

5861 

5862 

5863 

586A 

5865 

5866 

5867 

5868 

5869 

5870 

5871 

5872 

5873 

5874 

5875 

5876 

5877 

5878 

5879 

5880 

5881 

5882 

5883 

5884 

5885 

5886 

5887 

5888 

5889 

5890 

5891 

5892 

5893 

5894 

5895 

5896 

5897 

5898 

5899 

5900 

5901 

5902 

5903 

5904 

5905 

5906 

5907 

5908 

5909 

5910 

5911 

591 

591 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



036114 
036115 
036115 
036116 
036117 
036120 
036121 
036122 
036123 
036124 
036125 
036126 
036127 
036130 
036131 
036132 
036133 
036134 
036135 
036136 
036137 

036140 
036141 



036142 
036143 

036144 
036145 
036146 
036147 
036150 
036151 
036152 
036153 



031 00 00 043166' 



031 00 
037 10 
254 00 
201 01 
316 00 
254 00 
201 01 
316 00 
254 00 
201 01 
316 00 
254 00 
201 01 
316 00 
254 00 
316 00 
254 00 
312 00 
254 00 



00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 



043176* 

000003 

036114 

000000 

042104' 

036142 

000001 

043207' 

036155 

000002 

043210' 

036155 

000003 

043211' 

036155 

042117' 

036140 

042116' 

036114 



031 00 00 043212' 
254 00 00 036115 



256 00 13 036144 
254 00 00 036115 



031 00 

031 00 

031 00 

254 00 

031 00 

031 00 

031 00 

031 00 



00 036154 
00 036154 
00 036154 
00 036155 
00 036154 
00 036154 
00 036154 
00 036154 



036154 000000 043232' 



036155 
036156 
036157 
036160 
036161 
036162 
036163 



202 01 
402 00 
031 00 
26C 17 
254 00 
334 00 
476 00 



00 034771* 
00 030761 
00 043242' 
00 032322* 
00 036157 
00 OOOQOO 
00 030761 



036164 201 01 00 035663* 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-110 
PEEK - UTILITY TO DISPLAY RAW DISK DATA 



SEQ 0241 



PEEKFE: TEXTF 
PEEKFI: TEXTF 
ENTER FUNCTION 
TTSIXB 
JRST 
MOVE I 
CAMN 
JRST 
MOVE I 
CAMN 
JRST 
MOVE I 
CAMN 
JRST 
MOVE I 
CAMN 
JRST 
CAMN 
JRST 
CAME 
JRST 
PEEKFH: TEXTF 
2=DATA FIELDS, 
JRST 



CASCIZ/** — INP'JT ERROR FOR FUNCTION CODE/J 
[ASCIZ/ 
CODE (0-3 



PEEKFE 
1.0 

O.CSIXBI 
PEEKFV 
1,1 

O.CSIXBI 
PEEKSV 
1,2 

O.CSIXBI 
PEEKSV 
1,3 

0,[SIXBI 
PEEKSV 
O.CSIXBI 
PEEKFH 
0,CSIXBI 
PEEKFE 
[ASCIZ/0 
3=HEADER 
PEEKFI 



OR HELP <CR» 
; INPUT 



T/0/: 



- /: 

IN SIXBIT 

ERROR ON INPUT 

WANT TO TEST FOR A 

IS IT A ZERO ? 

YES. GO TO A SPECIAL RP07 CHECK 

WANT TO TEST FOR A 1 

IS IT A ONE ? 

YES. 60 SAVE FUNCTION 

WANT TO TEST FOR A 2 

IS IT A TWO ? 

YES. 60 SAVE FUNCTION 

WANT TO TEST FOR A 3 

IS IT A THREE ? 

YES. SAVE FUNCTION 

IS IT H FOR HELP ? 
.YES. PROCESS HELP 
T/HELP/J ;IS IT HELP 

;END OF CHAIN. ILLE6AL INPUT. RETRY. 
=TD'S (RP07 ONLY), 1=HEADER FIELDS, 
AND DATA FIELDS/J 

;60 AND INPUT THE FUNCTION 



T/1/3 



T/2/: 



T/3/: 
T/H/J 



.•VALID TD FUNCTION. ERROR IF NOT D0IN6 ON RP07. 



PEEKFV: XCT 
JRST 

TEXTF 

TEXTF 

TEXTF 

JRST 

TEXTF 

TEXTF 

TEXTF 

TEXTF 



.+2(X1) 
PEEKFI 

aPEEKMI 

aPEEKMI 

aPEEKMI 

PEEKSV 

aPEEKMI 

aPEEKMI 

aPEEKMI 

aPEEKMI 



EXECUTE INSTR ACC0RDIN6 TO DRIVE TYPE 
AND REPEAT INPUT IF NECESSARY 

RP04 

RP06 

SPARE 

RP07 (600 MB) 

RM03 

SPARE 

RP20 (T0PS10) 

RP20 (TOPS20) 



PEEKM1: [ASCIZ/TD FUNCTION (0) VALID FOR RP07 ONLY/] 

.-NOW HAVE A VALID FUNCTION. SAVE IT AND CHECK FOR PRINT OPTION. 

PEEKSV: MOVEM 1,CMD4 ;SAVE THE FUNCTION (0-3) 

SETZM L0CFL6 ;A LOCAL FLAG TO INDICATE PRINT OPTION 

TEXTF CASCIZ/DO YOU WANT TO PRINT DATA ?/] 

60 QSTN ;ASK THE QUESTION 

JRST .-2 .-TIMEOUT 

SKI PA .-ANSWER WAS NO 

SETOM LOCFLG .-ANSWER WAS YES. SET PRINT FLAG 

.INPUT CYL1, SURF1. AND SECT1 (IF NECESSARY) 

MOVEI 1.CYL1 .-WANT TO INPUT CYLl 



DFRPM RP07/6/5/4 Exerciser 
DFRPM MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-111 
PEEK - UTILITY TO DISPLAY RAW DISK DATA 



SEQ 0242 



I 



n 



!9 



DFRPM 
OFRPM 

59U 

5915 

5916 

5917 

5918 

5919 

5920 

5921 

5922 

5923 

5924 

5925 

5926 

5927 

5928 

5929 

5930 

5931 

5932 

5933 

593A 

5935 

5936 

5937 

5938 

5939 

59A0 

59A1 

59A2 

59A3 

59AA 

59A5 

59A6 

59A7 

5948 

5949 

5950 

5951 

5952 

5953 

5954 

5955 

5956 

5957 

5958 

5959 

5960 

5961 

5962 

5963 

5964 

5965 

5966 

5967 

5968 



RP07/6/5/4 Exerciser 

MAC 12-Sep-85 17:02 

036165 402 00 00 000002 

036166 201 03 00 000070 

036167 260 17 00 034207* 

036170 201 01 00 034742* 

036171 402 00 00 000002 

036172 260 17 00 036167* 

036173 200 00 00 036155* 

036174 322 00 00 036240 

036175 201 01 00 034745* 

036176 402 00 00 000002 

036177 260 17 00 036172* 



036200 200 00 00 036173* 

036201 306 00 00 000001 

036202 254 00 00 036240 

036203 254 00 00 036204 



036204 
036205 

036206 
036207 
036210 
036211 
C-6212 

036213 
036214 
036215 
036216 
036217 
036220 
036221 
036222 
036223 

036224 
036225 
C36226 
036227 
036230 
036231 
036232 
036233 
036234 
036235 



336 00 00 030761 
254 00 00 036240 



031 00 
476 00 



621 



00 
00 



00 043250' 
00 030521 
00 030046 
00 040000 



202 00 00 030046 



031 00 
550 00 
275 00 
260 17 
031 00 
260 17 
254 00 
254 00 
202 00 

031 00 
550 00 
274 00 
260 17 
031 00 
505 00 
260 U 




00 043260' 
13 034400* 
00 000001 
00 035215* 
00 043266' 
00 034474* 
00 036220 
00 036207 
00 030767 

00 043270' 
13 036214* 
00 030767 
00 036216* 
00 043266' 
000001 
036220* 
Q|6232 
036224 
030770 



MACRO X53B(1242) 19;36 12-Sep-85 Page 1-111 
PEEK - UTILITY TO DISPLAY RAU DISK DATA 



SEQ 0242 



SETZM 
MOVE I 
GO 

MOVE I 
SETZM 
60 

MOVE 
JUMPE 
MOVE I 
SETZM 
GO 



2 

3.70 

INPUT 

1.SURF1 

2 

INPUT 

0,CMD4 

0,PEEKA 

1,SECT1 

2 

INPUT 



NO RESTRICTIONS 
COMMAND IS A READ CLASS 
INPUT CYL1 

WANT TO INPUT SURFACE 
NO RESTRICTIONS 
INPUT THE SURFACE 

GET FUNCTION (0-3) 
If NON-0, INPUT SECTOR 
WANT TO INPUT SECT1 
NO RESTRICTIONS 
INPUT THE SECTOR 



;IF THE FUNCTION INVOLVED DATA FIELDS, INPUT PRINT BOUNDRIES 



MOVE 
CAIN 
JRST 
JRST 



0,CMD4 
0,1 
PEEKA 
PEEK1 



GET FUNCTION (0-3) 

HEADER 'ONLY' OPERATION ? 

YES 

NO. DATA FIELDS ARE INCLUDED 



DFRPi 
DFRPI 

64 
64: 
64; 
64 
64: 
64 
64: 
64 
64' 
64' 
64' 
64' 
64' 
64< 
64 
64' 
64< 
64' 
64! 
64 



.-WANT TO SET BOUNDS ON WORDS PRINTED SINCE WERE DOING DATA FIELDS 
;TEMA WILL GET THE FIRST WORD (THEY START AT 1 AND NOT 0) 
;TEMB WILL GET THE NUMBER OF WORDS TO PRINT 



PEEK1 



n 

WERl : 



WER2: 



SKIPN 

JRST 

TEXTF 

SETOM 
MOVE 
TL2 
MOVEM 

TEXTF 

HRR2 

SUBI 

GO 

TEXTF 

60 

JRST 

JRST 

MOVEM 

TEXTF 
HRRZ 

sue 

GO 

TEXTF 

HRLI 

GO 

JRST 

JRST 

MOVEM 



L0CFL6 ;D0 WE WANT PRINTING ? 

PEEKA ;N0 

CASCIZ/CHOOSE DATA FIELD PRINTING OPTIONS 



$$TOGGLE 
O.CONSW 
0,NOPNT 
0,CONSW 



FORCE SUBRTN TO USE CONSW 
6ET CONSW 

FORCE NOPNT SWITCH TO BE OFF 
NOW ALL PRINTOUT WILL COME OUT 



CASCIZ/ENTER STARTING WORD, THRU /: 



0,CWRWD(X1) 

0,1 

POCDEC - 

CASCIZ/ <CR> - /3 

NUMIN 

.-1 

WERl 

0,TEMA 



GET # WORDS PER SECTOR 
ADJUST BECAUSE WE START AT 
PRINT 



INPUT A 
TIMEOUT 
ERROR 
AND SAVE 



NUMBER 



CASCIZ/ENTER TOTAL # OF WORDS 1. THRU /] 



0,CWRWD(X1) 
O.TEMA 

p6cdec 
casciz/ <cr> 

0,1 
NUMIN 

.-1 

WER2 

0.TEM8 



- /) 



GET TOTAL WORDS PER SECTOR 
CALCULATES MAX NUMBER ALLOWED 
PRINT LIMIT 

NOW HAVE LIMITS SET UP 

INPUT 

TIMEOUT 

INPUT ERROR 

NOW HAVE TOTAL # OF WORDS 



OFRPM RP07/6/5/4 Exerciser 
OFRPM MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-112 
PEEK - UTILITY TO DISPLAY RAW DISK DATA 



SEQ 0243 



OFRPf 
DFRPf 



J 



J 



DFRPM 
DFRPM 

5969 
5970 
5971 
5972 
5973 
597A 
5975 
5976 
5977 
5978 
5979 
5980 
5981 
5982 
5983 
598A 
5985 
5986 
5987 
5988 
5989 
5990 
5991 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-112 
PEEK - UTILITY TO DISPLAY RAW DISK DATA 



SEQ 0243 



036236 
036237 



036240 
036241 
036242 
036243 
036244 



036245 
036246 
036247 
036250 



402 00 00 030521 
037 10 00 000002 



SETZM 
SWITCH 



$$T06GLE 



.•ALLOW THE USE OF REAL SWITCHES AGAIN 
;READ THE CURRENT STATE OF SWITCHES 



; INPUT IS COMPLETE. DO THE I/O AND PRINTING IF REQUIRED 



260 17 
336 00 
254 00 
260 17 
254 00 



00 036252 
00 030761 
00 036245 
00 036352 
00 036251 



PEEKA: 



GO 

SKIPN 

JRST 

GO 

JRST 



PEEKIO 
LOCFLG 
PEEKA1 
PEEKPT 
PEEKEX 



;NOT PRINTING. HANDLE LOOPING. 



260 17 00 035675* 
254 00 00 036251 
254 00 00 036240 
254 00 00 036240 



PEEKA1 



GO 

JRST 
JRST 
JRST 



BRANCH 
PEEKEX 
PEEKA 
PEEKA 



GETS DAT^ INTO CORE AND RELEASE 
DO WE WANT PRINTING ? 
NO. JUST LOOPING. 
YES. GO AND PRINT 
AND EXIT 



CALL THE BRANCH ROUTINE 
ALTMODE WAS STRUCK 
LOOP 
CONTINUE 



036251 263 17 00 000000 



.-EXIT CODE 
PEEKEX: RTN 
PAGE 



.-EXIT BACK TO DISPATCHER 



DFRPH RP07/6/5/4 Exerciser 
DFRP« MAC 12-Sep-85 17:02 



MACRO X53B(1242) iy:JO i<:-sep-(j) Page 
PEEK • UTILITY TO DISPLAY RAW DISK DATA 



19:36 12-Sep-85 Page 1-113 



1 ■ r 



SEQ 02U 



DFRPM 
OFRPM 

5992 

5993 

599A 

5995 

5996 

5997 

5998 

5999 

6000 

6001 

6002 

6003 

600A 

6005 

6006 

6007 

6008 

6009 

6010 

6011 

6012 

6013 

60U 

6015 

6016 

6017 

6018 

6019 

6020 

6021 

6022 

6023 

602A 

6025 

6026 

6027 

6028 

6029 

6030 

6031 

6032 

6033 

603A 

6035 

6036 

6037 

6038 

6039 

60A0 

6041 

6042 

6043 

6044 

6045 

6046 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



036252 
036253 
036254 
036255 
036256 
036257 
036260 
036261 



036262 
036263 
036264 
036265 
036266 
036267 
036270 
036271 
036272 
036273 
036274 



036275 
036276 
036277 
036300 



036301 
036302 
036303 
036304 
036305 
036306 
036307 
036310 
036311 
036312 

036313 

36314 

6315 

6316 

J6317 



261 17 
261 17 
261 17 
261 17 
200 01 
202 01 
200 00 
326 00 



201 01 
504 01 
200 03 
504 03 
200 02 
242 02 
435 02 
504 02 
260 17 
260 17 
254 00 



00 000000 
00 000001 
00 000002 
00 000003 
00 030724 
00 000000* 
00 036200* 
00 036275 



00 000075 
13 036342 
00 036257* 
13 035130* 
00 036170* 
00 000010 
00 000377 
00 036164* 
00 035140* 
00 035674* 
036334 



00 



200 00 00 036260* 
306 00 00 000002 

254 00 00 036320 

255 00 00 000000 



201 01 
504 01 
200 02 
242 02 
434 02 
504 02 
200 03 
504 03 
260 17 
260 17 



00 000073 
13 036342 
00 036266* 
00 000010 
00 036175* 
00 036271* 
00 036264* 
13 033767* 
00 036272* 
00 036273* 



00 00 00 036275* 
, I 56 65 036334 



MACRO :53B(1242) 19:36 12-Sep-85 Page 1-113 
PEEK - UTILITY TO DISPLAY RAW DISK DATA 

THIS SUBROUTINE READS DATA INTO CORE ACCORDING TO THE FUNCTION 
CODE THAT WAS STORED IN CMD4 



SEQ 02<'.4 



CALL SEQ: 
GO 
RTNi-1 



PEEKIO: PUT 
PUT 
PUT 
PUT 
MOVE 
MOVEM 
MOVE 
JUMPN 



PEEKIO 



1. SUFI A 
1.ADR1 
0.CMD4 
0.PEKIO1 



;THE CALL 
;THE RETURN 

;SAVE AC'S 



GET BUFFER ADDR 

PUT IN A POINTER WORD 

GET FUNCTION CODE 

JUMP IF NOT A TD OPERATION 



;CMD4=0 WANT TO READ TD AND THEN EXIT 



MOVE I 

HRL 

MOVE 

HRL 

MOVE 

LSH 

lORI 

HRL 

60 

60 

JRST 



1,75 

1,0FR6(X1) 

3,ADR1 

3,CWRTD(X1) 

2. SURF 1 

2,*D8 

2,377 

2,CYL1 

XFSTRT 

lOWAIT 

PEKIOX 



6ET ADDR OF BUFFER 

SET HCI=1 AND CM0D=1 

6ET BUFFER ADDRESS 

WORD COUNT FOR TRACK DESCRIPTOR 

6ET THE SURFACE NUMBER 

SHIFT INTO POSITION 

SECTOR NUMBER FOR TD 

CYLINDER NUMBER 

START THE TRANSFER 

WAIT UNTIL I/O COMPLETES 

TO EXIT CODE 



.•FUNCTION IN CMD4 IS OTHER THAN A TD OPERATION 



PEKI01: MOVE 
CAIN 
JRST 
JFCL 



0,CMD4 

0,2 

PEKI02 



6ET FUNCTION 

IS IT A DATA FIELD ONLY COMMAND ? 

YES 

NO. IT INVOLVES HEADERS 



.•READ HEADERS WITH HCI = 1 SO YOU CAN 6ET THEM NO MATTER WHAT 



HOVE I 
HRL 
HOVE 
LSH 

liji!; 

HOVE 
HRL 

i8 

HOVE 
CAIE 
JRST 
HOVE 
ADDM 



1,73 

1.0FR6(X1) 

2, SURF 1 

2,*D8 

2,SECT1 

2,CYL1 

3.ADR1 

3,CWRHDC(X1) 

XFSTRT 

lOWAIT 

0,CMD4 

PEKIOX 

Q,CWHDC(X1) 

0.ADR1 



A READ HEADER COMMAND 

WITH HCI=CM0D=1 (GETS ENTIRE HEADER) 

GET SURFACE 

POSITION SURFACE 

INCLUDE SECTOR 

GET CYLINDER 

GET BUFFER ADDRESS 

GET WORD COUNT FOR HEADER OPERATION 

START THE READ 

WAIT UNTIL TRANSFER IS DONE 

GET FUNCTION 

WANT DATA FIELD ALSO ? 

NO. THEN WE^RE DONE 

YES. GET WORD COUNT FOR HEADER 

ADJUST BUFFER POINTER FOR NEXT TRANSFER 



OFRPH RP07/6/5/4 Exerciser 
OFRPH MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-114 
PEEK - UTILITY TO DISPLAY RAW DISK DATA 



SEQ 0245 



J 



DFRPM 
DFRPM 

60A7 
60A8 
6049 
6050 
6051 
6052 
6053 
6054 
6055 
6056 
6057 
6058 
6059 
6060 
6061 
6062 
6063 
6064 
6065 
6066 
6067 
6068 
6069 
6070 
6071 
6072 
6073 
6074 
6075 
6076 
6077 
6078 
6079 
6080 
6081 
6082 
6083 
6084 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



036320 
036321 
036322 
036323 
036324 
036325 
036326 
036327 
036330 
036331 
036332 
036333 



036334 
036335 
036336 
036337 
036340 
036341 



036342 
036343 
036344 
036345 
036346 
036347 
036350 
036351 



MACRO :53B(1242) 19:36 12-Sep-85 Page 1-114 
PEEK - UTILITY TO DISPLAY RAW DISK DATA 



.•THIS CODE READS DATA FIELDS INTO CORE. BUFFER ADDR IN ADRV 



SEQ 0245 



201 01 
504 01 
621 01 
200 02 
242 02 
434 02 
504 02 
200 03 
504 03 
260 17 
260 17 
254 00 



00 000071 
13 036342 
00 100000 
00 036303* 
00 000010 
00 036305* 
00 036306* 
00 036317* 
13 036225* 
00 036311* 
00 036312* 
00 036334 



PEKI02: MOVE I 
HRL 
TLZ 
MOVE 
LSH 
I OR 
HRL 
MOVE 
HRL 
60 
GO 
JRST 



1,71 

1,0FR6(X1) 

1,100000 

2, SURF 1 

2,*D8 

2.SECT1 

2,CYL1 

3.ADR1 

3,CURUD(X1) 

XFSTRT 

lOUAIT 

PEKIOX 



GETS A READ DATA COMMAND 

SET HCI=1 SO WE ARE SURE TO GET DATA 

CLEAR CMOD IF IT IS SET 

GET THE SURFACE NUMBER 

POSITION THE SURFACE NUMBER 

INCLUDE THE SECTOR NUMBER 

INCLUDE THE CYLINDER NUMBER 

GETS BUFFER ADDRESS 

GET WORD COUNT FOR TRANSFER 

START THE TRANSFER 

WAIT UNTIL TRANSFER IS COMPLETE 

TO EXIT CODE 



i DFRPM 
j DFRPM 

656; 
656 
656- 
656 
656( 
656 
6561 
656' 
6571 
657 
657i 
657 
657- 
657 
657( 



.-CODE TO RELEASE DEVICE AND EXIT 



260 17 

262 17 

262 17 

262 17 

262 17 

263 17 



000000 
000000 
000000 
GuJOOO 
000000 
000000 
000000 
000000 



00 034424* 
00 000003 
00 000002 
00 000001 

00 ooocoo 

00 000000 



002000 
002000 
000000 
102000 
002000 
000000 
000000 
000000 



PEKIOX: GO 
GET 
GET 
GET 
GET 
RTN 



.REL 

3 

2 

1 




.•RELEASE THE DEVICE 
.•RESTORE THINGS 



;AND EXIT 

.•TABLE FOR OFFSET REGISTER CONTENTS IN THIS TEST 
OFRG: 



002000 
002000 
000000 
102000 
002000 
000000 
000000 
000000 



PAGE 



RP04 HCI=1 

RP06 HCI=1 

SPARE 

RP07 (600 MB) CM0D=HCI=1 

RM03 HCI=1 

SPARE 

RP20 (T0PS10) 

RP20 (TOPS20) 



- ■- % 



OFRPM RP07/6/5/4 ExercUer 
DFRPM MAC 



>/4 ExercUer 
12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-115 



r 



PEEK - UTILITY TO DISPLAY RAW DISK DATA 



SHi 



SEQ 0246 



DFRPM 
DFRPW 



DFRPM 


RP07/6/5/4 Exerciser MACRO 


J:53B(1242) 19:36 12-SeD- 


-85 Page 1-115 
DISK DATA SEQ 0246 


DFRPM 


MAC 


12-Sep-85 17:02 PEEK - 


UTILITY 


TO DISPLAY RAW 


6085 




1 


•SUBROUTINE TO 


CONTROL THE PRINTING OPTIONS. THE TASK IS TO GET THE DATA 


6086 






[PRINTED THAT 1 


JAS JUST READ INTO CORE BY PEEKIO. 


6087 














6088 




. 1 


;CALL 


SEQ: 






6089 




1 




GO 


PEEKPT 


.-THE CALL 


6090 




1 




RTN-1 




;THE RETURN 


6091 














6092 


036352 


261 17 00 000000 PEEKPT 


: PUT 





.•SAVE THE AC 


6093 


036353 


200 00 00 030724 




HOVE 


O.BUFIA 


;GET BUFFER ADDRESS 


6094 


036354 


202 00 00 036327* 




novEM 


0,ADR1 


.•SAVE IN A POINTER LOCATION 


6095 


036355 


037 00 00 030242 




PC^L 






6096 


036356 


037 00 00 030242 




^ ^iL 






6097 


036357 


260 17 00 034114* 




JO 


IDENT 


.•PRINTS RH AND DRIVE NUMBERS 1 


6098 


036360 


030 00 00 043277' 




TEXT 


CASCIZ/ SERIAL NO. = /] 


6099 


036361 


200 00 14 000017 




MOVE 


0,R10D(DSW} 


;GET SERIAL NUMBER 


6100 


036362 


260 17 00 000000* 




GO 


PNTBCD 


;PRINT U 


6101 








TEXT 


CASCIZ/ 


t 


6102 


036363 


030 00 00 043303- 1 


lYL = 


/] 




- 


6103 


036364 


200 00 00 036326* 




novE 


0,CYL1 


;GET CYLINDER NUMBER 


6104 


036365 


260 17 00 036227* 




GO 


POCDEC 


.•PRINT IT. 1 


6105 


036366 


030 00 00 043305' 




TEXT 


CASCIZ/ SURF 


= n 


6106 


036367 


200 00 00 036323* 




novE 


O.SURFl 


.-GET SURFACE NUMBER 


6107 


036370 


260 17 00 036365* 




GO 


POCDEC 


.•PRINT U 


6108 


036371 


037 00 00 030242 




PCRL 






6109 














6110 


036372 


200 00 00 036313* 




HOVE 


0.CMD4 


.-GET FUNCTION 


6111 


036373 


326 00 00 036376 




JUMPN 


O.PEKPTl 


.•JUMP IF NOT A TD OPERATION 


6112 


036374 


260 17 00 036411 




GO 


PKPTTD 


;G0 PRINT TD INFORMATION 


6113 
6114 
6115 


036375 


254 00 00 036406 




JRST 


PEKPTX 


;AND THEN EXIT 


036376 


3uc 00 00 000002 1 


'EKPT1 


: CAIN 


0,2 


;DATA FIELD ONLY ? 


6116 


036377 


254 00 00 036405 




JRST 


piKPT2 


.•YES. JUMP. 


6117 


036400 


260 17 00 036427 




GO 


PKPTHD 


.•NO. PRINT HEADER FIELD 


6118 


036401 


302 00 00 000003 




CAIE 


0,3 


.-WANT DATA FIELD ALSO ? 


6119 


036402 


254 00 00 036406 




JRST 


PEKPTX 


.•NO. EXIT 


6120 


036403 


200 00 13 036316* 




MOVE 


0,CWHDC(X1) 


.•YES. ADJUST BUFFER POINTER 


6121 


036404 


212 00 00 036354* 




ADDM 


0.ADR1 


;BY SIZE OF HEADER FIELD 


6122 














6123 


036405 


260 17 00 036450 I 


'EKPT2 


: 50 


PKPTDA 


;PRINT DATA FIELDS 


6124 


036406 


I 


>EKPTX 


: TEXT 


CASCIZ/ 




6125 




: 


:z:i==z: 






■ • '■'::': ^ -■■■-:■ ;■.■''■'■.•■"■', 


6126 














6127 


036406 


030 00 00 043307' 











6128 


036407 


262 17 00 000000 
?.^ 17 00 000000 




GET 





; RESTORE THE AC 


6129 
6130 
6131 


036410 




RTN 




;AND EXIT 








PAGE 




" \ : ^\ - ■*'•' 



DFRPM RP07/6/5/4 Exerciser 
DFRPM MAC 12-Sep-85 17:02 



MACRO J;53B(1242) 19:36 12-Sep-85 Page 1-116 



PEEK - UTILITY TO DISPLAY RAU DISK DATA 



8ai 



SEQ 0247 



DFRPM 
DFRPM 

6132 
6133 
6134 
6135 
6136 
6137 
6138 
6139 
6U0 
6U1 
6142 
6143 
6144 
6145 
6146 
6147 
6148 
6149 
6150 
6151 
6152 
6153 
6154 
6155 
6156 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



036411 
036412 



036413 
036414 
036415 
036416 
036417 
036420 
036421 
036422 
036423 
036424 
036425 
036426 



MACRO J:538(1242) 19:36 12-Sep-85 Page 1-116 
PEEK - UTILITY TO DISPLAY RAW DISK DATA 

.•SUBROUTINE TC PRINT TRACK DESCRIPTOR FIELD IN CORE AT ADR1 



SEQ 0247 I 



.-CALL SEQ: 
GO 
RTN-1 



PKPTTD 



261 17 00 000000 
261 1? 00 000001 



PKPTTD; 



030 00 
210 01 
514 01 
540 01 
200 00 
037 13 
030 00 
253 01 
037 00 
262 17 

262 17 

263 17 











01 

















00 043312' 
13 036265* 
00 000001 
00 036404* 
000000 
00 000000 
00 042732' 
00 036417 
00 030242 
00 000001 
00 000000 
00 000000 



PUT 

PUT 1 

TEXT CASCIZ/ 
TRACK DESCRIPTOR 
/] 

novN 

HRLZ 

HRR 

HOVE 

PNTHW 

TEXT 

AOBJN 

PCRL 

GET 

GET 

RTN 

PAGE 



PTD1 



1,CWRT0(X1) 
1.1 

1 ,ADR1 
0.(1) 

CASCIZ/ /] 
1.PTD1 

1 




;THE CALL 
;THE RETURN 



.-SAVE AC'S 



;6ET # WORDS IN TD 

;-WC.,0 

;-WC.. POINTER 

; FETCH A WORD 

.•PRINT IN HALF WORD 

.-TAB OVER 

;L00P UNTIL DONE 

.•RESTORE AC'S 

:AND EXIT 



DFRPM 
DFRPM 

6632 
6633 
6634 
6635 
6c36 
6637 
6638 
6639 
6640 
6641 
6642 
6643 
6644 
6645 
6646 
6647 
6648 
6649 
6650 
6651 
6652 
6653 
6654 
6655 
6656 
6657 
6658 
6659 
6660 
6661 
6662 
6663 
6664 
6665 
6666 
6667 
6668 
6669 
6670 
6671 
6672 
6673 
6674 
6675 
6675 
6(^77 
66/8 
o679 
6680 
6681 
6682 
6683 



DFRPM 
DFRPM 

6157 
6158 
6159 
6160 
6161 
6162 
6163 
61 6A 
6165 
6166 
6167 
6168 
6169 
6170 
6171 
6172 
6173 
61 7A 
6175 
6176 
6177 
6178 
6179 
6180 
6181 
6182 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



036A27 
036430 

036431 
036432 
036A33 
036A3A 
036A35 
036A36 
036A37 
036AA0 
036AA1 
036AA2 
036AA3 
036AAA 
036AA5 
036AA6 
036AA7 



MACRO :53B(12A2) 19:36 12-Sep-85 Page 1-117 
PEEK - UTILITY TO DISPLAY RAW DISK DATA 

SUBROUTINE TO PRINT HEADER FIELD IN CORE AT ADRl 



SEQ 02A8 



DF 
DF 



CALL SEQ: 
GO 
RTN-1 



261 17 00 000000 
261 17 00 000001 



030 00 
200 00 
260 17 
037 00 
210 01 
51A 01 
5A0 01 
200 00 
037 13 
030 00 
253 01 
037 00 
262 17 

262 17 

263 17 



00 0A3317' 
00 036325* 
00 036370* 
00 0302A2 
13 036A03* 
00 000001 
00 036A16* 
01 000000 
00 000000 
00 0A2732' 
00 036AA0 
00 0302A2 
00 000001 
00 000000 
00 000000 



PKPTHD: 



HEADER 



PHDl 



PUT 
PUT 
TEXT 
FIELD 
MOVE 
GO 

PCRL 
MOVN 
HRLZ 
HRR 
MOVE 
PNTHW 
TEXT 
AOBJN 
PCRL 
GET 
GET 
RTN 

PAGE 



PKPTHD 




1 

CASCIZ/ 
SECT = /] 
O.SECTl 
POCDEC 



l.CWHDC(Xl) 
U 

l.ADRl 
0,(1) 



CASCIZ/ 
1.PHD1 

1 




/] 



;THE CALL 
;THE RETURN 

.•SAVE AC'S 



GET SECTOR NUMBER 
PRINT IT 

GET * WORDS IN HEADER 

-WC.,0 

-WCPOINTER 

FETCH A WORD 

PRINT IN HALF WORD 

TAB OVER 

LOOP UNTIL DONE 

RESTORE AC'S 

;AND EXIT 



DFRPM RP07/6/5/A Exerciser 
VRPM MAC 12-Sep-85 17:02 



MACRO I538(12A2) 19:36 12-Sep-85 Page 1-118 
PEEK - UTILITY TO DISPLAY RAW DISK DATA 



r 



SEQ 02A9 



I 



DFI 

OFI 



L 



DFRPM 
OFRPM 

6183 

6184 

6185 

6186 

6187 

6188 

6189 

6190 

6191 

6192 

6'. 93 

6194 

6195 

6196 

6197 

6198 

6199 

6200 

6201 

6202 

6203 

6204 

6205 

6206 

6207 

6208 

6209 

6210 

6211 

6212 

6213 

6214 

6215 

6216 

6217 

6218 

6219 

6220 

6221 

6222 

6223 

6224 

6k25 

6226 

6227 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



>28 
29 
\10 

^31 
^32 
133 



036450 
036451 
036452 
036453 

036454 
036455 
036456 



036457 
036460 
036461 
036462 
036463 



036464 
036465 
036466 
036467 

036470 
036471 
036472 
036473 
03J474 
03('475 
036476 
036477 
036500 



036501 
036502 
036503 
036504 
036505 
036506 



MACRO 3:538(1242) 19;36 12-Sep-85 Page 1-118 
PEEK - UTILITY TO DISPLAY RAU DISK DATA 

.•ROUTINE TO PO'NT DATA FIELDS FROM DATA STORED STARTING AT ADR1 

;THE STAR'ING WORD NUMBER IS IN TEMA 

;THE TOTAL NUMBER OF WORDS TO PRINT IS IN TEMB 



;THE CALL 
;THE RETURN 

.-SAVE AC'S 



SEQ 0249 



DFi 
0F( 







;CALL 


SEQ: 
60 

RTN-1 


PKPTDA 


261 17 00 OOOOOO 
261 17 00 000001 
261 17 00 000002 
261 17 00 000003 

030 00 00 043324' 
200 00 00 036432* 
260 17 00 036433* 


PKPTDA: PUT 

PUT 1 

PUT 2 

PUT 3 

TEXT CASCIZ/ 
DATA FIELD SECT = /3 

MOVE 0,SECT1 

GO POCDEC 






;D0 SOME INITIALIZATION 


210 01 
514 01 
540 01 
270 01 
200 02 


00 030770 
00 000001 
00 036437* 
00 030767 
00 030767 




MOVN 

HRLZ 

HRR 

ADD 

MOVE 


I.TEMB 
U 

1.ADR1 
1.TEMA 
2. TEMA 






.•ENTER 


THE PRINT LOOP 


201 03 
037 00 
200 00 
2o-' 17 


00 000004 
00 030242 
00 000002 
00 035750* 


PTDA1 : 


MOVE I 
PCRL 
MOVE 
GO 


3.4 

0.2 
PSDN 


030 00 00 042732' 
200 00 01 OOOOOO 
037 13 00 OOOOOO 
271 02 00 000001 
275 03 00 000001 

253 01 00 036477 

254 00 00 036501 
322 03 00 036464 
254 00 00 036470 


PTDA2: 


TEXT 

MOVE 

PN7HW 

ADDI 

SUBI 

AOBJN 

JRST 

JUMPE 

JRiT 


CASCIZ/ /] 
0,(1) 

1..-^2 
PTDCX 
3,PTDA1 
PTDA2 






.•EXIT 


CODE 




037 00 00 030242 
262 17 00 000003 


PTDEX: 


PC 


L 

• 
• 

1 


i 






SU6TTL 


PAKJ 
XL. 

PA( 


[NT • 
ST 
>T 

;e 


- MEDIA INIT 



.-GET SECTOR 
.•PRINT IT 



- # OF WORDS TOTAL 

- # OF WDS..0 

- # OF WDS.,ADDR 

POINT TO CORRECT STARTING WORD 
GET WORD NUMBER OF FIRST WORD 



HOLDS # OF ENTRIES PER LINE 
ADVANCE TO NEXT LINE 
GET CURRENT WORD 
PRINT 

TAB OVER 

FETCH A DATA WORD 

PRINT HALF WOPDS 

INCREMENT CURRENi WORD NUMBER 

DECREMENT LINE ENTRY COUNTER 

SKIP IF NOT DONE 

DONE. TO EXIT CODE 

TIME FOR NEW LINE 

TIME FOR NEXT ENTRY 



.•RESTORE AC'S 



.•EXIT 



OFRPM 
OFRPM 



RP07/6/5/4 
MAC 



Exerciser 
12-Sep-85 17:02 



MACRO X33B(1242) 19:36 12-Sep-85 Page 1-119 
PAKINT - MEDIA INITIALIZER 



SEQ 0250 



DFR 
DFR 



J 



0237 



DFRPM 
DFRPM 

6238 
6239 
62A0 
6241 
62A2 
6243 
62A4 
6245 
6246 
6247 
6248 
6249 
6250 
6251 
6252 
6253 
6254 
6255 
6256 
6257 
6258 
6259 
6260 
6261 
6262 
6263 
6264 
6265 
6266 
6267 
6268 
6269 
6270 
6271 
6272 
6273 
6274 
6275 
6276 
6277 
6278 
6279 
6280 
6281 
6282 
6283 
6284 
6285 
6286 
6287 
6288 

6290 
6291 
6292 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



036507 
036510 

036511 
036512 
036513 
036514 
036515 
036516 
036517 
036520 
036521 
036522 
036523 
036524 



036525 
036526 
036527 
036530 
036531 
036532 
036533 



036534 
036535 
036536 
036537 
036540 
036541 



336 00 00 030731 
254 00 00 036513 



031 00 
254 00 
476 00 
260 17 
254 00 








260 U 
00 



254 00 
25'^ 00 

260 17 

261 " 



17 



00 043331 • 
00 036557 
00 030755 
00 036104* 
00 036557 
00 036106* 
00 036514 
00 036557 
00 036514 
" 037722 







476 00 00 030765 



00 
00 



030735 



200 00 
202 00 

201 00 

202 00 
260 17 
332 00 
254 00 



00 043342* 
00 03073' 
00 000001 
00 030735 
00 033321 
00 030737 
00 036556 



200 00 00 043343' 
00 030734 



?02 00 




MACRO Xi3B(1242) 19:36 12-Sep-85 Page 1-119 
PAKINT - MEDIA INITIALIZER 

$•• ******************»♦♦♦*******♦*♦***♦*♦♦*♦♦♦♦****♦***♦*****•**♦****♦♦*• 
:* PAKINT - - ROUTINE TO INITIALIZE THE MEDIA 

S*; ******* **************rf*****«»********«************************* ******* 



SEQ 0250 



COrWENT $ 



THIS ROUTINE POES NOT RUN IN VARIABLE MODE. THIS IS CALLED LIKE 
ANY TEST BUT IS ACTUALLY A LITTLE TEST DISPATCHER THAT LINKS 
THE ROUTINES "FORMAT". "RONLY". AND 'WAPOUT" TOGETHER AS SUB-TESTS 
TO INITIALIZE, SCAN AND MAP THE MEDIA. THIS ROUTINE SUPPLIES THE 
DRIVE SELECTION AND TEST INITIALIZATION FOR THE SUB-TESTS. IT 
SETS A FLAG CALLED 'T»KIFL6" SO THE SUBTESTS WILL OPERATE CORRECTLY 
WHEN CALLED FROM HERE. 



CALL SEQ: 

GO PAKINT 

RTN 

$ 

XLIST 

LIST 



.•CALL THE ROUTINE 
;THE RETURN 



DFR 
DFR 

6 
6 
6 
6 
6 
6 
6 
6 
6 
6 
6 
6 
6 
6 
6 
6 
6 
6 
6 



PAKINT: SKIPN 
JRST 



n 

PAKIG: 
PAKISi 



PAKIL; 



TEXTF 

JRST 

SETOM 

GO 

JRST 

GO 

JRST 

JRST 

JRST 

60 

PUT 

SETOM 



VARFLG .-ARE WE IN VARIABLE MODE ? 

PAKIG ;N0. 

CASCIZ/"PAKINT" DOES NOT RUN IN VARIABLE MODE 



PKIX2 

SELFLG 

SELECT 

PKIX2 

STATCK 

PAKJS 

PKIX2 

PAKIS 

TINT 

TSTITR 

PKIFLG 



EXIT 

INIT DRIVE SELECT ROUTINE 

SELECT A DRIVE FOR TEST 

TRIED ALL. EXIT 

CHECK DRIVE STATUS FROM DSW 
♦1 NOT USEABLE OR OFF-LINE 
+2 WRITE PROTECTED (VARIABLE MODE) 
+3 WRITE PROTECTED (MAN OR DEF MODE) 
♦4 PASSED CHECKS. INITIALIZE THE TEST. 

SAVE PAKIr/ ITERATION COUNT 

SET FLAG FOR FORMAT. RONLY, MAPOUT 



.-CODE TO CALL FORMAT 



MOVE 

MOVEM 

MOVE I 

MOVEM 

GO 

SKIPE 

JRST 



O.CSIXBIT/FORMAT/] 



O.ST. NAM 

0. TSTITR 
FORMAT 
ALTF 
PKIX1 



SAVE AS SUBTEST NAME 

GET ITERATION COUNT 

NUMBER OF ITERATIONS FOR FORMAT 

DO THE FORMAT OPERATION 

DO WE HAVE AN ALTMODE ? 

YES GET OUT ... 



.-CODE TO CALL RONLY 



MOVE Q.CSIXBIT/RONLY/] 

MOVEM 5. ST. NAM ;! 

MOVEI 6.1 ;( 

MOVEM O.TSTlTR ;f 

GO RONLY ;t 

SKIPE ALTF ;[ 



SAVE AS SUBTEST NAME 

GET ITERATION COUNT 

NUMBER OF ITERATIONS FOR RONLY 

DO THE RONLY OPERATION 

DO WE HAVE AN ALTMODE ? 



riirt mv i Pit y w*i 6p ■ 



}238 



I DFRPM 
DFRPM 



RP07/6/5/4 Exer 
MAC 



/4 Exerciser 
12-Sep-85 17:02 



MACRO J;53B(1242) 19:36 12-Sep-85 Page 1-120 
PAKINT - MEDIA INITIALIZER 






SEQ 0251 



DFRI 
DFRI 



.... _- 



0238 



DFRPM 
DFRPM 

6293 
629A 
6295 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 

0365A2 254 00 00 036556 



MACRO 3:538(1242) 19:36 12-Sep-85 Page 1-120 
PAKINT - MEDIA INITIALIZER 



SEQ 0251 



JRST 
PAGE 



PKIXl 



.-YES GET OUT 



r" 



)239 



DFRPM RP07/6/5/4 Exerciser 
DFRPM MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-121 
PAKINT - MEDIA INITIALIZER 



SEQ 0252 



)239 



OFRPM 
OFRPM 

6296 
6297 
6298 
6299 
6300 
6301 
6302 
6303 
630A 
6305 
6306 
6307 
6308 
6309 
6310 
6311 
6312 
6313 
63U 
6315 
6316 
6317 
6318 
6319 
6320 
6321 



RP07/6/5/A Exerciser 
MAC 12-Sep-85 17:02 



036543 
0365A4 
036545 
036546 
036547 
036550 
036551 



200 00 
202 00 



201 00 

202 00 
260 17 
332 00 
254 00 



00 043344' 
00 030734 
00 000001 
00 030735 
00 036560 
00 030737 
00 036556 



MACRO 3:538(1242) 19:36 12-Sep-85 Page 1-121 
PAKINT - MEDIA INITIALIZER 

;COOE TO CALL MAPOUT 

MOVE O.CSIXBIT/MAPOUT/] 

MOVEM 0, ST. NAM .-SAVE AS SUBTEST NAME 

MOVEI 0,1 ;GET ITERATION COUNT 

MOVEM O.TSTITR .-NUMBER OF ITERATIONS FOR MAPOUT 

GO MAPOUT ;D0 THE MAPOUT OPERATION 

SKIPE ALTF ;D0 iJE HAVE AN ALTMODE ? 

JRST PKIX1 ;YES GET OUT ... 

.•RESTORE PAKINT ITERATION COUNT AND DEAL WITH IT 



SEQ 0252 



036552 262 17 00 030735 

036553 373 00 00 030735 

036554 254 00 00 036523 

036555 254 00 00 036514 



036556 262 17 00 030735 

036557 26! 17 00 000000 



GET 
SOSLE 
JRST 
JRST 

.-EXIT POINTS 



TSTITR 
TSTITR 
PAKIL 
PAKIS 



.•ITERATIONS FOR PAKINT 
.•DECREMENT AND SEE IF DONE 
.-NOT DONE.. 
.•DONE. SELECT NEXT DRIVE. 



PKIX1: 
PKIX2; 



GET 
RTN 



SUBTTL MAPOUT 
XLIST 
LIST 
PAGE 



TSTITR 

BAD SPOT MANAGEMENT UTILITY 



.•NECESSARY TO CORRECT STACK POINTER 
;EXIT 



1240 



OFRPM RP07/6/5/4 Exercistr 
DFRPH MAC 12-Sep-85 17:02 



MACRO X53B(1242} 19:36 12-Sep-85 Page 1-122 
MAPOUT - BAD SPOT MANAGEMENT UTILITY 



SEQ 0253 



2i^0 



DFRPM 
DFRPM 

6322 

6323 

632-!. 

6325 

6326 

6327 

6328 

6329 

6330 

6331 

6332 

6333 

6334 

6335 

6336 

6337 

6338 

6339 

6340 

6341 

6342 

6343 

6344 

6345 

6346 

6347 

6348 

6349 

6350 

6351 

6352 

6353 

6354 

6355 

6356 

6357 

6358 

6359 

6360 

6361 

6362 

6363 

6364 

6365 

6366 

6367 

6368 

6369 

6370 

6371 

6372 

6373 

6374 

6375 

6376 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-122 
MAPOUT - BAD SPOT MANAGEMENT UTILIT? 

S*- ********************************************************************** 
;* MAPOUT - - ROUTINE TO MANIPULATE BAD SPOTS ETC 

S*; ********************************************************************** 

COMMENT $ 

THIS ROUTINE ALLOWS YOU TO MANIPULATE A DATA BASE OF BAD SPOTS KEPT IN 
THE PROGRAM AND THEN WRITE ALL OR SOME OF THE ENTRIES TO THE BAT BLOCKS. 

THIS PROGRAM KEEPS TRACK OF DATA ERRORS BY DISK ADDRESS. EACH DATA ERROR 
WILL BE LOGGED IN THE DATA BASE ALONG WITH SOME ADDITIONAL STATUS INFO 
NEEDED BY THE PROGRAM. THE DATA BASE IN THIS PROGRAM HAS ROOM FOR A TOTAL 
OF 400 ERRORS (SEPARATE DISK ADDRESSES). 

EACH DATABASE ENTRY CONSISTS OF 3 WORDS. THE FIRST 2 ARE EXACTLY THE 
SAME AS A 2 WORD BAT BLOCK ENTRY. THE WORDS ARE BROKEN DOWN LIKE THIS: 

UORD-1 

BITS 00-08 CONTAIN THE NUMBER OF BAD BLOCKS IN A REGION - 1 

BIT 09 WILL BE SET IF THIS BLOCK WAS DETECTED ON MORE THAN 1 RH20 

BITS 10-17 CONTAIN (IN UNARY), THE DRIVES WHERE THIS BLOCK WAS LOCATED 

BITS 18-20 CONTAIN THE LOGICAL RH WHERE THE ADDRESS WAS FIRST LOCARED 

BIT 21 ALWAYS A 1. INDICATING A NEW STYLE BAT BLOCK 

BITS 22-35 CONTAINS THE SERIAL NUMBER OF THE APR 

WORD-2 

BITS 14-35 CONTAIN A 22 BIT LOGICAL BLOCK NUMBER OF FIRST BLOCK IN RFGION 



SEQ 0253 



WORD-3 



BIT 
BIT 
BIT 
BIT 
BIT 
BIT 
BIT 
BITS 



00 
01 
02 
03 
04 
05 
06 
08 



THIS BIT 

THIS BIT 

THIS BIT 

THIS BIT 

THIS BIT 

THIS BIT 

THIS BIT 
-14 BITS 



BEING SET WILL CAUSE ENTRY TO GO TO BAT BLOCKS 

SAYS OPERATOR FORCED BIT ZERO TO BE SET 

SAYS OPERATOR FORCED BIT ZERO TO BE RESET 

SAYS ENTRY WAS FOUND IN BAT BLOCK ON MEDIA 

SAYS ENTRY WAS FOUND BY THE PROGRAM 

SAYS ENTRY WAS MADE BY THE OPERATOR 

SAYS OPERATOR WANTS ALL ERRORS PRINTED FROM 



THIS 
THIS 
ERROR 



INDICATING WHAT TYPES OF ERRORS DETECTED AT 
BITS 18-26 NUMBER OF TIMES THIS ADDRESS WAS FOUND AS A HARD 
BIT 16 INDICATES THAT THE HARD ERROR COUNTER HAS OVERFLOWED 
BITS 27-35 NUMBER OF TIMES THIS ADDRESS WAS FOUND AS A SOFT ERROR 
BIT 17 INDICATES THAT THE SOFT ERROR COUNTER HAS OVERFLOWED 



ADDRESS 
ADDRESS 



THE MAPOUT ROUTINE ALLOWS THE USER 2 LEVELS OF COMMANDS. THE TOP LEVEL 
COMMANDS ALLOW YOU TO MANIPULATE THE DATA BASE IN A GLOBAL WAY. FROM 
THE TOP LEVEL THE USER HAS THE FOLLOWING COMMANDS AVAILABLE: 

LSTHRD - LIST ALL ENTRIES WITH BBU=1 (THE 1ST 61 OF THESE GO TO BAT BLOCKS) 

LSTSFT - LIST ENTRIES WITH BBU=1 (THESE DON'T GO TO THE BAT BLOCKS) 

LSTALL - LIST ALL ENTRIES 

CLRDB - CLEAR THE DATA BASE (ALL BAD SPOT DATA IS GONE) 

WRTBAT - WRITES BAT BLOCKS WITH ENTRIES WITH BBU=1. (1ST 61 ONLY) 

DONE - EXIT THE MAPOUT ROUTINE 

HELP - BLURB OF THIS LIST 

EDITL - GO TO NEXT COMMAND LEVEL "DATA BASE ENTRY/EDIT USING LOGICAL BLOCKS) 

EDITP - GO TO NEXT COMMAND LEVEL "DATA BASE ENTRY/EDIT USING PHYSICAL BLOCKS) 



241 



DFRPM 
DFRPM 



RP07/6/5/4 

MAC 



Exerciser 
12-Sep-85 17:02 



MACRO X536(1242) 
MAPOUT - BAD SPOT 



19:36 12-Sep-85 Page 1-123 
MANAGEMENT UTILITY 



SEQ 0254 



A1 



DFRPM 


RP07/6- 


DFRPM 


MAC 


6377 




6378 




6379 




6380 




6381 




6382 




6383 




638A 




6385 




6386 




6387 




6388 




6389 




6390 




6391 




6392 




6393 




639A 




6395 




6396 




6397 




6398 




6399 




6A00 




6401 




6402 




6403 




6404 




6405 




6406 




6407 




6408 




6409 




6410 




6411 




6412 




6413 




6414 




6415 




6416 




6417 




6418 




6419 




6420 




6421 




6422 




6423 




6424 


036560 


6425 


036561 


6426 




6427 


036562 


6428 


036563 
036564 


6429 


6430 


036565 


6431 


036566 



12-Sep-85 17:02 



332 00 00 030765 
254 00 00 036574 



476 00 

'60 17 Q Qi 

54 00 Q Oi 

60 U Q Qi 

?54 00 



00 



?30755 
36514* 
$6604 
6516* 
6563 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-123 
MAPOUT - BAD SPOT MANAGEMENT UTILIT? 



THE FOLLOWING WILL BE PRINTED FOR EACH MAPOUT ENTRY. 
WITH AN ASTERISK ARE PRINTED ONLY WHEN TH^'' APPLY. 



SEQ 0254 



LINES THAT START 



DFRP^ 
DFRP^ 

697 



RUNNING MAPOUT RH-XXX DRIVE-X RUNTIME (' -.MM:SS) XX:YY:ZZ 
MAPOUT ENTRY: RH-XXX DRIVE(S)-X MULTI-RH:YES APRID=XXXXX. 
LBN=000000(DDDDDDD.) CYL=0000(DDDD.) SURF=00(DD.) SECT=00(DD.) 
ENTRY CAME FROM: BAT PGM OPR BLOCKS IN REGI0N=XXX. 
HARD ERRORS DETECTED=XXXX. SOFT ERRORS DETECTED=XXXX. 

* ERRORS DETECTED: DCK OPI HCRC ECH 

* SOFT ERROR COUNTER HAS OVERFLOWED 

* HARD ERROR COUNTER HAS OVERFLOWED 

ENTRY WILL (NOT) BE PUT IN BAT BLOCK (OPR CANCELED UPDATE) 

* ERRORS FROM THIS ADDRESS WILL BE REPORTED 

EDITP AND EDITL ALLOW YOU TO EDIT INDIVIDUAL ENTRIES OF THE MAPOUT DATA BASE 
THE ONLY DIFFERENCE IS THAT IN ONE CASE YOU SELECT THE ENTRY BY LOGICAL BLOCK 
AND IN THE OTHER YOU SELECT THE ENTRY BY PHYSICAL ADDRESS CYC, SURF, SECT. 
IN ENTRY EDIT MODE YOU ARE REALLY DIDDLING A COPY OF THE DATA BASE ENTRY 
SO THERE'S NO NEED TO WORRY ABOUT DESTROYING IT. THE EDITS ONLY 60 BACK TO 
THE DATA BASE WHEN A "DONE" ORE "NEXT" COMMAND ARE EXECUTED. 

THE FOLLOWING COMMANDS ARE ALLOWED WHILE AT "ENTRY EDIT" LEVEL: 

LIST - LIST STATE OF THE CURRENT (EDITED) ENTRY 

MR - MODIFY REGION (# OF BAD BLOCKS IN REGION) 

HARD - SETS BBU=1, ENTRY BECOMES HARD ERROR AND WILL GO TO BAT BLOCK 

SOFT - SETS BBU=0, ENTRY BECOMES SOFT ERROR AND WILL NOT GO TO BAT BLOCK 

CLRERR - CLEAR ERROR STATUS INFO BITS 08-35 OF 3RD WORD 

PNT - ALLOWS FURTHER REPORTING OF ERRORS FROM THIS DISK ADDRESS 

NOPNT - INHIBITS FURTHER PRINTING OF ERRORS FROM THIS DISK ADDRESS 

CLRENT - CLEAR THIS ENTRY. THIS ADDRESS NO LONGER IN DATA BASE 

CANCEL - LEAVE ENTRY EDIT MODE AND DON'T UPDATE THE DATA BASE 

DONE - LEAVE ENTRY EDIT MODE AFTER UPDATING THE DATA BASE 

NEXT - UPDATE THE DATA BASE AND PROCESS ANOTHER ENTRY 

IN MANUAL AND DEFAULT MODE, MAPOUT MERELY WRITES THE DATA BASE ENTRIES 
WITH BBU=1 TO THE BAT BLOCKS. IT RUNS ON ALL THE SELECTED DRIVES. 

IN VARIABLE MODE, IT IS RUN ONLY ON THE FIRST DRIVE SELECTED AND BOTH 
DATA BASE INQUIRIES AND ENTRY EDITS ARE PROVIDED. 

$ 

XLIST 

LIST 



% 



MAPOUT: SKIPE 
JRST 



MAPS: 



SETOM 

GO 

JRST 

GO 

JRST 



PKIFLG 
MAPO 

SELFLG 

SELECT 

MAPX 

STATCK 

MAPS 



.•DOING PACK INIT ? 
;YES... 

;N0. INIT DRIVE SELECT I^OUTINE 
.-PICK A DRIVE FOR TEST 
.-TRIED ALL. EXIT. 
.•CHECK DRIVE STATUS FROM DSW 
; t1 NOT USEABLE OR OFF-LINE 



42 



DFRPM RP07/6/5/A Exerciser 
DFRPM MAC 12-Sep-85 17:02 



MACRO X53B(1242) 
MAPOUT BAD SPOT 



19:36 12-Sep-85 Page 1-124 
MANAGEMENT UTILITY 



■■"1 



SEQ 0255 



DFRPM 
DFRPM 



n 



42 



DFRPM 
OFRPM 

6A32 
6A33 
643A 
6A35 
6A36 
6A37 
6A38 
6A39 
6A40 
6A41 
6A42 
6AA3 
6AA4 
6A45 
6A46 
6A47 
6A48 
6A49 
6450 
6A51 



RP07/6/5/A Exerciser 
MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-124 
MAPOUT BAD SPOT MANAGEMENT UTILIT? 



SEQ 0255 



036567 
036570 
036571 
036572 
036573 
036574 
036575 
036576 
036577 
036600 
036601 
036602 



254 00 
254 00 
260 17 
332 00 
254 00 
200 01 
260 17 
332 00 
254 00 
336 00 
254 00 
254 00 



00 036604 
00 036563 
00 037722 
00 030731 
00 036603 
00 030724 
00 000000* 
00 030737 
00 036604 
00 030765 
00 036563 
00 036604 



MAPO: 



036603 260 17 00 000000* 

036604 263 17 00 000000 



MAPI; 
MAPX; 



JRST 

JRST 

GO 

SKIPE 

JRST 

MOVE 

GO 

SKIPE 

JRST 

SKIPN 

JRST 

JRST 

GO 
RTN 



MAPX 

MAPS 

TINT 

VARFLG 

MAPI 

1,BUF1A 

MAK8AT 

ALTF 

MAPX 

PKIFLG 

MAPS 

MAPX 

DBEDIT 



+2 WRITE PROTECTED (VARIABLE MODE) 
+3 WRITE PROTECTED (MAN OR DEF MODE) 
♦4 PASSED CHECKS. INITIALIZE THE TEST. 

IN VARIABLE MODE ? 

YES. GO INTO EDIT MODE 

GET BUFFER ADDR 

60 BUILD THE BAT BLOCKS FROM DATA BASE 

ALTMODE YET ? 

YES. EXIT 

DOING PAKINT ? 

NO. SELECT NEXT DRIVE 

YES. EXIT. 

IN VARIABLE MODE... 60 EDIT THE DATA BASE 
DONE. EXIT 



SUBTTL UTILITY TO MANUALLY BUILD TRACK DESCRIPTOR RECORDS 
XLIST 
LIST 
PAGE 






43 



OFRPM RP07/6/5/4 Exerciser 
DFRPM MAC 12-Sep-85 17:02 



MACRO X538(1242) 19:36 

UTILITY TO MANUALLY BUII D TRACK 



12-Sep-85 Page 1-125 
DESCRIPTOR RECORDS 



SEQ 0256 



43 



OFRPM 


RP07/6- 


DFRPM 


MAC 


6A52 




6453 




6A5A 




6A55 




6456 




6457 




6458 




6459 




6460 




6461 




6462 




6463 




6464 




6465 




6466 




6467 




6468 




6469 




6470 




6471 




6472 




6473 




6474 




6475 


036605 


6476 


036606 


6477 




6478 


036607 


6479 


036610 


6480 




6481 


036611 


6482 


036612 


6483 


036613 


6484 


036614 


6485 


036615 


6486 


036616 


6487 


036617 


6488 


036620 


6489 


036621 


6490 


036622 


6491 




6492 




6493 




6494 


036623 


6495 




6496 


036624 


6497 


036625 


6498 


036626 
036627 


6499 


6500 


0366: 


6501 


0366J 1 


6502 


036632 
036633 


6503 


6504 




6505 




6506 





12-Sep-85 17:02 



332 00 00 030731 
254 00 00 036611 

031 00 00 043345' 
254 00 00 036721 



201 01 
2ui 01 
476 00 
260 17 
254 00 
260 17 
254 00 
254 00 

254 00 

255 00 



00 036721 
00 030740 
00 030755 
00 036563* 
00 036721 
00 036565* 
00 036614 
00 036721 
00 036614 
00 000000 



254 00 1 13 036624 



000000 
000000 
000000 
000000 




)00000 



036614 
036614 
042304' 
036634 

042304' 

036614 

036614 



MACRO ):53B(1242) 19:36 12-Sep-85 Page 1-125 
UTILITY TO MANUALLY BUIl D TRACK DESCRIPTOR RECORDS 

$*• *****»»*»**»«**•♦***♦•♦*♦♦»•**»**♦♦*****♦***»****»♦»*♦»»•*••♦*♦*•♦***• 

;* TDBLD — UTILITY TO CREATE NEW TRACK DESCRIPTOR 

3*; ************************************************************ t********* 



SEQ 0256 



COMMENT $ 



THIS UTILITY RUNS IN VARIABLE MODE ONLY. IT UORLS ON SINGLE 
TRACKS AT A TIME. IT PERFORMS THE FOLLOWING: 

- USER CHOOSES CYLINDER AND SURFACE 

- READS EXISTING TD (IF POSSIBLE) AND PRINTS CONTENTS 

- ALLOWS USER TO SPECIFY ALL TD VARIABLE^ FOR NEW TD 

- WRITES THE USER SPECIFIED TD 

- REFORMATS TRACK ACORDING TO NEW TD 

- READS FULL TRACK OF DATA BACK AS A CHECK 



CALL SEQ: 



TDBLD: 



TDBSEL; 



$ 

XLIST 
LIST 

SKIPE 

JRST 

TEXTF 

JRST 

MOVE I 

MOVEM 

SETOM 

GO 

JRST 

60 

JRST 

JRST 

JRST 

JFCL 



GO TDBLD .-THE CALL 
RTN1 ; RE TURNS HERE 



VARFL6 ;ARE WE IN VARIABLE MODE 
.+3 .-YES... PROCEED 

CASCIZ/TDBLD - RUNS ONLY IN VARIABLE MODE 



TBX 

1.TBX 

I.ALTADD 

SELFLG 

SELECT 

TBX 

STATCK 

TDBSEL 

TBX 

TDBSEL 



.•EXIT 

GET EXIT ADDR 

SET UP ALTMODE VECTOR 

IN THE SELECT ROUTINE 

SELECT A DRIVE FOR TEST 

TRIED ALL. EXIT 

CHECK DRIVE STATUS FROM DSW 
♦1 NOT USEABLE OR OFF-LINE 
♦2 WRITE PROTECTED (VARIABLE MODE) 
♦3 WRITE PROTECTED (MAN OR DEF MODE) 
♦4 PASSED CHECKS. INITIALIZE THE TEST. 



.•CODE TESTS FOR RP07 ANY OTHER DRIVE WILL CAUSE ANOTHER SELECT 



JRST aTDBR(Xl) 

TDBR: TDBSEL 
TDBSEL 
[RTN] 
TDB60 
TDBSEL 
[RTNJ 
TDBSEL 
TDBSEL 



BRANCH ACCORDING TO DRIVE TYPE 

RP04 

RP06 

SPARE 

RPQ7 (600MB) OK 

RM03 

SPARE 

RP20 (T0PS10) 

RP20 (TOPS20) 



;WE ARE HERE BECAUSE WE'VE GOT AN RP07 



;4 



OFRPM RP07/6/5/4 Exerciser 
OFRPM MAC 12-Sep-85 17:02 



MACRO 1538(1242) 19:36 12-Sep-85 Page 1-126 
UTILITY TO MANUALLY BUILD TRACK DESCRIPTOR RECORDS 



SEQ 0257 



;4 



DFRPH RP07/6/5/A Exerciser 
OFRPM MAC 12-Sep-85 17:02 



6507 


036634 


6508 


036635 


6509 


036636 


6510 


036637 


6511 


036640 


6512 


036641 


6513 


036642 


65U 


036643 


6515 


036644 


6516 


036645 


6517 


036646 


6518 


036647 


6519 


036650 


6520 


036651 


6521 


036652 


6522 


036653 


6523 


036654 


652A 


036655 


6525 


036656 


6526 


036657 


6527 




6528 




6529 




6530 


036660 


6531 


036661 


6532 


036662 


6533 


036663 


653A 


036664 


6535 


036665 


6536 


036666 


6537 


036667 


6538 


036670 


6539 


036671 


65A0 


036672 


65A1 


036673 


65A2 


036674 


65A3 


036675 


65A4 


036676 


6545 


036677 


6546 


036700 


6547 


036701 


6548 




6549 




6550 




6551 


036702 


6552 


036703 


6553 


036704 


6554 




6555 




6556 
6557 




036705 


6558 


m 


6559 


6560 


036710 
036711 


6561 



260 17 
201 02 
201 01 
260 17 
201 01 
201 02 
260 17 
260 17 
334 00 
037 01 
031 00 
260 17 
254 00 

254 00 

255 00 
550 02 
242 02 
504 02 
201 01 
260 17 



402 00 
514 03 
541 03 
550 02 
242 02 

504 02 
43S 02 
2\j' 01 

505 01 
200 00 
603 00 
661 01 
260 17 
260 17 
260 17 
254 00 
254 00 
255 



00 


















1 





00 037722 
00 000004 
00 036364* 
00 036177* 
00 036367* 
00 000000 
00 036637* 
00 036726 
00 000000 
00 030242 
00 043355* 
00 036160* 
00 036645 
00 036721 
00 000000 
00 036640* 
00 000010 
00 036636* 
00 036722 
00 000000* 



00 000011 
13 036414* 
00 036722 
00 036653* 
00 000010 
00 036655* 
00 000377 
00 000065 
00 100000 
00 036722 
00 040000 
00 040000 
00 036331* 
00 036332* 
00 036245* 
00 030740 
00 036660 
00 000000 



260 17 00 033424 
332 00 00 030737 
254 00 1 00 030740 



402 00 00 000011 
^01 01 00 000071 
00 03 Q 00 Q3Q725 
5Q4 03 Q 13 033211* 
550 02 00 036663* 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-126 
UTILITY TO MANUALLY BUILD TRACK DESCRIPTOR RECORDS 



SEQ 0257 



TOBGO: 



GO 

MOVE I 

MOVE I 

GO 

MOVE I 

MOVE I 

GO 

GO 

SKI PA 

PCRLF 

TEXTF 

GO 

JRST 

JRST 

JFCL 

HRRZ 

LSH 

HRL 

MOVE I 

GO 



TINT 

2.^ 

.CYL1 

NPUT 

.SURF1 
2.0 
INPUT 
TDSTAT 



INITIALIZE THE TEST 

DON'T ALLOW WRITE ON USER DATA 

VARIABLE TO INPUT 

GETS CYLINDER 

VARIABLE TO INPUT 

NO RESTRICTION ON SURFACE 

INPUT SURFACE 

READ AND REPORT STATE OF CURRENT TD 



CASCIZ/DO YOU STILL WISH TO MODIFY ?/] 



QSTN 
.-3 

TBX 

2. SURF 1 
2. -08 
2,CYL1 
1,TDB1 
TDINP 



.-WRITE TD... FROM BUFFER AT TDB1 



TDBA: 



SETZM 

HRLZ 

HRRI 

HRRZ 

LSH 

HRL 

lORI 

MOVE I 

HRL I 

MOVE 

TLNE 

TLO 



60 

JRST 
JRST 
JFCL 



ERFLG 

3,CWRTD(X1) 

3.TD81 

2. SURF 1 

2.*D8 

2.CYL1 

2.377 

1.65 

1.(1B?) 

0.TDB1 

0.(1B3) 

1,040000 

XFSTRT 

lOWAIT 

BRANCH 

aALTADD 

TDBA 



.•REFORMAT THE TRACK 



TDBFT; 



GO 

SKIPE 

JRST 



FMTTRK 

ALTF 

aALTADD 



ASK THE QUESTION 

TIMEOUT 

ANSWER IS NO 

ANSWER IS YES 

GET SURFACE 

SHIFT INTO POSITION 

CYL.,SURF.O 

POINTER TO BUFFER 

INPUT TD DATA FROM USER 



CLEAR THE ERROR FLAG 

WC..0 

WC..ADDR 

0.,SURF 

0,,SURF,0 

CYL.,SUfiF.SECT=0 

CYL..SURF,SECT=377 

COMMAND TO WRITE TD 

SETS COMMAND MODIFIER 

GET 1ST WORD OF TD FROM BUFFER 

WANT TD MOVED ? 

YES... SET OFFSET REGISTER FLAG 

START THE TRANSFER 

WAIT UNTIL DONE 

TEST CONDITIONS 

ALTMODE STRUCK 

LOOP ON ERROR 

CONTINUE 



FORMAT THE TRACK 
ALTMODE STRUCK ? 
YES. GET OUT 



.•READ THE TRACK BACK INTO BUF2 TO SEE IF IT WORKED 



TDBRD: 



SETZM 
MOVE I 
MOVE 
HRL 
HRRZ 



ERFLG 

3.BUF2A 
3.CWFTD(X1) 
2. SURF 1 



CLEAR THE ERROR FLAG 
GET A READ COMMAND 
GET 0. .BUFFER ADDR 
GET WC..ADDR 
GET SURFACE 



OFRPM RP07/6/5/4 Extrciser 
DFRPM MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-127 
UTILITY TO MANUALLY BUILD TRACK DESCRIPTOR RECORDS 



Xa 0258 



r 



DFRPM 
DFRPM 

6562 
6563 
656A 
6565 
6566 
6567 
6568 
6569 
6570 
6571 
6572 
6573 
6574 
6575 
6576 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-1?7 
UTILITY TO MANUALLY BUILD TRACK DESCRIPTOR RECORDS 



SEQ 0258 



036712 
036713 
0367K 
036715 
036716 
036717 
036720 
036721 



036722 



21^1 02 
504 02 
260 17 
260 17 
260 17 
254 00 
254 00 
263 17 



00 000010 
00 036665* 
00 036674* 
00 036675* 
0.00 036676* 



00 
00 



030740 
036660 



00 000000 



TBX; 



LSH 

HRL 

GO 

GO 

GO 

JRST 

JRST 

RTN 



2.*D8 

2,CYL1 

XFSTRT 

lOUAIT 

BRANCH 

aALTADD 

TD8A 



.♦SHIFT INTO POSITION 
;CYL.,SURF.O 
.•START THE TRANSFER 
.•WAIT UNTIL DONE 
.•TEST CONDITIONS 
;ALTMODE WAS STRUCK 
.-LOOP ON ERROR 
;EXIT .... 



;HERE IS THE LOCAL BUFFER FOR STORING THE NEW TD... 
TDB1: BLOCK 4 ;4 WORD BLOCK 

PAGE 



DFRPM RP07/6/5/4 Exerciser 
DFRPM MAC 12-StfD-85 17:02 



MACRO X53B(1242) 19:36 
UTILITY TO MANUALLY BUILD 



12-Sep-85 P«ge 1-128 
' TRACK DESCRIPTOR RECORDS 



SEO 0259 



L 



, DFRPM 


RP07/6 


DFRPM 


MAC 


6577 




6578 




6579 




6580 




6581 




6582 




6583 


036726 


658A 


036727 


6585 


036730 


6586 


036731 


6587 




6588 




6589 




6590 




6591 


036732 


6592 


036733 


6593 


03673A 


659A 


036735 


6595 


036736 


6596 




6597 


036737 


6598 


0367A0 


6599 


036741 


6600 


036742 


6601 


036743 


6602 


036744 


6603 


036745 


6604 


036746 


6605 


036747 


6606 


036750 


6607 


036751 


6608 


036752 


6609 


036753 


6610 


036754 


6611 


036755 


6612 




6613 




66K 




6615 




6616 


036756 


6617 




6618 




6619 


036757 


6620 


036760 


6621 


036761 


6622 


036762 


6623 


036763 


662A 


036764 




036765 


6626 


036766 


6627 


036767 


6628 


036770 


6629 
6630 


036771 


036772 
036773 


6631 



12-Sep-85 17:02 



261 17 00 000000 

261 17 00 000001 

261 17 00 000002 

261 17 00 000003 



200 01 00 030724 



402 00 01 



402 00 
402 00 
402 00 

402 00 

200 03 
504 03 
550 02 
242 02 

504 02 
435 02 

201 01 

505 01 
260 17 
2o-> 17 
260 17 
254 00 

254 00 

255 00 



01 
01 
01 



000000 
000001 
000002 
000003 



00 000011 
00 030724 
13 036661* 
00 036711* 
00 000010 
00 036713* 
00 000377 
00 000075 
00 100000 
00 036714* 
00 036715* 
00 036716* 
00 037040 
00 036737 
00 000000 












200 02 00 030724 



00 
00 

17 

00 



031 
135 
260 
031 . 
135 00 
260 17 
037 01 
200 01 
607 01 
254 00 
603 Qi 
031 00 
603 01 



00 
00 
00 
00 
00 
00 
00 
02 
00 
00 
00 



Uf 



043363' 

043375' 

035731* 

043374' 

043377' 

036761* 

030242 

000000 

UOQQO 

036776 

04Q00Q 

043400 • 

100000 



MACRO 2538(1242) 19:36 12-Sep-85 Page 1-128 
UTILITY TO MANUALLY BUILD TRACK DESCRIPTOR RECORDS 

READ THE TD FOR CYLl. SURF1 INTO CORE AT BUF1 AND REPORT ITS CONTENTS 



SEC 0259 



CALL SEQ: 
GO 
RTN1 

TDSTAT: PUT 

PUT 
PUT 
PUT 



TDSTAT 




1 
2 
3 



.-THE CALL 
;RTN+1 

.•SAVE AC'S 



.•FIRST ZERO 1ST 4 UDS OF BUFFER SO WE'RE SHURE THAT WHAT WE READ 
;UAS ACTUALLY FROM THE MEDIA 



TRLOOP: 



HOVE 

SETZM 

SETZM 

SETZM 

SETZM 

SETZM 

MOVE 

HRL 

HRRZ 

LSH 

HRL 

lORI 

MOVE I 

HRL I 

GO 

GO 

GO 

JRST 

JRST 

JFCL 



1.8UF1A 

0(1) 

1(1) 

2(1) 

3(1) 

ERFLG 

3. SUFI A 

3.CWRTD(X1) 

2.SURF1 

2.*D8 

2. CYLl 

2.377 

1.75 

1.(182) 

XFSTRT 

lOWAIT 

BRANCH 

TDSTX 

TRLOOP 



.•POINTER TO BUFFER 
.•CLEAR 1ST 4 LOCATIONS 



CLEAR THE ERROR FLAG 
GET BUFFER ADDR 
WC-.ADDR 
GET SURFACE 
POSITION IT 
CVL..SURF.0 
CYL,.SURF.SECT=377 
A READ TD COMMAND 
SET COMMAND MODIFIER 
START THE TRANSFER 
WAIT TILL DONE 
TEST CONDITIONS 
ALTMODE STRUCK 
LOOP ON ERROR 
CONTINUE 



BIT 



;NOW REPORT THE DATA FROM THE TD 

.•THIS ALWAYS PRINTS SOMETHING. EVEN IF TD ENREADABLE 



TDRPT: MOVE 
TEXTF 

DATA CURRENTLY 

CYL = /] 

LDB 

GO 

TEXTF 

LDB 

GO 

PCRLF 

MOVE 

TLNN 

JRST 

TLNE 

TEXTF 

TLNE 



2.BUF1A 
CAS' / 
IN ^ TD: 



.•POINTER TO START OF BUFFER 



0. NT 
POli^l 
CASCIZ/ 
0. [POINT 
POCDEF 



1.(2) 

KUOOOO 

RPD 

1,(183) 

CASCIZ/TD-HOVED 

1,(182) 



12. (2). 173 ;6T THE CYLINDEF 
.•PRINT FORCED 
SURF = /] 
8. (2). 27] ;GETS SURFACE 
PRINT FORCED 
TO NEXT LINE 
GET FIRST WORD 
SKIP IF EITHER AS MOVED 
GO REPORT DISPLACEMENTS 
CHECK FOR TD MOVED 
/] 
; CHECK FOR HO MOVED 



DFRPH RP07/6/5/4 Exerciser 
OPRPM MAC 12-Si»D-85 17:02 



MACRO 1538(1242) 19:36 12-Sep-85 Page 1-129 
UTILITY TO MANUALLY BUILD TRACK U:';'RIPT0R 



RECORDS 



SEO 0260 






DFRPM 
DFRPM 

6632 
6633 
663A 
6635 
6ci6 
6637 
6638 
6639 
66A0 
66A1 
66A2 
6643 
6644 
6645 
6646 
6647 
6648 
6649 
6650 
6651 
6652 
6653 
6654 
6655 
6656 
6657 
6658 
6659 
6660 
6661 
6662 
6663 
6664 
6665 
6666 
6667 
6668 
6669 
6670 
6671 
6672 
6673 
6674 
6675 
6675 
bhlf 
66/0 

6680 
6681 
6682 
6583 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO 1536(1242) 19:36 12-Sep-85 Page 1-129 
UTILITY TO MANUALLY BUILD TRACK ur^CRIPTOR RECORDS 



SEQ 0260 



036774 
036775 
036776 
036777 
037000 
037001 

037002 
037003 

037004 
037005 
037006 
037007 
037010 
037011 
037012 

037013 
037014 
037015 
037016 
037017 
037020 
037021 

037022 
037023 
037024 
037025 
037026 
037027 
037030 

037031 
037032 
037033 
037034 
037035 
037036 
037037 

03704O 
0370^1 
03704^ 
037943 
037044 



031 00 
037 01 
200 01 
434 01 
312 01 
254 00 



00 043403' 
00 030242 
02 000001 
02 000002 
00 042264' 
00 037004 



031 00 00 043405' 
254 00 00 037040 



031 00 
554 00 
302 00 
260 17 



00 
02 
00 
00 



306 00 00 



037 06 
037 01 

031 00 
550 00 
302 00 
260 17 
306 00 
037 06 
037 01 

031 00 
554 00 
302 00 
260 17 



00 
00 



043415' 

000001 

140000 

036764* 

140000 

000001 

030242 



00 043420' 
02 000001 
00 140000 
00 037007* 
00 140000 
00 000001 
00 030242 



bKjz 00 
037 06 
037 01 



00 043423' 
02 000002 
00 140000 
00 037016* 
00 140000 
00 000001 
0.0242 



GO 



031 00 00 
550 00 02 
302 00 00 
260 U 00 
306 00 00 
037 06 00 
037 01 00 



043426' 

000002 

140000 

037025* 

140000 

000001 

030242 



262 r 00 000003 
262 17 OC 000002 
262 17 QQ 000001 

262 17 r ^ QJOOOQ 

263 17 00 000000 



RPD: 

/] 
RPTDF 



TOSTX! 



TEXTF 

PCRLF 

MOVE 

I OR 

CAME 

JRS7 

TEXTF 

JRST 

TEXTF 

HLRZ 

CAIE 

GO 

CAIN 

PNT6F 

PCRLF 

TEXTF 

HRRZ 

CAIE 

GO 

CAIN 

PNT6F 

PCRLF 

TEXTF 

HLRZ 

CAIE 

GO 

CAIN 

PNT6F 

PCRLF 

TEXTF 

HRRZ 

CAIE 

GO 

CAIN 

PNT6F 

PCRLF 

GET 
GET 
GET 
btr 



casciz/ho-moved/] 

1.1(2) ;get 1st 2 displacements 
1,2(2) -include last 2 displacements 
1, [140000,, uoooOj .skip if all are null ... 

RPTDF 

CASCIZ/THERE are no DEFECT DISPLACEMENTS 



TDSTX 

[ASCIZ/DISP-*1 

0,1(2) 

0,140000 

POCDEF 

0,140000 



[ASCIZ/DISP-#2 

0,1(2) 

0,140000 

POCDEF 

0,140000 



CASCIZ/DISP-#3 

0,2(2) 

0,140000 

POCDEF 

0,140000 



.'THEN WE'RE DONE 

: /] 
GET 1ST DISPLACEMENT 

IS IT NULL ? 
NO 

IS IT NULL ? 

YES. PRINT IN OCTAL 



n 

GEr 2ND DISPLACEMENT 

IS IT NULL ? 

NO 

IS IT NULL ? 

YES. PRINT IN OCTAL 



/: 

GET 3RD DISPLACEMENT 

IS IT NULL ? 

NO 

IS IT NULL ? 

YES. PRINT IN OCTAL 



[ASCIZ/DISP- 

0.2(2) 

0.140000 

POCDEF 

0.140000 



3 

2 

1 




#4 = /] 

GET 4TH DISPLACEMENT 

IS IT NULL ? 

NO 

IS IT NULL ? 

YES. PRINT IN OCTAL 



;EKIT 



SUBTTL UTILITY TO MANUALLY BUILD TRACK DESCRIPTOR RECORDS 
XLIST 
LIST 
PAGE 



0248 



DFRPM 
DFRPM 

668A 

6685 

6686 

6687 

6688 

6689 

6690 

6691 

6692 

6693 

669A 

6695 

6696 

6697 

6698 

6699 

6700 

6701 

6702 

6703 

6704 

6705 

6706 

6707 

6708 

6709 

6710 

6711 

6712 

6713 

67U 

6715 

6716 

6717 

6718 

6719 

6720 

6721 

6722 

6723 

672A 

6725 

6726 

6727 

6728 

6729 

6730 

673^ 

6732 

6733 

6734 

6735 

6736 

6737 

6738 



RP07/6/5/A Exerciser 
MAC 12-Sep-85 17:02 



037045 
037046 

037047 
037050 

037051 
037052 
037053 
037054 
037055 
037056 
037057 
037060 
037061 
037062 



037064 
037065 
037066 
037067 
037070 
037071 
037072 
037073 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-130 
UTILITY TO MANUALLY BUILD TRACK DESCRIPTOR RECORDS 

$*• ******♦************♦***•********************************************♦' 
;* TD631 — UTILITY TO CREATE NEW TRACK DESCRIPTORON CYL-631 

S*; »*****************t*************************iV ************ *******•♦***' 



SEQ 0261 



DFI 
DFI 



COMMENT $ 



THIS UTILITY RUNS IN VARIABLE MODE ONLY. IT WORLS ON SINGLE 
TRACKS AT A TIME. IT PERFORMS THE FOLLOWING: 

- USER CHOOSES SURFACE 

- READS EXISTING TD (IF POSSIBLE) AND PRINTS CONTENTS 

- ALLOWS USER TO SPECIFY ALL TD VARIABLES FOR NEW TD 

- WRITES THE USER SPECIFIED TD 

- REFORMATS TRACK ACORDING TO NEW TD 

- READS FULL TRACK OF DATA BACK AS A CHECK 



CALL SEQ; 



332 00 00 030731 
254 00 00 037051 

031 00 00 043431* 
254 00 00 037160 



TD631 



$ 

XLIST 
LIST 

SKIPE 

JRST 

TEXTF 

JRST 



GO 
RTN1 



TD631 



201 01 

2ui 01 



00 
00 



476 00 00 
260 17 00 
254 00 00 



260 17 
254 00 
254 00 
254 00 



00 

00 
255 00 00 



037160 

030740 

030755 

036614* 

037160 

036616* 

037054 

037160 

037054 

000000 



MOVE I 
MOVEM 
SETOM 
TXBSEL: 60 
JRST 
60 
JRST 
JRST 
JRST 
JFCL 



VARFLG 

.♦3 

CASCIZ/TD631 

TXBX 

1 , TXBX 

1,ALTADD 

SELFLG 

SELECT 

TXBX 

STATCK 

TXBSEL 

TXBX 

TXBSEL 



;THE CALL 

; RE TURNS HERE 



;ARE WE IN VARIABLE MODE 
; YES... PROCEED 
RUNS ONLY IN VARIABLE MODE 

EXIT 



GET EXIT ADDR 

SET UP ALTMODE VECTOR 

IN THE SELECT ROUTINE 

SELECT A DRIVE FOR TEST 

TRIED ALL. EXIT 

CHECK DRIVE STATUS FROM DSW 
+1 NOT USEABLE OR OFF-LINE 
+2 WRITE PROTECTED (VARIABLE MODE) 
+3 WRITE PROTECTED (MAN OR DEF MODE) 
♦4 PASSED CHECKS. INITIALIZE THE TEST, 



.•CODE TESTS FOR RP07.... ANY OTHER DRIVE WILL CAUSE ANOTHER SELECT 



037063 254 00 1 13 037064 



000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 



037054 

037054 

042304* 

037074 

037054 

042304' 

037054 

037054 



JRST aTX8R(Xl) 

TXBR: TXBSEL 
TXBSEL 
[RTN] 
TXBGO 
TXBSEL 
CRTN] 
TXBSEL 
TXBSEL 



BRANCH ACCORDING TO DRIVE TYPE 

RP04 

RP06 

SPARE 

RPQ7 (600MB) OK 

RM03 

SPAf^E 

RP20 (T0PS10) 

RP20 (TOPS20) 



;WE ARE HERE BECAUSE WE'VE GOT AN RP07 



'"\ 



DFRPM 
DFRPM 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-131 
UTILITY TO MANUALLY BUILD TRACK DESCRIPTOR RECORDS 



SEQ 0262 



r 

jDFF 
DFfi 



L 



0249 



OFRPM 
DFRPM 

6739 
6740 
6741 
6742 
6743 
6744 
6745 
6746 
6747 
6748 
6749 
6750 
6751 
6752 
6753 
6754 
6755 
6756 
6757 
6758 
6759 
6760 
6761 
6762 
6763 
6764 
6765 
6766 
6767 
6768 
6769 
6770 
6771 
6772 
6773 
6774 
6775 
6776 
6777 
6778 
6779 
6780 
6781 
6782 
6783 
6784 
6785 
6786 
6787 
6788 
6789 
6790 
6791 
679: 
679 



RP07/6/5/4 bxerciser 
MAC 12-Sep-85 17:02 



037074 
037075 
037076 
037077 
037100 
037101 
037102 
037103 
037104 
037105 
037106 
037107 
037110 
037111 
037112 
037113 
037114 
037115 
037116 



037117 
037120 
037121 
037122 
037123 
037124 
037125 
037126 
037127 
037130 
037131 
037132 
037133 
037134 
037135 
037136 
03713' 
037140 



037141 
037142 
037143 



037144 
037145 
037146 
17147 
J7150 
17151 



17 
01 



260 
201 

202 01 
201 01 
201 
260 
260 17 
334 00 
037 01 
031 00 
260 17 
254 00 

254 00 

255 00 
550 02 
242 02 
504 02 
201 01 
260 17 



02 
17 



402 
514 
541 

550 02 
242 02 
504 02 
435 
201 
5u.-« 

200 00 
603 00 
661 01 
260 17 
260 17 
260 17 
254 00 1 
254 00 
c^55 00 



00 
03 
03 



02 
01 
01 



00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 



00 
13 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 

§§ 

00 
00 
00 



037722 

001167 

036744* 

036742* 

000000 

036642* 

036726 

000000 

030242 

043355' 

036647* 

037104 

037160 

000000 

037077* 

000010 

037076* 

037161 

036657* 



00001 1 

036741* 

037161 

037112* 

000010 

037114* 

000377 

000065 

100000 

037161 

040000 

040000 

036750* 

036751* 

036752* 

030/40 

037117 

000000 



260 17 00 033^24 
332 00 00 030737 
254 00 1 00 030740 



402 00 00 00001 1 
201 01 00 QQ0Q71 
2Q0 0} Q QQ Q|0725 
504 03 13 03671Q< 

242 02 00 000010 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-131 
UTILITY TO MANUALLY BUILD TRACK DESCRIPTOR RECORDS 



SEQ 0262 



TXBGO: 



60 

MOVE I 

HOVEM 

MOVE I 

HOVE I 

GO 

60 

SKI PA 

PCRLF 

TEXTF 

60 

JRST 

JRST 

JFCL 

HRRZ 

LSH 

HRL 

MOVE I 

GO 



TINT 

1,*D631 

1,CYL1 

1.SURF1 

2.0 

INPUT 

TDSTAT 



INITIALIZE THE TEST 

GET ISS CE CYLINDER NUMBER 

THIS BECOMES THE CYLINDER WE USE 

VARIABLE TO INPUT 

NO RESTRICTION ON SURFACE 

INPUT SURFACE 

READ AND REPORT STATE OF CURRENT TD 



DFR 
DFR 



[ASCIZ/DO YOU STILL WISH TO MODIFY ?/J 



QSTN 

.-3 

TXBX 

2. SURF 1 

2.-D8 

2.CYL1 

1,TXB1 

TDINP 



.•WRITE TD... FROM BUFFER AT TXB1 



TXBA: 



SETZM 

HRLZ 

HRRI 

HRRZ 

LSH 

HRL 

lORI 

MOVE I 

HRL I 

MOVE 

TLNE 

TLO 

GO 

GO 

GO 

Jr^ST 

JRST 
JFCL 



ERFLG 

3.CWRTD(X1) 

3.TXB1 

2. SURF 1 

2.*D8 

2.CYL1 

2.377 

1.65 

1.(1B2) 

O.TXBl 

0.(1B3) 

1,040000 

XFSTRT 

lOWAIT 

BRANCH 

aALTADD 

TXBA 



.•REFORMAT THE TRACK 



TX8F r : GO 

SKIPE 
JRST 



FMTTRK 

ALTF 

aALTADD 



ASK THE QUESTION 

TIMEOUT 

ANSWER IS NO 

ANSWER IS YES 

GET SURFACE 

SHIFT INTO POSITION 

CYL.,SURF.O 

POINTER TO BUFFER 

INPUT TD DATA FROM USER 



CLEAR THE ERROR FLAG 

WC.,0 

WC.ADDR 

6.. SURF 

O..SURF,0 

CYL.,SURF,SECT=0 

CYL.. SURF. SECT -377 

COMMAND TO WRITE TD 

SETS COMMAND MODIFIER 

GET 1ST WORD OF TD FROM BUFFER 

WANT TO MOVED ? 

YES... SET OFFSET REGISTER FLAG 

START THE TRANSFER 

WAIT UNTIL DONE 

TEST CONDITIONS 

ALTMODE STRUCK 

LOOP ON ERROR 

CONTINUE 



FORMAT THE TRACK 
ALTMODE STRUCK ? 
YES. GET OUT 



;READ THE TRACK BACK INTO BUF2 TO SEE IF IT WORKED 



TX6RD: 



SETZM 

MOVE I 

HOVE 

HRL 

HRRZ 

LSH 



:RFLG 

!.BUF2A 
I,CWFTD(X1) 
I.SURFl 
■,*D8 



CLEAR iHE ERROR FLAG 

GET A READ COMMAND 

GET O-.BUFFER ADOR 

GET WC,,ADDR 

6ET SURFACE 

SHIFT INTO POSITION 



0250 



DFRPM RP07/6/5/4 Exerciser 
OFRPH MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-132 
UTILITY TO MANUALLY BUILD TRACK DESCRIPTOR RECORDS 



SEQ 0263 



iDFRI 
OFRi 



L 



0250 



DFRPM 
DFRPM 

679A 
6795 
6796 
6797 
6798 
6799 
6800 
6801 
6802 
6803 
680^ 
6805 
6806 
6807 
6808 
6809 
6810 
6811 
6812 



RP07/6/5/A Exerciser 
MAC 12-Sep-85 17:02 



037152 
037153 
037154 
<j37155 
037156 
037157 
037160 



037161 



504 02 
260 17 
260 17 
260 17 
254 00 
254 00 
263 17 



00 037124* 
00 037133* 
00 037134* 
00 037135* 
00 030740 
00 037117 
00 000000 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-132 
UTILITY TO MANUALLY BUILD TRACK DESCRIPTOR RECORDS 

;CYL.,SURF,0 
; START THE TRANSFER 
.-WAIT UNTIL DONE 
;TEST CONDITIONS 
.•ALTMODE WAS STRUCK 
;LC0P ON ERROR 
TXBX: RTN ;EXIT .... 



.•HERE'S THE LOCAL BUFFER FOR STORING THE NEW TD. 
TXB1: BLOCK 4 ;A 4 WORD BLOCK 



SEQ 0263 



HRL 


2.CYL1 


GO 


XFSTRT 


GO 


lOWAIT 


GO 


BRANCH 


JRST 


aALTADD 


JRST 


TXBA 


RTN 





SUBTTL TDLIST 
XLIST 
LIST 
PAGE 



- UTILITY USED TO OBTAIN DEFECT INFORMATION FROM TD'S 



DFRF 
DFRF 

7; 

7] 
7] 

?; 

7; 
7 
7. 

r. 

7 

r. 

7. 
7 

7\ 
7\ 
7 

7. 
7 



3251 



DFRPM RP07/6/5/4 Exerciser 
DFRPM MAC 12-Sep-85 17:02 



MACRO 1538(1242) 19:36 12-SeD-8^ Page 
TDLIliT - UTILITY USED TO OBTAIN DEFECT 



1-133 
INFORMATION FROM TD'S 



SEQ 0264 



DFRF 
DFRF 



0251 






DFRPM 
DFRPM 

6815 

68U 

6815 

6816 

6817 

6818 

6819 

6820 

6821 

6822 

6823 

682A 

6825 

6826 

6827 

6828 

6829 

6830 

6831 

6832 

6833 

683A 

6835 

6836 

6837 

6838 

6839 

68A0 

68A1 

6842 

68A3 

6844 

6845 

6846 

6847 

6848 

6849 

6850 

6851 

6852 

6853 

6854 

6855 

6856 

6857 

6858 

6859 

6860 

6861 

6862 

6863 

6864 

6665 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



037165 
037166 
037167 
037170 
037171 
037172 
037173 
037174 
037175 
037176 
037177 
037200 
037201 
037202 
037203 
037204 
037205 
037206 
037207 



037210 
037211 
037212 
037213 
037214 
037215 
037216 
037217 
037220 
037221 
037222 



201 01 

202 01 
476 00 
260 17 
254 00 
260 17 
254 00 

254 00 
23- 00 

255 00 
254 00 
000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 



260 17 
332 00 
254 00 
402 00 
402 00 
200 00 
202 00 
200 
202 

m 



00 037311 
00 030740 
00 030755 
00 037054* 
00 037311 
00 037056* 
00 037170 
00 037176 
00 037176 

00 000000 

1 13 037200 
037170 
037170 
042304' 
037210 
037170 
042304' 
037170 
037170 



88 

14 
00 



00 037722 
00 030731 
00 037226 
00 037152* 
00 037150* 
13 033705* 
00 035672* 
" '35166* 
34750* 



13 
00 



1 88 mfi 



MACRO )!53B(1242) 19:36 12-Sep-85 Page 1-133 

TDLIcJT - UTILITY USED TO OBTAIN DEFECT INFORMATION FROM TD'S 

♦'TDLIST — LISTS DEFECT SKIP INFORMATION ^ROM TD'S 



SEQ 0264 



§ 



COMMENT $ 



THIS UTILITY READS TRACK DESCRIPTORS AND LISTS DEFECT DISPLACEMENT 
INFORMATION FOR THOSE TRACKS THAT CONTAIN DEFECT DISPLACEMENTS, 
HEADER-0 MOVED OR TD-MOVED STATUS. NO TRACK FORMATTING IS DONE. 

IN MANUAL MODE THE ENTIRE MEDIA IS SCANNED. 

IN VARIABLE MODE THE MEDIA ADDRESS SPACE BOUNDED INCLUSIVELY BY 
CYL1.SURF1 AND CYL2.SURF2 IS PROCESSED. 



CALL SEQ: 

GO TDLIST 

RTN1 

$ 

XLIST 

LIST 



TDLIST: MOVE I 
MOVEM 
SETOM 

TDLSEL: GO 
JRST 
GO 
JRST 
J(^ST 
JRST 
JFCL 
JRST 

TDLBR: TDLSEL 
TDLSEL 
CRTNJ 
TDLGO 
TDLSEL 
[RTN3 
TDLSEL 
TDLSEL 



;HERE BECAUSE WE HAVE AN RP07 



UDLIX 

1.ALTADD 

SELFL6 

SELECT 

TDLIX 

STATCK 

TDLSEL 

.+2 

.+1 

aTDLBR(Xl) 



TDLGO: GO 

SKIPE 

JRST 

SETZM 

SETZM 

MOVE 

MOVEM 

MOVE 

MOVEM 

TLNN 

JRST 



TINT 

VARFLG 

TDLVAR 

CYL1 

SURF1 

O.LCYCE(XI) 

Q,CYL2 

Q.MXSUR(XI) 

0.SURF2 

DSU.(IBII) 

TDLfLR 



.-CALL THE ROUTINE 
.-RETURN +1 ALWAYS 



GET RETURN ADDRESS 

SET UP ALTMODE VECTOR 

INIT FOR SELECTION ROUTINE 

SELECT A DEVICE FOR TEST 

TRIED ALL. EXIT THE TEST 

CHECK DRIVE STATUS FROM DSW 
♦1 NOT USEABLE OR OFF-LFNE 
♦2 WRITE PROTECTED (VARIADLE MODE) 
♦3 WRITE PROTECTED (MAN OR DEF MODE) 
44 PASSED CHECKS. INITIALIZE THE TEST. 

BRANCH ACCORDING TO DRIVE TYPE 

RP04 

RP06 

SPARE 

RP07 (600 MB) 

RM03 

SPARE 

RP20 (T0PS10) 

RP20 (T0PS20) 



NEXT SELECTED. INITIALIZE TEST 

VARIABLE MODE? 

YES 

CYL=0 

SURFACE=0 

GET LAST CYLINDER ON CE AREA 

LAST CYLINDER TO USE 

GET MAX SURFACE 

FOR SURF2 

BIT-11 SET ? 

NO 



)252 



DFRPM RP07/6/5/4 Exerciser 
DFRPM MAC 12-Sep-85 17:02 



MACRO X53B(1242} 19:36 12-Sep-8$ Page 1-134 

TDLIST - UTILITY USED TO OBTAIN DEFECT INFORMATION FROM TD'S 



SEQ 0265 



r 



)252 



DFRPM RP07/6/5/4 Exerciser 
DFRPM MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-134 

TDLIST - UTILITY USED TO OBTAIN DEFECT INFORMATION FROM TD'S 



SEQ 0265 



6868 


037223 


200 


00 13 035477* 




MOVE 


O.FCYCE(Xl) 


•YES. GET START OF CE AREA 


6869 


037224 


202 


00 00 037213* 




MOVEM 


O.CYLl 


■DOING ONLY THE CE AREA 


6870 
6871 
6872 


037225 


254 


00 00 037256 




JRST 


TDLCLR 


•ADDRESSES NOW SET UP 








.-INPUT 


VARIA3LES 




6873 
















6874 


037226 


201 


03 00 000075 


TDLVAR 


HOVE I 


3.75 


■ELSE GET A READ TD COMMAND 


6875 


037227 


201 


02 00 000003 




MOVE I 


2.3 


■DON'T ALLOW WRITE OVER CUSTOMER DATA 


6876 


037230 


201 


01 00 037224* 




MOVE I 


l.CYLl 


;NEXT PARAMETER TO INPUT 


6877 


037231 


260 


17 00 037101* 




60 


NPUT 


;6ET IT 


6878 


037232 


201 


01 00 037214* 




MOVE I 


.SURFl 


•NEXT PARAMETER TO INPUT 


6879 


037233 


201 


02 00 OOOOOO 




MOVE I 


2.0 


•NO RESTRICTION ON SURFACE 


6880 


037234 


260 


17 00 037231* 




GO 


INPUT 


•6tT THE INPUT 


6881 


037235 


201 


03 00 000075 




MOVE I 


3.75 


•ELSE GET A READ TD COMMAND 


6882 


037236 


201 


02 00 000003 




MOVE I 


2.3 


•DON'T ALLOW WRITE OVER CUSTOMER DATA 


6883 


037237 


201 


01 00 037216* 




MOVE I 


1.CYL2 


•NEXT PARAMETER TO INPUT 


6884 


037240 


260 


17 00 037234* 




60 


NPUT 


•GET IT 


6885 


037241 


201 


01 00 037220* 




MOVE I 


.SURF2 


•NEXT PARAMETER TO INPUT 


6 86 


037242 


201 


02 00 OOOOOO 




MOVE I 


2.0 


•NO RESTRICTION ON SURFACE 


6887 
6 88 
6889 
6890 
6891 


037243 


260 


17 00 037240* 




60 


INPUT 


;6ET THE INPUT 








.•ORDER 


VARIABLES SO THAT CYLI. SURFl IS THE STARTING POINT 


037244 


504 


01 00 037230* 




HRL 


l.CYLl 


;6ET CYLI 


6892 


037245 


540 


01 00 037232* 




HRR 


1. SURFl 


;CYL1.. SURFl 


6893 


037246 


504 


02 00 037237* 




HRL 


2.CYL2 


;6ET CYL2 


6894 


037247 


540 02 00 037241* 




HRR 


2.SURF2 


;CVL2. .SURFl 


6895 


037250 


317 01 00 000002 




CAMG 


1,2 : 


•CYLI. .SURFl > CYL2..SURF2 ? 


6896 


037251 


254 


00 00 037256 




JRST 


TDLCLR 


;N0... NO RE-ORDER IS NECESSARY 


6897 


037252 


546 01 00 037246* 




HLRM 


1.CYL2 


;NEW CYL2 


6898 


037253 


5h1 


01 00 037247* 




HRRM 


1.SURF2 


;NEW SURF2 


6899 


037254 


546 02 00 037244* 




HLRM 


2. CYLI 


•NEW CYLI 


6900 
6901 
6902 
6903 
6904 


037255 


542 


02 00 037245* 


"•■'.- 


HRRM 


2. SURFl 


•NEW SURFl 








.'CLEAR 


THE TOTALS DATA BEFORE STARTING AND PRINT HEADER MESSAGE 


037256 


403 00 00 000001 


TDLCLR 


SETZ8 


0.1 


■CLEAR 2 AC'S 


6905 


037257 


124 


00 00 037340 




DMOVEM 


O.TDLTOT+0 


■CLEAR THE LOG AREA 


6906 


037260 


124 


00 00 037342 




DMOVEM 


O.TDLTOT+2 




6907 


037261 


124 


00 00 037344 




DMOVEM 


O.TDLTOT+4 




6908 


037262 


037 00 00 030242 




PCRL 




■A CRLF 


6909 


037263 


260 


17 00 035744* 




GO 


•NAME ! 


■IDENTIFY RH. DRIVE ETC 


6910 


037264 


260 


17 00 035745* 




GO 


RUNTME 


;PRINT RUNTIME 


6911 
6912 
6913 


037265 


260 


17 00 033402* 




GO 


LDENTH 


■PRINT HEADER MESSAGE 


037266 


260 


17 00 037312 


TDLLP: 


GO 


TDINTP 


■DO THE I/O 


6914 


037267 


260 
254 


17 00 037155* 




GO 


BRANCH 


•BRANCH ACCORDINGLY 


6915 


037270 


00 1 00 030740 




JRST 


aALTADD 


■ALTMODE RETURN 


6916 


037271 


254 


00 00 037272 




JRST 


.+1 


■LOOP RETURN 


6917 
6918 
6919 
6920 


017272 


255 00 00 OOOOOO 




JFCL 




•CONTINUE ... 








.•TIME 1 


rO UPDATE 


PARAMETERS 




037271 


\\% 


8] I ?? WtW. 


TDUPD: 


AOS 


1. SURFl 


■BUMP SURFACE AND GET IT TO AC 1 


6922 


0l727t, 


317 




CAMG 


I.MXSUR(Xl) 


■SEE IF WE OVERFLOWED CYLINDER ? 



1253 



DFRPM RP07/6/5/4 Exerciser 
DFRPM MAC 12-Sep-85 17:02 



MACRO 1538(1242) 19:36 12-Sep-85 Page 1-135 

TDLIST - UTILITY USED TO OBTAIN DEFECT INFORMATION FROM TD'S 



SEQ 0266 



1253 



OFRPM 
DFRPM 

6923 

692A 

6925 

6926 

6927 

6928 

6929 

6930 

6931 

6932 

6933 

693A 

6935 

6936 

6937 

6938 

6939 

6940 

69A1 

69A2 

69A3 

69AA 

69A5 

6946 

6947 

6948 

6949 

6950 

6951 

6952 

6953 

6954 

6955 

6956 

6957 

6958 

6959 

6960 

6961 

6962 

6963 

6964 

6965 

6966 

6967 

6968 

6969 

6970 

6971 

6972 

6973 

6974 

6975 

6976 

6977 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



037275 
037276 
037277 
037300 
037301 
037302 
037303 
037304 
037305 



254 00 
403 01 
350 00 
504 01 
200 02 
504 02 
317 01 

254 00 

255 00 



00 037300 
00 037273* 
00 037254* 
00 037277* 
00 037253* 
00 037252* 
00 000002 
00 037266 



00 000000 



037306 260 17 00 037346 

037307 336 00 00 030731 

037310 254 00 00 037170 

037311 263 17 00 000000 



037312 
037313 
037314 
037315 
037316 
037317 
037320 
037321 
037322 
037323 
037324 
037325 
037326 



037327 
037330 
037331 
037332 
037333 
037334 
037335 
037336 
037337 



037340 
037341 
03734? 
037343 
037344 
037345 



261 
261 
261 
201 
505 
200 
504 
550 
242 
435 
5u't 
260 
260 



200 
260 
260 

in 

350 
262 
262 
262 
263 



17 
17 
17 
01 
01 
03 
03 
02 
02 
02 
02 
17 
17 



00 000001 
00 000002 
00 000003 
00 000075 
00 100000 
00 030724 
13 037120* 
00 037276* 
00 000010 
00 000377 
00 037300* 
00 037153* 
00 037154* 



01 
17 
17 
01 
00 
17 
17 
17 
17 



00 030724 
00 000000* 
00 000000* 
00 037345 
01 037340 
00 000003 
00 000002 
00 000001 
00 000000 



000 00 
000 00 
000 00 
000 00 
000 00 
000 00 



00 OOOOOQ 
00 QOQOOO 
00 000000 



f 




MACRO X53B(1242) 19:36 12-Sep-85 Page 1-135 

TDLIST - UTILITY USED TO OBTAIN DEFECT INFORMATION FROM TD'S 



SEQ 0266 



JRST 

SETZB 

AOS 

HRL 

MOVE 

HRL 

CAMG 

JRST 

JFCL 



.+3 

1.SURF1 

CYL1 

1.CYL1 

2.SURF2 

2.CYL2 

1,2 

TDLLP 



DIDN'T. 60 SEE IF DONE... 

WE DID. AC1=SURF1=0 

AND INCREMENT CYLINDER 

AC1/ CYL1,,SURF1 

GET SURF2 

AC2/ C''L2,,SURF2 

IS CYL1,,SURF1 > CYL2,,SURF2 '. 

NO. THEN LOOP AGAIN 

FINISHED A PASS ACCROSS MEDIA 



.•FINISHED THE SCAN. PRINT TOTALS AND BRANCH 



TDSUM: 



TDLIX; 



GO 

SKIPN 
JRST 
RTN 



TDLSUM 
VARFLG 
TDLSEL 



PRINT SUMMARY DATA 
DONE. ARE UE IN VARIABLE MODE ? 
NO. THEN SELECT NEXT DRIVE. 
EXIT THIS ROUTINE 



.-ROUTINE TO READ TD FOR CYLI. SURFI INTO BUF1... 



TDINTP: 



PUT 

PUT 

PUT 

MOVE I 

HRL I 

MOVE 

HRL 

HRRZ 

LSH 

lORI 

HRL 

GO 

GO 



1 
2 
3 

1,75 

1,(1B2> 

3.BUF1A 

3.CWRTD(X1) 

2. SURFI 

2.*D8 

2,m 

2, CYLI 
XFSTRT 
lOWAIT 



.-SAVE AC'S 



SET UP TO READ TD 
SET COMMAND MODIFIER 
READ BUFFER ADDR 
INCLUDE THE SIZE 
GET SURFACE 
SHIFT INTO POSITION 
INCLUDE THE SECTOR NUMBER 
NOW HAVE CYLINDER NUMBER 
START THE TRANSFER 
WAIT TILL XFER COMPLETE 



.•HERE WE LIST ENTRY AND GET COUNT OF NUMBER OF DEFECTS IN IT. 



MOVE 

GO 

60 

ADDM 

AOS 

GET 

6ET 

6ET 

RTN 



1.BUF1A 

LDENT 

CNTDEF 

1,TDLT0T+5 

TDLTOT(I) 

3 

2 

1 



;6ET BUFFER ADDRESS 

.•LIST THE ENTRY 

.•COUNT NOMBER OF DEFECTS 

;SUM WITH TOTAL DEFECTS 

.•COUNT APPROPRIATE STATISTIC 

.-RESTORE THIN6S 



;AND EXIT 



.'HERE WE KEEP THE TOTALS FOR THIS UTILITY 



TDLTOT: Z 



- TOTAL DEFECT FREE TRACKS 

1 - TOTAL TRACKS WITH 1 DEFECT 

2 - TOTAL TRACKS WITH I DEFECTS 

3 - TOTAL TRACKS WITH 3 DEFECTS 

4 - TOTAL TRACKS WITH 4 DEFECTS 

5 - TOTAL # OF DEFECTS ON MEDIA 



J 



254 



DFRPM RP07/6/5/4 Exerciser 
DFRPM MAC 12-SeD-85 17:02 






MACRO X53B(1242) 19:36 12-Sep-85 Page 1-136 

TDLIST - UTILITY USED TO OBTAIN DEFECT INFORMATION FROM TD'S 



SEQ 0267 



54 



% 



DFRPM 
DFRPM 

6978 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



^ ^. _^, 1-136 

TDLIST - UTILITY USED TO OBTAIN DEFECT INFORMATION FROM TD'S 



MACRO X53B(1 242) 19:36 12-Sep-85 Page 
•■ ■■ "-ECl 



SEQ 0267 



PAGE 



55 



DFRPM 
DFRPM 



RP07/6/5/4 

MAC 



Exerciser 
12-Sep-85 17:02 



MACRO J[53B(1242) 19:36 12-Sep-85 Page 
TDLIST - UTILITY USED TO OBTAIN DEFECT 



1-137 
INFORMATION 



FROM TD'S 



SEQ 0268 



55 



DFRPM RP07/6/5/4 Exerciser 
DFRPM MAC 12-Sep-85 17:02 



MACRO X53B(12A2) 19;36 12-Sep-85 Page 1-137 

TDLIST - UTILITY USED TO OBTAIN DEFECT INFORMATION FROM TD'S 



SEQ 0268 



6979 






.•ROUTINE TO PRINT THE TOTALS WE') 


/E ACCUMULATED . 


■ • 


6980 






.-THE DATA IS AT 


TABLE "TDLTOT" 






6981 
















m\ 


0373A6 


261 17 GO 000000 


TDLSUM 


PUT 





•SAVE AC'S 




037347 


261 17 00 000001 




PUT 


1 






698A 








TEXT 


[ASCIZ/ 






6985 


037350 


030 00 00 043441 ' 


TOTAL NUMBER OF 


DEFECTS = /] 






6986 


037351 


200 00 C 00 037345 




MOVE 


O.TDLTOT+5 


;GET NUMBER FROM 


TABLE 


6987 


037352 


260 17 00 036467* 




GO 


PSDN 


;AND PRINT 




6988 


037353 


322 00 00 037370 




JUMPE 


0,TSMX 


;JUMP IF NUMBER \ 


rfAS 


6989 


037354 


402 00 00 000001 




SETZM 


1 


•CLEAR AN INDEX 1 


REGISTER 


6990 


037355 


336 00 01 037340 


TSML: 


SKIPN 


TDlTOT(l) 


•SEE If ENTRY IS 


ZERO ... 


6991 


037356 


254 00 00 037365 




JRST 


TSMI 


;YES.... 




6992 








TEXT 


[ASCIZ/ 






6993 


037357 


030 00 00 043447* 


TRACKS 


WITH /: 








6994 


037360 


200 00 00 000001 




MOVE 


OJ 


;6ET INDEX 




6995 


037361 


260 17 00 037352* 




GO 


PSDN 


;PRINT IT 




6996 


037362 


030 00 00 043452* 




TEXT 


CASCIZ/ DEFECTS = 


= /: 




6997 


037363 


2V0 00 01 037340 




HOVE 


O.TDLTOT(I) 


;GET TABLE ENTRY 




6998 


037364 


260 1' 00 037361* 




GO 


PSDN 


;PRINT IT 




6999 


037365 


35C ^ 00 000001 


TSMl: 


AOS 


1 


;BUMP INDEX 




7000 


037366 


307 01 00 000004 




CAIG 


1.4 


;DONE PROCESSING 


THE TABLE ? 


7001 


037367 


254 00 00 037355 




JRST 


TSML 


:N0. LOOP 




7002 


037370 


037 00 00 030242 


TSMX: 


PCRL 








7003 


037371 


037 00 00 030242 




PCRL 








700A 


037372 


262 17 00 000001 




GET 


1 


•RESTORE AC*S 




7005 


037373 


262 17 00 000002 




GET 


2 






7006 
7007 


037374 


263 17 00 000000 




RTN 


1 


•EXIT 




7008 
7009 






SUBTTL 


TOTPNT - 


ACCUMULATED TOTALS PRINTER 




7010 








XLIST 








7011 








LIST 








7012 








PAGE 









DFRPM 
DFRPM 

757 
757 
757 
757 
757 
757 
757 
758 
758 
758 
758 
758 
758 
759 
756 
o8 
758 
759 



.„. ^ 



56 



DFRPM 
DFRPM 



RP07/6/5/4 

MAC 



Exerciser 
12-SeD-85 17:02 



MACRO X538(1242) 19:36 12-SeD-85 Page 1-138 
TOTPNT - ACCUMULATED TOTALS PRINTER 



SEQ 0269 



DFRPM 

nFDPM 



56 



OFRPM 
DFRPM 

7013 

70U 

7015 

7016 

7017 

7018 

7019 

7020 

702: 

7022 

7023 

702A 

7025 

7026 

7027 

7028 

7029 

7030 

7031 

7032 

7033 

703A 

7035 

7036 

7037 

7038 

7039 

7040 

7041 

7042 

7043 

7044 

7045 

7046 

7047 

7048 

7049 

7050 

7051 

7052 

7053 

7054 

7055 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO :53B(1242) 19:36 12-Sep-85 Page 1-138 
TOTPNT - ACCUMULATED TOTALS PRINTER 

•*' TOTPNT - - TOTALS PRINTER FOR EXERCISER 

3*; ********************************************************************** 



SEQ 0269 



COmENT S 



ENTRYS WHOSE VALUE IS ZERO ARE NOT PRINTED 



CALL SEQ 



TOTPNT 



.•PRINT TOTALS 
.•RETURNS HERE 



037375 
037376 
037377 
037400 
037401 
037402 
037403 
037404 
037405 
037406 
037407 
037410 



255 00 
336 00 



254 00 
030 00 



254 
201 
202 



00 
01 
01 



037 00 
402 00 
476 00 
260 ~ 
254 



17 
00 



00 000000 
00 030731 
00 037402 
00 043455* 
00 037417 
00 037673 
00 030740 
00 030242 
00 030737 
00 030755 
00 000000* 
00 037417 



TOTPNT : 



TOTPO: 



TOTS! 



XLIST 
LIST 

JFCL 

SKIPN 

JRST 

TEXT 

JRST 

MOVE I 

MOVEM 

PCRL 

SETZM 

SETOM 

GO 

JRST 



VARFL6 .-VARIABLE MODE ? 

TOTPO :N0 

[ASCIZ/"TOTALS" DOES NOT RUN IN VARIABLE MODE/] 



T0TX1 


•EXIT THE TEST 


I.TOTX 


•GET ALTMODE ADDRESS 


1.ALTADD 


•SETS UP ALTMODE VECTOR 




ADVANCE A LINE 


ALTF 


CLEAR THE ALTMODE STRUCK FLAG 


SELFL6 


INIT THE SELECTION ROUTINE 


DEVSEL 


PICK A DRIVE FOR TEST 


T0TX1 


EXIT. TRIED ALL DRIVES 



037411 2o.' 17 00 037420 



037412 
037413 
037414 
037415 
037416 
037417 



260 17 00 037267* 



254 00 

255 00 
255 00 
254 00 
263 17 



37417 
00000 




00 000000 



;D0 THE ACTUAL TOTALS PRINTING 

it PTOTAL 
.•CHECK FOR ALTMODE AND CONTINUE 

m 

JRST 
JFCL 
JFCL 
JRST 
T0TX1: RTN 

PAGE 



.•PRINT THE STATISTICS 



BRANCH 


•USE FOR AN ALTMODE CHECK 


T0TX1 


■ALTMODE STRUCK 




•NOT USED 




•NOT USED 


TOTS 


•60 SELECT NEXT DRIVE 


1 


EXIT 



r 



57 



DFRPM 
DFRPM 



RP07/6/5/4 Exerciser 
MAf 1?-5..n-A5 17:0? 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-139 

TOTPNT - AfrilMUlATFD TOTAI <; PRFNTFR 



SEQ 0270 



57 



OFRPM 
DFRP« 

7056 

7057 

7058 

7059 

7060 

7061 

7062 

7063 

706A 

7065 

7066 

7067 

7068 

7069 

7070 

7071 

7072 

7073 

707A 

7075 

7076 

7077 

7078 

7079 

7080 

7081 

7082 

7083 

708A 

7085 

7086 

7087 

7088 

7089 

7090 

7091 

7092 

7093 

709A 

7095 

7096 

7097 

7098 

7099 

7100 

7101 

7102 

7103 

71 OA 

7105 

7106 

7107 

7108 

7109 

7110 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



037^20 
037A21 



037422 
037423 
037424 
037425 
037426 
037427 

037430 
037431 
037432 
037433 
037434 

037435 
037436 
037437 
03744C 
037441 

037442 
037443 
037444 
037445 
037446 

037447 
037450 
037451 
037452 
037453 

037454 
037455 
037456 
037457 
037460 

037461 
037462 
037463 
037464 
037465 

037466 
037467 
037470 



261 17 00 000000 
261 17 00 000001 



030 00 
260 17 
037 00 
260 17 
336 00 
254 



00 043465* 
00 037264* 
00 030242 
00 034737* 
14 002346 
00 037433 



00 



030 00 00 043474* 
200 00 14 002346 
260 17 00 037364* 
336 00 14 002356 
254 00 00 037440 



030 00 
200 00 
260 17 
336 00 
254 00 

030 00 
200 00 
2o-' 17 
336 00 
25; 00 



00 043477- 
14 002356 
00 037432* 
14 002347 
00 037445 

00 043503' 
14 002347 
00 037437* 
14 002357 
00 037452 



030 00 00 043506' 
200 00 14 002357 
260 17 00 037444* 
336 00 14 002344 
254 00 00 037457 



030 00 
200 00 
260 17 
336 00 



00 043512' 
14 002344 
00 037451* 
14 002365 



254 00 00 037464 

030 00 00 043517' 
200 00 14 002365 
260 17 00 037456* 
336 00 14 002364 
254 00 00 037471 

030 00 00 043524' 
200 00 Q U QQ2364 
260 17 00 037463 • 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-139 
TOTPNT - ACCUMULATED TOTALS PRINTER 

;THIS SUBROUTINE ACTUALLY PRINTS THE TOTALS DATA FRO THE SELECTED DRIVE. 
;1T IS CALLED FROM "TOTPNT" AND "SERV" (INTERRUPT SERVICE) REPORT TOTALS 
;FOR A DRIVE BEING MARKED "NOT USEABLE" BV THE PROGRAM BECAUSE OF AN UNSAFE 
;0R SOME OTHER CATASTROPHIC fJNDITION .. 



SEQ 0270 



PTOTAL: PUT 
PUT 

TEXT 

»•*** TOTALS 

GO 



PCRL 

GO 

SKIPN 

JRST 

TEXT 
WRITES = /] 

MOVE 

GO 
TOTO: SKIPN 

JRST 

TEXT 
WORDS WRITTEN = 

MOVE 

GO 
T0T1: SKIPN 

JRST 

TEXT 
READS = /: 

MOVE 

GO 
T0T1A: SKIPN 

JRST 

TEXT 
WORDS READ = /J 

MOVE 

GO 
T0T2: SKIPN 

JRST 

TEXT 
DATA COMPARE 

MOVE 

GO 
T0T3: SKIPN 

JRST 

TEXT 
DCK'S WITHOUT 

MOVE 

GO 
T0T3A: SKIPN 

JRST 

TEXT 
DCK'S WITH ECH 

MOVE 

60 




1 

CASCIZ/ 
SUMMARY ***** 
RUNTME 



UNIT 

WTCNT(DSU) 
TOTO 
CASCIZ/ 

WTCNT(DSW) 

PSDN 

WDSWRT(DSw) 

T0T1 

CASCIZ/ 

/] 

WDSWRT(OSW) 

PSDN 

RDCNT(DSW) 

T0T1A 

CASCIZ/ 

RDCNT(DSU) 

PSDN 

WDSRD(DSW) 

T0T2 

CASCIZ/ 



WDSRD(DSW) 
PSDN 

E.COMP(DSW) 
T0T3 
CASCIZ/ 
ERRORS = /] 
E.COMP(DSW) 
PSDN 
DCK(DSW) 
T0T3A 
CASCIZ/ 
ECH = /] 
DCK(DSW) 
PSDN 
ECHtDSW) 
T0T4 
CASCIZ/ 

'O.ECH(DSW) 
PSDN 



/] 



;SAVE AC'S 



PRINT THE RUNTIME 
ADVANCE TO NEXT LINE 
IDENTIFY THE DRIVE .. ETC 
# OF WRITES 



.•WORDS WRITTEN 



:» OF READS 



;* OF WORDS READ 



;» OF DATA COMPARE ERRORS 



;# OF TIMES WE GOT DCK WITHOUT ECH 



;* OF HARD ERRORS 



.xM _.. IrJ*".' 



1 r 



i8 



DFRPM RP07/6/5/4 Exerciser 
DFRPM MAC 12-SeD-85 17:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-UO 
TOTPNT - ACCUMULATED TOTALS PRINTER 



SEQ 027^ 



DFRPM 
DFRPM 

7111 

7112 

7113 

71K 

71V. 

7116 

7117 

7118 

7119 

7120 

7121 

7122 

7123 

7124 

7125 

7126 

7127 

7128 

7129 

7130 

7131 

7132 

7133 

71 3A 

7135 

7136 

7137 

7138 

7139 

7K0 

7U1 

7142 

7143 

7144 

7145 

7146 

7147 

7148 

7149 

7150 

7151 

7152 

7153 

7154 

7155 

7156 

7157 

7158 

7159 

7160 

7161 

716 

716 

7164 

7165 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-140 
TOTPNT - ACCUMULATED TOTALS PRINTER 



SEO 0271 



037471 
037472 

037473 
037474 
037475 
037476 
037477 

037500 
037501 
037502 
037503 
037504 

037505 
037506 
037507 
037510 
037511 

037512 
037513 
037514 
037515 
037516 

037517 
037520 
037521 
037522 
037523 

037524 
037525 
037526 
037527 
037530 

037531 
037532 
037533 
037534 
037535 

037536 
037537 
037540 
037541 
037542 

^'7543 
LJ7544 
037545 
037546 



336 00 14 002366 
254 00 00 037476 



030 00 
200 00 
260 17 
336 00 
254 00 



00 043530* 
14 002366 
00 037470* 
14 002367 
00 037503 



030 00 00 043533' 
200 00 14 002367 
260 17 00 037475* 
336 00 14 002370 
254 00 00 037510 

030 00 00 043536' 
200 00 14 002370 
260 17 00 037502* 
336 00 14 002371 
254 00 00 037515 



030 00 
200 00 
260 17 
336 00 
254 00 



00 043544' 
14 002371 
00 037507* 
14 002372 
00 037522 



030 00 00 043552' 
200 00 14 002372 
260 17 00 037514* 
3i: 00 14 002373 
254 00 00 037527 



030 00 
200 00 
260 17 
336 00 
254 00 



030 00 
200 00 
260 17 
336 00 
254 00 

030 00 
200 00 
260 U 
336 00 
254 00 

)30 00 

?og 00 



00 043555' 
14 002373 
00 037521* 
14 002351 
00 037534 

00 043560' 
14 002351 
00 037526* 
14 002350 
00 037541 



36 00 14 



00 043563' 
14 002350 
00 037533* 
14 002352 
00 037546 

Q 00 043566' 
14 QQ2352 
00 037540* 
" 02354 



T0T4: SKIPN 
JRST 
TEXT 

OPI'S = /] 

MOVE 
60 

T0T4A: SKIPN 
JRST 
TEXT 

HCRC's = /: 

MOVE 
GO 

T0T4B: SKIPN 
JRST 
TEXT 

HCE'S WITHOUT 
MOVE 
GO 

T0T4C: SKIPN 
JRST 
TEXT 

FER'S WITHOUT 
MOVE 
GO 

T0T4D: SKIPN 
JRST 
TEXT 

DTE'S = /3 

MOVE 
GO 

T0T4E: SKIPN 
JRST 
TEXT 

lAE'S = /] 

MOVE 
GO 

T0T4F: SKIPN 
JRST 
TEXT 

RECALS = /: 
MOVE 
GO 

rOT5: SKIPN 
JRST 
TEXT 

SEEKS = /] 

MOVE 
GO 

T0T6: SKIPN 
JRST 
TEXT 

SEARCHES = /J 
MOVE 
GO 

T0T7; SKIPN 



OPKDSW) 

T0T4A 

CASCIZ/ 

0, OPKDSW) 

PSDN 

HCRC(DSW) 

T0T48 

CASCIZ/ 

0,HCRC(DSW) 

PSDN 

HCE(DSW) 

T0T4C 

CASCIZ/ 
HCRC'S = /] 

O.HCE(DSW) 

PSDN 

FER(DSW) 

T0T4D 

CASCIZ/ 
HCRC'S = /] 

O.FER(DSW) 

PSDN 

DTE(DSW) 

T0T4E 

CASCIZ/ 

O.DTE(DSU) 

PSDN 

lAE(DSW) 

T0T4F 

CASCIZ/ 

O.IAE(DSW) 

PSDN 

RCCNTCDSW) 

T0T5 

CASCIZ/ 

RCCNTCDSW) 

PSDN 

SKCNT(DSW) 

T0T6 

CASCIZ/ 

SKCNT(DSW) 

PSDN 

SRCNT(DSW) 

T0T7 

CASCIZ/ 

SRCNT(DSW) 

PSDN 

OFSCNT(DSW) 



.■OPI'S 
;N0 



;HCRC ERRORS 
:N0 



;HCE ERRORS 
:N0 



;FER ERRORS 
:N0 



;DTE'S 
;N0 



;IAE'S 
;N0 



;# OF RECALS 



;# OF SEEKS 



;# OF SEARCHS 



;# OF OFFSET COMMANDS 



DFRPM 
DFRPM 

7692 
7693 
7694 



DFRPM RP07/6/5/4 Exerciser 
nrDDH Mir O.c^n.fi^ 17. 03 



MACRO X53B(1242) 19:^6 12-SeD-85 Page 1-141 
rnroiuT . ArniMin Arcn rriTAi c DOturro 



CfO n573 



DFRPM 















DFRPM 


RP07/6/5/A E 


xerciser 


MACRO X53B(1242) 19:"'6 12-Sep-85 Page 1-141 
TOTPNT - ACCUMULATED TOTALS PRINTER 




DFRPM 


MAC 


12-Sep-85 17:02 




7166 


057547 


254 


00 00 037553 


JRST T0T8 




7167 








TEXT [ASCIZ/ 




7168 


037550 


030 


00 00 043571' 


OFFSETS = /] 




7169 


037551 


200 00 14 002354 


MOVE OFSCNT(DSW) 




7170 


037552 


260 


17 00 037545* 


GO PSDN 




7171 


037553 


336 


00 14 002353 


T0T8: SKIPN RCLCNT(DSy) ;* OF RTN-CENTERLINES 




7172 


037554 


254 


00 00 037560 


JRST T0T9 




7173 








TEXT [ASCIZ/ 




IMt, 


037555 


030 


00 00 043574' 


RTN-CENTERLINES = /J 




7175 


037556 


200 


00 14 002353 


MOVE RCLCNT(DSW) 




7176 


037557 


260 


17 00 037552* 


60 PSDN 




7177 


037560 


336 


00 14 002362 


T0T9: SKIPN RETREQ(DSW) .'ANY RETRY REQUESTS ? 




7178 


037561 


254 


00 CO 037565 


JRST T0T9A ;N0 




7179 








TEXT CASCIZ/ 




7180 


037562 


030 


00 00 043601 • 


ERROR RECOVERIES ATTEMPTED = /] 




7181 


037563 


200 


00 14 002362 


MOVE O.RETREQ(DSU) 




7182 


037564 


260 


17 00 037557* 


60 PSDN 




7183 


037565 


336 


00 14 002361 


T0T9A: SKIPN RETDAT(OSU) ;# OF DATA RETRYS ISSUED 




7184 


037566 


254 


00 00 037572 


JRST T0T10 




7185 








TEXT CASCIZ/ 




7186 


037567 


030 


00 00 043610' 


DATA RETRIES ATTEMPTED = /] 




7187 


037570 


200 


00 14 002361 


MOVE RETDAT(DSW) 




7188 


037571 


260 


17 00 037564* 


GO PSDN 




718 


037572 


336 00 14 002360 


TOT10: SKIPN RETPOS(DSW) ;# OF POSITION RETRYS 




7190 


037573 


254 


00 00 037577 


JRST T0T11 




7191 








TEXT CASCIZ/ 




7192 


037574 


030 


00 00 043616' 


POSITION RETRIES ATTEMPTED = /] 




7193 


037575 


200 


00 14 002360 


MOVE RETPOS(DSy) 




7194 


037576 


260 


17 00 037571* 


60 PSDN 




7195 


037577 


33<S 00 14 002363 


T0T11: SKIPN RETFAL(DSy) ;* OF RETRIES THAT FAILED 




7196 


037600 


23 ■ 


00 00 037604 


JRST T0T11A ;NON£ FAILED 




7197 








TEXT CASCIZ/ 




7198 


037601 


030 00 00 043625' 


UNSUCCESSFUL ERROR RECOVERIES = /J 




7199 


037602 


200 


00 14 002363 
17 00 037576* 


MOVE RETFAL(DSU) 




7200 


037603 


260 


60 PSDN 




7201 


037604 


336 00 14 002345 


T0T11A: SKIPN XINTR(OSy) ;UNKNOyN "RH" INTERRUPTS 




7202 


037605 


254 


00 00 037611 


JRST TOT 12 




7203 








TEXT CASCIZ/ 




7204 


037606 


030 


00 00 043634' 


EXTRANEOUS INTERRUPTS FROM RH20 = /] 




7205 


037607 


200 00 14 002345 


MOVE XlNTR(DSy) 




7206 
7207 


037610 


260 


17 00 037603* 


GO PSDN 




037611 


336 00 14 002405 


T0T12: SKIPN INCBAD(DSy) ;ANY BAD INCREMENTAL SEEKS ? 




7208 


037612 


254 


00 00 037622 


JRST T0T13 ;N0 




7209 


037613 


037 00 00 030242 


PCRL .-ADVANCE TO NEXT LINE 




7210 


037614 


200 00 14 002404 


HOVE 0,INCTOT(OSy) ;YES. 6ET TOTAL 




7211 


037615 


260 


17 00 037610* 


GO PSDN .-PRINT 




7212 


037616 


030 00 00 043644- 


TEXT CASCIZ/ SIK'GLE CYL SEEK TIMES MEASURED AND /] 




7213 


037617 


200 00 14 002405 


HOVE O.INCBAD(DSy) ;GET NUMBER THAT FAILED 




7214 


037620 


260 


17 00 037615* 


GO PSDN .-PRINT 




7215 


037621 


030 
336 


00 00 043654' 


TEXT CASCIZ/ yERE OUT OF SPEC/] 




7216 
7217 


037622 


00 14 0Q2^07 
00 11 030^42 


T0T13: SKIPN SEKBAD(DSy) ;ANY INCREMENTAL SEEKS OUT OF SPEC 


-> 


037623 


^54 


JRST T0T14 ;N0 




7^5 


037624 


037 


PCRL .-ADVANCE A LINE 




7219 
7220 


QF625 
037626 


h ?? 8 JS w^. 


HOVE 0,SEKTOT(DSy) ;GET THE TOTAL NUMBER 
GO PSDN .-PRINT 





SEO 0272 



DFRPM 
DFRPM 



DFRPH 

i\cbbii 



RP07/6/5/4 Exerciser 

M*r 1"1_C OC 17. m 



HACRO 1538(1242) 19:36 12-Sep-85 Page 1-142 



ecn rt-iir 



DFRPM 



DFRPM 
OFRPW 

7221 
7222 
7223 
7224 
7225 
7226 
7227 
7228 
7229 
7230 
7231 
7232 
7233 
7234 
7235 
7236 
7237 
7238 
7239 
7240 
7241 
7242 
7243 
7244 
7245 
7246 
7247 
7248 
7249 
7250 
7251 
7252 

7:;?5? 

7254 
7255 
7256 
7257 
7258 
7259 
7260 
7261 
7262 
726^ 
7?6' 
7>65 
7266 
726 r 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



037627 
037630 
037631 
037632 
037633 
037634 
037635 
037636 
037637 



037640 
037641 
037642 
037643 
037644 
037645 

037646 
037647 
037650 
037651 
037652 
037653 

037654 
0?'655 
0'><'656 
037637 
037660 
037661 

037662 
037663 
037664 
037665 
037666 
037667 
0376"'0 
037671 
CV67^ 

0V673 
^^37674 

037676 



00 043660' 
14 002407 
00 037626* 
00 043654* 
14 002375 
14 002401 
14 002377 
14 002403 
00 037671 



030 00 
200 00 
260 17 
030 00 
200 00 
270 00 
270 00 
270 00 
322 00 



030 00 

200 00 

260 17 

030 00 00 043725* 

200 00 14 002374 

260 17 00 037642* 

030 00 00 043726' 
200 00 14 002377 
260 17 00 037645* 
030 00 00 043725* 
200 00 14 002376 
260 17 00 037650* 



00 043671 * 
14 002375 
00 037631* 



030 00 
200 00 
2oJ 17 
030 00 
200 00 
260 17 



030 00 
200 00 
260 17 
030 00 
200 00 
260 17 
03/ 00 . 
03' 00 
26C V 



00 043731 * 
14 002401 
00 037653* 
00 043725' 
14 002400 
00 037656* 



00 043734' 
14 002403 
00 037661* 
00 043725* 
14 002402 
00 037664* 
" 030242 
030:'2 



00 UotjOO' 



030 00 CO UhT737' 
262 17 00 mop] 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-142 
TOTPNT - ACCUMULATED TOTALS PRINTER 

TEXT [ASCIZ/ INCREMENTAL SEEK TIMES WERE MEASURED AND /: 

HOVE 0,SEK8AD(DSU) ;GET NUMBER OF BAD GUYS 

GO PSDN .-PRINT 

TEXT [ASCIZ/ WERE OUT OF SPEC/] 

T0T14: MOVE O.FAILRR(DSW) ;SEE IF READ/WRITE NEXT FAILED AT ALL 

ADD 0,FAILUy(DSU) 

ADD 0,FAILRU(DSU) 

ADD 0,FAILWR(DSW) 

JUMPE 0.TOT15 

TEXT CASCIZ? 



SEO 0273 



DFRPH 
DFRPK 



;JUMP IF NO READ WRITE NEXT ERRORS 



SOME READ/WRITE NEXT FUNCTIONS ARE TAKING AN EXTRA REVOLUTION 
FUNCTION # FAILURES » TRIES 



READ/READ 

MOVE 

GO 

TEXT 

MOVE 

GO 

TEXT 

READ/WRITE 

MOVE 

GO 

TEXT 

MOVE 

GO 

TEXT 

WRITE/WRITE 
MOVE 
GO 
TEXT 
MOVE 
GO 
TEXT 

WRITE/READ 

MOVE 

GO 

TEXT 

MOVE 

GO 

PCRl 

PCRL 

GO 

^£X^ 



Ton: 



71 

0,FAILRR(DSW) 

PSDN 

CASCIZ/ 

0,TOTRR(DSW) 

PSDN 

CASCIZ? 

?J 

O.FAILRW(DSW) 

PSDN 

CASCIZ/ 

O.TOTRW(DSW) 

PSDN 

CASCIZ? 

?] 

0,FAILWW(DSW} 

PSDN 

CASCIZ/ 

0,TOTWW(DSW} 

PSDN 

CASCIZ? 

73 

0,FAlLWR(DSW) 

PSDN 

CASCIZ/ 

O.TOTWR(DSW) 

PSDN 



LSTQO 
CASCIZ/- 



;* OF FAILURES 

.PRINT 

/3 ;2 TABS 

;GET TOTAL * OF TRIES 

.•PRINT 



;6ET # OF FAILURES 

.•PRINT THEM 

/] ;2 TABS 

.•TOTAL NUMBER OF TRIES 



.GET # OF FAILURES 

.•PRINT 

/] :2 TABS 

;GEt # OF TRIES 

.-PRINT 



.•GET # OF FAILURES 
.-PRINT IT 
/] ;2 TABS 
.-GET # OF TRIES 
.-PRINT 



.-LIST MAPOUT DATA BASE ENTRIES 



6FT 
RTN 



;HESTnR?: AC'S 
.-EXIT 



SUBTTL TOTCLR 
XLIST 
LIST 
PAGE 



- RESET THE TOTALS AREA TO ZERO 



0261 



DFRPM 
DFRPM 

7276 

7277 

7278 

7279 

7280 

7281 

7282 

7283 

728A 

7285 

7286 

7287 

7288 

7289 

7290 

7291 

7292 

7293 

7294 

7295 

7296 

7297 

7298 

7299 

7300 

7301 

7302 

7303 

7304 

7305 

7306 

7307 

7308 

7309 

7310 

7311 

7312 

7313 

73U 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



037677 
037700 
037701 
037702 
037703 
037704 
037705 
037706 
037707 
037710 
037711 
037712 
037713 
037714 
037715 
037716 
037717 
037720 



336 00 
254 00 
030 00 
254 00 
476 00 
260 17 
254 00 
260 17 
402 00 
550 01 
271 01 
550 02 
271 02 
504 02 
271 02 



251 



02 
_ 00 
263 17 



00 030731 
00 037703 
00 043745' 
00 037720 
00 030755 
00 037407* 
00 037720 
00 037722 
14 002344 
00 000014 
00 002412 
00 000014 
00 002344 
00 000002 
00 000001 
01 000000 
00 037704 
00 000000 



037721 263 17 00 000000 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-143 
TOTCLR - RESET THE TOTALS AREA TO ZERO 

S*' ********************************************************************** 

;* TOTCLR - - CLEAR TOTALS AREA 

$*• *********************************************************************** 



SEQ 0274 



COMMENT $ 



THIS CLEARS THE DSB AREA FROM 
CALL SEQ: 



'E.COMP" TO THE END. 



TOTCLR: 



TOTCO: 
TOTCS: 



TOTCX: 
DRVSET; 



GO 

RTN 

$ 

XLIST 
LIST 

SKIPN 

JRST 

TEXT 

JRST 

SETOM 

GO 

JRST 

GO 

SETZM 

HRRZ 

ADD I 

HRRZ 

ADD I 

HRL 

ADD I 

BLT 

JRST 

RTN 

RTN 



TOTCLR 



SUBTTL TINT - 
XLIST 
LIST 
PAGE 



;CALL THE ROUTINE 
.•RETURNS HERE 



VARFLG 

TOTCO 

CASCIZ/"TOTCLR" DOES NOT RUN IN VARIABLE MODE/] 



TOTCX 

SELFLG 

DEVSEL 

TOTCX 

TINT 

E.COMP(DSW) 

I.DSU 

1,DSBSIZ-1 

2.DSW 

2, E.COMP 

2,2 

2,1 

2,(1) 

TOTCS 



IN VARIABLE MODE 
NO 



EXIT 

INIT THE SELECT ROUTINE 

CHOOSE DRIVE 

TRIED ALLL 

NEXT READY 

CLEAR FIRST LOC OF BLOCK 

POINTER TO START OF AREA 

GETS POINTER TO LAST LOC IN BLOCK 

P0IN1ER TO START OF DSB AREA 

POINT TO SOURCE 

SOURCE., SOURCE 

NOW HAVE SOURCE,. DEST 

CLEAR THE STATUS BUFFER 

SELECT THE NEXT DRIVE 

EXIT THE TEST 



:OMMON TEST INITIALIZATION ROUTINE 



0262 



DFRPM RP07/6/5/4 Exerciser 
DFRPM MAC 12-Sep-85 17:02 



MACRO X53B{1242) 19:36 12-Sep-85 Page 1-U4 
TINT - COMMON TEST INITIALIZATION ROUTINE 



SEQ 0275 



DFRPM 
DFRPM 

7315 

7316 

7317 

7318 

7319 

7320 

7321 

7322 

7323 

732A 

7325 

7326 

7327 

7328 

7329 

7330 

7331 

7332 

7333 

7334 

7335 

7336 

7337 

7338 

7339 

73A0 

73A1 

73A2 

73A3 

7344 

7345 

7346 

7347 

7348 

7349 

7350 

7351 

7352 

7353 

7354 

7355 

7356 

7357 

7358 

7359 

7360 

7361 

1^ 

7364 
7365 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



037722 
037723 
037724 
037725 
037726 
037727 
037730 
037731 
037732 
037733 
037734 
037735 
037736 
037737 
037740 



037741 
037742 
037743 
037744 
037745 
037746 

037747 
037750 
'^37751 
037752 



037753 
037754 
037755 
037756 
037757 
037760 
^37761 
37762 
17763 
17764 



261 17 
261 17 
261 17 
402 00 
402 00 
402 00 
402 00 
402 00 
402 00 
402 00 
402 00 
402 00 
402 00 
402 00 
402 00 



00 000000 
00 000001 
00 000002 
00 030734 
00 030737 
00 030744 
00 030741 
00 030745 
00 030750 
00 030747 
14 000040 
00 030752 
00 000011 
00 030743 
00 030742 



200 02 00 030733 

201 01 00 040001 
260 17 00 031326* 
260 1? 00 034 705 « 
554 01 01 040036 

202 m 00 030735 

255 00 00 000000 
255 00 00 000000 
255 00 00 000000 
255 00 00 000000 



336 00 
254 00 
336 00 
254 00 
?60 17 
iO " 



00 030731 
00 037775 
00 030733 




00 

10 



)37775 

OOQOQ 

)37106» 



MACRO :53B(1242) 19:36 12-Sep-85 Page 1-144 
TINT - COMMON TEST INITIALIZATION ROUTINE 

:*'TINT — TEST FLAG INITIALIZATION ROUTINE 

COMMENT $ 



SEQ 0275 



CALL 


SEO: 




60 


TINT 


;CALL THE ROUTINE 


RTN 

$ 

XLIST 




•IT RETURNS HERE 






LIST 






NT : PUT 





■SAVE THE AC 


PUT 


1 




PUT 


2 




SETZM 


ST. NAM 


•CLEARS SUB-TEST NAME 


SETZM 


AL TF 


;CLR ALTMODE STRUCK FLAG 


SETZM 


NOCOMP 


; CLEAR COMPARE INHIBIT FLAG 


SETZM 


HUNG 


•THE DEVICE HUNG FLAG 


SETZM 


BSYCNT 


•THE BUSY COUNTER 


SETZM 


RETRYF 


•THE RETRY REwJEST FLAG 


SETZM 


RANDF 


•RANDOMIZE PARAM FLAG 


SETZM 


LASTC(DSW) 


•LAST MAJOR COMMAND 


SETZM 


ERROR 


•THE ERROR LOOP FLAG 


SETZM 


ERFLG 


•THE INDIVIDUAL ERROR. ERROR FLAG 


SETZM 


NORPT 


;ALLOU REPORTS 


SETZM 


NORET 


;ALLOU RETRIES 


ODE :0 INITIALIZE THE TEST ITERATION COUNT 


MOVE 


2,TSTNAn 


•GET TlST name 


HOVE I 


1,TSTLST 


•ADDR OF TEST NAME LIST 


GO 


TSCAN 


•LOOK UP TEST TO ESTABLIST INDEX 


GO 


FFF 


•FATAL .. NOT FOUND 


HLRZ 


1,TSTADR(1) 


•GETS ITERATION COUNT FROM TABLE 


HOVEM 


I.TSTITR 


;ITERATION COUNT IS NOW CORRECT 


DIFY: JFCL 






JFCL 






JFCL 






JFCL 






HERE'S WHERE 


UE GET HELP MSGS 




SKIPN 


VARFLG 


•SPECIFY VARIABLES ? 


JRST 


TINTX 


•?^0. THEN EXIT 


SKIPN 


TSTNAM 


•TEST NAME VALID ? 


JRST 


TINTX 


•NO. THEN EXIT 


GO 


.NAMEF 


•IDENTIFY RH. TEST ETC. 


GO 


RUNTMF 


•AND RUNTIME 


SKI PA 






PCRLF 






TEXTF 


CASCIZ/ INFO ?? 


/] 


GO 


QSTN 


ASK THE QUESTION 



DFRPM RP07/6/5/4 Exerciser 
DFRPM MAC 12-Sep-85 17:02 



MACRO 1538(1242) 19:36 12-Sep-85 Page 1-145 
TINT - COMMON TEST INITIALIZATION ROUTINE 



SEO 0276 



261 



DFRPM 
DFRPN 

7370 

7371 

7372 

7373 

737A 

7375 

7376 

7377 

7378 

7379 

7380 

7381 

7382 

7383 

738A 

7385 

7386 

7387 



RP07/6/5/A Exerciser 
MAC 12-Sep-85 17:02 



MACRO X53B(12A2) 19;36 12-Sep-85 Page 1-U5 
TINT - COMMON TEST INITIALIZATION ROUTINE 



S£Q 0276 



037765 
037766 
037767 
037770 
037771 
037772 
037773 
03777A 
037775 
03,^76 
OlJy 77 
OAOOOO 



254 
?54 
200 
201 
260 
260 
031 
037 
262 
262 
262 
2^3 



00 
00 
02 
01 
17 
17 
00 
01 
17 
17 
17 
17 



00 037762 
00 037775 
00 030733 
00 040001 
00 037743* 

00 037744* 

01 040073 
00 030242 
00 000002 
00 000001 
00 000000 
00 000000 



TINTX: 



SUBTTL 



JRST 


.-3 


.•TIMEOUT OR ERROR 


JRST 


TINTX 


.•ANSWER NO. EXIT 


MOVE 


2.TSTNAH 


;GET NAME OF TEST 


MOVE I 


1 JSTLST 
TSCAN 


;6ET ADDR OF TEST LIST 


GO 


.•LOOK UP THE TEST 


GO 


FFF 


;NOT THERE ??? 


TEXTF 


aXHELPd) 


.•PRINT PROPER HELP MESSAGE 


PCRLF 






GET 


2 


.•RESTORE AC'S 


GET 


1 




GET 







RTN 




.•AND EXIT 


COLLECTION OF TABLES 


USED TO DEFINE TEST PARAMETERS 


XLIST 






LIST 






PAGE 


., 





>:-HMdiV«« 



264 



OFRPM RP07/6/5/4 Exerjisfr 
DFRPM MAC ■ " 



i/4 Exerciser 
12-Sep-85 17:02 



MACRO 1538(1242) 19:36 12-Sep-85 Page 1-U6 
COLLECTION OF TABLES USED TO DEFINE TEST PARAMETERS 



SEO 0277 



a 



264 



DFRPM 
DFRPM 

7388 
7389 
7390 
7391 
7392 
7393 
739A 
7395 
7396 
7397 
7398 
7399 
7A00 
7401 
7A02 
7403 
7404 
7405 
7406 
7407 
7408 
7409 
7410 
7411 
7412 
7413 
7414 
7415 
7416 
7417 
7418 
7419 
7420 
7421 
7422 
7423 
7424 
7425 
7426 
7427 
7428 
7429 
7430 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO J:53B(1242) 19:36 12-Sep-85 Page 1-U6 
COLLECTION OF TABLES USED TO DEFINE TEST PARAMETERS 

:*'SIX8IT NAMES FOR IMPLEMENTED TESTS 

3*; ft***********t*****t*******t**********************t*****t****t*t*t**t*' 



SEO 0277 











COMMENT $ 












$ 

XLIST 












-, LIST 




040001 


46 


57 62 55 41 64 


TSTLST: SIXBIT 


/FORMAT/ 


040002 


60 


41 


53 51 56 64 


SIX8IT 


/PAKJNT/ 


040003 


62 


57 


56 54 71 00 


SIXBIT 


/RONLY/ 


040004 


67 


57 


56 54 71 00 


SIXBIT 


/WONLY/ 


040005 


45 


70 


21 00 00 00 


SIXBIT 


/EX1/ 


040006 


45 


70 


22 00 00 00 


SIXBIT 


/EX2/ 


040007 


45 


70 


23 00 00 00 


SIXBIT 


/EX3/ 


040010 


45 


70 


24 00 00 00 


SIXBIT 


/EX4/ 


04001 1 


45 


70 


25 00 00 00 


SIXBIT 


/EX5/ 


040012 


45 


70 


26 00 00 00 


SIXBIT 


/EX6/ 


040013 


45 


70 


27 00 00 00 


SIXBIT 


/EX7/ 


040014 


45 


70 


30 00 00 00 


SIXBIT 


/EX8/ 


040015 


45 


70 


31 00 00 00 


S XBIT 


/EX9/ 


040016 


45 


70 


21 20 00 00 


SIXBIT 


/EX10/ 


040017 


45 


70 


21 21 00 00 


SIXBIT 


/EX11/ 


04002C 


45 


70 


21 22 00 00 


SIXBIT 


/Exr/ 


040021 


56 


45 


70 64 63 64 


SIXBIT 


/NEXIST/ 


040022 


63 


53 


64 63 64 21 


SIXBIT 


/SKTST1/ 


040023 


63 


53 


64 63 64 22 


SIXBIT 


/SKTST?/ 


040024 


63 


53 


64 63 64 23 


SIXBIT 


/SKTST3/ 


040025 


53 


41 


60 57 65 64 


SIXBIT 


/MAPOUT/ 


040026 


64 


57 


64 43 54 62 


SIXBIT 


/TOTCLR/ 


040027 


56 


45 


67 42 41 64 


SIXBIT 


/NEW8AT/ 


040030 


60 45 


45 53 00 00 


SIXBIT 


/PEEK/ 


040031 


64 


57 


64 41 54 63 


SIXBIT 


/TOTALS/ 


040032 


64 


44 


42 54 44 00 


SIXBIT 


/TDBLD/ 
/T0631/ 


040033 


64 


44 


26 23 21 00 


SIXBIT 


040034 


64 


44 


54 63 64 00 


SIXBIT 


/TDLST/ 


040035 


000 00 00 000000 


2 












XLIST 












LIST 












PAGE 





265 



OFRPM 
DFRPM 



RP07/6/5/4 

MAC 



Exerciser 
12-Sep-85 17:02 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-U7 
COLLECTION OF TABLES USED TO DEFINE TEST PARAMETERS 



r' 



SEQ 0278 



-> , >. J 



L 



?65 



"1 



DFRPM 
DFRPM 

7A31 
7432 
7433 
7434 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



MACRO 3!53B(1242) 19:36 12-Sep-85 Page 1-147 
COLLECTION OF TABLES USED TO DEFINE TEST PARAMETERS 

;*'TABLE of (ITERATION COUNTERS,, POINTERS TO START ADDRESSES) 



SEO 0278 



7435 








COMMENT $ 


7436 










7437 








$ 


7438 








XLIST 


7439 








LIST 


7440 










7441 


040036 


000000 


033321 


TSTADR: 0,, FORMAT 


7442 


040037 


000000 


036507 


CPAKINT 


7443 


040040 


000001 


033134 


1,.R0NLY 


7444 


040041 


000000 


033140 


G.-WONLY 


7445 


040042 


000144 


031361 


•6l00.,EXl 


7446 


040043 


001356 


031406 


•D750,,EX2 


7447 


040044 


001356 


031441 


•D750..EX3 


7448 


040045 


001750 


031505 


•D1006..EX4 


7449 


040046 


001750 


031552 


•D1000,,EX5 


7450 


040047 


015530 


031650 


•D7000,.EX6 


7451 


040050 


015530 


032022 


•D7000.. EX7 


7452 


040051 


004704 


032171 


•D2500..EX8 


7453 


040052 


000000 


032264 


•D0000.,EX9 


7454 


040053 


004704 


032473 


•02500,, EX10 


7455 


040054 


004704 


032577 


•D2500.,EX11 


7456 


040055 


004704 


032753 


•D2500,,EX12 


7457 


040056 
040057 


011610 


034117 


•D5000,,NEXTST 


7458 


000002 


035234 


2,,SKTST1 


7459 


040060 


000002 


035427 


2,,SKTST2 


7460 


040061 


000000 


035630 


Q,,SKTST3 


7461 


040062 


Gu.'OOO 


C36560 


Q,,MAP0UT 


7462 


040063 


000000 


037677 


Q.,T0TCLR 


7463 


040064 


000000 


034042 


Q,,NEW6AT 


7464 


040065 


000000 


036075 


0,,PEEK 


7465 


040066 


000001 


037375 


1,,T0TPNT 


7466 


040067 


000000 


036605 


Q,,TDBLD 
0.,TD631 


7467 


040070 


000000 


037045 


7468 


040071 


000000 


037165 


0.,TDLIST 


7469 


040072 


000 00 00 000000 


I 


7470 










7471 










7472 








XLIST 


7473 








LIST 


7474 








PAGE 



.•EXERCISE #1 



READ/WRITE NEXT TEST 
INCREMENTAL SEEK TESTS 
MEASURE AVERAGE SEEK TIME 
SEEK TIME BETWEEN 2 CYLINDERS 
BAT BLOCK WRITER 
CLEAR TOTALS AREA 
BAT BLOCK INITIALIZER 
DISPLAY DISK AREAS 
PRINT TOTALS 

WRITE/BUILD NEW TD FOR RP07 
BUILD TD'S ON CYL 631 
LIST RP07 TD RECORDS 



DFRPf 
DFRPF 

TOTS 

TOTWf 

TOTWV 

TOTX 

TOTX' 

TRKFl 

TRKFF 

TRLO( 

TSCAf 

TSMI 

TSML 

TSMX 

TSTAI 

TSTAI 

TSTT 

tstl: 

TSTN; 

TTAL" 

TTICI 

TTSU 

TXBI 

TXBA 

TXBF 

TXBG( 

TXBR 

TXBRI 

TXBSI 

TXBX 

TYPB 

TYPL 

ULOAI 

UNIT 

UREAI 

UREL 

UREO 

USEP 

USER 

VARFI 

VQ 

WCDA 

WDSRI 

WDSWI 

WER1 

WER2 

UONHI 

UONL 

WONPi 

WTCN 

X 

XI 

XIOHI 

X11HI 

X12HI 

X1HLI 

X2HLI 



66 



DFRPM 
DFRPM 






RP07/6/5/4 

MAC 



Exerciser 
12-SeD-85 17:02 



MACRO J;53B(1242) 19:36 12-Sep-85 Page 1-148 
COLLECTION OF TABLES USED TO DEFINE TEST PARAMETERS 



SEQ 0279 



DFRP^ 

nCDDM 



66 



DFRPM 


RP07/6/5/4 Exerciser 


DFRPM 


MAC 


12-Sep-85 17:02 


7A75 








7476 








7477 








7478 








7479 








7480 








7481 








7482 








7483 








7484 








7485 


040073 


000000 


041372 


7486 


040074 


000000 


041376 


7487 


040075 


000000 


041353 


7488 


040076 


000000 


041362 


7489 


040077 


000000 


041101 


7490 


040100 


000000 


041103 


7491 


040101 


000000 


041107 


7492 


040102 


000000 


041116 


7493 


040103 


000000 


041123 


7494 


040104 


000000 


041136 


7495 


040105 


oocooo 


041164 


7496 


040106 


000000 


041212 


7497 


040107 


000000 


041223 


7498 


040110 


000000 


041270 


7499 


040111 


000000 


041302 


7500 


040112 


000000 


041326 


7501 


040113 


000000 


C41475 


7502 


040114 


000000 


041075 


7503 


040115 


000000 


041075 


7504 


040116 


000000 


041575 


7505 


040117 


OuJOOO 


041625 


7506 


040120 


000000 


041453 


7507 


040121 


000000 


041462 


7508 


040122 


000000 


041544 


7509 


040123 


000000 


041443 


7510 


040124 


000000 


041641 


7511 


040125 


000000 


041700 


7512 


040126 


000000 


041741 


7513 


040127 


000 00 00 000000 


7514 








7515 








7516 
7517 















MACRO j;53B(1242) 19;36 12-Sep-85 Page 1-148 
COLLECTION OF TABLES USED TO DEFINE TEST PARAMETERS 

$•• ******•*****♦*****♦♦♦♦♦♦•******♦**♦**♦*****************♦♦**•*♦***•***' 
;*' POINTERS TO EXERCISE HELP MESSAGES 



1 



SEQ 0279 



COMMENT $ 



XHELP: 



$ 

XLIST 
LIST 

FMHLP 

PKIHLP 

RONHLP 

WONHLP 

X1HLP 

X2HLP 

X3HLP 

X4HLP 

X5HLP 

X6HLP 

X7HLP 

X8HLP 

X9HLP 

X10HLP 

X11HLP 

X12HLP 

NEXHLP 

NOHELP 

NOHELP 

SK3HLP 

MAPHLP 

TCLHLP 

NBHLP 

PEKHLP 

TOTHLP 

TDBHLP 

TD6HLP 

TDLHLP 

Z 

XLIST 

LIST 

PAGE 



.•FORMAT 
;PAKINT 
;RONLY 
:UONLY 



FOR NEXT TEST 

SKTST1 

SKTST2 

HELP FOR SEEK TEST-3 

MAPOUT 

FOR TOTALS CLEAR 

FOR NEWBAT 

FOR PEEK (DATA DISPLAY ROUTINE) 

TOTALS 

BUILD TD FOR RP07 

BUILD TD'S FOR RP07 CYL-631. 

LIST TD'S FOR RP07 



67 



DFRPM 
[)FRPM 



RP07/6/5/4 

MAP 



Exerciser 
i?-«;»n-R«; i7:np 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-149 
rniiprTinN of tapi f.<; iisfr to rffinf tf.«;t paramftfr?; 



SFQ 0280 



J 



)7 



015 012 110 105 114 



DFRPM RP07/6/5M Exerciser 
DFRPM MAC 12-Sep-85 17:02 



7518 
7519 
7520 
7521 
7522 
7523 
7524 
7525 
7526 
7527 

7528 0A0130 

7529 040130 
7530 

7531 
7532 
7533 
7534 
7535 
7536 
7537 
7538 
7539 
7540 
7541 

7542 040322 

7543 040322 
7544 

7545 
7546 
7547 
7548 
7549 
7550 
7551 
7552 
7553 
7554 
7555 
7556 
7557 
7558 
7559 
7560 
7561 
7562 
7563 
7564 
7565 
7566 
7567 
7568 
7569 
7570 
7571 
7572 



015 012 110 105 114 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-149 
COLLECTION OF TABLES USED TO DEFINE TEST PARAMETERS 

$*• ********************************************************************** 
;* HELP MSG DESCRIBING EXERCISES BY TYPE (FUNCTION) 

S*; ********************************************************************** 

COMMENT $ 

$ 

XLIST 

LIST 

HELP1: ASCIZ? 

HELP - THIS MESSAGE 

DEF - DEFAULT MODE - DIAGNOSTIC WILL USE DEFAULT TESTS AND PARAMETERS 

(YOU MAY SPECIFY SINGLE OR MULTIPLE PASSES) 

MAN - MANUAL MODE - YOU SPECIFY TEST 

VAR - VARIABLE MODE - YOU SPECIFY TESTS AND PARAMETERS 

EXIT - BACK TO "DIAMON" 

TYPE: "S<CR>" WHEN TESTS ARE RUNNING IN USER MODE TO GET PROGRAM STATUS 

TYPE: "CONTROL-S" WHEN TESTS ARE RUNNING IN EXEC MODE TO GET PROGRAM STATUS 

TYPE: "$" (ALTMODE) TO TERMINATE TEST AT END OF NEXT TEST ITERATION 

TYPE: CTRL-C<CR> TO GET BACK TO MONITOR LEVEL. (CONTINUE WILL WORK) 

YOU MAY PRINT THE FILE "DFRPM. HLP" FOR PROGRAM DOCUMENTATION 
7 

HELP2: ASCIZ? 

HELP - THIS MESSAGE 

CONFIG - ALLOWS YOU TO RESELECT DEVICES AND OPTIONS 

MODE - ALLOWS YOU TO CHANGE RUN MODE 

TYPE: "S<CR>" WHEN TESTS ARE RUNNING IN USER MODE TO GET PROGRAM STATUS 

TYPE: "CONTROL-S" WHEN TESTS ARE RUNNING IN EXEC MODE TO GET PROGRAM STAIUS 

TYPE: '%" (ALTMODE) TO TERMINATE TEST AT END OF NEXT TEST ITERATION 

FORMAT - FORMAT 

PAKINT - MEDIA INITIALIZE (RUNS FORMAT. RONLY, MAPOUT) 

NEWBAT - WRITES A NEW SET OF BAT BLOCKS (NO ENTRIES) 

MAPOUT - MAKES BAD SPOT ENTRIES INTO BAT BLOCKS 

RONLY - READ ONLY 

WONLY - WRITE ONLY 

EXl - RECAL 

EX2 - RECAL. SEEK-X 

EX3 - RECAL. SEARCH-X 

EX4 - SEEK-X.SEEK-Y 

EX5 - SEARCH-X, SEARCH-Y 

EX6 - SEEK-X.SEEK-Y.WRITE-Y.READ-Y. VERIFY DATA 

EX7 - SEEK-X.WRITE-Y,READ-Y. VERIFY (IMPLIED SEEKS) 

EX8 - SEEK-X.READ-Y RANDOM 

EX9 - EXERCISE A SPECIFIC AREA OF MEDIA 

EX10 - SEEK-X.WRITE-Y RANDOM 

EXll - READ-X.WRITE-Y.REAO-Z RANDOM 

EX12 - WRITE-X,READ-V,WRITE-Z RANDOM 

NEXTST - READ/WRITE NEXT (TESTS ALL COMBINATIONS OF BACKUP COMMANDS) 

SKTSTl - MEASURES SINGLE CYLINDER SEEK TIMES. FORWARD A.'JD REVERSE. 

(IN USER MODE. TIMES ARE NOT REPORTED) 
3KTST2 - MEASURES SEEK TIMES FOR ALL LENGTH SEEKS. POSITIVE AND NEGATIVE. 

(IN USER MODE, TIMES ARE NOT REPORTED) 
SKTST3 - MEASURES SEEK TIME BETWEEN ANY 2 CYLINDERS 






SEQ 0280 



DFRPM 
DFRPM 



RP07/6/5/4 Exer 



MAP 



1?-<i. 



:s4'??. 



n? 



MACRO J{53B(1242) 19:36 12-Sep-85 Page 1-150 
rniiFrTinN nF tari f.<; u?;fd Tn dffinf tfst paramftfrs 



SEQ 0281 



>8 



DFRPM 
DFRPM 

7573 
7574 
7575 
7576 
7577 
7578 
7579 
7580 
7581 
7582 
7583 
758A 
7585 
7586 
7587 
o88 
7589 
7590 



RP07/6/5/A Exerciser 
MAC 12-Sep-85 17:02 



MACRO X53B(1242) 19;36 12-Sep-85 Page 1-150 
COLLECTION OF TABLES USED TO DEFINE TEST PARAMETERS 

(IN USER MODE. TIMES ARE NOT REPORTED) 
PEEK - DISPLAY (IN OCTAL) VARIOUS FIELDS OF A TRACK OR SECTOR 
TDLST - LIST TRACK DESCRIPTOR RECORDS FOR RP07'S 
TD631 - BUILD TD'S ON RP07 C.E. CyLINDER-631. 
TDOLD - WRITES A TRACK DESCRIPTOR RECORD FOR AN RP07 
TOTALS - PRINT TOTALS FOR SELECTED DRIVES 
TOTCLR - CLEAR TOTALS LOG FOR SELECTED DRIVES 

(THE MAPOUT INFORMATION IS NOT CLEARED) 
RUNTME - PRINT PROGRAM RUN TIME 
RUNZRO - RESET PROGRAM RUN TIME 

PGMSIZ - PRINT CURRENT MEMORY USEAGE (USER MODE ONLY) 
EXIT - BACK TO DIAMON 



XLIST 

LIST 

PAGE 



SEO 0281 



OFRPM RP07/6/5/4 Exerciser 

hFDPM MAr I7.^un-A<; 17-n7 



MACRO X53B(12A2) 19:36 12-Sep-85 Page 1-151 
rniiFrTinw nf tarif*; ikfo rn offinf tf«:t pisamftfr^ 



$F0 0?ti2 



DFRPM 
DFRPM 

7591 

7592 

7593 

759A 

7595 

7596 

7597 

7598 

7599 

7600 

7601 

7602 

7605 

760A 

7605 

7606 

7607 

7608 

7609 

7610 

7611 

7612 

7613 

76K 

7615 

7616 

7617 

7618 

7619 

7620 

7621 

7622 

7623 

7624 

7625 

7626 

7627 

7628 

7629 

7630 

7631 

7632 

7633 

7634 

7635 

7636 

7637 

7638 

7639 

7640 

7641 

7642 

7643 

7644 

7645 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



041075 116 117 040 110 105 

041101 122 105 103 101 114 

041103 122 105 103 101 114 

041107 122 105 103 101 114 

041116 123 105 105 113 040 

041123 123 105 101 122 103 

041136 123 105 105 113 040 



041164 

041164 015 012 123 105 105 



041212 123 105 105 113 040 



041223 

041223 015 012 120 105 122 



041270 123 105 105 113 040 



041302 ^22 105 101 104 040 



041326 127 122 111 124 105 



MACRO ):53B(1242) 19:36 12-Sep-85 Page 1-151 
COLLECTION OF TABLES USED TO DEFINE TEST PARAMETERS 

;*'DETAILED help MESSAGES FOR EACH EXERCIES 

3*« *********************** ***«*****************************t**t********** 

COMMENT $ 

$ 

XLIST 
LIST 

NOHELP: ASCIZ/NO HELP AVAILABLE/ 

X1HLP: ASCIZ/RECAL/ 

X2HLP: ASCIZ/RECAL 
SEEK - CYLl/ 

X3HLP: ASCIZ/RECAL 
SEARCH - CYLI.SURFI.SECTI/ 

X4HLP: ASCIZ/SEEK - CYLl 
SEEK - CYL2/ 

X5HLP: ASCIZ/SEARCH - CYLl .SURFl .SECT1 
SEARCH - CYL2.SURF2,SECT2/ 

X6HLP: ASCIZ/SEEK - CYLl 
WRITE - CYL2,SURF2,SEfT2.SIZE2.PAT2 
READ - CYL2,SURF2,SECT2.SIZE2 
DATA COMPARE IS OPTIONAL/ 

X7HLP: ASCIZ/ 

SEEK - CYLl 

WRITE - CYL2,SURF2,SECT2,SIZE2,PAT2 

READ - CYL2.SURF2.SECT2,SIZE2 

DATA COMPARE IS OPTIONAL/ 

X8HLP: ASCIZ/SEEK - CYLl 
READ - CYL2.SURF2.SECT2.SIZE2/ 

X9HLP: ASCIZ? 

PERFORM EITHER READ OR WRITE/READ/VERIr Y ON SELECTED AREA OF MEDIA 

CYLl. SURFl MARK THE START OF THE AREA 

CYL2.SURF2 MARK THE END OF THE AREA 

TRANSFERS ARE ALL A FULL TRACK LONG 

? 

X10HLP: ASCIZ/SEEK - CYLl 

WRITE - CYL2.SURF2.SECT2.SIZE2.PAT2/ 

XllHLP: ASCIZ/READ - CYLl, SURFl, SECT1.SIZE1 
\SECT2 



SEQ 0282 



WRITE - CYi2,SURF2.SECT2,SIZE2.^AT2 
READ - CYL3,SURF3.SECT3.SIZE3/ 

X12HLP: ASCIZ/WRITE - CYLl .SURF 1 .SECTI .SIZEl ,PAT1 



IMMHWiJWWM 



iii wr w n i j'i t m Kfintiitmt 



» t i . i | >i ' «iifci U'-' ii i a» . ii|ir>># L WW *) *'w 



OFRPM RP07/6/5/4 Exerciser 



MACRO 1538(1242) 19:36 12-Sep-85 Page 1-152 

rniicrrtrMLi nt TAQirc iiccr\ rn rxcciiuc rcrr oaoamctcoc 



ccn n^flt 



r 



DFRPM 
DFRPH 

76A6 

7W8 

7b^9 

7650 

7651 

7652 

7653 

765A 

7655 

7656 

7657 

7658 

7659 

7660 

7661 

7662 

7663 

766A 

7665 

7666 

7667 

7668 

7669 

7670 

7671 

7672 

7673 

767A 

7675 

7676 

7677 

7678 

7679 

7680 

7681 

7682 

7683 

7684 

7685 

7686 

7687 

7688 

7689 

7690 

7691 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 ^7:02 



0A1353 122 105 101 10A OAO 

0A1362 127 122 111 124 105 

041372 106 117 122 115 101 

041376 120 101 113 111 116 

041443 124 117 124 101 114 

041453 124 110 105 040 124 

041462 116 105 127 102 101 

041475 lie 105 130 124 123 

041544 120 105 105 113 040 

041575 123 113 124 123 124 

041625 115 101 120 117 125 

041641 124 104 102 114 104 

041700 124 104 066 063 061 

041741 114 111 123 124 040 



HACRO );538(1242) 19:36 12-Sep-85 Page 1-152 
COLLECTION OF TA8LCS USED TO DEFINE TEST PARAMETERS 

READ - CYL2.SURF2.SECT2.SIZE2 

yRITE - CYL3.SURF3.SECT3,SIZE3,PAT1/ 

RONHLP: ASCIZ/READ ONLY - CYLl .SURF1 .SECT1 .SIZEI/ 

UONHLP: ASCIZ/WRITE - CYLl .SURFl .SECTI ,SIZE1 ,PAT1/ 

FHHLP; ASCIZ/FORMAT - CYL1,SURF1/ 

PKIHLP: ASCIZ/PAKINT - INITIALIZE THE MEDIA (RUNS THE FOLLOWING) 
FORMAT - TO FORMAT THE MEDIA 
RONLY - TO SCAN PACK AND FIND BAD SPOTS 
MAPOUT - REWRITE "BAT" BLOCKS WITH ENTRIES FOR BAD SPOTS/ 

TOTHLP: ASCIZ/TOTALS FOR ZERO ENTRIES ARE NOT PRINTED/ 

TCLHLP: ASCIZ/THE TOTALS AREA WILL BE CLEARED/ 

NBHLP: ASCIZ/NEWBAT - CREATES NEW 'BAT" BLOCKS (WITH NO ENTRIES)/ 

NEXHLP: ASCIZ/NEXTST - TESTS RH20 BACKUP COMMAND OPERATION (ANY COMBINATION) 

DOING BACK TO BACK 2 SECTOR TRANSFERS AT A TIME 

1ST CMD - CYL1,SURF1,SECT1 

2ND CMD - CYL1.SURF2 (2 SECTORS FROM 1ST CMD)/ 

PEKHLP: ASCIZ/PEEK - DISPLAY COMBINATIONS OF HEADER AND DATA FIELDS FOR 
ANY DISK SECTOR. TD'S ARE ALSO ALLOWED FOR RP07. DATA IS IN OCTAL/ 

SK3HLP: ASCIZ/SKTST3 - MEASURES SEEK TIME FROM CYLl TO CYL2 

FOR SPECIFIED NUMBER OF ITERATIONS. (NO TIMES REPORTED IN USER MODE)/ 

HAPHLP: ASCIZ/MAPOUT - ALLOWS YOU TO EXAMINE AND MODIFY MAPOUT-DATA-BASE/ 

TDBHLP: ASCIZ/TDBLD - CREATE A NEW TD RECORD ON CYLl, SURF1 
THEN REFORMAT AND RE-READ THE TRACK CHECKING FOR ERRORS. 
**• YOU BEST UNDERSTAND WHAT YOU ARE DOING »••/ 

TD6HLP: ASCIZ/TD631 - CREATE A NEW TD RECORD ON CYLINDER-631 , SURF1 
THEN REFORMAT AND RE-READ THE TRACK CHECKING FOR ERRORS. 
**• YOU BEST UNDERSTAND WHAT YOU ARE DOING •♦•/ 

TDLHLP: ASCIZ/LIST DEFECT INFORMATION FROM RP07 TD'S WITHIN THE RANGE OF 
CYLl. SURF1 AND CYL2.SURF2 INCLUSIVELY/ 

PAGE 



SEQ 0283 



DFRPM1 
DFRPM1 

8032 
8033 
8034 
8035 
8036 



i»<l l *li i l>il " 



DFRPM RPO^/6/5/4 Exerciser 



ismnai •*«/- 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-153 

rniicrrtnn nr TAOitrc iiccri rn ncrikic tcct daqamc tcoc 



ccn n^az. 



DFRPM1 



OFRPH RP07/6/5/4 Exerciser 
DFRP« MAC 12-Sep-85 17:02 

7692 
7693 
7694 



MACRO X53B(1242) 19:36 12-Sep-85 Page 1-153 
COLLECTION OF TABLES USED TO DEFINE TEST PARAMETERS 

XLIST 

LIST 

PAGE 



SEO 0284 



OFRPfll 
DFRPMl 



! 



DFRPM RP07/6/5/4 E.erciser 

■k m -^ — -- AAA* «A«k Af*«'V 



■^ A •\ 



MACRO X538(1242) 19:36 12-Sep-85 Page 1-154 



rrn ntac 



DFRPM1 



OFRPM 
DFRPM 

7695 

7696 

7697 

7698 

7699 

7700 

7701 

7702 

7705 

7704 

7705 

7706 

7707 

7708 

7709 

7710 

7711 

7712 

7713 

7714 

7715 

7716 

7717 

7718 

7719 

7720 

7721 

7722 

7721 

772k 

772'^ 

7726 

7721 

772B 

7729 

7730 

77V 

7711 

7711 

77lk 

7715 

7736 

7737 

7738 

7739 

7740 

77a 

77k2 

77^1 

77(,i, 

77i>5 

7746 

77U7 

77i,S 

7749 



RP07/6/5/4 EAerciser 
^AC 12-Sep-85 17:02 



04200C 



042000 
042001 
042002 
042003 



042004 
042005 
042006 
042007 
042010 
042011 



042012 
042013 
042014 
042015 



MACRO :538(1242) 19:36 12- 
COLLECTION OF TABLES USED 



Sep-85 Page 1-154 

TO DEFINE TEST PARAMETERS 



SEQ 0285 



DFRPM1 
DFRPW1 



• * 



••••• SPECIAL I/O CODE ••••• 



COMMENT S 



THIS IS SPECIAL I/O CODE USED FOR USER MODE CONFIGURATION. IT 

IS PLACED HERE BECAUSE IT MUST ALL BE CONTAINED WITHIN THE SAME 

PAGE TO PREVENT A PAGE FAILI.IRE. THESE ROUTINES ARE CALLED FROM 

THE CONFIGURATION MODULE OUT OF THE ROUTINE 'RHDRPL' AND MAY BE 

USED NOWHERE ELSE IN THE PROGRAM. 

$ 

XLIST 

LIST 



*******«**********************************4r**********»******************* 



THERE IS A LOC STATEMENT HERE BECAUSE ALL OF THE 
RESIDENTIN A SINGLE PAGE (TO AVOID PAGE FAULTS). 
ROUTINE THAT READS REGISTER-06. THE PI SYSTEM IS 



I/O ROUTINES MUST 
DURING THE ENTIRE 
DISABLED. 



BE 



.•LOCATE SO CODE FROM HERE iHRU DTISAV IS ON SAME PAGE 

LOC <.*77>t777700 ;100(0CTAL) LOCATIONS IS ENOUGH 



;D0 A CON. iNTO ACT 



200 01 00 042060 
43'. 01 00 000016 
256 00 00 000001 
263 17 00 000000 



..CONI: MOVE 
I OR 

XCT 
RTN 



1JNSTR1 

1.MBCN 

1 



GET THE OPCODE 
INCLUDE THE DEVICE CODE 
DO THE I/O 
AND RETURN 



;D0 A CONO FROM AC1 



261 17 
434 01 
434 01 
256 00 

262 17 

263 17 



00 000001 
00 042061 
00 000016 
00 QQOOOI 
00 OOOOOI 
00 000000 



.CONO: PUT 
I OR 
lOR 
XCT 
GET 
RTN 



1 

MNSTR2 

1.M6CN 

1 

1 



.-SAVE AC1 
.•INCLUDE THE 
.•INCLUDE THE 
;D0 THE I/O 
.•RESTORE AC1 
;AND RETURN 



OPCODE 
DEVICE 



CODE 



255 00 00 000000 




7 004 cQ 5 00 QQ0400 




261 17 qq OOQQOI 
261 17 00 000002 







READ REGISTER 06 (DRIVE TYPE INTO AC1) 
RTN«1 ON AN RAE (ACO AS IT WAS WHEN CALLED) 
RTN*2 NO RAE .... (DRIVE TYPE REGISTER IS IN ACD 
PI SYSTEM OFF AT START AND ON AT COMPLETION 



.RDR6: JFCL 
CONO 
PUT 
PUT 



PI. 1827 
2 



FOR DEBUG.... 
TURNS PI SYSTEM OF^ 
SAVE SOME AC'S 



r 



P!?W? !?PQ7/6/5/4 Exerciser 



l!WCRCJ53B(1242)J?l36J2-S?P:85.P*ge_1:155. 



r 



nrBPMi 



DFRPM 
DFRPP! 

7750 
7751 
7752 
7753 
775A 
7755 
7756 
7757 
7758 
7759 
7760 
7761 
7762 
7763 
7764 
7765 
7766 
7767 
7768 
7769 
7770 
7771 
7772 
7773 

7775 
7776 

im 

7778 
7779 
7780 
7781 
7782 
7783 
778A 
7785 
7786 
7787 
7788 
7789 
7790 
7791 
7792 
77Q3 
7794 
7795 
7796 

7>98 
7799 
7800 

i| 

7803 
7804 



RP07/6/5/A Exerciser 
MAC 12-Sep-85 17:02 



0A2016 260 17 00 042000 
0A2017 602 01 00 OOAOOO 
042020 254 00 00 042051 



042021 
042022 
042023 



042024 
042025 
042026 
042027 



042030 
042031 
042032 
042033 
042034 
042035 
042036 



042037 
042040 
042041 
042042 
042043 



042044 
042045 
042046 
042047 
C4?050 
042051 

Q42Q54 
042055 



660 01 00 000400 
405 01 00 000447 
260 17 00 042004 



200 02 00 042062 
434 02 00 000016 
256 00 00 000002 
202 01 00 042056 



205 
137 
661 
256 
621 
256 
202 



01 
15 
02 
00 
02 
00 
01 



510 01 
621 01 
661 01 
661 02 
256 00 



260 


17 


606 01 


350 00 


405 


01 


\^ 


17 
17 


Y\ 


17 
04 2 


255 
263 


?? 



00 060400 
00 042057 
00 000100 
00 000002 
00 000100 
00 000002 

17 mm 



00 042056 
00 007370 
00 000400 
00 000100 
00 000002 



00 0420C0 
00 004000 
17 777776 
00 004447 
00 042004 
00 000002 
00 Q0QQQ1 

00 Qooaoo 



HACRO X53B(1242) 19:36 12-Sep-85 Page 1-155 
COLLECTION OF TABLES USED TO DEFINE TEST PARAMETERS 

;D0 A CONI AND CHECK FOR INITIAL RAE 



SEQ 0286 



GO 

TRNE 

JRST 



..CONI 
1.1624 
..R6EX 



;GET RH20 CONDITIONS 

;IS THERE ALREADY AN RAE ? 

.-YES, DON'T TOUCH THIS RH20 



;N0 RAE.. CONO TO GUARANTEE MBE=1 ALL ELSE IS PRESERVED 



TRO 
AND I 
GO 



1,1827 

1.447 

..CONO 



.-MAKE SURE MASSBUS IS ENABLED 

;«ASK TO MAKE SURE CONO ONLY CHANGES HBE 

;D0 THE I/O 



;D0 A BLIND DATAI TO SAVE THE PREP REGISTER 



MOVE 
!tOR 
XCT 
HOVEM 



2.INSTR3 
2.MBCN 

1.DTISAV 



;GET A BASIC DATAI 
.•INCLUDE THE DEVICE CODE 
.-DOES A DATAI RH.1 
.•SAVE RESULTS OF THE DATAI 



;00 A DATAO/DATAI PAIR TO READ DRIVE TYPE REGISTER 

mvSI 1.(665!1B9} :RE6 # AND DRAES 

DPS DRIVE, 8PTR ;A BYTE POINTER ON THIS PAGE 

TLO 2.(1811) ;«AICE THE DATAI A DATAO 

XCT 2 ;DOES A DATAO RH.1 

TL2 2. (IBID .-CHANGE TO DATAI RH.1 

XCT 2 .-DOES A DATAI RH.1 

MOVEM 1.-1 (P) ;SAVE THE RESULTS ON STACK FOR RETURN 

.-NOW RESTORE THE PREP REGISTER FOR MONITOR 



HLLZ 

TLZ 

TLO 

TLO 

XCT 



1.DTISA7 

1.7370 

1.400 

2.(1811) 

2 



;6ET ORIGINAL CONTENTS OF PREP REGISTER 

.-SAVE ONLY STATE OF RS. DRAES. DS 

.•FORCE THE DRAES BIT 

.-CHANGE DATAI BACK TO A DATAO 

;AND RESTORE CONTENTS OF PREP REG 



DFRPM1 
DFRPM1 

8140 
8141 
8142 
8143 
8144 
8145 
8146 
8147 
8148 
8149 
8150 
8151 
8152 
8153 
8154 
8155 
8156 
8157 
8158 
8159 
8160 
8161 



;00 A CONI TO SEE IF WE'VE CAUSED AN RAE 

;IF SO yE CLEAR RAE WITH A CONO AT THE SAME TIME PRESERVING RH20 

;C0N0 STATUS FOR THE OPERAiONG SYSTEM 



60 

TRNN 
AOS 
AND! 
GO 
..R6EX: GET 
GET 
CONO 
JFCL 
RTN 



..CONI 

1.1B24 

-Ik?) 

1.4447 

. . f ONO 

2 

1 

PIJB28 



;GET RH20 CONDITIONS TO AC1 

;DID WE GET AN RAE ? 

;N0, ADJUST STACK FOR GOOD RETURN 

;SET UP TO CLEAR RAE (IF ANY) 

;D0 IT 

; Re STORE THE AC'S 

;PI SYSTEM BACK ON AGAIN 
;FOR DEBUG 



;A CELL FOR SAVING THE BLID DATAI ... 

.'LOCATED 'HERE* TO ELIMINATE POSSIBILITY OF A PAGE FAULT 



DFRPM 
DFRPM 

7805 
7806 
7807 
7808 
7809 
7810 
7811 
7812 
7813 
78U 
7815 
7816 
7817 
7818 
7819 
7820 



RP07/6/5/A Exerciser 
MAC 12-Sep-85 17:02 

0A2056 000 00 00 000000 
0A2057 22 03 00 000001 



0A2060 7 000 2A 00 000001 
042061 7 000 20 00 000000 
0A2062 7 000 OA 00 000001 



0A206A' 



030000 



NO ERRORS DETECTED 

PROGRAM BREAK IS 0A3760 
ABSOLUTE BREAK IS CA2063 
CPU TIME USED 00:19.520 

126P CORE USED 



MACRO X53B(12A2) 19:36 12-Sep-85 Page 1-156 
COLLECTION OF TABLES USED TO DEFINE TEST PARAMETERS 

DTISAV: Z ;BLIND DATAI IS SAVED HERE 

;A BYTE POINTER FOR SETTING THE DRIVE NUMBER 

BPTR: POINT 3,1,17 ;PUT INTO AC1 15-17 

.•DEFINE A COUPLE OF INSTRUCTIONS HERE SO THERE'S NO CHANCE THEY PAGE 
.•FAULT BECAUSE THERE STORED IN THE LITERAL POOL ... 



SEQ 0287 



DPI 
DFI 



INSTRl: CONI 0.1 
INSTR2: CONO 
INSTR3: DATAI 0,1 



RELOC .+1 
END BEGIN 



;CONI INTO ACI 

;A CONO INSTRUCTION 

;A DATAI INTO ACI 



DFRPM RP07/6/5/A Exerciser 
DFRPM MAC 12-SeD-85 17:02 



■1 



MACRO X53B(12A2) 19:36 12-Sep-85 Page S-1 
SYMBOL TABLE 



SEQ 0288 



DFR 
ncfi 



n f 



DFRPM RP07/6/5/4 


Exerciser 


DFRPM MAC 


12-Sep- 


85 17:02 


ABBPCY ( 


)3A252 


ext 


ABBPT 1 


33A376 


ext 


ABORT i 


;ooooo 


spd 


ACBP 1 


331211 




ACCEPT 1 


531204 




ACPTX 1 


331250 




ACPTX1 1 


331251 




ADC ON 1 


33AA12 


ext 


ADJ 1 


33A021 




ADR1 1 


336A61 


ext 


ALT ADD 1 


3307A0 




ALTF 


330757 


int 


ASBUF 1 


331 06A 


ext 


ATOCON 1 


330766 


int 


AVE BOX 1 


33557A 




AVEBX 1 


335706 




AVEBXX i 


335617 




AVE INC i 


3A206A' 




AVESEK 


342065' 




BACKUP 


3307A6 


int 


BAD INC 


342066' 




6ADSEK 


342067' 




BEGEND 


330057 




BEGIN 


330000 




BPTR 


342057 




BRANCH 


):7A12 


ext 


BSYCNT 


): 07A5 


int 


BUF1A 


): 072A 


int 


BUF2A 


):0725 


int 


BUFSIZ 


330726 


int 


CBASE 


b'026 


ext 


CBUFF 


330600 


int 


CCCLR 


331 17> 


ext 


CCFI.G 


331200 


ext 


CKDI 


3:a5ai 


ext 


CW>2 


);4565 


exl 


CHDA 


3:6372 


ext 


CNTDEF 


3:7331 


ext 


COMPBB 


332A70 


ext 


CONFIG 


331072 


ext 


CONSy 


3; 00A6 




CORSIZ 


3. 


1310 


ext 


CWFMT 


y 


3725 


ext 


CUFTO 


V 


71A7 


ext 


CWHDC 




6A35 


ext 


CWRHDC 


V- 


6310 
7320 


ext 


CURTD 


ext 


CURUD 




6330 
732A 


ext 


CYL1 




ext 


CYL2 
CYL3 


1 


7:02 


ext 


y 


3126 
3245 


ext 


DATTBl 


i; 


ext 


OBEDIT 


6603 
0007 


ext 


DCK 


}< 


spd 


OOTSRT 





MACRO X53B(12A2) 19:36 12-Sep-85 Page S-1 
SYMBOL TABLE 



SEQ 0288 



DECVER 

DEFECT 

DELAY 

DEVREL 

OEVSEL 

DEVUD 

DIAGCR 

DISDEF 

DISHLP 

DISPAT 

DRIVE 

DRV1 

DRV2 

DRV3 

DRVA 

DRVNAM 

DRVSET 

DSBSIZ 

DSU 

DTE 

DTISAV 

DUMPA 

DUMPS 

DVISOR 

E.COMP 

ECH 

ENCMAO 

ENCMA1 

ENCMD1 

ENCMD2 

ENCMD3 

ENCMPA 

ENCMDB 

ENDCMD 

ENDFIX 

EOPUUO 

ERCNT 

ERFLG 

ERROR 

ERSEC 

EX1 

EXIQ 

EXiOA 

EX 108 

EX10C 

EX10D 

EX10E 

EXIOF 

EXIOS 

EXIOX 

EX11 

EX118 

EX11C 

EXnCI 

EX11P 



037700 



3003 
$A77 
.5670 
5A133 
J77OA 
031 0A2 
034131 
031132 
031130 
031075 
000015 
000000 
QOOOOO 
000000 
000000 
033355 
037721 
002A13 
00001 A 
002372 
0A2056 
03A775 
034770 
042070' 
002344 
002364 
034656 
034676 
03A626 
03A635 
03A6A2 
03A6A6 
03A 722 
03A621 
030577 

mn 

1Q0011 

130752 
Q3AA66 
031361 
032A73 
032513 
032514 
032516 
"543 
550 
556 
;476 
561 
577 
?611 
2632 
?656 
2700 



S' 



spd 
ext 
ext 
ext 
ext 
ext 
ext 



ext 
ext 
ext 
ext 
ext 



ext 
ext 



int 

int 



EX11E 

EX11F 

EX11S 

EX11X 

EX12 

EX12B 

EX12C 

EX12C1 

EX12D 

EX12E 

EX12F 

EX12S 

EX12X 

EX1A 

EXIB 

EX1S 

EX1X 

EX2 

EX2A 

EX2B 

EX2C 

EX2S 

EX2X 

EX3 

EX3A 

EX3B 

EX3C 

EX3S 

EX3X 

EXA 

EXAA 

EXAB 

EXAC 

EXAD 

EXAE 

EXAS 

EXAX 

EX5 

EX5A 

EX5B 

EX5C 

EX50 

EX5E 

EX5S 

EX5X 

EX6 

EX6A 

EX6B 

EX6C 

EX6D 

EX6E 

EX6F 

EX6S 

EX6SK2 

EX6X 



0! 
0! 
0! 



032705 
32713 

mo2 

]716 
i753 
032765 
033011 
033032 
033054 
033066 
033074 
032756 
033077 
031373 
'I1AO2 
;i364 
;iA05 
;iA06 
;iA20 
Q31A23 
031A35 
031A11 
031AA0 
031AA1 
031A53 
O3IA6A 
031501 
031AA4 
031504 
031505 
031525 
031526 
"11530 
11533 
11546 
031510 
031551 
"1l552 
;i601 
;i604 
11612 
;i623 
[1644 
11555 
11647 
11650 
11675 
11676 
11700 
11725 
11732 
11740 
5165^ 
;i752 
1743 



EX7 

EX7A 

EX7B 

EX7C 

EX7D 

EX7E 

EX7F 

EX7S 

EX7X 

EX8 

EX8A 

EX86 

EX8C 

EX8E 

EX8F 

EX8S 

EXSX 

E/(9 

EX9A 

EX9L1 

EX9L2 

EX9L3 

EX9L4 

EX9L5 

EX9L6 

EX9L7 

EX9S 

EX9VAR 

EX9X 

EXDD 

EXX 

FAILRR 

FAILRW 

FAILWR 

FAILUU 

FCYCE 

FER 

FFF 

FIDDLE 

FLIST 

FMHLP 

FMTTR 

FMTTRK 

FMTTX 

FUJ^M07 

FORMAT 

FORML 

FORMS 

FORMX 

FORMXX 

FORMZZ 

FRECOR 

FREE 

FULL I 

FVO 



032022 
032047 
032050 

03|077 
032104 
032112 
032025 
032115 
032171 
032211 
032212 
032214 
032235 
032243 
032174 
032246 
032264 
032270 
032353 
032363 
032367 
032374 
032376 
032403 



032326 
032423 
031175 
031166 
002375 
002377 
002403 
002401 
037223 
002371 
037772 
035142 
030762 
041372 
033343 
033424 
033446 
033361 

033333 
033324 
"1342 
651 
5354 
)763 
764 

(363 



ext 
ext 
int 



DFR 
DFR 

8 
8 
8 
8 
8 



8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 

I 

8 
8 
8 

8 
8 
8 
8 
8 
8 



int 
int 



DFRPM RP07/6/5/4 Exerciser 
DFRPM MAf 1?-S»e-ft5 17:0? 



MACRO X53B{1242) 19:36 12-Sep-85 Page S-2 
SYMBQl TAfilF 



SEO 0289 



DFRI 






DFRPM RP07/6/5/4 Exerciser 
OFRPM MAC 12-Sep-85 17:02 



FV2A 

FV6 

FVTK 

FVTKO 

FVX 

FU1 

GENBAT 

GENHDR 

GENRAN 

GENS1 

GENSEC 

GENSX 

GENVAR 

GET 

GETITR 

GETLOG 

GETTD 

GETTD1 

GETTD3 

GETTDA 

6ETTDX 

GMX! 

Gnx2 

Gnx2A 

GMXSEC 

G«XX 

GO 

HCE 

HCRC 

HELPl 

HELP2 

HUNG 

lAE 

I ARE A 

I CORE 

IDENT 

IN9A 

IN9e 

IN9RD 

IN9RE 

INCBAD 

INCBOX 

INCBXX 

INCTOT 

INFO 

INICOM 

INITPI 

INPUT 

INSEC 

INSTR1 

INSTR2 

INSTR3 

1010 

I010B 

1011 



262740 



2607A0 



033373 
03341 A 
033A01 
033A03 
033A23 
033AAA 
03A066 
033A32 
03235A 
03AA63 
03AAA6 
03A500 
035653 
OOQOOO 
035725 
03AA23 
035112 
03512A 
035165 
035166 
035170 
03A517 
03A527 
03A550 
03A505 
03A531 
000000 
002370 
002367 
OAOISO 
0hJ322 
0307A1 
002373 
035232 
033251 
036357 
032302 
""?321 
i307 
J2312 
'A05 
>A03 
5A26 
>A0A 
)03A 
11061 
nQ76 
J72A3 
)3AA72 
)A2Q60 
)A2061 

m 



ext 
ext 
ext 



ext 



ext 



int 



ext 
ext 



ext 
ext 



I011A 

I011B 

1012 

I012A 

101 2B 

106 

I06A 

I06B 

107 

I07A 

1 078 

I07NS 

108 

1086 

109 

I09A 

1 098 

lOTEMP 

lOTIME 

lOUAIT 

ITRER 

ITRIN 

LASTC 

LAYEM1 

LAyEM2 

LAYERR 

LBCE 

LCYCE 

LOENT 

LDENTH 

LNE 

LOCFLG 

LOGERR 

LOGPNT 

LSTQO 

HAGIC 

HAGICF 

HAGICX 

HAKBAT 

NANEX 

HANHLP 

PIANSEL 

HAPO 

HAP1 

NAPHLP 

MAPNEW 

NAPOUT 

NAPS 

NAPX 

HAXINC 

MAXSEK 

NBCN 

nCNVER 

niNERR 

MINING 



MACRO X53B(12A2) 
SYMBOL TABLE 

032 7A0 
032752 
033100 

031 74A 
031773 
032021 
032116 
0321A2 
032170 
0321 2A 
0322A7 
032263 
032424 
032444 
032472 
036042 
036040 
Qy326 
035726 
035734 
00QQ40 
033513 
033525 
033501 



19:36 12-Sep-85 Page S-2 



I 



SEQ 0289 



037330 
037265 
033475 
030761 
034774 
034776 
)37672 

"3542 

J541 
J3644 
336575 
031354 
031352 
)31261 

16574 
J6603 
)41625 

30143 
)3656Q 

;6563 
i04 




ext 



ext 
ext 
ext 

ext 



ext 
ext 
ext 



ext 



spd 



MINSEK 

MNSEL 

MODIFY 

MPASS 

HRTD 

MWTD 

MXSCTM 

MXSEC 

MXSKTM 

MXSUR 

N 

N60 

N6HLP 

N6L1 

N8L2 

N60 

NBS 

N6X 

NERTBL 

NEWBAT 

NEXO 

NEXT 

NEX2 

NEX3 

NEX4 

NEX5 

NEX6 

NEX7 

NEX8 

NEXA 

NEXAO 

NEXA1 

NEXB 

NEXBl 

NEXB2 

NEXB3 

NEXC 

NEXD 

NEXE 

NEXE1 

NEXE2 

NEXER1 

NEXERR 

NEXHLP 

NEXTBL 

NEXTEX 

NEXTS 

NEXTST 

NEXTX 

NF TBI 

NOCOMP 

NOME LP 

NOPNT 

NORET 

NORPT 



)42074' 
11254 
J7747 
W732 

mi 

J5420 
)34507 
Q!>j611 
037274 
034357 
034046 
041462 
034067 
034101 
034113 

834051 
34112 
35011 
034042 
034123 
034151 
034153 
034155 
14170 
S4200 
S4204 
54216 
|4230 
54233 
$4250 
54257 
54271 
54304 
54315 

4330 
54360 
4415 
4422 
54424 
4774 
J473O 
)41475 
14442 
54440 
4136 
4117 
54441 
5005 
J0744 
)41Q75 
J40Q0Q 





NRTB1 




NUniN 




NUMINC 




NUMSEK 




NX CMC T 




NXEREX 


ext 


NXTOO 


ext 


NXTCO 


ext 


NXTSUR 


ext 


NXTYP 




OFRG 




OFSCNT 




OPI 




P 




PAKI6 




PAKIL 




PAKINT 




PAKIS 




PARSER 




PASCNT 




PAT1 




PAT2 




PAT3 




PAT4 




PATCH 




PCRL 




PCRLZ 




PCRLF 




PEEK 




PEEKO 




PEEK1 




PEEKA 




PEEKA1 




PEEKEX 




PEEKFE 




PEEKFH 




PEEKFI 




PEEKFV 




PEEKIO 




PEEKM1 




PEEKPT 




PEEKSV 




PEKHLP 




PEKI01 




PEKI02 




PEKIOX 




PEKPT1 




PEKPT? 




PEKPTX 




PFDN 




PFDN1 




PFDNX 


spd 


PGMINT 


int 


PGMNAM 


int 


PHD1 



037000 
037000 
037040 



265000 



035030 
036232 
342075' 
542076' 
534615 
334777 
534126 
)34135 
035050 
034220 
036342 
002354 
002366 
000017 
036513 
036523 
036507 
036514 
042077' 
030047 
033250 
032700 
000000 
000000 
030624 
030242 
030243 
030242 
)36075 
336101 
536204 
336240 
536245 
36251 
36114 
36140 
36115 
56142 
56252 
56154 
36352 
J6155 
541544 
56^75 
6320 
6334 
6376 
«405 
6406 
6044 
56056 
S070 

5773 
56440 



ext 



ext 

ext 
ext 
ext 
ext 
int 



int 



OFRf 
DFRf 

8: 
8; 

8< 

8; 
8; 
8; 
8; 
8: 
8: 
8; 
8; 
8; 
8; 



8; 
8: 
8; 

Si 



i: 

8; 
8; 
8; 
8; 
8; 
8; 

8i 
8i 

8; 

8i 

8; 
8; 
8; 



illi#MNpMiM[IM«»*M|fM 



OFRPM RP07/6/5/4 Exerciser 



MACRO 1538(1242) 19:36 12-Sep-85 P«ge S-3 

<;VMR0I TARI F 



SEQ 0290 



DFRF 



.DFRPM 
.DFRPM 

!pi 

,PKIFLG 
iPKIHLP 
iPKlXl 
;PKIX2 
i PKPTDA 
I PKPTHD 
1 PKPTTD 
PNT6F 
PNTBCO 
PNTDEC 
PNTENB 
PNTHW 
PNTSXF 
POCDEC 
POCDEF 
PSDN 
PTD1 
PT0A1 
PTDA2 
PTDEX 
PTOTAL 
PUT 

PVPAGI 
Q 

QSTN 
R10D 
R12D 
R5D 
RANDF 
RCCNT 
RCLCNT 
ROCNT 
RDRGOO 
RDRG05 
R0RG07 
RDRG12 
RETDAT 
RETFAL 
RETPOS 
RETREQ 
RETRYF 
R6LIST 
RHWD 
RNSEED 
RONHLP 
RONLY 
RPD 
RPTDF 
RSTART 
RTN 
RUNTME 
RUNTnF 
RWO 
RWI 



RP07/6/5/4 Exerciser 
MAC 12-Sep-85 17:02 



HACRO X53B{1242) 19:36 12-Sep-85 Page S-3 
SYMBOL TABLE 



SEO 0290 



037300 

037640 

037540 
037040 



261740 



263740 



000004 
030765 
041376 
036556 
036557 
036450 
036427 
036411 
000001 
036362 
000000 
030220 
000000 
000002 
036456 
037034 
037667 
036417 
036464 
036470 
036501 
037420 
OQOOOO 
030511 
031046 
037764 
000017 
000021 
000014 
030747 
Qu2351 
QQ2353 
002347 
OQOOOO 
034657 
034704 
)34664 
)2361 
)2363 
)2360 
)2362 
0750 
)0010 
.J1037 
)31030 
41353 
533134 
036776 
)37004 
)0000 

m 

7760 
3165 
3172 



spd 



ext 



ext 
ext 
ext 



ent 



ent 
ext 



int 



ext 
ext 
ext 
ext 



int 

ext 
ext 



spd 

ext 
ext 



RU1A 

RU1B 

RU2A 

RU3 

RU4 

RW6 

RU7 

RWC 

RUIO 

RUSEL 

RWTK 

RWTTRK 

RWTTX 

RUX 

S 

SAVP 

SCPPC 

SECFMT 

SECT1 

SECT2 

SECT3 

SECT4 

SEKBAD 

SEKTOT 

SELECT 

SELFLG 

SETTRP 

SHnODE 

SIZE1 

SIZE2 

SIZE3 

SK1RPT 

SK2RPT 

SK3HLP 

SK3RPT 

SKADJ 

SKCNT 

SKTIA 

SKT1B 

SKT1EX 

SKT16 

SKT1S 

SKT1ST 

SKTIX 

SICT2A 

SKT2B 

SKT2EX 

S<T2G 

SKT2S 

SKT2ST 

SKT2X 

SKT38 

SKT3E 

SKT3S 

SICT3X 



033207 




SKTPNT 


Q: 211 




SKTSTI 






SKTST2 


X' 




SICTST3 


5' 3244 




SNAPA 


0' 3260 




SRCNT 


0:3270 




ST. NAM 


0;:3150 




STA 


0' 3300 




START 






STARTA 


Q: 3252 




STARTE 


Qj 3275 




STARTO 


6" 331 5 




STATCK 


Qj 3274 




STCLOK 


Q: 1005 


ent 


STCMO 


Q; 0730 




STCMDE 


0: 0753 


int 


STCMOX 


O; 3775 




SURF1 


0:6455 


ext 


SURF 2 


):4753 


ext 


SURF 3 


;4713 


ext 


sue 


):4715 


ext 


SWITCH 


)( 2407 




TBIMOD 


002406 
037170 




TBI 


ext 


TB(X 


)30755 


int 


TC .HLP 


)31031 


ext 


T0631 


)30751 


int 


T06HLP 


)34573 


ext 


TDJI 


)33116 


ext 


TOJA 


): 3127 


ext 


TOBFT 


)' 53j5 




TDBGO 


):5527 




TDBHLP 


)41575 




TDBLD 


)35743 




TDBR 


035620 
QQ2350 




TDBRD 




TDBSEL 


i5263 




TOCHK 


):5310 




TDCHX 


):5377 




TDERR 


Q|524Q 
035243 




TDINP 




TDINTP 


):5260 




TDLBR 


Q3540Q 
035455 




TDLCLR 




TDLGO 


035503 
035571 




TDLHLP 




TOLIST 


;5433 




TDLIX 


035436 
035453 




TOLLP 




TDLSEL 


:5572 




TDLSUM 


m 




TOLTOT 




TDLVAR 


Ml 




TDMASK 




TDPCS 



037400 



nr 


15402 




TDPSO 


034240 


'■ 


5234 




TDRPT 


036756 


' 


5427 




TDSTAT 


036726 


9 


5630 




TOSTX 


037040 


' 


4422 


ext 


TDSUM 


037306 


c 


2352 




TDUPD 


037273 


1 


:0734 


int 


TEMA 


030767 


; 


:i010 




TEMB 


030770 


1 


1005 


ent 


TEMC 


030771 


' 


1144 


ent 


TEMD 


030772 


' 


[1023 




TEXT 


030000 000000 


31046 


ent 


TEXTF 


031000 000000 


37172 


ext 


TIMEOF 


^36002 
35771 


31314 


ext 


TIME ON 


34534 




TINT 


017722 


34607 
34611 
37321 




TINTX 


037775 




THSTOP 


036024 


ext 


TMSTPX 


036035 


37301 


ext 


THSTRT 


036010 


I 


13123 


ext 


TOTO 


037433 


)( 


11147 




T0T1 


037s40 


m 




TOT10 


037572 


) 




T0T11 


037577 


)^ 


16721 




T0T11A 


037604 


1 


13735 




T0T12 


037611 


)41453 




T0T13 


037622 


37045 




T0T14 


037633 


41700 




T0T15 


037671 


36722 




T0T1A 


037445 


1 


16660 
16702 




T0T2 


037452 






T0T3 


037457 


^ 


16634 




T0T3A 


037464 


i 


»1641 




T0T4 


037471 


n 


16605 




T0T4A 


037476 


] 


6624 
16705 




T0T4B 


037503 


• 




T0T4C 


037510 
037515 


^ 


6614 




T0T4D 


' 


15201 




T0T4E 


037522 
037527 


•t 


5227 




T0T4F 


3 


15211 




T0T5 


037534 


fl 


7116 


ext 


T0T6 
T0T7 


037541 


^ 


7312 




037546 
037553 


^ 


17200 




TOTS 


' 


7256 




T0T9 


037560 


« 


[7210 




T0T9A 


037565 


< 


1741 




TOTALS 


1QQ000 
037703 


j 


7165 




TOTCO 


a 


7311 




T0TCL9 


037677 




7266 




TOTCS 


037704 


j 


7170 




TOTCX 


037720 
041443 


■ 


7346 




TOTHLP 


\ 


7340 




TOTPO 


mi 


•1 


7126 




TOTPNT 


m 


M^ 




TOTRR 


mm 


•4 




TOTRW 



DFRF 
DFRF 

8< 
8< 
8< 
6i 
8< 
8: 
8< 
8: 
8< 

8: 
8; 

it 
82 



8; 
8; 

8( 



spd 



81 



8: 

8! 

8; 

ii 



8; 
8; 



r' 



OFRPW RP07/6/5/4 Exerciser 

bFRPM MAC 17-(l»n-R(; M:C\7 



RACRO Z53B(1242) 

<;VMRni TARI F 



19:36 12-Sep-85 Page S-4 



SEO 0291 



DFRP 



-*-J 































DFRPM 


RP07/6/5/4 Exerciser 




MACRO X53B(1242) 19:36 12-Sep-85 Page S-4 




DFRPM 


MAC 


12-Sep-85 17:02 




SYMBOL TABLE 




TOTS 




037407 




X3HLP 


041107 




TOTUR 




)02402 




X4HLP 


041116 




TOTUU 




)3?673 




X5HLP 


041123 




TOTX 






X6HLP 
X7HLP 


041136 
041164 




T0TX1 




)37417 






TRKFL 




)33762 




X8HLP 


041212 
041223 




TRKFMT 




)33755 




X9HLP 




TRLOOP 




)36737 




XCOMP 


032443 ext 
037325 ext 




TSCAN 




)37771 


ext 


XFSTRT 




TSMI 




)37365 




XHELP 


040073 
002345 




TSHL 




)37355 




XINTR 




iTSMX 




)37370 




Y 


000006 




TSTADD 




)30736 




SITOGG 


030521 




TSTADR 




040036 




SITRXI 


030072 




T5TITR 




)30735 




SONETM 


030056 




TSTLST 




)40001 




..CONI 


042000 ent 




TSTNAM 




)30733 


int 


..CONG 


042004 ent 




TTALTM 


037340 


)00003 




..R6EX 


042051 
042012 ent 




TTICNV 


037240 


)00003 




..RDR6 




TTSIXB 


037400 


)Q0003 
)37161 




.CLOSE 


031201 ext 




TXB1 






.CONI 


034646 ext 




TXBA 




)37117 




.CONG 


034643 ext 




TXBFT 




)37141 




.FMTRK 


033710 




TXBGO 




)37074 




.FMTTX 


033731 




TXBR 




)37064 




.FVO 


033653 




TXBRD 




)37144 




.FV2A 


033663 




TXBSEL 


i 


)37054 




.FV6 


0337^0 




TXBX 




)37160 




.FVTK 


0336 1 




TVPBIT 




)3S043 


ext 


.FVX 


033707 




TYPLIN 




)3'^763 


ext 


.FW1 


033727 




ULOAD 




bo004 


ext 


•GTCGR 


031070 ext 




UNIT 




37425 


ext 


.JBSA 


606120 spd 
037263 ext 




UREAD 




36005 


ext 


.NAME 




UREL 




30760 
50757 


int 


.NAMEF 


037757 ext 




UREQ 




int 


.PIGFF 


034132 ext 




USEPI 




m^ 


int 


.RECAL 


631464 ext 
036334 ext 




USER 






.REL 




VARFLG 




030731 


int 


.RESET 


031202 ext 




VQ 




31126 




.SEEK 


035673 ext 




WCDAT 




34031 




.SRCH 


031635 ext 




WDSRD 




02357 










WDSWRT 




02356 
36207 






" 1 . " ■ - 




UER1 








: ' , - 




WER2 




36224 
41362 










WONHLP 












UGNLY 




33140 
33177 










WONPAT 










■",.""" ':'■''.. 


WTCNT 




02346 










X 




00007 
00013 










XI 












XIOHLP 




41270 










X11HLP 
X12HLP 




41302 
41326 








■-.'■- ■:■ : 


XIHLP 




41101 
041103 










X2HLP 













SEQ 0291 






0FRPM1 

^CDDM1 



MACRO 

MAT 



X53B(1242) 19:37 12-Sep-85 Page 1 



hcuirc 1 /n ncDcuncftiT urn trrcc 



cro Moy 



79 



DFRPMl 
DFRPM1 

7821 

7822 

7823 

782A 

7825 

7826 

7827 

7828 

7829 

7830 

7831 

7832 

7833 

7834 

7835 

7836 

7837 

7838 

7839 

7840 

7841 

7842 

7843 

7844 

7845 

7846 

7847 

7848 

7849 

7850 

7851 

7852 

7853 

7854 

7855 

7856 

7857 

7858 

7859 

7860 

7861 

7§62 

7863 

7864 

7865 

7866 



MACRO X53B(1242) 19:37 12-Sep-85 Page 1 



MAC 



000000" 



9-Sep-85 09:49 



000000 



GENERAL DEVICE I/O DEPENDENT UTILITIES 

TITLE DFRPMl 

SUBTTL GENERAL DEVICE I/O DEPENDENT UTILITIES 

RELOC 

SEARCH DEFINS,M0NSYM 

' ENTRY .NA«E,.NAMEF,.OFSET..PIOFF,.PION,.RECAL,.REL,.REQ 

ENTRY .RHCLR,. SEEK. .SRCH,ASBUF,ATAWT, BRANCH, CBTOER,CLRATA 

ENTRY CPARER. DELAY. DRVCLR,DUMPA,DU«PDR,DUMPRH, DUMPS, GETREG 

ENTRY IDENT.IDENTF.INITPI.MCODE.MCODEP.MMODE.MSTCLR.OPRACT 

ENTRY PAKACK, PARSER, PARSER. PISYOF.PISYON.RDRAM.REGDMP.RELESE 

ENTRY RTNCTL.SETTRP.SNAPA.SNAPDR.SNAPRH. SNAPS. STATCK.SVECT 

ENTRY UNIT.UNITF.UUOTST.XFSTRT 

; THESE ARE LOCATED IN THE MAINLINE 

EXTERN ALTF,BACKUP.BSYCNT.BUF1A.BUF2A.BUFSIZ,CBUFF, ERROR 
EXTERN FREE, HUNG, NORET,NORPT,RETRYF.SHMODE. ST. NAM. TSTNAM 
EXTERN USEPI.VARFLG 

.•THESE ARE LOCATED IN THE COMMON DISK PARAMETER FILE 

EXTERN CWFMT.CWRHD.CWRHDC.CWRTD.CWRWD.FCYCE.LCYCE.TYPA 
EXTERN TYPN 

.•THESE ARE LOCATED IN THE RH20 SUPPORT FILE 

EXTERN .CONI..CONO..CONSO,CBASE,CCCHK.CCCLR,CCFLG.CCSET 

EXTERN CHINIT.CHSEL.CONIPT.DEVREL.DEVREQ.DIAGCR.FFF.GENCCW 

EXTERN GETLOG.LDIVRG.LDRGOO,LDRG03.LDRG04.LDRG05.LDRG11.LDRG12 

EXTERN LDSBAR.LDSTCR.LOGPNT.RDIVRG.RDPBAR.RDPTCR.RDRGOO.RDRGOI 

EXTERN RDRG02.RDRG03.RDRG04.RDRG05,RDRG06.RDRG07.RDRG10.RDRG11 

EXTERN RDRG12,RDRG13.RDRG14.RDRG15,RDRG16,RDRG17.RDSBAR.RDSTCR 

EXTERN REGPNT 

.•THESE ARE FOUND IN THE GENERAL UTILITY FILE 

EXTERN .GTCOR.CHARIN.PNFBCD,PNTBCD.PNTHEX,POCDEC,POCDEF,PSDN 
EXTERN RUNTME.RUNTMF.TSCAN 

.•THESE ARE PART OF INTERRUPT SERVICE MODULE 

EXTERN lOWAIT. RETRY, RHSER.SERV 

REALTIME==0 ;N0 REALTIME CODE .. 



SEQ 0292 



BO 



DFRPMl MACRO X53B(1242) 19:37 12-Sep-85 Page 2 



t /n ncBFufvckiT iirti trtce 



1 



ccn noQT 



DFRPM1 
DFRPM1 

7867 

7868 

7869 

7870 

7871 

7872 

7873 

787A 

7875 

7876 

7877 

7878 

7879 

7880 

7881 

7882 

7883 

7884 

7885 

7886 

7887 

7888 

7889 

7890 

7891 

7892 

7893 

7894 

7895 

7896 

7897 

7898 

7899 

7900 

7901 

7902 

7903 

7904 

7905 

7906 

7907 

7908 

7909 

7910 

7911 

7912 

7913 

7914 

7915 

7916 

7917 

7918 

7919 

7920 

7921 



MACRO X53B(1242) 19:37 12-Sep-85 Page 2 

MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 



SEQ 0293 



000000" 255 GO 00 000000 



OOOOOr 2oJ 17 

000002' 263 17 

000003' 254 00 

000004' 254 00 

000005' 254 00 



00 000672' 
00 000000 
00 000006' 
00 000006' 
00 000013' 



000006' 602 01 00 000010 

000007' 254 00 00 000014' 

000010' 332 00 00 000000* 

00001 r 476 00 00 000000* 

000012' 263 17 00 000000 



000013' 
000014' 
000015' 
000016' 
000017' 
000020' 
000021 • 
000022' 
000023' 



260 17 
402 00 

261 " 
261 
261 



17 
17 
17 




00 000140' 
14 000037 
00 000003 
00 000002 
00 Q0Q001 
14 0Q0Q33 
14 660034 
1* M35 
14 660040 



;XFSTRT — ROUTINE TO INITIATE A DATA TRANSFER 
.-THIS ROUTINE IS USED TO LOAD OFFSET, DCY, DA, AND RH CONTROL 
.•REGISTERS ALONG WITH INITIALIZING THE CHANNEL AND GENERATING THE 
.•APPROPRIATE COMMAND LIST IN CORE. 

•THE LEFT HALF OF AC1 ON THE CALL, WILL BE LOADED INTO 
.-THE OFFSET REGISTER AS OPTIONS FOR THIS TRANSFER. THE 
;OFFSET REGISTER IS ZEROED AFTER EACH TRANSFER COMPLETION. 

•ONLY THE FOLLOWING COMMANDS ARE SUPPORTED: 

; 61 WRITE DATA 

; 71 READ DATA 

; 63 FORMAT TRACK (COMMAND MODIFIER MUST BE SET) 

; 73 READ HEADER AND DATA (COMMAND MODIFIER MAY BE IN 

EITHER STATE BUT DIFFERENT THINGS HAPPEN) 
; 75 READ TRACK DESCRIPTOR (COMMAND MODIFIER MUST BE SET) 

•WHEN THE RETURN IS TAKEN ACI CONTAINS A (CTR,,PTR) 

;T0 THE CHANNEL COMMAND LIST JUST TAKEN. IN ADDITION. THESE 

;"RE STORED ALSO IN CCWPTR(DSW). 



.•CALLING SEQUENCE: 

MOVE AC1.ARG1 
MOVE AC2.ARG2 

i MOVE AC3,ARG3 

I GO XFSTRT 

I RTN-1 



XFSTRT: JFCL 

GO 

RTN 
JRST 
JRST 
JRST 



STATCK 

WRTCK 
WRTCK 
XFCK 



OFFSET REG VALUE., CTRL REG VALUE 

VALUES FOR DCY,, DA 

VALUES FOR +WC.,CORE ADR 

CALL THE ROUTINE 

RETURN 



CHECK DRIVE STATUS FROM DSW 
♦1 DRIVE NOT USEABLE OR OFF-LINE 
♦2 WRITE PROTECTED (VARIABLE MODE) 
♦3 WRITE PROTECTED (MAN OR DEF MODE) 
+4 PASSES ALL TESTS 



;HERE BECAUSE WE'RE WRITE PROTECTED 



WRTCK: 



XFCK: 
XFCK1 



TRNE 


1,10 


JRST 


XFCK1 


SKIPE 


VARFL6 


SETOM 


ALTF 


RTN 




GO 


TRAP 


SETZM 


CCWPTR(DSW) 


PUT 


3 


PUT 


2 


PUT 


1 


MOVEM 


I.XFSTKDSW) 


MOVEM 


2,XFST2(DSW) 


MOVEM 


3,XFST3(DSW) 


MOVEM 


I.LASTC(DSW) 



READ OR WRITE COMMAND ? 
READ CONMMAND 

WRITE CMD. VARIABLE MODE ? 
FORCE ALTMODE. THIS GETS US OUT OF 
A VARIABLE MODE LOOP.... 

SEE IF POSSIBILITY OF DESTROYING DATA 
ZERO, UNTIL CCWS ARE GENERATED 
SAVE AC'S 



.-SAVE ARGS FOR RETRY 



.•SAVE LAST MAJOR COMMAND 



;UPDATE TOTALS AREA 



1 



0FRPM1 MACRO X53B(1242) 19:37 12-Sep-85 Page 2-1 



1 /n t\etiCkit\euT urn trfcc 



CCA MQL 



n 



DFRPM1 MACRO X53B(12A2) 19:37 12-Sep-85 Page 2-1 



DFRPM1 MAC 



7922 
7923 
792A 
7925 
7926 
7927 
7928 
7929 
7930 
7931 
7932 
7933 
793A 
7935 
7936 
7937 
7938 
7939 
7940 
79A1 
79A2 
79A3 
79A4 
7945 
7946 
7947 
7948 
7949 
7950 
7951 
7952 
7953 
7954 
7955 
7956 
7957 
7958 
7959 
7960 
7961 
7962 
7963 
7964 
7965 
7966 
7967 
7968 
7969 
7970 
7971 
7972 
7973 
7974 
7975 
7976 



9-Sep-85 09:49 



000024' 
000025* 
000026' 
000027' 
000030' 
000031 ' 
000032' 
000033' 
000034' 
000035' 
000036' 
000037' 
000040' 



546 02 
405 02 
202 02 
135 02 
202 02 
554 02 
606 01 
254 00 
350 00 



272 02 
254 00 



350 00 
212 02 



14 
00 
14 
00 
14 
14 
00 
00 
14 
14 
00 
14 
14 



002410 

000377 

002412 

002102' 

002411 

000035 

000010 

000037' 

002347 

002357 

000041 • 

002346 

002356 



000041 ' 
000042' 
000043' 
000044' 
000045' 
000046' 
000047' 
000050' 
000051 • 
000052' 
000053' 



200 01 

606 01 
254 00 
200 02 

607 01 
254 00 
200 02 
60? 01 
23 00 
200 02 
25'. 00 



17 000000 
00 000002 
00 000054' 
13 000000* 
00 100000 
00 000057' 
13 000000* 
00 000010 
00 000057' 
13 000000* 
00 000057' 



000054' 200 02 13 QOOOOO* 

000055' :: : 

000056' 200 02 

000057' 202 02 



602 01 00 000004 

13 000000* 

14 000036 



000060' 260 17 00 001021' 

000061' 554 01 17 Vim 

000062' 336 00 00 OOQOQO* 

000063' 260 17 1 13 Q00130' 

000064' 255 00 00 000000 

000065' 550 01 17 mm 



000066' 260 17 00 000000* 



GENERAL DEVICE I/O DEPENDENT UTILITIES 



;SAVE CURRENT CYLINDER 
;SAVE SECTOR 

.-SAVE THE CURRENT SECTOR 
ST2(DSW),273 -GETS SURFACE NUMBER 
.-SAVE CURRENT SURFACE 
;GET WORD COUNT 
;IS CMD A READ OR WRITE ?? 
.•WRITE 

;ITS A READ. COUNT IT 
.•TOTAL THE WORDS 

; TOTAL THE WRITE COUNT 
.•TOTAL THE WORDS 

;SET UP A BLOCKSIZE FOR LATER IN THE CODE 

.-BLOCKSIZE IS THE # OF WORDS UNTIL EBL 

;THE FOLLOWING PROPERTIES OF COMMANDS ARE USED IN THIS LOGIC 

; BIT-32=0 IMPLIES WRITE BIT-32=1 IMPLIES READ 

; BIT-34=1 IMPLIES A HEADER AND DATA OPERATION 

; BIT-33=1 IMPLIES A TD OPERATION 



SEO 0294 



HLRM 


2.CCyL(DSW) 


AND I 


2.377 


HOVEM 
LDB 


2,CSECT(DSW) 
2,LP0INT 8.XF 


HOVEM 


2.CSURF(DSW) 


HLRZ 


2.XFST3(DSW) 


TRNN 


1.10 


JRST 


.♦4 


AOS 


RDCNT(DSW) 


ADDM 


2.WDSRD(DSW) 


JRST 


.+3 


AOS 


WTCNT(DSW) 


ADDM 


2.WDSWRT(DSW) 



BLOKO: 



BL0K1 
SBZ: 



MOVE 
TRNN 
JRST 
MOVE 
TLNN 
JRST 
MOVE 
TRNE 
JRST 
HOVE 
JRST 

HOVE 

TRNE 

HOVE 

HOVEM 

XLIST 

LIST 



1.(P) 

1,1B34 

BL0K1 

2,CWRHD(X1) 

1.100000 

SBZ 

2.CWRHDC(X1) 

1.1B32 

SBZ 

2,CWFMT(X1) 

SBZ 

2.CWRWD(X1) 
1.1B33 
2.CWRTD(X1) 
2.BLKSIZ(DSW) 



GET THE AC AS PASSED 
HEADER AND DATA OPERATION ? 
NO. TD OR DATA FIELD UPDATE 
YES. ASSUME RD H+P AND CMOD=0 
IS CM0D=1 ? 
NO. GUESSED CORRECTLY 
ASSUME RD H+D AND CMOD=0 
IS IT A WRITE COHMAND ? 
NO. GUESSED CORRECTLY 
YES. IT'S AN RP07 FMT CMD 
SAVE SIZE 

ASSUME DATA FIELD CMD 
IS IT A TD OPERATION ? 
YES. GET CORRECT SIZE 
BLOCK SIZE NOW SET UP 



.•REQUEST THE DEVICE AND START THE I/O 



GO 

HLRZ 
SKIPN 
GO 
JFCL 

HRRZ 
XLIST 
LIST 
GO 



.REQ ;REQUEST THE DEVICE 

1.-1 (P) .•FETCH OCY DATA 

BACKUP .•DON'T LOAD DCY IF BACKUP CMD WANTED 

aDCYLD(Xl) ;LOAD DCY ACCORDING TO DRIVE TYPE 



1.-1(P) .-FETCH DA DATA 
LDSBAR .-LOADS SBAR 






.-■^ 



0FRPH1 MACRO X53B{1242> 19:37 12-Sep-85 Page 2-1 



ie-Cf\ A^OC i 



L. 



^„,..-..™J 



0FRPM1 
DFRPM1 

7977 
7978 
7979 
7980 
7981 
7982 
7983 
798A 
7985 
7986 
7987 
7988 
7989 
7990 
7991 
7992 
7993 
799A 
7995 
7996 
7997 
7998 
7999 
8000 
8001 
8002 
8003 
800A 
8005 
8006 

8010 
"111 

lou 

J015 
$016 
f017 
i018 
)19 
1020 
|021 
J022 
J023 
)02A 
(025 
;026 
V 



MACRO X53B(12A2) 19:37 12-Sep-85 Page 1-2 



MAC 9-Sep-85 09:A9 



000067' 332 00 00 000062* 

000070' 254 00 00 000077" 

000071' 200 01 00 002103' 

000072' 260 17 00 000000* 

000073' 202 01 00 002100' 

000074' 554 01 17 000000 

000075' 260 17 00 000000* 

000076' 255 00 00 000000 



GENERAL DEVICE I/O DEPENDENT UTILITIES 



SEC 0295 



000077' 
000100' 
000101' 
000102' 
000103' 



000104' 
000105' 
000106' 
000107' 
0001 IC 

0001 ir 

000112' 
000113' 
000114' 
000115' 
000116* 
000117' 
000120' 



200 03 
554 02 
550 01 
260 17 
202 01 



554 01 
270 01 
275 01 
230 01 
210 01 
405 01 
242 01 
661 01 
434 01 
4u 01 
332 00 
621 01 
402 00 



14 000036 

17 innt 
17 nmt 

00 000000* 
14 000037 



17 nmt 

14 000036 
00 000001 
14 000036 
00 000001 
00 001777 
00 000006 
00 002200 
17 000000 
00 002104' 
00 000067* 
00 002000 
00 000116* 



000121' 350 00 00 000000* 
000122' 260 17 00 000000* 



000123' 262 17 

000124' 26: 17 

000125' 262 17 

000126* 200 01 

000127' 263 17 



00 000001 
00 000002 
00 000003 
14 000037 
00 000000 



000130' 
000131 



OC 



)00Q000Q0# 
)00000000f 



WW MOO QQ21Q5' 
000133* 000000 000633' 



XLIST 
LIST 

SKIPE 

JRST 

HOVE 

GO 

HOVEM 

HLRZ 

GO 

JFCL 

OVROFF: HOVE 
HLRZ 
HRRZ 
GO 

HOVEM 

XLIST 
LIST 
HLRZ 
ADD 

suei 

IDIV 
HOVN 
' ANDI 
LSH 
TLO 
lOR 
AND 
SKIPE 
TLZ 
SETZM 



BACKUP 

OVROFF 

l.[*D20..CBUFF] 

CHINIT 

1.SVICWA# 

1,(P) 
LDRG11 



3.8LKSIZ(DSU) 

2.-2(P) 

1,-2(P) 

GENCCU 

1,CCWPTR(DSy) 



SKIP IF NO BACKUP C0MM.^ND 

IF BACKUP CMD, DON' FNIT CHAN^^5L 

SIZE,, ADR OF CHANNEL BUFFER 

INIT THE CHANNEL 

SAVE INITIAL CU ADDR 



PICK UP OFFSET 
AND LOAD IT 
CBTO ERROR 



REGISTER VALUES 



GET THE BLOCKSIZE 

FETCH WORD COUNT (SIZE JF XFER) 
.•FETCH CORE STARTING ADDRESS 
; BUILD A COMMAND LIST IN CORE 
.•SAVE POINTER TO THE LIST 



1.-2(P) ;GET THE WORD COUNT 

I.BLKSIZ(DSW) .-ADD BLOCK SIZE 

1,1 ;NOW BLOCK SIZE -1 

I.BLKSIZ(DSU) ;NOW ROUNDED TO CORRECT BLOCK COUNT 

1.1 ;NOW HAVE 2'S COMP BLOCK COUNT 

1.1777 ;SAVE ONLY 10 BITS 

1.6 ;POSITION THE BLOCK COUNT 

1. (18711810) .-SET RCLP AND STORE BITS 

1.(P) ;GET CONTROL REG BITS 

1.C187:1B10!177777] -DUMP EXTRA BITS WE HAVE ADDED 

BACKUP .-SKIP IF NO BACKUP COMMAND DESIRED 

1.(187) jBACKUP ... SET RCLP=0 

BACKUP ;N0T NEEDED ANY MO'^E 



.■NOW LOAD DRIVE # AND START THE COMMAND 



AOS 

GO 

XLIST 

LIST 

GET 

GET 

GET 

HOVE 

RTN 



BSYCNT 
LDSTCR 



I.CCWPTR(DSW) 



;8UMP THE BUSY COUNT 

;LOAD STCR (TRANSFER STARTED) 



.-RESTORE AC'S 



.•PICK UP CCW POINTER 
.•AND EXIT 



;TH1S TABLE POINTS TO ROUTINES THAT HANDLE THE PROPER LOADING 
;0F THE DESIRED CYLINDER ADDRESS REGISTER FOR DIFFERENT DRIVES 



DCYLDi 



LDRGi; 
LDRGi; 
CRTNJ 
LDR12 



;RP04 
;RP06 
; SPARE 

;RP07 (600 



MB) 



..J 



DFRPMI MACRO 1538(1242) 19:37 12-SM-85 Paac 2-3 



r 



:r*" 



DFRPM1 HACRO X53B(1242) 19:37 12-Sep-85 Page 2-3 
DFRPN1 MAC 9-Sep-85 09:49 GENERAL DEVICE 



I/O DEPENDENT UTILITIES 



SEO 0296 



8032 
8033 
803A 
8035 
8036 



0001 3A' 
000135' 
000136' 
000137' 



000000000000* 
000000 002105' 
000000 002105' 
000000 002105' 



LDRG12 
RTN] 
RTN] 
RTN] 



;R«03 
.SPARE 

;RP20 (TOPS 10) 
;RP2G (TOPS20) 



ii u I H1 



K» " i 1 < . imiii r « ) l« it| i tf |i|| f iw.»»*^ ' | J. >i<l''.-ffWt»' .-xMiV- 



M, ^ >V>*my(lH««|^><^.<S>MWM 



pfRPMl HACRO X535(1242) J9237^12-Sep-85_Pa8f..3 



^^A f^*\f\'^ 



r 



0FRPM1 MACRO X53B(1242) 19:37 12-Sep-85 Page 3 

DFRPM1 MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 



SEQ 0297 



8037 
8038 
8039 
!0A0 
S0A1 
f042 
|0A3 
80AA 
80A5 
80A6 
8047 
80A8 
8049 
8050 
8051 
8052 
8053 
8054 
8055 
8056 
8057 
8058 
8059 
8060 
8061 
8062 

«063 
064 
>5 
1066 
l067 
$068 
i9 
1070 
1071 
J072 
|073 
|074 
075 
i076 
J077 
J078 
J079 
1080 
1081 
J082 
J083 
i084 
i085 
.086 
8087 



000140' 607 14 00 000200 

000141' 263 17 00 000000 

000142' 602 01 00 000010 

000143' 263 17 00 000000 

000144' 261 17 00 000004 

000145' 554 04 00 000002 

000146' 315 04 13 000000* 

000147' 254 00 00 000152' 

000150' 262 17 00 000004 

000151' 263 17 00 000000 



000152' 260 17 00 001055' 



000153' 031 00 00 002106' 

000154' 260 17 00 001462' 

000155' 031 00 00 002146' 

000156' 2u.' 00 00 000014 

000157' 037 13 00 000001 



000160' 
000161' 
000162' 
000163' 
000164' 
000165' 
000166' 
000167' 
000170' 



031 00 
200 00 
037 
031 
200 
037 
031 . 
200 00 
037 13 



13 
00 

?5 

00 



00 002156' 
00 000001 
00 000001 
00 002160' 
00 000002 
00 000001 
00 002162' 
00 000003 
00 000001 



000171' 031 00 C 00 QQ2164' 
000172' 260 17 00 OOOOOO* 
000173' 254 00 00 000000* 



.•SUBROUTINE TO FATAL OUT IF m^ PHOQRf-JH EVER TRIES TO WRITE OVER 
.-CUSTOMER DATA ON THE MEDIA. IT CHECKS FOR CUSTOMER DAiA AND THEN 
.•LOOKS AT COMMAND AND DISK A»,jRESS IF NECESSARY ... 
;THIS ROUTINE IS HERE TO ONLY TO PROTECT AGAINST A PROGRAM BUG. 
.•UNDER NORMAL OPERATION IT SHOULD NEVER CATCH THE CONDITION 



TRAP: 



TLNN 

RTN 

TRNE 

RTN 

PUT 

HLRZ 

CAMGE 

JRST 

GET 

RTN 



DSW.dBIO) 

1.10 

4 
^.2 

4,FCVCE(X1) 

TRAPF 

4 



."USER DATA ON MEDIA ? 

• NO 

•YES, THIS BIT RESET MEANS A WRITE COMMAND 

.•NOT A WRITE. EXIT 

.•DOING WRITE. CH^Cr DISK ADDRESS 

;GET CYLINDER NUMF;'. 

;IS IT A CE CYL ? 

;N0 FATAL OUT 

;YES. RESTORE AC 



.•ABOUT TO FATAL OUT BEFORE DESTROYING CUSTOMER DATA 

TRAPF: GO .REL .RELEASE DEVICE IF NECESSARY 



GO 
TEXTF 



.REL 
CASCIZ/ 



FATAL PROGRAM BUG. PGM ABOUT TO WRITE ON CUSTOMER DATA AREA. 

PROGRAM WILL FATAL OUT TO PREVENT THIS FROM HAPPENING. 

/J 

60 UNITF ;IDENTIFY UNIT RH. DRIVE ETC 

TEXTF CASCIZ/ 
PROGRAM DEVICE STATUS WORD (DSW) = /J 

MOVE 

PNTHWF 



AC1 = /] 



TEXTF 
J 

MOVE 
PNTHWF 
TEXTF 
MOVE 
PNTHWF 
TEXTF 
MOVE 
PNTHWF 
TEXTF 



O.DSW 

CASCIZ/ 

0.1 

CASCIZ/ 
0.2 

CASCIZ/ 
0,3 

CASCIZ/ 



AC2 



.•FORCE PRINT IN HAL^WORDS 



.-PRINT HALF WORD FORCED 
/] 



.•PRINT HALF WORD FORCED 
AC3 = /] 



PLEASE SAVE THIS INFORMATION 



/J 



GO 
JRST 



FFF 
START 



.-PRINT HALF WORD FORCED 



.•FATAL OUT 

;IN CASE OF AN ATTEMPT TO PROCEED 



0FRPM1 
DFRPM1 

J537 

J538 

539 

54C 
J541 
8542 
8543 
8544 
8545 
8546 
8547 
8548 
8549 
855G 
8551 
8552 
8553 
8554 
1555 
556 
557 
i55fi 
I559 
J56C 
8561 
8562 



m*\iiiiia ii,^tf^'^<*» 



DFRPM1 MACRO X53B(1242) 19:37 12-Seo-85 Paoe 4 



nroMti 



0FRPM1 MACRO X55B(1242) 19:57 12-Sep-85 Page A 

DFRPW1 MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 

8088 .-DRVCLR — ISSUE A DRIVE CLEAR 

8089 .-THIS ROUTINE ISSUES A DRIVE CLEAR, READS THE STATUS REG 

8090 ;AND CHECKS THAT THE ERROR CONDITION HAS GONE AWAY. 

8091 ;CALL SEQUENCE 



SEQ 0298 



000 17A' 
000175' 
000176' 
000177' 
000200' 



260 17 
263 17 
254 00 

254 00 

255 00 



00 000672' 
00 000000 
00 000200' 
00 000200' 
00 000000 



000201' 260 17 00 001021' 



000202' 
000203' 
000204' 
000205' 
000206' 
000207' 
000210' 
000211' 
000212' 
000213' 
000214' 
000215' 



261 
200 
260 
255 
205 
260 
255 
254 
602 
260 
262 
263 



17 
01 
17 
00 
01 
17 
00 
00 
01 
17 
17 
17 



00 000001 
00 002202' 
00 000000* 
00 000000 
00 000010 
00 000000* 
00 000000 
00 000206' 
00 040000 
00 000216' 
00 000001 
00 000000 



000216* 260 17 
000217' 030 00 



000220' 
000221 ' 
000222' 



00 001201' 
00 000225' 
00 001565' 
00 700060 



2o.' M 
201 10 
260 17 00 001265' 



000223' 030 00 00 002203' 
000224' 263 17 00 000000 



000225' 
000226' 
000227' 
000230' 
000231 • 
000232' 
000233' 
000234' 
000235' 
000236' 
000237* 
000240* 
000241* 
000242* 



040 
075 
075 
075 
111 
114 
106 
104 
103 
040 
040 

104 
116 



0^5 
075 
075 
015 
126 
105 
101 
040 
114 
123 
105 
040 
111 
015 



075 
075 
075 
012 
105 
101 
111 
124 
105 
117 



075 
040 
075 
104 
040 
122 
114 
117 
101 
115 



Ml 122 

103 117 

124 111 

012 000 



075 
075 
075 
122 
103 
040 
105 
040 
122 
105 
117 

116 
117 
000 



DRVCLR: 



DCER: 

n 

DCERM: 



GO 
RTN 

GO 

RTN 

JRST 

JRST 

JFCL 

GO 

PUT 

HOVE 

GO 

JFCL 

HOVSI 

GO 

JFCL 

JRST 

TRNE 

GO 

GET 

RTN 

GO 

TEXT 

GO 

HOVE I 

GO 

TEXT 

RTN 

ASCIZ/ 



DRVCLR 



STATCK 



.♦2 

.♦1 



.REO 

1 

1.C1B14I11B35] 

LDRGOO 

1.(1814) 
RDRG01 

.-3 

1.1821 

DCER 

1 



SNAPA 

DCERH 

IDENT 

RGL I ST. 700060 

DUHPS 

CASCIZ/ ====== 



CALL THE ROUTINE 
IT EXITS HERE. > 

CHECK DRIVE STATUS FROM DSy 
♦1 DRIVE NOT USEABLE OR OFF-LINE 
♦2 WRITE PROTECTED (VARIABLE HODE) 
♦3 URITE PROTECTED (HAN OR DEF HODE) 
♦4 PASSES ALL TESTS 

REQUEST THE DEVICE 

SAVE THE AC 

GET THE CODE 

LOAD CONTROL REGISTER 

CBTO 

DON*T REPORT RAE'S 

READ THE STATUS REG 

CBTO 

P.E. 

COMPOSITE ERROR ? 

VES 

NO 

EXIT 

SNAPSHOT 
ERROR HESSA6E 

SPECIFY REGS TO PRINT 
AND PRINT THEH 



DFRPM1 
DFRPH1 

8563 
8564 
8565 
8566 
8567 
8568 
8569 
8570 
8571 
8572 
8573 
85 74 
8575 



;AND EXIT 



DRIVE CLEAR FAILED TO CLEAR SOHE ERROR CONDITION 



r 



nraPMI MArDn l^^n7^?> 1Q-^7 17.<l*n.RS P>n* % 



i^r •kr\«a4 



0FRPM1 
DFRPM1 

8U0 
8U1 
8U2 
8U3 

Sua 

8U5 
8U6 
8H7 
8H8 
8U9 
8150 
8151 
8152 
8153 
81 5A 
8155 
8156 
8157 
8158 
8159 
8160 
8161 



MACRO 1538(1242) 19:37 12-Sep-85 Page 5 

MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 

;PAKACK — ISSUE A PACK ACKNOWLEDGE COMMAND 

.•THIS ROUTINE ISSUES A PACK ACKNOWLEDGE COMMAND AND EXITS. 

;THE PACK ACKNOWLEDGE CAUSES VV TO SET. 

.•CALLING SEO: 



SEO 0299 



000243' 260 17 00 000672* 

000244* 263 17 00 000000 

000245* 254 GO 00 000247* 

000246* 254 00 00 000247* 

000247' 255 00 00 000000 

000250' 260 17 00 001021' 



000251 ' 
000252' 
000253* 
000254* 
000255* 
000256* 



261 17 
200 01 
260 17 
255 00 

262 17 
26! 17 



GO 000001 
00 002207* 
00 000204* 
00 000000 
00 000001 
00 000000 



60 
; RTN 

PAKACK: GO 
RTN 
JRST 
JRST 
JfCL 



PUT 

NOyE 

GO 

JFCL 

GET 

RTN 



PAKACK 



STATCK 



.♦2 

.♦1 



.REQ 

1 

1.C1B14 

LDRGOO 

1 



1213 



CALL THE ROUTINE 
RTN+1 ALWAYS 

CHECK DRIVE STATUS FROM DSW 
♦1 DRIVE NOT USEABLE OR OFF-LINE 
♦2 WRITE PROTECTED (VARIABLE MODE) 
♦3 WRITE PROTECTED (MAN OR DEF MODE) 
♦4 PASSES ALL TESTS 

REQUEST DEVICE 

SAVE AC 

A PACKACK COMMAND 

LOAD CONTROL REG 

CBTO 

RESTORE AC 

AND E)(IT 



DFRPM1 
DFRPM1 

8576 
8577 
8578 
8579 
8580 
8581 
8582 
8583 
8584 
8585 
8586 
8587 
8588 
8589 
8590 
8591 
8592 
8593 
8594 
8595 



DFRPM1 
DFRPM1 

8162 
8163 
81 6A 
8165 
8166 
8167 
8168 
8169 
8170 
8171 
8172 
8173 
81 7A 
8175 
8176 
8177 
8178 
8179 
8180 
8181 
8182 
8183 
8184 
8185 
8186 



MACRO X53B(12A2) 19:37 12-Sep-85 Page 6 

MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 

RELESE — IS^UE A PORT RELEASE COMMAND 

THIS ROUTINE ISSUES A RELEASE COMMAND AND EXITS. 
THIS COMMAND PUTS THE DRIVE IN NEUTRAL. 
CALLING SEQ: 



SEQ 0300 



OF 
DF 



000257* 607 K 00 002000 

000260' 263 17 00 000000 

000261' 260 17 00 000672' 

000262' 263 17 00 000000 

000263' 25A 00 00 000265' 

000264' 254 00 00 000265' 

000265' 255 00 00 OOOOOU 

000266' 260 17 00 001021' 



000267' 261 17 

000270' 200 01 

000271' 260 17 

000272' 255 00 



000273' 
000274' 



262 17 

263 17 



00 000001 
00 002210' 
00 000253* 
00 000000 
00 000001 
00 000000 



GO 
RTN 



RELESE: TLNN 
RTN 

60 

RTN 

JRST 

JRST 

JFCL 

GO 

PUT 

MOVE 

GO 

JFCL 

GET 

RTN 



RELESE 



DSU,(187) 



STATCK 

.+2 

. + 1 



.REQ 

1 

1, [1814113] 

LDRGOO 

1 



CALL THE ROUTINE 
RTN+1 ALWAYS 

DRIVE DUAL PORTED •P6M=1' ? 
NO... NO NEED TO RELEASE 

CHECK DRIVE STATUS FROM DSW 
+1 DRIVE NOT USEABLE OR OFF-LINE 
+2 WRITE PROTECTED (VARIABLE MODE) 
+3 WRITE PROTECTED (MAN OR DEF MODE) 
+4 PASSES ALL TESTS 

REQUEST DEVICE 

SAVE AC 

A RELESE COMMAND 

LOAD CONTROL REG 

CBTO 

RESTORE AC 

AND EXIT 



DFRPM1 

r\CDDM1 



MACRO X53B(1242) 19:37 12-Sep-85 Page i 
MAT o-Cur.-fi(; r)o./.Q rcuroAi 



ricuirc T/n ncocuncur urn rrrcc 



cpo n?ni 



r 

I OF 






?88 



DFRPm 


MACRO X 


53B(12A2) 19:37 12-Sep-J 


15 Page 7 
GENERAL 






0FRPM1 


MAC 


9-Sep-85 09:A9 


DEVICE 


I/O DEPENDENT 


8187 






; .RECAL 


— ROUTINE TO ISSUE 


8188 






;CALL SEQUENCE: 




8189 








GO 


.RECAL 


8190 








RTN 




8191 












8192 


000275* 


260 17 00 000672* 


.RECAL: 


GO 


STATCK 


8193 


000276* 


263 17 00 000000 




RTN 




81 9A 


000277* 


25A 00 00 000301 * 




JRST 


.*2 


8195 


000300* 


25A 00 00 000301 * 




JRST 


.+1 


8196 


000301 * 


255 00 00 000000 




JFCL 




8197 












8198 


U00302' 


261 17 00 000001 




PUT 


1 


8199 


000303* 


A02 00 1A 002A10 




SETZM 


CCyL(DSW) 


8200 


00030A* 


A02 00 1A 002A12 




SETZM 


CSECT(DSU) 


8201 


000305* 


A02 00 1A 002A11 




SETZM 


CSURF(DSU) 


8202 


000306* 


A02 00 1A OOOOAl 




SETZM 


POSADR(DSU) 


8203 


000307* 


350 00 1A 002351 




AOS 


RCCNT(DSW) 


820A 


000310* 


350 00 1A 002355 




AOS 


POSCNT(DSW) 


8205 


00031 1 * 


350 00 00 000121* 




AOS 


BSYCNT 


8206 












8207 


000312* 


260 17 00 001021* 




GO 


.REQ 


8208 












8209 


000313* 


201 01 00 000007 




MOVE I 


1.07 


8210 


00031 A* 


202 01 1A OOOOAO 




MOVEM 


1,LASTC(DSW) 


8211 


000315* 


260 17 00 000271* 




GO 


LDR600 


8212 


000316* 


255 00 00 000000 




JFCL 






000317* 


262 17 00 000001 




GET 


1 


821 A 


000320' 


263 17 00 000000 




RTN 




8215 












8216 













SEQ 0301 



A RECAL 



CALL THE ROUTINE 
RETURNS HERE 

CHECK DRIVE STATUS FROM DSU 
♦1 DRIVE NOT USEABLE OR OFF-LINE 
♦2 WRITE PROTECTED (VARIABLE MODE) 
♦3 WRITE PROTECTED (MAN OR DEF MODE) 
♦A PASSES ALL TESTS 

SAVE AC1 

CLEAR CURRENT CYLINDER 
CLEAR CURRENT SECTOR 
CLEAR CURRENT SURFACE 
POSITION ADDRESS FOR RETRY 
COUNT THE EVENT 
ADJUST TOTAL POSITIONS 
EXPECT 1 INTERRUPT 

REQUEST THE DEVICE 

A RECAL 

SAVE LAST MAJOR COMMAND 

LOAD THE CONTROL REGISTER 

HANDSHAKE FAILURE 

RESTORE AC 

EXIT 



DFI 
DPI 






1 



?89 1 



DFRPH1 



MACRO X53B(12A2) 19:37 12-Sep-85 Page U 



^cnt^c I /n rtcQcikjrxckiT iitii tticc 



ccn f\Xf\J 



OF! 



r 



89 



0FRPM1 
DFRPM1 

8217 
8218 
8219 
8220 
8221 
8222 
8223 
822A 
8225 
8226 
8227 
8228 
8229 
8230 
8231 
8232 
8233 
8234 
8235 
8236 
8237 
8238 
8239 

824; 
8242 
8243 
8244 
8245 
8246 
8247 
8248 
8249 
8250 
8251 

UH 
8253 

8254 



MACRO X53B(1242) 19:37 12-Sep-85 Page U 

MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 

.-.SEEK — ROUTINE TO ISSUE A SEEK COMMAND 

;CALL SEQUENCE: 

1 HOVE 1.ARG1 ;CYL..TRK/RECORD 

I 60 .SEEK 

; RTN .-RETURNS HERE 



SEQ 0302 






260 17 00 000672' 
263 17 00 000000 
000523' 254 00 00 000325' 
000324' 254 00 00 000325' 
000325' 255 00 00 OOOOCO 



000326' 
000327' 
000330' 
000331 ' 
000332' 
000333' 
000334' 
000335' 



261 17 
202 01 
546 01 
405 01 
202 01 
135 01 
202 01 
350 00 



00 000001 
14 000041 
14 002410 
00 000377 
14 .102412 
00 00*^21 V 
14 002411 
14 002355 



000336' 260 17 I'O 001 021' 



000337' 
000340' 
00034 T 
000342' 
000343' 
000344 ' 
000345' 
000346' 
000347' 
000350' 
000351 ' 
000352* 
000353* 
000354* 



554 01 

260 17 1 



255 00 
550 01 
260 17 
255 00 
350 00 
33 : 00 

201 01 

202 01 
260 17 
255 00 
26 ' 
26 



17 

17 



'I 

1? 

00 

17 

00 

00 

14 

00 

00 

14 

00 

00 

00 

00 



000000 

300,30' 

OOO'^'^O 

000000 

000000* 

000000 

002350 

000311* 

000005 

000040 

000315* 

000000 

000001 

000000 



.SEEK; 



GO 

RTN 

JRST 

JRST 

JFCL 

PUT 

HOVEM 

HLRM 

AND I 

HOVEM 

LDB 

HOVEM 

AOS 

GO 

HLRZ 

60 

JFCL 

HRRZ 

60 

JFCL 

AOS 

AOS 

HOVE I 

HOVEM 

GO 

JFCL 

6ET 

RTN 



STATCK 

.♦2 
.*1 



; CHECK DRIVE STATUS FROM DSW 
.•♦1 DRIVE NOT USEABLE OR OFF-LINE 
.•♦2 WRITE PROTECTED (VARIABLE MODE) 
.•♦3 WRITE PROTECTED (MAN OR DEF MODE) 
.•♦4 PASSES ALL TESTS 



1 .-SAVE AC1 

1,P0SADR(DSW) .-POSITION ADDRESS FOR RETRY 

I.CCYL(DSW) ;SAV: CURRENT CYLINDER 

1.377 .-SAVE SECTOR 

I.CSECT(DSW) -CAVE THE CURRENT SECTOR # 

I.CPOINT 8. POSADR(DSW), 27] .-GETS CURRENT SURFACE 



i,CSURF(DSW) 
POSCNT(DSW) 

.REG 

1.(P) 
aDCYLD(Xl) 

1,(P) 
LDRG05 

SKCNT(DSW) 

BSYCNT 

1.05 

I.LASTC(DSW) 

LDRGOO 

1 



SAVE CURRENT SURFACE 
BUMP TOTAL POSITION COUNT 

REQUEST THE DEVICE 

FETCH CYLINDER # 

LOAL DCY ACCORDING TO DRIVE TYPE 

HANDSHAKE FAILURE 

HEAD/RECORD 

WRITE THE REGISTER 

HANDSHAKE FAILURE 

COUNT THE EVENT 

EXPECT 1 INTERRUPT 

GET A SEEK COMMAND 

SAVE LAST MAJOR COMMAND 

LOAD CONTROL REGISTER 

HANDSHAKE FAILURE 

RESTORE AC 

EXIT 



r 



90 



"~! 



0FRPH1 MACRO »53B(1242) 19:37 12-Sep-85 Page 9 



ncur\ckiT iiTti trier 



ecn mm 



1 



90 



DFRPM1 
DFRPM1 

8255 
8256 
8257 
8258 
8259 
8260 
8261 
8262 
8263 
826A 
8265 
8266 
8267 
8268 
8269 
8270 
8271 
8272 
8273 
827A 
8275 
8276 
8277 
8278 
8279 
8280 
8281 
8282 
8283 
828A 
82b5 
8286 
8287 
8288 
8289 
J290 
J291 
J292 
293 
l29A 
8295 
8296 



MACRO X53B(1242) 19:37 12-Sep-85 Page 9 



MAC 



9-Sep-85 09:A9 



GENERAL DEVICE I/O DEPENDENT UTILITIES 



SEC 0303 



;.SRCH — SEARCH COPLAND ROUTINE 
.-CALL SEQUENCE: 

HOVE 1.ARG1 

GO .SRCH 
* RTN 



000355' 
000356' 



260 17 
263 17 



000357' 254 00 
000360' 254 00 
000361' 255 00 



000362' 
000363' 
000364' 
000365' 
000366' 
000367' 
000370' 
000371 ' 



261 17 
202 01 
546 01 
405 01 
202 01 
135 01 
202 01 
350 00 



00 000672' 
00 000000 
00 000361 • 
00 000361' 
00 000000 



00 
14 
14 
00 
14 
00 
14 
14 



000001 

000041 

002410 

000377 

002412 

002211' 

002411 

002355 



000372' 260 17 00 001021' 



000373' 554 01 
000374' 260 17 1 
00037:* 255 00 



17 000000 
13 000130' 
00 000000 



000376' 550 01 17 000000 

000377' 260 17 00 000343* 

000400' 255 00 00 000000 

000401' 350 00 14 002352 

000402' 350 00 00 000346* 

000403' 201 01 00 000031 



14 000Q40 



000404' 202 01 , ..., . 

000405' 260 17 00 000351* 

000406' 255 00 00 000000 

000407' 262 17 00 000001 

000410' 263 17 00 000000 



,SRCH: 



GO 

RTN 

JRST 

JRST 

JFCL 

PUT 

«OVEM 

HLRM 

AND I 

HOVEM 

LDB 

HOVEM 

AOS 

GO 

HLRZ 

60 

JFCL 

HRRZ 

GO 

JFCL 

AOS 
AOS 
MOVE I 

MOVEM 

GO 

JFCL 

GET 

RTN 



STATCK 

.+2 

.♦1 



1 

1,P0SADR(DSW) 

1,CCYL(DSU) 

1.377 

I.CSECT(DSy) 



CYL.. HEAD/RECORD 
CALL THE ROUTINE 
RETURNS HERE ALWAYS 

CHECK DRIVE STATUS FROM DSW 
♦1 DRIVE NOT USEABLE OR OFF-LINE 
♦2 WRITE PROTECTED (VARIABLE MODE) 
♦3 WRITE PROTECTED (MAN OR DEF MODE) 
♦4 PASSES ALL TESTS 

SAVE AC 

POSITION ADDRESS FOR RETRY 

SAVE CURRENT CYLINDER 

SAVE SECTOR 

CAVE THE CURRENT SECTOR # 



l!CPOINT 8. POSADft(DSW), 27] ;GETS CURRENT SURFACE 



I.CSURF(DSW) 
POSCNT(DSW) 

.REO 

1,(P) 
aDCYLD(Xl) 



1,(P) 
LDRG05 



SRCNT(DSW) 

BSYCNT 

1.31 

I.LASTC(DSW) 
LDRGOO 

1 



SAVE CURRENT SURFACE 
BUMP TOTAL POSITION COUNT 

REQUEST THE DEVICE 

FETCH CYLINDER # 

LOAD DCY ACCORDING TO DRIVE TYPE 

HANDSHAKE FAILURE 

HEAD/RECORD 
LOAD IT 
HANDSHAKE FAILURE 

LOG THE EVENT 
EXPECT 1 INTERRUPT 
SEARCH CCr'icwr.'f^ 

SAVE LAST MAJOR COMMAND 
LOAD THE COMMAND 
HANDSHAKE FAILURE 
RESTORE AC 
EXIT 



r 



91 



DFRPM1 MACRO X53B(1242) 19:37 12-Sep-85 Pagt 10 



f yn i\rnrftir\rftiT iiTti t t f r r 



eCA nTA/ 






— __ i 



. 



91 



DFRPM1 
DFRPM1 

8297 

8298 

8299 

8300 

8301 

8302 

8303 

830A 

8305 

8306 

8307 

8308 

8309 

8310 

8311 

8312 

8313 

83U 

8315 

8316 

8317 

8318 

8319 

8320 

8321 

8322 



MACRO X53B(1242) 19:37 12-Sep-85 Page 10 

MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 

;RTNCTL — ROUTINE TO ISSUE A RETURN TO CENTERLINE 



SEO 0304 



OOOAir 260 17 00 000672' 

000A12' 263 17 00 000000 

000A13' 254 00 00 000415' 

000414' 254 00 00 000415' 

000415' 255 00 00 000000 

000416' 261 17 00 000001 

000417' 350 00 14 002355 

000420' 350 00 14 002353 

000421 ' 350 00 00 000402* 



000422' 260 

000423* 201 

000424' 202 

000425' 260 

000426' 255 

000427' 262 

000430* 263 



17 
01 
01 
17 

?? 

17 



00 001021' 
00 000017 
14 000040 
00 QQ0405* 
00 QOOOOO 
00 000001 
00 000000 



.-CALL SEQ: 
; GO 
RTN 

RTNCTL: GO 
RTN 
JRST 
JRST 
JFCL 

PUT 
AOS 
AOS 
AOS 

GO 

MOVE I 

HOVEM 

GO 

JFCL 

GET 

RTN 



RTNCTL 



STATCK 



.+2 

.+1 



1 

POSCNT(DSU) 
RCLCNT(DSy) 
BSYCNT 

.REQ 

1.17 

I.LASTC(DSW) 

LDRGOO 

1 



;THE CALL 
;THE RETURN 

.-CHECK DRIVE STATUS FROM DSW 
,•♦1 DRIVE NOT USEABLE OR OFF-LINE 
:*2 WRITE PROTECTED (VARIABLE MODE) 
;*3 WRITE PROTECTED (MAN OR DEF MODE) 
.•♦4 PASSES ALL TESTS 

'SAVE AC 

;BU«P POSITION COUNT 
.•COUNT THE COMMAND 
.•EXPECT 1 INTERRUPT 

.•REQUEST THE DEVICE 

.-GETS A RETURN TO CENTERLINE COMMAND 

;SAVE THE LAST MAJOR COMMAND 

.-LOAD THE CONTROL REGISTER 

: HANDSHAKE FAILURE 

; RESTORE AC 

;AND EXIT 



iDFR 
DFR 

8 
8 
8 



8 
8 
8 
8 
8 
8 
8 
8 
£ 
8 



07 



PfBP??l MACRO X535(1242)J?i37_12-Sep-85_Page..n. 



«kr>A /WAr 



DFR 



n 



92 



0FRPM1 
DFRPM1 

8323 
8324 
8325 
8326 
8327 
8328 
8329 
8330 
8331 
8332 
8333 
833A 
8335 
8336 
8337 
8338 
8339 
83A0 
83A1 
8342 
83A3 
8344 
8345 
8346 
8347 
8348 
8349 
8350 
8351 
8352 
8353 
8354 
8355 



MACRO X53B(1242) 19:37 12-Sep-85 Page 11 

MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 



SEQ 0305 



;.OFSET — ROUTINE TO ISSUE AN OFFSET COMMAND 

.•THIS ROUTINE EXPECTS THE OFFSET VALUE AND ANY OTHER NECESSARY 

.•OFFSET REGISTER BITS TO BE IN AC1 ON THE CALL 



;CALL SEQ: 
; MOVE 
; GO 
1 RTN 



000431 • 
000432' 
000433' 
000434' 
000435' 

000436' 
000437* 



260 17 
263 17 
254 00 

254 00 

255 00 



00 000672' 
00 000000 
00 000435' 
00 000435' 
00 000000 



261 
260 



17 
17 



00 
00 



000001 
001021' 



000440' 405 01 00 MlVl 

000441' 260 17 00 000075* 

000442' 255 00 00 000000 

000443' 350 00 14 002355 

000444' 350 00 14 002354 

000445' 350 00 00 000421* 



000446' 
000447' 
000450' 
000451 ' 
000452' 



201 01 

202 01 
260 17 
255 00 
2oJ 17 



000453' 263 17 



00 000015 
14 000040 
00 000425* 
00 000000 
00 000001 
00 000000 



.OFSET: GO 
RTN 
JRST 
JRST 
JFCL 

PUT 

m 

. AND I 
GO 
JFCL 

AOS 
AOS 
AOS 

MOVE I 

MOVEM 

GO 

JFCL 

GET 

RTN 



l.ARGl 
.OFSET 



STATCK 



.-^2 
.+1 



.REQ 



^,^77777 
LDRG11 



POSCNT(DSW) 
OFSCNT(DSW) 
BSYCNT 

1.15 

l.LASTC(DSW) 

LDRGOO 

1 



DATA FOR THE OFFSET REGISTER ... 
THE CALL 
THE RETURN 

CHECK DRIVE STATUS FROM DSW 
+1 DRIVE NOT USEABLE OR OFF-LINE 
+2 WRITE PROTECTED (VARIABLE MODE) 
+3 WRITE PROTECTED (MAN OR DEF MODE) 
+4 PASSES ALL TESTS 

SAVE AC 

REQUEST THE DEVICE 

SAVE DATA BITS 

LOAD THE OFFSET REGISTER 

HANDSHAKE FAILURE 

BUMP POSITION COUNT 
COUNT THE COMMAND 
EXPECT 1 INTERRUPT 

GETS AN OFFSET COMMAND 
SAVE LAST MAJOR COMMAND 
LOAD THE CONTROL REGISTER 
HANDSHAKE FAILURE 
RESTORE AC 
AND EXIT 



DFRI 
DFRI 

8 

8: 

8 

8: 

8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 



3T 



DFRPMl MACRO X538(1242) J9:37J2-Sep-85 Page 12. 



nFRi 



1 



DFRPM1 
DFRPM1 

8556 

8357 

8358 

8359 

8360 

8361 

8362 

8363 

836A 

8365 

8366 

8367 

8368 

8369 

8370 

8371 

8372 

8373 

837A 

8375 

8376 

8377 

8378 

83: 

83b. 

8381 

8382 

8383 

838A 

8385 

8386 

8387 

8388 

8389 

8390 

8391 

8392 

8393 

8394 

8395 

8396 

8397 

8398 

8399 

8400 

8401 

8402 

3403 

)404 

)4Q5 

|406 

J4Q7 

J408 

)409 

)410 



MACRO X53B(1242) 19:37 12-Sep-85 Page 12 

MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 



SEQ 0306 



000454' 
000455' 
000456' 
000457' 
000460* 
000461 • 
000462' 



261 
261 
261 
202 
476 
402 
402 



17 
17 
17 
01 
00 
00 
00 



00 000000* 
00 000000* 
00 000002 
00 000002 
00 000455* 
00 000011 
00 000454* 



000463' 260 17 00 001055' 
000464' 260 17 00 001021' 
00046S' 260 17 00 000647' 



000466' 201 01 00 177000 

000467' CO) 17 00 000000* 

000470' 254 00 00 000536' 

000471 ' 201 01 00 000035 

000472' 260 17 00 000450* 

000473' 254 00 00 000536' 

000474' 260 17 00 000655' 

000475' 260 17 00 000647' 

000476' 332 00 00 000011 

000477' 254 00 00 000536' 



000500' 200 01 00 000002 

000501' 405 01 00 000377 

000502' 435 01 00 113400 

000503' 260 17 00 000467* 

000504' 254 00 00 000536' 



000505' 
000506' 
000507' 



201 01 00 
260 U 
254 




00 
000510' 260 17 00 000655 



100035 

00472* 

00536' 



RDRAM — ROUTINE TO READ RP07 RAM LOCATION 
READ THE RAM LOCATION SPECIFIED BY LOW ORDER 8 BITS OF ACO 
AND RETURN THE DATA IN ACO. IF AN ERROR CONDITION OCCURS, 
RETURN WITH THE ERROR RETURN AND ACO = 



CALLING SEQUENCE: 

MOVE 1 ,ARG1 
GO RDRAM 

; RTN-1 

; RTN-2 



RDRAM: 



PUT 

PUT 

PUT 

MOVEM 

SETOM 

SETZM 

SETZM 



USEPI 

NORET 

2 

1,2 

NORET 

ERFLG 

USEPI 



ADDRESS OF RAM LOCATION 
CALL THE ROUTINE 
ERROR, ACO=0 
OK. ACO HAS RAM CONTENTS 

SAVE STATE IF USE-PI FLAG 

SAVE STATE OF NO RETRY FLAG 

SAVE AC2 

SAVE ADDRESS IN AC2 

INHIBIT RETRIES 

CLEAR THE ERROR FLAG 

DON'T USE THE PI SYSTEM 



INITIALIZE THE HARDWARE PROPERLY 

THE FORCED RELEASE AND REQUEST ARE NECESSARY FOR PROPER EXEC MODE 

OPERATION OF THE PI SYSTEM ... 



.REL 
.REO 
CLRATA 



RELEASE DEVICE IF WE HAVE IT 

REQUEST THE DEVICE 

CLEAR ANY OUTSTANDING ATA'S 



.-MUST FIRST GET INTO DIAGNOSTIC MODE 



MOVE I 

GO 

JRST 

MOVE I 

60 

JRST 

90 

GO 

SKIPE 

JRST 



1,177000 

LDRG03 

RAME1 

1,35 

LDRGOO 

RAME1 

ATAWT 
CLRATA 
ERFLG 
RAME1 



FE(HEX) IN HIGH ORDER BYTE 
LOAD THE MAINT REGISTER 
HANDSHAKE FAILURE 

DIAGNOSTIC COMMAND 

LOAD THE CONTROLL REGISTER 

HANDSHAKE FAILURE 

WAIT FOR ATA FROM THIS DRIVE 
NOW CLEAR ATA 
ERROR YET ? 
YES 



;NOW LOAD FETCH DATA FROM THE RAM 



MOVE 1.2 

ANDI 1,377 

lORI 1,1B20 I27B27 

60 LDRG03 

JRST RAME1 

MOVE I 1.35 

60 LDRGOO 

JRST RAME1 



m 



ATAWT 



;GET RAM AODR FROM AC2 

.•SAVE ONLY LOW ORDER 8 BITS 

.-SET DMD AND SELECT ROUTINE 17(HEX) 

;LOAD THE MAINTENANCE REGISTER 

.•HANDSHAKE FAILURE 

.•A DIAGNOSTIC COMMAND 

;LOAD INTO CONTROLL REGISTER 

.•HANDSHAKE FAILURE 

.•WAIT FOR ATA FROM THIS DRIVE 



iP!RP«1 MACRO X53B(1242)J?i37J2-Sep-85_Page.12:l 



k^ A A« A^ 



..J 



DFRPM1 
DFRPM1 

3411 
8412 
8413 
8414 
8415 
8416 
8417 
8418 
8419 
8420 
8421 
8422 
8423 
8424 
8425 
8426 
8427 
8428 
8429 
8430 
8431 
8432 
8433 
8434 
8435 
8436 
8437 
8438 
8439 
8440 
8441 
8442 
8443 
8444 
8445 
8446 
8447 
8448 



MACRO X53B(1242) 19:37 12-Sep-85 Page 12-1 

MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 



SEO 0307 



000511' 260 17 00 000647' 



000512' 402 00 

000513' 260 17 

000514' 254 00 

000515' 254 00 

000516' 202 01 



00 000001 
00 000000* 
00 000536' 
00 000536' 
14 000023 



000517' 332 00 00 000011 
000520' 254 00 00 000536' 



000521' 201 01 00 177400 

000522' 260 17 00 000503* 

000523' 254 00 00 000536' 

000524' 201 01 00 000035 

000525' 260 17 00 000506* 

000526' 254 00 00 000536' 



000527' 260 17 

000530' 260 17 

000531' 260 17 

000532' 332 00 

000533' 254 00 



000534' 
000535' 
000536' 
000537' 
000540' 
000541' 
000542' 



135 01 

5:. 00 

402 00 

262 17 

262 17 

262 17 

263 17 



00 000655' 
00 000647' 
00 001055' 
00 000011 
00 000536' 



00 002212' 

17 nm^ 

00 000001 
00 000002 
00 000460* 
00 000462* 
00 000000 



SETZM 

GO 

JRST 

JRST 

MOVEM 

SKIPE 
JRST 



CLRATA 

1 

RDRGU 

RAME1 

RAMEl 

l.R14D(DSU) 

ERFLG 
RAMEl 



;N0U CLEAR ATA 

.•CLEAR ACl 
;READ REGISTER 
;CBT0 ERROR 
; PARITY ERROR 
;PUT IN CORE 



14 TO GET DATA 



;IS ERROR FLAG 
;N0 ... ERROR 



:N0U UNLOCK DRIVE FROM MAINTENANCE MODE 



MOVE I 

GO 

JRST 



1,177400 

LDRG03 

RAMEl 



MOVE I 1.35 
60 LDRGOO 
JRST RAMEl 



K 



GO 

SKIPE 
JRST 



ATAWT 

CLRATA 

.REL 

ERFLG 

RAME1 



FF(HEX) TO HIGH ORDER BYTE 
LOAD THE MAINTENANCE REGISTER 
HANDSHAKE FAILURE 

A DIAGNOSTIC COMMAND 
LOAD THE CONTROL REGISTER 
HANDSHAKE FAILURE 

WAIT FOR ATA 
NOW CLEAR ATA 
RELEASE DEVICE 
ANY ERRORS ? 
YES. 



.•HERE ARE THE VARIOUS WAYS OUT 



RAMEl 



LDB 

AOSA 

SETZM 



1. [POINT 8,R14D(DSy),353 ;GET RAM CONTENTS FROM CORE 



-5(P) 

1 

2 

NORET 

USEPI 



BUM^ FOR THE SKIP RETURN 

ON ERROR. CLEAR ACl. TAKE RTN-1 

RECOVER AC2 

RESTORE NO-RETRY FLAG 

RESTORE STATE OF PI SYSTEM ... 



r 



OFRPMl MACRO X53B(1242) 19:37 12-SeD-85 Page 13 



1 r 



J. 



DFRPM1 
DFRPH1 

8A49 

8A50 

8A51 

8A52 

8A53 

8ASA 

8A55 

8A56 

8A57 

8A58 

8A59 

8460 

8461 

8A62 

8463 

8464 

8465 

8466 

8467 

8468 

8469 

8470 

8471 

8472 

8473 

8474 

8475 

8476 

8477 

8478 

8479 

8480 

8481 

8482 

8483 

8484 

8485 

8486 

8487 

8488 

8469 

8490 

8491 

8492 

8493 

8494 

8495 



MACRO X538(1242) 19:37 12-Sep-85 Page 13 

MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 



SEQ 0308 



000543' 255 00 00 000000 
000544' 332 00 00 030037 
000545' 263 17 00 000000 



000546' 
000547' 
000550* 
OOO'^"' 
000^ ^' 
000553' 
00Cfe54' 
000555' 



261 
261 
260 
135 
260 
135 
312 
254 



17 
17 
17 
02 
17 
01 
01 
00 



00 000001 
00 000002 
00 000575' 
00 002213' 
00 000575' 
00 002213' 
00 000002 
00 000550' 



000556' 260 17 00 000575' 

000557' 135 01 00 002213' 

000560' 316 01 00 000002 

00056T 254 00 00 000556' 



000562' 
000563' 
000564 • 
000565' 
000566' 
000567' 
000570' 
000571 ' 
000572' 
000573' 
000574' 



260 
135 
31? 

260 
135 
312 
254 
262 
262 
263 



17 
01 
01 
00 
17 
01 
01 
00 
17 
17 
17 



000575* 402 00 
000576' 260 17 



000577' 255 
000600* 255 
000601* 263 



00 



00 000575' 
00 002213' 
00 000002 
00 000562' 
00 000575' 
00 002213' 
00 000002 
00 000562' 
00 000002 
00 000001 
00 000000 



00 000001 
00 000000* 
00 000000 
00 QOOOOO 
00 000000 



.•DELAY — ROUTINE TO WAIT 16 MS 

.•THIS ROUTINE USES THE LOOK AHEAD REGISTER TO WAIT 1 REVOLUTION 
.•WHICH IS OF COURSE 16.667 MILLISECONDS. IT'S ACCURATE TO ABOUT 
;20X. IT REQUIRES THAT MBCN AND DRIVE ARE A LEGAL DEVICE. 



.•CALL SEQ: 
GO 
I RTN+1 



DELAY 



DELAY: JFCL 

SKIPE USER 
RTN 



DLYA: 



DLYB: 



DLYC: 



PUT 

PUT 

60 

LD6 

GO 

LDB 

CAME 

JRST 

GO 
LDB 
CAMN 
JRST 

GO 

LDB 

CAME 

JRST 

GO 

LDB 

CAME 

JRST 

GET 

GET 

RTN 



1 

2 

RD7 

2. [POINT 

RD7 

1. [POINT 

1,2 

DLYA 

RD7 

1. [POINT 

1.2 

DLYB 



13.1 
13.1 



13.1 



RD7 

1. [POINT 13.1 

1.2 

DLYC 

RD7 

1. [POINT 13.1 

1.2 

DLYC 

2 

1 



;READ LOOK AHEAD INTO ACI 



RD7: 



SETZM 

GO 

JFCL 

JFCL 

RTN 



1 
RDRG07 



;THE CALL 

.•AFTER APPROX 16MS 



.•USER MODE ? 
;YES. AVOID THIS 

;SAVE AC'S 

;READ LA INTO ACI 
.35] -GET REFERENCE POINT 

:READ LA INTO ACI 
.353 

.•SAME AS BEFORE ? 

;N0.. MUST READ SAME. TWICE 

:READ LA INTO ACI 
.35] .-GET DATA 

.•SAME AS BEFORE ? 

.•YES. WAIT TILL Wt'RE OFF THE SECTOR 

;READ LA INTO ACI 
.35] .-GET DATA 

BACK TO ORIGINAL SECTOR ? 
NO 

.YES. TRY FOR A SECOND UME 
.35J ;GET DATA 

.•STILL AT ORIGINAL SECTOR ? 
:N0. MUST HAVE BEEN A TRANSITION 
;YES RESTORE 

;EXIT 



CLEAR ACI 

READ LOOK AHEAD 

CBTO 

PARITY 

NORMAL RETURN. DATA IN AC1 



r— - 



ftFRPMI MAren t«5^Rn?^?^ 19:^7 1P-<;pn-RS Paa* U 



DFRPM1 
DFRPM1 

8A96 
8A97 
8A98 
8^99 
8500 
8501 
8502 
8503 
850A 
8505 
8506 
8507 
8508 
8509 
8510 
8511 
8512 
8513 
85U 
8515 
8516 
8517 
8518 
8519 
8520 
8521 
8522 
8523 
8524 
8525 
8526 
8527 
8528 
8529 
8530 
8531 
8532 
8533 
855A 
8535 
8536 



MACRO X53B(12A2) 19:37 12-Sep-85 Page U 

MAC 9-S«?p-85 09:A9 GENERAL DEVICE I/O DEPENDENT UTILITIES 

;HNODE — ROUTINE TO PUT DRIVE INTO MAINTENANCE MODE 
.•MERELY SET THE DIAGNOSTIC MODE BIT IN THE MAINT REG 



SEO 0309 



000602' 260 17 
000603' 260 17 
00060A' 263 17 



000605 ' 
000606' 
0006C7' 
0006 1 0' 
000611' 
000612' 
000613' 
0006U' 

000615' 
000616' 
000617' 
00062C' 
000621 ' 
000622' 



000623* 
000624 • 
000625' 
000626' 
000627' 
000630' 
000631 • 
000632' 



261 
550 
260 
260 
262 
263 



00 001021' 
T) 000605' 
00 000000 



CALL 



MMODE: 



SEQ: 
GO 
RTN 

GO 
GO 
RTN 



DFRPr 
DFRP^ 

88: 
88: 
88: 



MMODE ;CALL THE ROUTINE 

;RETURNS+1 (FATALS IF C8T0 OCCURS) 



.REQ 
aMTBKXD 



.'REQUEST THE 
.•DISPATCH TO 
.•AND EXIT 



DEVICE 
PROPER 



ROUTINE 



.•TABLE POINTING TO MAINT MODE SET ROUTINES FOR VARIOUS DRIVES 



W 



000000 
000000 
000000 
000000 
000000 
000000 
000000 

oocooo 



000615' 
000615' 
002105' 
000615' 
000615' 
002105' 
002105' 
002105' 



MTB1 



17 
01 
17 
17 
17 
^7 



00 
13 
00 
00 
00 
00 



000001 

000623' 

000522* 

000172* 

000001 

000000 



MM1 



MM1 
MM1 

crtn: 

MM1 
MM1 
[RTN J 
CRTN] 
CRTN3 

PUT 

HRRZ 

GO 

GO 

GET 

RTN 



1 

1.MT82(X1) 
LDRG03 
FFF 

1 



RP04 

RP06 

SPARE 

RP07 (600 MB) 

RM03 

SPARE 

RP20 (TOPS 10) 

RP20 (TOPS20) 

SAVE AC 

GET PROPER DMD BIT FOR DRIVE 

LOAD THE MAINT REGISTER 

C6T0 ERROR FATAL ... 

OK. RESTORE THE AC 

AND EXIT 



88! 
88' 



.•TABLE OF DIAGNOSTIC MODE BIT POSITIONS FOR VARIOUS DRIVES 



000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 



000001 
000001 
000000 
100000 
000001 
000000 
000000 
000000 



MTB2: 



000001 
000001 
000000 
100000 
000001 
000000 
QOOOOO 
000000 



RP04 

RP06 

SPARE 

RP07 (600 MB) 

RM03 

SPARE 

RP20 (TOPS 10) 

RP20 (TOPS20) 



Mt^pm^ MArpn I'^^nnptp^ iQr^7 i?.^«n-KS Paa* IS 



'I- , • 

! 



r 































DFRPM1 


MACRO X53B(1242) 19:37 12-SeD-85 Page 


15 






DFRPM! 


MAC 


9-Sep-85 09:49 


GENERAL DEVICE I/O DEPENDENT 


UTILITIES 


8537 






;LDRG12 — ROUTINE TO LOAD REGISTER 12 (RP07/RP08) 


8538 






.•THIS 


ROUTINE IS CALLED IDENTICALLY TO 'IDR612". IN FACT IT 


85s9 






.•ACTUALLY CALLS •IDRG12" ITSELF 


. IN ADDITION TO LOADING THE 


85A0 






.•DESIRED CYLINDER REGISTER FOR 


YOU IT CHECKS TO SEE IF YOU 


85A1 






;ARE ABOUT TC SELECT A HAINT 


CYLINDER ON THE DEVICE. IF SO. 


8542 






;IT SETS THE DIAGNOSTIC NODE 


BIT IN RE6~3. IF THIS IS NOT 


85A3 






.•DONE. 


YOU WILL NOT BE ABLE 


TO 


ACCESS THE MAINT AREA. 


85AA 






;CALL 


SEQENCE: 






8545 






0, 


HOVE 1.ARG 




.-SEE "LDRG12" FOR DOCUMENTATION 


85A6 






I 


60 LDR12 




.•CALL THE ROUTINE 


8547 






1 


RTN-1 




;CBTO 


8548 






* 



RTN-2 




.•NORMAL 


8549 














8550 


000633* 


261 17 00 000001 


LDR12: 


PUT 1 




;SAVE THE AC 


8551 


000634' 


260 17 00 000000* 




GO LDRG12 




.•LOAD DCY FOR THE USER 


8552 


000635* 


254 00 00 000645' 




JRST L12X 




;CBTO .. TAKE +1 RTN 


8553 


000636* 


550 01 17 000000 




HRRZ 1 , (P) 




;LOAD WAS OK. GET CYL # 


8554 


000637* 


315 01 13 000000* 


LDR12/ 


i: CAMGE 1,LCVCE(X1) 




;IS IT IN MAINT AREA ? 


8555 


000640* 


254 00 00 000644* 




JRST L12U 




;NOPE. THEN DONE. EXIT *2 


m^ 


000641* 


i^ Vr § 8§ miw- 




MOVE 1-C1814! 1000003 


;SET DMD BIT 


000642* 
000643* 




GO l6rG03 




.-LOAD THE NAINT REGISTER 


8558 


lit §8 § ?? mf?'? 




JRST L12X 




;CBTO .. TAKE +1 RTN 


8559 


000644' 


L12U: 


AOS -1 (P) 




;8U«P Tht RETURN 


8560 


000645' 


262 17 00 000001 


i^2K: 


GET 1 




.•RESTORE THE AC 


8561 


000646' 


263 17 00 000000 




RTN 




.•AND EXIT PROPERLY 


8562 















r 



SEQ 0310 



nCDDMI Hiron «t;^&M7/.?^ 1Q.T7 O.C*n.A<; Dan* 1A 



DFRPH1 

8563 

856A 
8565 
8566 
8567 
8568 
8569 
8570 
8571 
8572 
8573 
8574 
8575 



MACRO );53B(1242) 19:37 12-Sep-85 Page 16 

MAC 9-Sep-85 09:49 GENERAL DEVICE 



I/O DEPENDENT UTILITIES 



SEO 0311 



;CLRATA — ROUTINE TO CLEAR ATA 
.•CLEARS ALL ATA'S ON THIS RH 
.•CALL SEQUENCE: 



0006A7' 
000650' 
000651* 



261 
201 



17 
01 



260 17 



000652* 255 00 
000653* 262 17 
000654* 263 17 



00 000001 
00 000377 
00 000000* 
00 000000 
00 000001 
00 000000 



GO 

RTN 

CLRATA: PUT 
MOVE I 
GO 
JFCL 
GET 
RTN 



CLRATA 



1 

1,377 

LDRG04 

1 



.•CALL SEO 
.•RETURNS HERE 

.•SAVE AC 

.GET A MASK 

.•LOAD PSEUDO ATA REG 

.•HANDSHAKE FAILURE 

.RESTORE AC'S 

.•EXIT 



DFRP« 
DFRPM 

887 
887 
887 
888 
888 
888 
888 
888 
888 
888 
888 
888 
888 
889 
889 
889 
889 
889 



BAA^r\^\ ■■r9r\/4'\/^t 



« n . »^ * •\ 



r\ < ■» 



DFRP«1 MACRO X53B(12A2) 19:37 12-Sep-85 Page ^7 

DFRPM1 MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 



SEO 0312 



000655' 
000656' 
000657' 
000660' 
000661 ' 
000662' 
000663' 
000664' 
000665' 
000666' 
000667* 
000670' 
000671 ' 



.•ROUTINE TO WAIT FOR ATA 
•CALL SEQUENCE: 



261 17 

261 17 
201 02 
242 02 
205 01 
260 17 
255 00 
2!; 5 00 
616 01 
254 00 

262 17 

262 17 

263 ^? 



00 000001 
00 000002 
00 000001 
15 000000 
00 000010 
00 000000* 
00 000000 
00 000000 
00 000002 
00 000661 ' 
00 000002 
00 000001 
00 000000 



ATAUT: 



XDX: 



GO 
RTN+1 

PUT 
PUT 
NOVEI 
LSH 

novsi 

GO 

JFCL 

JFCL 

TONN 

JRST 

GET 

GET 

RTN 



ATAUT 



1 
2 

2, (DRIVE) 

1,(1814) 

RDR604 



1.2 
XDX 
2 
1 



.-CALL IT 

;IT RETURNS HERE 

;SAVE AC'S 

A SINGLE BIT MASK 
POSITION IT 

CLEAR BUT DON'T REPORT RAE'S 
•READ ATA 



IS ATA SET ? 
NO YET 
YES. RESTORE 
AND EXIT 



0300 



DFRPM1 


MACRO X538(12A2) 19:37 12-SeD-85 Page 18 






DFRPM1 


MAC 


9-Sep-85 09:A9 


GENERAL 


DEVICE 


I/O DEPENDENT UTILITIES 


8596 








;STATCK 


-- CHECK DSU FOR DEVICE ! 


STATUS CONDITIONS AND BRANCH ACCO 


8597 
















8598 








•CALL SEQ: 






8599 










GO 


STATCK 


•CALL THE ROUTINE 


8600 










RTN1 




;OFF-LINE OR NOT USEABLE 


8601 










RTN2 




IWRITE PROTECTED (VARIABLE MODE) 


8602 










RTN3 




;WRITE PROTECTED (MAN OR DEFAULT) 


8603 










RTN4 




;NONE OF THE ABOVE .... OK TO USE 


860A 










» 






8605 


000672* 


603 


14 00 000400 


STATCK: 


TINE 


DSU,(1B9) 


;IS DRIVE USEABLE ? 


8606 


000673' 


254 


00 00 000704' 




JRST 


STNU 


;N0 


8607 


00067A' 


607 


14 00 000004 




TLNN 


DSW,(1B15) 


;YES. IS IT ON-LINE 


8608 


000675' 


254 


00 00 000704' 




JRST 


STNU 


;N0 


8609 


000676' 


350 


00 17 000000 




AOS 


(P) 


;NOW BY RTN-1 


8610 


000677' 


607 


14 00 000010 




TLNN 


DSW,(1B14) 


iDRIVE WRITE PROTECTED ? 


8611 


000700' 


254 


00 00 000707' 




JRST 


STAX1 


;N0 ... WANT RTN-4 


8612 


000701 ' 


336 


00 00 000010* 




SKIPN 


VARFLG 


•YES. ARE WE IN VARIABLE MODE ? 


8613 


000702' 


254 


00 00 000710' 




JRST 


STAX2 


■NO ... WANT RTN-3 


861A 


000703' 


254 


00 00 000711' 




JRST 


STAX3 


■WANT RTN-2 


8615 
















8616 


00070A' 


332 


00 00 000701* 


STNU: 


SKIPE 


VARFLG 


■IN VARIABLE MODE ? 


8617 


000705' 


476 


00 00 000011* 




SETOM 


ALTF 


■YES. FORCE ALTMODE TO BREAK LOOP 


8618 


000706' 


254 


00 00 000711* 




JRST 


STAX3 


■WE'RE DONE 


8619 
















8620 


000707' 


350 


00 17 000000 


STAX1: 


AOS 


(P) 


;BUMP RTN 


8621 


0C071C' 


350 


00 17 000000 


STAX2: 


AOS 


(P) 


;BUMP RTN 


8622 


000711' 


263 


17 00 000000 


STAX3: 


RTN 




;EXIT 


8623 

















SEQ 0313 



r 

D 
D 



MODES 



n^ni 



PfBPMl MACRO X53B(1242)J?i37_12-Sep-85_Page..19, 



«^ A Ai 



)301 



0FRPM1 
0FRPM1 

8624 
8625 
8626 
8627 
8628 
8629 
8630 
8631 
8632 



MACRO X53B(12A2) 19:37 12-Sep-85 Page 19 

MAC 9-Sep-85 09:A9 GENERAL DEVICE I/O DEPENDENT UTILITIES 



SEO 03 U 



01 
DF 



8636 
'637 
.38 
639 
86A0 
86A1 
86A2 
86A3 
86AA 
86A5 
86A6 
86A7 
86A8 
86A9 
8650 
8651 
8652 



STUPO — STATUS UPDATE ROUTINE 

THIS ROUTINE UPDATES THE STATE OF DSW FROM AN IMAGE OF THE DRIVE STATUS 

AND ER1 REGISTER IN THE DSB AREA. IT DOES THE FOLLOWING: 

IF STATU") REG INDICATES MOL=0. THEN SET DSW(15)=0 
IF ERROR REG INDICATES UNS=1, THEN SET DSW(09)=1 
IF STATUS REF INDICATES WRL^I. THEN SET DSW(1A)=1 
FINALLY ... SAVE UPDATED COPY OF DSW IN DEVTBL 

THIS ROUTINE IS CALLED AFTER EACH REQUEST AND EACH RELEASE TO GUARANTY 
REASONABLE TRACKING OF DEVICE STATUS CHANGES 



000712' 
000713' 
00071 A' 
000715' 
000716' 
000717' 
000720' 
000721 • 
000722' 
000723' 
00072A' 
000725* 



261 17 
200 01 
606 01 
621 

135 01 
137 01 
200 01 
602 01 
661 1A 
202 1A 1 

262 17 

263 17 



1A 








00 
1A 
00 
00 
00 
00 
1A 
00 
00 
U 
00 
00 



000001 

000010 

010000 

OOOOOA 

002215' 

002216' 

000011 

OAOOOO 

OOOAOO 

000000 

000001 

000000 



CALL SEQ: 
GO 
RTN1 

STATUP: PUT 
MOVE 
TRNN 
TLZ 
LDB 
DPB 
MOVE 
TRNE 
TLO 
MOVEM 
GET 
RTN 



STATUP 



1 



;THE CALL 
;THE RETURN 



■SAVE AC1 

1,R1D(DSW) -GET STATUS REG DATA FROM DSB AREA 
1,1823 ;IS MOL=0 
DSW,(1B15) ;YES ... CLEAR DSW BIT 
1. [POINT 1.1, 2A] :GET STATE OF WRL BIT 
1,CP0INT 1,DSW,1A3 ;SAVE IT I DSW 



1,R2D(DSW) 
1.1821 
DSW, (189) 
DSW,a0(DSW) 
1 



GEt ER1 DATA FROM DSB AREA 

IS UNS=1 

YES ... MARK AS UNUSEA8LE 

PUT UPDATED COPY IN DEVTBL 

RESTORE AC 

EXIT 



itns 



pFRPMI MACRO X538(12A2).19:37 J2-Sep-85.Page 20. 



1 



DF 



1 



502 



DFRPM1 
DFRPM1 

8653 
865A 
8655 
8656 
8657 
8658 
8659 
8660 
8661 
8662 
8663 
866A 
8665 
8666 
8667 
8668 
8669 
8670 
8671 
8672 
8673 
8674 
8675 
8676 
8677 
8678 
8679 
8680 
8681 
8682 



MACRO X53B(1242) 19:37 12-Sep-85 Page 20 

MAC 9-Sep-85 09:A9 GENERAL DEVICE I/O DEPENDENT UTILITIES 



SEO 0315 



OF 
DF 



MSTCLR — RH MASTER ClFAR ROUTINE 

THIS ROUTINE DOES THE . LOWING: 

GUARANTEES THAT THE RH IS IDLE WITH NO INTERRUPTS PRESENT 



000726' 261 17 00 000001 
000727' 260 17 00 000000* 



CALL 



MSTCLR 



000730' 
000731 ' 
000732' 
000733' 
00073A' 
000735' 
00073'-' 
000737' 
0007A0' 
000741 • 
000742' 
000743' 
000744' 



602 01 
254 00 
602 01 
254 00 
201 01 
260 17 
201 01 
260 17 
201 01 
260 17 
254 00 
201 01 
260 17 



00 220017 
00 000734' 
00 002000 
00 000743' 
00 002600 
00 000000* 
00 000420 
00 000735* 
00 000010 
00 000000* 
00 000740' 
00 002600 
00 000737* 



MCI 



MCO: 



000745* 262 17 00 000001 
000746' 263 17 00 000000 



SEQUENCE: 




GO 


MSTCLR 


RETURN 




: P. ^ 


1 


GO 


.CONI 


XLIST 




LIST 




TRNE 


1,220017 


JRST 


MCI 


TRNE 


1,2000 


JRST 


MCO 


MOVE I 


1,2600 


GO 


CONO 


HOVE I 


'^0 


GO 


,0 


HOVE I 


,,10 


GO 


. CONSO 


JRST 


.-2 


HOVE I 


1.2600 


GO 


.CONO 


XLIST 




LIST 




GET 


1 


RTN 





.-CALL THE CLEAR ROUTINE 
.•RETURNS HERE ALWAYS 

.-SAVE THE AC 

;AND GET RH STATUS 



EXCEP=CHERR=DONE=PIA=0 

ERROR. S0MTHIN6 NON-O 

CHANN BUSY ? 

OK. CHAN IS HALTED 

RHCLR!MBE!RCLP 

DO THE I/O 

HBEISTOP 

THIS FORCES CHAN TO TERMINATE 

DONE 

WAIT TILL DONE SETS 

KEEP WAITING 

RHCLR!MBE!RCLP 

THE FINAL CLEAR 



.•RESTORE THE AC 
.•EXIT 



— ( 



r 



mt i 



DFRPM1 MACRO X53e(1242) J9:37_12-Sep-85 Page 21 



1 r 

1 BF 



1 



303 



DFRPM1 
DFRPH1 

8683 
868A 
8685 
8686 
8687 
8688 
8689 
8690 
8691 
8692 
8693 
869A 
8695 
8696 
8697 
8698 
8699 
8700 
8701 
8702 
8703 
870A 
8705 
8706 



MACRO X53B(12A2) 19:37 12-Sep-85 Page 21 

MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UHLITIES 



SEQ 0316 



DF 
DF 



;SVECT — SET UP INTERRUPT VECTORS 

.•PUTS A "JSR RHSER" INTO PROPER EPT LOCATION AND LOAD VECTOR 

.•REGISTER WITH PROPER ADDRESS 

.-CALL SEQUENCE: 

GO SVECT .-CALL THE ROUTINE 

; RTN ;RETURNS HERE 



000747* 
000750* 
000751' 
000752* 
000753* 
000754* 
000755* 
000756* 
000757* 
000760* 
000761 * 
000762* 
000763* 
000764* 
000765* 
000766* 



332 
263 
261 
261 
200 
260 
221 
271 
261 
270 
202 
262 
260 
262 
262 
263 



00 
17 
17 
17 
00 
17 
01 
01 
17 
01 
00 
17 
17 
17 
17 
17 



00 030037 
00 000000 
00 000001 
00 000000 
00 002217* 
00 000000* 
00 000004 
00 000003 
00 000001 

00 000000* 

01 000000 
00 000001 
00 000000* 
00 000000 
00 000001 
00 000000 



SVECT: 



SKIPE 


USER 


RTN 




PUT 


1 


PUT 





MOVE 


O.CJSR 


GO 


CHSEL 


IMULI 


1.4 


ADD I 


1,3 


PUT 


1 


ADD 


1.C8ASE 


MOVEM 


0.(1) 


GET 


1 


GO 


LDIVRG 


GET 





GET 


1 


RTN 





RHSER] 



;USER MODE ? 

;YES. DON'T TOUCH VECTOR 



INTERRUPT SERVICE 

GET CHAN * TO ACO 

X4 

LAST WORD IN BLOCK 

SAVE PHYSICAL ADDRESS 

A PAGED ADDRESS 

PUTS JSR IN THE EPT 

THE PHYS ADDR RESTORED 

LOAD INTERRUPT VECTOR REGISTER 

RESTORE AC'S 

EXIT 



^"""^ 



in/ 



DFRPM1 MACRO X53B(1242) 19:37 12-SeD-85 Page 22 



Ml 



504 



lOFRPMI MACRO X53B(1242) 19:37 12-Sep-85 Page II 
DFRPM1 MAC 9-Sep-85 09:49 6ENERAL DEVICE I/O DEPENDENT UTILITIES 



SEQ 0317 



OF I 

DFI 



8707 






;. RHCLR — ROUTINE TO CLEAR RH 


INTERRUPT CONDITIONS 


8708 






.•CLEARES: XFERER.RAECLR.DONE 




8709 






.-CALL SEOENCE: 




8710 
8711 






I 60 RHCLR 


.•CALL THE ROUTINE 






• RTN 


.•EXIT 


8712 










8713 


000767' 


261 17 00 000001 


.RHCLR: PUT 1 


.•SAVE ACl 


8714 


000770' 


200 01 14 000001 


HOVE l.CONID'DSU) 


;6ET THE CONI DATA 


8715 


000771 • 


405 01 00 004457 


ANDI 1,4457 


.•SAVE. RAECLR.MBE.RAEN.DONE.PIA 

.•SETS xeclr.m6e.rclp 


8716 


000772' 


435 01 00 001600 


lORI 1.1600 


8717 


000773' 


260 17 00 000744* 


60 .CONG 


;D0ES THE CONO 


8718 


000774' 


262 17 00 000001 


6ET 1 


.•RESTORE 


8719 


000775' 


263 17 00 000000 


RTN 


.•EXIT 


8720 










8721 











nFRPNI MAfRn t53Rn?4?) 19:37 1?-.<;en-R5 Paap ?3 






;o5 



DFRPM1 
DFRPMl 

8722 
8723 
872A 
8725 
8726 
8727 
8728 
8729 
8730 
8731 
8732 
8733 
873A 
8735 
8736 
8737 
8738 



MACRO X53B(1242) 19:37 12-Sep-85 Page 23 

MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 

;.PIOFF — DETACH FROM PI SYSTEM 
.•ROUTINE ALSO CLEARS RAE'S AND RESETS CLP 
;CALL SEQUENCE: 

; 60 .PIOFF ;CALL THE ROUTINE 
RTN .-RETURNS HERE 



SEQ 0318 



DFI 
DFF 



000776' 336 00 00 030037 

000777' 260 17 00 001076' 

001000' 261 17 00 000001 

001001' 201 01 00 00A600 

001002' 260 17 00 000773* 

001003' 262 17 00 000001 

001 OOA' 336 00 00 030037 

001005' 260 17 00 001106' 

001006' 263 17 00 000000 



.PIOFF: SKIPN 
60 
PUT 
MOVE I 
60 
6ET 
SKIPN 
60 
RTN 



USER 

PISYOF 

1 

1,4600 

.CONO 

1 

USER 

PIS YON 



.•SKIP IF IN USER MODE 

.•TURN OF PI SYSTEM 

•SAVE AC 

;MBE!RCLP!RAECLR!(PIA=0) 

;D0 THE CONO 

.•RESTORE AC 

.•DON'T DO IN USER MODE 

;TURN PI SYSTEM BACK ON 

;EXIT 



hFRPMI MAfRH \^'^R(17L7) ^Q^^K7 IP-t^An-RS Pano ?4 



r 



)6 



DFRPMI 
DFRPM1 

8739 
87A0 
874 1 
87A2 
87A3 
8744 
8745 
8746 
8747 
8748 
8749 
8750 
8751 
8752 
8753 
8754 
8755 
8756 
8757 
8758 
8759 
8760 



MACRO X53B(1242) 19:37 12-Sep-85 Page 24 

MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 



SEQ 0319 



;.PION — ATTACH RH TO PI SYSTEM 
.•ATTACHES RH TO PI CHAN-2 
.•CALLING SEQUENCE 



001007' 261 17 00 000001 
001010' 201 01 00 000400 
001011' 260 17 00 001002* 



.PION: 



001012' 
001013' 
001014' 
001015' 
001016' 
001017' 
001020' 



260 
260 
201 
260 
260 
262 
263 



17 
17 
01 
17 
17 
17 
17 



00 
00 
00 
00 
00 
00 
00 



001076' 

000747' 

000442 

001011* 

001106' 

000001 

000000 



GO 


.PION 


RTN 




PUT 


1 


MOVE I 


1.400 


GO 


.CONO 


XLIST 




LIST 




GO 


PISYOF 


GO 


SVECT 


MOVE I 


1.442 


'^V 


.CONO 


^7 


PIS YON 


GET 


1 


RTN 




XLIST 




LIST 





.•CALL THE ROUTINE 
.•RETURNS HERE 

.•SAVE AC1 
:M6E 

.•ENABLE TRANSMITTERS 



;TURN PI SYSTEM OFF 

.•SET UP RH20 VECTOR 

;MBE+ATAEN+CH-2 

.•DOES THE ATTACH 

.-TURN PI SYSTEM BACK ON 

.•RESTORE AC 

.-EXIT 



DFRPMI MAfRO X53B{1?4?5 19:37 1?-Si»d-85 P»a» 25 



n 



37 



0FRPM1 MACRO X53B(12^2) 19:37 12-Sep-85 Page 25 

DFRPM1 MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 



SEQ 0320 



8761 








■.REQ 


-- USER/EXEC MODE REQUEST 




8-^62 








•THIS 


FIRST CHECKS TO SEE IF WE / 


^LREADY HAVE THE RH, IF SO, 


876A 
8765 




. . ■ . 




•IT EXITS IMMEDIATELY 










REQUESTS AND 


INITS THE RH20 BY ( 


:ALLING "DEVREQ". IN ADDITION, 


8766 








•EXEC 


MODE IS 


CAREFULL TO HANDLE 


PI SYSTEM CORRECTLY. IT 


8767 
8768 
8769 








•ATTACHES THE 


RH20 TO PI CHANNEL- 


-2. 








NOTE 


- IT ALSO HONORS A FLAG "USEPI". IF THIS FLAG IS 


8770 










SET TO 


0, THE PROGRAM WILL NOT USE THE PI SYSTEM 


8771 










AT ALL 


. THE EXEC MODE VERSION WILL RUN AS IF ITS 


8772 










IN USER MODE 




8773 
















8774 








CALLING SEQ: 






8775 










GO 


.REQ 


;CALL THE ROUTINE 


8776 










RTN 




;NOW HAVE RH20 


8777 
















8778 


001021' 


316 


16 00 OOOOOO* 


.REQ: 


CAMN 


MBCN,DIAGCR 


;SKIP IF WE DON'T HAVE RH ALREADY 


8779 


001022' 


263 


17 00 OOOOOO 




RTN 




;EXIT IMMEDIATELY, WE HAVE IT. 


8780 


001023' 


332 


00 00 030037 




SKIPE 


USER 


;EXEC OR USER MODE ? 


8781 


001024' 


254 


00 00 001027' 




JRST 


.♦3 . 


rUSER MODE 


8782 


001025' 


332 


00 00 000541* 




SKIPE 


USEPI 


rEXEC MODE. USING THE PI SYSTEM ? 


8783 


001026' 


254 


00 00 001033' 




JRST 


.♦5 


;YES 




784 


001027' 


332 00 00 030037 




SKIPE 


USER 


;SKIP CTRL-C STUFF IN EXEC MODE 




785 


001030' 


260 


17 00 OOOOOO* 




GO 


CCSET 


;SET UP FOR CTRL-C INTERRUPT 




786 


001031' 


260 


17 00 OOOOOO* 




GO 


DEVREQ 


;REOUEST THE DEVICE 


I 


787 
788 
789 


001032' 


254 


00 00 001037' 




JRST 


.REQCM 


;T0 COMMON CODE 


c 


001033' 


260 


17 00 001076' 




M 


PISYOF 


•PI SYSTEM OFF 




790 


001034' 


260 


17 00 001031* 




S' 


DEVREQ 


;REQUEST AND INIT THE DEVICE 


791 


001035' 


2o.' 


17 00 001106' 




tt 


PISVON 


;PI SYSTEM BACK ON 




792 
793 
794 


001036' 


260 


17 00 001007' 




H 


.PION 


lATTACH RH CLEANLY TO CHAN-2 




001037' 


261 


17 00 000001 


.REQCM: PUT 


1 


;SAVE AC1 




795 


001040' 


205 


01 00 000010 




MOVSI 


1,(1814) 


:DONT REPORT RAE'S BUT CLEAR 




796 


001041' 


260 


17 00 000207* 




GO 


RDRG01 


;READ STATUS REG 




797 


001042' 


254 


00 00 001045' 




JRST 


.♦3 


;CBTO 




798 


001043' 


254 


00 00 001045' 




JRST 


.*2 


;PARITY ERROR 




799 

onn 


001044* 


202 


01 14 000010 




MOVEM 


1,R1D(DSW) 


;SAVE STATUS REGISTER DATA 


8uvu 


001045' 


205 


01 00 000010 




MOVSI 


1,(1814) 


•DONT REPORT RAE'S BUT CLEAR 


8802 


001046' 


260 


17 00 OOOOOO* 




60 


RDRG02 


;READ ERROR REG 


8803 


001047' 


254 


00 00 001052' 




JRST 


.♦3 


;CBTO 


8804 


001050' 


254 


00 00 001052' 




JRST 


.♦2 


iPARITY ERROR 


8805 


001051' 


202 01 14 000011 




MOVEM 


1.R2D(DSW) 


;SAVE ERROR REG DATA IN DSB 


8806 


001052' 
001053' 




17 00 000712' 
17 00 000001 




GO 


stATUP 


lUPDATE DSW FROM STATUS REGISTER 


8807 


262 




GET 


1 


;RESTORE AC1 


iano 


001054' 


263 


17 00 OOOOOO 




RTN 




•AND EXIT 




OUT 

810 

















rtrDDMI MAfDn ¥^T(imA?> IQ-77 n.<«n.fl^ Pan* ?A 



r 



18 



DFRPM1 
DFRPMl 

8811 
8812 
8813 
88H 
8815 
8816 
8817 
8818 
8819 
8820 
8821 
8822 
8823 
8824 
8825 
8826 
8827 
8828 
8829 
8830 
8831 
8832 
8833 
8834 
8835 
8836 



MACRO X53B(1 242) 19:37 12-Sep-85 Page 26 



r 



MAC 



9-Sep-85 09:49 



GENERAL DEVICE I/O DEPENDENT UTILITIES 

.REL — USER/EXEC MODE RELEASE ROUTINES 

INITS AND THE RELEASES THE RH20 USING 'DEVREL" IN EXEC MODE 

IT'S CAREFUL TO INTERFACE WITH THE PI SVSTEM CORRECTLY 

NOTE - IT ALSO HONORS A FLAG 'tJSEPI". IF THIS FLAG IS 

SET TO 0, THE PROGRAM WILL NOT USE THE PI SYSTEM 
AT ALL. THE EXEC MODE VERSION WILL RUN AS IF ITS 
IN USER MODE 



SEQ 0321 



001055' 
001056' 
001057' 
001060' 
001061' 
001062' 
001063' 
001064' 
001065' 
001066' 
001067' 



603 
260 
332 
254 
332 
260 
260 
332 
260 
260 
263 



14 
17 
00 
00 
00 
17 
17 
00 
17 
17 
17 



00 002000 
00 000257' 
00 030037 
00 001063' 
00 001025* 
00 000776' 
00 000000* 
00 030037 
00 000000* 
00 000712' 
00 000000 



CALL SEQUENCE: 




60 


.REL 


RTN 




REL: TLNE 


DSW,(1B7) 


60 


REL^SE 


SKIPE 


USER 


JRST 


.^3 


SKIPE 


USEPI 


60 


.PIOFF 


60 


DEVREL 


SKIPE 


USER 


60 


CCCLR 


60 


STATUP 



RTN 



.•CALL THE ROUTINE 
.•DEVICE GONE 

;IS THIS PROGRAMMABLE IN DUAL PORT ??? 

.•ISSUE A PORT RELEASE COMMAND 

.•USER MODE? 

•YES 

•NO. 'using the pi SYSTEM ? 

.•YES. THEN DETACH THE RH 

.•THEN RELEASE 

;SKIP IF IN EXEC MODE 

.•DISABLE SOFTWARE INTERRUPTS 

.•UPDATE DSW FROM STATUS REGISTER 

;THi=N EXIT 



DFRPM1 MACRO X53B(12A2) 19:37 12-Sep-85 Page 27 

DFRPM1 MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 



SEQ 0322 



;INITPI — INI I AND TURN 
l\H EXEC MODE ONLY. TURN 
.•CHANNELS ACTIVATED. 
.•CALL SEQENCE: 
; 60 INITPI 

; RTN 



ON 
ON 



PI 
PI 



SYSTEM 
SYSTEM 



.-CALL 
;RTNS 



WITH ALL 



THE ROUTINE 
♦1 ALWAYS 



001070' 
001071' 

001072' 
001073' 
001074' 
001075' 



332 
263 



00 
17 



00 
00 



030037 
000000 



INITPI 




0^ 



SKIPE 
RTN 

CONG 
CONU 
CONG 
RTN 



USER 



PI. 00200 



;USER MODE ? 
;YES.... EXIT 

.•CLEAR PI SYSTEM 
.•ACTIVATES ALL CHANNELS 
.•FINALLY TURNS THE PI SYSTEM ON 
.-AND EXIT 



-J 






•krr>r\«ai ua.-n<i tt c In / i *) y ^ \ m.'V? ^ t e ac n - "iO 



0FRPM1 
0FRPM1 

8852 
8853 
885A 
p55 
8856 
8857 
8858 
8859 
8860 
8861 
8862 
8863 
886A 
8865 
8866 
8867 
8868 
8869 
8870 
8871 
8872 
8873 
8874 
8875 
8876 



MACRO X53B(12A2) 19:37 12-Sep-85 Page 28 



MAC 



9-Sep-85 09:49 



GENERAL DEVICE I/O DEPENDENT UTILJTIES 



SEO 0323 



;P;SYOF - PISVON 
.■CALL SEQUENCE: 



Pi SYSTEM ON-OFF ROUFINES 



Mti 



001076' 
001077' 


332 00 C 


263 17 


001100' 


261 17 


001101' 


7 004 24 


001102' 


201 01 


001103' 


7 0C4 20 


001104' 


262 17 


001105' 


263 17 



001106' 
001107' 
001110' 
001111 • 
001112' 
001113' 
001114' 
001115' 



332 00 
263 17 

261 17 
200 01 
435 01 
7 004 20 

262 17 

263 17 



00 030037 
00 000000 
00 000001 
00 002077' 
00 000^*00 

01 oocooo 

00 000001 
00 000000 

00 030037 
00 000000 
00 000001 
00 002077' 
00 002300 
01 000000 
00 000001 
00 000000 



PISYOF: SKIPE 
RTN 
PUT 
CONI 
HOVE I 
CONO 

an 



PISVON: 



SIf 'PE 

R 

P., I 

MOVE 

lORJ 

CONO 

GET 

RTN 



PISVXX 



USER 

1 

Pl-PISAVE* 

lj827 

PI,(1) 

1 



USER 

1 

'.PI SAVE 

1.2300 

l-i.(l) 



;XX IS ON OR OF 
.-RETURNS HERE 

.•DON'T TOUCH Pi SYSTEM IN USER MODE 

•SAVE AC 

•SAVE CURRENT STATE 

;PI OFF BIT 

.•TURNS TMPN OFF 

.'RESTORE 

;EXIT 

;DON'T TOUCH THE PI SYS IN USER MODE 

;SAVE THE AC 

;6ET ORIGINAL STATE 

.•TURN ON SELECTED CHANNELS 

.•RESTORE THE PI SYSTEM 

.•RESTORE THE AC 

;AND EXIT 



-.^■j w— Oi ti«n)i>i mimimltt ■ mi ji ■mtvi 



r~' 



DFRPM1 
DFRPM1 

8877 
8878 
8879 
8880 
8881 
8882 
8883 
888A 
8885 
8886 
8887 
8888 
8889 
8890 
8891 
8892 
8893 
8894 



MACRO X53B(1242) 19:37 12-Sep-85 Page 29 



MAC 



9-Sep-85 09:49 



6ENERAI DEVICE I/O DEPENDENT UTILITIES 

SETTRP - - PATCHES "UUOTST" INTO SUBR PK6 UUO HANDLER 
THIS ROUTINE DOES NOTHING IN EXEC MODE. IN USER MODE IT MODIFIES 
THE SUBROUTINE PKGES UUO HANDLER TO EXECUTE A ROUTINE CALLED 
•\JUOTST" EACH TIME THE PGM EXECUTES A UUO AND THEN PASSES 
CONTROL TO THE SUBROUTINE PACKAGE FOR NORMAL UUO PROCESSING. 



SEO 0324 



CALL SEQUENCE: 
60 
RTN 



001116' 
001117' 
001120' 
001121' 
001122' 
001123' 
001 124' 



336 GO 00 030037 
263 17 00 000000 

261 17 00 000000 
200 00 00 002220' 
202 00 00 030515 

262 17 00 000000 

263 17 00 000000 



SETTRP: 



SETEX: 



SKIPN 

RTN 

PUT 

MOVE 

MOVEM 

GET 

RTN 



SETTRP 



USER 



O.CGO UUOTST] 

0,$$UUO 





.-PATCH IN 

.RETURNS CONTROL HERE 

;IN USER MODE ? 

;N0. RETURN IMMEDIATELY 

;YES. SAVE THE AC 

;THE NEW INSTRUCTION (TRAP) 

:N0U PACHED INTO UUO HANDLER 

.•RESTORE THE AC 

;AND RETURN 



DFRPW1 
DFRPM1 

8895 
8896 
8897 
8898 
8899 
8900 
8901 
8902 
8903 
890A 
8905 
8906 
8907 
8908 
8909 
8910 
8911 
8912 
8913 
8914 
8915 
8916 
8917 
8918 
8919 
8920 



MACRO X53B(1242) 19:37 12-Sep-85 Page 30 

MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 



1 r 



SEO 0325 



001125* 
001126' 

001127' 
001130' 



UUOTST - - ROUTINE TO RELEASE THE RH BEFORE PRINTING 
THIS ROUTINE IS EXECUTED IN USER MODE ONLY. BEFORE ATTEMPTING 
TO PRINT OR EXECUTE SOME OTHER TIME CONSUMING SUBROUTINE 
PACKAGE UUO. IT IS GOOD FORM TO RETURN THE RH TO THE SYSTEM 
RESOURCES SO THAT BOTH THE MONITOR AND DIAGNOSTIC USE THE 
DEVICE EFFICIENTLY. THIS ROUTINE IS RUN EACH TIME A UUO IS 
EXECUTED IN USER MODE, PROVIDED "SETTRP" yAS PREVIOUSLY 
CALLED. (AFTER PGMINT). 



261 
261 

336 
254 



17 00 000040 
17 00 000000 



UUOTST: PUT 
PUT 



001131' 135 
001132' 301 
001135' 260 



001134' 
001135' 
001136' 
001137' 
001140* 



336 
26C 
262 
262 
263 



00 
00 

00 
00 
17 

00 
17 
17 
17 
17 



00 001021* 
00 001134' 



00 002221 
00 000034 
00 001055' 



00 
00 
00 
00 
00 



001127* 

000000* 

000000 

000040 

000000 



UUO A: 



SKIPN 
JRST 

LDB 

CAIL 

GO 

SKIPN 

GO 

GET 

GET 

RTN 



40 


DIAGCR 
UUOA 



.•SAVE THE ACTUAL UUO 
;AND SAVE ACO 

;SEE WHO'S IN POSESSION OF THE RH 
.•MONITOR. NO NEED TO CHECK UUO 



0. [POINT 9,-1 (P). 83 .-GET OP-CODE FROM LOC 40 (STACKED) 
0.34 ;IS IT MY UUO OR SU8RTN PKG UUO ? 

.REL ;SUBRTN PK6 UUO. RELEASE THE RH. 



DIAGCR 
CCCHK 

40 



■>■> 



;D0 WE HAVE THE RH 

;N0.. CHECK FOR CTRL-C INTERCEPT 

.•RESTORE STACKED VARIABLES 

.•LOCATION 40 

.•BACK TO SUBRTN PKG UUO HANDLER 



u 



r 



0313 



DFRPM1 
DFRPM1 

8921 

8922 

8923 

892A 

8925 

8926 

8927 

8928 

8929 

8930 

8931 

8932 

8933 

893A 

8935 

8936 

8937 

8938 

8939 

89A0 

89A1 

8942 

89A3 

894A 

89A5 

8946 

8947 

8948 

8949 

8950 

8951 

8952 

895^ 

89'j 

8955 

8956 

8957 

8958 

8959 

8960 

8961 

8962 



MACRO X53B(1242) 19:37 12-Sep-85 Page 31 



MAC 



9-Sep-85 09:49 



GENERAL DEVICE I/O DEPENDENT UTILITIES 

GETRE6 — READ RP07 REGISTERS INTO CORE (THE DSB AREA) 
THIS ROUTINE READS RP07 REGISTERS INTO CORE. 
CALLING SEQUENCE: 

GO GETREG ;CALL THE ROUTINE 

RTN .-EXIT 



SEQ 0326 



r 

D 
D 



001141' 
001142' 
001143' 
001144' 
001145' 
001146* 
001147' 
001150' 
001151' 
001152' 
001153' 
001154' 
001155' 
001156' 
001157' 
001160' 

001161' 
001162' 
001163' 
001164' 
001165' 
001166' 
001167' 
001170' 
001171' 
001172' 
001173' 
001174' 
001175' 
001176' 
001177' 
001200' 



261 17 00 000001 
261 17 00 000007 

261 17 00 000006 
200 07 00 002222' 
550 06 00 000014 
402 00 00 000001 
260 17 1 07 001161' 
334 00 00 000000 
254 00 00 001146' 
202 01 06 000007 
350 00 00 000006 
253 07 00 001146' 

262 17 00 000006 
262 17 00 000007 

262 17 00 000001 

263 17 00 000000 

000000000000* 
000000000000* 
OOOOCooOOOOO* 
000000000000* 
000000000000* 
000000000000* 
000000000000* 
OuJOOOOOOOOO* 
000000000000* 
000000000000* 
000000000000* 
000000000000* 
000000000000* 
000000000000* 
000000000000* 
000000000000* 



GETREG: PUT 
PUT 



GETL: 



RDL; 



PUT 

MOVE 

HRRZ 

SETZM 

GO 

SKI PA 

JRST 

MOVEM 

AOS 

A08JN 

GET 

GET 

GET 

RTN 

RDRGOO 
RDRG01 
RDRG02 
RDRG03 
RDRG04 
RDRG05 
RDRG06 
RDRG07 
RDRG10 
RDR611 
RDRG12 
RDR613 
RDR6K 
RDRG15 
RDRG16 
RDRG17 



1 

X 

Y 

X,[*D-16,,0] 

Y,DSW 

1 

aRDL(X) 

GETL 

1,R0D(Y) 

Y 

X,GETL 

Y 

X 

1 



;SAVE AC'S 



DISPATCH POINTER 

STARTING POINTER 

CLEAR AC1 

READ APPROPRIATE REGISTER 

HANDSHAKE FAILURE 

PARITY ERROR 

PUT RESULTS AWAY 

BUMP POINTER 

BUMP DISPATCH INDEX 

DONE. RESTORE THINGS 



;AND EXIT 



DFRPM1 MACRO X53B(1242) 19:37 12-SeD-85 Paae 32 



0314 



DFRPM1 MACRO X53B(12A2) 19:37 12-Sep-85 Page 32 

0FRPM1 MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 



SEQ 0327 



Dl 
Dl 



8963 
8964 
8965 
8966 
8967 
8968 
8969 
8970 
8971 
8972 
8973 
8974 
8975 
8976 
8977 
8978 
8979 
8980 
8981 
8982 
8983 
8984 
8985 
8986 
8987 
8988 
8989 
8990 
8991 
8992 
8993 
8994 
8995 
8996 
8997 
8998 
8999 
9000 
9001 
9002 
9003 
9004 
9005 
9006 
9007 
9008 
9009 
9010 
9011 
9012 
9013 

9014 001 i 

9015 001 ; 

9016 001 i 

9017 001 i 



•or 

'03* 
•04" 



254 
261 



17 

??8 



00 

00 

" 00 

00 



0010 
2223* 
1216' 
0010 



; SNAPA-SNAPS-SNAPRH-SNAPDR-DUMPA-DUMPS-DUMPRH-DUMPDR 

.•THESE ARE ENTRY POINTS INTO 2 ROUTINES FOR SNAPSHOTING 

;AND DUMPING VARIOUS COMBINATIONS OF REGISTER AND :^TATUS 

;FROH WITHIN THE SELECTED CONTROLLER AND DRIVE. THE FOLLOWING 

.-ENTRY POINTS ARE AVAILABLE: 

i SNAPA READ ALL CONTROLLER AND DRIVE REGISTERS AND CONl 

t SNAPS READ SELECTED STATUS INFORMATION (SEE NOTE-1) 

1 SNAPDR READ ALL DRIVE REGISTERS 

t SNAPRH READ CONTROLLER STATUS ONLY 

I DUMPA PRINT ALL CONTROLLER AND DRIVE REGISTERS AND CONI 

i DUMPS PRINT SELECTED STATUS INFORMATION (SEE NOTE-1 ) 

i DUMPDR PRINT ALL DRIVE REGISTERS 

I DUMPRH PRINT CONTROLLCR STATUS 

;N0TE-1 

.•WHEN RUNNING IN SELECTIVE MODE, THESE ROUTINES LOOK AT A 
.•ACCUMULATOR CALLED "RGLIST" TO DETERMINE WHICH REGISTERS ARE 

.•SNAPSHOTS AND PRINTED. THE BITS ARE ASSIGNED AS FOLLOWS: 

CONI DATA 

- rf RHIO DIB REG 

i I RHIO RAE REG 

■ * RHIO INTERRUPT ADDR REG 

RHIO DATA BUFFER 

RHIO CONTROL REGISTER 

RHIO CHANNEL BUFFER 

RH20 SBAR 

RH20 STCR 

RH20 PBAR 

RH20 PTCR 

RH20 INTERRUPT VECTOR REGISTER 



DRIVE CONTROL REG 

DRIVE STATUS 

ER1 

MAINT REG 

ATTN REG 

DESIRED TRACK SECTOR 

DRIVE TYPE 

LOOK AHEAD 

SERIAL NUMBER 

OFFSET REG 

DESIRED CYLINDER 

CURRENT CYLINDER 

ER2 

ER3 

ECC POSITION 

ECC PATTERN 



.-THE ROUTINES ARE CALLED WITH A GO TO THE PROPER ENTRY 
.•AND ALWAYS RETURN TO THE NEXT LOCATION. 



SNAPA- PUT 
MOVE 
JRST 

SNAPRH: PUT 



RGLIST .-SAVE REGISTER LIST 
RGLIST, [-1,, -13 .-GETS ALL REGISTERS 
SNAPS 1 ;G0 SNAPSHOT 
RGLIST ;SAVE REGISTER LIST 



n 



IDFRPM1 MACRO X53B(1?4?) 19:37 1?-S»d-85 Paae 32-1 



MMMi 



._ i , f\l 



n^ 



0315 



0FRPM1 MACRO X53B(12A2) 19:37 12-Sep-85 Page 32-1 
DFRPM1 " " " 

9018 

9019 

9020 

9021 

9022 

9023 

9024 

9025 

9026 

9027 

9028 

9029 

9030 

9031 

9032 

9033 

9034 

9035 

9036 

9037 

9038 

903<^ 

9040 

9041 

9042 

9043 

9044 

9045 

9046 

9047 

9048 

9049 

9050 

9051 

9052 

9053 

9054 

9055 

9056 

9057 

9058 

9059 

9060 

9061 

9062 



MAC 


9-Sep-85 09:49 


GENERAL DEVICE 


I/O DEPENDENT UTILITIES 


001205' 


205 10 00 mm 


MOVSI 


RGLIST,-1 


•GETS 


CONTROLLER STUFF 


001206' 


254 00 00 001216' 


JRST 


SNAPS 1 


DO THE SNAPSHOT 


001207' 


261 17 00 000010 


SNAPDR: PUT 


RGLIST 


•SAVE 


THE LIST 


001210' 


201 10 00 mm 


HOVE I 


RGLIST,-1 


•Q-DRIVE REG'S 


001211' 


260 17 00 001141' 


GO 


GETREG 


•READ 


RP07 REGISTERS 


001212' 


262 17 00 000010 


Wh 


RGLIST 


•RESTORE THE LIST 


001213' 


263 17 00 000000 




•AND f 


■XIT 


001214' 


322 10 00 002105' 


SNAPS: JUMPE 


RGLIST, [RTN] 


•EXIT 


If NOTHiNG DESIRED 


001215' 


261 17 00 000010 


PUT 


RGLIST 


•sa;e 


REGISTER LIST 


001216' 


261 17 00 000001 


SNAPS1: PUT 


1 


•SWE 


AC'S 


001217' 


607 10 00 400000 


SNAPY: TLNN 


RGLIST, (1B0) 


•WANT 


THE CONI 


001220' 


254 00 00 001223' 


JRST 


.>3 


•NO 




001221' 


260 17 00 000727* 


GO 


.CONI 


•YES. 


GET IT 


001222' 


202 01 14 000001 


MOVEM 
XLIST 
LIST 


1,C0NID(DSW) 


•SAVE 




001223' 


607 10 00 000040 


TLNN 


RGLIST, (1B12) 


•UANT 


SBAR 


001224' 


254 00 00 001227' 


JRST 


.•^3 


•NO 




001225' 


260 17 00 000000* 


GO 


RDSf ^ 


•YES. 


READ IT 


001226' 


202 01 14 000002 


HOVEM 


1.S6m,^D(DSU) 


•SAVE 


IT 


001227- 


607 10 00 000020 


TLNN 


RGLIST, (1813) 


•UANT 


STCR? 


001230' 


254 00 00 001233' 


JRST 


.♦3 


•NO 




001231' 


260 17 00 000000* 


GO 


RDSTCR 


•YES. 


READ IT 


001232' 


202 01 14 000003 


MOVEM 


1,STCRD(DSW) 


;SAVE 


IT 


001233' 


607 10 00 000010 


TLNN 


RGLIST, (1814) 


;UANT 


PBAR? 


001234' 


254 00 00 001237' 


JRST 


.+3 


;N0 




001235' 


260 17 00 000000* 


GO 


RDPBAR 


•YES. 


READ n 


001236' 


202 01 14 000004 


MOVEM 


1,PBARD(DSU) 


;SAVE 


IT 


001237' 


607 10 00 000004 


71 M^i 


RGLIST, (1815) 


;UANT 


PTCR? 


001240' 


Ir- 00 00 001243' 


JRST 


.+3 


;N0 




001241' 


260 17 ( 00 000000* 


GO 


RDPTCR 


;VES. 


READ IT 


001242' 


202 01 14 000005 


MOVEM 


I.PTCRD(DSW) 


iSAVE 


IT 


001243' 


607 10 ( )0 000002 


TLNN 


RGLIST, (1816) 


;WANT 


IVR? 


001244' 


254 00 C )0 001247' 


JRST 


.♦3 


•NO 




001245" 


260 17 C :0 000000* 


GO 


DiVrtG 


•YES. 


READ IT 


001246' 


202 01 C 4 000006 


HOVEM 
XLIST 

ysT 

TRNE 


1,IVIRD(DSW) 


•SAVE 


IT 


001247' 


602 10 30 mm 


RGLIST, -1 


•ANY BITS SET ? 


001250' 


260 U 00 001141' 


GO 


GETREG 


•READ 


DRIVE REGISTERS 


001251' 


262 17 00 000001 


m 


1 






001252' 


262 17 00 000010 


RGLIST 


•RESTORE THE LIST 


001253* 


263 17 00 000000 


RTN 


;. 


•EXIT 





SEO 0328 



r 

01 
or 



PAGE 



1 



r 



I 



BFRPM1 MAfRn 1S^R(1?4P) 19:^7 1?-?;pn-8S Pane 3?-? 



r 



1 



0316 



DFRPM1 
DFRPM1 

9063 

9064 

9065 

9066 

9067 

9068 

9069 

9070 

9071 

9072 

9073 

9074 

9075 

9076 

9077 

9078 

9079 

9080 

9081 

9082 

9083 

9084 

9085 

9086 

9087 

9088 

9089 

9090 

9091 

9092 

9093 

9094 

9095 

9096 

9097 

9098 

9099 

9100 

9101 

9102 

9103 

9104 

9105 

9106 

9107 

9108 

9109 

9110 

9111 

9112 

9113 

9114 

9115 

9116 

9117 



MACRO X53B(1242) 19:37 12-Sep-85 Page 32-2 

riAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 



SEO 0329 



Of 
DF 



001254* 261 17 
001255' 200 10 
001256* 254 00 



00 000010 
00 002224* 
00 001267* 



001257* 261 17 00 000010 

001260* 205 10 00 777777 

001261* 254 00 00 001267* 

001262* 261 17 00 000010 

001263* 201 10 00 777777 

001264* 254 00 00 001267* 



001265* 
001266* 
001267* 
001270* 
001271* 
001272* 
001273* 
001274* 
001275* 
001276* 
001277* 



001300* 
001301* 
001302* 
001303* 
001304* 
001305' 
001306* 
001307* 
001310* 



001311* 
001312* 
001313* 
001314* 
001315* 
001316* 
001317* 
001320* 
001321* 
001322* 
001323* 
001324* 
001325* 



322 
261 
261 
261 
261 
261 
200 
607 
254 
200 
260 



10 
17 
17 
17 
17 
17 
02 
02 
00 
01 
17 



00 002105* 
00 000010 
00 000001 
00 000002 
00 000003 
00 000000 
00 000010 
00 400000 
00 001300* 
14 000001 
00 000000* 



205 03 
540 03 
2u.-> 00 
242 00 
616 02 
254 00 
200 01 
260 17 
253 03 



00 
00 
00 
00 
00 
00 
03 
00 
00 



77777Z 

000014 

000100 

777777 

000000 

001310* 

000002 

000000* 

001303* 



037 
205 
540 
201 
616 
254 
200 
260 
242 
253 
262 
262 
^6' 
'6 



00 
03 
03 
00 
02 
00 
01 
17 
00 
03 
17 
17 
17 
17 



00 030242 
00 777760 
00 000014 
00 400000 
00 000000 
00 001321* 
03 000007 
00 001307* 
00 777777 
00 001315* 
00 000000 
" 00 000003 




;HERE IS THE DUMP PORTION OF THE ROUTINES 
DUMPA 



DUMPRH: 



DUMPS: 
DUMPS 1 



DL2A: 



DL2B: 



PUT 

HOVE 

JRST 

PUT 

MOVSI 

JRST 



DUMPDR: PUT 

HOVE I 
JRST 



JUMPE 

PUT 

PUT 

PUT 

PUT 

PUT 

HOVE 

TLNN 

JRST 

HOVE 

GO 

XLIST 

LIST 

HOVSI 

HRR 

HOVSI 

LSH 

TDNN 

JRST 

HOVE 

GO 

AOBJN 

XLIST 

LIST 

PCRL 

HOVSI 

HRR 

HOVE I 

TDNN 

JRST 

HOVE 

GO 

LSH 

AOBJN 

GET 



R6LIST ;SAVE LIST 

RGLIST. [400006., -1 J 

DUMPS 1 ;T0 COMMON CODE 



RGLIST 
RGLIST,-1 
DUMPS 1 

RGLIST 
RGLIST. -1 
DUMPS 1 

RGLIST. [RTN] 

RGLIST 

1 

2 

3 



2. RGLIST 

2.(1B0) 

.+3 

I.CONID(DSU) 

CONIPT 



l'-5 
3.DSU 

0.100 

0.-1 

.♦3 

1.S8ARD(3) 
REGPNT 
3.DL2A 



3.*D-16 

3.DSU 

0.400000 

.♦3 

1,R0D(3) 

REGPNT 

0.-1 

3.DL2B 



RGLIST 



SAVE LIST 
SET UP 0-WORD 
TO COMMON CODE 

SAVE THE LIST 
SET UP Q-UORD 
TO COMMON CODE 

EXIT IF NOTHING OUE'D 
SAVE LIST 
SAVE ACS 



GET Q WORD 

WANT CONI DATA? 

NO 

YES. FETCH IT 

PRINT IT 



-CNT..0 

-CNT..PTR 

A SLIDING MASK 

SHIFT INTO POSITION 

WANT THIS REGISTER? 

NO. 

YES. FETCH IT 

PRINT IT 

LOOP IF NOT DONE 



* OF REGISTERS POSSIBLE 

-CNT.. POINTER TO DSB AREA 

A MASK 

WANT THIS ONE PRINTED ? 

NO 

YES. FETCH IT 

PRINT IT 

SHIFT THE MASK TO THE RIGHT 

LOOP TILL DONE 

RESTORE AC*S 



.•RESTORE 
.•EXIT 



THE LIST 



n(DDM1 MAron *';Tnfn^D> 10-"^7 15-<:on-ft^ Dans T?-T 



r 



t r^t 



"■~"T 



)317 



DFRPM1 MACRO X53B(1242) 19:37 12-Sep-85 Page 32-3 



r 



DFRPM1 MAC 
9118 



9-Sep-85 09:A9 



GENERAL DEVICE I/O DEPENDENT UTILITIES 



SEQ 0330 



DF 
DF 



KrnnMi tttrnn OCTO / i 1/ n \ in.l? 11_r;.__DC ».»_ 77 



._J 



1318 



0FRPM1 
DFRPM1 

9119 
9120 
9121 
9122 
9123 
91 2A 
9125 
9126 
9127 
9128 
9129 
9130 
9131 
9132 
9133 
91 3A 
9135 
9136 
9137 
91 3G 
9139 
91A0 
9K1 
91A2 
9U3 
91AA 



MACRO X53B(12A2) 19:37 12-Sep-85 Page 33 

MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 



SEQ 0331 



DF 
DF 



001331' 
001332' 
001333' 
001 33A' 
001335' 
001336' 
001337' 
001 3A0' 
0013A1' 
001342' 
001343' 
001344' 
001345' 
001346' 
001347* 
001350' 
001351' 



261 
261 
261 
550 
270 
515 
242 
616 
254 
200 
332 
260 
252 
262 
262 
262 
263 



;RE6DMP — PRINTS CONTENTS OF RP07 REGISTERS 

.•THIS PRINTS THE CONTENTS CF RP07 REGISTERS FROM STATUS AREA 

.-THIS PRINTS ONLY THOSE REGISTERS THAT HAVE THEIR SELECTION 

.-BITS SET IN "RGLIST" 

;CALL SEQUENCE: 

GO REGDMP .-CALL THE ROUTINE 

RTN .-RETURNS HERE 



17 
17 
17 
07 
07 
02 
02 
10 
00 
01 
00 
17 
07 
17 
17 
17 
17 



00 000001 
00 000002 
00 000007 
00 000014 
00 002225' 
00 000001 

00 min 

00 000002 
00 001345' 
07 000000 
00 000001 
00 001320* 
00 001337' 
00 000007 
00 000002 
00 000001 
00 000000 



REGDMP: PUT 
PUT 
PUT 
HRRZ 
ADD 
HRLZI 

REGFET: LSH 
TDNN 
JRST 
MOVE 
SKIPE 
60 

RGNXT: AOBJN 
GET 
GET 
GET 
RTN 



1 
2 
X 
X.DSW 

x.c*d-i6,.rod: 

2.1 

RGLIST. 2 

RGNXT 

1.(X) 

1 

REGPNT 

X. REGFET 

X 

2 

1 



SAVE AC1 

SAVE AC2 

AND INDEX REG 

DEVICE START ADDRESS 

-CNT..PTR 

TEST BIT GOES TO BIT-17 

SHIFT TEST BIT INTO POSITION 

DO WE WANT THIS REGISTER PRINTED 

NOPE. TRY NEXT ONE 

FETCH DATA 

PRINT IT IF NON-ZERO 

THE PRINT ROUTINE 

GET NEXT VALUE 

RESTORE THINGS 



.-EXIT 



irtrnnMl uarnn «C7n/l'%y')\ in. 77 11_r.__ac n.__ 7/ 



;i9 



DFRPM1 
DFRPM1 

9U5 
9146 
9H7 
9U8 
9U9 
9150 
9151 
9152 
9153 
91 5A 
9155 
9156 
9157 
9158 
9159 
9160 
9161 
9162 
9163 
9164 
9165 
9166 
9167 
9168 
9169 
9170 
9171 
9172 
9173 
9174 
9175 
9176 
9177 



MACRO X53B(1242) 19:37 12-Sep-85 Page 34 

MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 



SEQ 0332 



;CBTOER — ROUTINE TO FIELD UNEXPECTED CBTO'S 

.-THIS ROUTINE IS USED TO FIELD AND REPORT UNEXPECTED CONTROL 

;BUS TIMEOUTS WHEN LOADING OR READING DEVICE REGISTERS. A 

;CBTO IS UNEXPECTED AFTER THE DEMAND-TRANSFER LOGIC HAS 

.-BEEN TESTED. THIS ROUTINES ONLY OPTION IS TO REPORT 

;THE FACT THAT THE ERROR OCCURED AND SET A FLAG SO THE NEXT 

.-CALL TO THE SCOPE UUO WILL FORCE THE TEST TO LOOP. THIS 

.•ROUTINE MUST ALSO PUT IN A DEVICE REQUEST SINCE THE RH 

;MAY HAVE BEEN GIVEN UP FOR ERROR REPORTING. 



001352* 261 17 00 000000 

001353' 030 00 00 002226' 

001354' 550 00 17 VnU 

001355' 275 00 00 000001 

001356' 037 06 00 000000 



001357' 
001360' 
001361' 
001362' 
001363' 
001364' 
001365' 
001366' 
001367' 
001370' 



030 00 

261 17 

476 00 

260 17 



262 17 
476 00 
476 00 
260 17 
Ixii 17 

263 17 



00 002233' 
00 000000* 
00 001360* 
00 001344* 
00 001361* 
00 000011 
00 000000* 
00 001021' 
00 000000 
00 000000 



;CALL SEQ: 
GO 
; RETURN 

CBTOER: PUT 
TEXT 

UNEXPECTED CBTO 
HRRZ 
SUBI 
PNT6 
TEXT 

THE DIAGNOSIS I 

PUT 

SETOM 

GO 

GET 

SETOM 

SETOM 

GO 

GET 

RTN 



CBTOER ;CALL THE ROUTINE 
.•RETURNS HERE 

;SAVE THE AC 
CASCIZ/ 

AT PC-/] 

0.-1 (P) ;GET THE PC 

1 ;REAL PC 
;PRINT IT 

CASCIZ/ THE TEST WILL LOOP BUT I!! 
S PROBABLY INVALID DUE TO THE CBTO 

SHMODE .-SAVE CURRENT PRINT MODE 

SHMODE .-FORCE REGPNT TO OCTAL 

REGPNT ;GIVES SOME INDICATION OF FAILURE 

SHMODE .-RESTORE USERS PRINTOUT MODE 

ERFLG .-FLAG SO STATUS WILL GET REPORTED 

ERROR ;SET ERROR FLAG TO LOOP 

.REQ ;REQUEST THE DEVICE AGAIN 

.•RESTORE THE AC 



IStQDMI 



MAron trCTQMO/ON 1Q.77 10-C...-BC D>m. TC 



^20 



0FRPM1 
DFRPM1 

9178 

9179 

9180 

9181 

9182 

9183 

91 8A 

9185 

9186 

9187 

9188 

9189 

9190 

9191 

9192 

9193 

91 9A 

9195 

9196 

9197 

9198 

9199 

9200 

9201 

9202 

9203 

920A 

9205 

9206 

9207 

9208 

9209 

9210 

9211 

9212 

9213 

92U 



MACRO X53B(12A2) 19:37 12-Sep-85 Page 35 

MAC 9-Sep-85 09:A9 GENERAL DEVICE I/O D:PENDENT UTILITIES 



SEQ 0333 



OFR 
DPR 



001371' 332 GO 00 000011 
001372' 263 17 00 000000 



001373' A76 00 00 000011 

001 37A' 476 00 00 001365* 

001375' 261 17 00 000000 

001376' 030 00 00 002254' 

001377' 550 00 17 777777 

001400' 275 00 00 000001 

00140*' 037 06 00 000000 



001402' 
001403' 
001404' 
001405' 
001406' 
001407' 
001410' 
001411' 



030 
261 
4/r 
260 
262 
260 
262 
263 



00 
17 
00 
17 
17 
17 
17 
]7 



00 002266' 
00 001363* 
00 001403* 
00 001362* 
00 001404* 
00 001021' 
00 000000 
00 000000 



;CPARER - - FIELD AND REPORT UNEXPECTED CTRL BUS P.E.'S 
.•THIS ROUTINE IS USED TO FIELD AND REPORT CONTROL BUS PARITY 
.•ERRORS THAT HAPPEN TO OCCUR AFTER THE CONTROL BUS PARITY 
.-LOGIC HAS BEEN TESTED AND ASSUMED OPERATIONAL. THE ONLY 
.•OPTION OF THIS ROUTINE IS TO REPORT THE FACT THAT THE 
.•PARITY ERROR OCCURED, AND SET A FLAG SO THAT THE NEXT CALL TO 
;THE SCOPE UUO WILL CAUSE THE TEST TO LOOP. THE ROUTINE WILL 
;ALSO HAVE TO DO A DEVICE REQUEST SINCE THE RH WAS GIVEN UP 
;T0 REPORT THE ERROR. 



.•CALLING SEQ: 

GO CPARER 

t RETURN 

CPARER: SKIPE ERFLG 
RTN 



SETOW ERFLG 
SETOM ERROR 
PUT 

TEXT CASCIZ/ 
UNEXPECTED CONTROL BUSS 



HRRZ 

SU6I 

PNT6 

TEXT 
LOOP BUT THE DIAGNOSIS 
/] 

PUT 

SETOM 

GO 

GET 

GO 

GET 

RTN 



O.-KP) 
0.1 

CASCIZ/ 



SHMODE 

SHMODE 

REGPNT 

SHMODE 

.REQ 





CALL THE ROUTINE 
RETURNS HERE 

ANY ERRORS SO FAR ? 

YES. PROBABLY FROM CBTOER 

AND WERE FALLING THRU THE CODE 

SO DON'T REPORT THIS. 
FLAG SO STATUS WILL GET REPORTED 
SET ERROR FLAG TO LOOP 
SAVE ACO 



PARITY ERROR AT PC-/] 
GET THE PC 

ADJUST FOR PROPER PC 
PRINT IT 
THE TEST WILL 
IS PROBABLY INVALID DUE TO THE P.E. 



SAVE THE PRINTOUT MODE 
SET TO OCTAL PRINTOUT MODE 
PRINT THE DATA 
RECOVER PRINTOUT MODE 
REQUEST THE DEVICE AGAIN 
RESTORE THE AC 
AND EXIT 



■fpMiiRtMMilMRMitMMt*^ 



fkrf%vk*a4 k«A^r\/s 



t e •»** / * n i '^ * 



^ n . "w^ ^ •% 



• or r* •»/ 






DFRPM1 
DFRPM1 



MACRO X53B(12A2) 19:37 12-Sep-85 Page 36 



MAC 



9-Sep-85 09:49 



00U12' 261 17 00 000000 



001413' 
OOKK' 
00U15' 
001416* 

001417' 
001420' 
001421' 
001422' 
001423' 
001424' 
001425' 



031 00 00 002306' 
260 17 00 001552' 
332 00 00 000001 
031 00 01 000000 



00 
00 



031 
201 

260 17 
254 00 
254 00 

262 17 

263 17 



00 
00 
00 
00 
00 
00 
00 



002312' 

000015 

000000* 

001420' 

001420' 

000000 

OCOOOO 



GENERAL DEVICE I/O DEPENDENT UTILITIES 

OPRACT — ROUTINE TO HANDLE OPERATOR ACTION MSGES 

THIS ROUTINE HANDLES THE OPERATOR INTERVENTION MESSAGES PASSED 

TO IT DURING THE CALL IN THE FOLLOWING 3 LINE FORMAT 

DPR ACTION REQ'D IN TEST - XXX DRIVE-X RH-XXX 
MESSAGE PASSED TO THIS ROUTINE DURING THE CALL 
HIT <CR> WHEN READY 



SEQ 0334 



CALL SEQUENCE 

MOVE I 
MS6 /] 

GO 
RTN 



OPRACT: 



UASCIZ/ 
OPRACT 



PUT 

TEXTF CASCIZ/ 

DPR ACT'N REQ'D: /: 

GO IDENTF 

SKIPE 1 

TEXTF (1) 

TEXTF [ASCIZ/ 

HIT <CR> WHEN READY /] 

MOVEI 0.15 

GO CHARIN 

JRST .-2 

JRST .-3 

GET 
RTN 



.-CALL THE ROUTINE 

; HERE WHEN CR IS STRUCK 

.-SAVE THE AC 



.•IDENTIFY THE RH I DRIVE 
.•PRINT THE MSG FROM CALL 



A CR CODE 
GET A KEYSTROKE 
TIMEOUT 
ERROR 

RESTORE THE AC 
EXIT 






22 



0FRPM1 MACRO X53B(12A2) 19:37 12-Sep-85 Page 37 



DFRPM1 MAC 



92AA 

92A5 

92A6 

92A7 

92A8 

92A9 

9250 

9251 

9252 

9253 

925A 

9255 

9256 

9257 

9258 

9259 

9260 

9261 

9262 

9263 

926A 

9265 

9266 

9267 

9268 

9269 

9270 

9271 

9272 

9273 

927A 

9275 

9276 

9277 

9278 

9279 

9280 

9281 



9-Sep-85 09:A9 



001426' 
00U27' 
00H30' 
00U31' 
00U32' 
00U33' 
00U3A' 
00U35' 
00U36' 
00U37' 
OOKAO' 
OOKAV 
00U42' 
00UA3' 
001 AAA* 
001 AA5' 
001 AA6' 
001AA7' 
001A50' 
001A51' 
001A52' 
001A53' 
001 A5A' 
001A55' 
001A56' 
001A57' 
001 A60' 
001A6r 



261 17 00 000000 
261 17 00 000001 

261 17 00 000002 
260 17 00 001565' 
030 00 00 002317' 
135 02 00 002320' 

200 00 00 000002 

201 01 00 000000* 
260 17 00 000000* 
260 17 00 000620* 
030 00 1 01 OOOQOO* 
030 00 00 002321 ' 
135 00 00 002323' 

202 00 1A 000056 
260 17 00 000000* 
603 1A 00 001000 
25A 00 00 001 A5A' 
030 00 00 00232A' 
200 00 1A 00005A 
336 00 00 000000 
200 00 00 002326' 
Ci' 00 00 000002 
037 00 00 0302A2 
260 17 00 0020A6' 

262 17 00 000002 
262 17 00 000001 

262 17 00 QOOOOO 

263 17 00 000000 



GENERAL DEVICE I/O DEPENDENT UTILITIES 

;UNIT — ROUTINE TO COMPLETELY IDENTIFY UNIT 

;GIVS RH#, DRIVE*. DRIVE NAME, SERIAL NUMBER. RP07 U-CODE VERSIONS 

;N0 PRINTING IS FORCED... ALL DATA COMES FROM CORE ... 

.-START PRINTING AT CURRENT LINE AN: END ON NEW LINE 



SEQ 0335 



.•CALLING SEQUENCE: 
i GO UNIT 

• RTN 



UNIT: 



UNIX: 



PUT 

PUT 

PUT 

GO 

TEXT 

LDB 

MOVE 

MOVE I 

GO 

GO 

TEXT 

TEXT 

LDB 

HOVEM 

GO 

TLNF 

JRST 

TEXT 

MOVE 

SKIPN 

MOVE 

PNTSIX 

PCRL 

GO 

GET 

GET 

GET 

RTN 



/] 
16. 



SN= 
16 





1 

2 

IDENT 

CASCIZ/ 

2. [POINT 

0.2 

1.TYPN 

TSCAN 

FFF 

aTYPA(l) 

CASCIZ/ 

0. [POINT .„, 

O.DRVSN(DSW) 

PNTBCD 

DSU.(1B8) 

UNIX 

[ASCIZ/ ID= 

O.PAKID(DSU) 



0.[SIXBIT/?? 



MCODEP 
2 
1 




.-THE CALL 
.•♦1 ALWAYS 

.•SAVE AC'S 



.•IDENTIFY RH AND DRIVE 

R6D(DSU).35] ;6ET TYPE 

.-GET THE DRIVE TYPE 

;GET TABLE ADDRESS 

;D0 A TABLE LOOKUP 

;NCT A VALID DRIVE TYPE... 

;THE CORRECT TYPE MESSAGE 
/] 
R10D(DSW).35J ;6ET SERIAL NUMBER 

.•PUT !N f)S8 AREA 

.•PRIf^T :£RIAL NUMBER 

;UAS THERE A HOME BLOCK AT CONFIG 

;N0... 



/] 



?/] 



.•GET THE I.D. FROM 0S8 AREA 

;IS ID KNOWN ? 

.•NO. PRINT QUESTION MARKS 

.•PRINT IT 

; ADVANCE TO NEXT LINE 

.•PRINT RP07 MICROCODE REV IONS 

.•RESTORE AC'S 



r 



r 



23 



0FRPM1 
DFRPM1 

9282 

9283 

928A 

9285 

9286 

9287 

9288 

9289 

9290 

9291 

9292 

9293 

929A 

9295 

9296 

9297 

9298 

9299 

9300 

9301 

9302 

9303 

930A 

9305 

9306 

9307 

9308 

9309 

9310 

9311 

9312 

9313 

93U 

9315 

9316 

9317 

9318 

9319 

9320 

9321 



MACRO X53B(1242) 19:37 12-Sep-85 Page 38 

MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 



SEQ 0336 



0OU62' 
001463' 
001464' 
001465' 
001466' 
001467' 
001470' 
001471' 
001472' 
001473' 
001474' 
001475' 
001476' 
001477' 
001500' 
001501' 
001502' 
001503' 
001504' 
001505' 
001506' 
001507' 
001510' 
001511' 
001512' 
001513' 
001514' 
001515' 



261 
261 
261 
260 
031 
135 
200 
201 
260 
260 
031 
Oil 
135 
202 
^60 
603 
254 
031 
200 
336 
200 

oy 

037 
260 
262 
262 
262 
263 



17 
17 
17 
17 
00 
02 
00 
01 
17 
17 
00 
00 
00 
00 
17 
14 
00 
00 
00 
00 
00 
01 
01 
17 
17 
17 
17 
17 



00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
01 
00 
00 
14 
00 
00 
00 
00 
14 
00 
00 
00 
00 
00 
00 
00 
00 
00 



000000 

000001 

000002 

001552' 

002317' 

002320' 

000002 

001435* 

001436* 

001437* 

001440* 

002321 • 

002323' 

000056 

000000* 

001000 

001454' 

002324' 

000054 

000000 

002326' 

000002 

030242 

002046' 

000002 

000001 

QOOOOO 

000000 



;UNITF — ROUTINE TO COMPLETELY IDENTIFY UNIT (FORCE PRINT) 
6IVS RH*, DRIVE*. DRIVE NAME, SERIAL NUMBER. RP07 U-CODE VERSIONS 
PRINTING IS FORCED... ALL DATA COMES FROM CORE ... 
START PRINTING AT CURRENT LINE AND END ON NEW LINE 



CALLING SEQUENCE: 

GO UNITF 
RTN 



UNITF 



UNIXF: 



PUT 

PUT 

PUT 

GO 

TEXTF 

LDB 

MOVE 

MOVE I 

GO 

GO 

TEXTF 

TEXTF 

LDB 

MOVEM 

GO 

TLNE 

JRST 

TEXTF 

MOVE 

SKIPN 

MOVE 

PNTSXF 

PCRLF 

GO 

GET 

GET 

GET 

RTN 





1 

2 

IDENTF 

[ASCIZ/ 

2. [POINT 

0,2 

I.TVPN 

TSCAN 

FFF 

8TVPA(1) 

CASCIZ/ 

0. [POINT 

O.DRVSN( 

PNFBCD 

DSU,(1B8 

UNIX 

[ASCIZ/ 

0,PAKID( 



0.[SIXBI 



MCODEP 
2 
1 




;THE CALL 
.•♦1 ALWAYS 

.-SAVE AC'S 



.•IDENTIFY RH AND DRIVE 

/] 

16,R6D(DSW).35] ;6ET TYPE 
GET THE DRIVE TYPE 
GET TABLE ADDRESS 
DO A TABLE LOOKUP 
;NOT A VALID DRIVE TYPE... 
THE CORRECT TYPE MESSAGE 

SN=/] 

16,R10D(DSW).35] 



DSU5 

) 

ID=/] 
DSU) 

T/???/] 



;6ET SERIAL NUMBER 



PUT IN DS6 AREA 

PRINT SERIAL NUMBER 

WAS THERE A HOME BLOCK AT CONFIG 

NO... 

GET THE I.D. FROM DS8 AREA 

IS ID KNOWN ? 

NO. PRINT QUESTION MARKS 

PRINT IT 

ADVANCE TO NEXT LINE 

PRINT RP07 MICROCODE REVIONS 

RESTORE AC'S 



?4 



DFRPM1 
0FRPM1 

9322 
9325 
932A 
9325 
9326 
9327 
9328 
9329 
9330 
9331 
9332 
9333 
933A 
9335 
9336 
9337 
9338 
9339 
93A0 
93A1 
93A2 
9343 
93A4 
9345 



MACRO X53B(1 242) 19:37 12-Sep-85 Page 39 

MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 

.NAMEF - FORCE PRINT TEST NAME 

PRINTS SIXBIT TEST NAME FROM LOG "TSTNAM" FOLLOWED BY 

SUB-TEST NA«E FROM LOCATION "ST. NAM". FOLLOWED 

BY RH t DRIVE NUMBERS, THEN. A CRLF . 



SEQ 0337 



DFRF 
DFRP 



001516' 
001517' 
001520' 
001521' 
001522' 
001523' 
001524- 
001525' 
001526' 
001527' 
001530' 
001531' 
001532' 
001533' 



261 17 
200 00 
322 00 
031 00 
037 01 
336 00 
254 00 
031 00 
200 00 
037 01 
031 00 
26C 17 

262 17 

263 17 



00 000000 
00 000000* 
00 001532' 
00 002327' 
00 000002 
00 000000* 
00 001531' 
00 002332' 
00 001523* 
00 000002 
00 002333' 
00 001462' 
00 000000 
00 000000 



CALL 



.NAMEF 



NAMF1: 
NAMEFX: 



SEQUENCE 
GO 
RTN 

PUT 

MOVE 

JUMPE 

TEXTF 

PNTSXF 

SKIPN 

JRST 

TEXTF 

MOVE 

PNTSXF 

TEXTF 

GO 

GET 

RTN 



.NAMEF 





O.TSTNAM 
0,NAMEFX 
[ASCIZ/ RUNNING 

ST. NAM 
NAMF1 

[ASCIZ/(/] 
O.ST. NAM 



CASCIZ/) 

UNITF 





/] 



;CALL THE ROUTINE 
.•RETURNS +1 ALWAYS 

.•SAVE AC 

;GET TEST NAME 

;EXIT IF ITS 

- /] 

.•PRINT IN SIXBIT 

.•ARE WE IN A SUB-TEST ? 

;N0. THEN DON'T PRINT ANY 

.-GET THE NAME IN SIXBIT 
.•PRINT IT 

.•IDENTIFY UNIT 
.•RESTORE THE AC 
.•AND EXIT 



DFRPM1 
0FRPM1 

93A6 
95A7 
93A8 
93A9 
9350 
9351 
9352 
9353 
935A 
9355 
9356 
9357 
9358 
9359 
9360 
9361 
9362 
9363 
936A 
9365 
9366 
9367 
9368 
9369 



MACRO X53B(1242) 19:37 12-Sep-85 Page 40 



MAC 



9-Sep-85 09:49 



001534' 
001535' 
001536' 
001537' 
001540' 
001541' 
001542' 
001543' 
001544' 
001545' 
001546* 
001547* 
001550' 
P015*'i' 



261 17 
200 00 
322 00 
030 00 
037 00 
336 00 
254 00 
030 00 
200 00 
037 00 
030 00 
26C 17 

262 17 

263 17 



00 000000 
00 001517* 
00 001550' 
00 002327' 
00 000002 
00 001526* 
00 001547* 
00 002332' 
00 001541* 
00 000002 
00 QQ2333' 
00 00U26* 
GO 000000 
00 000000 



GENERAL DEVICE I/O DEPENDENT UTILITIES 

.NAME - PRINT TEST NAME 

PRINTS SIXBIT TEST NAME FROM LOG "TSTNAM" FOLLOWED BY 

SUB-TEST NAME FROM LOCATION "ST. NAM". FOLLOWED 

BY RH t DRIVE NUMBERS, THEN, A CRLF. 



SEQ 0338 



CALL 



.NAME: 



NAM1: 
NAMEX; 



SEQ: 

GO 

RTN 

PUT 

MOVE 

JUMPE 

TEXT 

PNTSIX 

SKIPN 

JRST 

TEXT 

MOVE 

PNTSIX 

TEXT 

60 

GET 

RTN 



.NAME 



0. TSTNAM 
0, NAMEX 
CASCIZ/ RUNNING 

ST. NAM 
NAM1 

[ASCIZ/(/] 
O.ST. NAM 



.-CALL THE ROUTINE 
.•RETURNS +1 ALWAYS 

.-SAVE AC 

;GET TEST NAME 

;EXIT IF ITS 

- /] 

.•PRINT IN SIXBIT 

;ARE WE IN A SUB-TEST ? 

;N0. THEN DON'T PRINT ANY 



CASCIZ/) 

UNIT 





/] 



.GET THE NAME 
.-PRINT IT 



IN SIXBIT 



.•IDENTIFY THE UNIT 
.•RESTORE THE AC 
:AND EXIT 



0326 



DFRPM1 
DFRPM1 

9370 

9371 

9372 

9375 

9374 

9375 

9376 

9377 

9378 

9379 

9380 

9381 

9382 

9383 

938A 

9385 

9386 

9387 

9388 

9389 

9390 



MACRO X53B(1242) 19:37 12-Sep-85 Page 41 

MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 



SEQ 0339 



Dl 
Dl 



IDENTF -- PRINTS CURRENT DRIVE AND CONTROLLER NUMBER 

PRINTOUTS ARE FORCED 

THIS ROUTINE PRINTS "DRIVE-X RH-XXX" WITHOUT ANY LINE CONTROL. 
THIS ROUTINE IS PRIMARILY USED TO IDENTIFY THE 
DEVICE IN THE OPERATOR INTERVENTION MESSAGES. 
CALLING SEQ: 

60 IDENTF ;CALL THE ROUTINE 

RTN ;THE RETURN 



001552' 261 17 00 000000 

001553' 031 00 00 002334* 

001554' 200 00 00 000015 

001555' 037 01 00 000001 

0015'^6' 031 00 00 002336' 

001 55 r 135 00 00 002337' 

001560' 242 00 00 000002 

001561' 037 03 00 000001 

001562' 037 01 00 000026 

001563' 262 17 00 000000 

001564' 263 17 00 000000 



IDENTF: 



PUT 

TEXTF 

MOVE 

PNT1F 

TEXTF 

LDB 

LSH 

PNT3F 

PFORCE 

GET 

RTN 



[ASCiZ/ DRIVE-/] 
0, DRIVE 



SAVE ACO 



;6ET DRIVE NUMBER 

.•PRINT IT 
CASCIZ/RH-/D 

0. [POINT 7.MBCN.9J ;6ET DEVICE CODE 
0.2 .-POSITION FOR PRINTING 

.•PRINT IT 

.-FORCE PRINTOUT 
.-RES TOR THE AC 



Ir\coDMl MAron «C7d/10/.ON 1Q.77 10.CAr..PC D^n^ /.D 



0327 



0FRPM1 MACRO X53B{12A2) 19:37 12-Sep-85 Page 42 

DFRPMI MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 



SEQ 0340 



OF 
DF 



9391 

9392 

9393 

939A 

9395 

9396 

9397 

9398 

9399 

9A00 

9A01 

9A02 

9A03 

940A 

9405 

9406 

9407 

9A08 

9A09 



;IDENT — PRINTS CURRENT DRIVE AND CONTROLLER NUMBER 

.•PRINTOUTS ARE -NOT- FORCED 

.-THIS ROUTINE PRINTS "DRIVE-X RH-XXX" WITHOUT ANY LINE CONTROL, 
;CALLING SEQ: 

; GO IDENT ;CALL THE ROUTINE 

RTN ;THE RETURN 



001565* 
001566' 
001567' 
001570' 
001571' 
001572' 
001573' 
001 57A' 
001575' 
001576' 



261 17 
030 00 
200 GO 
037 01 
030 00 
135 00 
2A2 00 
037 03 

262 17 

263 17 



00 000000 
00 00233A' 
00 000015 
00 000000 
00 002336* 
00 002337' 
00 000002 
00 000000 
00 000000 
00 000000 



IDENT; 



PUT 

TEXT 

MOVE 

PNT1 

TEXT 

IDS 

LSH 

PNT3 

GET 

RTN 



.-SAVE ACO 

CASCIZ/ DRIVE-/] 

0. DRIVE ;GET DRIVE NUMBER 

.•PRINT IT 
[ASCIZ/RH-/] 
0. [POINT 7.MBCN.93 ;GET DEVICE CODE 



0.2 



POSITION FOR PRINTING 
PRINT IT 
RESTOR THE AC 



l\tt>BII1 



ikran WCTQ/Iiy.l\ 1Q.77 ll-c..._OC d-^„^ /.T 



iMilMM 



DFRPM1 
0FRPM1 

9A10 

9A11 

9412 

9AT 

94U 

9A15 

9A16 

9417 

9418 

9419 

9420 

9421 

9422 

9423 

9424 

9425 

9426 

9427 

9428 

9429 

9430 

9431 

9432 

9433 

9434 

9435 

9436 

9437 

9438 

9439 

9440 

9441 

9442 

9443 

9444 

9445 

9446 

9447 

9448 

9449 

9450 

9451 

9452 

9453 

9454 

9455 

9456 

9457 

9458 

9459 

9460 

9461 

9462 

9463 

9464 



MACRO X53B(1242) 19:37 12-Sep-85 Page 43 

MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 



r 



SEO 0341 



OF 
OF 



001577' 
001600* 
001601' 
001602' 
00160?' 
001604- 
001605' 
001606' 
001607' 
001610' 
001611' 
001612' 
001613' 
0016K' 
001615' 
001616' 
001617' 



332 00 

260 17 

261 17 
261 17 
402 00 
260 17 
260 17 
260 17 
260 17 
336 00 
260 17 

255 00 

256 00 
404 00 
20? 00 
3i' 00 
254 00 



00 03C'^V 
00 OOU/3* 
00 000000 
00 000001 
00 000001 
00 000000* 
00 001221* 
00 001277* 
00 000000* 
00 030041 
00 001600* 
00 000000 
00 002340' 
00 002341' 
00 002101' 
00 000000* 
00 001622' 



001620' 031 00 00 002342' 
001621' 260 17 00 001611* 



001622' 

001622' 
001623' 
001624' 
001625' 
001626' 
001627' 
001630' 
001631' 
001632' 
001633' 
001634' 
001635' 
001636' 



030 


00 


476 


00 


476 00 


256 


00 


554 


00 


435 


00 


405 


00 


434 


00 


256 00 


11^ ?? 8 


Itl 


17 


12 1 



00 002355' 
00 000011 
00 001374* 
00 002370' 
00 000000 
00 000001 
00 007777 
00 002371 ' 
00 OOOQOO 
00 502370' 
00 000001 
000 
104 



.•PARSER — ADDITIONAL CPU PARITY ERROr< SERVICE 
.-THIS ROUTINE IS CALLED BY THE SUBROUINE PACKAGE AUTOMATICALLY 
.-WHEN THE PROCESSOR IS INTERRUPTED WITH A MEMORY PARITY ERROR. 
;IT FURNISHES SOME ADDITIONAL USEFUL INFORMATION. (A) RH STATUS 
;(B) CHANNEL STATUS. IF RUNNING ON A KLIO IN EXEC MODE, AND 
;THE PARITY ERROR OCCURES NOT IN THE PROGRAM AREA BUT THE 
.-DATA BUFFER. THE ERROR WILL BE CLEARED AND THE DIAGNOSTIC 
.•WILL BE FORCED TO LOOP ON THE ERROR. 

•THE ROUTINE IS MADE KNOWN TO THE SUBROUTINE PKG 

;BY EXECUTING THE FOLLOWING INSTRUCTIONS AT START UP TIME. 



I 



PARSER: SKIPE 
GO 
PUT 
PUT 

SETZM 



GO 

SKIPN 
60 
JFCL 
XCT 
AND 
MOVEM 
CAML 
JRST 
TEXTF 
ERROR NOT IN 



HOVE AC.CJRST PARSER3 
MOVEM AC.(D0LLARS)ITRX1 

USER 

FFF 



1 

1 

GETL06 

.CONI 

CONIPT 

LOGPNT 

KLFLG 

FFF 



IN USER MODE 

YES 

SAVE AC'S 



n 



C700400,,0] 
0. [17. 77^777] 
XYZ# 
0.BUF1A 
CORECT 
CASCiZ/ 
DATA BUFFE."^ 



AREA. 



60 



FFF 



GET LOGOUT AREA fOR CHANNEL 

GET CONI DATA 

PRINT CONI DATA 

PRINT LOGOUT DATA 

KL-PROCESSOR ? 

NO 

YES 

READ ERROR ADDR REGISTER 

SAVE 22 BIT ADDRESS 

SAVE 

IN BUFFER AREA 

YES. WE CAN CONTINUE 



CANNOT CONTINUE 
.•FATAL OUT 



CORECT: TEXT 
ERROR iS IN THE 



/J 



CASCIZ/ 

DATA BUFFER, DIAG WILL CONTINUE 



SETOM 

SETOM 

XCT 

HLRZ 

lORI 

AND I 

I OR 



ERFLG 

ERROR 

C700240,,0] 

0,0 

0,1 

0,7777 



WILL r.cj 
TO LGc'l 



;FLAG SO STATUS 
SET ERROR FLAG 
CONI APR 

SWAPS FLAGS TO RIGHT 
INCLUDE PI CHANNEL 

V .SAVE FLAGS AND PI 

0, [700200,, 120000] ;CLR AND RE-ENABLE 
.-DOES THE CONO 

[700240,, 0] ;ANOTHER CONI 



REPORTED 



I 



aiTRCHi 



.•DISMISS THE INTERRUPT 



rtcBrmi MAron «C7Dril/.')\ 10.T7 l')-c.>..-ac Dm,.;. // 



0329 



r — - 

0FRPM1 


MACRO X53B(1242) 19:37 12-SeD-85 Page 44 






0FRPM1 


MAC 


9-Sep-85 09:49 GENCRAL DEVICE 


I/O DEPENDENT UTILITIES 


9465 






•ASBUFF — ASSIGN DATA BUFFERS 




9466 






•ASSIGNS 2 BUFFERS 'BUFIA" % AND 


'BUF2A" (POINTERS) 


9467 






•THEY ARE A FULL TRACK LENGTH (INCLUDING HEADERS AND DATA) 


9468 






•THE SIZE IS SET UP TO BE A FULL 


TRACKS yORTH OF DATA ON 


9469 
9470 
9471 






•THE DRIVE HAVING THE MOST DATA 


PER TRACK (RP07). 






•CALL SEQUENCE 






9472 






60 


AS9UF 




9473 
9474 
9475 
9476 
9477 






; mn 




;RTN+1 ALWAYS 


001637' 


000000 012653 BFRSZ: *D129*' 


'D43 


;A FULL TRACK WORTH OF RP07 DATA 


001640' 


261 17 00 000000 / 


\SBUF : PUT 





.•SAVE AC'S 


9478 


001641' 


261 17 00 000001 


PUT 


1 




9479 


001642' 


200 00 00 001637' 


MOVE 


O.BFRSZ 


;A FULL TRACK WORTH 


9480 
9481 
9482 


001643' 


202 00 00 000000* 


MOVEM 


O.BUFSIZ 


.•SIZE OF A BUFFER EXcC MODE 


001644' 


332 00 00 001616* / 


\SCMN: SKIPE 


BUFIA 


.•SKIP IF NO BUFFER ASSIGNED 


9483 


001645' 


254 00 00 001651' 


JRST 


.>4 




9484 


001646' 


200 01 00 001643* 


HOVE 


1,BUFSIZ 


;GET SIZE OF BUFFER 


9485 


001647' 


260 17 00 000000* 


GO 


.GTCOR 


.•GET A BUFFER AREA ASSIGNED 


9486 
9487 
9488 


001650' 


202 01 00 001644* 


HOVEM 


1. BUFIA 


;SAVE THE STARTING ADDRESS 


001651' 


332 00 00 000000* 


SKIPE 


BUF2A 


.•SKIP If NO BUFFER ASSIGNED YET 


9489 


001652' 


254 00 00 001656' 


JRST 


.♦4 




9490 


001653' 


200 01 00 001646* 


HOVE 


1,BUFSIZ 


;GET SIZE OF BUFFER 


9491 


001654' 


260 17 00 001647* 


GO 


.GTCOR 


;GET A BUFFER AREA ASSIGNED 


9492 
9493 
9494 


001655' 


202 01 00 001651* 


HOVEM 


1.8UF2A 


.•SAVE THE STARTING ADDRESS 






;CLEAR FIRST BUFFER 




9495 












9496 


001656' 


200 01 00 001637' 


HOVE 


1, BFRSZ 


.-GET SIZE OF BUFFER 


9497 


001657' 


270 01 00 001650* 


ADD 


1, BUFIA 


.-ADD START ADDR 


9498 


001660' 


370 00 00 000001 


m 


1 


.•AC1 POINTS TO LAST LOC 


9499 


001661' 


540 00 00 001657* 


0,BUF1A 


;0.,DEST-1 


9500 


001662' 
001663' 


504 00 00 001661* 


HRL 


0.BUF1A 


.•SOURCE., DEST"1 


9501 


350 00 00 000000 


AOS 





.•SOURCE, -DE ST 


9502 


001664' 


402 00 1 00 001662* 


SETZM 


aBUFU 


.•CLEARS FIRST LOCATION 


9503 
9504 
9505 


001665' 


251 00 01 000000 


BLT 


0.(1) 


; CLEARS MEMORY FOR FIRST BUFFER 






;CLEAR THE SECOND BUFFER 




9506 












9507 


001666' 


200 01 00 001637' 


HOVE 


1. BFRSZ 


;GET SIZE OF BUFFER 


9508 


001667' 


270 01 00 001655* 


ADD 


1.BUF2A 


.•ADD START ADDR 


9509 


001670' 


370 00 00 000001 


m 


1 


;AC1 POINTS TO LAST LOC 


9510 


001671' 


540 00 00 001667* 
504 00 00 001671* 




0.BUF2A 


.•0.,DEST-1 


9511 


001672' 


m 


0.BUF2A 


.•SOURCE.. DEST-1 


9512 


001673' 


350 00 00 000000 


AOS 




.•SOURCE, jDEST 


9513 


001674' 


402 00 1 00 001672* 


SETZM 


a6UF2A 


.•CLEAR FIRST LOCATION 


9514 
9515 
9516 
9517 


001675' 


251 00 01 000000 


BLT 


0,(1) 


.•CLEARS MEMORY FOR SECOND BUFFER 


xtw- 


262 17 00 QQ0Q01 
262 17 00 000000 


i 


i ^' 


.•RESTORE AC'S 


9518 


001700* 


263 17 00 000000 


WrTi^ 




.•EXIT 


9519 













SEQ 0342 



DF 
DFI 



r\r nruii 



Mtrnri WCID / 1 1.' *) \ in. 77 1')_r--_OC o._> /C 



| W i I t* 



0350 



0FRPM1 
DFRPM1 

9520 

9521 

952: 

9523 

9524 

9525 

9526 

9527 

9528 

9529 

9530 

9531 

9532 

9533 

953A 

9535 

9536 

9537 

9538 

9539 

95A0 

95A1 

95A2 

95A3 

954A 

9545 

9546 

9547 

9548 

9549 

9550 

9551 

9552 

9553 

9554 

9555 

9556 

9557 

9558 

9559 

9560 

9561 

9562 

9563 

9564 

9565 

9566 

9567 

9568 

9569 

9570 

9571 

9572 

9573 

9574 



MACRO X53B(1242) 19:37 12-Sep-85 Page 45 



MAC 



9-Sep-85 09:49 



001701' 
001702' 
001703' 
001704' 
001705' 
001706' 
001707' 
001710' 
001711' 
001712' 
001713' 
001714' 
001715' 
001716' 
001717' 
001 72C' 
001721' 
001722' 
001723' 
001724' 
001725' 
001726' 
001727' 
001730' 
001731' 
001732' 



00 
17 
17 



255 
261 
261 
332 00 
254 00 
037 07 
334 00 
254 00 
350 00 
306 00 
254 00 
306 00 
254 00 
306 00 
254 00 
254 00 
260 17 
037 10 
200 01 
33? 00 
l:>- 00 
607 01 
402 00 
336 00 
350 00 
254 00 



00 
00 
00 
00 
00 
00 
00 
00 
17 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 



000000 

000000 

000001 

000705* 

001760' 

000003 

000000 

001760' 

777776 

000123 

001721' 

000163 

001721' 

000023 

001721' 

001722' 

001767' 

000002 

030046 

001624* 

001733' 

004000 

002076' 



00 002076' 
17 777~~ 



00 



776 
001762' 



001733' 
001734' 
001735' 
001736' 
001737' 
001740' 
001741' 
001742' 
001743' 
001744' 



402 00 
476 00 
607 14 
254 00 
603 14 
254 00 
603 01 
254 00 
350 00 
402 00 



00 001724* 
00 002076' 
00 000004 
00 001743' 
00 000400 
00 001743' 
00 004000 
00 001 745' 
17 777776 
00 002076' 



001745' 603 01 00 010000 



GENERAL DEVICE I/O DEPENDENT UTILITIES 

BRANCH — ROUTINE TO LOOP OR BRANCH OR ERROR 
THIS ROUTINE LOOKS AT "ERROR" AND LOOP ON ERROR SUITCH 
TO DETERMINE WETHER OR NOT TO LOOP OR CONTINUE THE TEST 
SEQUENCE. (BELL AND HALT ON ERROR ARE IMPLEMENTED HERE ALSO) 
CALL SEQUENCE 



SEO 0343 



r 

DFI 
DFI 



BRANCH: 



BRT; 
BRS: 



GO 

RTN+1 
RTN+2 
RTN+3 

JFCL 

PUT 

PUT 

SKIPE 

JRST 

TTALTM 

SKI PA 

JRST 

AOS 

CAIN 

JRST 

CAIN 

JRST 

CAIN 

JRST 

JRST 

GO 

SWITCH 

HOVE 

SKIPE 

JRST 

TLNN 

SETZM 

SKIPN 

AOS 

JRST 



BRANCH 




1 

AL TF 
BREXO 



BREXO 

0,123 

BRT 

0,163 

BRT 

0,023 

BRT 

BRS 

RSTAT 

1,C0NSW 

ERROR 

BR1 

1,L00PER 

FREEZE* 

FREEZE 

-2(P) 

BREX 



CALL THE ROUTINE 
ALTMODE STRUCK 
LOOP 
CONTINUE 

CAN PUT A REAEASE HERE FOR DEBUG. 
SAVE ACS 

ALTMODE PREViOUSLr DETECTED ? 

YES. EXIT RTN+1 

ALTMODE ? 

NO ALTMODE... 

YES EXIT 

BUMP RETURN ADDRESS 

UPPER CASE-S ? 

YES 

LOWER CASE-S ? 

YES 

CONTROL-S ? 

YES 

NO 

YES. PRINT RUNTIME STATISTICS 

READ SWITCHES 

GET SWITCH VALUES 

HAVE AN ERROR THIS TIME ? 

YES 

NO.* IS LOOP ON ERROR SET ? 

NO. STOP THE LOOPING 

YES. HAVE WE BEEN LOOPING ? 

NO. BUMP THE RETURN 

YES. TAKE THE LOOP RETURN 



HERE BECAUSE WE HAVE AN ERROR THIS SEQUENCE 

THERE IS CODE HERE TO PREVENT LOPING OR CONTINUING IN A LOOP IF THE 

DRIVE GOES OFF-OFF LINE OR. BECOMES UNSAFE FOR USE 



BR1: SETZM 
SETOM 
TLNN 
JRST 
TLNE 
JRST 

BRLPCK: TLNE 
JRST 

BRNLP: AOS 

SETZM 



ERROR 

FREEZE 

DSW.(1B15) 

BRNLP 

DSW,(1B9) 

BRNLP 

1.L00PER 

.+3 

-2(P) 

FREEZE 



.TEST FOR BELL ON ERROR 
TLNE 1.DING 



CLEAR ERROR FLAG 

ASSUME WE WANT TO LOOP 

IS DRIVE STILL ON-LINE ? 

NO ... DON'T ALLOW TO LOOP 

HAS PROGRAM MARKED DEVICE NOT USEABLE 

YES. DON'T ALLOW A LOOP 

DO WE WANT LOOP ON ERROR ? 

YES WE DO. 

NO. ADJUST RETURN FOR NORMAL 

CLEAR OUR LOOP CONTROL FLAG 



;WANT BELL ON ERROR ? 



1 r: 



3331 



DFRPM1 
DFRPM1 

9575 
9576 
9577 
9578 
9579 
9580 
9581 
9582 
9583 
958A 
9585 
9536 
9587 
9588 
9589 
9590 
9591 
9592 
9593 
9594 
9595 
9596 
9597 
9598 



MACRO X53B(12A2) 19:37 12-Sep-85 Page 45-1 

MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 



r 



SEQ 0344 



DF 
DF 



001 7<6' 037 01 00 000007 



PNTCIF 7 



;YES. 



FORCE A BELL 



.•HANDLE HALT ON ERROR. (WITH ABILITY TO CONTINUE) 



001747' 
001750' 
001751' 
001752' 
001753' 
001754' 
001755' 
001756' 
001757' 



001760' 
001761' 
001762' 
001763' 
001764' 
001765' 
001766' 



607 01 
254 00 
332 00 
254 00 
254 04 
254 00 
476 00 
260 17 
254 00 



476 00 
260 17 
402 00 
402 00 
262 17 

262 17 

263 17 



00 002000 
00 001762' 
00 030037 
00 001755' 
00 001754' 
00 001762' 
00 000000* 
00 001135* 
00 001762' 



TLNN 
JRST 
SKIPE 
JRST 
HALT 
JRST 
USHLT: SETOM 
GO 
JRST 



.•EXIT CODE 



00 001704* 
00 001055' 
00 000011 
00 001733* 
00 000001 
00 000000 
00 000000 



BREXO: 
6REX: 



SETOM 

GO 

SETZM 

SETZM 

GET 

GET 

RTN 



1.ERS1 

BREX 

USER 

USHLT 

.+1 

BREX 

CCFLG 

CCCHK 

BREX 



ALTF 

.REL 

ERFLG 

ERROR 

1 





OP 



HALT ON ERROR SELECTED ? 

NO. THEN GO TO THE EXIT CODE 

YES. USER OR EXEC MODE ? 

....USER MODE 

EXEC MODE .... 

IN CASE OF A CONTINUE 

SIMULATE A CNTL-C BEING TYPED 

THIS WILL PROCESS THE CTRL-C 

CONTINUE WAS TYPED... DO JUST THAT. 



;SET THE ALTMODE STRUCK FLAG 

.•RELEASE RH IF NECESSARY 

.•GUARANTEE OUR ERROR FLAGS ARE CLEAR 



.•RESTORE AC'S 
.•EXIT 



332 



DFRPM1 
DFRPM1 

9599 

9600 

9601 

9602 

9603 

960A 

9605 

9606 

9607 

9608 

9609 

9610 

9611 

9612 

9613 

96U 

9615 

9616 

9617 

9618 

9619 

9620 

9621 

9622 

9623 

962A 

9625 

9626 

9627 

9628 

9629 

9630 

9631 

9632 

9633 

963A 

9635 

9636 

9637 

9638 

9639 



MACRO X53B(12A2) 19:37 12-Sep-85 Page 46 

MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 

;RSTAT — FORCE PRINT RUNTIME STATUS FOR PROGRAM 

.-THIS IS CALLED FROM "BRANCH". IT PRINTS SOME RUNTIME 

.•STATISTICS TO GAIN CONFIDENCE THAT PROGRAM IS PLUGGING 

.-ALONG. YOU GET .... 

:. - RUNTIME HH:MM:SS 

1 - TEST (SUBTEST) NAMES 

- #-READS. #-WRITES, ^-POSITIONS 

- CURRENT CYL, SURF, SECT 



SEQ 0345 



001767' 
001770' 
001771' 
001772' 
001773' 
001774' 
001775' 
001776' 
001777' 
002000' 
002001 ' 
002002' 
002003' 

002004' 
002005' 
002006' 
002007' 
002010' 
002011' 
002012' 
002013' 
002014' 
0020^5' 
002016' 
002017' 
002020' 



261 
260 
260 
037 
031 
200 
260 
031 
200 
260 
031 
200 
260 



17 
17 
17 
01 
00 
00 
17 
00 
00 
17 
00 
00 
17 



260 
Oi 



00 000000 
00 001516' 
00 000000* 
00 030242 
00 002372' 
14 002347 
00 000000* 
00 002373' 
14 002346 
00 001775* 
00 002375' 
14 002355 
00 002000* 



031 00 
200 00 



17 
00 



200 00 
260 17 



031 00 
200 00 
260 17 
037 01 
037 01 

262 17 

263 17 



00 002377' 
14 002410 
00 002003* 
00 002401' 
14 002411 
00 002006* 
00 002403' 
14 002412 
00 002011* 
00 030242 
00 030242 
00 000000 
00 000000 



.•CALL SEQUENCE; 
GO 
RTN 



RSTAT: 



CYL=/J 



PUT 

GO 

GO 

PCRLF 

TEXTF 

MOVE 

GO 

TEXTF 

MOVE 

GO 

TEXTF 

MOVE 

GO 

TEXTF 

MOVE 

GO 

TEXTF 

MOVE 

GO 

TEXTF 

MOVE 

GO 

PCRLF 

PCRLF 

GET 

RTN 



RSTAT 





.NAMEF 

RUNTMF 



;CALL THE ROUTINE 
;RETURNS+1 ALWAYS 



.•PRINT NAME OF TEST AND DEVICES 
.•PRINT PROG. RUNTIME 



[ASCIZ/RD=/3 

0,RDCNT(DSW) 

POCDEF ; PRINT IN DECIMAL 

CASCIZ/ WT=/] 

O.WTCNT(DSW) 

POCDEF 

CASCIZ/ POS=/] 

0,POSCNT(DSW) 

POCDEF 

CASCIZ/ 



;GET * OF READS 



;GET * OF WRITES 
.•PRINT IN DECIMAL 



;GET n 
.•PRINT 



OF POSITIONS 
* OF POSITIONS 



O.CCYL(DSW) .-GET CURRENT CYLINDER 
POCDEF .-PRINT IN OCTAL AND DECIMAL 
CASCIZ/ SURF=/] 

O.CSURFCDSW) ;GET CURRENT SURFACE 
POCDEF .-PRINT IN BOTH OCTAL AND DECIMAL 
CASCIZ/ SECT=/3 

O.CSECT(DSW) ;GET CURRENT SECTOR 
POCDEF .-PRINT IN BOTH OCTAL AND DECIMAL 
.-PRINT A CRLF 

; RESTORE THE AC 

.-AND EXIT 






333 



J 



0FRPM1 
DFRPM1 

96A0 

9641 

96A2 

96A3 

964A 

9645 

9646 

9647 

9648 

9649 

9650 

9651 

9652 

9653 

9654 

9655 

9656 

9657 

9658 

9659 

9660 

9661 

9662 

9663 

9664 

9665 

9666 

9667 

9668 

9669 

9670 

9671 

9672 

9673 

9674 

9675 

9676 

9677 

9678 



MACRO X53B(1242) 19:37 12-Sep-85 Page 47 

MAC 9-Sep-85 09:49 GENERAL DEVICE I/O DEPENDENT UTILITIES 



SEO 0346 



002021' 260 17 1 13 002023' 

002022' 263 17 00 000000 

002023' 000000 002105' 

002024' 000000 002105' 

002025' 000000 002105' 

002026' 000000 002033' 

002027' 000000 002105' 

002030' 000000 002105' 

002031' 000000 002105' 

002032' 000000 002105' 



002033' 261 17 00 000001 

002034' 201 01 00 000161 

002035' 260 17 00 000454' 

002036' 334 00 00 000000 

002037' 506 01 14 000057 

002040' 2v' 01 00 000162 

002041' 260 17 00 000454' 

002042' 334 00 00 000000 

002043' 542 01 14 000057 

002044' 262 17 00 000001 

002045* 263 17 00 000000 



MCODE - - ROUTINE TO RETURN MICRCODE VERSION 

THIS READ THE MICROCODE VERSION FOR THE SELECTED DRIVE AND 

STORES THE VALUE IN THE DSB AREA AT OFFSET 'WCDVER". 



CALL SEQUENCE: 

GO MCODE 
RTN 



MCODE : 



GO 
RTN 



aMCDTAB(Xl) 



MCDTAB: [RTN] 
[RTN3 
[RTNJ 
MCRD 
[RTN] 
[RTNJ 
[RTN] 
[RTN] 



CALL THE ROUTINE 
ALWAYS RTN+1 

DISPATCH TO ROUTINE ACCORDING TO DRIVE 
AND THEN EXIT 

RP04 

RP06 

SPARE 

RP07 (600 MB) 

RM03 

SPARE 

RP20 (TOPS10) 

RP20 (T0PS20) 



;READ 8080 VERSION INTO MCDVER(DSU) 'LEFT' 
.•READ 2901 VERSION INTO MCDVER(DSW) 'RIGHT' 
.•REVISION NUMBERS ARE HEXIDECIMAL 



MCRD: 



PUT 
MOVE I 
GO 

SKI PA 
HRLM 

MOVE I 
GO 

SKI PA 
HRRM 

GET 
RTN 



1 

1,161 

RDRAM 

I.MCDVER(DSW) 

1.162 
RDRAM 

1.«CDVER(DSU) 

1 



SAVE AC 

RAM ADDR FOR 8080 REV 

READ IT .. 

SOME SORT OF ERROR. DON'T STORE 

PUT IN DSW AREA 

RAM ADDR FOR 2901 REV 

READ IT .. 

SOME SORT OF ERROR. DON'T STORE 

PUT IN DSW AREA 

RESTORE AC 
AND EXIT 



53A 



DFRPM1 
DFRPM1 

9679 
9680 
9681 
9682 

9685 
9686 
9687 
9688 
9689 
9690 
9691 
9692 
9693 
969A 
9695 
9696 
9697 
9698 
9699 
9700 
9701 
9702 
9703 
970A 
9705 
9706 
9707 
9708 
9709 
9710 
9711 
9712 
9713 
97H 
9715 
9716 
9717 



MACRO X53B(12A2) 19:37 12-Sep-85 Page AS 

MAC 9-Sep-85 09:A9 GENERAL DEVICE I/O DEPENDENT UTILITIES 



SEQ 0347 



0020A6' 
002047* 

002050' 
002051 ' 
002052' 
002053' 
002054' 
002055' 
002056' 
002057' 

002060* 
002061 • 
002062' 
002063' 
002064' 
00206S ' 
002066' 
002067' 
002070' 
002071 ' 
002072' 
002073' 



002074' 
002075' 



260 17 1 13 002050' 
263 17 00 000000 



000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 

336 00 
254 00 



002105' 
002105' 
002105* 
002060' 
002105' 
002105' 
002105' 
002105' 



261 17 
030 00 
554 00 
260 17 
030 00 
550 00 
260 17 
or 00 
2o^ 
263 



17 
17 



14 
00 
00 
00 
14 
00 
00 
14 
00 
00 
00 
00 



000057 

002074' 

000000 

002405' 

000057 

000000* 

002411' 

000057 

002065* 

030242 

000000 

000000 



030 00 
263 17 



00 002416* 
00 000000 



NO ERRORS DETECTED 

PROGRAM BREAK IS 002427 
CPU TIME USED 00:05.120 

116P CORE USED 



.-MCODEP — PRINTS RP07 MICROCODE VERSIONS FROM *MCDVER(DSW) * 
;IN HEX, NOT FORCED. 8080 FROM LEFT. 2901 FROM THE RIGHT SIDE 
.-PRINT AT CURRENT LINE AND THEN ADVANCE TO NEXT LINE 



; CALLING SEQUENCE: 
; GO MCODEP 
RTN 



MCODEP: 



MCPT8: 



MCP7: 



MCVER: 
/] 



GO 
RTN 

[RTN3 

crtn: 

CRTN3 
HCP7 

crtn: 

[RTN3 
[RTN3 
CRTNJ 

SKIPN 

JRST 

PUT 

TEXT 

HLRZ 

GO 

TEXT 

HRRZ 

GO 

PCRL 

GET 

RTN 

TEXT 

RTN 



END 



aMCPTB(Xl) 



CALL THE ROUTINE 
ALWAYS 

DISPATCH Br DEVICE TYPE 
AND EXIT 

RP04 

RP06 

SPARE 

RP07 (600 MB) 

RM03 

SPARE 

RP20 (TOPS10) 

RP20 (T0PS20) 



HANDLE SPECIALLY IF = 
NOT KNOWN. ZERO IS NONSENSE 



MCDVER(DSW) 

MCVER 



[ASCIZ/ 8080 U-CODE REV-,0 

O.MCDVER(DSW) ;GET 8080 VERSION NUMBER 

.-PRINT IN HEX 
2901 U-CODE REV-/J 

.-GET 2901 VERSION 

.-PRINT IN HEX 

.-ADVANCE TO NEXT LINE 

.-RESTORE AC 

.-EXIT 



PNTHEX 
[ASCIZ/ 
O.MCDVER(DSW) 
PNTHEX 



[ASCIZ/ 8080 AND 2901 U-CODE VERSIONS -UNKNOWN- 
;EXIT 



r 



OFRFfll 
DFRPM1 

ALTF 

ASBUF 

ASCHN 

ATAWT 

BACKUP 

BFRSZ 

BLKSI2 

BLOKO 

BL0K1 

BR1 

BRANCH 

BREX 

BREXO 

BRLPCK 

BRNLP 

BRS 

BRT 

BSYCNT 

BUF1A 

BUF2A 

BUFSIZ 

CBASE 

CBTOER 

CBUFF 

CCCHK 

' CCCLR 
CCFLG 

I CCSET 
CCWPTR 

1 CCYL 
CHAR IN 
CHINIT 
CHSEL 
CLRATA 
CONID 
CONIPT 
CONSW 
CORECT 
CPARER 
CSECT 
CSURF 
CWF«T 
CURHD 
CyRHDC 
CWRTD 
CWRWD 
OCER 
OCERM 
OCVLD 
DELAY 
OEVREL 
OEVREQ 
OIAGCR 
DING 
0L2A 



MACRO X53B(1242) 19:37 12-Sep-85 Page S-1 
MAC 9-Sep-85 09:49 SYHBOL TABLE 



SEO 0348 



001 760 

001640 

001644 

000655 

000120 

001637 

000036 

000041 

000054 

001733 

001701 

001762 

001760 

001741 

001743 

001722 

001721 

000445 

001664 

001674 

001653 

000760 

001352 

002103 

001756 

001065 

001755 

001030 

000037 

00?410 

0u'42r 

000072' 

000754' 

000647' 

000001 

001606' 

030046 

001622' 

001371' 

002412 

002411 

000052' 

000044 ' 

000047' 

000056' 

000054- 

000216' 

000225 ' 

000130' 

000543' 

001063' 

001034' 

001134' 

010000 

001303* 



ext 
ent 

ent 
ext 



ent 



ext 
ext 
ext 
ext 
ext 
ent 
ext 
ext 
ext 
ext 
ext 



ext 

ext 
ext 
ent 

ext 



ent 



ext 
ext 
ext 
ext 
ext 



ent 
ext 
ext 
ext 
spd 



DL2B 

DLYA 

DLYB 

DLYC 

DRIVE 

DRVCLR 

DRVSN 

DSU 

DUnPA 

DUMPDR 

DUnPRH 

DUMPS 

DUMPS 1 

ERFLG 

ERROR 

ERSTOP 

FCVCE 

FFF 

FREE 

FREEZE 

GENCCU 

GET 

GETL 

GETLOG 

GETREG 

GO 

HALT 

HUNG 

IDENT 

IDENTF 

INITPI 

lOUAIT 

ITRCHI 

IVIRD 

JEN 

KLFLG 

L12W 

L12X 

LASTC 

LCYCE 

LDIVRG 

LDR12 

LDR12A 

LDRGOO 

LDRG03 

LDRG04 

LDRG05 

L0RG11 

LDR612 

LDSBAR 

LDSTCR 

LOGPNT 

LOOPER 

MBCN 

HCO 



262740 



260740 
254200 



254500 



001315' 
000550' 
000556' 
000562' 
000015 

800174' 
00056 
00014 
001254' 
001262' 
001257' 
001265' 
001267' 
000011 
001763' 
002000 
000146* 
001621* 
000000 
002076* 
000102* 
000000 
001146' 
001604' 
001141' 
000000 
000000 
000000 
001565' 
001552' 
001070' 
OOOOGO 
030104 
000006 
000000 
030041 
000644 
000645 
000040 
000637 
000763 
000633 
)00637 
)00525 
)00642 
?00651 
00377 
00441 
000634 
000066 
000122 

.4000 

000016 
000743' 



ent 



ent 
ent 
ent 
ent 



ext 
spd 
ext 
ext 
e*t 

ext 



ext 
ent 



ext 
ent 
ent 
ent 
ext 



ext 
ext 



ext 
ext 
ext 
ext 
ext 
ext 
ext 
ext 
ext 
spd 



MCI 

HCDTAB 

HCDVER 

MCODE 

HCODEP 

MCP7 

HCPTB 

MCRD 

MCVER 

MM1 

MMODE 

HSTCLR 

MTB1 

MTB2 

NAM1 

NAMEFX 

NAMEX 

NAMF1 

NORET 

NORPT 

OFSCNT 

OPRACT 

OVROFF 

P 

PAKACK 

PAKID 

PARSER 

PBARD 

PCRL 

PCRLF 

PFORCE 

PI 

PI SAVE 

PISYOF 

PISYQN 

PNFBCD 

PNT1 

PNT1F 

PNT3 

PNT3F 

PNT6 

PNTBCD 

PNTCIF 

PNTHEX 

PNTHUF 

PNTSIX 

PNTSXF 

POCDEC 

POCDEF 

POSADR 

POSCNT 

PSDN 

PTCRD 

PUT 

ROD 



037000 
037040 
037040 



037040 
037040 
037140 
037140 
037300 

037040 

037540 
037000 
037040 



261740 



000734' 




R10D 


0000^ 7 




02023' 
00057 




R14D 


000023 






RID 


000010 




02021 ' 
02046' 


ent 


R2D 


)00011 
)00015 




ent 


R6D 




02060* 




RAME1 


)00536' 
)02351 




02050' 
02033' 




RCCNT 






RCLCNT 


)02353 




02074' 




RD7 


)00575' 




00615' 




RDCNT 


002347 




00602' 


ent 


RDIVRG 


001245* 


ext 


00726' 


ent 


RDL 


001161* 




00605' 




RDPBAR 


001235* 


ext 


00623' 




RDPTCR 


001241* 


ext 


01547' 




RDRAM 


000454* 


ent 


01532' 




RDRGOO 


000000 


ext 


01550' 




RDRG01 


001041* 


ext 


8Jl'j: 




RDRG02 


001046* 


ext 


ext 


RDRG03 




ext 


mt 


ext 


RDRG04 


000662* 


ext 




RDRG05 


000000 


ext 


)01412' 


ent 


RDRG06 


000000 


ext 


)00077' 




RDRG07 


000576* 


ext 


)00017 




RDRG10 


000000 


ext 


)00243' 


ent 


RDRG11 


000000 


ext 


)00054 




RDRG12 


000000 


ext 


)01577' 


ent 


RDRG13 


00000 


ext 


)00004 




RDRG14 


00513* 


ext 


)30242 




RDRG15 


00000 


ext 


)30242 




RDRG16 


00000 


ext 


)00026 




RDRG17 


00000 


ext 


)00004 


spd 


RDSBAR 


01225' 


ext 


002077' 




RDSTCR 


01231' 


ext 


001076' 


ent 


REAL T I 


00000 


spd 


001106' 


ent 


REGDMP 


01331' 


ent 


001500' 


ext 


REGFET 


01337' 




000000 




REGPNT 


01405' 


ext 


000001 




RELESE 


00257' 


ent 


000000 




RETRY 


00000 


ext 


000001 




RETRYF 


00000 


ext 


000000 




RGLIST 


)00010 




001444' 


ext 


RGNXT 


)01345' 




000000 




RH10 


)00000 




002070' 


ext 


RH20 


)00001 




000001 




RHSER 


)02217' 


ext 






RSTAT 


)01767' 






RTN 


263740 000000 




0(0000, 


ext 


RTNCTL 


000411' 


ent 




ext 


RUNTME 


00000 


ext 


loWsl 




RUNTMF 


01771' 


ext 




SBARD 


00002 




8!8o? 


ext 


SBZ 


00057* 

OOOOQ 

01123* 

001116* 






SERV 


ext 


)00000 




SETEX 




)00007 




SETTRP 


ent 



r 



DFRPM1 MACRO X53B(1242) 19:37 12-Sep-85 Page S-2 
DFRPM1 MAC 9-Sep-85 09:49 SYMBOL TABLE 



SEQ 0349 



SHMODE 


001406' 


ext 


SSUUO 


030515 




SKCNT 


002350 




.CONI 


15^605 


ext 


SNAPA 


001 20T 


ent 


.CONO 


)01015 


ext 


SNAPDR 


001207' 


ent 


.CONSO 


)00741 
)016S4 


ext 


1 SNAPRH 


001204' 


ent 


.GTCOR 


ext 


SNAPS 


001214' 


ent 


.NAME 


)01534 


ent 


SNAPS 1 


001216' 




.NAMEF 


WISU; 


ent 


j SNAPY 


001217' 




.OF SET 


)00431 


ent 


i SRCNT 


002352 




.PIOFF 


>00776 


ent 


iST.NAK 


001544' 


ext 


.PION 


)01007 


ent 


! START 


000173' 


ext 


.RECAL 


)00275 


ent 


STATCK 


000672' 


ent 


.REL 


001055 


ent 


i STATUP 


000712' 




.REQ 


)01021 


ent 


' STAX1 


000707' 




.REOCM 


)01037 




j STAX2 


000710' 




.PHf • R 


)00767 


ent 


iSTAX3 


00071 1 ' 




.%V-k 


)00321 


ent 


ISTCRD 


000003 




.SKcfl 


000355 


ent 


iSTNU 


000704* 










ISVECT 


000747' 


ent 








SVICUA 


002100' 










SWITCH 


037400 000002 










TEXT 


030000 000000 










TEXTF 


031000 000000 










TRAP 


000140' 










TRAPF 


000152' 










i TSCAN 


001472' 


ext 








; TSTNAM 


001535' 


ext 








TTALTM 


037340 000003 










TVPA 


001474' 


ext 








TYPN 


00H71' 


ext 








UNIT 


Ou'426' 


ent 








UNITF 


001462' 


ent 








UNIX 


001454' 










UNIXF 


001510' 










USEPI 


001061' 


ext 








USER 


030037 










USHLT 


001755' 










UUOA 


001134' 










UUOTST 


001125' 


ent 








VARFLG 


000704' 


ext 








UDSRD 


002357 










UDSWRT 


002356 










WRTCK 


000006' 










yTCNT 


002346 










X 


000007 










XI 


000013 










XDX 


000661 ' 










' KHK 


000013' 










:XFCK1 


000014' 










XFSTI 


000033 










XFST2 


000034 










XFST3 


000035 
000000' 




i ' 






XFSTRT 


ent 








XYZ 


00210T 










y 

i 
i 


000006 























■^f 



37 



DFRPW? 

9718 
9719 
9720 
9721 
9722 
9723 

9725 
9726 
9727 
9728 
9729 
9730 
9731 
9732 
9733 
9734 
9735 
9736 
9737 
9738 
9739 
9740 
9741 
9742 
9743 
9744 
9745 
9746 
9747 
9748 
9749 
9750 
9751 
9752 
9753 
9754 
9755 
9756 



MACRO X53B(1242) 19:37 12-Sep-85 Page 1 



MAC 



000000' 



9-Sep-85 09:49 



INTERRUPT SERVICE. ECC CORRECTION. RETRY ROUTINES 

TITLE DFRPM2 

SUBTTL INTERRUPT SERVICE. ECC CORRECTION. RETRY ROUTINES 

RELOC 

SEARCH DEFINS.NONSYM 

ENTRY APPLY. ECCCOR.IOWAIT.LOGERR. RETRY. RHSER.SERV 

;THESE ARE FOUND IN THE MAINLINE 

EXTERN BSYCNT. ERROR. HUNG. N0RET.N0RPT,PT0TAL.RETRyF,SHMO0E 
EXTERN USEPI 

.•THESE ARE FOUND IN THE SUPPORT PACKAGE DFRPM1 

EXTERN .REQ 
;THESE ARE FOUND IN MAPOUT SUPPORT FILE 

EXTERN GETENT.PRGENT 
.•THESE ARE FOUND IN THE GENERAL DISK FILE 

EXTERN ADCON.CWHD 
.•THESE ARE FOUND IN PRINT UTILITIES 

EXTERN PSDN.RUNTHE 
; THESE ARE FOUND IN THE RH20 SUPPORT FILE 

EXTERN .CONI,CCWPNT.CONIPT.FFF.GETLOG.LDRG00.LDRG04.LOGPNT 
EXTERN RDRG01.RDRG04.REGPNT 

.•THESE ARE FOUND IN PROGRAM I/O AND UTILITY FILE 

EXTERN . NAME.. OFSET..RECAL,.REL..RHCLR,. SEEK.. SRCH.DRVCLR 
EXTERN DU«PA, DUMPS. IDENT.RTNCTL.SNAPA.XFSTRT 



SEO 0350 



I 



18 



DFRPM2 
0FRPM2 

9757 

9758 

9759 

9760 

9761 

9762 

9763 

976A 

9765 

9766 

9767 

9768 

9769 

9770 

9771 

9772 

9773 

977A 

9775 

9776 

9777 

9778 

9779 

9780 

9781 

9782 

9783 

978A 

9785 

9786 

9787 

9788 

9789 

9790 

9791 

9792 

9793 

979A 

9795 

9796 

9797 

9798 

9799 

9800 

9801 

98C: 

9803 
osn/ 

9805 
9806 
9807 
9808 
9809 
9810 
9811 



MACRO X53B(1242) 19:37 12-Sep-85 Page 2 
MAC 9-Sep-85 09:49 INTERRUPT 



SERVICE. ECC CORRECTION, RETRY ROUTINES 



SEQ 0351 



000000' 261 

000001 ' 261 

000002* 261 

000003' 261 



17 
17 
17 
17 



00 000000 
00 000001 
00 000002 
00 000007 



OOOOOA* 201 07 00 037200 



000005' 402 00 00 000000* 
000006' 332 00 00 000000* 
000007' 254 00 00 000032* 



000010' 
00001 1 • 
000012' 
000013' 
000014' 
000015' 
000016' 



000017* 
000020' 
000021 • 
000022* 
000023* 
000024' 
000025* 
000026* 
000027* 
000030* 
000031 * 



00 
00 



332 
254 

200 00 
607 00 
254 00 
402 00 
254 00 



336 00 
254 OC 
476 00 
621 14 
350 00 
260 ^7 
623 14 
350 00 
402 00 



402 
25 



8? 



4 00 













8 



00 000000* 
00 000055* 
00 030046 
00 004000 
00 000017* 
00 000000* 
00 000055* 



00 000015* 
00 000055' 
00 000010* 
00 010000 
14 00?36? 
00 001025' 
00 010000 
14 002363 
00 000021* 
00 QQ0Q17* 
00 000055* 



;IOWAIT — WAIT UNTIL 10 COMPLETES AND RETURN 

.•LOOPS yAITING FOR BSYCNT TO GO TO ZERO. MONITORS FOR HUNG 10 

.•WITH A GROSS TIMER. 

NOTE - IN USER MODE (OR EXEC MODE WITH "USEPI"=0) THIS 
ROUTINE POLES FOR AN INTERRUPT CONDITION. 
IN EXEC MODE IF YOU'RE USING THE PI SYSTEM IT 
WAITS FOR "BSYCNT" TO GO TO ZERO. THIS SHOULD 
TAKE PLACE WHEN "RHSER" RECEIVES THE INTERRUPT. 



.-CALL SEQUENCE; 
GO 
RTN 



lOWAIT: 



PUT 
PUT 
PUT 
PUT 



lOWAIT 




1 
2 
X 



.•CALL THE ROUTINE 
.•RETURNS HERE 



;SAVE AC'S 



DFRP^ 
DFRPP< 

1033 
103< 
103< 
103< 
1034 
103< 
103< 
1034 
1034 
103< 
1034 
1035 



;INIT GROSS SOFTWARE TIMER 
I owl: MOVE I X,*D16000 
.•START OF GROSS TIMING LOOP. 



BZRO: 



SETZM 
SKIPE 
JRST 



HUNG 

BSYCNT 

BSYNO 



;A GROSS TIMER 
WAITS FOR BSYCNT=0 



INIT THE DEVICE HUNG FLAG 

BSYCNT=0 ? 

NO. GO MARK TIME 



;flSYCNT=0. I/O DONE. DECIDE IF WE WANT TO RETRY 



SKIPE 

JRST 

MOVE 

TLNN 

JRST 



NORET 

lOEX 

O.CONSW 

O.LOOPER 

BZR01 



SETZM RETRYF 
JRST lOEX 



IS RETRY INHIBITED ? 
YES. NO RETRY TAKES PLACE 
GET CONSOLE SWITCHES 
ARE WE LOOPING ON ERROR ? 
NO. RETRY IS POSSIBLE 
YES. CLEAR RETRY FLAG 
YES. NO RETRY .... 



.•RETRY IS POSSIBLE. SEE IF IT HAS BEEN REQUESTED AND GO AND DO IT. 



BZR01 



SKIPN 

JRST 

SETO,M 

TLZ 

AGS 

GO 

TLZE 

AOS 

SETZM 

SETZM 

JRST 



RfcTRVf 

lOEX 

NORET 

OSW.C'S) 

RETRtUiDSW) 

RETRY 

DSW,(1B5) 

RETFAL(DSW) 

NORET 

RETRYF 

lOEX 



»S /»»'Y RETRY OPERATION REQUIRED ? 
WO RtTRY NEEf^EC. THEN WE'RE DONF 
KEEP RL7.'^V FRUM :;cTTING REn)R:i,EO 
A RETRY SUCCES /^AIL BIT. (0=SUCCESS) 
COUNT THl ATTEMPTED 9ETRY 

YES AiTEMPr RETPv 

TEST FOR RETRY FAIL AND CLEAR BIT 
COUNT THE FACT THAT RETRY HAS FAILED 
ALLOW RETRY TO OCCUR AGAIN 
CLEAR RETRY FLAG 
AND EXIT 



.•STILL WAITING FOR I/O TO FINISH... WE POLE IN USER MODE. 



I 0339 





















DFRPM2 


MACRO X53B(1242) 19:37 12-SeD-85 Page 


2-1 








DFRPM2 


MAC 


9-Sep-85 09:49 


INTERRUPT SERVICE, ECC 


CORRECTION, RETRY ROUTINES 


9812 






;WE ALSO POLE 


IN EXEC MODE 


IF WE'RE NOT USING THE PI SYSTEM 


9813 
















981 A 


000032' 


332 00 00 030037 


BSYNO 


SKIPE 


USER 






•USER OR EXEC MODE ? 


9815 


000033' 


254 00 00 000036' 




JRST 


.+3 






•USER MODE... 60 POLE 


9816 


000034' 


332 00 00 OOOOOO* 




SKIPE 


USEPI 






•EXEC MODE.... USING PI'S ? 


9817 


000035' 


254 00 00 000044' 




JRST 


lORL 






•YES. 


9818 


000036' 


255 00 00 OOOOOO 




JFCL 








•NO PI'S MUST POLE 


9819 


000037' 


260 17 00 OOOOOO* 




60 


• CONI 






•DO A CONI 


9820 


000040' 


202 01 14 000001 




MOVEM 


i,coNiD(Dsw) ; 


•SAVE FOR PGM DEBUG 


9821 


000041 ' 


602 01 00 004210 




TRNE 


1,4210 






■RAE+DONE+ATA? 


9822 


000042' 


254 00 00 000053' 




JRST 


lORZ 






•TIME TO SHUT DOWN (INTERRUPT CONDITION) 


9823 


000043' 


255 00 00 OOOOOO 




JFCL 








•NOT YET 


982A 


000044' 


402 00 00 000001 


lORL: 


SET2M 


1 






•CLEAR AC1 


9825 


000045' 


260 17 00 OOOOOO* 




GO 


RDRG04 






•READ ATA REG (KILL TIME) 


9826 


000046' 


254 00 00 000044' 




JRST 


.-2 






■HANDSHAKE FAILURE 


9827 


000047' 


254 00 00 000044' 




JRST 


.-3 






•PARITY ERROR 


9828 


000050' 


367 07 00 000005' 




SOJG 


X.8ZR0 






•BUMP COUNT JUMP IF NOT DONE 


9829 
















9830 
9831 
9832 






.-HERE 


IF OUR SOFTWARE TIMER 


RAN OUT DRIVE IS HUNG DOING I/O 


000051 • 


255 00 00 OOOOOO 




JFCL 






;HUNG DEVICE 


9833 
983A 
9835 


000052' 


476 00 00 000005* 




SETOM 


HUNG 




;FLA6 HUNG DEVICE 






;I/0 [ 


)ONE FOR 


SOME REASON. 


PROCESS THE INTERRUPT... 


9836 
















9837 


000053' 


260 17 00 000112' 


ICRZ: 


GO 


INTPCS 






[HANDLES INTERRUPT PROCESSING .... 


9838 


000054' 


254 00 00 000005' 




JRST 


BZRO 






;6ET OUT THE NORMAL PATH BECAUSE 


9839 
















: RETRY MAY NEED SOME CLEANUP 


9840 






.-EXIT 


CODE 








9841 
















9842 


000055' 


2oJ 17 00 000007 


lOEX: 


GET 


X 




.•RESTORE 


9843 


000056' 


262 17 00 000002 




GET 


2 






9844 


000057' 


262 17 00 000001 




GET 


1 






9845 


000060' 


262 17 00 OOOOOO 




GET 









9846 


000061 ' 


263 17 00 OOOOOO 




RTN 






;AND EXIT 


9847 
















9848 



















r 



SEQ 0352 



Df 
DF 



nr Ph . 



I r 



"■"1 



0340 



0FRPM2 
DFRPM2 

98A9 

9850 

9851 

9852 

9853 

9854 

9855 

9856 

9857 

9858 

9859 

9860 

9861 

9862 

9863 

9864 

9865 

9866 

9867 

9868 

9869 

9870 

9871 

9872 

9873 

9874 

9875 

9876 

9877 

9878 

9879 

9880 

9881 

9882 

9883 

9884 

9885 

9886 

9887 

9888 

9889 

9890 

989. 



MACRO X53B(1242) 19:37 12-Sep-85 Page 3 



1 



MAC 



9-Sep-85 09:49 



000062' 000 00 00 000000 
000063' 261 17 00 000001 



000064' 260 17 00 000037* 



000065 ' 
000066' 
000067' 
000070' 
000071 ' 
000072' 
000073' 
000074' 
000075' 
000076' 



261 
261 
261 
261 
200 
434 
256 
202 
404 
261 



000077' 260 17 00 000112' 



000100' 
000101' 
000102' 
000103' 
000104' 
0001 05' 
000106' 
000107* 
000110' 

00011 r 



262 
200 
434 
256 
262 
262 
262 
262 
262 
254 



INTERRUPT SERVICE, ECC CORRECTION, RETRY ROUTINtS 

;RHSER — FIELDS RH INTERRUPTS 

;THIS ROUTINE IS VECTORED TO THRU (EPT+(4*CHAN#+4)), 



SEQ 0353 



DF 
DF 



RHSER: Z 

PUT 1 



;PC & FLAGS SAVED HERE 
.-SAVE AC 



;THIS CONI SAVES KO DATA.. IT'S HERE ONLY TO MINIMIZE ERROR IH 
.-MEASURING THE TIMES IN THE SEEK TESTS ... 

60 .CONI ; TIMES WILL BE MEASURED IF DOING SEEK TESTS 

.•RESUME NORMAL INTERRUPT SERVICE CODE 



17 00 000000 


18? 


17 00 000040 


17 00 030113 


PUT 


17 00 03011A 


PUT 


01 00 002461 ' 


MOVE 


01 00 000016 


lOR 


00 00 000001 


XCT 


01 00 002455' 


MOVEM 


01 00 002462' 


^ 


17 00 000001 





40 

$SVUU0 

$SVUPC 

1,CDATAI 0,1] 

1,MBCN 

1,DAIUD# 

1,[7785!7B17] 

1 



SAVE AC 

SAVE CURRENT UUO 

SAVE BUFFERED UUO 

SAVE BUFFERED UUO PC 

BUILD A DA'AI INSTRUCTION 

INCLUDE CONTROLLER NUMBER 

EXECUTE DATAI 

NEED IN CASE OF AN RAE ... 

SAVE REGISTER AND DRIVE FIELD 

SAVE RESULTS 



.-ROUTINE TO PROCESS THE INTERRUPT CONDITION 

GO INTPCS .-THIS DOES ALL INTERRUPT PROCESSING 
.-CODE TO RESTORE AND DISMISS RH INTERRUPTS 



17 00 000000 


RHSERX: GET 





•GET THE OATAO ARGUMENT 


01 00 002463' 


HOVE 


l.CDATAO 0,0] 


;BUILD A DATAO 


01 00 000016 




1,MBCN 


•INCLUDE CONTROLLER 


00 00 000001 


■ -'^Sx' - 


1 


;D0 THE DATAO 


17 00 030114 


■ '^Kt ' 


SSVUPC 


[RESTORE UUn PC 


17 00 030113 


■■'tt; ' 


SSVUUO 


[RESTORE USER UUO 


17 00 000040 


'^»: ■ 


40 . 


[RESTORE CURRENT UUO 


17 00 000000 


■ W ^ 





[RESTORE ACO 


17 00 000001 


GE 


1 


[AND ACl 


12 1 00 000062' 


jENa 


RHSER 


[DISMISS THE INTERRUPT 



I p- 



0341 



0FRPH2 
0FRPM2 

9892 

9893 

989A 

9895 

9896 

9897 

9898 

9899 

9900 

9901 

9902 

9903 

9904 

9905 

9906 

9907 

9908 

9909 

9910 

9911 

9912 

9913 

99U 

9915 

9916 

9917 

9918 

9919 

9920 

9921 

9922 

9923 

9924 

9925 

9926 

9927 

9928 

9929 

9930 

9951 

993? 



MACRO X53B(1242) 19:37 12-Sep-85 ?age 4 



r 



MAC 



iB(1242) 19:3^ 12-Sep-85 Page 4 

9-Sep-85 09:49 INTERRUPT SERVICE. ECC CORRECTION, RETRY ROUTINES 



SEQ 0354 



Df 



INTPCS — PROCESS INTERRUPTS OF ANY TYPE 
THIS IS CALLED FROM EITHER "RHSER" OR "lOWAIT' 
OF THE INTERRUPT CONDITIONS THAT MIGHT OCCUR 



TO PROCESS ALL 



* 



CALL SEOENCE; 
60 
RTN 



000112' 261 

000113* 261 

000114' 261 

000115' 261 



17 
17 
17 
17 



00 000000 
00 000001 
00 000002 
00 000000* 



INTPCS: PUT 
PUT 
PUT 
PUT 



INTPCS 




1 
2 
NORPT 



.-CALL THE ROUTINE 
;RTN*1 

.•SAVE AC'S 



.•SAVE STATE OF NO-REPORT SWITCH 



DO ALL REQUIRED I/O RIGHT NOW. TEST FOR ERROR AND RELEASE RH IF NECESSARY. 
FROM HERE ON IN ALL REGISTERS ARE IN CORE. NO FURTHER NEED TO DO DEVICE 
I/O. THE ERROR AND INTERRUPT CONDITIONS HAVE BEEN CLEARED IN "IPCSIO" 
THE FLAGS "ERFLG" AND "ERROR" HAVE BEEN SET IF AN ERROR CONDITION HAS 
OCCURRED DURING THE LAST TRANSFER. SOME OF THIS ERROR CHECKING CODE IS 
REDUNDANT WITH WHAT IS DONE IN "SERV" BUT IT MAKES FOR CLEANER STRUCTURE 
DURING ON-LINE DEBUG OPERATIONS SINCE THE DEVICE IS RELEASED IMMEDIATELY. 



000116' 260 17 00 000527' 



GO 



IPCSIO 



.-PERFORM ALL NECESSAR I/O 



LOG ERRORS IN THE DSB AREA. THIS MERELY BUMPS THE VARIOUS TOTALS 
COUNTERS IN THE DS8 AREA FOR THE VARIOUS TYPES OF DRIVE DETECTED 

ERRORS. NO REPORTING IS DONE. THESE ARE JUST RAW COUNTERS 

THIS IS DONE HERE TO KEEP IT AS A SEPARATE FUNCTION IN THE STRUCTURE 
OF THE PROGRAM SO IT'S EASILY MODIFIABLE. 



000117' 33? 00 00 000011 
000120' 2c.' 17 00 000631' 



SKIPE 
GO 



ERFLG 
LOGERR 



;ANY ERROR SO FAR ? 
;YES. LOG THEM. 



THIS CODE CALLS A SUBROUTINE THAT DECIDES IF A PARTICULAR ERROR IS TO 

THE ROUTINE MERELY CHECKS COMBINATIONS OF HARDWARE SOFTWARE STATUS AND 

SETS OR CLEARS "HORPV'. WHEN N0RPT=1, THE ERRORS ARE NOT REPORTED. TYPICALLY. 

WE DON'T REPORT ALL OF THE DATA ERRORS THAT OCCUR DURING READ RETRY. 

ALL ERRORS "WILL" BE REPORTED IF THE "PALERS" SWITCH IS SET. 



000121' 260 17 00 001136' 



GO 



RMEDIA 



;SEE IF ANY ERROR REPORTS CAN BE INHIBITED 



M«lM*Hli*W«MltM(M » 



03A2 



DFRPM2 
DFRPM2 

9933 

993A 

9935 

9936 

9937 

9938 

9939 

99A0 

99A1 

99A2 

99A3 

99AA 

9945 

99A6 

99A7 

9948 

9949 

9950 

9951 

9952 

9953 

9954 

9955 

9956 

9957 

9958 

9959 

9960 

9961 

9962 

9963 

9964 

9965 

9966 

9967 



MACRO X53a(1242) 19:37 12-Sep-85 Page 5 



MAC 



9-Sep-85 09:49 



INTERRUPT SERVICE, ECC CORRECTION. =tETRY ROUTINES 

NOW PROCESS THE ACTUAL INTERRUPT AND REPORT ERRORS If REQUIRED. SOWE ERROR 
PRINTOUTS CAN'T BE INHIBITED: 

- RAE'S 

- UNEXPECTED INTERRUPTS FRO« DRIVE UNDER TEST 

- UNEXPECTED INTERRUPTS FRO« DRIVES 'NOT" BEING TESTED 

- INTERRUPTS FROH RH20 AND NO INTERRUPT CONDITIONS PRESENT 

- HUNG DEVICE (SOFTWARE TINEOUT ON SOME OPERATION) 

THE PROGRAM BUSY COUNTER IS ALSO MAINTAINED IN THIS ROUTINE ALONG WITH 
REQUESTS FOR RETRIES. 



SEO 0355 



000122' 260 17 00 000134' 



000123* 332 00 00 000011 

000124' 476 00 00 000000* 

000125' 402 00 00 000011 

000126' 402 00 00 000052* 



GO 



SERV 



.•FINISH SERVICING THE INTERRUPT 



CLEAN UP ALL THE FLAGS 

LATCH 'tRFLG" IN "ERROR" AND THEN RESET "ERFLG" 

MAKE SURE HUN6=0 



SKIPE 
SETOM 
SETZM 
SETZM 



ERFLG 
ERROR 
ERFLG 
HUNG 



.-NOW UE CAN GET OUT 



000127' 
000130' 
000131' 
000132' 
000133' 



262 
262 
262 
262 
263 



)7 
17 
17 
17 
17 



00 
00 
00 
00 
00 



000115* 

000002 

000001 

000000 

000000 



GET 
GET 
GET 
GET 

RTN 



NORPT 
2 
1 




ERROR THIS TIME ? 
YES. LATCH IT 
CLEAR ERROR FLAG 
CLEAR HUNG CONDITION. 



.•RESTORE STATE OF NO-REPORT FLAG 
.•RESTORE THE SAVED AC'S 



;AND EXIT 



r" 



r 



03«3 



DFRPM2 
DFRPM2 

9%8 

9969 

9970 

9971 

9972 

9973 

9974 

9975 

9976 

9977 

9978 

9979 

9980 

9981 

9982 

9983 

998A 

9985 

9986 

9987 

9988 

9989 

9990 

9991 

9992 

9993 

9994 

9995 

9996 

9997 

9998 

9999 

10000 

10001 

10002 

10003 

10004 

10005 

10006 

10007 

10008 

10009 

10010 

10011 

10012 

10013 

10014 

10015 

10016 

10017 

10018 

10019 

10020 

10021 

W022 



MACRO X53B(1242) 19:37 12-Sep-85 Page 6 

MAC 9-Sep-85 09:49 INTERRUPT SERVICE, ECC CORRECTION, RETRY ROUTINES 

SERV — SERVICE ALL INTERRUPT CONDITIONS 

THIS ROUTINE FILTERS THROUGH THE STATUS AND PRINTS THE VARIOUS ERROR 
REPORTS THAT CO«E FROM INTERRUPT CONDITIONS. MANY MUCH OF THE PRINTING 
DONE IN THIS ROUTINE IS DEPENDENT ON THE STATE OF THE '>JORPT" FLAG, 
BUT SOME ERROR REPORTS CANNOT BE INHIBITED 

- RAE'S 

- UNEXPECTED INTERRUPTS (DONES OR ATA'S) FROM DRIVES UNDER TEST 

- UNEXPECTED ATTENTIONS FROM DRIVES "NOT" BEING TESTED 

- SPURIOUS INTERRUPTS (NO RH20 INTERRUPT CONDITION PRESENT) 

- HUNG DEVICE (SOFTWARE TIMEOUT ON SOME OPERATION) 

THIS CODE ALSO HANDLES THE DECREMENTATION OF 'BSYCNT" AS REQUIRED. 



SEQ 0356 



000134' 
000135* 
000136' 
000137- 
000140' 
000141' 
000142^ 
000143" 
000144' 
000145' 
000146' 
000147' 
000150* 
000151' 
000152' 
000153' 
000154' 
000155' 
000156' 
000157' 
000160' 



000161* 
000162* 
000163' 
000164* 
000165* 
000166* 
000167* 
000170* 
000171' 
000172' 



17 
17 
17 



261 
261 
261 
200 03 
332 00 
254 00 
200 01 
602 01 
254 00 
602 01 
254 00 
60? 01 
23- 00 
030 00 
260 17 
030 00 
260 17 
037 00 
260 17 
350 00 
254 00 



332 00 
254 00 
030 00 
260 17 
030 00 
260 17 
037 00 
260 ^7 
350 00 
254 00 



00 000001 
00 000002 
00 000003 
00 000030* 
00 000126* 
00 000302* 
14 000001 
00 004000 
00 000321 * 
00 000010 
00 000161 * 
00 000200 
00 000237* 
00 000356* 
00 000000* 
00 000360* 
00 000000* 
00 030242 
00 000000* 
14 002345 
00 000334* 



00 000006* 
00 000173* 
00 000356* 
00 000152* 
00 000377* 
00 000154* 
00 030242 
00 000156* 
14 002345 
00 000236' 



000173' 200 01 14 000001 
000174' 602 01 00 361000 



CALL SEQUENCE: 




GO 


SERV 


RTN 




ERV: PUT 


1 


PUT 


2 


PUT 


3 


HOVE 


3,RETRYF 


SKIPE 


HUNG 


JRST 


DEAD 


HOVE 


1,C0NID(DSU) 


TRNE 


1.4000 


JRST 


RAESER 


TRNE 


1,10 


JRST 


DONSER 


TRNE 


1,200 


JRST 


ATASER 


TEXT 


MES1 


GO 


RUNTME 


TEXT 


MES2 


GO 


.NAME 



PCRL 
GO 
AOS 
JRST 



DUMPA 

XINTR(DSW) 

SEREX 



.•HERE TO HANDLE DONE INTERRUPT 



DONSER: SKIPE 
JRST 
TEXT 
GO 
TEXT 
GO 
PCRL 
GO 
AOS 
JRST 



DONI 



HOVE 
TRNE 



BSYCNT 

DONI 

MES1 

RUNTME 

ME S3 

.NAME 

DUMPA 

XINTR(DSW) 

DONX 

1,!:0NID(DSU) 
1.361000 



CALL THE ROUTINE 
IT RETURNS HERE 

SAVE ACS 

SAVE AC3 

AC3 WILL HOLD THE RETRY FLAG 

HUNG DEVICE ? 

YES 

GET THE CONI DATA 

RAE? 

YES. HANDLE IT 

IS IT DONE 

YES 

NO. HOW ABOUT ATA 

YES 

NO. "header MSG 

PRINT RUNTIME 

SPURIOUS MSG 

PRINT THE TEST NAME 

DUMP ALL STATUS 

COUNT EXTRANEOUS INTERRUPT 

TO COMON EXIT CODE 



DID WE EXPECT IT 

YES 

NO. HEADER MSG 

PRINT RUNTIME 

DIAGNOSTIC MSG 

IDENTIFY RH ETC... 

DUMP ALL REGISTERS 
COUNT ERROR 
PROCEED 

GET CONI STATUS 

EXCEP OR RH ERROR COND 



r^ 



















DFRPM2 


MACRO X53B(1242) 19:37 12-SeD-85 


Page 
NTERR 


6-1 








DFRPM2 


MAC 


9-Sep-85 09:49 ] 


UPT SERVICE, ECC CORRECTION. RETRY ROUTINES 


SEQ 


10023 


000175' 


254 00 00 000201 ' 




JRST 


D0N2 


•YES 




10024 


000176' 


200 01 14 000010 




MOVE 


1,R1D(DSW) 


•NO. GET STATUS REG DATA 




10025 


000177' 


606 01 00 040000 




TRNN 


1JB21 


•COMPOSITE ERROR? 




10026 


000200' 


254 00 00 000230' 




JRST 


DONS 


•NO 




10027 


000201 • 


476 00 00 000011 D0N2: 


SETOM 


ERFLG 


•SET ERROR FLAG 




10028 


000202' 


660 03 00 000001 




TRO 


3,1 


•SET BIT-3S TO REQUEST A RETRY 




10029 


000203' 


332 00 00 000127* 




SKIPE 


NORPT 


•REPORTING ERRORS ? 




10030 


000204' 


254 00 00 000222' 




JRST 


D0N4 


•NO. SKIP OVER PRINT CODE 




10031 


000205' 


030 00 00 000356' 




TEXT 


MES1 


•HEADER MESSAGE 




10032 


000206' 


260 17 00 000164* 




60 


RUNTME 


•PRINT RUNTIME 




10033 


000207' 


030 00 00 000413' 




TEXT 


MES4 


•DIAG. MSG 




1003A 


000210' 


260 17 00 000166* 




GO 


.NAME 


•PRINT THE TEST NAME 




10035 


000211' 


037 00 00 030242 




PCRL 








10036 


000212' 


200 10 00 002464' 




MOVE 


R6LIST,C400006,,- 


•13 ;SET UP R6LIST 




10037 


000213' 


260 17 00 000000* 




60 


DUMPS 


•DUMP SELECTIVE RE6ISTERS 




10038 


000214' 


200 01 14 000001 D0N3: 


MOVE 


1,C0NID(DSW) 


•6ET CONI DATA A6AIN 




10039 


000215' 


606 01 00 161000 




TRNN 


1,161000 


•CH-ER, WD CNT-ERA, OVERRUN 




10040 


000216' 


254 00 00 000222' 




JRST 


D0N4 


•NO. 




10041 


000217' 


200 01 14 000037 




MOVE 


1,CCWPTR(DSW) 


;6ET POINTER TO THE COMMAND LIST 




10042 


000220' 


260 17 00 000000* 




60 


CCWPNT 


•PRINT THE COMMAND LIST 




10043 


000221 ' 


260 17 00 000000* 




60 


L06PNT 


•PRINT L060UT AREA 




10044 


000222' 


200 01 14 000011 D0N4: 


MOVE 


1,R2D(DSW) 


•6ET ER1 DATA 




10045 


000223* 


640 01 00 100000 




TRC 


1,1820 


•COMP DCK FOR NXT INSTRUCTION 




10046 


000224' 


602 01 00 100100 




TRNE 


1,1820!1B29 


•ECC CORRECTABLE ERROR ? 




10047 


000225' 


254 00 00 000230' 




JRST 


DONS 


•NO 




10048 
















10049 






•SPECIAL NOTE . 


■ a 






10050 






■RETRY 


HAS BEE^ 


REQUESTED EVEN TH0U6H ECC HAS BEEN USED. THIS IS SO RETRY 




10051 






•WILL 


BE SMART 


ENOUGH TO RECOVER 


THE REST OF THE SECTORS IN A L0N6 TRANSFER 




10052 






•RETRY 


WILL LOOK AT ERROR STATUS 


FOR THIS LAST SECTOR AND SEE THAT IT WAS 




10053 






•A CORRECTABLE 


ERROR AND WILL NOT RETRY THE SECTOR THAT WAS ALREADY CORRECTED 




10054 
















10055 


000226' 


260 17 OC 000664' 




60 


ECCCOR 


;YES. 60 CORRECT IT 




10056 


000227' 


254 00 00 000235' 




JRST 


D0N7 


;AND CONTINUE ... 




10057 
















10058 


000230' 


260 17 00 ^00605' I 


)0N5: 


60 


USECHK 


;IS DRIVE ON-LINE AND SAFE FOR USE ? 




10059 


000231 • 


254 00 00 000235' 




JRST 


D0N7 


;YES. 




10060 


000232' 


402 00 00 00001 1 




SETZM 


ERFL6 


;N0. RESET ERROR FLAG 




10061 


000233' 


402 00 00 000124* 




SETZM 


ERROR 


•STOP ANY ERROR LOOPING 




10062 
10063 
10064 


000234' 


402 00 00 000137* 




SETZM 


RETRYF 


•CANCEL RETRY 




000235' 


370 00 00 000161* I 


)0N7: 


SOS 


BSYCNT 


•DECREMENT EVENT COUNTER 




10065 
10066 
10067 


000236' 


254 00 00 000334' I 


)ONX: 


JRST 


SEREX 


•BACK TO THE SERVICE ROUTINE 








•CODE 


TO HANDLE 


ATTN INTERRUPT CONDITION 




10068 
















10069 


000237' 


200 01 14 000013 1 


^TASER 


: MOVE 


1,R4D(DSW) 


;6ET ATA RE6ISTER DATA 




10070 


000240' 


201 02 00 000001 




MOVE I 


2,1 


•6ET A MASK BIT 




10071 


000241' 


242 02 15 000000 




LSH 


2, (DRIVE) 


•SHIFT INTO POSITION FOR THIS DRIVE 




W072 


0002^2' 


616 01 00 000002 




TDNN 


1,2 


•IS THE ATA FOR THIS DRIVE ? 




10073 


000243' 


254 00 00 000301 ' 




JRST 


ATAXl 


•NO JUST IGNORE IT ... 




10074 


000244' 


332 00 00 000235* 




SKIPF 


BSYCNT 


;YES. EXPECTED ATA ? 




10075 


000245' 


254 00 00 000255' 




JRST 


ATAl 


■YES 




10076 


000246' 


030 00 00 000356' 1 


UAO: 


TEXT 


MES1 


•NO. HEADER 




10077 


000247' 


260 17 00 000206* 




60 


RUNTME 


•PRINT RUNTIME 





'1 



DFRPM2 
DFRPM2 

10078 

10079 

10080 

10081 

10082 

10083 

10084 

10085 

10086 

10087 

10088 

10089 

10090 

10091 

10092 

10093 

1009A 

10095 

10096 

10097 

10098 

10099 

10100 

10101 

10102 

10103 

lOlOA 

10105 

10106 

10107 

10108 

10109 

10110 

10111 

10112 

10113 

101U 

10115 

10116 

10117 

10118 

10119 

10120 

10121 

10122 

10123 

1012A 

10125 

10126 

10127 

10128 

10129 

10130 

10131 

10132 



MACRO X53B(12A2) 19:37 12-Sep-85 Page 6-2 

MAC 9-Sep-85 09:49 INTERRUPT SERVICE, ECC CORRECTION. RETRY ROUTINES 



SEQ 0358 



000250' 
000251 • 
000252' 
000253' 
000254' 
000255' 
000256' 
000257' 
000260' 
000261 • 
000262' 
000263' 
000264' 
000265' 
000266' 
000267' 
000270' 
000271 ' 
000272' 
000273' 
000274' 
000275' 
000276' 
000277' 
000300' 
000301 ' 



000302' 
000303' 
000304' 
000305' 
000306' 
000307' 
000310' 
00031 1 ' 
000312' 
000313' 
000314' 
000315' 
000316' 
000317' 
000320' 



000321 ' 
000322' 
000323' 
000324' 
000325' 
000326' 
000327* 
000330' 



030 00 
200 10 
260 17 
350 00 
254 00 
200 01 
606 01 
254 00 
476 00 
660 03 
332 00 
254 00 
030 00 
260 17 
030 00 
260 17 
037 00 
200 10 
260 17 
370 00 
260 17 
254 00 
402 00 
402 00 
402 00 
254 00 



00 000423' 
00 002465' 
00 000213* 
14 002345 
00 000274' 
14 000010 
00 040000 
00 000273' 
00 000011 
00 000001 
00 000203* 
00 000273' 
00 000356' 
00 000247* 
00 000434' 
00 000210* 
00 030242 
00 002466' 
00 000252* 
00 000244* 
00 000605' 
00 000301 ' 
00 000011 
00 000233* 
00 000234* 
00 000334' 



030 00 
2oJ 17 
030 00 
260 17 
037 00 
260 17 
476 00 
660 03 
402 00 
260 17 
254 00 
402 00 
402 00 
402 00 
254 00 



00 000356' 
00 000265* 
00 000472' 
00 000267* 
00 030242 
00 000170* 
00 000011 
00 000001 
00 000273* 
. 00 000605' 
00 000351 • 
00 000300* 
00 000011 
00 000277* 
00 000351' 



030 00 
260 17 
030 00 
260 17 
037 00 
200 01 
'61 - 










476 00 00 0003 



00 000356' 
00 000303* 
00 000444' 
00 000305* 
00 030242 
00 002455' 



00 OOOQQO* 



ATAl: 



ATA2: 
ATAX: 



ATAX1 



TEXT 

MOVE 

GO 

AOS 

JRST 

MOVE 

TRNN 

JRST 

SETOM 

TRO 

SKIPE 

JRST 

TEXT 

GO 

TEXT 

GO 

PCRL 

MOVE 

GO 

SOS 

GO 

JRST 

SETZM 

SETZM 

SETZM 

JRST 



MES5 

RGLIST,C400000,, 

DUMPS 

XINTR(DSW) 

ATAX 

I.RID(DSU) 

1,040000 

ATA2 

ERFLG 

3,1 

NORPT 

ATA2 

MESl 

RUNTME 

MES6 

.NAME 



.DIA6 MESSAGE 

,^200603 ;Q-REGISTERS FOR PRINTING 
AND PRINT THEM 

LOG THE ERROR IN THE DS8 AREA 
TO EXIT CODE 
GET STATUS DATA 
COMPOSITE ERROR 
NO 

YES. SET ERROR FLAG 
SET BIT-35 TO REQUEST RETRY 
SHOULD WE REPORT THIS ERROR ? 
NO. SKIP OVER PRINTING 
HEADER MSG 
PRINT RUNTIME 
DIAG MSG 
PRINT THE TEST NAME 



RGLIST, [400000,, 775760J ;SET UP FOR DUMP 



DUMPS 

BSYCNT 

USECHK 

ATAX1 

ERFLG 

ERROR 

RETRYF 

SEREX 



DUMP STATUS 

DECREMENT EVENT COUNT 

DRIVE STILL USEABLE ? 

YES ... 

NO. CLEAR ERROR 

NO LOOPING 

NO MORE RETRY 

TO EXIT CODE 



.-CODE TO DEAL WITH A HUNG DEVICE (SOFTWARE TIMEOUT h OCCURRED) 



DEAD: 



TEXT 

GO 

TEXT 

GO 

PCRL 

60 

SETOM 

TRO 

SETZM 

GO 

JRST 

SETZM 

SETZM 

SETZM 

JRST 



MESl 
RUNTME 
DEADM 
.NAME 

DUMPA 

ERFLG 

3,1 

BSYCNT 

USECHK 

SERVX 

RETRYF 

ERFLG 

ERROR 

SERVX 



.•CODE TO SERVICE RAE 



RAESER: TEXT 
GO 
TEXT 
60 

PCRL 
MOVE 
PUT 
SETOM 



MESl 
RUNTME 
MES7 
.NAME 

1,DAIWD 

SHMODE 

SHMODE 



HEADER MESSAGE 
PRINT RUNTIME 
ADDITIONAL MESSAGE 
PRINT THF TEST NAME 

DUMP REGISTERS 

SET THE ERROR FLAG 

SET BIT-35 TO REQUEST A RETRY 

NO MORE INTERRUPTS EXPECTED 

IS DRIVE STILL ESEABLE ? 

YES 

NO. stop RETRY 

NO MORE ERRORS 

NO MORE ERROR LOOPING 

GET OUT 



.•HEADER 

.•PRINT RUNTIME 
.•DIAG MSG 
.•IDENTIFY NAMES 

.-GET DATAI WORD ... 
;SAVE PRINTOUT MODE 
;SET TO OCTAL MODE 



DFRPM2 
DFRPM2 

10133 
1013A 
10135 
10136 
10137 
10138 
10139 
10U0 
10U1 
101A2 
10143 
10KA 
10U5 
10K6 
10U7 
10U8 
10U9 
10150 
10151 
10152 
10153 
1015A 
10155 
10156 



MACRO X53B(1242) 19:37 12-Sep-85 Page 6-3 

MAC 9-Sep-85 09:49 INTERRUPT SERVICE. ECC CORRECTION. RETRY ROUTINES 



SEQ 0359 



000331' 260 17 00 000000* 
000332' 262 17 00 000330* 
000333' 254 00 00 000334' 



000334' 
000335' 
000336' 
000337' 
000340' 
000341 ' 
000342' 
000343' 
000344' 
000345' 
000346' 
000347' 

000350' 
000351' 
000352' 
000353' 
000354' 
000355' 



331 00 
254 00 
030 00 
260 17 
030 00 

260 17 
037 00 

261 17 
200 00 
260 17 

262 17 
402 00 

030 00 
202 03 
262 17 
262 17 

262 17 

263 17 



00 000312* 
00 000351 ' 
00 000356' 
00 000322* 
00 000460' 
00 000324* 
00 030242 
00 000000 
00 000334* 
00 000000* 
00 000000 
00 000344* 



SEREX: 



GO RE6PNT 
GET SHMODE 
JRST SEREX 



00 002467' 
00 000315* 
00 000003 
00 000002 
00 000001 
00 000000 



/] 

SERVX! 



SKIPL 

JRST 

TEXT 

GO 

TEXT 

GO 

PCRL 

PUT 

MOVE 

GO 

GET 

SETZM 

TEXT 

MOVEM 

GET 

GET 

GET 

RTN 



BSYCNT 

SERVX 

MESl 

RUNTME 

MESS 

.NAME 



.•DUMP RESULTS 
.•RESTORE PRINT MODE 
;BACK TO SERVICE "ROUTINE 

;IS BSYCNT + 

;YES 

;N0 

.•PRINT RUNTIME 

;DIAG MSG 

.•IDENTIFY BY NAME 



.-SAVE AC 

0. BSYCNT ;GET C0U^'^ 
PSDN .-PRINT n 

.-RESTORE AC 

BSYCNT ;CLEAR IT 

CASCIZ/PROGRAM STILL OPERATIONAL 



3.RETRYF 

2 
1 



.•SAVE STATE OF RETRY FLAG 

.•RESTORE AC 

.•RESTORE AC 

.•RESTORE AC 

;EXIT 



I 



DFRPM2 
DFRPM2 

10157 

10158 

10159 

10160 

10161 

10162 

10163 

1016A 

10165 

10166 

10167 

10168 

10169 

10170 

10171 

10172 

10173 

1017A 

10175 

10176 

10177 

10178 

10179 

10180 

10181 

10182 

10183 

1018A 

10185 

10186 

10187 

10188 

10189 

10190 

10191 

10192 

10193 

101 9A 

10195 

10196 

10197 

10198 

10199 

10200 

10201 

10202 

10203 

10204 

10205 

10206 

10207 

10208 

10209 

10210 

10211 



MACRO X53B(12A2) 19:37 12-Sep-85 Page 7 

MAC 9-Sep-85 09:49 INTERRUPT SERVICE. ECC CORRECTION. RETRY ROUTINES 



SEQ 0360 



000356' 

000356' 015 012 052 055 052 

000357' 055 052 055 052 000 



000360' 
000360' 
000361 ' 
000362' 
000363' 
000364' 
000365' 
000366' 
000367' 
000370' 
000371 • 
000372' 
000373' 
000374' 
000375' 
000376' 

000377' 
000377- 
00040C' 
000401 ' 
000402' 
000403' 
000404' 
000405' 
000406' 
000407' 
000410' 
000411' 
000412' 

000413' 
000413' 
000414' 
000415' 
000416' 
000417' 
000420' 
000421 ' 
000422' 

000423' 
000423' 
000424' 
000425' 
000426' 
000427' 
000430' 
000431 • 



015 
122 
040 
106 
122 
050 
040 
040 
111 
101 
116 
125 
117 
111 
012 



015 
040 
040 
122 
040 
040 
1 1 r 
050 

in 

120 
125 
000 



015 
117 
124 
104 
104 
111 
122 
012 



015 
116 
105 
124 
115 
127 
116 



012 
111 
101 
122 
110 
103 
104 
116 
116 
124 
124 
120 
116 
117 
000 



012 
104 
111 
122 
127 
102 
124 
120 
102 
107 
107 
000 



012 
122 
105 
040 
117 
116 
125 
000 



012 
040 
122 
040 
040 



11 
11 



123 
117 
124 
117 
062 
117 
117 
117 
104 
105 
105 
124 
104 
116 
000 



107 
117 
116 
125 
111 
123 
075 
117 
114 
115 
051 
COO 



105 
040 
103 
117 
116 
124 
120 
000 



101 
111 
122 
10$ 
12* 



v,n 



120 
125 
101 
115 
060 
116 
105 
124 
111 
040 
122 
040 
111 
051 
000 



117 
116 
124 
120 
124 
131 
060 
123 
105 
040 
015 
000 



122 
104 
124 
116 
105 
105 
124 
000 



124 
116 
125 
122 
110 
116 
040 



125 
123 
040 
040 
040 
111 
123 
040 
103 
111 
122 
103 
124 
015 
000 



124 
105 
105 
124 
110 
103 
040 
123 
040 
102 
012 
000 



122 
105 
105 
040 
040 
122 
015 
000 



124 
124 
120 
117 
040 
040 
105 



.-MESSAGES GENERATED FROM INTERRUPT SERVICE 
MES1: ASCIZ/ 



MES2: ASCIZ/ 

SPURIOUS ATA FROM RH20 (CONI DOES NOT INDICATE INTERRUPT CONDITION) 



MES3: ASCIZ/ 

GOT DONE INTERRUPT WITH BSYCNT=0 (POSSIBLE PGM RUG) 



MES4: ASCIZ/ 

ERROR DETECTED ON DONE INTERRUPT 



MESS: ASCIZ/ 

ATTN INTERRUPT FROM RH WHEN NOT EXPECTED 



r: 



DFRPM2 
DFRPM2 

10212 

10213 

102U 

10215 

10216 

10217 

10218 

10219 

10220 

10221 

10222 

10225 

1022A 

10225 

10226 

10227 

10228 

10229 

10230 

10231 

10232 

10233 

1023A 

10235 

10236 

10237 

10238 

10239 

102A0 

102A1 

102A2 

102A3 

102A4 

102A5 

10246 

102A7 

102A8 

10249 

10250 

10251 

10252 

10253 

10254 

102S5 

10256 

10257 

10258 

10259 

10260 

10261 

10262 

10263 

10264 

10265 

10266 



MACRO X55B(1242) 19:37 12-Sep-85 
MAC 9-Sep-85 09:49 



Page 7-1 
INTERRUPT 



SERVICE. ECC CORRECTION, RETRY ROUTINES 



SEO 0361 



000432' 
000433' 

000434' 
000434' 
000435' 
000436' 
000437' 
000440' 
000441' 
000442' 
000443' 

000444' 
000444 ' 
000445' 
000446' 
000447' 
000450' 
000451' 
000452' 
000453' 
000454' 
000455' 
000456' 
000457' 

000460' 
000460' 
000461 ' 
000462' 
000463' 
000464' 
00U465' 
000466' 
000467' 
000470' 
000471 • 

000472' 
000472' 
000473' 
000474' 
000475' 
000476' 
000477' 
000500' 
000501 ' 
00^^02' 
OC 03' 



130 120 105 103 124 
105 104 015 012 000 



015 
117 
124 
104 
101 
111 
122 
012 



015 
105 
124 
123 
131 
105 
105 
040 
040 
111 
105 
000 



015 
107 

102 
12'. 
040 
111 
123 
015 
103 



015 
040 
127 
124 
125 
040 
103 
040 
040 
000 



000504' 

000504' 015 

000505' 126 

000506' 040 



012 
122 
105 
040 
124 
116 
125 
000 



012 
122 
040 
105 
040 
042 
122 
127 
104 
040 
123 
000 



012 
122 
125 
123 
040 
114 
116 
105 
012 
116 



012 
123 
101 
111 
124 
104 
105 
110 
055 
000 



012 
105 
125 



105 
040 
103 
117 
124 
124 
120 
000 



111 
122 
103 
104 
042 
040 
105 
110 
101 
107 
051 
000 



120 
101 
107 
131 
116 
105 
107 
122 
102 
124 



040 
117 
122 
115 
040 
105 
040 
125 
055 
COO 



122 
104 
124 
116 
116 
105 
124 
000 



116 
125 
101 
040 
122 
050 
047 
101 
124 
111 
015 
000 



122 
115 
072 
103 
105 
101 
040 
126 
123 
075 



055 
106 
105 
105 
055 
126 
111 
116 
015 
000 



122 
105 
105 
040 
040 
122 
015 
000 



124 
120 
125 
102 
101 
110 
123 
124 
101 
126 
012 
000 



117 
040 
040 
116 
107 
126 
042 
042 
131 
000 



055 
124 
040 
117 
055 
111 
123 
107 
012 
000 



104 ]22 111 
040 111 123 
116 123 101 



MES6: ASCIZ/ 

ERROR DETECTED ON ATTN INTERRUPT 



DFRPI 
DFRPI 

107 
107 
107 
107. 
107- 
107 
107 
107 
107. 
107. 



MES7: ASCIZ/ 

INTERRUPT CAUSED BV "RAE" (HERE'S WHAT DATAI GIVES) 



MESS: ASCIZ/ 

PROGRAM BUG: BSYCNT NEG LEAVING "SERV* 



■ 'r rnu* * 



BSVCNT=/ 



DEADM: ASCIZ/ 
— SOFTWARE TIMEOUT 



— DEVICE IS HUNG — 



UNSFM: ASCIZ/ 

DRIVE IS UNSAFE AND WILL BE NO LONGER TESTED 



549 



DFRPM2 


MACRO X53B(12A2; 


19:37 12-SeD- 


-85 Page 7-2 

INTERRUPT SERVICE. ECC CORRECTION. RETRY ROUTINES 


DFRPM2 


MAC 


9-Sep-85 09:49 


10267 


000507* 


106 105 


040 101 116 




10268 


000510* 


104 040 


127 111 114 




10269 


000511* 


114 040 


102 105 040 




10270 


m^i?: 


116 117 


040 114 117 




10271 


116 107 


105 122 040 




10272 


0005 U* 


124 105 


123 124 105 




10273 


000515* 


104 015 


012 052 052 




1027A 


000516* 


052 052 


052 052 052 




10275 


000517* 


052 052 


052 052 052 




10276 


000520* 


052 052 


052 052 052 




10277 


000521 * 


052 052 


052 052 052 




10278 


000522* 


052 052 


052 052 052 




10279 


000523* 


052 052 


052 052 052 




10280 


000524* 


052 052 


052 052 052 




10281 


000525' 


052 052 


052 052 052 




10282 


000526* 


052 052 


015 012 000 


/ 


10283 











SEO 0362 



0FRPM2 
DFRPM2 

1028A 
10285 
10286 
10287 
10288 
10289 
10290 
10291 
10292 
10293 
1029A 
10295 
10296 
10297 
10298 
10299 
10300 
10301 

; 10302 
10303 

1 1030A 
10305 
10306 
10307 

I 10308 

! 10309 
10310 
10311 
10312 
10313 
103K 
10315 
10316 
10317 
10318 
10319 
10320 
10321 
10322 
10323 
10324 
10325 
10326 
10327 
10328 
10329 
10330 
10331 
10332 
10333 
1033A 
10335 
10336 
10337 
10338 



MACRO X53B(12A2) 19:37 12-Sep-85 Page 8 



MAC 



9-Sep-85 09:A9 



000527' 261 17 GO 000000 
000530* 261 17 00 000001 



000531 • 
000532' 
000533* 
0005 3A* 
000535' 
000536* 
000537* 
0005A0* 



260 17 
200 00 
606 00 
25A 00 
550 01 
271 01 
260 17 
255 00 



00 000000* 
U OOOOAO 
00 OOOOAO 
00 0005A0* 
00 OOOOU 
00 000027 
00 000000* 
00 000000 



0005A1' 260 17 00 000570' 



0005A2* 
000543' 
00054A • 
000545' 
000546' 
000547' 
000550' 



000551 ' 
000552* 
000553' 
000554' 
000555' 
000556' 
000557' 



336 00 00 
254 00 00 



260 U 
254 00 
200 00 
606 00 
254 00 



200 01 
405 01 

201 00 
242 00 
612 01 
254 00 
200 01 



00 
00 
14 
00 
00 



000011 

000546' 

000000* 

000565' 

000001 

000200 

000563' 



14 000013 
00 000377 
00 000001 

15 QOOOOO 
00 000000 
00 000563' 
00 000001 



INTERRUPT SERVICE, ECC CORRECTION, RETRY ROUTINES 

IPCSIO — DOES ALL OF THE I/O IN PROCESSING INTERRUPTS 
THIS ROUTINE IS CALLED FROM "INTPCS" TO DO ALL OF THE I/O 
REQUIRED DURING THE SERVICING OF AN INTERRUPT. 

WHEN YOU LEAVE THIS ROUTINE, ALL HARDwARf STATUS IS IN CORE AND ALL 
ERROR CONDITIONS AND INTERRUPT CONDITION^ ARE RESET, IF ANY ERRORS 
ARE DETECTED, THE FLAGS "ERFLG" AND "EPROh' ARE SET. 



SEQ 0363 



CALL SEQUENCE 
GO 
RTN 

IPCSIO: PUT 
PUT 



IPCSIO 




1 



;THE CALL 
;RTN1 

;SAVE AC'S 



.•SNAPSHOT REGISTERS AND GET LOGOUT DATA IF LAST COMMAND WAS A DATA XFER 



IPC1 



GO SNAPA 

MOVE O.LASTC(DSW) 

TRNN 0,40 

JRST IPC1 

HRRZ 1,DSU 

ADDI 1.CL0G1 

GO GETLOG 
JFCL 



SNAPSHOT REGISTERS IN THE DRIVE 

GET THE LAST COMMAND 

WAS IT A DATA XFER COMMAND ? 

NO. 

GET THE DSB POINTER 

OFFSET FOR LOGOUT DATA STORAGE 

GET LOGOUT DATA 



;NOW TEST FOR ERRORS AND GET ERROR FLAGS SET 



GO 



ERCHK 



.-CHECKS FOR ANY DETECTABLE ERROR CONDITION 



HERE WE RELEASE THE RH IF ERROR FLAG IS SET. OTHERWISE WE CLEAR ERROR 
CONDITIONS AND GET OUT STILL HAVING THE RH20. THIS SPEEDS UP I/O IN USER 
MODE BECAUSE RELEASES WILL NOT HAPPEN AFTER 'tACH" OPERATION BUT INSTEAD 
THEY HAPPEN ONLY UPON AN ERROR CONDITION OR AT THE END OF THE SEQUENCE 

DURING 'BRANCH" WHEN WE CHECK FOR THE ALTMODE 

ANOTHER FUNCTION PERFORMED HERE IS THE FILTERING OF ATA'S THAT COME 
FROM A DRIVE OTHER THAN WE ARE TESTING (MERELY DISMISS THEM). 



IPCREL: SKIPN 
JRST 
GO 
JRST 
MOVE 
TRNN 
JRST 



ERFLG 
.♦3 

.REL 

IPCSX 

0,CONID(DSW) 

0,200 

IPCDC 



IS THERE AN ERROR (MAKE A SKIPA TO RELEASE) 

NO.... SKIP THE RELEASE. 

YES... CLEAR AND RELEASE DEVICE 

/ND EXIT 

GET THE CONI DATA 

DOES CONI INDICATE ATA ? 

NO. NO NEED TO FILTER ATA 



DFRP^ 
DFRPP< 

107e 
1077 
107? 
107/ 
1077 
1077 
1077 
1077 
1077 
1077 
1077 
1078 
1078 
107! 
107J 
1078 
1078 
1078 
1078 
1078 
1078 
107S 
107^ 
107'; 
107^ 
107S 
107« 
107^ 
107^ 
107« 
107< 
108( 
108( 
108( 
108( 
108( 
108( 
108( 
108( 
108( 
108( 
1081 
1081 
1081 



.•HERE WE FILTER AND THROW AWAY ATA'S FROM OTHER DRIVES. 



IPCATA: HOVE 
AND I 
MOVE I 
LSH 
TDNE 
JRST 
MOVE 



1.R4D(DSW) 
1.377 

0. (DRIVE) 

^CDC 
1,1 



GET THE ATA REGISTER DATA 

SAVE LOW ORDER 8 BITS 

GET A SINGLE BIT MASK 

POSITION UNDER CURRENT DRIVES ATA BIT 

IS ATA FROM CURRENT DRIVE ? 

YES 

(NOP).. USE ATA REGISTER DATA 



r 



51 



DFRPM2 MACRO X55B(12A2) 19:37 12-Sep-85 Page 8-1 

DFRPM2 MAC 9-Sep-85 09:49 INTERRUPT SERVICE. ECC CORRECTION. RETRY ROUTINES 



SEQ 0364 



10339 


000560' 


260 17 00 OQOOQO* 
255 00 00 OOOQOQ 
254 00 00 000565' 




60 


LDRG04 


10343 


000561 ' 




JFCL 




000562' 




JRST 


IPCSX 


000563' 


260 17 00 000000* 


IPCDC: 


60 


DRVCLR 


000564' 


^60 17 00 000000* 




60 


.RHCLR 


10345 


000565' 


262 17 00 000001 


IPCSX: 


6ET 


1 


10346 


000566' 


262 17 00 000000 




6ET 





10347 


000567" 


263 17 00 000000 




RTN 




10348 












10349 












10350 













TO CLEAR OTHER DRIVES ATA BITS 
;RAE RTN .. NOT POSSIBLE FOR REG-04 
;AND WE'RE DONE WITH I/O 

;YES. CLEAR DRIVE (GETS IT TO KNOWN STATE) 
; CLEARS RH INTERRUPT CAUSING BITS 
.•RESTORE AC'S 

;AND EXIT 



DFRPM 

dfrpm; 

1081 
1Q81 
1081 
1081 
1081 
1081 
1081 
1082' 
1082 
1082 
1082 
1082 
1082 
1082 
1082 
1082 
1082 
1083 
1083 
1083 
1083 
1083 
1083 
1083 
1083 
1083 
1083 
1084 
1084 
1084 
1084 
1084 
1084 
1084 
1084 
1084 
1084 
1085 
1085 
1085 
1085 
1085 
1085 
1085 
1085 
1085 
1085 
1086 
1086 
1086 
1086 
1086 
1086 
1086 
1086 



0352 



DFRPM2 
DFRPM2 

10351 
10352 
10353 
1035A 
10355 
10356 
10357 
10358 
10359 
10360 
10361 
10362 
10363 
1036A 
10365 
10366 
10367 
10368 
10369 
10370 
10371 
10372 
10373 
1037A 
10375 
10376 
10377 
10378 
10379 
10380 
10381 
10382 
10383 



MACRO X53B(12A2) 19:37 12-Sep-85 Page 9 



MAC 



9-Sep-85 09:49 



INTERRUPT SERVICE. ECC CORRECTION, RETRY ROUTINES 

ERCHK — CHECK HARDWARE FOR ERROR CONDITIONS 

THIS ROUTINE LOOKS AT HARDWARE BITS FOR ERROR INDICATIONS IN THE 

STATUS AND IF ANY ARE FOUND. "ERFL6" AND "ERROR" ARE SET TO -1. 

IN ADDITION. THE ERROR FLAGS ARE SET TO -1 IF THE DEVICE IS HUNG 
(HAS TIMED OUT DURING SOME OPERATION) 

THE HARDWARE STATUS IS NOW IN MEMORY, PUT THERE BY OTHER ROUTINES. 



SEQ 0365 



DF 
DF 



CALL SEQENCE; 
GO 
RTN 



000570* 261 17 00 000001 

000571' 332 00 00 OOOUO* 

000572' 25A 00 00 000601' 

000573' 200 01 U 000001 

000574' 602 01 00 361000 

000575' 254 00 00 000601' 



ERCHK: 



000576' 
000577' 
000600' 
000601 ' 
000602' 
000603' 
000604' 



200 01 
606 01 



254 00 
476 00 



476 00 

262 17 

263 " 







17 



14 000010 
00 040000 
00 000603' 
00 000011 
00 000317* 
00 000001 
00 000000 



ERCK1: 
ERCKX: 



PUT 

SKIPE 

JRST 

MOVE 
TRNE 
JRST 

MOVE 

TRNN 

JRST 

SETOM 

SETOM 

GET 

RTN 



ERCHK 



1 

HUNG 

ERCKl 

1,C0NID(DSW) 

1,361000 

ERCKl 

1,R1D(DSW) 

1.040000 

ERCKX 

ERFLG 

ERROR 

1 



CALL THE ROUTINE 
RTN 

SAVE AC 

HUNG DEVICE ? 

YES. SET FLAGS 

NO. GET CONI DATA. 
EXCEP. RH, OR CHAN ERR ? 
YES SET FLAGS 

NO. GET DRIVE STATUS REGISTER 
IS COMPOSITE ERROR SET ? 
NO 

ERROR 

BOTH FLAGS NOW SET 
RESTORE AC 
GET OUT 



DFRPM2 
DFRPM2 

1038A 

10385 

10386 

10387 

10388 

10389 

10390 

10391 

10392 

10393 

1039A 

10395 

10396 

10397 

10398 

10399 

10A00 

10A01 

10A02 

10A03 

1040A 

10A05 

10A06 

10A07 

10A08 

10A09 

10A10 

10A11 

10A12 

10A13 

10A1A 

10A15 

10A16 

10417 

10A18 

10419 

10420 

10421 



MACRO 31538(1242) 19:37 12-Sep-85 Page 10 

MAC 9-Sep-85 09:49 INTERRUPT SERVICE, ECC CORRECTION. RETRY ROUTINES 

.-USECHK — ROUTINE TO SEE IF DRIVE IS STILL USEABLE AND BRANCH 
.-THIS ROUTINE TESTS TO SEE IF A DRIVE IS NOW UNUSEABLE. A DRIVE IS 
.•CONSIDERED UNUSEABLE IF IT EITHER GOES OFF-LINE OR BECOMES UNSAFE. 
.-THE APPROPRIATE MESSAGE IS PRINTED, DSW IS PROPERLY UPDATED MO 
;THE SKIP RETURN IS TAKEN IF IT IS NO LONGER USEABLE. TOTALS FOR 
.-THE DRIVE ARE PRINTED IF IT IS NO LONGER TO BE TESTED BECAUSE 
;IT WON'T BE SELECTED ANY LONGER ... 



SEQ 0366 



DF 
DF 



000605* 
000606' 
000607' 
000610' 
00061 1 ' 
000612' 

000613' 
000614' 
000615' 
000616' 
000617' 
000620' 



261 17 
603 14 
254 00 
200 01 
602 01 
254 00 

030 00 
621 14 
254 00 
200 01 
606 01 
254 00 



00 000001 
00 000400 
00 000626' 
14 000010 
00 010000 
00 000616' 



00 
00 
00 
14 
00 
00 



002475' 

000004 

000623' 

000011 

040000 

000627' 



000621' 030 00 00 002503' 
000622' 661 14 00 000400 



000623' 
000624' 
000625' 
000626' 
000627' 
000630' 



0:5 J 
202 
260 
350 
262 
263 



00 
14 
17 
00 
17 
17 



00 002510' 



14 000000 
00 000000* 
17 777777 
00 000001 
00 000000 



.•CALL SEQ: 
GO 

I RTN-1 
RTN-2 



USECHK: 



n 

UNSCHK: 

/: 

NOTST: 



N0TST1: 
USECKX: 



PUT 

TLNE 

JRST 

MOVE 

TRNE 

JRST 

TEXT 

TL2 

JRST 

MOVE 

TRNN 

JRST 

TEXT 

TLO 
TEXT 

MOVEM 

GO 

AOS 

GET 

RTN 



USECHK 



1 

DSW,(1B9) 

N0TST1 

I.RID(DSW) 

1.1B23 

UNSCHK 

CASCIZ/DRIVE HAS GONE OFF-LINE 



THE CALL 

STILL USEABLE 

NO LONGER USEABLE 

SAVE THE AC 

IS DRIVE ALREADY MARKED UNUSEABLE ? 

YES 

get'status register data 

IS M0L=1 ? 

YES. GO CHECK FOR UNSAFE 



DSW,(1B15) 

NOTST 

1.R2D(DSW) 

1.1821 

USECKX 

CASCIZ/DRIVE HAS 



RESET SOFTWARE ON-LINE STATUS BIT 

TO FINISH ERROR REPORT 

GET ERROR REGISTER-1 DATA 

IS IT UNSAFE ? 

NO... WE TATE RTN-1 

GONE UNSAFE 



DSW. (189) ;MARK DRIVE AS NOT USEABLE 
CASCIZ/AND WILL NO LONGER BE TESTED 



DSW.aO(DSW) 

PTOTAL 

-UP) 

1 



SAVE UPDATED COPY 0^ DSW IN DEVTBL 
PRINT TOTALS FOR THIS DRIVE 
NOW WE TAKE RTN-2 
RESTORE THE AC 
AND tXIT 



DFRPM2 
DFRPM2 

10A22 

10A23 

10A2A 

10A2!) 

10A26 

10A27 

10A28 

10A29 

10430 

10A31 

10A32 

10A33 

10A3A 

10A35 

10A36 

10A37 

10A38 

10439 

10440 

10441 

10442 

10443 

10444 

10445 

10446 

10447 

10448 

10449 

10450 

10451 

10452 

10453 

10454 

10455 

10456 

10457 

10458 

10459 



MACRO X53B(1242) 19:37 12-Sep-85 Page 11 



MAC 



9-Sep-85 09:49 



000631 • 
000632' 
000633 • 
000634• 
000635' 
000636' 
000637' 
000640' 
000641' 
000642' 
000643' 
000644' 
000645' 
000646' 
000647' 
000650' 
000651 ' 
000652' 
000653' 
000654' 
000655' 
000656' 
000657' 
000660' 
000661 ' 
000662' 
000663' 



261 17 
200 01 
606 01 
254 00 
200 01 
606 01 
254 00 
350 00 
254 00 
602 01 
350 00 
602 01 
350 00 
602 01 
350 00 
602 01 
350 00 
602 01 
350 00 
606 01 
254 00 
350 00 
l:> 00 
602 01 
350 00 

262 17 

263 17 



INTERRUPT SERVICE, ECC CORRECTION. RETRY ROUTINES 

;LOGERR -- LOG VARIOUS DRIVE ERRORS N THE DS8 AREA 

.-THIS ASSUMES REGISTERS HAVE JUST BEEN PUT INTO THE DSB AREA. 

.•THIS ROUTINE DOES NO I/O. IT MERELY INCREMENTS COUNTERS 



SEQ 0367 



.-CALL SEQUENCE: 

GO LOGERR 
RTN1 



1 



00 000001 


LOGERR: 


PUT 


14 000010 




HOVE 


00 040000 




TRNN 


00 000662' 




JRST 


14 000011 




MOVE 


00 000400 




TRNN 


00 000642' 




JRST 


14 002367 




AOS 


00 000646' 




JRST 


00 000200 


L6ER1 : 


TRNE 


14 002370 




AOS 


00 000020 




TRNE 


14 002371 




AOS 


00 020000 


LGER2: 


TRNE 


14 002366 




AOS 


00 010000 




TRNE 


14 002372 




AOS 


00 002000 




TRNE 


14 002373 




AOS 


00 000100 




TRNN 


00 000660' 




JRST 


14 002364 




AOS 


00 000662' 




JRST 


00 100000 


LGER3: 


TRNE 


14 002365 




AOS 


00 000001 


LGERX: 


GET 


00 000000 




RTN 



I.RID(DSW) 

1.1821 

LGERX 

1.R2D(DSW) 

1.1B27 

LGER1 

HCRC(DSW) 

LGER2 

1.1828 

HCE(DSW) 

1.1831 

FER(DSU) 

1.1822 

OPKDSU) 

1.1823 

DTE(DSW) 

1.1825 

lAE(DSU) 

1.1829 

LGER3 

ECH(DSW} 

LGERX 

1.1820 

DCK(DSy) 

1 



.-THE CALL 
;+1 ALyAYS 

SAVE AC 

GET THE STATUS REGISTER 

COMPOSITE ERROR ? 

NO. THEN WE'RE DONE 

YES. GET ER1 DATA TO LOG ERRORS 

HCRC ERROR ? 

NO 

YES 

DON'T CHECK FOR HCE AND FER WITH HCRC 

HCE ? 

YES 

FER ? 

YES 

OPI ? 

YES 

DTE ? 

YES 

lAE ? 

YES 

ECH ? 

NO. GO TRY FOR DCK 

YES 

DON'T CHECK FOR A DCK 

DCK ? 

YES 

RESTORE AC 

EXIT 



DFR 
DFR 

10 
10 
10 
10 
10 
10 
1C 
1C 
10 
1C 
1C 
1C 
1C 
1C 
1C 
1C 
1C 
1C 
1C 
1C 
1C 
10 



DFRPM2 
DFRPH2 

10460 

10A61 

10A62 

10A63 

1046A 

10A65 

10A66 

10467 

10468 

10469 

10470 

10471 

10472 

10473 

10474 

10475 

10476 

10477 

10478 

10479 

10480 

10481 

10482 

10483 

10484 

10485 

10486 

10487 

10488 

10489 

10490 

10491 

10492 

10493 

10494 

10495 

10496 

10497 

10498 

10499 

10500 

10501 

10502 

10503 

10504 

10505 

10506 

10507 

10508 

10509 

10510 

10511 

10512 



MACRO X53B(1242) 19:37 12-Sep-85 Page 12 
MAC 9-Sep-85 09:49 ■ 



000664* 261 

000665' 261 

000666* 261 

000667* 261 

000670* 261 

000671* 261 



000672* 
000673* 
000674* 
000675* 
000676* 
000677* 
000700* 



17 00 000000 

17 00 000001 

17 00 000002 

17 00 000003 

17 00 000004 

17 00 000005 



135 00 
5ui 00 
260 17 



202 00 
135 00 
336 00 
260 17 



000701 * 
000702* 
000703' 
000704* 
000705* 
000706* 
000707* 
000710* 
0007^ 1 * 
000712* 



200 01 
275 01 
323 01 
255 00 



00 
00 
00 
00 
00 
00 
00 



002517' 

011026 

000000* 

002457* 

002520* 

000000 

000674* 



242 00 
242 00 



213 00 
242 00 
242 OG 
202 00 



00 002457' 
00 010766 
00 000712* 
00 000000 

00 000031 

01 000000 
00 000001 



01 
00 



00 
47 



00 002456* 



INTERRUPT SERVICE, ECC CORRECTION, RETRY ROUTINES 

ECCCOR — ECC CORRECTION AND REPORTING 

THE DECISION TO APPLY ECC MUST HAVE BEEN MADE ELSEWHERE. YOU SHOULD BE 
HERE ONLY IF DCK=1 AND ECH=0 INDICATING A CORRECTABLE ERROR. 

HERE WE: SCREEN THE ECC DATA FOR ERRORS ... 

POSITION MUST BE LESS THAN. OR EQUAL TO (128.»36.)+32.-11 .+1 

IF THE POSITION IS GREATER THAN THAT VALUE, THE 

PATTERN WILL HAVE TO BE ADJUSTED. THIS IS FOR THE CASE 

WHERE ALL OR PART OF THE CORRECTION IS IN THE ECC FIELD. 

APPLICATION OF ETC AND CORRECTION INFORMATION IS NOT REPORTED IF 
THE FLAG "NORPT*^' IS NON-0 



SEQ 0368 



CALL 



SEQ: 

GO 

RTN 



I 



ECCCOR: PUT 
PUT 
PUT 
PUT 
PUT 
PUT 



ECCCOR 




1 
2 
3 
4 
5 



.•CALL THE ROUTINE 
;RTNS HERE 



.-SAVE AC'S 



.•CHECK THAT POSITION IS IN RANGE AND THAT PATTERN IS NON-O OR WE HAVE 
;AN ECC HARDWARE FAILURE 

LDB 0, [POINT 16.R16D(DSW),35] ;GET THE POSITION 

CAILE 0.<*D128**D36>**D32-*D11+1 :CHECK IT 

GO FFF ;OUT OF BOUNDS 

MOVEM 0,ECCPOS# ;SAVE THE POSITION 

LDB 0, [POINT 16,R17D(DSW).35: ;GET THE PATTERN 

SKIPN .-CHECK IT 

GO FFF .-BEST NOT BE 

GET POSITION AGAIN. SEE IF POSITION INDICATES THAT ECC IS OVERLAPPING THE 
ECC FIELD (GOES OUTSIDE THE DATA FIELD). IF SO, THE BITS OF THE PATTERN 
THAT ARE OUT OF THE DATA FIELD MUST BE SET TO ZERO SO THE PROCESS WILL NOT 
MISCORRECT DATA IN MEMORY THAT IS NOT PART OF THIS SECTOR 



PATOK; 



HOVE 

SU6I 

JUMPLE 

JFCL 

LSH 

LSH 

MOVNS 

LSH 

LSH 

MOVEM 



I.ECCPOS 
1,<*D128*' 
1. PATOK 

0,*D25 

0.(1) 

1 

0.(1) 

0.-*D25 

O.ECCPATf 



D36>- 



;6ET POSITION AGAIN 
'D11 + 1 .-SEE IF PAT NEEDS ADJUSTING 
.-JUMP IF OK 

;* IS + . MUST ADJUST THE PATTERN 
.•LEFT JUSTIFY ACO 
.•THROW AWAY BITS OVERLAPPING ECC FIELD 



.•EXTRA BITS NOW FLUSHED 

.•RIGHT JUSTIFY ACO. READY TO APPLY 

.-AND SAVE IT (RIGHT JUSTIFIED) 



ECC 



DFR 
DFR 

1C 
1C 
1C 
1C 
10 
1C 
10 
10 
1C 
10 
1C 
10 
1C 
10 
10 
10 






DFRPM2 
DFRPM2 

10513 

105U 

10515 

10516 

10517 

10518 

10519 

10520 

10521 

10522 

10523 

1052A 

10525 

10526 

10527 

10528 

10529 

10530 

10531 

10532 

10533 

1053A 

10535 

10536 

10537 

10538 

10539 

105A0 

105A1 

105A2 



MACRO X53B(1242) 19:37 12-Sep-85 Page 13 

MAC 9-Sep-85 09:A9 INTERRUPT StRVICE, ECC CORRECTION, RETRY ROUTINES 



.•PATTERN AND POSITION ARE NOW SAVED. NOW LOOK INTO PARAMETERS FOR THE 
.•TRANSFER AND CALCULATE WHERE THE START OF THIS SECTOR IS LOCATED IN CORE 
;S0 THE CORRECTION CAN BE APPLIED. PROPER ADJUSTMENT IS MADE FOR THE 
.•DIFFERENCE IN "READ DATA" AND "READ HEADER AND DATA" COMMANDS. 



SEQ 0369 



HERE WE CALCULATE INITIAL BLOCK (LBN WHERE XFER STARTED) "IBLK" 
HERE WE CALCULATE THE FINAL BLOCK (LBN OF LAST BLOCK IN TRANSFER) 
HERE WE CALCULATE CURRENT BLOCK (LBN WHERE DCK OCCURED) "CBLK" 



'FBLK' 



000713' 260 17 00 002423* 



GO 



LBNS 



.•CALCULATES (IBLK, CBLK. FBLK) 



USING PREVIOUSLY CALCULATED THINGS. DERIVE A POINTER TO THE FIRST 

DATA WORD OF THE SECTOR WHERE THE CORRECTION IS TO TAKE PLACE. HERE 

WE TAKE INTO ACCOUNT, THE TYPE OF COMMAND ("DATA" OR "HEADER AND DATA") 



000714' 
000715' 
000716' 
000717' 
000720' 
000721 ' 
000722' 
000723' 
000724' 
000725' 
000726' 



200 01 
274 01 
200 02 
220 01 
550 02 
270 01 



200 00 
602 00 
270 01 
202 01 
254 00 



14 000043 
14 000042 
14 000036 
00 000002 
14 000035 
00 000002 
14 000033 
00 000002 
13 000000* 
00 002460' 
00 000727' 



MOVE 1.CB.»^(DSW) 

SUB I.IBLK(DSW) 

MOVE 2.BLKSIZ(DSW) 

IMUL 1.2 

HRRZ 2.XFST3(DSW) 

ADD 1,2 

MOVE CXFSTKDSW) 

TRNE 0,2 

ADD 1,CWHD(X1) 

MOVEM 1,PTFWS* 

JRST APPLY 



IN AC1 RIGHT NOW IS THE CURRENT BLOCK # 

# BLOCKS INTO XFER = CURRENT - INITIAL BLOCK 
GET SIZE OF THE BLOCK 

# WORDS INTO XFER = BLOCKS * WDS PER BLOCK 
GET INITIAL MEMORY ADDRESS 

POINTER TO 1ST WORD OF SECT 

GET COMMAND ... 

WAS IT A HEADER+DATA ? 

YES. SKIP THE HEADER WORD (OR WORDS) 

SAVE POINTER TO DATA FIELD 

NOW APPLY ECC 



r 



r 



DFRPM2 
DFRPM2 

105A3 

105AA 

105A5 

105A6 

10547 

105A8 

10549 

10550 

10551 

10552 

10553 

10554 

10555 

10556 

10557 

10558 

10559 

10560 

10561 

10562 

10563 

10564 

10565 

10566 

10567 

10568 

10569 

10570 

10571 

10572 

10573 

10574 

10575 

10576 

10577 

10578 

10579 

10580 

10581 

10582 

10583 

10584 

10585 

10586 

10587 

10588 



MACRO !i;53B(1242) 19:37 12-Sep-85 Page 14 

MAC 9-Sep-85 09:49 INTERRUPT SERVICE, ECC CORRECTION, RETRY ROUTINES 



SEQ 0370 



Dl 



Rl 
Rl 



000727' 200 04 00 002457* 

000730' 231 04 00 000044 

000731' 270 04 00 002460' 

000732' 275 05 00 000001 



000733' 
000734' 
000735' 
000736' 
000737' 
000740' 
000741 ' 
000742' 
000743' 
000744' 
000745' 
000746' 



000747' 
000750' 
000751 ' 
000752' 
000753' 
000754' 
000755' 



204 00 
204 01 
200 02 
402 00 
245 02 
430 00 
430 01 



CK)f CO 

207 01 
250 00 
250 01 
260 17 



262 
262 
262 
262 
262 
262 
263 



17 
17 
17 
17 
17 
17 
17 



04 000000 

04 000001 
00 002456' 
00 000003 

05 000000 
00 000002 
00 000003 
00 000000 
00 000001 
04 000000 
04 000001 
00 000756' 



00 000005 
00 000004 
00 000003 
00 000002 
00 000001 
00 000000 
00 000000 



HERE IS WHERE ECC IS APPLIED 
PTFUS - POINTER TO FIRST WORD 
ECCPOS - BIT POSITION 
ECCPAT - 11 BIT PATTERN 



OF SECTOR IN MEMORY 



**** 

ACO 

AC1 

AC2 

AC3 

Af4 

AC5 

APPLY; 



AC'S WILL BE USED AS FOLLOWS: 

ORIGINAL DATA WORD-1 

ORIGINAL DATA WORD-2 

ECC PATTERN WORD-1 

ECC PATTERN WORD-2 

POINTER TO FIRST DATA WORD IN BUFFER 

A SHIFT COUNTER 



MOVE 
IDIVI 

ADD 
SUB I 



4, ECCPOS 
4,*D36 

4,PTFWS 
5,1 



GET POSITION COUNT 
GETS OFFSET INTO BUFER 

REMAINDER IS IN ACS 
ADD POINTER 
SINGLE BIT ADJ BECAUSE OF ECC HARDWARE 



.•FETCH DATA FROM MEMORY, APPLY ECC, PUT DATA BACK, REPORT CORRECTION 



MOVS 

MOVS 

MOVE 

SETZM 

ROTC 

XOR 

XOR 

MOVSS 

MOVSS 

EXCH 

EXCH 

GO 

;AND NOW EXIT 



CORX: 



GET 
GET 
GET 
GET 
GET 
GET 
RTN 



0,0(4) 
1,1(4) 
2, ECCPAT 

2,(5) 

0,2 

1,3 

0,0 

1,1 

0,(4) 

1,1(4) 

ECCRPT 



5 
4 
3 
2 
1 




GET 1ST WORD 
GET 2ND WORD 
NOW HAVE PATTERN 
OTHER PATTERN WORD 
ROTATE THE PATTERN 
CORRECT 1ST WORD 
CORRECT 2ND WORD 
SWAP 1ST CORRECTED WORD 
SWAP 2ND CORRECTED WORD 
PUT GOOD WORD IN MEMORY 
PUT OTHER WORD IN MEMORY 
A REPORT ROUTINE 



.•RESTORE THINGS 



;AND EXIT 



DFRPM2 
DFRPM2 

10589 

10590 

10591 

10592 

10593 

1059A 

10595 

10596 

10597 

10598 

10599 

10600 

10601 

10602 

10603 

1060A 

10605 

10606 

10607 

10608 

10609 

10610 

10611 

10612 

10613 

106K 

10615 

10616 

10617 

10618 

10619 

10620 

10621 

10622 

10623 

1062A 

10625 

10626 

10627 

10628 

10629 

10630 

10631 

10632 

10633 

1063A 

10635 

10636 

10637 



MACRO X53B(12A2) 19:37 12-Sep-85 Page 15 

MAC 9-Sep-85 09:49 INTERRUPT SERVICE, ECC CORRECTION. RETRY ROUTINES 



SEQ 0371 



;ECC ERROR REPORTER (ONLY IF NORPT=0) 



000756* 332 00 00 000262* 
000757' 263 17 00 000000 
000760' 261 17 00 000000 



000761 • 
000762' 
000763' 
000764' 
000765' 
000766' 
000767' 
000770' 

000771 ' 
000772' 
000773' 
000774' 
000775' 
000776' 
000777' 
001000' 
001001' 

001002' 
001003' 
001004' 
001005' 
001006' 
001007' 
001010' 
001011 • 

001012' 
001013' 
001014' 
001015' 
001016' 
001017' 
001020' 
001021' 



030 00 
260 17 
030 00 
200 00 
260 17 
030 00 
200 00 
037 04 












030 00 
200 00 



037 10 
336 00 
254 00 
030 00 
200 00 
350 00 



037 10 



030 00 
200 00 
037 13 
336 00 
cy 00 
030 00 
200 00 
037 13 



030 00 
200 00 
037 13 
336 00 
254 00 
030 00 
200 00 
037 13 



00 002521 ' 
00 000000* 
00 002530' 
00 002457' 
00 000345* 
00 002532' 
00 002456' 
00 000000 

00 002534' 
00 000004 
00 000000 
00 000003 
00 001002' 
00 002537' 
00 000004 
00 000000 
00 000000 

00 002540' 
17 000000 
00 000000 
00 000003 
00 001012' 
00 002537' 
00 000001 
00 000000 

00 002544' 
04 000000 
00 000000 
00 000003 
00 001022' 
00 002537' 
04 000001 
00 000000 



001022' 030 00 00 002550' 
001023' 262 17 00 000000 
001024' 263 17 00 000000 



ECCRPT: SKIPE 
RTN 
PUT 
TEXT 

ECC CORREC 

GO 

TEXT 

MOVE 

GO 

TEXT 

MOVE 

PNT4 

TEXT 

BUFF ADDR 

MOVE 

PNTADR 

SKIPN 

JRST 

TEXT 

MOVE 

AOS 

PNTADR 

TEXT 

DATA BEFORE ECC 
MOVE 
PNTHW 
SKIPN 
JRST 
TEXT 
MOVE 
PNTHW 
TEXT 

DATA AFTER ECC 
MOVE 
PNTHW 
SKIPN 
JRST 
TEXT 
MOVE 
PNTHW 
TEXT 



NORPT 



CASCIZ/ 
TION APPLIED 

IDENT 

CASCIZ/POSITION^ 

O.ECCPOS 

PSDN 

CASCIZ/ PATTERN^ 

0,ECCPAT 

CASCIZ/ 

/: 

0,4 

3 

.+5 
CASCIZ/ /] 

CASCIZ/ 

/: 

0,(P) 

3 

.+4 

CASCIZ/ /] 
0,1 

CASCIZ/ 

/J 

0,(4) 

3 

M 

CASCIZ/ /] 
0,1(4) 

CASCIZ/ 



/J 



GET 
RTN 



WANT THIS REPORTED AND LOGGED ? 
NO. NOT IF FLAG IS NON-0 
SAVE ACO 



;IDENTIFY DEVICE 
=/J 

.•PRINT U IN DECIMAL 
=/J 



;GET CORE ADDR 

;2ND WORD EFFECTED ? 

;N0 

;A TAB 

;6ET ADDR 

.•INCREMENT 



;GET WORD 1 FROM STACK 

;SEE IF 2ND WORD EFFECTED 

;N0 

;A TAB 

;GET THE WORD 



;GET 1ST WORD 

.•2ND WORD EFFECTED 

;N0 

•A TAB 

•GET THE SECOND WORD 



;EXIT 



DFRP 
DFRPI 

110 
110 
110 



n 



DFRPM2 
DFRPM2 

10638 

10639 

106A0 

106A1 

106A2 

106A3 

106AA 

106A5 

106A6 

106A7 

106A8 

106A9 

10650 

10651 

10652 

10653 

1065 A 

10655 

10656 

10657 

10658 

10659 

10660 

10661 

10662 

10663 

1066A 

10665 

10666 

10667 

10668 

10669 

10670 

10671 

10672 

10673 

1067A 

10675 

10676 

10677 

10678 

10679 

10680 

10681 



MACRO J;53B(12A2) 19:37 12-Sep-85 Page 16 

MAC 9-Sep-85 09:A9 INTERRUPT SERVICE, ECC CORRECTION, RETRY ROUTINES 



RETRY — PROGRAM RETRY ROUTINE 

THIS ROUTINE ISSUES RETRIES AS REQUESTED BY THE INTERRUPT SERVICE 

ROUTINE. IT METELV STARTS OPERATIONS AND GETS OUi. 



SEQ 0372 



CALL SEQENCE: 
GO 
RTN 



RETRY 



.-CALL THE ROUTINE 
;IT RETURNS HERE 



THE 3 MAJOR ROUTINES DEALING WITH I/O AND RETRY ARE "RETRY", 
"lOWAIT" AND "SERV". THESE ROUTINES COMMUNICATE CONTROL TO ONE 
ANOTHER BY A FLAG CALLED "RETRYF". THIS IS MORE THAN A 2 STATE FLAG. 
ONLY THE LOU ORDER 3 BITS OF RETRYF ARE USED, AND THEY ARE USED TO 
INDICATE A PARTICULAR "STATE" OF I/O. TYPICALLY: 
BIT-35 IS SET BY INTERRUPT SERVICE TO SIGNAL THAT A RETRY IS NEEDED 

FOR A PARTICULAR OPERATION. 
BIT-3A IS SET BY RETRY TO LET INTERRUPT SERVICE KNOW THAT THE CURRENT 

OPERATION IS IN RESPONSE TO A REQUEST FOR RETRY. 
BIT-33 IS A GLOBAL BIT SET BY RETRY TO LET ALL THE OTHER SOFTWARE 

KNOW THAT A RETRY SEQUENCE IS IN PROGRESS (EG.. MULTI-SECTOR) 

STATE DEFINITION 



000 NO RETRY ACTIVITY IS IN PROGRESS 

001 INTERRUPT SERVICE SAYS RETRY CURRENT OPERATION 
010 THIS STATE IS ILLEGAL 

Oil THIS STATE IS ILLEGAL 

100 IN THE MIDDLE OF A RETRY SEQUENCE BUT THIS PARTICULAR OPERATION 

IS ERROR FREE, SO FAR 

101 IN THE MIDDLE OF A RETRY OPERATION AND A RETRY HAS JUST BEEN 
REQUESTED BY INTERRUPT SERVICE 

110 IN THE MIDDLE OF A RETRY SEQUENCE AND THIS OPERATION JUST MADE 
A SUCCESSFUL RECOVERY. INTERRUPT SERVICE HAS NOT SET BIT-35 

111 IN THE MIDDLE OF A RETRY SEQUENCE AND THE CURRENT OPERATION JUST 
FAILED ONCE AGAIN. ANOTHER RETRY HAS BEEN REQUESTED. 



0FRPM2 MACRO X55B(1242) 19:37 12-Sep-85 Page 17 

DFRPM2 MAC 9-Sep-85 09:49 INTERRUPT SERVICE, 



r 



ECC CORRECTION, RETRY ROUTINES 



SEQ 0373 



10682 

10683 

10684 

10685 

10686 

10687 

10688 

10689 

10690 

10691 

10692 

10693 

10694 

10695 

10696 

10697 

10698 

10699 

10700 

10701 

10702 

10703 

10704 

10705 

10706 

10707 

10708 

10709 

10710 

10711 

10712 

10713 

10714 

10715 

10716 

10717 

10718 

10719 

10720 

10721 

10722 

10723 

10724 

10725 

10726 

10727 

10728 

10729 

10730 

10731 

10732 

10733 

10734 

10735 

10736 



001025' 260 17 00 002276* 

001026' 254 00 00 001052' 

001027' 254 00 00 001054' 

001030' 254 00 00 001056' 

001031' 261 17 00 000001 

001032' 260 17 00 001313' 

001033* 2o.' 01 14 000035 

001034* 202 01 14 000053 



001035* 200 01 14 000046 

001036' 313 01 14 000047 

001037' 254 00 00 001060' 

001040' 260 17 00 001257' 

001041* 200 01 17 000000 

001042' 306 01 00 000061 

001043' 260 17 00 002010' 

001044' 306 01 00 000071 

001045' 260 17 00 002114' 

001046' 306 01 00 000073 

001047* 260 17 00 002114* 

001050* 350 00 14 000046 

001051* 254 00 00 001035* 



COMMAND CODES 



71 READ DATA 

73 READ HEADER AND DATA 

75 READ TD 

61 WRITE DATA 

63 WRITE HEADER*DATA (FORMAT) 

65 WRITE TD 

05 SEEK 

07 RECAL 

31 SEARCH 

15 OFFSET 

17 RTN TO CENTERLINE 

01 NO-OP 

23 NO-OP 

11 DRIVE CLEAR 

21 READIN PRESET 

35 DIAGNOSTIC 

13 RELEASE FROM PORT 



RETRY: GO RCLASS 

JRST RETYHO 

JRST RETYPO 

JRST RETYFI 

PUT 1 

GO RLBNS 

MOVE 1.XFST3(DSW) 

MOVEM 1.RXFST3(DSW) 



.•CLASSIFY FOR TYPE OF COMMAND 
+1 RETURN HOUSKEEPING (NOT USED) 
♦2 RETURN POSITIONING 
♦3 RETURN FIXED DATA TRANSFER 
♦4 RETURN NON-FIXED DATA TRANSFER 
AC1 CONTAINS THE COMMAND 
BUILD LOGICAL BLOCK NUMBERS 
GET ORIG WC..CORE ADDRESS 
SAVE IT FOR CORE ADD CALCULATIONS 



WHEN WE ARIVE HERE CONDITIONS ARE AS FOLLOWS: 

RIBL»C(DSW) POINTS TO THE FIRST LOGICAL BLOCK NUMBER 
RFBLK(DSW) POINTS TO THE LAST LOGICAL BLOCK NUMBER 
RCBLK(DSW) POINTS TO THE CURRENT LOGICAL BLOCK NUMBER 

RETRYA: MOVE l.RC8LK(DSW) ;6ET RETRY CURRENT BLOCK 



CAMLE 1,RFBLK(DSW) 

JRST RETRYX 

GO RXFSTC 

MOVE l.(P) 

CAIN 1.61 

60 RT.61 

CAIN 1,71 

GO RT.71 

CAIN 1.73 

GO RT.73 

AOS RCBLK(DSW) 

JRST RETRYA 



;ARE THERE MORE BLOCKS TO TRANSFER 
;N0. RESTORE AND EXIT 
.•CALCULATE XFST2 AND XFST3 
.•GET COMMAND THAT FAILED 
.•IS COMMAND WRITE DATA 

.•PERFORM A WRITE DATA RETRY COMMAND 

.•READ DATA COMMAND ? 

•YES RETRY IT 

•READ HEADER AND DATA COMMAND ? 

;YES. RETRY IT 

:BUMP CURRENT BLOCK NUMBER 
;G0 DO NEXT SECTOR 



561 



DFRPH2 MACRO X53B(1242: 19:37 12-Sep-85 Page 17-1 

DFRPM2 MAC 9-Sep-85 09:49 INTERRUPT SERVICE. EGG CORRECTION. RETRY ROUTINES 



SEO 0374 



Of 

or 



10737 
1Q738 
10739 
10740 
10741 
10742 
10743 
10744 
10745 
10746 



001052' 
001053' 
001054' 
001055' 
001056' 
001057* 
001060' 
001061' 



260 17 00 QQ1210' 
254 00 00 001061' 


RETYHO: 


GO 
JRST 


RHOUSE 
RETRYY 


260 17 00 001235' 


RE TYPO: 


GO 


RPOSIT 


254 00 00 001061' 




JRST 


RETRYY 


260 17 00 001250* 


RETYFI: 


GO 


RFIXED 


254 00 00 001061' 




JRST 


RETRYY 


262 17 00 000001 


RETRYX: 


GET 


1 


263 17 00 000000 


RETRYY: 


RTN 





RETRY HOUSKEEPING COMMAND 

EXIT 

RETRY POSITIONING COMMAND 

EXIT 

RETRY FIXED DATA COMMAND. READ/WRITE 

EXIT 

RESTORE AC1 

RETURN TO PROGRAM 



OFRPH? 
DFRPM2 

1Q7A7 
107A8 
107A9 
10750 
10751 
10752 
10753 
1075A 
10755 
10756 
10757 
10758 
10759 
10760 

I 10761 
10762 
10763 
1076A 

I 10765 
10766 
10767 
10768 



MACRO X55Bn242) 19:37 12-Sep-85 Page 18 



MAC 



9-Sep-85 09:49 



001062* 



, 000000 

001065* 000000 

001064' 000000 

001065* 000000 

001066' 000000 



001067* 000000 

001070' 000000 

001071* 000000 

001072* 000000 

001073* 000000 



001074* 
001 075* 
001076* 
0010^7' 
001100* 



000000 
000000 
000000 
000000 
000000 



000003 
000003 
000003 
000003 
000003 



000003 
000003 
000003 
000003 
000003 

000003 
000003 
000003 
000003 
000003 



I 



INTERRUPT SERVICE. ECC CORRECTION, RETRY ROUTINES 



SEC 0375 



;NUWER OF RETRIES FOR SOHE TYPES OF THE DATA TRANSFERS 

5 
5 



RC.65 
RC.r 



RC." 
RC.61 



WRITE TRACK DESCRIPTOR 

READ TRACK DESCRIPTOR 

WRITE HEADER AND DATA (FORMAT) 

READ HEADER AND DATA 

WRITE DATA (1ST WITH HCI=0 AND THEN HCI=1) 



;NU«BER OF RETRIES FOR VARIOUS POSITION AND HOUSEKEEPING COMH*Nfo; 



RC.05 
RC.07 
RC.31 
RC.15 
RC.17 

RC.01 
RC.23 
RC.11 
RC.21 
RC.13 



SEEK 
RECAL 
SEARCH 
OFFSET 

RETURN TO CENTERLINE 

NO-OP 
NO-OP 

DRIVE CLEAR 
READIN PRESET 
RELEASE FROM PORT 



0FRPM2 
DFRPM2 

10769 

10770 

10771 

10772 

10773 

1077A 

10775 

10776 

10777 

10778 

10779 

10780 

10781 

10782 

10783 

1078A 

10785 

10786 

10787 

10788 

10789 

10790 

10791 

10792 

10793 

1079A 

10795 

10796 

10797 

10798 

10799 

10800 

10801 

10802 

10803 

1080A 

10805 

10806 

10807 

10808 

10809 

10810 

10811 

10812 



MACRO X53B(1242) 19:37 12-Sep-85 Page 19 
MAC 9-Sep-85 09:49 INTFRRUPT 



SERVICE. ECC CORRECTION, RETRY ROUTINES 



SEC 0376 



.■RETRY COUNTS AND OFFSET REGISTER TABLES FDR READ HEADER OR READ HEADER AND 
.•DATA OPERATION USING OFFSET. THE LEFT HAND SIDE OF EACH TABLE IS A COUNT 
.-AND THE RIGHT HAND SIDE IS AN IMAGE OF THE OFFSET REGISTER THAT WILL BE 
.•USED FOR THE RETRY. 



001101' 
001102" 
001103' 
001 10A' 
001105' 
001106' 
001107' 
001110' 
001111' 

001112' 
001113' 
0011U' 
001115' 
001116' 
001117* 
001120' 
001121' 
001122' 



000010 
000010 
000002 
000002 
000002 
000002 
000002 
000002 
000 00 

000010 
000010 
000002 
000002 
000002 
000002 
000002 
000002 
000 00 



000000 
002000 
002010 
002210 
002020 
002220 
002030 
002230 
00 000000 

000000 
002000 
002010 
002210 
002020 
002220 
002030 
002230 
00 000000 



ALG.04: 



•D8..0000 
•D8..2000 
D2..2010 
D2..2210 
D2.,2020 
D2,.2220 
D2..2030 
D2..2230 
Z 



ALG.06: 



•D8..0000 
•D8..2000 
•D2..2010 
•D2..2210 
•D2.,2020 
*D2..2220 
•D2.,2030 
•D2..2230 
2 



001123' 000 00 00 000000 



001 124' 000010 000000 
001125' 000010 002000 
001126' Ov) 00 00 000000 



AL6.SP: Z 



ALG.07: 



•D8..0000 
*D8..2000 
2 



FOR RP04. NO OFFSET, HCI 
NO OFFSET, HCI 
♦400 MICRO-IN, HCI=1 
-400 HOCRO-IN. HCI=1 
♦800 HICRO-IN, HCI=1 
-800 HICRO-IN, HCI=1 
♦1200 HICRO-IN, HCI=1 
-1200 HICRO-IN. HCI=1 
DENOTES END OF TABLE 



^0 
= 1 



FOR RP06. NO OFFSET, 
NO OFFSET, 
HICRO-IN, HCI=1 
HOCRO-IN, 
HICRO-IN, 
HICRO-IN, 
HICRO-IN, 
HICRO-IN, 



♦200 
-200 
♦400 
-400 
♦600 
-600 



HCI 
HCI 



=0 



DENOTES END OF 



HCI=1 
HCI = 1 
HCI = 1 
HCI = 1 
HCI = 1 
TABLE 



SPARE, FOR FUTURE DRIVE TYPE 
DENOTES END OF TABLE 

FOR RP07. NO OFFSET. HCI=0 
NO OFFSET, HCI=1 
DENOTES END OF TABLE 



001127' 
001130' 
001131' 
001132' 
001133' 

001134* 
001135* 



.'DIFFERENT FORMAT FOR RH03 TABLE BECAUSE OF HARDWARE IHPLEHENTATION 
.-THE LOW ORDER 2 BITS ARE USED DENOTE POSITIVE AND NEGATIVE OFFSETS 



000010 
000010 
000002 
000002 
000 00 

000010 
000 00 



ooooco 

002000 
002001 
00,?002 
I '^'^0000 

00 000000 



AL6.03: 



•D8,,0000 
•D8,,2000 
*D2,.2001 
*D2.,2002 
Z 



ALG.20: •D8..0000 
Z 



;FOR RH03. NO OFFSET, HCI=0 
NO OFFSET. HCI=1 
.•♦OFFSET, HCI=1 
.•-OFFSET, HCI = 1 
.•DENOTES END OF TABLE 

;FOR RP20. RE-READ. 
.•DENOTES END OF TABLE 



DFRPM2 
DFRPM2 

10813 

108U 

10815 

10816 

10817 

10818 

10819 

10820 

10821 

10822 

10823 

10824 

10825 

10826 

10827 

10828 

10829 

10830 

10831 

10832 

10833 

10834 

10835 

10836 

10837 

10838 

10839 

10840 

10841 

10842 

10843 

10844 

10845 

10846 

10847 

10848 

10849 

10850 

10851 

10852 

10853 

10854 

10855 

10856 

10857 

10858 

10859 

10860 

10861 

10862 

10863 

10864 

10865 

10866 

10867 



MACRO X53B(1242) 19:37 12-SeD-85 Page 20 

MAC 9-Sep-85 09:49 INTERRUPT SERVICE, ECC CORRECTION. RETRY ROUTINES 

;R0UTINE TO CHECK IF A MEDIA RELATED ERROR HAS BEEN REPORTED AND If 
.•SO, COUNT ALL SUBSIQUENT ERRORS BUT DO NOT REPORT THEM. THE 'PALERS* 
.•FLAG WILL CAUSE ALL ERRORS TO BE REPORTED. AND BE SETTING THE 'PNT' 
;BIT IN THE THIRD WORD OF THE MAPOUT ENTRY. THAT ENTRY WILL BE 
.•REPORTED EVERY TIME. THE PURPOSE OF THIS ROUTINE IS TO REDUCE 
.•REPETIVE PRINTOUTS OF THE SAME MEDIA RELATED ERRORS. 



SEQ 0377 



001136' 
001137' 
001140' 
001141' 
001142' 
001143' 
001144' 
001145' 
001146' 
001147' 
001150' 
001151' 



261 17 
261 17 
261 17 
261 17 
402 00 
336 00 
254 00 
260 17 
254 00 
254 00 
306 01 
254 00 



00 000001 
00 000002 
00 000003 
00 000004 
00 000756* 
00 000011 
00 001202' 
00 002276' 
00 001202' 
00 0C1202' 
00 000063 
00 001153' 



001152' 254 
001153' 260 
001154' 202 



00 
17 
02 



00 
GO 
00 



001202' 
002343' 
000003 



001 155' 6u' 02 00 001770 
001 1 56' 25; 00 00 001202' 



001157' 
001160' 
001161' 
001162' 
001163' 
001164' 
001165' 
001166' 
001167' 



135 
135 
504 
202 
476 
260 
370 
2CQ 
254 



02 
01 
02 
02 
00 
17 
00 
17 
00 



00 002554' 

00 002555' 

00 000001 

00 000004 

00 000001 

00 COOC^O* 

or QQ0001 

on o^ocoo* 

00 001176' 



001170' 
001171' 
001172' 
001173' 
001174' 



200 01 
603 01 
254 00 
200 01 
607 01 
001175' 476 00 



02 000002 
00 004000 
00 001176' 
00 030046 
" 001000 
001142* 



8? 



.•CAL SEQUENCE 
60 

i ma 

RMEDIA: PUT 
PUT 
PUT 
PUT 
SETZM 
SKIPN 
JRST 
GO 
JRST 
JRST 
fAIN 
RST 



RMEDIA 



\ 



RMED1 



JRST 

GO 

MOVEM 



4 

NORPT 

ERFLG 

RMEDEX 

RCLASS 

RMEDEX 

RMEDEX 

1.63 

RMED1 

RMEDEX 
ERTRAN 
2.3 



.•CHECKS TO SEE IF THIS ERROR HAS BEEN REPORTED 
.•RETURNS +1 ALWAYS 

.•SAVE SOME AC'S 

• 

|. 

HERE WE ASUME TO REPORT ALL ERRORS 

DO WE HAVE AN ERROR 

NO. THEN EXIT 

CHECK FOR ERROR TYPE 

HOUSKEEPING 

POSITIONING 

SKIP IF NOT A FORMAT COMMAND 

READ/WRITE DATA OR READ HEADER AND 

DATA, CONTINUE MEDIA ERROR TESTER 

NOT MEDIA RELATED. EXIT 

YES, MEDIA RELATED, COLLtCT ERRORS IN AC2 

SAVE ERROR BITS FROM ERTRAN 



.•HERE IF ERROR IS MEADIA RELATED. NOW CHECK IF ERROR TYPE SHOULD BE RECORDED 
TLNN 2.1770 



JRST 



RMEDEX 



IS DCK.ECH.HCRC.HCE.DTE.OPI OR 

(SPARE) BIT S:T ? 

NOT AN ERROR TYPE KEPT BY MAPOUT 



.-NOW WE HAVE TO CKECK TO SEE IF THIS IS A REPEATE ON A KNOWN AND 
."PREVIOUS REPORTED ERROR, IF IT IS DON'T PRINT IT AGAIN 

2, [POINT 16.R5D(DSW),35] ;GET SURFACE AND SECTOR 
1. [POINT 16.R13D(DSW),35: ;GET CYLINDER NUMBER 
2.1 ;AC2/ CYI... SURF, SECT 

MOVEM 2,4 ;SAVF.. WE f^.AY NEED FOR PRGENT 

SETOM ; ;MAKE ACl NEGAITIVE 

60 ADCON ; CONVERT TO LBN 

SOS 1 ;NOW LBN POINiS TO SECTOR THAT FAILED 

60 GETENT ;SEE IT WE HAVE TMTRY !\ KAPOUT "9EA 
J.7ST RfltDNF ;N0 ENTRY, SET UP AND WAK MAPOUT AREA 

.•HERE WE HAVE ERROR BITS IN AC3 AND POINTER TO MAPOUT ENRTY IN AC2 



MOVE 
TLNE 
JRST 
MOVE 
TLNN 
SETOM 



1,2(2) 

1.4000 

RMEDNE 

I.CONSW 

l.PALERS 

NORPT 



GET ENTRY WORD 3 

IS 'PNT' BIT SET 

WE WANT TO PRINT THIS ERROR 

6ET THE SWITCHES 

DO WE PRINT ALL ERRORS 

NO. DON'T PRINT THIS ERROR 



0365 



DFRPM2 
DFRPM2 

10868 
10869 
10870 
10871 
10872 
10873 
10874 
10875 
10876 
10877 
10878 
10879 
10880 
10881 



MACRO X53B(12A2) 19:37 12-Sep-85 Page 20-1 

MAC 9-Sep-85 09:49 INTERRUPT SF^VICE, ECC CORRECTION, RETRY ROUTINES 



SEQ 0378 



;N0 WE ARE READY TO MAKE AN ENTRY IN THE MAPOUT ARE 



001176' 
001177' 
001200' 
001201' 
001202' 
001203' 
001204' 
001205' 
001206' 



200 01 
200 02 
260 17 



00 



00 
00 



350 00 14 



262 17 

262 17 

262 17 

262 17 

263 17 



00 
00 
00 
00 
00 



000003 

000004 

000000* 

002364 

000004 

000003 

000002 

000001 

000000 



RMEDNE ; 



RMEDEX; 



MOVE 


1,3 


MOVE 


2,4 


60 


PRGENT 


AOS 


MAPOVR(DSW) 


GET 


4 


GET 


3 


GET 


2 


GET 


1 


RTN 





GET ERROR BITS 
GET LBN FOR 'PRGENT' (L8N+1) 
MAKE ENTRY IN THE MAPOUT AREA 
BUMP MAPOUT OVER FLOW COUNTER 
RESTORE SOME AC'S 



RETURN TO PROGRAM 



DF 
DF 

1 
1 
1 



n 



DFRPM2 
DFRPM2 

10882 
10883 
1088A 
10885 
10886 
10887 
10888 
10889 
10890 
10891 
10892 
10893 
1089A 
10895 
10896 
10897 
10898 
10899 
10900 
10901 
10902 
10903 
1090A 
10905 
10906 
10907 
10908 
10909 
10910 
10911 
10912 
10913 
109U 
10915 
10916 



MACRO X53B(12A2) 19:37 12-Sep-85 Page 21 

MAC 9-Sep-85 09:49 INTERRUPT SERVICE, ECC CORRECTION, RETRY ROUTINES 

.•SUBROUTINE TO PERFORM RETRY 'S OF HOUSE KEEKING COMMANDS 

;THIS ROUTINE IS ENTERED FROM THE RETRY MODULE, AC1 CONTAINS 

;THE COMMAND TO BE RETRYED AND RCOUNT CONTAINS THE ITERIATION COUNT. 

;IF COMMAND RECOVERY FAILS THE DRIVE WILL BE MARKED UNUSABLE IN THE DSB. 



SEQ 0379 



001207' 263 17 00 000000 



.•CALL SEQUENCE 



001210' 
001211' 
001212' 
001213' 
0012U' 

001215' 
001216' 
001217' 
001220' 
001221' 

001222' 
001223' 
001224' 
001225' 
001226' 

001227' 
001230' 
001231' 
001232' 
001233' 



661 
261 
260 
260 
255 

205 
260 
255 
254 
602 



01 
17 
17 
17 
00 

01 
17 
00 
00 
01 

















00 000010 
00 000001 
00 000000* 
00 000000* 
00 000000 



RHOUSE : 
RH0US1 : 



00 
00 
00 
00 
00 



000010 

000000* 

000000 

001215' 

040000 



254 00 00 001225' 

262 17 00 000001 

263 17 00 000000 
335 00 14 000050 
254 00 00 001232' 



370 
262 
254 
260 
6o! 



00 
17 
00 
17 
14 



14 
00 
00 
00 
00 



000050 

000001 

001211' 

000531* 

010000 



RH0US4 : 
RH0US2: 



RH0US3: 



TLO 

PUT 

GO 

GO 

JFCL 

MOVSI 

GO 

JFCL 

JRST 

TRNE 

JRST 

GET 

RTN 

SKIP6E 

JRST 

SOS 

GET 

JRST 

GO 

TLO 



001234' 254 00 00 001223* 



RHOUSE 



GO 
RTN 

1.(1814) 

• REQ 
LDRGOO 



1.(1B14) 
RDRGOl 

.-3 

1.40000 

RH0US2 
1 

RCOUNT (DSW) 
RH0US3 

RCOUNT(DSW) 

1 

RH0US1 

SNAPA 

DSW.(1B5) 



JRST RH0US4 



DO RETRY OF HOUSKEEPING COMMAND 
RETURNS +1 IN BOTH CASES 

DON'T REPORT RAE'S 
SAVE ACI 

REQUEST THE DRIVE 
LOAD CONTROL REGISTER 
IGNORE CBTOER 

DON'T REPORT RAE'S 

READ STATUS REGISTER 

IGNORE CBTOER 

PARITY ERROR 

IS COMPOSIT ERROR SET ? 

YES, CONTINUE 

NO, RESTORE ACl 

RETURN TO PROGRAM 

ALL RETRY 'S DONE ? 

YES, GATHER ERROR INFO AND EXIT 

DECREMENT RETRY COUNTER 

RESTORE ACl 

CONTINUE TRYING COMMAND 

SNAPSHOT ALL REGISTERS, RH AND DRIVE 

SET RETRY FAILED BIT 

DONE, EXIT TO PROGRAM 



DFI 
DFF 

r 
r 
r 
r 
r 
r 

V 

r 
r 



DFRPM2 
DFRPM2 

10917 
10918 
10919 
10920 
10921 
10922 
10923 
1092A 
10925 
10926 
10927 
10928 
10929 
10930 
10931 
10932 
10933 
1093A 
10935 
10936 
10937 
10938 



MACRO 
MAC 



X53B(12A2) 19:37 12-Sep-85 Page 12 
9-Sep-85 09:49 INTERRUPT 



SERVICE, ECC CORRECTION, RETRY ROUTINES 



SEQ 0380 



DF 
DF 



; SUBROUTINE TO PERFORM RETRY 'S OF POSITIONING COMMANDS 
.•THIS ROUTINE DECODES WHICH POSITIONING COMMAND FAILED AND DISPATCHES 
;T0 THE PROPER RETRY ROUTINE. WHEN CALLED ACI CONTAINS THE COMMAND TO 
.•RETRY WITH THE GO BIT SET 



.•CALLING SEQUENCE 



GO 
RTN 



RPOSIT 



; RE TRY POSITIONING CMD 
.•RETURN +1 ALWAYS 



001235" 
001236' 
001237' 
001 2A0' 
001 2A1' 
001242' 
001243' 
001244* 
001245* 
001246* 
001247* 



306 
260 
306 
260 
306 
260 
306 
260 
306 
260 
263 



01 
17 
01 
17 
01 
17 
01 
17 
01 
17 
17 



00 000005 
00 001421' 
00 000007 
00 001367' 
00 000031 
00 001457' 
00 000015 
00 001606' 
00 000017 
00 001544* 
00 000000 



RPOSIT; 



CAIN 

GO 

CAIN 

GO 

CAIN 

GO 

CAIN 

GO 

CAIN 

GO 

RTN 



1.05 

RT.05 

1.07 

RT.07 

1,31 

RT.31 

1,15^ 

RT.15 

1,17 

Rf.17 



SEEK COMMAND ? 

YET. RETRY IT 

RECAL COMMAND ? 

YES. RETRY IT 

SEARCH COMMAND ? 

YES. RETRY IT 

OFFSET COMMAND ? 

YES RETRY IT 

RETURN TO CENTER LINE COMMAND ? 

YES. RETRY IT 

RETURN TO PROGRAM 



.„J 



5368 



DFRPM2 
DFRPM2 

10939 
109A0 
109A1 
109A2 
109A3 
109AA 
10945 
109A6 
109A7 
10948 
10949 
10950 
10951 
10952 
10953 
10954 



MACRO X53B(1242) 19:37 12-Sep-85 Page 23 

MAC 9-Sep-85 09:49 INTERRUPT SERVICE. ECC CORRECTION, RETRY ROUTINES 

SUBROUTINE TO PERFORM RETRY'S OF DATA COMMANDS WITH FIXED TRANSFER 
SIZES, THE COMMANDS ARE WRITE HEADER AND DATA (FORMAT), WRITE TD AND 
READ TD. THIS ROUTINE IS ENTERED WITH THE COMMAND IN AC1 AND GO SET. 



SEQ 0381 



DF 
DF 



CALL SEQUENCE GO RFIXtD 
RTN 



001250' 
001251' 
001252' 
001253' 
001254' 
001255' 
001256' 



306 01 
260 17 
306 01 
260 17 
306 01 
260 17 
263 17 



00 
00 
00 
00 
00 
00 
00 



000063 

001746* 

000065 

001640' 

000075 

001703* 

000000 



RFIXED: 



CAIN 

GO 

CAIN 

GO 

CAIN 

GO 

RTN 



1,63 

RT.63 

1,65 

Rf.65 

1,75 

Rf.75 



.•RETRY FIXED DATA COMMAND 
.•RETURN +1 ALWAYS 

WRITE HEADER AND DATA COMMAND ? 

YES RETRY IT 

WRifE TRACK DESCRIPTOR COMMAND ? 

YES RETRY IT 

REa6 track DESCRIPTOR COMMAND ? 

YES RETRY IT 

RETURN TO PROGRAM 



r 



dfrpm;? 

DFRPM2 

10955 
10956 
10957 
10958 
10959 
10960 
10961 
10962 
10963 
10964 
10965 
10966 
10967 
10968 
10969 
10970 
10971 
10972 
10973 
1097A 
10975 
10976 
10977 
10978 
10979 
10980 
10981 
10982 
10983 
1098A 
10985 
10986 
10987 
10988 
10989 
10990 
10991 
10992 
10993 
1099A 
10995 
10996 
10997 
10998 
10999 
11000 
11001 



MACRO X53B(1 242) 19:37 12-Sep-85 Page 24 

MAC 9-Sep-85 09:49 INTERRUPT SERVICE, ECC CORRECTION, RETRY ROUTINES 

.-SUBROUTINE TO GENERATE THE WORD COUNT,, CORE ADDRESS, CYLINDER,, 
.•SURFACE, SECTOR. THESE ARE PUT INTO RXFST2 AND RXFST3 FOR THE RETRY 
.•ALGORYTHEMS 



SEO 0382 



001257' 261 17 00 000001 

001260' 261 17 00 000002 

001261' 261 17 00 000003 

001262' 261 17 00 000004 



001263' 200 01 14 000046 

001264' 274 01 14 000045 

001265' 220 01 14 000036 

001266' 550 03 14 000053 

001267' 270 01 00 000003 

001270' 200 04 14 000046 

001271' 312 04 14 000047 

001272' 254 00 00 001310' 

001273' 336 00 14 000051 

001274' 254 00 00 001310' 

001275' 514 04 14 000051 



001276' 4i' 04 

001277' 202 04 

001300' 200 01 

001301' 260 17 



00 000001 
14 000035 
14 000046 
00 001164* 



001302' 
001303' 
001304' 
001305' 
001306' 
001307' 



202 02 14 000034 
262 17 00 000004 
262 17 00 000003 
262 17 00 000002 



262 17 

263 17 



001310' 514 04 
001311' 434 04 
001312' 254 00 



00 000001 
00 000000 

14 000036 
00 000001 
00 001277' 



.•CALL SEQUENCE 



RXFSTC: 



PUT 
PUT 
PUT 
PUT 



GO 

RTN 

1 
2 
3 
4 



RXFSTC 



;RETRY TRANSFER START CALCULATE 
;RETURNS ■^1 ALWAYS 

;SAVE AC'S 



.•CALCULATE CORE ADDRESS = ((RCBKL - RIBLK) X BLKSIZ) + CORE ADDR 
;THIS CORE ADDRESS IS FOR A SINGLE SECTOR XRANSFER 



MOVE l.RCBLX(DSW) 

SUB 1,RIBLK(DSW) 

IMUL 1. BLKSIZ (DSW) 

HRRZ 3.RXFST3(DSW) 

ADD 1,3 

MOVE 4,RCBLK(DSW) 

CAME 4,RFBLK(DSW) 

JRST RXFSTl 

SKIPN RWCLXF(DSW) 

JRST RXFSTl 

HRLZ 4,RWCLXF(DSW) 



lOR 
RXFST2: MOVEM 
MOVE 
GO 

MOVEM 

GET 

GET 

GET 

GET 

RTN 



RXFSTl 



HRLZ 
I OR 
JRST 



4,1 

4,XFST3(DSW) 
1,RCBLK(DSW) 
AD CON 

2,XFST2(DSW) 

4 

3 

2 

1 



4,BLKSIZ(DSW) 
RXFST2 



GET CURRENT BLOCK NUMBER 
SUBTRACT INIT'AL BLOCK NUMBER 
MULTIPLY TIM-S BLOCK SIZE 
GET ORIGINAL CORE ADDRESS 
ADD TO PRODUCE NEW CORE ADDRESS 

GET CURRENT BLOCK NUMBER 
IS THIS THE FINAL BLOCK 
NO, 60 BUILD XFST3 
IS LAST SECTOR WC = 
YES, GO BUILD XFST3 

GET BLOCK SIZE IN LEFT FOR 

LAST TRANSFER MORE THAN AND 

LESS THAN 200 (128.) 

PUT CORE ADDRESS IN RIGHT 

SAVE FOR XFRST ROUTINE 

GET CURRENT BLOCK 

CONVERT TO CYL,, SURF, SECT 

SAVE FOR XFRST ROUTINE 
RESTORE AC'S 



RETURN TO PROGRAM 

GET BLOCK SIZE IN LEFT 
PUT CORE ADDRESS IN RIGHT 
GO SAVE IT AND CONTINUE 



DFRPM2 
DFRPM2 

11002 

11003 

1100A 

11005 

11006 

11007 

11008 

11009 

11010 

11011 

11012 

11013 

110U 

11015 

11016 

11017 

11018 

11019 

11020 

11021 

11022 

11023 

1102A 

1'025 

11026 

11027 

11028 

11029 

11030 

11031 

11032 

11033 

1103A 

11035 

11036 

11037 

11038 

11039 

llOAO 

11041 

11 042 

11043 

11044 

11045 

11046 

11047 

11048 

11049 

11050 

11051 

11052 

11053 

11054 

11055 

11056 



MACRO X53B(1242) 19:37 12-Sep-85 Page 25 



MAC 



9-Sep-85 09:49 



001313* 261 
001314' 261 
001315' 261 



17 
17 
17 



00 000001 
00 000002 
00 000003 



001316' 200 02 14 000034 

001317' 476 00 00 000001 

001320' 260 17 00 001301* 

001321' 202 01 14 000045 



001322' 
001323' 
001324' 
001325' 
001326' 



554 01 
402 00 
230 01 
336 00 
254 00 



14 000035 
00 000002 
14 000036 
00 000002 
00 001331' 



001327' 2ui 02 14 000051 

001330' 254 00 00 001333' 

001331' 370 00 00 000001 

001332' 402 00 14 000051 

001333' 202 01 14 000052 

001334' 270 01 14 000045 

001335' 202 01 14 000047 



001336' 135 02 00 002554' 

001337' 135 01 00 002555' 

001340' 504 02 00 000001 

001341' 476 00 00 000001 

001342' 260 17 00 001320* 



001343' 200 03 14 000011 
001344' 640 03 00 100000 

602 03 

275 01 



00 100100 

00 000001 

001347' 202 01 14 000046 



001345' 
001346' 



001350' 262 U 00 000003 
001351' 262 17 00 000002 



INTERRUPT SERVICE, ECC CORRECTION, RETRY ROUTINES 

.-SUBROUTINE TO CONVERT CYL, , SURF, TRACK TO LOGICAL BLOCK NUMBER 
.•THIS ROUTINE CREATES RIBLK (RETRY INITIAL BLOCK), RCBLK (RETRY 
.•CURRENT BLOCK) AND RFBLK (RETRY FINAL BLOCK). IJ ALSO CALCULATES 
;IF THE LAST BLOCK IS AN FULL SECTOR AND IF NOT SAVES THE WORD COUNT 
;IN RUCLXF (RETRY WORD COUNT LAST TRANSFER), AND IT CHECKS TO SEE 
;IF THE FAILING BLOCK WAS ECC CORRECTED AND ADJUSTS THE RCBLK +1 
;IF IT WAS. 



SEQ 0383 



or 
or 



.-CALL SEQUENCE 



GO 
RTN 



RLBNS 



.•CONVERT TO LOGICAL BKL NUMBER 
.•RETURNS +1 ALWAYS 



RLBNS: 



PUT 1 
PUT 2 
PUT 3 



;SAVE AC'S 



;HERE WE CALCULATE INITIAL BLOCK WHERE TRANSFER STARTED 



MOVE 2,XFST2(DSW) 

SETOM 1 

GO AD CON 

MOVEM 1. RIBLK (DSW) 



GET THE INITIAL BLOCK NUMBER 
WANT TO CONVERT IT OT BLOCK 
CONVERT IT 
SAVE IT 



.•HERE WE CALCULATE FINAL BLOCK NUMBER AND WORD COUNT FOR LAST BLOCK 



RLBNS 1 



HLRZ 

SETZM 

IDIV 

SKIPN 

JRST 

MOVEM 
JRST 
SOS 
SETZM 



RLBNS2: MOVEM 
ADD 
MOVEM 



1,XFST3(DSW) 

2 

1,BLKSIZ(DSW) 

2 

RLBNS 1 

2,RWCLXF(DSW) 

RLBNS2 

1 

RWCLXF(DSW) 

1,RBKCNT(DSW) 

1,RIBLK(DSW) 

1,RFBLK(DSW) 



GET THE INITIAL WORD COUNT 

CLEAR AC 

CALCULATE FINAL BLOCK 

WAS LAST BLOCK 128. WORDS ? 

YES, CONTINUE 

SAVE REMAINDER FOR WC LAST BLOCK 

CONTINUE 

DECREMENT BLOCK COUNT 

CLEAR LAST SECTOR WORD COUNT 

SAVE IN RETRY BLOCK COUNT 

TOTAL BLOCKS+INITIAL BLOCK=FINAL BLOCK 

SAVE RETRY FINAL BLOCK COUNT 



;HERE WE CALCULATE CURRENT BLOCK NUMBER 



LDB 

LDB 

HRL 

SETOM 

GO 

MOVE 

TRC 

TRNE 

SU6I 

MOVEM 



2, [POINT 16,R5D(DSW),35] 
1, [POINT 16,R13D(DSW),35] 



RLBNS4: GET 
GET 



AD CON 

3,R2D(DSW) 

3,100000 

3,100100 

1,1 

1,RC8LK(DSW) 

3 

2 



AC2/ CYL,, SURF, SECT 
MAKE AC1 NE6AITIVE 
CONVERT TO LOGICAL BLOCK 

GET ERROR REGISTER 1 
COMPLEMENT ECH BIT 
DKC=1 AND ECH=0 
NO, BACK UP RCBLK 
SAVE RETRY CURRENT BLOCK 

RESTORE AC'S 



.-GET SURFACE AND SECTOR 
;GET CYLINDER NUMBER 



571 



DFRPM2 MACRO X53B(1242) 19:37 12-Sep-85 Page 25-1 

DFRPM2 MAC 9-Sep-85 09:49 INTERRUPT SERVICE, ECC CORRECTION, RETRY ROUTINES 



SEQ 0384 



11057 001352' 262 17 00 000001 

11058 001353' 263 17 00 000000 
11059 



GET 
RTN 



1 



; RE TURN TO PROGRAM 



DFRPM2 
DFRPM2 

11060 
11061 
11062 
11063 
1106A 
11065 
11066 
11067 
11068 
11069 
11070 
11071 
11072 
11073 
1107A 
11075 
11076 
11077 
11078 
11079 
11080 
11081 
11082 
11083 
11084 
11085 



MACRO X53B(1242) 19:37 12-Sep-85 Page 26 

MAC 9-Sep-85 09:A9 INTERRUPT SERVICE, ECC CORRECTION, RETRY ROUTINES 

SUBROUTINE TO MERGE AC2 AND ACS. THIS IS USED IN ERROR RECOVERY 
BITS 08-U OF AC2 ARE LOGICALLY ORED WITH BITS 08-K OF AC5 AND BITS 
27-35 OF AC2 ARE ADDED TO BITS 27-35 OF AC5. AC2 IS NOT CHANGED, AC5 
CONTAINS IN BITS 08-K BITS TO INDICATE THE FOLLOWING TYPES OF ERRORS 
BIT-08=DCK BIT-09=ECH BIT-10=HCRC BIT-11=HCE 
BIT-12=DTE BIT-13=0PI BIT-U=(NOT USED-SPARE) 
BITS 27-35 OF AC5 CONTAIN THE TOTAL ERRORS SINCE THE LAST TIME THE 
MAPOUT ARE WAS UPDATED. 



SEQ 0385 



001354' 
001355' 
001356' 
001357' 
001360' 
001361' 
001362' 
001363' 
001364' 
001365' 
001366' 



CAL SEQUENCE 
GO 
RTN 



261 17 00 000003 C0MB25: PUT 

261 17 00 000004 PUT 
202 02 00 000003 MOVEM 
270 03 00 000005 ADD 
405 03 00 000777 ANDI 
436 02 00 000005 lORM 
620 05 00 777777 TRZ 
436 03 00 000005 lORM 

262 17 00 000004 GET 

262 17 00 000003 GET 

263 17 00 000000 RTN 



COMB25 



3 

4 

2,3 

3,5 

3,777 

2,5 

5,-1 

3,5 

4 

3 



.•MERGE AC2 AND ACS 
.•RETURN =1 ALWAYS 

.•SAVE SOME AC'S 

•GET AC2 

;ADD CONTENTS OF ACS 

.-MASK UNWANTED BITS 

.'LOGICAL OR OF AC2 AND ACS IN TO AC5 

.-CLEAR RIGHT HALF OF ACS 

;PUT IN THE TOTAL COUNT 

; RE STORE SOME AC'S 

•RETURN TO PROGRAM 



r 



DFRPM2 


MACRO X53B(1242) 19:37 12-SeD-85 Page 27 








DFRPM2 


MAC 


9-Sep-85 09:49 


INTERRUPT SERVICE. ECC CORRECTION. RETRY ROUTINES 




11086 






;RT.07 


— ROUTINE TO RETRY ^ 


RECALIBRATE OPERATION 




11087 






;IF UNSUCCESSFUL. THE DRIVE 


WILL BE MARKED NOT USEABLE 




11088 
















11089 






•CALL SEQ: 








11090 








60 


RT.07 


.-CALL THE ROUTINE 




11091 








RTN 




.•♦1 ALWAYS 




11092 
















11093 


001367' 


261 17 00 000001 


RT.07: 


PUT 


1 


.•SAVE AC'S 




1109A 


001370' 


261 17 00 000027* 




PUT 


NORET 


;SAVE CONTEXT OF RETRY ALREADY 


IN PROGRESS 


11095 


001371' 


261 17 14 000040 




PUT 


LASTC(DSU) 


; LAST COMMAND 




11096 


001372' 


261 17 14 000041 




PUT 


POSADR(DSW) 


; POSITION ADDRESS 




11097 


001373' 


261 17 00 000351* 




PUT 


RETRYF 


; RETRY FLAG 




11098 


001374' 


261 17 00 000007 




PUT 


X 


; AN INDEX REGISTER 




11099 
















11100 


001375' 


200 07 00 001070' 




MOVE 


X.RC.07 


;GET RETRY COUNT 




11101 


001376' 


476 00 00 001370* 


RT.07A: 


SETOM 


NORET 


.•INHIBIT RECURANCE 




11102 


001377' 


201 01 00 000006 




HOVE I 


1.6 


.•STATE FOR RETRY FLAG 




11103 


001400' 


202 01 00 001373* 




MOVEM 


1. RETRYF 


.-NOW READY TO GO 




11104 


001401' 


260 17 00 000000* 




GO 


•RECAL 


.•ISSUE A RETRY 




11105 


001402' 


260 17 00 000000' 




GO 


lOWAIT 


;WAIT TILL DONE 




11106 
















11107 


001403' 


200 01 00 001400* 




MOVE 


1. RETRYF 


;GET RETRY FLAG 




11108 


001404' 


606 01 00 000001 




TRNN 


1.1 


.-BIT 35 SET MEANS TRY AGAIN 




11109 


001405' 


254 00 00 001412' 




JRST 


RT.07C 


;MADE IT WITHOUT ERROR 




11110 


001406' 


367 07 00 001376' 




S0J6 


X.RT.07A 


;LOOP IF COUNT NOT EXHAUSTED 




11111 














; 


11112 


001407' 


661 14 00 010000 


RT.07B: 


TLO 


DSW.(1B5) 


;SET RETRY UNSUCCESSFUL BIT 




11113 








MOVE I 


1.CASCIZ/ 






111U 






FAILED 


TO RECOVER FROM RECALIBRATE OPERATION 




11115 


001410' 


201 01 00 002556' 


/] 










11116 


001411' 


2o.' 17 00 002366' 




GO 


MRK6AD 


.•HARK AS UNUSEABLE 




11117 
















11118 


001412' 


262 17 00 000007 


RT.07C: 


GET 


X 


.•RESTORE CONTEXT 




11119 


001413' 


262 17 00 001403* 




GET 


RETRYF 


; THE RETRY FLAG 




11120 


001414' 


262 17 14 000041 




GET 


POSADR(DSU) 


; POSITION ADDRESS 




11121 


001415' 


262 17 14 000040 




GET 


LASTC(DSW) 


; LAST COHHAND 




11122 


001416' 


262 17 00 001376* 




GET 


NORET 


; STATE OF RETRY SYSTEM 




11123 


001417' 


262 17 00 000001 




GET 


1 


.•RESTORE AC1 




11124 


001420" 


263 17 00 000000 




RTN 




;AND EXIT 




11125 

















SEQ 0386 



DF 
DF 



RP 
RP 

16 
16 
16 
16 
16 
16 
16 
16 
16 
16 
16 











































V 




0FRPM2 


MACRO X53B(1242) 


19:37 12-SeD-85 


Pa 


ge 28 








DFRPM2 


MAC 


9-Sep-85 09:49 1 


[NT 


PRRUPT SERVICE. ECC CORRECTION. RETRY ROUTINES 




11126 










■RT 


.05 


— ROUTINE TO RETRY ) 


\ SEEK OPERATION 




11127 










•THE PROCEDURE 


IS TO RECAL / 


\ND RE-SEEK 




11128 










•IF 


UNSUCCESSFUL. THE DRIVE 


WILL BE MARKED NOT USEABLE 




11129 






















11130 










CALL SEQ: 








11131 














GO 


RT.05 


.•CALL THE ROUTINE 




11132 














RTN 




,•♦1 ALWAYS 




11133 






















1 11134 


001421' 


261 


17 


00 000001 RT. 


05: 


PUT 


1 


.-SAVE AC'S 




11135 


001422' 


261 


17 


00 001416* 






PUT 


NORET 


.•SAVE CONTEXT OF RETRY ALREADY 


IN PROGRESS 


; 11136 


001423' 


261 


17 


14 000040 






PUT 


LASTC(DSU) 


; LAST COMMAND 




1 11137 


001424' 


261 


17 


14 000041 






PUT 


POSADR(DSy) 


; POSITION ADDRESS 




11138 


001425' 


261 


17 00 001413* 






PUT 


RETRYF 


; RETRY FLAG 




' 11139 


001426' 


261 


17 


00 000007 






PUT 


X 


; AN INDEX REGISTER 




i 11K0 






















11U1 


001427' 


200 


07 


00 001067' 






MOVE 


X.RC.05 


;GET RETRY COUNT 




11U2 


001430' 


260 


17 


00 001367' ( 


»T. 


05A: 


GO 


RT.07 


.•FIRST A SUCCESSFUL RECAL 




11143 


001431' 


603 


14 


00 000400 






TINE 


DSW-{1B9) 


;IS DRIVE STILL USEABLE ? 




11144 


001432' 


254 


00 


00 001450' 






JRST 


RT.65C 


I NU • • • • 




11145 






















11146 


001433' 


476 


00 


00 001422» 






SETOM 


NORET 


.•INHIBIT RECURANCE 




11147 


001434* 


201 


01 


00 000006 






MOVE I 


1.6 


; STATE FOR RETRY FLAG 




11148 


001435' 


202 


01 


00 001425* 






NOVEn 


1. RETRYF 


.•NOW READY TO GO 




11149 






















11150 


001436' 


200 


01 


14 000041 






MOVE 


l.POSADR(DSU) .-GET THE POSITION ADDRESS 




11151 


00143^' 


260 


17 


00 000000* 






n 


.SEEK 


.•ISSUE A RETRY 




11152 


001440' 


260 


17 


00 000000* 






lOUAIT 


.•WAIT TILL DONE 




11153 






















11154 


001441' 


200 


01 


00 001435* 






MOVE 


1. RETRYF 


;GET RETRY FLAG 




11155 


001442' 


606 


01 


00 000001 






TRNN 


1.1 


.■BIT 35 SET MEANS TRY AGAIN 




11156 


001443' 


2:) 


00 


00 001450' 






JRST 


RT.05C 


.■MADE IT WITHOUT ERROR 




11157 


001444' 


367 


07 


00 001430' 






SOJG 


X.RT.OSA 


.•LOOP IF COUNT NOT EXHAUSTED 




11158 






















11159 


001445' 


661 


14 


00 010000 1 


V. 


05B. 


TLO 


DSU,(1B5) 


;SET RETRY UNSUCCESSFUL BIT 




11160 














MOVE I 


1.CASCIZ/ 






11161 










BAILED 


TO RECOVER FROM SEEK 


OPERATION 




11162 


001446' 


201 


01 


00 002570* 


n 












11163 


001447' 


260 


17 


00 002366- 






GO 


MRKBAD 


;MARK AS UNUSEABLE 




11164 






















11165 


001450' 


262 


17 


00 000007 1 


n. 


05C: 


GET 


X 


.•RESTORE CONTEXT 




11166 


001451* 


262 


M 


00 001441* 






GET 


RETRYF 


; THE RETRY FLAG 




11167 


001452' 


262 


17 


14 000041 






GET 


POSADR(DSU) 


; POSITION ADDRESS 




11168 


001453' 


262 


17 


14 000040 






GET 


LASTC(DSy) 


; LAST COMMAND 




11169 


001454* 


262 


17 00 001433* 






GET 


NORET 


; STATE OF RETRY SYSTEM 




11170 


001455* 


262 


17 00 000001 






GET 


1 


.•RESTORE AC1 




11171 


001456' 


263 


17 00 000000 






RTN 




.-AND EXIT 




11172 























SEQ 0387 



Df 



DFRW2 


MACRO X 


536(1 


242) 19:37 12-SeD-85 


Page 29 






DFRPW2 


MAC 


9-Sep-85 09:49 ] 


INTERRUPT SERVICE. ECC CORRECTION. RETRY ROUTINES 


11173 








;RT.31 — ROUTINE ^ RETRY A SEARCH OPERATION 


11174 








■THE PROCEDURE 


IS RECAL AND Ri 


i-SEARCH 


11175 








■IF UNSUCCESSFUL. iE DRIVE WILL 


BE MARKED NOT USEABLE 


11176 














11177 








■CALL SEQ: 






11178 








; GO 


RT.31 


■CALL THE ROUTINE 


11179 








RTN 


1 


■♦1 ALWAYS 


11180 














11181 


001457' 


261 


17 00 000001 1 


»T.31: PUT 


1 


■SAVE AC*S 


11182 


001460' 


261 


17 00 000002 


PUT 






11183 


001461* 


261 


17 00 000005 


PUT 




1118A 


001462' 


261 


17 00 001454* 


PUT 


NORET 


■SAVE CONTEXT OF RETRY ALREADY IN PROGRESS 


11185 


001463' 


261 


17 14 000040 


PUT 


LASTC(DSy) 


■ LAST COMMAND 


11186 


001464' 


261 


17 14 000041 


PUT 


POSADR(DSU) 


■ POSITION ADDRESS 


11187 


001465' 


261 


17 00 001451* 


PUT 


RETRYF 


■ RETRY FLAG 


11188 


001466' 


261 


17 00 000007 


PUT 


X 


- AN INDEX REGISTER 


11189 


001467' 


402 00 00 000005 


SETZM 


5 


•ERRORS WILL BE ACCUMULATED HERE 


11190 


001470' 


200 07 00 001071* 


MOVE 


X.RC.31 


•GET RETRY COUNT 


11191 


001471' 


260 


17 00 001367* 1 


U.31A: GO 


Rf.07 


•FIRST A SUCCESSFUL RECAL 


11192 


001472* 


603 


14 00 000400 
00 00 001533* 


TLNE 


DSW.(1B9) 


•IS DRIVE STILL USEABLE ? 


11193 
1119A 
11195 


001473' 


254 


JRST 


rtJie 


•NO ... 


001474' 


476 


00 00 001462* 


SETOM 


NORET 


•INHIBIT RECURANCE 


11196 


001475' 


201 


01 00 000006 


MOVE I 


1.6 


•STATE FOR RETRY FLAG 


11197 


001476* 


202 


01 00 001465* 


HOVEM 


1. RETRYF 


;NOW READY TO GO 


11198 


00147^' 


200 


01 14 000041 


HOVE 


l.POSADRCDSU) 


rGET POSITION ADDRESS 


11199 


001500' 


260 


17 00 000000* 


ss 


.SRCH 


; ISSUE A RETRY 


11200 


001501' 


260 


17 00 000000* 


lOWAIT 


;WAIT TILL DONE 


11201 














11202 


001502* 


200 


01 00 001476* 


HOVE 


1. RETRYF 


;GET RETRY FLAG 


11203 


001503* 


6ur 


01 00 000001 


TRNN 


1.1 


;BIT 35 SET MEANS TRY AGAIN 


1120A 


001504' 


254 


00 00 001520* 


JRST 


RT.31C 


;HADE IT WITHOUT ERROR 


11205 


001505' 


363 


07 00 001511* 


SOJLE 


X.RT.31B 


ISUBTRACT AND JUMP IF NON-RECOVERABLE 


11206 


001506* 


260 


17 00 002343* 


GO 


ERTRAN 


;SET UP AC2 FOR PRGENT 


11207 


001507* 


260 


17 00 001354* 


GO 


COHB25 


;MERGE AC2 AND AC5 


11208 


001510* 


254 


00 00 001471* 


JRST 


RT.31A 


;AND RETRY AGAIN 


11209 














11210 








;RETRY WAS UNSUCCESSFUL 




11211 














11212 


001511* 


661 


14 00 010000 1 


»T.31B: TLO 


DSW.(1B5) 


;MARK IT UNSUCCESSFUL 


11213 


001512' 


260 


17 00 002343* 


GO 


ERTRAN 


;SET UP AC2 FOR PRGENT 


11214 


001513' 


260 


17 00 001354* 


GO 


COHB25 


;HERGE AC2 AND AC5 


11215 


001514' 


200 02 00 000005 
322 02 00 001533' 


MOVE 


2.5 


;6ET RESULTS IN AC2 


11216 


001515* 


JUHPE 


2.RT.31E 


;JUHP IF NO MAPPING IS REQUIRED 


11217 


001516* 


660 02 00 001000 


TRO 


2,1826 


; MAKES IT A HARD ERROR 


11218 


001517' 


254 


00 00 001525* 


JRST 


Rf.3lD 


;T0 COMMON CODE 


11219 














11220 
11221 
11222 








;RETRY IdAS SUCCESSFUL 




001520' 


260 


17 00 002343' 


RT.31C: GO 


ERTRAN 


;SET UP AC2 FOR PRGENT 


11223 


001 52T 


260 


17 00 001354* 


GO 


COHB25 


;MERGE AC2 AND AC5 


11224 


001521* 


m 81 8 88 mi- 


HOVE 


^5 


;GET RESULTS IN AC2 


11225 


001525* 


JUHPE 


2.RT.31E 


•JUMP IF NO MAPPING IS REQUIRED 


11226 
V227 


001524' 


254 


00 00 001525* 


JRST 


Rt.31D 


;T0 COHHON CODE 



SEQ 0388 



DFRPI 
DFRPI 

117 
117( 
117( 
117i 
117( 
117i 
117i 
117( 
1171 
117 
117 
117 
117 



D^RPM2 
DFRPW2 

11228 
11229 
11230 
11231 
11232 
11233 
1123A 
11235 
11236 
11237 
11238 
11239 
112A0 
112A1 
11 2A2 
11243 
11244 
11245 
11246 
11247 
11248 



HACRO X53B(1242) 19:37 12-Sep-85 Page 29-1 
MAC " " "" 



9-Sep-85 09:49 INTERRUPT SERVICE. ECC CORRECTJOM, RETRY ROUTINES 



SEQ 0389 



001525* 
001526* 
001527* 
001530* 
001531* 
001532* 



001533* 
001534* 
001535* 
001536* 
001537* 
001540* 
001541* 
001542' 
001543* 



200 
260 
200 
250 
260 
350 



01 
17 
02 
01 
17 
00 



262 17 

262 17 

262 17 

262 17 

262 17 

262 17 

262 17 

262 17 

263 17 



.•CWWON CODE TO UPDATE HAPOUT DATA BASE 



14 
00 
00 
00 
00 
14 



00 
00 
14 
14 
00 
00 
00 
GO 
00 



000041 

002404* 

000002 

000002 

001200* 

002364 



000007 

001502* 

000041 

000040 

001474* 

000005 

000002 

000001 

000000 



RT.31D: WVE 
GO 
MOVE 
EXCH 
GO 
AOS 

.-FIMALir UE EXIT 



I.POSADR(DSy) 
ADRP1 

pAgent 
napovr(dsw) 



RT.31E: 



GET 
IT 
[T 
T 

[T 

IT 

IT 

ITN 



X 

RETRYF 

POSADR(DSU) 

LASTC(DSU) 

NORET 

5 



GET DISK ADDRESS 

BUHP PHYSICAL ADDRESS BY 1 BLOCK 

AC2 WAS PREVIOUSLY SET UP 

SWAP AC'S, CORRECT ORDER FOR PRGENT 

THIS DOES IT NOW. HAKE ENTRY 

BUMP COUNTER. MAPOUT DATA BASE FULL 



RESTORE CONTEXT 

THE RETRY FLAG 

POSITION ADDRESS 

LAST COMMAND 

STATE OF RETRY SYSTEM 
RESTORE AC'S 



.•EXIT 



0FRPM2 MACRO X53B(1242) 19:37 12-Sep-85 Page 30 

0FRPM2 MAC 9-Sep-85 09:49 INTERRUPT SERVICE, ECC CORRECTION, RETRY ROUTINES 



SEQ 0390 



11249 

11250 

11251 

11252 

11253 

1125A 

11255 

11256 

11257 

11258 

11259 

11260 

11261 

11262 

11263 

11264 

11265 

11266 

11267 

11268 

11269 

11270 

11271 

11272 

11273 

11274 

11275 

11276 

11277 

11278 

11279 

11280 

11281 

11282 

11283 

11284 

11285 

11286 

11287 

11288 

11289 

11290 

11291 

11292 

11293 

11294 

71295 

11296 

11297 

11298 

11299 

11300 

11301 

11302 

11303 



001544' 
001545' 
001546' 
001547' 
001550- 
001551' 

001552' 
001553' 
001554' 
001555' 

001556' 
001557' 



261 
261 
261 
261 
261 
261 



17 
17 
17 
17 
17 
17 



00 000001 
00 001537* 
14 000040 
14 000041 
00 001534* 
00 000007 



200 07 00 001067' 
476 00 00 001545* 

201 01 00 000006 

202 01 00 001550* 

26C 17 00 000000* 
260 17 00 000000' 



200 01 00 001555* 
606 01 00 000001 
254 00 00 001577' 
001563' 367 07 00 001553' 



001560' 
001561' 
001562' 



001564' 6u< 14 00 000400 
001565' 254 00 00 001577' 



001566' 030 00 00 002601' 

001567' 260 17 00 000341* 

001570' 037 00 00 030242 

001571' 260 17 00 000337* 



001572' 030 

001573' 260 

00 f 574' 603 

001575' cjk 



00 
17 
14 

or 



00 002621 ' 
00 00136?' 
00 000400 
CO 001577' 



001576' 260 ^7 00 ou.hc. 



001577' 
001600' 
001601' 
001602' 
001603' 



262 
262 
262 
262 
262 



17 
17 
M 
M 
17 



00 
00 
14 
14 
00 



000007 

001560* 

000041 

000040 

001553* 



;RT.17 — ROUTINE TO RETRY A RTN-CENTERLINE OPERATION 

;RE-ISSUE THE COMMAND AND IF IT FAILS. USE ALTERNATE RETRY SCHEME. 

;THE ALTERNATE PROCEDURE IS TO RECAL AND RE-SEEK 



.•CALL SEQ: 
60 
RTN 

RT.17: 



MOVE 
RT.17A: SETOM 
MOVE I 
MOVEM 



MOVE 
TRNN 
JRST 
SOJG 



RT.17 .-CALL THE ROUTINE 
.•♦1 ALWAYS 

1 'SAVE AC'S 

NORET ;SAVE CONTEXT OF RETRY ALREADY IN PROGRESS 

LASTC(DSU) ; LAST COMMAND 

POSADR(DSU) ; POSITION ADDRESS 

RETRYF ; RETRY FLAG 

X ; AN INDEX REGISTER 

X.RC.05 ;6ET RETRY COUNT 

NORET .-INHIBIT RECURANCE 

1.6 .-STATE FOR RETRY FLAG 

1. RETRYF ;NOW READV TO GO 

RTNCTL .-RE-ISSUE THE COMMAND 

lOUAIT ;UAIT TILL DONE 

1. RETRYF ;GET RETRY FLAG 

1.1 .-BIT 35 SET MEANS TRY AGAIN 

RT.17D .-MADE IT WITHOUT ERROR 

X,RT.17A .-LOOP IP COUNT NOT EXHAUSTED 



.-RETRY THE NORMAL WAY HAS FAILED... REPORT AND USE ALTERNATE 



.-IS DRIVE STILL USEABLE 
.-NO 



RT.17B: TLNE DSW,(1B9) 

JRST RT.17D 

TEXT CASCIZ/ 
******** 

UNABLE TO RECOVER FROM RETURN-TO-CENTERLINE BY RE-ISSUING COMMAND 
/] 

GO .NAME .-IDENTIFY DRIVE. RH. ETC 

PCRL 

GO RUNTME .-RUNTIME 

TEXT LASCIZ/ 
WILL TRY RECOVERY USING ALTERNATE METHOD (RECAL, THEN SEEK) 
******** 



GO 
TLNE 
v'RCT 
GO 



.-EXIT CODE 




RT.07 
DSW.npo) 

RT.17D 
RT.05 



X 

RETRYF 

POSADR(DSW) 

LASTC(DSW) 

NORET 



IS'"'IE TH5 RECAL 

IS D.UVE STILL USEABL"^ 

NO 

NOW DO THE SEEK 



RESTORE CONTEXT 
THE RETRY FLAG 
POSITION ADDRESS 
LAST COMMAND 
STATE OF RETRY SYSTEM 



0378 



DFRPM2 
DFRPM2 

1130A 
11305 
11306 



MACRO !i;53B(1242) 19:37 12-Sep-85 Page 30-1 

MAC 9-Sep-85 09:49 INTERRUPT SERVICE, 



001 60A' 
001605' 



56! 



17 
17 



QQ0001 
000000 



GET 
RTN 



1 



ECC CORRECTION. RETRY ROUTINES 

.-RESTORE AC1 
;AND EXIT 



SEO 0391 



r 

Dl 
Dl 



r 



DFRPM2 


MACRO );53B(1242) 19:37 12-SeD-85 Page 31 








DFRPM2 


MAC 


9-Sep-85 09:49 


INTERRUPT SERVICE, ECC CORRECTION, RETRY ROUTINES 




11307 






;RT.15 


— ROUTINE TO RETRY A 


OFFSET OPERATION 




11308 






.-THIS ROUTINE 


USES THE DATA FROM DSB AREA WHERE OFFSET REG IS 


STORED 


11309 






;IF UNSUCCESSFUL. THE ROUTINE 


■ SETS 1 TO DSW(5) 




11310 
















11311 






•CALL SEQ: 








11312 








GO 


RT.15 


.•CALL THE ROUTINE 




11313 








RTN 




.•♦1 ALWAYS 




113U 
















11315 


001606' 


261 17 00 000001 


RT.15: 


PUT 


1 


;SAVE AC'S 




11316 


001607' 


261 17 00 001603* 




PUT 


NORET 


;SAVE CONTEXT OF RETRY ALREADY 


IN PROGRESS 


11317 


001610' 


261 17 14 000040 




PUT 


LASTC(DSW) 


; LAST COMMAND 




11318 


001611' 


261 17 14 000041 




PUT 


POSADR(DSW) 


; POSITION ADDRESS 




11319 


001612' 


261 17 00 001600* 




PUT 


RETRYF 


; RETRY FLAG 




11320 


001613' 


261 17 00 000007 




PUT 


X 


, ; AN INDEX REGISTER 




11321 
















11322 


001614' 


200 07 00 001072' 




MOVE 


X,RC.15 


;GET RETRY COUNT 




11323 


001615' 


476 00 00 001607* 


RT.15A 


SETOM 


NORET 


.•INHIBIT RECURANCE 




11 324 


001616' 


201 01 00 000006 




MOVE I 


1.6 


.•STATE FOR RETRY FLAG 




11325 
11326 
11327 


001617' 


202 01 00 001612* 




MOVEM 


1, RETRYF 


.-NOW READY TO GO 




001620' 


200 01 14 000020 




MOVE 


I.RIIDC.-^SW) 


;GET OFFSET REGISTER CONTENTS 




11328 


001621' 


405 01 00 vmi 




AND I 


yMim 


;SAVE 15 BITS OF DATA 




11329 


001622' 


260 17 00 000000* 




GO 


•OFSET 


.•ISSUE A RETRY 




11330 


001623' 


260 17 00 000000' 


.i'. 


GO 


lOWAIT 


;WAIT TILL DONE 




11331 
















11332 


001624' 


200 01 00 001617* 




MOVE 


1, RETRYF 


;GET RETRY FLAG 




11333 


001625' 


606 01 00 000001 




TRNN 


1,1 


.•BIT 35 SET MEANS TRY AGAIN 




11334 


001626' 


254 00 00 001631' 




JRST 


RT.15C 


.•MADE IT WITHOUT ERROR 




11335 


001627' 


367 07 00 001615' 




SOJG 


X,RT.15A 


.•LOOP IF COUNT NOT EXHAUSTED 




11336 


001630' 


661 14 00 010000 


RT.15B 


TLO 


DSW,(1B5) 


.•SET THE RETRY FAIL BIT 




11337 
















11338 


001631' 


262 17 00 000007 


RT.15C 


GET 


X 


.•RESTORE CONTEXT 




11339 


001632' 


262 17 00 001624* 




GET 


RETRYF 


; THE RETRY FLAG 




11340 


001633' 


262 17 14 000041 




GET 


POSADR(DSW) 


; POSITION ADDRESS 




11341 


001634' 


262 17 14 000040 




GET 


LASTC(DSU) 


; LAST COMMAND 




11342 


001635' 


262 17 00 001615* 




GET 


NORET 


; STATE OF RETRY SYSTEM 




11343 


001636' 


262 17 00 000001 




GET 


1 


;r:store ACI 




11344 


001637' 


263 17 00 000000 




RTN 




;AND EXIT 




11345 

















SEQ 0392 



r 

DF 
DF 



r 



DFRPM2 
DFRPM2 

113A6 

113A7 

11 348 

11349 

11350 

11351 

11352 

11353 

11 354 

11355 

11356 

11357 

11358 

11359 

11360 

11361 

11362 

11363 

11364 

11365 

11366 

11367 

11368 

11369 

11370 

11371 

11372 

11373 

11374 

11375 

11376 

11377 

11378 

11379 

113tt0 

11381 

11382 

11383 

11384 

11385 

11386 

11387 

11388 

11389 

11390 

11391 

11392 

11393 

11394 

11395 



MACRO X53B(1242) 19:37 12-Sep-85 Page 32 

MAC 9-Sep-85 09:49 INTERRUPT SERVICE, ECC CORRECTION, RETRY ROUTINES 



SEQ 0393 



DF 
DF 



001640* 261 

001641* 261 

001642* 261 

001643* 261 

001644* 2^1 

001645* 261 

001646* 261 

001647* 261 



17 
17 
17 
17 
17 
17 
17 
17 



00 000001 
00 000002 
00 000003 
00 001635* 
14 000040 
14 000041 
00 001632* 
00 000007 



001650' 
001651* 
001652* 
001653* 
001654* 



200 07 
200 01 
620 01 
202 01 



00 001062* 
14 000034 
00 000377 
14 000041 



260 17 00 001421* 



001655' 476 00 00 001643* 
001656* 201 01 00 000006 
001657' 202 01 00 001646* 



001660' 200 01 
001661' 200 02 



14 000033 

_. ._ . 14 000034 

001662' 2uJ 03 14 000035 

001663' 260 17 00 000000* 

001664' 260 17 00 000000' 



001665' 200 01 
001666' 606 01 



00 001657* 

00 000001 

001667' 254 00 00 001672' 



001670' 367 07 
001671' 661 14 



00 001651' 
00 010000 



001672* 
001673* 
001674* 
001675* 
001676* 
001677' 
001700' 
001701* 
001702' 



262 
262 
262 

262 17 
262 17 
262 17 



(7 
17 
17 



262 17 

262 17 

263 17 



00 000007 
00 001665* 
14 000041 
14 000040 
00 001655* 
00 000003 
00 000002 
00 000001 
00 000000 



;RT.65 — ROUTINE TO RETRY A WRITE-TD OPERATION 

.•THIS ROUTINE USES THE CONTENTS OF XFST1 ,XFST2,XFST3 TO DEFINE THE TRANSFER 

;THE ROUTINE DOES A RECAL, SEEK. RE-WRITE OF THE TD 

;IF UNSUCCESSFUL, THE ROUTINE SETS 1 TO DSW(5) 



.-CALL SEQ: 
60 
RTN 



RT.65: 



RT.65A: 



RT.65B: 



RT.65C: 



PUT 
PUT 
PUT 
PUT 
PUT 
PUT 
PUT 
PUT 

MOVE 

MOVE 

TRZ 

MOVEM 

60 

SETOM 
MOVE I 
MOVEM 

MOVE 

MOVE 

MOVE 

60 

60 

MOVE 
TRNN 
JRST 
SOJG 
TLO 

GET 
6ET 
6ET 
6ET 
6ET 
6ET 
6ET 
6ET 
RTN 



RT.65 



1 

2 

3 

NORET 

LASTC(DSU) 

POSADR(DSW) 

RETRYF 

X 

X,RC.65 

1,XFST2(DSW) 

1.377 

l.POSADR(DSW) 

RT.05 

NORET 

1,6 

1. RETRYF 

I.XFSTKDSW) 

2,XFST2(DSW) 

3,XFST3(DSW) 

XFSTRT 

lOUAIT 

1, RETRYF 

Rf.65C 

X,RT.65A 

DSW,(1B5) 

X 

RETRYF 

POSADR(DSW) 

LASTC(DSW) 

NORET 

3 

2 

1 



.•CALL THE ROUTINE 
.•♦1 ALWAYS 

.•SAVE AC'S 



SAVE CONTEXT OF RETRY ALREADY IN PROGRESS 
LAST COMMAND 
POSITION ADDRESS 
RETRY FLAG 
AN INDEX REGISTER 

GET RETRY COUNT 

GETS DCY..TRK,SECT 

SAVE ONLY CYLINDER NUMBER 

POSITION ADDRESS IS NOW SET UP 

DOES A RECAL. SEEK 



INHIBIT RECURANCE 
STATE FOR RETRY FLAG 
NOW READY TO GO 

SET UP AC*S FOR XFSTRT 



DOES THE RETRY 
WAIT TILL DONE 

GEl RETRY FLAG 

BIT 35 SET MEANS TRY AGAIN 

MADE IT WITHOUT ERROR 

LOOP IF COUNT NOT EXHAUSTED 

SET THE RETRY FAIL BIT 

RESTORE CONTEXT 

THE RETRY FLAG 

POSITION ADDRESS 

LAST COMMAND 

STATE OF RETRY SYSTEM 
RESTORE AC'S 



;AND EXIT 



r 



DFRPM2 
DFRPM2 

11396 

11397 

11398 

11399 

1U00 

1U01 

11402 

1U03 

1U04 

1U05 

11406 

11407 

11408 

11409 

11410 

11411 

11412 

11413 

11414 

11415 

11416 

11417 

11418 

11419 

11420 

11421 

11422 

11423 

11424 

11425 

11426 

11427 

11428 

11429 

11430 

11431 

11432 

11433 

11434 

11435 

11436 

11437 

11438 

11439 

11440 

11441 

11442 

11443 

11444 

11445 



MACRO X53B(1242) 19:37 12-Sep-85 Page 33 

MAC 9-Sep-85 09:49 INTERRUPT SERVICE, ECC CORRECTION, RETRY ROUTINES 



SEQ 0394 



DF 
DF 



001703' 
001704' 
001705' 
001706' 
001707' 
001710' 
001711' 
001712' 

001713' 
001714' 
001715' 
001716' 
001717' 



261 
261 
261 
261 
261 
261 
261 
261 

200 
200 
620 
202 
260 



17 00 



001720' 476 
001721' 201 
001722' 202 



001723' 
001724' 
001725' 
001726' 
001727' 



200 
200 
2uJ 
260 
260 



17 
17 
17 
17 
17 
17 
17 

07 
01 
01 
01 
17 

00 
01 
01 

01 
02 
03 
17 
17 



001730' 200 01 
001731' 606 01 



001732' 
001733' 
001734' 

001735' 
001736' 
001737' 
001740' 
001741' 
001742' 
001743' 
001744' 
001745' 



254 00 
367 07 
661 14 



262 
262 
262 
262 
262 
262 
262 
262 
263 



17 
17 
17 
17 
17 
17 
17 
17 
17 



00 
00 
00 
14 
14 
00 
00 

00 
14 
00 
14 
00 



OOnoOl 

00C002 

000003 

001676* 

000040 

000041 

001673* 

000007 

001063' 

000034 

000377 

000041 

001421' 



00 001706* 
00 000006 
00 001711* 



14 
14 
14 
00 
00 



000033 

000034 

000035 

001663* 

000000' 



00 001722* 
00 000001 
00 001735' 
00 001714' 
00 010000 



00 000007 
00 001730* 
14 000041 
14 000040 
00 001720* 
00 000003 
00 000002 
00 000001 
00 000000 



;RT.75 — ROUTINE TO RETRY A READ-TD OPERATION 

.-THIS ROUTINE USES THE CONTENTS OF XFST1,XFST2,XFST3 TO DEFINE THE TRANSFER 

THE ROUTINE DOES A RECAL, SEEK, RE-READ OF THE TD 

IF UNSUCCESSFUL, THE ROUTINE SETS 1 TO DSW(5) 



CALL SEQ: 
GO 
RTN 



RT.75I 



RT.75A: 



PUT 
PUT 
PUT 
PUT 
PUT 
PUT 
PUT 
PUT 

MOVE 

MOVE 

TRZ 

MOVEM 

60 



RT.75B: SETOM 
MOVE I 
MOVEM 

MOVE 

MOVE 

MOVE 

GO 

GO 



MOVE 
TRNN 
JRST 
S0J6 
TLO 

GET 
GET 
GET 
GET 
GET 
GET 
GET 
GET 
RTN 



RT.75C: 



RT.75 



1 
2 
3 

NORET 

LASTC(DSU) 

POSADR(DSU) 

RETRYF 

X 

X,RC.75 

1,XFST2(DSW) 

1,377 

1,P0SADR(DSU) 

RT.05 

NORET 

1,6 

1, RETRYF 

1,XFST1(DSW) 

2,XFST2(DSU) 

3,XFST3(DSW) 

XFSTRT 

lOWAIT 

1, RETRYF 

Rt.75C 

X,RT.75A 

DSW,(1B5) 

X 

RETRYF 

POSADR(DSU) 

LASTC(DSW) 

NORET 

3 

2 

1 



;CALL THE ROUTINE 
;+1 ALWAYS 

.-SAVE AC'S 



SAVE CONTEXT OF RETRY ALREADY IN PROGRESS 
LAST COMMAND 
POSITION ADDRESS 
RETRY FLAG 
AN INDEX REGISTER 

GET RETRY COUNT 

GETS DCY,,TRK,SECT 

SAVE ONLY CYLINDER NUMBER 

POSITION ADDRESS IS NOW SET UP 

DOES A RECAL, SEEK 

INHIBIT RECURANCE 
STATE FOR RETRY FLAG 
NOW READY TO GO 

SET UP AC'S FOR XFSTRT 



DOES THE RETRY 
WAIT TILL DONE 

GET RETRY FLAG 

BIT 35 SET MEANS TRY AGAIN 

MADE If WITHOUT ERROR 

LOOP IF COUNT NOT EXHAUSTED 

SET THE RETRY FAIL BIT 

RESTORE CONTEXT 

THE RETRY FLAG 

POSITION ADDRESS 

LAST COMMAND 

STATE OF RETRY SYSTEM 
RESTORE AC'S 



;AND EXIT 



NC 



DFRPM2 
DFRPM2 

1KA6 

1H47 

1UA8 

11AA9 

11A50 

11A51 

11A52 

11A53 

11A5A 

11A55 

11A56 

11A57 

11A58 

11A59 

11A60 

11A61 

11A62 

11A63 

11A6A 

11A65 

11A66 

11A67 

11A68 

11A69 

11A70 

11A71 

11A72 

11A73 

nA7A 

11A75 

11A76 

11A77 

11A78 

11A79 

11A80 

11A81 

11A82 

11A83 

11 ASA 

11A85 

nA86 

11A87 

11A88 

11A89 

11A90 

11A91 

11A92 

11A93 

11A9A 

11A95 



MACRO X53B(12A2) 19:37 12-Sep-85 Page 3A 

MAC 9-Sep-85 09:A9 INTERRUPT SERVICE, ECC CORRECTION, RETRY ROUTINES 



SEQ 0395 



001 7A6' 
001 7A7' 
001750' 
001751* 
001752' 
001753' 
001 75A' 
001755' 



261 
261 
261 
261 
261 
261 
261 
261 



001756' 200 

001757' 200 

001760' 202 

001761' 260 

001762' A76 

001763' 201 

001 76A' 202 



001765' 
001766' 
001767' 
001770' 
001771' 

001772' 
001773' 
001 77A' 
001775' 
001776' 

001777' 
002000' 
002001 • 
002002' 
002003' 
00200A' 
002005' 
002006' 
002007' 



17 
17 
17 
17 
17 
17 



200 
200 
20n 
2oJ 
260 

200 
606 
25A 
367 
661 

262 
262 
262 
262 
262 
262 
262 
262 
263 



07 
01 
01 
17 

00 
01 
01 

01 
02 
03 

17 
17 

01 
01 
00 
07 
lA 

17 
17 
17 
17 
17 
17 
17 
17 
17 



00 
00 
00 
00 
1A 
1A 



17 00 
17 00 



000001 

000002 

000003 

001 7A1* 

OOOOAO 

0000A1 

001736* 

000007 



00 001 06A' 
1A 00003A 
1A 0000A1 
00 001A21' 

00 001751* 
00 000006 
00 001 75A* 



1A 
1A 
1A 
00 
00 

00 
00 
00 
00 
00 



000033 

00003A 

000035 

001726* 

000000' 

001 76A* 

000001 

001777' 

001757' 

010000 



00 000007 
00 001772* 
1A OOOOAl 
lA OOOOAO 
00 001762* 
00 000003 
00 000002 
00 000001 
00 000000 



;RT.63 — ROUTINE TO RETRY WRITE HEADER AND DATA (FORMAT) 

;THIS ROUTINE USES THE CONTENTS OF XFST1,XFST2,XFST3 TO DEFINE THE TRANSFER 

.•THIS ROUTINE DOES A RECAL. SEEK. REWRITE 

;IF UNSUCCESSFUL. THE ROUTINE SETS 1 TO DSW(5) 



DFl 

DFI 

PR 
CPI 

ir 



.•CALL SEQ: 
GO 
RTN 



RT.63: 



RT.63A: 



RT.63B: 



RT.63Ci 



PUT 
PUT 
PUT 
PUT 
PUT 
PUT 
PUT 
PUT 

MOVE 
MOVE 
MOVEM 
GO 

SETOM 
MOVE I 
MOVEM 

MOVE 

MOVE 

MOVE 

GO 

60 

MOVE 
TRNN 
JRST 
SOJG 
TLO 

GET 
GET 
GET 
GET 
GET 
GET 
GET 
GET 
RTN 



RT.63 



1 
2 
3 

NORET 

LASTC(DSW) 

POSADR(DSW) 

RETRYF 

X 

X.RC.63 
1,XFST2(DSW) 
1,P0SADR(DSW) 
RT.05 

NORET 

1,6 

1, RETRYF 

l.XFSTKDSW) 

2.XFST2(DSW) 

3,XFST3(DSW) 

XFSTRT 

lOWAIT 

1. RETRYF 

U 

RT.63C 
X,RT.63A 
DSW.(1B5) 

X 

RETRYF 

POSADR(DSW) 

LASTC(DSW) 

NORET 

3 

2 

1 



;CALL THE ROUTINE 
;+1 ALWAYS 

;SAVE AC'S 



SAVE CONTEXT OF RETRY ALREADY IN PROGRESS 
LAST COMMAND 
POSITION ADDRESS 
RETRY FLAG 
AN INDEX REGISTER 

GET RETRY COUNT 

GETS DCY.,TRK,SECT 

POSITION ADDRESS IS NOW SET UP 

DOES A RECAL, SEEK 

INHIBIT RECURANCE 
STATE FOR RETRY FLAG 
NOW READY TO GO 

SET UP AC'S FOR XFSTRT 



DOES THE RETRY 
WAIT TILL DONE 

GET RETRY FLAG 

BIT 35 SET MEANS TRY AGAIN 

MADE IT WITHOUT ERROR 

LOOP IF COUNT NOT EXHAUSTED 

SET THE RETRY FAIL BIT 

RESTORE CONTEXT 

THE RETRY FLAG 

POSITION ADDRESS 

LAST COMMAND 

STATE OF RETRY SYSTEM 
RESTORE AC'S 



;AND EXIT 



1 r 



"1 : r- 



DFRPM2 
DFRPM2 

1U96 

1U97 

11498 

1U99 

11500 

11501 

11502 

11503 

1150A 

11505 

11506 

11507 

11508 

11509 

11510 

11511 

11512 

11513 

11514 

11515 

11516 

11517 

11518 

11519 

11520 

11521 

11522 

11523 

11524 

11525 

11526 

11527 

11528 

11529 

11530 

11531 

11532 

11533 

11534 

11535 

11536 

11537 

11538 

11539 

11540 

11541 

11542 

11543 

11544 

11545 

11546 

11547 

11548 

11549 

11550 



MACRO X53B(1242) 19:37 12-Sep-85 Page 35 

MAC 9-Sep-85 09:49 INTERRUPT SERVICE, ECC CORRECTION, RETRY ROUTINES 



SEQ 0396 



002010' 
002011' 
002012' 
002013' 
002014' 
002015' 
002016' 
002017' 
002020' 
002021 ' 
002022' 
002023' 



261 17 
261 17 
261 17 
261 17 
261 17 
261 17 
261 17 
261 17 
261 17 
261 17 
402 00 
402 00 



00 000001 
00 000002 
00 000003 
00 000004 
00 C00005 
00 002003* 
14 000040 
14 000041 
00 002000* 
00 000007 
00 000004 
00 000005 



002024' 200 07 00 001066' 

002025' 200 01 14 000034 

002026' 202 01 14 000041 

002027' 260 17 00 001421' 

002030' 476 00 00 002015* 

002031 ' 201 01 00 000006 

002032' 2^^ 01 00 002020* 



002033' 
002034' 
002035' 
002036' 
002037' 
002040' 
002041 • 
002042' 

002043' 
002044' 
002045' 
002046' 
002047' 
002050' 
002051 ' 



200 01 
200 02 
200 03 
621 01 
332 00 
661 01 
260 17 
260 17 

200 01 
606 01 
254 00 
363 07 
260 17 
260 17 
254 00 



14 000033 
14 000034 
14 000035 
00 002000 
00 000004 
00 002000 
00 001770* 
00 000000' 

00 002032* 
00 000001 
00 002066' 
00 002052' 
00 002343' 
00 001354' 
00 002025' 



002052' 462 04 00 000004 

002053' 322 04 00 002057' 

002054' 260 17 00 002343' 

002055' 260 17 00 001354' 



RT.61 — ROUTINE TO RETRY WRITE DATA COMMAND 

THIS ROUTINE USES THE CONTENTS OF XFST1 ,XFST2,XFST3 TO DEFINE THE TRANSFER 

THIS ROUTINE DOES THE SEQUENCE: RECAL, SEEK, REWRITE (HCI=0) 

AND IF IT IS UNSUCCESSFUL IT TRIES: RECAL, SEEK, REWRITE (HCI=1) 

IF UNSUCCESSFUL, THE ROUTINE SETS 1 TO DSW(5) 



CALL SEQ: 
60 
RTN 



RT.61: 



RT.61A: 
RT.61B: 



RT.61C: 



PUT 
PUT 
PUT 
PUT 
PUT 
PUT 
PUT 
PUT 

Pur 

PUT 

SETZM 

SETZM 

MOVE 
MOVE 
MOVEM 
GO 

SETOM 
MOVE I 
MOVEM 

MOVE 

MOVE 

MOVE 

TLZ 

SKIPE 

TLO 

GO 

GO 

MOVE 

TRNN 

JRST 

SOJLE 

60 

GO 

JRST 



RT.61 



1 
2 
3 

4 

5 

NORET 

LASTC(DSW) 

POSADR(DSW) 

RETRYF 

X 

4 

5 

X,RC.61 
1,XFST2(DSW) 
1,P0SADR(DSW) 
RT.05 

NORET 

1.6 

1, RETRYF 

1,XFST1(DSW) 
2,XFST2(DSW) 
3,XFST3(DSW) 
1,(.87) 

1,(187) 

XFSTRT 

lOWAIT 

1, RETRYF 

1,1 

RT.61F 

X,RT.61D 

ERTRAN 

C0MB25 

RT.61B 



.-CALL THE ROUTINE 
;+l ALWAYS 

.•SAVE AC'S 



SAVE CONTEXT OF RETRY ALREADY IN PROGRESS 

LAST COMMAND 

POSITION ADDRESS 

RETRY FLAG 

AN INDEX REGISTER 
MEANS HCI=0 
ERRORS ARE ACCUMULATED IN HERE 

GET RETRY COUNT 

GETS DCY,,TRK,SECT 

POSITION ADDRESS IS NOW SET UP 

DOES A RECAL, SEEK 

INHIBIT RECURANCE 
STATE FOR RETRY FLAG 
NOW READY TO 60 

SET UP AC'S FOR XFSTRT 



INIT HCI=0 
DO WE WANT HCI=1 
SET HCI=1 
DOES THE RETRY 
WAIT TIIL DONE 

6ET RETRY FLAG 

BIT 35 SET MEANS TRY AGAIN 

MADE IT WITHOUT ERROR 

DECREMENT. SEE IF COUNT EXHAUSTED 

NO IT DIDN'T. COLLECT ERRORS IN AC2 

MER6F AC2 AND AC5 

NOW RETRY AGAIN 



.•COUNT IS EXHAUSTED. COMPLEMENT HCI AND TRY AGAIN IF WE HAVEN'T ALREADY 



RT.61D: SETCMM 
JUMPE 
60 
60 



4,4 

4.RT.61E 
ERTRAN 
COMB25 



COMPLEMENT THE HCI FLAG 

ALREADY TRIED IF ZERO (RETRY FAILED) 

COLLECT ERRORS IN AC2 

MERGE AC2 AND AC5 



DFRPM2 
DFRPM2 

11551 

11552 

11553 

11554 

11555 

11556 

11557 

11558 

11559 

11560 

11561 

11562 

11563 

1156A 

11565 

11566 

11567 

11568 

11569 

11570 

11571 

11572 

11573 

1157A 

11575 

11576 

11577 

11578 

11579 

11580 

11581 

11582 

11583 

1158A 

11585 

11586 

11587 

11588 

11589 

11590 

11591 

11592 

11593 



MACRO X53B(1242) 19:37 12-Sep-85 Page 35-1 

MAC 9-Sep-85 09:49 INTERRUPT SERVICE, ECC CORRECTION, RETRY ROUTINES 



SEQ 0397 



002056' 254 00 00 002024' 



002057' 
002060' 
002061 ' 
002062' 
002063' 
002064' 
002065' 



002066' 
002067' 
002070' 
002071 ' 
002072' 



661 14 
260 17 
260 17 
200 02 
322 02 
660 02 
254 00 



260 
260 
200 
322 
254 



002075' 
002076' 
002077' 
002100' 



002101' 
002102' 
002103' 
002104' 
002105' 
002106' 
002107' 
002110' 
002111' 
002112' 
002113' 



00 010000 
00 002343' 
00 001354' 
00 000005 
00 002101' 
00 001000 
00 002073' 



17 
17 
02 
02 
00 



002073' 200 02 
002074' 200 01 



260 17 
250 01 
260 17 
350 00 



262 1 



262 
262 
262 1 
262 1 
262 1 
262 1 
262 1 
262 1 

262 1 

263 1 



00 
00 
00 
00 
00 



002343' 

001354' 

000005 

002101' 

002073' 



00 000002 
14 000034 
00 002404' 
00 000002 
00 001531* 
14 002364 



00 
00 
14 
14 
00 
00 
00 
00 
00 
00 
00 



000007 

002043* 

000041 

000040 

002030* 

000005 

000004 

000003 

000002 

000001 

000000 



JRST RT.61A 



.•START RETRY SEQUENCE WITH HCI=1 



.•RETRY HAS FAILED. COlLECT ERRORS AND SEE IF MAPOUT IS REQUIRED 



RT.61E: TLO 
60 
GO 

MOVE 
JUMPE 
TRO 
JRST 



DSW.(lL-'5) 

ERTRAN 

C0MB25 

2,5 

2,RT.61X 

2,1826 

RT.61G 



SET RETRY FAILED BIT 
COLLECT ERRORS IN AC2 
MERGE AC2 AND ACS 
GET RESULTS IN AC2 
NO MAPOUT REQUIRED .. 
MAKE IT A HARD ERROR 
MAKE A MAPOUT ENTRY 



EXIT 



;RETRY WORKED. COLLECT ERRORS AND SEE IF MAPOUT IS REQUIRED 



RT.61F: GO 
GO 
MOVE 
JUMPE 
JRST 



ERTRAN 

C0M825 

2,5 

2,RT.61X 

RT.61G 



COLLECT ERRORS IN AC2 
MERGE AC2 AND ACS 
GET RESULTS IN AC2 
NO MAPOUT NEEDED IF = 0, 
AND MAKE THE ENTRY 



EXIT 



.•MAKE MAPOUT ENTRY/UPDATE 



RT.61G: MOVE 
MOVE 
GO 

EXCH 
GO 
AOS 

;EXIT CODE 



RT.61X: 



GET 
GET 
GET 
GET 
GET 
GET 
GET 
GET 
GET 
GET 
RTN 



1,2 

1,XFST2(DSW) 

ADRP1 

1,2 

PRGENT 

MAPOVR(DSW) 



X 

RETRYF 

POSADR(DSW) 

LASTC(DSW) 

NORET 

S 

4 

3 

2 

1 



ERROR BITS SET UP ALREADY IN AC2 

GETS DISK ADDRESS 

BUMP PHYSICAL ADDRESS BY 1 BLOCK 

SWAP AC'S, CORRECT ORDER FOR PRGENT 

THIS DOES IT NOW, MAKE ENTRY 

BUMP COUNTER, MAPOUT DATA BASE FULL 



RESTORE CONTEXT 

THE RETRY FLAG 

POSITION ADDRESS 

LAST COMMAND 

STATE OF RETRY SYSTEM 
RESTORE AC'S 



;AND EXIT 



0FRPM2 MACRO X53B(12A2) 19:37 12-Sep-85 Page 36 

DFRPM2 MAC 9-Sep-85 09:A9 INTERRUPT SERVICE, ECC CORRECTION, RETRY ROUTINES 



SEQ 0398 



1159A 

11595 

11596 

11597 

11598 

11599 

11600 

11601 

11602 

11603 

1160A 

11605 

11606 

11607 

11608 

11609 

11610 

11611 

11612 

11613 

11614 

11615 

11616 

11617 

11618 

11619 

11620 

11621 

11622 

11623 

1162A 

11625 

11626 

11627 

11628 

11629 

11630 

11631 

11632 

11633 

1163A 

11635 

11636 

11637 

11638 

11639 

116A0 

116A1 

116A2 

116A3 

11644 

11645 

11646 

11647 

11648 



002114' 
002114' 
002115' 
002116' 
002117' 
002120' 
002121' 
002122' 
002123' 
002124' 
002125' 
002126' 
002127' 



261 
261 
261 
261 
261 
261 
261 
261 
261 
261 
200 
402 



17 
17 
17 
17 
17 
17 
17 
17 
17 
17 
04 
00 



00 000001 
00 000002 
00 000003 
00 000004 
00 000005 
00 002105* 
14 000040 
14 000041 
00 002102* 
00 000007 
13 002242' 
00 000005 



002130' 554 07 04 000000 

002131' 200 01 14 000034 

002132' 20? 01 14 000041 

002133' 2oJ 17 00 001421' 



002134' 
002135' 
002136' 
002137' 
002140' 
002141' 



260 17 1 
254 00 
200 02 
620 02 
434 02 
202 02 



13 002252' 
00 002147' 

14 000020 
00 037777 
00 000001 
14 000020 



002142' 554 02 14 000033 

002143' 620 02 00 037777 

002144' 434 02 00 000001 

002145' 506 02 14 000033 

002146' 260 17 00 001606' 



002147' 476 00 00 002121* 
002150' 201 01 00 000006 
002151' 202 01 00 002124* 



RT.71-RT.73 — ROUTINE TO RETRY READ DATA AND READ HEADER AND DATA COMMANDS 
THIS ROUTINE USES THE CONTENTS OF XFST1 ,XFST2,XFST3 TO DEFINE THE TRANSFER 
IF UNSUCCESSFUL, THE ROUTINE SETS 1 TO DSW(5) 

THE RETRY AL60RITHIM COMES OUT OF A TABLE WHICH SPECIFIES THE COUNTS, 
THE STATE OF HCI, AND THE VALUE OF THE OFFSET REGISTER FOR THE CASE 
WHERE OFFSET RECOVERY IS ATTEMPTED. ECC IS ALWAYS ENABLED AND IS USED 
TO RECOVER AT THE FIRST OPPORTUNITY. 



CALL SEQ: 
GO 
RTN 



RT.71 (OR RT.73) ;CALL THE ROUTINE 
;+l ALWAYS 



RT.71: 
RT.73: 



RT.71A: 
RT.71B: 



PUT 

PUT 

PUT 

PUT 

PUT 

PUT 

PUT 

PUT 

PUT 

PUT 

MOVE 

SETZM 

HLRZ 
MOVE 
MOVEM 
GO 



1 
2 
3 

4 

5 

NORET 

LASTC(DSW) 

POSADR(DSW) 

RETRYF 

X 

4,ALGPTR(X1) 

X,(4) 

1,XFST2(DSW) 
1,P0SADR(DSW) 
Rf.05 



;SAVE AC'S 



SAVE CONTEXT OF RETRY ALREADY IN PROGRESS 

LAST COMMAND 

POSITION ADDRESS 

RETRY FLAG 

AN INDEX REGISTER 
FETCH POINTER TO PROPER RETRY TABLE 
ERRORS ARE ACCUMULATED IN HERE 

GET RETRY COUNT FROM TABLE 
GETS DCY.,TRK,SECT 
POSITION ADDRESS IS NOW SET UP 
DOES A ^ECAL, SEEK 



DEF 
DEF 

11 
11 
11 
12 
12 
12 
12 
12 
12 
12 
12 
12 
12 
12 
12 



.-CODE TO: DETERMINE IF OFFSET IS REQUIRED AND GET IT DONE IF NEEDED 



GO aOFVALU(Xl) 

JRST RT.71J 

MOVE 2,R11D(DSW) 

TRZ 2,37777 

lOR 2,1 

MOVEM 2,R11D(DSW) 

HLRZ 2,XFST1(DSW) 

TRZ 2,vni 

lOR 2,1 

HRLM 2,XFST1(DSW) 

GO RT.15 



GET OFFSET IMAGE TO AC1 AND RTN+1 OR +2 

+1 NO NEW OFFSET IS NECESSARY 

WE GET CURRENT VALUE OF THE OFFSET REG 

THROW AWAY ANYTHING IN THESE BITS 

PLUG IN THE NEW CONTENTS FROM THE TABLE 

R11D NOW SET UP FOR THE OFSET RETRY ROUTINE 

GET OFFSET REG BITS FROM PREVIOUS XFER 
THROW AWAY THESE BITS 
PLUG IN NEW CONTENTS FROM THE TABLE 
NOW XFT1 READY FOR "XFSTRT" ROUTINE 

GET THE OFFSETTING ACCOMPLISHED 



;ANY OFFSETTING HAS BEEN DONE AND THE LEFT HALF OF "XFST2" CONTAINS THE 
.•CONTENTS OF THE OFFSET REGISTER TO BE USED FOR THE TRANSFER .. 



RT.71J: SETOM 
MOVE I 
MOVEM 



NORET 

1.6 

1. RETRYF 



INHIBIT RECURANCE 
STATE FOR RETRY FLAG 
NOW READY TO GO 



DFRPM2 
DFRPM2 

116A9 

11650 

11651 

11652 

11653 

11654 

11655 

11656 

11657 

11658 

11659 

11660 

11661 

11662 

11663 

1166A 

11665 

11666 

11667 

11668 

11669 

11670 

11671 

11672 

11673 

1167A 

11675 

11676 

11677 

11678 

11679 

11680 

11681 

11682 

11683 

11684 

11685 

11686 

11687 

11688 

11689 

11690 

11691 

11692 

11693 

11694 

11695 

11696 

11697 

11698 

11699 

11700 

11701 

1170. 

1170 



MACRO X53B(1242) 19:37 12-Sep-85 Page 36-1 

MAC 9-Sep-85 09:49 INTERRUPT SERVICE, ECC CORRECTION. RETRY ROUTINES 



SEQ 0399 



002152' 200 01 

002153' 200 02 

002154' 200 03 

002155' 260 17 

002156' 260 17 



002157' 
002160' 
002161' 
002162' 
002163' 
002164' 
002165' 
002166' 
002167' 
002170' 
002171- 
002172' 
002173' 
002174' 
002175' 



002176' 
002177' 
002200' 
002201 ' 
002202' 
002203' 



002204' 
002205 ' 
002206' 
002207' 
002210' 
002211' 
002212' 



200 01 
606 01 
254 00 
200 01 
640 01 
602 01 
254 00 
200 01 
620 01 
202 01 
254 00 
363 07 
26C 17 
260 17 
254 00 



350 
336 
254 
260 
2o-' 
254 



00 
00 
00 
17 
17 
00 



14 000033 
14 000034 
14 000035 
00 002041* 
00 000000' 



00 002151* 
00 000001 
00 002213' 
14 000011 
00 100000 
00 100100 
00 002172' 
00 002157* 
00 000001 
00 002166* 
00 002213' 
00 002176' 
00 002343' 
00 001354' 
00 002131' 



661 14 
260 17 
260 17 
200 02 
322 02 
660 02 
254 00 



002213' 260 17 

002214' 260 17 

002215' 200 02 

002216' 322 02 

002217' 254 00 



00 000004 
04 000000 
00 002204' 
00 002343' 
00 001354' 
00 002130' 



00 010000 
00 002343' 
00 001354' 
00 000005 
00 002226' 
00 001000 
00 002220' 



00 002343' 
00 001354' 
00 000005 
00 002226' 
00 002220' 



MOVE I.XFSTKDSW) 

MOVE 2,XFST2(DSW) 

MOVE 3,XFST3(DSU) 

GO XFSTRT 

60 lOUAIT 



;SET UP AC'S FOR XFSTRT 



.•DOES THE RETRY 
.•WAIT TILL DONE 



;NOU LOOK AT RETRYF AND ANALYZE THE LAST ATTEMPT AT A DATA XFER 



RT.71C: 



MOVE 

TRNN 

JRST 

MOVE 

TRC 

TRNE 

JRST 

MOVE 

TRZ 

MOVEM 

JRST 

SOJLE 

GO 

GO 

JRST 



1. RETRYF 

Rf.71F 

1.R2D(DSW) 

1.100000 

1.100100 

Rt.7lC 

1. RETRYF 

1.1 

1. RETRYF 

RT.71F 

X,RT.71D 

ERTRAN 

C0MB25 

RT.718 



GET RETRY FLAG 

BIT 35 SET MEANS TRY AGAIN 

MADE IT WITHOUT ERROR 

GET ERROR REG 1 

COMPLEMENT DCK BIT 

DCK=1 AND ECH=0 ? 

NO. NOT ECC CORRECTED 

GET RETRY FLAG 

CLEAR BIT 35 

SAVE RETRY FLAG 

MADE IT WITH ECC CORRECTION 

DECREMENT. SEE IF COUNT EXHAUSTED 

NO IT DIDN'T. COLLECT ERRORS IN AC2 

MERGE AC2 AND AC5 

NOW RETRY AGAIN 



.'COUNT IS EXHAUSTED. COMPLEMENT HCI AND TRY AGAIN IF WE HAVEN'T ALREADY 



RT.71D: 



AOS 

SKIPN 

JRST 

GO 

GO 

JRST 



4 

0(4) 

RT.71E 

ERTRAN 

C0MB25 

RT.71A 



;AC4 POINTS INTO OUR RETRY TABLE 

.•ZERO IMPLIES THE END OF TABLE (RETRY FAILED) 

MORE RETRY POSSIBLE. COLLECT ERRORS IN AC2 

MERGE AC2 AND AC5 

START NEXT RETRY SEQUENCE 



.•RETRY HAS FAILED. COLLECT ERRORS AND SEE IF MAPOUT IS REQUIRED 



RT.71E; TLO 
GO 
60 

MOVE 
JUMPE 
TRO 
JRST 



DSW.(1B5) 

ERTRAN 

C0MB25 

2.5 

2.RT.71X 

2.1B26 

RT.71G 



SET RETRY FAILED BIT 
COLLECT ERRORS IN AC2 
MERGE AC2 AND AC5 
GET RESULTS IN AC2 
NO MAPOUT REQUIRED ., 
MAKE IT A HARD ERROR 
MAKE A MAPOUT ENTRY 



EXIT 



.-RETRY WORKED. COLLECT ERRORS AND SEE IF MAPOUT IS REQUIRED 



RT.71F: GO 
GO 

MOVE 
JUMPE 
JRST 



ERTRAN 

C0MB25 

2.5 

2,RT.71X 

Rt.71G 



COLLECT ERRORS IN AC2 
MERGE AC2 AND AC5 
GET RESULTS IN AC2 
NO MAPOUT NEEDED IF = 0. 
AND MAKE THE ENTRY 



EXIT 



002220' 200 02 00 000002 
002221' 200 01 14 000034 



;MAKE MAPOUT ENTRY/UPDATE 

RT.71G: MOVE 2.2 

MOVE 1.X?ST2(DSW) 



.•ERROR BITS SET UP ALREADY IN AC2 
.•GETS DISK ADDRESS 



! 

DFRPM2 
DFRPH2 

; 1170A 
i 11705 
' 11706 
11707 
11708 
11709 
11710 
11711 
11712 
11713 
117U 
11715 
11716 
11717 
11718 
11719 
11720 
11721 
11722 
11723 
11 72A 
11725 
11726 
11727 
11728 
11729 
11730 
11731 
11732 
11733 
1173A 
11735 
11736 
11737 
11738 
11739 
11740 
11741 
11742 
11743 
11744 
11745 
11746 
11747 
11748 
11749 
11750 
11751 
11752 
11753 
11754 
11755 
11756 
11757 
11758 



MACRO X53B(1242) 19:37 12-Sep-85 Page 36-2 

MAC 9-Sep-85 09:49 INTERRUPT SERVICE, ECC CORRECTION, RETRY ROUTINES 



r 



SEQ 0400 



002222' 260 17 00 002404' 

002223' 250 01 00 000002 

002224' 260 17 00 002077* 

002225' 350 00 14 002364 



002226' 
002227' 
002230' 
002231 ' 
002232' 
002233' 
002234' 
002235' 
002236' 
002237' 
002240' 
002241 • 



002242' 
002243' 
002244' 
002245' 
002246' 
002247' 
002250' 
002251 ' 



002252' 
002253' 
002254' 
002255' 
002256' 
002257' 
002260' 
002261 ' 

002262' 
002262* 
002262' 
002262' 
002262' 
002263' 



260 17 
262 17 
262 17 
262 17 
262 17 
262 17 
262 17 
262 17 
262 17 
262 17 

262 17 

263 17 



000000 
000000 
000000 
GuJOOO 
000000 
000000 
000000 
000000 



000000 
000000 
000000 
000000 
000000 
000000 
000000 
000000 



00 001544' 
00 000007 
00 002170* 
14 000041 
14 000040 
00 002147* 
00 000005 
00 000004 
00 000003 
00 000002 
00 000001 
00 000000 



001101' 
001112' 
001123' 
001124' 
001127' 
001123' 
001134' 
001134' 



002262' 
002262' 
002262' 
002262' 
002266' 
002262' 
002262' 
002262' 



GO 

EXCH 
60 
AOS 



ADRP1 

pAgent 
mapovr(dsu) 



BUMP PHYSICAL ADDRESS BY 1 BLOCK 
SWAP AC'S, CORRECT ORDER FOR PRGENT 
THIS DOES IT NOW, MAKE ENTRY 
BUMP COUNTER, MAPOUT DATA BASE FULL 



DEFI 
DEFI 

12' 



.-EXIT CODE 



;NOW GET BACK OVER TRACK CENTERLINE SO WE DON'T ACCIDENTALLY LEAVE THE 
.•DRIVE IN OFFSET MODE FOR THE NEXT OPERATION ... 



RT.71X: 60 
GET 
6ET 
6ET 
6ET 
GET 
GET 
GET 
GET 
6ET 
6ET 
RTN 



RT.17 

X 

RETRYF 

POSADR(DSW) 

LASTC(DSW) 

NORET 

5 

4 

3 

2 

1 



THIS DOES RETURN TO CENTERLINE, 
RESTORE CONTEXT 

THE RETRY FLA6 

POSITION ADDRESS 

LAST COMMAND 

STATE OF RETRY SYSTEM 
RESTORE AC'S 



:AND EXIT 



12 
12 
12 
12 
12 



.•THIS TABLE POINTS TO THE VARIOUS AL60RITHIM TABLES FOR EACH OF THE 
.•DRIVE TYPES. RP04, RP06, RP07, ETC 



ALGPTR: AL6.04 
AL6.06 
AL6.SP 
AL6.07 
AL6.03 
AL6.SP 
AL6.20 
AL6.20 



RP04 

RP06 

SPARE 

RP07 (600 MB) 

RM03 

SPARE 

RP20 (TOPS10) 

RP20 (TOPS20) 



POINTERS TO ROUTINES. AND ROUTINES TO SET UP (IN AC1) THE NEW OFFSET 
MA6NITUDE BITS ACCORDING TO THE CURRENT RETRY TABLE ENTRY. THE ROUTINES 
WILL RTN+1 If NO 0FFSETTIN6 IS REQUIRED AND +1 IF 0FFSETTIN6 IS REQUIRED 



OFVALU: 



0FV.04 
OFV.06 
OFV.SP 
0FV.07 
OFV.03 
OFV.SP 
0FV.20 
OFV.20 



550 
602 



01 
01 



04 
00 



OOOOOQ 
000377 



0FV.04 
OFV.06 
OFV.07 
OFV.SP 
OFV.20 



HRRZ 
TRNE 



1,(4) 
1,377 



RP04 

RP06 

SPARE 

RP07 (600 MB) 

RM03 

SPARE 

RP20 (TOPS10) 

RP20 (TOPS20) 



;6ET OFFSET VALUE FROM TABLE 
.-ANY 0FFSETTIN6 REQUIRED ? 



L. 



88 



0FRPM2 
DFRPH2 

11759 
11760 
11761 
11762 
11763 
11764 
11765 
11766 
11767 
11768 
11769 
11770 
11771 



MACRO X53B(1242) 19:37 12-Sep-85 Page 36-3 

MAC 9-Sep-85 09:49 INTERRUPT SERVICE. ECC CORRECTION. RETRY ROUTINES 



SEQ 0401 



002264* 350 00 17 000000 
002265* 263 17 00 000000 



002266* 
002267* 
002270* 
002271 * 
002272* 
002273* 
002274' 
002275* 



540 01 
606 01 
263 17 
350 00 
602 01 
660 01 
620 01 
263 17 



04 000000 
00 000003 



OFV.03: 



00 000000 
17 000000 
00 000002 
00 000200 
000QQ3 
000000 



s§ 



AOS 


(P) 


RTN 




HRR 


1.(4) 


TRNN 


1.3 


RTN 




AOS 


(P) 


TRNE 


1.2 


TRO 


1.1B28 


TRZ 


1.3 


RTN 





;YES. BUMP FOR RTN+2 
.-TAKE PROPER RETURN 

;6ET OFFSET VALUE FROM THE TABLE 

.•ANY OFFSETTING REQUIRED ? 

;N0 .... RTN+1 

.-NOW ADJUSTED FOR RTN-2 

;D0 UE WANT NEGATIVE OFFSET ? 

;YES. SET THE DIRECTION BIT FOR NEGATIVE 

:NOU ZERO RIGHTMOST TABLE INDICATORS 

;AND TAKE SKIP RETURN 



DfRP»^2 
DFRPH2 

11772 

11773 

1177^ 

11775 

11776 

11777 

11778 

11779 

11780 

11781 

11782 

11783 

1178A 

11785 

11786 

11787 

11788 

11789 

11790 

11791 

11792 

11793 

1179A 

11795 

11796 

11797 

11798 

11799 

11800 

11801 

11802 

11803 

1180A 

11805 

11806 

11807 

11808 

11809 

11810 

11811 

11812 

11813 

1181A 

11815 

11816 

11817 

11818 

11819 

11820 

11821 

11822 

11823 

11824 

11825 

11826 



MACRO );53B(1242) 19:37 12-Sep-85 
MAC 9-Sep-85 09:49 



Page 37 
INTERRUPT 



SERVICE, ECC CORRECTION. RETRY ROUTINES 



SEQ (yt02 



002276' 261 17 00 000002 



002277* 200 01 

002300' 405 01 

002301 • 660 01 

002302' 307 01 



14 000040 
00 000077 
00 000001 
00 000060 
002303' 254 00 00 002321' 



002304 ' 
002305' 

002306' 
002307' 

002310' 
002311' 

002312' 
002313' 

002314' 
002315' 

002316' 
002317' 



306 01 
254 00 

5vjr 01 
254 00 

306 01 
254 00 

306 01 
254 00 

306 01 
254 00 

306 01 
254 00 



00 000061 
00 002335' 

00 000071 
00 002335' 

00 000073 
00 002335' 

00 000063 
00 002336' 

00 000065 
00 002336' 

00 000075 
00 002336' 



002320' 254 00 00 002333' 



002321 • 306 01 00 000005 

002322' 254 00 00 002337' 

002323' 306 01 00 000007 

002324' 254 00 00 002337' 



SUBROUTINE TO BRANCH ACCORDING TO TYPE OF COMMAND (BY CLASS) 
THIS ROUTINE MAKES ITS DECISIONS BY LOOKING AT 'lASTC" AND "ROD" 
IN THE DSB AREA. IT WILL FATAL OUT IF A COMMAND IS UNKNOWN. 
UPON RETURNING ACl WILL CONTAIN THE COMMAND WITH THE GO BIT SET. 
THE +1 (H0USKEEPIN6) RETURN IS NOT USED OR DECODED HERE, 
AND IS HERE TO SUPPORT OTHER CODE. 



CALL SEQ: 
GO 



RTN+1 
RTN+2 
RTN+3 
RTN+4 



RCLASS 



CALL TTHE ROUTINE 

HOUSKEEPING CLASS (NOT USED) 

POSITIONING CLASS 

FIXED DATA SIZE READ/WRITE CLASS 

NON-FIXED DATA SIZE READ/WRITE CLASS 



RCLASS: PUT 2 ;SAVE AC2 

.•POSSIBILITIES ARE READ/WRITE/POSITION 
RCLA1 



MOVE 1. LASTC (DSW) 

ANDI 1.77 

TRO 1.1 

CAIG 1.60 

JRST RCLA2 



GET LAST COMMAND 
SAVE LOW ORDER 6 BITS 
SIMULATE A SET GO-BIT 
IS IT A READ/WRITE CLASS 
NO, TRY FOR POSITION CLASS 



;IT LOOKS LIKE A READ/WRITE CLASS. SEE If ITS LEGAL. 



RCLA3: 



CAIN 
JRST 

CAIN 
JRST 

CAIN 
JRST 

CAIN 
JRST 

CAIN 
JRST 

CAIN 
JRST 

JRST 



1.61 
RCLR4 

1,71 
RCLR4 

1,73^ 
RCLR4 

1.63 
RCLR3 

1,65 
RCLR3 

1,75, 
RCLR3 

RCLRFF 



WRITE DATA COMMAND ? 
YES 

READ DATA COMMAND ? 
YES 

READ HEADER AND DATA COMMAND ? 
YES 

WRITE HEADER AND DATA (FORMAT) COMMAND ? 
YES 

WRITE TRACK DISCRIPTOR COMMAND ? 
YES 

READ TRACK DISCRIPTOR COMMAND ? 
YES 



FATAL UNKNOWN READ COMMAND 



.•MUST BE A POSITION COMMAND 

.•CHECK FOR A LEGAL POSITION COMMAND 



RCLA2: 



CAIN 
JRST 

CAIN 
JRST 



1.05 
RCLR2 

1.07^ 
RCLR2 



.•SEEK ? 
;YES 

;RECAL ? 
;YES 



dfrpm;? 

DFRPM2 

11827 
11828 
11829 
11830 
11831 
11832 
11833 
1183A 
11835 
11836 
11837 
11838 
11839 
11840 
118A1 
11842 
11843 
11844 
11845 
11846 
11847 
11848 
11849 
11850 
11851 



MACRO X53B(1242) 19:37 12-Sep-85 Page 37-1 

MAC 9-Sep-85 09:49 INTERRUPT SERVICE. ECC CORRECTION, RETRV ROUTINES 



SEQ 0403 



002325' 
002326' 

002327' 
002330' 



306 01 00 00QQ31 
254 00 00 002337' 

306 01 00 000015 
254 00 00 002337' 



002331' 306 CI 00 000017 

002332' 254 00 00 002337' 

002333' 260 17 00 000700* 

002334' 254 00 00 002333' 



CAIN I,? I 

JRST RCIR2 

CAIN iJ5 

JRS7 RCLR2 

CAIN 1.17 

JRST RCLR2 

RCLRFF: 60 FFF 

JRST .-1 



.•SEARCH ? 
;YES 

.•OFFSET ? 
;YES 

.•RETURN TO CENTFRLINE ? 
;YES 

.•NOT A LEGAL COMMAND. FATAL OUT 
.•LOOP 



OEFE 
DEFE 

121 
121 
121 



;HERE ARE THE MULTIPLE RETURN ADJUSTMENTS 



002335' 
002336* 
002337' 
002340' 
002341 ' 
002342' 



350 00 
350 00 
350 00 
255 00 

262 17 

263 17 



17 
17 
17 
00 
00 
00 



vmi 

777777 
777777 
000000 
000002 
000000 



RCLR4 
RCLR3 
RCLR2 
RCLR1 



AOS 

AOS 

AOS 

JFCL 

GET 

RTN 



-1(P) 
-l(P) 
-MP) 



.•THIS IS FOR RTN+4 
.-THIS IS FOR RTN+3 
.•THIS IS FOR RTN+2 
.•THIS IS FOR RTN+1 
.•RESTORE AC 2 
.•FINALLY. THE EXIT 



(NOT USED) 



DFRPM2 
DFRPM2 

11852 
11853 
1185A 
11855 
11856 
11857 
11858 
11859 
11860 
11861 
11862 
11863 
1186A 
11865 
11866 
11867 
11868 
11869 
11870 
11871 
11872 
11873 
1187A 
11875 
11876 
11877 
11878 
11879 
11880 
11881 
11882 



MACRO X53B(1242) 19:37 12-Sep-85 Page 38 

MAC 9-Sep-85 09:A9 INTERRUPT SERVICE, ECC CORRECTION, RETRY ROUTINES 

;ERTRAN — ROUTINE SETS UP AC2 ERROR INFORMATION FOR CALL TO PR6ENT 
.-THIS ROUTINE TRANSLATES ERROR BITS FROM THE DRIVE REGISTERS INTO THE 
;PROPER BIT POSITION FOR THE CALL TO PRGENT (MODIFYING THE MAPOUT DATA 
;8ASE). THIS ROUTINE USES REGISTER DATA CURRENTLY IN THE DSB AREA. 
.-BITS 08-13 OF AC2 ARE SET UP, 
;BIT 35 IS SET TO 1 IF BITS 08-13 ARE NON-ZERO 



SEO 0404 



.-CALL SEQ: 
GO 
RTN 



002343' 
002344' 
002345' 
002346' 
002347' 
002350' 
002351 • 
0C2352' 
002353' 
002354' 
002355' 
002356' 
002357' 
002360' 
002361 ' 
002362' 
002363' 
002364' 
002365' 



261 17 
402 00 



200 01 
602 01 
661 02 






602 01 
661 02 



602 01 
661 02 
602 01 
661 02 







602 01 
661 02 

602 01 
661 02 

603 02 
660 02 

262 17 

263 17 



00 000001 
00 000002 
14 000011 
00 100000 
00 001000 
00 020000 
00 000020 
00 010000 
00 000040 
00 000400 
00 000200 
00 000200 
00 000100 
00 000100 
00 000400 
00 001770 
00 000001 
00 000001 
00 000000 



ERTRAN: 



PUT 

SETZM 

MOVE 

TRNE 

TLO 

TRNE 

TLO 

TRNE 

TLO 

TRNE 

TLO 

TRNE 

TLO 

TRNE 

TLO 

TLNE 

TRO 

6|T 

RTN 



ERTRAN 



1 

2 

1,R2D(DSW) 

1,1820 

2,(188) 

1,1822 

2,(1813) 

1,1823 

2,(1812) 

1,1827 

2,(1810) 

1,1828 

2,(1811) 

1,1829 

2,(189) 

2,1770 

2,1 

1 



THE CALL 

AC2 IS IN FORMAT OF MAPOUT ENTRY WORD-3 

SAVE AC 

START CLEAN 

GET ER2 DATA 

DCK ? 

YES 

OPI ? 

YES 

DTE ? 

YES 

HCRC ? 

YES 

HCE ? 

YES 

ECH ? 

YES 

ARE BITS 08-13 CLEAR 

NO, SET BIT 35 

RESTORE AC1 

AC2 IS NOW SET UP 



1 



DFRPM2 
DFRPM2 

11883 

1188A 

11885 

11886 

11887 

11888 

11889 

11890 

11891 

11892 

11893 

1189A 

11895 

11896 

11897 

11898 

11899 

11900 

11901 

11902 

11903 

1190A 

11905 

11906 

11907 

11908 

11909 

11910 

11911 

11912 

11913 



MACRO X53B(12A2) 19:37 12-Sep-85 Page 39 



MAC 



9-Sep-85 09:A9 



002366' 661 HO 00 000400 
002367' 202 14 1 14 000000 
002370' 661 14 00 010000 



002371 ' 
002372' 
002373' 
002374' 
002375' 
002376' 
002377' 
002400' 



030 00 
332 00 
030 GO 
336 00 
037 00 
260 17 
037 00 
260 17 



00 002640' 
00 000001 
01 000000 
00 000001 
00 030242 
00 001567* 
00 030242 
00 001571* 



002401' 030 00 00 002643' 
002402" 260 17 00 000625* 
002403' 263 17 00 000000 



INTERRUPT SERVICE, ECC CORRECTION, RETRY ROUTINES 

.-MRKBAD — ROUTINE TO MARK DRIVE NOT USEABLE Bi PROGRAM 

.•SETS DSW(9) TO A 1 AND UPDATES DSW IN DEVTBL. 

.-THIS PRINTS THE APPROPRIATE SHUTDOWN MESSAGE AS WELL AS AN OPTIONAL 

.•MESSAGE POINTED TO BY ACl ON THE CALL... 



SEQ 0405 



;CALL SEQ: 

MOVE 
: GO 

F RTN-1 



l.ARGl 
MRKBAD 



POINTER TO ASCI2 MESSAGE (OR IF NO MSG) 
THE CALL 
THE RETURN 



•NOTE - THE USER MESSAGE SHOULD HAVE A <CR><LF> AT BEGINNING AND END 



MRKBAD: TLO 

MOVEM 

TLO 

TEXT 

SKIPE 

TEXT 

SKIPN 

PCRL 

GO 

PCRL 

GO 

TEXT 

DRIVE WILL NO 

******** 

/] 

GO 
RTN 



DSW.(1B9) 
DSW.aO(DSW} 
DSW.(1B5) 
[ASCIZ/ 

1 

(1) 

1 

• NAME 

RUNTME 
CASCIZ/ 
LONGER BE TESTED 



PTOTAL 



MARK AS NOR USEABLE 

PUT UPDATED COPY OF DSW IN DEVTBL 

RETRY UNSUCESSFUL 



.-SEE IF USER HAS A MESSAGE ' 
;YES. PRINT IT 
.•WAS THERE A MESSAGE ? 
;N0 THEN WE NEED THE CRLF 
.•IDENTIFY DRIVE AND RH. ETC 



.•PRINT RUNTIME 



.•PRINT TOTALS FOR THIS DRIVE 
;EXIT 



DFRPM2 
DFRPM2 

119U 

11915 

11916 

11917 

11918 

11919 

11920 

11921 

11922 

11923 

1192A 

11925 

11926 

11927 

11928 

11929 

11930 

11931 

11932 

11933 

11 934 

11935 

11936 

11937 

11938 

11939 

11940 

11941 

11942 

11943 

11944 



MACRO 5;53B(1242) 19:37 12-Sep-85 Page 40 ^ _ 

MAC 9-Sep-85 09:49 INTERRUPT SERVICE, ECC CORRECTION, RETRY ROUTINES 



SEQ 0406 



;ADRP1 - ADRM1 -- PHiTSICAL DISK ADDRESS ADJUSTMENT ROUTINES. 
.•THESE ARE ENTRY POINTS INTO A SUBROUTINE TO ADJUST PHYSICAL DISK ADDRESSES 
;UP (OR) DOWN BY 1. THE ROUTINE ACCEPTS THE PHYSICAL ADDRESS IN ACl AND 
.-RETURNS THE CORRECTED PHYSICAL ADDRESS IN ACl (CYL., SURF. SECT) 

•ADRPI IS FOR PLUS 1 
;ADRM1 IS FOR MINUS 1 



.-CALL SEQ: 

MOVE 
GO 

p RTN+1 



1.ARG1 
ADRXl 



002404' 26! 17 00 000003 
002405' 201 03 00 000001 
002406' 254 00 00 002411' 



002407' 
002410' 
002411' 
002412' 
002413' 
002414' 
002415' 
002416' 
002417' 
002420' 
002421 ' 
002422' 



261 17 
476 00 

261 17 
200 02 
476 00 
260 17 
270 01 
260 17 
200 01 

262 17 

262 17 

263 17 



00 000003 
00 000003 
00 000002 
00 000001 
00 000001 
00 001342* 
00 000003 
00 002414* 
00 000002 
00 000002 
00 000003 
00 000000 



ADRPI : 

ADRMl : 
ADRPM: 



PUT 3 
MOVEI 3.1 
JRST ADRPM 



PUT 

SETOM 

PUT 

MOVE 

SETOM 

GO 

ADD 

GO 

MOVE 

GET 

GET 

RTN 



3 
3 

2 

2.1 

1 

ADCON 

1.3 

ADCON 

1-' 

3 



;CYL,, SURF. SECT 
;WHE6§ X IS V' OR "M" 
.•CORRECTED ADDRESS IN ACl 

SAVE AC 

A CONSTANT = +1 

TO COMMON CODE 



SAVE AC 

A CONSTANT = -1 

SAVE AC2 

GET DISK ADDRESS TO AC2 

TELLS ADCON TO CONVERT TO LBN ... 

CONVERT TO LBN .. 

ADD CONSTANT (+1. -1) TO LBN 

CONVERTS BACK TO PHYSICAL ADDRESS 

GET PHYSICAL ADDR TO ACl FOR RETURN 

RESTORE AC'S 

;AND EXIT 



DFPPM2 
DFRPM2 

11945 

119A6 

11947 

11948 

11949 

11950 

11951 

11952 

11953 

11954 

11955 

11956 

11957 

11958 

11959 

11960 

11961 

11962 

11963 

11964 

11965 

11966 

11967 

11968 

11969 

11970 

11971 

11972 

11973 

11974 

11975 

11976 

11977 

11978 

11979 

11980 

11981 

11982 

11983 

11984 

11985 

11986 

11987 

11988 

11989 

11990 

11991 

11992 

11993 

11994 

11995 

11996 



MACRO Z53B(1242) 19:37 12-Sep-85 Page 41 

MAC 9-Sep-85 09:49 INTERRUPT SERVICE, ECC CORRECTION, RETRY ROUTINES 

LBNS — ROUTINE TO CALCULATE SOME RELATED LOGICAL BLOCK NUMBERS 

THIS SUBROUTINE LOOKS T "XFSTI, XFST2, XFST3, R5D" TO CALCULATE; 
IBLK - INITIAL BLOCK (LBN WHERE TRANSFER STARTS) 
FBLK - FINAL BLOCK (LBN WHERE TRANSFER ENDS) 
CBLK - CURRENT BLOCK (LBN = CONTENTS OF THE DA REGISTER - 1) 



SEQ 0407 



CALL SEQ: 
GO 
RTN 



002423' 261 
002424' 261 
002425' 261 



17 
17 
17 



00 000001 
00 000002 
00 000003 



LBNS; 



002426" 200 02 14 000034 

002427' 476 00 00 000001 

002430' 260 17 00 002416* 

002431' 202 01 14 000042 



002432' 
002433' 
002434' 
002435 ' 
002436' 
002437' 
002440* 
002441 • 



002442' 
002443' 
002444' 
002445' 
002446' 
002447' 
002450' 



554 01 
402 00 
230 01 
332 00 
350 00 
2?.» 01 
275 01 
202 01 



14 000035 
00 000002 
14 000036 
00 000002 
00 000001 
14 000042 
00 000001 
14 000044 



135 02 
135 01 
504 02 
476 00 
260 17 
275 01 
202 01 



00 002554' 
00 002555' 
00 000001 
00 000001 
00 002430* 
00 000001 
14 000043 



002451' 262 17 00 000003 

002452' 262 17 00 000002 

002453' 262 17 00 000001 

002454' 263 17 00 000000 



NO ERRORS DETECTED 



PUT 
PUT 
PUT 



LBNS 



1 
2 
3 



;CALL THE ROUTINE .... 
;IBLK, CBLK, FBLK SET UP 



.•SAVE AC'S 



HERE WE CALCULATE INITIAL BLOCK (LBN WHERE XFER STARTED) 



MOVE 2,XFST2(DSW) 

SETOM 1 

GO AD CON 

MOVEM 1,IBLK(DSW) 



GET THE INITIAL BLOCK NUMBER 
WANT TO CONVERT TO BLOCK 
DO IT 
;SAVE INITIAL BLOCK # 



HERE WE CALCULATE THE FINAL BLOCK (LBN OF LAST BLOCK IN THIS TRANSFER) 



HLRZ 1,XFST3(DSW) 

SETZM 2 

IDIV 1,8LKSIZ(DSW) 

SKIPE 2 

AOS 1 

ADD 1,I6LK(DSW) 

SUBI 1,1 

MOVEM 1,FBLK(DSW) 



.-GET THE INITIAL WORD COUNT 
CLCAR AC ... 
CALC FINAL BLOCK 
ROUNDING FACTOR 
THIS ROUNDS UP 
NOW HAVE FINAL+1 
NOW HAVE FINAL 
SAVE IT .. 



;HERE WE CALCULATE CURRENT BLOCK (LBN WHERE ERROR OCCURED) 



LDB 

LDB 

HRL 

SETOM 

GO 

SUBI 

MOVEM 



2, [POINT 16,R5D(DSW),35] ;GET TRACK , RECORD 
1, [POINT 16,R13D(DSW),35J ;GET CYLINDER 



V 

AD CON 

1,1 

1,CBLK(DSW) 



;AC2/ CYL,,TRK,REC 
.-MAKE AC1 NEGATIVE 
.•CONVERT TO LOGICAL BLOCK 
.•BACK UP TO THE FRONT 
;SAVE AS CURRENT BLOCK 



.•RESTORE AC'S AND EXIT 



GET 
GET 
GET 
RTN 

END 



3 

2 

1 



;RTN 



1 



1395 



DFRPM2 MACRO X53B(12A2) 19:37 12-Sep-85 Page Al-1 ' „_ 

DFRPM2 MAC 9-Sep-85 09:49 INTERRUPT SERVICE, ECC CORRECTION. RETRY ROUTINES 

PROGRAM BREAK IS 002654 
CPU TIME USED 00:05.610 

1UP CORE USED 



SEQ 0408 



n _ r 



DFRPM2 MACRO X53B(1242) 19:37 12-Sep-85 Page S-1 
DFRPM2 MAC 9-Sep-85 09:49 SYMBOL TABLE 



SEQ 0409 



ADCON 


002446' 


ext 


ECH 


A0RM1 


002407' 




ERCHK 


ADRP1 


002404' 




ERCK1 


ADRPM 


002411' 




ERCKX 


ALG.03 


001127' 




ERFLG 


ALG.04 


001101' 




ERROR 


ALG.06 


001112' 




ERTRAN 


ALG.07 


)01124' 




FBLK 


ALG.20 


)01134' 




FER 


ALG.SP 


)01123' 




FFF 


ALGPTR 


)02242' 




GET 


APPLY 


)00727' 


ent 


GETENT 


ATAO 


)00246' 




GETLOG 


ATAl 


)00255' 




GO 


ATA2 


)00273' 




HCE 


ATASER 


)00237' 




HCRC 


ATAX 


)00274' 




HUNG 


ATAX1 


)00301 ' 




lAE 


BLKSIZ 


)00036 




BLK 


BSYCNT 


)00347' 


ext 


DENT 


BSYNO 


)0C032' 




NTPCS 


BZRO 


)00005' 




OEX 


6ZR01 


)00017' 




lORL 


C6LK 


)00043 




lORZ 


CCWPNT 


)00220' 


ext 


I owl 


CCUPTR 


)00037 




lOWAIT 


CL0G1 


)00027 




IPC1 


COMB25 


)01354' 




IPCATA 


CON ID 


)00001 




IPCDC 


CONIPT 


)00000 


ext 


IPCREL 


CONSU 


)i.>046 




IPCSIO 


CORX 


)00747' 




IPCSX 


CWHD 


)00724' 


ext 


JEN 


DAIUD 


)02455' 




LASTC 


DCK 


)02365 


spd 


LBNS 


DEAD 


)00302' 




LDRGOO 


DEADM 


)00472' 




LDRG04 


D0N1 


)00173' 




LGER1 


00N2 


)00201 ' 




LGER2 


D0N3 


)00214' 




LGER3 


D0N4 


)00222' 




LGERX 


DONS 


)00230' 




LOGERR 


D0N7 


)00235' 




L06PNT 


DONSER 


)00161' 




LOOPER 


DONX 


)00236' 




MAPOVR 


DRIVE 


)00015 




MBCN 


DRVCLR 


)00563' 


ext 


MES1 


DSW 


)00014 




MES2 


DTE 


)02372 




MES3 


DUMPA 


)00307' 


ext 


MES4 


DUMPS 


)00272' 


ext 


MESS 


ECCCOR 


)00664' 


ent 


MES6 


ECCPAT 


)02456' 




MES7 


ECCPOS 


)02457' 




MESS 


ECCRPT 


000756' 




MRKBAD 



262740 



260740 



254500 



02364 




NORET 


)0570' 




NORPT 


)0601 ' 




NOTST 


00603' 
00011 




N0TST1 




OFV.03 


)0602' 


ext 


OFV.04 


)2343' 




OFV.06 


)0044 




OFV.07 


2371 




0FV.20 


2333' 


ext 


OFV.SP 


0000 




OFVALU 


1166' 


ext 


OPI 


0537' 


ext 


P 


0000 




PALERS 


2370 




PATOK 


2367 




PCRL 037000 


0571' 


ext 


PNT4 037200 


2373 




PNTADR 037400 


0042 




PNTHW 037540 


0762' 


ext 


POSADR 


0112' 




PRGENT 


0055' 




PSDN 


0044' 




PTFUS 


0053' 




PTOTAL 


0004' 




PUT 261740 


0000' 


ent 


R11D 


0540' 




R13D 


0551' 




R16D 


0563' 




R17D 


0542' 




RID 


0527' 




R2D 


0565' 




R4D 


0000 




R5D 


0040 




RAESER 


02423' 
01213' 




RBKCNT 


ext 


RC.01 


0560' 


ext 


RC.05 


0642' 




RC.07 


0646' 




RC.11 


0660' 




RC.13 


0662' 




RC.15 


0631' 


ent 


RC.17 


0221' 


ext 


RC.21 


4000 


spd 


RC.23 


2364 




RC.31 


0016 




RC.61 


0356' 




RC.63 


0360' 




RC.65 


0377' 




RC.73 


0413' 




RC.7S 


0423' 




RCBLK 


00434 • 
00444' 




RCLA1 




RCLA2 


0460' 




RCLA3 


02366' 




RCLASS 



002233' 

001175' 

000623' 

000626' 

002266' 

002262' 

002262' 

002262' 

002262' 

002262' 

002252' 

002366 

000017 

001000 

000712' 

030242 

000000 

000000 

000000 

000041 

002224' 

000765' 

002460' 

002402' 

000000 

000020 

000022 

000025 

000026 

000010 

000011 

000013 

000014 

000321 

000052 

001074' 

001067' 

001070' 

001076' 

001100' 

001072' 

001073' 

001077' 

001075' 

001071' 

001066' 

001064' 

001062' 

001065' 

001063' 

000046 

002277' 

002321 ' 

002304' 

002276' 



ext 
ext 



spd 



ext 
ext 

ext 



RCLRl 

RCLR2 

RCLR3 

RCLR4 

RCLRFF 

RCOUNT 

RDRG01 

RDRG04 

RE6PNT 

RETFAL 

RETREQ 

RETRY 

RETRYA 

RETRYF 

RETRYX 

RETRYY 

RETYFI 

RETYHO 

RETYPO 

RFBLK 

RFIXED 

R6LIST 

RH0US1 

RH0US2 

RH0US3 

Rri0US4 

RHOUSE 

RHSER 

RHSERX 

RIBLK 

RLBNS 

RLBNS1 

RLBNS2 

. • BNS4 

RMED1 

RMEDEX 

Rr'DIA 

RMEDNE 

RPOSIT 

RT.05 

RT.OSA 

RT.05B 

RT.05C 

RT.07 

RT.07A 

RT.07B 

RT.07C 

RT.15 

RT.15A 

RT.15B 

RT.15C 

RT.17 

RT.17A 

RT.17B 

RT.17D 



002340' 

002337' 

002336' 

002335' 

002333' 

000050 

001216' 

000045' 

000331 ' 

002363 

002362 

001025' 

001035' 

002230' 

001060' 

001061' 

001056' 

001052' 

001054' 

000047 

001250' 

000010 

001211' 

001225' 

001232' 

001223' 

001210' 

000062' 

000100' 

000045 

001313' 

001331' 

001333' 

001350' 

001153' 

001202' 

001136' 

001176' 

001235' 

001421' 

001430' 

001445' 

001450' 

001567' 

001376' 

001407' 

001412' 

001606' 

001615' 

001630' 

001631' 

001544' 

001553" 

001564' 

001577' 



ext 
ext 
ext 



ent 
ext 



ent 



DFRPM2 MACRO !i;53B(1242) 19:37 12-Sep-85 Page S-2 
DFRPM2 MAC 9-Sep-85 09:A9 SYMBOL TABLE 



SEQ 0410 



RT.31 

RT.31A 

RT.31B 

RT.31C 

RT.31D 

RT.31E 

RT.61 

RT.61A 

RT.61B 

RT.61C 

RT.61D 

RT.61E 

RT.6ir 

RT.61G 

RT.61X 

RT.63 

RT.63A 

RT.63B 

RT.63C 

RT.65 

RT.65A 

RT.65B 

RT.65C 

RT.71 

RT.71A 

RT.71B 

RT.71C 

RT.71D 

RT.71E 

RT.71F 

RT.716 

RT.71J 

RT.71X 

RT.73 

RT.75 

RT.75A 

RT.75B 

RT.75C 

RTN 

RTNCTL 

RUNTME 

RWCLXF 

RXFST1 

RXFST2 

RXFST3 

RXFSTC 

SEREX 

SERV 

SERVX 

SHMODE 

SNAPA 

TEXT 

UNSCHK 

UNSFM 

USECHK 



263740 



030000 



00K57' 

00U71' 

001511' 

001520' 

001525' 

001533' 

002010' 

002024' 

002025' 

002046' 

002052' 

002057' 

002066' 

002073' 

002101' 

001746' 

001757' 

001762' 

001777' 

001640' 

001651' 

001655' 

001672' 

002114' 

002130' 

002131' 

002172' 

002176' 

002204' 

002213' 

0v^220' 

002147' 

002226' 

002114' 

001703' 

001714' 

001720' 

001735' 

000000 

001556' 

002400' 

000051 

001310' 

001277' 

000053 

001257' 

000334 • 

000134' 

000351 ' 

000332' 

001232' 

000000 

000616' 

000504' 

000605' 



ext 
ext 



USECKX 


000627' 




USEPI 


000034' 


ext 


JSER 


030037 




ii 


000007 
000013 






XFST1 


000033 




XFST2 


000034 




XFST3 


000035 




XFSTRT 


002155' 


ext 


XINTR 


002345 




SSVUPC 


030114 




SSVUUO 


030113 




.CONI 


000064' 


ext 


.NAME 


002376' 


ext 


.OFSET 


001622' 


ext 


.RECAL 


001401' 


ext 


.REL 


000544' 


ext 


.REQ 


001212' 


ext 


.RHCLR 


000564' 


ext 


.SEEK 


001437' 


ext 


.SRCH 


001500' 


ext 



ent 

ext 
ext 



DEFECT 
DEFECT 

11997 
11998 
11999 
12000 
12001 
12002 
12003 
1200A 
12005 
12006 
12007 
12008 
12009 
12010 
12011 



MACRO X53B(1242) 19:37 12-Sep-85 Page 1 
MAC 9-Sep-85 09:49 --.-..- 



FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 

TITLE DEFECT 

SUBTTL FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



SEQ 0411 



000000* 



RELOC 
SEARCH 

ENTRY 



DEFINS,M0NSYM 

CNTDEF, DEFECT, GENHDR,LDENT,LDENTH,TDINP 



EXTERN AB8PT,CWFMT,CUHDC,FFF,FLIST.MXSEC,NUMIN,PNTBCD 
EXTERN POCDEF,PSDN,QSTN 

XLIST 

LIST 

PAGE 



DEFECT 
DEFECT 

12012 

12013 

120U 

12015 

12016 

12017 

12018 

12019 

12020 

12021 

12022 

12023 

1202A 

12025 

12026 

12027 

12028 

12029 

12030 

12031 

12032 

12033 

1203A 

12035 

12036 

12037 

12038 

12039 

120A0 

12041 

12042 

12043 

12044 

12045 

12046 

12047 

12048 

12049 

12050 

12051 

12052 

12053 

12054 

12055 

12056 

1205^ 

12058 

12059 

12060 

12061 

12062 

12063 

12064 

12065 

12066 



MACRO X53B(1242) 19:37 12-Sep-85 Page 1-1 

- - ■- FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



MAC 



9-Sep-85 09:49 



SEQ 0412 



000000' 261 17 00 000007 

000001 ' 261 17 00 000000 

000002' 261 17 00 000002 

000003' 261 17 00 000001 

000004' 402 00 00 000007 



000005' 
000006' 
000007' 
000010' 
000011' 
000012' 



000013' 
000014' 
000015' 
000016' 
000017' 
000020' 
000021 ' 



000022' 
0CC023' 
000024' 
000025' 
000026' 
000027' 
000030' 
000031 • 
000032' 
000033' 



550 01 
270 01 
275 01 
514 00 
5m J 00 
251 00 01 000000 



17 000000 
13 000000* 
00 000001 
07 000042' 
17 000000 



550 01 
270 01 
275 01 
514 00 
540 00 



270 00 
251 00 



550 00 
242 00 
500 00 
200 01 
661 00 
202 00 
350 00 
270 01 
135 02 
317 02 



17 000000 
13 000000* 

00 000001 
17 000000 
17 000000 
13 000006* 

01 000000 



17 min 

00 000010 

17 mm 

17 000000 
00 140000 
000000 
000000 
000020* 
001034' 
000000* 



01 




$*• ********************************************************************** 
m'GENHDR — ROUTINE BUILDS A BUFFER OF HEADERS 

S*; ********************************************************************** 



COMMENT $ 



MOVE 

MOVE 

GO 

RTN+1 

$ 

XLIST 

LIST 

6ENHDR: PUT 
PUT 
PUT 
PUT 
SETZM 



THIS ROUTINE BUILDS A FULL TRACK OF HEADERS IN CORE. 
THE FORMAT IS 18 BIT MODE AND NO DEFECTS ARE ASSUMED. 
DEFECT INFORMATION IS LATER ADDED BY "DEFECTS". 
CALL SEQ: 



1,ARG1 
2,ARG2 
GENHDR 



X 

2 
1 
X 



BUFFER ADDRESS 
CYLINDER,, SURFACE 
GENERATE THE HEADERS 
ALWAYS RETURNS HERE 



.-SAVE AC'S 



; SETUP FOR 600 MB 



.-MOVE 1ST DEFAULT HEADER FROM TABLE INTO BUFFER USING BLT. 



HRR2 

ADD 

SUBI 

HRLZ 

HRR 

BLT 



1,(P) 
1,CWHDC(X1) 

1,1 

0,HDRTBL(X) 
0,(P) 
0,(1) 



GET BUFFER START ADDR 

ADD NUMBER OF WORDS IN HEADER 

NOW HAVE BLT END ADDR (E) 

ACO = SOURCE,, FOR BLT 

GET BUFFER ADR ACO = SOURCE,, DEST 

START THE BLT 



.-NOW REPEAT FIRST HEADER AS REQUIRED TO FILL UP THE BUFFER 



HRRZ 

ADD 

SUBI 

HRLZ 

HRR 

ADD 

BLT 



1,(P) 

1,CWFMT(X1) 

1,1 

0,(P) 

0,(P) 

0,CWHDC(X1) 

0,(1) 



START OF BUFFER 

ADD IN THE LENGTH 

AC1 NOW HAS BLT END ADDR. 

ACO = SOURCE,, 

ACO = SOURCE,, SOURCE 

ACO = SOURCE,, DEST 

FILL THE BUFFER 



;RUN THRU THE BUFFER PLUGGING IN THE HEADER WORDS 



HRRZ 0,-1 (P) 

LSH 0,*D8 

HLL 0,-1 (P) 

MOVE 1 , (P) 

HDL: TLO 0,140000 

MOVEM 0,(1) 

AOS 

ADD 1,CWHDC(X1) 

LDB 2, [POINT 8,0,35] 

CAMG 2,MXSEC(X1) 



GETS SURFACE NUMBER 

SHIFT INTO POSITION 

NOW HAVE CYLINDER,, SURF. SECT=0 

POINTER TO BUFFER START 

SET BOTH GOOD SECTOR FLAGS 

UPDATE BUFFER WORD 

INCREMENT SECTOR NUMBER 

INCREMENT POINTER CORRECTLY 

;GET SECTOR FIELD 

§EE IF FINISHED 



DEFECT 
DEFECT 



12067 
12068 
12069 
12070 
12071 
12072 
12073 
1207A 
12075 

8?^ 



12078 
12079 
12080 
12081 
12082 
12083 
1208A 
12085 
12086 



MACRO X53B(12A2) 19:37 12-Sep-85 Page 1-2 

MAC 9-Sep-85 09:49 FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



SEQ 0413 



00003A' 
000035' 
000036* 
000037' 
OOOOAO' 
0000A1 • 



254 
262 
262 
262 
262 
263 



00 
17 
17 
17 
17 
17 



00 000026' 
00 000001 
00 000002 
00 000000 
00 000007 
00 000000 



JRST 


HDL 


GET 


1 


GET 


2 


GET 





GET 


X 


RTN 





;NOT DONE. LOOP. 



.•EXIT 



000042' 000000 000043' 



000043' 140000 000000 
000044' 140000 140000 
000045' 140000 140000 



.•TABLE OF POINTERS TO EACH DEFAULT HEADER BLOCK (EXPANDABLE) 
HDRTBL: HT1 ;F0R 600-MB RP07 

.•DEFAULT RP07 HEADER BLOCK (18 BIT MODE. NO DEFECTS) 



HT1: 140000.. 000000 
140000.. 140000 
140000.. 140000 

XLIST 

LIST 

PAGE 



.•GOOD SECTOR FLAGS ARE B0TH=1 
.•WORDS 3 & 4 ARE 140000 
.-WORDS 5 & 6 ARE 140000 



DEFECT 
DEFECT 

12087 

12088 

12089 

12090 

12091 

12092 

12093 

1209A 

12095 

12096 

12097 

12098 

12099 

12100 

12101 

12102 

12103 

1210A 

12105 

12106 

12107 

12108 

12109 

12110 

12111 

12112 

12113 

121U 

12115 

12116 

12117 

12118 

12119 

12120 

12121 

12122 

12123 

1212A 

12125 

12126 

12127 

12128 

12129 

12130 

12131 

12132 

12133 

1213A 

12135 

12136 

12137 

12138 

12139 

12U0 

12U1 



MACRO X53B(12A2) 19:37 12-Sep-85 Page 1-3 

MAC 9-Sep-85 09:A9 FILE HAS SUPPORT 



ROUTINES FOR FORMATTING AND DEFECT HANDLING 



SEQ 0^^^ 



0000A6' 261 17 00 000000 

0000A7' 261 17 00 000001 

000050* 261 17 00 000002 

000051' 261 17 00 000003 

000052' 261 17 00 000007 

000053' 402 00 00 000007 

00005A' 202 01 00 001023' 

000055' 202 02 00 001 02A' 



000056' 
000057' 

oooO(:o' 

000061 ' 
000062' 
000063' 
00006A' 
000065' 
000066' 
000067' 
000070' 
000071 ' 
000072' 
000073' 
000074 • 



210 03 
514 03 
200 02 
200 01 
402 00 
134 00 
306 00 
402 00 
322 00 
221 00 
272 00 
200 00 
274 00 , 
202 00 
253 03 



07 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
00 
07 
03 
00 



001007' 

000003 

001035' 

001023' 

001033' 

000002 

140000 

000000 

000073' 

000020 

001033' 

001033' 

000773' 

001026' 

000063' 



000075' 336 00 00 000000* 
000076' 254 00 00 000101' 
000077' 200 01 00 001023" 



•♦'defect -- ROUTINE TO PUT DEFECT DATA INTO HEADERS 



COMMENT $ 



THIS ROUTINE HAS 

1. IT CHECKS TO SEE IF PRINTING OF DISPLACEMENTS IS DESIRED 

2. IT TRANSLATES DEFECT INFORMATIN FROM THE TRACK DESCRIPTOR 
RECORD TO THE HEADERS OF THE APPROPRIATE SECTORS. 



CALL SEQ 

MOVE 

MOVE 

60 

RTN 

$ 

XLIST 

LIST 



DEFECT: PUT 

PUT 1 

PUT 2 

PUT 3 

PUT X 



1.ARG1 
2,AR62 
DEFECT 



SETZM X 
MOVEM LTDPTR 
MOVEM 2.HDPTR 



POINTER TO START OF TD BUFFER 
POINTER TO START OF TRACK HEADER BUFFER 
CALL THE ROUTINE 
RETURNS +1 ALWAYS 



;SAVE AC'S 



SETUP FOR 600 MB 

SAVE TRACK DESCRIPTOR BUFFER ADDRESS 

SAVE TRACK BUFFER ADDRESS 



.•MOVE DEFECT INFORMATION INTO THE DEFECT DISTANCE TABLE 

;AT THE SAME TIME. THROW AWAY THE 14000 CODE. AND CONVERT ALL THE 

.•DISTANCES TO BITS. REALITVE FROM INDEX TO THE START OF THE DEFECT. 

MOVN 3.MXDEF(X) ;-# DEFECTS 

HRLZ 3,3 ;-CNT..O 

MOVE 2. [POINT 18.(1), 353 .-POINTS IN FRONT OF FIRST DEFECT 

MOVE l.TDPTR ;P0IN1ER TO TRACK DESCRIPTOR 

SETZM TMP* .-TEMPORARY CELL FOR THE RUNNING SUM 

DLP: ILDB 0.2 ;GET DEFECT FROM T.D. 

CAIN 0.140000 ;D0 WE HAVE NULL PATTERN ? 

SETZM ;YES. THIS IS A ZERO DISPLACEMENT 

JUMPE O.DLD ;JUMP IF NO DEFECTCT ON THIS ENTRY 

IMULI 0.*D16 .-CONVERTS 16 BIT WORDS TO BITS 

ADDM O.TMP ;SAVE THE RUNNING SUM 

MOVE O.TMP ;GET THE RUNNING SUM OF DISTANCES 

SUB O.SK2(X) ;NORMALIZE TO START RATHER THAN CTR.. 

DLD: MOVEM O.DIST(3) ;PUT IN DISTANCE TABLE 

AOBJN 3, DLP .'LOOP TILL ALL DEFECT DATA XFERRED 

;LIST DEFECT DISPLACEMENT ENTRY IF NECESSARY AND INIT POINTERS 



SKIPN 

JRST 

MOVE 



FLIST 
.+3 

l.TDPTR 



WISH TO LIST DEFECTS 

NO 

YES.. GET A POINTER 



DEFECT 
DEFECT 



H2 
U3 
5UA 
>U5 
1A6 
\M,7 
JU8 
12U9 
12150 
12151 
12152 
12153 
1215A 
12155 
12156 
12157 
12158 
12159 
12160 
12161 



MACRO X53B(1242) 19:37 12-Sep- 
MAC 9-Sep-85 09:49 



85 Pa 
FIL 



e 1-A 
HAS SUPPORT 



ROUTINES FOR FORMATTING AND DEFECT HANDLING 



SEQ 0415 



000100' 

0001 or 



000102' 
000103' 
000104' 
000105* 
000106' 
000107' 
000110' 
000111' 
000112' 
000113' 
0001 H' 
000115' 



260 
260 



402 
200 
322 
311 
260 
344 
262 
262 
262 
262 
262 
263 



17 
17 



00 
00 
00 
00 
17 
01 
17 
17 
17 
17 
17 
17 



88 



000451 ' 
000333' 



i 



LDENT 
PINT 



;LIST ENTRY IF NOT NULL 
;INIT ALL THE POINTERS 



IN THE DISTANCE TABLE 
ARE NOT PROCESSED. THEY ARE THERE BECAUSE 
•OF HO'MOVED or TD MOVED AND ARE ALREADY HANDLED BY THE SCANNER ... 



;N0W PROCESS ALL THE ENTRIES 
.•ENTRIES TO THE LEFT OF P2 "• 



00 000001 

01 001026' 
00 000110' 
00 001011' 
00 000116' 
00 000103' 
00 000007 
00 000003 
00 000002 
00 000001 
00 000000 
00 000000 



DLD1 



DLDX: 



SETZM 

MOVE 

JUMPE 

CAML 

GO 

AOJA 

GET 

GET 

GET 

GET 

GET 

RTN 

PAGE 



1 

0,DIST(1) 

O.DLDX 

0.P2 

PROD 

1,DLD1 

X 

3 

2 

1 





AN INDEX REGISTER 
GET NEXT DEFECT DISTANCE 
IF=0, THEN WE'RE DONE 
DON'T PROCESS IF TO LEFT OF 
NON-0, PROCESS THE DEFECT 
BUMP POINTER AND LOOP 
DONE. RESTORE AC'S 



;AND EXIT. 



P2 



)3 



DEFECT 
DEFECT 

12162 
12163 
12164 



MACRO X53B(1242) 19:37 12-Sep-85 Page 1-5 

- " FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



MAC 



9-Sep-85 09:49 



SEO 0416 



PAGE 



._. J 



i DEFECT 
DEFECT 

12165 
12166 
12167 
12168 
12169 
12170 
12171 
12172 
12173 
1217A 
12175 
12176 
12177 
12178 
12179 
12180 
12181 
12182 
12183 
1218A 
12185 
12186 
12187 



MACRO X53B{1242) 19:37 12-Sep-85 Page 1-6 

MAC 9-Sep-85 09:49 FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANC.MNG 

. .-THIS ROUTINE IS CALLED TO PROCESS DEFECT WHOSE DISTANCE IS IN ACO. 
;ACO IS THE DISTANCE IN BITS FROM INDEX TO THE START OF THE DEFECT 
.-•'HUBPTR" points Tv, the CURRENT PLACE IN THE HEADER WHERE THE 
.-SKIP DATA MUST BE PLACED. THIS ROUTINE MUST INCREMENT THIS BYTE 
.•POINTER AND SAVE IT WHEN FINISHED. (HWBPTR: POINT 18,1(1), 17) 
;"HDPTR" IS POINTING TO START OF CURRENT HEADER IN CORE AND GETS UPDATED 
;BY POINTER INIT "PINT" OR POINTER ADVANCE "PADV*^' ROUTINES 



SEQ 0417 



000116' 261 

000117' 261 

000120' 261 

000121' 261 

000122' 261 

000123' 261 



000124' 
000125' 
000126' 
000127' 
000130' 



200 
315 
254 
260 
254 



17 
17 
17 
17 
17 
17 



01 
01 
00 
17 
00 



00 OOOOr-5 
00 000004 
00 000003 
00 000002 
00 000001 
00 000000 



PROD: 



PUT 
PUT 
PUT 
PUT 
PUT 
PUT 



5 
4 
3 
2 
1 




.-SAVE AC'S 



;SEE IF DEFECT STARTS IN THIS SECTOR, IF NOT, ADVANCE POINTERS TO NEXT SECTOR 



00 
00 
00 
00 
00 



000000 
001013' 
000131 • 
000352' 
000124' 



PRODL; 



MOVE 

CAMGE 

JRST 

GO 

JRST 

PAGE 



1,0 

1,P3 

CHKHDR 

PAOV 

PRODL 



;GET SKIP DISTANCE TO ACT 
.•DEFECT START IN CURRENT SECTOR? 
;YES. GO FIND OUT WHERE 
;N0. ADVANCE POINTERS 
;AND TEST NEXT SECTOR 



DEFECT 
DEFECT 



MACRO X53i(1242) 19:37 12-Sep-85 Page 1-7 

* ■" FILE HAS SUPPORT ROUTINES FOR FORMATT'«G AND DEFECT HANDLING 



MAC 



9-Sep-85 09:49 



SEQ 0418 



PROCESS DEFECTS IN HEADER FIELD t»*»»*tt**»* 



DEFECT 
DEFECT 

12188 
12189 
12190 
12191 
12192 
12193 
1219A 
12195 
12196 
12197 
12198 
12199 
12200 
12201 
12202 
12203 
1220A 
12205 
12206 
12207 



MACRO X53B(1242) 19:37 12-Sep-85 Page 1-7 

" - "^ FILE HAS SUPPORT ROUTINES FOR FORMATTV^G AND DEFECT HANDLING 



MAC 



9-Sep-85 09:49 



SEQ 0418 



; ************ PROCESS DEFECTS IN HEADER FIELD **♦**♦****♦* 

;SEE IF DEFECT STARTS IN THE HEADER (STACKED DEFECT CAN'T OCCUR HERE) 
;AC1 NOW CONTAINS DEFECT START IN BITS 



000131' 
000132' 
000133' 
000134' 
000135' 
000136' 
000137' 
000140' 
000141 ' 
000142' 
000143' 
000144' 
000145' 



311 01 
254 00 
200 01 
260 17 
260 17 
200 01 



272 01 
200 01 
272 01 
272 01 
272 01 
272 01 
254 00 



00 001014' 
00 000146' 
07 000761' 
00 000427' 
00 000416' 
07 000761 ' 
00 001020' 
07 000772' 
00 001015' 
00 001016' 
00 001017' 
00 001013' 
00 000324' 



CHKHDR: CAML 
JRST 
HOVE 
60 
GO 
HOVE 
ADDH 
HOVE 
ADDH 
ADDH 
ADDH 
ADDH 
JRST 

PAGE 



1,PA 

CHKG3 

1,HCRCB(X) 

RND16 

STOREH 

I.HCRCB(X) 

1,REFPTR 

1.SK8(X) 

1,PB 

1,PC 

1.PD 

1.P3 

PRODX 



DOES DEFECT START IN HEADER 

NO. 

THIS IS THE SKIP DISP (IN BITS) 

CONVERT ACl TO 16 BIT WORDS 

STORE IN HEADER WORD 

SIZE OF DISPLACEMENT IN BYTES 

REFERENCE POINTER NOW UPDATED 

DO A POINTER UPDATE 

UPDATE POINTERS BY THE SIZE OF A SKIP 



.•RESTORE AC'S AND EXIT 



DErECT HACRO X53R(1242} 19:37 12-Sep-85 Page 1-8 

** " FILE HAS SUPPORT ROUTINES FOR FORHATTING AND DEFECT HANDllNG 



DEFECT HAC 



9-Sep-85 09:49 



SEQ 0419 



. *w********** PROCESS DEFECTS IN 63 *♦*♦*♦•♦*•** 



DErECT 
DEFECT 

12208 
12209 
12210 
12211 
12212 
12213 
1221A 
12215 
12216 
12217 
12218 
12219 
12220 
12?21 
12^22 
12223 
1222A 
12225 
12226 
12227 
12228 
12229 
12230 
12231 
12232 
12233 
12234 
12235 
12236 
12237 
12238 
12239 
12240 
12241 
12242 
12243 
12244 
12245 
12246 



MACRO X53B(1242) 19:37 12-Sep-85 Page 1-8 

MAC 9-Sep-85 09:49 FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 

; ************ PROCESS DEFECTS IN G3 ************ 

;SEE IF DEFECT STARTS IN 63. IF SO. INSERT THE SKIP IN 63. 

.•CHECK FOR POSSIBILITY OF A STACKED DEFECT AND HANDLE THE SITUATION. 

;AC1 IS NOW HOLDING THE DEFECT START (IN BITS). 



SEQ 0419 



000146' 311 01 00 001015' 
000147' 254 00 00 000170' 
000150' 274 01 00 001020' 



CHK63: 



CAML 
JRST 
SUB 



1.PB 

CHKDAT 

1.REFPTR 



DEFECT START IN 63? 

NO. GO TRY DATA FIELD. 

GET DISTANCE FROM REFPTR TO START OF DEFECT 



.-SEE IF UE HAVE PC^SIBILITY OF STACKED DEFECT. 

;IF P2A AND REFPTR ARE NOT THE SAME. UE HAY HAVE TO STACK. 



000151' 200 02 
000152' 316 02 
000153' 254 00 



00 001020' 
00 001012' 
00 000156' 



MOVE 
CAMN 
JRST 



2.REFPTR 

2.P2A 

SKG31 



6ET CURRENT POINTER 

FIRST DEFECT IN THIS SECTOR ? 

YES. NO NEED TO STACK 



;NOT THE FIRST DEFECT IN THIS SECTOR. STACK DEFECTS IF THEY OVERLAP. 
;AC1 HAS # BITS FROM REFPTR TO START OF DEFECT 



000154' 315 01 07 000772' 
000155' 200 01 07 000772' 



CAM6E 
M0V5 



I.SKB^X) 
I.SKB(X) 



;D0 DEFECTS OVERLAP? 
;YES. MUST STACK THEM 



000156' 
000157' 
000160' 
000161 ' 
000162' 
000163' 
000164' 
000165' 
000166' 
000167' 



.•STORE IN THE PROPER HEADER WORD 

.•UPDATE POINTERS CORRECTLY. 

;AC1 NOW HAS THE SKIP DISPLACEMENT IN BITS 



260 17 
260 17 
2^! 01 
111 01 
200 01 
212 01 
272 01 
272 01 
V2 01 
254 00 



00 
00 
00 
00 
07 
00 
00 

8S 

00 



000427' 

000416' 

000020 

001020' 

000772' 

001015' 

001016' 

001017' 

001013' 

000324' 



SKG31 



GO 

GO 

IKULI 

ADDM 

MOVE 

ADDM 

ADDM 

ADDM 

ADDM 

JRST 

PAGE 



RND16 

STOREH 

1.-D16 

1. REFPTR 

1,SK6(X) 

l.PB 

1.PC 

1.PD 

PRODX 



CONVERT AC1 TO 16 BIT WORDS 
PUT IN HEADER ? 
CONVERT BACK TO BKS 
UPDATE ALL THE POINTERS 
SIZE OF SKIP IN BYTES 



.•RESTORE AC'S AND EXIT. 



* 



X53g(1242) 1^37 12-Sep-85 Page 1-9 

* - - ^- - " fill HAS SUPPORT ROUTINES FOR F0WMTTIN6 AND DEFECT HANDLING 



DEFECT 
DEFECT 



MAC. 
MAC 



9-Sep-85 09:49 



SEQ 0420 



DEFECT 
DEFECT 

122A7 
12248 
12249 
12250 
12251 
1225? 
12253 
12254 
12255 
12256 
12257 
12258 
12259 
12260 
12261 
12262 
12263 
12264 
12265 
12266 
12267 
12268 
12269 
12270 
12271 
12272 
12273 
12274 
12275 
12276 
n277 
12278 
12279 
12280 
12281 
12282 
12283 
12284 
12285 
12286 
12287 
12288 
12289 
12290 
12291 
12292 
12293 
12294 
13295 
'96 
?97 



12298 



MAl. 
MAC 



X53B(1242) 19:37 12-Sep-85 Page 1-9 

FILE ■•*- 



9-Sep-85 09:49 



000170* 311 01 00 001016' 
000171' 254 00 00 000244' 



000172' 
000173' 
0001/4' 
&.)0175' 
000176' 



000177' 
000200' 
000201 • 
000202' 
000203' 
000204' 

000205' 
000206' 
000207' 
000210' 
000211' 



402 
402 
336 
254 
255 



00 
00 
00 
00 
00 



00 
00 
00 
00 
00 



000003 

000004 

001021' 

000212' 

000000 



274 01 
202 01 
311 01 
254 00 
200 04 
23't 00 



00 001020' 
00 000004 
07 000772' 
00 000205' 
07 000772' 
00 000222' 



200 02 07 000772' 
270 02 00 001000' 
00 000002 



315 01 
200 04 
254 00 



00 000002 
00 000222' 



000212' 
000213' 
000214' 
000215' 
000216' 
000217' 
000220' 
000221 • 



200 02 
274 02 
272 02 
274 01 
202 01 
315 01 



200 
-•54 



04 
00 



00 001015' 
00 001020' 
00 000003 
00 001015' 
- 000004 
001000' 



^? 



00 000222' 



HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



; ************ PROCESS DEFECTS IN MOST OF THE DATA FIELD ♦****♦♦*♦*♦* 

;SEE IF DEFECT START IS IN THE DATA FIELD, IF SO, PROCESS IT. 
.-NOTE: THE DEFECTS HANDLED HERE. OCCUR 'BEFORE" POINTER 'VC 
;AC1 CONTAINS START OF THE DEFECT (IN BITS). 



SEQ 0420 



CHKDAT; 



CAML 
JRST 



1,PC 
CHK6GL 



;IS DEFECT IN DATA FIELD? 

:N0. GO SEE IF IN LAST GUARANTEED GOOD 



;AC1/ POINTS TO START OF DEFECT IN BITS 

:AC3/ USED TO SUM BITS LATER CONVERTED TO 16 BIT WORDS 

;AC4/ USED TO SUM BITS LATER CONVERTED TO 18 BIT WORDS 



CDA: 



SETZM 

SETZM 

SKIPN 

JRST 

JFCL 



3 

4 

LDDA 

CDC 



: CLEAR THE 2 RUNNING SUMMERS 

WAS THE LAST DEFECT IN THE DATA AREA ? 

NO 

YES 



;LAST DEFECT WAS IN THE DATA AREA. CALCULATE 18 BIT DISTANCES FP?M 
;"REFPTR" TO THE START OF THE DEFECT AND THEN SEE IF THE SKIP MLjT 
;BE STACKED OR HAVE TO BE SHIFTED TO THE RIGHT IN ORDER TO MAINTAIN 
;THE minimum DATA SEGMENT SIZE. 



CDB: 



CDE: 



SUB 

MOVEM 

CAML 

JRST 

MOVE 

JRST 

MOVE 

ADD 

CAMGc 

MOVE 

JRST 



1,REFPTR 

1.4 

1,SKB(X) 

CDE 

4.SKB(X) 

CDD 

2,SKB(X) 

2.SEG18 

1.2 

CDD 



GETS DISTANCE IN BITS 

SAVE THE RUNNING SUM 

DOES THIS OVERLAP PREVIOUS SKIP 

NO. 

YES. THEN FORCE A STACKED SKIP 



GET SKIP SIZE 

ADD IN THE MIN SEGMENT SIZE 
DIST >= MIN SEG + SKIP SIZE ? 
NO. FORCE THE SIZE 



.-LAST DEFECT NOT IN THE DATA FIELD. IN FACT, THIS MAY BE THE FIRST 
.•DEFECT. SUM UP 16 BIT THINGS BETWEEN "REFPTR" AND "PB" AND THEN 
.-THE 18 BIT DISTANCE BETWEEN 'W AND THE START OF THE DEFECT. 
.•INSURE THEA THE MINIMUM DATA SEGMENT IS MAINTAINED. 



CDC; 



MOVE 

SUB 

ADDM 

SUB 

MOVEM 

CAMGE 

MOVE 

JRST 



2.PB 
2.REFPTR 

l.PB 

1.4 

1.SEG18(X) 

4-SEGl8(X) 

CDD 



GET THE POINTER 

GETS 16 BIT DISANCES 

SUM IT UP 

GETS 18 BIT DISTANCE 

SAVE RUNNING SUM 

IS DIST >= MIN DATA SEGMENT 

NO. FORCE IT TO MIN SEG SIZE 



; CONVERT THE BITS TO WORDS, SUM THEM UP AND STORE THEM IN THE 
.-HEADER. CONVERT THE ROUNDED WORDS BACK TO BITS SO THE POINTERS 
;CAN BE UPDATED PROPERLY. 



DEFECT MACRO X53B(1242) 19:37 12-Sep-85 Page 1-10 

DEFEC1 MAC ^-Sep-85 09:49 FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



SEQ 0421 



12302 



DEFECT 
DEFECT 

12302 
12303 
1230A 
12305 
12306 
12307 
12308 
12309 
12310 
12311 
12312 
12313 
12314 
12315 
12316 
12317 
12318 
12319 
12320 
12321 
12322 
12323 
1232A 
12325 
12326 



MACRO 5;53B(12A2) 19:37 12-Sep-85 Page 1-10 

MAC 9-Sep-85 09:49 FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



"1 



SEQ 0421 



000222' 
000223' 
000224' 
000225' 
000226' 
000227' 
000230' 
000231 ' 

000232' 
000233' 
000234' 
000235' 
000236' 



000237' 
000240' 
000241 • 
000242' 
000243' 



200 01 
260 17 
202 01 
200 01 
260 17 
202 01 
270 01 
260 17 



03 
04 



221 
221 

272 03 
272 04 
476 00 



200 01 
272 01 
212 01 
212 01 
254 00 



00 000003 
00 000427' 
00 000003 
00 000004 
00 000437' 
00 000004 
00 000003 
00 000416' 

00 000020 
00 000022 
00 001020' 
00 001020' 
00 001021' 



07 000772' 
00 001016' 
00 001017' 
00 001013' 
00 000324' 



CDD: 



MOVE 

GO 

HOVEM 

MOVE 

GO 

KOVEM 

ADD 

GO 

IMULI 

IMULI 

ADDM 

ADDM 

SETOM 



1,3 

RND16 

1,3 

1.4 

RND18 

1,4 

1,3 

STOREH 

3,*D16 

4,*D18 

3,REFPTR 

4,REFPTR 

LDDA 



GET 16 BIT SUM 

CONVERT AC1 TO WORDS 

SAVE IN AC3 

GET 18 BIT SUM 

CONVERT AC4 TO WORDS 

SAVE IN AC4 

SUMS 16 AND 18 BIT WORDS 

PUT DISTANCE IN THE HEADER 

BACK TO BITS 
BACK TO BITS 
UPDATE REFPTR 

;FLAG SAYS THIS DEFECT IN DATA AREA 



.-WE'VE ADDED A DEFECT SKIP SO POINTERS PC, PD, P3 MUST BE UPDATED BY 
;THE SIZE OF THE SKIP. 



MOVE 
ADDM 
ADDM 
ADDM 
JRST 
PAGE 



1,SK6(X) 

1,PC 

1,PD 

PRODX 



;GET SIZE OF SKIP IN BYTES 
.•UPDATE POINTERS 
;NOW WE EXIT 



n 



DEFECT MACRO X53B(1242) 19:37 12-Sep-85 Page 1-11 

DEFECT MAC 9-Sep-85 09:49 FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



SEQ 0422 



13757 



Donrpc ncrprr at pmh op rata rrpi 



iD r^L ****>******* 



I 



■"~1 



DEFECT 
DEFECT 

12327 

12328 

12329 

12330 

12331 

12332 

12333 

1233A 

12335 

12336 

12337 

12338 

12339 

123A0 

123A1 

12342 

123A3 

123A4 

123A5 

123A6 

123A7 

123A8 

123A9 

12350 

12351 

12352 

12353 

12354 

12355 

12356 

12357 

12358 

12359 

12360 

12361 

12362 

12363 

12364 

12365 

12366 

12367 

12368 

12369 

12370 

12371 

12372 

12373 

12374 

12375 

12376 

12377 

12378 

12379 

12380 

12381 



MACRO X53B(1242) 19:37 12-Sep-85 Page 1-11 

MAC 9-Sep-85 09:49 FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 

; ************ PROCES DEFECT AT END OF DATA FIEL^ uR G4 *•***•**•♦** 

.•DEFECT STARTS BEYOND POINTER 'VC 

.•DEFECT IS IN EITHER THE FINAL PORTION OF THE DATA FIELD OR 

;IN THE 64/G5 AREA. IN EITHER CASE. THE SKIP flUST BE INSERTED IN 64/G5. 

;AC1 NOW CONTAINS THE DISTANCE TO THE START OF THE SKIP (IN BITS). 

;A''3/ USED TO ACCUMULATE 16 BIT WORD COUNT 

;AC4/ USED TO ACCUMULATE 18 BIT WORD COUNT 



SEQ 0422 



000244" 402 00 
000245' 402 00 



000246' 
000247' 
000250' 
000251 ' 



000252' 
000253' 
000254' 
00 255' 
000256' 
000257' 
000260' 
000261 ' 
000262' 



315 01 
200 01 
336 00 
254 00 



261 17 
200 01 
274 01 
260 17 
270 04 

262 17 
270 04 
270 03 
254 00 



00 000003 
00 000004 
00 001017' 
00 001017' 
00 001021' 
00 000263' 



00 000001 
00 001016' 
00 001020' 
00 000437' 
00 000001 
00 000001 
07 001005' 
07 001006' 
00 000277' 



000263' 200 02 00 001020' 
000264' 311 02 00 001015' 
000265' 254 00 00 000303' 



000266' 
000267' 
000270' 
000271 • 
000272' 
000273' 
000274' 
000275' 
000276' 



261 17 
200 01 
274 01 
260 17 
270 03 

262 17 
270 04 
270 03 
254 00 



00 000001 
00 001015' 
00 001020' 
00 000427' 
00 000001 
00 000001 
07 000764' 
07 000766' 
00 000277' 



CHK6GL: SET2M 3 

SETZM 4 

CAMGE l.PD 

MOVE l.PD 

SKIPN LDDA 

JRST C6D 



.•CLEAR THE RUNNING SUMS 

DEFECT TO RIGHT OF PD? (G4/G5) 
NO. INSERT THE SKIP AT 'VO" 
YES. LAST DEFECT IN DATA FIELD? 
NO. (EITHER LEFT OR RIGHT) 



;LAST DEFECT WAS IN DATA AREA. 
;N0 NEED TO STACK IN THIS CASE 
.-GET TOTAL n ^STANCE FROM REFPTR TO PD 



CGA: 



PUT 1 

MOVE 1.PC 

SUB 1. REFPTR 

GO RND18 

ADD 4.1 

GET 1 

ADD 4.CRIT18(X) 

ADD 3.CRIT16(X) 

JRST CGB 



SAVE ACl 

GET POINTER (BITS) 

(BITS) 
CONVERT TO 18 BIT WORDS 
ACCUMULATE THE 18 BIT WORDS TO PC 
RESTORE THE AC 

+ CRITICAL AREA 18 BIT WORDS 
ADD IN THE 16 BIT CRITICAL WORDS 



;LAST DEFECT OUT OF DATA AREA FIND OUT WHETHER IT'S TO THE LEFT OR 
.•RIGHT OF THE DATA AREA. 



CGD: 



MOVE 
CAML 
JRST 



2.REFPTR 

2.PB 

CGE 



GET POINTER IN BYTES 
LESS MEANS TO THE LEFT 
ITS TO THE RIGHT 



;REFPTR IS TO THE LEFT OF THE DATA FIELD (IN BYTES). 
;RUN UP TO G4 AND SUM THE DISTANCE 
;AC1/ DIST TO DEFECT START (BITS) 
;AC3/ USED TO SUM 16 BIT WORD DISTAN'TES 
;AC4/ USED TO SUM 18 BIT WORD DISTANCES 

CGF: PUT 1 .-SAVE ACl 

POINTER (BITS) 
DISTANCE IN BYTES 
CONVERT ACl TO 16 BIT WORDS 
UPDATE THE RUNNING SUM 
RESTORE ACl 

# OF 18 BIT WORDS DATA FIELD 

# OF 16 BIT WORDS OF ECC 
TO COMMON CODE 

;NOW ADJUSTED UP TO G4/G5 KNOWING THAT THE LAST DEFECT WAS NOT IN G4/G5 
.•CALCULATE DISTANCE INTO 64/G5. 



PUT 


1 


HOVE 


l.PB 


SUB 


1. REFPTR 


GO 


RND16 


ADD 


3.1 


GET 


1 


ADD 


4.DFW(X) 


ADD 


3.ECCW(X) 


JRST 


CGB 



DEFECT 
DEFECT 



MACRO X53B(1242) 19:37 12-Sep-85 Page 1-12 

X . «. ... .^ r p^i^g ^^^ SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



MAC 



9-Sep-85 09:49 



SEQ 0423 



,«ri/ cTAtiv nc neecrr tii Dtre 



DEFECT 
DEFECT 

12382 
12383 
1238A 
12385 
12386 
12387 
12388 
12389 
12390 
12391 
12392 
12393 
12394 
12395 
12396 
12397 
12398 
12399 
12400 
2401 
12^' 02 
12403 
12404 
12405 
12406 
12407 
12408 
12409 
12410 
12411 
12412 
12413 
12414 
12415 
12416 
12417 
12418 
12419 
12420 
12421 
12422 
12423 
12424 
12425 
12426 
12427 
12428 
12429 
12430 



MAChO X53B(1242) 19:37 12-Sep-85 Page 1-12 

- '~ FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



MAC 



9-Sep"85 09:49 



SEQ 0423 



000277' 274 01 00 001017" 

000300* 260 17 00 000427' 

000301 ' 270 03 00 000001 

000302' 254 00 00 000311' 



000303' 
000304' 
000305' 
000306' 
000307' 
000310' 



00031 1 ' 
000312' 
000313' 
000314' 
000315' 
000316' 
000317' 
000320' 
000321 ' 
000322' 
000323' 



000324' 
000325' 
000326' 
000327' 
00C330' 
000331 ' 
000332' 



274 01 
315 01 
200 01 
260 17 
270 03 
254 00 



200 01 
270 01 
260 17 
lt\ 03 
221 04 
272 03 
in 04 
200 01 
211 01 
402 00 
254 00 



262 M 
262 17 
262 17 
262 17 
262 17 

262 17 

263 17 



00 001020' 
07 000772' 
07 000772' 
00 000427' 
00 000001 
00 000311' 



00 000003 
00 000004 
00 000416' 
00 000020 
00 000022 
00 001020' 
00 001020' 
07 000772' 
00 001013' 
00 001021* 
000324- 



00 



00 000000 
00 000001 
00 000002 
00 000003 
00 000004 
00 0QOQO5 
00 000000 



;AC1/ START OF DEFECT IN BITS 
;AC3/ RUNNING SUM OF 16 BIT WORDS 
;AC4/ RUNNING SUM OF 18 BIT WORDS 



CGB: 



;THE DEFECT STARTS BEYOND POINTER "PD" 

;"REFPTR" TO THE RIGHT OF "PB" 

.-LAST DEFECT WAS NOT IN THE DATA FIELD 

.•CALCULATE DISTANCE AND STACT THE DEFECT IF NECESSARY 

;AC1/ DEFECT START (BITS) 

;AC3/ RUNNING SUM OF 16 BIT WORDS 

;AC4/ RUNNING SUM OF 18 BIT WORDS 



SUB 


l.PD 


.-DISTANCE 


GO 


RND16 


.•CONVERT AC1 TO 16 BIT WORDS 


ADD 


3.1 


.-ADD IT TO THE SUM 


JRST 


CGC 


;60 AND STORE IT 



L 



D 
D 



CGE: 



SUB 

CAMGE 

MOVE 

GO 

ADD 

JRST 



l.REFPTR 

l.SKB(X) 

l.SKB(X) 

RND16 

3.1 

CGC 



DISTANCE IN BITS 
ARE WE OVERLAPING LAST DEFECT 
YES. THEN STACK THEM 
CONVERT /"■! TO 16 BIT WORDS 
ADD THEM ': THE RUNNING SUM 
TO COMMOf .GJE 



.•FINALLY HAVE DISTANCE IN WORDS TO START OF DEFECT 
;SUM THE WORDS. STORE THEM AWAY. UPDATE THE POINTERS 



CGC; 



MOVE 

ADD 

GO 

IMULI 

IMULI 

ADDM 

ADDM 

MOVE 

ADDM 

SETZM 

JRST 



1.3 

1,4 

STOREH 

3.*D16 

4.*D18 

3.REFPTR 

4.REFPTR 

I.SKB(X) 

l6da 

PRODX 



.•COMMON EXIT ROUTINE 



PRODX: 



GET 
GET 
GET 
GET 
GET 
GET 
RTN 
PAGE 




1 
2 
3 
4 
5 



THESE ARE THE 16 BIT WORDS 
PLUS THE 18 BIT WORDS 
PUT IN HEADER 
16 BIT WORDS BACK TO BITS 
18 BIT WORDS BACK TO BITS 
UPDATE THE POINTER 

SKIP SIZE IN BITS 

BUMP POINTER 

LAST DEFECT "NOT" IN DATA AREA 

EXIT ROUTINE 



.•RESTORE AC'S 



;AND EXIT. 



DEFECT MACRO X53B(1242> 

DEFECT MAC 9-Sep-85 09: 49 



19:37 12-Sep-85 Page 1-13 
>-. .- FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



SEQ 0424 



D 
Dl 



L 



DEFECT 
DEFECT 

1243-; 

12432 

12A33 

1243A 

12435 

i:^436 

12437 

12438 

12439 

12440 

12441 

12442 

12443 

12444 

12445 

12446 

12447 

12448 

12449 

12450 

12451 

12452 

12453 

12454 

12455 

12456 

12457 

12458 

12459 

12460 

12461 

12462 

12463 

12464 

12465 

12466 

12467 

12468 

12469 

12470 

12471 

12472 

12473 

12474 

12475 



MACRO X53B(1242) 19:37 12-Sep-85 Page 1-13 

MAC 9-Sep-85 09:49 FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



SEQ 0424 



000333* 
000334' 
000335' 
000336' 
000337' 
000340' 
000341 ' 
000342' 
000343' 
000344' 
000345' 
000346' 
000347' 
000350' 
000351 ' 

000352' 

000353' 

000354' 

000355' 

000356' 

000357' 

000360' 

000361 ' 

000362' 

000363' 

0003c •. ' 

00036"' 

00036t 

000367' 

000370' 

000371 ' 

000372' 

000373' 

000374' 

000375' 

000376' 

000377' 

000400' 



17 
17 



261 
261 

200 00 
202 00 
tOO 01 
402 00 
402 00 
200 00 
270 00 
270 00 
603 01 
270 00 
603 01 
270 00 
254 00 



17 
17 



261 
261 
350 01 
313 01 
260 17 
200 00 
212 00 
200 00 
202 00 
20J 00 
202 00 
V) 00 
202 00 
202 00 
270 00 
202 00 
270 00 
202 00 
270 00 
270 00 
202 00 
270 00 
202 00 



i 



Dl 
Dl 



00 000000 
00 000001 
00 001036' 
00 001025' 
00 001023' 
00 001022' 
00 001010' 
07 000753' 
07 000754' 
07 000756' 
00 100000 
07 000772' 
00 040000 
07 000772' 
00 000364' 

00 000000 
00 000001 
00 001022' 
13 000000* 
00 000000* 
13 000031* 
00 001024' 
00 001036' 
00 001025' 
00 001013' 
00 001011' 
07 000760' 
00 001012' 
00 001020' 
07 000761 ' 
00 001014' 
07 000762' 
00 001015' 
07 000763' 
07 000765' 
00 001017' 
07 000767' 
00 001013' 



; ************ POINTER INITIALIZATION AND UPDATE ROUTINES ************ 

.•SUBROUTINE TO INIT POINTERS FOR DEFECT, "PINT" IS THE ENTRY POINT 
.•SUBROUTINE TO ADVANCE POINTERS FOR DEFECT. "PADV" IS THE ENTRY POINT 

PINT: 



PADV: 



PCOfW: 



PUT 





■SAVE AC'S 


PUT 


1 




MOVE 


0. [POINT 18.1(1) 


,17J .-POINT TO 1ST DEFECT HEADER WORD 


NOVEM 


O.HUBPTR 


•SAVE POINTER 


HOVE 


l.aTDPTR 


;TD1 NOW IN ACI 


SETZM 


HN 


[CURRENT SECTOR NUMBER 


SETZM 


PI 


•POINTER TO INDEX 


HOVE 


O.GIB(X) 


•6AP-1 SIZE 


ADD 


O.TDB(X) 


•+ SIZE OF TD 


ADD 


O.G26(X) 


•+ SIZE OF 62 


TLNE 


1.(1B2) 


;TD HOVED? 


ADD 


O.SKO(X) 


•YES. + SKIP SIZE 


TLNE 


1.(163) 


•HO MOVED? 


ADD 


O.SKB(X) 


;YES. + SKIP SIZE 


JRST 


PCOHH 


•TO COMMON CODE 


PUT 





•SAVE AC'S 


PUT 


1 




AGS 


I.HN 


;BUHP HEADER NUHBER 


CAMLE 


I.ABBPT(XI) 


;CHECK TO SEE IF WE RAN OFF TRACK 


GO 


FFF 


; .... OFF END OF TRACK .... 


HOVE 


O.CUHDC(XI) 


;* PDP-10 WORDS PER HEADER 


ADDH 


O.HDPTR 


rHEHORY POINTER NOW UPDATED. 


HOVE 


0. [POINT 18.1(1) 


,173 .-POINT TO 1ST DEFECT HEADER WORD 


HOVEH 


C.HWBPTR 


;NOW INITTED 


HOVE 


0.P3 


:6ET POINTER TO 1ST WORD 


HOVEH 


0.P2 


rPOINT TO START OF HN 


ADD 


O.HRB(X) 


;+ # OF BITS TO HDR CRC START 


HOVEH 


0.P2A 


;POINTS TO START OF HEADER CRC FIELD 


HOVEH 


O.REFPTR 


; FIRST WORD OF HEADF'' CRC 


ADD 


O.HCRCB(X) 


;+ SIZE OF HEADER F ,D 


HOVEH 


O.PA 


; POINT TO START OF o P-3 


ADD 


O.G3B(X) 


;+ SIZE OF G3 


HOVEH 


O.PB 


;POINT TO START OF DATA FIELD 


ADD 


O.DFB(X) 


;+ SIZE OF DATA FIELD IN BITS 


ADD 


O.ECCB(X) 


;♦ SIZE OF THE ECC FIELD IN BITS 


HOVEH 


O.PD 


•POINT TO GUARANTEED GOOD BITS AT END 


ADD 


0.64B(X) 


•♦ SIZE OF G4 


HOVEH 


0.P3 


•POINTER TO START OF NEXT SECTOR 



PAGE 



DEFECT MACRO X53B(1242} 19:37 12-Sep-85 Page 1-14 

DEFECT MAC ^-S«p-85 09:49 FILE HAS SUPPORT ROUTINES FOR FORHATTING AND DEFECT HANDLING 



SEQ 0425 



Dl 
Di 



L 



'"■"1 



DEFECT 
DEFECT 

12A76 
12A77 
12A78 
12A79 
12A80 
12A81 
12A82 
12483 
12484 
12485 
12486 
12487 
12488 

>o 

12491 
12492 
12493 
12494 
12495 



MACRO X53B(1242) 19:37 12-Sep-85 Page 1-14 

MAC 9-Sep-85 09:49 FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



SEQ 0425 



Di 
DE 



; SPECIAL CODE TO MOVE P3 TO THE END OF G5 IF LAST SECTOR 



000401 • 
000402' 
000403' 
000404' 
000405' 
000406' 



000407' 
000410* 
000411' 
000412' 
000413' 
000414' 
000415' 



200 00 
312 " 
154 



00 001 Oi 
13 0000! 




202 00 CO 001013' 



MOVE 

CAME 

JRST 

MOVE 

SUB 

MOVEM 



0,HN 

O.MXSEC(Xl) 

pfSET 

Q,TBT(X) 

0,SK2{X) 

0,P3 



.-HERE'S WHERE UE SET UP "PC 



200 00 
274 00 
202 00 
402 00 
262 17 

262 17 

263 17 



00 
07 
00 
00 
00 
00 
00 



001017' 

001002' 

001016' 

001021' 

000001 

000000 

000000 



PCSET: 



MOVE 

SUB 

MOVEM 

SETZM 

GET 

GET 

RTN 

PAGE 



0,PD 

0,CRITD(X) 

O.PC 

LDDA 

1 





GET HEADER NUMBER 
IS THIS THE LAST SECT ? 
NO. 

YES. GET TOTAL BITS/TRACK 
- 1/2 SIZE OF A DEFECT SKIP 
THIS IS EFFECTIVELY END OF TRACK 



;GET POINTER TO START OF G4 
.•SUBTRACT MINIMUM DATA SEGMENT (BITS) 
.-SAVE PC IN BITS FROM INDEX 
.•CLEAR LAST DEFECT FLAG 
.•RESTORE 



;AND EXIT. 



DEFECT MACRO X53B( 1242) 19:37 12-Sep-85 Page 1-15 

DEFECT MAC 9-Sep-85 09:49 FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



SEQ 0426 



DE 
DE 



L 



DEFECT 
DEFECT 

12496 

12497 

12498 

12499 

12500 

12501 

12502 

12503 

12504 

12505 

'12506 

12507 

12508 

12509 

12510 

12511 

12512 

12513 

12514 

12515 

12516 

12517 

12518 

12519 

12520 

12521 

12522 

12523 

12524 

12525 

12526 

12527 

12528 

12529 

12530 

12531 

12532 

12533 

12534 

12535 

12536 



MACRO X53B(1242) 19:37 12-Sep-85 Page 1-15 

MAC 9-Sep-85 09:49 FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



SEQ 0426 



DE 
DE 



000416' 
000417* 
000420" 
000421 • 
000422' 
000423' 
000424' 
000425' 
000426' 



000427' 
000430' 
000431 • 
000432* 
000433' 
000434' 
000435' 
000436' 



000437' 
000440' 
000441 * 
000442* 
000443' 
000444' 
000445' 
000446' 



261 
261 

200 00 
200 01 
137 00 
133 00 
262 17 
262 
263 



17 
17 



17 
17 



00 000000 
00 000001 
00 000001 
00 001024' 
00 001025' 
00 001025' 
00 000001 
00 000000 
00 000000 



261 
402 
231 
322 
350 
476 
262 
263 



17 
00 
01 
02 
00 
00 
17 
17 



00 000002 
00 001032' 
00 000020 
00 000435* 
00 000001 
00 001032' 
00 000002 
00 000000 



261 17 
4u:! 00 
231 01 
322 02 
350 00 
476 00 

262 17 

263 17 



00 000002 
00 001032* 
00 000022 
00 000445' 
00 000001 
00 001032* 
00 000002 
00 000000 



.•PLACE THE HEADER DEFECT SPECIFIER FROM ACI INTO THE PROPER HEADER WORD 
;AC1/ PROPER DEFECT DISTANCE FROM "REFPTR" IN WORDS 



STOREH: PUT 
PUT 
MOVE 
MOVE 
0P8 





1 

0,1 

1,HDPTR 
CHWBPTR 
HWBPTR 



.•SAVE AC*S 

.-DEFECT DATA TO ACO 
;PONTER TO START OF HEADER 
.-PUT WORD AWAY 
.•UPDATE BYTE POINTER 
.•RESTORE 

;EXIT 



.•CONVERT BIT COUNT IN ACI TO 16 BIT WORDS (ROUNDING UP) 
.-SET FLAG "OVF" IF ROUNDING WAS REQUIRED 



RND16: 



PUT 

SETZM 

IDIVI 

JUMPE 

AOS 

SETOM 

GET 

RTN 



2 

OVF/lf 
1.*D16 
2. .+3 

OVF 
2 



SAVE AC2 

INIT THE OVERFLOW FLAG 

CONVERT TO 16 BIT WORDS 

JUMP IF NO ROUNDING REQUIRED 

OTHERWISE ROUND 

SET THE OVERFLOW FLAG 

RESTORE THE AC 

EXIT 



.•CONVERT BIT COUNT IN ACI TO 18 BIT WORDS (ROUNDING UP) 
.•SET FLAG "OVF" IF ROUNDING WAS REQUIRED 

RND18: 



PUT 


2 


;SAVE AC2 


SETZM 


OVF# 


;1NIT THE OVERFLOW FLAG 


IDIVI 


1.*D18 


; CONVERT TO 18 BIT WORDS 


JUMPE 


2. .+3 


;JUMP IF NO ROUNDING REQUIRED 


AOS 


1 


•OTHERWISE ROUND 


SETOM 


OVF 


;SET THE OVERFLOW FLAG 


l^i 


2 


[RESTORE THE AC 




;EXIT 



XLIST 

LIST 

PAJE 



1 



DEFECT MACRO X53B(1242) 19:37 12-Sep-85 Page 1-16 

DEFECT MAC 9-Sep-85 09:49 FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



SEQ 0427 



DE 
DE 



■~1 



DEFECT 
DEFECT 

12537 
12538 
12539 
12540 
125A1 
125A2 
125A3 
125A4 
125A5 
125A6 
125A7 
125A8 
125A9 
12550 
12551 
12552 
12553 
1255A 
12555 
12556 
12557 
12558 
12559 
12560 
12561 



MACRO X53B(12A2) 19:37 12-Sep-85 Page 1-16 

- '^ FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



MAC 



9-Sep-85 09:A9 



SEQ 0427 



DEi 
DEI 



:*'LDENTH — PRINTS HEADER MESSAGE FOR LISTING DEFECT ENTRIES 



COMMENT $ 



THIS CAN BE CALLED TO TYPE THE HEADER MESSAGE PRIOR TO LISTING ALL 
THE DEFECT ENTRIES. 



CALL SEQ: 



000AA7' 



000447* 030 00 00 001037' 
000450' 263 17 00 000000 



GO 

RTN 

$ 

XLIST 
LIST 

LDENTH: TEXT 

CYL * 

RTN 

XLIST 

LIST 

PAGE 



SER # 
/] 



LDENTH 



CASCI2/ 

SURF # DISP-1 
;EXIT 



;THE CALL 
;RTN1 ALWAYS 



OISP-2 DISP-3 DISP-4 



NO 

PRi 
CP 

11 



DEFECT MACRO X53B(1242) 19:37 12-Sep-85 Page 1-17 

DEFECT MAC 9-Seo-85 09:49 FILE HAS SUPPORT ROUTINES 



FOR FORMATTING AND DEFECT HANDLING 



SEQ 0428 



DEI 



DEFECT 
DEFECT 

1256A 

12565 

12566 

12567 

12568 

12569 

12570 

12571 

12572 

12573 

1257A 

12575 

12576 

12577 

12578 

12579 

12580 

12581 

12582 

12583 

1258A 

12585 

12586 

12587 

12588 

12589 

12590 

12591 

12592 

12593 

12594 

12595 

12596 

12597 

12598 

12599 

12600 

12601 

12602 

12603 

1260A 

12605 

12606 

12607 

12608 

12609 

12610 

12611 

12612 

12613 

126U 

12615 

12616 



MACRO X53B(1242) 19:37 12-Sep-85 Page 1-17 



MAC 



9-Sep-85 09:49 



000451 • 
000452' 
000453' 
000454' 
000455' 
000456' 
000457' 
000460' 
000461 ' 
000462' 
000463' 
000464' 
000465' 
000466' 
000467' 
000470' 
000471 • 
000472' 
000473' 
000474' 
000475' 
000476' 
000477' 
000500' 
000501 ' 
000502' 
000503' 
000504' 
000505' 
000506' 
000507' 
000510' 
000511' 
QQ0512' 
0QQ513' 
000514' 



261 17 
261 17 
200 00 
603 GO 
254 00 
554 GO 
306 GO 
254 00 
135 GO 
260 17 














030 GO 

15i 00 

260 17 

030 GO 

135 00 

260 17 

030 GO 

554 GO 

306 00 

254 GO 

260 17 

550 00 

306 00 



254 00 
0''^ GO 
, 17 
. GO 
306 GO 
254 GO 
030 GO 
260 17 
550 GO 
306 GO 
254 
030 
260 



GO 
00 
01 
GO 
00 
01 
00 
00 
GO 
00 
00 
00 
00 
GO 
00 
00 
GO 
01 
00 
GO 
00 
01 
00 
00 
00 
00 
01 
00 
GO 
00 
00 
01 





GGGGOO 

GGOOOl 

GGGGOO 

140000 

GGG461 ' 

G0G001 

140000 

000523' 

001052' 

000000* 

001053' 

001 054' 

GGGGOO* 

001053' 

001055' 

000465* 

001 053' 

GGOOOl 

140000 

000515' 

GG047G* 

OOOOOI 

140000 

000515' 

GG1053' 

G00475* 

0GGG02 

140000 

GG0515' 

001 053' 

000502* 

GGG002 

'm- 

1053' 
0507* 



FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 

$•• ********************************************************************** 
;*'lDENT — LIST TD DEFECT INFORMATION IF TD IS NOT NULL 

S*; ********************************************************************** 



SEQ 0428 



COMMENT $ 



A SUBROUTINE TO LOOK AT EACH OF THE POSSIBLE SKIP SISPLACEMENTS 
AND PRINT Mi DEFECT DISPLACEMENTS FROM THE TRACK DESCRIPTOR RECORD. 
LISTIN IS ASSUMED OR YOU WOULDN'T BE HERE. TDPTR IS POINTING TO THE 
TRACK DESCRIPTOR BUFFER. UP TO 4 DEFECTS ARE HANDLED. 



LDENT: 



LDEG: 



CALL SEQ 

MOVE 

60 

RTNl 

$ 

XLIST 

LIST 

PUT 

PUT 

MOVE 

TLNE 

JRST 

HLRZ 

CAIN 

JRST 

LDB 

GO 

TEXT 

LDB 

GO 

TEXT 

LDB 

60 

TEXT 

HLRZ 

CAIN 

JRST 

GO 

HRRZ 

CAIN 

JRST 

TEXT 

GO 

HLRZ 

CAIN 

JRST 

TEXT 

GO 

HRRZ 

CAIN 

JRST 

TEXT 

60 



1 ,AR61 
LDENT 





1 

(1) 

0,(182!1B3) 

LDEG 

0,1(1) 

0.14G000 

LISTEX 

G,CPOINT 16,R1 

P»'TBCD 

CCPOINT 11,(1 
PSDN 

CASCIZ/ /] 
0, [POINT 8,(1) 
PSDN 

CASCIZ/ /] 
0,1(1) 
O.UGGOO 

lIstx 

PSDN 

CKl) 

0,140000 

LISTX 

CASCIZ/ /] 

PSDN 

0,2(1) 

0J4G000 

LISTX 

CASCIZ/ /] 

PSDN 

0,2(1) 

0.14G000 

lIstx 

CASCIZ/ /] 
PSDN 



POINTER TO START OF 
CALL THE ROUTINE 
RETURNS HERE 



.'SAVE AC'S 



TD 



6ET 1ST WORD OF THE TD 

IS TD OR HO MOVED ? 

YES. 60 PRINT 

6ET 1ST DISPLACEMENT 

IS THIS A NULL PATTERN ? 
,YES. NO DEFECT THIS ENTRY. 
0D(DSU),35J :6ET SERIAL NUMBER 
; PRINT IT 
. jfiD OVER 
),17J ;6ET CYLINDER NUMBER 
.•PRINT CYLINDER 
*TAB OVER 
,2?] :6ET SURFACE NUMBER 

PRINT SURFACE 

TAB OVER 

6ET THE 1ST DISPLACEMENT 

IS THIS A NULL PATTERN ? 

YES. NO DEFECT THIS ENTRY. 

PRINT IT 

6ET 2ND DISPLACEMENT 

IS THIS A NULL PATTERN ? 

YES. NO DEFECT THIS ENTRY. 

TAB OVER 

PRINT NEXT DEFECT 

6ET 3RD DISPLACEMENT 

IS THIS A NULL PATTERN ? 

YES. NO DEFECT THIS ENTRY. 

TAB OVER 

PRINT 3RD DEFECT 

6ET 4TH DISPLACEMENT 

IS THIS A NULL PATTERN ? 

YES. NO DEFECT THIS ENTRY. 

TAB OVER 

PRINT 4TH DEFECT 



DEFECT MACRO X53B(1242) 19:37 12-Sep-85 Page 1-18 



iPPnPT RniiTTMF'^ Fnp FnPMATTTMf; AMD t)fffn MANm wr. 



SPQ f)L?9 



I L 



DEFECT 
DEFECT 

12617 
12618 
12619 
12620 
12621 
12622 
12623 
1262A 
12625 
12626 
12627 
12628 
12629 
12630 



MACRO X53B(1242) 19:37 12-Sep-85 Page 1-18 

FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



MAC 

000515' 
000516* 
000517' 
000520' 
000521 ' 
000522' 
000523' 
000524' 
000525' 



9-Sep-85 09:A9 



S^Q 0429 



RH2 
RH2 



200 00 
603 00 
030 00 
603 00 
030 00 
037 00 
262 17 

262 17 

263 17 



01 000000 
00 040000 
00 001056' 
00 100000 
00 001061' 
00 030242 
00 000001 
00 000000 
00 000000 



LISTX: MOVE 
TLNE 
TEXT 
TLNE 
TEXT 
PCRL 

LISTEX: GET 
GET 
RTN 



XLIST 

LIST 

PAGE 



0(r 

cAsciz/ 

cAsciz/ 

1 




;GET 1ST WORD OF TD 

:IS TD MOVED ? 
TD-MOVE6/3 

:IS HO MOVED ? 
HO-MOVE6/3 

.•TERMINATE THE LINE 



;AND EXIT 



/ 



/ 



/ 



/ 



/ 



/ 



/ 



/ 



/ 



I 



SEQ 0417 



DEFECT 
DEFECT 

12631 

12632 

12633 

1263A 

12635 

12636 

12637 

12638 

12639 

126A0 

126A1 

126A2 

126A3 

126AA 

126A5 

12646 

12647 

12648 

12649 

12650 

12651 

12652 

12653 

12654 

12655 

12656 

12657 

12658 

12659 

12660 

12661 

12662 

12663 

12664 

12665 

12666 

12667 

12668 

12669 

12670 

12671 

12672 

12673 

12674 

12675 

12676 

12677 

12678 

12679 

12680 

12681 

12682 

12683 

12684 

12685 



MACRO X53B(1242) 19:37 12-Sep-85 Page 1-19 

MAC 9-Sep-85 09:49 FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 

$*• ***************************************************************** ♦' 
;* TDINP — ROUTINE TO INPUT TRACK DESCRIPTOR OPTIONS 

S*; *************************************************** ********T^******. *•' 



GEO 0430 



COMMENT $ 



THIS IS USED BY THE "TDBLD" UTILITY. 

ROUTINE ACCEPTS TD INFORMATION FROM THE USER RE6UARDING 

THE CONTENTS OF THE NEW TD. IT BUILDS THE NEW TD IN A BUFFER 

AT TDB1. THIS ROUTNE SCREENS INPUT IN SUCH A WAY THAT ONLY 

LEGAL TD'S CAN BE BUILT 

THE USER CAN SPECIFY UP TO 4 DEFECTS. 

THE USER CAN SPECIFY TD AND/OR HO MOVED BUT EACH USES UP A DEFECT 



CALLING SEQ: 
MOVE 
MOVE 
GO 
RTN 

NOTES: 



1,ARG1 
2.ARG2 
TDINP 



.-POINTER TO 4 WD BUFFER 
;CYL..SUPP,0 
.•CALL THE ROUriNE 
;RTN1 ALWAYS 



AC10 WILL POINT TO START OF 4 WD TD BUFFER 

AC7 = X 

AC6 IS A BYTE POINTER POINTING IN FRONT OF NEXT DISPLACEMNT WORD 

ACS WILL HOLD THE LAST LOCATION ON A TRACK (16 BIT WORDS) WHERE 
A DEFECT MAY BE CENTERED. AC5 = LENGTH OF TRACK - 1/2(SKIP SIZE) 

AC4 WILL BE USED AS A REFERENCE POINTER BECAUSE THE 1ST DEFECT 
IS MEASURED WITH RESPECT TO INDEX WHILE ALL OTHER DEFECTS ARE MEASURED 
WITH RESPECT TO THE LAST DEFECT. AC4 WILL THEREFORE WILL BE MAINTAINED 
TO POINT TO THE CURRENT REFERENCE POINT. IT IS INITIALIZED TO 0. 

AC3 WILL POINT TO THE SPOT ON THE TRACK (IN 16 BIT WORDS) WHERE THE 
NEXT DEFECT MAY BE CENTERED. 

AC2 WILL HOLD THE NUMBER OF DEFECTS STILL AVAILABLE ON THE TRACK. 
4 IS THE MAXIMIM AND TD-MOVED AND HO-MOVED EACH USE 1 UP. 

FOR 600 MB RP07: 

- THERE ARE 17,472 16-BIT WDS/TRK 

- A DEFECT SKIP IS 108 16-BIT WORDS LONG 

- THE FIRST DEFECT ON A TRACK MAY BE CENTERED AT 169 16-BIT WORDS 

FROM INDEX IF NITHER HO OT TD IS MOVED. 

- THE FURTHEST A DEFECT MAY BE CENTERED FROM INDEa IS 17,418 16-BIT 

WORDS WITHOUT OVERFLOWING THE TRACK. 
$ 

XLIST 
LIST 



SEQ 0418 



DEFECT 
DEFECT 



MACRO X53B(1242) 19:37 12-Sep-85 Page 1-20 

FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



MAC 9'Sep-85 09:49 



SEQ 0431 



TDINP: 



PUT 

MlT 



.-SAVE AC'S 



■] 



DEFECT 


MACRO X53B(1242) 19:37 12"SeD-85 Page 


1-20 








DEFECT 


MAC 


9-Sep-85 09:49 


FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 




12686 


000526' 


261 17 00 000000 


TDINP 


PUT 





;SAVE AC'S 




12687 


000527' 


261 17 00 000001 




^tii 








12688 


000530' 


261 17 00 000002 




? 






12689 


000531 ' 


261 17 00 000003 




Rj? 


5 






12690 


000532' 


261 17 00 000004 




4 






12691 
















12692 


000533' 


261 17 00 000005 




PUT 


5 






12693 


000534' 


261 17 00 000006 




PUT 


6 






1269A 


000535' 


261 17 00 000007 




PUT 


X 






12695 


000536^ 


261 17 00 000010 




PUT 


10 






12696 


000537' 


402 00 00 000007 




SETZM 


X 


•SETUP FOR 600 MB 




12697 
















12698 






;SET UP ALL THE 


AC'S FOR USE IN 1 


mis ROUTINE 




12699 
















12700 


000540' 


200 10 00 000001 




MOVE 


10,1 


■GETS OUR POINTER TO AC10 




12701 


000541 ' 


200 05 07 000771 ' 




MOVE 


5,fBT(X) 


■WANT TO POINT TO LEGAL CTR OF LAST OEF 




12702 


000542' 


274 00 07 000773' 




SUB 


SK2(X) 


•SUB 1/2 SKIP 




12703 


000543' 


231 05 00 000020 




IDIVI 


5.*D16 , 


[CONVERT BITS TO 16 BIT WORDS 




1270A 


000544' 


200 06 00 001064' 




MOVE 


6,CP0INT 18.0(101 


(.35J ; POINTS IN FRONT OF 1ST DISPLACEMENT 




12705 


000545' 


402 00 00 000003 




SETZM 


3 


;WANT TO POINT TO CTR OF 1ST LEGAL DEF PCS 




12706 


000546' 


270 03 07 000753' 




ADD 


3,GiB(x) ; 


; BITS IN G1 




12707 


000547' 


270 03 07 000754' 






3,TDB(X) 


; BITS IN TC 




12708 


000550' 


270 03 07 000756' 




^n 


3.G2B(X) 


; BITS IN G2 




12709 


000551 ' 


270 03 07 000760' 




MP 


3,HRB(X) 


; BITS TO IN HO UP TO CRC FIPLD 




12710 


000552' 


270 03 07 000773' 




ADD 


3,SK2(X) 


; HALF SIZE OF SKIP 




12711 


000553' 


231 03 00 000020 




IDIVI 


3,*D16 


r CONVERT BITS TO 16 BIT WORDS 




12712 


000554' 


402 00 00 000004 




SEfZM 


4 


;REF PTR POINTING TO INDEX 




12713 


000555' 


200 01 00 000002 




MOVE 


1,2 


;GET CYL..SURF,0 TO AC1 




12714 


000556' 


435 01 00 000377 




lORI 


1.377 


;N0W CYL., SURF. 377 (TD ADDRESS) 




12715 


000557' 


661 01 00 030000 




TLO 


1.030000 


;SET GOOD SECTOR FLAGS 




12716 


000560' 


2uJ 02 07 001007' 




MOVE 


2.MXDEF(X) 


;GET MAX DEFECTS ON TRACK 




12717 
















12718 






;8UILD PARTIAL 


TD IN BUFFER POINTED TO BY AC7 




12719 
















12720 


000561 ' 


402 00 10 000000 




SETZM 


0.(10) 


■CLEAR FIRST WORD 




12721 


000562' 


402 03 10 GOOOOO 




SETZM 


3.(10) . 


■CLEAR LAST WORD 




M722 


000563' 


200 00 00 001065' 




MOVE 


0, [140000.. 140006] :6ET 2 NULL PATTERNS 




M72'S 


000564' 


202 00 10 000001 




MOVEM 


0.1(10) 


;INITS 1ST 2 DISPLACEMENTS 




12724 
12725 
12726 


000565' 


202 00 10 000002 




MOVEM 


0.2(10) 


•INITS LAST 2 DISPLACEMENTS 








;CODE 


TO HANDLE 


THE MOVING C^ TD 






\2727 
















1?'28 


000566' 


334 00 00 


lOOOCO 




SKPA 








l2/'29 


00056:" 


037 01 00 


J30242 




PCRlF 








12730 


000570' 


031 00 CO 


)01066' 




TEXTF 


[ASCIZ/UANT TD'MOVED ?/3 




12731 


000571 • 


260 17 00 


)00000* 




GO 


QSiN 


•ASK THE QUESTION 




12732 


000572* 


254 00 00 


)0C567' 




JRST 


.-3 ; 


; TIMEOUT 




12733 


000573' 


254 00 00 


)00603' 




JRST 


HZM 


•ANSWER IS NO 




12734 


000574' 


661 01 00 


)40000 




TLO 


1.(1B3) 


•YES. SET TD-MOVED BIT 




12735 


000575' 


275 0? 00 


)00001 




SUBI 


I'.l 


WE'VE USED UP A DEFECT 




12736 


000576' 


261 ^7 00 


)00001 




PUT 




•SAVE 1 




12737 


000577' 


200 00 07 
^31 00 00 
262 17 Q 00 
270 03 00 


00772' 




MOVE 


.SKB(X) ! 
.•D16 


;6ET SIZE OF SKIP IN BITS 




1c 738 


000600 * 




IDIVI 


•CONVRT TO 16 BIT WORDS 




12740 








U 


,0 


•RESTORE 1 

;ADD ^T TO OUR POINTER 





SEQ 0431 



1 



DEFECT 
DEFECT 

12741 



MACRO X53B(1242) 

MAC ^-Sep-85 09:49 



19:37 12-Sep-85 Page 1-21 

FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



SEQ 0432 



1 



DEFECT MACRO X53B(12A2) 19:37 12-Sep-85 Page 1-21 

DEFECT MAC 9-Sep-85 09:49 FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



r 



SEQ 0432 



12741 

12742 

12743 

12744 

12745 

12746 

12747 

12748 

12749 

12750 

12751 

12752 

12753 

12754 

12755 

12756 

12757 

12758 

12759 

12760 

12761 

12762 

12763 

12764 

12765 

12766 

12767 

12768 

12769 

12770 

12771 

^2772 

12773 

12774 

12775 

12776 

}2777 

12778 

12779 

12780 

12781 

12782 

12783 

12784 

12785 

12786 

12787 

12788 

12789 

12790 

12791 

1279 



792 
793 



i; 

12794 
12795 



000603' 
000604' 
000605' 
000606' 
000607' 
000610' 
000611' 
000612' 
000613' 
000614' 
000615' 
000616' 
000617' 
000620' 



334 00 
037 01 
031 00 

260 17 
254 00 
254 00 
661 01 
275 02 

261 17 
200 00 
231 00 

262 17 
270 03 
202 01 



00 OQOOOO 
00 030242 
00 001072" 
00 000571* 
00 000604' 
00 000620' 
00 100000 
00 000001 
00 000001 
07 000772' 
00 000020 
00 000001 
00 000000 
10 000000 



00062T 323 02 00 000663' 
000622' 313 03 00 000005 
000623' 254 00 00 000663' 



000624' 
000625' 
000626' 
000627' 
000630' 
000631 ' 
000632' 
000633' 
000634' 
000635' 
000635' 
000636' 
000637' 
000640' 
000641 • 
000642' 
000643' 
000644' 
000645' 
000646' 
000647' 
000650' 
000651 ' 
000652' 
000653' 
000654' 
000655' 
000656* 
000657' 
SO' 
i6r 



031 00 
260 17 
254 00 
254 00 
031 



201 
3ic 
201 
031 



00 
01 
00 
01 
00 



031 00 
200 00 
274 00 
200 01 
260 17 
031 00 
200 00 
274 00 
260 }7 
504 00 
031 00 
260 17 
255 00 
254 00 
136 00 
270 04 
200 03 

































00 001076' 
00 000606* 
00 000624* 
00 000663' 
00 001106' 
00 001115' 
00 000004 

00 001122' 

01 000000 

00 001124' 
00 000003 
00 000004 
00 000000 
00 000000* 
00 001132* 
00 000005 
00 000004 
00 000641* 
00 000001 
00 001134' 
00 000000* 
00 OOOOOQ 
00 000635' 
00 000006 
00 000000 
00 000004 
7 000772' 




.-CODE TO HANDLE THE MOVING OF HO 



HZM: 



HZN: 



SKI PA 




PCRLF 




TEXTF 


CASCIZ/W 


GO 


QSTN 


JRST 


.-3 


JRST 


HZN 


TLO 


1,(182) 


SUBI 


2,1 


PUT 


1 


MOVE 


O.SKB(X) 


IDIVI 


0.*D16 


GET 


1 


ADD 


3,0 


MOVEM 


1,(10) 



ASK THE QUESTION 

TIMEOUT 

ANSWER IS NO 

ANSWER IS YES. SET THE TD BIT 

WE'VE USED UP A DEFECT 

SAVE 1 

GET SIZE OF SKIP IN BITS 

CONVRT TO 16 BIT WORDS 

RESTORE 1 

ADD IT TO OUR POINTER 

PUT TD WORD-1 INTO BUFFER 



;HERES LOOP TO INPUT DISPLACEMENTS TILL WE'RE DONE 



DISPIN: JUMPLE 2.rDINPX 

CAMLE 3,5 

JRST TDINPX 

TEXFF CASCIZ/ 
DO YOU WISH TO AuD ANOTHER DEFECT ?/] 



EXIT IF WE'VE USED ALL DEFECTS UP 

SEE IF WE HAVE ROOM ON TRACK FOR ANOTHER 

NO ROOM 



DIER: 



GO 

JRST 

JRST 

TEXTF 

MOVE I 

SKIPN 

MOVE I 

TEXTF 

TEXTF 



QSTN :ASK THE QUESTION 

.-2 .TIMEOUT 

TDINPX .: ANSWER IS NO 

CASCIZ/ENTER DIS^^CE (16 BIT WDS) FROM /] 

1,CASCIZ/CENTER OF LAST DEFECT /] 

4 :SEE IF WE'RE DOING FIRST ONE 

1,CASCIZ/INDEX /!) 



(1) 
CASCIZ/ 



THESE VALUES ARE ALLOWED /] 

MOVE 0,3 

SUB 0,4 

MOVE 1,0 

60 POCDEF 

TEXTF CASCIZ/ THRU /] 

HOVE 0,5 

SUB 0,4 

GO POCDEF 

HRL 0,1 

TEXTF CASCIZ/ - /] 

GO NUMIN 

JFCL 

JRST DIER 

DIOK: IDPB 0.6 

ADD 4,0 

MOVE 3,4 

MOVE Q,SKB(X) 

IDIVI 6,*D16 

ADD 3,0 

SU61 2,1 



.•PRINT APPROPRIATE MESSAGE 



GET MIDDLE POINTER 
SUB LEFT POINTER 
SAVE FOR FUTURE USE 
PRINT LOWER LIMIT 

GET RIGHT PONTER 
SUB STARTING POINTER 
PRINT UPPER LIMIT 
NOW HAVE LIMITS IN ACO 

INPUT A NUMBER 

TIMEOUT 

INPUT ERROR ... 

PUT DISTANCE AWAY VIA BYTE 

MOVE REF PTR TO THIS POINT 

COPY TO AC3 

GET SKIP SIZE IN BITS 

CONVERT TO 16 BIT WORDS 

INCREASE VALUE OF POINTER 

ONE DEFECT IS USED UP ... 



PTR 



DEFECT MACRO X53e(1242) 19:37 12-Sep-85 Page 1-22 

DEFECT MAC ^-Sep-85 09:49 FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 

177QA nnnAA?' 7<;^ on n on nnnA?i* irct DiicprN Monp and try por anothfr ... 



SEQ 0433 



Q 0420 



DEFECT 
DEFECT 

12796 
12797 
12798 
12799 
12800 
12801 
12802 
12803 
12804 
12805 
1^806 
12807 
12808 
12809 
12810 
12811 
12812 
12813 



MACRO X53B(1242) 19:37 12-Sep-85 Page 1-22 

MAC 9-Sep-85 09:49 FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



r 



SEQ 0433 



000662' 254 00 00 000621' 



JRST 



000663' 
000664' 
000665' 
000666' 
000667' 
000670' 
000671 ' 
000672' 
000673' 
000674' 



262 17 
262 17 
262 17 
262 17 
262 17 
262 17 
262 17 
262 17 

262 17 

263 17 



.•EXIT CODE 



00 000010 
00 000007 
00 000006 
00 000005 
00 000004 
00 000003 
00 000002 
00 000001 
00 000000 
00 000000 



TDINPX: 



GET 
GET 
GET 
GET 
GET 
GET 
GET 
GET 
GET 
RTN 

XLIST 

LIST 

PAGE 



DISPIN 



10 

X 

6 

5 

4 

3 

2 

1 





.•LOOP AND TRY FOR ANOTHER 



.•RESTORE THINGS FROM STACK 



;EXIT 



"1 r 



0421 



DEFECT 
DEFECT 

1?ftU 



MACRO X53§(1242) 19:37 12-Sep-85 Page 1-23 

* FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



MAC 



9-Sep-85 09:49 



SEQ 0434 



<•- 



-J L 



DEFECT 
DEFECT 

1281A 

12815 

12816 

12817 

12818 

12819 

12820 

12821 

12822 

12823 

12824 

12825 

12826 

12827 

12828 

12829 

12830 

12831 

12832 

12833 

1283A 

12835 

12836 

12837 

12838 

12839 

12840 

128A1 

128A2 

12843 

12844 

12845 

12846 

12847 

12848 

12849 

12850 

12851 

12852 

12853 

12854 

12855 

12856 

12857 

12858 

12859 

12860 

12861 

12862 

12863 

12864 

12865 

12866 

12867 

12868 



MACRO X53B(1242) 19:37 12-Sep-85 Page 1-23 

MAC 9-Sep-85 09:49 FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 

;* CNTDEF — ROUTINE TO COUNT DEFECTS FROM A TRACK DESCRIPTOR 

S*; ********************************************************************** 



SEQ 0434 



r 

R 
R 



000675' 261 

000676' 261 

000677' 261 

000700' 2o! 

000701' 261 

000702' 261 

000703' 261 



000704' 
000705' 
000706' 
000707' 
000710' 
000711' 
000712' 
000713' 
000714' 
000715' 

000716' 
000717' 
000720' 
000721 • 
000722' 



402 00 
402 00 
200 03 
200 02 
402 00 
200 00 
270 00 
270 00 
270 00 
270 00 



COMMENT $ 



THIS ROUTINE COUNTS THE DEFECTS IN A TRACK DESCRIPTOR POINTED TO BY 
AC1 AND RETURNS THE NUMBER IN ACI. IT IS CAREFULL NOT TO COUNT TWICE 
WHEN A TD OR HO IS MOVED AND A DEFECT DISPLACEMENT IS ALSO PRESENT 
IN THE TD FOR THE MOVE. 



CALL SEQ: 
HOVE 1 ,ARG1 
60 CNTDEF 
RTN 



POINTER TO TD IN CORE 

THE CALL 

M OF DEFECTS IN ACl 



17 00 000007 
17 00 000005 
17 CO 000004 
17 00 000003 
17 00 000002 
17 00 000001 
17 00 000000 



AC'S 
AC5 - 
AC4 - 
AC3 - 
AC2 - 
ACl - 
ACO - 
$ 

XLIST 
LIST 

CNTDEF: PUT 
PUT 
PUT 
PUT 
PUT 
PUT 
PUT 



DURING EXECUTION: 
A POINTER. ALL DEFECTS TO LEFT ARE TD OR HO RELATED 
RUNNING SUM OF DEFECT DISPLACEMENTS 
POINTER TO TD IN CORE 

BYTE POINTER. POINTS IN FRONT OF NEXT DEFECT 
COUNT OF NUMBER OF DEFECTS 
SCRATCH 



X 
5 
4 
3 

2 

1 




;SAVE AC'S 



17 777777 
00 000007 
00 000001 
00 001135' 
00 000004 
07 000753' 
07 000754' 
07 000756' 
07 000760' 
07 000773' 



200 01 
607 01 



03 000000 
.. . 00 100000 
254 00 00 000723' 

1? 88 8 f? m^' 



.•INITIALIZE AC'S FOR TEST .... 

SETZM -1(P) 

SETZM X 

MOVE 3.1 

MOVE 2.CP0INT 18.0(3) 

SETZM 4 

MOVE 0,G1B(X) 

ADD O.TDB(X) 

ADD O.G26(X) 

ADD O.HRB(X) 

ADD O.SK2(X) 

MOVE 1.0(3) 

TLNN 1.(182) 

JRST .+3 

ADD 0,SKB(X) 

AOS -1(P) 



CLEAR THE COUNT WE RETURN 

SETUP FOR 600 MB 

GET POINTER TO TD BUFFER 

35] ;POINT IN FRONT OF FIRST DISP 

CLEAR RUNNING SUM 

G1 IN BITS 

TD IN BITS 

G2 IN BITS 

HO IN BITS 

1/2 SKIP IN BITS 

GET 1ST WORD OF TD 

TD MOVED ? 

NO 

YES. SIZE OF A SKIP IN BITS 

COUNT A DEFECT 



000723' 607 0^ 00 040000 



TLNN l.(1B3) 



;H0 MOVED ? 



DEFECT 
DEFECT 



MACRO X535(1242) 19:37 12-Sep-85 Page 1-24 

'" FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



MAC 



9-Sep-85 09:49 



SEQ 0435 



R 
R 



I 



J L 



DEFECT 


MACRO X53B(12A2) 19:37 12-Sep-85 Page 1 


-24 








DEFECT 


MAC 9-Sep-85 09:A9 


FILE HAS SUPPORT ROUTINES FOR 


FORMATTING AND DEFECT HANDLING 


SEQ 0< 


12869 


00072A' 254 00 00 000727* 




JRST 


.+3 


;N0. 




12870 


000725' 270 00 07 000772* 




ADD 


0,SKB(X) 


;YES. SIZE OF A SKIP IN BITS 




12871 


000726* 350 00 17 777777 




AOS 


-1(P) 


.•COUNT THE DEFECT 


















12873 


000727* 231 00 00 000020 




IDIVI 


0.*D16 


.•CONVERT BITS TO 16 BIT WORDS 




1287A 


000730* 200 05 00 000000 




MOVE 


5.0 


;GE REFERECNE POINTER TO AC5 .... 




12875 


000731 * 402 00 00 000001 




SETZM 


1 


.•CLEAR OUT COUNT 




12876 














12877 




.•READY 


TO START 


COUNTING DISPLACEMENTS 




12878 














12879 


000732* 134 00 00 000002 


CNTDFL: 


ILDB 


0.2 


;GET DISPLACEMENT 




12880 


000733* 306 00 00 140000 




CAIN 


0.140000 


;IS IT NULL ? 




12881 


000734* 254 00 00 000743* 




JRST 


CNTDFX 


;YES. FINISHED. 




12882 


000735* 270 04 00 000000 




ADD 


4.0 


;NQ. RUNNING SUMM TO AC4 




12883 


000736* 311 04 00 000005 




CAML 


^i5 


;DON*T COUNT IF TO LEFT OF PTR 




1288A 


000737* 350 00 17 mm 




AOS 


-1(P) 


.•COUNT DEFECT .... 




12883 


000740* 271 01 00 000001 




ADD I 


1,1 


;BUMP A COUNTER 




12886 


000741* 315 01 07 001007* 




CAM6E 


1,MXDEF(X) 


.•TRIED ALL DEFECTS ? 




12887 


000742* 254 00 00 000732* 




JRST 


CNTDFL 


;N0. LOOP 




12888 














12889 


000743* 262 17 00 000000 


CNTDFX: 


GET 





.•RESTORE AC*S 




12890 


000744* 262 17 00 000001 




GET 


1 






12891 


000745* 262 17 00 000002 




GET 


2 






12892 


000746' 262 17 00 000003 




GET 


3 






12893 


000747* 262 17 00 000004 




GET 


4 






12894 


000750' 262 17 00 000005 




GET 


5 






12895 


000751* 262 17 00 000007 




GET 


X 






12896 


000752* 263 17 00 000000 




RTN 




.•AND EXIT 




12897 














12898 














12899 






XLIST 








12900 






LIST 








12901 






PAGE 









"n 



Rl 

Rl 



DEFECT 
DEFECT 



MACRO X53i(1242) 19:37 12-Sep-85 Page 1-25 

*" FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



MAC 



9-Sep-85 09:49 



SEO 0436 



Rl 
R» 



L 



DEFECT 
DEFECT 

12902 
12903 
12904 
12905 
12906 
12907 
12908 
12909 
12910 
12911 
12912 
12913 
129U 
12915 
1^916 
129:7 
1291b 
12919 
12920 
12921 
12922 
12923 
12924 
12925 
12926 
12927 
12928 
12929 
12930 
12931 
12932 
12933 
12934 
12935 
12936 
12937 
12938 
12939 
12940 
12941 
12942 
12943 
12944 
12945 
12946 
12947 
12948 



MACRO X53B(1242) 19:37 12- 
MAC 9-Sep-85 09:49 



:00753' 000000 002000 

000754' 000000 000200 

000755' 000000 003300 

000756' 000000 001120 

000757' 000000 000201 

000760' 000000 000140 

000761' 000000 000040 

000762* 000000 001000 

000763' 0000^.1 011000 

000764' 000000 000400 



Sep-85 Page 1-25 

FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 

S*' ********************************************************************** 
;* PARAMETERS ASSOCIATED WITH THE TRACK FORMAT 

S*; ********************************************************************** 

COMMENT $ 

THIS AREA CONTAINS CONSTANTS FOR RP07'S IN 18 BIT MODE 

WHEN YOU ARE FORMATTING THE MEDIA. 

YOU INDEX WITH A VALUE OF FOR 600-MB RP07 

INDEXING IN THIS PROGRAM IS DONE WITH (X) 

INDEXING IS USED SO NEW DRIVES MAY BE ADDED 

% 

XLIST 

LIST 

;GAP 1 DESCRIPTOR (CONVERTED TO BITS) 

GIB: •D128**D8 ;128 BYTES 

.•TRACK DE. RIPTOR (CONVERTED TO BITS) 

TDB: *D16**D8 ;16 BYTES 

TDMB: *D216**D8 .-AMOUNT OF BYTES TD MAY BE MOVED 

;62 DESCRIPTOR (CONVERTED TO BITS) 

G2B: *D74**D8 ;74 BYTES 

.•HEADER DESCRIPTOR (CONVERTED TO BITS) 

HNB: •D16**D8 ;16 BYTES TOTAL 

HRB: *D12**D8 ;DIST IN BYTES TO HEADER CRC START 

HCRCB: *D4**D8 ;# BYTES IN THE HEADER CRC CHAR. 

;63 DESCRIPTOR (CONVERTED TO BITS) 

Gi?: *D64**D8 ;64 BYTES 

.•DATA FIELD DESCRIPTOR 

OFB: *D256**D18 ;# OF BITS IN THE DATA FIELD 

DFW: \^256 ;» OF 18 BIT WORDS IN THE DATA FIELD 



SEQ 0436 



R^ 
R^ 



DEFECT 
DEFECT 



MACRO X53i(1242) 19:37 12-Sep-85 Page 2 

■' FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



MAC 



9-Sep-85 09:49 



SEQ 0437 



RH 



J 



Oi^Zi* 



DEFECT 
DEFECT 

129A9 

12950 

12951 

12952 

12953 

1295A 

12955 

12956 

12957 

12958 

12959 

12960 

12961 

12962 

12963 

12964 

12965 

12966 

12967 

12968 

12969 

12970 

12971 

12972 

12973 

12974 

12975 

12976 

12977 

12978 

12979 

12980 

12981 

12982 

12983 

12984 

12985 

12986 

12987 



MACRO !i;53B(1242) 19:37 12' 
MAC 9-Sep-85 09:49 



000765' 000000 000040 

000766" 000000 000002 

000767' 000000 002000 

000770' 000000 014240 

000771' 000001 042000 

000772' OOCOOO 003300 

000773' 000000 001540 

000774' 000000 000440 

000775' 000000 000140 

000776' 000000 000440 

000777' OuJOOO 000140 

001000' 000000 000440 

001001' 000000 000440 



-Sep-85 Page 2 

FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 

;ECC FIELD DESCRIPTOR 

ECCB: •D4**D8 ;# OF BITS IN THE ECC FIELD 

ECCU: *D2 ;# OF 16 BIT WORDS IN ECC FIELD 

;G4 DESCRIPTOR (CONVERTED TO BITS) 

G4B: *D128**D8 ;128 BYTES 

.-TOTAL NUMBER OF BITS IN A DATA SECTOR WITHOUT DEFECTS 

TBS: *D8*<*D16+*D64+*D576+*D4+*D128> ;HN+G3+DATA+ECC+G4 

.•TOTAL NUMBER OF BITS AVAILABLE ON A TRACK 

TBT: *D34944**D8 ; 34944 BYTES 

.•DEFECT SKIP INFQRMAVION (CONVERTED TO BITS) 

SIZE OF INSERTED SKIP IN BITS 

1/2 THE SIZE OF A SKIP 

FIRST 16, 18 BIT WORDS OF SKIP GUARANTEED GOOD 

LAST 5.3333, 18 BIT WORDS OF SKIP GUARANTEED 60CD 

FIRST 18, 16 BIT WORDS GUARANTEED GOOD 

LAST 6, 16 BIT WORDS GUARANTEED GOOD 

.•MINIMUM DATA FIELD SEGMENT SIZE. 

SEG18: *D16**D18 .•U 18-BIT WORDS 

SEG16: *D18**D16 ;18 16-BIT WORDS 
PAGE 



SEQ 0437 



RH 
RH 



SKB: 


*D216**D8 


SK2: 


*D108**D8 


SKGF18 


*D16**D18 


SKGL18 


<*D5**D18>+6 


SKGF16 


*D18**D16 


SKGL16 


•D6**D16 



DEFECT MACRO X53B(1242) 19:37 12-Sep-85 Page 2-1 

DEFECT MAC 9-Sep-85 09:49 FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



SEQ 0438 



r 

RH 
RH 



L 



DEFECT 
DEFECT 

12988 
12989 
12990 
12991 
12992 
12993 
12994 
12995 
12996 
12997 
12998 
12999 
13000 
13001 
13002 
13003 
1300A 
13005 
13006 
13007 
13008 
13009 
13010 
13011 



MACRO X53B{1242) 19:37 12-Sep-85 Page 2-1 

MAC 9-Sep-85 09:49 FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 

.•CRITICAL DATA AREA (IN BITS) (MIXED 18 S 16 BIT WORDS) 

.•DISTANCE BETWEEN "PC" & "PD". DEFECTS THAT START HERE MUST BE 
.•MOVED INTO THE FOLLOWING GAP. 



SEQ 0438 



001002' 000000 000434 

001003' 000000 000020 

001004' 000000 000364 

001005' 000000 000016 

001006' 000000 000002 

001007' 000000 000004 



RH 

rh; 



CRITD: <*D14**D18>+<*D2**D16> ;14 DATA WORDS AND 2 ECC WORDS 

;A COUPLE OF DATA FIELD DESCRIPTORS (IN WORDS) 

CRITW 



NCRIT: 
CRIT18 
CRIT16 



*D16 ;T0TAL WORDS IN CRITICAL AREA 

<*D256+*D2>-*D14 ;18 BIT WORDS IN DATA FIELD LESS CRN AREA 



*D14 
*D2 



;# OF 18 BIT WORDS IN THE CRITICAL AREA 
;# OF 16 BIT WORDS IN THE CRITICAL AREA 

; NUMBER OF DEFECTS ALLOWED PER TRACK 

MXDEF: 4 ;4 DEFECTS PER TRACK MAXIMUM (600-MB) 

XLIST 

LIST 

PAGE 



DEFECT 
DEFECT 



MACRO X535(1242) 19:37 12-Sep-85 Page 

" FILE HAS 



MAC 



9-Sep-85 09:49 



2-2 



SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



SEQ 0439 



RHi 



_„J 



DEFECT 
DEFECT 

13012 

13013 

13014 

13015 

13016 

13017 

13018 

13019 

13020 

13021 

13022 

13023 

1302A 

13025 

13026 

13027 

13028 

13029 

13030 

13031 

13032 

13033 

1303A 

13035 

13036 

13037 

13038 

13039 

130A0 

13041 

13042 

13043 

13044 

13045 

13046 

13047 

13048 

13049 

13050 

13051 

13052 

13053 

13054 

13055 

13056 



MACRO Z53B(1242) 19:37 12-Sep- 
MAC 9-Sep-85 09:49 



001010* 000 00 00 000000 

001011' 000 00 00 000000 

001012' 000 00 00 000000 

001013' 000 00 00 000000 

001014' 000 00 00 000000 

001015' 000 00 00 000000 

001016' GuJ 00 00 000000 

001017' 000 00 00 000000 

001020" 000 00 00 000000 



001021' 000 00 00 000000 



85 Page 2-2 

FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 

$*• ********************************************************************** 
;* VARIABLES USED DURING THE FORMAT OPERATION 

S*; ********************************************************************** 



1 



SEQ 0439 



RH< 
RH2 



COMMENT $ 





LIST 


PI: 




P2: 




P2A: 




P3: 




PA: 




• 




PC: 




PD: 





REFPTR: Z 



LDDA: 



THESE POINTERS (VARIABLES) ARE ALL USED BY THE ROUTINE 

"DEFECT" AS IT TRIES TO FIGURE OUT WHERE IN EACH OF THE 

SECTORS A DEFECT MUST BE INSERTED. 

$ 

XLIST 



ALWAYS POINTS TO INDEX 

ALWAYS THE NUMBER OF BITS FROM INDEX TO FIRST BIT 
OF THE CURRENT SECTOR 

ALWAYS THE NUMBER OF BITS FROM INDEX TO 1ST BIT OF 
THE HEADER CRC FIELD 

ALWAYS THE NUMBER OF BITS FROM INDEX TO FIRST BIT 
OF THE NEXT SECTOR 

ALWAYS THE NUMBER OF BITS FROM INDEX TO FIRST WORD 
OF 63 FOR THE CURRENT SECTOR 

ALWAYS THE NUMBER OF BITS FROM INDEX TO FIRST WORD 
OF THE DATA FIELD OF THE CURRENT SECTOR 

ALWAYS THE NUMBER OF BITS FROM INDEX TO ("PD"-"CRITD") 

ALWAYS THE NUMBER OF BITS FROM INDEX TO THE FIRST 
WORD IN G4 (OR 65) 

THIS POINTER ALWAYS MEASURES DISTANCES FROM 
INDEX TO THE START OF THE HEADER CRC FOR THIS SECTOR OR 
TO THE START OF THE LAST DEFECT SKIP. IT IS FROM 
THIS POINTER THAT WE DETERMINE HOW MANY WORDS THERE 
ARE TO THE START OF THE NEXT DEFECT. THIS POINTER IS 
IN BITS 



Z 
PAGE 



LAST DEFECT NOT IN DATA FIELD 
-1 LAST DEFECT WAS IN THE DATA FIELD 



DEFECT 
DEFECT 



MACRO X539(1242) 19:37 12-Sep-85 Page 2-3 

* •" FILF HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



MAC 



9-SeD-85 09:49 



SEO 0440 



RH< 



DEFECT MACRO Z53B(12A2) 19:37 12-Sep-85 Page 2-3 

DEFECT MAC 9-Sep-85 09:A9 FILE HAS SUPPORT ROUTINES FOR FORMATTING AND DEFECT HANDLING 



SEQ O^^O 



13057 
13058 
13059 
13060 
13061 
13062 
13063 
13064 
13065 
13066 
13067 
13068 
13069 
13070 
13071 
13072 
13073 
1307A 
13075 
13076 
13077 
13078 
13079 



001022' 000 00 00 000000 



001023' 000 00 00 000000 
001024' 000 00 00 000000 
001025' 000 00 00 000000 



.•POINTERS TO SPECIFIC HEADER INFORMATION 

HN: Z .-ALWAYS CURRENT NUMBER OF SECTOR WE'RE WORKING ON 

.•POINTER TO START OF TRACK DESCRIPTOR IN CORE .AND, 
.•POINTER TO START OF THE CURRENT SECTOR IN CORE ... 



TDPTR: Z 
HDPTR: Z 
HWBPTR: Z 



.•POINTS TO TRACK DESCRIPTOR BUFFER 

.•POINTS TO CURRENT HEADER IN CORE 

.-BYTE POINTER TO CURRENT RELATIVE HEADER WORD 



TABLE OF DEFECT DISTANCES DERIVED FROM TRACK DESCRIPTOR DATA 

EfJTRIES HAVE FOLLOWING MEANING 

D(0) - BIT COUNT FROM INDEX TO START OF FIRST DEFECT 

Dd) - BITS FROM INDEX TO START OF 2ND DEFECT 

D(2) - BITS FROM INDEX TO START OF 3RD DEFECT 

ETC AS MANY ENTRIES AS THERE ARE DEFECTS (PLUS-1) 



001026' 



DIST: 



BLOCK 
END 



;4 DEFECTS MAXIMUM FOR RP07 



NO ERRORS DETECTED 

PROGRAM BREAK IS 001136 
CPU TIME USED 00:02.939 

114P CORE USED 



DEFECT MACRO X53B(1242) 19:37 12-Sep-85 Page S-1 



""~1 



CFO nLL^ 



DEFECT 
DEFECT 

ABBPT 

CDA 

CDB 

CDC 

CDD 

CDE 

CGA 

CG6 

CGC 

CGD 

CGE 

CGF 

CHKDAT 

CHKG3 

CHKGGL 

CHKHDR 

CNTDEF 

CNTDFL 

CNTDFX 

CRIT16 

CRIT18 

CRITD 

CRITU 

CWFMT 

CUHDC 

DEFECT 

DFB 

DFU 

DIER 

DIOK 

DISPIN 

DIST 

DLD 

DLD1 

DLDX 

DLP 

DSU 

ECCB 

ECCU 

FFF 

FLIST 

G1B 

G2B 

G3B 

GAB 

GENHDR 

GET 

GO 

HCRCB 

HDL 

HDPTR 

HDRTBL 

HN 

HNB 

HRB 



MACRO X53B(12A2) 19:37 12-Sep-85 Page S-1 

" - '" SYMBOL TABLE 



MAC 



9-Sep-85 09:49 



SEQ 0441 



262740 
260740 



000355' 
000172' 
000177' 
000212' 
000222' 
000205' 
000252' 
000277' 
000311' 
000263' 
000303' 
000266' 
000170' 
000146' 
000244' 
000131' 
000675' 
000732' 
000743' 
001006' 
001005' 
001002' 
001003' 
000014' 
000357' 
000046' 
000763' 
000764' 
000635' 
000653' 
0uJ621 • 
001026' 
000073' 
000103' 
000110' 
000063' 
000014 
000765' 
000766' 
000356' 
000075' 
000753' 
000756' 
000762' 
000767' 
QOOOOO' 
000000 
)00000 
00761 
00026 
01024 
00042 
01022 
00757 
00760 



fc/vt 



ent 



ext 
ext 
ent 



ext 
ext 



ent 



HT1 

HUBPTR 

HZM 

HZN 

LDDA 

LDEO 

LDENT 

LDENTH 

LISTEX 

LISTX 

HXDEF 

MXSEC 

NCRIT 

NUMIN 

OVF 

P 

PI 

P2 

P2A 

P3 

PA 

PADV 

PB 

PC 

PCOMM 

PCRL 

PCRLF 

PCSET 

PD 

PINT 

PNTBCD 

POCDEF 

PROD 

PRODL 

PRODX 

PSDN 

PUT 

QSTN 

R10D 

REFPTR 

RND16 

RND18 

RTN 

SE616 

SE618 

SK2 

SKB 

S<G31 

SKGF16 

SK6F18 

SKGL16 

SKGL18 

STOREH 

TBS 

TBT 



037000 
037040 



261740 



263740 



000043' 
001025' 
000603' 
000620' 
001021' 
000461 ' 
000451 ' 
000447' 
000523' 
000515' 
001007* 
000402' 
001004' 
000650' 
001032' 
000017 
001010' 
001011' 
001012' 
001013' 
001014' 
000352' 
001015' 
001016' 
000364' 
030242 
030242 
000407' 
001017' 
000333' 
000462' 
000645' 
000116' 
000124' 
000324' 
000514' 
000000 
000625' 
000017 
001020' 
000427' 
000437' 
)00000 
11001' 
)10Q0' 
)773' 
772* 
156' 
776' 
77^' 
777' 
775' 
416' 
770' 
771' 



ent 
ent 



ext 
ext 



TDB 

TDINP 

TDINPX 

TDMB 

TDPTR 

TEXT 

TEXTF 

THP 

X 

XI 



030000 
031000 



000754' 

000526' 

000663' 

000755' 

001023' 

000000 

000000 

001033' 

000007 

000013 



ent 



RH2 
RH2 

13 
13 
13 
13 
13 
13 
13 
13 
13 
13 
13 
13 
13 
13 



ext 
ext 



ext 
ext 



MACRO X53B(1242) 19:38 12-Sep-85 Page 1 



irpBiir rntirnm i rn 



I IT T I f Tu nur- 



crrt ru./.'i 



RH2I 



RH20 
RH20 

13080 
13081 
13082 
13083 
13084 
13085 
13086 
13087 
13088 
13089 
13090 
13091 
13092 
13093 
13094 
13095 
13096 
13097 
13098 
13099 
13100 
13101 
13102 
13103 
13104 
13105 
13106 
13107 
13108 
13109 
13110 
13111 
13112 
13113 
13114 
13115 
13116 
13117 
13118 
13119 
13120 
13121 
13122 
13123 
13124 
13125 
13126 
13127 
13128 



MACRO X53B(1242) 19:38 12-Sep-85 Page 1 

- ' RH20 MASSBUS CONTROLLER UTILITY PK6 



MAC 



12-Sep-85 19:34 



SEQ 0442 



129 

130 

131 

1 

1 



000001 



Z:<6SCOTT.DFRPM>RH20.MAC.17 12-Sep-85 19:34:29, Edit by GSCOTT 

Fix up error message at USRCMN. 

Z:<GSCOTT.DFRPM>RH20.HAC.8 11-Sep-85 13:27:00, Edit by GSCOTT 

Give a little message when DIAG JSYS returns with error DIAG21. 

Z:<GSC0TT.DFRPM>RH20.MAC.2 9-Sep-85 12:34:39, Edit by GSCOTT 

Output errors from DIAG UUO on tne 20 using ERSTR, add all TOPS-IO diag errs. 

Ti 'E RH20 

SUBTTL RH20 MASSBUS CONTROLLER UTILITY PKG 

ANYDEV==1 .-ASSEMBLE FOR SOME DEVICE 

;IN YOUR PROGRAM YOU MUST DEFINE "MBCN" I "DRIVE" TO BE AC'S 

SEARCH DEFINS,MONSYM,UUOSYM 

.DIREC FL8LST .-First line binary listing please 

EXTERN POCT,POCDEC,TYPBIT,PSDN,NUMIN,EXRNAM,EXRSER,SHMODE 
EXTERN URECUREL, .CLOSE, .RESET, .EXIT 

ENTRY CHINIT,GENCCW,GETLOG,CHSEL 

ENTRY .C0NI,.C0nu,.C0NSZ,.C0NS0 

ENTRY LDRG00,LDR601,LDRG02,LDRG03,LDRG04,LDRG05,LDRG06,LDRG07 

ENTRY LDR610,LDRG11,LDRG12,LDR613,LDRG14,LDRG15,LDRG16 

ENTRY LDRGl7,LDRG20,LOr'"'!.LDRG22,LDRG23,.DAG24,LDR62