10 !----------------------- 20 ! Terminal9 30 !----------------------- 40 OPTION BASE 1 50 CONTROL CRT,100;1 60 CONTROL KBD,203;1 70 CONTROL KBD,204;1 80 CONTROL 9,100;1 90 S=STATUS(9,2) 100 CONTROL 9,0;1 110 CLEAR SCREEN 120 ON ERROR GOSUB Error 130 ON KEY 1 LABEL " BREAK ",14 GOSUB Break 140 ON KEY 2 LABEL " STOP ",14 GOTO Stop 150 ON KBD CALL To_modem 160 ON INTR 9,13 CALL From_modem !Tell BASIC to interrupt 170 ENABLE INTR 9;&HF !Tell interface to interrupt 180 LOOP 190 DISP TIME$(TIMEDATE) !Now free to do something 200 END LOOP !while you wait 210 Error:! 220 PRINT ERRM$,STATUS(9,10) 230 RETURN 240 Stop: ! 250 PRINT 260 PRINT "Terminal9 Stoped." 270 STOP 280 Break:! 290 PRINT ""; 300 CONTROL 9,1;1 310 RETURN 320 END 330 SUB From_modem 340 IF BINAND(STATUS(9,9),6)=6 THEN PRINT "BREAK" 350 WHILE BINAND(STATUS(9,10),1) 360 PRINT CHR$(STATUS(9,6)); !Interface dependent ack. 370 END WHILE 380 ENABLE INTR 9;&HF !re-enable the interrupt 390 SUBEND 400 SUB To_modem 410 Kb$=KBD$ 420 IF LEN(Kb$)>1 THEN 430 IF Kb$[LEN(Kb$)-1;2]=CHR$(255)&"E" THEN 440 OUTPUT 9;"" 450 PRINT "" 460 END IF 470 ELSE 480 OUTPUT 9;Kb$; 490 PRINT Kb$; 500 END IF 510 SUBEND