home *** CD-ROM | disk | FTP | other *** search
- unit Hardware;
-
- INTERFACE
- uses Exec;
-
-
- type
- pCIA = ^tCIA;
- tCIA = record
- ciapra: byte;
- pad0: array [0..254] of byte;
- ciaprb: byte;
- pad1: array [0..254] of byte;
- ciaddra: byte;
- pad2: array [0..254] of byte;
- ciaddrb: byte;
- pad3: array [0..254] of byte;
- ciatalo: byte;
- pad4: array [0..254] of byte;
- ciatahi: byte;
- pad5: array [0..254] of byte;
- ciatblo: byte;
- pad6: array [0..254] of byte;
- ciatbhi: byte;
- pad7: array [0..254] of byte;
- ciatodlow: byte;
- pad8: array [0..254] of byte;
- ciatodmid: byte;
- pad9: array [0..254] of byte;
- ciatodhi: byte;
- pad10: array [0..254] of byte;
- unusedreg: byte;
- pad11: array [0..254] of byte;
- ciasdr: byte;
- pad12: array [0..254] of byte;
- ciaicr: byte;
- pad13: array [0..254] of byte;
- ciacra: byte;
- pad14: array [0..254] of byte;
- ciacrb: byte;
- end;
-
- pAudChannel = ^tAudChannel;
- tAudChannel = record
- ac_ptr: pword;
- ac_len: word;
- ac_per: word;
- ac_vol: word;
- ac_dat: word;
- ac_pad: array [0..1] of word;
- end;
-
- pSpriteDef = ^tSpriteDef;
- tSpriteDef = record
- pos: word;
- ctl: word;
- dataa: word;
- datab: word;
- end;
-
- pCustom = ^tCustom;
- tCustom = record
- bltddat: word;
- dmaconr: word;
- vposr: word;
- vhposr: word;
- dskdatr: word;
- joy0dat: word;
- joy1dat: word;
- clxdat: word;
- adkconr: word;
- pot0dat: word;
- pot1dat: word;
- potinp: word;
- serdatr: word;
- dskbytr: word;
- intenar: word;
- intreqr: word;
- dskpt: pointer;
- dsklen: word;
- dskdat: word;
- refptr: word;
- vposw: word;
- vhposw: word;
- copcon: word;
- serdat: word;
- serper: word;
- potgo: word;
- joytest: word;
- strequ: word;
- strvbl: word;
- strhor: word;
- strlong: word;
- bltcon0: word;
- bltcon1: word;
- bltafwm: word;
- bltalwm: word;
- bltcpt: pointer;
- bltbpt: pointer;
- bltapt: pointer;
- bltdpt: pointer;
- bltsize: word;
- pad2d: byte;
- bltcon0l: byte;
- bltsizv: word;
- bltsizh: word;
- bltcmod: word;
- bltbmod: word;
- bltamod: word;
- bltdmod: word;
- pad34: array [0..3] of word;
- bltcdat: word;
- bltbdat: word;
- bltadat: word;
- pad3b: array [0..2] of word;
- deniseid: word;
- dsksync: word;
- cop1lc: long;
- cop2lc: long;
- copjmp1: word;
- copjmp2: word;
- copins: word;
- diwstrt: word;
- diwstop: word;
- ddfstrt: word;
- ddfstop: word;
- dmacon: word;
- clxcon: word;
- intena: word;
- intreq: word;
- adkcon: word;
- aud: array [0..3] of tAudChannel;
- bplpt: array [0..7] of pointer;
- bplcon0: word;
- bplcon1: word;
- bplcon2: word;
- bplcon3: word;
- bpl1mod: word;
- bpl2mod: word;
- bplhmod: word;
- pad86: array [0..0] of word;
- bpldat: array [0..7] of word;
- sprpt: array [0..7] of pointer;
- spr: array [0..7] of tSpriteDef;
- color: array [0..31] of word;
- htotal: word;
- hsstop: word;
- hbstrt: word;
- hbstop: word;
- vtotal: word;
- vsstop: word;
- vbstrt: word;
- vbstop: word;
- sprhstrt: word;
- sprhstop: word;
- bplhstrt: word;
- bplhstop: word;
- hhposw: word;
- hhposr: word;
- beamcon0: word;
- hsstrt: word;
- vsstrt: word;
- hcenter: word;
- diwhigh: word;
- end;
-
- pbltnode = ^tbltnode;
- tbltnode = record
- n: pbltnode;
- function_: pointer;
- stat: byte;
- blitsize: integer;
- beamsync: integer;
- cleanup: pointer;
- end;
-
-
-
- const
- ADKF_PRE000NS = 0;
- VSIZEBITS = $A;
- DMAF_BLITTER = $40;
- INTF_PORTS = 8;
- DEST = $100;
- OCTANT1 = $10;
- CIAICRF_FLG = $10;
- OCTANT2 = 0;
- ADKB_MSBSYNC = 9;
- ADKF_UARTBRK = $800;
- OCTANT3 = 8;
- CIAB_DSKTRACK0 = 4;
- CIAB_OVERLAY = 0;
- CIAF_DSKSTEP = 1;
- OCTANT4 = $14;
- CIAB_DSKCHANGE = 2;
- ADKF_PRE140NS = $2000;
- OCTANT5 = $1C;
- OCTANT6 = $C;
- ADKB_USE3PN = 7;
- ADKF_MSBSYNC = $200;
- OCTANT7 = 4;
- CIACRAB_RUNMODE = 3;
- CIAB_PRTRBUSY = 0;
- CIAF_DSKTRACK0 = $10;
- CIAF_OVERLAY = 1;
- OCTANT8 = $18;
- CIACRBB_RUNMODE = 3;
- CIAB_DSKPROT = 3;
- CIAF_DSKCHANGE = 4;
- INTB_RBF = $B;
- INTB_TBE = 0;
- ADKF_PRE280NS = $4000;
- CIACRAB_OUTMODE = 2;
- ADKF_USE3PN = $80;
- ADKF_PRE560NS = $6000;
- CIACRBB_OUTMODE = 2;
- CIACRAF_RUNMODE = 8;
- CIAB_GAMEPORT0 = 6;
- CIAF_PRTRBUSY = 1;
- CIACRBF_RUNMODE = 8;
- CIAB_GAMEPORT1 = 7;
- CIAB_PRTRPOUT = 1;
- CIAF_DSKPROT = 8;
- INTF_RBF = $800;
- ADKB_USE3VN = 3;
- CIAB_PRTRSEL = 2;
- INTF_TBE = 1;
- CIACRAB_INMODE = 5;
- CIACRAF_OUTMODE = 4;
- CIAB_COMDSR = 3;
- CLEANUP = $40;
- CIACRBF_OUTMODE = 4;
- CIAB_COMDTR = 7;
- CIAB_COMCTS = 4;
- CIAF_GAMEPORT0 = $40;
- CIAF_GAMEPORT1 = $80;
- CIAF_PRTRPOUT = 2;
- ADKF_USE3VN = 8;
- FILL_CARRYIN = 4;
- CIAB_COMCD = 5;
- CIAF_PRTRSEL = 4;
- CIACRAF_INMODE = $20;
- CIAF_COMDSR = 8;
- CIAF_COMDTR = $80;
- CIAF_COMCTS = $10;
- DMAB_COPPER = 7;
- ASHIFTSHIFT = $C;
- CIAF_COMCD = $20;
- ADKB_SETCLR = $F;
- BSHIFTSHIFT = $C;
- CIAB_DSKRDY = 5;
- DMAB_MASTER = 9;
- AUL = 4;
- DMAF_COPPER = $80;
- DMAB_SETCLR = $F;
- ADKF_SETCLR = $8000;
- CIACRAB_SPMODE = 6;
- CIAF_DSKRDY = $20;
- DMAF_MASTER = $200;
- NANBNC = 1;
- BC1F_DESC = 2;
- DMAF_SETCLR = $8000;
- DMAB_RASTER = 8;
- CIAICRB_TA = 0;
- CIACRAF_SPMODE = $40;
- CIAB_COMRTS = 6;
- INTB_DSKSYNC = $C;
- BLITREVERSE = 2;
- CIAICRB_TB = 1;
- DMAB_AUD0 = 0;
- INTB_DSKBLK = 1;
- DMAF_RASTER = $100;
- DMAB_AUD1 = 1;
- BC0B_SRCA = $B;
- FILL_XOR = $10;
- DMAB_AUD2 = 2;
- BC0B_SRCB = $A;
- SUD = $10;
- CIAICRF_TA = 1;
- CIAF_COMRTS = $40;
- DMAB_AUD3 = 3;
- DMAB_SPRITE = 5;
- INTF_DSKSYNC = $1000;
- BC0B_SRCC = 9;
- CIAICRF_TB = 2;
- DMAF_AUD0 = 1;
- INTF_DSKBLK = 2;
- CIAICRB_IR = 7;
- DMAF_AUD1 = 2;
- BC0F_SRCA = $800;
- CIACRBB_ALARM = 7;
- DMAF_AUD2 = 4;
- BC0F_SRCB = $400;
- DMAF_AUDIO = $F;
- DMAF_AUD3 = 8;
- DMAF_SPRITE = $20;
- INTB_SOFTINT = 2;
- BC0F_SRCC = $200;
- CIAICRB_SETCLR = 7;
- BC0B_DEST = 8;
- CIAICRF_IR = $80;
- CIACRBF_ALARM = $80;
- ADKB_PRECOMP0 = $D;
- SUL = 8;
- CIAB_DSKDIREC = 1;
- INTF_SOFTINT = 4;
- ADKB_PRECOMP1 = $E;
- OVFLAG = $20;
- CIAICRF_SETCLR = $80;
- BC0F_DEST = $100;
- CIAICRB_SP = 3;
- ADKF_PRECOMP0 = $2000;
- FILL_OR = 8;
- CIAF_DSKDIREC = 2;
- ADKF_PRECOMP1 = $4000;
- CIAICRF_SP = 8;
- INTB_SETCLR = $F;
- CIACRBF_IN_CNT = $20;
- ANBNC = $10;
- NABNC = 4;
- NANBC = 2;
- ONEDOT = 2;
- CIACRAB_TODIN = 7;
- INTF_SETCLR = $8000;
- INTB_AUD0 = 7;
- CIACRAF_TODIN = $80;
- INTB_AUD1 = 8;
- INTB_AUD2 = 9;
- INTB_AUD3 = $A;
- CIACRAB_LOAD = 4;
- CIAB_DSKSEL0 = 3;
- INTF_AUD0 = $80;
- CIACRBB_LOAD = 4;
- CIAB_DSKSEL1 = 4;
- INTF_AUD1 = $100;
- CIAB_DSKSEL2 = 5;
- INTF_AUD2 = $200;
- CIACRBB_INMODE0 = 5;
- CIAB_DSKSEL3 = 6;
- INTF_AUD3 = $400;
- CIACRBB_INMODE1 = 6;
- CIACRAF_LOAD = $10;
- CIAF_DSKSEL0 = 8;
- DMAB_DISK = 4;
- ADKB_FAST = 8;
- CIACRBF_LOAD = $10;
- CIAF_DSKSEL1 = $10;
- A_XOR_C = $5A;
- CIAF_DSKSEL2 = $20;
- INTB_COPER = 4;
- CIACRBF_INMODE0 = $20;
- CIAF_DSKSEL3 = $40;
- CIACRBF_INMODE1 = $40;
- DMAF_DISK = $10;
- ADKF_FAST = $100;
- CIACRAB_START = 0;
- CIACRBB_START = 0;
- INTF_COPER = $10;
- CIACRBF_IN_TA = $40;
- INTB_INTEN = $E;
- CIACRAF_START = 1;
- ABNC = $40;
- ANBC = $20;
- NABC = 8;
- CIACRBF_START = 1;
- CIAB_LED = 1;
- CIACRAB_PBON = 1;
- INTF_INTEN = $4000;
- ADKB_USE0P1 = 4;
- CIACRBB_PBON = 1;
- INTB_VERTB = 5;
- CIAB_DSKSIDE = 2;
- ADKB_USE1P2 = 5;
- A_OR_B = $FC;
- CIAF_LED = 2;
- A_OR_C = $FA;
- CIACRAF_PBON = 2;
- ADKB_USE2P3 = 6;
- ADKF_USE0P1 = $10;
- CIAICRB_ALRM = 2;
- CIACRBF_PBON = 2;
- INTF_VERTB = $20;
- HSIZEMASK = $3F;
- CIAF_DSKSIDE = 4;
- INTB_EXTER = $D;
- ADKB_USE0V1 = 0;
- ADKF_USE1P2 = $20;
- A_TO_D = $F0;
- SIGNFLAG = $40;
- ADKB_MFMPREC = $C;
- DMAB_BLTDONE = $E;
- ADKB_USE1V2 = 1;
- ADKF_USE2P3 = $40;
- LINEMODE = 1;
- CIAICRF_ALRM = 4;
- CIAB_DSKMOTOR = 7;
- DMAB_BLITHOG = $A;
- INTF_EXTER = $2000;
- ADKB_USE2V3 = 2;
- ADKF_USE0V1 = 1;
- DMAB_BLTNZERO = $D;
- ADKF_MFMPREC = $1000;
- HSIZEBITS = 6;
- DMAF_ALL = $1FF;
- DMAF_BLTDONE = $4000;
- ADKF_USE1V2 = 2;
- MINBYTESPERROW = $80;
- CIAF_DSKMOTOR = $80;
- DMAF_BLITHOG = $400;
- INTB_BLIT = 6;
- ADKF_USE2V3 = 4;
- MAXBYTESPERROW = $1000;
- DMAF_BLTNZERO = $2000;
- CIACRBF_IN_CNT_TA = $60;
- ADKB_WORDSYNC = $A;
- INTF_BLIT = $40;
- VSIZEMASK = $3FF;
- SRCA = $800;
- SRCB = $400;
- CIACRBF_IN_PHI2 = 0;
- ADKF_WORDSYNC = $400;
- ABC = $80;
- SRCC = $200;
- CLEANME = $40;
- DMAB_BLITTER = 6;
- INTB_PORTS = 3;
- CIAICRB_FLG = 4;
- ADKB_UARTBRK = $B;
- CIAB_DSKSTEP = 0;
-
-
- var
- ciaa: pCIA absolute $BFE001;
- ciab: pCIA absolute $BFD000;
- custom: pCustom absolute $DFF000;
-
-
- IMPLEMENTATION
- end.
-