A2osX/ProDOS.FX/ProDOS.S.CCLK.txt
2023-11-04 15:42:28 +01:00

65 lines
1.9 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

NEW
AUTO 3,1
*--------------------------------------
CCLK.START .PH CLK
CCLK.START1 >SHORTMX 8 bit mode.
lda IO.GS.STATEREG state register.
sta savestate save for restore after tool call.
and #$CF clear the read/write aux memory bits.
sta IO.GS.STATEREG make it real
clc set e = 0 to set native mode
xce
>LONGMX 16 bit mode.
lda ##$0000 zero out result space.
pha push 4 words for hex time result
pha
pha
pha
>IIGS ReadTimeHex
>SHORTM back to 8 bit to get results from stack
lda savestate restore state register
sta IO.GS.STATEREG
pla pull off seconds and ignore
pla
sta GP.TIME minutes
pla
sta GP.TIME+1 hours
pla year
.1 cmp #100 out of range?
bcc .2 no, go ahead and store
sbc #$64 else put back in range.
bra .1 try again
.2 sta GP.DATE+1 year
pla
inc increment day for Prodos 8 format.
sta GP.DATE day
pla month
inc increment month for Prodos 8 format.
asl shift month as it sits in between
asl the year and day values.
asl
asl
asl
ora GP.DATE put all but the top bit of month
sta GP.DATE value in the day byte.
rol GP.DATE+1 put hi bit of month in low bit of year
pla pull of unused byte
pla pull off day of week. stack now clean.
sec go back to emulation mode
xce to continue with Prodos 8
rts
savestate .HS 00 state of the state register
*--------------------------------------
.EP
*--------------------------------------
* .LIST ON
CCLK.LEN .EQ *-CCLK.START
.LIST OFF
*--------------------------------------
MAN
SAVE usr/src/prodos.fx/prodos.s.cclk
LOAD usr/src/prodos.fx/prodos.s
ASM