start: CLS PRINT "Steuerungsprogramm 0.9 SD 7/2003 " PRINT "šbermittlung von Kommandos zun InfraCar-Fahrzeug" PRINT "Fahrzeugnummer 3 Stellig eingeben z.B.010" PRINT "Auswahl: f Sonderfunktionen" PRINT " s Geschwindigkeits„nderung (wie Handsender) " PRINT " g Geschwindigkeit direkt šbertragen" PRINT "ENDE = ESC oder e NOTHALT = Leertaste" PRINT "________________________________________________________________________________" GOSUB fahrzeug: auswahl: a$ = INKEY$ IF a$ = "f" THEN GOTO p1 IF a$ = "s" THEN GOTO p2 IF a$ = "g" THEN GOTO p3 IF a$ = "e" THEN SYSTEM IF a$ = CHR$(27) THEN SYSTEM GOTO auswahl p1: REM **** Sonderfunktionen **** LOCATE 9, 1: PRINT " Zifferntasten setzen 1 - SHIFT Zifferntasten setzen 0" LOCATE 10, 1: PRINT " 8 7 6 5 4 3 2 1 " LOCATE 11, 1: PRINT " links rechts" LOCATE 12, 1: PRINT "Fahrzeug : Code Code Sonder3 Sonder2 Sonder1 Licht Blinker Blinker" LOCATE 14, 13: PRINT "1 0" REM **** Block 1 Sonderfunktonen **** REM ** reset der anzeige *** LOCATE 14, 26: PRINT "0" LOCATE 14, 33: PRINT "0" LOCATE 14, 41: PRINT "0" LOCATE 14, 48: PRINT "0" LOCATE 14, 56: PRINT "0" LOCATE 14, 65: PRINT "0" in1: i$ = INKEY$ IF i$ = "" THEN GOTO in1 REM *** CODE fr Sonderfunktionen *** bit8 = 128 bit7 = 0 REM *** Tastenabfrage *** IF i$ = "6" THEN bit6 = 32: LOCATE 14, 26: PRINT "1" IF i$ = "5" THEN bit5 = 16: LOCATE 14, 33: PRINT "1" IF i$ = "4" THEN bit4 = 8: LOCATE 14, 41: PRINT "1" IF i$ = "3" THEN bit3 = 4: LOCATE 14, 48: PRINT "1" IF i$ = "2" THEN bit2 = 2: LOCATE 14, 56: PRINT "1" IF i$ = "1" THEN bit1 = 1: LOCATE 14, 65: PRINT "1" IF i$ = "&" THEN bit6 = 0: LOCATE 14, 26: PRINT "O" IF i$ = "%" THEN bit5 = 0: LOCATE 14, 33: PRINT "O" IF i$ = "$" THEN bit4 = 0: LOCATE 14, 41: PRINT "O" IF i$ = "ő" THEN bit3 = 0: LOCATE 14, 48: PRINT "O" IF i$ = CHR$(34) THEN bit2 = 0: LOCATE 14, 56: PRINT "O" IF i$ = "!" THEN bit1 = 0: LOCATE 14, 65: PRINT "O" REM *** zusammensetzten der BITS *** bits = bit8 + bit7 + bit6 + bit5 + bit4 + bit3 + bit2 + bit1 REM *** anzeige der Daten *** LOCATE 17, 10: PRINT "Adresse1 Adresse2 Daten in Dezimal" LOCATE 18, 15: PRINT fzs1 LOCATE 18, 20: PRINT fzs2 LOCATE 18, 28: PRINT bits LOCATE 19, 10: PRINT "Adresse1 Adresse2 Daten in HEX" LOCATE 20, 15: PRINT HEX$(fzs1) LOCATE 20, 20: PRINT HEX$(fzs2) LOCATE 20, 28: PRINT HEX$(bits) GOSUB senden REM *** Tastenabfrage ENDE *** IF i$ = "e" THEN GOTO Ende IF i$ = CHR$(27) THEN GOTO Ende IF i$ = CHR$(32) THEN GOSUB nothalt REM **** Schleife in diesem Block *** IF i$ <> CHR$(32) THEN GOTO in1 p2: REM **** Block 2 Geschwindigkeit **** LOCATE 9, 1: PRINT " Zifferntasten setzen 1" LOCATE 10, 1: PRINT " 5 4 3 2 1 0 " LOCATE 12, 1: PRINT " stark stark keine " LOCATE 13, 1: PRINT "Fahrzeug : Code schneller schneller bremsen bremsen Žnderung Stop" LOCATE 14, 13: PRINT "11000 |" in2: i$ = INKEY$ IF i$ = "" THEN GOTO in2 bit1 = 0 bit2 = 0 bit3 = 0 bit4 = 0 bit5 = 0 bit6 = 0 LOCATE 14, 26: PRINT "0" LOCATE 14, 33: PRINT "0" LOCATE 14, 42: PRINT "0" LOCATE 14, 50: PRINT "0" LOCATE 14, 60: PRINT "0" LOCATE 14, 69: PRINT "0" REM *** code fr geschwindigkeit *** bit8 = 128 bit7 = 64 REM *** tastenabfrage *** IF i$ = "5" THEN bit6 = 5: LOCATE 14, 26: PRINT "1" IF i$ = "4" THEN bit5 = 4: LOCATE 14, 33: PRINT "1" IF i$ = "3" THEN bit4 = 3: LOCATE 14, 42: PRINT "1" IF i$ = "2" THEN bit3 = 2: LOCATE 14, 50: PRINT "1" IF i$ = "1" THEN bit2 = 1: LOCATE 14, 60: PRINT "1" IF i$ = "0" THEN bit1 = 0: LOCATE 14, 69: PRINT "1" REM *** bits zusammensetzen *** bits = bit8 + bit7 + bit6 + bit5 + bit4 + bit3 + bit2 + bit1 REM *** Ausgabe der Daten *** LOCATE 17, 10: PRINT "Adresse1 Adresse2 Daten" LOCATE 18, 15: PRINT fzs1 LOCATE 18, 20: PRINT fzs2 LOCATE 18, 28: PRINT bits LOCATE 19, 10: PRINT "Adresse1 Adresse2 Daten in HEX" LOCATE 20, 15: PRINT HEX$(fzs1) LOCATE 20, 20: PRINT HEX$(fzs2) LOCATE 20, 28: PRINT HEX$(bits) REM **** senden der Daten **** OPEN "cartest.txt" FOR APPEND AS #1 PRINT #1, CHR$(fzs1); CHR$(fzs2); CHR$(bits) CLOSE #1 OPEN "COM1:2400,N,8,1,CD0,CS0,DS0,OP0,RS" FOR RANDOM AS #1 PRINT #1, CHR$(fzs1); CHR$(fzs2); CHR$(bits) CLOSE #1 IF i$ = "e" THEN GOTO Ende IF i$ = CHR$(27) THEN GOTO Ende IF i$ = CHR$(32) THEN GOSUB nothalt REM *** schleifen dieses Blocks *** IF i$ <> CHR$(32) THEN GOTO in2 p3: REM **** Block 3 Geschwindigkeit direkt **** LOCATE 10, 1: PRINT " Zifferntasten setzen 1 SHIFT und Zifferntaste setzt 0" LOCATE 11, 1: PRINT " 8 7 6 5 4 3 2 1 " LOCATE 12, 1: PRINT "Fahrzeug : Code Code Bit6 Bit5 Code Bit3 Bit2 Bit1 " LOCATE 14, 13: PRINT "1 1" LOCATE 14, 41: PRINT "1" LOCATE 14, 3: PRINT fz; " " LOCATE 14, 26: PRINT "O" LOCATE 14, 33: PRINT "O" LOCATE 14, 48: PRINT "O" LOCATE 14, 56: PRINT "O" LOCATE 14, 65: PRINT "O" kmh = 0 kmh1 = 0 kmh2 = 0 kmh3 = 0 kmh4 = 0 kmh5 = 0 in3: i$ = INKEY$ IF i$ = "" THEN GOTO in3 REM *** code Geschwindigkeit *** bit8 = 128 bit7 = 64 REM *** tastenabfrage *** IF i$ = "6" THEN bit6 = 32: kmh5 = 16: LOCATE 14, 26: PRINT "1" IF i$ = "5" THEN bit5 = 16: kmh4 = 8: LOCATE 14, 33: PRINT "1" bit4 = 8: LOCATE 14, 41: PRINT "1" IF i$ = "3" THEN bit3 = 4: kmh3 = 4: LOCATE 14, 48: PRINT "1" IF i$ = "2" THEN bit2 = 2: kmh2 = 2: LOCATE 14, 56: PRINT "1" IF i$ = "1" THEN bit1 = 1: kmh1 = 1: LOCATE 14, 65: PRINT "1" IF i$ = "&" THEN bit6 = 0: kmh5 = 0: LOCATE 14, 26: PRINT "O" IF i$ = "%" THEN bit5 = 0: kmh4 = 0: LOCATE 14, 33: PRINT "O" IF i$ = "ő" THEN bit3 = 0: kmh3 = 0: LOCATE 14, 48: PRINT "O" IF i$ = CHR$(34) THEN bit2 = 0: kmh2 = 0: LOCATE 14, 56: PRINT "O" IF i$ = "!" THEN bit1 = 0: kmh1 = 0: LOCATE 14, 65: PRINT "O" REM *** zusammensetzten der bits *** bits = bit8 + bit7 + bit6 + bit5 + bit4 + bit3 + bit2 + bit1 kmh = kmh5 + kmh4 + kmh3 + kmh2 + kmh1 pro = INT((kmh) / .309) LOCATE 17, 10: PRINT "Adresse1 Adresse2 Daten in Dezimal Geschw. %" LOCATE 18, 15: PRINT fzs1 LOCATE 18, 20: PRINT fzs2 LOCATE 18, 28: PRINT bits LOCATE 18, 47: PRINT kmh LOCATE 18, 55: PRINT pro LOCATE 19, 10: PRINT "Adresse1 Adresse2 Daten in HEX" LOCATE 20, 15: PRINT HEX$(fzs1) LOCATE 20, 20: PRINT HEX$(fzs2) LOCATE 20, 28: PRINT HEX$(bits) OPEN "cartest.txt" FOR APPEND AS #1 PRINT #1, CHR$(fzs1); CHR$(fzs2); CHR$(bits) CLOSE #1 OPEN "COM1:2400,N,8,1,CD0,CS0,DS0,OP0,RS" FOR RANDOM AS #1 PRINT #1, CHR$(fzs1); CHR$(fzs2); CHR$(bits) CLOSE #1 IF i$ = "e" THEN GOTO Ende IF i$ = CHR$(27) THEN GOTO Ende IF i$ = CHR$(32) THEN GOSUB nothalt IF i$ <> CHR$(32) THEN GOTO in3 Ende: GOTO start fahrzeug: f1: fza$ = INKEY$ IF fza$ = "" THEN GOTO f1 fza = VAL(fza$) * 100 LOCATE 14, 3: PRINT fza f2: fzb$ = INKEY$ IF fzb$ = "" THEN GOTO f2 fzb = VAL(fzb$) * 10 LOCATE 14, 3: PRINT fzb f3: fzc$ = INKEY$ IF fzc$ = "" THEN GOTO f3 fzc = VAL(fzc$) fz = fza + fzb + fzc IF fza > 127 THEN PRINT "xxx": GOTO f1 LOCATE 14, 3: PRINT fzc LOCATE 14, 3: PRINT fz; " " REM *** Setzen der Fahrzeugadresse *** mit 2 BYTE *** IF fz < 64 THEN fzs1 = fz: fzs2 = 64 IF fz > 63 THEN fzs1 = 0: fzs2 = fz + 1 RETURN senden: REM **** bermitteln der Daten an Ausgang **** OPEN "cartest.txt" FOR APPEND AS #1 PRINT #1, CHR$(fzs1); CHR$(fzs2); CHR$(bits); CHR$(bits), TIME$ CLOSE #1 OPEN "COM1:2400,N,8,1,CD0,CS0,DS0,OP0,RS" FOR RANDOM AS #1 PRINT #1, CHR$(fzs1); CHR$(fzs2) CLOSE #1 RETURN nothalt: REM **** NOTSTOP bermitteln der Daten an Ausgang **** OPEN "cartest.txt" FOR APPEND AS #1 PRINT #1, CHR$(1); CHR$(64); CHR$(240), TIME$, "Nothalt" CLOSE #1 OPEN "COM1:2400,N,8,1,CD0,CS0,DS0,OP0,RS" FOR RANDOM AS #1 PRINT #1, CHR$(1); CHR$(64); CHR$(240) CLOSE #1 RETURN