10 M$="Adressensuche Rev. E4.7, 15.1.2016" 15 U$="__________________________________________________" 20 LA$=CHR$(10) 30 LI$=LA$ 40 ST%=1 50 EN%=30 60 ESC$=CHR$(27) : ESCY$=ESC$+"Y" : Z%=0 70 DIM A%(2),M%(4),F%(4),P$(2) 80 F%(1)=1 : F%(2)=17 : F%(3)=29 : F%(4)=40 90 M%(1)=1 : M%(2)=8 : M%(3)=17 : M%(4)=37 100 REM Abschlusssequenz schreiben 110 IEC INIT 120 IEC TIMEOUT 1 130 IEC REMOTE 140 FOR I%=ST% TO EN% 150 IEC LASTOUT I%,"",LA$ 160 IEC LASTIN I%,LI$ 170 NEXT I% 200 REM Maske anlegen 210 PRINT CHR$(12) 220 PRINT ESCY$+"Y"+CHR$(53)+CHR$(32); 230 PRINT ESC$+"A2"; 240 PRINT ESCY$+CHR$(53)+CHR$(32)+U$; 245 PRINT ESCY$+CHR$(54)+CHR$(32+F%(1)-1)+"Busadresse"; 250 PRINT ESCY$+CHR$(54)+CHR$(32+F%(2)-1)+"Fehler"; 255 PRINT ESCY$+CHR$(54)+CHR$(32+F%(3)-1)+"Zeile"; 260 PRINT ESCY$+CHR$(54)+CHR$(32+F%(4)-1)+"Status" 265 PRINT CHR$(1)+M$ 270 PRINT ESCY$+CHR$(34)+CHR$(32+M%(1)-1)+"Adr."; 275 PRINT ESCY$+CHR$(34)+CHR$(32+M%(2)-1)+"Poll"; 280 PRINT ESCY$+CHR$(34)+CHR$(32+M%(3)-1)+"ID?"; 290 PRINT ESCY$+CHR$(34)+CHR$(32+M%(4)-1)+"*IDN?" 300 REM Schleife 310 ON ERROR GOTO 1000 320 FOR J%=ST% TO EN% 400 REM Adresse 410 J$=STR$(J%) 420 IF LEFT$(J$,1)=" " THEN J$=RIGHT$(J$,LEN(J$)-1) 430 PRINT ESCY$+CHR$(56)+CHR$(32); 440 PRINT ESC$+"k" 450 PRINT ESCY$+CHR$(56)+CHR$(32+F%(1)-1)+J$ 460 IEC PRINT #J%," " 500 REM Poll 510 IEC CLEAR 520 VMAX=3000 : GOSUB 2000 530 FOR I%=1 to 2 540 A(I%)=-1 550 IEC POLL #J%,A(I%) 560 IF A(I%)<0 THEN P$(I%)="--" ELSE P$(I%)=STR$(A(I%)) 570 IF LEFT$(P$(I%),1)=" " THEN P$(I%)=RIGHT$(P$(I%),LEN(P$(I%))-1) 580 NEXT I% 600 REM ID? 610 T$="ID?" 620 GOSUB 3000 630 A$=C$ 640 IF LEN(A$)>20 THEN A$=LEFT$(A$,20) 700 REM *IDN? 710 T$="*IDN?" 720 GOSUB 3000 730 B$=C$ 800 REM Ausgabe 810 PRINT ESCY$+CHR$(35+Z%)+CHR$(32+M%(1)-1)+J$; 820 PRINT ESCY$+CHR$(35+Z%)+CHR$(32+M%(2)-1)+P$(1)+" "+P$(2); 830 PRINT ESCY$+CHR$(35+Z%)+CHR$(32+M%(3)-1)+A$; 840 PRINT ESCY$+CHR$(35+Z%)+CHR$(32+M%(4)-1)+B$ 850 Z%=Z%+1 860 NEXT J% 900 REM Programmende 910 IEC LOCAL 920 PRINT ESCY$+CHR$(50)+CHR$(32)+"fertig" 930 END 1000 REM Fehlerbehandlung 1010 IEC STATUS S% 1020 PRINT ESCY$+CHR$(56)+CHR$(32+F%(2)-2);ERR; 1030 PRINT ESCY$+CHR$(56)+CHR$(32+F%(3)-2);ERL; 1040 PRINT ESCY$+CHR$(56)+CHR$(32+F%(4)-2);S% 1050 GOSUB 2000 1060 IF ERL>460 GOTO 1100 1070 J%=J%+1 1080 IF J%>EN% GOTO 900 1090 RESUME 400 1100 IF ERL>550 GOTO 1200 1110 P$(1)="--" : P$(2)=P$(1) 1120 RESUME 600 1200 IF ERL>3040 GOTO 1300 1210 IEC CLEAR #J% 1220 GOSUB 2000 1230 RESUME 3070 1300 IEC CLEAR #J% 1310 GOSUB 2000 1320 RESUME 3070 2000 REM Verzögerung 2010 FOR V%=1 TO 1000 2020 NEXT V% 2030 RETURN 3000 REM Identifizierung 3010 C$="" 3020 IEC CLEAR 3030 GOSUB 2000 3040 IEC PRINT #J%,T$ 3050 GOSUB 2000 3060 IEC INPUT #J%,C$ 3070 IF C$="" THEN C$="---" 3080 RETURN 4000 END