Date: Thu, 1 Jan 1998 08:21:45 +1000

From: mrwhippy@pac.com.au (Paul)

To: Multiple recipients of <list-fantasm@mail.tau.it>

Subject: Shareware

 

Hello

 

Does the shareware principle work? Does anyone here make money from their

shareware efforts,or might you just as well release your work as freeware?

Would I be right in assuming the path of a shareware author doesn't allow

you to give up your day job? :)

 

Paul


From: Kevin Avila <kevin@cache-computing.com>

To: Multiple recipients of <list-fantasm@mail.tau.it>

Subject: Re: Machine Serial Number

 

or something easier might be to get the CPU version number? or use

openfirmware to get other hardware aspects like the notherboard type,

what devices are attaced, etc.

 

------------------------------------------

Kevin Avila kevin@cache-computing.com

http://www.cache-computing.com

Date: Wed, 31 Dec 97 18:47:29 -0000 From: Kevin Avila <kevin@cache-computing.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Shareware >Does the shareware principle work? It does for some. Peter Lewis is a good example. he does shareware coding as his day job and if your interested he has written a nice article on what it takes to be a shareware author which you can view from his website at http://www.stairways.com. Andrew Welch is another good example. I think we all have atleast one or 2 games/utils from Ambrosia somewhere on our HD. I'm not sure what Peter has, but Andrew lives in a small mansion and drives a pretty spiffy hummer, which before he had that he had a nice Harley. So I guess if you work hard ehough you can make it. ------------------------------------------ Kevin Avila kevin@cache-computing.com http://www.cache-computing.com
Date: Thu, 1 Jan 1998 10:56:28 -0500 From: Stuart Ball <lightsoft@compuserve.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: anvil PPC bug >i finally found the problem: at the end of the file that anvil was choking >on the last line was: > >gBlackPattern: DS.W -1,-1 > >i changed this to: > >gBlackPattern: DC.W -1,-1 > >& now everything works fine!... >i think that anvil should have checked to make sure that the # given to it >in the DS directive was not negative... Yes, we will issue a warning in future versions. The assemblers do specifically check for: ds.x 0 and will issue a warning, but we obviously missed the -ve declaration possibility. Thank you for the report Ajay, most helpful. Stu.
Date: Thu, 1 Jan 1998 22:55:54 +0000 From: Lightsoft <lightsoft@zedworld.demon.co.uk> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: NFtT 1st January 1998 News From the Tower 1st January '98. ------------------------------------ Here's another one of those rather irregular news posts we put out from time to time, letting you know what's happening and coming up. These go out fairly infrequently so it's not exactly spam city, but if you do find this mail annoying, please get thee hence to <http://www.tau.it/lightsoft/links.html> where you may unsubscribe from this list. ------------------- Firstly, Happy New Year to everybody! We hope 1998 is good for you. Now, because we were basically shut down over the holidays, a slightly different format to this NFtT - this one just lets you know what's coming up over the next few days. X-----------------X We have completed our "New Year 1998 Demo" - the executable is available from our WWW pages. It is a demo in the style of the old Amiga or ST demos, and if you are interested in graphical effects or pretty programs it may be well worth a look. The file is 400K in size. As with all releases, don't get killed in the rush, or swear at the sluggish servers. It is Freeware, so anyone willing to help distribute the archive (intact please!), we would be most grateful for your help. Also, we plan to release source code to registered users. As always, comments are very welcome. X-----------------X We have set up a testing area on the lightsoft site. We are planning to upload early alpha software to this area, giving registered users access to the latest software so that they can give early feedback, and more easily help in the general testing process. An early warning however - provisional software is just that, and will have bugs in. Fully released programs are ALWAYS much more stable. If you need to do serious development work, you will probably be best off with the fully released versions. (As always, Lightsoft advises all data be backed up, either way) X-----------------X Another tool in development is LXT. This will be available to registered users, and is in two parts:- (a) The Code translation libraries. These give PowerPC code from 680x0 code. (there do need to be minor modifications to existing 68k code, but it will then assemble to both 68k and PowerPC). (b) The Standard OS interfaces. These make calling the system a lot easier for people who dislike translating Pascal, C and Assembler system calls (thats everyone, we believe!). These are in long term development, but were used in the New Year 1998 demo to produce a FAT app. Provisional user testing should start shortly. You will need some of the extensions in 5.1 to use LXT. If you do use the Standard OS interface in LXT and find a system call that is not included, either just let know or send us your macro with the translation code to be included in LXT. The standard OS interfaces are planned to be used more from Fantasm 5.1 onwards. LXT will be licensed free of charge to registered Fantasm users. X-----------------X END Lightsoft 1900 01 Jan 98
Date: Fri, 02 Jan 1998 06:00:05 +0100 From: bondard <bondard@ens.fr> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Screen draw/event loop H ello, Whenever you use the system event loop, you must expect screen updates to happen at any time. The system won't erase your own windows though: so I suppose you are writing to the screen in such a way that the system doesn't know about it. If that is the case, you can do two things: (1) create a window exactly at the place where you want to write to the screen, making sure if is the frontmost window: now you own that piece of screen real estate and the system won't touch it; (2) or (the preferred way for animation programs) : don't use the system events at all. This way you will get smoother animation, and the system won't be able to mess you up. Simply use the toolbox routines for directly reading the keyboard and mouse. (Reading the keyboard directly is a bit messy in fact, but once you get your routine to work, you can use it in all your animation programs). BUT: are you sure you are not erasing the screen yourself?? You may be receiving update events from the system, and should perhaps check what action your program takes in that case? Luck, ----------------- Daniel Bondard bondard@ens.fr ----------------- --------------------------------------------------------- Paul wrote: > > Hello, > > I don't have any problems when I write directly to the screen,but when I use > an event loop to check for keydown events,whatever I've written to screen > disappears.I'm masking off all events except the keydown event,but the OS > seems to be getting an update event from somewhere - at least I *think* that's > why the screen is being cleared? > > When writing directly to the screen,should I be disposing of the menu bar or > not? Could this be what's causing the problem? I can write over the top of it > without removing it,but as soon as the event loop starts....blank screen :( > > Can anyone explain why this is happening? Or what I'm doing or not doing > that's wrong? > > Many Thanks > > Paul > >
From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Machine Serial Number Thx a lot for helping me, but I don't think I'll be able to get any info out of the mac. I would like to thank Kevin to tell me 'Get the CPU version number' but how in the world can I do that??? Anyways, I have downloaded few hackers guide I found on the net, to learn how people crack programs. It's quite interesting. If anybody here is interested, pls let me know. Bye, Alok
Date: Fri, 2 Jan 1998 20:14:43 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Speech Recognison Hi, I just loaded the speech reconignsion software and it's amazing. Even though I can hardly run any apps no w(cos my system now takes 5 mb ram) I have been having threamendus fun. Anyways, for the ones who have never tied it, pls do (BTW it runs with 8 bit input, but not as well as 16 bit.). *** Few years ago, I had written a small program in Basic, that would talk with you. Basicaly you would type something, and it would reply. Of course, it wasn't AI (BTW read what's Stu or Rob, i can never remember who it is, wrote on AI). It was simple tricks, like each time you would type something with why, who, what it would randomly answer things like 'There are some questions that cannot be answered in this little univers' or 'I think your brain is too small to understand' or 'I have no idea', etc... I would like to know if there is anybody here, ready to work with me, to rewrite this prog but using apple's specch manager and speech recognison. Bye, Alok email: robot@writeme.com
Date: Fri, 2 Jan 1998 20:17:14 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Misc Hi, Here are few things, for the ones getting bored: 1) How to save the data of Min-Max trees: First what is a Min-Max tree? Well it's used to analyse verious positions on a chess board or a tic tac toe game. For eg, you look all possibilities of play for 4 moves ahead. And each time you evaluate the move by taking from the bottom to the top each time the best move for him the worst for you, etc... Here is how you save the data: Have a table with: Line number, what move it is, the father of this move, the first son of this move and the next brother. 2) How does keyCap do to display the key positions on the keyboard? 3) ARen't computer keys (to avoid hacking) expensive ? 4) Clut's and palattes are really cool. If you have time, you can have lotsof fun with them. 5) This is rather a question for Rob (or maybe it was Stu): How did your program that made adventure games work? Bye, Alok email: robot@writeme.com
Date: Fri, 2 Jan 1998 17:38:30 -0500 From: Ajay Nath <AjayNath@compuserve.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: RE: Machine Serial Number >> I think there is some type of serial number, build date ("birth date"), etc. in the extended parameter RAM. << but this info is not unique from one machine to the next...apple even said so in its article in develop about this subject...also when you "zap" the pram it gets rewritten to default values from the hardware that are from ROM & are NOT unique to a machine
Date: Fri, 2 Jan 1998 17:41:37 -0500 From: Ajay Nath <AjayNath@compuserve.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Shareware >> Peter Lewis is a good example. he does shareware coding as his day job and if your interested he has written a nice article on what it takes to be a shareware author which you can view from his website at http://www.stairways.com. Andrew Welch is another good example. << actually peter lewis is now working for metrowerks (i'm pretty he said this in an interview in mactech). also andrew welch started a company that publishes software from other authors so he is making his money from helping other shareware authors.
Date: Fri, 2 Jan 1998 17:45:36 -0500 From: Ajay Nath <AjayNath@compuserve.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Machine Serial Number >> Get the CPU version number this wont work as if you & i have the same mac model the cpus will most likely have the same version number!
Date: Fri, 2 Jan 98 19:34:25 -0000 From: Kevin Avila <kevin@cache-computing.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Shareware >(i'm pretty he said this >in an interview in mactech) Speaking of MacTech, I'm now officially part of MacTech. You can gaze at my name for hour as I did. I'm in the Jan issue on page 2 under Editors. heh ------------------------------------------ Kevin Avila kevin@cache-computing.com http://www.cache-computing.com
From: Ajay Nath <AjayNath@compuserve.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: warning to Anvil + ATM users I kept getting errors from Anvil when I tried to build projects. I finally narrowed it down to a problem with Adobe Type Manager 4.0. When I took it out of the list of extensions to be loaded at startup all my Anvil problems went away. Unfortunately you need ATM to read pdf documents & certain apple docs (like "Mac_OS_Runtime_Architectures" which describes the PEF format!) are only in pdf format. So now I'm off to see if Adobe has a newer version of ATM that I can use with Anvil.
Date: Sat, 3 Jan 1998 15:04:15 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Anti-Hack Hi, I have attached a file (13k) with this doc. I would like everybody here to test it. It's basicaly an anti-hack. it uses verious gestalt variables to complete a calculation and then display a number. I would like to you to check that this number is ALWAYS constant. Be carful, save your work, it might crash your Mac (It hasn't ever done it here, but who knows?). What will next happen, is when the hacker will try to get into Debug while entering the number in the shareware, he won't enter in debug but a Restart computer (or a bomb) (I'll do this, by detecting a key press, How will the user type in the code then? Well a nice key board will be displayed)!!! Anyways, let's see how this goes and if it works? Oh, Iforgot one thing: What if some one dissassemblies the hole app? Well I think that guy will take his hole life, I just need to add some nice 8mb animation at the startup!! And of course, I'll try to get an old Atari trick working: just about 10 lines of code will be assembly (the start of file) and the reste will be encrypted. SO the 10 first lines will deencrypte the reste of the file (and I can get this done many times :)) One last thing: I would like you to report me your number (displayed by my app). I would like to check how often same numbers come out! Thx for hepling me and all the anti-hackers! BYe, ALok FYI here are the calls: GESTALT: 'romv' 'hdwr' 'mach' 'vers' 'tmgr' 'sysa' 'ser ' 'proc' 'os '
Date: Sat, 03 Jan 1998 17:57:28 +0100 From: Allan Jensen <maccoder@post6.tele.dk> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Anti-Hack Although I hate to say anything negative about something I dont entirely understand (although thats never stopped me), I would hazard that this would never stop any good or determined hacker/cracker. Im not a hacker and Ive never tried to hack an application, but I can see several reasons why this *wont* work. It seems to me that a hacker can disassemble the 10 first lines you mentioned, and decrypt the file. File hacked? I'm only guessing. Also, a simple application might look a little silly if it has to include an 8mb animation to confuse any would-be hacker (unless you were joking?). In my experience crackers/hackers are, of course, Evil Persons, but also very clever people. Someone on the list mentioned dongles? This does not stop them. Robocop 3 on the Amiga was hailed as being un-crackable as it came with a dongle. It took a week as far as I remember. Robocop 3 is not the only example (Lightwave is another example). I have yet to hear/read about an unbreakable program. Remember the recent competion about hacking an apple-server? The best proof that it is impossible to make a program unhackable, is simply that no ones done it yet. I doubt they will. But if they do, Im thinking you have to be even more devious than what Alok has in mind. At the end of the day, Shareware is about trusting people to pay for the programs they use. If the programs are good enough, people will often pay. Oh, and remember that programs that require a registration number to function completely is not Shareware, but Crippleware. An important distinction (there seemed to be some confusion). Lets just be thankful that weve got Macs and not Wintels, where the last original,unpirated program was seen late spring 1986. I hope you come up with a great system Alok, but youve certainly got your work cut out for you. When youve finished your system, Im willing to bet that theres someone whos able to hack it. Maybe even someone on this listserver (theres an evil rumor that someones been involved hacking VAXens?)? I cant crack it, but then Im a decent, law-abiding citizen who would never do such a thing ... no, really. Oh, and for the record I got the number: -359179244. Repeatedly. Hope it helps. Allan
Date: Sun, 04 Jan 1998 05:31:54 +0100 From: bondard <bondard@ens.fr> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Anti-Hack Hello, here is the result of your antihack program on my machine 1855586010 (constant result) good luck ----------------- Daniel Bondard bondard@ens.fr -----------------
X-Listserver: Macjordomo 1b10 - Macintosh Listserver by Michele Fuortes Date: Sun, 04 Jan 1998 19:03:58 +0000 From: Paul <mrwhippy@pac.com.au> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Game coding Hello, I know there are small competitions on the PC for this kind of thing,but I've yet to see them for the Mac... A comp to see who can write the best game under x Kb.I know,I know - I can hear the chants of "wanker" from here, but it's not a bad idea :) It would be a good excuse for the clever coders here to show off,and if the source code was to be made available (?),then the rest of us might learn something :) Oh yeah,there's no prize :( (unless someone wants to provide something?) Funny,about 5 minutes ago,this seemed like a good idea :) Reading it back now,it sounds pretty sad,but what about a limit of 10k with or without sound? Oh well,it was community spirited :) Paul
Date: Mon, 05 Jan 1998 04:08:01 +0100 From: bondard <bondard@ens.fr> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Game coding Paul wrote: > > .......A comp to see who can write the best game under x Kb.I ........ > if the source code was to be made available (?),then the rest of us might learn > something :) Oh yeah,there's no prize :( (unless someone wants to provide > something?) ......... > Hello Paul and all Seems to me a very good idea, rather makes me think of movies; why should *any* movie costing less than a hundred million dollars be considered only good for the punks? I'd rather think it may sometimes be the other way round, money - or megabytes - doesn't replace talent. If in doubt just have a look at Hague's Bumbler; it's surely one of the smallest, and surely one of the very good ones! About your competition idea, the problem of course is having a prize (or prizes?)... otherwise it's it just doesn't seem right. I, for one, would contribute something. Why don't you offer to organize it? Daniel
Date: Mon, 5 Jan 1998 08:14:08 -0500 From: Ajay Nath <AjayNath@compuserve.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: PEF format The data fork of a PPC app contains an object file that is either in XCOFF or PEF format. Recently I came across a (? new) Inside Mac book called "Mac_OS_Runtime_Architectures" that documented the PEF format. I was interested in this because I have been thinking about writing a compiler for a while & needed some info on the PEF format. It is INCREDIBLY convoluted! I haven't looked at info about the XCOFF format yet but I imagine it might be just as bizarre! Has anyone looked at the XCOFF format? Is it much worse than the PEF format?
Date: Mon, 5 Jan 1998 08:10:07 -0500 From: Ajay Nath <AjayNath@compuserve.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Anti-Hack please be sure that when you ask people to reply to your listserver messages that you have them reply to YOUR EMAIL...otherwise their replies to you are getting posted to the listserver & are being sent to EVERYONE...including those of us who have to pay for email when we get more than a certain amount. please try to cut down on the listserver traffic that you generate. thanx.
X-Listserver: Macjordomo 1b10 - Macintosh Listserver by Michele Fuortes Date: 05 Jan 98 07:01:48 -0800 From: Cliff Harris <cliff_harris@orangemicro.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Shareware I heard that Scott Watson made over $100,000 on Red Ryder/White Knight. On the other hand I made $0 on my shareware, so I just made everything freeware. I guess I don't have the entrepreneur talent. Also my stuff was pretty specialized. I think the key is to come up with something that has broad appeal. I paid for a lot of shareware in the past. Come to think of it, Scott Watson got some of my money. And I paid for Maelstrom. I did get surprised one time after I paid Raymond Lau for StuffIt. When it went commercial Aladdin sent me a free disk with the latest version. When I talked to them at MacWorld, they gave me a password to the latest shareware version for free. Speaking of MacWorld, two more days and I'm on a plane for San Francisco. My company's exhibiting there, but I get to go just to "enjoy the show". I don't even have to work the booth or anything. Nice little bonus.
Date: Mon, 5 Jan 1998 16:23:08 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Anti-Hack Hi, thx a lot for helping me and for this long msg. Hacking and anti-hacking have always cought my eyes. I have often hacked, but never to save money, always to learn how other have been doing things (mainly because I have often been lacking of docs). Anyways, i'm still beginnning. My teacher had set up an incredible system on the ATari. But being in the late years of the Atari, he didn't know if his system was really perfect. In all systems, the possibilities of dissambling the complete file will exsite (except if Apple start to add a second chip (a small one, 68010) which won't be documented, which won't have any debug possibilities, and where apps will be lauched. I have dreamed of getting this system working the hole summer, but I know if someone does it, it might be my idea, but it won't be me). Anyways, if we have a really big app, hacking it will take a long long time. Basicaly we can consider a 20mg file as not being redeable. >Although I hate to say anything negative about something I dont >entirely understand (although thats never stopped me), I would hazard >that this would never stop any good or determined hacker/cracker. >Im not a hacker and Ive never tried to hack an application, but I can >see several reasons why this *wont* work. >It seems to me that a hacker can disassemble the 10 first lines you >mentioned, and decrypt the file. File hacked? I'm only guessing. Yep but this will get the lines 10-20 to be asssembly, but lines 30+ will be double encrypted. It can go on like this for quite a bit of time, and the hecker will finially dicide to try something else. >Also, a simple application might look a little silly if it has to >include an 8mb animation to confuse any would-be hacker (unless you were >joking?). Well don't put 8 mb of animation, but have 8 mb of junk. BTW: noticed that the cool lightsoft demo is JUST 400k!!! Congrats Rob and Stu !!! > >In my experience crackers/hackers are, of course, Evil Persons, but also >very clever people. Someone on the list mentioned dongles? This does not >stop them. Robocop 3 on the Amiga was hailed as being un-crackable as it >came with a dongle. It took a week as far as I remember. Robocop 3 is >not the only example (Lightwave is another example). >I have yet to hear/read about an unbreakable program. Remember the >recent competion about hacking an apple-server? Well dongles cost a lot (over here, they were (3 years go) 100 frs and you had to buy them by 20pieces at a time => big investment). I don't really like dongles, cos I always say to myself: if what I'm doing is good, others will do it. Just imagin having 300 dongles on the back of your mac! >The best proof that it is impossible to make a program unhackable, is >simply that no ones done it yet. I doubt they will. But if they do, Im >thinking you have to be even more devious than what Alok has in mind. Think of my double pocessor idea. >At the end of the day, Shareware is about trusting people to pay for the >programs they use. If the programs are good enough, people will often >pay. >Oh, and remember that programs that require a registration number to >function completely is not Shareware, but Crippleware. An important >distinction (there seemed to be some confusion). >Lets just be thankful that weve got Macs and not Wintels, where the >last original,unpirated program was seen late spring 1986. > >I hope you come up with a great system Alok, but youve certainly got >your work cut out for you. When youve finished your system, Im willing >to bet that theres someone whos able to hack it. Maybe even someone on >this listserver (theres an evil rumor that someones been involved >hacking VAXens?)? I cant crack it, but then Im a decent, law-abiding >citizen who would never do such a thing ... no, really. Well at the end of the day, I would have learnt that it's beter thrusting people ! >Oh, and for the record I got the number: -359179244. Repeatedly. Hope it >helps. Just a last thing Allan, what combinasons did you try? Did you empty your PRAM? Startup without extensions? etc... ? Thx a lot, and I'll keep you informed abt my big adventure in the world of hackers! Bye, Alok
Date: Mon, 5 Jan 98 21:21:14 -0000 From: Kevin Avila <kevin@cache-computing.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: PEF format >Is it much worse than the PEF format? PEF is pretty much the same as XCOFF, but compressed and a little better for shared libs....prepare yourself ;) ------------------------------------------ Kevin Avila kevin@cache-computing.com http://www.cache-computing.com
Date: Tue, 6 Jan 1998 15:46:08 +0100 From: anders <coderonin@geocities.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Anti-Hack >>Also, a simple application might look a little silly if it has to >>include an 8mb animation to confuse any would-be hacker (unless you were >>joking?). >Well don't put 8 mb of animation, but have 8 mb of junk. A LITTLE silly ? BTW, I think Microsoft uses this scheme. Bloatware copy protection. :-) >Anyways, if we have a really big app, hacking it will take a long long >time. Basicaly we can consider a 20mg file as not being redeable. But remember, once can step through the code ACTUALLY RUNNED in RAM, instead of disassembling the whole app on file. >In all systems, the possibilities of dissambling the complete file will >exsite (except if Apple start to add a second chip (a small one, 68010) >which won't be documented, which won't have any debug possibilities, and >where apps will be lauched. I have dreamed of getting this system working >the hole summer, but I know if someone does it, it might be my idea, but it >won't be me). I think what you want is a Network Computer. Then you have a TOTALLY separate chip (hundred of miles away in a server). And you even have to log on every time. Dream ? Sounds like a nightmare. >Oh, and remember that programs that require a registration number to >function completely is not Shareware, but Crippleware. An important >distinction (there seemed to be some confusion). Some people call Shareware "free" too. Or "free-circulating". I would say there is a lot of confusion around. >Oh, and for the record I got the number: -359179244. Repeatedly. Hope it >helps. Hey, funny, this is what I got too : -359179244. Repeatedly. Kewl copy protection :-) BTW, what's stopping anyone from patching Gestalt ? //anders, not a "hacker" but well a coder.
Date: Tue, 6 Jan 1998 17:01:46 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Game coding >Hello, > >I know there are small competitions on the PC for this kind of thing,but >I've yet to see them for the Mac... A comp to see who can write the best >game under x Kb.I know,I know - I can hear the chants of "wanker" from here, >but it's not a bad idea :) > >It would be a good excuse for the clever coders here to show off,and if the >source code was to be made available (?),then the rest of us might learn >something :) Oh yeah,there's no prize :( (unless someone wants to provide >something?) > >Funny,about 5 minutes ago,this seemed like a good idea :) Reading it back >now,it sounds pretty sad,but what about a limit of 10k with or without sound? > >Oh well,it was community spirited :) > >Paul > > Hi, Well it sounds a pretty good idea! I can offer a chewing gum, and a tooth brush as a price Just joking. Two years ago, I organised a tournament, and one of the best prices was a logitech trackman. Lastyear I organised another tourn, and the best price was a set of roller blades (guess who won it? ME!!!) Anyways, I can try to get something. I'll try to contact banks, and other companys here. Maybe we should just have a fee (5$) and redistribute them. I'm ready to orgranise this every two months! Maybe we can have each two months a competition with subjects (we can start this month with a less than 100 k GAME that has to be a board game (with or without computer play). For eg you can designa risk game, where you won't have much problems in writting the algos, or you can try a chess type game. Or maybe we can have another subject: a less that 100k Utility for the MacOS. For eg you can have a MacOSPurge, or a FasterFindFile, or somthing like that.... Bye, Alok
Date: Tue, 6 Jan 1998 20:52:25 +0100 From: leahjn96@student.umu.se (Per Hjeltman) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Anti-Hack > Anyways, if we have a really big app, hacking it will take a long long > time. Basicaly we can consider a 20mg file as not being redeable. We can? The best disassembler for the Mac (MacNosy) allows you to search for trap references and such, and it only show *real* code. Thus, if you include 19.5 MB of junk with your application, Nosy is clever enough to only show the actual code, as well as presenting it in a very readable form. For the moment, it doesn't disassemble XCOFF, so anything written with Anvil is completely Nosy-safe. > >Also, a simple application might look a little silly if it has to > >include an 8mb animation to confuse any would-be hacker (unless you were > >joking?). > > Well don't put 8 mb of animation, but have 8 mb of junk. Yeah, cool. You'd bloat your application and the cracker would still not be deterred, Seriously, filling files with junk doesn't seem like the best way to protect your application. The only thing it's going to accomplish is bloating the application and pissing users off. May I suggest you try some other method of protection? What I would like is a C compiler that tries its utmost to produce unreadable code (turnoffable using directives, of course.) Maybe you can add that to Fanta_C? ;) Most crackers are not very smart, so when they encounter some extremely hard-to-read code they'll decide it's not worth the trouble.
Date: Tue, 6 Jan 1998 21:10:06 -0500 From: Stuart Ball <lightsoft@compuserve.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: LS: New Fantasm 5 Example Project Hello all. Cliff Harris has very kindly made available the full project for ROMSucker, a utility to extract resources from your Macintosh's ROM and place them in a standard Resedit(tm) file. Cliff has commented the source extensively. Documentation (including programmers notes) are also included. The project (Fantasm 5) is available for download from the downloads and updates page of our WWW pages. Many thanks to Cliff. Lightsoft 0030070198
Date: Tue, 6 Jan 1998 21:18:23 -0500 From: Stuart Ball <lightsoft@compuserve.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: LS: Fantasm 5 bug fixes Hello all. A few days ago we were made aware of an incompatibilty between parts of Fantasm 5 and Adobe's ATM control panel. We have taken steps to address this problem (and other reported bugs) in test versions of Anvil 1.1 and Build 3.5.8. These are now available for download from our WWW pages' public testing area. A complete list of fixes as applied to the software follow. Please take the time to try this new software, 'specially if you have reported a bug and it appears on the list of fixes. Your feedback is appreciated. (NOTE: Some of you may have been expecting test versions of Fant5.10 etc. this week. This was to have been the case until we decided to address the rather nasty incompatibility problems (as a side note, ATM4 kills FreePPP 2.5b6 pretty good!). We apologize sincerely for the delay but do try to respond to serious incompatibilities as soon as we are aware of them.) Changes to Anvil1.1b1 --------------------- 1. Double clicking an object to open it from a Project window now un-lights the object before opening it. 2. Change: Anvil now maintains a persistent log of file editing in the Lightsoft Folder called "User Edit Log". All files that are saved are noted here, along with the date, time and user name. This is useful if there is more than one person working on a project when you need to see who changed what files and when. This log file also contains other misc information. The file is a standard Anvil text file in Mac format (i.e. CR's only). 3. version control is now correctly disabled for log and project windows. 4. Made compatible with ATM and hopefully all Apple language kits. Build also affected by this change. Build V3.5.8 is the fixed version. 5. Fixed double click in new doc window to crash Anvil. 6. Fixed double click on first word of a file to select word; was not selecting first char. 7. Fixed black rectangle when resizing a project window with other windows open. 8. Fixed resize icon of project window not blanking out when proj window is not the frontmost window. 9. Basic machine speed rating displayed in log window when Anvil boots up. Tests emulator speed if Anvil basic ISA is 68K, basic memory/L1 cache, basic integer unit (does 32 bit div /mul/add), simple branch unit speed tests. Loops 40000 times. Lower the number reported, the better. 10. Fixed auto-switch to file so that Anvil does not always switch to an open file should user want to open a copy E.G. from the open menu and odoc AEvents. Loading from a project window will autoswitch to an open file or load as necessary. 11. Build hogs processor is not quite as severe as before. Every 20th A_Idle call will now get through with this option set. Previously, none would get through. 12. Fixed text overwrite when paste and then quickly enter a character. 13. Multiple clicks on the build icon will no longer cause build to be interupted and a new build started leading to a crash. The next build will start after the current has finished. END Lightsoft 0155 07Jan98
Date: Wed, 07 Jan 1998 03:58:38 +0100 From: bondard <bondard@ens.fr> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Game coding Alok wrote: > > Maybe we should just have a fee (5$) and redistribute them. I'm ready to > orgranise this every two months! > Hello! Why not distribute the source, as Paul said, to those who contributed $$ for the prize? Any source good enough to win would be well worth a few $$. Even ONE good code snippet which makes you save a couple of hours or gives you a good idea would be worth it. Of course it all depends on the number of persons who would be interested. Why not try a kind of poll? Here it is: DO YOU WANT TO CONTRIBUTE TO THE COMPETITION? IF YOU DO, YOU MUST SEND EMAIL TO: robot@writeme.com (Alok) YOU WILL ALSO HAVE TO SEND A CONTRIBUTION TO THE ORGANIZER: WOULD YOU BE WILLING TO SEND: $5 [ ] $10 [ ] $15 [ ] $20 [ ] $99999 [ ] IN EXCHANGE, YOU WILL GET THE SOURCE FOR THE WINNING PROGRAM. Here is my answer right away: I would want to contribute $20. Let's do it. ----------------- Daniel Bondard bondard@ens.fr ----------------- Never believe that you know the last thing about any human heart Henry James
Date: Wed, 7 Jan 1998 00:44:04 -0500 From: Stuart Ball <lightsoft@compuserve.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: LS: Bug in Anvil 1.1b1 - DO NOT USE! A bug in Anvil1.1b1 that can cause project file corruption under apparantly random conditions has been discovered. If you have downloaded the software, do not use it. A replacement will be available when fixed. Lightsoft 0543070198
Date: Wed, 07 Jan 1998 19:16:57 +0000 From: Paul <mrwhippy@pac.com.au> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Mouse/game comp... Hello, I know this is probably *really* easy,but how do you hide/show the mouse cursor? Do I need to do something with the variables JShowCursor and JHideCursor? Thanks in advance :) Paul BTW- The idea of getting each entrant in a game competition to pay an entry fee is ok,but it probably won't work if they only win some source code :( If people were going to have to pay to enter the competition,I think it'd be better if it was run as a winner take all thing,and make the source code freely available to everyone - that way more people learn how to code well,which means more entrants in future competitions and thus a higher prize for the winner! Not that my opinion matters,but I still think it should be limited to around 16Kb with graphics and sound :)
Date: Wed, 7 Jan 98 01:41:14 -0800 From: Kevin Avila <kevin@cache-computing.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Mouse/game comp... >I know this is probably *really* easy Your right. =) To hide the cursor call "Xcall HideCursor" to show it again is "Xcall ShowCursor" if you want to hide it until the user moves the mouse call "Xcall ObscureCursor" ------------------------------------------ Kevin Avila kevin@cache-computing.com http://www.cache-computing.com
Date: Wed, 7 Jan 1998 14:38:17 +0100 From: "MoonDark" <moondark@telemacus.it> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Game coding >Alok wrote: > DO YOU WANT TO CONTRIBUTE TO THE COMPETITION? I offer to contribute with $20 Mario
Date: Wed, 7 Jan 1998 21:44:57 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Game coding >Alok wrote: >> >> Maybe we should just have a fee (5$) and redistribute them. I'm ready to >> orgranise this every two months! >> > >Hello! > >Why not distribute the source, as Paul said, to those who contributed $$ >for the prize? >Any source good enough to win would be well worth a few $$. Even ONE >good >code snippet which makes you save a couple of hours or gives you a good >idea >would be worth it. > >Of course it all depends on the number of persons who would be >interested. >Why not try a kind of poll? Here it is: > > DO YOU WANT TO CONTRIBUTE TO THE COMPETITION? > IF YOU DO, YOU MUST SEND EMAIL TO: robot@writeme.com (Alok) > YOU WILL ALSO HAVE TO SEND A CONTRIBUTION TO THE ORGANIZER: > WOULD YOU BE WILLING TO SEND: > $5 [ ] $10 [ ] $15 [ ] $20 [ ] >$99999 [ ] > IN EXCHANGE, YOU WILL GET THE SOURCE FOR THE WINNING PROGRAM. > >Here is my answer right away: I would want to contribute $20. > >Let's do it. > >----------------- > Daniel Bondard > bondard@ens.fr >----------------- > Never believe that you know the last thing about any human heart > Henry James Why only the source of the winner? Why not everybody's source code? And maybe the best ones could go onto the Lightsoft site? I could host any source code on my page... And to avoid lots of transactions, suppose the fee is 10$ and you win 90$ I'll just send you 80$ and keep the rest of the ten for the next (of course, you may wanna stop and take all 90$). I think 10$ is a good price. Winner get's 75 % of all entries + a price if I can get (maybe a golden ball pen, or a certificate which will be signed from a famous guy (I did that last year and the sign was from Daily Thompson (Best Decathlon athlet in history) and this year, it'll be signed by Anand (top best chess player).) For getting these certificates made, I'm quite lucky, cos there's always osmeone famous at the olympic museum in Lausanne, and the entrance is always free and open to public. (BTW I'll get the certificates made today ( byAnand)). Bye, Alok email: robot@writeme.com VISIT MY WEB PAGE!!! NEW CHRISTMAS LOOK !!!! HTTP://FOXDEN.NETOPIA.COM/MENGHRAJANI
Date: Wed, 7 Jan 1998 21:45:26 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Alok Hi, I just checked my mail after 3 days, and it's over flowing. I haven't rerplied to the anti-hack msgs, but I'll do it soon. I would like to know: Anybody got a 8600/200 or Mac OS 8? I sent my game to a magazine, but they say it crashes under 8600/200 Mac Os 8. I would like to know where the prob is, if it's in the compatibility with Mac OS 8.0 or the 8600/200 computer (or both?) Bye, Alok email: robot@writeme.com
Date: Wed, 7 Jan 1998 21:45:31 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Mouse/game comp... >Hello, > >I know this is probably *really* easy,but how do you hide/show the mouse >cursor? Do I need to do something with the variables JShowCursor and >JHideCursor? I use a built in function, but I gues it's got a white mouse (with no mask) and plot's that! >BTW- The idea of getting each entrant in a game competition to pay an entry >fee is ok,but it probably won't work if they only win some source code :( If >people were going to have to pay to enter the competition,I think it'd be >better if it was run as a winner take all thing,and make the source code >freely available to everyone - that way more people learn how to code >well,which means more entrants in future competitions and thus a higher >prize for the winner! > >Not that my opinion matters,but I still think it should be limited to around >16Kb with graphics and sound :) Well I'm now programming in Pascal so I would need about 100k to be able to do anything. I guess by having the limit to 20kb-50kb will force me to get back to assembly. bye, Alok
Date: Wed, 7 Jan 1998 21:45:45 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Anti-Hack >>>Also, a simple application might look a little silly if it has to >>>include an 8mb animation to confuse any would-be hacker (unless you were >>>joking?). >>Well don't put 8 mb of animation, but have 8 mb of junk. > >A LITTLE silly ? BTW, I think Microsoft uses this scheme. >Bloatware copy protection. :-) > >>Anyways, if we have a really big app, hacking it will take a long long >>time. Basicaly we can consider a 20mg file as not being redeable. > >But remember, once can step through the code ACTUALLY RUNNED in RAM, >instead of disassembling the whole app on file. I can disable Mac's bug at the beginning.. >>In all systems, the possibilities of dissambling the complete file will >>exsite (except if Apple start to add a second chip (a small one, 68010) >>which won't be documented, which won't have any debug possibilities, and >>where apps will be lauched. I have dreamed of getting this system working >>the hole summer, but I know if someone does it, it might be my idea, but it >>won't be me). > >I think what you want is a Network Computer. Then you have a TOTALLY >separate chip (hundred of miles away in a server). And you even have to log >on every time. >Dream ? Sounds like a nightmare. No not a network computer, just an extra chip inside the Mac. (a small one, maybe even an intel.) >>Oh, and remember that programs that require a registration number to >>function completely is not Shareware, but Crippleware. An important >>distinction (there seemed to be some confusion). > >Some people call Shareware "free" too. >Or "free-circulating". I would say there is a lot of confusion around. > >>Oh, and for the record I got the number: -359179244. Repeatedly. Hope it >>helps. > >Hey, funny, this is what I got too : -359179244. >Repeatedly. Kewl copy protection :-) That's strange.... >BTW, what's stopping anyone from patching Gestalt ? My installer will demand a restart before and after use. Maybe it'll avoid patching? >What I would like is a C compiler that tries its utmost to produce >unreadable code (turnoffable using directives, of course.) Maybe you can >add that to Fanta_C? ;) Most crackers are not very smart, so when they >encounter some extremely hard-to-read code they'll decide it's not worth >the trouble. > I have thought of that... ******** Is it posible onthe mac to have a personnalised diskette formatting? Bye, Alok
Date: Wed, 7 Jan 1998 21:46:05 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Alok News Hi, Well I just came back from the IOC museum, and I have got some news: Bad news: I couldn't meet V.Anand. I haven't found any gifts for the competition. But Good News: I won a very nice gift, that I'm willing to offer as first price. I'll be meeting Anand tomorrow (or maybe tonight?) and will get the certificate made. So here is how everything will go: 5$ is the inscription(you pay 5$, I may get a fraction less, cos of the transactions). I'll find a way to make it easier for you to pay... 100% of the prices will be redistributated as following (I'll use a fraction to post the gift): 65 % to first + gift + certificate. 20% to second. 15% to third. The objet this time will be to write a system utility. You aren't obliged to have it as an extension form (for eg: I use Kingo.app as a nice intertaiment (It's a small app that display a nice colorful fish on the desktop and makes it goes around an aquarium. It's located in my startup folder :)) Of course utility doesn't mean useful (Kingo fish is only useful to inrease the risk of having your computer crash :)) You can work by teams, of up to two (in that case it'll be 10$ per team). The date limit will be set to 31 feb? No 28 FEB 1998 :) Anyways, I'll send some more news about how to pay. Oh few things: You can code in Pascal, Basic, Java, C & Assembly (if you wanna code in something else, please let me know). THE OBJECTIVE OF THIS COMPETITION IS TO IMPROVE YOUR PROGRAMMING SO: YOU MUST DOCUMENT YOUR SOURCE !!! All sources will be FREEWARE (or SHAREWARE). Oh, the file size isn't yet dicided, but will be something like 25-50k Anybody can participate. Bye, Alok
Date: Wed, 7 Jan 1998 18:26:50 -0500 From: Stuart Ball <lightsoft@compuserve.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Game coding Alok wrote: >Why only the source of the winner? Why not everybody's source code? And >maybe the best ones could go onto the Lightsoft site? We are always more than happy to show-case peoples efforts. All you have to do is send your work to us and we'll post it up. Stu.
Date: Thu, 08 Jan 1998 01:35:33 +0100 From: Allan Jensen <maccoder@post6.tele.dk> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Game coding While I agree that a competition could be a cool idea, there are just a few things I personally disagree with: In the old days, with Commodore 64 and the like it was indeed a artform to make your programs as short as possible. You had to take into account the limited amount of RAM and so forth. With Macs there is no real reason. Struggling to make your programs shorter often makes it less understandable and urges you to use hardcoded values and all kinds of stuff (Ive seen a basic-compiler in 10 lines of basic, I kid you not). And since the end result might be something others should read and learn from, I dont think its such a good idea. After all, code is still taking up relatively little space, so Im guessing wed only end up with a load of ugly games, because no-one has room for nice(ish) graphics. I suggest: no size limit. Also, I disagree that people should pay to get the source-code from the competion. As I said, people could perhaps learn a thing or two from the sourcecode, and making anyone pay for it seems, well, wrong. This is a list-server for all those interested in assembler using Fantasm, if we start asking people to pay to get the good stuff (I hope), Id feel bad about it, and give the source away in any case. After all we should Think Different, and be sociable and friendly mac-type people and maybe even win a few people over to cause (using Fantasm, natch). Lets be creative. Why set out rules for what type of game that has to be programmed? I have no idea how to make a chessgame, and would be disappointed if only certain types of knowledge would come in use. Who cares what type of games, as long as its fun and playable? On the whole, Im not sure about the money-thing. As a student Im pretty hard up financially, and, yes, $5 would be a lot since I guess Id have to get a cheque for it (another $5). Apart from that ;) I think its a truly excellent idea. It doesnt have to be that difficult. 2-3 months to make a game. And the winner can the honour of putting I WON THE GREAT ASSEMBLER PROGRAMMER AWARD OF 1998 in their signature. Its not really for the money were doing this, or ...? Allan
Date: Wed, 7 Jan 1998 19:59:36 -0500 From: Stuart Ball <lightsoft@compuserve.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: LS: Anvil1.1b2/Build358b2 available for testing Anvil1.1b2 is now available for download from our WWW pages ot the public testing area. The bug that could cause project file corruption has been fixed in this version. The archive also contains a new plug - Erase Data Fork. This was written for a very specific case, that of quickly removing a data fork (a fragment for example) from a file. Please send bug reports/comments concerning the above test software to lightsoft@compuserve.com Thank you for your time. Lightsoft 0100080198
Date: Thu, 8 Jan 1998 12:50:22 +0100 From: anders <coderonin@geocities.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Anti-Hack >>But remember, once can step through the code ACTUALLY RUNNED in RAM, >>instead of disassembling the whole app on file. > >I can disable Mac's bug at the beginning.. >>BTW, what's stopping anyone from patching Gestalt ? > >My installer will demand a restart before and after use. Maybe it'll avoid >patching? And as for dongles/chips/online-registration-everytime, does anyone really think that these stop determined crackers ? Sure, they cost a lot. But is it worth it ? --- OK, so your installer will demand that I startup without extensions (removing my CD-rom and a dozen of other vitals, including some people's screens). Then it will install your application (along with several megs of toxic waste). Then it will demand me to reboot (again). Every time it launches, it will disable a few system utilities that could be used for "hacking". And of course, disable any switches to Finder (probably kill it too) to avoid launching any RAM dump programs. Then I will enter a code, using your "nice" keyboard drawn. And then if remember where I put the code, and type it correctly, the app will finally start. Of course, if I buy a new computer I have to reregister/change my registration. If I have two computers, I will buy two programs (even though I use one at a time) Sounds like a whole lot of trouble, to me. And there is bound to be some little cracks in this watertight shield. And all for what : protecting your precious code ? Ever wonder why most companies nowadays don't copy protect their code, but enforce it legally instead ? //anders
Date: Thu, 8 Jan 1998 14:37:08 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Game coding >While I agree that a competition could be a cool idea, there are just a >few things I personally disagree with: > >In the old days, with Commodore 64 and the like it was indeed a artform >to make your programs as short as possible. You had to take into account >the limited amount of RAM and so forth. With Macs there is no real >reason. Struggling to make your programs shorter often makes it less >understandable and urges you to use hardcoded values and all kinds of >stuff (Ive seen a basic-compiler in 10 lines of basic, I kid you not). >And since the end result might be something others should read and learn >from, I dont think its such a good idea. After all, code is still >taking up relatively little space, so Im guessing wed only end up with >a load of ugly games, because no-one has room for nice(ish) graphics. I >suggest: no size limit. > >Also, I disagree that people should pay to get the source-code from the >competion. As I said, people could perhaps learn a thing or two from the >sourcecode, and making anyone pay for it seems, well, wrong. This is a >list-server for all those interested in assembler using Fantasm, if we >start asking people to pay to get the good stuff (I hope), Id feel bad >about it, and give the source away in any case. After all we should >Think Different, and be sociable and friendly mac-type people and maybe >even win a few people over to cause (using Fantasm, natch). > >Lets be creative. Why set out rules for what type of game that has to >be programmed? I have no idea how to make a chessgame, and would be >disappointed if only certain types of knowledge would come in use. Who >cares what type of games, as long as its fun and playable? > >On the whole, Im not sure about the money-thing. As a student Im >pretty hard up financially, and, yes, $5 would be a lot since I guess >Id have to get a cheque for it (another $5). > >Apart from that ;) I think its a truly excellent idea. It doesnt have >to be that difficult. 2-3 months to make a game. And the winner can the >honour of putting I WON THE GREAT ASSEMBLER PROGRAMMER AWARD OF 1998 >in their signature. Its not really for the money were doing this, or >...? I agree on the fact that putting a limit on the size isn't a good idea after all. But I still think that having a subject isa good idea, so that everybody get's into more or less the same thing. When I say board game, it doesn't mean chess game. It can be monopoly too. This will avoid people to keep on doing the same styles of games, and will allow people like me who think it's hard to make such a game, to try. For the money part, it'll allow us to create better games? What I was thinking, is that 5$ isn't much. I think everybody could afford it. Anyways, let's start with the date 28 Feb for submitting. I think it would be good to see utilities (and not games for once). I had few ideas for the folllowing months: a demo, a car game, a board game, a sports game, etc... But if you don't want to have a subject imposed, we may remove it. Anyways, start to code.... Bye, Alok email: robot@writeme.com
Date: Thu, 8 Jan 1998 14:37:47 +0100 From: "MoonDark" <moondark@telemacus.it> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Alok News At 21:46 +0100 07/01/1998, Alok wrote: >Oh few things: You can code in Pascal, Basic, Java, C & Assembly > >(if you wanna code in something else, please let me know). What about another competition with about the same rules but limited to old languages code? Fortran, Lisp, ADA...that would be real fun Mario
Date: Thu, 8 Jan 1998 14:45:44 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Entering this list Hi, I'm quite in a hurry now, so I wouldn't mind if someone mails me the instruction for joining this list (I have two friends interested!). Thx, Alok email: robot@writeme.com
Date: Thu, 8 Jan 1998 14:52:32 +0100 From: "MoonDark" <moondark@telemacus.it> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Anti-Hack Alok wrote: >I can disable Mac's bug at the beginning.. Disabling debugger vectors does not mean a real protection against motivated people, it may stop some individuals but you can always defeat it quite easily >Is it posible onthe mac to have a personnalised diskette formatting? Sure, as long as you build your own driver for it, personaliezd format isn't anything special, running a PC formatted disk on a mac is an example of that Anders wrote: >And as for dongles/chips/online-registration-everytime, does anyone really >think that these stop determined crackers ? Sure, they cost a lot. But is >it worth it ? I believe some dongle brands are safe, not uncrackable but still very secure as it would require a lot of time and resources to defeat their protection scheme, and that's not worth the effort. I myself work in the cp industry and I doubt someone would succeed hacking a HASP M8 dongle or a tough Microguard in little time, when you've got to deal with vital program code stored in the dongle in a seriously encrypted form, you mostly likely give up on that. Mario
From: Allan Jensen <maccoder@post6.tele.dk> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Alok News Alok wrote: > Oh few things: You can code in Pascal, Basic, Java, C & Assembly > > (if you wanna code in something else, please let me know). I'll play the role of the embittered old man again ;) Since this obviously isn't a pure assembler competition anymore, it probably doesn't belong on an asm/fantasm list-server? That is, if I understand the purpose of the list correctly? Best of luck to all who enter, but if the winner is a basic-programmer I would prefer not to know anything about it ;) I would still like it if a pure asm game/utility compo was arranged at some point, but that might be something for the Lightsoft guys to look into? As it is, I think the competion has been arranged too quickly with little real guidelines, which has stopped being entirely about assembler, which just about does it for me. But I meant the part about good luck. Really. Allan P.S. I generally try to be a kind and understanding young man, but I have exams tomorrow, so ...
Date: 08 Jan 98 15:54:55 -0800 From: Cliff Harris <cliff_harris@orangemicro.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Anti-Hack The trick to defeating a dongle is that you disable/skip over the code that reads it. Usually this is a matter of setting a breakpoint on code that reads whatever port the dongle is attached to. When you hit the breakpoint you can trace back to the code that called the port checking routine. Then you "NOP" the call to that code. Usually it expects some kind of result back, so you set things up so that the result check always branches to the "good" result. The above may require going back up the calling tree several steps to accomplish all this. This can get very tedious if the dongle is checked many times throughout the code. In the simplest case the dongle is only checked when the code first runs. A little more complication is checking for its presence when an important operation is perfomed, such as saving a file. The most complicated case is to check for it periodically (like every 5 minutes or every n time through a commonly executed routine) or just at random places in the code. The trick to really make this complicated is to use a different algorithm to do the check each time. If you have a single CheckForDonglePresence routine, just disabling that one routine will crack the program no matter how many checks are made. If the code to check the dongle is the same each time a global search for matching bytes to the first instance found will find all the others. I have done some code cracking in my time. Once because I sent in my shareware fee and the check was cashed but I never received the key to unlock the program. Another time I sent in a shareware fee and received a key that caused my name to appear in the splash screen when the program loaded. I didn't like the fact that my name was all upper case so I went stepping through the program to see how the key was transformed into my name. The code did multiple XORs on different parts of the key in different parts of the code. For example, it might XOR the first 5 bytes with $AB, then later XOR the last 10 bytes with $BA, then some bytes in the middle with $78. After about 20 or 30 XORs I gave up, so my name is still all uppercase. That's the trick to all this, I think. Just make it too tedious to crack. Of course you'll always have to pimply-faced techno-nerd kid with no life and a lot of time who will never give up. Also to use this kind of method you'll have to write some code that takes your user's name and transforms it into a personalized key. I think that will slow down those people who are reluctant to give away copies of your program when it has their name in it.
Date: 08 Jan 98 16:09:39 -0800 From: Cliff Harris <cliff_harris@orangemicro.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Coding Competition I think this has gotten out of control. I have two objections: 1 - I agree with Allan Jensen's observation that this is supposed to be an assembly listserv, so allowing other languages defeats the purpose. Given that, the competition should be based/launched from some other site or restricted to just assembly language. 2 - The second problem I have is that the "rules" have been created on the run so to speak. One here and another a couple of posts later. So I have no clear idea of what the actual rules are. I thought this started out to be a small game program and it somehow became some utility, or maybe it was something else. I don't know, I got confused somewhere among all the posts. The size has bounced all over the place also. If we're going to have a competition, the rules should be summarized so everyone knows what the guidelines are so that they can all work within them. That also applies to the prizes. It's nice to say that the winner will receive $100, but sort of premature if you don't have the $100 in hand. To keep from being burned on the prize, you need to actually have the cash in your possession. Promises and pledges of support are great, but if they don't come through you'll be honor-bound to pay out your own pocket. Probably something you don't want to do. :-)
Date: Thu, 8 Jan 98 20:44:47 -0700 From: James Hague <jhague@dadgum.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Game coding How about anyone who wants to, anyone with extra time and motivation, writes a little demo in the traditional fashion, a la Lightsoft New Year 1998? No prizes, no rules, no times limits, no fuss. It doesn't matter if source code is included or not. The Lightsoft demo is literally begging for competition :-) -- James Hague Dadgum Games http://www.dadgum.com/
Date: Fri, 09 Jan 1998 17:54:48 +0000 From: Paul <mrwhippy@pac.com.au> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Game coding James wrote: >How about anyone who wants to, anyone with extra time and motivation, >writes a little demo in the traditional fashion, a la Lightsoft New Year >1998? No prizes, no rules, no times limits, no fuss. It doesn't matter >if source code is included or not. The Lightsoft demo is literally >begging for competition :-) Damn good idea,James! I offered a reasonably simple idea and within half a dozen emails it'd turned ferral.Surely impressing one's peers is more rewarding than cash? I'm looking forward to saying "Damn! Wish I could do that!" :) Paul
Date: Fri, 9 Jan 1998 05:20:51 EST From: LewF1148 <LewF1148@aol.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: LS: Anvil1.1b2/Build358b2 available for testing In a message dated 1/8/98 3:04:29 AM, you wrote: <<Anvil1.1b2 is now available for download from our WWW pages ot the public testing area.>> Could you please tell me where this public testing area is. I went to the site at http://www.tau.it/lightsoft/main.html and looked everywhere (except programmers dream which would not open) and couldn't find it. Thanks Lew
Date: Fri, 9 Jan 1998 10:42:47 -0500 From: Stuart Ball <lightsoft@compuserve.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: LS: Anvil1.1b2/Build358b2 available for testing >Could you please tell me where this public testing area is. I went to the site >at http://www.tau.it/lightsoft/main.html and looked everywhere (except >programmers dream which would not open) and couldn't find it. > >Thanks >Lew Hi Lew, Try http://www.tau.it/lightsoft/index.html and you should then get the "Full Monty". The site was changed somewhat late last year, and most areas are now accessible from the sidebar frame you should get. If still no luck, let me know. Rgds, Stu.
Date: Fri, 9 Jan 1998 12:08:44 -0500 From: Stuart Ball <lightsoft@compuserve.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: LS: List guidelines and some other stuff 1. This mailing list. We are generally quite happy to let this list run its merry way. We will only intervene (issue guidelines) when actual list users start objecting to other users use of the list. After all, there should be no real need for control on a list composed of intelligent programmers :-) This list is for Fantasm users; it's called "list-Fantasm". The idea of giving a mailing list a name is so that users can help each other out without having to battle through noise. If this list were for Pascal programmers, it would be called a Pascal mailing list. Specifically, this list is for assembly language programmers and Fantasm users. Sometimes it has to veer off into other directions simply to get a point across - for example user (a) asks how to solve problem (x) and user (b) posts some C code - that is fine. Nobody would expect user (b) to translate the C to assembly. Mailing lists exist to satisfy the needs of people with a certain range of interests; normally the more specialized the topic, the more useful the list. This list is composed of Macintosh assembly language authors; some highly experienced, some less so. It is a highly useful resource; we ourselves have posted questions to this list with great success on every occasion. This list exists to further the knowledge of Macintosh assembly language and usage of our assembly language based products. Hence, this is not the place to post any items relating to any other language and by inference this is not the place to start a competition where the entrant may write in any languge they desire. There are many other mailing lists/sites aiming in that direction (i.e. language agnostic/algorithm specific). Please think about the above before posting. 2. Competitions This list has been running for a few years now. Some users may remember that a while back, we ourselves tried to organize a competition. If I remember correctly we were offering a prize somewhere in the region of a cuppla hundred US dollars. There was little interest so we dropped it. Since then, the number of users has grown and we have no objections to anybody organizing competitions on the list as long as the entrants efforts are written in assembly language. The main reason for writing in assembly language is to achieve high speed and smallness of size; this is still as relevent today as it has always been. In assembly language you have total control. With reference to prizes; we agree with some other list users in that programming for programming's sake is a GOOD THING. Why else would we spend 6 weeks writing a demo? It was written to find out just how one does certain things; it certainly wasn't written because we thought there may be a prize at the end of it. Were we now to go on to write a game, that demo and the techniques used would give us a lot of useful bits. We hope people look at it and say "How is that done? Can I do that?". We also learnt a shed-load about what a PowerPC processor is good at and what it struggles with (conditional branches - it don't like 'em; we learnt how to remove branches from code and more than double execution speed). Remember, it's quite possible to write a killer game at home. You don't need 40 people; indeed in many cases, the smaller the team, the better. Many years ago, people "did demos" all the time; there were no cash prizes in many cases. What came out of the efforts were just damn good programmers and a certain glee that platform x had this cool demo on it, and platform y didn't. Discussions in this area are welcome. Has nobody the inclination to challenge our demo? Is it a lost art? We're more than willing to help :-) The source for the demo is available on request to registered users. Stu. Lightsoft 1700 9Jan98
Date: Sat, 10 Jan 1998 13:56:55 +0000 From: Paul <mrwhippy@pac.com.au> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re:list guidelines etc Hello, Interesting spiel Stu and well said! I sent a message to this mailing list saying the same thing,but for some reason it didn't make it :( I bought a copy of Fantasm because I loathe the high level languages.I'm also a bit of a dinosaur in my thinking and I guess I like more control :) I agree,the mailing list is a great idea and I've learned a lot from it - some of it I'll probably never need (supervisor mode stuff),but useful and interesting none the less. As for challenging the lightsoft demo - I really want to - BADLY! but my skills just aren't there yet.I'm learning bits and pieces,but any help would be nice :) Please send me a copy of the Lightsoft demo source.I know there's some cool stuff in there I'd like to learn! :) The MOD source alone would be a great step forward! :) Thanks, Paul
Date: Sat, 10 Jan 1998 13:56:58 +0000 From: Paul <mrwhippy@pac.com.au> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: stbx instruction Hello again, I'm trying to read a slab of video memory and store it in a buffer so I can manipulate it later,but so far it just locks my Mac up nicely instead :) I've got the base address,and I'm using the lbzx instruction to get one byte at a time (slow,I know :) which seems to work (?),but my code dies when I try to use the stbx instruction to store the data in a buffer.I've noticed this happens whenever the destination buffer is greater than $FFFF - Why? If I use "Buffer: rs.b 100000", Fantasm doesn't say it's wrong,but as soon as I run my executable,I get an "Error reading longword from XXXXXXX" message in Macsbug and I can't seem to do anything to get control again,so I have to reboot :( So first of all,am I going about this the right way? And secondly,is there some handy tip someone can give me for bailing out of Macsbug when "es" doesn't work? Many thanks! Paul
Date: Fri, 9 Jan 1998 11:45:57 -0600 From: marcus jenkins <marcx@concentric.net> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Fanta C??? Hey I heard Lightsoft was coming out with a C compiler. Is it still in the works-- and if so, when would it be coming out. Something a little less expensive and sleeker than Codewarrior would be highly marketable. Not trying to offend any assembly fans ;)
Date: Sun, 11 Jan 1998 02:16:48 +0900 (KST) From: SMAT@mail.hitel.net To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Just curious Hello, After compiling source with fantasm then opening its executable file by resedit code viewer. In the code viewer window +- LEA Anon46+$0012,A1 +->ORI.B #$00,D0 What does it (willing) mean? It would be good if someone enlightens it. Have a nice day. Jin-hong, Lim
Date: Sat, 10 Jan 1998 14:40:14 -0500 From: Stuart Ball <lightsoft@compuserve.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: stbx instruction Paul wrote: >I've got the base address,and I'm using the lbzx instruction to get one byte >at a time (slow,I know :) which seems to work (?),but my code dies when I >try to use the stbx instruction to store the data in a buffer.I've noticed >this happens whenever the destination buffer is greater than $FFFF - Why? If >I use >"Buffer: rs.b 100000", Fantasm doesn't say it's wrong,but as soon as I run >my executable,I get an "Error reading longword from XXXXXXX" message in >Macsbug and I can't seem to do anything to get control again,so I have to >reboot :( Hi Paul, The RS range of directives serve two purposes in Fantasm (PPC): 1. To set up structures. 2. The largest RS block found is used to set up the size of your BSS section. RS actually defines no space at all - all it does is increment a counter by a value multiplied by the size of the directive. This counter is reset at the start of each assembly pass, and can be manually reset with an rsreset directive. Another directive related to RS's is rs_align (optional alignment) which will increment the counter to align with either the next quad value as a default or your optional alignment value. Finally, rs_auto_align will make the counter divisible by 8 after every rs operation. Going back to the start (assume the rs counter contains zero): fred: rs.b 20 This line will assign the current value of the RS counter (zero) to fred and then increment the counter by 20. If we now have line that reads: harry: rs.h 2 Harry will be assigned the value 20 and the rs counter will be incremented by 2 times the size (half is two bytes) so the rs counter will now contain 24. Thus we have defined a simple structure consisting of 20 bytes and two halfs, but only in theory. For this structure to be useful it has to have a data area to map on to. So if we ds'd some space, then made a pointer point to it, we can access the structure fields by using the labels fred and harry. Hopefully you can see the use for RS directives. What you need is some real memory to store your data in. You could ds.b 100000, but this would be a bad thing. When you ds, Fantasm physically creates (and zeros) the memory in the data section and saves it to disk - you end up with a huge app. The only data you need on disk is initialized data. Temporary storage for run-time data is best either set up in the BSS section for small amounts of memory, or got from the system with a newtr or newhandle call for larger amounts. Hence you may do something like: movei r3,100000 Xcall NewPtr cmpwi r3,0 beq no_memory_error! *didn't get the memory **you may also like to check MemError here as well stw r3,my_memory(`bss) *save the pointer to your memory Now to copy from the screen you can load my_memory(`bss) into a register and load to there knowing you have 100000 bytes of storage there. The above code can be better written (as long as no_memory_error! does the honorable thing) as: movei r3,100000 Xcall NewPtr cmpwi r3,0 stw r3,my_memory(`bss) *save the pointer to your memory beq no_memory_error! *didn't get the memory **you may also like to check MemError here as well (movei is a macro that reads: movei: macro ifne narg-2 [x$] str$ narg fail "Wanted 2 params, got [x$]!" endif [x$] bin$ \2 *32 bit binary string [y$] left$ [x$],17 *get hi order 16 bits [z$] right$ [x$],16 lis \1,[y$] *generate the code - high order 16 bits ori \1,\1,%[z$] *low order 16 bits endm ) If I haven't clarified things for you, just yell! Stu. (P.S. as for getting out of Macsbug, try defining a global label right next to Xcall ExitToShell. When you crash try pc=your_exit_label_name <CR> and then G <CR>. Sometimes it works better than ES and sometimes it don't :-)) PS II - We'll send you the demo src first thing in the morning.
Date: Sun, 11 Jan 1998 13:20:04 +1000 From: mrwhippy@pac.com.au (Paul) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re:re stbx instruction Ah! The penny hath dropped :) Many thanks,Stu! Paul
Date: Sun, 11 Jan 1998 10:48:41 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Anti-Hack >OK, so your installer will demand that I startup without extensions >(removing my CD-rom and a dozen of other vitals, including some people's >screens). Then it will install your application (along with several megs of >toxic waste). Then it will demand me to reboot (again). Every time it >launches, it will disable a few system utilities that could be used for >"hacking". And of course, disable any switches to Finder (probably kill it >too) to avoid launching any RAM dump programs. Then I will enter a code, >using your "nice" keyboard drawn. And then if remember where I put the >code, and type it correctly, the app will finally start. >Of course, if I buy a new computer I have to reregister/change my >registration. If I have two computers, I will buy two programs (even though >I use one at a time) > >Sounds like a whole lot of trouble, to me. And there is bound to be some >little cracks in this watertight shield. And all for what : protecting your >precious code ? >Ever wonder why most companies nowadays don't copy protect their code, but >enforce it legally instead ? Hi, Well the AntiHack project is now closed! You have all convinced me that it's impossible to protect apps. Anyways, the number of hackers has been reducing and will keep on reducing i hope. I thank everyone of you, to have improved my knowledge during this week. Just a question: how can one legally enforce the rights? Don't worry, for my current work (and for my next 3-4 years) I won't need any protecting. Bye, Alok
Date: Sun, 11 Jan 1998 14:51:16 +0100 From: "MoonDark" <moondark@telemacus.it> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Anti-Hack At 10:48 +0100 11/01/1998, Alok wrote: >Just a question: how can one legally enforce the rights? Good question, in my opinion, if you have the opportunity to have your own company spend some money on serious copy protection systems, use tough hardware locks, again, HASP and EvE3 dongles are enough. However, some companies don't protect their software at all but focus on contacts with anti piracy insitutions which help law enforcement to be fulfilled; this way they can track what they're most intersted in: people who obtain software from illegal sources and resell it. You may easily avoid getting caught by softwarehouses which make of this policy their only anti piracy deterrent, though the time they bust you they'll prosecute you to the maxium extend under low, for real, unlike what other companies which use software/hardware protection systems may do. Best Regards,; Mario
Date: Sun, 11 Jan 1998 16:26:34 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Alok News >At 21:46 +0100 07/01/1998, Alok wrote: >>Oh few things: You can code in Pascal, Basic, Java, C & Assembly >> >>(if you wanna code in something else, please let me know). > >What about another competition with about the same rules but limited to old >languages code? Fortran, Lisp, ADA...that would be real fun Yes... I can now organise anything you want, with a fee of 5$ to help me mail the gifts, and give something to the winner or no fee. But if I ask something like a game in Basic in less than 20 lines of code, how will we do to make sure everybody has a Basic compiler? I have none of the above three. But we can try with something like the demo version of a compiler, or some freeware compilers. I'm sure the autors of such compilers will be pleased, cos it'll will allow them to get their compilers tested by a group of very good programmers (me excluded!). >Since this obviously isn't a pure assembler competition anymore, it >probably doesn't belong on an asm/fantasm list-server? That is, if I >understand the purpose of the list correctly? >Best of luck to all who enter, but if the winner is a basic-programmer I >would prefer not to know anything about it ;) I understand. Ok, so this time you can code in any language, but next time, it'll be pure asm. > Ok, I'll rewrite the rules NOW. email: robot@writeme.com
Date: Sun, 11 Jan 1998 16:26:50 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Rules of my competition. Here are the rules of the competition: a) The competition is open to Fantasm users only, or people testing the fantasm demo (downloadable from http://www.tau.it/lightsoft/) but these users will be limited by the demo. b) You must code a GAME this time. c) it must run on 16 ram maximum. d) There are no fees for participation (though you can donate some money). e) Winner will recieve a price (I'm donating it, this time). f) This competition has nothing to do with Lightsoft, except that it's Lightsoft's Fantasm users who can participate. g) Your source will be shown to other participants, and maybe even to the hole world. it MUST be documented, so that people understand how your code goes. h) You must submit me the compiled version of the game AND the source by 28 February 1998. i) You can form a team of up to two. j) There is no size limits, but it's no use having a 5 mb of QT movie at startup. What we want is some good code (though it would be intesting to see how one can insert QT movie..) k) I will determine which is the best program, after letting everyone have a look at them. l) This competition is friendly, that means, you must respect the other participants, and accept defeat in case I judge that you don't have the best program. Good luck. This competition is organised by Alok (robot@writeme.com) based on the idea given by Paul. **** For April 30, the same competition will take place (maybe without a price for the winner) and this time, you'll have to code a demo! June 30, the same competition (maybe without a price for the winner) and this time it'll be coding a utility. Next... Board games (chess or sim city type games), sport games, racing game, compilers, adventure game, doom type, etc... email: robot@writeme.com
Date: Mon, 12 Jan 1998 18:22:04 +0000 From: Paul <mrwhippy@pac.com.au> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: ADB coding? Hello, Is there some reason why I can't get Fantasm to let me use the ADBop function? I keep getting those "not linked in any file" errors.Is there somewhere I should be including it from? Thanks, Paul
Date: Mon, 12 Jan 1998 08:04:45 -0500 From: Stuart Ball <lightsoft@compuserve.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: ADB coding? Paul wrote: >Hello, > >Is there some reason why I can't get Fantasm to let me use the ADBop >function? I keep getting those "not linked in any file" errors.Is there >somewhere I should be including it from? > >Thanks, > >Paul Try ADBOp Stu.
Date: 12 Jan 98 07:39:09 -0800 From: Cliff Harris <cliff_harris@orangemicro.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: RE: Just curious SMAT wrote: >In the code viewer window > >+- LEA Anon46+$0012,A1 >+->ORI.B #$00,D0 ORI.B #$00,D0 is a disassembly of four bytes of zeros. It might not be real code.
Date: Mon, 12 Jan 1998 18:14:12 -0500 (EST) From: Figaro Tea <humphret@ruby.winthrop.edu> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Mousigator Beta Testing Would anyone here like to beta test Mousigator before I release it? If so then email me at humphret@cs.winthrop.edu. In the email list your system specs, processor type & OS version are the main things. A definite plus is telling me you have a lot of varied extensions installed on your computer. If I do decide to let you be a beta tester then I'll email you back Mousigator. Mousigator is a system extension that implements window focusing on the Mac. ..._Tim_... --=[I know everything...just not at the same time.]=-- http://www.shack.org/zzhumphreyt
Date: Tue, 13 Jan 1998 12:19:41 +0000 From: Paul <mrwhippy@pac.com.au> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: ADBOp/Completion routines? Hello, Thanks for the tip - I think I'd better invest in a good pair of glasses :) While I'm here,could someone please explain how I create a pointer to a completion routine? I haven't a clue! I'm assuming a completion routine is just some code to be executed after receiving a value from somewhere,but how do I assign it a pointer? Thanks again! Paul
Date: Mon, 12 Jan 98 20:47:05 -0000 From: Kevin Avila <kevin@cache-computing.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: ADBOp/Completion routines? >While I'm here,could someone please explain how I create a pointer to a >completion routine? If you in 68K assembly I think you can just use 'lea myFunction' but under PowerPC it's a bit tricker to get the address of a function using Fantasm...and for that I can't help ya because I don't have my books handy. ------------------------------------------ Kevin Avila kevin@cache-computing.com http://www.cache-computing.com
Date: Tue, 13 Jan 1998 02:27:04 -0500 From: Stuart Ball <lightsoft@compuserve.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: ADBOp/Completion routines? >I'm assuming a completion routine is >just some code to be executed after receiving a value from somewhere,but how >do I assign it a pointer? If 68k, then yes it's just a pointer. If PPC you need to pass a universal procedure pointer. One can be created viz: ;;create a upp 0:kPowerPCISA EQU 1 1: lwz r3,My_TV(rtoc) ; TV here in data 2: lwz r4,[t]my_proc(rtoc) ; Actual pointer to code 3: stw r4,(r3) ; into transition vector 4: stw rtoc,4(r3) ; followed by our toc 5: lwz r3,My_TV(rtoc) 6: li r4,$00000FD0 ;params - return a byte, 3 longs in 7: li r5,kPowerPCISA ;the architecture of the code 8: Xcall NewRoutineDescriptor ;make a upp 9: move.l r3,my_upp(`bss) ;save UPP This one is for a modal dialog, but the principle is the same. MyFilterTV is defined as: align My_TV: ds.w 2 and is used to build a transition vector (pointer, rtoc) at lines 1,2,3 and 4. (You can alternatively put the TV in the BSS). The address of the code to be executed is passed in the second line and must be defined as a toc_routine. You will also need to change the parameter flags at line 6 - the 0xFD0 according to IMPPCSSW page 2-19 ish. Now, rather than passing the pointer to your completion routine, pass the upp instead and it'll be fine (he said with a wry smile on his face). One creates the upp at init time. The ADBCompletion stuff is not fun! Stu.
X-Listserver: Macjordomo 1b10 - Macintosh Listserver by Michele Fuortes Date: Tue, 13 Jan 1998 18:54:31 +1000 From: mrwhippy@pac.com.au (Paul) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Get/Store pixel Hello again, Could someone help me please? I'm trying to write a Getpixel routine and right now,it just sucks :( It should be the same as a Putpixel routine except using a load instruction instead of a store.Right? Nice and easy,but for some reason,mine just doesn't work :( I've written the same function under DOS which works just fine - which is what makes this problem more annoying :( This also means that I'm storing dud values into a buffer :( Can someone point out my mistake(s)? :) li r12,0 ;offset value lwz r5,ScreenBase(`bss) lwz r5,(r5) lwz r6,MyBuffer(`bss) ;reserved via the NewHandle function lwz r6,(r6) GetLoop: lbzx r10,r12,r5 ;Get a byte stbx r10,r12,r6 ;Store it addi r5,r5,1 ;Move to the next pixel addi r12,r12,1 ;increment the offset value cmpwi r12,100 ;for the sake of example,100 bytes will do :) ble GetLoop Am I making a big mess of this? I know it should be really simple,but I just can't see what's wrong with it :( All I know is that it doesn't work! :) Many thanks for any help! Paul
Date: Tue, 13 Jan 98 08:00:33 -0500 From: ms339002 <pauls101@mindspring.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Code header Hi all, I'm new to Fantasm, sorry if this is old/obvious. I'm redoing an extension w/Fantasm 68k. The resource it produces has a 68 byte header added to it. I've been deleting it w/ Resorcerer, but there must be a simple way to prevent this? I'd like the code to be exactly what I wrote (I do my own header), and I can't seem to find a preference or setting for that. I'm using the 68k Extension project type, set to a 'PROC' resource, merging to a file. thanks Paul
X-Listserver: Macjordomo 1b10 - Macintosh Listserver by Michele Fuortes Date: 13 Jan 98 07:54:16 -0800 From: Cliff Harris <cliff_harris@orangemicro.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: My Anvil Doc windows have disappeared I tried to drag and drop print an Anvil document onto my desktop printer icon. The document didn't print and now the window apparently is offscreen. It appears under the Windows menu, but is not visible on the screen. What do I need to do to get my document back?
Date: 13 Jan 98 08:00:53 -0800 From: Cliff Harris <cliff_harris@orangemicro.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: No color in Styled TextEdit I have a TEXT and styl resource pair that uses Styled TextEdit. I am using GetNewCWindow to open the window resource and TEStyleNew to open TextEdit. The bold and italic styles appear as they should and the extended TextEdit record and its extensions appear in memory to be correct, but the text is not in color in my window. I created the text using DocMaker and pasted it into my application with ResEdit. It appears in color in both DocMaker and ResEdit, but is only black and white in my window. Am I missing something here? I can't figure this one out. Please give me a little help. Thanks.
Date: 13 Jan 98 08:15:47 -0800 From: Cliff Harris <cliff_harris@orangemicro.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: RE: Get/Store pixel mrwhippy wrote: > >li r12,0 ;offset value >lwz r5,ScreenBase(`bss) >lwz r5,(r5) >lwz r6,MyBuffer(`bss) ;reserved via the NewHandle function >lwz r6,(r6) >GetLoop: >lbzx r10,r12,r5 ;Get a byte >stbx r10,r12,r6 ;Store it >addi r5,r5,1 ;Move to the next pixel >addi r12,r12,1 ;increment the offset value >cmpwi r12,100 ;for the sake of example,100 bytes will do :) >ble GetLoop > You might want to try something like this: li r12,0 lwz r5,ScreenBase(`bss) lwz r5,(r5) subi r5,r5,1 ;sets up the index for the loop lwz r6,MyBuffer(`bss) lwz r6,(r6) subi r6,r6,1 ;sets up the index... GetLoop: lbzxu r10,1(r5) ;gets byte from r5+1 and increments r5 by 1 stbxu r10,1(r6) ;stores byte at r6+1 and increments r6 by 1 addi r12,r12,1 cmpwi r12,100 ble GetLoop I don't know if this will fix your problem, but it will speed up your loop so that it will be faster as it works incorrectly :-). By the way, I hope your pixel depth is 8 bits. If it's higher or lower you're not getting the correct bunch of bits with the lbzx/stbx pair.
Date: Wed, 14 Jan 1998 09:41:35 -0500 From: Ajay Nath <AjayNath@compuserve.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: RE: Get/Store pixel >> addi r12,r12,1 cmpwi r12,100 << using registers that have the value of 1 & 100 might be faster too, i.e. add r12,r12,r7 ; r7 = 1 cmpw r12,r8 ; r8 = 100
Date: Wed, 14 Jan 1998 16:54:44 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Alok Hi, I am now switching to PPC Assembly (This means I probebly won't take place in my own competition, but it won't be canceled (I'm now god :)) Anyways, I would like to tell ROb (& Stu) that there is a mistake in the beginner's guide to Assembly : Chapter 1: Basic processor operation: para 2: I don't get the frist phrase: i think you wrote are instad of as. (Since I can't tell you that you have made a programmation mistake, I'll keep bugging you with typo mistakes :)) **** Whilst you are breaking down the first program you say that line 2 has no label, therefor cannot be branched to, but what if I branch to line 1 plus some value? It'll branch to line 2? SO what will be this value? Bye, ALok email: robot@writeme.com
Date: Wed, 14 Jan 1998 22:01:55 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: No color in Styled TextEdit >I have a TEXT and styl resource pair that uses Styled TextEdit. I am >using GetNewCWindow to open the window resource and TEStyleNew to open >TextEdit. The bold and italic styles appear as they should and the extended >TextEdit record and its extensions appear in memory to be correct, but the >text is not in color in my window. I created the text using DocMaker and >pasted it into my application with ResEdit. It appears in color in both >DocMaker and ResEdit, but is only black and white in my window. Am I missing >something here? I can't figure this one out. Please give me a little >help. Thanks. > > Open the text with ResEdit using HexEditor (select the resource and in the menus, you'll have the option 'open using hex..') and then check out if it's plain text. In case it dosn't work, send me your source. I'll try it using Pascal. THE only use of Pascal is for testing futur programs. Both my Pascal projects were downed in incompatibilities !!! BTW For Your Info: We got a new computer in school: StarMax 604e 200 Mhz and guess what? Virtual PC gives me better results than a Pentium 75!!! The best MS-Windows compatible OS today is certainly the emulators :) Bye, Alok
Date: 15 Jan 98 08:34:07 +0000 From: Cliff Harris <cliff_harris@orangemicro.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: No color in Styled TextEdit robot wrote: >Open the text with ResEdit using HexEditor (select the resource and in the >menus, you'll have the option 'open using hex..') and then check out if >it's plain text. > The way styled TextEdit works is that there are basically two structures (there are actually more, but I'm trying to keep this simple for purposes of explanation), a TextEdit record and a StyleRun record. In my application they are stored as a 'TEXT' resource and a 'styl' resource. ResEdit understands that they are tied together and will automatically format the text as styled text if you open either one of these resources. Basically, the 'TEXT' resource has plain text in it. The 'styl' resource has style runs in it. The way a style run works is that it tells TextEdit that starting at byte n all the following text will have a certain style, such as bold, 12 point, green, etc. For example, you could have a style run starting at byte 100 with a style of bold. Then you could have a style run starting at byte 105 with a style of plain text. That would result in the five characters from bytes 100 through 105 being in bold with the rest of the text in plain style. I'm using bold, italic and plain text, which does display correctly. Also in my About box I have some bold colored text, which displays in B&W only. It DOES display in color in ResEdit. That's why I assume that I am not doing something that is needed to make this work.
Date: 15 Jan 98 13:19:17 +0000 From: Cliff Harris <cliff_harris@orangemicro.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Disappearing document windows in Anvil I fixed the problem of my document windows disappearing in Anvil. I created a new document and sized it the way I wanted. Then I used ResEdit to open the "invisible" document and replaced the 'Eddi' resource in the bad document with the one from my good document. By the way, the 'Eddi' resource was 125 bytes in the good document and 512 bytes in the bad document. It looks like Anvil appended the info instead of replacing it. Stu, et al.: it looks like you're not handling these resources correctly. If you need more details on what I did to create/solve the problem, let me know.
Date: Fri, 16 Jan 1998 14:00:47 +0000 From: Paul <mrwhippy@pac.com.au> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Macsbug errors Hello, Could someone please tell me what a "PowerPC unmapped memory exception" error actually means? I'm reading bytes from the screen and storing them in a buffer,which works fine. The problem comes when the loop ends :( I'm using a 100 byte buffer,but only storing 40 bytes in it,so it's not overflowing.I'm also using HLockHi and HUnlock for locking and unlocking the memory,but when the loop ends and the data has been stored,the mac locks up (the mouse still works),so I force it to quit with an Option-Command-Escape,which then drops me into macsbug with the above mentioned error :( (It doesn't give me the option of choosing "force quit" or "cancel") Does this error suggest something specific,or is it just a "one size fits all" error message? Any help greatly appreciated as I'm getting a bit sick of rebooting after testing each rebuild :( Thanks, Paul
Date: Fri, 16 Jan 1998 11:56:47 +0100 From: "MoonDark" <moondark@telemacus.it> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Macsbug errors At 14:00 +0000 16/01/1998, Paul wrote: someone please tell me what a "PowerPC unmapped memory exception" >error actually means? > >I'm reading bytes from the screen and storing them in a buffer,which works >fine. The problem comes when the loop ends :( You may want to insert a debug directive at the end of the loop, that way macsbug will be called when your loop has finished executing, then you should start stepping through the code and figure out which instruction is responsible of the error. Mario
Date: Fri, 16 Jan 1998 22:21:56 +0000 From: Paul <mrwhippy@pac.com.au> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Macsbug errors Mario wrote: >You may want to insert a debug directive at the end of the loop, that way >macsbug will be called when your loop has finished executing, then you >should start stepping through the code and figure out which instruction is >responsible of the error. > I've tried that and followed it through.I wrote a short bit of code to read some data from one side of the screen and draw it back on the other.It works right until it finishes drawing the last pixel,then it dies :( I guess I'll just have to step through it again tomorrow :( Thanks Mario, Paul
Date: Fri, 16 Jan 1998 14:14:20 -0500 From: Scott Lahteine <slur@world.std.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Macsbug errors >Hello, > >Could someone please tell me what a "PowerPC unmapped memory exception" >error actually means? > You tried to read data from, write data to, or execute an instruction at a memory address which doesn't exist. In other words, either the address was too high, or there just weren't any physical RAM chips there to read. Check any registers you use as pointers to make sure they have valid addresses. scott lahteine "being is faster than light" <mailto:slur@world.std.com> <http://world.std.com/~slur>
Date: Sun, 18 Jan 1998 21:21:57 +0000 From: Paul <mrwhippy@pac.com.au> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Writing text to screen Hello, If you write text to screen with the DrawString function,what is the best way to overwrite the text when/if you need to change it? I've had a look at the TextMode function,but that doesn't seem to do what I want :( Is TextMode the right function for doing this? (if it is,I'm obviously using the wrong values :) I know there's more than one way to do this,but I'd like to find the best way :) Any suggestions? Thanks in advance, Paul
Date: Sun, 18 Jan 1998 14:52:15 -0500 From: Stuart Ball <lightsoft@compuserve.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: LS: WWW pages off-line Just a short note. Our WWW pages are currently unavailable. tau.it is off-line for server upgrades today (and last night). The server should be back up by tomorrow. Lightsoft 1950 18Jan98
Date: 19 Jan 98 07:41:56 -0800 From: Cliff Harris <cliff_harris@orangemicro.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: RE: Writing text to screen Paul wrote: >Hello, > >If you write text to screen with the DrawString function,what is the best >way to overwrite the text when/if you need to change it? I believe that if you just use DrawString it will write over the top of the text that is already present. It will write white areas as well as black areas, effectively erasing the existing text. Try it and see what happens. Another alternative is to use TETextBox, which allows you to specify exactly the rectangle that will enclose the text. You can do different types of justification, etc. See my ROM Sucker example on the Lightsoft web site. I used TETextBox to put the text in my About box.
Date: Mon, 19 Jan 1998 17:16:01 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Writing text to screen >If you write text to screen with the DrawString function,what is the best >way to overwrite the text when/if you need to change it? I've had a look at >the TextMode function,but that doesn't seem to do what I want :( Is TextMode >the right function for doing this? (if it is,I'm obviously using the wrong >values :) > >I know there's more than one way to do this,but I'd like to find the best >way :) Any suggestions? What I use is a function to calculate the lentgh/height in pixel of the text, and then draw a rectangle. I think that the best way, is to work offscreen. Suppose the string represents the speed of the car in a steearing wheel, keep the steearing wheel offscreen and each time after copying the wheel to the screen, add the speed. Bye, Alok
Date: Mon, 19 Jan 1998 17:17:02 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Tabagoshi Hi, Anybody got a version of the Tabagoshi game for Mac or the source, or the algos? BTW is Tabagoshi spelled right? Maybe that's why I can't find any info. For the ones who don't know, Tabagoshi is a small game, that comes in a key chaine form and where you must feed & take care of a little pet. Thx. Bye, Alok email: robot@writeme.com
Date: Mon, 19 Jan 1998 17:27:19 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Alok I just found that the corect spelling is: Tamagotchis Alok. email: robot@writeme.com
Date: Mon, 19 Jan 1998 13:20:29 -0500 From: Scott Lahteine <slur@world.std.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: RE: Writing text to screen >I believe that if you just use DrawString it will write over the top of >the text that is already present. It will write white areas as well as >black areas, effectively erasing the existing text. Try it and see what >happens. > Nope. In order to get rid of the old text you must restore the background color / pattern before drawing the new string. >Another alternative is to use TETextBox, which allows you to specify >exactly the rectangle that will enclose the text. You can do different types >of justification, etc. See my ROM Sucker example on the Lightsoft web >site. I used TETextBox to put the text in my About box. > This is a cool solution, though not necessarily for small bits of text or lots of scattered fields. ________________________ Scott Lahteine "No Universe is perfect which leaves no room for improvement." <mailto:slur@kagi.com> <http://world.std.com/~slur>
Date: 19 Jan 98 11:55:50 -0800 From: Cliff Harris <cliff_harris@orangemicro.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: RE: Tabagoshi robot wrote: >Hi, > >BTW is Tabagoshi spelled right? Maybe that's why I can't find any info. I think it's Tamagotchi.
Date: Mon, 19 Jan 1998 21:03:58 +0100 From: Allan Jensen <maccoder@post6.tele.dk> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Tabagoshi Alok wrote: > > Hi, > > Anybody got a version of the Tabagoshi game for Mac or the source, or the algos? > > BTW is Tabagoshi spelled right? Maybe that's why I can't find any info. > It's called Tamagotchi and there's a Mac version (called BrightChick) at: http://www.letec.ch/pmoor/ Source, AI algorithm? No idea. Allan
Date: Mon, 19 Jan 1998 19:44:50 -0500 From: Dan Stone <dlstone@epix.net> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Tabagoshi >Anybody got a version of the Tabagoshi game for Mac or the source, or the >algos? > >you must feed & take care of a little pet. Search for BrightChick. It is a shareware virtual pet for the Mac. Sorry I don't have the URL. dan
Date: Tue, 20 Jan 1998 17:08:18 -0500 From: Ajay Nath <AjayNath@compuserve.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Writing text to screen Don't even bother with offscreen drawing UNLESS you are drawing lots of text with different styles. Its fast & easy to just erase a rectangle & then DrawString text into it. This works best for STATIC text..not text that the user is typing. Check out the source to URLtility the PPC asm app I wrote whose source is in the lightsoft web page downloads area. It redraws the document windows by erasing when needed & then just drawing in text.
Date: Wed, 21 Jan 1998 17:32:42 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Alok Hi, I met a friend yesterday, who was telling me he spent 1000$ For MS-Office and he was angry, cos few years ago, when MS released their first versions, he had been an official beta tester, and had often lost week's of work. SO I thought that the futur of computer's is in the young students, so I thought of a Student's project. My aim to give students, FREE tools for the Mac so that they buy macs, and then program on macs, and then their children will have macs, and so on, and one day Macs will not only dominate in Power and Docs, but also in number. Here are the Apps I have thought of writting. I know it's a long project, I'll need your help and that I'll have to wait quite sometime to begin my first projects: Algebra: a simplfied version of Mathematica. Gemoetry: A monge projection system, and a color version of Cabri-Geometre, without it's bugs (I made a complete bug report on it, since I have worked on this prog for over 4 years, unfortunatly I don't the creator of this prog). Programamtion: Basic and Assembly compiler & maybe something like Logo or HyperCard? etc... Of course, these are just ideas, but I hope someone will get them written and will give them away for FREE with each mac. Bye, Alok
Date: Wed, 21 Jan 1998 17:32:56 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Floating window Hi, How do I create a floating window like PPPFloater or the tools in Graphic converter. Thx, Alok
Date: Wed, 21 Jan 1998 17:33:31 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: PPC / 68k Hi, I'm starting my first PPC program, and I have a prob: How do I know where to pass the parameters while doing system calls (like sysbeep, newcwindow, etc...). Has anybody here used some other good info rather than the beginner's guide (I find the PPC part a bit too little.)? Bye, Alok
Date: Wed, 21 Jan 1998 17:33:36 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: sub routine calling Hi, Would like ot know how the stack works in PPC. Can someone pls help me getting the following code workign with saving return addresses i r29, then r28 etc... Call sub1 end of prog sub1: save return address on stack call sub2 reload return address from stack end of sub1 sub 2: end of sub2 email: robot@writeme.com
Date: 21 Jan 98 10:25:47 -0800 From: Cliff Harris <cliff_harris@orangemicro.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Student software Years ago Apple had the University Consortium, which was a collection of software that was written by students, faculty members, and whoever wanted to contribute. All this was free software that was available at the Kinko's Copy Center to copy to your floppy disks. Now that I think about it, I think I need to back off on that "free", because I think some of it was shareware. Then Apple found out that some Kinko's were charging for using their computers and stopped the program. They said they were going to start it again, but it never happened. Now that the Web is here, maybe that would be a good distribution method. I know Apple has limited resources these days so I wonder if it would do any good to suggest that they restart this program.
Date: Wed, 21 Jan 98 14:52:02 -0500 From: ms339002 <pauls101@mindspring.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Floating window > >How do I create a floating window like PPPFloater or the tools in Graphic >converter. > A floater stays on top of the window list whether or not it is the active window. To achieve this you have to do low level stuff in the window list: every time the system tries to bring a non-floater to the front you stuff your floaters on top of it again. There was also an article on the subject in develop #15, that you can probably get from the devworld.apple.com website if you don't have the issue or an older Developer CD. Most frameworks can do it for you - if you have access to the source of one, look it over. It's relatively easy to but tricky to get right in an application - it's hard to do system wide (involves patching the Window Manager). Have a blast! Paul
Date: Wed, 21 Jan 1998 16:54:20 -0500 From: Ajay Nath <AjayNath@compuserve.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Floating window >> How do I create a floating window there was a whole issue in mactech (back then it was called mactutor) about how to do this so you can just search their web site (www.mactech.com) for it. of course if you used a framework like PowerPlant or MacApp you could get floating windows EASILY since the code/classes for them are already there! oh yes, there was also an article in develop about how to use floating windows too...& i believe that in resedit you can set the windowkind of a WIND resource so that the window draws itself to look like a floating window..but that does not make it "float", it just gives it the right look
Date: Wed, 21 Jan 1998 21:47:12 -0500 From: Ajay Nath <AjayNath@compuserve.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: PPC / 68k You can download the Inside Mac Volume called "IM-PowerPC System Software". It has info about PPC calling conventions & how they pertain to the mac toolbox. Its quite easy really. Parameters to toolbox routines are passed sequentially in registers starting with r3, i.e. if there is a call such as "ToolBoxCall (b:long; t:short; x:Handle)", in fantasm PPC asm you would do the following: load r3 with b load r4 with t load r5 with x Xcall ToolBoxCall ; Xcall is a PPC fantasm macro Take a look at the source of any of the apps that I posted. The sources show how to manage the stack (its also covered in the above IM volume) & how toolbox calls are made. One of the best PPC asm books I have found is "Optimizing PowerPC Code" by Gary Kacmarcik. This book has great explanations of PPC stack management & calling conventions. IBM & Motorola will also send you manuals for the PPC for basically free (they charge you postage). The one I got from IBM is called "The PowerPC Compiler Writers Guide" & it has lots of coding tips & algorhithms. They sent it to me for $1 postage. It also explains the PPC calling conventions too. The motorola manuals can be downloaded in PDF format & some are on the Lightsoft Anvil CD.
Date: Thu, 22 Jan 1998 17:09:08 -0500 From: Csaba Szigetvari <ps_informedia@compuserve.com> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Alok Hi, You wrote on the fantasm list server: << Programamtion: Basic and Assembly compiler & << maybe something like Logo or HyperCard? I also had plans for something like that, but it's a lot of work to be done alone, this would need about 3 - 5 developers, some additional tester's and quite some time to make it work. I thought of something like HyperCard, but without it's current limitations and with the ability of something similar to the Java bytecode in order to allow the use of many different programming languages or even mixing them - some kind of platform-independant assembler code behind the programming interface with a run-time environment for different computers. I'm interested in being part of such a project, so mail me in case of need. Bye, Csaba ps_informedia@compuserve.com
Date: Thu, 22 Jan 1998 22:18:21 -0500 (EST) From: Figaro Tea <humphret@ruby.winthrop.edu> To: Multiple recipients of <list-fantasm@mail.tau.it> Subject: Re: Alok On Thu, 22 Jan 1998, Csaba Szigetvari wrote: > << Programamtion: Basic and Assembly compiler & > << maybe something like Logo or HyperCard? > > I also had plans for something like that, but it's a lot of work to be done > alone, this would need about 3 - 5 developers, some additional tester's and > quite some time to make it work. > > I thought of something like HyperCard, but without it's current limitations > and with the ability of something similar to the Java bytecode in order to > allow the use of many different programming languages or even mixing them - > some kind of platform-independant assembler code behind the programming > interface with a run-time environment for different computers. > > I'm interested in being part of such a project, so mail me in case of need. Ooh, this sounds interesting; the platform-independant assembler code really piqued my interest -- those of you who've been on the listserv for a while will probably know why;) Although I like the idea of multiple programming languages even better. Conceptually I think this program environment would look something like this: C++ C Java Pascal COBOL | | | | | +--------|------------+ Bytecode | Processor Assembly The bytecode would be an intermediary step for other languages, besides Java. The implementations of the languages could be something like OpenDoc modules, that way you wouldn't have to distribute every language and you could just download an additional one, or buy it, and "plug" it in to the programming environment. Well, I don't want to ramble too much so I'll shut up for now. I'd definitely like to do something like this. If whoever gets involved is serious about it then this could turn into something like Linux. ..._Tim_... --=[I know everything...just not at the same time.]=-- http://www.shack.org/zzhumphreyt zzhumphreyt@winthrop.edu
Date: Sat, 24 Jan 1998 07:40:20 -0500 From: Stuart Ball <lightsoft@compuserve.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: NFtT 24 Jan 98 News From the Tower 24th Jan '98. --------------------------------- Here's another one of those rather irregular news posts we put out from time to time, letting you know what's happening and coming up. These go out fairly infrequently so it's not exactly spam city, but if you do find this mail annoying, please get thee hence to <http://www.tau.it/lightsoft/links.html> where you may unsubscribe from this list. 1. Fantasm 5.10 is now available for testing. This is an alpha test post port to native code. As well as being much faster than version 5 it also contains significant language enhancements and a few bug fixes. This test version is available via email only. Details are on the public testing area of the WWW pages. 2. LXT is now also available, downloadable from the public testing area of the WWW pages. LXT is an implementation of a portable assembly language based on a sub-set of 68K; it will also directly translate 68K source files to PowerPC executable with minor modifications. LXT requires Fantasm 5.10. **IMPORTANT** If you downloaded LXT anytime between 22nd Jan 98 this week and 0900 GMT today please note that it has been upgraded to V1.01. V1.01 throws an error if it detects a qmove or qcmove instruction followed by a conditional branch (beq/bne/ble/blt/bgt/bge etc). This would cause a run-time error on a PPC target (qmove does not set the condition register flags if the processor doesn't automatically set the flags as a result of a move instruction). Anybody with a copy of LXT earlier than 20th Jan 98 should upgrade and rebuild any PPC projects. LXT versions prior to 1.00 could erroneously miscalculate the size of immediate data and perform the operation with a simple li/addi/ori/ etc instead of the correct instructions. Lightsoft 1130 24Jan98
Date: Sat, 24 Jan 1998 22:05:35 -0500 From: Csaba Szigetvari <ps_informedia@compuserve.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Re: Alok Tim said: < I'd definitely like to do something like this. > That already makes two of us. Let's start it, the worst thing that could happen is that nothing happens, so there's not very much to lose right now. Your visual conceptual design shows very clear what this is about: C++ C Java Pascal COBOL | | | | | +--------|------------+ Bytecode | Processor Assembly To start somehow, I suggest to find a name for the project. This might seem to be a silly suggestion, but newborn babies get a name as well after birth, so there's a solid tradition behind this. In my opinion the 'Bytecode' part of your diagram must be defined first. As it is supposed to be some kind of abstract or ideal assembler dialect, we have to come up with a very clear definition of the instruction set. Should it be rather like a CISC instruction set, or more like the trendy RISC sets? For my part it is much too early to decide that, so I would rather like to see some kind of a 'CRISC' set (a bit of both). CRISC sounds like some crunchy breakfast product, but it's easy to spell, so why not using this as a project name until someone has a better idea !?! Csaba ps_informedia@compuserve.com
Date: Sun, 25 Jan 1998 17:09:55 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: PPC Hi, I have some problems: a) How do you work with rectangles eg to draw a circle, squar, or most other things with QD. b) How do I plot a 'PICT' ressource. Here is what I'm doing now: li r3,128 Xcall GetPicture Xcall Debugger lhz r4,(r3) lhz r4,4(r4) Xcall Debugger Xcall DrawPicture but already at the first drop into macsbug, r3=0 c) How do I copy r23 to r3. Currently I'm doing subi r3,r23,0 but I'm sure there is a better way... Thx for your time... Bye, Alok
Date: Sun, 25 Jan 98 12:36:31 -0000 From: Kevin Avila <kevin@cache-computing.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Re: PPC >but already at the first drop into macsbug, r3=0 > >c) How do I copy r23 to r3. Currently I'm doing > >subi r3,r23,0 Well, r3=0 because that the return code of GetPicture (0 = no error) if you want to move r3 to r23 use mr r3,r23 +--------------------------+-----------------------------------+ | Kevin Avila | Cache Computing | | Developer Theoretician | kevin@cache-computing.com | | | http://www.cache-computing.com/ | +--------------------------+-----------------------------------+
Date: Mon, 26 Jan 1998 21:19:57 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Accessing data Hi, Well I have started my game for my competition, and I hope I'm not the only one. I quickly got stuck with data handeling. Could I have a description of the register pls (like I think I shouldn't touch r30?). I have a doubt while loading and saving data into memory. Is this right? la r3,nb_player(`bss) nb_player: rs.w 1 nb_life: rs.w 1 Is there a way to add nb_life and nb_player together without having to do this: la r3,nb_player(`bss) la r4,nb_life(`bss) add. r3,r3,r4 stw r3,nb_player(`bss) BTW I can't use 'add'. Fantasm starts to interprete my code as 68k ??? Another problem I have is while is in my subroutines. How do I avoid destroying registers? Is the stack the best solution? How does it work (I havan't had time to go and rent the Inside Mac ): ) Bye, Alok email: robot@writeme.com
Date: Mon, 26 Jan 1998 17:13:46 -0500 From: Ajay Nath <AjayNath@compuserve.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Accessing data Well here is one problem: >> la r3,nb_player(`bss) la r4,nb_life(`bss) << Fantasm stores data in the global space, not pointers to data as most PPC compilers do (which is the standard way to store globals on the PPC). So assuming that nb_player & nb_life are numbers the proper way to get their values in Fantasm PPC asm is as follows: lwz r3,nb_player(`bss) lwz r4,nb_life(`bss) If you put the following directive at the beginning of your source code file it will tell anvil that the code is for the PPC. PROC_PPC
Date: Mon, 26 Jan 1998 17:22:00 -0500 From: Ajay Nath <AjayNath@compuserve.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: PPC >> but already at the first drop into macsbug, r3=0 << GetPicture is supposed the return a PicHandle & returns its result in r3 (as do all PPC function that return non-floating type return values). If your call returns zero then the resource could not be found...perhaps it isn't in the resource fork of your app? Check to see if the compiled app has a PICT resource of id = 128. The "mr" instruction canbe used to copy register values. Try the following: >> li r3,128 Xcall GetPicture cmpwi r3,0 ; did we fail? mr r28,r3 ; r28 = PicHandle beq noPictResource ; r3 = 0 so no PICT 128 was available ; Draw the picHandle ; r3 already has the picHandle la r4,TheRect(`bss) ; r4 = ptr to some rect Xcall DrawPicture ; blah blah, more code noPictResource Debugger << If no picture draws then you are missing the PICT 128 resource.
Date: Mon, 26 Jan 1998 17:23:35 -0500 From: Ajay Nath <AjayNath@compuserve.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Re: PPC >> r3=0 because that the return code of GetPicture << GetPicture does not return any error codes, just NIL (0) or a handle
Date: Tue, 27 Jan 1998 18:25:47 +0000 From: Benny Ronnhager <benny.ronnhager@soderhamn.mail.telia.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Problems with 68000 Files Library! Hi! I am working on a 68000 projekt and have a problem. I am trying to use the 'Files Library' and the function 'WRITE_SELECTOR_ALL' but the only thing I get is a bus error. HELP!!! I have Fantasm 5.0 Best regards Benny -- MIDI Universe Welcome to my little world in Cyberspace... http://w1.270.telia.com/~u27002261 Benny Ronnhager benny.ronnhager@soderhamn.mail.telia.com 'The Dream Is Always The Same...'
Date: Thu, 29 Jan 1998 18:36:01 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: QD graphics HI, Well I need more speed for my animations. What's the best solution? There are no sprites, so I guess copybit should be good, but how can I do that? I have heard that QD offers a playpicture and a drawpicture rountines. How good are they (my graphics are very simple: 2 lines and 2 ellipses. BTW I still can't get my 'PICT' image on the screen, pls send me a file containing an example, thx. Another question: I'm rotation my graphics on a circle by 180 degrees. I would like to precalculate the values. How do I stroe them in tables? (There are 36 values, each a byte long)? I guess table1: ds.b 36 (Since I'm having problems with simple routines (plot pict, calculate sin/cos) I think I'm going to start to write a guide for beginners with all these problems solutions (a bit like to IO_LIB.S Lightsoft has written. If anybody is interested in helping me...) Bye, Alok
Date: Fri, 30 Jan 1998 18:27:12 +0000 From: Benny Ronnhager <benny.ronnhager@soderhamn.mail.telia.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Is something wrong? Hi! Is there something wrong with the Fantasm mailinglist? I have not recieved any mail for a long long time. Benny -- MIDI Universe Welcome to my little world in Cyberspace... http://w1.270.telia.com/~u27002261 Benny Ronnhager benny.ronnhager@soderhamn.mail.telia.com 'The Dream Is Always The Same...'
Date: Sat, 31 Jan 1998 11:30:50 -0500 From: Stuart Ball <lightsoft@compuserve.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: LS: Latest test tools for download Hello all, Just a short note to let you know that the latest tools (30 Jan) are now available for test from the public testing area. These are in the form of patches to be applied to tools freshly installed from your Fantasm 5 CD (necessary so that the tools' resources are not changed else the patch will fail with a "This is not the file this patch is designed for" error). Of particular note to people who have received previous test tools via email are the following changes: 1. Anvil is up to 2a14. Corrects a bug when adding a shared library to a PPC project and adds the pop-up labels menu to source file windows. This provides a sorted list of labels you can jump to. 2. Build reaches version 4 which is faster at detecting changes and dependencies due to internal caching. --------------- The patches (ResCompare) are supplied in an archive and affect the following items: Takes Anvil to V2a14Fat. Anvil tools affected: Build V4.0 - Fat DDBAccess V1.10 - Fat Fantasm V510a16 - Fat LinkPCC V4.90 - 68K These have been on internal test for a few days with no apparent problems. NB: Do not use any of these tools with a V1 Anvil. Any problems just let me know. Cheers, Stu.
Date: Sun, 1 Feb 1998 15:48:04 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Alok Hi, I have just finished my first beta version of the game I'm writting for my competition. It's at the same time my first PowerPC Assembly game. The game goes like this: You see a ball on the screen that gets covered by a glass. Two other glasses are also displayed on the screen. Then the computer shuffles the glasses, and if you have got good reflexes, you'll be able to tell in which glass is the ball (you must follow that glass with your eyes.) Well there is still some work remaining: 1) comment the source 2) create a sub routine to prompt at the end of the game. (cos for now you must drop into macsbug and lok at register r20). 3) create a random generator that generates each time different numbers (for now I used Lightsoft's random subroutine written for the space shooting game. 4) add some music... The app is 26k, so if you want me to mail it, let me know. Bye, Alok ****** Help...... I'm now loading my menus.. I have a prob: I need to load the Apple Menu so I follow do the following: - Load my MenuBar (with GetNewMBar) - Set the menu bar - Get the menu handle of ID=128 (Apple menu) - Add Res Menu with: r3=menu handle of ID 128 r4='DRVR' But when I try to put the value 'DRVR' ($44525652) in r4, I get an error telling me that my number is too large to fit 16 bit.... Thx, Alok email: robot@writeme.com
Date: Sun, 1 Feb 1998 21:06:13 -0500 From: Stuart Ball <lightsoft@compuserve.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Alok Hi Alok, >But when I try to put the value 'DRVR' ($44525652) in r4, I get an error >telling me that my number is too large to fit 16 bit.... You need to use the movei macro to move a 32 bit quantity into a reg. li only moves a 16 bit quantity (if that is what you were using). movei looks like this: movei: macro ifne narg-2 [x$] str$ narg fail "Wanted 2 params, got [x$]!" endif [x$] bin$ \2 *32 bit binary string [y$] left$ [x$],17 *get hi order 16 bits [z$] right$ [x$],16 lis \1,[y$] *generate the code - high order 16 bits ori \1,\1,%[z$] *low order 16 bits endm This wont work in Fant 4 because it has no string handling directives, but the gist of it is to lis the upper 16 bits and ori the lower 16 bits of the immediate data. lis rx,"DR" ori rx,"VR" -------- As a note to everybody, I'm currently limbering up to write the next chapter of the Beginners Guide to PPC assembly language. I thought the best way to procede would be with practical example - a simple application. If you have anything in particular you'd like me to cover (files, copybits, sound, whatever), let me know; I'd much rather write text and examples that people will find appropriate and useful. Stu.
Date: Tue, 3 Feb 1998 18:56:01 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Event loop Well I have reached the hardest part.... Here is a small part of my event loop (that doesn't work): start: li r3,-1 *All events li r4,10 *sleep li r5,0 Xcall WaitNextEvent lhz r20,(r3) *First 16bit represent event andi r21,r20,2 *2 => mouse down cmpwi r21,0 beq start *Do until mouse down.... mouse_down: Xcall Debugger It's supposed to wait until the mouse is down, but why does it keep on looping anything I do? Thx, Alok
Date: Tue, 03 Feb 1998 20:24:50 +0000 From: Benny Ronnhager <benny.ronnhager@soderhamn.mail.telia.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Problems with 68000 files library! Hi! I have a problem with the 68000 files library function WRITE_SELECTOR_ALL. The only thing I get when I am using this function is a bus error somewhere in the middle of the library code. Can someone help me with a code example to call this library function, thanks. Benny -- MIDI Universe Welcome to my little world in Cyberspace... http://w1.270.telia.com/~u27002261 Benny Ronnhager benny.ronnhager@soderhamn.mail.telia.com 'The Dream Is Always The Same...'
Date: Tue, 3 Feb 1998 17:39:20 -0500 From: Ajay Nath <AjayNath@compuserve.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Event loop The correct defintion of WaitNextEvent is as follows: Boolean WaitNextEvent (eventMask, &theEvent, sleep, mouseRgn); in your call you are missing the ptr to an EventRecord. if you have a problem with toolbox calls passing incorrect parameters is the most likely cause
Date: Wed, 04 Feb 1998 20:09:45 +0000 From: Benny Ronnhager <benny.ronnhager@soderhamn.mail.telia.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: NO MORE PROBLEMS! How can I be so stupid? Forget the problems I had with the 68000 files library function write_selector_all. How could I forget to call Init_Mac? That's life. Benny -- MIDI Universe Welcome to my little world in Cyberspace... http://w1.270.telia.com/~u27002261 Benny Ronnhager benny.ronnhager@soderhamn.mail.telia.com 'The Dream Is Always The Same...'
Date: Wed, 4 Feb 1998 14:49:25 -0500 From: Stuart Ball <lightsoft@compuserve.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Event loop Ajay wrote in reply to Alok: >in your call you are missing the ptr to an EventRecord. if you have a >problem with toolbox calls passing incorrect parameters is the most likely >cause Tip: If you use the OScalls from LXT, it gives you far more error checking than doing it by hand. Stu.
Date: Thu, 05 Feb 1998 18:45:30 +0000 From: Paul <mrwhippy@pac.com.au> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: offscreen drawing Hello, Could someone please explain the theory behind offscreen drawing,please.The kind of offscreen drawing that doesn't use copybits :) I haven't read any docs about how to do this,and my understanding of the concept is poor :( You're supposed to write the data to another part of memory and quickly flip it from there into the screen memory when necessary,aren't you? That's what I'm doing and it flickers like a strobe light :( Is there some FAST way to shift blocks of data? And is that the right way to handle this? Any help greatly received! Paul
Date: Thu, 05 Feb 1998 13:51:28 +0100 From: Allan Lund Jensen <maccoder@post6.tele.dk> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Re: offscreen drawing Paul wrote: > Hello, > > Could someone please explain the theory behind offscreen drawing,please.The > kind of offscreen drawing that doesn't use copybits :) I haven't read any > docs about how to do this,and my understanding of the concept is poor :( > > You're supposed to write the data to another part of memory and quickly flip > it from there into the screen memory when necessary,aren't you? That's what > I'm doing and it flickers like a strobe light :( Is there some FAST way to > shift blocks of data? And is that the right way to handle this? > > Any help greatly received! > > Paul > It seems like you've got the right concept. Just reserve some memory, do all your drawing there (treating it like the screen), and the splat the whole thing to screen. Use words or the FPU (the FPU moves more data but I'm not sure it's the best thing to use).Anyway, that's what I do. If you do that your display shouldnt flicker. As far as I recall, the demogame that came with FantasmV has got an example of such a display. You can find docs on the subject for the PC. They have it a little easier with that Chain-4 thing they've got going. A search for Double Buffer on the internet should be a start. Allan
Date: 05 Feb 98 12:08:09 -0800 From: Cliff Harris <cliff_harris@orangemicro.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Re: offscreen drawing >Paul wrote: > >> You're supposed to write the data to another part of memory and quickly flip >> it from there into the screen memory when necessary,aren't you? This is all off the top of my head, so it may not be accurate. One way to do this is to set up a second GWorld. Then you draw into the one you are not displaying. When drawing is done, you switch to the second GWorld. Then you draw into GWorld #1 and switch back when drawing is done there. I'm not absolutely sure on this, but I think double buffering is similar except that you draw into a buffer then copy from buffer to second GWorld and then switch to the second GWorld, etc... I think your flickering is because of the copy into screen memory. Basically you don't want to draw to the screen while you're displaying it. You do all your drawing into the offscreen bitmap.
Date: Thu, 5 Feb 1998 17:09:24 -0500 From: Ajay Nath <AjayNath@compuserve.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: offscreen drawing >> Could someone please explain the theory behind offscreen drawing,please.The kind of offscreen drawing that doesn't use copybits :) I haven't read any docs about how to do this,and my understanding of the concept is poor :( << There is a tech note on the apple developer site about Offscreen graphics. You can download it from the web. I think it was also included on the Fantasm 5 anvil cd. But why reinvent the wheel? For simple animation needs that will run well on ALL macs you can use Apples DrawSprocket. I haven't tried it myself but several good games use without problems. You can also check out the "Sprite Animation Toolkit" or SAT for the mac which provides code + examples on how to do animation on the mac...or you can just access the toolkit as a shared library & not even worry about the details. Try NOT to reinvent code that someone had already written & debugger for you. here are some URLS to help you: http://www.devworld.apple.com/ & the next one is a great page about games programming: http://www.wwu.edu/%7En9145339/progmac.html
Date: Fri, 06 Feb 1998 19:12:14 +0000 From: Paul <mrwhippy@pac.com.au> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Wheel re-invention... Hello, First off,thanks for the help with ofscreen drawing.Something else to do this weekend :) Why re-invent the wheel? Because sometimes the wheel is too big,or too slow or just too clumsy.Isn't that what assembler is for? I prefer to write my own code,rather than borrow from libraries,because I like to know what's going on in my code - and I like to know how things are done. I know I'll be corrected if I'm wrong,but nearly all libraries are c/c++ based anyway - which is fine for those fond of high level languages and the prevalent cut and paste coding mentality that follows,but I've always thought of assembler as being for people who want to do it their own way - not just follow the leader.... I understand the potential benefits of using pre-debugged code,but it doesn't mean you have to be satisfied with it.What would've happened if aviation people had said - why improve the plane,the Wright brothers have already built one? Re-inventing the wheel is often beneficial,because the wheel is seldom made perfect the first time around ;) Paul
Date: Fri, 6 Feb 1998 08:56:28 -0500 From: Stuart Ball <lightsoft@compuserve.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: NFtT 6 Feb 98 News From the Tower 6th Feb '98. --------------------------------- Here's another one of those rather irregular news posts we put out from time to time, letting you know what's happening and coming up. These go out fairly infrequently so it's not exactly spam city, but if you do find this mail annoying, please get thee hence to <http://www.tau.it/lightsoft/links.html> where you may unsubscribe from this list. ------------ 1. New test software will be posted shortly. Changes this week to Anvil and Build. Anvil 2a18 is the first to support external editors. This version contains rudimentary support in that it will send files opened from a project window (or a group of files) to the tool named "editor" (case irrelevent) found in the tools or plugs folders (it may be an alias to your favorite editor). If you use this feature we would like your feedback on how to improve it. Build 4a3 removes that dreaded file not found error that can occur sometimes (remove a globinc file from a project for example) - it simply tells DDBACC to rebuild the DDB. We've been using these builds all week and quite frankly the speed is frightening. Note: Some people have reported not being able to download test software from the site. If you are having problems here's what we know: Microsoft Internet Explorer V3.1 does sometimes seem to abruptly stop downloading and new downloads simply won't start. The solution is the remove it's preferences, history and cache files (no need to remove the favorites). This problem may exist in other versions of this browser as well. Check you are not using a proxy server. This can cause all sorts of problems - typically not being able to find pages and files. Just FYI, the site is checked with I.E. 3.1. (please don't groan about it being Microsoft - it's stable ;-)) 2. It seems the listserver "lost" some of you! Over the last two weeks we have received numerous "I haven't had any mail from the Fantasm mailing list for a while" emails. We really have no idea why. It may have been a server glitch, or somebody playing a practical joke or something else. We've posted a note to the News section in case others find themselves "off" and are unaware of the problem. 3. This time of the year is typically a very quiet one for us. However, this past week we have been rather inundated with new orders and ran out of CD's! All orders (to date) have now been dispatched but please allow a few more days on top of the specified 14 for delivery before contacting us. 4. In Fantasm 5.1 the OS interface macros will become the "official" way of talking to the OS (for those of you that do :-)). Please take a second to whizz through them (available in the LXT archive from the testing pages) to see if they cover your needs or whether we need to add (and test) others which you think are necessary. 5. We want your projects! Really, if you've written anything unusual (a nifty PPC trick for example), something different, or just plain boring but think it may be of help to other users then please send it in so we may add it to the site. We used to have time to write loads of example code and "chats" - sadly those days are gone. We like to think it's not our WWW pages, but Fantasm users pages - so if you have anything you'd like to share with the community, send it along. Doesn't matter how big or small it is either, just a snippet is useful and it's sure to be useful to somebody. It doesn't have to be code - letters and discussions, description of your particular coding style/algorithms, special Mac tricks, moans, rants, we've even had movies sent in! One of the big discussion points at large currently seems to be "making a living out of shareware - is it possible?". Another (Stu fave) is when did you last see a good Mac shareware game? Anybody want to comment on these? If you've got something people could use/learn from/laugh over, whatever, get it up here. The only thing you'll earn is kudos. 6. Bug of the week. Anvil. You should be able to option click on includes, branches and macros to "go to" the definition or destination (in the case of branches). This we think is more natural and quicker than having to select the file name and then "Open selection". It seems that if you option click on an includeh directive you may enter your debugger with a DebugStr about "HL file scanning not being implemented yet". Anvil is obviously talking nonsense. We'll get this fixed in version 2. Workaround: None. Don't option click on includeh directives. End Lightsoft 13:50 06 Feb 98.
Date: Thu, 29 Jan 1998 21:51:26 +0100 From: "MoonDark" <moondark@telemacus.it> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Swapping keys? I was wondering what's the best way to reverse two keyboard inputs, I want to swap the command and option keys at the system level. I guess I could do that by patching getnextevent but I'd be glad to take any other suggestion, I could really use some information about trap patching under 68k assembly too. Thanks in advance! Mario
Date: 06 Feb 98 10:56:43 -0800 From: Cliff Harris <cliff_harris@orangemicro.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: RE: Swapping keys? MoonDark wrote: >I was wondering what's the best way to reverse two keyboard inputs, I want >to swap the command and option keys at the system level. There's a system resource that maps the keyboard to the characters. I think it's KMAP, but there may be others. Check out Inside Macintosh.
Date: Fri, 6 Feb 1998 17:48:38 -0500 From: Ajay Nath <AjayNath@compuserve.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Wheel re-invention... >> I know I'll be corrected if I'm wrong,but nearly all libraries are c/c++ based anyway - which is fine for those fond of high level languages and the prevalent cut and paste coding mentality that follows << These days on the mac things are implemented as shared libraries so it doesn't matter what language they are written in. No cutting & pasting is involved. Also by accessing libraries you get the benefit of the improvements in them. Here is an example: my pal has an app that uses Open Transport which just got a new release - well his apps network access just sped up by 500% & he did not have to change a line of code! >> I understand the potential benefits of using pre-debugged code,but it doesn't mean you have to be satisfied with it. << Yes but you learn a lot by looking at how others code things or organize them. Study how MacApp works & you will learn a LOT about frameworks. Study the Mac toolbox & you will learn a LOT about GUIs & how they work. Study how mklinux works & you will learn a LOT about how system software works. Study the "Sprite Animation Toolkit" for the mac & you will learn about how to write animation routines for the mac. By all means write your own code...but don't WASTE time when simple solutions are available. Here is another example: I knew someone who spent a two weeks writing code so that he could have a cool animated "About Box". Then he looked at the DrawSprocket API & realized that the simple animation he wanted could have been put together in a few hours & that it would have worked across all the machines that DrawSprocket works on. The two wasted weeks could have been spent improving the product. Also by using libraries of code you can also rapidly put together a prototype of your application. After all, pretty graphics will never make up for lousy gameplay or a lousy application.
Date: Fri, 6 Feb 1998 17:50:47 -0500 From: Ajay Nath <AjayNath@compuserve.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Swapping keys? it might be possible to swap keys by modifying the KCHR system resource. Something like that...i forget which resource exactly but you could put a simple app in the startup folder (so that the system loads the KCHR into memory at boot time) that simply modifies the KCHR resource in memory
Date: Sat, 7 Feb 1998 11:25:46 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Segment loader/ADB Hi, I need to open a dragged file. How do I do that? I guess i need to ask ADB how many files where dropped? Then open them one by one? What are the OS calls I must perform? Thx, Alok email: robot@writeme.com
Date: Sun, 08 Feb 1998 00:29:50 +0000 From: Paul <mrwhippy@pac.com.au> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Re:Wheel invention(2) Hello, I'll have to agree with you Ajay.I can think of many times when using shared libraries would *easily* be the best option.What I neglected to mention was a little more about *my* particular case. I don't write code for a living,and I never will - for me,coding is more of a background interest.That's not to say I don't enjoy it; just that I have other things that take priority. Therefore it doesn't really matter how long it takes me to finish a project.On top of that,I like to write my code by hand,because it's more of a buzz (for me ;) if I write something from scratch and it works :) Considering that I write code mainly out of interest,the use of shared libraries (generally speaking) defeats the purpose.I can,as you said,check out libraries from other people to see how things work,but given the above,I try to only do that as a last resort :) Paul
Date: Sun, 08 Feb 1998 00:39:58 +0000 From: Paul <mrwhippy@pac.com.au> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Byte checking? Back again, If I load and store 4 or 8 bytes at a time,is there a quick way to check for a particular byte in the word or double word? Yes,despite Ajays advice,I'm trying to get through without looking at the SAT :) If I load 1 byte at a time,it's easy to check if it's,say $FF. But if I load 4 or 8 bytes at a time,it's not so straightforward :( (is it?) So far I've tried different ways of masking bits out and using compares,but the extra code this requires,seems to defeat the purpose of using a faster load instruction :( Is there some neat,quick way to do this sort of checking on the fly,or do I just need to write some tighter masking code? Thanks in advance, Paul
Date: Sat, 7 Feb 1998 09:00:52 -0500 From: Ajay Nath <AjayNath@compuserve.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Segment loader/ADB >> I need to open a dragged file. How do I do that? << I don't know about the Drag Manager but I would bet that there are tech notes on apples web site about how to use it. Also I would bet that AppleEvents are involved somewhere along the line.
Date: Sat, 7 Feb 1998 16:11:29 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: GetAppParms Hi, Tell me I'm wrong if I tell you that _GetAppParms($A9F5) doesn't exsite on the PPC? I can't use it, I can't import it, HELP ME!!!! (BTW it's very though to switch back to 68k after PCC) Pls help me. I need to use drag and drop... Thx, Alok email: robot@writeme.com
Date: Sat, 7 Feb 1998 20:58:52 +0100 From: MoonDark <moondark@enter.it> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: RE: Swapping keys? On 06/02/1998 19:56 Cliff Harris at cliff_harris@orangemicro.com >There's a system resource that maps the keyboard to the characters. I >think it's KMAP, but there may be others. Check out Inside Macintosh. For the info, but I'm afraid that only works with normal keys while doesn't do the trick with modifier keys =/ Mario
Date: Sat, 7 Feb 1998 17:25:37 -0500 From: Stuart Ball <lightsoft@compuserve.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: LS: Updated test tools 7th Feb 98. Hello all, The latest test tools are available (as patches) for download from the testing pages. Changes as per below. ------------------------------- Changes since 31 Jan. Anvil: 310198 a15 Added "Enter selection to Find dialog" command. Enters currently selected text into the Find dialogs Find string. Shortcut: Command E. 010298 a16 1. Corrected "add shared lib" function. It really, definitely works now :-) 2. Document Windows now remember their positions when moved or resized. 3. Less "busy type cursors" to be seen. 050298 a18 1. Added rudimentary support for external editors as follows: Put an alias to your favorite editor in Anvil's tools (or plugs) folder. Any file opened from a project window that would normally be opened by Anvil (except notes) will now be sent to the editor via an odoc Apple Event. The editor must already be running. If the editor is not running, an error is thrown. This works for "open all files in a user folder" command as well. 060298 a19 1. Fixed option click on includeh directive to load the file. Was crashing or simply not doing anything. KNOWN BUGS IN ANVIL2a19 a). The unload mechanism has been disabled. It is responsible for unloading tools that have the "unload after use" flag set in the tool TLcl resource. A much improved (more intelligent) version of the unloader is due shortly. b). Still won't work correctly if the Monaco font is modified by (for example) Monaco Tuner but we are working on it. (It should work just fine, but doesn't) Build: 1. Build 4a3 behaves appropriately if a file that other files are dependent on is removed (for example, removing a globinc from a project). The dependent files are retranslated (as they should be) and the dreaded and confusing -43 (File not found) error from Build isn't seen anymore. 2. Caching tweaked some. Fantasm a16 will stop after 16 errors have been reported rather than go on for thousands before eventualy getting to check the keyboard for a "stop!" key sequence (ctrl+option+command). (Like when you forget to add an LXT globinc to a project you are converting to PPC and every single bloody line of 68K throws an error). Misc tools: 1. Erase Data Fork has been changed to erase the first cfrg resource as well, thus normally removing the native bits from a file. Renamed to "Erase data fork & cfrg resource". **PLEASE BE VERY CAREFUL WITH THIS NEW PLUG - IT DOESN'T ASK "ARE YOU SURE" OR GIVE YOU A SECOND CHANCE - IT JUST DOES IT (ASSUMING THE PROGRAMMER IS KINDA HALF AWAKE :-)). It reports it's progress in Anvil's log window. End Lightsoft 2220 070298
Date: Sat, 7 Feb 1998 21:22:48 -0500 From: Ajay Nath <AjayNath@compuserve.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: GetAppParms >> I need to use drag and drop... << I have to amend the message I sent you before. If you just want the user to be able to drop files on your app & have the app open them then you don't need Drag & Drop (I think). I think you just to need use Apple Events to intercept the "odoc" AppleEvent that lists the files that the user wanted to open. Check out my example App on how to make your app able to use appleevents.
Date: Sun, 8 Feb 1998 18:39:11 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Re: GetAppParms >>> >I need to use drag and drop... ><< > >I have to amend the message I sent you before. If you just want the user to >be able to drop files on your app & have the app open them then you don't >need Drag & Drop (I think). I think you just to need use Apple Events to >intercept the "odoc" AppleEvent that lists the files that the user wanted >to open. Check out my example App on how to make your app able to use >appleevents. While I was programming in Pascal there were 3 simplified instructions of procedure getAppParms (VAR apName:Str255; VAR apRefNum: integer; VAR apParam: Handle); When I checked the 68k os calls, the above procedure is there. But when I try to look at the header files, or try to import, it has dispeared. (BTW in my Pascal book, they intruduce this instruction much before events, so I guess there is no link). BTW this instruction is in the Segment Loader part. So I would like to know if you could tell me how to get an equivalent instruction, or do the 68k os call. BTW you app is nice, but very hard to understand the source... Bye, Alok email: robot@writeme.com
Date: Sun, 8 Feb 1998 20:20:49 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Re: GetAppParms >>> >I need to use drag and drop... ><< > >I have to amend the message I sent you before. If you just want the user to >be able to drop files on your app & have the app open them then you don't >need Drag & Drop (I think). I think you just to need use Apple Events to >intercept the "odoc" AppleEvent that lists the files that the user wanted >to open. Check out my example App on how to make your app able to use >appleevents. While I was programming in Pascal there were 3 simplified instructions of procedure getAppParms (VAR apName:Str255; VAR apRefNum: integer; VAR apParam: Handle); When I checked the 68k os calls, the above procedure is there. But when I try to look at the header files, or try to import, it has dispeared. (BTW in my Pascal book, they intruduce this instruction much before events, so I guess there is no link). BTW this instruction is in the Segment Loader part. So I would like to know if you could tell me how to get an equivalent instruction, or do the 68k os call. BTW you app is nice, but very hard to understand the source... Bye, Alok email: robot@writeme.com
Date: Sun, 8 Feb 1998 22:08:08 -0500 From: Ajay Nath <AjayNath@compuserve.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Re: GetAppParms getAppParms may no longer be supported. AppleEvents may be the only way to go these days.
Date: Mon, 9 Feb 1998 00:27:17 -0500 From: Stuart Ball <lightsoft@compuserve.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Help Tamara? Hello folks, Can anybody help Tamara? We received this and are in no position to help her - AFAIK the CW demo wont let you alter projects and know of no other cheap C compiler for the Mac? Anyway, here's the message we rx'd. TIA, Stu. (P.S. I know this has nothing to do with this list and it's stated content, but figured as it was in a good cause, could get away with it this time :-)) ---------------------------------------------- Hi, this is really embarassing, but I'm a student at Northwestern U, taking a programing class, and my instructor knows of no C compilers for the PowerMac. Can you help? I'm rather frantic--I've got a lab assignment due by Thursday, and I really can't afford the 400+ dollars for CodeWarrior. Thanks so much! Tamara Stewart tas268@nwu.edu
Date: Sun, 8 Feb 98 23:01:26 -0800 From: Kevin Avila <kevin@cache-computing.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Re: Help Tamara? >Hi, this is really embarassing, but I'm a student at Northwestern U, >taking a programing class, and my instructor knows of no C compilers for >the PowerMac. Can you help? I'm rather frantic--I've got a lab >assignment due by Thursday, and I really can't afford the 400+ dollars >for CodeWarrior. >Thanks so much! Well, I think Apple made MPW free no? and I know MrC is free. so i would say that ftp.apple.com/devworld would be your one-stop-c-shop. =) +--------------------------+-----------------------------------+ | Kevin Avila | Cache Computing | | Developer Theoretician | kevin@cache-computing.com | | | http://www.cache-computing.com/ | +--------------------------+-----------------------------------+
Date: Sun, 9 Feb 1997 12:41:43 +0100 From: MoonDark <moondark@enter.it> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Re: Help Tamara? On 09/02/1998 06:27 Stuart Ball at lightsoft@compuserve.com >I'm rather frantic--I've got a lab >assignment due by Thursday, and I really can't afford the 400+ dollars >for CodeWarrior. Codewarrior educational edition is much cheaper, academia@metrowerks.com Hope this helps, Mario BTW what about using VIP C, or Symantec C/C++? The respective latest versions support PPCs
Date: Mon, 9 Feb 1998 18:20:07 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: My webpage Hi, As I have had many problems with my server, I'm now going to rebuild my webpage. I can now select any domain name I want, so I have choosen: www.mac_assembly.com Well I would like each and every macintosh assembly programmer to have a page here with a link on his/her main web page. I hope that one day, my list will be complete. Bye, Alok (Macs bug tip: Do you know how many 10k files one can have n 1mb (considering 1k=1024 bytes, 1mb=1048576 bytes, etc...) ? Well drop into macsbug and type: #10m / #1k. Send me your macsbug tips. I have started to write the beginner's guide to macs bug for Lightsoft's beginner's guide to mac assembly.) email: robot@writeme.com
Date: Mon, 9 Feb 1998 22:03:23 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: suggestions Hi again, Well to complete the beginner's training, you could tell the beginner to accomplish his first project that may even be ahis first Shareware. For eg you could tell him to write a game called ISLAND (it's an old C64 game) and discribe it. Then reming him of the rountines he'll need (random generator, event managment, etc..) and let him go alone for the first time. Basicaly what would be good is that these assignments stay secret, so that what he creates becomes something new. Of course ISLAND isn't secret, but I think that nobody has written it for the Mac. Like this I have got lot's of ideas. There used to be a computer magazine that would present such types of games, and give the BASIC listing. Must go and studymy Bio again. Can you tell me if you ever needed to know the 206 bones of the humain body, as a programmer? AS I'll enter in computers, I guess the only use of learnign this, will be to give a name to my projects (cubitus, sacrum, frontal, etc...) Bye, Alok email: robot@writeme.com
Date: Tue, 10 Feb 1998 18:57:43 +0100 From: robot@writeme.com (Alok) To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: Paratrouper Hi, I guess you have all played pratrouper. An old game where men where dropped from helicopeters... I'm trying to code the game on the mac. If anyone wants to code with me (a group of 2 or 3), pls write to me. Bye, Alok email: robot@writeme.com
Date: Wed, 11 Feb 1998 16:52:02 -0500 From: Stuart Ball <lightsoft@compuserve.com> To: Multiple recipients of Fantasm <list-fantasm@mail.tau.it> Subject: LS: Important LXT BUG report A bug has been found in "Universal_OS_calls.MAC" (part of the LXT archive). GrowWindow should look like this: OSGrowWindow: macro *window,mouse coords,rect ptr,result macs_last if 68k subq.w #4,sp *space for return <- this line is missing in V1.00 move.l \1,-(sp) move.l \2,-(sp) move.l \3,-(sp) dc.w _GrowWindow move.l (Sp)+,\4 else map_in_3 \1,\2,\3 Xcall GrowWindow cmpwi r3,0 map_out \4 endif macs_first endm If you are using this file in your project, you need to ammend the above macro. A new LXT archive will be posted this weekend along with the (hopefully) final alpha version of Fantasm 5.1 which completes development. Changes for this weekend posting include: 1. Fantasm gets the SWG and floating point directives back (faster in this version). 2. Anvil gets it's own font so characters are more easily identifiable. 3. Anvil accepts simple apple events to build and run projects. Scripts are supplied (and can do things that Anvil can't normally do - such as Build and Run if the Build was OK). 4. Various bug fixes and final tweaks. END Lightsoft 2150 110298 P.S. Thanks to all of you who responded to Tamara's question, we received this back: "Thank you so much--I knew Mac users were a special breed. I've tried downloading the MPW without much success--perhaps the program prefers the California weather ;-) Tamara"


back