Path: utzoo!mnetor!uunet!husc6!ut-sally!tut.cis.ohio-state.edu!osu-cis!att-cb!clyde!watmath!watmsg!achowe From: achowe@watmsg.waterloo.edu (CrackerJack) Newsgroups: comp.sys.atari.st Subject: Re: accessory and RAM resident stuff Message-ID: <17681@watmath.waterloo.edu> Date: 21 Mar 88 16:19:06 GMT References: <8803190107.AA03238@ucbvax.Berkeley.EDU> Sender: daemon@watmath.waterloo.edu Reply-To: achowe@watmsg.waterloo.edu (CrackerJack) Organization: U. of Waterloo, Ontario Lines: 55 >Is there any definitive book on what you can or can't do when writing >desk accessories? There is a little bit in the MWC Version 2.00 docs, >and they have an example, along with acskel.c from the developer's kit. >But I would like to know how far you can deviate from those basic >skelatins. For instance, I would like to be able to use string writting >functions in which you can do a newline and the text will scroll up without >having to rewrite each line. That pretty much precludes the use of windows, >which seems to be the structural backbone of desk accessories. Well, as an on going exercise, I've writing my own shell program that comes in two forms - as a .PRG and a .ACC. I had the idea to do the ACC version too because it was the only why at the time I could think to autoload a GEM program. I soon found out the following problems with ACC programs... o You can NOT execute a GEM program using Pexec from an ACC. It seems that windows, desktop and menu resources just go NUTS. Maybe there is a way but it won't be standard. o You can NOT hide the menu bar from a ACC because you can't find the root of the object tree with all the resources. This means if you use a text screen and just try and do a form_dail () to redraw the desktop on exit you'll find that the menu bar is missing BUT active. Of course if when you exit from a PRG the whole desktop is restored - no problem. Grrrr! + To solve this problem I took the example of the VT52 emulator which is an ACC that handled text mode and screen rewrite just fine. How could Atari get away with it and not tell anyone? Well I spent about 7 hrs one night using SID to trace through the emulator ACC to find the method (this was before DISTOMWC.PRG). I've had plenty of practice using ZSID and DDT from my CP/M days doing this sort of learn without source. It was a pain (especially at 03.00 in the morn) but I found out that the emulator cheated. It saved the contents of video RAM that held the menu bar some where else to be later restored. Grrr Woof!!! Will I bagged the code and now it is part of my ACCSTART.S and other .S goodies I use. Well I now have the ACC shell on some disks where a shell is handy. It still is very simple lacking a full cp command. But if your like me you hate to exit a PRG to do cp, df, mf or ls commands. For the rest of you who are interested and saying where is it now that I've spilt the beans. You'll have to wait till I finish implementing the basics like - cp, fgrep, 10 line history, stty, set, setenv, and everything else. When I think I've done enough I'll pass around the ACC and PRG. I have some .S stuff I wrote that people might like which I'll passout on request. -- Anthony C. Howe achowe@watmsg.waterloo.edu "The definition of flying: throwing yourself at the ground and missing." - Douglas Adam's "Life, the Universe and Everything"