| 
					
				 | 
			
			
				@@ -52,3 +52,160 @@ extern unsigned long amiga_chipset; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #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; 
			 |