TI-Basic: Programme und Tutorials: CHAT 2.0

Aus Wikibooks

von Michi 89


Dieses Programm soll eine einfache Kommunikation zwischen zwei Rechnern aufzeigen. Es werden keinerlei Vorkenntnisse benötigt. Lassen Sie sich bitte nicht von der Länge des Codes abschrecken, denn im Grunde ist er sehr einfach!
Es werden zwei TI 89 Plus und ein MiniUSB-Kabel benötigt.

Vorbereitung[Bearbeiten]

Es werden drei Programme benötigt:

  1. prgmCHAT2
  2. prgmTIMER
  3. prgmIMNEU

prgmCHAT2[Bearbeiten]

Dieses bildet den Kern der Anwendung. Zunächst muss geklärt werden welcher Rechner gerade in Benutzung ist und dann müssen die benötigten Speicher geleert werden. (-> entspricht dem [STO] Pfeil)

:Lbl 7     '(Dieses Label(Gegenstück einer Sprungmarke (Goto)) ist für die Reset-Anweisung im Hauptmenü)
:ClrHome     '(Löscht den Bildschirm vorsorglich)
:Menu("CHAT 2.0","1. RECHNER",11,"2. RECHNER",12)     '(Nun wählt der Benutzer die eindeutige Identifikation seines Rechners)
'(Syntax: Menu([TITEL],[1.Punkt],[Sprungmarke des 1. Punktes],...))
:Lbl 11     '(Diese Zeile wird angesprochen, wenn der Rechner die Nummer 1 ist)
:1->Z    '(In Z wird die Anzahl der ausgehenden Nachrichten gespeichert beginnend mit 1)
:1->X    '(In X wird die Rechner Identifikation abgelegt: Hier 1 weil Rechner 1)
:Goto 0     '(Verweist auf den Startpunkt um die nächsten Zeilen zu übergehen)
:Lbl 12     '(Diese Zeile wird angesteuert, wenn der Rechner die Nummer 2 erhält)
:1->Y      '(Um Konflikte zu vermeiden wird für die Anzahl der ausgehenden Meldungen hier Y verwendet)
:2->X      '(die Identifikation ist beim 2. Rechner natürlich auch 2)
:Lbl 0     '(Definiert hier den Startpunkt)
:prgmTIMER     '(Führt den TIMER aus um auf neue Meldungen zu prüfen)
:If A=1     '(Sollte nur die Anzahl der Nachrichten abgerufen werden wird A auf 1 gesetzt)
:Goto 9     '(Dann wird auf das Label 9 verwiesen)
:Else      '(Sonst)
:Goto 4     '(Verweist auf den Landepunkt 4)
:Lbl 1     '(Ab hier beginnt das Hauptmenü)
:Menu("CHAT 2.0","VERFASSEN",2,"AUF NEUE IM PRÜFEN",3,"IM ANSEHEN",4,"BEENDEN",8,"RESET",7)
:Lbl 9     '(Um auf lediglich die Anzahl der Speicher zu zugreifen werden die folgenden Zeilen benötigt)
:Disp "NEUE IM:"    '(Auf dem Bildschirm wird nun NEUE IM: angezeigt)
:If X=1     '(Sollte es sich um den ersten Rechner handeln)
:GetCalc(Y,1)     '(Wird natürlich Y vom anderen Rechner geholt, da Z der eigene Speicher ist)
:Disp Y           '(Und dann natürlich angezeigt)
:If X=2           '(Nun noch die Schleife für den anderen Rechner)
:GetCalc(Z,1)
:Disp Z
:0->A     '(Und die Schleife zurücksetzten um eine Endlos-Schleife zu verhindern)
:Break    '(Dann pausieren um das Ergebniss ansehen zu können)
:Goto 0     '(Und wieder zum Hauptmenü) 
:Lbl 2    '(Hier beginnt der Code um eine neue Meldung zu verfassen und zu senden)
:prgmIMNEU     '(siehe prgmIMNEU)
:Goto 0    '(Link zum Hauptmenü)
:Lbl 3     '(Hier wird A auf 1 gesetzt um nur auf die Anzahl der verwendeten Speicher zu sehen)
:1->A     '(A wird mit 1 gefüllt)
:Goto 0   '(Und wieder das Hauptmenü angezeigt)
:Lbl 4    '(Um sich bereits empfangene und neue IM anzusehen wird der nächste Block benötigt)
:ClrHome     '(Zur Anzeige wird der Bildschirm geleert)
:If X=2     '(Sollte es der 2. rechner sein werden Str1, Str2, Str3, Str4 abbgerufen sonst Str5-Str8)
:Then        
:GetCalc(Str1,1)     '(abrufen:)
:GetCalc(Str2,1)     '(Syntax: GetCalc([Variable die geholt werden soll],[0=Beide Anschlüsse;1=USB Anschluss;2=I/O Anschluss])
:GetCalc(Str3,1)
:GetCalc(Str4,1)
:Menu("CHAT 2: EINGANG:",Str1,41,Str2,42,Str3,43,Str4,44,"HAUPTMENUE",1)     '(Nun werden die Strings in einer Liste zum Auswählen angezeigt)
:Else
:GetCalc(Str5,1)
:GetCalc(Str6,1)
:GetCalc(Str7,1)
:GetCalc(Str8,1)
:Menu("CHAT 2: EINGANG:",Str5,45,Str6,46,Str7,47,Str8,48,"HAUPTMENUE",1)
:End
:Lbl 41     '(Diese Blöcke dienen zur genauen anwahl einer nachricht durch das Menü (vgl. Lbl und Menu))
:Disp "CHAT:",Str1
:Pause     '(Pause/Break damit die Nachricht auch angezeigt und nicht gleich wieder zum Menü gesprungen wird)
:Goto 4
:Lbl 42
:Disp "CHAT:",Str2
:Pause
:Goto 4
:Lbl 43
:Disp "CHAT:",Str3
:Pause
:Goto 4
:Lbl 44
:Disp "CHAT:",Str4
:Pause
:Goto 4
:Lbl 45
:Disp "CHAT:",Str5
:Pause
:Goto 4
:Lbl 46
:Disp "CHAT:",Str6
:Pause
:Goto 4
:Lbl 47
:Disp "CHAT:",Str7
:Pause
:Goto 4
:Lbl 48
:Disp "CHAT:",Str8
:Pause
:Goto 4
:Lbl 8
:Stop

