| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 | 
							- /*
 
- ** asm-m68k/amigahw.h -- This header defines some macros and pointers for
 
- **                    the various Amiga custom hardware registers.
 
- **                    The naming conventions used here conform to those
 
- **                    used in the Amiga Hardware Reference Manual, 3rd Edition
 
- **
 
- ** Copyright 1992 by Greg Harp
 
- **
 
- ** This file is subject to the terms and conditions of the GNU General Public
 
- ** License.  See the file COPYING in the main directory of this archive
 
- ** for more details.
 
- **
 
- ** Created: 9/24/92 by Greg Harp
 
- */
 
- #ifndef _M68K_AMIGAHW_H
 
- #define _M68K_AMIGAHW_H
 
- #include <linux/ioport.h>
 
-     /*
 
-      *  Different Amiga models
 
-      */
 
- #define AMI_UNKNOWN	(0)
 
- #define AMI_500		(1)
 
- #define AMI_500PLUS	(2)
 
- #define AMI_600		(3)
 
- #define AMI_1000	(4)
 
- #define AMI_1200	(5)
 
- #define AMI_2000	(6)
 
- #define AMI_2500	(7)
 
- #define AMI_3000	(8)
 
- #define AMI_3000T	(9)
 
- #define AMI_3000PLUS	(10)
 
- #define AMI_4000	(11)
 
- #define AMI_4000T	(12)
 
- #define AMI_CDTV	(13)
 
- #define AMI_CD32	(14)
 
- #define AMI_DRACO	(15)
 
-     /*
 
-      *  Chipsets
 
-      */
 
- extern unsigned long amiga_chipset;
 
- #define CS_STONEAGE	(0)
 
- #define CS_OCS		(1)
 
- #define CS_ECS		(2)
 
- #define CS_AGA		(3)
 
-     /*
 
-      *  Miscellaneous
 
-      */
 
- extern unsigned long amiga_eclock;	/* 700 kHz E Peripheral Clock */
 
- extern unsigned long amiga_colorclock;	/* 3.5 MHz Color Clock */
 
- extern unsigned long amiga_chip_size;	/* Chip RAM Size (bytes) */
 
- extern unsigned char amiga_vblank;	/* VBLANK Frequency */
 
- #define AMIGAHW_DECLARE(name)	unsigned name : 1
 
- #define AMIGAHW_SET(name)	(amiga_hw_present.name = 1)
 
- #define AMIGAHW_PRESENT(name)	(amiga_hw_present.name)
 
- struct amiga_hw_present {
 
-     /* video hardware */
 
-     AMIGAHW_DECLARE(AMI_VIDEO);		/* Amiga Video */
 
-     AMIGAHW_DECLARE(AMI_BLITTER);	/* Amiga Blitter */
 
-     AMIGAHW_DECLARE(AMBER_FF);		/* Amber Flicker Fixer */
 
-     /* sound hardware */
 
-     AMIGAHW_DECLARE(AMI_AUDIO);		/* Amiga Audio */
 
-     /* disk storage interfaces */
 
-     AMIGAHW_DECLARE(AMI_FLOPPY);	/* Amiga Floppy */
 
-     AMIGAHW_DECLARE(A3000_SCSI);	/* SCSI (wd33c93, A3000 alike) */
 
-     AMIGAHW_DECLARE(A4000_SCSI);	/* SCSI (ncr53c710, A4000T alike) */
 
-     AMIGAHW_DECLARE(A1200_IDE);		/* IDE (A1200 alike) */
 
-     AMIGAHW_DECLARE(A4000_IDE);		/* IDE (A4000 alike) */
 
-     AMIGAHW_DECLARE(CD_ROM);		/* CD ROM drive */
 
-     /* other I/O hardware */
 
-     AMIGAHW_DECLARE(AMI_KEYBOARD);	/* Amiga Keyboard */
 
-     AMIGAHW_DECLARE(AMI_MOUSE);		/* Amiga Mouse */
 
-     AMIGAHW_DECLARE(AMI_SERIAL);	/* Amiga Serial */
 
-     AMIGAHW_DECLARE(AMI_PARALLEL);	/* Amiga Parallel */
 
-     /* real time clocks */
 
-     AMIGAHW_DECLARE(A2000_CLK);		/* Hardware Clock (A2000 alike) */
 
-     AMIGAHW_DECLARE(A3000_CLK);		/* Hardware Clock (A3000 alike) */
 
-     /* supporting hardware */
 
-     AMIGAHW_DECLARE(CHIP_RAM);		/* Chip RAM */
 
-     AMIGAHW_DECLARE(PAULA);		/* Paula (8364) */
 
-     AMIGAHW_DECLARE(DENISE);		/* Denise (8362) */
 
-     AMIGAHW_DECLARE(DENISE_HR);		/* Denise (8373) */
 
-     AMIGAHW_DECLARE(LISA);		/* Lisa (8375) */
 
-     AMIGAHW_DECLARE(AGNUS_PAL);		/* Normal/Fat PAL Agnus (8367/8371) */
 
-     AMIGAHW_DECLARE(AGNUS_NTSC);	/* Normal/Fat NTSC Agnus (8361/8370) */
 
-     AMIGAHW_DECLARE(AGNUS_HR_PAL);	/* Fat Hires PAL Agnus (8372) */
 
-     AMIGAHW_DECLARE(AGNUS_HR_NTSC);	/* Fat Hires NTSC Agnus (8372) */
 
-     AMIGAHW_DECLARE(ALICE_PAL);		/* PAL Alice (8374) */
 
-     AMIGAHW_DECLARE(ALICE_NTSC);	/* NTSC Alice (8374) */
 
-     AMIGAHW_DECLARE(MAGIC_REKICK);	/* A3000 Magic Hard Rekick */
 
-     AMIGAHW_DECLARE(PCMCIA);		/* PCMCIA Slot */
 
-     AMIGAHW_DECLARE(ZORRO);		/* Zorro AutoConfig */
 
-     AMIGAHW_DECLARE(ZORRO3);		/* Zorro III */
 
- };
 
