[Contents] [Index] [Help] [Retrace] [browse <] [Browse >]

        IFND    HARDWARE_CIA_I
HARDWARE_CIA_I  SET     1
**
**      $Filename: hardware/cia.i $
**      $Release: 2.04 Includes, V37.4 $
**      $Revision: 36.2 $
**      $Date: 90/07/10 $
**
**      registers and bits in the Complex Interface Adapter (CIA) chip
**
**      (C) Copyright 1985-1999 Amiga, Inc.
**          All Rights Reserved
**

*
* _ciaa is on an ODD address (e.g. the low byte) -- $bfe001
* _ciab is on an EVEN address (e.g. the high byte) -- $bfd000
*
* do this to get the definitions:
*    XREF _ciaa
*    XREF _ciab
*


* cia register offsets
ciapra            EQU   $0000
ciaprb            EQU   $0100
ciaddra   EQU   $0200
ciaddrb   EQU   $0300
ciatalo   EQU   $0400
ciatahi   EQU   $0500
ciatblo   EQU   $0600
ciatbhi   EQU   $0700
ciatodlow         EQU   $0800
ciatodmid         EQU   $0900
ciatodhi          EQU   $0A00
ciasdr            EQU   $0C00
ciaicr            EQU   $0D00
ciacra            EQU   $0E00
ciacrb            EQU   $0F00

* interrupt control register bit numbers
CIAICRB_TA        EQU   0
CIAICRB_TB        EQU   1
CIAICRB_ALRM      EQU   2
CIAICRB_SP        EQU   3
CIAICRB_FLG       EQU   4
CIAICRB_IR        EQU   7
CIAICRB_SETCLR    EQU   7

* control register A bit numbers
CIACRAB_START     EQU   0
CIACRAB_PBON      EQU   1
CIACRAB_OUTMODE   EQU   2
CIACRAB_RUNMODE   EQU   3
CIACRAB_LOAD      EQU   4
CIACRAB_INMODE    EQU   5
CIACRAB_SPMODE    EQU   6
CIACRAB_TODIN     EQU   7

* control register B bit numbers
CIACRBB_START     EQU   0
CIACRBB_PBON      EQU   1
CIACRBB_OUTMODE   EQU   2
CIACRBB_RUNMODE   EQU   3
CIACRBB_LOAD      EQU   4
CIACRBB_INMODE0   EQU   5
CIACRBB_INMODE1   EQU   6
CIACRBB_ALARM     EQU   7

* interrupt control register bit masks
CIAICRF_TA        EQU   (1<<0)
CIAICRF_TB        EQU   (1<<1)
CIAICRF_ALRM      EQU   (1<<2)
CIAICRF_SP        EQU   (1<<3)
CIAICRF_FLG       EQU   (1<<4)
CIAICRF_IR        EQU   (1<<7)
CIAICRF_SETCLR    EQU   (1<<7)

* control register A bit masks
CIACRAF_START     EQU   (1<<0)
CIACRAF_PBON      EQU   (1<<1)
CIACRAF_OUTMODE   EQU   (1<<2)
CIACRAF_RUNMODE   EQU   (1<<3)
CIACRAF_LOAD      EQU   (1<<4)
CIACRAF_INMODE    EQU   (1<<5)
CIACRAF_SPMODE    EQU   (1<<6)
CIACRAF_TODIN     EQU   (1<<7)

* control register B bit masks
CIACRBF_START     EQU   (1<<0)
CIACRBF_PBON      EQU   (1<<1)
CIACRBF_OUTMODE   EQU   (1<<2)
CIACRBF_RUNMODE   EQU   (1<<3)
CIACRBF_LOAD      EQU   (1<<4)
CIACRBF_INMODE0   EQU   (1<<5)
CIACRBF_INMODE1   EQU   (1<<6)
CIACRBF_ALARM     EQU   (1<<7)

