• Das BSOS ist wirklich genial. :)


    Hab versucht es zu laden in den extended Mem des 8296.

    Es geht im VICE.

    Aber es geht nicht in realer Hardware.

    Es kommt nur die BSOS Einschaltmeldung aber es blinkt kein Cursor.


    Habe es auf EPROM gebrannt und es läuft prima.

    Abgesehen von kleinen Macken:

    • Wenn man in der letzten Zeile <Cursor down> drückt kommt Syntax Error, wenn es keine Zeilennummern finden kann.
    • DELETE geht nicht optimal -illegal quantity- wenn es Zeilen nicht gibt


    Der Monitor ist klasse.

    Schön wäre halt, wenn das Autoscroll auch hier gehen würde.

    Wie zb. beim EXMON.

  • Hoffentlich habt ihr auch alle aufgetretenen Inkompatibilitäten brav dem Entwickler detailliert gemeldet anstatt alles einfach nur beiseite zu legen.

  • Der Entwickler kann da gar nichts machen.

    Die Implementierung schaut sehr sauber aus.


    Es ist einfach so, dass bei PET Software richtig gemurkst wurde.

    Jeder hat wahllos schräge Einsprungadressen ins OS verwendet.


    Das hat auch funktioniert, weil Commodore da jahrelang nichts verändert hat.

    Und weil das API unzureichend ist.

  • Der ist seit zwei Jahren nicht mehr hier im Forum.

    Der ist als Bit Shifter re-inkarniert und war letzten Freitag noch hier im Forum aktiv.


    Wenn man wenigstens Kompatibilität zu PETSPEED-Kompilaten herstellen würde, wäre bestimmt schon eine ganze Menge gewonnen. So viele Einsprungadressen werden das schon nicht sein.

  • Hallo,

    wie for(;;) schon erwähnt, gibt es mich noch , jetzt aber unter dem Namen Bit Shifter :)

    Der Black Smurf war zwar witziger, aber ich wollte nicht länger einen kopierten Avatar und einen eventuell geschützten Namen benutzen.

    Ich habe meinen 8296D aus Platzgründen verkauft, bin aber bereit Bugfixes für BSOS durchzuführen, soweit man das in VICE testen kann.

    Leider ist die VICE Emulation nicht ganz ausreichend, so wird z.B. der 4K Bildschirmspeicher des 8296D nicht emuliert und auch der Videcontroller nur teilweise. Deshalb funktionierte z.B. der 29 Zeilen-Modus nur auf der echten Hardware, aber nicht im VICE.

    Die Kompatibilität ist natürlich ein Riesenproblem, da die PET/CBM Computer nicht so eine ausführliche JMP Tabelle und Vector-Tabelle haben, wie die späteren CBM Computer VC20, C64, C128 usw. Ich habe trotzdem versucht, die wichtigsten Einsprungpunkte zu erhalten. Um BSOS Petspeed kompatibel zu machen, müsste man wahrscheinlich Petspeed komplett disassemblieren, eine Arbeit zu der ich im Moment eigentlich keine Lust habe. Zur Zeit widme ich mich hauptsächlich den Projekten 6809/6309 Assembler für ein Projekt von for(;;) und arbeite außerdem beim Team MEGA65 mit.

  • Hi Bit Shifter


    Schön dass du noch hier und aktiv bist. :)

    Schade dass du den Commodore nicht mehr hast.


    Ja PetSpeed ist eine Sache.

    Es ist fraglich ob man das braucht.

    Wer kompiliert heute noch mit PetSpeed.

    Obwohl er war damals schon cool und hat sehr schnellen Code produziert.


    Ich finde BSOS genial und habe es dauerhaft in Betrieb in meinem 8296 (ohne D).


    Was ich mir wünschen würde:

    • DELETE verfeinern. Ohne Kontrolle der von und bis Adresse (also ohne dass diese Zeilen existieren müssen)
      DELETE von - (alles ab der Zeile <von>)
      DELETE - bis (alles bis zu der Zeile <bis>)
    • es wäre schön ein UNNEW oder OLD zu haben
  • Hi Bit Shifter


    Ich finde BSOS genial und habe es dauerhaft in Betrieb in meinem 8296 (ohne D).


    Was ich mir wünschen würde:

    • DELETE verfeinern. Ohne Kontrolle der von und bis Adresse (also ohne dass diese Zeilen existieren müssen)
      DELETE von - (alles ab der Zeile <von>)
      DELETE - bis (alles bis zu der Zeile <bis>)
    • es wäre schön ein UNNEW oder OLD zu haben

    Hallo Diddl,

    ich dachte schon, es gäbe nur zwei Benutzer des BSOS. Ich freue mich, dass es Dir gefällt.
    Deine Wünsche erfordern keinen hohen Aufwand, das werde ich bald erledigen können.

    Viele Grüße,

    Bit Shifter

  • Es gibt noch Dinge, die aus meiner Sicht tolle Verbesserungen darstellen würden:


    Der Monitor ist ideal für den 8296.

    Hervorragende Idee mit den zwei Bank Register für lesen und schreiben.

    Wundervoll dass auch Diskbefehle gehen und das U1 und U2!!


    Ein Wunsch wäre aber offen:


    Das Scrolling im BASIC Text, wundervolle Sache, ich liebe es!

    Genau das wäre ideal für das Memory und Disassembler Fenster. :)


    Wenn der Bildschirm scrollt, dann sucht man in der ersten Spalte jeder Zeile nach einem ":" und/oder einem "."

    Falls vorhanden, wird weiter disassembliert bzw. Hexdump gemacht.



    Mit ist klar, dass disassemblieren nach oben schwierig ist.

    Weil man ja nicht weiß, ob der OPC ein, zwei oder drei Bytes lang ist.


    Aber der EXMON hat das auch irgendwie geschafft.

    Da klappt das hervorragend.


    Ich nehme an, es geht viele Bytes zurück und disassembliert, es synchronisiert sich wahrscheinlich meistens richtig


    ============


    Übrigens BASIC scrolling nach unten ...

    ... da ist ein kleiner Bug drin.


    Wird keine Zeilennummer gefunden, dann kommt ein SYNTAX ERROR wenn man in der letzten Zeile <PFEIL UNTEN> drückt.

  • Ich teste übrigens sehr gerne eine neue Version.

    Habe EPROM Brenner und einen funktionierenden 8296.


    Falls ich sonst was helfen kann ...



    Bit Shifter

    Danke dass du BSOS geschaffen hast.

    Und danke dass du es immer noch unterstützt!

  • @Bit Shifter


    Ach ja, noch etwas ...


    Das mit dem Monitor ist wahrscheinlich sehr aufwendig.

    Aber es gibt etwas, was wahrscheinlich einfach geht und sehr viel bringen würde:


    Der C64 hat ja BASIC-2, aber es gibt einige Dinge die da einfach viel besser gelöst wurden.

    Und zwar die Vektoren für die BASIC Erweiterungen:

    • FRMEVL - Ausdruck Evaluierung
    • Term Evaluierung (einfache Werte, Konstanten und Variable)
    • TOKENIZER - Umwandung der Befehle in Token und umgekehrt.


    Wenn man eine BASIC Erweiterung schreiben will, dann tut man sich bei den CBM Kisten total schwer.

    Mit den Vektoren ist das ein Kinderspiel Dinge zu erweitern.

  • OK, das habe ich auch auf die TODO List gepackt.

    Ich teste grade OLD und DELETE im VICE.

  • DELETE funktioniert jetzt wie gewünscht, OLD ist auch eingebaut.

    Alle Änderungen sind im Repository BSOS 8296


    Die weiteren Features werde ich auch noch einbauen.

    Nur beim Disassembly-Scrolling bin ich mir nicht sicher, ob noch genügend freie Bytes vorhanden sind, da das etwas aufwändiger ist.


    Viel Spaß ::hacking::

  • Ich habe versucht den Effekt <cursor down> -> SYNTAX ERROR in VICE mit den BSOS-ROM's zu erzeugen, aber er tritt nicht auf. Wenn der Bildschirm keine Zeilennummern aufweist, scrollt er einfach ohne neue Zeilen am unteren Ende zu listen. Kannst Du mir näheres sagen?

    Ist ein Programm im Speicher? Ist der Bildschirm völlig leer oder stehen irgendwelche Informationen drauf? Ist er auf 25 Zeilen oder auf mehr Zeilen geschaltet?

  • Interessant.

    Ich versuche es gerade nachzustellen und bringe es auch nicht mehr zusammen???



    Der Bildschirm war definitiv nicht leer.

    Aber nichts was eine Zeilennummer darstellt.


    Seltsam, sorry, habe ich mich wohl vertan?

  • Hier ein PROGRAM-LOADER der

    • mit BSOS kompatibel ist (und wahrscheinlich mit BASIC2 und BASIC4 auch)
    • mit SD2PET kann (in Verzeichnis wechseln, in Disk Image wechseln, und wieder raus)
  • Ich hatte auch versucht BSOS ins RAM des 8296 zu laden und dort ausführen zu lassen.

    Es geht aus folgendem Grund nicht:

    Die erste Generation der 8000 er mit Bankswitching (8096) hatten für I/O 2 K reserviert $E800-$EFFF.

    Der Editor ROM hatte nur die 2K in $E000-$E7FF zur Verfügung.

    Für den 8296 hat man den I/O Bereich auf eine Page reduziert: $E800-$E8FF, damit konnte man für

    den Editor ROM zusätzlich den Bereich $E900-$EFFF benutzen.

    Das macht BSOS ebenso.

    Leider hat man dieses neue Feature aber nicht beim Bankswitching berücksichtigt.

    Wenn man im Bereich $C000-$FFFF eine RAM Bank mit Peek-I/O einblendet, so werden nicht nur die

    eine Page $E800-$E8FF eingeblendet, sondern wie in den alten 8096 der Bereich $E800-$EFFF.

    Damit werden Codes die im RAM $E900-$EFFF liegen, nicht mehr verfügbar, sondern der ROM-Code

    wird zusammen mit dem I/O Bereich eingeblendet.

    Somit kann man keinen RAM Code im Bereich $E900-$E9FF mit aktivem I/O ausführen.

    Das gilt nicht nur für BSOS sondern für alle ladbaren Betriebssysteme.

    Und 2K sind einfach zu viel RAM, um sie brach liegen zu lassen. In BSOS müsste ich dann wichtige Teile

    wie z.B. den Monitor weglassen.

  • Ja, anscheinend wendet VICE diese Einstellung auch beim Bankswitching an und korrigiert so den Fehler der Commodore Ingenieure.

  • Die Vektor-Tabelle ist jetzt in BSOS eingebaut.

    Bezüglich Namen und Adressen habe ich mich am C128 orientiert:

    Code
                  ; jump vector table for interception of BASIC routines
    
    0300          IERROR  = $0300     ; DEF_ERROR   BASIC error handler
    0302          IMAIN   = $0302     ; DEF_MAIN    BASIC main loop
    0304          ICRNCH  = $0304     ; DEF_CRUNCH  BASIC tokenizer
    0306          IQPLOP  = $0306     ; DEF_QPLOP   BASIC statement lister
    0308          IGONE   = $0308     ; DEF_GONE    BASIC interpret statement
    030a          IEVAL   = $030a     ; DEF_EVAL    BASIC evaluate expression
  • Ich hatte ursprünglich vorgehabt, eine BSOS Variante für die 65802 CPU zu schreiben, die ja pinkomatibel zum 6502 alternativ in den PET/CBM eingesetzt werden kann. Ich habe aber Jahre gebraucht, ein Exemplar zu bekommen (von einem Händler in Polen) und danach nie wieder eine solche CPU zu kaufen gesehen. Das hätte den Code sehr kompakt werden lassen, da die CPU auch mit 16 Bit Befehlen und Registern arbeiten kann. Aber wahrscheinlich wäre ich der einzige mit so einem Rechner gewesen. Hinzu kommt, dass VICE so eine CPU im PET/CBM nicht emulieren kann und ich jede Änderung per EPROM Wechsel hätte testen müssen. Die 65C02 CPU wäre noch eine Alternative, aber die kann den Code nur ca. 5% kompakter werden lassen und das wiegt die zusätzlichen Inkompatibilitäten, die man sich dadurch einfängt, wahrscheinlich nicht auf. Lediglich ein ROM BASIC, dass mit 96K arbeitet (32K BASIC Code, 32K Variablen und 32K Strings) wäre vielleicht noch interessant. Das macht Los96 zwar auch, aber das muss erst ins RAM geladen werden.

  • Ich habe ein eBook über die 65802/65816.

    Eine tolle CPU, schade dass sie sich nicht durchsetzen konnte.

    Für damalige Verhältnisse war sie sehr fortgeschritten und hätte großes Potential gehabt.


    Ich ringe seit Monaten mit mir selbst, dieses W65C816SXB Board zu kaufen:


    https://wdc65xx.com/Single-Board-Computers/w65c816sxb/