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