- extern struct amiga_hw_present amiga_hw_present;
 
- struct CUSTOM {
 
-     unsigned short bltddat;
 
-     unsigned short dmaconr;
 
-     unsigned short vposr;
 
-     unsigned short vhposr;
 
-     unsigned short dskdatr;
 
-     unsigned short joy0dat;
 
-     unsigned short joy1dat;
 
-     unsigned short clxdat;
 
-     unsigned short adkconr;
 
-     unsigned short pot0dat;
 
-     unsigned short pot1dat;
 
-     unsigned short potgor;
 
-     unsigned short serdatr;
 
-     unsigned short dskbytr;
 
-     unsigned short intenar;
 
-     unsigned short intreqr;
 
-     unsigned char  *dskptr;
 
-     unsigned short dsklen;
 
-     unsigned short dskdat;
 
-     unsigned short refptr;
 
-     unsigned short vposw;
 
-     unsigned short vhposw;
 
-     unsigned short copcon;
 
-     unsigned short serdat;
 
-     unsigned short serper;
 
-     unsigned short potgo;
 
-     unsigned short joytest;
 
-     unsigned short strequ;
 
-     unsigned short strvbl;
 
-     unsigned short strhor;
 
-     unsigned short strlong;
 
-     unsigned short bltcon0;
 
-     unsigned short bltcon1;
 
-     unsigned short bltafwm;
 
-     unsigned short bltalwm;
 
-     unsigned char  *bltcpt;
 
-     unsigned char  *bltbpt;
 
-     unsigned char  *bltapt;
 
-     unsigned char  *bltdpt;
 
-     unsigned short bltsize;
 
-     unsigned char  pad2d;
 
-     unsigned char  bltcon0l;
 
-     unsigned short bltsizv;
 
-     unsigned short bltsizh;
 
-     unsigned short bltcmod;
 
-     unsigned short bltbmod;
 
-     unsigned short bltamod;
 
-     unsigned short bltdmod;
 
-     unsigned short spare2[4];
 
-     unsigned short bltcdat;
 
-     unsigned short bltbdat;
 
-     unsigned short bltadat;
 
-     unsigned short spare3[3];
 
-     unsigned short deniseid;
 
-     unsigned short dsksync;
 
-     unsigned short *cop1lc;
 
-     unsigned short *cop2lc;
 
-     unsigned short copjmp1;
 
-     unsigned short copjmp2;
 
-     unsigned short copins;
 
-     unsigned short diwstrt;
 
-     unsigned short diwstop;
 
-     unsigned short ddfstrt;
 
-     unsigned short ddfstop;
 
-     unsigned short dmacon;
 
-     unsigned short clxcon;
 
-     unsigned short intena;
 
-     unsigned short intreq;
 
-     unsigned short adkcon;
 
-     struct {
 
- 	unsigned short	*audlc;
 
- 	unsigned short audlen;
 
- 	unsigned short audper;
 
- 	unsigned short audvol;
 
- 	unsigned short auddat;
 
- 	unsigned short audspare[2];
 
-     } aud[4];
 
-     unsigned char  *bplpt[8];
 
-     unsigned short bplcon0;
 
-     unsigned short bplcon1;
 
-     unsigned short bplcon2;
 
-     unsigned short bplcon3;
 
-     unsigned short bpl1mod;
 
-     unsigned short bpl2mod;
 
-     unsigned short bplcon4;
 
-     unsigned short clxcon2;
 
-     unsigned short bpldat[8];
 
-     unsigned char  *sprpt[8];
 
-     struct {
 
- 	unsigned short pos;
 
- 	unsigned short ctl;
 
- 	unsigned short dataa;
 
- 	unsigned short datab;
 
-     } spr[8];
 
-     unsigned short color[32];
 
-     unsigned short htotal;
 
-     unsigned short hsstop;
 
-     unsigned short hbstrt;
 
-     unsigned short hbstop;
 
-     unsigned short vtotal;
 
 
  |