home *** CD-ROM | disk | FTP | other *** search
- *REALTIME, GETS REAL TIME FROM CLOCK (c) G3ZCZ 1986
- CALL dummy
- STORE PEEK(61455) TO min
- STORE PEEK(61456) + gmt TO hour
- IF hour > 0 .AND. hour < 24
- STORE 0 TO fdate
- ELSE
- IF hour < 0
- STORE hour + 24 TO hour
- STORE -1 TO fdate
- ELSE
- STORE hour - 24 TO hour
- STORE 1 TO fdate
- ENDIF
- ENDIF
- STORE ' ' TO ntime
- STORE STR(hour,2)+ STR(min,2) TO mtime
- STORE 1 TO cpointer
- DO WHILE cpointer < 5
- IF $(mtime,cpointer,1) = ' '
- STORE ntime +'0' TO ntime
- ELSE
- STORE ntime+$(mtime,cpointer,1) TO ntime
- ENDIF
- STORE cpointer+1 TO cpointer
- ENDDO
- STORE $(ntime,2) TO ntime
- IF &ntime < &otime
- POKE 61440,180,42
- SET CALL TO 61440
- CALL dummy
- STORE PEEK(61454) TO mm
- STORE PEEK(61456)*256+PEEK(61455)-1900 TO yy
- STORE PEEK(61453) + fdate TO dd
- IF dd > 0 .AND dd < 29
- * DO NOTHING
- ELSE
- IF dd < 1
- STORE mm - 1 TO mm
- IF mm < 1
- STORE mm + 12 TO mm
- STORE yy - 1 TO yy
- ENDIF
- DO CASE
- CASE mm = 2
- IF yy/4 = INT(yy/4)
- STORE 29 TO dd
- ELSE
- STORE 28 TO dd
- ENDIF
- CASE mm = 4 .OR. mm = 6 .OR. mm = 9 .OR. mm = 11
- STORE 30 TO dd
- OTHERWISE
- STORE 31 TO dd
- ENDCASE
- ENDIF
- DO CASE
- CASE mm = 2
- IF yy/4 = INT(yy/4)
- IF dd > 29
- STORE dd - 29 TO dd
- STORE mm + 1 TO mm
- ENDIF
- ELSE
- IF dd > 28
- STORE dd - 28 TO dd
- STORE mm + 1 TO mm
- ENDIF
- ENDIF
- CASE mm = 4 .OR. mm = 6 .OR. mm = 9 .OR. mm = 11
- IF dd > 30
- STORE dd - 30 TO dd
- STORE mm + 1 TO mm
- ENDIF
- OTHERWISE
- IF dd > 31
- STORE dd - 31 TO dd
- STORE mm + 1 TO mm
- ENDIF
- ENDCASE
- IF mm > 12
- STORE mm - 12 TO mm
- STORE yy + 1 TO yy
- ENDIF
- ENDIF
- STORE STR(yy,2)+"/"+STR(mm,2)+"/"+STR(dd,2) TO ndate
- IF $(ndate,4,1) = ' '
- STORE $(ndate,1,3)+'0' + $(ndate,5) TO ndate
- ENDIF
- IF $(ndate,7,1) = ' '
- STORE $(ndate,1,6)+'0' + $(ndate,8) TO ndate
- ENDIF
- * RESTORE TIME SUBROUTINE
- POKE 61440,180,44
- ENDIF
- RETURN