home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / dev / m2 / CycloneModules.lha / modules / txt / Parallel.def < prev    next >
Text File  |  1996-09-15  |  3KB  |  90 lines

  1. DEFINITION MODULE Parallel;
  2. (* 1-Sep-96/Stefan Tiemann for Cyclone *)
  3. (* Converted from C-Include: parallel.h 36.1 (10.5.90), Includes Release 40.15 *)
  4. (* parallel.device I/O request structure information *)
  5.  
  6. (*$ Implementation- *)
  7.  
  8. IMPORT ED: ExecD;
  9.  
  10. TYPE
  11.  IOPArray= RECORD
  12.   pTermArray0: LONGCARD;
  13.   pTermArray1: LONGCARD;
  14.  END;
  15.  
  16.  ParFlags= (pf0,
  17.             eofMode,  (* EOF mode enabled bit *)
  18.             ackMode,  (*    ACK interrupt handshake bit *)
  19.             fastMode, (* fast I/O mode selected bit *)
  20.             slowMode, (* slow printer bit *)
  21.             shared      (* non-exclusive access bit *)
  22.            );
  23.  ParFlagSet= SET OF ParFlags;
  24. CONST
  25.  radBoogie= fastMode;  (* for backward compatibility *)
  26.  
  27. TYPE
  28.  Status= (parBusy,       (*     "     printer in busy toggle bit *)
  29.            paperOut,       (*     "     paper out bit *)
  30.           parSel,       (* printer selected on the A1000 *)
  31.                       (* printer selected & serial "Ring Indicator"
  32.                       on the A500 & A2000.  Be careful when
  33.                       making cables *)
  34.           rwDir,       (* IO_STATUS read=0,write=1 bit *)
  35.           active,       (* rqst-qued-or-current bit *)
  36.           abort,       (* rqst-aborted bit *)
  37.           queued       (* rqst-queued bit *)
  38.          );
  39.  StatusSet= SET OF Status;
  40.  
  41. (******************************************************************)
  42. (* CAUTION !!  IF YOU ACCESS the parallel.device, you MUST (!!!!) use
  43.    an IOExtPar-sized structure or you may overlay innocent memory !! *)
  44. (******************************************************************)
  45.  
  46.  IOExtPar= RECORD
  47.   ioPar: ED.IOStdReq;
  48. (*     STRUCT    MsgNode
  49. *   0    APTR     Succ
  50. *   4    APTR     Pred
  51. *   8    UBYTE     Type
  52. *   9    UBYTE     Pri
  53. *   A    APTR     Name
  54. *   E    APTR     ReplyPort
  55. *  12    UWORD     MNLength
  56. *     STRUCT   IOExt
  57. *  14    APTR     io_Device
  58. *  18    APTR     io_Unit
  59. *  1C    UWORD     io_Command
  60. *  1E    UBYTE     io_Flags
  61. *  1F    UBYTE     io_Error
  62. *     STRUCT   IOStdExt
  63. *  20    ULONG     io_Actual
  64. *  24    ULONG     io_Length
  65. *  28    APTR     io_Data
  66. *  2C    ULONG     io_Offset
  67. *  30 *)
  68.     pExtFlags : LONGCARD;     (* (not used) flag extension area *)
  69.     status: StatusSet;       (* status of parallel port and registers *)
  70.     parFlags: ParFlagSet;     (* see PARFLAGS bit definitions above *)
  71.     pTermArry: IOPArray;      (* termination character array *)
  72.  END;
  73.  IOExtParPtr= POINTER TO IOExtPar;
  74.  
  75. CONST
  76.  parallelName=    "parallel.device";
  77.  
  78.  query= ED.nonstd;
  79.  setParams= ED.nonstd+1;
  80.  
  81. TYPE
  82.  ParErr= (pe0, devBusy, bufTooBig, invParam, lineErr,
  83.           notOpen, portReset, initErr);
  84.  
  85.  // Compatibilty with M2Amiga
  86.  IOParallel= IOExtPar;
  87.  IOParallelPtr= IOExtParPtr;
  88. END Parallel.
  89.  
  90.