home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
SIMTEL
/
CPMUG
/
CPMUG042.ARK
/
TIMESET.BAS
< prev
next >
Wrap
BASIC Source File
|
1984-04-29
|
4KB
|
175 lines
10 REM ****** MICROSOFT DISK BASIC, RUNNING UNDER CP/M ******
20 REM *** REV. BY HARRY KAEMMERER 07/14/1979 ***
30 REM *** PGM TO RUN COMPU/TIME CLOCK BOARD MODEL T102A ***
40 REM *** SET DISPLAY SCREEN WIDTH ***
50 WIDTH 80
60 REM *** CLEAR SCREEN COMMAND ***
70 PRINT CHR$(12)
80 REM *** CHANGE P1= TO DECIMAL ADDRESS OF YOUR STARTING PORT ***
90 REM *** 192=C0Hex ***
100 P1=192
110 REM *** GOTO START OF MASTER PROGRAM ***
120 GOTO 1270
130 PRINT
140 PRINT"INVALID DATA DO IT AGAIN"
150 PRINT
160 INPUT"WHAT IS THE DATE MO,DY";M,D
170 IF M=0 THEN 130
180 IF D=0 THEN 130
190 IF M>12 THEN 130
200 REM *** SET MONTH -1 INITIALLY ***
210 IF M=1 THEN C=12 ELSE C=M-1
220 IF D>31 THEN 130
230 PRINT"SETTING DATE"
240 REM *** MONTH TENS & FAST SET ***
250 OUT P1,40
260 A=INP(P1)*10
270 IF A=150 THEN A=0
280 REM *** MONTH UNITS & FAST SET ***
290 OUT P1,41
300 B=A+INP(P1)
310 IF B<>P THEN GOSUB 1660
320 IF B<>C THEN 250
330 REM *** DAY TENS & SLOW SET ***
340 OUT P1,26
350 A=INP(P1)*10
360 REM *** DAY UNITS & SLOW SET ***
370 OUT P1,27
380 B=A+INP(P1)
390 IF B<>P THEN GOSUB 1700
400 IF B<>D THEN 340
410 REM *** MONTH TENS & SLOW SET ***
420 OUT P1,24
430 A=INP(P1)*10
440 IF A=150 THEN A=0
450 REM *** MONTH UNITS & SLOW SET ***
460 OUT P1,25
470 B=A+INP(P1)
480 IF B<>P THEN GOSUB 1660
490 IF B<>M THEN 340
500 OUT P1,0
510 GOTO 1270
520 PRINT
530 PRINT"INVALID DATA DO IT AGAIN"
540 PRINT
550 INPUT"WHAT IS THE TIME. HR,MI";H,M
560 IF H>23 THEN 520
570 REM *** SET HOUR -1 INITIALLY ***
580 IF H=0 THEN C=23 ELSE C=H-1
590 IF M>59 THEN 520
600 PRINT"SETTING TIME"
610 REM *** HOUR TENS & FAST SET ***
620 OUT P1,32
630 A=INP(P1)*10
640 REM *** HOUR MINUTES & FAST SET ***
650 OUT P1,33
660 B=A+INP(P1)
670 IF B<>P THEN GOSUB 1660
680 IF B<>C THEN 620
690 REM *** MINUTES TENS & SLOW SET ***
700 OUT P1,18
710 A=INP(P1)*10
720 REM *** MINUTES UNITS & SLOW SET ***
730 OUT P1,19
740 B=A+INP(P1)
750 IF B<>P THEN GOSUB 1700
760 IF B<>M THEN 700
770 REM *** HOUR TENS & SLOW SET ***
780 OUT P1,16
790 A=INP(P1)*10
800 REM *** HOUR UNITS & SLOW SET ***
810 OUT P1,17
820 B=A+INP(P1)
830 IF B<>P THEN GOSUB 1660
840 IF B<>H THEN 700
850 OUT P1,0
860 GOTO 1270
870 REM **** START OF MASTER PROGRAM ****
880 PRINT
890 PRINT"INVALID DATA DO IT AGAIN"
900 PRINT
910 PRINT"TYPE <T> FOR TIME & DATE."
920 PRINT"TYPE <RT> TO RESET TIME."
930 PRINT"TYPE <RD> TO RESET DATE."
940 PRINT"TYPE <S> TO ADVANCE TO NEXT MINUTE & ZERO SECONDS."
950 INPUT"TYPE <E> TO EXIT PROGRAM";I$
960 IF I$="RT" THEN 540
970 IF I$="RD" THEN 150
980 IF I$="T" THEN 1270
990 IF I$="S" THEN 1590
1000 IF I$="E" THEN 1740
1010 GOTO 880
1020 REM
1030 PRINT
1040 PRINT" DATE ";
1050 REM *** MONTH TENS ***
1060 OUT P1,8
1070 M1=INP(P1)
1080 IF M1=15 THEN M1=0
1090 REM *** MONTH UNITS ***
1100 OUT P1,9
1110 M2=INP(P1)
1120 REM *** DAY TENS ***
1130 OUT P1,10
1140 D1=INP(P1)
1150 REM *** DAY UNITS ***
1160 OUT P1,11
1170 D2=INP(P1)
1180 REM *** ELIMINATE SPACES BETWEEN NUMBERS BY CONVERTING TO STRINGS ***
1190 M1$=CHR$(M1+48)
1200 M2$=CHR$(M2+48)
1210 D1$=CHR$(D1+48)
1220 D2$=CHR$(D2+48)
1230 REM *** CHANGE NEXT LINE TO CURRENT YEAR ***
1240 PRINT M1$;M2$;"/";D1$;D2$;"/1979"
1250 PRINT
1260 GOTO 900
1270 PRINT CHR$(12)
1280 PRINT
1290 PRINT" TIME ";
1300 REM *** HOUR TENS ***
1310 OUT P1,0
1320 H1=INP(P1)
1330 REM *** HOUR UNITS ***
1340 OUT P1,1
1350 H2=INP(P1)
1360 REM *** MINUTE TENS ***
1370 OUT P1,2
1380 M1=INP(P1)
1390 REM *** MINUTE UNITS ***
1400 OUT P1,3
1410 M2=INP(P1)
1420 REM *** SECOND TENS ***
1430 OUT P1,4
1440 S1=INP(P1)
1450 REM *** SECOND UNITS ***
1460 OUT P1,5
1470 S2=INP(P1)
1480 REM *** ELIMINATE SPACES BETWEEN NUMBERS BY CONVERTING TO STRINGS ***
1490 H1$=CHR$(H1+48)
1500 H2$=CHR$(H2+48)
1510 M1$=CHR$(M1+48)
1520 M2$=CHR$(M2+48)
1530 S1$=CHR$(S1+48)
1540 S2$=CHR$(S2+48)
1550 PRINT H1$;H2$;":";M1$;M2$;":";S1$;S2$;
1560 GOTO 1040
1570 REM --- SUB. STARTS HERE ---
1580 REM *** MINUTE UNITS & SLOW SET ***
1590 OUT P1,19
1600 A=INP(P1)
1610 B=INP(P1)
1620 REM *** CONTINUE UNTIL MINUTES TOGGLE ***
1630 IF A=B THEN 1610
1640 OUT P1,0
1650 GOTO 1270
1660 P=B
1670 PRINT P
1680 RETURN
1690 REM ---
1700 P=B
1710 PRINT":";P
1720 RETURN
1730 REM *** END OF PROGRAM, CHANGE NEXT LINE TO YOUR END STATEMENT ***
1740 END