NEW
  AUTO 3,1
* object code = cclock_0
* Cortland clock driver
* $2F80-$2FFC moved to $D742
*--------------------------------------
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
				.AS "JIMJAYKERRY&MIKE"
				.HS 0000000000000000	pad 0's until length
				.HS 0000000000000000  	of driver = 125 bytes.
				.HS 000000000000
CCLK.END 		.EQ	*					end of obj cclock_0.
				.HS 000000				pad to page boundary
*--------------------------------------
MAN
SAVE USR/SRC/PRODOS.203/PRODOS.S.CCLK
LOAD USR/SRC/PRODOS.203/PRODOS.S
ASM
