Victor 9000 mit ein paar Problemen

  • 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.

  • @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!

    Einmal editiert, zuletzt von freitz85 ()

  • 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.

  • Es ist schon sehr lange her, daß ich meinen Victor 9000 repariert habe.

    Auch bei mir waren es Laufwerksprobleme.

    Vorausgesetzt es handelt sich bei diesem Modell auch um den Sirius, dann hat er eine Diskettenformat, daß sich durch

    unterschiedliche Drehzahlen in den Spuren auszeichnet.

    Wenn das Laufwerk von Spur 0 an innerwärts steppt. hört es sich von außen an, als würde die Tonleiter gespielt.

    Bei mir tat er das nicht, da die hierfür genutzte parallele Schnittstelle (IC) defekt war.

    Wenn die Drehzahl nicht zu den Suren passt, könnte ich mir eine solche Fehlermeldung vorstellen.

  • 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

  • Guten Abend

    freitz85


    Kannst du Angaben, oder Bildern von den Diskettenlaufwerke erstellen,

    Sind es 612k oder 1,2 MB Laufwerke,?


    Die Diskettenlaufwerke sollen meines Wissens 15 unterschiedliche Drehzahlen bereitstellen, haben, teilweise mit, auch mit komprimierten Dateien


    Wie ist anhand deiner Vermutung das Disketten Format aufgebaut?


    Anbei aus dem Manual

  • 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.

  • Ein Schuss ins Blaue - ich verstehe von Victor Rechnern absolut nichts.


    Ein normales TM100-4 kann es doch nicht sein, das würde ja keine variablen über sein Interface steuerbaren Drehzahlen erlauben. Ein Exemplar mit der Standardplatine könntest Du ja auch in einem gängigen PC zunächst auf Funktion prüfen.


    Hast Du mal die in der Tabelle genannten "Rotational Periods" nachgemessen? Es wäre nicht das erste Laufwerk, bei dem die Drehzahl mehr oder weniger weit vom Soll abweicht.

  • 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.

  • Ich habe nur ein TM100-2, was aber bzgl. Drehzahlregelung egal sein sollte. Allerdings sagt das Service Manual lediglich, dass anhand des Stroboskoprings geprüft werden soll, dass der äußerer Ring bei einer 60Hz Funzel steht. Nun ja.


    Wenn ich die Werte aus der Tabelle oben durch die zugehörigen Perioden deiner gemessenen Frequenzen dividiere, kommen immer Werte nahe 51 heraus. Versuche doch mal, ob du das auf exakt 50 oder 60 einstellen kannst. Einer davon sollte wohl richtig sein.


    Das ist ein Blick in die Kristallkugel ;)

  • 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.

  • "Cannot size track" riecht ja irgendwie danach, dass die Spurlänge und damit die Drehzahl nicht passt. Wenn ich das richtig verstanden habe, wird am Motor gemessen und geregelt. Richtig?


    Entscheidend müsste aber die Drehzahl der Spindel sein, die ohne Indexsensor nicht leicht zu messen ist. Sind Riemenscheiben und Antriebsriemen sauber und ist der Riemen noch stramm? Könnte zuviel Schlupf im Spiel sein?


    Vielleicht hat ja irgendwer eine schlaue Idee wie man ohne Indexsignal die Spindeldrehzahl messen kann.


    Stroboskopscheibe aufkleben und irgendwie optisch abtasten :/

  • 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.

  • Vor der Messung habe ich Riemenscheiben und Antriebsriemen nochmal gereinigt. Eine Drehzahlkorrektur war nicht nötig.


    Kanal 1 zeigt das Index Signal, recht exakt 200ms entsprechend 300U/min.


    Kanal 2 zeigt das Tacho Signal, recht exakt 260Hz.


    Der Tacho liefert demnach 52 Ticker pro Umdrehung.


    Du hattest etwa 51 gemessen, also recht nahe dran.



  • 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.

  • Mal so ein Gedanke:

    Wie stellt das System fest, daß dieser Fehler vorliegt "Cannot size track".

    Gibt es neben den autarken Drehzahlregelung durch den uP noch eine weitere Drehzahlmessung?

  • Guten Abend

    freitz85


    Wegen der Meldung Cannot Size track


    Frage:

    Ist die genannte Format.exe dein selbstgeschriebenes Programm, oder meintest du format.com, welche sich in der MS-Dos 1,25 sich befindet,


    Diese habe ich vorhin auf dem Händy da ich derzeit unterwegs bin mal geöffnet, um ggf einen Anhaltspunkt, Textstelle nach der Ursache zu finden, bin auf die schnelle aber nicht fündig geworden...


    könntest du ggf die Orginal System Dateien, und das Bios posten, ob sich darin die Textstelle findet,


  • 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.

  • Hallo


    also nach kurzem drüber schauen über das html file.

    würde ich vermuten das im al register die spur nummer steht. unter 21 gibt es die Fehlermedung "CANnOT SIZE TRACK". Sonst läufts so lange nicht das maxiumum von 79 spuren überschritten wird. check_err wird von write_boot_sect aus aufgerufen.

    Sprich dort wird auch Sync, irq usw aufgerufen... sprich direkte hardware aufrufe.


    vielleicht hilft das