Beiträge von schneiderfan

    Jup, ich Spiele mit dem EMU-CPC und als original habe ich einen zx81(48kb) mit einer c64-Floppy am laufen.
    Probiere gern mit dem Z80-Prozessor(wie der zx81) rum und da bietet sich der CPC-EMU (APE) an.


    Habe gerade das z88dk-c am gange. Bediene damit den zx81 und den EMU-CPC.


    mfg

    Hallo, hier unter "T" tauchen 4 dsk mit Turbopascal 3.0a auf für den CPC.
    Ich schaffe die nicht runter zuladen.
    Bei mir kommt die Fehlermeldung seit gestern: Teilnehmer meldet sich nicht in der vorgegeben Zeit...hmm. dann wird die Verbindung abgebrochen.


    Kann die mal einer versuchen die runterzuladen?


    <!-- m --><a class="postlink" href="http://roms.zophar.net/amstrad-cpc">http://roms.zophar.net/amstrad-cpc</a><!-- m -->


    mfg

    Habe jetzt eine eigene Lib erstellt, für eine einfache Grafik.
    Bin folgendermassen vorgegangen:


    1. z88dk installiert auf Laufwerk d:


    2. die cpcrslib 2.0 runtergeladen und in z88dk eingebunden:
    - cpcrslib.lib nach d:\z88dk\lib\clibs
    - cpcrslib.h nach d:\z88dk\include
    Damit kann man nun eine Printausgabe auf dem CPC-Screen darstellen.


    3. 6 Asm-Dateien angelegt :
    cpc_draw_a.asm
    cpc_draw_r.asm
    cpc_move_a.asm
    cpc_move_r.asm
    cpc_plot_a.asm
    cpc_plot_r.asm


    ASM-datein befinden sich im Anhang.


    4. eine Datei "cpcgraflib.h" angefertigt:
    #define _CPCGRAFLIB_H
    extern void __LIB__ cpc_draw_a(int x, int y);
    extern void __LIB__ cpc_draw_r(int x, int y);
    extern void __LIB__ cpc_plot_a(int x, int y);
    extern void __LIB__ cpc_plot_r(int x, int y);
    extern void __LIB__ cpc_move_a(int x, int y);
    extern void __LIB__ cpc_move_r(int x, int y);


    5. eine Datei "cpcgraflib.lst" angefertigt:
    cpc_draw_a
    cpc_draw_r
    cpc_plot_a
    cpc_plot_r
    cpc_move_a
    cpc_move_r


    6. dann die Lib erstellt (der Assembler liest die Dateien aus der "lst") und
    in die Verzeichnisse kopiert :

    z80asm -v -xcpcgraflib.lib @cpcgraflib.lst
    copy cpcgraflib.lib d:\z88dk\lib\clibs
    copy cpcgraflib.h d:\z88dk\include


    7. dann eine "test.c" angefertigt:


    und so compiliert :


    d:\z88dk\bin\zcc +cpc -create-app -make-app -O3 -o test.bin test.c -lcpcrslib -lcpcgraflib -lndos


    Nun kann man die "bin" oder "cpc" einlesen ab Adresse "0x4000"


    vorher "memory &3fff" den Basicspeicher runtersetzen.


    Das wars.


    mfg

    Beim Starten des CPC wird immer die erste Routine angesprungen im ROM, hier :DB "JAVARO","M"+&80 . Ist das beim ROM immer so?


    Ich weiss nicht wie ich das verhindenrn kann.
    Würde da jetzt schon ein richtiger grosser Programmablauf stehen, würde der ja schon losrennen, obwohl ich es noch nicht möchte. Geht das nur durch ein Dummy setzen?


    mfg


    RSX_TABLE: ;HIER BEGINT DIE NAMENS-TABELLE.
    DB "JAVARO","M"+&80 ;DER NAME DER INIT ROUTINE
    DB "SHO","W"+#80

    Ich meinte ein Startfähiges winziges ROM als Source-ASM-Beispiel an einem Platz 8 zb und dann mal Testen.


    Es muss ja, um vom CPC erkannt zu werden, bestimmte Eigenschaften besitzen. Und dann darin der Ablaufende Code, der dann mit |start zb abläuft.


    Das interessiert mich, weiss jetzt nur nicht wie ich das da oben kürzen muss um einen kleine Demo für den EMU zu haben.


    Danke.


    mfg

    Ist eine gute Idee ein ROM zuhaben, welches eine Verbindung nach aussen Knüpft. In welchen Schacht kommt dieses ROM rein?


    Mich würde einmal der Aufbau des ROM als ASM vom Grundsystem interessieren, wie überhaupt dieses ROM im Schacht erkannt wird und aktiviert wirdvom CPC.


    Es könnte dann hier vom USER viele Ideen zum Ausbauen einfliessen, der ein bisschen ASM kann. Man kann es auch nennen : Spiel ohne Grenzen mit EinschubROM.


    Vorraussetzung ist , das es kompatibel ist in anderen EMUS.


    mfg

    Ich versuche 1 Lib zu erstellen mit 2 Routinen. Die Lib werden Sauber kompiliert, es kommt keine Fehlermeldung.
    Wenn ich meine Testdatei dann Compilieren möchte mit der Lib, wird keine "bin" und keine "cpc" erstellt.


    Hier mal mein Democode:


    Datei : some1.c

    Code
    void __LIB__  test_initialization1()
    {
    // test code
    }


    Datei : some2.c

    Code
    void __LIB__  test_initialization2()
    {
    // test code
    }


    Werden hiermit compiliert :
    zcc +cpc -vn -make-lib -Wn43 some1.c
    zcc +cpc -vn -make-lib -Wn43 some2.c


    Es entsteht some1.o und some2.o


    Datei : some.lst

    Code
    some1
    some2


    Diese wird so compiliert:
    z80asm -d -ns -nm -Mo -xsome.lib @some.lst


    Es ensteht eine some.lib.


    Dann habe ich noch die h :

    Code
    #ifndef _MYHEADER
    #define _MYHEADER
    extern void __LIB__ test_initialization1();
    extern void __LIB__ test_initialization2();
    #endif


    Die some.lib kommt in den Ordner "clibs" und die some.h kommt in den Ordner "include"


    Das ist die Testdatei: test.c


    Die wird so aufgerufen :
    d:\z88dk\bin\zcc +cpc -create-app -O3 -o test.bin test.c -lcpcrslib -lndos


    Es wird nur eine def erstellt mit diesem Inhalt, also keine Fehlermeldung :

    Zitat


    IF !DEFINED_ANSIstdio
    defc DEFINED_ANSIstdio = 1
    ENDIF


    DEFINE DEFINED_myzorg
    defc myzorg = 16384


    Die cpc-datei und bin-Datei wird nicht erstellt.


    Wo liegt der Fehler.


    mfg

    Es gibt auch vorgegebene Poke/Peeks :


    wpoke (Wordadresse,Word)
    bpoke (Wordadresse,Byte)


    Wordvariable = wpeek(Wordadresse)
    Bytevariable = bpeek(Wordadresse)


    Das Tempo dieser Befehle ist noch schneller als über die Zeigervaribale.
    Erreicht ca 95% reiner Assemblercode der selbst erstellt wurde nach dem schnellsten Kriterium.


    Ich muss sagen: Super Sache um den CPC auf Renngeschwindigkeit zu bringen. Wer dieses z88dk verkennt und meint es gibt etwas besseres , welches so klar programmiert werden kann , der ist auf dem falschen Dampfer. Man kann mit diesem z88dk dem CPC bis auf den Systemkern gehen und programmieren, evtl sogar ein eigenes DOS erstellen.


    Was "C" nicht schafft, schaffen die kleinen ASM-Inline-Befehle die man reinspicken kann.


    Mal sehen ob bald einpaar CPC-Fans anbeissen, die Programmierlust haben und dieses z88dk benutzen. Wenn man drin sitzt kommt man nicht mehr los. Die Neugierde , etwas Neues zu schaffen damit ist sehr gross.
    Man kann hier auch die scheu für die Sprache "C" überwinden, weil es ohne frust zum Erfolg kommt.



    Fehlt noch move_r und move_a (Relativ und Absolut) :