mirror of
https://github.com/A2osX/A2osX.git
synced 2024-10-31 23:09:33 +00:00
9a7d20a7e1
FORMAT: new switches & checks SH:BREAK in FOR and WHILE ASM / S-C MASM: new directives, CString support and .HX LC / UC:bugfix DHGR.DRV:bugfix LIBGUI:wip CC:wip
61 lines
1.8 KiB
Plaintext
61 lines
1.8 KiB
Plaintext
NEW
|
||
AUTO 3,1
|
||
*--------------------------------------
|
||
CCLK.START >SHORTMX 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
|
||
>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 statereg
|
||
pla pull off seconds and ignore
|
||
pla
|
||
sta p8time minutes
|
||
pla
|
||
sta p8time+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 p8date+1 year
|
||
pla
|
||
inc increment day for Prodos 8 format.
|
||
sta p8date 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 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 .HS 00 state of the state register
|
||
*--------------------------------------
|
||
.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
|