Junior Computer ][

  • Hallo ThoralfAsmussen ,

    ich glaube, ich hab das jetzt nicht richtig verstanden, welchen Bereich für das Bank Switching du meinst. Wenn du das gesamte RAM unterhalb des ROM Bereichs $E000-$FFFF meinst, das kann theoretisch (ne, sogar ganz praktisch) jetzt schon umgeschaltet werden, wenn ein 128 KB RAM Baustein eingebaut ist. Dann muss nur am Expansion Slot die Leitung /128K_SEL auf Low gelegt werden (z.B. per Software über einen Annunciator wie beim Apple II). Hier wird dann allerdings auch die Zero Page und der Stack ausgetauscht. Deshalb muss man so einen Page-Swap dann auch etwas vorbereiten, sprich, evtl den Stack und die Z-Page vorher in die neue Bank kopieren. Man kann das aber auch wie einen Kontext Switch in einem Multitask System sehen, dann wechselt die Speicherbank einfach in ein anderes Programm, bzw. Thread mit eigenem Stack und Z-Page Inhalt. ROM und I/O Bereiche sind bei einem solchen Wechsel via /128K_SEL nicht betroffen, weshalb der aktuelle Stack-Pointer der Bank z.B. im RAM des RIOT gespeichert werden könnte.


    Wie auch immer, ich hatte mir da bisher nur wenige Gedanken darum gemacht. Prinzipiell kann da jeder selber mit rum experimentieren, dazu ist der Rechner ja eigentlich auch gedacht.

  • Gestern hab ich mich mal an den Comal Interpreter, den es bei HansOtten zum Download gibt ran gemacht. Nach Änderung der Einsprung Adressen für Character IN/OUT dachte ich zuerst, ich hab da was falsch gemacht, weil keine Eingaben angezeigt wurden. Dann ist mir aufgefallen, dass der Interpreter kein Echo zum Terminal zurück gibt.

    Mit der entsprechenden Einstellung in TeraTerm (Terminal-Einstellungen -> Lokales Echo) läuft aber alles wie erwartet :P:thumbup:



    Leider beherrscht der Interpreter nicht nur kein Echo, sondern tut sich auch bei Kleinbuchstaben schwer. Ich werde da heute mal was einpatchen um das zu beheben. Ein Assembler Listing gibt es ja leider nicht, sondern nur die Binary. Aber vielleicht weiss da ja Hans Otten, ob irgendwo auch ein kommentiertes Assembler Listing zu finden ist, um solche Änderungen etwas schöner zu gestalten.

  • Ich setze mich jetzt mal freiwillig in die Nesseln: ist z.B. COMAL eigentlich ein Standard-Muss im ROM? Wenn wir externen Speicher wie SD-Karte oder Floppy planen, wieso schauen wir denn nicht, dass wir möglichst viel RAM frei haben und laden dann dorthin nach? Was spricht dafür/dagegen?

    ________________________________________________________________

  • Also das sind in meinen Augen zwei unterschiedliche Geschichten.

    1. Eine Erweiterungskatre mit ROM. darin Basic, COMAL oder was auch immer. Hier ist das ROM notwendigerweise eingeblendet und entsprechend RAM

    ausgeblendet.

    2. Die DOS oder von mir aus auch SD-Karten Variante. Hier würde ich das verhalten ähnlich wie bei CP/M sehen. Es gibt ein BIOS - oder wie man es

    auch gerne nennen mag. Alles weitere wird bei bedarf von der SD-Karte geladen.


    Ach ja die Variante 1 könnte natürlich eine SD-Karte als Speicher nehmen.


    So das wären meine spontanen Ideen dazu.

    Jetzt muss ich mich wieder um meinen TI-59 kümmern. Er fühlt sich nicht wohl. :grübel:



    Tschüss



    Udo

  • Ok, ich denke ich betrachte das auch irgendwie zu sehr aus CP/M Sicht...Sind alles (Mit-) Überlegungen.

    ________________________________________________________________

  • ist z.B. COMAL eigentlich ein Standard-Muss im ROM? Wenn wir externen Speicher wie SD-Karte oder Floppy planen, wieso schauen wir denn nicht, dass wir möglichst viel RAM frei haben und laden dann dorthin nach? Was spricht dafür/dagegen?

    Hallo Norbert,


    also Comal werde ich nicht in das ROM unterbringen, da es ja sowieso größer als 8KB ist, passt das nicht. Basic würde ich aber schon gerne direkt nach dem einschalten haben.

    Wenn ich das ROM Banking so gestaltet, dass ich alle 8KB ROM Bänke auch vollständig ausblenden und statt dessen wieder 8KB RAM einblenden kann, hab ich bei geladenen Programmen dann ja auch wieder die 8KB als RAM verfügbar, in denen sonst ein Teil des Basics liegen würde. 8-)


    So und für alle, die jetzt noch Comal ausprobieren möchten, anbei die vom mir gepatchte Comal Junior Version.

    Es bedarf jetzt weder eines lokalen Echos im Terminal, noch müsst ihr euch krampfhaft an der Shift-Taste festhalten, um alles in Großbuchstaben zu tippen. Letzteres habe ich jetzt so gelöst, dass zunächst immer alle Buchstaben groß geschrieben werden, AUSSER, ein Anführungszeichen wurde getippt. Dann werden bis zu einem abschließenden Anführungszeichen, oder einem Carriage Return alle Buchstaben in Groß- oder Kleinschrift ausgegeben.

    Etwas unkonventionell, aber es funktioniert 8o.


    Laden von Comal im Monitor mit LM und dann 3000G.

    Comal meldet sich dann mit einem ) Prompt


    Viel Spass !!!


    Jetzt muss ich mich wieder um meinen TI-59 kümmern. Er fühlt sich nicht wohl.

    Beste Genesungswünsche an den Patienten. :hatschi:

  • Hallo Jörg,

    ich stimme dir zu, Basic fände ich auch wünschenswert beim Einschalten. Und die Idee mit dem Banking ist prima!

    So jetzt werde ich gleich mal dein gepatchtes Comal ausprobieren, danke dafür! :thumbup:

    ________________________________________________________________

  • Hmm, da hab ich eventuell zwischendrin am ROM was geändert?! Sorry, ich springe gerade zwischen drei Jobs hin und her, da leidet offensichtlich die Qualität.

    Versuche es mal mit der beigelegten ROM Version, Das Comal müsste passen, ich hab gerade meine Datei hier nochmal runtergeladen und ausprobiert.

  • Wenn ich mich recht erinnere sollte Comal von der Idee her Basic ersetzen. - Natürlich größer, schöner und auch besser.

    Hat sich aber, glaube ich, nicht durchgesetzt.


    Wie auch immer danke für die Doku.

  • Diese archive ist wirklich schlimm. Da ist jetzt schon wieder so eine Einlesebaustelle ... Comal. Ich sage nur: Comal Today. Ist mir neulich schon paarmal begegnet; nicht daß man das wirklich brauchen würde und es wird wohl auch Gründe haben, warum es sich nicht behaupten konnte; wahrscheinlich war es einfach nur nicht "anders" genug, weshalb die Leute dann lieber bei Pascal und Basic geblieben sind. Und Finanzsoftware hat man ja wohl üblicherweise fertig gekauft und nicht selbst gebaut.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • ich glaube, ich hab das jetzt nicht richtig verstanden, welchen Bereich für das Bank Switching du meinst. Wenn du das gesamte RAM unterhalb des ROM Bereichs $E000-$FFFF meinst, das kann theoretisch (ne, sogar ganz praktisch) jetzt schon umgeschaltet werden, wenn ein 128 KB RAM Baustein eingebaut ist. Dann muss nur am Expansion Slot die Leitung /128K_SEL auf Low gelegt werden


    Das war wohl nur so eine "unausgegorene" Idee, was evtl. mal gedacht werden könnte. Das Problem ist ja wohl, daß das BASIC zu groß war und bei solchen Rechnern dann mit einem ROM bzw. EPROM extra dafür dann weitere Problem auftauchen, insbesondere, daß üblicherweise, der vom ROM verdeckte RAM Bereich nicht mehr gut benutzt werden kann. Und aus Geschwindigkeitsgründen, will man das ja evtl. auch gar nicht ständig umschalten müssen.


    Daher war die Überlegnung, daß man evtl. ja auch den Bereich "oben" (also z.B. $8000 - $FFFF) generell für ROMs freiläßt, und evtl. einen einzelnen RAM Chip dafür hat, denn man nutzt, wenn kein ROM benötigt wird. Dafür im Gegenzug aber den unteren Bereich bis $8000 so baut, daß man das einfach in beliebiger Größe "in pages" durchwechseln kann, also das, was RAM Banks üblicherweise im oberen Bereich machen. Das Problem dabei sind aber eben Zeropage und Stack. Dabei ist ein separater Stack für jeden Pagebereich vielleicht sogar ein Vorteil - man muß dann aber bei jedem Wechsel den Stackpointer anpassen, denn synchronisieren will man das sicherlich nicht. Und die Zeropage ständig umkopieren ist wohl auch albern.

    Vielleicht muß man auch nochmal in kleineren "chunks" drüber sinnieren. Also z.B. 1024 Byte Blöcke.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Ich habe mir Comal näher angesehen, weil ich der Arbeit auch den nötigen Respekt zollen möchte, die 2ee sich damit macht. Zum besseren Verständnis wollte ich einfach mal nachlesen, um was es sich da überhaupt handelt und bin bei der Suche auf archive gestoßen. Und um anderen Interessierten das Leben zu erleichtern, habe ich den Link gepostet. Ich bin immer froh für sowas.

    ________________________________________________________________

  • Das war ja auch keine Kritik am Link, überhaupt nicht. Es sollte nur heißen, daß es da auf dieser Seite dermaßen viele Sachen gibt, die man alle gerne mal anschauen würde ... was aber gar nicht geht.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Ja, das ist korrekt. Man hat die Qual der Wahl. Aber bei der Suche nach anderen Klassik-Computer-Mitstreitern in der Hoffnung auf mehr Informationen zu bestimmten Themen habe ich festgestellt, dass deren Anzahl und damit die zur Verfügung gestellten Informationen über alte Rechner/Software doch endlich sind. Da weicht man schließlich auf solche 'Massenlinks' aus.

    ________________________________________________________________

  • Echt gut, was dieses Comal alles kann. Ich habe hier einiges an Doku gefunden.

    Ja, ich finde COMAL eigentlich auch sehr schön. Die Tatsache, dass versucht wurde BASIC und PASCAL zu mischen ist natürlich irgendwie skurril, vor allem sind die benötigten Zeilennummern natürlich eine Einschränkung, aber wegen eines fehlenden Zeilen-Editors nun mal notwendig.

    Ich sage nur: Comal Today. Ist mir neulich schon paarmal begegnet; nicht daß man das wirklich brauchen würde und es wird wohl auch Gründe haben, warum es sich nicht behaupten konnte; wahrscheinlich war es einfach nur nicht "anders" genug, weshalb die Leute dann lieber bei Pascal und Basic geblieben sind.

    COMAL wurde damals in Dänemark entwickelt und war dort an den Universitäten und Schulen natürlich weit verbreitet und beliebt. In der restlichen Welt konnte es sich leider nicht wirklich durchsetzen, obwohl es das bessere "BASIC" war. Mit Pascal hat es zwar einige Syntax gemein, aber die Zeilennummern waren für alle Pascal Programmierer natürlich gruselig. Trotzdem finde ich das Konzept garnicht so schlecht. Zu meiner Apple II Zeit habe ich allerdings auch nie von COMAL gehört, obwohl ich da zum Teil auch (für mich damals) sehr esoterische Sprachen gelernt habe (ich sage nur GraForth).

    Als ich den Junior ][ angefangen habe, war COMAL aber eine der ersten Sprachen, die ich darauf mal laufen lassen wollte.

    Für den C64 gabe es eine Variante auf ROM-Cartrige und Hans Otten hat (wie sollte es anders sein) auf seiner Seite natürlich den passenden Link zu einem Handbuch


    Übrigens konnte ich in der holländischen Beschreibung zu COMAL leider nicht wirklich rausfinden, wie ich Load / Save da einbinde, bzw. was ich mit dem Break anstellen soll, weil der Code an diesen Adressen ohne Beschreibung etwas verwirrend ist. Eventuell weiss ja einer von euch was damit anzufangen


    Edited once, last by 2ee ().

  • Hier mal der bisherige, noch unvollständige Schaltplan für die Erweiterungskarte.


    Über den Jumper-Block kann die Basisadresse der Karte Eingestellt werden. Bei K2 liegt diese z.B. bei $0800. Dann kann die VIA1 (PortA/B) im Bereich $0800-$08FF und die VIA2 (Port C/D) bei $0900-09FF angesprochen werden. Am Port D liegt bisher der Uhrenbaustein, evtl. hängt hier nachher noch der Sound-Chip. Ab Adresse $0A00 kann dann die ROM Bank ausgewählt werden. Wird bei $0A00 der Wert $00 geschrieben, Speichert das Latch 74LS373 den Wert und über den 2 zu 4 Decoder wird das ROM ab $C000 deaktiviert und statt dessen 8KB RAM eingeblendet. Beim Schreiben der Werte $04 bis $07 wird alternativ aus dem 32KB ROM jeweils eine 8KB Bank (0 bis 3) aktiviert.

    In ROM Bank 0 soll dann das EhBasic. Da ich dann die ersten Bytes im ROM kenne, kann ich eine automatische Erkennung der Erweiterungskarte und deren eingestellte Basisadresse realisieren.

    Rechts sind dann noch die zwei Parallel-Anschlüsse, wobei Printer und Paper Tape Reader durch die Tri-State Buffer von einander getrennt werden, da Printer ein Ausgang und PTR ein Eingang darstellt. Über den PTR Port kommt dann noch ein Anschluss für eine Standard ASCII-Tastatur (D0-D7, /Strobe, Reset). Zu guter Letzt ist dann noch ein Datasetten-Anschluss angedacht, der auf der Platine als 6 Poliger C64 Datasetten-Anschluss und einen Klinkenstecker möglich sein soll.



    Da noch viel Platz auf der Platine verfügbar ist, hab ich auch noch ein kleines Lochrasterfeld für eigene Basteleien vorgesehen.


    Da ich ja noch den optischen Paper Tape Reader machen möchte, dauert es aber wohl noch ein bischen, bis ich Platinen machen lasse, da ich dann natürlich beide gleichzeitig in Auftrag geben werde.


    So, und jetzt geht es erst mal vier Tage nach Paris, den Kopf freischaufeln :P.

  • Womit verbinde ich die beiden 2x32 poligen A-C-Bus-Konnektoren der beiden Platinen? Gibt es in dieser Größe Flachbandkabel und die dazugehörigen Quetscher? Oder gibt es einfachere Lösungen?

    ________________________________________________________________

  • Die Erweiterungskarte sieht recht vielversprechend aus.

    Ich könnte mir jetzt noch gut einen SD-Kartenadapter an einer der VIAs vorstellen. Da hätte man dann fast schon wieder ein Rundumsorglosetwas.

  • Und Grafik, und Soundsampler, und Videoediting ...


    man sieht also schon, man wird langfristig um eine Backplane nicht herumkommen.

    Würde sich hier auch extrem anbieten, die Backplane könnte dann auch solche Konnektoren haben wie oben nur eben nicht per Flachbandkabel sondern z.B. den Typ C mit 64 Polen.


    fur die Plane

    https://www.reichelt.de/ch/de/…-03-264-6825-p293714.html

    für die Karten

    https://www.reichelt.de/ch/de/…-03-364-6921-p293732.html


    (oder vielleicht gerade andersherum (Stabilität?, Kosten?))


    Die Platine eignet sich von Form und Machart auch für solche kleinen Hebelchen, wie die DEC Platinen die haben; vielleicht gibt es sowas sogar noch zu kaufen, aber ganz sicherlich gibt es das bereits als Thingyverse 3D Druck. Platineinschubschienen gibt es evtl. sogar auch zu kaufen, und sind ebenfalls in 3D Print nicht sowas ganz abenteuerliches.


    Das Gehäusedesign wäre dann evtl. so, daß die Backplane direkt hinter der Frontseite sitzt und man links daneben die Konnektoren der jeweiligen Platine hat, damit die gut zugänglich sind.


    Fehlt noch ein gewaltig cooles Firmenlogo und schon ist der SWTPC 2022 fertig.



    PS: In so einem System, will man natürlich sicher als Bastler ein dezidiertes Bastlerboard haben - also nicht so kombiniert mit anderen Funktionen (I/O) wie oben.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

    Edited 2 times, last by ThoralfAsmussen ().

  • Vielen Dank 2ee für das Projekt und mesch für die tolle Bauteil-Unterstützung ( super organisiert !)


    so konnte ich relativ schnell "fertig löten".. ich habe jetzt zwar die nächsten 6 Tage keine Zeit, weil

    beruflich unterwegs bin.. wollte aber "im Mai" noch fertig werden ;)


    PS: welche "Serien-Nr." darf ich mir denn unter "notieren" :)

    ansonsten würden ich 29.Mai "recht unten" hinschreiben.. ;)

    +


    Melde soweit fertig (PS: bei dem Netzteil musste ich mir doch mal eben "behelfen".. :tüdeldü:



    Danke auch in die komplette "Gruppe"... ich freue mich darauf,.. bald weiter "zu spielen"..
    PS: als nächstes (nächste Woche erst) werde ich die Serielle Schnittstelle testen..


    VG Micha

    Meine Sammlung: PET2001,CBM8032,CBM610 Apple-1 + IMSAI8080 + ALTAIR "replicas"..

  • So, jetzt bin ich wieder tiefenentspannt zurück aus dem Urlaub und hab mit Freude gesehen, dass die Junior Familie Zuwachs bekommen hat.

    Ich bin immer wieder überrascht, wie individuell die einzelnen Rechner dann doch aussehen. Super!

    PS: welche "Serien-Nr." darf ich mir denn unter "notieren"

    Wenn du möchtest, kannst du die "Seriennummer" 0011-C drauf schreiben.


    Gibt's z.B. hier:

    https://www.reichelt.de/ch/de/….html?&trstct=pos_3&nbc=1


    64poliges Flachbandkabel haben die auch.

    Danke Toast_r . Genau sowas hat mir vorgeschwebt. Für zwei Platinen ist das dann einfach die günstigtste Lösung.

    man sieht also schon, man wird langfristig um eine Backplane nicht herumkommen.

    Ich hatte mir vor vielen Jahren mal so eine Backplane mit passenden Buchsenleisten als Slot Erweiterung für meinen Apple II Klone gebastelt. Die nackte Platine hatte ich, (glaube ich zumindest) bei Arlt in Stuttgart gekauft, als der noch ein super Elektronik und Computer Kruscht Laden war (80er Jahre). Auf die Rückseite hab ich mir eine Lochrasterplatine mit einer kleinen Zusatzschaltung montiert. Damit konnte ich dann die Select Leitungen schalten um über eine einzelne Apple Slotadresse die individuellen Extension Slots auszuwählen. Ich hab damit aber dann doch außer einer Speichererweiterung leider nicht viel gemacht. Deshalb werde ich wohl alles zurückbauen und das ganze als normale Backplane für den Junior ][ benutzen.




    Ich könnte mir jetzt noch gut einen SD-Kartenadapter an einer der VIAs vorstellen. Da hätte man dann fast schon wieder ein Rundumsorglosetwas.

    Ist tatsächlich auch angedacht. Ich hab ja noch ein paar Port-Leitungen von Port D frei, um darüber ein SPI Protokoll zu realisieren. Dann wäre eine SD-Karte auch rein Anschlusstechnisch kein Problem. Die Software wird das eigentlich aufwändige...

    War da nicht auch Sound angedacht?

    Ja, kommt wohl in Form eines SN76489 mit on Board.

    Edited once, last by 2ee ().