000
04.09.2009, 19:11 Uhr
holm
|
Es ist einige Zeit her, das ich mal aus dem Kopf gekramt hatte, das es beim Einsatz einer U858 in einem Bürocomputer zu Problemen kommt. Ich habe nun beim Stöbern in der RFE Heft 4 1989 den Artikel wiedergefunden in dem das beschrieben stand. Ursache für das Problem ist, das die U858 schon mit inaktiv werden des /BUSRQ Signals /BAO inaktiv schaltet während BAI noch aktiv ist (aber auch in diesem Zyklus inaktiv wird). Das verträgt augenscheinlich das Gespann aus K2526 und AMF nicht. Die Autoren haben das auch nicht näher untersucht, aber aufgezeigt wie das Problem behoben werden kann:
Benötigt wird ein D-FF (74LS74) und ein Negator. /BAI vom Systembus geht über den Negator auf R des D-FF, /BAO vom U858 geht auf den S-Eingang des D-FF. Der Ausgang /Q des D-FF geht als /BAO auf den Systembus zurück.
Beschreibung der Autoren:
"Ist die DMA-IS inaktiv, erzeugt ein H-Pegel des /BAI-Signals auf dem BUS zwangsläufig einen H-Pegel des /BAO Signals. Eine beliebige andere Busanforderung hat ein /BAI-L auf dem BUS zur Folge, das die DMA-IS mit /BAO=L beantwortet. Auf dem BUS erscheint /BAO=L. eine aktive DMA-IS gibt nach /BAI=L ein /BAO=H aus, was keine Veränderung bedeutet, das Flip-Flop wird nicht gesetzt."
Ich hatte das wie schon gesagt noch im Hinterkopf, wußte aber nicht warum exakt es Probleme gibt. Da täglich Wissen um solche Details verschwindet dachte ich brings es hier mal haltbar an...
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;} |