Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!nuchat!sugar!schaub From: schaub@sugar.UUCP (Markus Schaub) Newsgroups: comp.sys.amiga Subject: M2Amiga, some answers. Message-ID: <1104@sugar.UUCP> Date: Sun, 22-Nov-87 19:58:42 EST Article-I.D.: sugar.1104 Posted: Sun Nov 22 19:58:42 1987 Date-Received: Wed, 25-Nov-87 04:44:36 EST Organization: Sugar Land UNIX - Houston, TX Lines: 118 Keywords: Modula-2, M2Amiga, Programming, Low Level Features Sorry, this got long. It answers questions and remarks of several people. >an interesting nitpick, but the designers of C wanted programmers to be able >to make calls to the same routine with a varying number of arguments. This BUT also a big source for programming errors. Does your C compiler complain if you call a 3 parameter procedure with just two parameters? What is the result? Nothing, strange behaviour or GURUs? How can you find this bug? Maybe this is no problem for you, it definitely would be one for me. This is my opinion, DON'T start any war C vs. Modula-2! >difficult to use Modula-2 on the Amiga because _everything_ is written >for C programming, most notably the RKM. Is this problem any different >for M2Amiga than for TDI? I'm asking because I liked Pascal, really We faced this problem, using pointers extensively and playing a lot with all different kinds of ROM stuff (always with Modula-2, starting with our PD version (Fish #24)) we managed to get very close to C and the ROM kernel. This also includes some changes in the code generation part of the compiler, fuction results or internal representation of BOOLEAN's etc. I cannot give any comment on M2Amiga/TDI 'cause I just don't know a lot about their compiler. To read the RKM, you still need some basic knowledge of C. > Seems to me any cycles are important. Perhaps not for general >code, but when it comes to the decision as to weather or not to use >assembly, this could make a difference. In M2Amiga we rather optimized the compiler for the Amiga's needs than going down to assembly. In M2Amiga there are NO parts that are written in Assembly. > PS: Matt, have you tried Modula-2? I know your a C programmer, > and just wondered if you'd given M2 a look. Play around with the Demo Disk! >and hide the grungy details in a separate procedure. My goal, not >always achieved, is to have the executable code of any procedure fit >on a single, not too busy screen. Good programming practice, I fully agree! >compiler prompts for a new file to compile after having finished >(or you can give all the file names on the command line in CLI). If the loading time is longer than compilation time, you have to find a way to reduce overall time. It is also very easy to write a file containing all file names (one each line) of the modules of your program ( in correct order) and then call the compiler: m2c Seems like a good solution to me. I'd like to know more about this > $E option. If it is clean, and relocatable (??) this should work quite $E- does not produce any entry or exit code for this procedure. No loading of the global data's address into a register, no allocation of local variables on stack, no dynamic link and at end not even a RTS. Very usefull for VERY dirty tricks! PROCEDURE Sub; (* $E- *) BEGIN invert value in register D1 END Sub; PROCEDURE Add (* $E- equal to a label in Assembly *) BEGIN add D0, D1; RTS END Add; You can call this Assembly programming without leaving the Modula-2 env. Other options prevent the generation of parameter deallocation code, used for procedures supplied to the ROM kernel. (Makes them C procedures) >When will the M2Amiga Source Level Debugger be released? Will it be >included in the $195 price? $199 intro $249 retail. No not to my knowledge. I really don't know anything from the business side of the debugger. As soon I know I'll let you know too. Release Date, last thing I heard was end of the year. >What libraries are included? here comes the list: Sorry it is compressed, could look nicer. Modules (dir) Libraries (dir) sym (dir) Arguments.sym ASCII.sym Conversions.sym Coroutines.sym FFPConversions.sym FFPInOut.sym FileMessage.sym FileNames.sym FileSystem.sym Heap.sym InOut.sym LongRealConversions.sym LongRealInOut.sym MathLib0.sym MathLibLong.sym RandomNumber.sym RealConversions.sym RealInOut.sym Scan.sym Storage.sym Strings.sym Terminal.sym Windows.sym obj (dir) ... object files for these libraries if they have one (ASCII does not!) ... System (dir) sym (dir) Arts.sym MathFFP.sym MathIEEEDoubBas.sym MathREAL.sym Interfaces (dir) sym (dir) Audio.sym BootBlock.sym Clipboard.sym Console.sym ConUnit.sym DiskFont.sym Dos.sym Exec.sym ExecSupport.sym Expansion.sym GamePort.sym GfxMacros.sym Graphics.sym Hardware.sym Icon.sym Input.sym InputEvent.sym Intuition.sym Keyboard.sym KeyMap.sym Layers.sym MathTrans.sym Narrator.sym Parallel.sym Printer.sym PrtBase.sym Resources.sym Serial.sym Timer.sym TrackDisk.sym Translator.sym Workbench.sym Hope that answers most of your questions! -- // Markus Schaub uunet!nuchat!sugar!schaub (713) 523 8422 // M2Amiga Developer trying to get back the money I paid for my \\ // Amiga by selling a few M2Amiga. \X/ c/o Interface Technologies Corp, 3336 Richmond #323, Houston Tx 77098