home *** CD-ROM | disk | FTP | other *** search
- ;*******************************************************************
- ; Commodore-Amiga, Inc.
- ; cia.i -- definitions for the registers and bits in the Complex Interface
- ; Adapter (CIA) chip
- ;
- ; $Header: cia.i,v 27.1 85/06/24 14:42:49 neil Exp $
- ;
- ; $Locker: $
- ;
- ;*******************************************************************
-
- IFND HARDWARE_CIA_I@
- HARDWARE_CIA_I@ = 1
-
- ;
- ; _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)
-
- ENDIF
- END
-