home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Pascal / HISOFTPASCAL2,0-3.DMS / in.adf / Units / Hardware.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1992-05-20  |  7.8 KB  |  440 lines

  1. unit Hardware;
  2.  
  3. INTERFACE
  4. uses Exec;
  5.  
  6.  
  7. type
  8.     pCIA = ^tCIA;
  9.     tCIA = record
  10.         ciapra: byte;
  11.         pad0: array [0..254] of byte;
  12.         ciaprb: byte;
  13.         pad1: array [0..254] of byte;
  14.         ciaddra: byte;
  15.         pad2: array [0..254] of byte;
  16.         ciaddrb: byte;
  17.         pad3: array [0..254] of byte;
  18.         ciatalo: byte;
  19.         pad4: array [0..254] of byte;
  20.         ciatahi: byte;
  21.         pad5: array [0..254] of byte;
  22.         ciatblo: byte;
  23.         pad6: array [0..254] of byte;
  24.         ciatbhi: byte;
  25.         pad7: array [0..254] of byte;
  26.         ciatodlow: byte;
  27.         pad8: array [0..254] of byte;
  28.         ciatodmid: byte;
  29.         pad9: array [0..254] of byte;
  30.         ciatodhi: byte;
  31.         pad10: array [0..254] of byte;
  32.         unusedreg: byte;
  33.         pad11: array [0..254] of byte;
  34.         ciasdr: byte;
  35.         pad12: array [0..254] of byte;
  36.         ciaicr: byte;
  37.         pad13: array [0..254] of byte;
  38.         ciacra: byte;
  39.         pad14: array [0..254] of byte;
  40.         ciacrb: byte;
  41.         end;
  42.  
  43.     pAudChannel = ^tAudChannel;
  44.     tAudChannel = record
  45.         ac_ptr: pword;
  46.         ac_len: word;
  47.         ac_per: word;
  48.         ac_vol: word;
  49.         ac_dat: word;
  50.         ac_pad: array [0..1] of word;
  51.         end;
  52.  
  53.     pSpriteDef = ^tSpriteDef;
  54.     tSpriteDef = record
  55.         pos: word;
  56.         ctl: word;
  57.         dataa: word;
  58.         datab: word;
  59.         end;
  60.  
  61.     pCustom = ^tCustom;
  62.     tCustom = record
  63.         bltddat: word;
  64.         dmaconr: word;
  65.         vposr: word;
  66.         vhposr: word;
  67.         dskdatr: word;
  68.         joy0dat: word;
  69.         joy1dat: word;
  70.         clxdat: word;
  71.         adkconr: word;
  72.         pot0dat: word;
  73.         pot1dat: word;
  74.         potinp: word;
  75.         serdatr: word;
  76.         dskbytr: word;
  77.         intenar: word;
  78.         intreqr: word;
  79.         dskpt: pointer;
  80.         dsklen: word;
  81.         dskdat: word;
  82.         refptr: word;
  83.         vposw: word;
  84.         vhposw: word;
  85.         copcon: word;
  86.         serdat: word;
  87.         serper: word;
  88.         potgo: word;
  89.         joytest: word;
  90.         strequ: word;
  91.         strvbl: word;
  92.         strhor: word;
  93.         strlong: word;
  94.         bltcon0: word;
  95.         bltcon1: word;
  96.         bltafwm: word;
  97.         bltalwm: word;
  98.         bltcpt: pointer;
  99.         bltbpt: pointer;
  100.         bltapt: pointer;
  101.         bltdpt: pointer;
  102.         bltsize: word;
  103.         pad2d: byte;
  104.         bltcon0l: byte;
  105.         bltsizv: word;
  106.         bltsizh: word;
  107.         bltcmod: word;
  108.         bltbmod: word;
  109.         bltamod: word;
  110.         bltdmod: word;
  111.         pad34: array [0..3] of word;
  112.         bltcdat: word;
  113.         bltbdat: word;
  114.         bltadat: word;
  115.         pad3b: array [0..2] of word;
  116.         deniseid: word;
  117.         dsksync: word;
  118.         cop1lc: long;
  119.         cop2lc: long;
  120.         copjmp1: word;
  121.         copjmp2: word;
  122.         copins: word;
  123.         diwstrt: word;
  124.         diwstop: word;
  125.         ddfstrt: word;
  126.         ddfstop: word;
  127.         dmacon: word;
  128.         clxcon: word;
  129.         intena: word;
  130.         intreq: word;
  131.         adkcon: word;
  132.         aud: array [0..3] of tAudChannel;
  133.         bplpt: array [0..7] of pointer;
  134.         bplcon0: word;
  135.         bplcon1: word;
  136.         bplcon2: word;
  137.         bplcon3: word;
  138.         bpl1mod: word;
  139.         bpl2mod: word;
  140.         bplhmod: word;
  141.         pad86: array [0..0] of word;
  142.         bpldat: array [0..7] of word;
  143.         sprpt: array [0..7] of pointer;
  144.         spr: array [0..7] of tSpriteDef;
  145.         color: array [0..31] of word;
  146.         htotal: word;
  147.         hsstop: word;
  148.         hbstrt: word;
  149.         hbstop: word;
  150.         vtotal: word;
  151.         vsstop: word;
  152.         vbstrt: word;
  153.         vbstop: word;
  154.         sprhstrt: word;
  155.         sprhstop: word;
  156.         bplhstrt: word;
  157.         bplhstop: word;
  158.         hhposw: word;
  159.         hhposr: word;
  160.         beamcon0: word;
  161.         hsstrt: word;
  162.         vsstrt: word;
  163.         hcenter: word;
  164.         diwhigh: word;
  165.         end;
  166.  
  167.     pbltnode = ^tbltnode;
  168.     tbltnode = record
  169.         n: pbltnode;
  170.         function_: pointer;
  171.         stat: byte;
  172.         blitsize: integer;
  173.         beamsync: integer;
  174.         cleanup: pointer;
  175.         end;
  176.  
  177.  
  178.  
  179. const
  180.     ADKF_PRE000NS = 0;
  181.     VSIZEBITS = $A;
  182.     DMAF_BLITTER = $40;
  183.     INTF_PORTS = 8;
  184.     DEST = $100;
  185.     OCTANT1 = $10;
  186.     CIAICRF_FLG = $10;
  187.     OCTANT2 = 0;
  188.     ADKB_MSBSYNC = 9;
  189.     ADKF_UARTBRK = $800;
  190.     OCTANT3 = 8;
  191.     CIAB_DSKTRACK0 = 4;
  192.     CIAB_OVERLAY = 0;
  193.     CIAF_DSKSTEP = 1;
  194.     OCTANT4 = $14;
  195.     CIAB_DSKCHANGE = 2;
  196.     ADKF_PRE140NS = $2000;
  197.     OCTANT5 = $1C;
  198.     OCTANT6 = $C;
  199.     ADKB_USE3PN = 7;
  200.     ADKF_MSBSYNC = $200;
  201.     OCTANT7 = 4;
  202.     CIACRAB_RUNMODE = 3;
  203.     CIAB_PRTRBUSY = 0;
  204.     CIAF_DSKTRACK0 = $10;
  205.     CIAF_OVERLAY = 1;
  206.     OCTANT8 = $18;
  207.     CIACRBB_RUNMODE = 3;
  208.     CIAB_DSKPROT = 3;
  209.     CIAF_DSKCHANGE = 4;
  210.     INTB_RBF = $B;
  211.     INTB_TBE = 0;
  212.     ADKF_PRE280NS = $4000;
  213.     CIACRAB_OUTMODE = 2;
  214.     ADKF_USE3PN = $80;
  215.     ADKF_PRE560NS = $6000;
  216.     CIACRBB_OUTMODE = 2;
  217.     CIACRAF_RUNMODE = 8;
  218.     CIAB_GAMEPORT0 = 6;
  219.     CIAF_PRTRBUSY = 1;
  220.     CIACRBF_RUNMODE = 8;
  221.     CIAB_GAMEPORT1 = 7;
  222.     CIAB_PRTRPOUT = 1;
  223.     CIAF_DSKPROT = 8;
  224.     INTF_RBF = $800;
  225.     ADKB_USE3VN = 3;
  226.     CIAB_PRTRSEL = 2;
  227.     INTF_TBE = 1;
  228.     CIACRAB_INMODE = 5;
  229.     CIACRAF_OUTMODE = 4;
  230.     CIAB_COMDSR = 3;
  231.     CLEANUP = $40;
  232.     CIACRBF_OUTMODE = 4;
  233.     CIAB_COMDTR = 7;
  234.     CIAB_COMCTS = 4;
  235.     CIAF_GAMEPORT0 = $40;
  236.     CIAF_GAMEPORT1 = $80;
  237.     CIAF_PRTRPOUT = 2;
  238.     ADKF_USE3VN = 8;
  239.     FILL_CARRYIN = 4;
  240.     CIAB_COMCD = 5;
  241.     CIAF_PRTRSEL = 4;
  242.     CIACRAF_INMODE = $20;
  243.     CIAF_COMDSR = 8;
  244.     CIAF_COMDTR = $80;
  245.     CIAF_COMCTS = $10;
  246.     DMAB_COPPER = 7;
  247.     ASHIFTSHIFT = $C;
  248.     CIAF_COMCD = $20;
  249.     ADKB_SETCLR = $F;
  250.     BSHIFTSHIFT = $C;
  251.     CIAB_DSKRDY = 5;
  252.     DMAB_MASTER = 9;
  253.     AUL = 4;
  254.     DMAF_COPPER = $80;
  255.     DMAB_SETCLR = $F;
  256.     ADKF_SETCLR = $8000;
  257.     CIACRAB_SPMODE = 6;
  258.     CIAF_DSKRDY = $20;
  259.     DMAF_MASTER = $200;
  260.     NANBNC = 1;
  261.     BC1F_DESC = 2;
  262.     DMAF_SETCLR = $8000;
  263.     DMAB_RASTER = 8;
  264.     CIAICRB_TA = 0;
  265.     CIACRAF_SPMODE = $40;
  266.     CIAB_COMRTS = 6;
  267.     INTB_DSKSYNC = $C;
  268.     BLITREVERSE = 2;
  269.     CIAICRB_TB = 1;
  270.     DMAB_AUD0 = 0;
  271.     INTB_DSKBLK = 1;
  272.     DMAF_RASTER = $100;
  273.     DMAB_AUD1 = 1;
  274.     BC0B_SRCA = $B;
  275.     FILL_XOR = $10;
  276.     DMAB_AUD2 = 2;
  277.     BC0B_SRCB = $A;
  278.     SUD = $10;
  279.     CIAICRF_TA = 1;
  280.     CIAF_COMRTS = $40;
  281.     DMAB_AUD3 = 3;
  282.     DMAB_SPRITE = 5;
  283.     INTF_DSKSYNC = $1000;
  284.     BC0B_SRCC = 9;
  285.     CIAICRF_TB = 2;
  286.     DMAF_AUD0 = 1;
  287.     INTF_DSKBLK = 2;
  288.     CIAICRB_IR = 7;
  289.     DMAF_AUD1 = 2;
  290.     BC0F_SRCA = $800;
  291.     CIACRBB_ALARM = 7;
  292.     DMAF_AUD2 = 4;
  293.     BC0F_SRCB = $400;
  294.     DMAF_AUDIO = $F;
  295.     DMAF_AUD3 = 8;
  296.     DMAF_SPRITE = $20;
  297.     INTB_SOFTINT = 2;
  298.     BC0F_SRCC = $200;
  299.     CIAICRB_SETCLR = 7;
  300.     BC0B_DEST = 8;
  301.     CIAICRF_IR = $80;
  302.     CIACRBF_ALARM = $80;
  303.     ADKB_PRECOMP0 = $D;
  304.     SUL = 8;
  305.     CIAB_DSKDIREC = 1;
  306.     INTF_SOFTINT = 4;
  307.     ADKB_PRECOMP1 = $E;
  308.     OVFLAG = $20;
  309.     CIAICRF_SETCLR = $80;
  310.     BC0F_DEST = $100;
  311.     CIAICRB_SP = 3;
  312.     ADKF_PRECOMP0 = $2000;
  313.     FILL_OR = 8;
  314.     CIAF_DSKDIREC = 2;
  315.     ADKF_PRECOMP1 = $4000;
  316.     CIAICRF_SP = 8;
  317.     INTB_SETCLR = $F;
  318.     CIACRBF_IN_CNT = $20;
  319.     ANBNC = $10;
  320.     NABNC = 4;
  321.     NANBC = 2;
  322.     ONEDOT = 2;
  323.     CIACRAB_TODIN = 7;
  324.     INTF_SETCLR = $8000;
  325.     INTB_AUD0 = 7;
  326.     CIACRAF_TODIN = $80;
  327.     INTB_AUD1 = 8;
  328.     INTB_AUD2 = 9;
  329.     INTB_AUD3 = $A;
  330.     CIACRAB_LOAD = 4;
  331.     CIAB_DSKSEL0 = 3;
  332.     INTF_AUD0 = $80;
  333.     CIACRBB_LOAD = 4;
  334.     CIAB_DSKSEL1 = 4;
  335.     INTF_AUD1 = $100;
  336.     CIAB_DSKSEL2 = 5;
  337.     INTF_AUD2 = $200;
  338.     CIACRBB_INMODE0 = 5;
  339.     CIAB_DSKSEL3 = 6;
  340.     INTF_AUD3 = $400;
  341.     CIACRBB_INMODE1 = 6;
  342.     CIACRAF_LOAD = $10;
  343.     CIAF_DSKSEL0 = 8;
  344.     DMAB_DISK = 4;
  345.     ADKB_FAST = 8;
  346.     CIACRBF_LOAD = $10;
  347.     CIAF_DSKSEL1 = $10;
  348.     A_XOR_C = $5A;
  349.     CIAF_DSKSEL2 = $20;
  350.     INTB_COPER = 4;
  351.     CIACRBF_INMODE0 = $20;
  352.     CIAF_DSKSEL3 = $40;
  353.     CIACRBF_INMODE1 = $40;
  354.     DMAF_DISK = $10;
  355.     ADKF_FAST = $100;
  356.     CIACRAB_START = 0;
  357.     CIACRBB_START = 0;
  358.     INTF_COPER = $10;
  359.     CIACRBF_IN_TA = $40;
  360.     INTB_INTEN = $E;
  361.     CIACRAF_START = 1;
  362.     ABNC = $40;
  363.     ANBC = $20;
  364.     NABC = 8;
  365.     CIACRBF_START = 1;
  366.     CIAB_LED = 1;
  367.     CIACRAB_PBON = 1;
  368.     INTF_INTEN = $4000;
  369.     ADKB_USE0P1 = 4;
  370.     CIACRBB_PBON = 1;
  371.     INTB_VERTB = 5;
  372.     CIAB_DSKSIDE = 2;
  373.     ADKB_USE1P2 = 5;
  374.     A_OR_B = $FC;
  375.     CIAF_LED = 2;
  376.     A_OR_C = $FA;
  377.     CIACRAF_PBON = 2;
  378.     ADKB_USE2P3 = 6;
  379.     ADKF_USE0P1 = $10;
  380.     CIAICRB_ALRM = 2;
  381.     CIACRBF_PBON = 2;
  382.     INTF_VERTB = $20;
  383.     HSIZEMASK = $3F;
  384.     CIAF_DSKSIDE = 4;
  385.     INTB_EXTER = $D;
  386.     ADKB_USE0V1 = 0;
  387.     ADKF_USE1P2 = $20;
  388.     A_TO_D = $F0;
  389.     SIGNFLAG = $40;
  390.     ADKB_MFMPREC = $C;
  391.     DMAB_BLTDONE = $E;
  392.     ADKB_USE1V2 = 1;
  393.     ADKF_USE2P3 = $40;
  394.     LINEMODE = 1;
  395.     CIAICRF_ALRM = 4;
  396.     CIAB_DSKMOTOR = 7;
  397.     DMAB_BLITHOG = $A;
  398.     INTF_EXTER = $2000;
  399.     ADKB_USE2V3 = 2;
  400.     ADKF_USE0V1 = 1;
  401.     DMAB_BLTNZERO = $D;
  402.     ADKF_MFMPREC = $1000;
  403.     HSIZEBITS = 6;
  404.     DMAF_ALL = $1FF;
  405.     DMAF_BLTDONE = $4000;
  406.     ADKF_USE1V2 = 2;
  407.     MINBYTESPERROW = $80;
  408.     CIAF_DSKMOTOR = $80;
  409.     DMAF_BLITHOG = $400;
  410.     INTB_BLIT = 6;
  411.     ADKF_USE2V3 = 4;
  412.     MAXBYTESPERROW = $1000;
  413.     DMAF_BLTNZERO = $2000;
  414.     CIACRBF_IN_CNT_TA = $60;
  415.     ADKB_WORDSYNC = $A;
  416.     INTF_BLIT = $40;
  417.     VSIZEMASK = $3FF;
  418.     SRCA = $800;
  419.     SRCB = $400;
  420.     CIACRBF_IN_PHI2 = 0;
  421.     ADKF_WORDSYNC = $400;
  422.     ABC = $80;
  423.     SRCC = $200;
  424.     CLEANME = $40;
  425.     DMAB_BLITTER = 6;
  426.     INTB_PORTS = 3;
  427.     CIAICRB_FLG = 4;
  428.     ADKB_UARTBRK = $B;
  429.     CIAB_DSKSTEP = 0;
  430.  
  431.  
  432. var
  433.     ciaa:    pCIA    absolute $BFE001;
  434.     ciab:    pCIA    absolute $BFD000;
  435.     custom:    pCustom    absolute $DFF000;
  436.  
  437.  
  438. IMPLEMENTATION
  439. end.
  440.