Beiträge von HAL6128

    [Ich muß hier dokumentationstechnisch unbedingt mal was verbessern, leider kommen verständlicherweise immer wieder die selben Fragen auf ]


    Die Doku ist doch sehr gut, nur nicht für Anfängerfragen auslegt, sondern für erfahrene Programmierer. Durch probieren kommt man manchmal auch an Ziel, dauert nur länger. Dafür ist dann der Erfahrungsgewinn größer. :D

    Auch eine leere (formatierte) Festplatte sollte ohne Fehlermeldung angenommen werden und ohne Fehlermeldung als "C:" Laufwerk zu sehen sein. Eventuell die Master/Slave Einstellung oder den festen Sitz der Kabelanschlüsse an der Festplatte prüfen, vielleicht kommt daher die "...not ready" Meldung?

    ...zuerst das Einbinden der Festplatte im Control-Manager/Mass Storage. Um darauf zuzugreifen startest Du SymbOS von der Raw-Disk. Am Emulator (WinApe) gibt keine Partition, am echten CPC musst Du eine angeben. Hat alles geklappt, legt Du die App-Disk ein und kopierst alle Daten auf die Festplatte (z.B. C:\), und legst den Systempfad entsprechend fest, damit dieser die Dateien finden kann. Dann speicherst du die Einstellungen (Start>Settings>Save) ab. Die werden vermutlich zuerst auf der Disk abgelegt. Einfach ins Root-Verzeichnis der Festplatte kopieren. Beim nächsten Booten sollte SymbOS diese auf der Festplatte automatisch finden/suchen.


    Errorcode 26? (= Device not ready lt. Doku) - komisch, sollte keine Festplatte konfiguriert sein, müsste doch Errorcode 00 ausgegeben werden (= Device does not exist?). Oder täusch ich mich hier?

    ...einen Header zur Datei hinzuzufügen sollte eigentlich gar nicht so schwer sein. Die 128 Byte enthalten folgende Infos (laut "Schneider CPC Systembuch"):
    Bytes... 00: User-Nummer / 01 bis 08: File-Name / 09 bis 11: Extension / 18: Typ-Byte / 21 und 22: Original-Adresse der Datei, von der sie gespeichert wurde / 24 und 25: Gesamt-Länge der Datei. / 26 und 27: Einsprungs-Adresse für Maschinencode-Programme. / 64 und 65: Prüfsumme über Byte 00 bis 66 / 67 und 68: Gesamtlänge der Datei.
    Tools wie ManageDSK können einen Header zur Datei hinzufügen bzw. bereinigen... . Grundsätzlich haben ASCII Dateien keinen Header und mit ManageDSK kann man wählen, ob die Datei als ASCII oder Binär hinzugefügt werden soll.
    Vielleicht hilft es weiter.

    ...der Delock Adpater mit separaten Stromanschluß funktioniert bei mir auch recht gut und zuverlässig. Beim Netzteil kannst Du ja eine Weiche aus Kupplung und Stecker bauen/löten. Diese Variante mit einem ähnlichen Netzeil habe ich in Kombination mit einem Mouse-Adapter gebastelt.
    Beim SF2 benutze ich ein (altes, bei Ebay gebraucht gekauftes) AT Netzteil, um auch noch eine 3,5" Floppy (und CPC ...) zusätzlich/parallel betreiben zu können. (Man muß lediglich nur aufpassen, da der 12V Anschluß anders gepolt ist.)

    ...ich hätte noch ein Frage hierzu:
    Ich disassembliere gerade eine Datei aus einem Demo von "Grim" mit dem Namen '800x600 Interlaced' "Code.bin"


    Hier werden zwei Mode 2 Overscan Bilder "geflippt". Das disassemblierte File schaut im JavaCPC o. auch WinApe wie folgt aus:



    Bei Adresse &FA07 gibt den Eintrag "DB &ED,&71" was ja laut http://www.z80.info/z80undoc.htm ein illegaler Opcode ist und eigentlich OUT F,(C) sein sollte. MAXAM selbst mach daraus zwei Befehlszeilen (einmal &ED mit ??? und dan &71 mit LD (HL),C) - egal.
    Wie kann ich mir illegale Opcodes beim Disassemblieren richtig anzeigen lasen? Gibt es so etwas?

    ...mir ist noch eine Kleinigkeit zum JavaCPC Z80 Assembler aufgefallen. Eventuell bediene ich den Assembler auch falsch?


    Ich assembliere z.B. folgenden Code im JavaCPC Z80 Assembler:

    Code
    ld a,"s"


    folgender Opcode wird erzeugt "3E 53"


    gleicher Code im z.B. WinCPC o. WinApe internen Assembler erzeugt folgenden Opcode "3E 73"


    Im JavaCPC Z80 Assembler werden die Kleinbuchstaben automatisch in große umgewandelt?
    Muß ich hier irgendetwas beachten, z.B. irgendwelche Einstellungen im Assembler?

    ...genau auf diesen Punkt bzgl. Breakpoints bin ich scheinbar gestoßen, da ich einen gesetzt habe, in der auch ein Label + Instruktion war.
    Vielen Dank auch für die weiteren Infos! Cool, die Funktion mit den Label suchen/setzen kann schon eine erste, schnelle Hilfe beim disassemblieren sein.

    @Devilmarkus
    "drei" Fragen zur Bedienung des Z80 Assemblers:
    1.) wie kann ich eine Schritt-für-Schritt Analyse eines MC-Codes starten und durchführen? Im WinApe oder WinCPC setze ich hierzu einfach einen Breakpoint im Source-Code, assembliere diesen und nach dem Starten öffnet sich automatisch der interne Debugger an der Breakpoint-Adresse. Im JavaCPC Z80 Assembler ist das nicht so. Ich habe den Debugger geöffnet und versuche Breakpoints (über den Debugger "set breakpoints" oder auch im Assembler direkt links der rote Punkt?) zu setzen, jedoch läuft das MC-Programm bis Ende durch, ohne am Breakpoint zu stoppen.
    2.) Was ist mit Anzahl der cycles bei "set breakpoints" gemeint?
    3.) Was ist mit den Funktionen "Firmware on/off" "Add Firmware labels", "Add quick labels", "exact maths" oder "WinApe kompatibel" gemeint?
    (hmm, doch mehr als drei Fragen? :) )

    @TFM... zu RoDOS eine Frage:
    1. Ist dies ein vollwertiger Ersatz zu AmsDOS?
    2. Ein Befehl (|DRIVE...) erlaubt das Wechseln vom logischen und physikalischen Laufwerk. Wäre das ein funktionierende alternative zum ABBA-Switch, der auch funktioniert, sobald Programme geladen und ausgeführt werden?

    @Devilmarkus
    eine Frage noch zu "Java CPCPaint":
    Sobald ich die Anwendung mit der "Overscan"-Einstellung starte, ist das Bearbeitungsfenster zu groß für meine Laptop-Anzeige (1366x768). Es lässt sich auch nicht in der Größe verändern. Hast Du einen Tip, wie man die Größe anpassen kann?

    Hier mal ein Basic-Programm (aus dem Systemhandbuch) zum Flipping-Thema (ist natürlich nicht ganz so schnell), funktioniert trotzdem ganz gut...:


    @Devilmarkus: Ich bin noch nicht ganz so bewandert mit der Assembler-Programmierung. Die OUT-Befehle haben ganz andere Port-Adressen, wie die im Basic Programm. Liege ich hier richtig in der Annahme, dass das Low-Byte &FF nicht benötigt wird, stattdessen gleich der zu übergebene Wert in OUT (C), C dargestellt ist? Hier habe ich auf jeden Fall nachholbedarf in Assembler! Dieser "CALL WaitVBL" für's Warten?, ist dies für den Zeilenrücklauf durch den Bildschirm gedacht?
    Und noch zwei Fragen: Funktioniert dies auch in Overscan? Ich habe mir die Screen-Dateien noch nicht im Detail angeschaut. Ab &C7D0 sind ja jeweils alle &800-Schritte &1F Byte frei für Daten (im normalen Bildschirmspeicher). Hast Du hier Code durch Dein CPCPaint-Programm abgelegt, für den CALL &C7D0, der die entsprechende Farbpalette einstellt?

    ...laut Prodatron ist der Akku wohl für die geladenen ROMs zum Puffern gegen Datenverlust gedacht, ev. wird damit wohl die Echtzeituhr nebenbei mitbetrieben (was ja auch Sinn machen würde.)
    Ich kann nur bestätigen, das der Akku inkl. der senkrecht stehenden Fassung fest verlötet ist.