Google
 

Trailing-Edge - PDP-10 Archives - klad_sources - klad.sources/mcod7t.mac
There are no other files named mcod7t.mac in the archive.
	XLIST
EDIT=0
VERSION=1

DEFINE	NAME	(EDT,VER),<
	LALL
	LIST




TITLE	MCODE7 	DX20 MICRO-DIAGNOSTIC OF THE DATA PATH - PART 4 VERSION EDT'.'VER





>

NAME	\EDIT,\VERSION




	COMMENT	$

	MCODE7 IS THE 4TH PART OF A 4 PART MICRODIAGNOSTIC OF THE HIGH SPEED
DATA PATH.  IT TESTS THE PROPER EXECUTION OF THE OPERATIONAL ROM FORMATTING
PROGRAMS.  THE FIRST 2 PARTS (MCODE4 AND MCODE5) TESTED THE CONTROL LOGIC
USING SINGLE STEPPING AND ROM DIAGNOSTIC PROGRAMS.  MCODE5 SIMULATES
NORMAL CONDITIONS AND EXECUTES THE OPERATIONAL ROM PROGRAMS WITH THE
FORMATTER BASE CLOCK ENABLED.  THE LOOP BACK MODE IN THE CHANNEL BUS
INTERFACE IS USED TO SIMULATE HAVING A DEVICE ON THE CHANNEL BUS.  IN
THIS WAY, "SLVE REQ" CAN BE GENERATED AND DATA CAN BE SENT TO AND RECEIVED
FROM THE DATA PATH.

FOR WRITE AND READ FORWARD TESTS, THE NUMBER OF BYTES AND WORDS TRANSFERRED
IS CHOSEN SO AS TO FORCE TWO PASSES THROUGH THE ROM PROGRAM.  THESE TRANSFERS
ARE ALWAYS FULL WORDS.

FOR READ REVERSE, ALL "PARTIAL WORD TRANSFERS" ARE ATTEMPTED.  THIS MEANS
STARTING THE ROM PROGRAM AT EACH OF ITS ALLOWABLE ENTRY POINTS AND
TRANSFERRING A NUMBER OF BYTES WHICH REQUIRES PRE-PADDING OF ZERO BYTES
TO MAKE FULL WORD TRANSFERS.

TO TEST POST-PADDING, A WRITE HIGH DENSITY MODE TRANSFER IS DONE WITH A
BYTE COUNT OF ONE.  THIS TESTS THAT THE ROM PROGRAM PADS ENOUGH ALL ZERO
BYTES AFTER THE DATA BYTE TO MAKE A FULL WORD.

EACH TEST INVOLVES SETTING UP THE ROM START ADDRESS, DATA PATTERN INFORMATION,
AND BYTE AND WORD COUNTS.  THEN EITHER THE READ XFER OR WRITE XER SUBROUTINE
IS CALLED TO EXECUTE THE TRANSFER.  FOR ALL XFERS, IF "SLVE REQ" FAILS TO
CLEAR AFTER EACH BYTE IS SENT TO OR RECEIVED FROM FROM THE CHANNEL BUS INTERFACE,
THEN AN ERROR MESSAGE IS TYPED.  FOR READ XFERS, IF "MSTR END XFER" DOES
NOT OCCUR AFTER ALL BYTES HAVE BEEN TRANSFERRED, AN ERROR IS REPORTED.
THE READ DATA IS CHECKED AT THE HOST AND ANY ERRORS ARE REPORTED.
FOR WRITE XFERS, THE WRITTEN DATA IS READ FROM THE CHANNEL BUS INTERFACE
AND STORED IN WORKING MEMORY.  WHEN THE XFER IS COMPLETED, THE DATA IS
CHECKED.  IF A DATA ERROR IS FOUND, ONLY THE FIRST INCORRECT BYTE IS TYPED.

IN ALL TESTS, THE BYTE SEQUENCE OF READ OR WRITTEN DATA IS 
	1,-1,2,-2,3,-3,ETC.
FOR AS MANY BYTES AS ARE REQUIRED.
$
	RPTCNT=	100			;SET REPEAT COUNT TO 100 TIMES
	SUBTTL	DATA PATH BIT REGISTER DEFINITIONS

;DEFINE THE DATA PATH REGISTERS

