Posts by overCLK

    Z80 Kompilator, es gibt Versionen für Windows, Linux und MacOS. Aber wenn du die Makefile nutzen möchtest, dann finde ich besser Linux zu nutzen (anderenfalls du kannst auch manuell alles zusammen bauen)


    https://github.com/sjasmplus/sjasmplus/wiki


    Dass kann sein. Als gesagt, habe ich nicht vorsichtig die Offsets geprüft. Ich war zu froh, dass es so einfach gut scheint. :-)

    Ja, das ist richtig. Das neue Format hat 128-Directory Einträge. Ich habe gedacht, dass es besser wäre, als sie eine größere Disk ist.


    Viele Grüße

    Manuel

    Hallo netmercer.

    Das macht voll Sinn. Ich muss da alle die Offsets wiederholen.

    Es gibt auch ein Problem mit SELDSK. Ich habe das code verändert, aber ich kann noch C: und D: in CCP auswählen… komisch.


    Viele Grüße

    Manuel

    Seltsam war allerdings, dass der Parameter EXM = 0 der Literatur zu CP/M widerspricht. Sollte bei einer Blocksize von 2048 eigentlich 1 sein (DSM < 256), funktioniert aber bei 22DISK nur mit 0 richtig. Bei EXM = 1 geht 22DISK beim Kopieren der Dateien in eine Endlosschleife. Habe keine Erklärung dafür.

    Ja, du hast Recht. Es sollte eigentlich EXM = 1 sein. Ich werde probieren, wie es mit EXM = 1 mit meiner Image läuft.

    Grüße

    Danke PAW für die Infos.

    WENN DU overCLK nur die Patches von alt := zu neu in hexa darstellt?

    Damit sind die Stellpositionen genau zu betrachten.

    Gute Nacht und Grüße.

    Kein Problem, aber…

    Ich habe zuertst das CP/M Code in Assemblersprache umwandelt. Als mir ist es schwerer, mit der Assemblersprache der 8080/8085 zu arbeiten, habe ich die Entscheidung getroffen, Assemblersprache des Z80 zu nutzen. Ich weiß ja, dass die nicht ganz kompatibel sind, aber meisten meiner Tools funktionieren mit Z80 besser.

    Dann habe ich das Code komentiert und danach die Änderungen erstellt.

    Als Kompilator habe ich sjasmplus benutzt. Damit muss man vorsichtich sind, um kein Z80 specifisches Code zu nutzen, aber ja, das ist nur ein kleiner Nachteil, glaube ich.


    Anbei meine modifizierte CP/M Source aus der CP/M 0100H und auch die Makefile, die ich benutzt habe, um alles zusammen zu bauen.


    binaries/booter.bin -> Erster Sektor (MOS Boot)

    binaries/loader.bin -> CP/M Loader

    binaries/cpm.bin -> CP/M Binär

    binaries/sectors.bin -> CP/M Spuren


    src/cpm-orig.asm -> cpm.bin Assemblersprache

    src/cpm-mod.asm -> modifiziertes CP/M

    src/Makefile -> Um die Binäre zu generieren:

    src/cpm-orig.bin -> Aus src/cpm-orig.asm generiert. Soll gleich wie binaries/cpm.bin sein

    src/cpm-mod.bin -> Aus src/cpm-mod.asm generiert.

    src/cpm0100-orig.bin -> Generierten CP/M Spuren

    src/cpm0100-ds.bin ->Modifiziertes CP/M (mit Booter und Loader).

    Files

    • cpm-p2.zip

      (93.25 kB, downloaded 10 times, last: )

    Ich überlege was die Unterschied sein kann.


    Ich nutzte ein Gotek mit dem Flashfloppy Software. Ich brauche nicht das DSK Image in einem HFE oder IMD verwandelt.

    Ich kann einfach das DSK-Image direkt nutzen, und ich vermute, dass es auch möglich mit dem HxC Software ist.


    Es konnte sein, dass es Probleme mit dem Verwandlung gibt, aber das R/O Meldung hat noch nie bei mir passiert.


    Das bedeutet natürlich nicht, dass es ein Problem mit meinem 320Kb DSK Image nicht geben könnte. Aber als gesagt, habe ich alle die Dateien im Disk-Image löschen ohne Fehler.


    Anbei ein Disk-Image mit den typischen CP/M Anwendungen (TPA 0100H). Bitte probiert mal, ob dein Gotek mit HXC kann das direkt unterstütz.


    Grüße

    Files

    Hallo helwie44.

    Entschuldigung, aber ich bin nicht sicher darauf, was du prüfen möchtest. Es sieht mir aus, dass du Probleme mit dem Löschen hast, oder?


    Ich habe mit meinem modifizierten Image getestet, dass ich alle die Dateien ohne Fehler löschen kann. Sie bitte mal:




    Deshalb weiß ich nicht, warum es mit deinem modifiziertes Image nicht richtig läuft.


    Wenn du möchtest, kann ich einfach ein Disk-Image bauen, dass die Dateien die du willst erhält. Damit kannst du vielleicht einfacher probieren.

    Schickt einfach bitte mir diese Dateien und ich werde gern so ein Image generiert. Eingentlich habe ich Zork benutzt, weil ich das Spiel mag und ich möchte die drei Versionen in einem Disk-Image stecken. :-)

    Hallo noch mal,


    anbei vorläufige Version der Anwendung.

    Man braucht mindestens Java 8, um sie zu laufen

    Es sind drei Ausgabeformaten ünterstutzt:

    - Disk-Image für CP/M 2.2 4300h TPA

    - Disk-Image für CP/M 2.2 0100h TPA

    - Disk-Image für CP/M 2.2 0100h TPA und doppelseitig.


    Man kann direkt normalle Dateien durch Drag-and-Drop von der Arbetisfläche zu der Anwendung zu importieren (oder auch exportieren).

    IMD Images für Alphatronic P2 sind auch unterstütz (einfach Drag-and-Drop sie drin)




    So generierten Images kann man direkt mit einen Gotek in der Alphatronic nützen.


    Viele Grüße

    Manuel

    Hallo.

    Ich glaube, dass ich es geschafft habe! :-)

    Anbei eine Diskette in dem Format DSK (doppelseitig), die man direkt mit dem Gotek nutzen kann.


    Die Diskette enthielt modifizierten System-Spuren, die doppelseitige Disketten verstehen. Dafür habe ich den DPB und CP/M Code verändert. Ich habe die drei Zork Spielen dazugefügt, um zu überprüfen, dass das Format gut funktioniert.


    Dieses CP/M ist nicht mehr kompatibel mit einseitigen Disketten. Ich weiss noch nicht, ob es genug Zeit für beiden DPB ist. Ich soll auch das Code im SELDSK modifizieren, um nur 2 Disketten zu erlauben (A: und B:).


    Danach werde ich diese Veränderungen in meiner Anwendung einreihen.


    Grüße


    Manuel

    Files

    • zorks.zip

      (210.75 kB, downloaded 7 times, last: )

    Hallo helwie44. Vielen Dank! :-)


    Ich habe auch ein bisschen darauf gearbeitet. Der Maschinencode wurde untersucht und dort habe ich identifiziert, wo Veränderungen nötig sind.

    Nun brauche ich etwas Zeit, um diese Veränderungen zu überprüfen. Aber ich glaube, dass wir nah sind. :-)

    Hallo Helwie44. Das Problem war, dass im deinen Beispiel 0E00H statt E000H als Ablageadresse steht . Ich habe nochmal meinen Loader untersucht und du hast Recht, es sollte E000H sein, wie hier:


    im deinen Beispiel:


    Die Adresse ist klar E000 but dann gibt's ein Fehler im disassemblierten Code (0e00h), oder?



    Grüße

    Hallo Helwie.

    Informationen über DPB und die Tabelle mit der EXM/BLS/DMS Kombinationen habe ich im generischen CP/M 2.2 Handbuch gelesen (Kapitel 6). Wie hier:

    http://www.cpm.z80.de/manuals/cpm22-m.pdf


    Was ich noch nicht gut verstanden habe ist, was an der Adresse F600H liegt. When ich dieses Code lese:



    denn verstehe ich, dass CP/M an der Adresse 0e00H geladen wird, oder? Dort sind 1B00H Byte geladen. Das bedeutet, dass die geladene Daten von 0E00H bis zu 2900H gehen. Aber nach dem Laden wird F600H angerufen (im 16K extra RAM Bereich?). Was ist denn dort nach dem Start?


    Viele Grüße

    Hallo Helwie44. Danke noch mal :-)


    Das war bei mir die fehlende Informationen! Deshalb wird der Lader von Sector 2, Track 0 geladen. Prima!


    Damit könnte ich auch die Quelle untersuchen. Ganz Einverstanden, dass wir auch Veränderungen im Code brauchen, um die zweite Seite zu lesen, wenn die Spur über 39 ist.

    Daher muss um auf 320 kB zu benutzen, die cp/m CLUSTER mit 16 Bit eingerichtet. Oder alte 8 Bit Cluster aber auf neu 2 Kb Größe eingerichtet werden??!!

    Sonst schau mal in die DR - cp/m Anpassungen - Guide / Unterlagen.

    Ich glaube, dass die erste Kombination nicht möglich ist. In CP/M Handbuch habe ich so gelesen:



    Es sieht aus, dass die Kombination BLS 1024 mit mehr als 255 Blöcke nicht möglich ist. Deshalb sollten wir die BLS nach 2048 Byte erweitern. Meine modifizierte DPB ist für BLS 2048 gültig und habe ich sie mit meiner Anwendung und dem Gotek geprüft. Ich habe damit Programme erfolgreich geladen (natürlich nur auf die obere Seite).




    Kommt schon später.....von mir im Quellcode, hoffentlich.

    Ich freue mich darauf! :-)

    Ich vermute, dass wir die Implementierung des BIOS SETTRK verändern müssen , oder?



    Viele Grüße und viel Spaß mit der Modifizierung des Codes. :-)

    Ich habe es versuchen, das DPB zu modifizieren.

    Es sieht aus, dass es an der Stellung 195CH der ersten Systemspur liegt.


    Statt '20 00 03 07 00 97 00 3F 00 C0 00 10 00 02 00' habe ich '20 00 04 0f 00 9B 00 7F 00 C0 00 10 00 02 00' als DPB geschrieben, und danach habe ich so eine Diskette preparieren.

    Es sieht aus, dass es nicht genug um das doppelseitiges Dinge zu schaffen ist. Die Dateien auf der ersten Seite funktioniert gut (auch alle die Dateien kann man gut mit DIR gucken), aber ich vermute, dass wie sollten den I/O Programmteil zu bearbeiten, damit wir die zweite Seite lesen können (wenn die Spur grosser als 39 ist, sollten wir die zweite Seite lesen…)

    Deshalb möchte ich die CP/M Spuren untersuchen. Aber ich bin nicht sicher, an welche Address wird der Bootcode geladen.


    Die Anfangbefehle sind I FF80, FFFF und dann UFF80, FC00. Aber was ist eingentlich um FF80 von der Diskette als Wirkung geladen?


    Damit möchte ich die CP/M Spuren studieren um zu verstehen, welche Veränderungen nötig sind. :-)


    Viele Grüße

    PRIMA Lösung AlphaTronic - GOTEK Verbindung

    Mit deiner overCLK Zwischenplatine hast du eine sehr gute professionelle Lösung geschaffen.

    Vielen Dank helwie44. Es ist noch nicht ganz fertig, aber fast. :-)

    Bei deinem GOTEK ( Frontseite) ist ja ein USB-Stick zu sehen. Hast du zusätzlich ein erweitertes DISPLAY eingefügt? Evtl. könntest du eine ganz kleine Anleitung für sowas hier für alle anderen darzustellen. Auch alle Optionen von der Anschlussplatine mal zeigen.

    Ja genau. Eigentlich habe ich auch ein Gotek-Klon entwerfen. Das ist doch kein originales Gotek, und es unterstützt mehrere Optionen des Flashfloppy Software (SD-Karte, zukunft zweiterer Laufwerk Simulierung, Anschlusse für Q-Encoder, I2C Display).


    Die Anschlussplatine unterstützt auch ein normalles Shugart-Pinbelegung (noch nicht geprüft :-) )


    Die Lösung hat ja ein OLED-Display (links) und auch Q-Encoder (rechts) , was ich bequemer als die Knöpfe finde.

    Ich werde natürlich alle Informationen bereitstellen (auch Platinen und 3D Design) wenn es fertig ist.


    Zu einer TA P2 - oder ähnliche Maschinen - cp/m Version ( doppelseitige )habe ich schon länger im Kopf. Wenn ich etwas noch Zeit dazu komme, mache ich mal eine 360 oder 320 kB für ein cp/m, erst zu 100h TPA DIRVE. A: (320) , B:(320) und C:(160) mit LW1 sowie D:(160) mit LW2. Damit wäre von TA P2 Standard Cluster-Index auf 8 Bit - und zu neu CLUSTER-Index auf 16 Bit per cp/m per PIP Übertragungen möglich.

    Das durchdenke ich mal ... demnächst.


    Grüße Helwie44

    Meine Anwendung unterstütz nun auch doppelseitige Image-Dateien. Aber ich glaube, dass wir eine modifizierte CP/M (Disk Parameter Block) brauchen, damit es richtig funkzioniert, oder?

    Hier wäre meine Idee die CP/M-Tracks untersuchen und zu finden, wo die DPB liegt. Was denkst Du?



    Hallo helwie44. V ielen Dank für alle die Informationen, die Du hier angepasst hast.


    Wenn ich es richtig verstanden habe, denn kann man nur dopelseitigen Disketten nutzen, als ob sie zwei verschiedene Disketten wären (A: und C: oder B: und D:), oder? Es gibt nicht die Möglichkeit, beide seite zusammen als ein 360 Kb Diskette zu nutzen ?


    Ich arbeite gerade in meinem Gotek-Ersatz für die Alphatronic P2(U). Da hinten sind einige Fotos vom Prototyp. :-)


    Viele Grüße

    Manuel





    You're welcome. This is in fact an interesting discussion.


    At the end, custom chipsets were there to save costs and power consumption. We can either emulate the bare 74LS logic or the custom chipsets with CPLD/FPGA solutions. Do I like it? Well, it's a solution. What I don't like is hearing that this is the real thing, like I have heard lots of times. It's just emulation at a different layer, is'nt it? ;-)


    I have one of my Spectrum ZX running on a Nebula replacement and it's somehow a satisfactory approach. It would be better to have the real thing, but… from an user perspective you cannot tell the difference unless we are talking about some artifacts of the original device. But for 99,9% of the requirements, it is OK.


    And at the end, at least in my case, I do this just for fun. And trying to implement a system or part of it on CPLD/FPGA logic can also account for fun. And it forces us to understand all the low level details of the target system.


    What I'm not for is a methacrylate box emulating everything on a chip, with HDMI output and not even the original I/O ports. But of course I understand they also have their addepts, and I'm not against it. But I think the original spirit is somehow lost. :-)


    Anyway, let's see what the future brings. But what today is stock material, maybe it's not anymore in some years.

    Interesting thoughts.


    I guess the situation will become more or less the same for other computer systems. It's even worse for those that are not easy to find, or used not the most common hardware solutions.


    The problem is that as time goes by, replacements will be more and more difficult to find. Nowadays it's easy to find for instance, any DIP packaged 74LS chip, or the most common processors/controllers of the 80's. But I fear that it will become more and more difficult in the future.


    So maybe in some years, we will have to rely to emulation (software or CPLD/FPGA) to keep the computer running. I consider that emulating by hardware a whole system like the Alphatronic P2, specially with the documentation currently available, is a huge task, but maybe the future only option. There are, of course, lots of possibilities:

    - Keep the main chips (controllers, , emulate the additional logic with CPLDs) and provide replacements based on CPLD + main chips for the different cards

    - Just emulate the whole system on a single chip (FPGA), but providing connectors for the representative parts (floppy, composite video,...) or even provide a backplane replacement enabling old working cards to be connected (disabling emulation for those parts).


    Regarding the case, I suppose that nowadays plastic injection molding is the only technique providing a decent result. I made 3D printed replacements for some computers (half a case for an Atari ST somebody cut away), or cases for different peripherals,.. but of course it's not the best solution (it's a home printer anyway, maybe the professional ones provide better results). Plastic injection seems to be also very expensive unless you have a good amount of requests. The Alphatronic P2 has additionally a huge case. :-)



    But at least for me the question is, at what extent a computer is still the same computer if we replace its components. :-)

    I'm OK with changing the power supply, or replacing a floppy drive with a more practical emulated solution(flashfloppy, Hxc). But replacing the brain of the computer with something emulated… that is another story. Of course if there is no other option, I would be ok with a new brain as far as I could keep the case and the keyboard as it is. I would also replace the CRT with a LCD solution, keeping the same case.


    For me, the retro computing is a lot about the feeling. I don't feel the same touching my very first Amstrad CPC6128, or typing on my Northstar Advantage (the first one I used at school) than on some software-emulator. It's about the noise they make when you turn them on, the feeling of the keys, the ritual of inserting a disk in the drive, typing a command, and hear the disk spin and the head moving (even how the CRT smells when it gets warm),... Feelings that bring me back to that age. Yes, sorry, I'm getting old. :-)


    But of course, nothing lasts forever (and neither do we). And being able to keep the original ROM contents and emulate all the peripherals would be enough to at least keep some distant echo of how the thing looked like and worked. Let's say we will have a photo of the real thing, but not the real thing.


    Just my two cents. ;-)