@Norbert - willkommen an Bord beim CPM-65 für den Junior ][ Projekt
Dietrich
@Norbert - willkommen an Bord beim CPM-65 für den Junior ][ Projekt
Dietrich
Hallo Norbert,
Die liegen mit dem Rest des Projektes in einem privaten Repo. Ich werde dich dazu freischalten. Bitte schicke mir dazu deinen GitHub-Namen oder deine email.
Danke für deine Unterstützung
Dietrich
ZitatDanach habe ich hoffentlich den Kopf frei, um mal den CPM-65 Port von Dietrich zu testen.
So, ein erstes image 'CPM-65.IMG' und die dazu passende 'BootCPM65_FAT16.bin' liegen auf https://github.com/Dietrich-L für mutige Tester bereit. Lasst bitte den Jörg nicht die ganze Arbeit alleine machen ![]()
Dietrich
Kurzer Zwischenbericht von der CPM-65-Front:
BIOS und BOOT-Loader sind fertig und laufen auf meinem Testsystem. BDOS und CCP mussten nur bezüglich der Speicheradressen angepasst werden, ebenso die Programme.
CPM-65 bootet von einem Disk Image mit 1 MB Größe. 4 Images gleichzeitig sind als Drive A: - D: möglich. A: ist getested
Im Moment muß ich noch das Problem lösen, wie man dem BOOT-Loader mitteilt, wo der erste Block des zu bootenden Image liegt. Ich kläre das mit Jörg.
Ich benötige an dieser Stelle eure Unterstützung. Da ich nur einen stark modifizierten Original-Junior besitze und keinen JC-II, kann ich leider nicht auf der Original-Hardware testen. Da wären abenteuerlustige und frustrationsresistente Betatester hilfreich. Die gesamte Software liegt auf einem privaten GitHub-Repo. Wer mittesten möchte, möge sich bitte bei mir melden. Ich schalte euch dann frei, sobalt ein testfähiges Image vorliegt.
Dietrich
CP/M 2.2 kann schon von B: booten, leider unterstützt das aber das Standard-ROM der CPCs nicht. Normalerweise geht das interne A: ja auch …
Dietrich
Prüfe auf jeden Fall nochmal dein Kabel --> https://www.cpcwiki.eu/index.php/DIY:Floppy_Drives
Der GOTEK muss S1 gejumpert sein
In der FF.CFG habe ich:
interface = shugart
host = unspecified
pin02 = nc
pin34 = rdy
write-protect = no
side-select-glitch-filter = 5
track-change = instant
write-drain = eot
index-suppression = yes
head-settle-ms = 12
motor-delay = ignore
chgrst = step
Alles anzeigen
Damit läufts an meinem CPC464 mit DDI
PS. Natürlich brauchst du korrekte Images
Dietrich
Das ist absolut nicht trivial.
Lest mal hier: https://www.faulhaber.com/de/k…-zum-mikroschrittbetrieb/
Ich würde mich überzeugen, dass es tatsächlich ein Justageproblem ist und dann Justieren - zur Not mit einer bekannt guten Diskette.
Dietrich
Hallo zusammen,
ich habe mein CP/M-80 analoges Betriebssystem CPM-65 auf den Apple II portiert. Für Abenteuerlustige, die mal etwas probieren wollen, finden sich bootfähige Diskettenimages hier: https://github.com/Dietrich-L/…Apple-II/tree/main/Images
CPM-65 ist ein in Bedienung und Programmierschnittstelle an CP/M 2.2 angelehntes Betriebssystem, das nativ auf der 6502 läuft. Benötigt wird wenigstens 1 Diskettenlaufwerk und eine 80-Zeichen-Karte. 48k RAM reichen aus, das aktuelle System kann auch nicht mehr verwalten. An Software ist dabei ein Assembler, BASIC, FIG-FORTH und einige Utilities.
Die Software incl. Dokumentation liegt unter https://github.com/Dietrich-L/CPM-65-for-Apple-II/tree/main
Und ja, das ist nicht das einzige CPM-System auf der 6502 und dem Apple. Hinweisen möchte ich auf jeden Fall auch auf David Given's System ( https://github.com/davidgiven/cpm65 ), das auch eine ProDOS-Bootdisk zur Verfügung stellt.
Über Feedback, Anregungen und natürlich auch Fehlerberichte freue ich mich immer.
Dietrich
ZitatDas dürfte schwierig werden, wenn man die Images unter Windows, Linux oder MacOS speichert. Die Chance ist zwar bei einem leeren Datenträger groß, dass die Cluster alle aufeinander folgen, aber falls sich z.B. ein defekter Block auf der Platte befindet, kann das schon wieder ganz anders aussehen.
Ich hoffe, es ist nicht ganz so dramatisch. Moderne Datenträger haben nach aussen hin keine defekten Sektoren mehr, weil sie diese logisch ausblenden. Bei physischen Disketten ist das natürlich ein Thema, aber in meiner durchaus lückenhaften Erinnerung habe ich Disketten mit defekten Sektoren immer entsorgt…
Dietrich
Schreibe Einfach mal ein Paar ca. 1 MB große Textdateien *.txt auf eine FAT formatierte SD-Karte . Dann änderst du den Text, ohne die Textlänge zu ändern und schaust, ob sich die FAT dieser dateien ändert. Dazu brauchst du natürlich einen Disk editor oder du machst das mit einem disk image und schaust dir das Ergebnis mit einem Hex-Editor an.
Wenn die Clustertabellen stabil bleiben, ist alles gut.
Dietrich
ZitatDas mit den CP/M65 Imagefile in #1481 habe ich wohl nur halb verstanden, aber da sollte man bedenken, daß man niemals wissen kann, was ein PC mit so einer hochgeordneten Reihenfolge macht
ThoralfAsmussen Du könntest uns sehr helfen, indem du diese Frage mal mit einigen Experimenten klärst - Deal?
Dietrich
FAT12 würde ich nicht mehr in Betracht ziehen. Das benutzt niemand mehr. Keep it simple 😉
Dietrich
Das ist ja super. Wenn wir BOOT.SYS im Directory gefunden haben, haben wir die Nummer des 1. Clusters von Boot.sys. Das ist bei einer Clustergröße von 4k ausreichend für fast alles…
Wer sich für die Structur von FAT32 interessiert - ich habe meine Weisheit von https://www.pjrc.com/tech/8051/ide/fat32.html
Die Idee wäre dann folgende:
Man könnte im FAT-System Disk Images ablegen und diese mit einem kleinen Programm außerhalb von CPM-65 selektieren - auch mehrere auf einmal als Drive A:, B:, C: usw. CPM/65 würde dann jedes Image als disc sehen und wir brauchen nur Code um in dem jeweiligen Image den gewünschten Sector zu lesen oder zu schreiben. Sollte einfach sein, da CPM-65 intern mit 24-Bit-Sectornummern arbeitet. Im ROM brauchen wir dann nur Code, der absolute Sectoren auf der SD lesen und schreiben kann und im RAM brauchen wir eine Tabelle des jeweils ersten Sectors jeder gemounteten Disc. Wenn wir dann noch dafür sorgen, dass alle Images in lückenlos aufeinander folgenden Sectoren liegen, haben wir gewonnen. Maximale Größe der Images wäre 8 MB - ist eigentlich zu groß. Um die Software einfach zu halten, würde ich eine einheitliche Größe vorschlagen, z.B. 1 MB. Das ist noch übersichtlich.
Die Images kann man dann mit CIFE von HobbyProgrammer (Uwe Merker) füllen.
Dietrich
An welches DOS denkst du?
Dietrich
Ja, die Kunst des Mappens beim Apple muss ich noch studieren 😇
Dietrich
Im Prinzip funktioniert das. Dummerweise legt das Apple-ROM die Register in der Zeropage ab, was natürlich Probleme macht, wenn da andere Daten liegen...
Gibt es da eine Lösung. Am liebsten hätte ich einen klassischen BRK-Einsprung mit allen Registern im Naturzustand.
Dietrich
Vielen Dank für den Hinweis. Im Moment benutzt ich AppleWin mit Apple IIe-Emulation. Da scheint der Vektor auf $3F0 zu liegen. Kann es sein, dass sich das von Modell zu Modell unterscheidet?
Gruß
Dietrich
Gibt es eine Möglichkeit, den BRK Befehl auf einem Apple II auf eine eigene Routine umzuleiten?
Dietrich
Ich habe CPM-65 nun auf meinen getreuen Apple II+ portiert. Ging trotz aller Apple-Quirks recht gut.
Das ganze Projekt liegt auf GitHub: https://github.com/Dietrich-L/CPM-65-for-Apple-II
Das ganze ist sicher noch nicht perfekt. Kommentare und Fehlermeldungen sind immer willkommen.
Viel Spass
Dietrich
Das Original-Netzteil geht gut. Das 6V-Netzteil sollte auch gehen
...und dann einfach nach Zeit 8 Stunden lang aufladen???
:)Franky
Ja, 10 - 15 Stunden sollten ok sein. Die Eneloops sind da sehr tolerant.
Das Original-Netzteil geht gut. Das 6V-Netzteil sollte auch gehen - auf keinen Fall mit 9V laden.
Dietrich
Aha, gut zu wissen
Dietrich
Vielleicht liegt es auch an dem Kurzschluss den du mit der Brücke auf dem LED Jumper hast.
Hab zwar im Netz ein Foto gefunden wo das auch so ist, aber das sieht für mich nicht richtig aus.
In der Tat - mit dem Jumper hast du den LED-Anschluß kurzgeschlossen. Das könnte den Vorwiderstand kurzgeschlossen haben und dann die Sicherungen. Und dann wäre der Kurzschluss jetzt immer noch da. Also bitte den Jumper ziehen und Vorwiderstand, Sicherungen und anliegende Spannungen nachmessen.
Und wenn du dir da nicht sicher bist, suche dir bitte jemanden, der dir helfen kann. Es wäre schade um das Board...
Dietrich
Alles anzeigenBei dem Thema sind auch die Statistiken der Firma Backblaze (ein Online-Backup-Anbieter) immer sehr interessant:
https://www.backblaze.com/blog…aze-drive-stats-for-2022/
Die veroeffentlichen regelmaessig mal die Liste aller Ihrer Platten, welche davon wann/wie kaputt gegangen sind.
Die Erfahrungen decken sich auch ziemlich gut mit unseren/meinen Zahlen, ist auch immer ganz gut zu sehen, wenn einzelne Modellserien mehr Probleme machen (wie z.B. frueher die 3TB WDs).
Aber die Zeit der HDDs geht auch wirklich langsam zu Ende, die Dinger werden wirklich nur noch fuer Backups eingesetzt und so gehandhabt wie Tape frueher... Bei unter 50$ pro TB SSD Preisen auch kein wirkliches Wunder.
Die Backblaze-Statistik ist recht gut und sorgfältig analysiert. Danach fallen die Festplatte im Sinne der üblichen Badewannenkurve vor allem mit steigender Leendauer öfter aus (1-2 % pro Jahr im Dauerbetrieb. Für eine Analyse der Zuverlässigkeit bei gleichem Alter aber unterschiedlichem Herstellungsdaten reicht die Datenlage nicht aus.
Die Analyse von securedatarecovery ist sehr oberflächlich und ohne die konkreten Daten, die zugrunde liegen - also erstmal wertlos. Schade.
Die meisten von uns, die ihre Platten nicht 24/7 betreiben, dürfen sich auf ein langes Leben moderner Platten freuen.
Dietrich
Ja, habe ich --> das macht das Ergebnis schlechter !?
Mit dieser diskdef
diskdef cpcsys22
seclen 512
tracks 40
sectrk 9
blocksize 1024
maxdir 64
skew 2
# skewtab 65,70,66,71,67,72,68,73,69
boottrk 2
os 2.2
end
Alles anzeigen
bekomme ich
und DUMP.ASM sieht etwas verwurschtelt aus:
*¼) >¦*¼) wÃÏáó.å*¼)DM\ á
-Â+!\ 6 Íuìͱ:Ì)‡‡O !™ DMͱ*À)#"À)ÙÉ*¾)))))Ï)"¼)É:m þ Âw> É.Yn
-Â:YÖSÖŸõ:ZÖ ÖŸÁH¡Ò§!6>þÉ©Í
2Ì)þ ½ŽÍÒ>É!Í)6>!Í)¾Ú*Í)& ë*¼)>¦2Î)þ Ê÷:Í)þ Âð.Í*Î)MÍ:Í)<2Í)ÂÅTYPE FUNCTION
PRINTF EQU 9 ;BUFFER PRINT ENTRY
BRKF EQU 11 ;BREAK KEY FUNCTION (TRUE IF CHAR READY)
OPENF EQU 15 ;FILE OPEN
READF EQU 20 ;READ FUNCTION
;
FCB EQU 5CH ;FILE CONTROL BLOCK ADDRESS
BUFF EQU 80H ;INPUT DISK BUFFER ADDRESS
;
; NON GRAPHÉ
Alles anzeigen
Wenn ich die Sektortabelle aktiviere, sieht schon das Directory furchtbar aus...
Bin ratlos
Dietrich
Ich stehe auf dem Schlauch - mit CIFE kann ich zwar das Directory anzeigen, aber bei den Dateien sind die Sectoren durcheinander.
Was mache ich falsch?
Dietrich
Alles anzeigenHallo zusammen,
ich habe ein SCSI2SD was absolut nichts mehr macht. Ich kann nicht sagen was es hat.
Hat jemand irgend eine Idee wie man feststellen kann, was das Problem damit ist.
Ich stehe da völlig auf dem Schlauch. Von außen kann ich gar nichts erkennen.
Danke für jeden Tip.
VG
Doc
Das ist der ‚normale‘ China Clone. Funktioniert bei mir perfekt an einer DIY Schnittstelle am Junior Computer.
Ich würde als erstes mal die Spannungsversorgung nachprüfen.
Dietrich
Offensichtlich haben die CPC-Disks den Amstrad Superblock nicht.
Hier mal mein Image der CP/M 2.2 Systemdisk, das so auf meinem GOTEK läuft.
Lässt sich leider nicht korrekt lesen. Hier meine Diskdef, die noch am besten funktioniert:
diskdef cpcsys22
seclen 512
tracks 40
sectrk 9
blocksize 1024
maxdir 64
skew 1
# skewtab 41,42,43,44,45,46,47,48,49
boottrk 2
os 2.2
end
Alles anzeigen
ich probier noch etwas ...
Dietrich
Ah, deshalb hat das bei CPC Images nicht funktioniert...
Disk images findest du hier: https://archive.org/details/softwarelibrary_cpc
Die Systemdisc images hier: https://www.cpcwiki.eu/index.p…m_Disk#CPC464_.28DDI-1.29
Viel Erfolg ![]()
Dietrich
Ja, gab es. Ich habe die Ausgabe auch noch.
Und ja, mit einem AVR o.ä. Geht das heute viel einfacher und kompakter.
Dietrich