REG0=0				;REGISTER 0 (READ ONLY)
REG1=1
REG2=2
REG3=3				;READ ONLY
MCLO=4				;MASSBUS COUNTER BITS 7-0
MCHI=5				;MASSBUSS COUNTER BITS 15-8
BCLO=6				;BYTE COUNTER BITS 7-0
BCHI=7				;BYTE COUNTER BITS 15-8
DFRMAD=10			;DF ROM ADDRESS BITS 7-0
RMDALO=11			;DF ROM DATA BITS 7-0 (READ ONLY)
RMDAHI=12			;DF ROM DATA BITS 15-8 (READ ONLY)
ARLO=13				;ASSEMBLY REGISTER BITS 7-0
ARHI=14				;ASSEMBLY REGISTER BITS 15-8
REG15=15			;READ ONLY
REG16=16			;READ ONLY
REG17=17			;READ ONLY

LDRMDA=11			;LOAD ROM DATA PULSE (WRITE ONLY)
CLKPLS=12			;BASE CLOCK PULSE (WRITE ONLY)
HSDPIN=13			;HS DP INIT PULSE (WRITE ONLY)
SETRUN=14			;SET RUN PULSE (WRITE ONLY)

;REGISTER 0

UBPEFG=1B35			;MICROBUS PARITY ERROR FLAG
DPPEFG=1B34			;DATA PATH PARITY ERROR FLAG
BCOVF=1B33			;BYTE COUNT OVERFLOW FLAG
MCOVF=1B32			;MASSBUS COUNTER OVERFLOW FLAG

;REGISTER 1

DXHISP=1B35			;DX HIGH SPEED
BCLKEN=1B34			;BASE CLOCK ENABLE
DSLVRQ=1B33			;DIAGNOSTIC SLAVE REQUEST
DMSTRQ=1B32			;DIAGNOSTIC MASTER REQUEST
SLVACK=1B31			;SLAVE ACK
MSTACK=1B30			;MASTER ACK
SLVRQ=1B29			;SLAVE REQUEST
MSTRQ=1B28			;MASTER REQUEST

;REGISTER 2

RMADR8=1B35			;ROM ADDR BIT 8
SEBCOV=1B34			;SLVE END ON BC OVFL EN
MEMCOV=1B33			;MSTR END ON MC OVFL EN
MEONFE=1B32			;MSTR END ON FMTR END EN
SRHDOF=1B29			;SLVE REQ HLDOFF
MRHDOF=1B28			;MASTER REQ HLDOFF

;REGISTER 3

NSEXFR=1B34			;NOT SLVE END XFER
NMEXFR=1B33			;NOT MSTR END XFER
NFEXFR=1B32			;NOT FMTR END XFER

;REGISTER 4 (MASSBUS COUNTER 7-0 - MCLO)

MCLOBT=377B35			;BITS 7-0 OF MASSBUS COUNTER

;REGISTER 5 (MASSBUS COUNTER 15-8 - MCHI)

MCHIBT=377B35			;BITS 15-8 OF MASSBUS COUNTER

;REGISTER 6 (BYTE COUNTER 7-0 - BCLO)

BCLOBT=377B35			;BITS 7-0 OF BYTE COUNTER

;REGISTER 7 (BYTE COUNTER 15-8 - BCHI)

BCHIBT=377B35			;BITS 15-8 OF BYTE COUNTER

;REGISTER 10 (DF ROM ADR 7-0 - DFRMAD)

RMADLO=377B35			;BITS 7-0 OF DF ROM ADDRESS

;REGISTER 11 (DF ROM DATA 7-0 - RMDALO)

RDLOBT=377B35			;BITS 7-0 OF DF ROM DATA

;REGISTER 12 (DF ROM DATA 15-8 - RMDAHI)

RDLOBT=377B35			;BITS 15-8 OF DF ROM DATA

;REGISTER 13 (ASSEMBLY REGISTER 7-0 - ARLO)

ARLOBT=377B35			;BITS 7-0 OF ASSEMBLY REGISTER

;REGISTER 14 (ASSEMBLY REGISTER 15-8 - ARHI)

ARHIBT=377B35			;BITS 15-8 OF ASSEMBLY REGISTER

;REGISTER 15

AR1716=3B35			;BITS 17-16 OF ASSEMBLY REGISTER
NCLRAR=1B33			;NOT CLEAR ASSEMBLY REG
NENMDM=1B32			;NOT ENABLE MUX/DEMUX
LDCB=1B31			;LOAD CHANNEL BUFFER
LDSB=1B30			;LOAD SILO BUFFER
EXTRUN=1B29			;EXTEND RUN

;REGISTER 16

