Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » Nochmal Frage nach Platine 50300-3010.01 » Themenansicht

Autor Thread - Seiten: -1-
000
01.01.2009, 12:21 Uhr
holm

Avatar von holm

Ich hatte das Bild schon mal hier im Forum, ich habe noch eine 2 Platine dieser Sorte gefunden:

Es handelt sich um eine K1520 formatige Platine mit CPU. PIO, CTC, 16K DRAM und
unterschiedlich bestückbaren EPROM Fassungen, möglicherweise hatt die andere Platine auch 64K DRAM drauf. Auf beiden bei mir vorhandenen Platinen sind 2 U555 bestückt, ich werde die wohl mal auslesen...

Woher könnte das Teil stammen? Ich habe die Platinen mal von Schrott geholt.

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;}

Dieser Beitrag wurde am 01.01.2009 um 12:51 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
01.01.2009, 13:02 Uhr
Klaus



Hallo Holm,

die gezeigte Platine stammt aus einem MC80.

Hier ein Bild von meiner ZVE aus dem MC80.30.
Die ist mit 16k RAM und 4 EPROMs bestückt.
Möglicherweise sind Deine Platinen für einen anderen Zweck "verbastelt" worden.




Ehe Du sie u.U. entsorgst, würde ich Dir evtl. eine als Ersatz abnehmen.

Viele Grüße,
Klaus

Dieser Beitrag wurde am 01.01.2009 um 13:03 Uhr von Klaus editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
01.01.2009, 19:52 Uhr
holm

Avatar von holm

Entsorgen werde ich die gewiß nicht Klaus, ich grabbele eigentlich Nichts vom Schrott, schleppe es nach Hause, mache es sauber und haue es dann wieder weg...

Eine der Platinen ist mit "defekt" beschriftet und ein U256 ist ausgelötet. Ich werde bei Gelegenheit mal probieren die wieder zu wecken.

Hast Du nähere Unterlagen zu den Dingern? Das Teil sieht mir wie eine modernisierte K2521 aus und wird wohl auf dem Koppelbus kompatibel sein denke ich...
Ich habe übrigens die beiden ROMS (0-3ff und 400-7ff) mal ausgelesen, da stehen keine Strings drin die auf irgendwas schließen ließen..


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;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
01.01.2009, 23:23 Uhr
paulotto



Hallo Holm,

die Platine ist auch im MC80LA drin. In meinem sind da 3*U555 drauf.

Gruß

Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
02.01.2009, 10:24 Uhr
Klaus



Hallo Holm,

Unterlagen für die Karte habe ich leider nicht.
Nur die paar Zeilen, die dazu in der Bedienungsanleitung des MC80.30 stehen.
Die Signalbelegung des Koppelbus ist mit drin.
Mit Schaltplan u.s.w. kann ich leider nicht dienen.

Viele Grüße,
Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
03.01.2009, 13:47 Uhr
holm

Avatar von holm

Noch mal eine Frage zu Deinem Bild: Wenn Du von der Hinterkante der CPU senkgerecht nach oben gehst, was triffst Du dann für einen IC? Bei beiden Exemplaren dieser Platine ist bei mir die Beschriftung total ab. (Zwischen den Beiden 8205).
Ich vermute zu erkennen das es sich um einen U215D handelt, dann wohl Bestandteil
eines Speicherschutzes oder einer MMU. Ooops, da wird es ohne Doku doof mit der Karte..

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;}

Dieser Beitrag wurde am 03.01.2009 um 15:40 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
03.01.2009, 14:17 Uhr
Klaus



Hallo Holm,

leider ist auch bei mir die Beschriftung des genannten IC fast nicht mehr lesbar, aber ich würde auch U215D sagen.
Evtl. kann Klaus 2 (paulotto) nochmal einen Blick drauf werfen.

An Schaltungsunterlagen zum MC80.30 sieht es sehr mau aus. Leider.

Viele Grüße,
Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
03.01.2009, 19:48 Uhr
paulotto



wenn ihr den Schaltkreis über Pin 21 vom Z80 meint zwischen den 2*74S405(hab jetzt nicht extra nachgesehen, ob die 8205 entsprechen) und dem D151 darüber, dann ist bei mir sehr gut zu lesen U215D.

Gruß

Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
03.01.2009, 20:42 Uhr
holm

Avatar von holm

Ja genau den meinen wir. 74S405 ist 8205. Statt D151 lauern bei mir braune K155LR1.
Ich überlege nun, was die da gebastelt haben könnten. Für eine MMU ist der U215 eigentlich zu langsam
(95ns), für solche Zwecke habe ich bisher nur den 7489 gesehen.
Möglich währe die Anwendung als Speicher/ IO Schutz wie der U202 auf der K2526,
nur brauchte das eigentlich nie ein Schwein..

Auf einer Platine stecken 2 K573RF2, auf der anderen 2 U555. Die U555 habe ich ausgelesen, das fängt da noch
vor dem Laden des Stackpointers mit diversem IO Kram an:

Quellcode:
00000000  01 8c 00 ed 41 10 fc 31  fe ff 21 00 c0 36 ff e5  |...íA.ü1þÿ!.À6ÿå|
00000010  d1 13 01 ff 3f ed b0 3e  ff d3 84 3e cf d3 86 3e  |Ñ..ÿ?í°>ÿÓ.>ÏÓ.>|
00000020  ff d3 84 32 65 00 3c d3  86 3e 0f d3 85 d3 87 21  |ÿÓ.2e.<Ó.>.Ó.Ó.!|
00000030  b0 00 7e 23 4e 23 46 23  ed b3 3d 20 f7 21 11 f6  |°.~#N#F#í³= ÷!.ö|
00000040  22 10 f4 21 86 f6 22 12  f4 21 4c f5 22 0a f4 21  |".ô!.ö".ô!Lõ".ô!|
00000050  bb f6 22 0c f4 21 3f f7  22 0e f4 21 70 f7 22 20  |»ö".ô!?÷".ô!p÷" |
00000060  f4 21 f9 f8 22 30 f4 21  57 fa 22 3a f4 21 62 fa  |ô!ùø"0ô!Wú":ô!bú|
00000070  22 3e f4 3e f4 ed 47 ed  5e af 32 6e fa 32 6f fa  |">ô>ôíGí^¯2nú2oú|

Wenn mich meine Birne nicht täuscht laden die da FF bis 00 auf die Adresse 8C,
d.h. 256 Werte. Habe gerade keinen Disassembler greifbar.

Ich habe mal kurz durchgeklingelt, der Ausgang des U215 geht über 2 D100 Gatter
auf den Schreibeingang der U256. Der Dateneingang auf A0. Die Adreßeingänge auf die
höheren Adreßsignale. Sieht mir nach Speicher(schreib)schutz aus.
Ich werde das bei Gelegenheit wohl mal näher untersuchen müssen..

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;}

Dieser Beitrag wurde am 03.01.2009 um 20:48 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
03.01.2009, 20:58 Uhr
paulotto



Hallo Holm,

im MC80LA (Grundgerät ist der MC80.3x) sind 3*555 verbaut, die Platine läßt aber auch den Einsatz von 2716 zu. Leider gibt es kaum Unterlagen (wenn, dann ein paar zum MC80.2x). Ich kenne jedenfalls niemand. Die ZRE-Platine ist im MC80LA wahrscheinlich auch die einzige, die aus dem MC80 kommt. Alle anderen Platinen im MC80LA sind nicht kompatibel zu den normalen MC80-Platinen. Der MC80LA verwendet eine eigene Quasi-Farbgrafikkarte und auch die ROM-Platine mit dem Betriebssystem ist mit 24*U2716 im normalen MC80LA oder wie bei mir mit 24*2732 im 2-Bankbetrieb mit 2 Logikanalysesystemen bestückt und so nicht im normalen MC80 zu finden. Dann gibt es noch eine Printerkarte, die ich auch so nicht aus dem MC80 kenne und dann natürlich die LA-spezifischen Karten. Dazu gibt es schon gar keine Unterlagen...
Mein LA hat auch eine Macke. Wenn ich wieder Zeit habe, will ich mit geborgten Karten erst mal rausfinden, welche defekt ist. Und dann hilft nur Reengeneering dieser defekten Karte....

