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

  1. (*$M-*)
  2. DEFINITION MODULE PrtBase;
  3.  
  4. FROM SYSTEM IMPORT
  5.  ADDRESS,BYTE;
  6. FROM Exec IMPORT
  7.  Library,MsgPort,Task,UByte;
  8. FROM Intuition IMPORT
  9.  Preferences;
  10. FROM Parallel IMPORT
  11.  IOParallel;
  12. FROM Serial IMPORT
  13.  IOSerial;
  14. FROM Timer IMPORT
  15.  IOTimer;
  16.  
  17. TYPE
  18.  DeviceData=RECORD
  19.   device:Library;
  20.   segment:ADDRESS;
  21.   execBase:ADDRESS;
  22.   cmdVectors:ADDRESS;
  23.   cmdBytes:ADDRESS;
  24.   numCommands:CARDINAL;
  25.  END;
  26.  DeviceDataPtr=POINTER TO DeviceData;
  27.  
  28. CONST
  29.  stkSize=0800H;
  30.  
  31. TYPE
  32.  PrinterSegmentPtr=POINTER TO PrinterSegment;
  33.  PrinterData=RECORD
  34.   device:DeviceData;
  35.   unit:MsgPort;
  36.   printerSegment:ADDRESS;
  37.   printerType:CARDINAL;
  38.   segmentData:PrinterSegmentPtr;
  39.   printBuf:ADDRESS;
  40.   pWrite:PROCEDURE():INTEGER;
  41.   pBothReady:PROCEDURE():INTEGER;
  42.   CASE :INTEGER OF
  43.   | 1: p0:IOParallel;
  44.        p1:IOParallel;
  45.   | 2: s0:IOSerial;
  46.        s1:IOSerial;
  47.   END;
  48.   tior:IOTimer;
  49.   iorPort:MsgPort;
  50.   tc:Task;
  51.   stk:ARRAY [0..stkSize-1] OF BYTE;
  52.   flags:UByte;
  53.   pad:BYTE;
  54.   preferences:Preferences;
  55.   pWaitEnabled:UByte;
  56.  END;
  57.  PrinterDataPtr=POINTER TO PrinterData;
  58.  PrinterClass=(gfx,color);
  59.  PrinterClassSet=SET OF PrinterClass;
  60.  
  61. CONST
  62.  bwAlpha=0;
  63.  bwGfx=1;
  64.  colorGfx=3;
  65.  bw=1;
  66.  ymc=2;
  67.  ymcBw=3;
  68.  ymcb=4;
  69.  fourColor=04H;
  70.  additive=8;
  71.  wb=9;
  72.  bgr=10;
  73.  bgrWb=11;
  74.  bgrw=12;
  75.  
  76. TYPE
  77.  PrinterExtendedData=RECORD
  78.   printerName:ADDRESS;
  79.   init:PROC;
  80.   expunge:PROC;
  81.   open:PROCEDURE():INTEGER;
  82.   close:PROC;
  83.   printerClass:BYTE; (* little bit strange *)
  84.   colorClass:UByte;
  85.   maxColumns:UByte;
  86.   numCharSets:UByte;
  87.   numRows:CARDINAL;
  88.   maxXDots:LONGCARD;
  89.   maxYDots:LONGCARD;
  90.   xDotsInch:CARDINAL;
  91.   yDotsInch:CARDINAL;
  92.   commands:ADDRESS;
  93.   doSpecial:PROCEDURE():INTEGER;
  94.   render:PROCEDURE():INTEGER;
  95.   timeoutSecs:LONGINT;
  96.   EightBitChars:ADDRESS;
  97.  END;
  98.  PrinterExtendedDataPtr=POINTER TO PrinterExtendedData;
  99.  PrinterSegment=RECORD
  100.   nextSegment:ADDRESS;
  101.   runAlert:LONGCARD;
  102.   version:CARDINAL;
  103.   revision:CARDINAL;
  104.   ped:PrinterExtendedData;
  105.  END;
  106.  
  107. END PrtBase.
  108.