Junior Computer ][

  • Ich bitte aber um Nachsicht, wenn das gerade etwas dauert,

    LOL ...das soll wohln Witz sein? ...ich kann dir sagen, wie weit ICH mit dem Projekt bin: "gedanklich" hab ich mit dem Bestücken der Platine angefangen ... rein "Physisch" äääähm ...:tüdeldü:

    ich bin signifikant genug:razz:

  • Hallo nochmal an alle,


    beim darüber schreiben ist mir gerade eingefallen, dass ich zwar die aktuellen Gerber-Files für die Platinenversion 3b (mit integriertem RAM-Patch) hochgeladen habe, ich aber leider vergessen hatte, den Schaltplan zu aktualisieren und das schon lange nachholen wollte :fp:. Sorry. Die aktuelle Schaltplanversion ist jetzt in der Zip Datei enthalten. :)


    Ich hoffe jetzt, dass ich nicht noch was vergessen habe.


    Grüße


    Jörg

  • Ich bitte aber um Nachsicht, wenn das gerade etwas dauert,

    LOL ...das soll wohln Witz sein? ...ich kann dir sagen, wie weit ICH mit dem Projekt bin: "gedanklich" hab ich mit dem Bestücken der Platine angefangen ... rein "Physisch" äääähm ...:tüdeldü:

    Ich hab noch nichtmal Tasten bestellt. Bin also gedanklich noch im Bestellprozess.

  • Ich bitte aber um Nachsicht, wenn das gerade etwas dauert,

    LOL ...das soll wohln Witz sein? ...ich kann dir sagen, wie weit ICH mit dem Projekt bin: "gedanklich" hab ich mit dem Bestücken der Platine angefangen ... rein "Physisch" äääähm ...:tüdeldü:

    Ich hab noch nichtmal Tasten bestellt. Bin also gedanklich noch im Bestellprozess.

    ...und ich rödel mir hier den Arsch ab... 8o

  • So, es ist vollbracht.


    Nachdem ich jetzt diese Woche nicht gaaanz so motiviert war, den Command Parser neu zu schreiben, bin ich jetzt am Dienstag Abend doch vor mir selber eingeknickt und hab mich unterstützt von einem Gläschen Guinness dran gesetzt. :coffeepc:  ::heilig::


    Der Umbau war dann doch größer als gedacht (aber wohl nicht wie geahnt), dafür habe ich aber gleich noch ein paar Fehler entfernt und den Code weiter aufgeräumt.

    Zunächst fängt der ROM Code nun nicht mehr bei Adresse $F800, sondern am Anfang des 8K Bereichs, also bei $E000 an. Die CRC Tabellen und der Original Junior Monitor stehen ganz oben. Somit haben sich einige Speicherlücken geschlossen und es ist mehr Platz für eine kleine Programmiersprache. Allerdings könnte es maximal für ein Apple 1 Integer Basic reichen. NorbertJ und ich werden das wohl über eine kleine I/O und ROM Platine lösen, die NorbertJ gerade angefangen hat zu stricken.


    Nun zum geänderten Command Parser:


    Ich habe versucht so viele Features wie möglich des alten Woz Monitors zu behalten und dennoch mit einigen Problemen aufzuräumen. Bisher musste ich mit einem zweiten Kommandointerpreter für die XMODEM Eingaben arbeiten. Das ist jetzt vom Tisch. Die Bedienung hat sich hier vollständig geändert. Die restlichen Befehls Eingaben sind aber gleich geblieben.

    Die Befehle zum Speichern und Laden bestehen jetzt aus dem jeweiligen Präfix L wie Load, bzw. S wie Save, danach wird der Ein-/Ausgabeport angegeben.

    M wie (X)Modem, P wie Parallel Port (oder auch Papertape :)) und T wie Tape (im Sinne von Kassette). Also z.B. LP für Load Papertape oder LM für Load Modem.

    ACHTUNG: Zur Zeit gehen nur die Befehle LM und SM (mal schauen, wie viele von euch die Abkürzungen falsch interpretieren 8o).


    Im angehängten Zip findet ihr die 8K und 32K ROM Versionen für Rev. 3 Boards und eine aktualisierte Bedienungsanleitung. Da ich jetzt erst noch den Parallel Port unterstützen möchte, schiebe ich das noch nicht zum Download auf meine Seite. Das ist also eher für die, die für mich Beta Tester spielen wollen.


    Euch allen erst mal schöne und geruhsame Feiertage und viel Spaß bei der Easter Egg Suche.


    Jörg

  • Hi Jörg,

    danke für das Update. Ich bin sehr gespannt.

    Was soll auf die I/O -Platine drauf?

    Wird der Junior so irgendwann erwachsen?


    Ich wünsche allen schöne Feiertage.


    Tschüss



    Udo

  • Hi Jörg,

    das Update funktioniert super, danke für deine Arbeit!


    Bis dann,

    Norbert

    ___________________________________________________________________________________________________

    "Traue niemals einem Computer, den du nicht aus dem Fenster werfen kannst" (Steve Wozniak)

  • Was soll auf die I/O -Platine drauf?

    Hallo Udo,


    generell sind da erst mal zwei 6522 VIA drauf, also insgesamt dann 4x 8Bit Ports mit Interrupt und alles was die VIA halt so beherrscht. Als zweites ist ein ROM für den Adressbereich C000-DFFF (also 8K) drauf. Da ich gleich ein 32K ROM angedacht habe und nicht wieder soviel verschwenden wollte wie auf der Hauptplatine, kann via Bank Switching zwischen vier 8K Bänken ausgewählt werden.

    Man könnte dann also z.B. zwischen vier Programmiersprachen wie Basic, Comal, Forth und Assembler wählen. Allerdings ist das ROM natürlich in erster Linie für einen Basic Interpreter gedacht. Kennt jemand ad hoc ein 8K FP Basic 6502, das als gut dokumentiertes Assembler Listing vorliegt? Für andere Sprachen mit den gleichen Vorgaben wäre ich natürlich auch dankbar.

    Falls ich dann nämlich doch mehr Platz im ROM benötige, muss ich das Bank Switching natürlich anpassen, oder spare es mir dann gleich vollständig.


    Wird der Junior so irgendwann erwachsen?

    Niemals!!! :cat2:

  • Hallo Jörg,

    das KIM KB9-Basic, für das es im Elektor eine Anpassung an den Junior gab.

    Es beinhaltet das original KIM-1 Basic und eine Elektorseite, auf der die Modifikationen für den Junior stehen.


    Viele Grüße

    Norbert

    Dateien

    ___________________________________________________________________________________________________

    "Traue niemals einem Computer, den du nicht aus dem Fenster werfen kannst" (Steve Wozniak)

  • Hier steht genaueres über das Procedere.

    ___________________________________________________________________________________________________

    "Traue niemals einem Computer, den du nicht aus dem Fenster werfen kannst" (Steve Wozniak)

  • Bei einem kleinen Spatziergang hab ich gerade im öffentlichen Bücherregal mein Osterei gefunden:

    Dieses schöne Buch von Helmut Höfling aus dem Jahr 1985...wie cool ist das denn!!! :sunny:


  • Ja gibt's denn das? Beim Aufräumen habe ich einen alten Schatz gefunden, das Original:

  • Nachtrag zum KB9 Basic (Dank wieder einmal an Hans Otten):


    MAKE MS BASIC KB9 FASTER: THE ROR BUG

    KIM Kenner 19 Patches op Basic Hans Otten, translated by Hans Otten, 20211

    May 1981 Byte Magazine had an article in System Notes, Faster Basic for Ohio Scientific.

    The article described how the first batch of the 6502 had a faulty ROR instruction, so the programmers of Microsoft Basic had to work around this missing instruction with a slower replacement, (Note 2021: this is well explained in the Pagetable MS Basic articles) and how to patch this to really use the ROR instruction and speed up things.

    A letter to the editor in a later Byte (September 1981?) showed the patches required for the KB9 KIM-1 version.


    Location $37DE to $3801 and $38D2 to $3903 are now unused.

    This patch may speed up KB9 quite a bit for number crunching.

  • @2ee,

    ich möchte am Samstag meinen Lochstreifen Leser / Stanzer zum VCFe 21.0 mitbringen.
    Vielleicht können wir deinem Junior darüber ein Programm rein laden, dass wir zuvor gestanzt haben.

    Hierfür müsste deine serielle Schnisstelle mit 4800 2400 oder 1200 Baud laufen können.
    Und es bräuchte ein Handhake für FlowControl, damit der Leser den Junior nicht zu stopft.


    ... und an meinen Apple muss ich das Teil irgendwie auch dran fummeln.


    mfG. Klaus Loy

  • Mission Printing on JC 2 - not impossible !!! :sunny:



    Der Paralleldrucker läuft super. Ich werd jetzt noch eine kleine Schaltung mit bidirektionalen Treibern basteln, um Schreiben UND Lesen über Schnittstelle zu realisieren, ohne irgendwelche Port I/Os zu schrotten, wenn die Endgeräte gleichzeitig dran hängen.


    Hallo Klaus,

    bring das Teil auf alle Fälle mit. Ob ich das auf die schnelle hin bekomme, dass ich via serielle Schnittstelle da was laden kann, weiss ich aber nicht. Schließlich hängt an der RS232 auch das Terminal dran. Evtl. können wir während der VCFe ja was basteln. Bring jedenfalls auch mal Unterlagen zu dem Locher/Stanzer mit.

    Bei 4800 Baud braucht der Junior noch keinen Handshake. XModem läuft auch mit 19200 Baud ohne CTS/RTS Handshake perfekt.

    Bei deinem IIe sollten wir bzgl. lesen vom Tape Reader aber was machen können. Ich nehm mal die Unterlagen für die Super Serial Card mit, damit wir die DIP-Switches dann richtig setzten können.

  • Ich hab jetzt die Druckfunktion in den Monitor integriert. Mit dem Befehl P (wie Print) kann jetzt ein Disassembler Listing ausgedruckt werden. Mit PD (Print Dump) wird ein Speicherauszug als Hex-Listing gedruckt.

    Intern kann nun das Standard Input und Output Device gewählt werden. Dadurch werden dann alle an COUT bzw. alle von CIN kommenden Ein-/Ausgaben transparent an das gewählte Endgerät weitergeleitet.

    Die neuen ROM Images und Informationen, wie ihr einen Paralleldrucker an den Junior ][ anschließen könnt, gibt es dann am Montag nach der VCFe.


  • Jetzt hat es doch wieder länger gedauert. Aber hier ist erstmal für euch die ROM Version 0.8 mit integriertem Parallel Port Treiber und somit für die Ausgabe auf einem Drucker geeignet. Auf der Internetseite wird das ganze wohl erst nächste Woche zum Download bereit stehen, da ich gerade schlicht weg keine Lust habe :kafeee:.


    Zum Anschluss eines Druckers benötigt ihr ein kleines Adapterkabel. Der Anschluss am Junior erfolgt via 20 pol. Wannenstecker am I/O Port. Port A des 6532 stellt die Ausgabeleitungen D0..D7 bereit (entsprechend PA0 = D0 ... PA7 = D7). Am Port B ist PB7 = /Strobe und PB6 = Busy. Für die Zukunft ist PB5 = R/W gedacht, dann kann ein Eingabe- und ein Ausgabegerät angeschlossen werden. Auf der anderen Seite braucht ihr nur noch eine DB25 Buchse anschließen und dann mit einem Standard Druckerkabel verbinden.


    Junior ][ Port I/ODB25 Buchse
    3...10 (PA0...PA7)2...9 (D0...D7)
    18 (PB7)1 (/Strobe)
    17 (PB6)11 (Busy)
    19,20 (GND)19,20 (GND)



    Bei mir sieht das ganze so aus.



    Übrigens:

    Wenn ein Drucker angeschlossen ist, funktioniert das Hex-Display nicht mehr sauber, da der Drucker offensichtlich die Signal-Pegel runter zieht.

    Deshalb ist das ganze bisher nur ein Provisorium. Erst wenn an den I/O Leitungen Tri-State Treiber hängen ist das ganze dann problemlos zu betreiben. Aber für den Anfang reicht das erst mal.

    PB0 und PB1 liegen übrigens während der Ausgabe auf High, was dann das Display deaktiviert. Es gibt also kein lustiges Flackern zu sehen.


    Viel Spass!

  • Oohhh, ich habe es noch nicht mal geschafft den Rechner aufzubauen 🥴 und ihr bringt hier ein Update nach dem anderen! Ich muss unbedingt aufholen! 😊👍

    Ich suche: Atari 800, MPF-IP

  • Genau!

    ___________________________________________________________________________________________________

    "Traue niemals einem Computer, den du nicht aus dem Fenster werfen kannst" (Steve Wozniak)

  • So, nachdem ich diese Woche genug anderes um die Ohren hatte, konnte ich mich jetzt mal um einen Basic Interpreter kümmern. Da ich keinen adäquaten Interpreter finden konnte der in 8KB passt, habe ich mich jetzt für EhBasic Version 2.22 entschieden, welches in etwa 11KB groß ist. Den Patch für gemischte Groß-/Kleineingabe von Schlüsselwörtern hab ich auch gleich eingebaut.



    Lunar Lander läuft schon mal :P



    Für alle, die es mal ausprobieren wollen, anbei die Bin-Datei, welche ihr einfach via XModem (Befehl LM im Monitor) reinladen könnt. Dann einfach mit G starten. Bei der Frage "Memory size ?" einfach Return drücken.

    Falls jemand die Bin Datei in ein ROM brennen möchte, muss er die ersten zwei Bytes (00 B0) entfernen. Die sind nur für die XModem Übertragung drin (Ladeadresse).

    Laden und Speichern geht natürlich noch nicht, mangels Möglichkeit :tüdeldü:. Via Teraterm könnt ihr aber über Datei senden ein bereits bestehende Basic Programm zum Junior schicken. Dann allerdings unter Einstellungen -> Serieller Port den Transmit delay > 0 setzten, sonst verliert ihr Zeichen.


    Ich hab auch ein wenig an der Erweiterungsplatine gearbeitet. Danke NorbertJ für den Tipp mit dem DS1302, der ist jetzt als Uhrenbausteinen mit drauf.

    Ausserdem bin ich am Überlegen, auch noch einen AY-3-8910 Soundchip drauf zu setzten, erstens, weil ich noch einen rumfahren habe, zweitens sind sie retro und drittens noch erhältlich.


    Edit: Ihr solltet natürlich ein 64K RAM eingebaut haben und alle Switches auf ON stehen haben.

  • Hallo Jörg,

    läuft, super! :thumbup::thumbup::thumbup:

    Anmerkung: es benötigt die Monitorversion V.0.8, mit der V.0.7 klappt es nicht. Ich hatte sie vorher noch drauf.

    ___________________________________________________________________________________________________

    "Traue niemals einem Computer, den du nicht aus dem Fenster werfen kannst" (Steve Wozniak)

  • Oh

    Anmerkung: es benötigt die Monitorversion V.0.8, mit der V.0.7 klappt es nicht. Ich hatte sie vorher noch drauf.

    ja, das stimmt. Ich hab erst in der 0.8er Version die indirekten Sprünge auf CIN, COUT, BOUT eingebaut, um die Umschaltung zwischen Terminal und Drucker zu vereinfachen. Sorry, hatte ich vergessen. :kafeee:


    Ich werde mich mal dran setzen und den Befehlssatz von EhBasic etwas erweitern. Lee Davison, der Ursprüngliche Programmieren von EhBasic ist ja leider schon 2013 mit gerade mal 49 Jahren gestorben (RIP). Daher gibt es keine offizielle Weiterentwicklung. Ich hab mich aber schon ganz gut durch den Code durchgewurschtelt. Scheint nicht allzu schwer zu sein, da was zu erweitern. Ich muss halt schauen, dass ich dran bleibe. :winrechner: