10 '"INPORT.100" M100 Port Monitor 20 'Copyright 1985 Peter St.Clair 30 '----------------------------------- 40 'Initialize 50 ONERRORGOTO430:DEFINTA-Z:E$=CHR$(27) 60 GOSUB620 70 '----------------------------------- 80 'Title Screen 90 I$=CHR$(200):GOSUB560:PRINT@281,SPACE$(38);:FORX=201TO161STEP-40:PRINT@X,SPACE$(38);:NEXT 100 PRINT@281,"Hit "E$"pESC"E$"q to Exit or "E$"pANY KEY"E$"q to Continue"; 110 PRINT@125,"Copyright 1985 Peter St.Clair":PRINT@209,"CIS [72217,2346]"; 120 AN=214:PRINT@213,CHR$(234)E$"p "CHR$(234)E$"q";:LINE(79,38)-(112,49),1,B:FORX=1TO50:GOSUB590:I$=INKEY$ 130 IFI$=E$THENMENUELSEIFI$<>""THEN170 140 NEXT 150 '---------------------------------- 160 'Input Screen 170 I$=CHR$(255):GOSUB560:PRINT@281,SPACE$(38);:LINE(79,38)-(112,49),0,B:FORX=201TO121STEP-40:PRINT@X,SPACE$(38);:NEXT 180 PRINT@293,"Hit "E$"pESC"E$"q to Exit"; 190 '---------------------------------- 200 'Get Starting Port 210 PRINT@162,"START @ PORT (0-255): 128 (Default)";:CP=184:ST=CP:LE=3:S1$="" 220 GOSUB460:Z=VAL(S1$):IFZ>255THEN210 230 IFS1$=""THENS1$="128":Z=128:PRINT@ST,E$"p"S1$E$"q"; 240 '---------------------------------- 250 'Get Number of Ports 260 PRINT@202,"# TO MONITOR (1-32): 28 (Default)";:CP=225:ST=CP:LE=2:S1$="" 270 GOSUB460:IFS1$="0"THEN260ELSENP=VAL(S1$) 280 IFNP=0THENS1$="28":NP=28:PRINT@CP,E$"p"S1$E$"q"; 290 IFNP>32THEN260 300 N1=Z+NP:IFN1>255THENNP=256-Z 310 '---------------------------------- 320 'Main Routine 330 CLS:NP=NP-1:PRINT@281,E$"pESC"E$"q = Exit "E$"pSpace"E$"q or "E$"pEnter"E$"q = New Port"; 340 IFNP>27ANDZ<228THENFORX=1TO3000:NEXT:CLS 350 N=Z:FORX=0TONP:IFN>255THENX=32:GOTO380 360 N$=STR$(N):N$=RIGHT$(N$,LEN(N$)-1) 370 PRINT@3-(LEN(N$))+(X*10),"("N$")=";:N=N+1:NEXT 380 I$=INKEY$:IFI$=""THENFORX=0TONP:Q$=STR$(INP(Z+X)):Q$=RIGHT$(Q$,LEN(Q$)-1)ELSE400 390 PRINT@6+(X*10),Q$SPACE$(3-LEN(Q$));:NEXT:GOTO380 400 IFI$=E$THEN60ELSEIFI$=" "ORI$=CHR$(13)THENGOSUB620:GOTO180ELSEGOSUB560:GOTO380 410 '---------------------------------- 420 'Error Trap 430 BEEP:CLS:PRINT@130,"Error"ERR"in line"ERL:FORX=1TO4000:NEXT:RESUME60 440 '---------------------------------- 450 'String Input 460 I$=INKEY$:IFI$=CHR$(13)THENRETURN 470 IFI$=>"0"ANDI$<="9"THENS1$=S1$+I$:PRINT@CP,E$"p"I$E$"q ";:CP=CP+1ELSE490 480 IFLEN(S1$)=LE THEN520ELSE460 490 IFI$=E$THEN90ELSEIFI$=CHR$(8)ORI$=CHR$(29)THENGOSUB530:GOTO460 500 IFI$<>""THENGOSUB560 510 GOTO460 520 RETURN 530 CP=CP-1:IFCP""THENFR=318+(63*ASC(I$)):SOUNDFR,1:RETURNELSERETURN 570 '---------------------------------- 580 'Animated Characters 590 FORI=1TO100:NEXT:PRINT@AN,"";:FORI=1TO2:PRINTE$"p"CHR$(147+INT(RND(1)*2))CHR$(144+INT(RND(1)*2));:NEXT:PRINTE$"q";:RETURN 600 '---------------------------------- 610 'Menu Graphics 620 CLS:PRINT@51,"PORT STATUS MONITOR":LINE(62,5)-(182,17),1,B:LINE(2,1)-(238,53),1,B:RETURN