' ' ちゅうけいくん Ver2.2  ' ' 2000/SEP/15 ' for PC98シリーズ (C) JR9MAR ' OUT &H40, 0 WIDTH 80, 25 CLS KEY(10) ON KEY(11) ON KEY(14) ON ON KEY(10) GOSUB QUIT ON KEY(11) GOSUB UP ON KEY(14) GOSUB DOWN TX = 0 SP = 250 ' KEY SPEED パソコンによって、値を増減させる LINE (0, 0)-(434, 15), 5, BF: LINE (435, 0)-(638, 15), 6, BF LOCATE 1, 1: COLOR 0 PRINT " ちゅうけいくん Ver2.2 2000.SEP.15 (C)JR9MAR" GOSUB SPEED COLOR 7 OUTPORT = &H40 ' PC98プリンタ出力ポート OUT OUTPORT, 0 ' 送信停止 MAIN: IF (INP(&H42) AND 4) = 4 THEN GOSUB RX ' BUSY検出 IF (INP(&H42) AND 4) = 0 THEN TX = 1 GOSUB TX END IF GOTO MAIN MAIN2: IF (INP(&H42) AND 4) = 4 THEN GOSUB RX IF (INP(&H42) AND 4) = 0 THEN GOSUB TX GOTO MAIN2: TX: LOCATE 3, 1 COLOR 28 PRINT " 中継中!! "; OUT OUTPORT, 1 IF TX = 1 THEN HUNGSTART = TIMER CWID: 'CW ID 送出ルーチン IF TX = 1 THEN GOSUB CW HUNG = TIMER COLOR 10 PRINT USING " ### "; HUNG - HUNGSTART; COLOR 10 PRINT "秒" IF (INP(&H42) AND 4) = 4 THEN SLEEP 3 ' 送信中に信号が切れた場合は3秒間待つ IF HUNG - HUNGSTART > 599 THEN GOSUB TXSTOP: ' タイムアウト検出 TX = 0 RETURN MAIN2 RX: IF (INP(&H42) AND 4) = 0 THEN GOTO TX ' 信号検出したら送信ルーチンへ OUT OUTPORT, 0 LOCATE 3, 1 COLOR 15 PRINT " 待機中!! "; COLOR 0 PRINT " " COLOR 7 RETURN MAIN TXSTOP: OUT OUTPORT, 0 ' 送信停止 COLOR 2 PRINT "タイムアウトしました!" SLEEP 10 ' 10秒間待つ PRINT " " GOTO MAIN OUT OUTPORT, 0 CW: D$(M) = " -・・ ・ ・--- ・-・ ----・ -- ・- ・-・ " ' ID設定 L = LEN(D$(M)) FOR I = 1 TO L IF MID$(D$(M), I, 1) = "-" THEN GOSUB LON IF MID$(D$(M), I, 1) = "・" THEN GOSUB SHORT IF MID$(D$(M), I, 1) = " " THEN GOSUB SPACE NEXT I FOR J = 1 TO 5000: NEXT J ' 機種によって5000の値を変更する RETURN LON: SOUND 700, 10: OUT &H40, 1 FOR T = 1 TO 34 * SP: NEXT T: SOUND 700, 0: FOR T = 0 TO 8 * SP: NEXT T: RETURN SHORT: SOUND 700, 10: OUT &H40, 1 FOR T = 1 TO 10 * SP: NEXT T: SOUND 700, 0: FOR T = 0 TO 7 * SP: NEXT T: RETURN SPACE: SOUND 0, 2: FOR T = 1 TO 35 * SP: NEXT T: F = 1: RETURN SPEED: LOCATE 1, 30 COLOR 0 PRINT 300 - SP LOCATE 3, 3 RETURN UP: SP = SP - 1 GOTO SPEED: DOWN: SP = SP + 1 GOTO SPEED: QUIT: OUT OUTPORT, 0 CLS COLOR 7, 0 END