SLVEPE=1B35			;SLVE PARITY ERROR
MSTRPE=1B34			;MSTR PARITY ERROR
NCLRN=1B33			;NOT CLR RUN
NOTRUN=1B32			;NOT RUN
DFCPH0=1B31			;DF CLK PH 0
DFCPH1=1B30			;DF CLK PH 1
NRNDAT=1B29			;NOT RUN DATA

;REGISTER 17

SLVRDY=1B35			;SLAVE RDY
SLRDY1=1B34			;SLAVE RDY DLY 1
SLRDY2=1B33			;SLAVE RDY DLY 2
MSTRDY=1B32			;MASTER RDY
MSRDY1=1B31			;MASTER RDY DLY 1
MSRDY2=1B30			;MASTER RDY DLY 2

;DEFINE SOME CHANNEL BUS INTERFACE REGISTERS WHICH ARE REFERENCED

CSR0=0
CSR1=1
TOR0=2
TOR1=3
DRLO=6
CBILO=7
BORLO=11
CLKDRL=6			;WRITE TO REG 6 CLOCKS DRLO REG
SLAK25=4			;WRITE TO REG 4 GENERATES "SLVE ACK DL25"

;DEFINE SOME CHANNEL BUS INTERFACE REGISTER BITS WHICH ARE USED

CHANL=1B35			;CHANNEL MODE BIT
LOOPEN=1B33			;LOOP ENABLE BIT
DISACK=1B32			;DIAG SLVE ACK
EVPAR=1B30			;EVEN PARITY FORCED
STAINL=1B35			;STA IN LOOPED BACK
SRVINL=1B28			;SRV IN LOOPED BACK
CLRFLG=1B34			;CLEARS REG 0 FLAGS

;ROM ADDRESSES WITH DIAGNOSTIC DATA

ZERADR=340			;ADDR OF 1ST ROM LOC AFTER OPERATIONAL PROGRAMS
DIAGAD=310			;ADDR OF 1ST DIAG ROM LOC

DMXSHF=310
MUXSHF=314

ZEROS=320
ONES=321

CC0=322
CC1=MSK0
CC2=323
CC4=324
CC5=325
CC8=326

MSK0=327
MSK1=330
MSK2=331
MSK3=332
MSK4=333
MSK5=334
MSK6=335
MSK7=336
MSK8=337
MSK1S=MSHF0

DSHF0=340
DSHF1=341
DSHF2=342
DSHF3=343
DSHF4=344
DSHF5=345
DSHF6=346
DSHF7=347
DSHF10=350
DSHF11=351
DSHF12=352
DSHF13=353
DSHF14=354
DSHF15=355
DSHF16=356
DSHF17=357

MSHF0=360
MSHF1=361
MSHF2=362
MSHF3=363
MSHF4=364
MSHF5=365
MSHF6=366
MSHF7=367
MSHF10=370
MSHF11=371
MSHF12=372
MSHF13=373
MSHF14=374
MSHF15=375
MSHF16=376
MSHF17=377

;OPERATIONAL ROM PROGRAMS

WINCM=0
RINCMF=10
RINCR1=27
RINCR2=22
RINCR3=21
RINCR4=20
WCDMP=30
RCDMPF=40
RCDMR1=57
RCDMR2=53
RCDMR3=52
RCDMR4=51
RCDMR5=50
WHIDN=60
RHIDNF=100
RHIDR1=137
RHIDR2=131
RHIDR3=130
RHIDR4=127
RHIDR5=136
RHIDR6=123
RHIDR7=122
RHIDR8=121
RHIDR9=120
WASC6=140
RASC6F=150
RAS6R1=177
RAS6R2=176
RAS6R3=163
RAS6R4=162
RAS6R5=161
RAS6R6=160
WAS71=200
RAS71F=210
RA71R1=227
RA71R2=223
RA71R3=222
RA71R4=221
RA71R5=220
WAS72=230
RAS72F=240
RA72R1=257
RA72R2=253
RA72R3=252
RA72R4=251
RA72R5=250
WEM1=260
REM1F=264
REM1R1=271
REM1R2=270
WEM2=274
REM2F=300
REM2R1=305
REM2R2=304
WCOBOL=310
RCOBLF=320
RCBLR1=337
RCBLR2=332
RCBLR3=331
RCBLR4=330

;DEFINE RHDATA IN ORDER TO BE ABLE TO USE WRITE, READ, AND READB MACROS.
RHDATA=1

;DEFINE CATAB IN ORDER TO BE ABLE TO USE "ERRORD" CALLS

CATAB=1