home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / HITECH-C / Z8051H83.EXE / Z180.H < prev    next >
C/C++ Source or Header  |  1993-05-21  |  5KB  |  122 lines

  1. /*
  2.  *    Z180, Z80 KIO and NCR 72C81 CGMA definitions
  3.  *
  4.  *    Colin Weaver, HI-TECH Software        April 1991
  5.  *    Updated, May 1993
  6.  */
  7.  
  8. #ifndef    _Z180DEFS_
  9.  
  10. #define    _Z180DEFS_    1
  11.  
  12. #ifndef    PORT
  13. #define    PORT    static port unsigned char
  14. #endif    /* PORT */
  15.  
  16. /*
  17.  *    Z80 KIO addresses
  18.  *    (Default Setup for a Z84C90 KIO based at port address 0x0100)
  19.  */
  20.  
  21. #ifndef    KIOBASE
  22. #define    KIOBASE    0x100
  23. #endif
  24.  
  25. PORT    PIO_A_DATA    @ KIOBASE+0x00;    /* PIO port A */
  26. PORT    PIO_A_CMD    @ KIOBASE+0x01;
  27. PORT    PIO_B_DATA    @ KIOBASE+0x02;    /* PIO port B */
  28. PORT    PIO_B_CMD    @ KIOBASE+0x03;
  29. PORT    CTC0        @ KIOBASE+0x04;    /* CTC channel 0 */
  30. PORT    CTC1        @ KIOBASE+0x05;    /* CTC channel 1 */
  31. PORT    CTC2        @ KIOBASE+0x06;    /* CTC channel 2 */
  32. PORT    CTC3        @ KIOBASE+0x07;    /* CTC channel 3 */
  33. PORT    SIO_A_DATA    @ KIOBASE+0x08;    /* SIO channel A */
  34. PORT    SIO_A_CMD    @ KIOBASE+0x09;
  35. PORT    SIO_B_DATA    @ KIOBASE+0x0A;    /* SIO channel B */
  36. PORT    SIO_B_CMD    @ KIOBASE+0x0B;
  37. PORT    PIA_C_DATA    @ KIOBASE+0x0C;    /* PIA port C */
  38. PORT    PIA_C_CMD    @ KIOBASE+0x0D;
  39. PORT    KIO_CMD        @ KIOBASE+0x0E;    /* KIO cmd register */
  40.  
  41. /*
  42.  *    NCR 72C81 CRT controller addresses    (6845 (CGA/MDA/HGC) compatible)
  43.  */
  44.  
  45. PORT    XCR        @ 0x025A;    /* extended control register */
  46. PORT    M1M2CR        @ 0x025B;    /* M1/M1 control register */
  47. PORT    altXCR        @ 0x035A;    /* alternate address for XCR */
  48. PORT    altM1M2CR    @ 0x035B;    /* alternate address for M1M2 */
  49.  
  50. PORT    M_INDEX        @ 0x3B4;    /* 6845 index register */
  51. PORT    M_DATA        @ 0x3B5;    /* 6845 data register */
  52. PORT    M_MODE        @ 0x3B8;    /* mode control register */
  53. PORT    M_STATUS    @ 0x3BA;    /* CRT status register */
  54. PORT    M_MEMMODE    @ 0x3BF;    /* memory mode register */
  55.  
  56. PORT    C_INDEX        @ 0x3D4;
  57. PORT    C_DATA        @ 0x3D5;
  58. PORT    C_MODE        @ 0x3D8;
  59. PORT    C_COLOUR    @ 0x3D9;    /* colour select register */
  60. PORT    C_STATUS    @ 0x3DA;
  61.  
  62. /*
  63.  *    Z180 internal port addresses
  64.  */
  65.  
  66. #ifndef    IOB_180
  67. #define    IOB_180    0
  68. #endif
  69.  
  70. PORT    CNTLA0    @ IOB_180+0x00;        /* ASCI control register A channel 0 */
  71. PORT    CNTLA1    @ IOB_180+0x01;        /* ASCI control register A channel 1 */
  72. PORT    CNTLB0    @ IOB_180+0x02;        /* ASCI control register B channel 0 */
  73. PORT    CNTLB1    @ IOB_180+0x03;        /* ASCI control register B channel 0 */
  74. PORT    STAT0    @ IOB_180+0x04;        /* ASCI status register channel 0 */
  75. PORT    STAT1    @ IOB_180+0x05;        /* ASCI status register channel 1 */
  76. PORT    TDR0    @ IOB_180+0x06;        /* ASCI transmit data reg, channel 0 */
  77. PORT    TDR1    @ IOB_180+0x07;        /* ASCI transmit data reg, channel 1 */
  78. PORT    TSR0    @ IOB_180+0x08;    /* Z180    ASCI receive data reg, channel 0 */
  79. PORT    RDR0    @ IOB_180+0x08;    /* 64180   ASCI receive data reg, channel 0 */
  80. PORT    TSR1    @ IOB_180+0x09;    /* Z80     ASCI receive data reg, channel 1 */
  81. PORT    RDR1    @ IOB_180+0x09;    /* 64180   ASCI receive data reg, channel 0 */
  82. PORT    CNTR    @ IOB_180+0x0A;        /* CSI/0 control register */
  83. PORT    TRDR    @ IOB_180+0x0B;        /* CSI/0 transmit/receive data reg */
  84. PORT    TMDR0L    @ IOB_180+0x0C;        /* Timer data register, channel 0L */
  85. PORT    TMDR0H    @ IOB_180+0x0D;        /* Timer data register, channel 0H */
  86. PORT    RLDR0L    @ IOB_180+0x0E;        /* Timer reload register, channel 0L */
  87. PORT    RLDR0H    @ IOB_180+0x0F;        /* Timer reload register, channel 0H */
  88. PORT    TCR    @ IOB_180+0x10;        /* Timer control register */
  89. PORT    TMDR1L    @ IOB_180+0x14;        /* Timer data register, channel 1L */
  90. PORT    TMDR1H    @ IOB_180+0x15;        /* Timer data register, channel 1H */
  91. PORT    RLDR1L    @ IOB_180+0x16;        /* Timer reload register, channel 1L */
  92. PORT    RLDR1H    @ IOB_180+0x17;        /* Timer reload register, channel 1H */
  93. PORT    FRC    @ IOB_180+0x18;        /* Free running counter */
  94. PORT    SAR0L    @ IOB_180+0x20;        /* DMA source address reg, channel 0L */
  95. PORT    SAR0H    @ IOB_180+0x21;        /* DMA source address reg, channel 0H */
  96. PORT    SAR0B    @ IOB_180+0x22;        /* DMA source address reg, channel 0B */
  97. PORT    DAR0L    @ IOB_180+0x23;        /* DMA dest address reg, channel 0L */
  98. PORT    DAR0H    @ IOB_180+0x24;        /* DMA dest address reg, channel 0H */
  99. PORT    DAR0B    @ IOB_180+0x25;        /* DMA dest address reg, channel 0B */
  100. PORT    BCR0L    @ IOB_180+0x26;        /* DMA byte count reg, channel 0L */
  101. PORT    BCR0H    @ IOB_180+0x27;        /* DMA byte count reg, channel 0H */
  102. PORT    MAR1L    @ IOB_180+0x28;        /* DMA memory address reg, channel 1L */
  103. PORT    MAR1H    @ IOB_180+0x29;        /* DMA memory address reg, channel 1H */
  104. PORT    MAR1B    @ IOB_180+0x2A;        /* DMA memory address reg, channel 1B */
  105. PORT    IAR1L    @ IOB_180+0x2B;        /* DMA I/O address reg, channel 1L */
  106. PORT    IAR1H    @ IOB_180+0x2C;        /* DMA I/O address reg, channel 1H */
  107. PORT    BCR1L    @ IOB_180+0x2E;        /* DMA byte count reg, channel 1L */
  108. PORT    BCR1H    @ IOB_180+0x2F;        /* DMA byte count reg, channel 1H */
  109. PORT    DSTAT    @ IOB_180+0x30;        /* DMA status register */
  110. PORT    DMODE    @ IOB_180+0x31;        /* DMA mode register */
  111. PORT    DCNTL    @ IOB_180+0x32;        /* DMA/WAIT control register */
  112. PORT    IL    @ IOB_180+0x33;        /* Interrupt vector low register */
  113. PORT    ITC    @ IOB_180+0x34;        /* INT/TRAP control register */
  114. PORT    RCR    @ IOB_180+0x36;        /* Refresh control register */
  115. PORT    CBR    @ IOB_180+0x38;        /* MMU common base register */
  116. PORT    BBR    @ IOB_180+0x39;        /* MMU bank base register */
  117. PORT    CBAR    @ IOB_180+0x3A;        /* MMU common/bank area register */
  118. PORT    OMCR    @ IOB_180+0x3E;        /* Operation mode control register */
  119. PORT    ICR    @ 0x3F;            /* I/O base control register */
  120.  
  121. #endif    /* _Z180DEFS_ */
  122.