Trailing-Edge
-
PDP-10 Archives
-
klad_sources
-
klad.sources/mcod7m.mac
There are no other files named mcod7m.mac in the archive.
SUBTTL DATA PATH TEST - PART 4
DEFTST MCODE7
TEST 278,TEST READ 6-BIT ASCII REVERSE FORMATTING 6
;*READ FOUR 18-BIT WORDS (TWELVE DATA BYTES WITH NO PRE-PADDING)
LDBR ^D74 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D12 ;SET BYTE CNT
MOVB AC2
LDBR RAS6R6 ;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 279,TEST WRITE 7-BIT ASCII MOD 1 FORMATTING
;*WRITE FOUR 18-BIT WORDS (TEN BYTES)
LDBR ^D47 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D10 ;SET BYTE CNT
MOVB AC2
LDBR WAS71 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
LDBR ASCI71 ;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 280,TEST READ 7-BIT ASCII MOD 1 FORWARD FORMATTING
;*READ FOUR 18-BIT WORDS (TEN BYTES)
LDBR ^D47 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D10 ;SET BYTE CNT
MOVB AC2
LDBR RAS71F ;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 281,TEST READ 7-BIT ASCII MOD 1 REVERSE FORMATTING 1
;*READ FOUR 18-BIT WORDS (SIX DATA BYTES WITH FOUR ZERO BYTES PRE-PADDED)
LDBR ^D75 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D6 ;SET BYTE CNT
MOVB AC2
LDBR RA71R1 ;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 282,TEST READ 7-BIT ASCII MOD 1 REVERSE FORMATTING 2
;*READ FOUR 18-BIT WORDS (SEVEN DATA BYTES WITH THREE ZERO BYTES PRE-PADDED)
LDBR ^D76 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D7 ;SET BYTE CNT
MOVB AC2
LDBR RA71R2 ;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 283,TEST READ 7-BIT ASCII MOD 1 REVERSE FORMATTING 3
;*READ FOUR 18-BIT WORDS (EIGHT DATA BYTES WITH TWO ZERO BYTES PRE-PADDED)
LDBR ^D77 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D8 ;SET BYTE CNT
MOVB AC2
LDBR RA71R3 ;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 284,TEST READ 7-BIT ASCII MOD 1 REVERSE FORMATTING 4
;*READ FOUR 18-BIT WORDS (NINE DATA BYTES WITH ONE ZERO BYTE PRE-PADDED)
LDBR ^D78 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D9 ;SET BYTE CNT
MOVB AC2
LDBR RA71R4 ;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 285,TEST READ 7-BIT ASCII MOD 1 REVERSE FORMATTING 5
;*READ FOUR 18-BIT WORDS (TEN DATA BYTES WITH NO PRE-PADDING)
LDBR ^D79 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D10 ;SET BYTE CNT
MOVB AC2
LDBR RA71R5 ;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 286,TEST WRITE 7-BIT ASCII MOD 2 FORMATTING
;*WRITE FOUR 18-BIT WORDS (TEN BYTES)
LDBR ^D48 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D10 ;SET BYTE CNT
MOVB AC2
LDBR WAS72 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
LDBR ASCI72 ;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 287,TEST READ 7-BIT ASCII MOD 2 FORWARD FORMATTING
;*READ FOUR 18-BIT WORDS (TEN BYTES)
LDBR ^D48 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D10 ;SET BYTE CNT
MOVB AC2
LDBR RAS72F ;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 288,TEST READ 7-BIT ASCII MOD 2 REVERSE FORMATTING 1
;*READ FOUR 18-BIT WORDS (SIX DATA BYTES WITH FOUR ZERO BYTES PRE-PADDED)
LDBR ^D80 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D6 ;SET BYTE CNT
MOVB AC2
LDBR RA72R1 ;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 289,TEST READ 7-BIT ASCII MOD 2 REVERSE FORMATTING 2
;*READ FOUR 18-BIT WORDS (SEVEN DATA BYTES WITH THREE ZERO BYTES PRE-PADDED)
LDBR ^D81 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D7 ;SET BYTE CNT
MOVB AC2
LDBR RA72R2 ;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 290,TEST READ 7-BIT ASCII MOD 2 REVERSE FORMATTING 3
;*READ FOUR 18-BIT WORDS (EIGHT DATA BYTES WITH TWO ZERO BYTES PRE-PADDED)
LDBR ^D82 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D8 ;SET BYTE CNT
MOVB AC2
LDBR RA72R3 ;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 291,TEST READ 7-BIT ASCII MOD 2 REVERSE FORMATTING 4
;*READ FOUR 18-BIT WORDS (NINE DATA BYTES WITH ONE ZERO BYTE PRE-PADDED)
LDBR ^D83 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D9 ;SET BYTE CNT
MOVB AC2
LDBR RA72R4 ;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 292,TEST READ 7-BIT ASCII MOD 2 REVERSE FORMATTING 5
;*READ FOUR 18-BIT WORDS (TEN DATA BYTES WITH NO PRE-PADDING)
LDBR ^D84 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D10 ;SET BYTE CNT
MOVB AC2
LDBR RA72R5 ;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 293,TEST WRITE 11-MOD 1 FORMATTING
;*WRITE TWO 18-BIT WORDS (FOUR BYTES)
LDBR ^D49 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 2 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D4 ;SET BYTE CNT
MOVB AC2
LDBR WEM1 ;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
JUMP NXTBNK ;JUMP TO NEXT BANK OF CRAM
.LOC 2000
NXTBNK:
TEST 294,TEST READ 11-MOD 1 FORWARD FORMATTING
;*READ TWO 18-BIT WORDS (FOUR BYTES)
LDBR ^D49 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 2 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D4 ;SET BYTE CNT
MOVB AC2
LDBR REM1F ;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 295,TEST READ 11-MOD 1 REVERSE FORMATTING 1
;*READ TWO 18-BIT WORDS (THREE DATA BYTES AND ONE ZERO BYTE PRE-PADDED)
LDBR ^D85 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 2 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D3 ;SET BYTE CNT
MOVB AC2
LDBR REM1R1 ;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 296,TEST READ 11-MOD 1 REVERSE FORMATTING 2
;*READ TWO 18-BIT WORDS (FOUR DATA BYTES WITH NO PRE-PADDING)
LDBR ^D86 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 2 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D4 ;SET BYTE CNT
MOVB AC2
LDBR REM1R2 ;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 297,TEST WRITE 11-MOD 2 FORMATTING
;*WRITE TWO 18-BIT WORDS (FOUR BYTES)
LDBR ^D50 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 2 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D4 ;SET BYTE CNT
MOVB AC2
LDBR WEM2 ;SET ROM PROGRAM START ADDRESS
MOVB AC3
LDBR TSTDAT ;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 298,TEST READ 11-MOD 2 FORWARD FORMATTING
;*READ TWO 18-BIT WORDS (FOUR BYTES)
LDBR ^D50 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 2 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D4 ;SET BYTE CNT
MOVB AC2
LDBR REM2F ;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 299,TEST READ 11-MOD 2 REVERSE FORMATTING 1
;*READ TWO 18-BIT WORDS (THREE DATA BYTES AND ONE ZERO BYTE PRE-PADDED)
LDBR ^D87 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 2 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D3 ;SET BYTE CNT
MOVB AC2
LDBR REM2R1 ;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 300,TEST READ 11-MOD 2 REVERSE FORMATTING 2
;*READ TWO 18-BIT WORDS (FOUR DATA BYTES WITH NO PRE-PADDING)
LDBR ^D88 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 2 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D4 ;SET BYTE CNT
MOVB AC2
LDBR REM2R2 ;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 301,TEST WRITE COBOL EBCDIC FORMATTING
;*WRITE FOUR 18-BIT WORDS (EIGHT BYTES)
LDBR ^D89 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D8 ;SET BYTE CNT
MOVB AC2
LDBR WCOBOL ;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 302,TEST READ COBOL EBCDIC FORWARD FORMATTING
;*READ FOUR 18-BIT WORDS (EIGHT BYTES)
LDBR ^D89 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D8 ;SET BYTE CNT
MOVB AC2
LDBR RCOBLF ;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 303,TEST READ COBOL EBCDIC REVERSE FORMATTING 1
;*READ FOUR 18-BIT WORDS (FIVE DATA BYTES WITH THREE ZERO BYTES PRE-PADDED)
LDBR ^D90 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D5 ;SET BYTE CNT
MOVB AC2
LDBR RCBLR1 ;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 304,TEST READ COBOL EBCDIC REVERSE FORMATTING 2
;*READ FOUR 18-BIT WORDS (SIX DATA BYTES WITH TWO ZERO BYTES PRE-PADDED)
LDBR ^D91 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D6 ;SET BYTE CNT
MOVB AC2
LDBR RCBLR2 ;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 305,TEST READ COBOL EBCDIC REVERSE FORMATTING 3
;*READ FOUR 18-BIT WORDS (SEVEN DATA BYTES WITH ONE ZERO BYTES PRE-PADDED)
LDBR ^D92 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D7 ;SET BYTE CNT
MOVB AC2
LDBR RCBLR3 ;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 306,TEST READ COBOL EBCDIC REVERSE FORMATTING 4
;*READ FOUR 18-BIT WORDS (EIGHT DATA BYTES WITH NO PRE-PADDING)
LDBR ^D93 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D8 ;SET BYTE CNT
MOVB AC2
LDBR RCBLR4 ;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 307,TEST READ HIGH DENSITY FORWARD FORMATTING 1 BYTE
;*READ FOUR 18-BIT WORDS (ONE DATA BYTE AND EIGHT ZERO BYTES POST-PADDED)
LDBR ^D94 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D1 ;SET BYTE CNT
MOVB AC2
LDBR RHIDNF ;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 308,TEST READ INDUSTRY COMPATIBLE FORWARD FORMATTING 5 BYTE
;*READ FOUR 18-BIT WORDS (FIVE DATA BYTES WITH THREE ZERO BYTES POST-PADDED)
LDBR ^D95 ;SET DATA PATTERN NUMBER
MOVB AC0
LDBR 4 ;SET 18-BIT WORD CNT
MOVB AC4
LDBR ^D5 ;SET BYTE CNT
MOVB AC2
LDBR RINCMF ;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
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 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 ;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 ENDSTR-STORIT ;COMPUTE SIZE OF SCATCH AREA MINUS 1
MOVB AC0
LDMAR STORIT ;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 ;SAVE BYTE CNT IN AC0
MOVB AC0
MOV AC1,BR ;SAVE CORRECT DATA 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 ;PUT CORRECT DATA ADDR IN 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
SHFTIT: 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
JMP SHFTIT ;GO CHECK STATE OF PE FLAG
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