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 e 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,LDR625
ENTRY LDRG26,LDRG27,Ly. ^ \LDRG31 ,LDRG32.LDRG33,LDRG34
ENTRY LDRG35,LDRG36,l;/' n
ENTRY RDRGOO,RDRG01,RDRG02,RDRG03,RDRG04,RDRG05,RDRG06,RDRG07
ENTRY RDRG10,RDRG11,RDRG12,RDRG13,RDR614,RDRG15,RDRG16
ENTRY RDRG17,RDRG20,RDR621,RDRG22,RDRG23,RDRG24,RDRG25
ENTRY RDRG26,RORG27,RDRG30,RDR631,RDRG32,RDRG33,RDR634
ENTRY ;^r,RG35,RDRG36,RDRG37
ENTRY LDSBAR,LDSTCR,LDIVRG,LDDCR.LDWTRG
ENTRY RDS8AR,RDSTCR,RDIVR6,RDRDR6,RDPBAR.RDPTCR
ENTRY CONIPT.REGPNr,CCUPNT,LOGPNT
ENTR»' DSETUP.CPUTST,DEVREQ,DEVREL
ENTRY ENABLE, CCSET.CCG<.R,CCCHK,FFF.USRION,USRIOF
INTERN CCFLG,DIAGCR,INDIAG,CBASE.CONIRL,REQARG
.-HERE ARE 3 UNDOCUMENTED ENTRIES SUPPLIED TO HELP TIMING DISK EVENTS.
;EACH OF THESE WILL GET EXECUTED IF NON-ZERO WHEN THEY ARE ENCOUNTERED.
INTERN
INTERN
INTERN
ULOAD
UL0AD1
UREAD
JUST PRIOR TO THE DATAO THAT LOADS A DEVICE REGISTER
JUST PRIOR TO THE DATAO THAT LOADS AN RH20 REGISTER
JUST AFTER CONI INSTRUCTION IN THE ".CONI" ROUTINE
13134
.-HERE ARE 2 UNDOCUMENTED ENTH.ES INTO LOAD AND READ REGISTER
...J
GEO W30
RH20
RH20
13135
13136
13137
13138
13139
13140
13U1
13K2
13U3
13144
MACRO X53B(1242) 19:38 12-Sep-85 Page 1-1
" ' RH20 MASSBUS CONTROLLER UTILITY PKG
MAC
000000'
12-Sep-85 19:34
SEQ 0443
.•ROUTINES. THEY ARE HERE SO SOME OLD DX20 CONSOLE CODE WILL WORK
ENTRY RDR6,LDRG
RELOC
IFNDEF
XLIST
LIST
PAGE
ANYDEV.<ANYDEV==0>
SEQ 0431
RH20
RH20
MACRO X53B(1242) 19:38 12-Sep-85 Page 1-2
12-Sep-85 19:34 RH20 MASSBUS CONTROLLER UTILITY PKG
MAC
SEQ 0444
S*; ********t**************************i%********t**t*********************'
RH20
RH20
131A5
131A6
131A7
13K8
13K9
13150
13151
13152
13153
1315A
13155
13156
13157
13158
13159
13160
13161
13162
13163
1316A
13165
13166
13167
13168
13169
13170
13171
13172
13173
131 74
13175
13176
13177
13178
13179
13180
13181
13182
13183
1318A
13185
r'96
15187
13188
MACRO 5(538(1242) 19:38 12-Sep-85 Page 1-2
MAC
12-Sep-85 19:34
RH20 MASSBUS CONTROLLER UTILITY PKG
£•• ********************************* **i************************** ***•*♦•**
.•♦'notes on I/O ROUTINE DESIGN
S*; **********************************************************************
COMMENT $
1. ALL I/O CODE IN THIS FILE IS RE-ENTRANT
WITH THE EXCEPTION OF THE USER MODE STUFF WHICH NEED
NOT BE SINCE THE PI SYSTEM CANNOT BE USED IN USER MODE
2. THE ROUTINES EXPECT TO FIND THE DRIVE NUMBER IN AN AC LABLED
"DRIVE" BITS 33-35. IN THE CASE OF MASTER SLAVE SUTUATIONS
SUCH AS DX20/TM78, THE MASTER IS CONSIDERED THE DRIVE OR
UNIT AND THE SLAVE (SUBUNIT) IS EXPECTED TO BE CONTAINED
IN THE LEFT HALF OF THE AC DEFINED AS DRIVE.
DRIVE/ SUBUNIT,, UNIT (WHERE APPLICABLE)
3. THE ROUTINES WILL EXPECT TO FIND THE CONTROLLER DEVICE CODE
IN AN AC LABLED "M8CN" (MASSBUSS CONTROLLER NUMBER)
BITS 3-9
4. NO AC'S ARE MODIFIED UNLESS TH^Y RETURN DATA.
5. THERE IS A GLOBAL SOFTWARE FLAG CALLED "SHMODE" WHICH
OVERRIDES AND WORKS FUNCTIONALLY IDENTICAL
TO THE SHORT PRINTOUT SWITCH 'TXTINH". THIS
IS A CONVENIENT WAY FOR THE SOFTWARE TO FORCE
THE DIAGNOSTIC INTO OCTAL OUTPUT MODE.
6. IF IN (EXEC MODE) WITM AN RH20 IT'S NECESSARY FOR THE CHAN ROUTINES
TO DO A LIMITED AMOUN« OF PAGING. THIS IS ACCOMPLISHED BY SETTING
UP A LOCATION CALLED 'CBASE" TO BE A PAGED ADDRESS OF "0". THE
THE ROUTINES WILL THEN WORK PROPERLY.
S
XLIST
LIST
SUBTTL REGISTER LOAU AND READ ROUTINES
XLIST
LIST
PAGE
SEQ 0444
n
RH2Q
RH20
MACRO XS3e(1242)
MAC
^ _ _ 19:38 12-Sep-85 Page
12-Sep-8S 19:34 REGISTER LOAD AND READ ROUTINES
1-3
SEQ 0445
1X1 RQ
L
RH20
RH20
13189
13190
13191
13192
13193
13194
13195
13196
13197
13198
13199
13200
13201
13202
13203
1320A
13205
13206
13207
13208
13209
13210
13211
13212
13213
132U
13215
13216
13217
13218
13219
13220
13221
13222
13223
13224
13225
13226
13227
13228
13229
13230
13231
13232
13233
13234
13235
13236
13237
13238
13239
13240
13241
1324
1324
MACRO X53B(1242) 19:38 12-Sep-85 Page 1-3
MAC 12-Sep-85 19:34 REGISTER LOAD AND READ ROUTINES
SEQ 0445
r
R
R
000000'
000001 '
000002'
000003'
000004'
000005'
000006'
000007'
000010'
oooor
00001c
000013'
000014'
QQ0015'
000016'
000017'
000020'
261 17 00
434 01
254 00
261 ~
17
•434 01
254 00
261 17
434 01
254 00
261 17
434 01
254
261
00
17
434 01
254 00
17
01
434
00
00
00
00
00
00
00
00
00
00
00
00
8?
m
000001
003276'
000142'
000001
003277'
000142'
000001
003300'
000142'
000001
003301 '
000142'
OOQOOl
:03302'
500142'
m
$•• ************»*»**»*t *********************** ***»**********n ************
*'mASSBUS DEVICE REGISTER LOAD ROUTINES
*• **********************************************************************
COMMENT $
SPECIFICATION:
DEVICE REGISTERS ARE LOADED BY SETTING UP ACl
WITH SOME APPROPRIATE ARGUMENT AND THEN CALLING THE CORRECT
THE ROUTINES HAVE A NORMAL RETURN AND AN l^^ROR
ROUTINE WITH
RETURN.
EG.
ACl
A PUSH J.
MOVE
GO
.:tni
RTN2
ACl.FOO
LDRGXX
GET SOME ARGUMENT
XX (REG #) RANGES FROM 00-37 OCTAL
RAE DETECTED AFTER THE LOAD
:LOAD WAS SUCCESSFUL
SPECIFY REGISTER DATA IN BITS 20-35
SPECIFY PARITY MODE BIT 18
MEANS ODD
1 MEANS EVEN
SPECIFY SOFTWARE OPTION BITS 13-14
BIT 13=0 CLEAR RAE'S
BIT 13=1 DON'T CLEAR RAE'S
BIT 14=0 REPORT RAE'S
BIT 14=1 DON'T REPORT RAE'S
STATUS:
IF NO ERRORS ARE DETECTED, ACl IS RETURNED AS IT WAS
SPECIFIED EXCEPT FOR THE REGISTER AND DRIVE FIELDS WHICH WILL HAVE
BEEN SUPPLIED BY THE ROUTINE.
ACl ON RETURN FROM AN RHIO ERROR HOLDS THE PRESENT VALUE
OF THE DIB. ACl ON RETURN FROM AN RH20 ERROR HOLDS THE DATAO ARGUMENT
THAT CAUSED THE RAE.
S
XLIST
LIST
LDRGOO:
LDRG01 :
LDRG02:
LDRG03:
LDRG04:
LDRG05:
PUT
I OR
JRST
PUT
I OR
JRST
PUT
I OR
JRST
PUT
I OR
JRST
PUT
I OR
JRST
PUT
I OR
1
1-C0B5
LDRGCC
1
1.C1B5
LDRGCC
1
1,C2B5
LDRGCC
1
1.C3B5
LDRGCC
1
1.C485
LDRGCC
1
1,C5B5
1B6]
1B6]
1B6]
1B6]
1B6]
1B6]
'SAVE ACl
:REG # AND LOAD REG BIT
;G0 TO COMMON CODE
rh;
rh;
18
MACRO X53B(1242} 19:38 12-Sep-85 Page 1-4
MAC 12-Sep-85 19:34 — »— -
REGISTER LOAD AND READ ROUTINES
SEQ 0446
'1 r-
R
R
S^^J J
rtAAAti • '^C/ AA A AA AAAI/II
I fVOr/T
L
RH20 MACRO X53B(1242) 19:38 12-Sep-85 Page 1-4
RH20 MAC 12-Sep-85 19:34 REGISTER LOAD AND READ ROUTINES
SEQ 0446
r
R
R
13244
13245
13246
13247
13248
13249
13250
13251
13252
13253
13254
13255
13256
13257
13258
13259
13260
13261
13262
13263
13264
13265
13266
13267
13268
13269
13270
13271
13272
13273
13274
13275
13276
13277
13278
13279
13280
13281
13282
13283
13284
13285
13286
13287
13288
13289
15290
13291
13292
13293
13294
13295
13296
13297
13298
000021 •
000022'
000023'
000024'
000025'
000026'
000027'
000030'
000031 '
000032'
000033'
000034'
000035'
000036'
000037'
000040'
000041 '
000042'
000043'
000044'
000045'
000046'
000047'
000050'
000051 '
000052'
000053'
000054'
000055'
000056'
000057'
000060'
000061 '
000062'
000063'
000064'
000065'
000066'
000067'
000070'
000071 '
000072'
000073'
000074'
000075'
000076'
000077'
000100'
000101'
000102'
000103'
)00104'
00105'
00106'
)00107'
254 00
261 17
43'* 01
254 00
261 17
434 01
254 00
261 .:
434 01
254 00
261 17
434 01
254 00
261 17
434 01
254 00
261 17
434 01
254 00
261 "
--
17
__ .
434 01
254 00
17
261 17
434 01
254 00
261 17
434 01
254 00
261 17
00
17
01
434 01
_-. .
434 01
C3 ■
261
434 .
254 00
261 17
434 01
254 00
261 17
434 01
254 00
261 17
434 01
254 00
261 17
434 01
254
261
00
17
434 01
254 00
261 17
434
254
i;
u^
00 000142'
00 000001
00 003304'
00 000142'
00 OOOQOl
00 003305'
00 000142'
00 000001
00 003306'
00 000142'
00 000001
00 003307'
00 000142'
00 000001
00 003310'
00 000142'
00 000001
00 003311'
00 000142'
00 000001
00 003312'
00 000142'
00 000001
00 003313'
00 000142'
00 000001
00 003314'
00 000142'
00 000001
00 003315'
00 000142'
00 000001
00 003316'
00 000142'
00 000001
00 003317'
00 000142'
00 000001
00 003320'
00 000142'
00 000001
00 003321'
00 000142'
00 000001
00 003322'
00 000142'
00 OOOQOl
00 003323'
00 000142'
00 OOOQOl
13324'
142'
00142'
LDR606:
LDR607:
LDR610:
LDR611:
LDR612:
LDR613:
LDRG14:
LDRG15:
LDRG16:
LDRG17