          SPACE  5
** BMGEN MACRO
** THIS IS A SUPPORT MACRO TO GENERATE A ONE BIT MASK AS
** SPECIFIED BY BIT.
          SPACE  2
BMGEN     MACRO  BIT
MASK$     SET    1
          DUP    BIT
MASK$     SET    MASK$+MASK$
          ENDD
          ENDM
          SPACE  5
** DMA CONTROL REGISTER
*  THE CONTROL REGISTER IS USED TO SELECT THE DIFFERENT
*  OPERATING MODES OF THE IPI ADAPTER.
          SPACE  2
 DMACR    RECORD PACKED
          ALIGN  0,16
 SBF      SUBRANGE 0,511     SINGLE BIT FIELDS
 FEC      SUBRANGE 0,127     FORCE ERROR CODES
          SPACE  2
 EFEC     EQU    7           ENABLE FORCD ERROR CODES
 PAUSE    EQU    8           ENABLE PAUSE
 TPRIME   EQU    9           ENABLE T PRIME EMPTY FLAG
 TIP      EQU    10          ENABLE TRANSFER IN PROGRESS
 TEST     EQU    12          TEST MODE
 DISTO    EQU    13          DISABLE TRANSFER TIMEOUT
 DCMI     EQU    14          ENABLE DOUBLE CMI SLOT
 CACHE    EQU    15          ENABLE CACHE INVALIDATE
          SPACE  2
          BMGEN  EFEC
 K.EFEC   EQU    MASK$
          BMGEN  PAUSE
 K.PAUSE  EQU    MASK$
          BMGEN  TPRIME
 K.TPRIME EQU    MASK$
          BMGEN  TIP
 K.TIP    EQU    MASK$
          BMGEN  TEST
 K.TEST   EQU    MASK$
          BMGEN  DISTO
 K.DISTO  EQU    MASK$
          BMGEN  DCMI
 K.DCMI   EQU    MASK$
          BMGEN  CACHE
 K.CACHE  EQU    MASK$
          SPACE  2
 DMACR    RECEND
          SPACE  5
** DMA OPERATIONAL STATUS  REGISTER
*  THE OPERATIONAL STATUS REGISTER IS A READ ONLY REGISTER WHICH
*  PROVIDES INFORMATION REGARDING THE STATE OF THE ADAPTER AND
*  IPI CHANNEL.
          SPACE  2
 DMAOSR   RECORD PACKED
          ALIGN  0,16
 REG      PPWORD
*         BITS 10 THRU 15 ARE DEFINED FOR 10 MB CHANNEL ONLY
 PEFR     EQU    15          FUNCTION REGISTER PARITY ERROR
 PECR     EQU    14          CONTROL REGISTER PARITY ERROR
 PEDRI    EQU    13          DATA REGISTER INPUT PARITY ERROR
 PEDRO    EQU    12          DATA REGISTER OUTPUT PARITY ERROR
 PETRC    EQU    11          T REGISTER COUNTER PARITY ERROR
 PEDTC    EQU    10          DEADMAN TIMER COUNTER PARITY ERROR
*         BIT 8 IS DEFINED FOR 25 MB CHANNEL ONLY
 DMACOM   EQU    8           DMA TRANSFER COMPLETE
 DMAIN    EQU    7           DMA TRANSFER IN PROGRESS
 IPIIN    EQU    6           IPI TRANSFER IN PROGRESS
 OUTM     EQU    5           OUTPUT MODE
*         BIT 4 IS DEFINED FOR 25 MB CHANNEL ONLY
 PAUS     EQU    4           CHANNEL PAUSE
 DMAMOD   EQU    3           DMA/IPI MODE
 ICIIN    EQU    2           PP/IPI MODE
 TEMP     EQU    1           T PRIME REGISTER EMPTY
 CHIN     EQU    0           CHANNEL TRANSFER IN PROGRESS
          SPACE  2
          BMGEN  PEFR
 K.PEFR   EQU    MASK$
          BMGEN  PECR
 K.PECR   EQU    MASK$
          BMGEN  PEDRI
 K.PEDRI  EQU    MASK$
          BMGEN  PEDRO
 K.PEDRO  EQU    MASK$
          BMGEN  PETRC
 K.PETRC  EQU    MASK$
          BMGEN  PEDTC
 K.PEDTC  EQU    MASK$
          BMGEN  DMACOM
 K.DMACOM EQU    MASK$
          BMGEN  DMAIN
 K.DMAIN  EQU    MASK$
          BMGEN  IPIIN
 K.IPIIN  EQU    MASK$
          BMGEN  OUTM
 K.OUTM   EQU    MASK$
          BMGEN  PAUS
 K.PAUS   EQU    MASK$
          BMGEN  DMAMOD
 K.DMAMOD EQU    MASK$
          BMGEN  ICIIN
 K.ICIIN  EQU    MASK$
          BMGEN  TEMP
 K.TEMP   EQU    MASK$
          BMGEN  CHIN
 K.CHIN   EQU    MASK$
          SPACE  2
 DMAOSR   RECEND
          SPACE  5
