c't

c't-Projekte - Mailinglisten


[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

Re: [ct-bot] Skriptsprache zur Bot-Programmierung ->Basic Display Routinen

Absender: Timo Sandmann
Datum: Di, 29.11.2011 21:22:29
In-reply-to: <2287470E312A4B9C898A34850CF66774@FrankPC>
References: <E171B4EB-B636-4646-A1B5-18365383D5A7@xxxxxxxxxxxxxxx><07C94192229C4D7B9D57263A625F7C3B@FrankPC><B0A7F2D09B5145188D7CDDCF05DC46A8@FrankPC><DA88D128-3438-4103-AB86-7F3DAD134A59@xxxxxxxxxxxxxxx><A2D70DD76A2D4A00A50C75CDB6D1DDDA@FrankPC> <393B8E87-128D-4AD8-AD95-1E0EF6741AB3@xxxxxxxxxxxxxxx> <2287470E312A4B9C898A34850CF66774@FrankPC>


Hallo Frank,

zuerst: was für Fehler bekommst du denn, wenn UBASIC_STRING an ist? Ich bekomme da nur ein paar Warnings, die aber im uBasic-Code selbst begründet sind. Ich habe sie nicht korrigiert, damit "unsere" uBasic-Version nicht zu sehr von der Originalen abweicht - das macht Updates immer umständlicher.

Nun zu deinem Patch: 1. das Prinzip funktioniert nicht mehr, wenn man den Display-Screen umschaltet. Einerseits wird dann immer das uBasic-Display gelöscht und andererseits gibt es Buchstabensalat, wenn die uBasic-Ausgabe Daten anderer Screens überschreibt. Ich glaube, das ist nicht das, was der Basic-Anwender haben möchte, denn auf Grund des geringen Platzbedarfs kommt man beim Bot nicht drum herum, das Display auch mal umzuschalten. Die derzeitige Lösung mit den verschiedenen Displayscreens löst das Problem ja eigentlich ganz gut, das sollten wir mit einer uBasic-Ausgabe nicht kaputt machen.

2. Die Ausgabe erfolgt jetzt über Funktionsaufrufe, aber es gibt in Basic ja eigentlich schon einen Befehl zur Ausgabe, nämlich PRINT. Ist es nicht besser, den auch zu verwenden? Vor allem, weil dort auch schon die Verarbeitung von Variablen usw. implementiert ist.

Gruß,
Timo

Am 29.11.2011 um 19:21 schrieb Frank Menzel:

> Hallo Timo,
> inspiriert durch die Anfrage nach Displayausgabe habe ich dies mal verfolgt und für Basic gibt's jetzt 3 Displayroutinen, siehe das Beispielprog dazu.
> Man kann mit diesen den Cursor auf dem Display positionieren, den Screen löschen sowie einen festen String ausgeben. Das alles auf dem bereits vorhandenen Basic-Screen, die Funktionstasten-Ausgabe wird hierbei überschrieben. Mit der Taste 0 wird die Originalausgabe wieder raufgeschrieben.
> In Basic selbst ist die Stringverwendung ausgeschaltet, so dass vom Script her Stringvariable der Ausgaberoutine nicht übergeben werden können, eben nur feststehende Zeichen werden ausgegeben. Das Einschalten des entsprechenden Params hat diverse Fehler provoziert, hab ich wieder ausgeschaltet.
> 
> Hier mal das Beispielprog mit den neuen Routinen:
> 
> 10:
> call("displ_clear")
> call("displ_cursor",1,6)
> call("displ_puts", "Zeile 1")
> call("displ_cursor",4,3)
> call("displ_puts", "Text in Zeile 4")
> end
> 
> Gruß, Frank