Hallo Besucher, der Thread wurde 6,2k mal aufgerufen und enthält 27 Antworten

letzter Beitrag von spacer am

Möchte von der REU Daten aufnehmen mit einem Turbopascalprogramm.

  • Hallo, guten Tag.


    Ich habe hier die REUbefehle:
    df01 value kdo ( kommandoregister )
    df02 value c64adr ( adresse c64 lo/hi )
    df04 value reuadr ( adresse reu lo/hi )
    df06 value reuba ( bank von der reu )
    df07 value trbyte ( bytemenge )


    Wie kann ich in Turbopascal 3.0 einen Speicherbereich zb 1024 Byte reservieren um dann der REU die Adresse davon mitteilen um mit den Daten im Programm zu spielen oder Daten zur REU übertragen


    Danke.
    Gruss

  • Dazu müßtes du erstmal die REU 'abmelden', denn afaik wird die REU immer automatisch als Laufwrek M: eingebunden. Da müßte also erstmal nachgeschaut werden wie die REU in cp/m+ eingebunden ist.



    Add: Will eigentlich damit sage: Warum willst du die REU 'rauh' ansprechen, wenn du einfach eine Datei in M: erstellen kannst und somit viel einfacher auf diese Daten zugreifen kannst?
    Ich denke das 'abmelden' der REU aus dem System (um sie 'roh' zu benutzen) dürfte nicht ganz so trivial sein.

  • Ich habe eine 4mb-Reu eingerichtet.


    Ich würde die oberhalb der Ebene von ZPM benutzen.
    Würde ab Bank 64 gehen also bei 3072000 anfangen.


    Oder mache erste Versuche mit ZPMSYS.D64, die benutze die REU nicht.
    Wie kann ich bitte einen Speicherbereich unter Turbopascal einrichten als Array und dann die Adresse erfahren?


    Danke.
    Gruss

  • Ich würde Dir empfehlen sich mit einschlägiger Literatur zu Turbo Pascal unt C/PM zu befassen. Die Fragen die Du bisher im Forum gestellt hast lassen vermuten, das Du beim Thema Turbo Pascal ganz am Anfang stehst... daher ist eine Einarbeitung wahrscheinlich sinnvoll.


    Z.B. mit dieser Lektüre... da findest Du auch was zum Thema Array


    http://bitsavers.informatik.un…l_CPM_Version_3_Dec88.pdf

    Lieben Gruß, Torsten


    Meine Spielzeuge
    BFZ MFA, Apple //e, ZX80Core, AX81, ZX81, ZX81NU, Spectrum+, Harlequin, Jupiter ACE Clone, Amstrad NC100, Cambridge Z88, C64, C128D, Plus/4, Amiga 500, Amiga 1200, Atari Portfolio, HP200LX, HP48SX, HP48GX, Accura 101, IBM PC 5155, PS/2 (Model 40SX), TP755c, T20, T41, T61, PS/2E, TI-59,

  • Hallo,ich komme hier nicht zum Ziel.


    Ich möchtte bitte die Arrayadresse pp übergeben an den pointer p.
    Dann möchte ich die Pointeradresse ausdrucken und dem Array über den pointer p einen Wert zuweisen.


    Ich komme hier nicht zum Ziel.
    Die Wörter von Freepascal kann ich nicht verwenden.
    Im anderen Buch(PDF) finde ich keine Lösung für mein Beispiel.


    Danke.
    Gruss


    Undefinierter . Zeigertyp in vorhergehender Typdefinitionen bei Zeile 5.

  • Hmmm.


    Dieses Zeichen @ zur Addressenermittlung gibt es in Turbo Pascal 3.0 unter CP/M nicht.
    Darum kann eine zahlenmäßige Ermittlung nicht stattfinden.


    Und das war hier immer meine Frage , der REU die Adresse mitzuteilen.


    Eigentlich habe ich erwartet, das dieses mal von euch "Fachleuten" kommt um mich hier nicht lange suchen zu lassen.
    Hier unter CP/M wird nicht von Freepascal, Turbo Pascal 7.0 un d anderen geschrieben.
    Ich glaube einige kennen die Eigenheiten nicht vom Turbo Pascal 3.0 unter CP/M.


    Das musste ich einmal los werden.


    Das Thema kann hier jetzt geschlossen werden , weil es dazu keine Lösung gibt mit Turbao Pascal 3.0 unter CP/M.


    Zitat

    Free Pascal ist zwar nicht Turbo Pascal, aber zum Verstehen des Konzepts ist das sicher egal.

    Eben nicht, du kannst die beiden nicht vergleichen weil das Zeichen @ mit zum Konzept gehört um meine Frage lösen zu können.


    Gruss

  • Ich habe bis heute nicht verstanden warum du unbedingt direkt 'roh' auf die REU zugreifen willst.
    Wie ich schon sagte: das ist nicht der cp/m-way.
    cp/m+ (aka 3) kann gerade mal 2 RAM-Bänke (128k) verwalten, und glücklicherweise hat CBM einen Treiber geschrieben der die REU als RAM-DISK (Laufwerk M: [für Memory]) einbindet.
    cp/m ist ein DISC Operating System, es behandelt Daten auf Disketten, daher wäre der cp/m weg eher eine Datei (von mir aus auf M: zwecks speed) anzulegen, und dort die Daten lesen/schreiben oder was auch immer du mit deine Daten vor hast.

  • [...] von euch "Fachleuten" kommt [...]

    Bitte mal den Ball flachhalten. Wenn Du unbedingt mit Pointern hantieren willst, nimm besser C. Das gibt es auch unter CP/M.


    Davon abgesehen ist das Problem, wenn überhaupt, weniger eins der irgendwie gearteten Anbindung der REU an CP/M(+) und Turbo-Pascal. Interessant ist eher die Frage, welche Problemstellung Du eigentlich beackerst, die verlangt, daß Du größere Datenmengen als, sagen wir mal, 30 KB schnell in einem Array zugreifbar haben möchtest.


    Und da funktioniert Dateizugriff auf die REU-RAM-Disk (wie von Freddy vorgeschlagen) genauso gut oder sogar besser, als wie ein "selbst gebautes" Protokoll mit direktem Zugriff auf die REU-Register. CP/M ist ein echtes Betriebssystem und bringt mit so einem RAM-Disk-Treiber sogar lobenswerterweise mal Hardware-Abstraktion mit! Das ist allemal besser als jede Bastellösung.

  • Zitat

    Der Link im 4. Posting zeigt in Chapter 15, dass Turbo Pascal 3.0 auch diese Pointer kennt. Statt des @ wird dort das Caret-Zeichen ^ verwendet. Ob dieses beim C128 unter CP/M eventuell anders ist, kann ich allerdings nicht sagen. Ich habe weder einen C128 noch Vice. Ich benutze CCS64.


    Nein , das ist das Zeichen um einen Pointer einzurichten und im Programm damit Werte zuweisen zu können und abholen zu können von einer Variablen wie in C usw auch. Damit bekommt man nicht die Rohadresse als Zahl um damit weiter zu spielen.


    Bei den anderen Pascal Versionen gibt es noch den @ zusätzlich.



    Danke.
    GRuss

  • Zitat


    cp/m ist ein DISC Operating System, es behandelt Daten auf Disketten, daher wäre der cp/m weg eher eine Datei (von mir aus auf M: zwecks speed) anzulegen, und dort die Daten lesen/schreiben oder was auch immer du mit deine Daten vor hast.


    Da bleibt mir ja nichts anderes über in meiner Situation.
    Jedes Laufwerk in der REU hat da ja 512kb. Es ist ja SYS, ROOT und WORK. SYs und ROOT sind zt schon belegt mit Systemprogrammen. in WORK habe ich meine CP/M Programmme, da bleibt nicht viel über. Hätte er die REU für 16MB benutzt könnte man noch einige WORK anlegen 1..2..3..4 usw.


    Vielleicht kommt das ja mal.


    Danke.
    Gruss

  • Hallo, damit kann ich jetzt unter Turbo-Pascal die REU beschreiben und auslesen.


    Da ZPM-REU noch einges frei hat auf der REU bietet es sich an diesen Speicher zu nutzen.
    Ich habe mir aber eine 16MB-REU gekauft... bzw eingestellt bei VIVE.


    $DF01 Kommandoregister ( 253 zum Computer 252 zur REU mit den Daten)
    $DF02/03 Computeradresse (Lo/Hi)
    $DF04/05 REU-Adresse (Lo/Hi)
    $DF06 REU-Bank
    $DF07/08 Anzahl Bytes (Lo/Hi)


    Gruss

  • Sag mal spacer, hast du den Knall nicht gehört? Du fragst nach Hilfe, und das auf extrem stümperhafte Art un Weise, du bist ungenau in der Fragestellung, lässt nach und nach irgendwelche Zusatzanforderungen dazurieseln, bist nicht in der Lage Dir gegebene Links zu öffnen, und nun moserst und stänkerst Du noch rum?
    Ich hoffe ein jeder hier hat jetzt verstanden dass es verlorene Zeit ist dich einer Antwort zu würdigen.

  • Ich erkenne zumindest Arroganz und Hochnäsigkeit, und die hast Du wirklich zu Hauf im Angebot. Dein Schema ist durch *alle* Threads gleich, mir geht es nicht nur um diesen hier, aber er steht exemplarisch für alle anderen.


    Die Antworten sind dir nicht gebacken also wirst Du beleidigend.