Deine Platine war mit an Sicherheit grenzender Wahrscheinlichkeit nicht in einem MC80LA im Einsatz. Leider kann man auf der PLatine von Klaus nicht erkennen, ob da 4*2708 verbaut sind oder 4*2716. Man könnte ja die 4*2708 durch 2*2716 ersetzen. Und bei Deiner Karte mit den 2708 könnten ja auch die 2 letzten fehlen...
Sind denn die Inhalte am Anfang gleich? Vielleicht hat jemand den Inhalt der EPROMs des MC80.3x? und kann mal mit Deinem vergleichen...

Gruß

Klaus

Dieser Beitrag wurde am 03.01.2009 um 21:07 Uhr von paulotto editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
03.01.2009, 21:36 Uhr
Klaus



Hallo,

... also ich hab nochmal nachgesehen.
Es sind 4 x 2716 bestückt in denen laut Handbuch das BSYS und die Magnetbandroutinen sind.
Ich hab mal die ersten Bytes verglichen, aber da gibt es keine Übereinstimmung.
Also ist die Platine wohl nicht aus einem MC80.30.
Abgesehen davon würden die 2708 ja auch nicht genug Speicherplatz bieten.

Es sind ja auch so einige Wickelbrücken auf der Karte.
Möglicherweise lässt sich da ja der EPROM-Typ ändern.


Viele Grüße,
Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
03.01.2009, 21:38 Uhr
holm

Avatar von holm

Ich habe irgendwo noch Kopien der 3 U555 aus meinem MC80-LA in Hardware.
Ich werde die morgen (bei Licht) mal rauskramen und auslesen. Die Kopien hat
mal ein Freund für mich gemacht, ich hatte doch den Brenner erst gebaut als ich dieses Forum hier gefunden hatte. Mein MC80-LA steht nach wie vor unberührt seit Jahren im Schuppen. Zu Allem Glück findet mein Freund die Unterlagen nicht mehr die ich ihm mal geliehen hatte, ich denke aber nicht das da Schaltunterlagen dabei waren.

Die 2716 habe ich noch nicht ausgelesen, kann das aber mal machen (wenn dieser Scheiß UP2000 die Dinger wenigstens liest, sie zu programmieren hat er irgendwann im Laufe der Softwareupdates verlernt. Leider habe ich das zu spät gemerkt sonst könnte mein Selbstbaubrenner Beides) Warscheinlich werde ich die 8051 CPU aus dem UP2000 mal rausziehen und durch einen Atmel ersetzten und das Ganze neu erfinden. Die restliche Programmerhardware war ja nicht soo schlecht, die Software ist fast unbrauchbar..

Weil wir gerade bei EPROMS sind: Brauchst Du noch U555?

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;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
03.01.2009, 21:47 Uhr
paulotto



zum MC80LA gibt es die normale Bedienungsanleitung und darin wird dann noch auf ein Hardwarehandbuch hingewiesen. Leider hat das aber niemand...

Gruß

Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
03.01.2009, 22:20 Uhr
Klaus



Hallo Holm,

falls die Frage wegen der U555 an mich gerichtet war.
Nein.
Ein paar einzelne für evtl. Rep. habe ich noch.
Aber Danke für Dein Angebot.

Viele Grüße,
Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
03.01.2009, 22:44 Uhr
holm

Avatar von holm

Jaein :-)

Das war an Paulotto gerichtet, ich kann ja schlecht Klaus schreiben ...

Ich habe mal im CPM Emulator mit Rezilog herumexperimentiert und den Anfang disassembliert. Leider ist mir der Emulator dabei mit einem Opcode Trap rausgeflogen,
irgendwo ist der auf ein ED 91 gelaufen, was wohl ein nicht definierter Befehl ist.
Weiß Jemand ob der sih unter den "nicht dokumentierten Z80 Befehlen" befindet?
JEdenfalls war die Testerei erstmal umsonst. Ich werde es morgen nochmal mit einem
K8924 probieren...

