Beiträge von Diddl

    Du hast die 6829 mehr oder weniger aufgegeben?

    Ähm.

    Nun ja, aufgegeben nicht, es haben sich halt die Prioritäten verschoben.


    Ich habe mir auch ein paar von den finnischen SC64745P bestellt... du sagtest sie läuft mit 3MHz.

    Läuft hier tadellos, ja.


    Hast du mal das "Mapped Address Delay" gemessen?

    Also es fehlt mir die Möglichkeit das zu messen.

    Ich bin auch mehr der Software Mensch.

    Mit Hardware beschäftige ich mich noch nicht sehr lange.


    Irgendwelche weiteren Infos dazu gefunden inzwischen?

    Nun die MMU 6829 habe ich aufgegeben zugunsten der MMU-16:
    https://oe7twj.at/index.php?title=NitrOS9-Board

    Die MMU 6829 ist zu schmal, zu wenig Tasks und auch schwer verfügbar.

    Wie ist die Anpassung von (Nitr)OS-9 Level 2 gelaufen, ist das beherrschbar und reichen die Unterlagen?

    Ja es läuft, aber nicht gut.

    Die Performance von L2 ist sehr schlecht im Vergleich zu L1 unter Verwendung von der MMU.


    Es ist beherrschbar, NitrOS ist sehr gut dokumentiert.



    Das Problem ist die Art und Weise wie OS9 die Parameter übergibt.

    Die gewünschte Operation liegt leider im Code Segment hinter dem OS/9 Aufruf.

    Das ist völlig okay für L1 aber für L2 ist es schwierig da dran zu kommen und die Rücksprungadresse zu korrigieren.


    Die Positron 9000 nutzt mehrere 6829 und die L2 Implementierung hat meinen Verdacht bestätigt.

    Es kostet hunderte Zyklen um einen Taskwechsel zu machen.

    Das macht es wenig attraktiv.



    Aber ich habe sehr interessante Inspiration bekommen von jemanden der sich gut auskennt mit OS/9 L2 auf einer Positron 9000.

    Eine Hardware Verbesserung der MMU erlaubt schnelle Schreib- und Leseoperationen in anderen Tasks vom Systemtask aus.


    Es ist eine Art Glitch.

    Man gibt ja in einem MMU Register an, nach wieviel Taktzyklen der Taskwechsel erfolgen soll.

    Das sind 4 Bit.

    Die oberen 4 Bit sind unbenutzt.


    Nun die grandiose Idee die nicht von mir ist ...

    Wenn die oberen 4 Bit 0 sind, arbeitet die MMU kompatibel wie auch jetzt.

    Wenn da eine Zahl drin steht, dann macht die MMU nur einen ganzen kurzen Task Wechsel.

    Die unteren 4 Bit stellen also die Verzögerung in Taktzyklen ein, die oberen 4 Bit stellen die Taskwechsel Aufenthaltszeit ein in Taktzyklen.


    Mit anderen Worten, man kann zB. einen Ladebefehl oder Speicherbefehl ausführen und sofort zurückspringen.

    Dabei sind die Taktzyklen so eingestellt, dass der Fetch des Befehl noch in der System Map passiert, aber die Speicheroperation im Zieltask.

    der nächste Fetch ist bereits wieder in der System MAP.


    So kann man ganz billig aus der User MAP lesen oder was rein schreiben.

    Und zwar im gesamten 64K Bereich des User MAP Space.

    Ohne dass ich mir kompliziert die MAP temporär anpassen muss.


    Das möchte ich irgendwann in der MMU-16 implementieren.



    Aber inzwischen habe ich mir eine FPGA Lösung angelacht.

    Da ist eine Hardware Anpassung eben viel einfacher.

    Sofern man VHDL beherrscht.

    Daran mangelt es zur Zeit.



    Das OS/9 SBC Ding ist völlig ins stocken geraten.

    Das liegt zum einen an meinem Charakter zum anderen fehlt die Motivation weil es damals absolut niemanden interessiert hat was ich so mache.


    Ich hab das Problem, dass ich Dinge schnell voran treibe, solange ich sie fesselnd finde.

    Sobald ich alle Lösungen gefunden habe und weiß, ich kann es tun, verliere ich oft schnell das Interesse.

    Speziell dann, wenn niemand da ist, der das Interesse befeuert.


    Aber das Feuer ist nicht erloschen.

    Ich träume immer noch von einer Positron 9000 artigen Hardware mit einer erweiterten MMU-16 und NitrOS-9 L2. :D









    Ich hab interessante Inspiration bekommen von jemanden der sich gut auskennt mit OS/9 L2 auf einer Positron 9000.

    Ähm sorry, es handelt sich natürlich um den Pin 40 am CPLD!!!!! (und NICHT Pin 20)



    Leider kann ich den Beitrag nicht mehr editieren.

    Vielleicht könnte ein MOD das oben korrigieren bitte.


    Nicht dass da noch was übles passiert!

    Anscheinend hat das FE-3 Probleme mit NTSC Geräten.


    Mir war das bisher nicht bewusst.

    Zum einen besitze ich keinen NTSC VC-20.

    Zum anderen ist die Verbreitung des FE-3 hauptsächlich in USA (???)



    Ein anderes Problem ist, dass es EIN Spiel gibt, das auf der FE-3 oft nicht läuft: VICDOOM



    Beide Probleme sind wohl Timing Probleme beim RAM schreiben im Block 0 beim maximalen RAM Ausbau (35K).


    ========


    Nun ist ein PAL VC-20 aufgetaucht, der grundsätzlich Probleme hat mit jedem FE-3.

    Die Probleme schauen exakt aus wie die der NTSC Geräte.




    Jedenfalls ist das Problem schon von anderen analysiert worden:


    Das FE-3 verwendet das Signal C R/W um Schreibzugriffe zu erkennen.

    Am Expansion Port gibt es aber zusätzlich noch das Signal V R/W.

    Man braucht beide Signale um ein perfektes Timing zu erhalten.



    BugFix:


    Der Bugfix braucht eine zusätzliche Drahtverbindung vom Expansion Port (Signal v R/W) zum CPLD.

    Und dazu natürlich ein entsprechendes JEDEC File für den CPLD.


    Man muss folgende Schritte ausführen:

    • Drahtverbindung einlöten (siehe Bild)
    • FE-3 testen (sollte normal funktionieren wie ohne Draht)
    • CPLD entfernen, neu programmieren und wieder einsetzen




    Draht: V R/W <---> CPLD Pin 20 40 (s. Post #4):


       





    Auf meinem VC-20 (PAL) läuft nun jedes Spiel, auch das VICDOOM: :)


       




    Firmware für den CPLD v3.3.2 wie gewohnt auf meiner Wiki Seite:

    Final Expansion 3 –

    Assassin Creed.



    Im Zuge dessen, dass ich Interesse angemeldet habe, das aktuelle Assassin Creed zu erwerben, sind im Wochentakt immer neue Angebote eingetrudelt.

    Jede Woche kam ein noch verlockenderes Angebot.

    Irgendwann kam: Kauf das neue Spiel und du kriegst ALLES zu Assassin Creed was existiert, alles alten Spiele und alle DLC und Zusatzpacks.


    Nun ja, das konnte ich nicht ablehnen ... :xmas:



    Das ist der Grund warum ich nun die gaaaanz alten Assassin Creed spiele.


    Was soll ich sagen

    - Handlung interessant

    - Bedienung grauenhaft

    - Grafik grauenhaft

    - Handling grauenhaft

    - ...



    Aber, es lohnt sich trotzdem.

    Die Handlung der aktuellen Assassin Creed Versionen verstehe ich jetzt erst, da ich die alten Spiele kenne.




    Aber Vorsicht!


    Extreme Suchtgefahr!!!

    Für ein paar Wochen kommt man zu gar nichts anderem mehr. :D

    Der UC-Builder unterstützt jetzt neben dem C64 auch den c128 und die 264er Serie von Commodore (C16, C116, Plus74).


    Es werden alle gängigen Modul Typen unterstützt:

    • Universal Cartridge (UC-1, UC-2, UC-1.5)
    • Hucky-64K
    • MagicDesk
    • EasyFlash
    • MagicDesk-128
    • MegaBit 128
    • Internes Function ROM U36 im c128
    • MagicDesk-264
    • Internes Function ROM im Plus/4



    Doku zum UC-Builder:

    UC-Builder –




    Nun ja ...

    1. 32 Pins sind viel zu wenig
    2. nur 6 Pins können highvoltage sein
    3. die Spannung geht nur bis 22V
    4. Algos fehlen noch weitgehend


    Auf der Plus Seite

    1. offenes Design
    2. Arduino kompatibel



    Die Sache ist die, die perfekte Hardware gibt es ja schon öfters: Galep 5, T56, TL866 ...


    Man müsste "nur" die Dinger reverse engineeren und man hätte eine tolle Hardwrae Lösung.


    Und dann fehlt es aber immer noch an der Software.

    Wertvoll wird das erst wenn die ganzen Algos auch in Software unterstützt sind.

    Allein das kann viele Jahre brauchen.



    Alles in allem fährt man mit einem T56 oder einem GALEP einfach besser.

    Unterstützen die beiden echte Integer-Arithmetik? Das bringt in der Regel die meiste Geschwindigkeit, wenn man kein Floating-Point braucht.

    PETSPEED hat nicht nur Integer Arithmetik, es kompiliert sogar solche Dinge in echten Assembler.


    Austro-Comp hat, soweit ich weiß, keine Integer Arithmetik.

    Austro-Comp ist nach wie vor ein Interpreter.

    Er verwendet Token und führt die aus mit einem beigepackten Interpreter.

    Deswegen ist der auch so kompatibel.


    Allerdings ist der Token Stream hoch optimiert.

    Zeilennummer sind ersetzt durch echte Adressen.

    Syntax Prüfung entfällt und die Token werden direkt ausgeführt.

    Typ Prüfungen entfallen, es wird immer direkt der richtige Code angesprungen.


    Austro-Comp hat den Vorteil, dass die Code Größe sehr klein ist.

    Es hat zwar eine Runtime, aber je größer das Programm desto weniger schmerzt der Runtime Code.

    Also kleine Programme werden größer.

    Große Programme sind kompiliert kaum größer als der Source Code.

    Ich habe in meiner Jugend kommerzielle Software für den 8032 entwickelt.

    Da hatte ich PETSPEED zur Auswahl und eine Art von Austro-Comp, ich glaub der hat anders geheißen.


    Nun ja, richtig guten und sauschnellen Code macht nur der PETSPEED, der ist wirklich genial!


    ABER: PETSPEED ist nicht wirklich BASIC 4 kompatibel.

    Man kann nicht einfach ein beliebiges BASIC Programm "kompilieren und läuft".


    Der Austro-Comp schon.

    Fast jedes BASIC Programm das läuft kann man kompilieren und es läuft ein bisschen schneller.

    Vor allem hat der Kunde dadurch den Sourcecode nicht, das war auch ein Ziel.




    FAZIT:


    Der PETSPEED ist sehr gut, wenn man die Features kennt und die ganze Entwicklung auf PETSPEED auslegt.


    Der Austro-Comp ist gut, wenn man ein fertiges BASIC Programm hat und es einfach kompilieren will.

    Eine eche floppy und ein floppy Emulator hat bei mir nicht gut funktioniert.

    ??

    Sowohl echte Floppy als auch Gotek arbeiten tadellos bei mir.



    Es ist nur einfach so, dass es mit dem CoCoSDC einfach viel bequemer ist, weniger Platz braucht und keine Verkabelung etc.0

    Die RTC ist Bestandteil des SD2IEC.


    Der ATMEGA des SD2IEC bedient die RTC per I2C.

    Deshalb geht das setzen der Uhrzeit per Floppy Befehl.


    Wenn die Uhrzeit nach einem Reset oder ausschalten weg ist, dann kann das eines der folgenden Gründe haben:

    • der ATMEGA kann den RTC Chip per I2C nicht ansprechen (falsche I2C Adresse, Chip defekt, falsche SD2IEC Firmware ...)
    • der RTC Chip braucht eine Batterie Pufferung, möglicherweise ist da was faul?



    Das SD2IEC ist nicht von mir sondern von @UNSEEN im F64.

    Das SD2IEC ist ein ganz separater Teil im FE3.

    Eventuell einfach mal bei den SD2IEC Experten nachfragen.

    Hi


    Sorry, hab das Zeugs nicht mehr im Einsatz, hab jetzt überall MeGALoDOS im Einsatz.


    Aber soweit ich mich erinnern kann war das ganz simpel gestrickt.


    Am c64 4 mal 8kb und in der 1541 halt 4 mal 16K. Und das wird immer gleich geschaltet, also Kemal 1 bis 4.


    Die EPROM haben halt 4 Blöcke hintereinander im EPROM.


    C64:

    Kernal 1: 0000 - 1FFF

    Kernal 2: 2000 - 3FFF

    Kernal 3: 4000 - 5FFF

    Kernal 4: 6000 - 7FFF


    1541:

    DOS 1: 0000 - 3FFF

    DOS 2: 4000 - 7FFF

    DOS 3: 8000 - BFFF

    DOS 4: C000 - FFFF

    Das COMAL wäre mein Haupt-Begehr.

    COMAL-80 ist wirklich klasse!!

    Ich finde es ist die beste Programmiersprache für den C64.


    Es gibt auch ein eigenes COMAL-80 für den Commodore c128.


    Für das UC-2 gibt es eine Hybrid COMAL Variante.

    Damit kann man COMAL im c64 Modus und COMAL für den c128 auswählen. :)



    Aber noch rufen der C900 und yalsi mit der LOAD... :neinnein:

    Der C900 ist wirklich ein Traum! :crazy:

    Ich halte nichts davon, so einen schönen, original erhaltenen und unverbastelten C64 durch einen Kernalumschalter zu verschandeln.

    Nun ja das ist Geschmacksache.


    In meiner Jugendzeit sind alle C64 meiner Freunde mit diversen Schalter und Taster "verbessert" worden.

    Unverbastelte C64 gab es keine in meiner Welt.

    Für mich ist das Normalzustand.



    Mal davon abgesehen gibt es Kernelumschalter die mit dem C64 Keyboard funktionieren.

    Da muss man das Gehäuse des C64 nicht anrühren.


    Zb. von Faszination C64:

    https://www.ebay.at/itm/164236515370

    Naja vor allem beim C64 wäre ja das Problem behoben gewesen weil der ja CIA statt VIA verwendet.


    Und doch hat man den Burstload da nicht implementiert.

    Sonst würde man zumindest mit den 1571 und 1581 Laufwerken schnell laden können.


    Tja Commodore halt...