*         CTEXT  CTP$DFT_SAVE_PP_REGISTERS
*
*         THIS DECK CONTAINS THE ROUTINE WHICH WILL SAVE THE P,Q,K,A PP
*         REGISTERS IN THE DFT PP REGISTER SAVE BUFFER. THIS CODE WILL
*         ONLY WORK ON VERSION 5 OR GREATER OF THE DFT CENTRAL MEMORY
*         INTERFACE. TWO COPIES OF AN INDIVIDUAL PPS REGISTERS ARE KEPT
*         ADJACENT TO EACH OTHER. THESE REPRESENT THE LAST PASS SNAPSHOT AND
*         THE CURRENT PASS SNAPSHOT. THE GLOBAL VARIABLE PDSO IS A TOGGLE
*         FOR WHICH SET OF REGISTER DATA TO WRITE NEXT.


 PPTN     CON    0           USED BY ROUTINE DPR TO STORE PP NUMBER


          ROUTINE SRD

          LDN    VER4        CHECK FOR VERSION 4 OR LATER
          RJM    VCK         CHECK VERSION
          MJP    SRDX        IF EARLIER THAN VERSION 4
          LDC    LDNI
          STM    DFTF        RESET FLAG
          LDN    PRDP
          RJM    IDA         INCREMENT DFT ADDRESS
          CRDL   W4          PP SAVE AREA POINTER
          LRD    W5
          LDDL   W4
          ADC    RR
          CRDL   CM          PP SAVE AREA HEADER WORD
          AODL   W4          GET PAST THE HEADER WORD
          LDM    IOUN
          ZJN    SRD1        IF PRIMARY IOU
          LDN    VER5
          RJM    VCK         CHECK VERSION
          MJP    SRDX        IF NOT VERSION 5 OR GREATER DONT SAVE REGISTERS IN SECONDARY
          LDDL   CM+3        GET OFFSET TO SECONDARY BUFFER
          RADL   W4
 SRD1     LDM    PDSO        PP DUMP SELECT OFFSET
          RADL   W4          SELECT WHICH SAVE AREA TO USE
 SRD2     RJM    DPR         DUMP PP REGISTERS
          LDM    PPTN
          SBN    31
          PJP    SRD4        IF DONE DUMPING PP REGISTERS
          AOM    PPTN
          SBN    12
          MJN    SRD3        IF IN LOWER BARREL(S)
          LDM    PPTN
          SBN    20
          PJN    SRD3        IF IN UPPER BARREL(S)
          LDN    20
          STM    PPTN
 SRD3     LDN    2
          RADL   W4          GET TO NEXT PP SAVE AREA
          UJN    SRD2

 SRD4     LDM    IOUM        IOU MODEL NUMBER
          LMC    0#42
          ZJN    SRD4.5      IF MODEL 42 IOU
          LDM    IOUM        IOU MODEL NUMBER
          LMC    0#40
          NJP    SRD6        IF NOT I4 IOU
 SRD4.5   READMR RDATA,I0CC,OIMR
          LDM    RDATA+7
          SHN    10D
          PJP    SRD6        IF NO CIO PPS
          LDC    0#100
          STML   PPTN        RESET PP NUMBER FOR CIO PPS
          LDN    2           ADVANCE TO START OF CIO REGISTER SAVE AREA
          RADL   W4
 SRD5     RJM    DPR         DUMP PP REGISTERS
          LDM    PPTN
          LPC    0#FF
          SBN    11
          PJN    SRD6        IF DONE
          AOML   PPTN
          LDN    2
          RADL   W4          GET TO NEXT PP SAVE AREA
          UJN    SRD5

 SRD6     LDM    PDSO
          LMN    2
          STM    PDSO        TOGGLE SELECTOR
          UJP    SRDX        RETURN

*         END    CTP$DFT_SAVE_PP_REGISTERS
