Junior Computer ][

  • ..dann werde ich den vermutlich auch erstmal nicht bestücken.. so ganz ohne Tastatur macht das wenig Sinn

    Du kannst das ja auch erst mal wie klaly machen. Einfach eine extra Platine mit günstigen Mikro-Tastern fliegend verdrahten.

  • Die Digitast sind mittlerweile Gold wert? Ich hab da noch welche von. Reichen leider nicht für noch einen Junior. Aber bei KA verkauft gerade einer 19 Stück für 19 EUR, nur leider bunt gemischt.

  • ich wünsche mir für Anfang 2022 ein schönes neues monitorprogramm für den JC ][

    am liebsten mir src Code.

    Ein Monitor für den 6502, der nicht nur die üblichen Monitor-Sachen machen kann, sondern auch assemblieren und disassemblieren kann, wäre z.B. der Bit Shifter Monitor (BSM) von Bit Shifter. Der Sourcecode ist z.B. hier [1] enthalten, so etwa ab Zeile 7148. Zugegebenermaßen klebt da noch "etwas" Betriebssystem und BASIC-Interpreter darum herum, aber das kann man ja bestimmt abpulen. Also so ein separates Release mit 6551-I/O-Routinen wäre schon etwas feines!


    [1] https://github.com/Edilbert/BSOS-8296/blob/master/bsos.asm

  • Du kannst das ja auch erst mal wie klaly machen. Einfach eine extra Platine mit günstigen Mikro-Tastern fliegend verdrahten.


    Ich hab diese Lösung vorerst genommen, weil etliche Omron Taster aus Schlachtgeräten hatte. Aber das Verdrahten war doch relativ mühsam und dann hab ich die Beschriftung nur aufgemalt. Ich werde mir wohl auch Marquardt Taster kaufen, aber vermutlich unbeschriftet und dann kommen halt gedruckte Aufkleber drauf und Sprühlack drüber.


    mfG. Klaus Loy

  • ... Ich werde mir wohl auch Marquardt Taster kaufen, aber vermutlich unbeschriftet und dann kommen halt gedruckte Aufkleber drauf und Sprühlack drüber.


    mfG. Klaus Loy

    Ich mache das so.

    Benötigt werden ein Brother P-touch und 12mm bzw. 18mm Bänder, bevorzugt werden TZ-231, TZ-335, TZ-131 für 12mm bzw. TZ-241, TZ-345, TZ-141 für 18mm Bänder. Die teuren P-touch-Geräte können zweizeilig mit unterschiedlicher Fontgröße drucken (sehr nützlich). Die Bänder sind abriebfest und kleben gut.



    Für die Verarbeitung werden ein 10er Locheisen, feste Sperrholzunterlage und ein 300-500g Hammer benötigt. Die Maquardt Tastenkappen haben ja eine 11mm breite Mulde. In diese lässt sich der 10mm Stanzling ideal einkleben. Vorher die Tastenfläche mit Spiritus reinigen.



    Und wenn man das gut gemacht hat (Fehlversuche kosten 25mm Band) dann kann das so aussehen.

    Ein Tastenkappensatz für einen Intel SDK85-Nachbau.



    Ich brauche keinen Sprühlack oder ähnliches.

    Die ganze Sache ist billig und schaut ordentlich aus. Auch halten die Klebeschildchen einer längeren Nutzung stand.

    Der Druck geht sogar zweizeilig und es ist handmade :love:.

    Die Aufkleber lassen sich auch wieder entfernen. Wie man rechts unten sieht, habe ich Tastenkappen recycelt.


    Beste Grüße

    mesch

  • Sehr gute Idee, zumal ich so ein Beschriftungsgeräte habe :)


    Locheisen muss ich bei der Norma mal kaufen. Die haben immer so nettes günstiges Werkzeug, ok, evtl. nicht besonders hochwertig, aber für Daheim taugt es. Locheisen hatte ich da schon öffter gesehen, aber noch nie gebraucht.


    mfG. Klaus Loy

  • Hallo, alle Interressierte!


    Hier kommt nun also der angekündigte (absichtlich recht ausführliche und technische) Teil 2 der Junior Computer ][ Beschreibung.


    "Begin at the beginning, and go on till you come to the end: then stop!"


    1980


    In der Ursprünglichen Schaltung des Junior Computers wurde über einen einzelnen 74LS145 die komplette Adressdekodierung bewältigt. Beim 74LS145 handelt es sich um einen BCD-Decoder mit aktiv Low Open Collector Ausgängen. Hiermit wurde über die Adressleitungen A10 bis A12 der unterste 8K Speicherbereich der 6502 in acht einzelne 1KB Bänke unterteilt.


    Zur Erläuterung: Open Collector Ausgänge sind im Zustand Low gegen Masse geschaltet und im Zustand High hochohmig. Ein High-Pegel mit +5V, wird erst durch verbinden des Ausgangs über einen Pull-Up Widerstand mit +5V erreicht. Aktive Low heißt, dass ein aktiver Zustand mit einem Low Pegel dargestellt wird. Das ist auch der Pegel, den die meisten Computer Bausteinchen als Enable-, bzw. Select-Signal brauchen.

    Ein BCD (Binary Coded Decimal)-Decoder besitzt vier Eingänge und zehn (K0-K9) Ausgänge. Damit können also aus 4 Bit die Dezimalziffern 0 bis 9 decodiert werden. Die Zustände 10-15 sind ungültig.


    Der Junior nutzt nur drei Eingänge (A,B,C) des BCD-Decoders zur Dekodierung der oben erwähnten acht 1KB Bereiche, plus den vierten (D) als Enable-Eingang (am Slot als Pin EXT herausgeführt). Geht Eingang D auf High, befinden wir uns im BCD Bereich 8 bis 9, die acht Ausgänge K0-K7 gehen also auf High und deaktivieren somit alle Bausteine im unteren 8K Bereich.


    Im Normalfall wird aber, über einen Jumper, Eingang D auf Low gelegt, womit die acht Bänke also via Adressleitungen A10 bis A12 selektiert werden. Die Adressleitungen A13-A15 sind im Junior nicht beschaltet.

    Mit K0 (Adressbereich $0000-$0400) wird das 1KB RAM selektiert, K6 ($1800-$1BFF) aktiviert den 6532 RIOT (RAM, Parallel I/O, Timer) und K7 ($1C00-$1FFF) ist mit dem Chip-Select Eingang des 1KB EPROMs verbunden.


    Durch die unvollständige Adressdekodierung (A13-A15 hängen ja in der Luft) werden RAM, ROM und RIOT acht mal, in regelmäßigen Abständen von jeweils 8KB, im gesamten 64K Adressbereich der 6502 eingeblendet.

    Für den einfachen Entwurf des Junior Computers war das perfekt, da sich das RAM im unteren Bereich befinden muss (Zero-Page $0000-$00FF und Stack $0100-$01FF), das ROM aber eigentlich den obersten Bereich abdecken muss, da hier der Reset-Vektor, der IRQ-Vektor und der NMI-Vektor ($FFFA-$FFFF) liegen. Die Monitor ROM Routinen des Junior sind für den Adressbereich $1C00-$1FFF geschrieben, der Reset Vektor liegt hier dann auf Adresse $1FFC und $1FFD. Bei einem Reset wird das ROM nun aber auch in $FC00-$FFFF eingeblendet, womit der Reset-Vektor gefunden wird und deshalb nichts schief geht.


    Soweit der Junior Computer von 1980. Kaffeepause !!! :coffeepc:


    Nun zum Junior Computer ][


    Mein primäres Ziel war es, so wenig zusätzliche Bausteine wie möglich zu der ursprünglichen Schaltung hinzuzufügen und den original ROM-Code möglichst nicht anzurühren.


    Um das RAM auf 32KB und das ROM auf 8KB aufzubohren, war mein erster Impuls natürlich, die Dekodierung vollständig anders zu gestalten. Zum Beispiel, die 64K mit einem 4 zu 16 Decoder in 16 x 2KB Seiten zu stückeln. Das hätte aber dazu geführt, dass alle I/O und ROM-Routinen Adressen plötzlich an anderen Stellen gelegen hätten. Das Monitor Programm hätte also vollständig umgeschrieben werden müssen. Keine gute Idee…


    Spätestens hier hätte ein heutiger Informatiker zu einem Arduino gegriffen, ihn auf das Mainboard verschraubt und verlötet und das decoding Problem mit einem höchsteffizienten 3000 zeiligen C++ Programm erschlagen.

    Aber der Homo Computeris aus den 80er hatte ja nichts, schon gar keinen Speicher übrig und er musste sich alles aus dem kargen Boden des Prätertiär kratzen. Aber deshalb wusste auch schon ein damals nur halbwegs begabter Programmierer, wie man die Zahl alle bisher vergangener Sekunden X seit dem Urknall nachhaltig in ein einziges Byte komprimieren konnte: Y = X mod 256. Passt schon! Aber ich schweife ab...


    Jedenfalls sah meine Lösung nach etwas grübeln im Junior Computer ][ nun folgendermaßen aus:


    Ein zweiter 74LS145 BCD-Decoder (Decoder 2) teilt über die Adressleitungen A13-A15 die gesamten 64K in acht 8KB Pages. An der untersten Select-Leitung K0 hängt nun kaskadiert der besagte D-Eingang des ersten BCD-Decoders (Decoder 1). K0 an Decoder 2 aktiviert nun also mit einem Low Pegel Decoder 1, der wie gehabt in den unteren 8KB seinen Dienst versieht.

    Bei einem Reset, NMI oder IRQ geht das nun aber gründlich schief, da jetzt keine Spiegelung des ROMs nach $FC00-$FFFF mehr zu Stande kommt.


    Und hier kommen nun die Open Collector Ausgänge ins Spiel. Mit dieser Art Ausgänge kann durch einfaches Verbinden von zwei oder mehr Ausgängen ein sog. Wired AND erzeugt werden. Die verbundenen Ausgänge hängen mit einem einzelnen Pull-Up Widerstand an +5V. Geht auch nur einer der Ausgänge auf Low ist also das Wired-AND auch Low, auch wenn andere O.C. Ausgänge im (hochohmigen) High Zustand sind :bob:. Kein Kurzschluss, kein Magic Smoke, keine zusätzlichen Gatter notwendig. 8-)


    Ich habe nun einfach das ehemals 1KB große Monitor-Programm in die obersten 1024 Byte eines 8KB EPROMS „gebrannt“ und den Chip-Select Eingang dieses ROMs dann mit dem K7-Ausgang des Decoder 2 verbunden. Außerdem ist K7 von Decoder 1 mit K7 von Decoder 2 verbunden.


    Und Voilà schon liegt der ROM Bereich sowohl in der 1KB Bank $1C00-$1FFF als auch in der 8KB Bank $FC00-$FFFF.


    Das RAM kann nun auf die gleiche Weise in verschiedenen Bänken eingeblendet werden. Ich habe das durch Verbinden von K0 und K1 des Decoders 1 mit K1, K2 und K3 des Decoders 2 gemacht. Das heißt jede verbundene Kx Leitung von Decoder 1 blendet jeweils 1KB RAM und jedes Ky von Decoder 2 jeweils 8KB RAM ein. Somit ergeben sich 2K+24KB = 26KB nutzbares RAM. Man kann aber auch noch K2 bis K4 von Decoder 1 mit den anderen RAM Select Leitungen verbinden, um weitere drei KB RAM frei zu schalten. Allerdings hat man dann keine Möglichkeit mehr, zusätzliche (externe) Hardware zu aktivieren.

    K5 ist im Junior Computer ][ für den hinzugefügten ACIA Baustein (RS232) reserviert.


    Der Eingang D des Decoders 2 übernimmt nun den ursprünglichen Part von D des Decoders 1 und kann nun als EXT Eingang genutzt werden, um die Onboard Dekodierung zu deaktivieren und eine eigene externe zu nutzen.


    Hier noch mal der Schaltungsteil.


    forum.classic-computing.de/index.php?attachment/118483/


    Der Adressraum ist jetzt also folgendermaßen aufgeteilt:


    $0000 - $07FF (2KB)
    Zero-Page, Stack, User RAM
    $0800 - $0BFF (1KB)
    I/O Bereich (K2)
    $0C00 - $0FFF (1KB)I/O Bereich (K3)
    $1000 - $13FF (1KB)
    I/O Bereich (K4)
    $1400 - $17FF (1KB)
    6551 ACIA Serielle RS232 Schnittstelle
    $1800 - $1BFF (1KB)
    6532 RIOT
    $1C00 - $1FFF (1KB)
    ROM, Junior Computer Monitor Programm
    $2000 - $7FFF (24KB)
    User RAM
    $8000 - $DFFF (24KB)
    Drei freie 8KB Bänke für ROM, User RAM oder I/O selektierbar via Bank4_Sel, Bank5_Sel und Bank6_Sel
    $E000 - $FFFF (8KB)
    Gespiegeltes Junior Computer Monitor ROM, (Seriell) Print Monitor und eventuelle zukünftige Programme


    So, ich hoffe ich konnte einige Leute erhellen und niemanden ist zwischenzeitlich der Kopf explodiert, was schade wäre :shock:.


    Da ich gerade noch aktiv Änderungen an der Schaltung ausführe, kommen eventuell noch ein paar Dinge hinzu, über die ich dann aber nicht mehr so (über)ausführlich berichten werde.


    Bis dahin.

  • Ich hab mal eine Tüte "China-Digitast" bestellt. Mal sehen, ob die einsetzbar wären für einen Junior. Nicht, daß ich die aktuell bräuchte (hab ja funktionierenden Junior), aber es interessiert mich.

  • So, gestern sind endlich die bestellten EEPROMs gekommen. Das macht das Entwickeln doch deutlich schneller als mit EPROMs. Mein alter Isel UV-EPROM Löscher hatte nach 5 mal EPROM leeren schon deutlich seltsam gerochen :tüdeldü:.

    Der Hex Monitor ist jetzt von mir auf 16 Spalten erweitert worden. Ausserdem ist eine Spalte mit ASCII Übersicht der Daten hinzugekommen. Demnächst kommt dann endlich ein Daten Loader/Saver dran.


    forum.classic-computing.de/index.php?attachment/118769/

  • Bitte nicht vergessen, dass die Original-Terminalroutinen des Junior ein Elekterminal unterstellen, also 16x64 Zeichen. Eine Konfigurieroption wäre da hilfreich.

    Meine Computer: Elektor Junior, EPSON HX-20, Robotron PC1715, Poly-Computer 880, Schneider CPC464, APPLE II+, VIKTOR V386PX

    Mein Betriebssystem: CPM-65

  • Bitte nicht vergessen, dass die Original-Terminalroutinen des Junior ein Elekterminal unterstellen, also 16x64 Zeichen. Eine Konfigurieroption wäre da hilfreich.

    Besonderheiten des original Elekterminal werde ich definitiv mit meinem Monitor nicht unterstützen. Mein Monitor ist VT100 kompatibel, 80x24 (oder 132x24) Zeichen. Weil ich auch noch eine auto Baudrate Erkennung via Identify ESC-Code einbauen werde und auch andere VT100 Befehle wie Clear Screen und Home nutze ist das erst mal meine Vorraussetzung. Ausserdem besitze ich kein Elekterminal und hab mich auch deshalb damit noch nicht wirklich auseinadersetzen können :(. Also sorry. Ob ich eine Option für die Umschaltung 8 oder 16 Byte Daten im Hex Monitor einführe weiss ich noch nicht. Kommt Zeit, kommt Rat...

  • Ich hab jetzt im neuen Schaltplan folgendes mit aufgenommen:


    - einen Ein-/Aus-Schalter (endlich).

    - einen Pin Header zum externen einspeisen von -5V und +12V, bzw. um dort eine Spannungswandlerplatine für die zwei Spannungen einzustöpseln.

    - Auto Reset.

    - 64KByte statisches RAM statt 32K, sowie drei Jumper um davon jeweils 8KB bei Bedarf in den freien Adressraum einzublenden.


    und jetzt schau ich, ob ich es noch ohne weitere Bausteinchen hin bekomme, im reservierten 1K Adressraum der ACIA 512 Byte des RAMs einzublenden, um dort die jeweils 256 Byte großen ACIA und String Input Buffer hin zu verlegen. Wäre sonst echte Speicherverschwendung.


    Die neue Platine sollte dann irgendwann nächste Woche fertig geroutet sein.

  • Morgen bei der Reichelt Bestellung werde ich mal 23 Stk Marquardt Taster a. 1,30€ mit bestellen.
    Tastenkappen, da er eigentlich nichts gescheites.
    Müpsste mann evtl. 3D drucken.

  • Morgen bei der Reichelt Bestellung werde ich mal 23 Stk Marquardt Taster a. 1,30€ mit bestellen.
    Tastenkappen, da er eigentlich nichts gescheites.
    Müpsste mann evtl. 3D drucken.

    Z.B. Conrad ohne Beschriftung 0,59€ / Stk.

  • @2ee,
    danke für den Tip, bei Conrad hatte ich schon mal geschaut, nach den Tastern.
    Die waren da wesentlich teuerer als beim Reichelt.

    Aber der Preis für die Kappen ist echt gut.

  • Die waren da wesentlich teuerer als beim Reichelt.

    Hallo klaly. Deshalb hatte ich die Taster auch bei Reichelt bestellt :). Bei Conrad gibt es auch die Farben Rot und Grau. Beschriftet mit 0..9 nur in Schwarz, bzw. Anthrazit. Die Kappen mit LED Loch gibt es in allen Farben.

  • Hallo zusammen,


    die neue Revision der Platine ist jetzt fertig. Ich werde dann am Montag oder Dienstag meine neue Bestellung bei JLCPCB aufgeben. Wer also Interesse hat, meldet sich einfach. :)

  • ... meine Reichelt Taster sind Gestern schon gekommen.

    @2ee,
    wieviel würde denn eine Platine ca. kosten ?
    Weil ich hab ja schon eine, aver die neue wäre ja evtl. noch besser, ...

    mfG. Klaus Loy

  • Weil ich hab ja schon eine, aver die neue wäre ja evtl. noch besser, ...

    dito!


    edit: bzw. fragen wir mal so: macht es dann überhaupt Sinn, die bereits gelieferte Platine überhaupt aufzubauen? ... oder sollte man doch lieber gleich die neueste Version bauen?:grübel:

    ich bin signifikant genug:razz:

  • Für mich würde es keinen Sinn machen, sie nicht aufzubauen.
    Weil sie schon fertig ist :)


    ... und sie mir bereits Freude gemacht hat, einfach weil sie funktioniert.


    Aber da ich ich jetzt die passenden Taster hab und keine Lust die bastel Taster von der alten Platine runter zu machen, interessiert mich die neue Platine schon.


    Wobei der preis müsste halt passen, ...
    Andereseits der Preis der ersten war für mich und auch für die von Shadow-aSc ja unschlagbar günstig.


    mfG. Klaus Loy

  • wieviel würde denn eine Platine ca. kosten ?

    Hallo klaly , wenn ich 5 Platinen nehme, dann bin ich bei knapp 25€. Ich würde dann einfach 5€ pro Platine veranschlagen, plus 1,50€ Porto also 6,50€ gesamt. Außer es finden sich mehr Abnehmer, dann wird es natürlich pro Platine etwas günstiger.

    edit: bzw. fragen wir mal so: macht es dann überhaupt Sinn, die bereits gelieferte Platine überhaupt aufzubauen? ... oder sollte man doch lieber gleich die neueste Version bauen?

    Hallo Shadow-aSc , in die neue Revision sind jetzt doch einige Änderungen eingeflossen.


    - Zunächst hab ich natürlich den versehentlich falschen Footprint der seriellen Schnittstelle geändert. also DB25 Stecker statt Buchse.


    - Wie bereits erwähnt, ist jetzt ein Schalter für die Spannungsversorgung dazu gekommen.


    - Am ROM kann jetzt Pin 1 per Jumper auf +5V gelegt werden, damit 32K EEPROMs damit sauber funktionieren, da hier statt VPP dann A14 an Pin 1 liegt.


    - Als RAM können jetzt bis 128K SRAMs eingesetzt werden. Am Bus Stecker liegt jetzt auch A16 als 128K_SEL Signal an, womit also extern ein Bankswitching in die zweiten 64K möglich wären.


    - Bei mehr als 32K RAM können die drei im 64K Adressraum bisher freien 8K Bänke per DIP-Switches mit RAM belegt werden, also zusätzlich bis 24K RAM, bzw. 48K bei 128K SRAM Bausteinchen.


    - Die unteren 512Byte im 1K ACIA Adressraum sind jetzt ebenfalls mit RAM belegt, somit können dort die Buffer für ACIA und String Input liegen.

    Ich musste dafür nur das 7400 NAND gegen einen 7404 Inverter eintauschen (die 7400 NANDs im original Junior sind alle als Inverter geschaltet). Somit hatte ich noch zwei weitere Inverter übrig um aus einem 7401 NAND ein OR zu machen, was ich dann zur Dekodierung nutzen konnte.


    - Und ja...

    Ist der Bus denn jetzt kompatibel?

    die beim Junior Computer benutzte Belegung ist jetzt 1:1 umgesetzt. Über eine zusätzliche Buchsenleiste können die fehlenden +12V und -5V eingespeist werden. Wie, bleibt jedem selber überlassen.


    Eine Einschränkung gibt es allerdings. Der Junior Bus sollte ja eigentlich SC/MP Bus kompatibel sein. Das ist bei mir nicht gegeben, da ich zusätzlich vier neue Signale auf dem Bus liegen habe, der SC/MP Bus aber nur noch 3 N.C. übrig gelassen hat. Allerdings nutzt der Junior Computer auch einige Anschlüsse anders. Deshalb hab ich mich da nicht verpflichtet gefühlt, katholischer als der Papst zu sein ;).

  • Also ich bin dabei, 10€ pro Platine wäre ein fairer Preis.
    Du musst es ja auch vor finanzieren.


    Bitte für mich eine mit bestellen.


    mfG. Klaus Loy

  • Ich hab mal eine Tüte "China-Digitast" bestellt. Mal sehen, ob die einsetzbar wären für einen Junior. Nicht, daß ich die aktuell bräuchte (hab ja funktionierenden Junior), aber es interessiert mich.

    So, die "China-Tast" sind da.


    Kurzfazit: Kann man einsetzen, wenn man alles neu macht.


    Lang: Ich habe die in rot bestellt. Auf den Bildern ein Vergleich zwischen Original (hellgrauer Unterteil) und China (dunkelgrauer Unterteil).

    Man sieht hier klar, daß das Rot anders ist. Ein kräftigeres Rot aus China, welches ein wenig transparent wirkt wenn man es seitlich beleuchtet. Sollte aber eingebaut keinen Unterschied machen. Wenn man aber mit originalen Tastern mischen würde, dann fällt das massiv auf. Zumindest bei Rot. Für die anderen Farben kann ich keine Aussage machen.


    Die Abschrägungen der Tastenkappe sind im Original ausgeprägter.


    Insbesondere die obere Fläche, wo evtl. auch eine oder zwei LEDs sitzen, ist im Original stärker angeschrägt.


    Die Kontakte auf der Unterseite haben die gleichen Positionen, auch der Haltestift.



    Allerdings, hier mal schnell ein Mikroskop-Bild, sind die Kontaktstifte der neuen ein wenig breiter. Die sind 0,9mm breit, über die Diagonale 1mm. Benötigen also 1mm oder besser 1,1mm Bohrung. Ist noch in der Toleranz auch der originalen Taster, aber falls da jemand die Löcher mit 0,8mm im Layout hat: Das wird eng.


    Es sind diese Taster:

    https://de.aliexpress.com/item/32983518563.html


    Kosten 9,70 USD für 10 Stück (also etwa 8,50 EUR).