**  DMA ERROR STATUS REGISTER
*   THE ERROR STATUS REGISTER PROVIDES INFORMATION IN THE EVENT
*   OF A HARDWARE DETECTABLE ERROR.
          SPACE  2
 DMAESR   RECORD PACKED
          ALIGN  0,16
 REG      PPWORD
          SPACE  2
 DMAOV    EQU    15          DMA COUNT OVERFLOW (25MB ONLY)
 ILLFN    EQU    14          ILLEGAL FUNCTION OR SEQUENCE
 CMERR    EQU    13          UNCORRECTED CENTRAL MEMORY ERROR
 CMREJ    EQU    12          CENTRAL MEMORY REJECT
 INVRC    EQU    11          INVALID RESPONSE CODE
 PERC     EQU    10          CM RESPONSE CODE PARITY ERROR
 PECMI    EQU    9           CMI READ DATA PARITY ERROR
 IPIER    EQU    8           IPI ERROR
 PEDMA    EQU    7           DMA REGISTER PARITY ERROR  (10MB ONLY)
 PEMAC    EQU    6           MAC STATUS PARITY ERROR
 TIMO     EQU    5           TIME OUT                   (10MB ONLY)
 DATER    EQU    4           DMA DATA ERROR
 PEBAS    EQU    3           BAS PARITY ERROR
 ZERR     EQU    2           Z ERROR                    (10MB ONLY)
 YERR     EQU    1           Y ERROR
 XERR     EQU    0           X ERROR
          SPACE  2
          BMGEN  DMAOV
 K.DMAOV  EQU    MASK$
          BMGEN  ILLFN
 K.ILLFN  EQU    MASK$
          BMGEN  CMERR
 K.CMERR  EQU    MASK$
          BMGEN  CMREJ
 K.CMREJ  EQU    MASK$
          BMGEN  INVRC
 K.INVRC  EQU    MASK$
          BMGEN  PERC
 K.PERC   EQU    MASK$
          BMGEN  PECMI
 K.PECMI  EQU    MASK$
          BMGEN  IPIER
 K.IPIER  EQU    MASK$
          BMGEN  PEDMA
 K.PEDMA  EQU    MASK$
          BMGEN  PEMAC
 K.PEMAC  EQU    MASK$
          BMGEN  TIMO
 K.TIMO   EQU    MASK$
          BMGEN  DATER
 K.DATER  EQU    MASK$
          BMGEN  PEBAS
 K.PEBAS  EQU    MASK$
          BMGEN  ZERR
 K.ZERR   EQU    MASK$
          BMGEN  YERR
 K.YERR   EQU    MASK$
          BMGEN  XERR
 K.XERR   EQU    MASK$
 DMAESR   RECEND
          SPACE  5
** IPI STATUS REGISTER
          SPACE  2
 IPISR    RECORD PACKED
          ALIGN  0,16
 STATUS   STRUCT 1
 BUSB     STRUCT 1
          SPACE  2
 ERROR    EQU    15          ERROR BIT
 ATTEN    EQU    14          ATTENTION IN
 NOTEM    EQU    13          BUFER NOT EMPTY
 SELO     EQU    12          SELECT OUT
 SLAI     EQU    11          SLAVE IN
 MASO     EQU    10          MASTER OUT
 SYNI     EQU    9           SYNC IN
 SYNO     EQU    8           SYNC OUT
 PAUSE    EQU    7           PAUSE
          SPACE  2
          BMGEN  ERROR
 K.ERROR  EQU    MASK$
          BMGEN  ATTEN
 K.ATTEN  EQU    MASK$
          BMGEN  NOTEM
 K.NOTEM  EQU    MASK$
          BMGEN  SELO
 K.SELO   EQU    MASK$
          BMGEN  SLAI
 K.SLAI   EQU    MASK$
          BMGEN  MASO
 K.MASO   EQU    MASK$
          BMGEN  SYNI
 K.SYNI   EQU    MASK$
          BMGEN  SYNO
 K.SYNO   EQU    MASK$
          BMGEN  PAUSE
 K.PAUSE  EQU    MASK$
 K.ALLIN  EQU    K.SELO+K.SLAI+K.MASO+K.SYNI+K.SYNO
          SPACE  2
 IPISR    RECEND
** IPI ERROR REGISTER
* DEFINE THE IPI ERROR REGISTER FOR 10MD CHANNEL
          SPACE  2
 IPIER    RECORD PACKED
          ALIGN  0,16
 IPIERR   PPWORD
          SPACE  2
 PEBC     EQU    15          BUFFER COUNTER PARITY ERROR
 PESC     EQU    13          SYNC COUNTER PARITY ERROR
 PEPC     EQU    12          PERIOD COUNTER PARITY ERROR
 PEFU     EQU    11          FUNCTION UPPER PARITY ERROR
 PEFL     EQU    10          FUNCTION LOWER PARITY ERROR
 LOSTD    EQU    7           LOST DATA
 PEDU     EQU    6           DATA UPPER PARITY ERROR
 PEDL     EQU    5           DATA LOWER PARITY ERROR
 SEQER    EQU    4           IPI SEQUENCE ERROR
 PEBUSA   EQU    3           BUS A PARITY ERROR
 PEBUSB   EQU    2           BUS B PARITY ERROR
 ILLF     EQU    1           ILLEGAL FUNCTION
          BMGEN  PEBC
 K.PEBC   EQU    MASK$
          BMGEN  PESC
 K.PESC   EQU    MASK$
          BMGEN  PEPC
 K.PEPC   EQU    MASK$
          BMGEN  PEFU
 K.PEFU   EQU    MASK$
          BMGEN  PEFL
 K.PEFL   EQU    MASK$
          BMGEN  LOSTD
 K.LOSTD  EQU    MASK$
          BMGEN  PEDU
 K.PEDU   EQU    MASK$
          BMGEN  PEDL
 K.PEDL   EQU    MASK$
          BMGEN  SEQER
 K.SEQER  EQU    MASK$
          BMGEN  PEBUSA
 K.PEBUSA EQU    MASK$
          BMGEN  PEBUSB
 K.PEBUSB EQU    MASK$
          BMGEN  ILLF
 K.ILLF   EQU    MASK$
 IPIER    RECEND

