A2osX/ProDOS.203/ProDOS.S.CCLK.txt

72 lines
2.8 KiB
Plaintext
Raw Normal View History

2019-04-29 20:36:58 +00:00
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