home *** CD-ROM | disk | FTP | other *** search
-
- REM *************************************************************
- REM * *
- REM * SYSTEM SUPPORT 1 BOARD CLOCK FUNCTIONS *
- REM * BY BILL BOLTON, Software Tools, Australia *
- REM * VERSION 1.0 JAN 17,1982 SUBROUTINES FOR MBASIC *
- REM * VERSION 1.0 JAN 18,1982 INITIAL REL FOR CB80 *
- REM * *
- REM *************************************************************
-
- REM -------------------------------------------------------------
-
- DEF TIME$
-
- INTEGER BASEPORT,CMDPORT,DATAPORT,CREAD
- STRING LOCAL.TIME
-
- REM *************************************************************
- REM * LOCAL VARIABLES USED IN TIME$ *
- REM * *
- REM *BASEPORT SYSTEM SUPPORT 1 BOARD BASE PORT ADDRESS *
- REM *CMDPORT SS1 CLOCK COMMAND PORT ADDRESS *
- REM *DATAPORT SS1 CLOCK DATA PORT ADDRESS *
- REM *CREAD SS1 CLOCK READ MASK *
- REM *HOURS10 TENS OF HOURS DIGIT *
- REM *HOURS1 UNIT HOURS DIGIT *
- REM *MINUTES10 TENS OF MINUTES DIGIT *
- REM *MINUTES1 UNIT MINUTES DIGIT *
- REM *SECONDS10 TENS OF SECONDS DIGIT *
- REM *SECONDS1 UNIT SECONDS DIGIT *
- REM *LOCAL.TIME TIME OF DAY STRING IN HH:MM:SS FORMAT *
- REM *************************************************************
-
- BASEPORT = 50H
- CMDPORT = BASEPORT + 10
- DATAPORT = CMDPORT + 1
- CREAD = 10H
-
- REM *************************************************************
- REM * READ THE TIME DIGITS *
- REM *************************************************************
-
- OUT CMDPORT,(CREAD + 5)
- LOCAL.TIME = STR$((INP(DATAPORT) AND 3))
- OUT CMDPORT,(CREAD + 4)
- LOCAL.TIME = LOCAL.TIME + STR$(INP(DATAPORT)) + ":"
- OUT CMDPORT,(CREAD + 3)
- LOCAL.TIME = LOCAL.TIME + STR$((INP(DATAPORT)) AND 7H)
- OUT CMDPORT,(CREAD + 2)
- LOCAL.TIME = LOCAL.TIME + STR$(INP(DATAPORT)) + ":"
- OUT CMDPORT,(CREAD + 1)
- LOCAL.TIME = LOCAL.TIME + STR$(INP(DATAPORT))
- OUT CMDPORT,(CREAD + 0)
- LOCAL.TIME = LOCAL.TIME + STR$(INP(DATAPORT))
-
- TIME$ = LOCAL.TIME
- RETURN
- FEND
-
- REM ------------------------------------------------------------
-
- DEF WDAY$
- INTEGER BASEPORT,CMDPORT,DATPORT,CREAD,WEEKDAY
-
- REM *************************************************************
- REM * LOCAL VARIABLES USED IN WDAY$ *
- REM * *
- REM *BASEPORT SYSTEM SUPPORT 1 BOARD BASE PORT ADDRESS *
- REM *CMDPORT SS1 CLOCK COMMAND PORT ADDRESS *
- REM *DATAPORT SS1 CLOCK DATA PORT ADDRESS *
- REM *CREAD SS1 CLOCK READ MASK *
- REM *WEEKDAY DAY OF WEEK DIGIT *
- REM *WDAY$ DAY OF WEEK NAME STRING *
- REM *************************************************************
-
- BASEPORT = 50H
- CMDPORT = BASEPORT + 10
- DATAPORT = CMDPORT + 1
- CREAD = 10H
-
- REM *************************************************************
- REM * READ THE WEEKDAY DIGIT AND CONVERT IT TO A *
- REM * DAY NAME STRING *
- REM *************************************************************
-
- OUT CMDPORT,(10H + 6)
- WEEKDAY = INP(DATAPORT)
- OUT CMDPORT,0
- IF WEEKDAY = 0 THEN WDAY$ = "Sunday"
- IF WEEKDAY = 1 THEN WDAY$ = "Monday"
- IF WEEKDAY = 2 THEN WDAY$ = "Tuesday"
- IF WEEKDAY = 3 THEN WDAY$ = "Wednesday"
- IF WEEKDAY = 4 THEN WDAY$ = "Thursday"
- IF WEEKDAY = 5 THEN WDAY$ = "Friday"
- IF WEEKDAY = 6 THEN WDAY$ = "Saturday"
-
- RETURN
- FEND
-
- REM -------------------------------------------------------------
-
- DEF DATE1$
- INTEGER BASEPORT,CMDPORT,DATAPORT,CREAD
- INTEGER YEAR10,YEAR1,MONTH10,MONTH1,DAY10,DAY1
-
- REM *************************************************************
- REM * LOCAL VARIABLES FOR DATE1$ *
- REM * *
- REM *BASEPORT SYSTEM SUPPORT 1 BOARD BASE PORT ADDRESS *
- REM *CMDPORT SS1 CLOCK COMMAND PORT ADDRESS *
- REM *DATAPORT SS1 CLOCK DATA PORT ADDRESS *
- REM *CREAD SS1 CLOCK READ MASK *
- REM *YEAR10 TENS OF YEARS INTEGER *
- REM *YEAR1 UNIT YEAR INTEGER *
- REM *MONTH10 TENS OF MONTHS INTEGER *
- REM *MONTH1 UNIT MONTH INTEGER *
- REM *DAY10 TENS OF DAYS INTEGER *
- REM *DAY UNIT DAY INTEGER *
- REM *************************************************************
-
- BASEPORT = 50H
- CMDPORT = BASEPORT + 10
- DATAPORT = CMDPORT + 1
- CREAD = 10H
-
- REM *************************************************************
- REM * READ THE DATE DIGITS *
- REM *************************************************************
-
- OUT CMDPORT,(CREAD + 9)
- MONTH1 = INP(DATAPORT)
- OUT CMDPORT,(CREAD + 10)
- MONTH10 = ((INP(DATAPORT) AND 1) * 10)
- OUT CMDPORT,(CREAD + 7)
- DAY1 = INP(DATAPORT)
- OUT CMDPORT,(CREAD + 8)
- DAY10 = ((INP(DATAPORT) AND 3) * 10)
- OUT CMDPORT,(CREAD + 11)
- YEAR1 = INP(DATAPORT)
- OUT CMDPORT,(CREAD + 12)
- YEAR10 = (INP(DATAPORT) * 10)
- OUT CMDPORT,0
-
- REM *************************************************************
- REM * FORMAT THE FIRST DATE STRING *
- REM *************************************************************
-
- DATE1$ = STR$(DAY10 + DAY1) + "/" + STR$(MONTH10 + MONTH1)\
- + "/" + STR$(YEAR10 + YEAR1)
-
- RETURN
- FEND
-
- REM -------------------------------------------------------------
-
- DEF DATE2$
- INTEGER BASEPORT,CMDPORT,DATAPORT,CREAD
- INTEGER YEAR10,YEAR1,MONTH10,MONTH1,MONTH,DAY10,DAY1
- STRING MONTH.NAME
-
- REM *************************************************************
- REM * LOCAL VARIABLES FOR DATE2$ *
- REM * *
- REM *BASEPORT SYSTEM SUPPORT 1 BOARD BASE PORT ADDRESS *
- REM *CMDPORT SS1 CLOCK COMMAND PORT ADDRESS *
- REM *DATAPORT SS1 CLOCK DATA PORT ADDRESS *
- REM *CREAD SS1 CLOCK READ MASK *
- REM *YEAR10 TENS OF YEARS INTEGER *
- REM *YEAR1 UNIT YEAR INTEGER *
- REM *MONTH10 TENS OF MONTHS INTEGER *
- REM *MONTH1 UNIT MONTH INTEGER *
- REM *MONTH MONTH INTEGER *
- REM *DAY10 TENS OF DAYS INTEGER *
- REM *DAY UNIT DAY INTEGER *
- REM *MONTH.NAME NAME OF THE MONTH STRING *
- REM *************************************************************
-
- BASEPORT = 50H
- CMDPORT = BASEPORT + 10
- DATAPORT = CMDPORT + 1
- CREAD = 10H
-
- REM *************************************************************
- REM * FORMAT THE SECOND DATE STRING *
- REM *************************************************************
-
- OUT CMDPORT,(CREAD + 9)
- MONTH1 = INP(DATAPORT)
- OUT CMDPORT,(CREAD + 10)
- MONTH10 = ((INP(DATAPORT) AND 1H) * 10)
- OUT CMDPORT,(CREAD + 7)
- DAY1 = INP(DATAPORT)
- OUT CMDPORT,(CREAD + 8)
- DAY10 = ((INP(DATAPORT) AND 3H) * 10)
- OUT CMDPORT,(CREAD + 11)
- YEAR1 = INP(DATAPORT)
- OUT CMDPORT,(CREAD + 12)
- YEAR10 = (INP(DATAPORT) * 10)
- OUT CMDPORT,0
-
- MONTH = MONTH10 + MONTH1
-
- IF MONTH = 1 THEN MONTH.NAME = "January"
- IF MONTH = 2 THEN MONTH.NAME = "February"
- IF MONTH = 3 THEN MONTH.NAME = "March"
- IF MONTH = 4 THEN MONTH.NAME = "April"
- IF MONTH = 5 THEN MONTH.NAME = "May"
- IF MONTH = 6 THEN MONTH.NAME = "June"
- IF MONTH = 7 THEN MONTH.NAME = "July"
- IF MONTH = 8 THEN MONTH.NAME = "August"
- IF MONTH = 9 THEN MONTH.NAME = "September"
- IF MONTH = 10 THEN MONTH.NAME = "October"
- IF MONTH = 11 THEN MONTH.NAME = "November"
- IF MONTH = 12 THEN MONTH.NAME = "December"
-
- DATE2$ = MONTH.NAME + " " + STR$(DAY10 + DAY1) \
- + ", 19" + STR$(YEAR10 + YEAR1)
-
- RETURN
- FEND
-
- REM -------------------------------------------------------------
-
- REM *************************************************************
- REM * EXAMPLES OF DISPLAYING TIME AND DATE IN *
- REM * TWO DIFFERENT FORMATS *
- REM * *
- REM * PRINT "The time is ";LOCAL.TIME;" on ";WDAY$;" ";DATE1$ *
- REM * PRINT "The time is ";LOCAL.TIME;" on ";WDAY$;" ";DATE2$ *
- REM *************************************************************
-
- PRINT "BASIC CLOCK SUBROUTINE DEMONSTRATION PROGRAM"
- PRINT "The time is ";TIME$;" on ";WDAY$;" ";DATE1$
- PRINT "The time is ";TIME$;" on ";WDAY$;" ";DATE2$
- PRINT
- END
-