10 REM Lade den Interface-Treiber in den Speicher ab &HFF00 20 REM Interface für den IBM-PC 30 REM Copyright (C) fischerwerke 1986 40 REM 50 CLEAR ,&HFF00 60 DEF SEG 70 DEF USR=&HFF50 80 BLOAD"INTERFAC.COM",&HFF00 100 DEFINT E,R,L,A 110 S=7 : H=0 : R=0 120 COLOR S,H,R 130 SCREEN 0,1 : WIDTH 80 140 PRINT" fischertechnik" 150 PRINT" computing" 160 PRINT 170 REM Anbindung des Assembler-Teils wie in allen anderen .BAS 180 REM Programmen auch 190 REM 200 F$=INKEY$:KEY 1,"LIST ":KEY 3,"LOAD"+CHR$(34) 210 KEY 5,"CONT"+CHR$(13):KEY 7,"TRON"+CHR$(13) 300 INIT=&HFF00:M1=INIT+6:M2=M1+4:M3=M2+4:M4=M3+4 310 E1=1:E2=2:E3=4:E4=8 320 E5=16:E6=32:E7=64:E8=128 330 EX=160:EY=144 : REM EX (1010 0000) EY (1001 0000) 340 EIN=85:RECHTS=85:LINKS=170:AUS=255 500 CALL INIT 510 REM 520 REM fischertechnik computing 530 REM 540 REM Erweiterte Plotter-Diagnose 550 REM 560 REM Copyright (C) Matthias Dettmer 2026 570 REM 580 REM Funktionstasten belegen: 590 REM 600 KEY 1,"L" : REM LINKS 610 KEY 2,"X" : REM X-Richtung 620 KEY 3,"Y" : REM Y-Richtung 630 KEY 4,"R" : REM RECHTS 640 KEY 5,"1" : REM 1/4 Schritt 650 KEY 6,"C" : REM Centimeter 660 KEY 7,"" : REM nix 670 KEY 8,"4" : REM 4/4 Schritt 680 KEY 9,"O" : REM Stift oben 690 KEY 10,"U" : REM Stift unten 1000 CLS 1010 LOCATE 2,1 1020 PRINT" fischertechnik computing Plotterdiagnose (C) MUD2026-02-05" 1040 PRINT 1070 PRINT" Schrittmotorsteuerung " 1080 PRINT 1100 REM *** Initialisierung *** 1110 LET RICHT$="R":LET ACHSE$="X" 1120 LET STIFT$="O":LET ANZST=1 1130 LET SCHRITT=1 1220 REM 1230 REM Ab hier Abfrage der Funktionstasten und direkte Aktion 1240 REM 1250 A$=INKEY$ 1255 IF A$=" " THEN GOTO 4000 1260 IF A$="l" OR A$="L" THEN RICHT$="L" : GOTO 1300 1265 IF A$="r" OR A$="R" THEN RICHT$="R" : GOTO 1300 1270 IF A$="y" OR A$="Y" THEN ACHSE$="Y" : GOTO 1300 1275 IF A$="x" OR A$="X" THEN ACHSE$="X" : GOTO 1300 1280 IF A$="o" OR A$="O" THEN STIFT$="O": GOSUB 2000 : GOTO 1300 1285 IF A$="u" OR A$="U" THEN STIFT$="U": GOSUB 2010 : GOTO 1300 1290 IF A$="c" OR A$="C" THEN ANZST = 102 : GOTO 1350 1300 IF A$="1" THEN ANZST = 1 : GOTO 1350 1310 IF A$="4" THEN ANZST = 4 : GOTO 1350 1320 A$ = "" : GOSUB 3800 : GOSUB 3850 : REM Ausgeben der Ist-Einstellungen 1325 IF ENDEX=0 OR ENDEY=0 THEN GOTO 4000 1330 GOTO 1250 1350 FOR GEHMAL = 1 TO ANZST 1360 GOSUB 1400 1370 NEXT GEHMAL 1380 GOTO 1250 1400 REM *** Ein Schritt *** 1410 IF RICHT$ = "R" THEN SPIN = 1 :GOTO 1500 1420 IF RICHT$ = "L" THEN SPIN = -1 : GOTO 1520 1430 REM Weder Links noch rechts: nix tun ! 1440 RETURN 1500 IF SCHRITT < 4 THEN SCHRITT = SCHRITT + 1 ELSE SCHRITT = 1 1510 GOTO 1530 1520 IF SCHRITT < 2 THEN SCHRITT = 4 ELSE SCHRITT = SCHRITT - 1 1530 ON SCHRITT GOSUB 1600,1700,1800,1900 1535 GOSUB 3850 1540 FOR W = 1 TO 24000 : NEXT W 1545 CALL M1(AUS) : CALL M2(AUS) : CALL M3(AUS) 1550 RETURN 1600 REM Schritt 1 1610 1620 IF ACHSE$ = "X" THEN CALL M1(RECHTS) : CALL M2(RECHTS) : XPOS = XPOS + SPIN 1630 IF ACHSE$ = "Y" THEN CALL M1(RECHTS) : CALL M3(RECHTS) : YPOS = YPOS + SPIN 1640 RETURN 1700 REM Schritt 2 1710 1720 IF ACHSE$ = "X" THEN CALL M1(LINKS) : CALL M2(RECHTS) : XPOS = XPOS + SPIN 1730 IF ACHSE$ = "Y" THEN CALL M1(RECHTS) : CALL M3(LINKS) : YPOS = YPOS + SPIN 1740 RETURN 1800 REM Schritt 3 1810 1820 IF ACHSE$ = "X" THEN CALL M1(LINKS) : CALL M2(LINKS) : XPOS = XPOS + SPIN 1830 IF ACHSE$ = "Y" THEN CALL M1(LINKS) : CALL M3(LINKS) : YPOS = YPOS + SPIN 1840 RETURN 1900 REM Schritt 4 1910 1920 IF ACHSE$ = "X" THEN CALL M1(RECHTS) : CALL M2(LINKS) : XPOS = XPOS + SPIN 1930 IF ACHSE$ = "Y" THEN CALL M1(LINKS) : CALL M3(RECHTS) : YPOS = YPOS + SPIN 1940 RETURN 2000 IF STIFT$ = "O" THEN CALL M4(AUS) : RETURN : REM Stift oben , Magnet aus 2010 IF STIFT$ = "U" THEN CALL M4(EIN) : RETURN : REM Stift unten , Magnet an 3800 LOCATE 23,1:PRINT RICHT$; 3805 LOCATE 23,8:PRINT ACHSE$; 3810 LOCATE 23,16:PRINT ACHSE$; 3815 LOCATE 23,24:PRINT RICHT$; 3820 LOCATE 23,32:PRINT ANZST; 3825 LOCATE 23,40:REM leer 3830 LOCATE 23,48:REM leer 3835 LOCATE 23,56:PRINT ANZST; 3840 LOCATE 23,64:PRINT STIFT$; 3845 RETURN 3850 LOCATE 24,1:PRINT XPOS; 3955 LOCATE 24,8:PRINT YPOS; 3960 LOCATE 24,16: ENDEX=USR(E7) : PRINT "EndeX ";ENDEX; 3965 LOCATE 24,24: ENDEY=USR(E8) : PRINT "EndeY ";ENDEY; 3990 RETURN 4000 CALL M1(AUS) 4010 CALL M2(AUS) 4020 CALL M3(AUS) 4030 CALL M4(AUS) 4040 END