ICTARI USER GROUP ISSUE #8 March 1994 ___ ______ ___ _________ _________ ___ \__\ \ __\ \ \__ \______ \ \ _____\ \__\ ___ \ \ \ __\ _____\ \ \ \ ___ \ \ \ \ \ \ \ ____ \ \ \ \ \ \ \ \ \_____ \ \____ \ \__\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \__\ \_______\ \______\ \________\ \__\ \__\ * m a g a z i n e * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= I C T A R I U S E R G R O U P 63 Woolsbridge Road, Ringwood, Hants, BH24 2LX Tel. 0425-474415 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= INDEX FOR ISSUE 8 ================= FOLDER SUBJECT ÿÿÿÿÿÿ ÿÿÿÿÿÿÿ ASSEMBLY Layout of assembler source code for Degas image Programming Techniques, passing in-line parameters to S/Rs Program for displaying 68K instructions info, needs fixing C C Tutorial (Chapters 0-7) plus 82 source code files GFA Bit mapping on ATARI computers, all resolutions MISC DSP56001 circuit diagram 4D Cube image Brief review of 18 Atari programmers books Current membership list PASCAL Directory lister program + source code STOS - In next months issue of ICTARI (this may change) :- ASSEMBLY Tutorial on using Macros in machine code Complete Macro file for all TOS calls Twist scroll source code C C Tutorial (Chapters 8-14) Bouncing ball demo source code GFA MISC Pexec TOS call information CPU Instruction timings Cookie Jar information Index to ICTARI issues 1-8 PASCAL STOS For future issues :- Complete set of floating point routines in machine code. Binary/Decimal/Hex/ASCII conversion routines in machine code. Polyline drawing routines in machine code. Bezier curve drawing routines. Picture decompression routines for IMG, Degas, Tiny, PCX, PAC, etc. Picture compression routine for IMG pictures. HP DeskJet compression routines (Mode 2 TIFF). Command line access techniques. Using the Xbtimer chip. Tutorial for using GEM commands from machine code/C. Playing sound samples on non STE machines. Picture switching techniques. ----------------------------------------------------------------------- EDITORIAL ========= COMMITTEE ÿÿÿÿÿÿÿÿÿ To run the group I have recruited two colleagues who have agreed to help compile the magazine each month. They are Dick Teuber and Steve Gale who program in C, machine code and STOS. MEMBERSHIP ÿÿÿÿÿÿÿÿÿÿ The response to the mail shot has, unfortunately, been very disappointing. Out of the 53 questionnaires sent out to previous members only 19 have even been returned (so far). Four of those have cancelled their membership and the remaining 15 were keen to continue with the group. We have spoken to several of the people that we wrote to and one is not programming on the Atari anymore and the others were more interested in exchanging PD software than programming which may possibly explain the lack of response from the rest. From the members who did reply we have a total membership at this time of 15 plus three committee members. Out of this 15, four have declared themselves as beginners although this may be false modesty. This number is not really enough to run a viable group since there would be insufficient input to the magazine to fill a disk each month. However, since we have a few interesting items for the magazine for next couple of months, we propose to send these out and in the meantime we shall launch an advertising campaign to try and recruit some more members. We have written to the three glossy Atari magazines and to the main PD libraries in the hope that they will publish our letters. We are also compiling a list of PD programmers that have published their names and addresses on PD or magazine cover disks and we will write to them direct and try and persuade them to join. This is going to cost a lot of money for postage so if any member would like to contribute something towards these costs we would be most grateful. If any member has access to any of the E-Mail or BBS systems perhaps they could place a general message to all users telling them of the existence of ICTARI and asking them to send a Stamped Addressed Envelope to us (at the address above) for more information about the group. If you should happen to buy the weekly computer magazine Micro Mart and you don't wish to use the advertisment page, could you send the page to us so that we can use it to advertise for free in the magazine. Thanks to the members who sent some new material with the questionnaire, we shall be using it over the next couple of months. If you didn't send anything, now would be a good time to produce something for the next issue as we do not have too much available for it at this time. As you will see from the above comments we are keen to make the group a viable proposition but we will be relying on the cooperation of ALL members in this venture. We trust we can rely on this support. POSTAGE ÿÿÿÿÿÿÿ In order to keep postage costs down as much as possible we have sent this issue of the disk in a small business envelope with a second class stamp. We hope that the envelope will be strong enough but if any member does have any trouble with damage to the package please let us know and we will reconsider the postage arrangements. VIRUSES ÿÿÿÿÿÿÿ With a group such as ours which involves frequent disk swaps and disk copying there is obviously a danger of computer viruses being passed from one member to another. On the dozen or so disks that we received from Nick Bates there were three different boot sector virus programs. The Ghost A virus (which reverses the direction of the mouse pointer on the Y axis), the dangerous Goblin virus (which can corrupt disk files) and the Macumba 3.3 virus. There is a possibility that you may have one or more of these viruses on some of your disks. Would all members please check ALL of their disks with a suitable virus killer, we use the Ultimate Virus Killer (UVK) available from the ST Club, Nottingham. We shall, of course, check all disks received in future for viruses to avoid passing them on to you. When you send a disk into the club please don't place a boot sector program on the disk as the UVK may not recognise it and will erase it as a possible virus. There are also some 'immunisation' programs around which can protect against viruses by writing data to the boot sector but we would prefer you don't use one of these unless the UVK can recognise it as such since if it can't, it will assume it is an unknown virus. Also we shall not be using any boot sector programs on the magazine disks because a lot of members have hard disks (which don't boot from the floppy) and also because most (sensible) users have virus monitoring programs which will 'freak out' on these programs. READ_ME.TXT file ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ This file in the root directory is intended for new members to the group and concerns payment arrangements and will stay the same each month so there is no need to read again once you have read it. If any changes are made to it we shall mention it in this section. QUESTIONNAIRE ÿÿÿÿÿÿÿÿÿÿÿÿÿ We have not had all the questionnaires back yet but this is a rough breakdown of the languages that members use. ASSEMBLY 14 GFA BASIC 4 ST BASIC 1 C 9 STOS 6 PASCAL 2 In answer to several members who inquired, the letter and questionnaire were written with Protext, imported into Calamus and printed on a Ricoh LP1200 Laser printer. DISK FORMATS ÿÿÿÿÿÿÿÿÿÿÿÿ A couple of members have had some problems copying the disks due to the non-standard format (i.e. more than 9 sectors/track or more than 80 tracks). In future we will only use disks that have been formatted from the normal desktop disk format option so that they can be copied to other disks using the normal copy facilities from the desktop. ----------------------------------------------------------------------- CORRESPONDENCE ============== To *.* From ICTARI We have noticed from some of the correspondence that several members write programs but avoid using the standard built in GEM commands for displaying dialogue forms, menu bars, windows, mouse cursors, etc, etc. It is, in fact, not that difficult to use these facilities so if any members would like a tutorial on this subject (in machine code and C possibly) please let us know. Has anyone done any work on using two (or more) machines together using the MIDI ports, i.e. multi-player multi-machine games. If so we would be interested in an article on the problems and solutions for using the MIDI ports to transfer data between machines. ----------------------------------------------------------------------- To *.* From Frank Dawkins Does anyone have any good guitar samples that I could use in a GFA Basic program I'm writing. ----------------------------------------------------------------------- To *.* From Nick Bates Does anyone have a Canon BJ printer driver, needed desperately. */ Not sure for which program this is needed ! Better contact Nick direct if you think you can help him. ICTARI /* ----------------------------------------------------------------------- To ICTARI From Tony Greenwood Unfortunately, due to other commitments, I am unable to offer much time towards ICTARI as I program the STOSSER diskzine but if I can help in any other way then please get in touch, i.e. you may want to run an advert in STOSSER for new members for ICTARI. I have in past issues given the ICTARI address out for possible new members and always offer our full support. Have you registered with the A.A.U.G. I recently sent for an update list of Atari User groups and was surprised that ICTARI was not on it ? */ We would appreciate a mention in your magazine in case any of your members are interested in languages other than STOS, please note our new address. We haven't registered with the A.A.U.G as yet but we shall when we are sure that the group is properly established. ICTARI /* ----------------------------------------------------------------------- To ICTARI From James Collett (Professor) I'm afraid I currently don't have time to write a complete GFA tutorial, but if any members have any specific GFA problems I'm willing to (try to!) solve them. I will also continue to contribute sources as I have done in the past. GFA codings from me to watch out for over the next few months include a mega colour scroller and 3-D sphere rotation routines with explanations of the techniques I use to achieve 3-D graphics. I also have plans for more developments of my handwriting engine, which I will hopefully be coding over the Easter hols. I would like to release it through ICTARI magazine as I have done in the past. Finally, as you may not know, I'm also a member of the demo crew VIRTUAL INFINITY. Although we have been relatively "passive" in the past and haven't released any major demos, next term we will be coding and releasing something major. It's not actually a demo, it's actually a game! We will hopefully be rewriting the classic 8 bit game, REPTON 3 for the 16 & 32 bit ATARI machines using the original graphics from the Acorn BBC/Electron. I would be grateful if you would put a message in the magazine asking for any ICTARI member who has or can obtain any disk or tape to write to me or E-mail me AS SOON AS POSSIBLE. The "graphics files" include :- Round The World in 40 Screens REPTON Thru Time The Life And Time Of REPTON {etc} Thanks a lot */ We look forward to seeing the source code. See MEMBERS.TXT file for address and E-mail numbers. ICTARI /* ----------------------------------------------------------------------- To ICTARI From Nightwalker I have obtained one copy of ST Internals, I have friends who may have obtained another copy but will not know for another week yet when they get back from holiday. Have also written direct to Abacus in America regarding this and other books. Will inform you of progress !! */ Please do and see also BOOKS.TXT in the MISC folder. ICTARI /* ----------------------------------------------------------------------- To ICTARI From Mike Barnard I recently discovered issues one and two of your ICTARI disk magazine. About 6 months ago I started looking for as much information about machine code programming as I could get and among the information I found in the PD libraries were your two disks. Since then, (for various reasons such as laziness, my wifes nagging about how long I spend on the computer and my difficulty in actually understanding a lot of the source code), I havn't done much programming. But I've just got the bug back and I've finally decided to pull my finger out and actually learn something. To this end I want to find out a bit more about ICTARI. LAPD tell me you've just released issue 7 of your mag, (but they don't have the other issues I'm missing, i.e. 3,4,5 & 6). This says to me that you seem to be genuinely committed to this mag! That's a rare treat nowadays, so I'd like in please! Tell me, what's your subscription system? Send a disk and an SAE? How often do you release the mag? Also do you need any help in sorting it? (Some of the writing I've seen has really terrible spelling and phrasing). Tell me all, please. And I definitely want the missing issues, 3-7 inclusive. How much? Who am I? I'm a 37 year old Fireman, with a great wife, no kids and a cat. I've got an STE, running on TOS 1.6, the one that won't set to medium rez without an auto folder patch. (What a pain in the a%$œ!). It's got 1 meg, a Phillips Mk I colour monitor, Power external drive, and a wonderful Hewlett-Packard Deskjet 500 printer. I'm into strategy style games. I've got Civilisation, Railroad Tycoon, Caesar, Campaign, Space Crusade, Dragonflight, Amberstar and others. And, of course, I'm finding my way in M/C programming. I'm only really interested in M/C programming personally, but browsing through the listings I've noticed one thing in common with almost all types of source code. The commenting is usually terrible, which is especially bad as people have often deliberately written it as a tutorial. And the layout? Not usually very structured, which makes it as confusing as hell to try and read, for me, anyway. I have a neighbour who used to program professionally for major businesses, and he told me of 'The rule of 7'. A segment of source code shouldn't be longer than 7 lines at a time, as the Human Brain finds it confusing. If a routine needs more than 7 lines, it should be broken down into logical segments, each no longer than 7 lines. Included is a simple program to display a Degas Picture on screen, ('LAYOUT.S'). The program itself is nothing new at all, it's been shown a hundred times in books, magazines and source code, but the way I have laid out the source is (in my humble opinion) far easier to understand than the continuous lists of data found in some sources. Now for a begging bit. Will you please include the following grovelling request to your M/C readers on your next release? Thanks Please help! I want to control the mouse pointer in machine code at TOS level, not GEM! This means reading the IKBD directly. For those that read ST Format, they answered my letter with a routine in issue 43, page 58, (Included as 'MOUSE.S' in ASSEMBLY folder). I still can't do it. I just want to be able to read the data packet returned by the mouse, relative or absolute, and use the information in it to modify two variables, 'mousex' and 'mousey'. Do I need to use XBIOS 0, initmouse? When I finally get to this stage I'm sure I'll be able to use these variables to redraw the mouse when I decide I need to. So, if you have any sourced routines that would help, please, please let's see them. A tutorial, written in plain english, would be a great help if someone out there actually knows what he is talking about. Thanks. How about a For Sale column ? I want a hard drive (cheap of course). Well, that's enough waffling for now. Thanks for an interesting mag and I look forward to hearing from you soon. */ We now have copies of all of the ICTARI disks from Nick Bates and we are compiling a catalogue of what is on each disk and will be publishing this in the next issue. See the READ_ME.TXT file for information on obtaining back issues of the magazine. You should notice an improvement in the spelling and grammar of the text files in future although there is not much we can do about errors in source or program files. We entirely agree about the commenting (or lack of) in source code and we shall try and persuade all contributors to provide more comments and explanations of code. Can anyone help with the mouse problem. We would be happy to include any items wanted or for sale providing they don't take so up much room that we would have to reduce programming material. ICTARI /* ----------------------------------------------------------------------- To ICTARI From Michael Herman I am in the process of starting my own disk magazine with a partner, it will be a general magazine with hopefully a programming section. I will however support your mag and I hope we can provide each other with ideas and new readers. For that reason I would like to ask if I could have an advert in your magazine in return for you placing one in mine. */ Good luck with the mag, please mention ours when you get it going ICTARI /* ----------------------------------------------------------------------- To ICTARI From Simon Rigby I think the credit system should be scrapped and go back to a one disk + SAE in for one disk out; if you have to send a disk, you tend to put something on it. */ We agree that sending a disk each month is preferable from our point of view as it saves us having to buy lots of disks regularly and (as you say) it is likely that members will hopefully put something on the disk for the magazine. However, not everybody can do this easily and if a disk is not sent to us each month it means we have to decide whether to send a disk and hope we get one back or not send a disk and risk upsetting the member who misses that issue. For this reason we will continue to accept money or disks as payment for each issue, see the READ_ME.TXT file for more information on this. ICTARI /* ----------------------------------------------------------------------- To *.* From Jonathan White Since I have a Falcon plus a load of programming info, I'm willing to be a Falcon consultant/beta tester/compatibility checker. I can be contacted via E-mail at PSU WHITE & UK.AC.BOLTON.BASIL (Internet). ----------------------------------------------------------------------- To ICTARI From James Taylor (Author of MiniDraft and MultiCAD) If you are looking for ideas to suggest to other possible contributors how about the following - 1..How to draw and fill Calamus vector font characters. 2..How to construct DXF and ADI CAD files. 3..An explanation of HPGL. 4..How to construct a tangent to a curve. 5..How to draw a spline curve. I'm sure I could think of more if pushed. */ We are currently trying to write some code to use Calamus vector fonts in user programs but it is extremely difficult so don't hold your breath, if anyone has any other info on filling Calamus fonts please let us know. By HPGL we presume you mean the Hewlett Packard Graphics Language used in HP printers. We do have the manual for this language but it is a very large book (over a thousand pages probably) and would be difficult to reproduce it in this magazine (not to mention the copyright issue). The book is available from HP but is quite expensive (approx œ40). Does anyone else have any thoughts on this. We shall be publishing code to draw polylines in a later issue, does anyone have information on the CAD formats and drawing tangents/spline curves. ICTARI /* ----------------------------------------------------------------------- To ICTARI From Steven Jordan & Andrew Martin (Diamond Software) Over the next couple of months we will be bringing you some of our 68k routines. The routines will vary from picture drawing routines, raster routines or even load data files. We hope that the routines we are giving away will be used by all members of the Ictari User Group and there will be higher standards of intros, games or utilities. Here are the routines that we will be giving away over the next couple of months : Intro / Demos - What can we say?! Picture Routines - PC1 unpacker Munster picture routine! A barrel roller Normal picture drawing routine Venetian picture blind routine Bootsectors - Picture loading Picture loading & PRG loading Rasters - Mega-Beams VU raster bars! Normal rasters Full screen ones (using HBL) Colour cycling raster Simple Mega-Bars Vertical rasters!!!!! Moving rasters Music Players - STFM Tracker Music - STE Tracker Music - Mad Max Chip Music - Digi-Drum Music - Quartet Music??? Border Removal - Top Border (Testing which MMU you have) - Left And Right Borders - Full screen ?? (Overscan) - Documents explaining how they are done File Accessing - Loading data files - Saving data files Scroll Texts - Too many to list... Key Click - Turning on/off that annoying key click System Addresses - In a document type form Trap Calls - Every ST trap command Reset Stuff - A proper version which changes palette etc... Fonts - How to use 4-plane fonts Sync Scrolling - Simulated on an STFM (STE Compatible?) Scrolling - How to scroll a screen in all directions CLS - A venetian blind routine (on Ictari #5 & #7) - Normal clearing - Fading out colours Sine-waving - Sine-Wave the FAST way Sprites - Drawing sprites (X & Y cords) - Fast Sample Playing - On an interrupt (ANY freqs) These are just some of the routines that we will bring you, but of course we will bring you other things that we have not talked about and we might even not give you some of the routines! If you have anything else that you want to see on Ictari then you can write into Ictari. */ We look forward to receiving all this invaluable material but don't forget to provide plenty of comments/explanations, etc. ICTARI /* THE STOS RASTER UPDATE ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Does anyone remember the raster routine I included on the Ictari disk number 5? It was a bit big wasn't it ... 180 GS=CO : for N=0 to RC : doke (start(12)+CO),5 : CO=CO+2 : next N /\ /||\ || change that number to make the height of the raster smaller/bigger - 1=small ..... 10000=crash! P.S. Don't press CONTROL & C while you are in the main loop as it crashes the ST. I bet some Ictari members bought ST Format and then found that they had 'Missing Link' on the cover disk. If I were you, I would format it because ST Format only put on the install program, which was just one of the many things that ST Format should have put on the disk. I bought Missing Link from LAPD and I got a 81*10 disk which was FULL of examples to all the commands and it also had about ten or so games which are so bloody addictive that I have 'The Race' running on my multi-tasking ST system !!!! - GET THE PROPER COPY OR YOU'LL BE MISSING OUT - P.S. Andrew and I are just about to register... We'll tell you what the stuff's like later. From Steven Jordan Jesus Christ whats this? months Ictari late! We almost thought that you forgot us or Ictari had dissolved!!!!! Oh err. The reason the text file containing information on how to change our brilliant raster routine was missing was this : - We turned the PC off before we saved the file and we couldn't be bothered to write it again! (Andrews excuse is a load of crap.) Now we have just typed it out again and you should find it on our contributions disk... To everyone who have been waiting for our intro source(s), Last month we said that we were going to give you the source code to the intro on Ictari disk #7, but we have decided that it was far too shit! So instead we have given you another intro that we originally wrote for Ictari #5 but we never got round to organising all the folders etc... We hope you find it useful and that you will use the routines in it to make an outstanding intro or demo. Tell us what you think of it and you only have to ask if you want some more documented intros, utilities or actual demos. To 68K Coders Hope you like our 68k routines. Please use them in you own stuff, but please remember to say hi to Andrew and I. From Steven Jordan */ Yes we do, please send some more when you can ! ICTARI /* To *.* (Who made that up?) Some people may have noticed that our sources don't have a lot of documentation but I (Steven) have had a problem with my wrist (No it's not what you are thinking!) I have RSI (Repetitive Strain Injury) which is caused by repetitive movement performed in the same fixed position for long periods of time. And it has come about because of the crap College computers. (Tut,Tut,Tut). Hopefully I should be better before the next issue of Ictari comes out... I'm off to give my hand a rest now. (I've been typing with one hand!) From Steven Jordan I very often don't say anything in our text files or scrollers so from now on I'm going to have my say. Ok From Andrew Martin You may have noticed that we didn't write an intro for this months disk. This is because we thought we would give other members a chance (Ah aren't we nice!?). But if all things go according to plan we should have an intro very soon....and be prepared, this one's going to be totally different from any other that has appeared in ICTARI. If me and Steven send you some pictures of us would it be possible for you to scan them for us..... P L E A S E........>>>>> From Andrew Martin & Steven Jordan */ We will scan them for you on two conditions, that we can publish them in the magazine and providing they don't contravene the Obscene Publications Act. Make sure they are no bigger than 4" by 6" and preferably have a light background, black and white is better (or a photocopied picture) although colour can be done. ICTARI /* How about putting a text file or database on the disk which contains all of the members of the user group as it would then be easier to send programs to each other for testing ! */ See MEMBERS.TXT file on this disk ICTARI /* I did say I was going to say a lot from now on but I can't think of anything else to say. So that's it..... From Andrew Martin */ Thank god for that (Just joking) /* -----------------------------------------------------------------------