Beiträge von freitz85

    Hallo, ich würde in den nächsten Tagen PCBs für den MFM-Emulator bestellen.

    Die Bestellung geht direkt an David, den Designer des Boards. Der Preis pro Platine ist 15$ plus einen kleinen Anteil am Versand, der nicht hoch sein wird, weil ich sie nur in den USA versenden lassen muss und ich sie in ein paar Wochen selbst mitnehmen kann.


    Bei Interesse bitte innerhalb einer Woche eine PM an mich.

    Sorry, mein Fehler, die Datei heisst Format.com. Das ist aber nicht die selbe, wie von der IBM Version, da sich das Diskettenformat ja grundsätzlich vom IBM-Standart unterscheidet! Das Programm kommt von Victor und war Teil der OEM-Anpassung von MS-DOS. Leider Fehlt diese Info in den Veröffentlichten Quellen zu (IBM-) DOS 1.25, aber Version 2 enthält die entsprechenden Hinweise, wie ein OEM die Hardware-spezifischen Teile anpassen kann, in dem man bestimmte Funktionen und Interfaces bereitstellt.


    Ich habe meine unfertiges Disassembly vom Victor-Format.com einmal hochgeladen, das kann entweder mit IDA Pro 5 geöffnet werden, oder als Html angesehen werden. Ich glaube er ist nicht zufrieden mit dem was er von der Diskette zurückliest. Leider habe ich aber noch nicht herausbekommen, was eigentlich zuerst geschrieben wurde. Hängt aber auch damit zusammen, dass es das erste Mal ist wo ich in größerem Maße mit x86 Assembler zu tun habe.

    Danke für die Messungen, das sind wichtige Informationen!

    Wenn ich meine Messungen umrechne, dann komme ich auf die folgenden Werte verglichen mit den rotational periodes aus dem SM:

    Track 0: -1,78%

    Track 4: -1,58%

    Track 30: -2% (sollte mit 199,9 ms den 300 rpm entsprechen)

    Track 70: -2,19%

    Track 71: -1,6%


    Diese Werte sind also leicht außerhalb der 1,5% die im Service Manual für das 300 rpm Laufwerk angegeben ist, wobei dies allerdings kurzzeitige Veränderungen von bis zu 3% erlaubt. Ich Laufwerk und Antriebsriemen nochmal gründlich reinigen und melde mich dann wieder. Es würde mich allerdings doch sehr wundern, wenn nicht doch einer der 6522 irgendwie seine Schuld dran hätte, vor allem weil bei den Reparaturen in anderen Foren das immer zum Erfolg geführt hatte.

    Die selbe Vermutung habe ich ja auch. Der Riemen sieht allerdings noch gut aus, aber man kann ja nie wissen.

    Statt das optisch zu kontrollieren kann man aber eben auch die Tachopulse des Motors nehmen, wenn man weiß, wie viele der pro Umdrehung ausgibt. Genau dafür müsste mal jemand an einem normalen TM100 an Pin 1 oder 2 am Servo Board nachmessen, was da für eine Frequenz anliegt, wenn das Laufwerk auf die korrekten 300 rpm eingestellt ist. Dann kann man ausrechnen, ob meine Messungen zu den angegebenen Werten im SM passen.

    Beim V9000 kann man nichts von Hand einstellen, da die Regelung komplett von dem Microcontroller übernommen wird. Der BIOS-Call um einen Sektor zu lesen oder zu schreiben sendet vorher selbständig den entsprechenden Wert anhand der Tracknummer an den uC, der daraus wieder einen DAC-Wert macht, der zur Ansteuerung der Laufwerks-Servos verwendet wird. Die Tacho-Pulse des Servos werden vom uC für eine Regelschleife verwendet.

    Statt des Potis bei den normalen Laufwerken ist das hier durch den uC ersetzt, den man den sogar noch individuell programmieren könnte, wenn man andere Drehzahlen als die der Default-Tabelle haben will, die vom Bootrom geschrieben werden.

    Hallo as58,

    du hast recht, es sind keine "ganz normalen" TM100-4, sondern welche ohne Digital- und Analog-Platinen am Laufwerk. Das wird für beide möglichen Laufwerke zusammen auf der zweiten großen PCB im Computer gemacht, wo die variable Drehzahl von einem 8748 uC gesteuert wird. Außerdem sitzt da auch der ganze GCR De-/Encoder, sowie das Analog-Geraffel drauf.


    Das mit den Rotational Periods hatte ich auch als erstes im Fokus, doch dann musste ich feststellen, dass die Laufwerke keinen Index-Sensor haben. Die Tachopulse konnte ich messen, aber ohne Kenntnis wie viele Pulse einer Umdrehung entsprechen bringt das leider auch nur bedingt etwas. Darüber schweigt sich leider das SM, sowie auch das Datenblatt von fanhistorie aus.


    Damit es aber vielleicht doch jemand an einem funktionierenden V9000 überprüfen kann sind hier die Werte an Pin 39 von IC 5D:

    • Track 0: 215 Hz
    • Track 4: 228 Hz
    • Track 70: 312 Hz
    • Track 71: 342 Hz

    Man kann also deutlich sehen, dass sich etwas ändert, aber halt keine Ahnung, ob das so richtig ist. Vielleicht hat ja jemand einen 5150/60 und könnte nachmessen, welche Tachopulse den dort festen 300 RPM entsprechen.

    So, kurzes Statusupdate:

    Nach längerer Zeit bin ich endlich dazu gekommen alle drei 6522 zu tauschen, da in mehreren anderen Foren immer das der Grund für nicht funktionierende Floppys waren. Also Chips ausgelötet, Sockel rein und gegen andere Chips getauscht. Leider hat das nichts gebracht, der "Cannot size track"-Fehler in FORMAT.EXE ist immer noch da.


    So langsam gehen mir wirklich die Ideen aus, was man da noch machen könnte. Vielleicht kann mir jemand eine formatierte Diskette zuschicken, damit ich überprüfen kann, ob das Laufwerk zumindest lesen kann.


    Des Weiteren habe ich in vielen Stunden versucht FORMAT.EXE zu disassemblieren, nur werde ich genau aus dem Teil nicht schlau, der zu der o.g. Fehlermeldung führen könnte. Ich werde versuchen eine Möglichkeit zu finden wie ich meine bisherigen Erkenntnisse online zugänglich machen kann.


    fanhistorie: Eine Seite vor der von dir dargestellten Seite im TechRef ist eine Tabelle zum Format, leider fehlt aber die Grafik dazu. Das Laufwerk ist ein Tandon TM100-4, doppelseitig mit 96 tpi, also sehr ähnlich zu denen in einer CBM 8050/8250, das waren u.A. TM100-4M mit 100 tpi. Die 48 tpi Variante war im IBM 5150 verbaut.

    Ich glaube ich bin ein bisschen weiter gekommen. Nachdem ich mir ein Assembler Modul geschrieben habe, mit dem ich u.A. aus C heraus auf das Super-BIOS (natürlich nicht IBM kompatibel!) des Victors zugreifen kann, war ich in der Lage zu verifizieren, dass sich das Laufwerk mit verschiedenen Drehzahlen dreht, wenn man verschiedene Tracks versucht zu lesen. Ob die Drehzahlen richtig sind kann ich natürlich noch nicht sagen, da ich ja weder Disketten im Victor Format habe, noch neue formatieren kann.


    Nach eingehendem Herumgeschnüffel mit dem Logicanalyzer habe ich den 6522 an Position 1K auf dem Floppy-Board in Verdacht, der u.A. die Daten die von der Floppy kommen puffert und der CPU zur verfügung stellt.



    Kanal 1 ist /CS2 als Trigger, Kanal 2 ist R/W. Auf B1 sieht man die Daten, die während der Formatierung von der Floppy zurück gelesen werden (Port A). Auf B2 ist dann das was davon aus dem 6522 davon zur CPU geht (D0-7). Wie man sieht fehlt Bit 5. Ich habe die Vermutung, dass PA5 defekt ist und nicht D5, da ein Lesen und Schreiben auf andere Register funktioniert. Einen Defekt auf der Mainboard-Seite würde ich auch ausschließen, da ja sonst auch einige andere Sachen nicht funktionieren würden.


    Zwei 6522 als Ersatz hätte ich zwar noch da, aber ich will noch ein paar Tage warten bis meine Entlötpistole eingetroffen ist, damit sollte ich den IC hoffentlich gut vom Board bekommen.



    Victor 9000 - Disk Drive CPU Interface.pdf

    Kurzes Statusupdate:

    Über die letzte Woche habe ich in vielen Abendstunden es hinbekommen ein rudimentäres BASIC Programm zu schreiben, mit dem ich endlich Kermit übertragen konnte und damit auch die Daten der HDD sichern konnte.


    Das Erstellen des Programms hat sich deshalb als umständlich erwiesen, da die Informationen in den technischen Unterlagen die verfügbar sind doch immer nur fast die Details verraten, die man eigentlich bräuchte. Die 7201 UART ist zwar in epischer Breite beschrieben, dass man die Baudrate aber über einen 8253 setzen muss, findet man hingegen nur heraus, wenn man das abgedruckte Programm gründlich studiert hat. Ebenso finden mat die Standart-Werte für die UART auch nur in dem Dokument mit den Beispiel-Treibern. Es versteht sich von selbst, dass ich dann noch ewig herumgemacht habe, bis ich ein passendes Kabel gefunden hatte. ;)

    Nach viel Trial und Error in BASIC und FORTRAN hatte ich dann endlich ein Progrämmchen, mit dem ich bei äußerst gemütlichen 300 Baud Kermit übertragen konnte. Hätte ich einen Assembler oder gar C Compiler gehabt wäre ich mit ziemlicher Sicherheit schneller zum Ziel gekommen! Aber von da aus ging es dann 'einigermaßen' schnell, es hat nur zwei Abende gebraucht, dass ich den Inhalt der Platte sichern konnte. Immerhin schafft der Victor beim Senden 38400 Baud. Beim Empfangen hatte ich bisher nur mit 19200 Baud Glück, ist aber auch nicht weiter schlimm, da selbst Programme von damals nur ein paar KB hatten.


    Viel wichtiger ist es jetzt, dass ich das Diskettenlaufwerk hinbekomme, weil ich auf der Festplatte immer mehr Fehler bekomme, wenn ich versuche etwas darauf zu schreiben. Ganz zu schweigen davon, dass ich bestimmt kein Update auf DOS 2 oder 3 wage, wenn ich sonst keine Möglichkeit zum Booten habe!

    Das Laufwerk ist gereinigt und geschmiert, sollte also mechanisch in Ordnung sein. In einem Thread, ich meine auf vcfed.org, habe ich gelesen, dass die 6522s anscheinend öfter schon ausgefallen sind. Hat jemand einen Tip wo ich anfangen könnte zu messen? Oszi und Logic-Analyzer sind vorhanden. Blöd ist halt nur, dass man fast Null Informationen darüber hat, wie die einzelnen Signale aussehen sollen.


    Edit: Ich habs herausgefunden: Statt ESC muss man beim Victor zweimal F1 drücken, um einen Befehl in PMATE auszuführen!

    CTRL 'X' mal ausprobiert ?

    ALT-X geht in Kommando Modus, das stimmt schon. Die Befehle werden allerdings nicht wie etwa zu erwarten mit Enter, sondern mit 2x F1 ausgeführt.

    @jdreesen Danke für den Hinweis für den MFM-Reader, davon habe ich auch neulich erfahren. Mal sehen, ob ich mir so ein Ding zulege. Ich hab hier auch noch ein Siemens PG685, das ich noch sichern will, weil man die Software auch nirgends mehr findet.


    @fritzeflink Auch dir danke für die Doku, XH um den Editor zu beenden ist nicht gerade "intuitiv", aber wir sind auch einfach nur verwöhnt. Die normalen Befehle funktionieren (Moduswechsel, Zeile löschen, etc.), aber wie um alles inder Welt führe ich einen Befehl im Kommandomodus dann aus?? "Enter" erzeugt bei mir nur ein "^M". In der CP/M Version heisst es dass Kommandos ausgeführt werden wenn man zweimal auf Escape drückt. Bei mit löst das aber nur einen Beep aus und sonst nichts. Vielleicht ist aber auch noch was mit meinem Keyboardmapping nicht richtig.


    Edit: Ich habs herausgefunden: Statt ESC muss man beim Victor zweimal F1 drücken, um einen Befehl in PMATE auszuführen!

    Hallo zusammen,

    mir ist neulich auch ein Victor 9000 Modell 462 zugelaufen, also die Variante mit 256K Ram, 20 MB HDD und einem Doppelseitigem Laufwerk. Da leider außer der Basiseinheit nichts dabei war habe nach der obligatorischen Netzteil-Reparatur (natürlich stilecht mit Rifa-Qualm, etc.) musste ich mir Ersatzlösungen für Bildschirm und Tastatur suchen.

                


    Also zuerst mal Festplatte ausgebaut und an ein gutes PC Netzteil gehängt. Die HDD läuft problemlos an und für eine MFM Platte sogar relativ wenig lärm. Die Signale am Monitoranschluss sind laut Schaltplan relativ normal TTL Monochrom-Signale, bis auf die 12V natürlich, die als Versorgung des original Monitors dienen. Eine Messung mit dem Oszi verrät negative Sync Pulse mit 16,1kHz und 75Hz und etwas das man als Zeichen auf der Video Leitung interpretieren könnte. Also habe ich kurzerhand meinen CBM 8032 als Bildschirm misbraucht, das Videokabel vom dessen Mainboard abgezogen, schnell ein Adapterkabel zusammengebastelt und siehe da, das kleine Diskettensymbol am unteren Bildschirm erscheint. Eigentlich ist das auch zu erwarten, da die Displayeinheit von beiden Computern ziemlich dumm ist und genau das Anzeigt was die Eingangssignale vorgeben. Die Stromversorgung des CRT kommt natürlich nach wie vor vom Commodore. Ermutigt dadurch habe ich dann auch noch die Festplatte angeschlossen und zu meiner Freude klappte auch das Booten in DOS sofort. Die Bildschirmanzeige ist klar, wenn auch ein bisschen gestaucht von den leicht unterschiedlichen Sync-Frequenzen, aber das braucht uns ja erstmal nicht zu stören.

                    


    Ermutigt dadurch auf zum zweiten Thema, einen Ersatz für die Tastatur: Laut Technical Reference ist die Tastatur auf dem selben Intelligenzlevel wie eine XT-Tastatur. Will heißen, ein µC fragt die Matrix ab und überträgt den Tastencode an die CPU. Außer einem Acknowledgement ist keinerlei Rückmeldung vorgesehen. Das Protokoll selbst erinnert an I2C mit getrennter ACK Leitung und besteht aus 7 Datenbits, 1 Bit für Drücken und Loslassen und einem Stopbit. Ein Arduino Nano, eine PS/2 Tastatur und unter 100 Zeilen C-Code später und ich kann Zeichen auf dem Bildschirm erzeugen. Am längsten hat eigentlich gedauert herauszufinden, dass die CPU die Daten nur richtig entgegennimmt, wenn man eine Clockrate von gemächlichen 1kHz wählt. Die Spezifikation schweigt sich darüber aus, aber glücklicherweise habe ich woanders einen Forumseintrag gefunden wo jemand den Weg andersherum gegangen ist und eine Victor-Tastatur hatte und die am modernen Equipment verwenden wollte. Da war auch ein Logic-Trace gezeigt, wo man das Timing ablesen konnte. Sobald ich fertig bin die Pfeil- und sonstigen Sondertasten zu implementieren werde ich den Code auf Github zur Verfügung stellen, vielleicht kann ja sonst noch jemand Gebrauch davon machen.


    Mit Bastel-Monitor und Bastel-Keyboard habe ich mich also dran gemacht das Ungetüm zu erkunden. DOS ist noch die allererste Version 1.25 und die HDD ist in zwei 10 MB Partitionen unterteilt. Daraus ergibt sich eine ziemliche Flut von Dateien, da ja noch keine Ordner existierten. Der Computer (ich will immer wieder "PC" schreiben) wurde laut Zeitstempel und Dateinamen bis mindestens Dezember 1993 für Buchhaltung u.Ä. verwendet. Außerdem finden sich GW-Basic und MS-Fortran auf der Platte, inklusive wie es scheint der passenden Quellen zur genannten Buchhaltung. Ich finde sowas unglaublich spannend, wie eine Zeitkapsel!


    Kommen wir nun aber zu meinen Problemchen: Das Floppy-Laufwerk weigert sich Disketten zu formatieren. Egal welche ich ausprobiere, es kommt immer die Meldung "Cannot size track". Die Köpfe habe ich natürlich gereinigt, der Schlitten läuft frei und Spur 0 wird anscheinen auch korrekt angefahren. Hat hier jemand einen Tip was man noch versuchen könnte, bevor ich mich mit mit Schaltplan und Oszi hinsetzen muss?


    Da ich auch so schnell wie möglich die Daten von der Platte sichern will brauche ich eine Möglichkeit die zu Übertragen. Selbst wenn das Diskettenlaufwerk funktionieren würde, bringt das ja nicht wirklich etwas, da das Format ja gänzlich inkompatibel ist. Hat auch hier jemand einen Tip?

    Zuletzt noch die Frage, ob jemand eine Ahnung hat, wie man PMATE-86 Texteditor verwendet, der sich in der Datei ED.COM versteckt. Scheint Teil des "Programmer's Tool Kits" gewesen zu sein, zu dem ich aber leider noch keine Doku gefunden habe.