prgmIMNEU[Bearbeiten]

Dieses Programm steuert die Eingabe einer neuen Nachricht. Um den Quellcode in prgmCHAT gering zu halten bzw. es übersichtlich zu gestalten wurde dieser Code ausgelagert, wenn Sie wollen können Sie alles auch an der Stelle in prgmCHAT einfügen an der prgmIMNEU im prgmCHAT erscheint.

:Disp "CHAT 2.0"
:Disp "[2nd]+[ALPHA]"
:Disp "IHRE EINGABE:"
:If X=1
:Goto 1
:If X=2
:Goto 2
:Lbl 1
:If Z=1
:Input Str1
:If Z=2
:Input Str2
:If Z=3
:Input Str3
:If Z=4
:Then
:Input Str4
:0->Z
:End
:Z+1->Z
:Goto 3
:Lbl 2
:If Y=1
:Input Str5
:If Y=2
:Input Str6
:If Y=3
:Input Str7
:If Y=4
:Then
:Input Str8
:0->Y
:End
:Y+1->Y
:Goto 3
:Lbl 3

prgmTIMER[Bearbeiten]

PROGRAM: TIMER

:Menu("STOPUHR","ZEIT EINGEBEN",A,"SELBER STOPPEN",B)
:Lbl A
:Prompt Z
:ClockOn
:startTmr→T
:while T≠Z
:checkTmr(T)→T
:End
:checkTmr(T→T
:Disp T
:Output(5,5,"Abgelaufen")
:Stop
:Lbl B
:ClockOn
:startTmr→T
:Menu("STOP","Stop",C)
:Lbl C
:ClrHome
:checkTmr(T→T
:Disp T
:Stop