*DECK XDPIP
IDENT XDPIP
B1=1
SST
ENTRY XDPIP
EXT XTRACE
EXT RPVPBLK
*#
*1DC XDPIP
*
* 1. PROC NAME AUTHOR DATE
* XDPIP J.C. LEE 80/04/15
* L.T.NGUYEN 82/02/02
*
* 2. FUNCTIONAL DESCRIPTION.
* DUMP NPU DRIVER PIP-S PPU MEMORY TO FILE ZZZZZPP.
*
* 3. METHOD USED.
* IF PIP DUMPS EXIST:
* OPEN ZZZZZPP FILE
* WRITE FILE HEADER TO FILE
* WRITE PIP PPU MEMORY DUMP(S) TO FILE
* CLOSE FILE
* CALL REPRIEVE RESET FUNCTION TO RESET PREVIOUS ERROR FLAGS
*
* 4. ENTRY PARAMETERS.
* A1 = ADDRESS OF FWA OF PIP DUMP AREA
*
* 5. EXIT PARAMETERS.
* NONE
*
* 6. COMDECKS USED.
* LPMCOM
*
* 7. ROUTINES CALLED.
* XTRACE
*
* 8. DAYFILE MESSAGES.
* NONE
*
*#
*CALL MACDEF
*CALL INPARU
ZPFET VFD 42/7LZZZZZPP,4/0,4/0,10/1
FIRST VFD 36/0,6/1,18/0
IN VFD 42/0,18/0
OUT VFD 42/0,18/0
LIMIT VFD 12/0,12/0,18/0,18/0
VFD 60/0
*
* LOCAL VARIABLES
*
*
* LPMCOM COMDECK IS USED BY THE NIP ROUTINE - XDPIP TO FORMAT
* THE PIP DUMP FILE ZZZZZPP, AND BY THE UTILITY PROGRAM -
* LISTPPM TO ANALYZE THE PIP DUMP FILE.
*
PDFHDRL EQU 3 PIP DUMP FILE HEADER LENGTH
PDFID EQU 0 INDEX TO DUMP FILE HEADER-ID WORD
PDFDATE EQU 1 INDEX TO DUMP FILE HEADER-DATE WORD
PDFTIME EQU 2 INDEX TO DUMP FILE HEADER-TIME WORD
PDFHDR DATA 10HPIP DUMP PIP DUMP FILE IDENTIFIER
*
* PIP DUMP RECORD HEADER HAS THE FOLLOWING FORMAT,
*
* PDR HEADER - 6/PDRID, 18/PDRBS, 24/0, 12/PIPORD
*
* WHERE PDRID = PDR BLOCK IDENTIFIER
* PDRBS = PDR BLOCK SIZE
* PIPORD = PIP ORDINAL OF PIP IN PDR
*
PDRHDRL EQU 1 PIP DUMP RECORD HEADER LENGTH
PDRID EQU 48
PDBUFL EQU 820+PDRHDRL
PDBFWA BSSZ 1
MEMPAR BSSZ 1
CURFL BSSZ 1
NUMAPIP BSSZ 1 NUMBER OF ACTIVE PIPS
*
XDPIP BSSZ 1 ENTRY/EXIT
IFEQ DEBUG,1,6
SX6 A1
SA6 TEMP
SX1 XDPIPN
RJ XTRACE RECORD CALL
SA1 TEMP
SA1 X1
SB1 1
*
SA2 A1+1 ADDR OF SECOND PARAMETER
SA1 X1 (X1) = FWA OF PIP DUMP AREA
ZR X1,XDPIPX RETURN IF NO PIP DUMP EXISTS
BX6 X1
SA6 PDBFWA SET PIP DUMP AREA FWA
SA1 X2 NUMBER OF ACTIVE PIPS
BX6 X1
SA6 NUMAPIP
*
MEMORY CM,MEMPAR,R,,NA
SA1 MEMPAR
AX1 30 (X1) = NIP-S FL
BX6 X1
SA6 CURFL
SB2 PDFHDRL ZZZZZPP FILE HEADER SIZE
*
XDPIP0 BSS 0
SA2 PDBFWA (X2) = FWA OF PDB
SX4 X2+B2
SB4 X4+PDBUFL (B4) = NEXT PDB FWA
SA5 CURFL
SB5 X5
GE B5,B4,XDPIP1
NZ B2,XDPIPX RETURN IF NO ZZZZZPP FILE YET
*
CLOSE ZPFET,NR,R
XDPIPX BSS 0
REPRIEVE RPVPBLK,RESET,77B
EQ XDPIP RETURN AFTER CLOSING ZZZZZPP
*
XDPIP1 BSS 0
SA3 FIRST
MX0 42
BX5 X0*X3
BX6 X5+X2
SA6 A3
SX6 B4
SA3 LIMIT
SA6 PDBFWA SAVE NEXT PDB FWA
BX5 X3*X0
BX7 X5+X6
SA7 A3 SET LIMIT POINTER
BX6 X2
SA6 OUT SET OUT POINTER
EQ B2,B0,XDPIP2
SA6 IN SET FIRST=IN=OUT
OPEN ZPFET,WRITE
SA3 PDFHDR
MX0 54
BX3 X0*X3 NUMBER OF ACTIVE PIP INTO HEADER
SA4 NUMAPIP
BX3 X3+X4
BX6 X3
SA3 IN
SX3 X3 (X3) = IN POINTER
SA6 X3
SX4 X3+PDFDATE
DATE X4 GET DATE
SA3 IN
SX3 X3
SX4 X3+PDFTIME
CLOCK X4 GET CLOCK TIME
*
XDPIP2 BSS 0
SA4 LIMIT
SB4 X4
SX6 B4-1
SA6 IN SET IN=LIMIT-1
WRITER ZPFET,R
SB2 B0
EQ XDPIP0 CONTINUE TO PROCESS NEXT DUMP AREA
XDPIPN DATA L*XDPIP*
TEMP BSS 1
END