Z80-Programmierung

  • Buchempfehlung: Programmierung des Z80 von Rodnay Zaks
    und das Schneider CPC Systembuch beides Sybex Verlag.

  • Sag das doch mal einen Tag früher! Dann hättest du dir gleich eine Ausgabe von "Programmierung des Z80" mitnehmen können. Ansonsten, für das CPC-spezifische, das CPC-Systembuch (findest du unter <!-- m --><a class="postlink" href="http://little-bat.de/cpc/index.html">http://little-bat.de/cpc/index.html</a><!-- m -->) und das ROM-Listing von Jannek/Mossakowski (nicht das von Brückmann). Elektronisch sollten beide auf deinem Server zu finden sein, auf Papier hin- und wieder bei eBay oder den bekannten Gebrauchtbücherportalen. (Und bei uns in der Hochschulbibliothek!)


    Emulator: WinAPE, aufgrund des Maxam-kompatiblen Assemblers und des guten Debuggers.


    Alternativ am Mac natürlich auch Arnold (<!-- m --><a class="postlink" href="http://www.bannister.org/software/arnold.htm">http://www.bannister.org/software/arnold.htm</a><!-- m -->), auf dem dann Protext & Maxam läuft. Der Emulator ist allerdings nicht wirklich komfortabel und fürs Entwickeln eher ungeeignet.

    Nilquader of SPRING

  • Zitat von &quot;Kangaroo MusiQue&quot;


    Ich seh grad, das Systembuch ist ein GRAUS. Einzeldateien sind ja - selbst als HTML mit Verlinkung - die Hölle. Gibts das Teil als PDF? Ansonsten muss ich doch bei eBay gucken.


    Japp, das ist echt eine Katastrophe. Ich bin aus dem Grund auf das Firmware Manual umgestiegen und schau lieber da rein. Irgendwie finde ich da viel leichter das, was ich suche.
    Bei eBay das Buch zu finden ist leider ziemlich aussichtslos.

  • Zitat


    Ich persönlich würde mich gerne für den Original-CPC entscheiden,


    Wenn du mal eben 256kb RAM brauchst, geht es mit dme EMU schneller oder eben mal SymbifaceII nutzen, läuft 100%tig. :D


    mfg

  • Zitat von &quot;schneiderfan&quot;

    Das Systembuch gibt es auch in deutsch als PDF...mehr braucht man eigentlich nicht.


    Wo findet man das denn? Auf den üblichen FTPs hab ich es nämlich noch nicht als PDF gesehen.


    Danke!

    Nilquader of SPRING

  • Auf der ersten Seite wird zwar keine PDF-Version angeboten aber man kann alle HTML-Seiten bequem als ZIP-Datei (<!-- m --><a class="postlink" href="http://k1.dyndns.org/www/little-bat.de/cpc/cpc_sysbuch.zip">http://k1.dyndns.org/www/little-bat.de/ ... ysbuch.zip</a><!-- m -->) ziehen. Ist doch auch eine nette Lösung :D

  • Gibt es denn niemanden, der dieses Buch mal eingescannt hat? Wenn es das wirklich noch nicht gibt, stelle ich micht vielleicht mal hin- und wieder in der Mittagspause bei uns im Büro oder Uni an den Scanner. Zumindest der bei mir im Büro macht auch Texterkennung und generiert schöne PDFs.


    Oder man nimmt die HTML's als Grundlage, scannt nur die Originalbilder dazu und baut ein neues PDF. Wobei mir aufgefallen ist, dass der Text der HTML-Dateien gegenüber dem Buch gekürzt wurde - also auch nicht so ideal!

    Nilquader of SPRING

  • Zitat von &quot;schneiderfan&quot;

    Ich rede hier vom Systembuch für den CPC und nicht über das Buch von Sybex.


    Ausser dem "CPC Systembuch" ist mir kein anderes Systembuch für den CPC bekannt. Ich wäre jedenfalls höchstens an dem CPC Systembuch von G. Wogik aus dem Sybex-Verlag intressiert. Sollte also jemand eine Quelle für dieses in digitaler Form (PDF) haben, wäre ich an einem Hinweis interessiert.

    Nilquader of SPRING

  • Zitat von &quot;schneiderfan&quot;

    Das Buch "cpc 664-6128 intern" ist das eigentliche Systembuch für den CPC.
    Das andere sind nur wieder aufgewärmte Sachen mit viel Text drum rum.


    Also, wenn es überhaupt ein "eigentliches" Systembuch gibt, dann ist es sicher nicht das oben genannte, sondern das CPC 464 Firmware Manual (Soft158) vom Amstrad.

    Nilquader of SPRING

  • Hallo, Entschuldigung wenn ich hier mal dazwischen quatsche ...


    Ich bin durch den Themen-Titel über Google hier her gekommen.
    Ich bin derzeit dabei mal wieder etwas in Z80-Assembler zu machen. Eigentlich wollte ich meine Micro-Professor-I benutzen, aber das eintippen der Hex-Codes, selbst wenn man ein Listing hat das durch eine Assembler erstellt wurde, ist mir inzwischen doch zu mühsam geworden.


    Nun bin ich auf den CPC-Emulator WinAPE (Version 2.0 Alpha 17) gestoßen und bin einigermaßen begeistert, vor allem weil ein Assembler integriert ist. Der ist Maxam-kompatibel, was mich nun leider nicht sagt, da ich nie wirklich mit dem CPC gearbeitet habe. Ich gehörte in den 80er Jahren immer zur Atari 800XL-Fraktion.


    Ok, Maxam ist ein Z80-Assembler für den CPC, das habe ich raus bekommen. Ich habe auch auf einem FTP-Server ein Maxam-Rom gefunden (Maxam15.rom - Maxam1 1/2 -Assembler 1988 Arnor Ltd.).
    Inzwischen habe ich es hinbekommen, das das MAxam-Rom akzeptiert wird, ohne das den Rechner(Emulator) immer neu startet.
    Rom Upper7 - Parados (war so eingestellt)
    Rom Upper8 - Maxam15.rom (von mir)


    Wie starte ich nun Maxam? Ich lande immer im Basic 1.1
    Ich eine Anleitung habe ich gelesen, das man MAXAM eingeben soll um den Assembler zu starten - bei mir klappt das nicht.


    In der WinAPE-Konfiguration ist "Enable Plus Feature" eingestellt und die "CPC_PLUS.CPR"-Cartridge ist in der Speicher-Konfiguration geladen. Das scheint notwendig zu sein, da der Rechner sind gar nicht startet. Wer kann mir dazu was sagen und sagen wo ich das nachlesen kann?


    Ich habe mir die PDFs, die im diesem Thread erwähnt werden (neben den anderen die ich auf dem einem FTP-Server gefunden habe) schon mal runtergeladen.
    Darunter ist auch ein PDF über das Maxam-Entwicklungssystem und über Maxam1.5 - aber ich komme da nicht weiter.


    Bitte gebt mir den entscheidenden Schubs.
    Ich bin auch dankbar über Hinweise, was man als CPC-Einsteiger wissen/lesen sollte. Mein Schwerpunkt liegt in der Z80-Assembler Programmierung.


    EDIT:
    Ich habe nun die Möglichenkeit der Assemblierung in einem Basic-Programm gefunden, über |assemble usw.


    Gibt es auch einen reinen Assembler-Modus, also Monitor/Assembler ohne Basic? Wenn ja, was muss ich tun um diesen zu aktivieren


    EDIT: Ok, ich habe s wohl herausgefunden. Es gab da noch ein ROM namens maxamr.rom und damit geht es wie in der Beschreibung beschrieben.


    Aber eine Frage habe dann doch noch:
    Gibt es Cross-Assembler/Compiler unter Windows, mit dem man Programme für den CPC entwickelt kann? Für den MOS6502 (im Atari und C64 [6510]) gibt es z.B. den cc65 C-Compiler, wo auch ein Assembler im Paket enthalten ist. ich habe mal was von eine z80dk-Paket gelesen, weiss aber nicht mehr wo.
    Wie kann man im Emulator (WinAPE) ein unter Windows (cross-Assebler/Compiler) erstelltes Programm (bin/obj/rom) starten und evtl. auch noch das Basic ausschalten um mehr Platz im Speicher zu haben?


    Fragen über Fragen ... :)

  • Also, in WinAPE würde ich statt MAXAM lieber den integrierten benutzen, der ist deutlich komfortabler. Wenn du dennoch mal in MAXAM hineinsehen willst, musst du auch noch Protext (den Texteditor) als ROM mit einbinden. mit

    Code
    |p

    kommst du dann in den Editor rein, mit

    Code
    |asm

    kannst du dann kompilieren.


    Das Handbuch für Maxam bekommst du übrigens bei http://www.cpcwiki.com/ - könnte ja auch für dich interessant sein!

    Nilquader of SPRING

  • Danke für die Antwort.
    Warum brauche ich Protext? Maxam hat doch eine Editor mit an Bord. Ich reden jetzt von den maxamr.rom-Version, nicht von Maxam 1.5 (das braucht wohl Protext). Oder verstehe ich da was falsch?


    Ich habe nun auch schon einiges hinbekommen: Sourcecode eingeben, assembliert, Code gestartet.
    Ich habe der Sourcecode auch auf Diskette speichern können, aber wie ich nun das Assembliere Programm das im Speicher liegt auf die Diskette bekomme, habe ich noch nicht herausgefunden.
    Ich habe was von einem Write-Commando gelesen, aber irgendwie klappt das nicht: Das Write-Commando soll ja wohl im Programm-Sourcecode am Ende stehen (oder doch nicht?) mit der Angabe eines Dateinamens.
    Wenn ich das mache, dann rödelt auch das Diskettelaufwerk (Laufwerksound eingeschaltet" los, aber eine entsprechende Datei ist dann auf der Diskette nicht zu finden.


    Das CPC-Wiki schaue ich mich gleich mal an ...


    EDIT:
    Ich habe jetzt nochmal Maxam 1.5 genommen und Protext-Rom dazu getan. Es funktioniert. Ich kann den SourceCode schreiben und assemblieren.
    Aber auch hier stehe ich vor der Frage, wie bekomme ich das fertige Programm als File auf die Diskette? Das gilt auch für den internen Assembler in WinAPE. Hier kann ich zwar mit WRITE "c:\CPC-Test.bin" in eine Daten assemblieren und die Datei ist dann auch dort wo ich sie erwartet habe, aber die Datei ist leer, obwohl das assemblieren ohne Fehler abgelaufen ist.


    EDIT:
    Durch den Thread " Welchen Emulator verwendet ihr am liebsten" bin ich auf WinCPC aufmerksam geworden und habe dort meine Assembler-Problem mal ausprobiert. Dort kann ich mit dem Internen Assembler mit WRITE "c:\test-cpc.bin" in ein File assemblieren, was mit wie oben beschrieben unter dem WinAPE nicht gelingen will(leere Datei entsteht)

  • Dies sind einige für Windows um Z80-Code zu erzeugen für den CPC


    - Makroassembler AS V1.42


    - TASM Cross Assembler


    Weiterhin ist einer im z88dk-C-Compiler eingebunden oder im sdcc-C-Compiler... es gibt unmengen von Z80 Compilern.


    usw...usw


    mfg

  • Zitat


    Wie kann man im Emulator (WinAPE) ein unter Windows (cross-Assebler/Compiler) erstelltes Programm (bin/obj/rom) starten


    Unter Menü die Bin-Datei vom Cross-Assembler laden, dabei Startadresse angeben oder es nimmt die Startadresse vom Compilat. Oder beim compilieren mit dem eingebauten Assembler vom WINAPE sofort "call ..." eingeben.


    Mit "call &6000" zb starten , kommt darauf an, wo du den Code hingepackt hast.


    He..., und beim ASM-Compiler von Wincpc siehst du die Anfangadresse,Endadresse und Bin-Länge.





    mfg

  • Danke für die zahlreichen antworten.
    Zum letzen Beitrag:
    In WinAPE finde ich keine Möglichkeit ein Bin-File zu laden (in WinCPC habe ich das gefunden).
    Aber derzeit ist mein größtes Problem, wie bekomme ich unter WinAPE (interner Assembler) das fertige PRogramm (nicht den Sourcecode) auf die festplatte? Oder wie bekomme ich bei der verwendung von Maxam das fertig Programme auf die CPC-Diskette (also das .dsk Image) - Laufwerk rödellt, es wird aber keine Datei erzeugt - mit cat geprüft.

  • Winape :
    Mit dem ASMCompiler von Winape compilieren.
    Der zeigt dir dann die Adresse an, im welchem Speicherbereich er reincompiliert und die länge siehst du im Compilerablauf.


    Speichern der Bin auf Disk :


    Save "test",b,anfangadresse,länge


    Und schon hast du auf der Disk "TEST.BIN"


    Load "test.bin",anfangadresse


    Starten:


    Call anfangadresse



    fertig


    mfg

  • Zitat von &quot;EightBitWitch&quot;

    Danke für die zahlreichen antworten.
    Zum letzen Beitrag:
    In WinAPE finde ich keine Möglichkeit ein Bin-File zu laden (in WinCPC habe ich das gefunden).


    Also ich lasse mir mit meinem Compiler immer automatisch eine DSK Datei bauen, die ich dann in WinApe lade (ich benutze Pasmo als Crossassembler, die Franzosen verwenden wohl ausserdem ganz gerne den SjasmPlus Assembler).
    Ansonsten gibts eine Moeglichkeit, den WinApe ueber die Kommandozeile mit einer Skriptdatei zu fuettern. Damit soll das dann angeblich auch gehen - habe ich bisher aber noch nicht ausprobiert.
    WinApe bringt als dritte Moeglichkeit noch den direkten Zugriff auf die Festplatte mit. Das funktioniert mit CPCDOS ROM im ROM Verzeichnis von WinApe. Zu den Kommandos kann ich leider nichts sagen, da ich bisher keine Infos dazu gefunden habe und es auch noch nicht selbst getestet habe.


    Zitat von &quot;EightBitWitch&quot;


    Aber derzeit ist mein größtes Problem, wie bekomme ich unter WinAPE (interner Assembler) das fertige PRogramm (nicht den Sourcecode) auf die festplatte? Oder wie bekomme ich bei der verwendung von Maxam das fertig Programme auf die CPC-Diskette (also das .dsk Image) - Laufwerk rödellt, es wird aber keine Datei erzeugt - mit cat geprüft.


    In WinApe sollte die Maxam Anweisung "write <Dateiname>" eigentlich ausreichen, um eine Binaerdatei im selben Verzeichnis zu schreiben.

  • @Octoae:
    Leider will das WRITE <Dateiname> im Maxam nicht, oder ich habe das an der falschen stelle. Obwohl, von beobachten und hören her, sollte alles richtig sein. Das WRITE steht bei mir im SourceCode als letzte Zeile. Wenn der assemblieren anwerfe, dann wird das programme im Speicher assemblieren und als listing auf dem Bildschirm angezeigt - anschließend rödelt das Laufwerk des CPC los.



    Sind damit BASIC-Kommandos gemeint? Sicherlich oder?
    Was ist denn nun, wenn ich das Basic nicht benutze(n will) und ich das Programm im RAM "unter" dem BASIC-ROM habe? Dann komme ich mit dem BASIC-SAVE/LOAD nicht wirklich weiter oder?
    Ist das denn wirklich richtig, das es von Maxam selbst heraus keine Möglichkeit gibt, das fertige Programm auf Disk zu speichern?


    Aus dem Interne Assembler vom WinCPC geht das mit WRITE <Dateiname auf dem PC-Laufwerk> und eigentlich sollte das auch mit dem Assembler von WinAPE gehen. Das WRITE-Kommando erzeugt keine Fehler, leigt auch eine Datei an, die aber leider leer ist.


    hier nochmal zu verdeutlichung, denn ich denke, das ich nur einen kleine Fehler mache. Hier der Source code wie ich ihn zum test in die internen Assemble von WinAPE und WinCPC in im Maxam-Assembler eingeben habe:

    Code
    org&4000
    
    
    .j1	ld a,&ff
    	ld (tst1),a
    	jr j1
    
    
    .tst1	db 0
    	write "c:\cpc-test.bin"


    Beim Maxam natürlich nur WRITE "testcpc.bin" als letzen Befehl im Sourcecode.

  • DANKE !!!!!


    Das war es. Ich war mir sicher, das es sich nur um eine kleinigkeit handeln kann.