start: CLOSE OPEN "COM1:2400,N,8,1,CD0,CS0,DS0,OP0,RS" FOR RANDOM AS #1 OPEN "cartest.txt" FOR APPEND AS #2 DIM fzadr(128), fzdat(128), fzkm(128) CLS LOCATE 1, 1: PRINT "Zeitsteuerungsprogramm 0.6 SD 7/2003" LOCATE 2, 1: PRINT "--------------------------------------------------------------------------------" LOCATE 3, 20: PRINT "Fahrzeugnummer 3 Stellig eingeben:" LOCATE 4, 35: PRINT "Ziffern 0-9" LOCATE 6, 15: PRINT "Sonderfunktionen des gew„hlten Fahrzeugs bedienen:" LOCATE 7, 15: PRINT " q w e r t z " LOCATE 8, 15: PRINT "Rechts Links Beleuchtung Einsatz Weiteres Sonder" LOCATE 10, 30: PRINT "Geschwindigkeit:" LOCATE 11, 25: PRINT "+ Schneller bis 100% " LOCATE 12, 25: PRINT "* beschleunigen" LOCATE 13, 25: PRINT "Leertaste Stop" LOCATE 14, 25: PRINT "ENTER konstant weiter" LOCATE 15, 25: PRINT "v verlangsamen" LOCATE 16, 25: PRINT "/ langsamer bis 0%" LOCATE 18, 30: PRINT "NOTAUS: ESC" LOCATE 19, 1: PRINT "--------------------------------------------------------------------------------" schleife1: i$ = INKEY$ IF i$ = CHR$(27) THEN GOSUB notaus: INPUT "weiter", q$: IF q$ = CHR$(27) THEN STOP ELSE GOTO start IF i$ = "" GOTO schleife1: GOTO schleife1 IF i$ = "q" OR i$ = "w" OR i$ = "e" OR i$ = "r" OR i$ = "t" OR i$ = "z" THEN GOSUB sonder: GOTO schleife1 IF i$ = CHR$(13) THEN GOSUB konstant: GOTO schleife1 IF i$ = "+" THEN GOSUB voll: GOTO schleife1 IF i$ = CHR$(32) THEN GOSUB halt: GOTO schleife1 IF i$ = "-" THEN GOSUB null: GOTO schleife1 IF i$ = "*" THEN GOSUB geschw: GOTO schleife1 IF i$ = "/" THEN GOSUB geschw: GOTO schleife1 IF i$ >= "0" OR i$ <= "9" THEN GOSUB fahrzeug: GOTO schleife1 GOTO schleife1 fahrzeug: REM *** Fahrzeugziffer ermitteln *** LOCATE 21, 35: PRINT " " fz = VAL(i$) * 100 IF fz > 127 THEN LOCATE 21, 35: PRINT "Fehler:" LOCATE 20, 30: PRINT " "; i$; " " schleife2: fz$ = INKEY$ IF fz$ = CHR$(27) THEN GOTO notaus IF fz$ = "" GOTO schleife2 IF fz$ < "0" OR fz$ > "9" THEN RETURN fz = fz + VAL(fz$) * 10 IF fz > 127 THEN LOCATE 21, 35: PRINT "Fehler:" LOCATE 20, 34: PRINT " "; fz$; " " schleife3: fz$ = INKEY$ IF fz$ = CHR$(27) THEN GOTO notaus IF fz$ = "" GOTO schleife3 IF fz$ < "0" OR fz$ > "9" THEN RETURN fz = fz + VAL(fz$) IF fz > 127 THEN LOCATE 21, 35: PRINT "Fehler:" LOCATE 20, 39: PRINT " "; fz$; " " RETURN sonder: REM **** Funktionen bermitteln der Daten an Ausgang **** aktion$ = "Funktion" dat8 = 128 dat7 = 0 IF i$ = "q" THEN IF F1 = 1 THEN F1 = 0 ELSE F1 = 1: i$ = "" IF i$ = "w" THEN IF F2 = 1 THEN F2 = 0 ELSE F2 = 1: i$ = "" IF i$ = "e" THEN IF F3 = 1 THEN F3 = 0 ELSE F3 = 1: i$ = "" IF i$ = "r" THEN IF F4 = 1 THEN F4 = 0 ELSE F4 = 1: i$ = "" IF i$ = "t" THEN IF F5 = 1 THEN F5 = 0 ELSE F5 = 1: i$ = "" IF i$ = "z" THEN IF F6 = 1 THEN F6 = 0 ELSE F6 = 1: i$ = "" IF F1 = 1 THEN dat1 = 1 ELSE dat1 = 0 IF F2 = 1 THEN dat2 = 2 ELSE dat2 = 0 IF F3 = 1 THEN dat3 = 4 ELSE dat3 = 0 IF F4 = 1 THEN dat4 = 8 ELSE dat4 = 0 IF F5 = 1 THEN dat5 = 16 ELSE dat5 = 0 IF F6 = 1 THEN dat6 = 32 ELSE dat6 = 0 GOSUB ausgabe: RETURN geschw: REM **** Geschwindigkeit bermitteln der Daten an Ausgang **** aktion$ = "Geschwindigkeit" dat8 = 128 dat7 = 64 dat6 = 0 dat5 = 0 dat4 = 8 dat3 = 0 dat2 = 0 dat1 = 0 IF i$ = "*" THEN IF km < 31 THEN km = km + 1: IF i$ = "/" THEN IF km > 0 THEN km = km - 1: IF km < 8 THEN dat1 = km: dat6 = 0: dat5 = 0 IF km > 7 AND km < 16 THEN dat1 = km - 8: dat6 = 0: dat5 = 16 IF km > 15 AND km < 24 THEN dat1 = km - 16: dat6 = 32: dat5 = 0 IF km > 23 THEN dat1 = km - 24: dat6 = 32: dat5 = 16 GOSUB ausgabe: RETURN voll: REM **** Beschleunigen bermitteln der Daten an Ausgang **** aktion$ = "beschleunigen" dat8 = 128 dat7 = 64 dat6 = 0 dat5 = 0 dat4 = 0 dat3 = 4 dat2 = 0 dat1 = 1 GOSUB ausgabe: RETURN null: REM **** verz”gern bermitteln der Daten an Ausgang **** aktion$ = "verz”gern" dat8 = 128 dat7 = 64 dat6 = 0 dat5 = 0 dat4 = 0 dat3 = 0 dat2 = 2 dat1 = 0 GOSUB ausgabe: RETURN konstant: REM **** konstant bermitteln der Daten an Ausgang **** aktion$ = "Konstant" dat8 = 128 dat7 = 64 dat6 = 0 dat5 = 0 dat4 = 0 dat3 = 0 dat2 = 0 dat1 = 1 GOSUB ausgabe: RETURN halt: REM **** Halt bermitteln der Daten an Ausgang **** aktion$ = "Halt" dat8 = 128 dat7 = 64 dat6 = 0 dat5 = 0 dat4 = 0 dat3 = 0 dat2 = 0 dat1 = 0 GOSUB ausgabe: RETURN notaus: REM **** NOTSTOP bermitteln der Daten an Ausgang **** aktion$ = "Notaus" dat8 = 128 dat7 = 64 dat6 = 32 dat5 = 16 dat4 = 0 dat3 = 0 dat2 = 0 dat1 = 0 GOSUB ausgabe RETURN ausgabe: IF fz < 64 THEN adr1 = fz ELSE adr1 = 0 IF fz >= 64 THEN adr2 = fz + 1 ELSE adr2 = 64 dat = dat8 + dat7 + dat6 + dat5 + dat4 + dat3 + dat2 + dat1 LOCATE 20, 30: PRINT " Fahrzeug Nr:"; fz; " "; TAB(70); adr1; adr2 LOCATE 21, 30: PRINT " Geschwindigkeit:"; km; LOCATE 22, 30: PRINT " Funktionen :"; F1; F2; F3; F4; F5; F6, TAB(70); dat LOCATE 23, 30: PRINT " "; aktion$; " " PRINT #2, CHR$(adr1); CHR$(adr2); CHR$(dat), TIME$, aktion$ PRINT #1, CHR$(adr1); CHR$(adr2); CHR$(dat) RETURN