pause 2000 define osc 10 low porta.3 RST var portb.3 ' Reset pin 10 IO var portb.2 ' IO pin 9 SCLK var portb.1 ' Serial clock pin 8 WEnable con $00 ' Write enable WCB con $BE ' Read clock burst RCB con $BF ' Write clock burst i var byte IOSec var byte ' store register data for seconds IOMin var byte ' store register data for minutes IOHour var byte ' store register data for hours IODay var byte ' store register data for day IOMonth var byte ' store register data for month IODCare var byte ' For day of week - don't care IOYear var byte ' store register data for year Tmonth1 var byte Tmonth2 var byte Tmonth3 var byte changetime: serout2 porta.3,16468,[" SET TIME YES NO "] for i = 0 to 40 if porta.4 = 0 then gettime nap 3 next i goto loop GETTIME: serout2 porta.3,16468,[254,1] serout2 porta.3,16468,[" CLOCK RS232 IN "] SERIN2 PORTA.2,16468,[hex2 IOMONTH,hex2 IODAY,hex2 IOYEAR,hex2 IOHOUR,hex2 IOMIN,hex2 IOSEC] serout2 porta.3,16468,[254,1] set: pause 500 high RST ' tell 1302 that we want to write a clock burst shiftout IO,SCLK,0,[WCB] ' write everything in a burst Shiftout IO,SCLK,0,[IOSec,IOMin,IOhour,IOday,IOmonth,IODcare,IOyear,Wenable] low RST loop: NAP 5 PAUSE 420 high RST ' tell 1302 that we want to read a clock burst shiftout IO,SCLK,0,[RCB] ' read everything in a burst Shiftin IO,SCLK,1,[IOSec\8,IOMin\8,IOhour\8,IOday\8,IOmonth\8,IODcare\8,IOyear\8] low RST gosub display goto loop display: serout2 porta.3,16468,[254,1] serout2 porta.3,16468,[" TIME ",hex2 IOHour,":",hex2 IOMin,":",hex2 IOSec,13] serout2 porta.3,16468,[254,190] serout2 porta.3,16468,[" DATE ",HEX2 IOMONTH,"-",HEX2 IODAY,"-",HEX2 IOYEAR,13,13] RETURN