BTW: weiß Jemand welche Adressen die PIO und die CTC auf der K2521 haben?


Mittlerweile habe ich auch die ROMinhalte von Rüdiger hier und werde mir die bei dieser Gelegenheit auch mal ansehen.
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;}

Dieser Beitrag wurde am 03.01.2009 um 22:51 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
015
04.01.2009, 14:06 Uhr
holm

Avatar von holm

Forschung soweit beendet. Der RAM U215 bildet einen relativ einfachen Schreibschutz für den RAM auf der Platine, ob der auch für externe RAM K arten funktioniert müßte ich noch nachsehen, ich glaube es aber nicht, weil das /WE Signal der RAMS auf der Platine aus dem negierten /RD gebildet wird, normalerweise führt man solche Schweinereien nicht nach außen auf den BUS...
Das RAM hängt mit seinem Dateneingang an A0, die Adressen A15-A10 des Prozessors gehen auf die Adressleitungen des RAMS, die restlichen Aresseingänge
sind totgelegt oder parallelgeschaltet.
Eine Ausgabe auf 0x8c oder 0x8d erzeugt eine Schreiboperation auf den RAM,
so das bei 0x8c eine 0 und bei 0x8d eine 1 in den RAM geschrieben werden. Der Datenausgang wird mit dem negierten /MREQ Signal NAND verknüpft und das Ergebnis bildet mit wieder einer NAND Vernküpfung mit /RD das /WE Signal für die DRAMS. Eine 1 im U215 bedeutet also inaktives /WE Signal für die DRAMS, eine 0 gibt es frei.

Das Stückchen Code hier:

Quellcode:
START:         ;0000
                     LD      BC,8CH
ST01:            ;0003
                     OUT     (C),B
                     DJNZ    ST01    ;3
                     LD        SP,STACKTOP   ;0FFFEH
                     LD      HL,RAMSTART     ;0C000H
                     LD      (HL),0FFH             ;Zelle loeschen
                     PUSH    HL
                     POP     DE
                     INC     DE
                     LD      BC,03FFF       ;Laenge 16K
                     LDIR                      ; Block loeschen

Stand am Anfang ders ersten U555 auf der Platine, es schaltet also in der Schleife
den Schreibschutz für jedes einzelne Kilobyte des Speichers aus und löscht danach den RAM der von 0xc000 - 0xffff reicht.

Die Wickelbrücken auf der Platine dienen der Einstellung der IO Basisadresse der Karte, die bei beiden meiner Platinen auf 0x80 steht. Wenn die Steckverbinder unten sind, ist die unterste der 4 Brücken A7 und die oberste A4, auf der linken Seite liegt jeweils das Adreßbit und darüber das negierte Adreßbit an welche von den 4 Pins auf der rechten Seite zu einem 7430 gehen und die Adreßfreigabe bewerkstelligen.

Danach liegen in folgendem Offsett der CTC, die PIO und der Schreibschutz:

(Korrigiert!!)

80+00 CTC Kanal 0
80+01 CTC Kanal 1
80+02 CTC Kanal 2
80+03 CTC Kanal 3
80+04 PIO A Daten
80+05 PIO B Daten
80+06 PIO A Control
80+07 PIO B Control
...
80+0C Schreibschutz Aus
80+0D Schreibschutz Ein.

Jetzt könnte man noch die Lötbrücken für den RAM Adreßdekoder erforschen
und die Anschlußbelegung des Koppelbusses herausklingeln wobei ich hier eigentlich
überzeugt bin, das der der K2521 entspricht.

Frage: Wollte das hier Jemand wissen?

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;}

Dieser Beitrag wurde am 04.01.2009 um 21:29 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
016
04.01.2009, 14:10 Uhr
Enrico
Default Group and Edit


Interessant ist es auf jeden Fall. Sowas ist in der normalen CPU-Karte ja auch drin.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
017
04.01.2009, 17:22 Uhr
Klaus



Hallo Holm,

gute Arbeit.

Hier mal ganz auf die Schnelle die Belegung des Koppelbusses der ZVE vom MC80.30.
Die PIO-Adressen liegen hier ein wenig anders.

