info-mac@uw-beaver (06/18/85)
From: Moderator John Mark Agosta <INFO-MAC-REQUEST@SUMEX-AIM.arpa> INFO-MAC Digest Tuesday, 18 Jun 1985 Volume 3 : Issue 10 Today's Topics: Modula from ETH Zuerich available Text files into Multiplan Quitting Maze War Exiting from mazewar re: Blit emulator for the mac Re: MacDraw (MacDraft) to TeX or LaTeX conversion NEON examples? ---------------------------------------------------------------------- Date: 15 Jun 85 13:59:26 EST (Sat) From: Steven B. Munson <sbm@Purdue.ARPA> Subject: othello.shar Well, here is my long-awaited opportunity to contribute something to the net. My only regret is that it is only a game; when my copy of Inside Macintosh arrives, I will be able to write more useful programs in my spare time. However, I have been working on this Othello-playing program off and on for several months to learn how to write Macintosh programs, and it has gotten to the point where it is actually presentable, so I thought others might like to have it. Notice that, although the "Move" menu is not dimmed, none of its commands are implemented yet. I am including both a binhex 4.0 file and the SUMacC source, including a makefile (that most important of all parts of any source distribution). Anyone interested in grabbing the source code and modifying it might want to get the binhex file too, since it contains the BNDL, FREF, and ICN# resources necessary to make the icon appear on the desktop. I had to do these on the Mac, since the SUMacC rmaker doesn't know how to create them. The signature of this program is "OTLO". I haven't bothered to register it; I hope it isn't used yet. To compile the source, just type "make dl", which will compile everything and download it to your Macintosh, ready to run. This article is probably a bit long for a game announcement, but this program contains the extent of my knowledge about the innards of the Macintosh, and there were a few points I wanted to mention. User Interface One of my primary goals in this program was that the user should never have to wait for the Mac to say it's OK to go on. At higher skill levels (like 4 and beyond), the program may take a long time to figure out its next move, but this doesn't mean that the user has to sit there staring at the screen waiting for the next move. While it is "thinking", the user can still pull down menus, start up desk accessories and use them. This is made possible by my approach to handling events, which is slightly different from that of the other programs I have seen source code for (more later about the DoEvent() function). Most importantly, there is a command that interrupts the program's "thinking" process, so the user can regain complete control at any time. Quitting while the program is thinking is also possible. Another goal was maximum flexibility. At any time, even while the Macintosh is thinking about its next move, all the commands can still be used. Changing the skill level or players takes effect on the next move; other changes (including turning tracing on and off) take effect immediately. Source Code When the skel program came out, I stuck my already-existing Othello program into it so that I could use menus, so you will see some similarity with that program. My big departure from it was to replace the MainEventLoop function with a DoEvent function, which did essentially what MainEventLoop did, but just once. Hence, the main program contains while (TRUE) DoEvent(); and I can call DoEvent anywhere I want, to insure that the user never loses control. Since the function that determines the next move is recursive, I only had to put in one extra call to DoEvent. I also put all the code dealing with menus in a separate file; it just made more sense to me to do it that way. For those of you that learn about the Macintosh by reading source code, here is a summary of what you can learn from Othello: Fonts, etc.: info.c draws strings in different fonts and styles (bold, italic, plain text) and centers them. C strings vs. Pascal strings: In menu.c, where it handles the "About Othello" command, the original version of skel I had used a kludgey way of converting the Pascal string returned from GetString() to a C string that didn't work in some cases. You can see how isapstr() solves that problem there and in info.c. Graphics: drawboard.c draws various lines and ovals. Further Work To those who decide to look at the source code, I would like to know why the Extras desk accessory (version 1.2) crashes the system when it closes from within Othello; it's OK as long as I don't close it. Other improvements to be done are implementing the "Save Game" function (I don't know how to do I/O), implementing the commands in the Move menu (I just haven't had time -- I have in mind that the undo/redo function will remember the whole history of the game), and maybe having the program remember the players, skill, and trace values from one run to the next (by writing into its data fork?). Notice that I already have a nice Othello document icon for saved games, whenever that feature is implemented (I detest invisible files). If you make a significant improvement, please let me know. Not that I think this is a very important program, but I my be interested in seeing how it's done. Steve Munson sbm@purdue.ARPA sbm@purdue.CSNET [ I have put the shar file in UTILITY-OTHELLO.SHAR and the compiled code in UTILITY-OTHELLO.HQX. This shell archive contains the following files: AboutOthello drawboard.c initboard.c othello.c Makefile findmoves.c menu.c othello.h doflips.c getmove.c move.c othello.rc domove.c info.c newgame.c placestone.c undo.c "UTILITY-" has come to mean "useful as a programming example" rather than "a progrmming tool" -jma ] ------------------------------ Date: Wed, 5 Jun 85 15:32:36 cdt From: werner@ut-ngp.ARPA (Werner Uhrig) Subject: Modula from ETH Zuerich available From aebi@unizh.UUCP Wed Jun 5 00:08:02 1985 Relay-Version: version B 2.10.1 6/24/83; site ut-ngp.UUCP Posting-Version: version B 2.10.1 6/24/83 (MC840302); site unizh.UUCP Path: ut-ngp!ut-sally!seismo!mcvax!cernvax!unizh!aebi From: aebi@unizh.UUCP Newsgroups: net.micro.mac Subject: Modula-2 compiler: Summary Message-ID: <158@unizh.UUCP> Date: Wed, 5-Jun-85 00:08:02 CDT Date-Received: Tue, 4-Jun-85 18:31:36 CDT Organization: Inst. fuer Informatik, Univ. Zuerich, Switzerland Lines: 249 First of all I would like to thank all of you who took the time to answer my request. Up to now I got about 35 replies. All but one asked me to post the compiler to the net. So I finally got the permission from our sysop to post the stuff. I hope those of you who sent mail aren't disappointed if I don't answer all the questions individually. But let me summarize some of the questions and suggestions that could be of interest to everybody: - The e-mail address you specified was wrong. In the last message I specified my address as follows: !{seismo,mcvax,cernvax,unizh}!aebi This was wrong. It should have been ...seismo!mcvax!cernvax!unizh!aebi I apologize for any inconvinience that anybody had because of this mistake. - Where can I get a general version of the 68K Modula-2 compiler from ? For more information or a source code licence write directly to: Michael Moser Institut fuer Elektronik Gloriastr. 35 CH-8092 Zuerich Switzerland This is *not* the Macintosh version. But it is the code the Mac version is based on. (BTW There's a rumor, that Atari will adapt this compiler for their ST. So everybody may get a useful development tool right from the start!) - How much for a licence of the Macintosh version ? At the moment you can't buy the source code as there is nobody at the ETH who has got the time to do the distribution. But I will post some of the modules (e.g. the module that does the trap call, the LisaPascal source of the loader) to the net. So you will be able to create your own Toolbox library. - Can we distribute the compiler to Mac users groups ? Feel free to give this compiler to your friends, other networks, users groups and so on. - Could you please repost the PackIt program as missed it. As the whole posting is useless if people can't unpack the files, I will redistribute this very useful utility. - Couldn't you give the compiler to sumex and hope, that copies trickle to non-arpa sites. As I don't know how to do this from here, I leave this up to anybody on the net who is able to do so. - Will the compiler run on 128 kByte Macs ? It doesn't seem, as if there was anybody willing to spend the time to shrink the compiler at the ETH. But if any hacker would like to try it, I will give him any support I can. - You should post the compiler bit by bit. That's exactly what I plan to do. The posting consists of 13 files of a size between 31 and 64 kBytes. I will post one of the files every two or three days. So watch out. Don't miss any of them. Given their size we should try to avoid any reposting. - Mac Modula Users Group After thinking about it, I agree with those of you who suggested to keep the exchange of information, programs and modules on the net. As we'll see that this loads the net to much, we still can search for an other form of communication / distribution. - Yes, I'd like to help the compiler people by writing some modules. Many thanks to everybody who is willing to spend some time on this. I'll let you know, what could be done, as soon as I get some specifi- cations from the ETH. (You may also just do what you think should be done. I'll try to give you as much support as possible) ***** Now let's get to the technical details of the posting: To keep all the files of the posting below the 64 kByte limit, I won't add any comment to the files sent in net.sources.mac. Instead I will give you some hints on downloading and placing the files to the different disks here: - You need three blank disks. Name them as M2-System M2-Doc MODLIB (the compiler won't work if this disk has an other name) - Put all the System-Files and an editor (MDS editor, MacWrite ...) on the M2-System and M2-Doc disks. - Download the 'PackIt' program from the net as you will need this to unpack the postings of the compiler. - Load down the files posted to net.sources.mac. Convert them with binhex 4.0 / 5.0. - By now you should have a file with a name like m2-?.pit. Unpack this file using the PackIt program. If everything went ok, there should now be several binary files on your disk. - Copy the files to the disk that is specified in the table below. File-Name Disk Comment ========= ==== ======= Part 1 ------ Exec128 M2-System loader for 128 kByte Macs Exec512 M2-System loader for 512 kByte Macs PiRandom M2-System sample program *) Hiero M2-System sample program *) *) these are executable files generated by the M2 compiler. You may try these little demos at this point (i.e. you don't need any other files to run them) Part 2 ------ CKurve2 M2-System sample program Magic.MOD M2-System sample source PiRandom.MOD M2-System sample source Hiero.MOD M2-System sample source CKurve2.MOD M2-System sample source LisaConvert M2-Doc Introduction M2-Doc short introduction to the compiler Part 3 ------ GUIDE.TXT M2-Doc Explanation of all the compiler options... Part 4 ------ CLOCK.DEF M2-Doc *.DEF: Definition modules CONVERSIONS.DEF M2-Doc EVENTMGR.DEF M2-Doc INTERMINAL.DEF M2-Doc LOADER.DEF M2-Doc M2FILES.DEF M2-Doc MATHLIB0.DEF M2-Doc MATHLIB1.DEF M2-Doc MCLOOKUP.DEF M2-Doc OUTTERMINAL.DEF M2-Doc REALTERMINAL.DEF M2-Doc STORAGE.DEF M2-Doc TERMINAL.DEF M2-Doc CLOCK.SYM MODLIB *.SYM: Symbol files CONVERSIONS.SYM MODLIB EVENTMGR.SYM MODLIB INTERMINAL.SYM MODLIB LOADER.SYM MODLIB M2FILES.SYM MODLIB MATHLIB0.SYM MODLIB MATHLIB1.SYM MODLIB MCLOOKUP.SYM MODLIB OUTTERMINAL.SYM MODLIB REALTERMINAL.SYM MODLIB STORAGE.SYM MODLIB TERMINAL.SYM MODLIB Part 5 ------ OPTIONS.DEF M2-Doc OSCONSTANTS.DEF M2-Doc OUTFILE.DEF M2-Doc PASCALSTRINGS.DEF M2-Doc QUICKDRAW.DEF M2-Doc SFPACKAGE.DEF M2-Doc OPTIONS.SYM MODLIB OUTFILE.SYM MODLIB PASCALSTRINGS.SYM MODLIB QUICKDRAW.SYM MODLIB SFPACKAGE.SYM MODLIB Part 6 ------ m2link MODLIB M2 linker Part 7 ------ CONVERSIONS.LNK MODLIB *.LNK: link files LOADER.LNK MODLIB m2comp MODLIB M2 compiler M2FILES.LNK MODLIB REALTERMINAL.LNK MODLIB Part 8 ------ CLOCK.LNK MODLIB EVENTMGR.LNK MODLIB INTERMINAL.LNK MODLIB M2ROOTLOOKUP.LNK MODLIB MACBASE.LNK MODLIB MATHLIB0.LNK MODLIB MATHLIB1.LNK MODLIB MCLOOKUP.LNK MODLIB MEMORYMGR.LNK MODLIB OPTIONS.LNK MODLIB OSTYPES.LNK MODLIB OUTFILE.LNK MODLIB OUTTERMINAL.LNK MODLIB PASCALSTRINGS.LNK MODLIB PBFILE.LNK MODLIB PSTRINGS.LNK MODLIB QUICKDRAW.LNK MODLIB SFPACKAGE.LNK MODLIB STORAGE.LNK MODLIB SYSTEMX.LNK MODLIB TERMINAL.LNK MODLIB Part 9 ------ M2CP4.LOD MODLIB compiler pass 4 Part 10 ------- M2CP1.LOD MODLIB compiler pass 1 M2CLIS.LOD MODLIB Part 11 ------- M2CP2.LOD MODLIB compiler pass 2 Compiler.MERR MODLIB Part 12 ------- M2CINI.LOD MODLIB M2CP3.LOD MODLIB Part 13 ------- M2CP5.LOD MODLIB M2CSYM.LOD MODLIB p-mail: Matthias Aebi e-mail: ...seismo!mcvax!cernvax!unizh!aebi Hirschgartnerweg 25 CH-8057 Zuerich Switzerland ------------------------------ Date: Wed 12 Jun 85 10:56:56-EDT From: S.A67J-PELKIE-CHRIS%CRNL20A.BITNET@Berkeley Subject: Text files into Multiplan Sender: S.YFM-FRESINSKI-LARRY%CRNL20A.BITNET@Berkeley Short of writing a SYLK file generator (anybody out there interested?), the easiest way to move data into Multiplan is via MacWrite and Clipboard (or Scrapbook). Open the Helix text file with MacWrite, select the appropriate stuff, Copy, optionally paste into Scrapbook, quit MW, start MP, select top left cell, optional select whole area to paste into, then Paste. Don't stop there, you can rearrange information in Multiplan and select it, carry it over to Word to create the data for a Print Merge doc. Have fun. Chris Pelkie, Technical Consultant, Distributed Computing Services Cornell University ------------------------------ Date: Tue, 11 Jun 85 09:16 pst From: "pugh jon%e.mfenet"@LLL-MFE.ARPA Subject: Quitting Maze War You can get back to the systme from Maze War by typing a Command-Z, roughly equivalent to a control-z, meaning exit on many systems. I found it by accident, but thought everyone should know. Jon Pugh ------------------------------ Date: Tue, 11 Jun 85 11:02:43 pdt From: reif%ucblapis.CC@Berkeley Subject: Exiting from mazewar Its not documented in the start-up screen, but COMMAND-Q does terminate mazewar. (It does a system-reset, not a ReturnToShell, though.) Mazewar appear to run entirely in memory, so you can eject the disk with SHIFT-COMMAND-1 and startup the next machine down the line. My copy has an ABusIDPoker desk accessory. Is it necessary to give each mac on the Appletalk a unique id in order to have more than two mazewar users? David Oster ------------------------------ Date: 11-Jun-85 16:46:16-PDT From: sml@FORD-WDL1.ARPA Subject: re: Blit emulator for the mac A company called Rammas Vision has a product which claims to provide a multiple window interface (each an active terminal) from a Mac or IBM-PC to UNIX, AOS/VS, VMS, and VM. They claim to emulate either a vt100 or a Tek 4014. I expect to see a demo in the near future and will report to this forum. For those who can't wait: Rammas Vision 2685 Marine Way Shoreline 1325 Mountain View, CA 94043 (415) 969-2662 Steve Lazarus (415) 852-4203 Ford Aerospace ...fortune!wdl1!sml (USENET) MS X-20 sml@ford-wdl1 (ARPA) 3939 Fabian Way Palo Alto, CA 94303 ------------------------------ Date: Mon 3 Jun 85 13:33:20-PDT From: Hans Mulder <m.hans@SU-SIERRA.ARPA> Subject: Re: MacDraw (MacDraft) to TeX or LaTeX conversion John Mark, Thank you for your response. I actually formulated my request wrong. I like to have illustrations directly inside my LaTeX input to avoid glue or pressedit. Making those (simple) illustrations allways have been a big pain. A simple block diagram takes a whole afternoon or something like that. My idea is to create those (simple) illustrations by means of MacDraw and translate them into the LaTeX picture commands (makebox,framebox,dashbox,line,vector,circle,oval). I don't want to translate an arbitrary picture into LaTeX but only pictures I otherwise have to make with LaTeX commands. I assume given your response that this is not done. Maybe I'm trying something ridiculous and should I just edit in MacDraw images on a lower level (dvi,press,imp). I would appreciate a comment on this restated question. Thanks in advance. Hans Mulder ------------------------------ Date: Wed, 12 Jun 85 14:00:55 edt From: garl@nlm-vax (Gary Letourneau) Subject: NEON examples? Would some kind soul please post sample NEON code to the net? I am debating on buying it during its introductory offer. But, before I do buy it I would like to get a feel for what the code looks like. I understand it is forth-like with a "small-talk" flavor. Also, does anyone have benchmarks to demonstate its speed? Gary Letourneau garl@nlm-vax ------------------------------ End of INFO-MAC Digest **********************