[comp.sys.apple] Clock cards and Prodos

rob@lucifer.UUCP ( 237) (04/28/88)

Can anyone tell me how Prodos interfaces with a clock card?  I have (I think)
the chips necessary to construct a card but would like to know what addresses
Prodos looks at to get the time and date.  I suppose what I'm really after
is a memory map of the Thunderclock card.  Can anyone help?  Thanks in advance.

P.S. Someone please respond since previous postings have produced no replies;
leading me to think our news does not get distributed.

-----------------------------------------------------------------------------
Rob Clive.				     UUCP:  ...!mcvax!ukc!lucifer!rob
Lucas Micos Ltd., Cirencester, GL7 1QG, UK.		      Now read on....

jetzer@studsys.mu.edu (jetzer) (05/01/88)

In article <18@lucifer.UUCP>, rob@lucifer.UUCP ( 237) writes:
> Can anyone tell me how Prodos interfaces with a clock card?  I have (I think)
> the chips necessary to construct a card but would like to know what addresses
> Prodos looks at to get the time and date.  I suppose what I'm really after
> is a memory map of the Thunderclock card.  Can anyone help?  Thanks in advance.

Don't know anything about the hardware end of it, but the ProDOS clock
driver resides at $d742-$d7be; a jump to the ProDOS clock driver is on the
global page at $bf06-$bf08.

You can disassemble the code to find out how ProDOS actually makes the call.

After a call, ProDOS expects the clock to put the date in the input buffer,
in the following form:

07,04,14,22,46,57    (in ASCII format)

07 = month (01=jan .. 12=dec)
04 = day of week (00=sun .. 06=sat)
14 = date
22 = hour
46 = minute
57 = second
-- 
Mike Jetzer
"Hack first, ask questions later."

DGR0093@RITVAX.BITNET (05/01/88)

> Can anyone tell me how Prodos interfaces with a clock card?  I have (I think)
> the chips necessary to construct a card but would like to know what addresses
> Prodos looks at to get the time and date.  I suppose what I'm really after
> is a memory map of the Thunderclock card.  Can anyone help?  Thanks in advance

DGR0093@RITVAX.BITNET (05/01/88)

>Can anyone tell me how Prodos interfaces with a clock card?  I have (I think)
>the chips necessary to construct a card but would like to know what addresses
>Prodos looks at to get the time and date.  I suppose what I'm really after
>is a memory map of the Thunderclock card.  Can anyone help?  Thanks in advance.

I think you could do it by having your card (I don't know much about hardware
interfacing on the level you're doing, so I don't know if this method is
actually possible) update the date and time in locations $BF92-93 for the
time, and $BF90-91 for the date. The bytes hold the date and time information
somewhat encoded, though, so I here enclose an example I get from the Beagle
Bros. Pro-Byter manual:

Date Bits: YYYYYYYM MMMDDDDD (bytes in reverse order)
Time Bits: HHHHHHHH MMMMMMMM    "   "   "   "   "

EXAMPLE: 25-Jan-42 06:42 [I don't know why they used 42, but they did.]
Appears in memory as such:
BF90:39 54 15 06
Swap the order to get: 54 39 and 06 15
Date Bytes: $54         and $39
     Bits : 01010100        00111001
    or Year 0101010, month 0001, day 11001
    or Year 42, month 1, day 25
Time Bytes: $06         and $15
     or Hour 6, minute 21

Hope this is what you're looking for. Have fun and good luck...

Dave Rutherford a.k.a. Michelangelo H. Jones            DGR0093@RITVAX.BITNET

DGR0093@RITVAX.BITNET (05/01/88)

NOTE: I tried posting this earlier, but somehow only the inclusion from
the note I was replying to got back to me, so I assume everyone else got
the same fragmented version. So here's another try at it...

> Can anyone tell me how Prodos interfaces with a clock card?  I have (I think)
> the chips necessary to construct a card but would like to know what addresses
> Prodos looks at to get the time and date.  I suppose what I'm really after is
> a memory map of the Thunderclock card.  Can anyone help?  Thanks in advance.

I think you could do it by having your card (I don't know much about hardware
interfacing on the level you're doing, so I don't know if this method is
actually possible) update the date and time in locations $BF92-93 for the
time, and $BF90-91 for the date. The bytes hold the date and time information
somewhat encoded, though, so I here enclose an example I get from the Beagle
Bros. Pro-Byter manual:

Date Bits: YYYYYYYM MMMDDDDD (bytes in reverse order)
Time Bits: HHHHHHHH MMMMMMMM    "   "   "   "   "

EXAMPLE: 25-Jan-42 06:42 [I don't know why they used 42, but they did.]
Appears in memory as such:
BF90:39 54 15 06
Swap the order to get: 54 39 and 06 15
Date Bytes: $54         and $39
     Bits : 01010100        00111001
    or Year 0101010, month 0001, day 11001
    or Year 42, month 1, day 25
Time Bytes: $06         and $15
     or Hour 6, minute 21

Hope this is what you're looking for. Have fun and good luck...

Dave Rutherford a.k.a. Michelangelo H. Jones            DGR0093@RITVAX.BITNET

F3U@PSUVM.BITNET (05/03/88)

>Can anyone tell me how Prodos interfaces with a clock card?  I have (I think)
>the chips necessary to construct a card but would like to know what addresses
>Prodos looks at to get the time and date.  I suppose what I'm really after
>is a memory map of the Thunderclock card.  Can anyone help? Thanks in advance.

The process is involved, but it is possible.  What you need to do
is just to emulate the Thunderclock in ROM.  I don't have the ID bytes
handy, but just get a hold of a copy of Beneath Apple ProDOS from
Quality Software.  It gives all the ID bytes needed for all peripherials
ProDOS recognizes.  BTW, this book is a MUST for any serious ProDOS
programmer.

-------
******************** #include <disclamer.h> **************************
*  Frank Uzzolino                       Penn State University        *
*  f3u@psuvm                            7 Hamilton Hall              *
*  frank@psuvaxg   (sometimes)          University Park, PA  16802   *
**********************************************************************
Flames (and soon my accounts) will be routed to /dev/null