******************************** * RTC DS1685 TIME DISPLAY PROGRM * FOR MC3 * DANIEL TUFVESSON 2013 ******************************** ******************************** * MONITOR LABLES ******************************** RETURN EQU $C000 RETURN TO PROMPT OUTCHAR EQU $C003 OUTPUT CHAR ON CONSOLE PDATA EQU $C009 PRINT TEXT STRING @ X ENDED BY $04 OUT2HS EQU $C012 PRINT 2 HEX CHARS @ X CONSVEC EQU $7FE5 CONSOLE STATUS VECTOR CONIVEC EQU $7FEB CONSOLE INPUT VECTOR ******************************** * RTC REGS ******************************** RTCBASE EQU $8010 RTCDATA EQU RTCBASE+0 DATA READ/WRITE RTCADDR EQU RTCBASE+1 ADDRESS WRITE ONLY ******************************** * START OF PROGRAM ******************************** ORG $0100 JMP START CRLFTX FCB $0A,$0D,$04 BCOLTX FCB $08,':,$04 BDSHTX FCB $08,'-,$04 BBCKTX FCB $08,$04 START LDX #CRLFTX JSR PDATA LDAA #$00 STAA $0002 LOOP JSR CONSVEC CMPA #$0 BEQ DISPLAY JSR CONIVEC JMP RETURN DISPLAY JSR RTCWUF WAIT FOR TIME UPDATE LDAA #$D JSR OUTCHAR JSR PRTIME PRINT TIME JSR PRDATE PRINT DATE BRA LOOP ******************************** * RTC DS1685 READ REGISTER * IN: ADDRESS IN A * OUT: DATA IN A ******************************** RTCRD PSHA RTCRDL LDAA #$0A WAIT FOR RTC READY STAA RTCADDR LDAA RTCDATA ANDA #$80 CMPA #$80 BEQ RTCRDL PULA STAA RTCADDR SET RTC ADDRESS LDAA RTCDATA READ DATA RTS ******************************** * RTC DS1685 WRITE REGISTER * IN: ADDRESS IN A * IN: DATA IN B ******************************** RTCWR PSHA RTCWRL LDAA #$0A WAIT FOR RTC READY STAA RTCADDR LDAA RTCDATA ANDA #$80 CMPA #$80 BEQ RTCWRL PULA STAA RTCADDR SET RTC ADDRESS STAB RTCDATA WRITE DATA RTS ******************************** * WAIT FOR RTC UPDATE ******************************** RTCWUF LDAA #$0C JSR RTCRD ANDA #$10 CMPA #$10 BNE RTCWUF RTS ******************************** * PRINT TIME ******************************** PRTIME LDAA #$04 HOURS JSR RTCRD STAA TEMP LDX #TEMP JSR OUT2HS LDX #BCOLTX JSR PDATA LDAA #$02 MINUTES JSR RTCRD STAA TEMP LDX #TEMP JSR OUT2HS LDX #BCOLTX JSR PDATA LDAA #$00 SECONDS JSR RTCRD STAA TEMP LDX #TEMP JSR OUT2HS RTS ******************************** * PRINT DATE ******************************** PRDATE LDAA #$48 CENTURY JSR RTCRD STAA TEMP LDX #TEMP JSR OUT2HS LDX #BBCKTX JSR PDATA LDAA #$09 YEAR JSR RTCRD STAA TEMP LDX #TEMP JSR OUT2HS LDX #BDSHTX JSR PDATA LDAA #$08 MONTH JSR RTCRD STAA TEMP LDX #TEMP JSR OUT2HS LDX #BDSHTX JSR PDATA LDAA #$07 DATE JSR RTCRD STAA TEMP LDX #TEMP JSR OUT2HS RTS ******************************** * RTC DS1685 PRINT DEBUG ******************************** PRDBG LDAA #$0A JSR RTCRD STAA TEMP LDX #TEMP JSR OUT2HS LDAA #$0B JSR RTCRD STAA TEMP LDX #TEMP JSR OUT2HS LDAA #$0C JSR RTCRD STAA TEMP LDX #TEMP JSR OUT2HS LDAA #$0D JSR RTCRD STAA TEMP LDX #TEMP JSR OUT2HS ******************************** * TEMPORARY MEMORY BYTE ******************************** TEMP RMB 1