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.

  • 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

    Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

  • 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.
    Rainer

    sebi: 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.

    Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

  • ----------------------------
    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.
    Rainer

    P.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.

    Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

  • 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

  • Folgendes ohne es getestet zu haben ...

    struct demo
    pixel(63,63) as byte
    end struct

    Definiert 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.

    Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.