* control register B INMODE masks
CIACRBF_IN_PHI2   EQU   0
CIACRBF_IN_CNT    EQU   (CIACRBF_INMODE0)
CIACRBF_IN_TA     EQU   (CIACRBF_INMODE1)
CIACRBF_IN_CNT_TA EQU   (CIACRBF_INMODE0!CIACRBF_INMODE1)


*
* Port definitions -- what each bit in a cia peripheral register is tied to
*

* ciaa port A (0xbfe001)
CIAB_GAMEPORT1    EQU   (7)   * gameport 1, pin 6 (fire button*)
CIAB_GAMEPORT0    EQU   (6)   * gameport 0, pin 6 (fire button*)
CIAB_DSKRDY       EQU   (5)   * disk ready*
CIAB_DSKTRACK0    EQU   (4)   * disk on track 00*
CIAB_DSKPROT      EQU   (3)   * disk write protect*
CIAB_DSKCHANGE    EQU   (2)   * disk change*
CIAB_LED          EQU   (1)   * led light control (0==>bright)
CIAB_OVERLAY      EQU   (0)   * memory overlay bit

* ciaa port B (0xbfe101) -- parallel port

* ciab port A (0xbfd000) -- serial and printer control
CIAB_COMDTR       EQU   (7)   * serial Data Terminal Ready*
CIAB_COMRTS       EQU   (6)   * serial Request to Send*
CIAB_COMCD        EQU   (5)   * serial Carrier Detect*
CIAB_COMCTS       EQU   (4)   * serial Clear to Send*
CIAB_COMDSR       EQU   (3)   * serial Data Set Ready*
CIAB_PRTRSEL      EQU   (2)   * printer SELECT
CIAB_PRTRPOUT     EQU   (1)   * printer paper out
CIAB_PRTRBUSY     EQU   (0)   * printer busy

* ciab port B (0xbfd100) -- disk control
CIAB_DSKMOTOR     EQU   (7)   * disk motorr*
CIAB_DSKSEL3      EQU   (6)   * disk select unit 3*
CIAB_DSKSEL2      EQU   (5)   * disk select unit 2*
CIAB_DSKSEL1      EQU   (4)   * disk select unit 1*
CIAB_DSKSEL0      EQU   (3)   * disk select unit 0*
CIAB_DSKSIDE      EQU   (2)   * disk side select*
CIAB_DSKDIREC     EQU   (1)   * disk direction of seek*
CIAB_DSKSTEP      EQU   (0)   * disk step heads*

* ciaa port A (0xbfe001)
CIAF_GAMEPORT1    EQU   (1<<7)
CIAF_GAMEPORT0    EQU   (1<<6)
CIAF_DSKRDY       EQU   (1<<5)
CIAF_DSKTRACK0    EQU   (1<<4)
CIAF_DSKPROT      EQU   (1<<3)
CIAF_DSKCHANGE    EQU   (1<<2)
CIAF_LED          EQU   (1<<1)
CIAF_OVERLAY      EQU   (1<<0)

* ciaa port B (0xbfe101) -- parallel port

* ciab port A (0xbfd000) -- serial and printer control
CIAF_COMDTR       EQU   (1<<7)
CIAF_COMRTS       EQU   (1<<6)
CIAF_COMCD        EQU   (1<<5)
CIAF_COMCTS       EQU   (1<<4)
CIAF_COMDSR       EQU   (1<<3)
CIAF_PRTRSEL      EQU   (1<<2)
CIAF_PRTRPOUT     EQU   (1<<1)
CIAF_PRTRBUSY     EQU   (1<<0)

* ciab port B (0xbfd100) -- disk control
CIAF_DSKMOTOR     EQU   (1<<7)
CIAF_DSKSEL3      EQU   (1<<6)
CIAF_DSKSEL2      EQU   (1<<5)
CIAF_DSKSEL1      EQU   (1<<4)
CIAF_DSKSEL0      EQU   (1<<3)
CIAF_DSKSIDE      EQU   (1<<2)
CIAF_DSKDIREC     EQU   (1<<1)
CIAF_DSKSTEP      EQU   (1<<0)

        ENDC    ; HARDWARE_CIA_I