002
10.01.2013, 18:04 Uhr
holm
|
Wir hatten wohl 16K ROM und 48K DRAM in der Kiste. Frage mich aber nicht nach irgendwelchen MEMDI Geschichten, das ist ein Bisschen lange her. Im Prinzip sollte das nicht deutlich anders sein als beim MC80 selber. ROM ab 0, ich galube aber wir haben das später in den RAM umgeladen und den ROM abgeschaltet, das müßte sich aber im Code finden lassen wenn das hier schon aktuell war.
Die Tastatur hing an einer PIO, ich weiß aber nicht genau, ob da noch ein Decoder für mehr Spalten dran war (Nachtrag: doch war). Auf alle Fälle mußten da noch Dioden rein weil sonst bei mehreren gedrückten Tasten u.U Kurzschlüsse auftraten. Meiner Meinung nach war das eine Matrix die zyklisch durchlaufen wurde, wir hatten aber auch mal eine Variante (kann auch sein das war vorher) bei der im Ruhezustand sämtliche Zeilenleitungen mit L Signal belegt waren und erst beim Drücker einer Taste ein Scanzyklus ablief. (Nachtrag: Widerstandsnetzerk an Decoder, das sieht so aus!) Ich weiß ja nicht mal mehr wie die Geometrie der K7659 aussah (als Matrix und deren Belegung) aber das war durch die Tastaturbelegungstabelle im ROM wohl frei anpaßbar. Notfalls kann ich nochmal meinen Kumpel fragen was dem noch so einfällt..Nach gucken in die Quelle:
Quellcode: | LD A ,00FH ;SPALTE 0 OUT (IOTAPIO),A ;SPALTENWERT AUSGEBEN IN A,(IOTBPIO) ;ZEILE ABFRAGEN BIT 7,A ;TEST: FESTSTELLTASTE ?
|
weißt Du schonmal, das am Pio Port A die Spalten ausgegeben werden, und das auf Zeile 0 Spalte 7 die Caps Lock Taste liegen müßte.. Ein paar Zeilen weiter Bit 6 für Umschalttaste (Shift).
Quellcode: | M3029: INC A ;SPALTENWERT ERHOEHEN LD L,A ;UND IN L RETTEN CP 00FH ;TEST: ALLE SPALTEN ABGEFRAGT ? JP NC,MA4 ;JA
|
...macht klar, das wir wohl 15 Spalten hatten die über einen Decoder liefen (74154?) Ich denke mal an dessen Ausgänge die Dioden ran (Kathode zum Decoder, Anoden zur Matrix) und die Zeilen der Matrix mit Pullups an PIO Kanal B.
Im LED Programm sieht man, das da noch mehr war, nämlich das da 2 D195 waren die die Information von PIOA[3..0] jeweils mit PIOA[5] und PIOA[6] zwischengespeichert haben, daran hingen wohl die LEDs (noch irgendwelcher Kram?). LPU heißt Leuchtdiodenpuffer, man müßte mal die Kommentare lesen welches Bit da wann gesetzt/rückgesetzt wurde.. Hmm... das Widerstandsnetzwerk für PIO Kanal B hing offensichtlich am Ausgang 3 des decoders, keine Ahnung wozu das jetzt gut war, ich glaube Klaus (der Kumpel) hatte da noch was mit Rollover gebastelt...
Hat Jemand die Schaltung der K7659 ... oder sogar eine übrig?
Über diese Widerstandsnetzwerkgeschichte muß ich nochmal nachdenken, es ist offensichtlich so, das die Tastatur keine Rechenzeit brauchte und ein L auf irgend einem Pin von PIOB einen Int auslöste, der seinerseits einen Scanzyklus abarbeitete. In Ruhe war der Kram also statisch...
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 10.01.2013 um 18:16 Uhr von holm editiert. |