Hallo, guten Tag.
Ich habe ein Beispiel gefunden wo einfach ab Adresse 0 und 1 mit Poke/Peek gespielt wird.
Wo erfahre ich bitte welche Adressen frei sind?
Gibt es bitte irgendwo eine Speicherübersicht , welche man beschreiben kann?
Dieses beschreiben von RBasic kenne ich woanders nicht.
Danke.
Peek und Poke ...Welche Adressen kann man nutzen.
-
-
Für Poke und Peek stehen 65.535 Byte zur freien Nutzung durch das jeweilige Programm zur Verfügung.
Du kannst da keinen fremden Code oder Daten überschreiben. Du kannst so oft du willst deine eigenen Daten hineinschreiben, überschreiben, auslesen.
Man kann dieses VRAM ganz gut als eine Art Zwischenspeicher nutzen. -
Danke für die Hilfe.
VRAM : Geht durch Poke/Peek Grafikspeicher verloren wenn ich etwas mit Circle hergestellt habe?
Gibt es eigentlich beim Zeichnen mit Circle usw. 2 Grafikspeicher um eventuell im Hintergrund zeichnen und dann in den Vordergrund bringen?
Gruss -
VRAM : Geht durch Poke/Peek Grafikspeicher verloren wenn ich etwas mit Circle hergestellt habe?
Wenn man etwas in den Grafikspeicher schreibt, das hat nichts mit dem VRAM zu tun. Dieses virtuelle Ram kann man als Zwischenspeicher nutzen. Ich nehme es z.B., um Zeilen aus einer Bitmap-Grafik einzulesen, diese zu bearbeiten und in die Bitmap zurückzuschreiben.Gibt es eigentlich beim Zeichnen mit Circle usw. 2 Grafikspeicher um eventuell im Hintergrund zeichnen und dann in den Vordergrund bringen?
Habe mit Grafikspeicher noch nicht gearbeitet, aber ich glaube, du kannst mehrere Screens oder Views nutzen, diese beschreiben und dann zum DefaultScreen (oder visible?) machen. Dann erscheinen sie.
Aber das weiß Rainer viel besser. -
Danke für die Info.
Werde mal weiter Forschen. -
VRAM : Geht durch Poke/Peek Grafikspeicher verloren wenn ich etwas mit Circle hergestellt habe?
Gibt es eigentlich beim Zeichnen mit Circle usw. 2 Grafikspeicher um eventuell im Hintergrund zeichnen und dann in den Vordergrund bringen?
VRAM steht für Virtueller RAM, nicht für Video-Ram. An den Videospeicher kommst du unter R-BASIC / GEOS nicht direkt heran.Zwei Grafikspeicher kann man relativ leicht machen, dazu sollte man aber etwas Erfahrung mitbringen.
Rainer
-
Nachtrag: mit "Etwas mehr Erfahrung" meine ich, dass man etwas Erfahrung mit den R-BASIC Objekten haben muss. Man muss z.B. wissen, was ein BitmapContent und ein View ist, was ein Screen ist und wie man Objekte zur Laufzeit sichtbar und unsichtbar macht. Das ist alles nicht wirklich schwer und ist im Handbuch beschrieben. Aber man musses eben verstanden haben.
Rainersebi: Im Prinzip ja, du hast mehrere BitmapContents, das nicht mit dem View verbundene machst du zum Screen, schreibts hinein und machst es dann zum Content des View. Dann erscheint die Grafik / der Text. Jetzt kannst du das andere BitmapContent zum Screen machen, beschreiben usw... immer abwechslend.
Je nach Fall geht es aber auch anders, u.U. auch schneller. -
----------------------------
Je nach Fall geht es aber auch anders, u.U. auch schneller.
----------------------------
Der Fall für mich ist für ein Spiel : Hintergrund mit Grafik auffrischen und dann nach vorn zur Sichtbarkeit
Danke.
Gruss -
65.535 Byte zur freien Nutzung....
Davon möchte ich bitte Teilweise welche für Virtuelle Screens nutzen (32000)
Leider finde ich selber als Neuling keine Möglichkeit ein schnelles umschauffeln zu machen für Virtuelle Screens mit ASM oder C-Objekten für das R-Basic.Ich habe leider noch nichts gefunden wie man mit ASM/C-Objekten in FreeGeos und R-Basic umgeht oder nutzen kann.
In PDS 7 nutze ich dafür das ASM oder C-Objekte , da gibt es 2 möglichkeiten die ich Funktionell dafür erreiche.
Was gibt es dafür bitte in FreeGeos und R-Basic?
Danke.Gruss
-
R-BASIC unterstützt keine direkte Einbindung von asm oder C Code.
Also schnelles Umschaufeln von Speicher auf den Schirm geht nicht. Einer der schnellsten Wege ist, im Hintergrund in eine Bitmap zu zeichnen (mit PRINT, DrawImage oder DraePicture) und dann die Bitmap zu Drawen. Oder gleich DrawImage oder DrawPicture zu benutzen, um verschieden Phasen eines animierten Objekts zu zeichnen.
RainerP.S. In FreeGeos selbst kann man (ausschließlich) mit asm und C arbeiten. Dazu muss man das SDK installieren und sich dort einarbeiten. Einen direkten Zugriff auf den Bildschirm-RAM wie unter DOS hat man aber trotzdem nicht - ich wüsste jedenfalls keinen Weg. Außerdem kann man mit dem SDK "Erweiterungen" für R-BASIC schreiben, die dann wie ein normaler R-BASIC Befehl benutzt werden können.
-
Danke für die Info.
Das hat mir schon geholfen.Ich beschäftige mit gerade mit der Blockgrafik.
Ist ein langes Kapitel. Mit einigen Fragen dazu.
Das SDK möchte ich erstmal nicht anfangen , weil dieses R-Basic sehr viel potential hat.Danke.
Gruss -
Hallo , guten Tag.
Wer kann mir bitte einmal eine einfache Demo mit einer Struktur herstellen für das SPOKE und SPEEK ?
Die Struktur soll bitte 4096 Byte enthalten für eine Blockgrafik 64x64 Pixel.Danke.
Gruss -
Folgendes ohne es getestet zu haben ...
struct demo
pixel(63,63) as byte
end structDefiniert einen Typ, der ein 64x64 = 4096 Byte großes zwiedimensionales Array aufnimmt, also idel für ein 64x64 Bild in 256 Farben. Die Zählung des Index beginnt immer bei Null.
Dim b as demo
definert eine passende Variable
b.pixel(10,10) = 12
schreibt einen Wert (12) in die Struktur
spoke 100, b
schreibt die Struktur-Variable b auf Adresse 100 in den Poke-Ram (VRAM)
Rainer
P.S. Die Poke/Peek-Befehle sind als Kompatibilitsbefehle geschrieben. Bitte nicht wundern, wenn sie nicht besonders schnell sind. Das liegt daran, dass der VRAM nicht permanent im Hauptspeicher liegt, sonder bei jedem (!) Poke/Peek-Befehl geladen werden muss. Würde man 64 kB ständig im Hauptspeicher haten, würde die Geschwindigkeit aller anderen Befehle / Programme leiden.
-
Hallo Rainer vielen dank für die Demo und dem Hintergundwissen dazu.
Danke.
GRuss