home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1998 #6
/
amigamamagazinepolishissue1998.iso
/
coders
/
jËzyki_programowania
/
oberon
/
system
/
amigaserial.mod
(
.txt
)
< prev
next >
Wrap
Oberon Text
|
1977-12-31
|
4KB
|
77 lines
Syntax10.Scn.Fnt
Syntax10i.Scn.Fnt
Syntax10b.Scn.Fnt
MODULE AmigaSerial; (* RD 31 Dec 95 *)
IMPORT E:=AmigaExec;
CONST
defaultCtlChar * = 011130000H; (* default chars for xON,xOFF *)
(* You may change these via SETPARAMS. At this time, parity is not
calculated for xON/xOFF characters. You must supply them with the
desired parity.
query* = E.nonstd; (* 09H *)
break* = E.nonstd+1; (* 0AH *)
setparams* = E.nonstd+2; (* 0BH *)
xDisabled* = 7; (* serFlags xOn-xOff feature disabled bit *)
eofMode* = 6; (* " EOF mode enabled bit *)
shared* = 5; (* " non-exclusive access bit *)
radBoogie* = 4; (* " high-speed mode active bit *)
queuedBrk* = 3; (* " queue this Break ioRqst *)
sevenWire* = 2; (* " RS232 7-wire protocol *)
partyOdd* = 1; (* " parity feature enabled bit *)
partyOn* = 0; (* " parity-enabled bit *)
(* These now refect the actual bit positions in the io_Status UWORD *)
xOffRead* = 12; (* status receive currently xOFF'ed bit *)
xOffWrite* = 11; (* " transmit currently xOFF'ed bit *)
readBreak* = 10; (* " break was latest input bit *)
wroteBreak* = 9; (* " break was latest output bit *)
overRun* = 8; (* " status word RBF overrun bit *)
mSpOn* = 1; (* io_ExtFlags. Use mark-space parity, *)
(* instead of odd-even. *)
mark* = 0; (* " if mark-space, use mark *)
(* SerErrs: *)
devBusy* = 1;
baudMismatch* = 2; (* baud rate not supported by hardware *)
bufErr* = 4; (* Failed to allocate new read buffer *)
invParam* = 5;
lineErr* = 6;
parityErr* = 9;
timerErr* = 11; (*(See the serial/OpenDevice autodoc)*)
bufOverflow* = 12;
noDSR* = 13;
detectedBreak* = 15;
serialName* = "serial.device";
IOExtSerPtr* = LONGINT;
IOExtSer* = RECORD(E.IOStdReq)
ctlChar*: LONGINT; (* control char's (order = xON,xOFF,INQ,ACK) *)
rBufLen*: LONGINT; (* length in bytes of serial port's read buffer *)
extFlags*: SET; (* additional serial flags (see bitdefs below) *)
baud*: LONGINT; (* baud rate requested (true baud) *)
brkTime*: LONGINT; (* duration of break signal in MICROseconds *)
termArray0*, termArray1*: LONGINT; (* termination character array *)
readLen*: SHORTINT; (* bits per read character (# of bits) *)
writeLen*: SHORTINT; (* bits per write character (# of bits) *)
stopBits*: SHORTINT; (* stopbits for read (# of bits) *)
serFlags*: SHORTINT; (* see SerFlags bit definitions below *)
status*: INTEGER;
END;
(* status of serial port, as follows:
* BIT ACTIVE FUNCTION
* 0 --- reserved
* 1 --- reserved
* 2 high Connected to parallel "select" on the A1000.
* Connected to both the parallel "select" and
* serial "ring indicator" pins on the A500
* & A2000. Take care when making cables.
* 3 low Data Set Ready
* 4 low Clear To Send
* 5 low Carrier Detect
* 6 low Ready To Send
* 7 low Data Terminal Ready
* 8 high read overrun
* 9 high break sent
* 10 high break received
* 11 high transmit x-OFFed
* 12 high receive x-OFFed
* 13-15 reserved
END AmigaSerial.