home *** CD-ROM | disk | FTP | other *** search
- 5 POKE56,160:CLR:DIMS,N,X,Y,D,I,H,U,E,G,P,Q,A$,A(2000)
- 10 PRINT"[147][142]ONE MOMENT PLEASE..."
- 15 FORI=.TO279:READY:POKEI+49152,Y:NEXT
- 20 GOTO500
- 25 OPEN15,D,15:PRINT#15,"B-P";8;0
- 30 FORI=.TO58:PRINT#8,CHR$(PEEK(I+49373));:NEXT
- 35 CLOSE8:N=.:E=56576:G=56321:H=32:U=1:PRINT"[147]"
- 40 POKE139,156:POKE140,18:POKE141,77:POKE142,98:POKE143,248
- 45 PRINT#15,"I0:"
- 50 PRINT#15,"U3:"
- 60 POKEE,23:SYS49152
- 65 SYS49152
- 70 N=N+U:A(N)=S:PRINTN,,S
- 75 IFPEEK(G)ANDHTHENSYS49191:GOTO70
- 80 SYS59060:POKEE,7:POKE198,.:CLOSE15
- 85 PRINT" PRESS RETURN."
- 90 GETA$:IFA$=CHR$(13)THEN100
- 95 GOTO90
- 100 PRINT"[147]PRESS M FOR MAIN MENU."
- 105 PRINT"PRESS R TO REVIEW READINGS."
- 110 PRINT"PRESS X TO EXIT."
- 115 GETA$:IFA$="M"THEN500
- 120 IFA$="R"THEN135
- 125 IFA$="X"THENEND
- 130 GOTO115
- 135 PRINT"[147]PRESS S TO SEND DATA TO SCREEN."
- 140 PRINT"PRESS P TO SEND DATA TO PRINTER."
- 145 GETA$:IFA$="S"THEN160
- 150 IFA$="P"THEN300
- 155 GOTO145
- 160 PRINT"[147]ENTER STARTING READING NUMBER (> 0)."
- 165 X=1:PRINT:INPUTX:IFX<1THEN160
- 170 PRINT"ENTER ENDING READING NUMBER (<";N+1;")."
- 172 Y=N:PRINT:INPUTY:IFY>NTHEN170
- 175 P=.:Q=P:PRINT"[147]READING # SPEED (RPM'S)"
- 177 PRINT"[163][163][163][163][163][163][163][163][163] [163][163][163][163][163][163][163][163][163][163][163][163][163]"
- 180 FORI=XTOY:PRINTI,,A(I):P=P+1:Q=1/A(I)+Q:NEXT:Q=INT(10*P/Q+.5)/10
- 185 PRINT"AVERAGE SPEED =";Q;"RPM."
- 190 PRINT" PRESS RETURN."
- 195 GETA$:IFA$=CHR$(13)THEN205
- 200 GOTO195
- 205 PRINT"[147]PRESS M FOR LAST MENU."
- 210 PRINT"PRESS R FOR ANOTHER SET OF READINGS."
- 215 GETA$:IFA$="M"THEN100
- 220 IFA$="R"THEN160
- 230 GOTO215
- 300 PRINT"[147]ENTER STARTING READING NUMBER (> 0)."
- 305 PRINT:INPUTX:IFX<1THEN160
- 310 PRINT"ENTER ENDING READING NUMBER (<";N+1;")."
- 312 PRINT:INPUTY:IFY>NTHEN170
- 315 PRINT"[147]PRINTING..."
- 317 OPEN4,4:CMD4:PRINTCHR$(27);"A";
- 320 P=.:Q=P:PRINT"READING # SPEED (RPM'S)"
- 325 PRINT"[163][163][163][163][163][163][163][163][163] [163][163][163][163][163][163][163][163][163][163][163][163][163]"
- 330 FORI=XTOY:PRINTI;CHR$(16);"20";A(I):P=P+1:Q=1/A(I)+Q
- 332 NEXT:Q=INT(10*P/Q+.5)/10
- 335 PRINT:PRINT"AVERAGE SPEED =";Q;"RPM'S."
- 340 PRINT#4:CLOSE4
- 345 PRINT"PRESS M FOR LAST MENU."
- 350 PRINT"PRESS R FOR ANOTHER SET OF READINGS."
- 355 GETA$:IFA$="M"THEN100
- 360 IFA$="R"THEN300
- 365 GOTO355
- 500 PRINT"[147][142]PRESS D FOR DOCUMENTATION."
- 505 PRINT"PRESS S FOR SPEED CHECK."
- 510 PRINT"PRESS X TO EXIT."
- 515 GETA$:IFA$="D"THEN535
- 520 IFA$="S"THEN800
- 525 IFA$="X"THENEND
- 530 GOTO515
- 535 PRINT"[147][212]HIS PROGRAM WILL MEASURE THE SPINDLE"
- 540 PRINT"MOTOR SPEED OF A 1541 DISK DRIVE. [212]HE"
- 545 PRINT"NOMINAL SPEED IS 300 [210][208][205], BUT THE SPEED"
- 550 PRINT"CAN CHANGE SUDDENLY, FROM A FAILURE, OR"
- 555 PRINT"GRADUALLY, FROM AGING OF COMPONENTS."
- 560 PRINT"[212]HE PROGRAM SIMPLY SENDS A SHORT 6502"
- 565 PRINT"ROUTINE TO THE DRIVE AND THEN EXECUTES"
- 570 PRINT"IT. [212]HAT CAUSES THE 1541 TO ROTATE THE"
- 575 PRINT"SPINDLE MOTOR, AND SEND A PULSE OVER THE"
- 580 PRINT"[201][197][195] (SERIAL) BUS ONCE EACH REVOLUTION."
- 581 PRINT" [208][210][197][211][211] [210][197][212][213][210][206]."
- 582 GETA$:IFA$=CHR$(13)THEN585
- 583 GOTO582
- 585 PRINT"[147][212]HE COMPUTER MEASURES THE TIME INTERVAL"
- 590 PRINT"BETWEEN SUCCESSIVE PULSES, AND"
- 595 PRINT"CALCULATES AND DISPLAYS THE SPEED IN"
- 600 PRINT"[210][208][205]'S. [212]HUS, A READING IS PRINTED TO"
- 605 PRINT"THE SCREEN FIVE TIMES PER SECOND. [212]HE"
- 610 PRINT"ACCURACY IS +/- 0.1 [210][208][205]. [213]P TO 2000"
- 615 PRINT"READINGS ARE STORED, FOR LATER"
- 620 PRINT"EXAMINATION (OVER 6 MINUTES WORTH)."
- 625 PRINT"[212]O END THE TEST, AND TURN OFF THE"
- 630 PRINT"MOTOR, PRESS THE COMKEY ([195]=)."
- 635 PRINT" [208][210][197][211][211] [210][197][212][213][210][206] [198][207][210] [205][193][201][206] [205][197][206][213]."
- 640 GETA$:IFA$=CHR$(13)THEN500
- 645 GOTO640
- 800 PRINT"[147]"
- 805 PRINT"ENTER DISK DRIVE DEVICE NUMBER."
- 810 PRINT" 8[145]":INPUTD:IFD-8AND252THENPRINT"ILLEGAL DEVICE NUMBER":GOTO805
- 815 POKE183,2:POKE184,8:POKE185,8:POKE186,D:POKE187,253:POKE188,.
- 820 POKE253,35:POKE254,50:SYS65472
- 825 IFPEEK(783)AND1THENPRINT"[147]?DEVICE";D;"NOT PRESENT":CLOSE8:GOTO805
- 830 GOTO25
- 1000 DATA120,24,165,45,105,2,133,251,165
- 1010 DATA46,105,0,133,252,169,3,141,4
- 1020 DATA221,169,0,141,5,221,169,17,141
- 1030 DATA14,221,169,254,141,6,221,169
- 1040 DATA255,141,7,221,162,79,189,141
- 1050 DATA192,157,0,4,202,16,247,162,0
- 1060 DATA169,89,44,0,221,16,251,142,15
- 1070 DATA221,174,7,221,172,6,221,141,15
- 1080 DATA221,138,73,255,170,152,73,255
- 1090 DATA160,0,56,32,135,175,32,126,175
- 1100 DATA169,17,160,191,32,103,184,169
- 1110 DATA139,160,0,32,15,187,169,17,160
- 1120 DATA191,32,103,184,32,204,188,32
- 1130 DATA12,188,169,249,160,186,32,162
- 1140 DATA187,169,0,133,111,165,97,32,18
- 1150 DATA187,32,27,188,166,251,164,252
- 1160 DATA32,212,187,96,18,5,1,4,9,14,7
- 1170 DATA32,35,32,32,32,32,32,32,32,32
- 1180 DATA32,19,16,5,5,4,32,40,18,16,13
- 1190 DATA41,32,32,32,32,32,32,32,32,32
- 1200 DATA32,32,99,99,99,99,99,99,99,99
- 1210 DATA99,32,32,32,32,32,32,32,32,32
- 1220 DATA99,99,99,99,99,99,99,99,99,99
- 1230 DATA99,32,32,32,32,32,32,32,32,32
- 1240 DATA32,32
- 1250 DATA120,169,0,141,3,28,173,12,28
- 1260 DATA9,34,141,12,28,173,0,28,9,4,141
- 1270 DATA0,28,32,16,245,169,0,141,0,24
- 1280 DATA169,4,44,0,24,208,10,173,0,28
- 1290 DATA41,251,141,0,28,88,96,162,0,202
- 1300 DATA208,253,169,2,141,0,24,208,219
-