home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD2.bin / bbs / dev / oberon-a-1.4ß.lha / Oberon-A / source / amiga / Serial.mod < prev    next >
Text File  |  1994-08-08  |  5KB  |  146 lines

  1. (**************************************************************************
  2.  
  3.      $RCSfile: Serial.mod $
  4.   Description: external declarations for the serial device
  5.  
  6.    Created by: fjc (Frank Copeland)
  7.     $Revision: 3.2 $
  8.       $Author: fjc $
  9.         $Date: 1994/08/08 00:51:36 $
  10.  
  11.   $VER: serial.h 33.6 (6.11.90)
  12.   Includes Release 40.15
  13.  
  14.   (C) Copyright 1985-1993 Commodore-Amiga, Inc.
  15.       All Rights Reserved
  16.  
  17.   Oberon-A interface Copyright © 1994, Frank Copeland.
  18.   This file is part of the Oberon-A Interface.
  19.   See Oberon-A.doc for conditions of use and distribution.
  20.  
  21. ***************************************************************************)
  22.  
  23. MODULE Serial;
  24.  
  25. (*
  26. ** $C- CaseChk       $I- IndexChk  $L+ LongAdr   $N- NilChk
  27. ** $P- PortableCode  $R- RangeChk  $S- StackChk  $T- TypeChk
  28. ** $V- OvflChk       $Z- ZeroVars
  29. *)
  30.  
  31. IMPORT E := Exec;
  32.  
  33.  
  34.                    (* array of termination char's *)
  35.                    (* to use,see serial.doc setparams *)
  36.  
  37. TYPE
  38.  
  39.   IOTArrayPtr * = CPOINTER TO IOTArray;
  40.   IOTArray * = RECORD
  41.     TermArray0 * : E.ULONG;
  42.     TermArray1 * : E.ULONG;
  43.   END; (* IOTArray *)
  44.  
  45. CONST
  46.  
  47.   defaultCtlChar * = 11130000H;  (* default chars for xON,xOFF *)
  48.  
  49. (* You may change these via SETPARAMS.  At this time, parity is not
  50.    calculated for xON/xOFF characters.  You must supply them with the
  51.    desired parity. *)
  52.  
  53. (******************************************************************)
  54. (* CAUTION !!  IF YOU ACCESS the serial.device, you MUST (!!!!) use an
  55.    IOExtSer-sized $tructure or you may overlay innocent memory !! *)
  56. (******************************************************************)
  57.  
  58. TYPE
  59.  
  60.   IOExtSerPtr * = CPOINTER TO IOExtSer;
  61.   IOExtSer * = RECORD (E.IOStdReq)
  62.     ctlChar *   : E.ULONG;  (* control char's (order = xON,xOFF,INQ,ACK) *)
  63.     rBufLen *   : E.ULONG;  (* length in bytes of serial port's read buffer *)
  64.     extFlags *  : SET;      (* additional serial flags (see bitdefs below) *)
  65.     baud *      : E.ULONG;  (* baud rate requested (true baud) *)
  66.     brkTime *   : E.ULONG;  (* duration of break signal in MICROseconds *)
  67.     termArray * : IOTArray; (* termination character array *)
  68.     readLen *   : E.UBYTE;  (* bits per read character (# of bits) *)
  69.     writeLen *  : E.UBYTE;  (* bits per write character (# of bits) *)
  70.     stopBits *  : E.UBYTE;  (* stopbits for read (# of bits) *)
  71.     serFlags *  : E.BSET;   (* see SerFlags bit definitions below  *)
  72.     status *    : E.WSET;
  73.   END; (* IOExtSer *)
  74.  
  75.    (* status of serial port, as follows:
  76. *                  BIT  ACTIVE  FUNCTION
  77. *                   0    ---    reserved
  78. *                   1    ---    reserved
  79. *                   2    high   Connected to parallel "select" on the A1000.
  80. *                               Connected to both the parallel "select" and
  81. *                               serial "ring indicator" pins on the A500
  82. *                               & A2000.  Take care when making cables.
  83. *                   3    low    Data Set Ready
  84. *                   4    low    Clear To Send
  85. *                   5    low    Carrier Detect
  86. *                   6    low    Ready To Send
  87. *                   7    low    Data Terminal Ready
  88. *                   8    high   read overrun
  89. *                   9    high   break sent
  90. *                  10    high   break received
  91. *                  11    high   transmit x-OFFed
  92. *                  12    high   receive x-OFFed
  93. *               13-15           reserved
  94. *)
  95.  
  96. CONST
  97.  
  98.   query     * =     E.cmdNonstd;     (* $09 *)
  99.   break     * =     E.cmdNonstd+1;   (* $0A *)
  100.   setParams * =     E.cmdNonstd+2;   (* $0B *)
  101.  
  102.  
  103.   xDisabled  * = 7;       (* ioSerFlags xOn-xOff feature disabled bit *)
  104.   eofMode    * = 6;       (*    "     EOF mode enabled bit *)
  105.   shared     * = 5;       (*    "     non-exclusive access bit *)
  106.   radBoogie  * = 4;       (*    "     high-speed mode active bit *)
  107.   queuedBrk  * = 3;       (*    "     queue this Break ioRqst *)
  108.   sevenWire  * = 2;       (*    "     RS232 7-wire protocol *)
  109.   partyOdd   * = 1;       (*    "     parity feature enabled bit *)
  110.   partyOn    * = 0;       (*    "     parity-enabled bit *)
  111.  
  112. (* These now refect the actual bit positions in the ioStatus UWORD *)
  113.   xOffRead *   = 12;     (* ioStatus receive currently xOFF'ed bit *)
  114.   xOffWrite *  = 11;     (*    "     transmit currently xOFF'ed bit *)
  115.   readBreak *  = 10;     (*    "     break was latest input bit *)
  116.   wroteBreak * = 9;      (*    "     break was latest output bit *)
  117.   overRun *    = 8;      (*    "     status word RBF overrun bit *)
  118.  
  119.  
  120.   extMSpOn     * = 1;       (* ioExtFlags. Use mark-space parity, *)
  121.                          (*          instead of odd-even. *)
  122.   extMark      * = 0;       (*    "     if mark-space, use mark *)
  123.  
  124.  
  125.   serErrDevBusy         * = 1;
  126.   serErrBaudMismatch    * = 2; (* baud rate not supported by hardware *)
  127.   serErrBufErr          * = 4; (* Failed to allocate new read buffer *)
  128.   serErrInvParam        * = 5;
  129.   serErrLineErr         * = 6;
  130.   serErrParityErr       * = 9;
  131.   serErrTimerErr       * = 11; (*(See the serial/OpenDevice autodoc)*)
  132.   serErrBufOverflow    * = 12;
  133.   serErrNoDSR          * = 13;
  134.   serErrDetectedBreak  * = 15;
  135.  
  136.  
  137.   serErrInvBaud         * = 3;        (* unused *)
  138.   serErrNotOpen         * = 7;        (* unused *)
  139.   serErrPortReset       * = 8;        (* unused *)
  140.   serErrInitErr        *  = 10;       (* unused *)
  141.   serErrNoCTS          *  = 14;       (* unused *)
  142.  
  143.   name     * = "serial.device";
  144.  
  145. END Serial.
  146.