mirror of
https://github.com/A2osX/A2osX.git
synced 2024-12-02 05:49:24 +00:00
72 lines
2.8 KiB
Plaintext
72 lines
2.8 KiB
Plaintext
|
NEW
|
|||
|
AUTO 3,1
|
|||
|
* object code = cclock_0
|
|||
|
* Cortland clock driver
|
|||
|
* $2F80-$2FFC moved to $D742
|
|||
|
|
|||
|
ofsC .EQ cclock_0-tclk_in offset to Cortland clock org
|
|||
|
|
|||
|
cclock_0 SHORT I,M 8 bit mode.
|
|||
|
lda statereg state register.
|
|||
|
sta savestate save for restore after tool call.
|
|||
|
and #$CF clear the read/write aux memory bits.
|
|||
|
sta statereg make it real
|
|||
|
clc set e = 0 to set native mode
|
|||
|
xce
|
|||
|
LONG I,M 16 bit mode.
|
|||
|
lda #$0000 zero out result space.
|
|||
|
pha push 4 words for hex time result
|
|||
|
pha
|
|||
|
pha
|
|||
|
pha
|
|||
|
_ReadTimeHex
|
|||
|
SHORT M back to 8 bit to get results from stack
|
|||
|
lda savestate restore state register
|
|||
|
sta statereg
|
|||
|
pla pull off seconds and ignore
|
|||
|
pla
|
|||
|
sta p8time minutes
|
|||
|
pla
|
|||
|
sta p8time+1 hours
|
|||
|
pla year
|
|||
|
H2FB1 cmp #100 out of range?
|
|||
|
bcc H2FB9 no, go ahead and store
|
|||
|
sbc #$64 else put back in range.
|
|||
|
bra H2FB1 try again
|
|||
|
H2FB9 sta p8date+1 year
|
|||
|
pla
|
|||
|
inc a increment day for Prodos 8 format.
|
|||
|
sta p8date day
|
|||
|
pla month
|
|||
|
inc a increment month for Prodos 8 format.
|
|||
|
asl a shift month as it sits in between
|
|||
|
asl a the year and day values.
|
|||
|
asl a
|
|||
|
asl a
|
|||
|
asl a
|
|||
|
ora p8date put all but the top bit of month
|
|||
|
sta p8date value in the day byte.
|
|||
|
rol p8date+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 .EQ *-ofsC
|
|||
|
dc h'00' state of the state register
|
|||
|
dc c'JIMJAYKERRY'
|
|||
|
dc h'26' ampersand (Orca assembler doesn't like)
|
|||
|
dc c'MIKE'
|
|||
|
dc h'0000000000000000' pad 0's until length
|
|||
|
dc h'0000000000000000' of driver = 125 bytes.
|
|||
|
dc h'000000000000'
|
|||
|
cclk_end .EQ * end of obj cclock_0.
|
|||
|
dc h'000000' pad to page boundary
|
|||
|
LONGI OFF
|
|||
|
*--------------------------------------
|
|||
|
MAN
|
|||
|
LOAD USR/SRC/PRODOS/PRODOS.S.CCLK
|
|||
|
SAVE USR/SRC/PRODOS/PRODOS.S
|
|||
|
ASM
|
|||
|
|