Article View: net.lang.mod2
Article #496M2 for the Amiga
From: Knobi der Rechnerschrat
Date: Tue, 05 Aug 1986 16:15
Date: Tue, 05 Aug 1986 16:15
145 lines
5106 bytes
5106 bytes
Hallo,
I've posted this a few day ago, but it seems it had problems to get through
the net. So I decided to post it again together with msome more problems AND
solutions.
-----------------------------------------------------------------------------
We've just obtained the TDI M2 compiler for the Commodore AMIGA. Together
with the documentation came some papers concerning known problems in
release "1.01A". This papers seem to be incomplete or at least ambigious, so
I've got some questions:
1.) There have been some postings of fixes for TDI on this list in the
past. I've missed most of them. Could someone resend them to me
<XBR2D96D@DDATHD21> ?
2.) The files AMIGAX.sym, CIAHardware.sym and CustomHardware are corrupted.
Do we need them and if yes, how can we obtain them. Simply recompile
the DEF's will cause severe problems I suppose.
3.) This papers say that TDI is available via COMPUSERVE 75026,1331.
If I try to access them via VAX-PSI and DATEX-P (German PSN)
I reach a Username/Password prompt. I don't know both and I suppose
that I'm not supposed to use the COMPUSERVE ID this way. Can someone
tell me how to use it?
4.) TDI announced a fix diskette in it's documentation. Is this diskette
already available ? Our local dealer hasn't got it jet.
5.) we (I) are especially interested in the RealInOut and LongInOut modules
announced with the diskette. Are they available on the net?
6.) playing with the Amiga tools I discovered that the CreatePort and
DeletePort routines from PortUtils had both horrible bugs. I've corrected
both routines according to the new ROM-Kernel Manual Part 2/App. F. The
fix is enclosed with this message.
7.) The SerialDevice.Def file misses some of the SerFlags (e.g. 7Wire). The
SerStatus bits also didn't look like Bits for a SerialDevice (PaperOut ???)
Regards
Martin Knoblauch
TH-Darmstadt
Dept. Physical Chemistry 1
Petersenstrasse 20
D-6100 Darmstadt
West-Germany
BITNET: <XBR2D96D@DDATHD21>
--------------New PortUtils.MOD------------------------------------------------
IMPLEMENTATION MODULE PortUtils;
(** ------------------------------------------------------------------
Commodore Amiga port utilities module
(c) Copyright 1985, 1986 TDI Software, Inc. All Rights Reserved
------------------------------------------------------------------ **)
(* VERSION FOR COMMODORE AMIGA
Original Author : Paul Curtis, TDI Software, Inc. 16-Dec-85
Version : 0.00a 16-Dec-85 Paul Curtis, TDI.
Original
0.00b 03-Aug-86 Martin Knoblauch, TH-Darmstadt.
Corrected according to ROM-Kernel Man. 2
*)
(*$S-*)(*$T-*)
FROM SYSTEM IMPORT TSIZE, BYTE, ADR, ADDRESS;
FROM Lists IMPORT NewList;
FROM Nodes IMPORT NTMsgPort;
FROM Ports IMPORT MsgPortPtr, MsgPort, MsgType, AddPort, RemPort;
FROM Memory IMPORT AllocMem, FreeMem, MemPublic, MemClear, MemReqSet;
FROM Tasks IMPORT FindTask, MyTask, AllocSignal, FreeSignal, AnySignal,
NoSignals, SIGNAL;
PROCEDURE CreatePort(VAR name: ARRAY OF CHAR; pri: INTEGER): MsgPortPtr;
(* create a message port. *)
VAR
mp: MsgPortPtr;
signal: SIGNAL;
BEGIN
signal := AllocSignal(AnySignal);
IF signal = NoSignals THEN
RETURN MsgPortPtr(0);
END;
mp := AllocMem(TSIZE(MsgPort),MemReqSet{MemPublic, MemClear});
IF ADDRESS(mp) = 0 THEN
FreeSignal(signal);
RETURN MsgPortPtr(0);
END;
WITH mp DO
WITH mpNode DO
lnPri := BYTE(pri);
IF name[0] = 0C THEN
lnName := ADDRESS(0);
ELSE
lnName := ADR(name);
END;
lnType := BYTE(NTMsgPort);
END;
mpFlags := BYTE(PASignal); (* made more symbolic than BYTE(0) *)
mpSigBit := BYTE(signal);
mpSigTask := FindTask(MyTask);
END;
IF name[0] # 0C THEN
AddPort(mp);
ELSE (* added ELSE to IF *)
NewList(ADR(mp.mpMsgList));
END;
RETURN mp;
END CreatePort;
PROCEDURE DeletePort(port: MsgPortPtr);
(* delete a message port *)
BEGIN
WITH port DO
WITH mpNode DO
IF lnName # ADDRESS(0) THEN (* "=" changed into "#" !!! *)
RemPort(port);
END;
lnType := BYTE(0FFH); (* unknown to Exec *)
mpMsgList.lhHead := NIL;
END;
FreeSignal(SIGNAL(mpSigBit));
END;
FreeMem(port,TSIZE(MsgPort));
END DeletePort;
(*$P-*)
END PortUtils.
Technical Details
Message-ID:
<8608051449.11336@ur-cayuga.rochester.arpa>Path:
arc1-ca.pugleaf.net!utzoo!mnetor!seismo!lll-crg!nike!ucbcad!ucbvax!DDATHD21.BITNET!XBR2D96DShow Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: arc1-ca.pugleaf.net!utzoo!mnetor!seismo!lll-crg!nike!ucbcad!ucbvax!DDATHD21.BITNET!XBR2D96D From: XBR2D96D@DDATHD21.BITNET (Knobi der Rechnerschrat) Newsgroups: net.lang.mod2 Subject: M2 for the Amiga Message-ID: <8608051449.11336@ur-cayuga.rochester.arpa> Date: Tue, 5-Aug-86 12:15:53 EDT Article-I.D.: ur-cayug.8608051449.11336 Posted: Tue Aug 5 12:15:53 1986 Date-Received: Wed, 6-Aug-86 02:05:51 EDT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The ARPA Internet Lines: 145