Sorry für die miese Qualität.








Viele Grüße,
Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
018
04.01.2009, 17:33 Uhr
holm

Avatar von holm

@Enrico:
Hmm, je nach dem was Du als normal bezeichnest Nein, oder Ja.
Auf der K2521 welche dir 3k ROM 1k RAM Variante dieser MC80.30 Platine zu sein scheint gibt es sowas nicht. Allerdings ulpert auf der K2526, also der BC CPU Karte so ein Speciherschutz und IO Schutz herum. Der funktioniert aber ein Bisschen anders und ist komplizierter.

@Klaus: da hätte ich mir ja das ausklingeln der IO Adressen sparen können.
Ich werde jetzt mal veruschen die als defekt gekenzeichnete Platine mit den 2 U555
anzuwerfen und dieser auf den Zahn zu fühlen..

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;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
019
04.01.2009, 18:00 Uhr
Enrico
Default Group and Edit


Mit normal meinte ich diese Standart-CPU-Karte mit 2 CPUs drauf. Wie auch immer die jetzt heisst. Auch wenn 2 CPUs für CPM-Rechner nun alles andere als nomal ist.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
020
04.01.2009, 18:46 Uhr
Rüdiger
Administrator
Avatar von Rüdiger


Zitat:
Enrico schrieb
Auch wenn 2 CPUs für CPM-Rechner nun alles andere als nomal ist.

Die 2. CPU ist ja auch nicht für CP/M, sondern für SIOS.
--
Kernel panic: Out of swap space.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
021
04.01.2009, 20:13 Uhr
Gerhard



@Klaus

>Hier mal ganz auf die Schnelle die Belegung des Koppelbusses der ZVE vom >MC80.30.

Stimmt somit genau mit der K2521 überein (abgesehen von den hier nicht bezeichneten Kontakten, wo lt. Doku noch einpaar andere Signale drauf liegen)

>Die PIO-Adressen liegen hier ein wenig anders.

Anders als was?
Mir ist etwas aufgefallen, worauf anscheinend nirgends ausdrücklich hingewiesen wird:

Laut Literatur (z.B. Kieser/Meder) und auch K2521-Doku wird normalerweise das Bit A0 zur Unterscheidung von Kanal A/B benutzt, das Bit A1 zur Unterscheidung Daten/Control. Also z.B. 84H = Daten A, 85H = Daten B, 86H = Control A, 87H = Control B.
So ist es auch in der MC80.2x-Doku angegeben, soweit es sich auf die PIO auf der ZRE bezieht. Bei den PIOs für Display und MB machen es die MC80-Leute aber gerade umgekehrt, z.B. 0FCH = Daten A, 0FDH = Control A usw.

Wie es beim 80.30 gemacht wurde, weiss ich noch nicht. Wenn ich wieder mal nach Merseburg komme, werde ich mir zum Vergleich je eine ZRE vom 80.30 und vom LA holen und auslesen.

Dieser Beitrag wurde am 04.01.2009 um 20:37 Uhr von Gerhard editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
022
04.01.2009, 20:46 Uhr
Klaus



Hallo Gerhard,

mit den PIO-Adressen meinte ich meinen Handbuch-Auszug im Vergleich zu Holms Auflistung.
Somit deckt sich ja Deine Aussage zur Adressierung über Bit A0/A1 mit den im Handbuch angegebenen E/A-Adressen.

Viele Grüße,
Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
023
04.01.2009, 21:28 Uhr
holm

Avatar von holm

Ich habe noch mal nachgesehen, B//A der Pio geht an A0, demzufolge ist meine Aufstellung oben flasch und ich werde sie jetzt korrigieren. Damit führe ich zwar nun
einen Teil der Diskussion hier ad absurdum, aber man kann den Text oben ggf. rauskopieren...

Die defekte Platine hat nun einen funktionierenden RAM, CPU und CTC,
Die Speicherschutzmimik habe ich nicht ausprobiert und die PIO auch noch nicht, daher ist mir das noch nicht selber aufgefallen..

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;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
024
04.01.2009, 22:54 Uhr
holm

Avatar von holm


