2002年3月26日 アップロード
関谷KPCトップページへ
作者へのメッセージ
timer program for 発表会 timer.bas ソースプログラム
10000 ' timer program for 卒研発表会 1994.2.14,15, 2002.2.22 kpc 関谷順太
10010 ' TIMER.BAS TIME DISPLAY AND BELL 3 TIMES ,RECORD TIMES
10020 ' TS: 発表時間(分), TP:まとめ時間(発表時間の後半)
10030 ' TQ: 質疑時間(分)
10040 ' BELL 1:TS-TP, 2:TS, 3:TS+TQ (TS+TQ=持ち時間-0.5)
10042 ' File needs "times.dat" for records times
10043 ' 2001.10.5 中間発表会用
10044 ' 2002.2.22 発表会用
10050 'TS=2: TQ=1: TP=1 ' 持ち時 3分の時の例
10052 'TS=4: TQ=1.5: TP=1 ' 持ち時間 6分の時の例
10053 'NIN=2: TS=10: TQ=2: TP=2' 持ち時間12 の例
10054 'NIN=1: TS=5: TQ=2:TP=1' 持ち時間7 分の時の例
10055 ' NIN=1: TS=.5: TQ=.3: TP=.1' 持ち時間2.5 分の時の例
10056 'NIN=1: TS1=10: TQ=5: TP1=3' 持ち時間 一人10 分+質疑は全体で5分の時の例
10057 NIN=1: TS1=2: TQ=1: TP1=1' 持ち時間 一人2 分+質疑は全体で1分の時の例
10058 TS=TS1*NIN: TP=TP1*NIN' 持ち時間 一人TS1 分、TP1分の時の例
10059 '
10060 cls: LOCATE 0,4: INPUT "開始プログラムNO. >";PNO
10062 GOSUB *NEXTP ' next speech wait
10063 ON KEY GOSUB *NEXTP,*START, *QASTART, *QAEND, *kirikae, *ENDP
10070 FOR I=1 TO 6: KEY(I) ON: NEXT I
10110 '
10111 TB1=82800!: TB2=82800!:TB3=82800!:BSW=9
10112 TSS=60*TS: TTS=60*(TS+TQ)
10120 '
10130 CLS
10140 PRINT "TIMER PROGRAM PF1:Prog Number Out , PF2:Start , PF3:QA_Start"
10150 PRINT " PF4:QA End PF5:切替(1-2-3-4), PF6:All Finished"
10151 LOCATE 0,2: PRINT "人数: "; NIN;" 発表時間(分): "; TS;
10152 PRINT " 質疑時間(分): "; TQ
10153 GOSUB *NEXTP: 'LOCATE 0,4: PRINT "プログラムNo.=>"; PNO
10160 '
10170 OPEN "TIMES.DAT" FOR APPEND AS #1
10180 *LOOP
10190 LOCATE 0,13: PRINT "現在時刻 "; TIME$
10200 TM$=TIME$: GOSUB *TMCNV: TIMEC=TIME: print timec; tb1
10205 IF BSW<4 AND WAITST=0 THEN TM=TIME-TIMES: LOCATE 0,15: PRINT USING "残り時間(秒)発表:#### 質疑:####";TSS-TM,TTS-TM:MIN=INT(TM/60):SEC=TM-MIN*60:LOCATE 0,17:PRINT USING"発表開始から: ##分 ##秒";MIN,SEC
10210 'LOCATE 0,4: PRINT "プログラムNo.=>"; PNO
10220 IF TIMEC=>TB1 AND BSW=0 THEN BSW=1: GOSUB *BELL1: GOTO 10250
10230 IF TIMEC=>TB2 AND BSW=1 THEN BSW=2: GOSUB *BELL2: GOTO 10250
10240 IF TIMEC=>TB3 AND BSW=2 THEN BSW=3: GOSUB *BELL3: GOTO 10250
10250 GOTO *LOOP
10260 '
10270 *NEXTP
10280 CLS: TM$=TIME$
10290 PRINT "TIMER PROGRAM PF1:Prog Number Out , PF2:Start , PF3:QA_Start"
10300 PRINT " PF4:QA End PF5:切替(1-2-3-4), PF6:All Finished"
10310 LOCATE 0,4: PRINT "プログラムNo.=>"; PNO
10311 LOCATE 0,2: PRINT "人数: "; NIN;" 発表時間(分): "; TS;
10312 PRINT " 質疑時間(分): "; TQ
10320 TB1=82800!: TB2=82800!:TB3=82800!:BSW=9
10330 WAITST=1: RETURN
10340 '
10350 *START
10355 WAITST=0: BSW=0: QASFLG=0
10360 'TIMES=TIME:TM$=TIME$: TIMEQ=TIMES: TM=TIMES: GOSUB *TMCNV
10361 TM$=TIME$: GOSUB *TMCNV: TIMES=TIME: TM=TIMES:
10370 PRINT #1," ": PRINT #1,USING "No.= ## START TIME @ ";PNO,TM$;
10380 LOCATE 0,6: PRINT "開始時刻 ";TM$
10390 TM=TIMES+TS*60:TB2=TM: GOSUB *TMCNV2: TB2$=TM$
10400 LOCATE 0,8: PRINT "発表終了予定時刻";TM$
10410 TM=TIMES+(TS-TP)*60: TB1=TM: GOSUB *TMCNV2: TB1$=TM$
10420 TM=TIMES+(TS+TQ)*60: TB3=TM: GOSUB *TMCNV2: TB3$=TM$
10430 LOCATE 0,10: PRINT "質疑終了予定時刻";TM$
10435 TIME=TIME-1
10436 LOCATE 0,4: PRINT "プログラムNo.=>"; PNO
10440 RETURN
10450 '
10460 *BELL1
10470 BEEP 1: W=0
10480 FOR I=1 TO 500
10490 W=W+1
10500 NEXT I
10510 BEEP 0
10520 RETURN
10530 '
10540 *BELL2
10550 GOSUB *BELL1:W1=0
10560 FOR I1=1 TO 400
10570 W1=W1+1
10580 NEXT I1
10590 GOSUB *BELL1
10600 RETURN
10610 '
10620 *BELL3
10630 GOSUB *BELL2: W2=0:' print "bell31"
10640 FOR I2=1 TO 900
10650 W2=W2+1
10660 NEXT I2
10680 GOSUB *BELL1: W1=0:' print "bell32"
10690 RETURN
10700 '
10710 *QASTART
10720 TM$=TIME$:TSA$=TM$:GOSUB *TMCNV2:TIMEQ=TIME:TM=TIMEQ-TIMES: GOSUB *TMCNV2: PRINT #1,USING " TSA:@ ";TM$;
10721 LOCATE 30,8: PRINT "TSA: ";TSA$
10730 RETURN
10740 *QAEND
10741 TM$=TIME$:TQA$=TM$:GOSUB *TMCNV2:TIMEE=TIME:TM=TIMEE-TIMEQ: GOSUB *TMCNV2: PRINT #1,USING " TSQ:@ ";TM$;
10751 LOCATE 30,10: PRINT "TQA: ";TQA$
10752 PNO=PNO+1: GOSUB *NEXTP
10760 RETURN
10770 *TMCNV ' TM$ TO TIME (in sec)
10780 H$=LEFT$(TM$,2): HH=VAL(H$)
10790 TMW$=RIGHT$(TM$,5): M$=LEFT$(TMW$,2): MM=VAL(M$)
10800 TMW$=RIGHT$(TMW$,2): SS=VAL(TMW$)
10810 TIME=HH*3600+MM*60+SS ' time to tm
10820 RETURN
10825 *TMCNV2
10830 HH=INT(TM/3600):W$=STR$(HH) :GOSUB *VLAC: H$=WV$
10831 MM=INT((TM-HH*3600)/60): W$=STR$(MM):GOSUB *VLAC: M$=WV$
10832 SS=INT(TM-HH*3600-MM*60):W$=STR$(SS):GOSUB *VLAC: S$=WV$
10840 TM$=" : : ": MID$(TM$,1,2)=H$: MID$(TM$,4,2)=M$: MID$(TM$,7,2)=S$
10850 RETURN
10855 *VLAC
10856 WV$=" ": IF W$<>"0" THEN WV$=RIGHT$(W$,2) ELSE WV$=W$
10857 RETURN
10860 *ENDP
10870 CLOSE #1
10880 KEY(1) OFF:KEY(2) OFF: KEY(3) OFF: KEY(4) OFF: KEY(5) OFF
10890 STOP
10900 *kirikae
10910 nin = nin +1:if nin > 4 then nin =1
10914 TS=TS1*NIN: TP=TP1*NIN
10921 LOCATE 0,2: print " ": LOCATE 0,2:PRINT "人数: "; NIN;" 発表時間(分): "; TS;
10222 PRINT " 質疑時間(分): "; TQ
10930 TSS=60*TS: TTS=60*(TS+TQ)
10940 RETURN