home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / M2V11-1.LHA / modula / amiga / Hardware.def < prev    next >
Encoding:
Text File  |  1993-11-01  |  15.2 KB  |  527 lines

  1. DEFINITION FOR C MODULE Hardware ;
  2.  
  3. FROM SYSTEM IMPORT ADDRESS, BITSET, SHORTSET ;
  4.  
  5. CONST
  6.   HSIZEBITS = 6 ;
  7.   VSIZEBITS = 16-HSIZEBITS ;
  8.   HSIZEMASK = 03FH  ;        (* 2^6 -- 1 *)
  9.   VSIZEMASK = 03FFH ;       (* 2^10 - 1 *)
  10.  
  11. (* all agnii support horizontal blit of at least 1024 bits (128 bytes) wide *)
  12. (* some agnii support horizontal blit of up to 32768 bits (4096 bytes) wide *)
  13.  
  14. (* definitions for blitter control register 0 *)
  15.  
  16. CONST
  17.   ABC    = {7} ;
  18.   ABNC   = {6} ;
  19.   ANBC   = {5} ;
  20.   ANBNC  = {4} ;
  21.   NABC   = {3} ;
  22.   NABNC  = {2} ;
  23.   NANBC  = {1} ;
  24.   NANBNC = {0} ;
  25.  
  26. (* some commonly used operations *)
  27.   A_OR_B  = ABC+ANBC+NABC+ABNC+ANBNC+NABNC ;
  28.   A_OR_C  = ABC+NABC+ABNC+ANBC+NANBC+ANBNC ;
  29.   A_XOR_C = NABC+ABNC+NANBC+ANBNC ;
  30.   A_TO_D  = ABC+ANBC+ABNC+ANBNC ;
  31.  
  32.   BC0B_DEST =  8 ;
  33.   BC0B_SRCC =  9 ;
  34.   BC0B_SRCB = 10 ;
  35.   BC0B_SRCA = 11 ;
  36.  
  37.   BC0F_DEST =  {8} ;
  38.   BC0F_SRCC =  {9} ;
  39.   BC0F_SRCB = {10} ;
  40.   BC0F_SRCA = {11} ;
  41.  
  42.   BC1F_DESC = {1} ;          (* blitter descend direction *)
  43.  
  44.   DEST = {8}  ;
  45.   SRCC = {9}  ;
  46.   SRCB = {10} ;
  47.   SRCA = {11} ;
  48.  
  49.   ASHIFTSHIFT = 12 ; (* bits to right align ashift value *)
  50.   BSHIFTSHIFT = 12 ; (* bits to right align bshift value *)
  51.  
  52. (* definations for blitter control register 1 *)
  53.  
  54.   LINEMODE     = {0} ;
  55.   FILL_OR      = {3} ;
  56.   FILL_XOR     = {4} ;
  57.   FILL_CARRYIN = {2} ;
  58.   ONEDOT       = {1} ; (* one dot per horizontal line *)
  59.   OVFLAG       = {5} ;
  60.   SIGNFLAG     = {6} ;
  61.   BLITREVERSE  = {1} ;
  62.  
  63.   SUD = {4} ;
  64.   SUL = {3} ;
  65.   AUL = {2} ;
  66.  
  67.   OCTANT8 = SUL+SUD ;
  68.   OCTANT7 = AUL ;
  69.   OCTANT6 = AUL+SUL ;
  70.   OCTANT5 = AUL+SUL+SUD ;
  71.   OCTANT4 = AUL+SUD ;
  72.   OCTANT3 = SUL ;
  73.   OCTANT2 = {} ;
  74.   OCTANT1 = SUD;
  75.  
  76. (* stuff for blit qeuer *)
  77.  
  78. TYPE
  79.   bltnodePtr = POINTER TO bltnode ;
  80.   bltnode = RECORD
  81.     n         : bltnodePtr ;
  82.     function : ADDRESS ;
  83.     stat     : CHAR    ;
  84.     blitsize : INTEGER ;
  85.     beamsync : INTEGER ;
  86.     cleanup  : ADDRESS ;
  87.   END ;
  88.  
  89. (* defined bits for bltstat *)
  90.  
  91. CONST
  92.   CLEANUP = 040H ;
  93.   CLEANME = CLEANUP ;
  94.  
  95. TYPE
  96.   PadArray = ARRAY [0..0FFH-1] OF SHORTSET ;
  97.  
  98.   CIA = RECORD
  99.     ciapra    : SHORTSET  ;    pad0 : PadArray ;
  100.     ciaprb    : SHORTSET  ;    pad1 : PadArray ;
  101.     ciaddra    : SHORTSET  ;    pad2 : PadArray ;
  102.     ciaddrb    : SHORTSET  ;    pad3 : PadArray ;
  103.     ciatalo    : SHORTCARD ;    pad4 : PadArray ;
  104.     ciatahi     : SHORTCARD ;    pad5 : PadArray ;
  105.     ciatblo    : SHORTCARD ;    pad6 : PadArray ;
  106.     ciatbhi    : SHORTCARD ;    pad7 : PadArray ;
  107.     ciatodlow    : SHORTCARD ;    pad8 : PadArray ;
  108.     ciatodmid    : SHORTCARD ;    pad9 : PadArray ;
  109.     ciatodhi    : SHORTCARD ;    padA : PadArray ;
  110.     unusedreg    : SHORTSET  ;    padB : PadArray ;
  111.     ciasdr    : SHORTSET  ;    padC : PadArray ;
  112.     ciaicr    : SHORTSET  ;    padD : PadArray ;
  113.     ciacra    : SHORTSET  ;    padE : PadArray ;
  114.     ciacrb    : SHORTSET  ;
  115.   END ;
  116.  
  117. VAR
  118.   ciaa[0BFE001H] : CIA ;
  119.   ciab[0BFD000H] : CIA ;
  120.  
  121. CONST
  122. (* interrupt control register bit numbers *)
  123.   CIAICRB_TA     = 0 ;
  124.   CIAICRB_TB     = 1 ;
  125.   CIAICRB_ALRM     = 2 ;
  126.   CIAICRB_SP     = 3 ;
  127.   CIAICRB_FLG     = 4 ;
  128.   CIAICRB_IR     = 7 ;
  129.   CIAICRB_SETCLR = 7 ;
  130.  
  131. (* control register A bit numbers *)
  132.   CIACRAB_START      = 0 ;
  133.   CIACRAB_PBON      = 1 ;
  134.   CIACRAB_OUTMODE = 2 ;
  135.   CIACRAB_RUNMODE = 3 ;
  136.   CIACRAB_LOAD      = 4 ;
  137.   CIACRAB_INMODE  = 5 ;
  138.   CIACRAB_SPMODE  = 6 ;
  139.   CIACRAB_TODIN      = 7 ;
  140.  
  141. (* control register B bit numbers *)
  142.   CIACRBB_START      = 0 ;
  143.   CIACRBB_PBON      = 1 ;
  144.   CIACRBB_OUTMODE = 2 ;
  145.   CIACRBB_RUNMODE = 3 ;
  146.   CIACRBB_LOAD      = 4 ;
  147.   CIACRBB_INMODE0 = 5 ;
  148.   CIACRBB_INMODE1 = 6 ;
  149.   CIACRBB_ALARM      = 7 ;
  150.  
  151. (* interrupt control register masks *)
  152.   CIAICRF_TA     = {CIAICRB_TA}    ;
  153.   CIAICRF_TB     = {CIAICRB_TB} ;
  154.   CIAICRF_ALRM     = {CIAICRB_ALRM} ;
  155.   CIAICRF_SP     = {CIAICRB_SP}    ;
  156.   CIAICRF_FLG     = {CIAICRB_FLG} ;
  157.   CIAICRF_IR     = {CIAICRB_IR}    ;
  158.   CIAICRF_SETCLR = {CIAICRB_SETCLR} ;
  159.  
  160. (* control register A register masks *)
  161.   CIACRAF_START      = {CIACRAB_START}    ;
  162.   CIACRAF_PBON      = {CIACRAB_PBON}    ;
  163.   CIACRAF_OUTMODE = {CIACRAB_OUTMODE}    ;
  164.   CIACRAF_RUNMODE = {CIACRAB_RUNMODE}    ;
  165.   CIACRAF_LOAD      = {CIACRAB_LOAD}    ;
  166.   CIACRAF_INMODE  = {CIACRAB_INMODE}    ;
  167.   CIACRAF_SPMODE  = {CIACRAB_SPMODE}    ;
  168.   CIACRAF_TODIN      = {CIACRAB_TODIN}    ;
  169.  
  170. (* control register B register masks *)
  171.   CIACRBF_START      = {CIACRBB_START}    ;
  172.   CIACRBF_PBON      = {CIACRBB_PBON}    ;
  173.   CIACRBF_OUTMODE = {CIACRBB_OUTMODE}    ;
  174.   CIACRBF_RUNMODE = {CIACRBB_RUNMODE}    ;
  175.   CIACRBF_LOAD      = {CIACRBB_LOAD}    ;
  176.   CIACRBF_INMODE0 = {CIACRBB_INMODE0}    ;
  177.   CIACRBF_INMODE1 = {CIACRBB_INMODE1}    ;
  178.   CIACRBF_ALARM      = {CIACRBB_ALARM}    ;
  179.  
  180. (* control register B INMODE masks *)
  181.   CIACRBF_IN_PHI2    = {} ;
  182.   CIACRBF_IN_CNT     = CIACRBF_INMODE0 ;
  183.   CIACRBF_IN_TA         = CIACRBF_INMODE1 ;
  184.   CIACRBF_IN_CNT_TA  = CIACRBF_INMODE0+CIACRBF_INMODE1 ;
  185.  
  186. (* Port definitions -- what each bit in a cia peripheral register is tied to *)
  187.  
  188. (* ciaa port A (0xbfe001) *)
  189.   CIAB_GAMEPORT1 = 7 ;   (* gameport 1, pin 6 (fire button)    *)
  190.   CIAB_GAMEPORT0 = 6 ;   (* gameport 0, pin 6 (fire button)    *)
  191.   CIAB_DSKRDY     = 5 ;   (* disk ready                 *)
  192.   CIAB_DSKTRACK0 = 4 ;   (* disk on track 00             *)
  193.   CIAB_DSKPROT     = 3 ;   (* disk write protect             *)
  194.   CIAB_DSKCHANGE = 2 ;   (* disk change             *)
  195.   CIAB_LED     = 1 ;   (* led light control (0==>bright)     *)
  196.   CIAB_OVERLAY     = 0 ;   (* memory overlay bit             *)
  197.  
  198. (* ciaa port B (0xbfe101) -- parallel port *)
  199.  
  200. (* ciab port A (0xbfd000) -- serial and printer control *)
  201.   CIAB_COMDTR    = 7 ;   (* serial Data Terminal Ready     *)
  202.   CIAB_COMRTS    = 6 ;   (* serial Request to Send     *)
  203.   CIAB_COMCD    = 5 ;   (* serial Carrier Detect     *)
  204.   CIAB_COMCTS    = 4 ;   (* serial Clear to Send     *)
  205.   CIAB_COMDSR    = 3 ;   (* serial Data Set Ready    *)
  206.   CIAB_PRTRSEL    = 2 ;   (* printer SELECT        *)
  207.   CIAB_PRTRPOUT    = 1 ;   (* printer paper out        *)
  208.   CIAB_PRTRBUSY    = 0 ;   (* printer busy            *)
  209.  
  210. (* ciab port B (0xbfd100) -- disk control *)
  211.   CIAB_DSKMOTOR    = 7 ;   (* disk motorr            *)
  212.   CIAB_DSKSEL3    = 6 ;   (* disk select unit 3        *)
  213.   CIAB_DSKSEL2    = 5 ;   (* disk select unit 2        *)
  214.   CIAB_DSKSEL1    = 4 ;   (* disk select unit 1        *)
  215.   CIAB_DSKSEL0    = 3 ;   (* disk select unit 0        *)
  216.   CIAB_DSKSIDE    = 2 ;   (* disk side select        *)
  217.   CIAB_DSKDIREC    = 1 ;   (* disk direction of seek    *)
  218.   CIAB_DSKSTEP    = 0 ;   (* disk step heads        *)
  219.  
  220. (* ciaa port A (0xbfe001) *)
  221.   CIAF_GAMEPORT1 = {7} ;
  222.   CIAF_GAMEPORT0 = {6} ;
  223.   CIAF_DSKRDY     = {5} ;
  224.   CIAF_DSKTRACK0 = {4} ;
  225.   CIAF_DSKPROT     = {3} ;
  226.   CIAF_DSKCHANGE = {2} ;
  227.   CIAF_LED     = {1} ;
  228.   CIAF_OVERLAY     = {0} ;
  229.  
  230. (* ciaa port B (0xbfe101) -- parallel port *)
  231.  
  232. (* ciab port A (0xbfd000) -- serial and printer control *)
  233.   CIAF_COMDTR    = {7} ;
  234.   CIAF_COMRTS    = {6} ;
  235.   CIAF_COMCD    = {5} ;
  236.   CIAF_COMCTS    = {4} ;
  237.   CIAF_COMDSR    = {3} ;
  238.   CIAF_PRTRSEL    = {2} ;
  239.   CIAF_PRTRPOUT    = {1} ;
  240.   CIAF_PRTRBUSY    = {0} ;
  241.  
  242. (* ciab port B (0xbfd100) -- disk control *)
  243.   CIAF_DSKMOTOR    = {7} ;
  244.   CIAF_DSKSEL3    = {6} ;
  245.   CIAF_DSKSEL2    = {5} ;
  246.   CIAF_DSKSEL1    = {4} ;
  247.   CIAF_DSKSEL0    = {3} ;
  248.   CIAF_DSKSIDE    = {2} ;
  249.   CIAF_DSKDIREC    = {1} ;
  250.   CIAF_DSKSTEP    = {0} ;
  251.  
  252. TYPE
  253.   Custom=RECORD
  254.     bltddat: CARDINAL ;
  255.     dmaconr: BITSET ;
  256.     vposr  : CARDINAL ;
  257.     vhposr : CARDINAL ;
  258.     dskdatr: BITSET ;
  259.     joy0dat: RECORD v , h : SHORTINT END ;
  260.     joy1dat: RECORD v , h : SHORTINT END ;
  261.     clxdat : BITSET ;
  262.     adkconr: BITSET ;
  263.     pot0dat: RECORD v , h : SHORTINT END ;
  264.     pot1dat: RECORD v , h : SHORTINT END ;
  265.     potinp : BITSET ;
  266.     serdatr: CARDINAL ;
  267.     dskbytr: CARDINAL ;
  268.     intenar: BITSET ;
  269.     intreqr: BITSET ;
  270.     dskpt  : ADDRESS ;
  271.     dsklen : CARDINAL ;
  272.     dskdat : CARDINAL ;
  273.     refptr : CARDINAL ;
  274.     vposw  : LONGCARD ;
  275.     copcon : BITSET ;
  276.     serdat : CARDINAL ;
  277.     serper : BITSET ;
  278.     potgo  : BITSET ;
  279.     joytest: RECORD v , h : SHORTINT END ;
  280.     strequ : CARDINAL ;
  281.     strvbl : CARDINAL ;
  282.     strhor : CARDINAL ;
  283.     strlong: CARDINAL ;
  284.     bltcon0: BITSET ;
  285.     bltcon1: BITSET ;
  286.     bltafwm: BITSET ;
  287.     bltalwm: BITSET ;
  288.     bltcpt : ADDRESS ;
  289.     bltbpt : ADDRESS ;
  290.     bltapt : ADDRESS ;
  291.     bltdpt : ADDRESS ;
  292.     bltsize: CARDINAL ;
  293.     pad2d  : ARRAY [0..2] OF CARDINAL ;
  294.     bltcmod: CARDINAL ;
  295.     bltbmod: CARDINAL ;
  296.     bltamod: CARDINAL ;
  297.     bltdmod: CARDINAL ;
  298.     pad34  : ARRAY [0..3] OF CARDINAL ;
  299.     bltcdat: CARDINAL ;
  300.     bltbdat: CARDINAL ;
  301.     bltadat: CARDINAL ;
  302.     pad3b  : ARRAY [0..3] OF CARDINAL ;
  303.     dsksync: CARDINAL ;
  304.     cop1lc : ADDRESS ;
  305.     cop2lc : ADDRESS ;
  306.     copjmp1: CARDINAL ;
  307.     copjmp2: CARDINAL ;
  308.     copins : CARDINAL ;
  309.     diwstrt: RECORD v , h : SHORTINT END ;
  310.     diwstop: RECORD v , h : SHORTINT END ;
  311.     ddfstrt: RECORD v , h : SHORTINT END ;
  312.     ddfstop: RECORD v , h : SHORTINT END ;
  313.     dmacon : BITSET ;
  314.     clxcon : BITSET ;
  315.     intena : BITSET ;
  316.     intreq : BITSET ;
  317.     adkcon : BITSET ;
  318.     aud    : ARRAY [0..3] OF RECORD
  319.        ac_ptr  : ADDRESS  ; (* ptr to start of waveform data    *)
  320.        ac_len  : CARDINAL ; (* length of waveform in words    *)
  321.        ac_per  : CARDINAL ; (* sample period            *)
  322.        ac_vol  : CARDINAL ; (* volume                *)
  323.        ac_dat  : CARDINAL ; (* sample pair            *)
  324.        ac_pad  : LONGINT  ; (* unused                *)
  325.       END ;
  326.     bplpt  : ARRAY [0..5] OF ADDRESS ;
  327.     pad7c  : ARRAY [0..3] OF CARDINAL ;
  328.     bplcon0: BITSET ;
  329.     bplcon1: CARDINAL ;
  330.     bplcon2: CARDINAL ;
  331.     pad83  : CARDINAL ;
  332.     bpl1mod: CARDINAL ;
  333.     bpl2mod: CARDINAL ;
  334.     pad86  : ARRAY [0..1] OF CARDINAL ;
  335.     bpldat : ARRAY [0..5] OF CARDINAL ;
  336.     pad8e  : ARRAY [0..1] OF CARDINAL ;
  337.     sprpt  : ARRAY [0..7] OF ADDRESS ;
  338.     spr    : ARRAY [0..7] OF RECORD
  339.         pos   : CARDINAL ;
  340.         ctl   : CARDINAL ;
  341.         data  : CARDINAL ;
  342.         datab : CARDINAL ;
  343.       END ;
  344.     color  : ARRAY [0..31] OF CARDINAL ;
  345.  
  346.     (* unknown field types ??? *)
  347.  
  348.     htotal    : CARDINAL ;
  349.     hsstop    : CARDINAL ;
  350.     hbstrt    : CARDINAL ;
  351.     hbstop    : CARDINAL ;
  352.     vtotal    : CARDINAL ;
  353.     vsstop    : CARDINAL ;
  354.     vbstrt    : CARDINAL ;
  355.     vbstop    : CARDINAL ;
  356.     sprhstrt  : CARDINAL ;
  357.     sprhstop  : CARDINAL ;
  358.     bplhstrt  : CARDINAL ;
  359.     bplhstop  : CARDINAL ;
  360.     hhposw    : CARDINAL ;
  361.     hhposr    : CARDINAL ;
  362.     beamcon0  : BITSET   ;
  363.     hsstrt    : CARDINAL ;
  364.     vsstrt    : CARDINAL ;
  365.     hcenter   : CARDINAL ;
  366.     diwhigh   : CARDINAL ; (* 1e4 *)
  367.     padf3     : ARRAY [0..10] OF CARDINAL ;
  368.     fmode     : CARDINAL ;
  369.  END;
  370.  
  371. VAR
  372.   custom[0DFF000H] : Custom ;
  373.  
  374. (* defines for beamcon register *)
  375.  
  376. CONST
  377.   VARVBLANK    = {12} ; (* Variable vertical blank enable        *)
  378.   LOLDIS    = {11} ; (* long line disable                *)
  379.   CSCBLANKEN    = {10} ; (* redirect composite sync            *)
  380.   VARVSYNC    =  {9} ; (* Variable vertical sync enable        *)
  381.   VARHSYNC    =  {8} ; (* Variable horizontal sync enable        *)
  382.   VARBEAM    =  {7} ; (* variable beam counter enable        *)
  383.   DISPLAYDUAL    =  {6} ; (* use UHRES pointer and standard pointers    *)
  384.   DISPLAYPAL    =  {5} ; (* set decodes to generate PAL display        *)
  385.   VARCSYNC    =  {4} ; (* Variable composite sync enable        *)
  386.   CSBLANK    =  {3} ; (* Composite blank out to CSY* pin        *)
  387.   CSYNCTRUE    =  {2} ; (* composite sync true signal            *)
  388.   VSYNCTRUE    =  {1} ; (* vertical sync true                *)
  389.   HSYNCTRUE    =  {0} ; (* horizontal sync true            *)
  390.  
  391. (* new defines for bplcon0 *)
  392.   USE_BPLCON3        = {0} ;
  393.  
  394. (* new defines for bplcon2 *)
  395.   BPLCON2_ZDCTEN    = {10} ; (* colormapped genlock bit      *)
  396.   BPLCON2_ZDBPEN    = {11} ; (* use bitplane as genlock bits  *)
  397.   BPLCON2_ZDBPSEL0    = {12} ; (* three bits to select one      *)
  398.   BPLCON2_ZDBPSEL1    = {13} ; (* of 8 bitplanes in          *)
  399.   BPLCON2_ZDBPSEL2    = {14} ; (* ZDBPEN genlock mode          *)
  400.  
  401. (* defines for bplcon3 register *)
  402.   BPLCON3_EXTBLNKEN    = {0} ; (* external blank enable        *)
  403.   BPLCON3_EXTBLKZD    = {1} ; (* external blank ored into trnsprncy   *)
  404.   BPLCON3_ZDCLKEN    = {2} ; (* zd pin outputs a 14mhz clock        *)
  405.   BPLCON3_BRDNTRAN    = {4} ; (* border is opaque            *)
  406.   BPLCON3_BRDNBLNK    = {5} ; (* border is opaque            *)
  407.  
  408. CONST
  409.   ADKB_SETCLR    = 15 ; (* standard set/clear bit            *)
  410.   ADKB_PRECOMP1    = 14 ; (* two bits of precompensation            *)
  411.   ADKB_PRECOMP0    = 13 ;
  412.   ADKB_MFMPREC    = 12 ; (* use mfm style precompensation            *)
  413.   ADKB_UARTBRK    = 11 ; (* force uart output to zero            *)
  414.   ADKB_WORDSYNC    = 10 ; (* enable DSKSYNC register matching        *)
  415.   ADKB_MSBSYNC    = 9  ; (* (Apple GCR Only) sync on MSB for reading    *)
  416.   ADKB_FAST    = 8  ; (* 1 -> 2 us/bit (mfm), 2 -> 4 us/bit (gcr)    *)
  417.   ADKB_USE3PN    = 7  ; (* use aud chan 3 to modulate period of ??    *)
  418.   ADKB_USE2P3    = 6  ; (* use aud chan 2 to modulate period of 3    *)
  419.   ADKB_USE1P2    = 5  ; (* use aud chan 1 to modulate period of 2    *)
  420.   ADKB_USE0P1    = 4  ; (* use aud chan 0 to modulate period of 1    *)
  421.   ADKB_USE3VN    = 3  ; (* use aud chan 3 to modulate volume of ??    *)
  422.   ADKB_USE2V3    = 2  ; (* use aud chan 2 to modulate volume of 3    *)
  423.   ADKB_USE1V2    = 1  ; (* use aud chan 1 to modulate volume of 2    *)
  424.   ADKB_USE0V1    = 0  ; (* use aud chan 0 to modulate volume of 1    *)
  425.  
  426.   ADKF_SETCLR    = {15} ;
  427.   ADKF_PRECOMP1 = {14} ;
  428.   ADKF_PRECOMP0    = {13} ;
  429.   ADKF_MFMPREC    = {12} ;
  430.   ADKF_UARTBRK    = {11} ;
  431.   ADKF_WORDSYNC    = {10} ;
  432.   ADKF_MSBSYNC    =  {9} ;
  433.   ADKF_FAST    =  {8} ;
  434.   ADKF_USE3PN    =  {7} ;
  435.   ADKF_USE2P3    =  {6} ;
  436.   ADKF_USE1P2    =  {5} ;
  437.   ADKF_USE0P1    =  {4} ;
  438.   ADKF_USE3VN    =  {3} ;
  439.   ADKF_USE2V3    =  {2} ;
  440.   ADKF_USE1V2    =  {1} ;
  441.   ADKF_USE0V1    =  {0} ;
  442.  
  443.   ADKF_PRE000NS    = { } ;            (* 000 ns of precomp *)
  444.   ADKF_PRE140NS    = ADKF_PRECOMP0 ;    (* 140 ns of precomp *)
  445.   ADKF_PRE280NS    = ADKF_PRECOMP1 ;    (* 280 ns of precomp *)
  446.   ADKF_PRE560NS    = ADKF_PRECOMP0+ADKF_PRECOMP1 ;
  447.                       (* 560 ns of precomp *)
  448.  
  449.  
  450. CONST
  451.   INTB_SETCLR    = 15 ; (* Set/Clear control bit. Determines if bits *)
  452.                (* written with a 1 get set or cleared. Bits *)
  453.                (* written with a zero are allways unchanged *)
  454.   INTB_INTEN    = 14 ; (* Master interrupt (enable only )        *)
  455.   INTB_EXTER    = 13 ; (* External interrupt                *)
  456.   INTB_DSKSYNC    = 12 ; (* Disk re-SYNChronized                *)
  457.   INTB_RBF    = 11 ; (* serial port Receive Buffer Full        *)
  458.   INTB_AUD3    = 10 ; (* Audio channel 3 block finished        *)
  459.   INTB_AUD2    =  9 ; (* Audio channel 2 block finished        *)
  460.   INTB_AUD1    =  8 ; (* Audio channel 1 block finished        *)
  461.   INTB_AUD0    =  7 ; (* Audio channel 0 block finished        *)
  462.   INTB_BLIT    =  6 ; (* Blitter finished                *)
  463.   INTB_VERTB    =  5 ; (* start of Vertical Blank            *)
  464.   INTB_COPER    =  4 ; (* Coprocessor                    *)
  465.   INTB_PORTS    =  3 ; (* I/O Ports and timers                *)
  466.   INTB_SOFTINT    =  2 ; (* software interrupt request            *)
  467.   INTB_DSKBLK    =  1 ; (* Disk Block done                *)
  468.   INTB_TBE    =  0 ; (* serial port Transmit Buffer Empty        *)
  469.  
  470.   INTF_SETCLR    = {15} ;
  471.   INTF_INTEN    = {14} ;
  472.   INTF_EXTER    = {13} ;
  473.   INTF_DSKSYNC    = {12} ;
  474.   INTF_RBF    = {11} ;
  475.   INTF_AUD3    = {10} ;
  476.   INTF_AUD2    =  {9} ;
  477.   INTF_AUD1    =  {8} ;
  478.   INTF_AUD0    =  {7} ;
  479.   INTF_BLIT    =  {6} ;
  480.   INTF_VERTB    =  {5} ;
  481.   INTF_COPER    =  {4} ;
  482.   INTF_PORTS    =  {3} ;
  483.   INTF_SOFTINT    =  {2} ;
  484.   INTF_DSKBLK    =  {1} ;
  485.   INTF_TBE    =  {0} ;
  486.  
  487. (* write definitions for dmaconw *)
  488. CONST
  489.   DMAF_SETCLR  = {15} ;
  490.   DMAF_AUD0    =  {0} ;
  491.   DMAF_AUD1    =  {1} ;
  492.   DMAF_AUD2    =  {2} ;
  493.   DMAF_AUD3    =  {3} ;
  494.   DMAF_DISK    =  {4} ;
  495.   DMAF_SPRITE  =  {5} ;
  496.   DMAF_BLITTER =  {6} ;
  497.   DMAF_COPPER  =  {7} ;
  498.   DMAF_RASTER  =  {8} ;
  499.   DMAF_MASTER  =  {9} ;
  500.   DMAF_BLITHOG = {10} ;
  501.  
  502.   DMAF_AUDIO   = {0..3} ; (* 4 bit mask *)
  503.   DMAF_ALL     = {0..8} ; (* all dma channels *)
  504.  
  505. (* read definitions for dmaconr *)
  506. (* bits 0-8 correspnd to dmaconw definitions *)
  507.   DMAF_BLTDONE  = {14} ;
  508.   DMAF_BLTNZERO    = {13} ;
  509.  
  510. CONST
  511.   DMAB_AUD0    =  0 ;
  512.   DMAB_AUD1    =  1 ;
  513.   DMAB_AUD2    =  2 ;
  514.   DMAB_AUD3    =  3 ;
  515.   DMAB_DISK    =  4 ;
  516.   DMAB_SPRITE    =  5 ;
  517.   DMAB_BLITTER    =  6 ;
  518.   DMAB_COPPER    =  7 ;
  519.   DMAB_RASTER    =  8 ;
  520.   DMAB_MASTER    =  9 ;
  521.   DMAB_BLITHOG  = 10 ;
  522.   DMAB_BLTDONE  = 14 ;
  523.   DMAB_BLTNZERO    = 13 ;
  524.   DMAB_SETCLR    = 15 ;
  525.  
  526. END Hardware.
  527.