Apple II 6502 Unterprogramm unter CPM 3.0

  • Hallo,

    ich möchte aus einem Turbo Pascal Programm unter CPM 3.0 auf einem Apple II Europlus ein 6502 Assembler Unterprogramm aufrufen.

    Prinzipiell scheint das ja möglich zu sein, mir ist nur nicht klar wie man das Assembler Unterprogramm in den Speicher bekommt und wie man verhindern kann, das sich Speicherbereiche von Turbo Pascal Hauptrogramm und Assembler Unterprogramm überlappen.

    Vielleicht hat jemand so etwas schon gemacht und hat ein Beispiel parat.


    Viele Grüße

    Claus

  • Doku ist z.B. hier. Im "Software and Hardware Details" Handbuch gibt es


    • Adressmapping zwischen Z80 und 6502.
    • Detaillierte Erklärungen zum Aufrufen einer 6502 Routine aus Z80 Assembler.

    Es gibt viele Möglichkeiten, das 6502-Assemblerprogramm in den Speicher zu bekommen. Für ein kurzes Program ist vielleicht ein mit den numerischen Werten des Programms initialiserter Array am einfachsten. Das verhindert dann auch, dass sich die Bereiche überlappen. Größere Programme kann man von Diskette laden, oder sich ein kleines Programm schreiben, dass die Bytes als Pascal-Programmtext zum Initialisieren der Arrays ausgibt.


    Wenn das Assemblerprogramm viel Arbeitsspeicher braucht, kann man eine COM-Datei erstellen, und den genutzten Speicherbereich dafür in den Compileroptionen einstellen (das Adressmapping beachten).


    Ich hätte kein fertiges Beispiel parat.

  • In einer mc gibt es ein Programm mit Routinen, die aus TurboPascal heraus die HGR Grafikroutinen der Applesoft Firmware ansprechen. Die mc gibt es als Archiv online und da sollte es auch ein Gesamt-Inhaltsverzeichnis geben. Das Rchiv wurde hier im Forum auch vor kurzem erwähnt, einfach mal die Suche bemühen.

    Denn Feindschaft wird durch Feindschaft nimmermehr gestillt; Versöhnlichkeit schafft Ruh’ – ein Satz, der immer gilt. Man denkt oft nicht daran, sich selbst zurückzuhalten; Wer aber daran denkt, der lässt den Zorn erkalten. Sprüche von Buddha, aus dem ‹Dhammapada›.


    Mein Netz: Acorn | Atari | Milan | Amiga | Apple //e und IIGS | Macintosh | SUN Sparc | NeXT |SGI | IBM RS/6000 | DEC Vaxstation und Decstation| Raspberry Pi | PCs mit OS/2, BeOS, Linux, AROS, Windows, BSD | Stand-alone: Apple //c und III | Commodore 128D | Sinclair QL | Amstrad | PDAs