Forum: Mikrocontroller und Digitale Elektronik Floppykontroller U8272 programmieren


von Ralph H. (guru)


Lesenswert?

Bei der Fehlersuche meinem CP/M Bios mit U8272 FDC ist mir ein 
merkwürdiges Verhalten meines FDC aufgefallen und ich hoffe die 
Assembler Spezies unter Euch können mir helfen, folgende Fragen zu 
beantworten

1. mit welchem Kommando bekomme ich heraus, auf welcher Spur der Kopf 
grade WIRKLICH steht ? (Interupt Sense meldet ne falsche Spur !)

2. kann es sein, dass der Befehl 08H (Interuptstatus prüfen) 2x 
HINTEREINANDER aufgerufen,unterschiedliche Ergebnisse bringt, obgleich 
sich NICHTS ändert?

3. Was könnte die Ursache sein, das das 0FH (SEEK) Kommando nicht in der 
Lage ist, von Spur 40 auf Spur 20 zufahren ? Das LW war vorher NIE auf 
Spur 0 bzw. der Befehl 07H (Recal) wurde nie benutzt !

Ein Hardwaredefekt seitens des Floppy LW kann ich sicher ausschliessen.

Ich hoffe ihr könnt mir wenigstens teilweise helfen

Danke sagt Ralph

von MaWin (Gast)


Lesenswert?

1. Mit keinem. Das PCN sagt nur wo der FDC "glaubt" daß der Kopf steht.

2. Ja. Es könnte mittendrin END OF SEEK eingetreten sein.

3. Er zählt das PCN nicht unter 0. Man MUSS zu Beginn ein RECALIBRATE 
machen, damit PCN dort steht wo auch wirklich der Floppykopf steht.

Aber das steht eigentlich alles ziemlich klar im Datenblatt.

von ingo (Gast)


Lesenswert?

1. mit welchem Kommando bekomme ich heraus, auf welcher Spur der Kopf
grade WIRKLICH steht ? (Interupt Sense meldet ne falsche Spur !)

Glaube das Kommando heisst "identify", damit kann man ja auch erkennen, 
ob man mit einem 80-Spur LW eine 40-Spur disk liest (Kopf steht auf Spur 
2, angezeigt wird Spur 1).
mfG ingo

von Ralph H. (guru)


Lesenswert?

MaWin schrieb:
> Aber das steht eigentlich alles ziemlich klar im Datenblatt.

Hm.. ich hab das Fachbuch "Mikrorechnerschaltkreise" von Kramer hier und 
da steht es NICHT drinne. Welches Datenblatt meinst Du ?

Danke für Eure Meldungen !


Gruß Ralph

von MaWin (Gast)


Lesenswert?

> mit welchem Kommando bekomme ich heraus, auf welcher Spur der Kopf
> grade WIRKLICH steht ? (Interupt Sense meldet ne falsche Spur !)

Probehalber eine Sektormarkierung lesen, geht halt nur bei formatierten 
Disketten. Ein bekanntes Problem der FDC.

> Welches Datenblatt meinst Du ?

Das von Intel, welches sonst ?
http://info.elf.stuba.sk/packages/pub/pc/text/8272-fdc.zip

von ingo (Gast)


Lesenswert?

Hab gerade n Datenblatt vom NEC27c65 (hoffentlich abwärtskompatibel), da 
heisst das Kommando "Read id" Code 0x0A, meine "Kramer"-Literatur hab 
ich zur Zeit schlecht greifbar.
mfG ingo

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ralph H. schrieb:
> Hm.. ich hab das Fachbuch "Mikrorechnerschaltkreise" von Kramer hier und
> da steht es NICHT drinne. Welches Datenblatt meinst Du ?

Ein Datenblatt ist eine Veröffentlichung des Herstellers, nicht 
irgendein Fachbuch.

Da das ein DDR-Baustein ist, ist das natürlich nicht ganz so einfach, 
aber Du könntest Dir das Datenblatt des Originals ansehen - denn das 
war von Intel.

http://www.datasheetarchive.com/dl/Datasheets-8/DSA-156430.pdf

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rufus Τ. Firefly schrieb:
> Da das ein DDR-Baustein ist, ist das natürlich nicht ganz so einfach

Dürfte in einer TGL stehen, wie bei allen DDR-ICs (was die IC-
Entwicklung damals wohl reichlich schwerfällig gemacht hat).
Manch Uni-Bibliothek hat sowas noch.

Alternativ: entsprechenden Jahrgang der rfe (radio-fernsehen-elektronik)
beschaffen, da gab es in aller Regel für "öffentliche" ICs dann einen
Beitrag, geschrieben von Ingenieuren des Herstellers, dessen Inhalt
besser war, als manches, was man heutzutage als Datenblatt serviert
bekommt.

Das iNtel-Datenblatt dürfte allerdings eine sinnvolle Alternative
sein.  Im Gegensatz zu den "West"-Pendants konnte der U8272 übrigens
uneingeschränkt auch FM arbeiten.  Ich weiß nicht mehr ganz genau,
welcher Art die Einschränkungen der Vorbildtypen hier waren, ich
glaube mich zu erinnern, dass sie FM nur mit 128 Bytes pro Sektor
unterstützt haben.

von Ralph H. (guru)


Lesenswert?

Danke für Eure Meldungen ! Da es ein CP/M Bios ist, lös ich das Problem 
relativ einfach, indem ich den FDC eben beim Booten immer mittels RECAL 
auf Spur 0 fahren lasse.

Aber ich finds doof, das das SEEK Kommando keinen Fehler erzeugt.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ralph H. schrieb:
> Danke für Eure Meldungen ! Da es ein CP/M Bios ist, lös ich das Problem
> relativ einfach, indem ich den FDC eben beim Booten immer mittels RECAL
> auf Spur 0 fahren lasse.

Man sollte das beim "Einloggen" der Diskette ggf. nochmal tun, nicht
nur beim Booten.  So ein Laufwerk kann auch mal einen Schritt
"verlieren", d. h. die vermutete Position stimmt nicht mit der
tatsächlichen überein.

> Aber ich finds doof, das das SEEK Kommando keinen Fehler erzeugt.

Das gibt einfach nur entsprechend viele Schrittmotor-Impulse aus,
mehr kann es nicht tun.  Es bekommt keinerlei Rückmeldung vom
Laufwerk außer der Lichtschranke für Spur 0.

von Pieter (Gast)


Lesenswert?

moin moin

Der U8272 ist ein nachgebauter µPD765.
Ein passsendes Ansteuerprogramm für den wurde in der RFE 4/1989 
veröffendlicht, das Heft habe ich noch.

>>1. mit welchem Kommando bekomme ich heraus, auf welcher Spur der Kopf
grade WIRKLICH steht ? (Interupt Sense meldet ne falsche Spur !)

Die Spuren/Nummern auf der Disk müssen nicht mit der Kopfeinstellung 
übereinstimmen.
Um ein Disk-Copy zu verhindern wurde da schon mal was "verbogen".

Meine CP/M Quellen sind leider nicht mehr vorhanden, die Baugruppe liegt 
in meinem Museum.

Mit Gruß
Pieter

von Ralph H. (guru)


Lesenswert?

Pieter schrieb:
> Ein passsendes Ansteuerprogramm für den wurde in der RFE 4/1989
> veröffendlicht, das Heft habe ich noch.

Danke ich brauch keine BIOS Software, sondern wollte nur meine Fragen 
beantwortet haben :-) Das habt ihr und damit ist eigentlich meine Bedarf 
gedeckt ;-)

Viele Grüße !

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.