#Modula-2 Compilers
6 messages in this thread
Thanks very much for that information, Leon. I appreciate your suggestion to
use the Amiga's multitasking instead of doing it in Modula, but this is a
product that is being ported to several different platforms, and it's important
to us that it look the same on each. We'd like to have our multi-user BBS run
as one task, in one window on the Amiga, so the owner could use the machine for
other stuff as well.
Since I myself am not in the habit of using debuggers, it seems that coroutine
support will be the sole issue on which I base my choice. I will have to check
out both compiler's abailities in this area and then decide.
Thanks again for the information!
(P.S. Sorry about the typos; I haven't learned to use the editor yet.)
Steve:
As I mentioned in my first message I can supply you with a CoRoutines module,
which has the NEWPROCESS() and TRANSFER() functions implemented. In terms of a
debugger, I did not consider a debugger to be very useful either, until I
actually created the debugger. Since, then I have found the debugger
invaluable in finding bugs. I think in the case of a large porting job a
debugger will save you countless hours of time. I don't remember if I
mentioned this in the previous message, but a full demo of the debugger is
available for download from DL 11. In addition you might want to check out the
latest issue of The Amiga Sentry(July) which has an excellent review of the
debugger and compiler. I am sure you will make the right decision.
>> Leon Frenkel <<
Hello again Leon. From your first message I didn't realize you had actually
implemented Modula's own coroutine procedures. I feared that it was sort of a
"coroutines-specifically-for-Benchmark" module. This could change everything,
because I'm short on bucks so Benchmark's price is especially attractive.
Would it be bad form to ask to have a peek at the CoRoutines module before I
buy? If it looked to me like it would fit right in with the code I'm porting
then I would have to choose Benchmark.
Thanks again for your help.
Steve:
I am sure that you will find Benchmark Modula-2 your best choice for many
reasons. I have tested the CoRoutines module with a program ported from the
IBM-PC at it works exactly as it does in other environments. Here is the
definition module for the CoRoutines stuff:
DEFINITION MODULE CoRoutines;
FROM SYSTEM IMPORT ADDRESS;
PROCEDURE NEWPROCESS(proc: PROC; workPtr: ADDRESS; workSize: LONGCARD;
VAR p1: ADDRESS);
(* proc – procedure
workPtr – user allocated workspace ptr
workSize – user allocated workspace size
p1 – process variable *)
PROCEDURE TRANSFER(VAR p1, p2: ADDRESS);
(* p1 – current process
p2 – process to transfer control to *)
END CoRoutines.
Very simple module, the actual implementation only takes a few instructions.
The more obscure IOTRANSFER() procedure is not available since there is
no way to make it practical on the Amiga.
>> Leon Frenkel <<
Leon,
How about uploading your Coroutines module, so the rest of us can use it?
– Steve –
Steve:
Yes, I can upload the CoRoutines module. I will try to do that in the near
future. Have you found some useful use for CoRoutines on the Amiga?
>> Leon Frenkel <<