home *** CD-ROM | disk | FTP | other *** search
- 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
- --
- 1700 P=B
- 1710 PRINT":";P
- 1720 RETURN
- 1730 REM *** END OF PROGRAM, CHANGE NEX