Trailing-Edge
-
PDP-10 Archives
-
klad_sources
-
klad.sources/mcod6m.mac
There are no other files named mcod6m.mac in the archive.
SUBTTL DATA PATH TEST - PART 3
DEFTST MCODE6
TEST 247,TEST WRITE INDUSTRY COMPATIBLE FORMATTING
;*WRITE FOUR 18-BIT WORDS (EIGHT BYTES)
LDBR ^D43 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D8 ;SET BYTE CNT
MOVB AC2
LDBR WINCM ;SET ROM PROGRAM START ADDRESS
MOVB AC3
LDBR TSTDAT ;SETUP ADDR OF EXPECTED TEST DATA
MOVB AC1
GOSUB WRSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS IN XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE WRITE,,PNT
CHKTRM TST,RH20 ERROR DETECTED DURING WRITE XFER
GOSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
GOSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
GOSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
GOSUB CHKDAT ;GO CHECK THE DATA RECEIVED AT CHANNEL BUS
JMPZ .+2 ;JUMP IF NO ERRORS IN DATA
ERRORD TST,DATA ERROR IN WRITTEN DATA
REPEAT TST
TEST 248,TEST READ INDUSTRY COMPATIBLE FORWARD FORMATTING
;*READ FOUR 18-BIT WORDS (EIGHT BYTES)
LDBR ^D43 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D8 ;SET BYTE CNT
MOVB AC2
LDBR RINCMF ;SET ROM PROGRAM START ADDRESS
MOVB AC3
GOSUB RDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
GOSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
GOSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
GOSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
GOSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 249,TEST READ INDUSTRY COMPATIBLE REVERSE FORMATTING 1
;*READ FOUR 18-BIT WORDS (FIVE DATA BYTES WITH THREE ZERO BYTES PRE-PADDED)
LDBR ^D51 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D5 ;SET BYTE CNT
MOVB AC2
LDBR RINCR1 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
GOSUB RRDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
GOSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
GOSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
GOSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
GOSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 250,TEST READ INDUSTRY COMPATIBLE REVERSE FORMATTING 2
;*READ FOUR 18-BIT WORDS (SIX DATA BYTES WITH TWO ZERO BYTES PRE-PADDED)
LDBR ^D52 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D6 ;SET BYTE CNT
MOVB AC2
LDBR RINCR2 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
GOSUB RRDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
GOSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
GOSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
GOSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
GOSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 251,TEST READ INDUSTRY COMPATIBLE REVERSE FORMATTING 3
;*READ FOUR 18-BIT WORDS (SEVEN DATA BYTES WITH ONE ZERO BYTE PRE-PADDED)
LDBR ^D53 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D7 ;SET BYTE CNT
MOVB AC2
LDBR RINCR3 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
GOSUB RRDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
GOSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
GOSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
GOSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
GOSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 252,TEST READ INDUSTRY COMPATIBLE REVERSE FORMATTING 4
;*READ FOUR 18-BIT WORDS (EIGHT DATA BYTES WITH NO PRE-PADDING)
LDBR ^D54 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D8 ;SET BYTE CNT
MOVB AC2
LDBR RINCR4 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
GOSUB RRDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
GOSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
GOSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
GOSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
GOSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 253,TEST WRITE CORE DUMP FORMATTING
;*WRITE FOUR 18-BIT WORDS (TEN BYTES)
LDBR ^D44 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D10 ;SET BYTE CNT
MOVB AC2
LDBR WCDMP ;SET ROM PROGRAM START ADDRESS
MOVB AC3
LDBR CRDMP ;SETUP ADDR OF EXPECTED TEST DATA
MOVB AC1
GOSUB WRSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS IN XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE WRITE,,PNT
CHKTRM TST,RH20 ERROR DETECTED DURING WRITE XFER
GOSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
GOSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
GOSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
GOSUB CHKDAT ;GO CHECK THE DATA RECEIVED AT CHANNEL BUS
JMPZ .+2 ;JUMP IF NO ERRORS IN DATA
ERRORD TST,DATA ERROR IN WRITTEN DATA
REPEAT TST
TEST 254,TEST READ CORE DUMP FORWARD FORMATTING
;*READ FOUR 18-BIT WORDS (TEN BYTES)
LDBR ^D44 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D10 ;SET BYTE CNT
MOVB AC2
LDBR RCDMPF ;SET ROM PROGRAM START ADDRESS
MOVB AC3
GOSUB RDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
GOSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
GOSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
GOSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
GOSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 255,TEST READ CORE DUMP REVERSE FORMATTING 1
;*READ FOUR 18-BIT WORDS (SIX DATA BYTES WITH FOUR ZERO BYTES PRE-PADDED)
LDBR ^D55 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D6 ;SET BYTE CNT
MOVB AC2
LDBR RCDMR1 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
GOSUB RRDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
GOSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
GOSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
GOSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
GOSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 256,TEST READ CORE DUMP REVERSE FORMATTING 2
;*READ FOUR 18-BIT WORDS (SEVEN DATA BYTES WITH THREE ZERO BYTES PRE-PADDED)
LDBR ^D56 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D7 ;SET BYTE CNT
MOVB AC2
LDBR RCDMR2 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
GOSUB RRDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
GOSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
GOSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
GOSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
GOSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 257,TEST READ CORE DUMP REVERSE FORMATTING 3
;*READ FOUR 18-BIT WORDS (EIGHT DATA BYTES WITH TWO ZERO BYTES PRE-PADDED)
LDBR ^D57 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D8 ;SET BYTE CNT
MOVB AC2
LDBR RCDMR3 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
GOSUB RRDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
GOSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
GOSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
GOSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
GOSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 258,TEST READ CORE DUMP REVERSE FORMATTING 4
;*READ FOUR 18-BIT WORDS (NINE DATA BYTES WITH ONE ZERO BYTES PRE-PADDED)
LDBR ^D58 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D9 ;SET BYTE CNT
MOVB AC2
LDBR RCDMR4 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
GOSUB RRDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
GOSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
GOSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
GOSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
GOSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 259,TEST READ CORE DUMP REVERSE FORMATTING 5
;*READ FOUR 18-BIT WORDS (TEN DATA BYTES WITH NO PRE-PADDING)
LDBR ^D59 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D10 ;SET BYTE CNT
MOVB AC2
LDBR RCDMR5 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
GOSUB RRDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
GOSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
GOSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
GOSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
GOSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 260,TEST WRITE HIGH DENSITY FORMATTING
;*WRITE EIGHT 18-BIT WORDS (EIGHTEEN BYTES)
LDBR ^D45 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR ^D8 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D18 ;SET BYTE CNT
MOVB AC2
LDBR WHIDN ;SET ROM PROGRAM START ADDRESS
MOVB AC3
LDBR TSTDAT ;SETUP ADDR OF EXPECTED TEST DATA
MOVB AC1
GOSUB WRSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS IN XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE WRITE,,PNT
CHKTRM TST,RH20 ERROR DETECTED DURING WRITE XFER
GOSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
GOSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
GOSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
GOSUB CHKDAT ;GO CHECK THE DATA RECEIVED AT CHANNEL BUS
JMPZ .+2 ;JUMP IF NO ERRORS IN DATA
ERRORD TST,DATA ERROR IN WRITTEN DATA
REPEAT TST
TEST 261,TEST READ HIGH DENSITY FORWARD FORMATTING
;*READ EIGHT 18-BIT WORDS (EIGHTEEN BYTES)
LDBR ^D45 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR ^D8 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D18 ;SET BYTE CNT
MOVB AC2
LDBR RHIDNF ;SET ROM PROGRAM START ADDRESS
MOVB AC3
GOSUB RDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
GOSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
GOSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
GOSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
GOSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 262,TEST READ HIGH DENSITY REVERSE FORMATTING 1
;*READ SIX 18-BIT WORDS (TEN DATA BYTES WITH FOUR ZERO BYTES PRE-PADDED)
LDBR ^D60 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR ^D6 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D10 ;SET BYTE CNT
MOVB AC2
LDBR RHIDR1 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
GOSUB RRDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
GOSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
GOSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
GOSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
GOSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
JUMP NXTBNK ;JUMP TO NEXT BANK OF CRAM
.LOC 2000
NXTBNK:
TEST 263,TEST READ HIGH DENSITY REVERSE FORMATTING 2
;*READ SIX 18-BIT WORDS (ELEVEN DATA BYTES WITH THREE ZERO BYTES PRE-PADDED)
LDBR ^D61 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR ^D6 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D11 ;SET BYTE CNT
MOVB AC2
LDBR RHIDR2 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
GOSUB RRDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
GOSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
GOSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
GOSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
GOSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 264,TEST READ HIGH DENSITY REVERSE FORMATTING 3
;*READ SIX 18-BIT WORDS (TWELVE DATA BYTES WITH TWO ZERO BYTES PRE-PADDED)
LDBR ^D62 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR ^D6 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D12 ;SET BYTE CNT
MOVB AC2
LDBR RHIDR3 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
JMPSUB RRDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
JMPSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
JMPSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
JMPSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
JMPSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 265,TEST READ HIGH DENSITY REVERSE FORMATTING 4
;*READ SIX 18-BIT WORDS (THIRTEEN DATA BYTES WITH ONE ZERO BYTE PRE-PADDED)
LDBR ^D63 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR ^D6 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D13 ;SET BYTE CNT
MOVB AC2
LDBR RHIDR4 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
JMPSUB RRDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
JMPSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
JMPSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
JMPSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
JMPSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 266,TEST READ HIGH DENSITY REVERSE FORMATTING 5
;*READ EIGHT 18-BIT WORDS (FOURTEEN DATA BYTES WITH FOUR ZERO BYTES PRE-PADDED)
LDBR ^D64 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR ^D8 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D14 ;SET BYTE CNT
MOVB AC2
LDBR RHIDR5 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
JMPSUB RRDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
JMPSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
JMPSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
JMPSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
JMPSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 267,TEST READ HIGH DENSITY REVERSE FORMATTING 6
;*READ EIGHT 18-BIT WORDS (FIFTEEN DATA BYTES WITH THREE ZERO BYTES PRE-PADDED)
LDBR ^D65 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR ^D8 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D15 ;SET BYTE CNT
MOVB AC2
LDBR RHIDR6 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
JMPSUB RRDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
JMPSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
JMPSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
JMPSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
JMPSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 268,TEST READ HIGH DENSITY REVERSE FORMATTING 7
;*READ EIGHT 18-BIT WORDS (SIXTEEN DATA BYTES WITH TWO ZERO BYTES PRE-PADDED)
LDBR ^D66 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR ^D8 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D16 ;SET BYTE CNT
MOVB AC2
LDBR RHIDR7 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
JMPSUB RRDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
JMPSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
JMPSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
JMPSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
JMPSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 269,TEST READ HIGH DENSITY REVERSE FORMATTING 8
;*READ EIGHT 18-BIT WORDS (SEVENTEEN DATA BYTES WITH ONE ZERO BYTE PRE-PADDED)
LDBR ^D67 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR ^D8 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D17 ;SET BYTE CNT
MOVB AC2
LDBR RHIDR8 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
JMPSUB RRDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
JMPSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
JMPSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
JMPSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
JMPSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 270,TEST READ HIGH DENSITY REVERSE FORMATTING 9
;*READ EIGHT 18-BIT WORDS (EIGHTEEN DATA BYTES WITH NO PRE-PADDING)
LDBR ^D68 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR ^D8 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D18 ;SET BYTE CNT
MOVB AC2
LDBR RHIDR9 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
JMPSUB RRDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
JMPSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
JMPSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
JMPSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
JMPSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 271,TEST WRITE 6-BIT ASCII FORMATTING
;*WRITE FOUR 18-BIT WORDS (TWELVE BYTES)
LDBR ^D46 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D12 ;SET BYTE CNT
MOVB AC2
LDBR WASC6 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
LDBR ASCII6 ;SETUP ADDR OF EXPECTED TEST DATA
MOVB AC1
JMPSUB WRSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS IN XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE WRITE,,PNT
CHKTRM TST,RH20 ERROR DETECTED DURING WRITE XFER
JMPSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
JMPSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
JMPSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
JMPSUB CHKDAT ;GO CHECK THE DATA RECEIVED AT CHANNEL BUS
JMPZ .+2 ;JUMP IF NO ERRORS IN DATA
ERRORD TST,DATA ERROR IN WRITTEN DATA
REPEAT TST
TEST 272,TEST READ 6-BIT ASCII FORWARD FORMATTING
;*READ FOUR 18-BIT WORDS (TWELVE BYTES)
LDBR ^D46 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D12 ;SET BYTE CNT
MOVB AC2
LDBR RASC6F ;SET ROM PROGRAM START ADDRESS
MOVB AC3
JMPSUB RDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
JMPSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
JMPSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
JMPSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
JMPSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 273,TEST READ 6-BIT ASCII REVERSE FORMATTING 1
;*READ FOUR 18-BIT WORDS (SEVEN DATA BYTES WITH FIVE ZERO BYTES PRE-PADDED)
LDBR ^D69 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D7 ;SET BYTE CNT
MOVB AC2
LDBR RAS6R1 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
JMPSUB RRDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
JMPSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
JMPSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
JMPSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
JMPSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 274,TEST READ 6-BIT ASCII REVERSE FORMATTING 2
;*READ FOUR 18-BIT WORDS (EIGHT DATA BYTES WITH FOUR ZERO BYTES PRE-PADDED)
LDBR ^D70 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D8 ;SET BYTE CNT
MOVB AC2
LDBR RAS6R2 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
JMPSUB RRDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
JMPSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
JMPSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
JMPSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
JMPSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 275,TEST READ 6-BIT ASCII REVERSE FORMATTING 3
;*READ FOUR 18-BIT WORDS (NINE DATA BYTES WITH THREE ZERO BYTES PRE-PADDED)
LDBR ^D71 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D9 ;SET BYTE CNT
MOVB AC2
LDBR RAS6R3 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
JMPSUB RRDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
JMPSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
JMPSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
JMPSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
JMPSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 276,TEST READ 6-BIT ASCII REVERSE FORMATTING 4
;*READ FOUR 18-BIT WORDS (TEN DATA BYTES WITH TWO ZERO BYTES PRE-PADDED)
LDBR ^D72 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D10 ;SET BYTE CNT
MOVB AC2
LDBR RAS6R4 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
JMPSUB RRDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
JMPSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
JMPSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
JMPSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
JMPSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
TEST 277,TEST READ 6-BIT ASCII REVERSE FORMATTING 5
;*READ FOUR 18-BIT WORDS (ELEVEN DATA BYTES WITH ONE ZERO BYTE PRE-PADDED)
LDBR ^D73 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D11 ;SET BYTE CNT
MOVB AC2
LDBR RAS6R5 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
JMPSUB RRDSEQ ;GO RUN THE PROGRAM
JMPZ .+2 ;JUMP IF NO ERRORS DURING XFER
ERROR TST,"SLVE REQ" DIDN'T CLEAR DURING THE READ,,PNT
JMPSUB MEXWAT ;GO WAIT FOR "MSTR END XFER"
JMPZ .+2 ;JUMP IF IT WAS RECEIVED
ERROR TST,NO "MSTR END XFER" AFTER COMPLETING READ
JMPSUB DPPAR ;GO CHECK FOR DATA PATH BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN HIGH SPEED DATA PATH
JMPSUB CBPAR ;GO CHECK FOR CHANNEL BUS BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN CHANNEL BUS INTERFACE
JMPSUB MBPAR ;GO CHECK FOR MASSBUS INTERFACE BOARD PAR ERRS
JMPZ .+2 ;JUMP IF NONE WERE FOUND
ERROR TST,"DP PE" FLAG SET IN MASSBUS INTERFACE
CHKTRM TST,DATA ERROR IN READ DATA
REPEAT TST
JMP END ;JUMP AROUND SUBROUTINES
INITL: LDBR INIT+22 ;SET INIT
MOVB IOSEL
LDBR 22 ;CLR INIT & SELECT DP
MOVB IOSEL
RETURN
;*THE FOLLOWING IS THE SEQUENCE OF ACTIONS INVOLVED IN PERFORMING THE
;*READ TRANSFER TESTS.
;*DO A MICROBUS INIT TO INSURE A KNOWN STARTING STATE.
;*ENABLE THE BASE CLOCK AND CLEAR "DX HIGH SPEED", THIS CLEARS CLOCK PHASES.
;*SETUP DATA IN GP REGS NEEDED BY HOST.
;*ZERO THE BYTE COUNTER AND THE MASSBUS COUNTER.
;*SETUP CB BOARD LOOPING.
;*SET "MSTR END XFER ON FMTR END XFER" BIT.
;*LOAD THE ROM PROGRAM ADDRESS.
;*SETUP THE RH20 FOR A READ XFER.
;*SET "OCC" AND CLEAR "DATA TO DEVICE" IN THE MASSBUS INTERFACE.
;*WAIT FOR "RUN" TO SET IN THE MASSBUS INTERFACE.
;*DO A HS DP INIT.
;*SET "DX HIGH SPEED".
;*SET THE "START" BIT IN THE MASSBUS INTERFACE.
;*CLOCK THE 8-BIT BYTES FROM THE CB BOARD ONTO THE SLVE DATA LINES.
;*AFTER EACH BYTE, WAIT FOR "SLVE REQ" TO CLEAR - REPORT ERROR IF IT DOESN'T.
;*AFTER ALL BYTES ARE XFERED, SET "SLVE END XFER".
;*WAIT FOR "MSTR END XFER" TO SET - REPORT ERROR IF IT DOESN'T.
;*WHEN IT SETS, END THE XFER.
;*SIGNAL THE HOST TO CHECK CORRECTNESS OF THE DATA IT RECEIVED.
RRDSEQ: LDBR -1 ;SET READ REVERSE FLAG
MOVB AC5
JMP RD
RDSEQ: LDBR 0 ;SET READ FORWARD FLAG
MOVB AC5
RD: JMPSUB INITL ;MAKE SURE "MSTR REQ" IS CLEARED
LDBR BCLKEN ;CLEAR CLOCK PHASES
MOVB REG1
LDBR 11 ;SELECT MASSBUS INTERFACE
MOVB IOSEL
MOV AC0,BR ;SETUP DATA PATTERN NUMBER
MOVB MPGP10
LDBR 1 ;SETUP BLOCK CNT=1
MOVB MPGP11
MOVB MPGP6 ;SETUP ADDITIONAL PNT ROUTINE NUMBER
MOV AC4,BR ;COMPUTE AND STORE THE
SHR ;36-BIT WORD CNT
MOVB MPGP2
LDBR 0 ;CLEAR HI ORDER WRD CNT BITS
MOVB MPGP3
LDBR 22 ;SELECT DATA PATH
MOVB IOSEL
LDBR 0
MOVB BCLO ;CLEAR THE BC
MOVB BCHI
MOVB MCLO ;CLEAR THE MC
MOVB MCHI
JMPSUB CBLOOP ;SETUP CB BOARD LOOPING
LDBR MEONFE ;CLEAR ROM ADDR BIT 8
MOVB REG2 ;AND SET "MEX ON FEX"
MOV AC3,BR ;SETUP THE ROM PROGRAM ADDRESS
MOVB DFRMAD
MOVB REG0 ;CLEAR FLAGS
DECR AC2 ;SET LOOP CNT=BYTE CNT MINUS 1
;SETUP A READ XFER
MOV AC5 ;CHECK FOR REVERSE
JMPZ RDREV ;JUMP IF A READ REVERSE
READ ;SETUP FOR A READ FORWARD
JMP .+2
RDREV: READB ;SETUP FOR READ REVERSE
LDBR 11 ;SELECT MASSBUS INTERFACE
MOVB IOSEL
LDBR OCC ;SET MASK OF BITS TO BE SET
MOVB MPSCR1 ;AND WRITE IT TO STATUS REG
JMPSUB RUNWAT ;WAIT FOR "RUN" TO SET
LDBR 22 ;SELECT DATA PATH
MOVB IOSEL
MOVB HSDPIN ;DO HS DP INIT
LDBR DXHISP+BCLKEN ;SET "DX HIGH SPEED"
MOVB REG1
JMPSUB STRMB ;GO START THE XFER
LDMAR TSTDAT ;SET MAR TO POINT TO TEST DATA
RDLP: JMPSUB CLKDAT ;GO CLOCK DATA ONTO SLVE LINES
JMPSUB SLVWT ;GO WAIT FOR "SLVE REQ" TO CLEAR
JMPZ OKRD ;JUMP IF IT CLEARED
JMPSUB SETDAT ;SETUP LOOP CNT VALUE FOR HOST
JMPSUB ABTXFR ;ABORT THE XFER
RETURN ;GIVE ERROR RETURN
OKRD: DECR AC2,I ;DEC LOOP CNT AND INC DATA ADDR
JMPZ .+2 ;JUMP IF ALL DATA SENT
JMP RDLP ;ELSE, CONTINUE
;SET "SLVE END XFER"
LDBR 33 ;SELECT CHANNEL BUS INTERFACE
MOVB IOSEL
LDBR LOOPEN ;SET LOOP ENABLE
MOVB CSR1
LDBR STAINL ;SET "STA IN"
MOVB TOR0
LDBR 22 ;SELECT DATA PATH
MOVB IOSEL
RETURN -1 ;GIVE NO ERROR RETURN
MEXWAT: LDBR 0 ;CLEAR WAIT CNT
MOVB AC0
ENDWAT: DATI REG3,BR ;READ REG 3
SHR ;RIGHT ADJUST "NOT MSTR END XFER"
SHR
JMPB0 .+2 ;JUMP IF "MSTR END XFER"=0
JMP DONERD ;JUMP IF READ IS FINISHED
INCR AC0 ;INC WAIT CNT
JMPC .+2 ;JUMP IF TIMED OUT
JMP ENDWAT ;ELSE, KEEP WAITING
JMPSUB ABTXFR ;ABORT THE XFER
RETURN ;GIVE ERROR RETURN
DONERD: JMPSUB ABTXFR ;END THE XFER
LDBR 33 ;SELECT CHANNEL BUS INTERFACE
MOVB IOSEL
LDBR 0 ;CLEAR LOOP ENABLE
MOVB CSR1
LDBR 22 ;SELECT DATA PATH
MOVB IOSEL
RETURN -1 ;GIVE NO ERROR RETURN
;*THE FOLLOWING IS THE SEQUENCE OF ACTIONS INVOLVED IN PERFORMING THE
;*WRITE TRANSFER TESTS.
;*DO A MICROBUS INIT TO INSURE A KNOWN STARTING STATE.
;*ENABLE THE BASE CLOCK AND CLEAR "DX HIGH SPEED", THIS CLEARS CLOCK PHASES.
;*SETUP DATA IN GP REGS NEEDED BY HOST.
;*LOAD THE BYTE COUNTER AND THE MASSBUS COUNTER.
;*SETUP CB BOARD LOOPING.
;*SET "MSTR END XFER ON MC OVERFLOW" AND "SLVE END XFER ON BC OVERFLOW".
;*LOAD THE ROM PROGRAM ADDRESS.
;*SETUP THE RH20 FOR A WRITE XFER.
;*SET "OCC" AND "DATA TO DEVICE" IN THE MASSBUS INTERFACE.
;*WAIT FOR "RUN" TO SET IN THE MASSBUS INTERFACE.
;*DO A HS DP INIT.
;*SET "DX HIGH SPEED".
;*SET THE "START" BIT IN THE MASSBUS INTERFACE.
;*SET "SLVE REQ" ON THE CB BOARD.
;*WAIT FOR IT TO CLEAR - REPORT ERROR IF IT DOESN'T.
;*STORE THE RECEIVED 8-BIT BYTE IN MEMORY.
;*CHECK IF "SLVE END XFER" IS SET.
;*IF NOT, REPEAT THE PREVIOUS 4 STEPS.
;*IF IT IS SET, END THE XFER AND CHECK THAT THE RECEIVED DATA IS CORRECT.
WRSEQ: JMPSUB INITL ;MAKE SURE "MSTR REQ" IS CLEARED
LDBR BCLKEN ;CLEAR CLOCK PHASES
MOVB REG1
LDBR 11 ;SELECT MASSBUS INTERFACE
MOVB IOSEL
MOV AC0,BR ;SETUP DATA PATTERN NUMBER
MOVB MPGP10
LDBR 1 ;SETUP BLOCK CNT=1
MOVB MPGP11
MOVB MPGP6 ;SET ADDITIONAL PNT ROUTINE NUMBER
MOV AC4,BR ;COMPUTE AND STORE THE
SHR ;36-BIT WORD CNT
MOVB MPGP2
LDBR 0 ;CLEAR HI ORDER WRD CNT BITS
MOVB MPGP3
LDBR 22 ;SELECT DATA PATH
MOVB IOSEL
LDBR ENDSTR-STORIT ;COMPUTE SIZE OF SCATCH AREA MINUS 1
MOVB AC0
LDMAR STORIT ;SET SCRATCH AREA ADDRESS
LDBR 0 ;CLEAR BR
CLRLP: MOVB MEM ;ZERO MEM LOC
DECR AC0,I ;DEC LOOP CNT AND INC MEM ADDR
JMPZ .+2 ;JUMP IF TABLE ALL CLEARED
JMP CLRLP ;ELSE, CONTINUE
LDBR 0
MOVB AC0 ;SETUP A ZERO REG
MOV AC4,BR ;MOVE WORD CNT TO BR
TSB AC0,BR ;COMPUTE 2'S COMP OF 18-BIT WORD CNT
MOVB MCLO ;PUT IT IN MC
MOV AC2,BR ;MOVE THE BYTE CNT TO BR
TSB AC0,BR ;COMPUTE 2'S COMP OF BYTE CNT
MOVB BCLO ;PUT IT IN BC
LDBR -1 ;PUT ONES INTO HIGH ORDER MC AND BC
MOVB MCHI
MOVB BCHI
JMPSUB CBLOOP ;SETUP CB BOARD LOOPING
LDBR SEBCOV+MEMCOV ;CLEAR ROM ADDR BIT 8 AND SET
MOVB REG2 ;"SEX ON BC OVRFLW" & "MEX ON MC OVRFLW"
MOV AC3,BR ;SETUP THE ROM PROGRAM ADDRESS
MOVB DFRMAD
MOVB REG0 ;CLEAR FLAGS
;SETUP A WRITE XFER
WRITE ;SETUP FOR A DEVICE WRITE
LDBR 11 ;SELECT MASSBUS INTERFACE
MOVB IOSEL
LDBR DTD+OCC ;SET MASK OF BITS TO BE SET
MOVB MPSCR1 ;AND WRITE IT TO STATUS REG
JMPSUB RUNWAT ;WAIT FOR "RUN" TO SET
LDBR 22 ;SELECT DATA PATH
MOVB IOSEL
MOVB HSDPIN ;DO HS DP INIT
LDBR DXHISP+BCLKEN ;SET "DX HIGH SPEED"
MOVB REG1
JMPSUB STRMB ;GO START THE XFER
LDMAR STORIT ;SET MAR TO POINT TO STORAGE AREA
WRLP: JMPSUB SETSLV ;GO SET SLVE REQ ON CB BOARD
JMPSUB SLVWT ;GO WAIT FOR "SLVE REQ" TO CLEAR
JMPZ OKWR ;JUMP IF IT CLEARED
JMPSUB SETDAT ;SETUP LOOP CNT VALUE FOR HOST
JMPSUB ABTXFR ;ABORT THE XFER
RETURN ;GIVE ERROR RETURN
OKWR: LDBR 33 ;SELECT CHANNEL BUS INTERFACE
MOVB IOSEL
DATI DRLO,MEM,I ;READ DATA INTO MEMORY
LDBR 22 ;SELECT DATA PATH
MOVB IOSEL
DATI REG3,BR ;READ REG 17
SHR ;MOVE "NOT SLVE END XFER" INTO BIT 0
JMPB0 WRLP ;JUMP IF NO SLVE END XFER YET
JMPSUB ABTXFR ;END THE XFER
LDBR 33 ;SELECT CHANNEL BUS INTERFACE
MOVB IOSEL
LDBR 0 ;CLEAR LOOP ENABLE
MOVB CSR1
LDBR 22 ;SELECT DATA PATH
MOVB IOSEL
RETURN -1 ;GIVE NO ERROR RETURN
CHKDAT: LDBR STORIT ;SETUP ACTUAL DATA ADDR IN AC2
MOVB AC3
MOV AC2,BR ;PUT BYTE CNT IN AC0
MOVB AC0
MOV AC1,BR ;PUT CORRECT ADDR IN AC5
MOVB AC5
DECR AC2 ;SET LOOP CNT=BYTE CNT MINUS 1
CKLOOP: MOV AC3,MAR ;SET MAR TO ACTUAL DATA
MOVMEM AC4 ;PUT ACTUAL DATA IN AC4
MOV AC1,MAR ;SET MAR TO CORRECT DATA ADDR
OSM AC4 ;CHECK FOR CORRECT DATA
JMPZ CONCHK ;JUMP IF CORRECT
MOV AC5,BR ;MOVE CORRECT DATA ADDR TO AC1
MOVB AC1
LDBR STORIT ;PUT ACTUAL DATA ADDR IN AC2
MOVB AC2
RETURN ;GIVE ERROR RETURN
CONCHK: INCR AC3 ;INC ACTUAL DATA ADDR
INCR AC1 ;INC CORRECT DATA ADDR
DECR AC2 ;DEC LOOP CNT
JMPZ .+2 ;JUMP IF DONE
JMP CKLOOP ;ELSE, CONTINUE
RETURN -1 ;GIVE NO ERROR RETURN
SLVWT: LDBR 0 ;CLEAR WAIT COUNT
MOVB AC0 ;STORE IN AC0
WTLP1: DATI REG1,AC5 ;READ REG 1 FOR "SLVE REQ"
SHL AC5,BR ;LEFT ADJUST "SLVE REQ"
JMPB7 .+2 ;JUMP IF STILL SET
RETURN -1 ;GIVE "SLVE REQ" CLEARED RETURN
INCR AC0 ;INC WAIT COUNT
JMPC .+2 ;JUMP IF TIMED OUT
JMP WTLP1 ;KEEP WAITING
RETURN ;GIVE TIMEOUT RETURN
SETDAT: LDBR 11 ;SELECT MASSBUS INTERFACE
MOVB IOSEL
MOV AC2,BR ;PUT LOOP CNT INTO BR
MOVB MPGP4 ;STORE FOR ERROR LOOPING CONTROL
LDBR 22 ;SELECT DATA PATH
MOVB IOSEL
RETURN
RUNWAT: LDBR 0 ;CLEAR WAIT CNT
MOVB AC0
RUNLP: INCR AC0 ;INCREMENT WAIT CNT
JMPC RUNBCK ;JUMP IF TIMED OUT, TEST WILL FAIL
DATI MPSCR0,BR ;CHECK "RUN" BIT
JMPB0 .+2 ;JUMP IF SET
JMP RUNLP ;ELSE, KEEP WAITING
RUNBCK: RETURN
STRMB: LDBR 11 ;SELECT MASSBUS INTERFACE
MOVB IOSEL
DATI MPSCR1,AC0 ;READ PRESENT STATE OF STATUS
LDBR OCC+DTD ;SET MASK OF BITS TO KEEP
LANDBR AC0
LDBR START ;SET MASK OF START BIT
LORB AC0,BR ;SET IT INTO PRESENT STATUS
MOVB MPSCR1
LDBR 22 ;SELECT DATA PATH
MOVB IOSEL
RETURN
ABTXFR: LDBR 11 ;SELECT MASSBUS INTERFACE
MOVB IOSEL
LDBR EBL ;SET MASK OF BIT TO BE SET
MOVB MPSCR1 ;AND WRITE IT TO STATUS REG
LDBR 22 ;SELECT DATA PATH
MOVB IOSEL
RETURN
CBLOOP: LDBR 33 ;SELECT CHANNEL BUS INTERFACE
MOVB IOSEL
LDBR LOOPEN+EVPAR+CHANL ;SET LOOP ENABLE AND EVEN PARITY
MOVB CSR1 ;AND CHANNEL MODE
LDBR 0 ;INSURE "STA IN" IS CLEAR
MOVB TOR0
LDBR 22 ;SELECT DATA PATH
MOVB IOSEL
RETURN
SETSLV: LDBR 33 ;SELECT CHANNEL BUS INTERFACE
MOVB IOSEL
JMP CLKIT1 ;GO GENERATE "SLVE REQ"
CLKDAT: LDBR 33 ;SELECT CHANNEL BUS INTERFACE
MOVB IOSEL
LDBR 0 ;COMPUTE THE COMPLEMENT OF MEM CONTENTS
MOVB AC0
LORCM AC0,BR ;PUT IT IN BR
CLKIT: MOVB BORLO ;LOAD DATA INTO BOR
CLKIT1: LDBR SRVINL ;SET "SRV IN"
MOVB TOR1
LDBR 0 ;CLEAR "SRV IN"
MOVB TOR1
LDBR 22 ;SELECT DATA PATH
MOVB IOSEL
RETURN
DPPAR: DATI REG0,BR ;READ FLAG REG
SHR ;RIGHT ADJUST "DP PE" FLAG
JMPB0 .+2 ;JUMP IF IT SET
RETURN -1 ;GIVE NO ERROR RETURN
RETURN ;GIVE ERROR RETURN
CBPAR: LDBR 33 ;SELECT MASSBUS INTERFACE
MOVB IOSEL
DATI CSR0,AC0 ;READ FLAG REG
LDBR 22 ;SELECT DATA PATH
MOVB IOSEL
MOV AC0,BR
SHR ;RIGHT ADJUST "DP PE" FLAG
JMPB0 .+2 ;JUMP IF IT SET
RETURN -1 ;GIVE NO ERROR RETURN
RETURN ;GIVE ERROR RETURN
MBPAR: LDBR 11 ;SELECT MASSBUS INTERFACE
MOVB IOSEL
DATI MPDB2,AC0 ;READ BUFFER REG
LDBR 22 ;SELECT DATA PATH
MOVB IOSEL
SHL AC0,BR ;MOVE "DP PE" FLAG TO BIT 4
JMPB4 .+2 ;JUMP IF IT SET
RETURN -1 ;GIVE NO ERROR RETURN
RETURN ;GIVE ERROR RETURN
END: .ECRAM
.MEM
0 ;FIRST MEM LOC IS FOR SCRATCH
STORIT: 0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
ENDSTR: 0
TSTDAT: 1
-1
2
-2
3
-3
4
-4
5
-5
6
-6
7
-7
^D8
-^D8
^D9
-^D9
^D10
-^D10
^D11
-^D11
^D12
-^D12
^D13
-^D13
CRDMP: 1
-1
2
-2
3
-3
4
-4
5
13
ASCII6: 1
77
2
76
3
75
4
74
5
73
6
72
ASCI71: 1
177
2
176
3
175
4
174
5
373
ASCI72: 1
177
2
176
3
175
4
174
5
173
.END
END: .ECRAM
.MEM
0 ;FIRST MEM LOC IS FOR SCRATCH
UBPAR: 0
56
127
144
272
311
375
SCDATD: 1
2
4
10
20
40
100
SCDATU: 1
3
7
17
37
77
DNDATA: 17
160
UPDATA: 77
137
157
160
CLKPHS: 100
300
200
0
FLTZ1: 2
1
FLTZ2: 176
175
173
167
157
137
77
1
2
4
10
20
40
100
FLTZ3: 376
375
373
367
357
341
342
344
350
360
FLTZ: 376
375
373
367
357
337
277
177
1
2
4
10
20
40
100
200
CNTDAT: 0
1
0
2
0
4
0
10
0
20
0
40
0
100
0
200
1
0
2
0
4
0
10
0
20
0
40
0
100
0
200
0
1
17
1
360
37
17
37
360
20
377
CNTCOR: 0
0
0
1
0
3
0
7
0
17
0
37
0
77
0
177
0
377
1
377
3
377
7
377
17
377
37
377
77
377
177
377
1
16
1
357
37
16
37
357
20
377
0 ;FIRST MEM LOC IS FOR SCRATCH
CLKPHF: 60
40
0
CNTDAT: 0
1
0
2
0
4
0
10
0
20
0
40
0
100
0
200
1
0
2
0
4
0
10
0
20
0
40
0
100
0
200
0
1
17
1
360
37
17
37
360
20
377
CNTCOR: 0
0
0
1
0
3
0
7
0
17
0
37
0
77
0
177
0
377
1
377
3
377
7
377
17
377
37
377
77
377
177
377
1
16
1
357
37
16
37
357
20
377
RAMPAT: 1
0
0
2
0
0
4
0
0
10
0
0
20
0
0
40
0
0
100
0
0
200
0
0
0
1
0
0
2
0
0
4
0
0
10
0
0
20
0
0
40
0
0
100
0
0
200
0
0
0
1
0
0
2
0
0
376
377
3
375
377
3
373
377
3
367
377
3
357
377
3
337
377
3
277
377
3
177
377
3
377
376
3
377
375
3
377
373
3
377
367
3
377
357
3
377
337
3
377
277
3
377
177
3
377
377
2
377
377
1
RAMADR: 0
1
2
4
10
20
40
100
ROMDAT: 0
.END
END: .ECRAM
.MEM
0 ;FIRST MEM LOC IS FOR SCRATCH
CLKPHF: 60
40
0
CNTDAT: 0
1
0
2
0
4
0
10
0
20
0
40
0
100
0
200
1
0
2
0
4
0
10
0
20
0
40
0
100
0
200
0
1
17
1
360
37
17
37
360
20
377
CNTCOR: 0
0
0
1
0
3
0
7
0
17
0
37
0
77
0
177
0
377
1
377
3
377
7
377
17
377
37
377
77
377
177
377
1
16
1
357
37
16
37
357
20
377
RAMPAT: 1
0
0
2
0
0
4
0
0
10
0
0
20
0
0
40
0
0
100
0
0
200
0
0
0
1
0
0
2
0
0
4
0
0
10
0
0
20
0
0
40
0
0
100
0
0
200
0
0
0
1
0
0
2
0
0
376
377
3
375
377
3
373
377
3
367
377
3
357
377
3
337
377
3
277
377
3
177
377
3
377
376
3
377
375
3
377
373
3
377
367
3
377
357
3
377
337
3
377
277
3
377
177
3
377
377
2
377
377
1
RAMADR: 0
1
2
4
10
20
40
100
ROMDAT: 0
.END