ICTARI USER GROUP ISSUE #7 September 1993 ___ ______ ___ _________ _________ ___ \__\ \ __\ \ \__ \______ \ \ _____\ \__\ ___ \ \ \ __\ _____\ \ \ \ ___ \ \ \ \ \ \ \ ____ \ \ \ \ \ \ \ \ \_____ \ \____ \ \__\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \__\ \_______\ \______\ \________\ \__\ \__\ * m a g a z i n e * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= I C T A R I U S E R G R O U P =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= INDEX FOR ISSUE 7 ================= Program Description Author Contributor ----------------------------------------------------------------------- ASSEMBLY SET X/Y CO-ORD 68K library routine Poshpaws SPRITES Sprites code using Neomaster Peter Hibbs TRACKER TCB tracker routine Diamond Software ARP_BOOK Chapter 7 and 8 of this book Robert C. Arp C GEM_TUT Part 9 and 10 of GEM tutorial Tim Oren GFA The professors last GFA section Professor OVERSCAN Overscan utilty source code PIXELS Pixels program MISC PRNTFNT2 Font printing program Poshpaws ASTRA Corrupted file from disk 4 Darkelf HANDWRITING Handwriting recognition program Professor BIT-PLANE Bit plane information Professor STOS Ictari Memberbase program + Source v1 Ictari Thanks go to all the above Authors and Contributors for this issue. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Hi there, welcome to Ictari Disk #7. As I said in the scroller ( What do you mean you don't reader scrollers) this is extremely late due to my external disk drive breaking down. It was sort of working, but kept corrupting files, etc. So eventually I managed to order a new drive and at last I have it and after finishing this text file I can make all the required copies and dispatch to you. Moving on, I have now started back at University on my final year, but all correspondence should be sent to my normal address. That reminds me - any other students out there who want disks mailed to a temporary address then please inform me of that address. I have decided to do a major awareness campaign, whereby I will attempt to spread Ictari Disks as much as possible in order to increase membership. This includes: Sending Disks to several major PD Libraries. Inviting PD Libraries to join the subscription list. Sending Disks to all major Atari Publications. Sending Disks to PD/Shareware Authors. Uploading Disks to Atari archives. If anyone else has any ideas on how to increase membership and spread Ictari Diskzines then please let me know. The more members the better the service provided. Personal distribution is still one of the best methods, so if you know 'anyone' who is or might be interested in programming (ATARI) then pass on a copy. I hope to also reach WORLD WIDE distribution, but currently only boast 1 German member. One thing I would really like to do is advertise in major Atari Publications, but this costs money - so I am therefore hoping to sell advertising space in Ictari Diskzines, or agree sponsorships in order to raise the cash. Another way to get the cash could be to write a good program between us and send to a magazine and either use the cash awarded to pay for advertising or maybe swap a program for an advert with a magazine. If any PD library or other company wants to advertise in Ictari Diskzines or even sponsor Ictari User Group then please contact me. Payment can be in the form of cash or free advertising, free PD, or anything that I feel will benefit the members of Ictari User Group as a whole. Monolith Enterprises may soon be producing an Ictari Newsletter as part of their services, or as a section of their current newsletter. All documentation submitted to Ictari may be used, if you as an author object to your article being used then please just state this when you submit it. The sort of stuff used will be reviews and letters, etc. Details of this move is being finalised and you will be informed next month. Monolith Enterprises provide 2 services for Atarians, these are a Diskzine called ST Plus+ and a Newsletter. For further information contact Monolith Enterprises on :- Monolith Enterprises Department P(P)1 22 Brook Road Shanklin Isle of Wight PO37 7LU. Please mention Ictari User Group if you contact them. I also hope to form links with other Diskzines and User Groups, even if it's just to swap advertisements. If you produce any Atari Diskzines or newsletters and want to contact me then please feel free to do so. If you know of or have any Diskzines then please send me a copy - presuming they are PD of course. Diamond Software are always asking what it is that you want from this User Group - likewise I will ask the same so I can provide those services if possible. So please let me know those ideas of yours. Books in my opinion are as vital to the programmer as are hardware and software, and therefore I shall be spending more attention on book reviews. Next month I shall have written reviews for what books I have (not many), but I do hope to purchase and review more. If you have any books, and want to write some reviews then please feel free. I will publish more than one review on any particular book because a review is simply one persons opinion. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Nik, Re: The Database resource file problem. I'm afraid I wasn't clear enough on the use of the @ character. You should put in your dummy string of the correct length, as you had previously done. After you have entered the strings and tested them, you should then replace the first character of each string with the @ sign. The length of the string will determine how many characters you can put in, but the @ sign will tell GEM to treat it as a blank string of that length. I hope this clears it up! OK Thanks, I think the problem is solved now, although I got round the problem by just copying a blank string to each editable text field as Morf did in his example on Disk #4. Thanks for your help though. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- In response to Peter Hibbs's note, I have a falcon and would gladly test out any software that he cares to send to me. I also now have the atari docs and, while informative, gives the impression of being thrown together. It makes no mention of how to program for CPX's. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- My copy of Astra also seemed to be in a corrupted zip file (well I think it was Astra - but it was definitely corrupted whatever it was!). I found that the was indeed one corrupt file, so I have put this file on this disk. You should Unzip the file from Disk #4 and delete the corrupted one, and replace with the one on this disk. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- To: TSC, Protection - that which defends. I only know about a couple of simple ones, but I'll give you what I've got. 1] Format a disk as normal (however many tracks you think people can read minus two). Then format just one track with important info or check values one track after the first non-formatted track. The disk should now not copy correctly with most copiers (based on tests done years ago!). To check that the disk is original, check that you cannot read the track after the formatted ones (important as the copier may have formatted this) and that you can read the track after (with your info on). Of course, If you know that this is what has been done, you can copy it by hand and bypass it. 2] Due to a bug in the disk chip, the ST can read whole tracks at a time, but cannot write them. Basically, if you write out one of two values ($FF is one I think) while in track mode, it will write out a two byte checksum instead. So, If you write one of the tracks on a machine with a compatible chip which does not have the bug and write a track with a sector numbered $FF, you can search for and read the sector but an ST can never write it. This is the method used in Alternate Reality, I have never seen a way round this. 3] Drill a hole through all disks to have the program on (normally done commercially by laser before assembly - no guarantees any other way!) making sure they are all in the same position or test the whole track instead of one sector. Find the track-with-the-hole by seeing which track fails a format. Code into your program a routine that tries to format that track and then tries to read it. If it fails and the disk is not write protected, the disk is yours; if it passes, it is a copy. 4] Random Number Encryption - my own technique. Details witheld unless you REALLY want to know. mainly used to keep info from clever prying eyes! Remember, all protection relies on software in one form or another! If they can read your code, they can undo what you have done. Si(gh). =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- To: *.* I have included the C source for a document displayer and printer that uses GEM windows. It is not suitable as is but if you want a GEM doc displayer or just some useful routines, please feel free to rip into it - just give some credit if you use (or understand) any of the routines. Nik, I believe this will adequately satisfy your request for C code dealing with Loading, Displaying & Printing ASCII files. PoshPaws. Thanks very much, just the code I needed, I look forward to going through it some time in the near future. First of all I need to get a decent C Compiler, and I could use a Hard Disk. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- To David Ashcroft, I like the idea of an automatic journey router. You say you have run into a few problems regarding the programming part - What? We can give you some code, but we need to know what language it is written in. If it's in C then we can't give you too much because we have only started learning it ourselves! But we can give you a few speedy drawing sub- routines written in assembly. We are also experienced in STOS, but I don't think it's the best language to write that sort of thing - Do you ???? Steven Jordan & Andrew Martin C would probably be best, with 68K used for the fast drawing stuff. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- To The Space Cowboy (And anyone else who is reading this!!) Yes, well, err, hmm... YES! The response to the group idea did not work too well - In fact we did not get one call or letter. I don't really care what we code either but there is nobody out there who wants to code anyway! In our top and bottom border routine we did what we did to the video thingy (as you call it!) because the routine was not originally written for the use in iCTARi. It was infact from one of our previous demos. We thought that the doc displayer was crap from the first moment we saw it - It had more bugs than an ants nest! and it was so slow that even my grandmother could keep up with it ! Why do you want source codes to the left and right borders - they're lame! LSD software ... We forgot and left them! He He. By the time we get your reply it will be October Steven Jordan & Andrew Martin =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Nik You say in that questionnaire thing that you are well experienced in programming yet we have yet to see what you can do - Why? Don't say that you don't have time because you should already have some things stored away on some of your disks. Don't you know to walk down to your town centre and ask a telephone company if they can install a telephone in your house? How old are you? Do you live next to the coast? Andrew Martin & Steven Jordan Hmmm, First of all, I have done little in programming. I have done several programs in STOS, with Personal Accountant being my main work. I am pretty new to 68K and I am hoping to have a go at something but quite simply I can't do anything without at least mastering sprite manipulation. Most of programming time is spent on several C projects I am working on, namely Ictari Memberbase and Personal Accountant. I have contacted BT and am still awaiting their reply. I got my number but don't know what the problem is. I will soon be getting Plymouth Accommodation and so will have a number which people can ring then - WEEK DAYS ONLY. I am 20 - 21 in February. Yes I do live near the coast. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- When I opened my envelope (at about 7.00am!) a wood louse crawled out!!!!!! What the hell was it doing in there ???????? is this a new promotion type of thing .... a free woodlouse with every purchase !!. Steven Jordan < One Half Of Diamond Software > Shhh Everyone will want one. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- To all Ictari User Group Members... Does anyone have a modem or hard drive they would like to sell to me (Steven) Is there anyone out there who can code? Because Andrew and I are coding a demo and we want your demo screens (See PROJECT.PRG for info.) or perhaps we could code something else, but what? As we are contributing each month, we want to know what you want - Do you want demo sources, screen savers, tips etc.... ??????? What language? Does anyone actually read the documentation that we put beside our 68K. If nobody does then please tell us cos it would save us a lot of time and effort. Steven Jordan & Andrew Martin You teach me to code, and I will code. I read the docs =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- To The Space Cowboy... Your telling me the price of assembly language on the PC is over inflated! Not only that but what about the registration fees for most shareware packages. Eighty quid is well over the top me thinks. You're not far wrong ... all the best people are doing the the BTEC National in computer studies (including me and Steven). By the time you read this our GCSE results will be given out. Oh err time to panic!!!!! Andrew Martin I expect œ80 is expected to be payed by Businesses - the main use of PC's. I personally would send a smaller amount with a letter saying you are only a poor student, etc. I'm doing the HND Computer Science (Science sound better than Studies) course. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- To *.* Next month we will be giving away the source to this months intro. It isn't amazing (neither was last months!) but it's another source for your collection. It is written in 100% assembly therefore you are going to need DEVPAC II to assemble it. ** Diamond Software ** Well documented source is always appreciated :-) =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- To Diamond Software Thanks for using the same format for your Talk file - saved me a bit of work. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- To *.* There's a lot of code being passed about but it's no use to people like me who don't understand it. What I would like to see is code that explains particular techniques and are simplified. For example what about code showing a Scroller technique and does nothing else. Perhaps two versions one with a Scroll Font used and one with just the text. It would look very nice, but the technique would be there for people to work on instead of just copying a piece of code. Other techniques could be explained in a similar simplified and documented way. Is this a good idea or what? =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- To *.* I can show a degas picture to screen - easy. I don't fully understand it but it works. Some code explaining it might help? That's not the request, I presume that to display a sprite you are just displaying part of a degas picture ?? So how do you do this - perhaps if I knew the theory behind displaying a degas picture I could do this. Also not only that but I presume somehow you can say where to display that on screen. Therefore I would appreciate some code that would display part of a degas piccy on screen at a certain screen co-ordinate. These two parts labelled so I can experiment. Movement would be a bonus but surely it just a matter of redrawing in a different position. This would have to be considered the basics to know before you can do anything whatsoever in 68k. A scroll text I presume is just drawing a sprite that refers to a given character and putting on screen and finally moving down from one side to the other. A simple bit of code on this would be very useful. If I don't get any then I will have to ponder upon the complications of the many Intro Sources I have. Staying up to the early hours of morning with probably only little success. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- To *.* Another good point is how do you convert from a degas file to a data file often used in intro's. I presume you just strip out the palette and the animation bit as it's not needed. Is that it ? Can you convert a DAT file back to a degas>. If you could then you could modify the fonts of say an earlier intro. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- To Diamond Software Where was that Text file for STOS explaining how to edit your raster routine? it wasn't on the disk like the enclosed letter said. :-) =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- To *.* Does anyone know how the .PCX image file (used on PC's) are encoded or know of any published documentation on the subject. Peter Hibbs. I'll ask around my PC Contacts =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- To *.* Hands up those who are fed up with the revenge doc displayer. What we need is a really good shell program that looks good, is fast, and can uncompress text files - thus allowing more room on disk. Perhaps when these basics are done we can add to it - allow it to do simple disk utilities and perhaps unzip files to a blank disk. This project requires two main things, first of all the shell and secondly a decent doc displayer. The Space Cowboy is working on a NON GEM shell in 68k, but I don't know how he is progressing. I hope to hear from him soon. When I get my Lattice C Compiler, I might attempt a GEM Based Shell, but I don't know how fast or good it will be - but will do it anyway. As for the Doc Displayer - I don't have a clue - I might be able to code something - but it would most likely be crap. Therefore if anyone has any ideas please let me know. This project is little more than in its planning stage - so lets get some code together. I have decided to create this program as I wanted a program that would help organise the administrative side of Ictari User Group. I wanted it to act as a database as well as monitor incomes and receipts of members. I also wanted the program to, at the touch of a button, post transactions and print statements of all members with sufficient credit. After thinking about my initial requests I decided that the program was similar to my Personal Accounts program which I previously written in STOS Basic (See Disk #1). I wrote the program found in the STOS folder of this disk in STOS, in order to get something up and running. I used a bit of code from Personal Accountant, and I was not too particular about making it tidy as this was only a working copy. The STOS program works but is very messy, and has some poor programming techniques. For example it saves all data to disk in ASCII format. A decent program would have proper structures and Random Access. I decided that C was quite clearly the obvious language for this program. 68K and GEM don't mix in my opinion, so I got out my trusty Laser C package, and knocked up the shell for the program using WERCS as well. Unfortunately Laser C is the old pre-ansi C package, so I have given up on it, as I will shortly be buying Lattice C v5, and thus converting to ANSII C. This is why I have not included the source on this issue. I would appreciate any help I can get, either from ideas for expansions, or code to do some of the things I need to do. For example anyone know who to change frequency, turn off keyclick, and have pull down menus in C?. In STOS there were simple commands to do this. I would also appreciate any code to do with File Saving, Random Access, as this is a subject I can struggle through, but not master 100%. How should I do it?. Should I load all structures in one go and search through memory, or search through disk space - thus saving memory. I could probably struggle through this one on my own - but help, is always appreciated. I know the program will probably only be ever used by me - thus not for distribution, PD, etc, but once complete maybe other clubs, etc would be interested in a custom copy?. There's probably other problems that I will encounter, that I haven't thought of yet. If you see potential problems, etc then let me know - even if you don't have a solution. If you're not a C coder but have ideas - then pseudo code is better than nothing. Check out the program in the STOS folder to get a rough idea how it works.