Zitat:
Rüdiger schrieb

Zitat:
Enrico schrieb
Auch wenn 2 CPUs für CPM-Rechner nun alles andere als nomal ist.

Die 2. CPU ist ja auch nicht für CP/M, sondern für SIOS.

:-)

Du weest nischt :


Quellcode:
;       Speicherschutz
;       ~~~~~~~~~~~~~~
mprot   equ     0       ;=1: mit Speicherschutz
;                        =0: ohne
        IF      mprot
biosln  aset    biosln+150h     ;Laenge Speicherschutzroutinen
        ENDIF

Auszug aus dem bios.mac Konfigurationsfile für CP/A.

Die 2. CPU kümmert sich auch unter CP/A (und nicht nur bei diesem OS)
im Bürocomputer um die Kommunikation mit den AFS Karten.
Das Ding wird vorinitialisiert und holt bei CPU Umschaltung (BUSRQ vom Floppycontroller) hintereinander weg die Daten vom Floppycontroller um
sie in den RAM zu schaufeln. Das erspart die Zeit für den Kontextwechsel...

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;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
025
04.01.2009, 23:25 Uhr
Enrico
Default Group and Edit


Könntest Du da eine Abschätzung geben wieviel Zeit man dadurch rausholt?
Am besten als MHz-Zahl, also 2 x 2,45 MHz = 1 x ... MHz ?
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
026
05.01.2009, 05:06 Uhr
holm

Avatar von holm

Nein, so sicher nicht. Die 2. CPU hat Pause solange die Haupt-CPU läuft, die Dinger laufen also nicht parallel, können sie auch nicht, da sie im Wesenltichen auch parallel geschaltet sind.
Was da für ein Geschwindigkeitsvorteil entsteht hängt u.A. von der Software ab, möglicherweise ist das unter MP/M zu merken, unter CP/M sicher nicht wirklich.
Im Prinzip tut ein DMA Schaltkreis das Selbe. Der FDC fordert einen Datentransfer an,
der Haupt-CPU wird der Bus weggenommen und der DMAC holt die Daten vom FDC und schafft die in den Hauptspeicher bzw. holt sie von dort. Der Komplette Registersatz der Haupt-CPU bleibt in dieser Zeit unverändert und die Arbeit kann dort fortgesetzt werden, wo sie unterbrochen wurde. Da es in der DDR zu der Zeit als die Bürocomputer
der A5120 Serie raus kamen keine DMA Controller gab, haben die da diese Mimik mit der 2. CPU erfunden. Diese wird so vorinitialisiert das sie wenn sie den Bus erhält einen INIR oder OTIR ausführt, d.h. der FDC muß nicht warten und die Haupt CPU wird nicht verändert.

Man kann die AMF5120 und 5122 auch so umwickeln, das sie mit WAIT Betrieb statt BUSRQ arbeiten, die Haupt-CPU muß sich dann selber um den Transfer kümmern
muß den aktuellen Prozeß unterbrechen, Register sichern, Transfer einleiten und wird dann so lange schlafen geschickt (WAIT State) bis der FDC aus der Knete kommt.
Damit läuft der Kram auch z.B. mit einer K2521 wenn man die Mimik mit dem Urlader und den 64K RAM irgendwie mit MEMDI usw. hingebastelt bekommt. IMHO gibt es solche Rechner mit irgendwelchen SCP Varianten in der K89 Serie..
In der Uni früher hatten wir mal eine Diplomarbeit mit Software von irgend einem Studenten einer anderen Uni vorliegen (WPU Rostok?) mit Schaltplänen usw.
Da ging es um den Umbau von K8913 zu CPM Rechnern, ich hatte sowas für unsere 2 Sekretösen im Institut als Schreibmaschine gebaut, mit 8 Zoll Floppies in einem
Tisch (original) auf dem das K8913 stand.
Das aktuelle CP/A (von 89) hat auch verschiedene ZRE Konfigurationen vorgesehen, ich habe das aber noch nicht näher untersucht. Das muß da genau so funktionieren.

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;}

Dieser Beitrag wurde am 05.01.2009 um 05:08 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek