Der tiefste Wert für Binärprogramme?

  • Das ist eine Firmware-Routine, die die Background ROMs sucht und initialisiert.


    Aufruf mit CALL &BCCB. In DE übergibst du die Startadresse des freien Speichers, in HL die Endadresse. Die neuen Speichergrenzen kommen dann auch in den gleichen Registern zurück.


    Das dürfte eigentlich reichen, um dir Routine zu benutzen, aber ein Blick in irgend ein Fimware-Handbuch oder ROM-Listing schadet sowieso nicht, wenn du Assembler programmieren willst...Das hier sollte fürs Erste reichen: <!-- m --><a class="postlink" href="http://www.cantrell.org.uk/david/tech/cpc/cpc-firmware/">http://www.cantrell.org.uk/david/tech/cpc/cpc-firmware/</a><!-- m -->

    Nilquader of SPRING

  • Zitat


    Das CPC-OS reserviert immer 4 KB als Puffer für OPENIN und OPENOUT.


    Warum wir denn hier in der Demo dann auch noch einmal 2k reserviert für Open?


  • Zitat


    OPENOUT"!D"
    MEMORY 386


    Der Wert 386 kann je nach angeschlossenen ROMs auch z.B. auf 370 reduziert werden. Ok?


    Also dat funktioniert mit einer Binärdatei die ich dort starten möchte nicht. 8)


    Habe auf 386 reduziert mit memory und dann die Binär nach 387 hingeladen und mit call gestartet. Die Binär wurde auf 387 compiliert.
    Rechner stürzt ab....:roll:


    Habt ihr es schon mit einem Bin-Programm geschafft?


    Gruss

  • Zitat


    Naja, ich kenne da auch eine Möglichkeit Programme an Adresse &0000 beginnen zu lassen,


    Das ist kein problem, wenn Roms ausgeblendet werden, das möchte ich nicht.
    Habe es auch schon getestet.


    Gruss

  • Der grosse Vorteil eines Programms mit Startadresse 0 liegt darin, dass man alle RST Vektoren benutzen kann. Ausserdem kann man sich ab &0038 auch seine eigene Interrupt Routine einbauen.


    Wer macht das schon, ich wär schon froh wenn sich einige für "c" auf dem Cpc interessieren würden. Oder wenn das zu Hoch ist für den Anfang, mal über Basic schwafeln....und mal erlebnisse schildern.
    Zur Zeit bin ich der einzige Fragesteller hier, wenn es um Progsprachen geht... :shock:


    Gruss

  • Wenn ich mal Zeit hab seh ich mir auch mal den z88dk und den sdcc genauer an. Zeit ist eben immer Mangelware.


    Steht auch schon einiges im Forum.
    Habe Tagelang mit dem sdcc und z88dk gespielt.
    Jeder hat für sich Vorteile und Nacheile. Ist schon kurios.
    Der eine kann gutdie Floatroutinen berechnen und ausprinten , dafür kann er keine Diskbefehle und der andere macht es umgekehrt. Also beide sind nur halbfertige Sachen, wenn man genau hinter die kulissen schaut.


    Jetzt spiele ich mit dem ccz80 und der mach bis jetzt alles perfekt, was ich von den anderen gefordert hatte und die es nicht erfüllen konnten.


    Mal sehen.

  • Der z88dk kann die Floatroutinen besser als der sdcc.
    Der z88dk kann Ascii nach Float und umgekehrt , der sdcc nur von Ascii nach Float und nicht zurück zum Ausprinten.


    Der ccz80 kann alles.... :D


    Der ccz80 hat 99% der Basicbefehle umgesetzt in ASM bzw zur c-Benutzung.


    So sieht unten eine selbstgebastelte drawLine aus mit ccz80 (aus dem ccz80-Forum). Drawline gibt es ja beim CPC nicht:
    __gra_move_absolute usw sind schon vorgeben, gehören zum Grundgerüst.




    oder mit einem Zeiger den Bildschirm füllen:

  • Gemäss aussage von Octoate wird dort ein Interrupt misshandelt für das z88dk. Weil das z88dk nicht nur für den CPC ist ,hat es eine ungünstige Streuwirkung richtung CPC. Hab mehrer Tage damit verbracht.


    Ich möchte eigentlich nur eine an "C" angelehnte Sprache, die auch wirklich die CPC-Eigenheiten berücksichtigt und schnell ist.
    Man kann für einen 8-Bitter nicht erwarten, das man es mit Ansi-C programmieren kann, es geht nur Andeutungsweise.
    Wenn man hinter diese C-Compiler schaut, sei es z88dk, sdcc und für den 6502, dann sieht man hinter den kulissen, das ein C-Wort zb "printf" für verschiedene Rechnertypen mit dem gleichen Prozessor mehrmals schlecht angefertigt wurde und der spezifische Rechner zu seiner Routine springt.


    Also können wir hier nicht vom vollwertigen Ansi-C sprechen.


    Für mich reicht es , das es an "C" angelehnt ist, den Rechner fehlerfrei bedient und schnell ist und vor allem fast 100% der Befehle kennen soll.
    Das ist "ccz80".



    Wer meint , er möchte vom Basic weg , aber kein ASM zu 100% proggen , dem kann ich "ccz80" ans herz legen ohne schlaflose Nächte zu bekommen.


    Gruss

  • C für 8bitter ist schon möglich. Es gibt schließlich auch diverse 8Bit-Microcontroller mit erstaunlich guten C-Compilern. Klar ist c dafür nicht gemacht, und man muss einige Spezialitäten bei 8Bit berüchsichtigen, aber möglich ist es schon. Gerade der sdcc ist erstaunlich ansi-kompatibel.


    Ich würde ccz80 nicht benutzten, alleine da ich keinen Quellcode für den Compiler bekommen kann. Und wie das nunmal so ist, hat irgendwann ein Hobby-Entwickler (besonders in der 8Bit-Szene) keine Lust mehr, sein Produkt weiterzuentwickeln. Und dann sitzt man da mit einem Compiler, der nur unter einer veralteten Windows-Version läuft oder schlimmstenfalls mit einem Haufen wertlosen Code.


    Dann doch lieber sdcc - da kann ich auf (fast) beliebigen Ansi-C-Code zurückgreifen, und wenn ich was CPC-spezifisches mache, kann ich ja überall Assembler einbauen und alle Firmware-Routinen (und damit, falls ich das will, auch einen Großteil der Basic-Befehle) nutzen. Mit dem sdcc spiele ich derzeit ein bisschen und bin auch schon ziemlich zufrieden - selbst das NC100 lässt sich damit recht einfach programmieren. Was ich derzeit programmiere bleibt aber erstmal BASIC, Assembler oder eine Mischung daraus.

    Nilquader of SPRING