

    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!

    <PoshPaws>

    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.
    <Ictari>

    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    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.

    <PoshPaws>

    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    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!).

    <PoshPaws>

    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. <Ictari>

    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    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. <Ictari>

    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    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 <Diamond Software>

    C would probably be best,  with  68K  used  for the fast drawing stuff.
    <Ictari>

    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    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 <Diamond Software>
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    Nik <Ictari>

    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 <Diamond Software>

    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. <Ictari>

    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    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. <Ictari>

    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    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 <Diamond Software>

    You teach me to code, and I will code. I read the docs <Ictari>
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    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 <The other half of Diamond Software>

    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.

    <ictari>
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    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 :-) <ictari>
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    To Diamond Software

    Thanks for using the same format for your Talk file - saved me a bit of
    work.

    <ictari>
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    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?

    <ictari>
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    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.

    <ictari>
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    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.

    <ictari>
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    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. :-)

    <ictari>
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    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 <ictari>
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    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.

    <ictari>
