home *** CD-ROM | disk | FTP | other *** search
/ AMIGA PD 1 / AMIGA-PD-1.iso / Programme_zum_Heft / Programmieren / Kurztests / PascalPCQ / Include / Devices / Parallel.i < prev    next >
Text File  |  1990-08-28  |  3KB  |  93 lines

  1. {
  2.     Parallel.i for PCQ Pascal
  3.  
  4.     external declarations for Parallel Port Driver
  5. }
  6.  
  7. {$I "Include:Exec/IO.i"}
  8.  
  9. Type
  10.  
  11.     IOPArray = record
  12.     PTermArray0    : Integer;
  13.     PTermArray1    : Integer;
  14.     end;
  15.     IOPArrayPtr = ^IOPArray;
  16.  
  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.     IOExtPar = record
  24.     IOPar        : 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.     io_PExtFlags    : Integer;    { (not used) flag extension area }
  47.     io_Status    : Byte;        { status of parallel port and registers }
  48.     io_ParFlags    : Byte;        { see PARFLAGS bit definitions below }
  49.     io_PTermArray    : IOPArray;    { termination character array }
  50.     end;
  51.     IOExtParPtr = ^IOExtPar;
  52.  
  53. Const
  54.  
  55.     PARB_SHARED        = 5;    { ParFlags non-exclusive access bit }
  56.     PARF_SHARED        = 32;    {     "     non-exclusive access mask }
  57.     PARB_RAD_BOOGIE    = 3;    {     "     (not yet implemented) }
  58.     PARF_RAD_BOOGIE    = 8;    {     "     (not yet implemented) }
  59.     PARB_EOFMODE    = 1;    {     "     EOF mode enabled bit }
  60.     PARF_EOFMODE    = 2;    {     "     EOF mode enabled mask }
  61.     IOPARB_QUEUED    = 6;    { IO_FLAGS rqst-queued bit }
  62.     IOPARF_QUEUED    = 64;    {     "     rqst-queued mask }
  63.     IOPARB_ABORT    = 5;    {     "     rqst-aborted bit }
  64.     IOPARF_ABORT    = 32;    {     "     rqst-aborted mask }
  65.     IOPARB_ACTIVE    = 4;    {     "     rqst-qued-or-current bit }
  66.     IOPARF_ACTIVE    = 16;    {     "     rqst-qued-or-current mask }
  67.     IOPTB_RWDIR        = 3;    { IO_STATUS read=0,write=1 bit }
  68.     IOPTF_RWDIR        = 8;    {     "     read=0,write=1 mask }
  69.     IOPTB_PARSEL    = 2;    {     "     printer selected on the A1000 }
  70.     IOPTF_PARSEL    = 4;    { printer selected & serial "Ring Indicator"
  71.                   on the A500 & A2000.  Be careful when
  72.                   making cables }
  73.     IOPTB_PAPEROUT    = 1;    {     "     paper out bit }
  74.     IOPTF_PAPEROUT    = 2;    {     "     paper out mask }
  75.     IOPTB_PARBUSY    = 0;    {     "     printer in busy toggle bit }
  76.     IOPTF_PARBUSY    = 1;    {     "     printer in busy toggle mask }
  77.  
  78. { Note: previous versions of this include files had bits 0 and 2 swapped }
  79.  
  80.     PARALLELNAME    = "parallel.device";
  81.  
  82.     PDCMD_QUERY        = CMD_NONSTD;
  83.     PDCMD_SETPARAMS    = CMD_NONSTD + 1;
  84.  
  85.     ParErr_DevBusy    = 1;
  86.     ParErr_BufTooBig    = 2;
  87.     ParErr_InvParam    = 3;
  88.     ParErr_LineErr    = 4;
  89.     ParErr_NotOpen    = 5;
  90.     ParErr_PortReset    = 6;
  91.     ParErr_InitErr    = 7;
  92.  
  93.