you don't need to read the registers of the DS1302 individually. You can grab the whole contents of the time register in one shot using "burst mode".

Code:
high rst         ' Ready for transfer
Shiftout IO, SCLK, LSBFIRST, [$bf] ' Read all 8 RTC registers in burst mode     
Shiftin IO, SCLK, LSBPRE, [rtcsec, rtcmin, rtchr, rtcdate, rtcmonth, rtcday, rtcyear, rtccontrol]
low rst         ' Reset RTC
That should load all the time info into your variables, rtcsec, rtcmin, rtchr, rtcdate, rtcmonth, rtcday, rtcyear, rtccontrol


steve