Seite 1 von 1

Grafikmodus G0 in PropForth?

Verfasst: Di 15. Jan 2013, 22:36
von U-Held
Hallo,

da fertige Spin-Programme ausführen auf Dauer langweilig wird, dachte ich mir, schreib' doch mal 2-dots.spin aus tbox-1 in PropForth auf!

Ist scheinbar gar nicht so schwer:

Code: Alles auswählen

: inner  \ ( n -- )
  11 0 do
    i 4* 4* 8 + over bel:g0plot
  loop drop ;

: tpix
  c" g0key.bel" bel:load
  bel:g0clear 14 bel:g0width 1 bel:g0color
  15 0 do i 4* 4* 8 + inner loop
  key
  ." fertig"
  c" vga.bel" bel:load
  ;
...dachte ich. (Die 4 g0-Wörter habe ich aus reg-ios übernommen.) Leider bekomme ich noch nicht einmal den G0-Treiber g0key.bel geladen: Irgendetwas wird geladen, der VGA-Bildschirm wird dunkel, die Tastatur wird initialisiert -- und plötzlich ist der VGA-Modus wieder da. Dass ich tpix im system-Verzeichnis starten muss, weiß ich schon. Ansonsten käme ja "ERR : 5" (=file not found).

Weiß irgendjemand Rat?

Grüße vom U-Held

Re: Grafikmodus G0 in PropForth?

Verfasst: Fr 18. Jan 2013, 17:45
von drohne235
Muss mal schauen, glaube bel:load funktioniert nicht mehr korrekt wegen einer Änderung im Bellatrix-Code. Ich brauche nur mal einen Tritt um den Hive nach den Feiertagen wieder in der guten Stube aufzubauen, damit ich mal nachschauen kann... ;)

Re: Grafikmodus G0 in PropForth?

Verfasst: Fr 18. Jan 2013, 23:10
von U-Held
Nachschauen? Das wäre nett. Muss nicht sofort sein, ich kann mich gerade ganz gut mit anderen Dingen beschäftigen. ;-)

Grüße...

Re: Grafikmodus G0 in PropForth?

Verfasst: Sa 26. Jan 2013, 13:48
von drohne235
Also, der Grund warum bload bzw. bel:load unter PropForth nicht mehr funktionierte war eine veränderte Funktionsnummer in Bellatrix. Ich habe das angepasst - die beiden geänderten Forth-Dateien befinden sich im Anhang und kommen auch im nächsten Update von TriOS. So kann man als Test einfach mal den Matrix-Bildschirmschoner interaktiv mit "bload matrix.bel" aufrufen - das sollte mit den geänderten Dateien funktionieren.

Ich habe deine tpix mal bezüglich der Wortnamen ein wenig angepasst, ich denke wenn es funktioniert kann man daraus dann gut eine g0.lib für PropForth extrahieren. Aaaaber zum endgültigen Glück fehlen noch zwei Dinge:

1. Der Screen in Bellatrix muss noch von Regnatix aus initialisiert werden. In dem Testprogramm g0test.spin übernimmt das die Funktion "screenset1". Im Prinzip benötigt man also noch ein Wort analog dieser Funktion, erst dann kann der eigentliche Treiber in Bella gestartet werden.

2. Mit den Funktionen g0:static und g0:dynamic muss dann in Bella der Treiber entweder im statischen oder dynamischen Modus gestartet werden. Diese beiden Funktionen hab ich schon eingefügt.

Wie unterscheiden sich die Modis?:

Dynamischer Modus: G0 arbeitet dabei mit zwei Flipscreens, um Animationen besser darzustellen. Das bedeutet es wird immer in einen "Zeichenpuffer" geschrieben und zum Schluss eines Frames dieser Puffer mit g0:copy in den eigentlichen Screen übertragen. Einige der Tests in g0test oder auch der TriBorg-Player verwendet diese Methode.

Statischer Modus: Dabei schreibt der G0-Treiber in den gleichen Screen, welcher auch gleichzeitig dargestellt wird - halt ein einfacher klassischer Pixelscreen.

Re: Grafikmodus G0 in PropForth?

Verfasst: Fr 8. Feb 2013, 21:54
von U-Held
Hallo drohne235,

danke für die Tips. Ich glaube, jetzt hab' ich's. Zum Nachvollziehen:

load ari.lib (aus dem system-Verzeichnis)
load bel.lib (aus dem Anhang)
load g0.lib (aus dem Anhang)
load tpix.f
cd .. (falls nötig)
cd system (dto.)
tpix

Was man auch noch sieht: Das Wort rnd ist, in schneller Folge aufgerufen, alles andere als zufällig.

Grüße vom U-Held

Re: Grafikmodus G0 in PropForth?

Verfasst: Sa 9. Feb 2013, 13:01
von drohne235
Tolle Sache, funktioniert! :DAUMENHOCH Und ich muss sagen, es sieht in Forth recht übersichtlich aus - fast schöner als in Spin.