Welcome one, welcome all to the newest section of AtariPhile, CodePhile. Here is where the ins and outs of GEMDOS and its compatables are explained with examples of how to go about implimenting the ideas. The tutorials are for HiSoft Basic 2.2 with ALL the libraries and are for those of you with experiance of HS Basic and who want to program for GEM. [Atari Computings' reader disk 4 has HiSoft Basic v1 and a special upgrade offer - Ed]
Of cause, the methods can easily be converted to C, C++ or other languages. However, a copy of the Atari Compendium is recommended to everyone to aid them as I have found it invaluable and the most used referance book in my collection, well worth the £40 I paid for it.
In order to give some structure to the tutorials, I plan to impliment a number of projects to show different features and methods used in GEM, most of which will deal with the VDI and the AES (the Video Display Interface and Application Environment Services respectively) as these are the most used areas by any GEM program. Hopefully, all the code will be legal and will work on any configuration of machine (unless specified otherwise eg. the Vector fonts stuff if you don't have NVDI 3+ or SpeedoGDOS) and much of the code should work on an ST or TT as well as a Falcon. However, using a 14Mb Falcon, NVDI and Magic, I cannot test compatability for everything easily. One advantage of programming in an environment such as Magic 5 is that you can check for compatability in areas such as Iconifying (which in some programs I've noticed doesn't work as expected) and long file names (Lots of problems there...). If you are using GEM 4.92 (Iconify) or a long file name file system, these should work as expected, tell me if they don't :) I also plan to follow the 'guidelines' for GEM interfaces but, as you will designing your own layouts in WERCS (I'll use wercs as it came with HSBasic so you should all have it even though it plays up in a major way in magic) it is up to you how everything looks.
Although this page is me talking to you, I would love some feedback of ideas, methods, improvements and bug reports from you the reader so I can try and do a better job and, of cause, so that I learn something as well as you. Those of you out there who have been using GEM for some time could drop a line offering ideas and ponting out better methods and those new to GEM are quite welcome to drop a line with problems and queries. I'm stationed on 42BBS and pop on about twice a week (I'm very buisy) and I also have an E-Mail address there (see bellow). I hope to answer all messages but it may take me a little time to get back to you. Before you ask someone, try to solve the problem yourself. I learnt GEM that way and it is a good way to really understand what is going on, not just copying code.
My first project idea is for a simple font listing program showing the
7 fonts starting at a predefined number each in its ow window. This
will show the basic methods of window control, clipping, redraws and
the much dreaded EVNT_MULTI function that is used to communicate in a
Gem Environment, especially M-Tasking ones like Magic. I also want to
demonstrate menus, dialogs, Blitter routines and other things but am a
bit stuck for projects so if anyone wants to suggest simple ideas that
can be carried out and explained without a huge knowlege of gem (that
rules out DSP coding and disk Formatters by the way
Last, if anyone wants to volenteer to help readers with C, C++
problems, I would be very greatful as I have only a basic knowedlge of
the great language at the moment.
Now, just to tell everyone who this guy is thats writing such a
magnificent page
You can contact me on 42BBS:
I'll try and respond to all mail either personaly or via the CodePhile
page...
NeST address 90:100/300
E-Mail rgoldsmith@fffnet.demon.co.uk