:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:                             GS CLOCK for BASIC                              :
:                             ------------------                              :
:                                                                             :
:                      Docs & Program by: The Screamer                        :
:                                                                             :
:                            Released on 1/21/87                              :
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

GS CLOCK #1 and GS CLOCK #2 are two assembly language clock drivers which
interface with BASIC and allow you to easily manipulate the IIGS's built in
clock. Neither program checks for a IIGS and if you do not run it on a IIGS
then unpredictable things will occur. This was written with Telecat sysops in
mind, but of course can be useful in many other programs.

GS CLOCK #1:
------------

     This routine reads the clock and returns it in a string variable in this
format:
          12/12/87 12:12:12   [mn=month, dy=day, yr=year
           ^  ^  ^  ^  ^  ^    hr=hour, mi=minutes, sc=seconds]
          mn dy yr hr mi sc   

This routine is fully relocatable and can be loaded up practically anywhere
in memory and is only 60 bytes long, the default address is $300 (768) - and
does not interfere with Telecat's Driver in any way. To access the routine
follow this format:

          CALL 768,A$    [768=decimal BLOAD address, A$=any string variable]

If you do not put a comma or do not put a string variable then a SYNTAX ERROR will result and the normal ONERR routines will take over.

If you plan on using it on your Telecat board simply BLOAD GS CLOCK #1,A$1650
and to call it issue this CALL 5712,A$. MF.STARTUP does not have to be changed,
and you lose *NO* memory for BASIC programs or variables with this. Loading
it at $1650 gives you quite a bit of extra memory for your driver as well.

GS CLOCK #2:
------------

     This routine is almost the same as the first version, except that it's
output is exactly the way the Thunderclock, Thunderclock Plus, Timemaster II
H.O., and compatibles output time - it's also much more professional looking.
This routine is NOT relocatable and cannot be loaded anywhere in memory, if it
is not loaded at it's original address then it will also yield unpredictable
results. This routine is exactly 349 bytes long and therefore does not fit 
at $300. I have assembled 3 versions, all the same but with different
originate address ($1650, $9200, and $BC00). The $1650 version should fit in
fine for all Telecat sysops with a minor change in MF.STARTUP (see end), the
original Telecat driver ends at $15F7 so this provides quite a few (about 70)
extra bytes for any modified drivers. The $9200 version is perfect
for 48k DOS and HIMEM must be set accordingly. The $BC00 version is perfect
for 64k DOS and HIMEM should also be set. By the way each version is
noted by it's end address (ie: GS CLOCK #2 $1650 = $1650 originate version).

The output for all of them is in this format:

      SUN DEC 25 12:00:00 PM    [dow=day of week, mon=month, dy=day
      ^   ^   ^  ^  ^  ^  ^      hr=hour, mn=minutes, sc=seconds, and
      dow mon dy hr mn sc AM/PM  AM/PM is obvious]

To call this routine from BASIC follow this format:

        CALL xxxx,A$      [xxxx=address of program, A$=any string variable]

As before A$ can be any string variable, and if it is not a string variable
or the comma is forgotten then a SYNTAX ERROR will result.

Decimal locations:

$1650 = 5712  [so it would be CALL 5712,A$]
$9200 = 37376 [so it would be CALL 37376,A$]
$BC00 = 48128 [so it would be CALL 48128,A$]

In order to use GS CLOCK #2 with Telecat MF.STARTUP must be changed so
that the BASIC programs do not overwrite the clock drivers. To change
them LOAD MF.STARTUP and change the POKE 104,23 to POKE 104,24 - now
all BASIC programs will start at $1800, not $1700 as before. While you
do lose 256 bytes of memory for BASIC programs and variables I kind of
think it is worth it, I mean 256 bytes!

I'd also like to say that both programs can be used in any DOS, be it
DOS 3.3, ProDOS, or anything. GS CLOCK #1 is fully relocatable, whereas
GS CLOCK #2 is not - if you require a new originate address contact me or
simply change all of the address-dependent locations. Also do not try
to use either clock in immediate mode (from the "]" prompt) they are only
made to work inside of a BASIC program. The variable you signify when calling
either clock does nt have to be defined already, if it is not it will
define it and if it is already defined then it will replace it. Another thing
is that the clock drivers must be BLOADED not BRUNNED to be installed in
memory.

Program and Docs by The Screamer -- 1/21/87

I can be found on these boards:

             Apple Tree //........................305/556-6858
             Cap. Connection ][...................716/473-8051
             Rock'n Roll Harbour..................305/821-2232