home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / MODULAV2GERMAN.DMS / in.adf / Def.zoo / Hardware.def < prev    next >
Encoding:
Modula Definition  |  1988-12-05  |  5.6 KB  |  277 lines

  1. (*$M-*)
  2. DEFINITION MODULE Hardware;
  3.  
  4. FROM SYSTEM IMPORT
  5.  ADDRESS,BITSET;
  6.  
  7. TYPE
  8.  Byte=[-128..127];
  9.  UByte=[0..255];
  10.  
  11. TYPE
  12.  AdkFlags=(
  13.   use0v1,use1v2,use2v3,use3vn,use0p1,use1p2,use2p3,use3pn,
  14.   fast,msbSync,wordSync,uartBrk,mfmPrec,preComp0,preComp1,
  15.   adkSet
  16.  );
  17.  AdkFlagSet=SET OF AdkFlags;
  18.  
  19. CONST
  20.  pre000ns=AdkFlagSet{};
  21.  pre140ns=AdkFlagSet{preComp0};
  22.  pre280ns=AdkFlagSet{preComp1};
  23.  pre560ns=AdkFlagSet{preComp0,preComp1};
  24.  
  25. TYPE
  26.  DmaFlags=(
  27.   aud0,aud1,aud2,aud3,disk,sprite,blitter,copper,
  28.   raster,master,blithog,df11,df12,bltnzero,bltdone,dmaSet
  29.  );
  30.  DmaFlagSet=SET OF DmaFlags;
  31.  
  32. CONST
  33.  dmaAll=DmaFlagSet{aud0..raster};
  34.  
  35. TYPE
  36.  IntFlags=(
  37.   tbe,dskblk,softint,ports,coper,vertb,blit,aud0i,
  38.   aud1i,aud2i,aud3i,rbf,disksync,exter,inten,intSet
  39.  );
  40.  IntFlagSet=SET OF IntFlags;
  41.  
  42. CONST
  43.  hSizeBits=6;
  44.  vSizeBits=16-hSizeBits;
  45.  hSizeMask=03FH;
  46.  vSizeMask=03FFH;
  47.  maxBytesPerRow=128;
  48.  
  49. TYPE
  50.  BC0Flags=(
  51.   nanbnc,nanbc,nabnc,nabc,anbnc,anbc,abnc,abc,
  52.   dest,srcC,srcB,srcA,ash1,ash2,ash4,ash8
  53.  );
  54.  BC0FlagSet=SET OF BC0Flags;
  55.  
  56. CONST
  57.  aORb=BC0FlagSet{abc,anbc,nabc,abnc,anbnc,nabnc};
  58.  aORc=BC0FlagSet{abc,nabc,abnc,anbc,nanbc,anbnc};
  59.  aXORc=BC0FlagSet{nabc,abnc,nanbc,anbnc};
  60.  aTOd=BC0FlagSet{abc,anbc,abnc,anbnc};
  61.  
  62. TYPE
  63.  BC1Flags=(
  64.   lineMode,desc,fillCarryIn,fillOr,fillXor,ovFlag,signFlag,
  65.   bf7,bf8,bf9,bf10,bf11,bsh1,bsh2,bsh4,bsh8
  66.  );
  67.  BC1FlagSet=SET OF BC1Flags;
  68. CONST
  69.  oneDot=desc;
  70.  blitReverse=desc;
  71.  aul=BC1FlagSet{fillCarryIn};
  72.  sul=BC1FlagSet{fillOr};
  73.  sud=BC1FlagSet{fillXor};
  74.  octant1=sud;
  75.  octant2=BC1FlagSet{};
  76.  octant3=sul;
  77.  octant4=aul+sud;
  78.  octant5=aul+sul+sud;
  79.  octant6=aul+sul;
  80.  octant7=aul;
  81.  octant8=sul+sud;
  82.  
  83. TYPE
  84.  BltnodePtr=POINTER TO Bltnode;
  85.  Bltnode=RECORD
  86.   n:BltnodePtr;
  87.   function:ADDRESS;
  88.   stat:CHAR;
  89.   blitsize:INTEGER;
  90.   beamsync:INTEGER;
  91.   cleanup:ADDRESS;
  92.  END;
  93.  
  94. CONST
  95.  cleanup=40H;
  96.  cleanme=cleanup;
  97.  
  98. TYPE
  99.  Coord=RECORD
  100.   v,h:Byte;
  101.  END;
  102.  Custom=RECORD
  103.   bltddat:CARDINAL;
  104.   dmaconr:DmaFlagSet;
  105.   vposr:LONGCARD;
  106.   dskdatr:CARDINAL;
  107.   joy0dat:Coord;
  108.   joy1dat:Coord;
  109.   clxdat:CARDINAL;
  110.   adkconr:BITSET;
  111.   pot0dat:CARDINAL;
  112.   pot1dat:CARDINAL;
  113.   potinp:CARDINAL;
  114.   serdatr:CARDINAL;
  115.   dskbytr:CARDINAL;
  116.   intenar:IntFlagSet;
  117.   intreqr:CARDINAL;
  118.   dskpt:ADDRESS;
  119.   dsklen:CARDINAL;
  120.   dskdat:CARDINAL;
  121.   refptr:CARDINAL;
  122.   vposw:CARDINAL;
  123.   vhposw:CARDINAL;
  124.   copcon:BITSET;
  125.   serdat:CARDINAL;
  126.   serper:CARDINAL;
  127.   potgo:CARDINAL;
  128.   joytest:CARDINAL;
  129.   strequ:CARDINAL;
  130.   strvbl:CARDINAL;
  131.   strhor:CARDINAL;
  132.   strlong:CARDINAL;
  133.   bltcon0:BITSET;
  134.   bltcon1:BITSET;
  135.   bltafwm:CARDINAL;
  136.   bltalwm:CARDINAL;
  137.   bltcpt:ADDRESS;
  138.   bltbpt:ADDRESS;
  139.   bltapt:ADDRESS;
  140.   bltdpt:ADDRESS;
  141.   bltsize:CARDINAL;
  142.   pad2d:ARRAY [0..2] OF CARDINAL;
  143.   bltcmod:CARDINAL;
  144.   bltbmod:CARDINAL;
  145.   bltamod:CARDINAL;
  146.   bltdmod:CARDINAL;
  147.   pad34:ARRAY [0..3] OF CARDINAL;
  148.   bltcdat:CARDINAL;
  149.   bltbdat:CARDINAL;
  150.   bltadat:CARDINAL;
  151.   pad3b:ARRAY [0..3] OF CARDINAL;
  152.   dsksync:CARDINAL;
  153.   cop1lc:LONGCARD;
  154.   cop2lc:LONGCARD;
  155.   copjmp1:CARDINAL;
  156.   copjmp2:CARDINAL;
  157.   copins:CARDINAL;
  158.   diwstrt:CARDINAL;
  159.   diwstop:CARDINAL;
  160.   ddfstrt:CARDINAL;
  161.   ddfstop:CARDINAL;
  162.   dmacon:DmaFlagSet;
  163.   clxcon:CARDINAL;
  164.   intena:IntFlagSet;
  165.   intreq:CARDINAL;
  166.   adkcon:BITSET;
  167.   aud:ARRAY [0..3] OF RECORD
  168.    acptr:ADDRESS;
  169.    aclen:CARDINAL;
  170.    acper:CARDINAL;
  171.    acvol:CARDINAL;
  172.    acdat:CARDINAL;
  173.    acpad:ARRAY [0..1] OF CARDINAL;
  174.   END;
  175.   bplpt:ARRAY [0..5] OF ADDRESS;
  176.   pad7c:ARRAY [0..3] OF CARDINAL;
  177.   bplcon0:CARDINAL;
  178.   bplcon1:CARDINAL;
  179.   bplcon2:CARDINAL;
  180.   pad83:CARDINAL;
  181.   bpl1mod:CARDINAL;
  182.   bpl2mod:CARDINAL;
  183.   pad86:ARRAY [0..1] OF CARDINAL;
  184.   bpldat:ARRAY [0..5] OF CARDINAL;
  185.   pad8e:ARRAY [0..1] OF CARDINAL;
  186.   sprpt:ARRAY [0..7] OF ADDRESS;
  187.   spr:ARRAY [0..7] OF RECORD
  188.    pos:CARDINAL;
  189.    ctl:CARDINAL;
  190.    dataa:CARDINAL;
  191.    datab:CARDINAL;
  192.   END;
  193.   color:ARRAY [0..31] OF CARDINAL;
  194.  END;
  195.  
  196. VAR
  197.  custom[0DFF000H]:Custom;
  198.  
  199. TYPE
  200.  CiaIcrFlags=(ta,tb,alrm,sp,flg,if5,if6,setclr);
  201.  CiaIcrFlagSet=SET OF CiaIcrFlags;
  202. CONST
  203.  ir=setclr; (* On read setclr has the meaning of ir *)
  204. TYPE
  205.  CiaCraFlags=(
  206.   craStart,craPbon,craOutmode,craRunmode,craLoad,craInmode,
  207.   craSpmode,craTodin
  208.  );
  209.  CiaCraFlagSet=SET OF CiaCraFlags;
  210.  CiaCrbFlags=(
  211.   crbStart,crbPbon,crbOutmode,crbRunmode,crbLoad,crbInmode0,
  212.   crbInmode1,crbAlarm
  213.  );
  214.  CiaCrbFlagSet=SET OF CiaCrbFlags;
  215.  CiaaPraFlags=(
  216.   overlay,led,dskChange,dskProt,dskTrack0,dskRdy,gamePort0,
  217.   gamePort1
  218.  );
  219.  CiaaPraFlagSet=SET OF CiaaPraFlags;
  220.  CiaaPrbFlags=[0..7]; (* Parallel port *)
  221.  CiaaPrbFlagSet=SET OF CiaaPrbFlags;
  222.  CiabPraFlags=(
  223.   prtrBusy,prtrPOut,prtrSel,comDSR,comCTS,comCD,comRTS,comDTR
  224.  );
  225.  CiabPraFlagSet=SET OF CiabPraFlags;
  226.  CiabPrbFlags=(
  227.   dskStep,dskDirec,dskSide,dskSel0,dskSel1,dskSel2,dskSel3,
  228.   dskMotor
  229.  );
  230.  CiabPrbFlagSet=SET OF CiabPrbFlags;
  231.  
  232. TYPE
  233.  ShortSet=SET OF [0..7];
  234.  Pad=ARRAY [0..253] OF ShortSet;
  235.  CIAA=RECORD
  236.   pra:CiaaPraFlagSet; pad0:Pad;
  237.   prb:CiaaPrbFlagSet; pad1:Pad;
  238.   ddra:CiaaPraFlagSet; pad2:Pad;
  239.   ddrb:CiaaPrbFlagSet; pad3:Pad;
  240.   talo:UByte; pad4:Pad;
  241.   tahi:UByte; pad5:Pad;
  242.   tblo:UByte; pad6:Pad;
  243.   tbhi:UByte; pad7:Pad;
  244.   todlow:UByte; pad8:Pad;
  245.   todmid:UByte; pad9:Pad;
  246.   todhi:UByte; pad10:Pad;
  247.   unusedreg:ShortSet; pad11:Pad;
  248.   sdr:ShortSet; pad12:Pad;
  249.   icr:CiaIcrFlagSet; pad13:Pad;
  250.   cra:CiaCraFlagSet; pad14:Pad;
  251.   crb:CiaCrbFlagSet;
  252.  END;
  253.  CIAB=RECORD
  254.   pra:CiabPraFlagSet; pad0:Pad;
  255.   prb:CiabPrbFlagSet; pad1:Pad;
  256.   ddra:CiabPraFlagSet; pad2:Pad;
  257.   ddrb:CiabPrbFlagSet; pad3:Pad;
  258.   talo:UByte; pad4:Pad;
  259.   tahi:UByte; pad5:Pad;
  260.   tblo:UByte; pad6:Pad;
  261.   tbhi:UByte; pad7:Pad;
  262.   todlow:UByte; pad8:Pad;
  263.   todmid:UByte; pad9:Pad;
  264.   todhi:UByte; pad10:Pad;
  265.   unusedreg:ShortSet; pad11:Pad;
  266.   sdr:ShortSet; pad12:Pad;
  267.   icr:CiaIcrFlagSet; pad13:Pad;
  268.   cra:CiaCraFlagSet; pad14:Pad;
  269.   crb:CiaCrbFlagSet;
  270.  END;
  271.  
  272. VAR
  273.  ciaa[0BFE001H]:CIAA;
  274.  ciab[0BFD000H]:CIAB;
  275.  
  276. END Hardware.
  277.