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 >
BASIC Source File  |  1984-04-29  |  4KB  |  175 lines

  1. 10 REM ****** MICROSOFT DISK BASIC, RUNNING UNDER CP/M ******
  2. 20 REM *** REV. BY HARRY KAEMMERER  07/14/1979 ***
  3. 30 REM *** PGM TO RUN COMPU/TIME CLOCK BOARD MODEL T102A ***
  4. 40 REM *** SET DISPLAY SCREEN WIDTH ***
  5. 50 WIDTH 80
  6. 60 REM *** CLEAR SCREEN COMMAND ***
  7. 70 PRINT CHR$(12)
  8. 80 REM *** CHANGE P1= TO DECIMAL ADDRESS OF YOUR STARTING PORT ***
  9. 90 REM *** 192=C0Hex ***
  10. 100 P1=192
  11. 110 REM *** GOTO START OF MASTER PROGRAM ***
  12. 120 GOTO 1270
  13. 130 PRINT
  14. 140 PRINT"INVALID DATA DO IT AGAIN"
  15. 150 PRINT
  16. 160 INPUT"WHAT IS THE DATE MO,DY";M,D
  17. 170 IF M=0 THEN 130
  18. 180 IF D=0 THEN 130
  19. 190 IF M>12 THEN 130
  20. 200 REM *** SET MONTH -1 INITIALLY ***
  21. 210 IF M=1 THEN C=12 ELSE C=M-1
  22. 220 IF D>31 THEN 130
  23. 230 PRINT"SETTING DATE"
  24. 240 REM *** MONTH TENS & FAST SET ***
  25. 250 OUT P1,40
  26. 260 A=INP(P1)*10
  27. 270 IF A=150 THEN A=0
  28. 280 REM *** MONTH UNITS & FAST SET ***
  29. 290 OUT P1,41
  30. 300 B=A+INP(P1)
  31. 310 IF B<>P THEN GOSUB 1660
  32. 320 IF B<>C THEN 250
  33. 330 REM *** DAY TENS & SLOW SET ***
  34. 340 OUT P1,26
  35. 350 A=INP(P1)*10
  36. 360 REM *** DAY UNITS & SLOW SET ***
  37. 370 OUT P1,27
  38. 380 B=A+INP(P1)
  39. 390 IF B<>P THEN GOSUB 1700
  40. 400 IF B<>D THEN 340
  41. 410 REM *** MONTH TENS & SLOW SET ***
  42. 420 OUT P1,24
  43. 430 A=INP(P1)*10
  44. 440 IF A=150 THEN A=0
  45. 450 REM *** MONTH UNITS & SLOW SET ***
  46. 460 OUT P1,25
  47. 470 B=A+INP(P1)
  48. 480 IF B<>P THEN GOSUB 1660
  49. 490 IF B<>M THEN 340
  50. 500 OUT P1,0
  51. 510 GOTO 1270
  52. 520 PRINT
  53. 530 PRINT"INVALID DATA DO IT AGAIN"
  54. 540 PRINT
  55. 550 INPUT"WHAT IS THE TIME. HR,MI";H,M
  56. 560 IF H>23 THEN 520
  57. 570 REM *** SET HOUR -1 INITIALLY ***
  58. 580 IF H=0 THEN C=23 ELSE C=H-1
  59. 590 IF M>59 THEN 520
  60. 600 PRINT"SETTING TIME"
  61. 610 REM *** HOUR TENS & FAST SET ***
  62. 620 OUT P1,32
  63. 630 A=INP(P1)*10
  64. 640 REM *** HOUR MINUTES & FAST SET ***
  65. 650 OUT P1,33
  66. 660 B=A+INP(P1)
  67. 670 IF B<>P THEN GOSUB 1660
  68. 680 IF B<>C THEN 620
  69. 690 REM *** MINUTES TENS & SLOW SET ***
  70. 700 OUT P1,18
  71. 710 A=INP(P1)*10
  72. 720 REM *** MINUTES UNITS & SLOW SET ***
  73. 730 OUT P1,19
  74. 740 B=A+INP(P1)
  75. 750 IF B<>P THEN GOSUB 1700
  76. 760 IF B<>M THEN 700
  77. 770 REM *** HOUR TENS & SLOW SET ***
  78. 780 OUT P1,16
  79. 790 A=INP(P1)*10
  80. 800 REM *** HOUR UNITS & SLOW SET ***
  81. 810 OUT P1,17
  82. 820 B=A+INP(P1)
  83. 830 IF B<>P THEN GOSUB 1660
  84. 840 IF B<>H THEN 700
  85. 850 OUT P1,0
  86. 860 GOTO 1270
  87. 870 REM **** START OF MASTER PROGRAM ****
  88. 880 PRINT
  89. 890 PRINT"INVALID DATA DO IT AGAIN"
  90. 900 PRINT
  91. 910 PRINT"TYPE <T> FOR TIME & DATE."
  92. 920 PRINT"TYPE <RT> TO RESET TIME."
  93. 930 PRINT"TYPE <RD> TO RESET DATE."
  94. 940 PRINT"TYPE <S> TO ADVANCE TO NEXT MINUTE & ZERO SECONDS."
  95. 950 INPUT"TYPE <E> TO EXIT PROGRAM";I$
  96. 960 IF I$="RT" THEN 540
  97. 970 IF I$="RD" THEN 150
  98. 980 IF I$="T" THEN 1270
  99. 990 IF I$="S" THEN 1590
  100. 1000 IF I$="E" THEN 1740
  101. 1010 GOTO 880
  102. 1020 REM
  103. 1030 PRINT
  104. 1040 PRINT"  DATE ";
  105. 1050 REM *** MONTH TENS ***
  106. 1060 OUT P1,8
  107. 1070 M1=INP(P1)
  108. 1080 IF M1=15 THEN M1=0
  109. 1090 REM *** MONTH UNITS ***
  110. 1100 OUT P1,9
  111. 1110 M2=INP(P1)
  112. 1120 REM *** DAY TENS ***
  113. 1130 OUT P1,10
  114. 1140 D1=INP(P1)
  115. 1150 REM *** DAY UNITS ***
  116. 1160 OUT P1,11
  117. 1170 D2=INP(P1)
  118. 1180 REM *** ELIMINATE SPACES BETWEEN NUMBERS BY CONVERTING TO STRINGS ***
  119. 1190 M1$=CHR$(M1+48)
  120. 1200 M2$=CHR$(M2+48)
  121. 1210 D1$=CHR$(D1+48)
  122. 1220 D2$=CHR$(D2+48)
  123. 1230 REM *** CHANGE NEXT LINE TO CURRENT YEAR ***
  124. 1240 PRINT M1$;M2$;"/";D1$;D2$;"/1979"
  125. 1250 PRINT
  126. 1260 GOTO 900
  127. 1270 PRINT CHR$(12)
  128. 1280 PRINT
  129. 1290 PRINT" TIME ";
  130. 1300 REM *** HOUR TENS ***
  131. 1310 OUT P1,0
  132. 1320 H1=INP(P1)
  133. 1330 REM *** HOUR UNITS ***
  134. 1340 OUT P1,1
  135. 1350 H2=INP(P1)
  136. 1360 REM *** MINUTE TENS ***
  137. 1370 OUT P1,2
  138. 1380 M1=INP(P1)
  139. 1390 REM *** MINUTE UNITS ***
  140. 1400 OUT P1,3
  141. 1410 M2=INP(P1)
  142. 1420 REM *** SECOND TENS ***
  143. 1430 OUT P1,4
  144. 1440 S1=INP(P1)
  145. 1450 REM *** SECOND UNITS ***
  146. 1460 OUT P1,5
  147. 1470 S2=INP(P1)
  148. 1480 REM *** ELIMINATE SPACES BETWEEN NUMBERS BY CONVERTING TO STRINGS ***
  149. 1490 H1$=CHR$(H1+48)
  150. 1500 H2$=CHR$(H2+48)
  151. 1510 M1$=CHR$(M1+48)
  152. 1520 M2$=CHR$(M2+48)
  153. 1530 S1$=CHR$(S1+48)
  154. 1540 S2$=CHR$(S2+48)
  155. 1550 PRINT H1$;H2$;":";M1$;M2$;":";S1$;S2$;
  156. 1560 GOTO 1040
  157. 1570 REM --- SUB. STARTS HERE ---
  158. 1580 REM *** MINUTE UNITS & SLOW SET ***
  159. 1590 OUT P1,19
  160. 1600 A=INP(P1)
  161. 1610 B=INP(P1)
  162. 1620 REM *** CONTINUE UNTIL MINUTES TOGGLE ***
  163. 1630 IF A=B THEN 1610
  164. 1640 OUT P1,0
  165. 1650 GOTO 1270
  166. 1660 P=B
  167. 1670 PRINT P
  168. 1680 RETURN
  169. 1690 REM ---
  170. 1700 P=B
  171. 1710 PRINT":";P
  172. 1720 RETURN
  173. 1730 REM *** END OF PROGRAM, CHANGE NEXT LINE TO YOUR END STATEMENT ***
  174. 1740 END
  175.