A large commit.
[pdp8.git] / sw / dumprest / original / testrk05.pal
diff --git a/sw/dumprest/original/testrk05.pal b/sw/dumprest/original/testrk05.pal
new file mode 100644 (file)
index 0000000..296816d
--- /dev/null
@@ -0,0 +1,327 @@
+/ RK05 SURFACE SCAN
+/ Do a destructive write/read check on all sectors.  Header words should be 
+/ checked in all sectors except 0.  0 probably missed since won't be first 
+/ after seek.
+/ For different patterns are used.
+/ To run start at 0200.  It will print drive being tested to console
+/ and then halt.  Set SR = 0 for continuous testing or 1 to halt after 1 pass.
+        DSKP=6741
+        DCLR=6742
+        DLAG=6743
+        DLCA=6744
+        DRST=6745
+        DLDC=6746
+
+        *10
+FILLOC,        0
+        *20
+DRIVE,  2
+K0200,  0200
+K4000,  4000
+TRACK,  0
+MAXTRK, 4537
+EXBIT,  0
+REDDAT, 1000
+WRTDAT, 5000
+WRTLOC, 3000
+RDLOC, 4000
+K17,    17
+K6,    6
+K0007, 0007
+K215,  0215
+K212,  0212
+M4,    -4
+LOOP,  0
+CURPAT,        0
+PATCNT,        0
+FILCNT,        0
+FILLEN,        -400
+INCF,  INCTRK
+CRLFF, CRLF
+K0077, 0077
+K7700, 7700
+K3740, 3740
+K4100, 4100
+K0240, 0240
+K0377, 0377
+K0001, 0001
+PRTXTF,        PRTXT
+FROCTF,        FROCT
+PRADF, PRAD
+PATLOC,        PATS
+PATS,  7777            / Test patterns to use
+       0000
+       5252
+       2525
+NUMPAT,        4
+
+        *200
+       CLA CLL OSR
+       RAL
+        AND K6          / Clear out high bits such as 0200 start address
+       DCA DRIVE
+       TAD DRIVE
+       RAR
+       JMS I FROCTF
+       JMS I PRTXTF
+       DTXT
+       JMS I CRLFF
+       HLT
+       CLA
+       DCA LOOP
+RESTRT, CLA CLL IAC
+        DCLR
+        TAD DRIVE
+        DLDC
+        CLA CLL CML RTL
+        DCLR
+        DSKP
+        JMP .-1
+        TAD K0200
+        TAD DRIVE
+        DLDC
+        DSKP
+        JMP .-1
+        DRST
+        CIA
+        TAD K4000
+        SZA CLA
+        JMP BADSTA
+       CLA
+       TAD NUMPAT
+       CMA IAC
+       DCA PATCNT
+       TAD PATLOC
+       DCA CURPAT
+FILP,  CLA
+       TAD FILLEN
+       DCA FILCNT
+       CMA
+       TAD WRTLOC
+       DCA FILLOC
+LP,    TAD I CURPAT
+       DCA I FILLOC
+       ISZ FILCNT
+       JMP LP
+       CLA CLL
+        DCA TRACK
+        DCA EXBIT
+WRTPAT,        JMS WRITE
+       JMS I INCF
+       JMP WRTPAT
+       CLA CLL
+        DCA TRACK
+        DCA EXBIT
+RDPAT, JMS READ
+       JMS I INCF
+       JMP RDPAT
+       ISZ CURPAT
+       ISZ PATCNT
+       JMP FILP
+DONE,   JMS I PRTXTF
+       PSTXT
+       TAD LOOP
+       JMS I FROCTF
+       JMS I CRLFF
+       ISZ LOOP
+       NOP
+       CLA OSR
+        SZA
+        HLT
+        JMP RESTRT
+
+BADSTA, HLT
+
+READ,   0
+       CLA CLL IAC
+        DCLR
+        TAD RDLOC
+        DLCA
+        TAD DRIVE
+        TAD REDDAT
+        TAD EXBIT
+        DLDC
+        TAD TRACK
+        DLAG
+        TAD EXBIT
+        RAR
+        TAD TRACK
+        RAR
+        DSKP
+        JMP .-1
+        DRST
+        CIA
+        TAD K4000
+        SZA CLA
+        JMP ERROR
+        JMP I READ
+ERROR,  JMS I PRTXTF
+       RERRT
+       JMS I PRADF
+        JMP I READ
+
+WRITE, 0
+        CLA CLL IAC     / We have one waiting, write it
+        DCLR
+        TAD WRTLOC
+        DLCA
+        TAD DRIVE
+        TAD WRTDAT
+        TAD EXBIT
+        DLDC
+        TAD TRACK
+        DLAG
+        TAD EXBIT
+        RAR
+        TAD TRACK
+        RAR
+        DSKP
+        JMP .-1
+        DRST
+        CIA
+        TAD K4000
+        SZA CLA
+        JMP ERROR2
+       JMP I WRITE
+ERROR2, JMS I PRTXTF
+       WERRT
+       JMS I PRADF
+        JMP I WRITE
+
+       
+       
+       PAGE
+INCTRK, 0               / Increment track and exbit value for next sector
+        CLA CLL         / AC non zero on return if done
+        TAD EXBIT
+        SZA
+        JMP CHKCYL
+INC2,   ISZ TRACK
+        JMP I INCTRK
+        ISZ EXBIT
+        JMP I INCTRK
+       HLT
+CHKCYL, CLA
+        TAD TRACK
+        CIA
+        TAD MAXTRK
+        SNA
+        JMP FIN
+        CLA
+        JMP INC2
+FIN,    CLA IAC
+       ISZ INCTRK
+        JMP I INCTRK
+
+RERRT, TEXT "READ ERR "
+WERRT, TEXT "WRITE ERR "
+PSTXT, TEXT "PASS "
+CTXT,  TEXT "CYL "
+STXT,  TEXT "SECTOR "
+SUTXT, TEXT "SURFACE "
+PTXT,  TEXT "PATTERN "
+DTXT,  TEXT "DRIVE WILL BE R/W TESTED, SET SR"
+       
+       PAGE
+PRTXT, 0
+       CLA CLL
+       TAD I PRTXT
+       ISZ PRTXT
+       DCA FROCT
+       TAD I FROCT
+       AND K7700
+       SNA
+       JMP PREX
+       SMA
+       CML
+       IAC
+       RTR
+       RTR
+       RTR
+       JMS PRINT
+       TAD I FROCT
+       AND K0077
+       SNA
+       JMP PREX
+       TAD K3740
+       SMA
+       TAD K4100
+       TAD K0240
+       JMS PRINT
+       ISZ FROCT
+       CLA CLL
+       JMP PRTXT+5
+PREX,  CLA CLL
+       JMP I PRTXT
+
+TOCT,  0
+UPONE, 0
+K0260, 0260
+FROCT, 0               / DUMP OCTAL
+       RTL
+       RTL
+       DCA UPONE
+       TAD M4
+       DCA TOCT
+       TAD UPONE
+       AND K0007
+       TAD K0260
+       JMS PRINT
+       TAD UPONE
+       RTL
+       RAL
+       DCA UPONE
+       ISZ TOCT
+       JMP .-11
+       TAD K0240
+       JMS PRINT
+       JMP I FROCT
+
+PRINT, 0
+       TLS
+       TSF
+       JMP .-1
+       TCF
+       CLA
+       JMP I PRINT
+
+PRAD,  0
+       CLA
+        DRST
+       JMS FROCT
+       JMS PRTXT
+       CTXT
+        TAD EXBIT
+        RAR
+        TAD TRACK
+        RAR
+       RTR
+       RTR
+       AND K0377
+       JMS FROCT
+       JMS PRTXT
+       SUTXT
+       TAD TRACK
+       RTR
+       RTR
+       AND K0001
+       JMS FROCT
+       JMS PRTXT
+       STXT
+       TAD TRACK
+       AND K17
+       JMS FROCT
+       JMS PRTXT
+       PTXT
+       TAD I WRTLOC
+       JMS FROCT
+       JMS CRLF
+       JMP I PRAD
+
+CRLF,  0
+       TAD K215
+       JMS PRINT
+       TAD K212
+       JMS PRINT
+       JMP I CRLF
+        $