007
15.06.2008, 22:21 Uhr
holm
|
@Enrico: Naja, eine CPU wird vorgeladen und dann abgeschaltet, die andere betreibt das System. Wenn ein BUSRQ vom Controller kommt, wird die SystemCPU ab und die vorgeladene angeschaltet, die dann hinter einander Weg mit einem Blockbefehl die Daten vom Comtroller holt. Wenn die Chowse fertig ist, wird wieder umgeschaltet. Das hat den Vorteil, das man nicht erst den Context der ersten CPU retten muß und so Reaktionszeit spart. Die DMA U858 war wohl damals noch in der Planungsphase... (oder Schalk Golodkowski hatte die Zilog Masterbänder noch nicht organisiert).
Allerdings ist die Mimik nicht ganz sauber wenn noch eine U858 ins System kommt, ich erinnere mich zu mindest sowas mal in der RFE irgendwann gelesen zu haben, da gabs unangenehme Nebeneffekte mit BAI/BAO. Weiß das Jemand genauer oder hat diese Quelle noch? In diesem Zusammenhang würde ich mir auch gerne mal die CP/A BIOS Quellen vom 1715 anschauen, der macht das ja ohne DMA mit WAIT. Die Quellen sind mir aber niemals über den Weg gelaufen...
Ich werde mir mal so einen GIDE Satz bestellen und den warscheinlich "an den Bus prömpeln". Da fehlt nämlich noch genau die Mimik die BAI/BAO abklemmt wenn ein Plattenzugriff läuft, oder den Plattenzugriff wenn die DMA läuft. Ich finde das CPU Interface blöd, wenn das auch in den meisten Rechnern der schnellste Weg ist. Den ollen OMTI COntroller kann man mehr oder weniger direkt auf den BUS Klemmen, der INT Ausgang kommt an irgendeine Peripherie (z.B. den SystemPIO der eh im Bitmode auf Kanal B läuft und den INT IM2 konform weiterreichen kann.., oder einen CTC Kanal oder ....)
@Old-Hans:
Die Unterlagen Interessieren mich sehr. Wenn Du die Platten schicken kannst, ich zahle Dir das Porto auch aus NL wie ich vermute... Eine ST125 auch defekt und eine 40MB Platte währen schön...
@mario: Um die USV kümmere ich mich diese Woche wie abgesprochen. Controller habe ich noch, ich glaube sogar einen RLL Controller WD1006...
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;} |