Posts by Hobbyist

    Ich kann eine gute Nachricht nachtragen: BASIC + eigene Interrupt-Routine + aktives FC III geht doch.


    Dazu bisher in diesem Thread:

    Noch zum FC3 aus dem C64-Wiki:

    Quote

    Das Modul hat die Besonderheit, dass es den Interrupt in BASIC immer auf die Standardroutine zurücksetzt. Die damals zahlreichen kleinen Hilfsprogramme, die sich in den Interrupt einklinken, funktionieren deswegen nicht.

    Uff, das hatte ich übersehen im Wiki, also die Möglichkeit eigener Interrupt-Programmierung hat sich damit bei gleichzeitigem FC3-Betrieb schon mal erledigt?

    Hört sich ganz so an, also zumindest im BASIC-Betrieb. In Assembler-only kann man den Rechner aber komplett beherrschen.

    Bis auf den Wermutstropfen der nicht möglichen Modulnutzung bei Interrupt-Programmierung in kombinierten BASIC-/Maschinenprogrammen (leider genau das, was mir vorschwebt) (...)

    Mit Action Replay 5 und 6, Retro Replay sowie Nordic Replay, sicher auch mit einigen anderen Modulen, sollte es da eher keine Probleme geben.


    Wie ich mittlerweile bemerkte: Auf der englischen Wiki-Seite liest es sich etwas anders als auf der deutschen:

    Quote

    The cartridge prevents changing the Interrupt vector in BASIC direct mode. Due to this, many utilities that hook into the interrupt will not work.

    Also habe ich es mal mit einer eigenen Interrupt-Routine getestet, und siehe da: Wird sie aus einem laufenden BASIC-Programm heraus gestartet, läuft sie tadellos; erst, wenn ich das BASIC-Programm mit der STOP-Taste abbreche, wird der Interrupt-Vektor von der FC III auf den Standardwert zurückgesetzt, also die eigene Routine abgewürgt.


    Also wie es die englische Wiki-Seite sagt: Nur im Direktmodus gibt es Probleme.


    Der FC3-unterstützten Entwicklung etwa eines Spiels aus BASIC-Hauptprogramm mit Maschinen-Unterprogrammen inkl. Interrupt-Erweiterung steht also nichts im Wege.

    Sowas wie das hier meine ich:

    [External Media: https://youtu.be/Bgpu6sPOfP4]

    Bei 7:30 musste ich laut lachen über die Lebensenergie-Anzeige. (-;


    Nette Pseudo-3D-Sachen. Der Spectrum hatte da einen Performance-Vorteil beim Scrollen? - Gibt es aber schon auch beim C64, z. B. Zig Zag oder Realm of Impossibility (scrollender Screenwechsel), aber wohl tatsächlich seltener.

    Das Spiel Scramble war das erste und es lud 30 Minuten von der Datasette.

    Nach meinem Eindruck werden die Datassetten-Ladezeiten in der Erinnerung gern verschlimmert. Die Untergrenze der Geschwindigkeit (ohne Schnellader) wird im C64-Wiki mit 60 Bytes pro Sekunde angegeben, das wären nach 30 Minuten 105 KB, also deutlich mehr, als ins RAM passen würde. (-;

    Meine 5 Mark teuren 60 Minuten Kassetten füllten sich dank des Schulhofs nun schnell mit Software aller Art (meistens Games). Seine teuren Disketten fanden auf demselben Schulhof leider kein Futter und das Gesicht wurde länger und länger.

    Ich lese immer wieder vom berühmten Schulhof, aber wie soll das gehen? Wurden da zuhause kopierte Datenträger mitgenommen und getauscht? Oder stand da auf dem Schulhof ein C64 mit Laufwerken und Stromverlängerungskabel nach drinnen? (-; Also an meinem Wohnort lief das anders, da traf man sich bei 2-3 Leuten, die warum auch immer stets die neuesten Sicherheitskopien hatten, und die wurden dann da auf deren Anlage zur weiteren Erhöhung der Sicherheit noch weitere Male kopiert. (-;

    Heute habe ich vier C-64 Anlagen im Keller die auf ihre Restaurierung warten.

    Das klingt nach viel Pech. Hast Du die schon kaputt erworben oder alle selbst verschlissen? Sind das alles Brotkästen oder auch C64 Cs dabei? Mir ist nur mein ursprünglicher Brotkasten und später meine Ur-1541 aufgeraucht, mein C64 C und meine 1541 II sicheinen unverwüstlich.

    Ein ebenfalls wichtiger Punkt ist nach wie vor die Steuerung, man muss das Schiff (wenn ich das richtig verstanden habe) lenken koennen, auf und ab bewegen koennen, Gas geben koennen, und schiessen koennen.

    Mit der Maus hätte man auch das "Problem" mit den zwei Feuerknöpfen gelöst. Der Anwenderkreis idürfe aber begrenzt sein.


    3D-Steuerung über Terrain ist meines Erachtens in Mercenary sehr gut gelöst:


    - Joystick: links-/rechts, hoch/runter, Feuer

    - Zahlenreihe auf der Tastatur: Geschwindigkeits-Stufen (mit SHIFT: rückwärts!)

    - Plus- / Minustaste: Geschwindigkeits-Feintuning (wird selten gebraucht, kann bei schnellem Actionspiel wegfallen)

    - Space-Taste: Abbremsen auf null (Fluggerät schwebt auf der Stelle)

    Der Sinclair QL ist in meinen Augen die eleganteste Maschine aus den 80ern.

    Für schwarze Computer habe ich auch eine Schwäche, und die Formgebung geht auch in Ordnung - trotz der Warmhalteplatte auf der rechten Seite. (-;


    Aber gegen einen (für einen fairen Vergleich) schwarzen C64 C hat er meines Erachtens keine Chance.


    Zur Verdeutlichung hätte ich gern ein oder zwei Bilder von schwarzen Cs aus dem Netz verlinkt, aber wenn ich die folgende Stelle aus den hiesigen Nutzungsbedingungen richtig verstehe, geht das wohl nicht?


    Quote

    Es ist insbesondere darauf zu achten:


    (...)


    - dass Bilder zu einem Beitrag, die im Forum veröffentlicht werden sollen, zwingend als Dateianhang im Beitrag zur Verfügung zu stellen sind. Das Verlinken von Bildern von anderen Domains ist nicht gestattet (dies schließt sämtliche Bilderhoster mit ein)

    Ich weiß gar nicht, ob mir bei der Anschaffung des ersten C64 klar war, ob es überhaupt andere (Home-)Computer gibt. (-; Im Umfeld hatten ausnahmslos alle einen C64.


    Später hatte es mir das Design der Amstrad-/Schneider-CPCs angetan, aber ein Wechsel kam nicht in Frage. Mit dem C64 C hatte Commodore dann auch beim Design wieder die Nase vorn - bis heute, ein schnittigerer Computer ist mir nicht mehr untergekommen. So gesehen ist es fast tragisch, dass die Allgemeinheit beim C64 meist nur an den Brotkasten denkt, auch wenn der freilich (auch bei mir) den größeren Nostalgie-Faktor hat.


    Dass man später mal auf einen 16-Bitter wie ST/Amiga umstieg ist eh klar

    In meinen Augen konnte der C64 über Amiga und Atari ST nur müde lächeln. Kein BASIC im ROM, also keine Seele. UND keine Grafikzeichen - da war das Maß an Unzumutbarkeit für mich schon voll. Die frühen Zeiger-GUIs (auch GEOS) fand ich fummelig und hässlich. Als mir ein abgelegter A500 zuging, daddelte ich die beiliegenden Spiele durch (von denen mich nur Dune II beeindruckte), dann landete er auf dem Speicher.

    Wow, tolle Beiträge, dass hätte ich niemals ergoogelt bekommen, und in meiner wachsenden Buchsammlung fand ich diese Infos auch nicht, danke.


    Also im sonst nichtbenutzten hinteren I/O-Bereich sitzen spezifische Modulregister und die Umschaltroutinen, damit ist wohl ein ein wichtiger Groschen bei mir gefallen.


    Bis auf den Wermutstropfen der nicht möglichen Modulnutzung bei Interrupt-Programmierung in kombinierten BASIC-/Maschinenprogrammen (leider genau das, was mir vorschwebt) bin ich jetzt auch halbwegs beruhigt. (-:

    Hier schaue mal nach. :)

    Hm, habe ich, meinst Du eine bestimmte Stelle bei https://www.c64-wiki.de/wiki/PLA_(C64-Chip)?

    Im Falle vom FC3 kannst du ganz beruhigt sein, das Modul ist erste Sahne, hab es jahrelang beim coden benutzt ohne irgendwelche Probleme.

    Könnte ja Glück gewesen sein, dass Deine Programme und das Modul sich nicht in der von mir beschriebenen und befürchteten Weise in die Quere kamen. Also mich würde eine grundsätzliche Erklärung, ob diese Gefahr besteht oder nicht, mehr beruhigen, denn ich möchte ungern mit Damoklesschwert überm Kopf programmieren, auch wenn es jahrelang gut gehen könnte. (-;

    Dass Module per Bankswitching beliebig viel Speicher haben können, ist mir klar, das FC3 hat ja insgesamt auch immerhin 64 KB, wie ich irgendwo gelesen habe.


    Mich beunruhigt, dass bei aktivem Modul ein gewisseer Code-Anteil nach meinem bisherigen Verstädnis irgendwo im Adressraum rumgammeln muss und mir beim Programmieren in die Quere kommen könnte.

    Auch wenn Module sich nicht abschalten können, den RAM unter dem ROM kann man auch so erreichen.

    Wenn nicht das Modul zufällig da seinerseits Zeug reinkopiert und damit mein Zeug kaputt macht ...

    Uff, das hatte ich übersehen im Wiki, also die Möglichkeit eigener Interrupt-Programmierung hat sich damit bei gleichzeitigem FC3-Betrieb schon mal erledigt?

    Es wird bei Bedarf von anderer Stelle aus umgeschaltet, sodass das BASIC-RAM nutzbar bleibt.

    Verstehe ich noch nicht ganz. Vielleicht so: Beim Einschalten wird Modul-ROM-Code in den BASIC-RAM eingeblendet und gestartet, der kopiert sich selbst (oder nur einen "Umschalt"-Code) woanders hin, dann wird die (vielleicht modifizierte) Reset-Routine aufgerufen, die den Basic-RAM wieder einblendet?


    Wenn das ungefähr so funktioniert, dann müsste ja aber irgendwo anders der verschobene Modul-Code im RAM hängen.

    Die FC3 (1987) kenne ich nicht, das muss jemand anderer beantworten. Aber die (neueren) Action-Replay oder Retro-Replay (Chameleon) haben eigenes RAM eingebaut und lassen das C64-RAM komplett unberührt, sodass es bei denen insofern beim Programmieren keine Probleme gibt. Ältere Module hatten noch das RAM kontaminiert und dadurch mehr Probleme verursacht.

    Bei "komplett unberührt" habe ich einen Hirnknoten; der C64 hat doch nun mal nur seinen begrenzten Adressraum, also wenn da irgendetwas anderes als Standard-RAM und -ROM aktiv sein will, muss es doch irgendwo erscheinen, wo sonst RAM oder ROM der Grundkonfiguration wäre?

    Rausgeworfen wird eigtl. nie was, auch keine ROMs, sondern allenfalls temporär überdeckt.

    Aber muss es nicht mindestens im Adressraum aktiven (eingeblendeten oder ins Standard-RAM verschobenen) Code geben, der bei Bedarf das (weitergehende) Überdecken auslöst?

    Letzte Woche erwarb ich (quasi unabsichtlich in einem Konvolut) erstmals ein Modul, nämlich das Final Cartridge III.


    Nun stellen sich mir Fragen, über die ich mir noch nie den Kopf zerbrochen habe und die ich mit Google irgendwie nicht (für mich verständlich) beantwortet bekomme.


    Es ist doch wohl so, dass das Modul-ROM irgendwie in den Adressraum des C64 eingeblendet werden muss – also muss doch wohl etwas anderes (RAM oder ROM) dafür rausfliegen, oder?


    Diese Übersicht aus dem Netz über Modul-Arten glaube ich halbwegs verstanden zu haben:


    1. Normal 8kB cartridge at $8000(32768)

    2. Normal 16kB cartridge at $8000(32768) / $a000(40960)
    3. Ultimax 16kB cartridge at $8000(32768) / $e000(57344)


    Also alle 3 Modularten knappsen demnach schon mal einen Teil des BASIC-RAM ab $8000 weg – nur werden auch mit aktivem FC III unverändert 38911 BASIC BYTES FREE angezeigt, wie geht das?


    Typ 2. haut auch das BASIC-ROM weg, aber das scheint ja beim FC III auch nicht der Fall zu sein, oder wird ein eigenes (erweitertes) BASIC-ROM vom Modul eingeblendet?


    Typ 3. killt (oder ersetzt?) offenbar den KERNAL.


    Sind die drei genannten Typen eine abschließende Aufzählung, oder ist das FC III vielleicht noch eine andere, vierte Art Modul?


    Wirft all das nicht endlose Kompatibilitätsprobleme auf? Was ist, wenn ein Programm Bereiche der Grundkonfiguration nutzt, die bei eingestecktem Modul anderweitig belegt sind? Wie ist das konkret beim FC III, ist da häufig mit Inkompatibilitäten zu rechnen?


    Und was mich am meisten beschäftigt: Wie ist das beim Selbstprogrammieren – wofür das FC III ja etliche Tools bereitstellt – worauf muss dann geachtet werden? Gibt es RAM- oder ROM-Bereiche, die nicht mehr so nutzbar sind wie in der Grundkonfiguration ohne Modul?


    Im Netz werden Betrachtungen zu Modulen schnell Elektronik-lastig, wovon ich leider gar keine Ahnung habe, also bitte haut mir keine Signalleitungen am Expansion Port, Flipflops oder Zener-Dioden an den Kopp. (-:

    Composite liefert doch aber eine schlechtere Bildqualität als S-Video - ist jedenfalls vielerorts zu lesen.


    Also ich Elektronik-Legastheniker fasse mir mal ein Herz und frage, ob das so geht, wie ich mir das in meinem Dilettantismus zusammenreime:


    S-Video braucht getrennt Chroma und Luma.


    Monochrom-Monitore brauchen nur Luma.


    Wenn ich nun mein S-Video-Kabel an der Seite des DIN-Steckers zum C64 eröffne und da an den Luma-Kontakt noch zwei Strippen dranlöte und zu zwei Monochrom-Monitoren lege, geht das?


    Hält das zum einen der C64 aus und würde zum anderen die Bildqualität gleichbleiben oder leiden, wenn das Luma-Signal in dieser Weise dreifach angezapft wird?

    Ist ja verrückt, genau die Frage stelle ich mir auch gerade. Lässt sich ein Videokabel irgendwie verzweigen, so dass zwei oder drei Monitore angeschlossen werden können?


    Ich hätte gern ein S-Video-TFT-TV, einen Bernstein- und einen Grün-Monitor in beliebigen Kombinationen (auch mal alle drei gleichzeitig) in Betrieb, geht das? (-: