;REAL TIME CLOCK INSERT FOR BYE5 FOR MD2/3 CLOCK INSTALLED AT ; PORTS 30H THROUGH 33H. EXPECTS CLOCK TO BE IN 24HR MODE. ; USES BCDBIN ROUTINE IN BYE (BCD2BIN SET TO TRUE). ; MIKE ALLEN 8/10/86 TIME: PUSH B ;SAVE BC MVI A,090H ;SET UP 8255 OUT 033H MVI A,020H ;PREPARE TO READ OUT 032H MVI A,0H ;GET 1S OF SECONDS CALL GETCLK ANI 0FH ;GET RID OF HIGH BITS MOV B,A ;SAVE IN B MVI A,01H ;GET 10S OF SECONDS CALL GETCLK ANI 0FH ;GET RID OF HIGH BITS RLC RLC RLC RLC ;SHIFT TO HIGH 4 BITS ORA B ;OR IN 1S OF SECONDS TO MAKE BCD SECONDS STA RTCBUF+2 ;SAVE IT IN BCD MVI A,02H ;GET 1S OF MINUTES CALL GETCLK ANI 0FH ;GET RID OF HI BITS MOV B,A ;SAVE IN B MVI A,03H ;GET 10S OF MINUTES CALL GETCLK ANI 0FH ;GET RID OF HIGH BITS RLC RLC RLC RLC ;SHIFT INTO HIGH 4 BITS ORA B ;OR IN 1S OF MINUTES TO MAKE BCD MINUTES STA RTCBUF+1 ;SAVE IT IN BCD CALL BCDBIN ;CONVERT TO BINARY STA CCMIN ;SAVE IN BINARY MVI A,04H ;GET 1S OF HOURS CALL GETCLK ANI 0FH ;GET RID OF HIGH BITS MOV B,A ;SAVE IN B MVI A,05H ;GET 10S OF HOURS CALL GETCLK ANI 03H ;GET RID OF HIGH BITS, 24HR AND PM FLAGS RLC RLC RLC RLC ;SHIFT INTO HIGH 4 BITS ORA B ;OR IN 1S OF HOURS TO MAKE BCD HOURS STA RTCBUF ;SAVE IT IN BCD CALL BCDBIN ;CONVERT TO BINARY STA CCHOUR ;SAVE IN BINARY MVI A,07H ;GET 1S OF DAYS CALL GETCLK ANI 0FH ;GET RID OF HIGH BITS MOV B,A ;SAVE IT IN B MVI A,08H ;GET 10S OF DAYS CALL GETCLK ANI 03H ;GET RID OF HIGH BITS, LEAP YEAR FLAG RLC RLC RLC RLC ;SHIFT INTO HIGH 4 BITS ORA B ;OR IN 1S OF DAYS TO MAKE BCD DAYS STA RTCBUF+6 ;SAVE IT IN BCD MVI A,09H ;GET 1S OF MONTHS CALL GETCLK ANI 0FH ;GET RID OF HIGH BITS MOV B,A ;SAVE IT IN B MVI A,0AH ;GET 10S OF MONTHS CALL GETCLK ANI 01H ;GET RID OF HIGH BITS RLC RLC RLC RLC ;SHIFT INTO HIGH 4 BITS ORA B ;OR IN 1S OF MONTHS TO MAKE BCD MONTHS STA RTCBUF+5 ;SAVE IT IN BCD MVI A,0BH ;GET 1S OF YEARS CALL GETCLK ANI 0FH ;GET RID OF HIGH BITS MOV B,A ;SAVE IT IN B MVI A,0CH ;GET 10S OF YEARS CALL GETCLK ANI 0FH ;GET RID OF HIGH BITS RLC RLC RLC RLC ;SHIFT INTO HIGH 4 BITS ORA B ;OR IN 1S OF YEARS TO MAKE BCD YEARS STA RTCBUF+4 ;SAVE IT IN BCD MVI A,0H ;TAKE MSM5832 OUT OF READ OUT 032H POP B ;RESTORE BC RET ;DONE GETCLK: OUT 031H ;OUTPUT THE REGISTER ADDRESS NOP ;WAIT A WHILE NOP NOP NOP IN 030H ;GET THE DATA RET