home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / OB3.2D3.DMS / in.adf / Interfaces / Parallel.mod < prev    next >
Encoding:
Text File  |  1992-12-17  |  3.0 KB  |  90 lines

  1. (*-------------------------------------------------------------------------*)
  2. (*                                                                         *)
  3. (*  Amiga Oberon Interface Module:                    Date: 02-Nov-92      *)
  4. (*                                                                         *)
  5. (*   © 1992 by Fridtjof Siebert                                            *)
  6. (*                                                                         *)
  7. (*-------------------------------------------------------------------------*)
  8.  
  9. MODULE Parallel;   (* $Implementation- *)
  10.  
  11. IMPORT e * := Exec;
  12.  
  13. TYPE
  14.  
  15.   IOPArrayPtr * = UNTRACED POINTER TO IOPArray;
  16.   IOPArray * = ARRAY 8 OF CHAR;
  17.  
  18. (******************************************************************)
  19. (* CAUTION !!  IF YOU ACCESS the parallel.device, you MUST (!!!!) use
  20.    an IOExtPar-sized structure or you may overlay innocent memory !! *)
  21. (******************************************************************)
  22.  
  23.   IOExtParPtr * = UNTRACED POINTER TO IOExtPar;
  24.   IOExtPar * = STRUCT (ioPar * : e.IOStdReq)
  25.  
  26. (*     STRUCT   MsgNode
  27. *   0   APTR     Succ
  28. *   4   APTR     Pred
  29. *   8   UBYTE    Type
  30. *   9   UBYTE    Pri
  31. *   A   APTR     Name
  32. *   E   APTR     ReplyPort
  33. *  12   UWORD    MNLength
  34. *     STRUCT   IOExt
  35. *  14   APTR     io_Device
  36. *  18   APTR     io_Unit
  37. *  1C   UWORD    io_Command
  38. *  1E   UBYTE    io_Flags
  39. *  1F   UBYTE    io_Error
  40. *     STRUCT   IOStdExt
  41. *  20   ULONG    io_Actual
  42. *  24   ULONG    io_Length
  43. *  28   APTR     io_Data
  44. *  2C   ULONG    io_Offset
  45. *  30 *)
  46.  
  47.     pExtFlags * : LONGSET;     (* (not used) flag extension area *)
  48.     status * : SHORTSET;       (* status of parallel port and registers *)
  49.     parFlags * : SHORTSET;     (* see PARFLAGS bit definitions below *)
  50.     pTermArray * : IOPArray;   (* termination character array *)
  51.   END;
  52.  
  53. CONST
  54.  
  55.   shared     * = 5;          (* parFlags non-exclusive access bit *)
  56.   slowMode   * = 4;          (*    "     slow printer bit *)
  57.   fastMode   * = 3;          (*    "     fast I/O mode selected bit *)
  58.   radBoogie  * = 3;          (*    "     for backward compatibility *)
  59.  
  60.   ackMode    * = 2;          (*    "     ACK interrupt handshake bit *)
  61.  
  62.   eofMode    * = 1;          (*    "     EOF mode enabled bit *)
  63.  
  64.   queued     * = 6;          (* flags rqst-queued bit *)
  65.   abort      * = 5;          (*   "   rqst-aborted bit *)
  66.   active     * = 4;          (*   "   rqst-qued-or-current bit *)
  67.  
  68.   rwDir      * = 3;          (* status read=0,write=1 bit *)
  69.   parSel     * = 2;          (*   "    printer selected on the A1000 *)
  70.   paperOut   * = 1;          (*   "    paper out bit *)
  71.   parBusy    * = 0;          (*   "    printer in busy toggle bit *)
  72. (* Note: previous versions of this include files had bits 0 and 2 swapped *)
  73.  
  74.   parallelName * = "parallel.device";
  75.  
  76.   query         * = e.nonstd;
  77.   setparams     * = e.nonstd + 1;
  78.  
  79. (* ParErrs: *)
  80.   devBusy      * = 1;
  81.   bufTooBig    * = 2;
  82.   invParam     * = 3;
  83.   lineErr      * = 4;
  84.   notOpen      * = 5;
  85.   portReset    * = 6;
  86.   initErr      * = 7;
  87.  
  88. END Parallel.
  89.  
  90.