012
12.05.2012, 17:31 Uhr
holm
|
Den Stahlträger kannst Du ruhig persönlich nehmen, wenn Du hier Leute ausfragst und das Produkt dann handeln willst. So macht man sich sehr enge Freunde fürs Leben. Ich sage nochmal und jetzt so: Trage hier überhaupt erst einmal irgend etwas bei ehe Du damit drohst Deine Ergebnisse für Dich zu behalten oder kommerziell zu verwerten. Got it now?
Um eine MFM Platte zu emulieren muß man den Datenstrom den der Controller schickt in Echtzeit analysieren, die relevanten Daten extrahieren und auf das vorgesehene Medium ablegen können. Für dieses Vorhaben benötigt man einen Datenseparator der den Datenstrom zerlegt. Wie viel davon in reiner Software und wie viel in Hardware möglich/notwendig ist, entscheidet hier wirklich die Verarbeitungsleistung der eingesetzten MCU (ich nehme nicht an, das Du das ausschließlich in Hardware gießen willst).
Wie man das macht, kann man sich im Endeffekt auf jedem MFM Controller ansehen, denn dieser enthält Alles um seinen eigenen Datenstrom lesen zu können, das Ding ist ja schließlich bidirektional. Es läuft also darauf hinaus, 2 MFM Disk Controller über Kreuz zu koppeln. (Den billigen Firlefanz auf Stepper Signale zu reagiern oder die Kopfumschaltung zu bewerkstelligen betrachte ich hier mal nicht, das ist Pillepalle im Vergleich zum Rest)
Das Problem an der ganzen Sache ist, das Du wirklich in Echtzeit auf die Signale des "richtigen" Controllers reagieren mußt und Du mußt eine ganze Datenspur repetierend in der richtigen Geschwindigkeit und Zusammensetzung zur Verfügung stellen können. Da aber die Diskformate wie schon angedeutet erheblich differieren können, baust Du einen Emulator für exakt einen Controllertyp. Ein Universeller Emulator entsteht so nicht, es sei denn, Du digitalisierst die gesamte Spurinformation mit und legst diese ab, es könnte nur sein, das dann derart viel Overhead entsteht das Du viele SD Karten brauchst um eine 5MB Platte zu emluieren.
Gruß,
Holm -- float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v; {s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+ (r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&& (A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;} |