1 ! COMPAR.BAS 2 EXTEND : INTEGER 10 PRINT CHR$(12);'Com-card parameter setup' 20 PRINT 'Select card number (0-3) ? '; 30 GET I$ 40 IF I$<'0' OR I$>'3' THEN I$='0' 50 PUT I$ 60 CD 'NETCEN' 70 F$='COMPAR'+I$+'.BIN' 80 OPEN F$ AS FILE 1 90 GET #1,A$ COUNT 1012 100 CLOSE 1 101 PRINT ' Service nummer (0-2) ? '; 102 PRINT CUR(1,54); 104 GET I$ 105 IF ASCII(I$)=13 OR ASCII(I$)=192 GOTO 990 106 IF I$<'0' OR I$>'2' THEN I$='0' 107 PUT I$ 108 C=385+64*(ASCII(I$)-48) 110 ; : ; : ; 'Service name' 120 ; 'Poll address and xid' 130 ; : ; "Definition av linjeparametrar" 140 ; "Linje typer:" 150 ; " 0 Fast eller manuellt uppkopplad linje" 160 ; " 1 RS232 Automatsvar - DTE" 170 ; " 2 RS232 Automatsvar - DCE" 180 ; " 3 RS232 Automatuppringning/Automatsvar - DTE" 190 ; " 4 RS232 Automatuppringning/Automatsvar - DCE" 200 ; " 5 X21 Automatuppringning/Automatsvar" 210 ; " V{lj linjetyp................................. :" : ; 220 ; "RTS h|g :" 230 ; "Avbryt vid tappad b{rv}g :" 240 ; '"Auto enables" off :' 250 ; "Uppkoppling vid procedurstart :" 260 ; "Automatisk avslutning vid nerkoppling :" 270 ; 280 ; "Telefonnummer :" 310 PRINT CUR(3,24) MID$(A$,C+17,ASCII(RIGHT$(A$,C+16)))+SPACE$(31-ASCII(RIGHT$(A$,C+16))) 320 FOR I=0 TO 15 330 J=FNX2(C+I,4,I*3+24) 340 NEXT I 350 A=ASCII(MID$(A$,C+48,1)) 360 I$=CHR$((A AND 7)+48) 370 PRINT CUR(14,51) I$ 380 FOR L=0 TO 4 390 I=FNB1(FNM(L),L+16,51) 400 NEXT L 405 PRINT CUR(22,51) SPACE$(15) 410 PRINT CUR(22,51) MID$(A$,C+49,15) 420 I$=CHR$((A AND 7)+48) 430 I=1 440 PRINT CUR(3,I+23); 450 GET I$ 460 J=ASCII(I$) 461 IF J=192 GOTO 980 462 IF J=196 THEN GOTO 840 463 IF J=198 GOTO 500 470 IF J<32 OR J>127 THEN J=0 : I$=' ' 480 PUT I$+SPACE$(32-I) 485 MID$(A$,C+16+I,32-I)=I$+SPACE$(31-I) 487 MID$(A$,C+16,1)=CHR$(I) 490 I=I+1 : IF I<32 THEN GOTO 440 500 I=0 510 J=FNX1(C+I,4,I*3+24) 520 IF J=0 THEN I=I+1 : IF I<16 GOTO 510 ELSE GOTO 560 530 IF J=192 THEN GOTO 980 540 IF J=196 THEN I=I-1 : IF I>=0 GOTO 510 ELSE GOTO 430 550 IF J=198 THEN I=I+1 : IF I<16 GOTO 510 ELSE GOTO 560 560 PRINT CUR(14,51); 570 GET I$ COUNT 1 580 I=ASCII(I$) 590 IF I>47 AND I<54 GOTO 650 600 IF I=192 GOTO 980 610 IF I=247 I=FNP4 : GOTO 420 620 IF I=196 THEN I=15 : GOTO 510 630 IF I=198 GOTO 670 640 PRINT CHR$(7) : GOTO 420 650 A=(A AND 248)+I-48 660 PRINT CUR(14,51) I$ 670 L=0 680 B=FNM(L) 690 I=FNB1(B,L+16,51) 700 PRINT CUR(L+16,51); 710 GET I$ COUNT 1 720 IF I$="j" OR I$="J" A=(A OR B) : I$="J" : GOTO 810 730 IF I$="n" OR I$="N" A=(A AND (255-B)) : I$="N" : GOTO 810 740 I=ASCII(I$) 750 IF I=192 GOTO 980 760 IF I=247 I=FNP4 : GOTO 710 770 IF I=198 GOTO 820 780 IF I<>196 PRINT CHR$(7); : GOTO 710 790 L=L-1 800 IF L<0 GOTO 560 ELSE GOTO 680 810 PRINT CUR(L+16,51) I$ 820 L=L+1 830 IF L<=4 GOTO 680 840 L=1 870 PRINT CUR(22,L+50); 880 GET I$ 890 IF I$<'0' OR I$>'9' GOTO 930 900 PUT I$+SPACE$(15-L) 920 MID$(A$,C+48+L,16-L)=I$+'+'+SPACE$(14-L) : L=L+1 : GOTO 870 930 I=ASCII(I$) 940 IF I=196 THEN L=4 : GOTO 680 950 IF I=198 THEN GOTO 430 960 IF I=247 THEN I=FNP4 : GOTO 870 970 IF I<>192 THEN PRINT CHR$(7) : GOTO 870 980 MID$(A$,C+48,1)=CHR$(A) 985 GOTO 102 990 OPEN F$ AS FILE 1 992 PUT #1,A$ 994 CLOSE 1 997 CD '' 998 PRINT CUR(23,0) 999 END 1000 DEF FNB1(K,X,Y) 1010 I=(A AND K) 1020 IF I THEN I$="J" ELSE I$="N" 1030 PRINT CUR(X,Y) I$ 1040 RETURN 0 1050 FNEND 1060 DEF FNM(K) 1070 X=8 1080 IF K=0 GOTO 1120 1090 FOR I=1 TO K 1100 X=X*2 1110 NEXT I 1120 RETURN X 1130 FNEND 1140 DEF FNP4 1150 OPEN "pr:" AS FILE 3 1160 S4=30720 1170 FOR R4=1 TO 24 1180 P4$="" 1190 T4=1 1200 FOR C4=1 TO 80 1210 Q4=PEEK(S4) 1220 S4=S4+1 1230 P4$=P4$+CHR$(Q4) 1240 IF Q4<>32 T4=C4 1250 NEXT C4 1260 P4$=LEFT$(P4$,T4) 1270 ; #3 P4$ 1280 NEXT R4 1290 ; #3 CHR$(12) 1300 CLOSE 3 1310 RETURN 0 1320 FNEND 1330 DEF FNX1(I,X,Y) 1340 ! input of hexadecimal value (2 bytes) in location x,y 1350 ! insert updated value a$(i) 1360 ! if function key is depressed return is made with function key-code 1370 ! else return is made with a zero result 1380 I3=ASCII(MID$(A$,I,1)) 1390 I1=I3/16 1400 I2=I3 AND 15 1410 PRINT CUR(X,Y); 1420 GET I$ COUNT 1 1430 F1=ASCII(I$) : I3=F1-48 1440 IF F1>96 AND F1<125 THEN F1=F1-32 : I$=CHR$(F1) : I3=I3-32 1450 IF I3>128 GOTO 1650 1460 IF I3<0 PRINT CHR$(7); : GOTO 1420 1470 IF I3<10 GOTO 1510 1480 IF I3<17 PRINT CHR$(7); : GOTO 1420 1490 I3=I3-7 1500 IF I3>15 PRINT CHR$(7); : GOTO 1420 1510 PRINT I$; : I1=I3 1520 MID$(A$,I,1)=CHR$(I1*16+I2) 1530 GET I$ COUNT 1 1540 F1=ASCII(I$) : I3=F1-48 1550 IF F1>96 AND F1<125 THEN F1=F1-32 : I$=CHR$(F1) : I3=I3-32 1560 IF I3>128 GOTO 1650 1570 IF I3<0 PRINT CHR$(7); : GOTO 1530 1580 IF I3<10 GOTO 1620 1590 IF I3<17 PRINT CHR$(7); : GOTO 1530 1600 I3=I3-7 1610 IF I3>15 PRINT CHR$(7); : GOTO 1530 1620 PRINT I$; : I2=I3 1630 MID$(A$,I,1)=CHR$(I1*16+I2) 1640 F1=0 1650 RETURN F1 1660 FNEND 1670 DEF FNX2(I,X,Y) 1680 ! printout existing value from a$(i) in position x,y 1690 I3=ASCII(MID$(A$,I,1)) 1700 I1=I3/16+48 1710 I2=(I3 AND 15)+48 1720 IF I1>57 THEN I1=I1+7 1730 IF I2>57 THEN I2=I2+7 1740 PRINT CUR(X,Y) CHR$(I1);CHR$(I2); 1750 RETURN 0 1760 FNEND