Posts by TheRyk

    Narf... natürlich war mein Prog doch zu groß, so dass Zeichensatz und Programm sich ins Gehege kommen. Entweder schmelzen die Characters weg (nur noch Grütze auf dem Schirm) oder aber mein halbes Programm wird überschrieben, je nachdem ob ich das Charset schon in einem vorigen Programmteil aktiviere (hielt ich für besonders trickreich :) ) oder aber direkt im Hauptprogramm reinlade (nur noch Grütze in der LIST).


    Den Bank-Switch an sich habe ich nun dann doch mal hingekriegt mit dem Beispiel aus dem Englischen C64-Wiki, das müsste die zweite Bank mit ROM-Charset sein. Dass PRINT nicht funzt, konnte ich dort jedenfalls bisher nicht feststellen, das lief noch. Natürlich muss man beim Bildschirmspeicher-Poken nun bei dem neuen Startwert anfangen, das leuchtet ein. Habe also mein Charset geladen und bei 53272 mal von 1 bis 255 per Schleife durchgepoket und auch vorsichtshalber nicht nur mit PRINT gearbeitet sondern auch in den Bildschirm-Zeichen-Speicher gepoket (im englischen WIKI-Beispiel dann in dieser Bank halt ab POKE32768 (statt 1028 )-KOMMA-Code eines meiner geänderten Zeichen). Dat funzt nur in der Standard-Bank, von daher muss wohl nach dem Switchen auch vor dem Komma noch was im Argen liegen. Und wenn ich nun eine der Banken ohne ROM Chars wähle (und nur das macht ja Sinn, wenn man zwecks Speicherökonomie vor der Zeichensatz-Aktivierung ein Bank-Switching macht), wie kriege ich da dann einen RAM-Zeichensatz untergebracht?


    Also: In der Standard-Bank ab $0000 lag mein editierter Zeichensatz (dezimal) noch auf POKE53272,30 und funktionierte. Wie muss ich nun rechnen/poken, wenn ich mit der Methode hier auf die bei $4000 bzw. $C000 geswitcht habe, um mein Charset zu aktivieren?


    Oder denke ich immer noch in eine völlig falsche Richtung?

    Was mich hoffen, aber auch verzweifeln lässt
    : Ich bin durch Analyse der ersten Zeilen in "Mafia" zu 99% sicher, dass das, was ich vorhabe, irgendwie in BASIC geht. Game ist nämlich für Basic-Verhältnisse ein ziemlich mächtiger Klopper, läuft aber definitiv mit eigenem, in Basic genau nach "meiner" Methode reingeladenen Charset. Und einige POKES deuten auf Bankswitching hin. Merkwürdigerweise wird dort nämlich 52 und nicht 30 hinter die 53272 gepoket. Das gilt auch für Pirates! Bei beiden Spielen wird das Nachvollziehen und das "Klauen" von Codeschnippseln leider erschwert, weil etliche mir nix sagende SYS-Befehle da herumschwirren, so dass man die Programmteile zwar laden und listen, aber nicht separat starten kann, um nachzuvollziehen, was wann passiert.


    Sorry, wenn ich nerve. :)

    Heieiei. Also ich poke generell gern und viel in den Bildschirmspeicher.
    Aber so ganz ohne PRINT... :gruebel
    Das lasse ich dann wohl doch besser erstmal.


    Sooo viel BASIC-RAM geht ja ohne Bank-Switch nun auch wieder nicht verloren.
    Notfalls müsste ich (nachdem ich gerade einige Programm-Teile zusammengefügt habe),
    wieder einiges splitten, wäre auch nicht so das Ding.


    Aber Danke trotzdem, marco. Ich komme jetzt mit dem Star-Char-Editor, dem Zeichensatz-Reinladen und POKE53272,30 ganz gut klar. Lob auch nochmal an Hannenz.


    BY THE WAY:
    HIER hilft tatsächlich die in dem "c64 ladet(!) fehlerhaft"-Fred angesprochene Laderoutine

    Code
    1. IF A=0 THEN A=1:LOAD "CHARSET",8,1
    2. POKE53272,30


    Erwähne es hier nur nochmal, weil es vielleicht anderen hilft, die auf der Suche nach Zeichensatz-Einbindung in ihre Progs einen schnellen Treffer in der SuFu zu erzielen, wer weiß.

    Ui, peinlich. :rotwerd:


    Den Fred hier hatte ich trotz SuFu glatt übersehen, der wäre deutlich frischer gewesen und beantwortet eigentlich auch schon einiges, geht teilweise über das hier gesagte hinaus.


    Trotzdem schon mal Danke an marco für die Links und Tipps. :thumbup:


    Immerhin hab ich das Zeichensatz-Poken nun wieder mal überhaupt hingekriegt mittels POKE53272.


    Mit dem Bank-Switching komme ich leider noch nicht viel weiter. Habe zwar die Memory-Map in groben Zügen verstanden, weiß auch, dass man mittels POKE56576,0-3 die vier Bänke switched. Habe aber noch nicht geschafft, nach dem Switch auf einer anderen Bank als die mit POKE56576,3 angesprochene Standard-Bank 0 auch irgendwas darstellen zu können, geschweige denn einen Zeichensatz.


    Vielleicht hat noch wer 'ne Idee?
    Grüße
    Ryk

    Sorry, dass ich wieder mal einen Uralt-Fred rauskrame. Aber beim letzten Mal (Nachladen größerer Basic-Progs im Fred "C64 ladet (sic!) fehlerhaft") hat es wunderbar geklappt, und wenn es was zum Thema gibt, warum neue Baustelle aufmachen.


    Auch ich konnte das mit den Charsets in Basic mal, aber leider ist das round about 20 Jahre her. Damals habe ich zwar nicht verstanden, was ich mache, aber ich wusste, wie. Nun habe ich mir hier mal alles zum Thema Zeichensätze und Bank-Switching reingetan. Gewisse Resultate (Bildschirm voll von kryptischen Zeichen, Zeichensatz geändert in totalen Random-Murks) habe ich auch erzielen können, aber weiter bin ich leider nicht gekommen. Ich habe mir dann mal Hannenz CharStar reingezogen, testweise mal erstmal nur ein Zeichen geändert. Dann versucht, den neuen Zeichensatz in Basic zu aktivieren, gleiches Ergebnis wie oben. Den C64-Wiki-Artikel habe ich übrigens auch gelesen, bevor mir Godot, Jodigi oder andere gleich wieder pauschal eins auf den Deckel geben. ;) Den habe ich auch verstanden. Die dort beschriebene, aber ja doch etwas komplizierte Methode zum Verändern einzelner Zeichen habe ich nicht getestet, wird schon hinhauen, da habe ich gar keine Zweifel. Aber wie gesagt kompliziert imho und recht speicher-raubend.


    Könnte mir nicht mal jemand für ganz Doofe einen Code posten, indem ein Standard-Zeichensatz 8X8, wie man ihn mit 'nem Editor generieren kann, geladen, das Bank-Switching durchgeführt und dann der Zeichensatz aktiviert wird mit den entsprechenden POKEs und SYSes? Das müsste doch irgendwer noch irgendwo auf Tasch haben, wenn man bedenkt, dass sich hier und in den anderen einschlägigen Freds doch einige kompetent zu Wort meldeten.


    Das wäre fein. Funktionalität hätte in meinem Fall/für mich persönlich Priorität vor allzu detaillierten Erklärungen. Wie gesagt, habe mir diesbezüglich schon einiges angelesen und vieles davon auch kapiert. Aber irgendwie ist bei mir noch der Wurm drin. Bin also nicht zu faul, sondern nur zu blöd bislang...


    Bedanke mich schon mal im Voraus,
    8-Bit Grüße
    TheRyk


    Na, das wirst du im Simons'-Basic-Teil nicht erleben. Da ist jedes einzelne Wort von mir. Auch die Herkunft der Beipiele ist genau ausgewiesen (wie sich das gehört).


    Ansonsten: Wenn du weiterführendes Wissen hast, dann verstehe ich nicht, warum du dich nicht im C64-Wiki einbringst. Nölen, dass alles nur für Einsteiger sei, ist leicht... Und seine Kenntnisse mit anderen zu teilen - was hast du dagegen? Freut sich doch jeder!


    Arndt

    Habe ich gar nix gegen und verwehre mich nochmals ausdrücklich "genölt" zu haben. ;) In den Simon's Basic-Teil habe ich bisher nur flüchtig reingeschaut. Ansonsten habe ich ja bereits feierlich versprochen, das nächste mal, wo mir etwas verbesserungs-/ergänzungsfähig erscheint und ich was Passendes parat habe, mich konstruktiv im Wiki einzubringen.


    Der Fred-Eröffner fragte ja ausdrücklich nach Einsteiger-geeignetem Material. Vielleicht rührt daher das Missverständnis, ich würde das Wiki irgendwie herabwürdigen wollen. War nicht meine Absicht. Fand es zur Auffrischung eigener (einstmals fortgeschrittener) Kenntnisse (aus den 80ern...) auch nützlich.


    So, gegen weitere Nackenhiebe wegen angeblicher Nölerei werde ich mich jetzt hier nicht mehr wehren, da ich eigentlich meine, ich habe nun alles klar gestellt. Peace, Brothers & Sisters. :winke:

    Jodigi: Na gut, ich will dann mal nix gesagt haben.


    Dass das mit Copy&Paste nicht der Regelfall ist, ist klar.
    Kommt aber vor und fiel gerade auf, wenn ein Wiki-Eintrag nur begrenzt taugt
    (als Einstieg sind sie so oder so fast alle gut,
    aber manchmal will man halt mehr wissen)
    und man beim Googlen dann einigermaßen enttäuscht ist,
    anderswo wortwörtlich das Gleiche zu finden.


    Wenn ich das nächste Mal 1:1-identische und verbesserungswürdige Sachen finde,
    werde ich Dir dann einfach mal per Forum-PM oder e-Mail Bescheid sagen,
    vielleicht auch im Wiki gleich ein besseres Beispiel bringen.


    Nochmal: Das C64-Wiki ist was ganz Feines und der Basic-Befehls-Teil als Einstieg in Basic sehr gut geeignet!
    Sonst hätte ich ihn ja auch nicht empfohlen...



    Nix für Ungut also,
    n8i
    Ryk

    @Sauhund: Er nun wieder :D


    Jodigi: Jou, da hast ja Recht. Eigentlich sollte man in den Artikeln sofort was ändern, wenn einen was stört bzw. bessere Beispiele bringen. Nur so kann das C64-WIKI besser werden.


    Wollte es aber auch gar nicht madig machen, sonst hätte ich es ja nicht empfohlen. Im Großen und Ganzen finde ich die Artikel zu den Basic-Befehlen wie gesagt brauchbar, auch wenn da teilweise seitenlang mit Copy&Paste von anderen Seiten abgekupfert wurde, gerade bei den Beispielen. Wenn mir was grob Falsches aufgefallen wäre, hätte ich sicher auch korrigiert. Steuere vielleicht gelegentlich mal selber Beispiele bei. Meistens fehlt schlichtweg die Zeit bzw. man schaut ins WIKI, findet das Beispiel doof, und bis man selber ein besseres hat, hat man den WIKI-Eintrag längst wieder vergessen bzw. ist zu faul.

    Standard-Antwort ist natürlich das Handbuch (s.o., Link in Dracos Post).


    Mittlerweile kann man Dir aber auch (wie mein Vorredner Jodigi sagte) das C64-Wiki (Programmiersprachen-->Basic-->Basic-Befehle) empfehlen. Schließlich sind es ja doch gerade mal je nach Zählweise knapp über 70 Befehle, die man Stück für Stück dort abarbeiten kann. Die Beispiele sind zwar z.T. aus allen möglichen C64-Homepages und -Büchern zusammengeklaut und die Artikel unterschiedlich ausführlich/knapp/gut, aber überwiegend als Einstieg recht brauchbar.


    Je nachdem, wie weit fortgeschritten Du bist, könntest Du vielleicht ungefähr nach dieser Reihenfolge vorgehen bzw. dort im C64-Wiki einsteigen, wo Du meinst, es besteht noch Nachholbedarf:


    1. PRINT/INPUT/GET(evtl. +LET, auch wenn man es nie benutzt)
    2. LOAD/SAVE/VERIFY
    3. VAL/STR$ (etwas später mal intensivieren: ASC/CHR$/LEN/LEFT$/RIGHT$/MID$)
    4. INT/RND
    5. IF (+AND/OR/THEN/evtl. NOT)
    6. GOTO(+ON)/GOSUB(+RETURN)
    7. FOR(+NEXT/TO/STEP)
    8. POKE/PEEK/SYS/WAIT
    9. DATA/READ/DIM/CLR/RESTORE
    10. OPEN/CLOSE/PRINT#/INPUT#/GET#
    11. DEF (+FN)
    (12. ruhig auch die übrigen knapp 30 Befehle mal sichten)


    Über die Reihenfolge kann man sicher streiten. Aber gerade weil es so wenig Befehle sind, ist es auch nicht so kriegsentscheidend, womit man beginnt. Ganz banale Sachen wie RUN und LIST habe ich mal vorausgesetzt. Ansonsten sind das aber mehr als die Hälfte aller Befehle. Meines Erachtens wirst Du das im C64-Wiki an einem Nachmittag/Abend mal durchgehen können und hättest danach schon einiges drauf. Parallel kann man ja mit dem Emulator das Gelernte gleich ausprobieren. Sicher wird nicht alles sofort sitzen, aber dafür kann man ja jederzeit nachschlagen.

    Du kannst dann jedenfalls schon
    Schreiben, Eingabeaufforderungen, Laden, Speichern, einige Opertionen mit Strings (Zeichenketten) durchführen, IF(="wenn")-Verzweigungen, die verschiedenen Programmsprünge, FOR-NEXT-Schleifen, einige Datenoperationen inklusive Speichern und Laden von Daten in Programme sowie einiges an mathematischen Operationen. Der Umgang mit Sound/Sprites/Grafik zählt m.E. nicht unbedingt zum Grundwissen, von daher kannst Du dann schon fast alles in BASIC!


    Die POKE- und PEEK-Adressen muss man halt hier und dort zusammensammeln bzw. im Internet nachschlagen, sei es auf einer der zahlreichen guten C64-Nerd-Seiten wie emu-ecke.de, in diesem Forum, im Handbuch, bei Wiki oder per Google. Je nachdem wie häufig man die Pokes braucht (Farben, Joystick usw.), werden sie sich dann schneller oder weniger schnell ins Hirn brennen.


    Aber mit diesem Grundstock kann man wie gesagt schon beinahe alles machen. Wie man das Wissen dann möglichst sinnvoll und speichersparend einsetzt (meines Erachtens gerade die Herausforderung, die es so reizvoll macht, sich heutzutage noch mit C64-BASIC zu befassen), das kommt dann erst mit der Zeit von selbst durch Learning-by-Doing oder durch das - mit diesem Grundwissen mögliche - Analysieren größerer Basicprogramme (Beispiele siehe entsprechende Freds "Listings" oder "Große Basicprogramme" in diesem Forum.)

    Geil. Danke, nun läuft es! :thumbup:


    Hin und Her-Übertragen ist echt Fummelkram, mir ist ja auch prompt ein Fehler passiert, und das bei einem Einzeiler ;) Es lebe Copy&Paste...

    Ahhh.... Danke. Also der Pfeil nach oben für "x HOCH y"? Das wäre dann Entf., das hatte ich auch probiert...


    EDIT: :rotwerd: Fehler war ein anderer, hatte mal wieder die QWERTY-Tastatur nicht bedacht und daher SYS mit Shift+Z abgekürzt... So konnte es ja nicht funzen.


    Jetzt läuft es zwar bis zum "GO", bricht aber dann nach dem Losrütteln immer mit "?ILLEGAL QUANTITY ERROR IN 0" ab... So richtig geht es immer noch nicht. Habe keinen weiteren Tippfehler mehr gefunden...

    Code
    1. 0F{shift+o]A=1TO3:?4-A:S{shift+y}64863:N{shift+e}:?"GO":D=TI:F{shift+o}A=0TO99:W{shift+A}56320,A^(AA{shift+n}3),15:N{shift+e}:?(TI-D)/60

    :help:
    Wie kriege ich denn das Zeichen ^ hinter dem WAIT und vor dem AND in VICE hin...?

    :zustimm: Naja... Wenn man mit einem C64 als Bordcomuter ins All reist,
    wäre man ja technisch doch weitaus besser dran als die Raumfahrtpioniere aus den 1960ern. Und wenn man dann noch über die Systemuhr den Monat herauskriegt, bekommt man zumindest immer als Mini-Text angezeigt, welcher Monat gerade auf der Erde ist, wenn man die besagte Zeile kennt.


    Ansonsten klar: Zahlen unter 1 bzw. über 85 führen zum "Absturz"/IQ-Error. Und daher muss ich aus dem selben Grund, aus dem Micro-Saft vor der Verwendung von Java warnt, sagen: Für Raketenabstürze durch die Anwendung des Einzeilers übernimmt TheRyk keine Haftung. Zumal ich die Zeile zu über 90% aus Pirates übernommen habe, verweise ich sämtliche Schadensersatzforderungen an die Fa. Microprose Software bzw. Sid Meier... :P

    Es fehlt der Oktober...

    Skandal! :rotwerd: Okay, hier haben wir ihn:


    Code
    1. INPUTM:M$=MID$("JANFEBMARAPRMAIJUNJULAUGSEPOKTNOVDEZ",(M-1)*3+1,3):?M$:GOTO1

    Sollte die Zeile nun zu lamg werden für einen Einzeiler (glaube ich eigentlich nicht), kann man das GOTO ja auch noch als G[shift+O] abkürzen. ;)


    Quote

    Kann man eigentlich irgendwie vom Vice aus .d64 Files erstellen?

    Kein Problem.
    File-->Attach Diskimage--> Neuen .d64 Dateinamen vergeben, Rechts unten bei "New Image" den Disk-Titel eintragen (Shift Gedrückt halten, wenn der Disk-Titel lesbar sein sollt) auf "Create Image" mousen und Feuer...

    @Bastet: :thumbup: Stimmt, hasse Räscht. Das würde das Verfahren auch bei unterschiedlich langen Strings mit vertretbarem Aufwand ermöglichen. Wie gesagt, hatte auch keinen Anspruch auf Genialität (habe ja zugegeben, wo ich es her hatte) oder supererstaunliche Effekte. Fand das einfach für eine Zeile bemerkenswert in Sachen Speicherökonimie.


    @ Rolands Einzeiler: Habe ich natürlich auch ausprobiert. Ganz klar ist mir das Prinzip zwar nicht. Aber irgendwie manipuliert er wohl die Systemuhr, an der ja der Pseudo-Random hängt... Praktischer Nutzen
    strebt gegen Null, aber: :D witzisch is es.

    Nix fürs Auge, und kein Anspruch auf Genialität.


    Aber ich habe gerade mal was sehr Praktisches wieder entdeckt.
    Es handelt sich um eine Zeile, die ich so oder so ähnlich
    mal aus einem der besten z.T. basic-basierten Games ever
    "geklaut" habe, nämlich Pirates!


    Code
    1. INPUTM:M$=MID$("JANFEBMARAPRMAIJUNJULAUGSEPNOVDEZ",(M-1)*3+1,3):?M$:GOTO1
    2. REM ### BELIEBIGE ZAHL ZWISCHEN 1 UND 12 EINGEBEN ###
    3. REM #### MIT EINER NULL FLIEGT MAN RAUS --> ENDE ####


    Tieferer Sinn: Anstatt 12 Strings/Zeichenketten einzeln zu speichern oder gar zu dimensionieren (was ja bei 12 Monatsnamen dummerweise gerade eben nötig wäre, denn nur M$(0) bis M$(10) sind vom Interpreter vordimensioniert), schneidet man sich hier je nach Monat aus einer einzigen Zeichenkette das benötigte Element heraus.

    Trotz mehr als 11 Strings also kein DIM, kein READ, kein DATA, kein INPUT#
    (aus einer .SEQ-Datei), kein (M) hinter M$ erforderlich.
    --> sehr ökonomisch.


    Auch Anwendungen in anderen Bereichen als Datum sind denkbar, vor allem wenn man die Zeichenketten ansonsten so gut wie nie braucht. So wurden bei Pirates z.B. auch die 4 Nationalitätsnamen zusammengepackt in einer Zeichenkette in Anführungszeichen einschließlich Nationalfarben, in etwa so: "[ROT]ENGLISH[TÜRKIS]SPANISH[GRÜN]DUTCH[2SPACE][BLAU]FRENCH[1SPACE]"
    Daraus wird dann wie oben beschrieben über eine numerische Variable wie N=3 der gewünschte Teil als N$ herausgesägt und schon erhält man über


    PRINTC$(C) : PRINTN$ das übliche
    CURACAO
    (DUTCH)
    in dem Stadt-Info-Fenster
    bzw. im Begrüßungs-Fenster
    YOU HAVE ARRIVED AT THE LOVELY SEASIDE OF CURACAO.
    THE DUTCH FLAG FLIES OVER THE TOWN.

    (Ohne Gewähr auf exakten Wortlaut, habe es ewig nicht mehr gespielt,
    aber ich denke, es ist klar, was gemeint ist)


    Theoretisch könnte man sogar relevantere, unterschiedlich lange Strings auf diese Weise zusammenpacken, nur müsste man sie dann wieder einigermaßen aufwändig auseinanderfriemeln, indem man in numerischen Variablen die Grenzen festlegt, so dass fraglich scheint, ob eine nennenswerte Speicherplatz-/Ladezeit-Ersparnis zu erreichen wäre.

    Habe genau diese Lösung gerade bei http://www.emu-ecke.de gefunden und nun doch mal ausprobiert, weil die andere Lösung mir doch etwas zu "sperrig" war, auch wenn sie funktioniert hat.


    Klappt tatsächlich wie hier von Chainsaw beschrieben: Wenn im nachgeladenen Programm die erste Zeile


    Code
    1. POKE45,PEEK(174):POKE46,PEEK(175):CLR


    lautet, kann man im ladenden Programm ganz primitiv mit


    Code
    1. LOAD"TEIL2",8,1


    arbeiten. Das geladene Programm startet fehlerfrei.


    Sämtliche im ladenden Programm dimensionierte Variablen müssen wie von Chainsaw angedeutet mit DIM neu dimensioniert werden, wenn man sie in TEIL2 noch braucht, etwa beim Laden der logischerweise ebenfalls nicht mehr im Speicher befindlichen Daten aus dem ersten Programm aus einer .SEQ-Datei. Sonst kann es "BAD SUBSCRIPT ERROR" geben.


    Ich habe es getestet, es funktioniert tatsächlich und ist doch viel weniger umständlich als das zuvor beschriebene Verfahren, allein schon weil man viel weniger Schreibaufwand betreiben bzw. viel weniger der knappen Bytes verschwenden muss.


    Von daher ganz klar mein Favorit unter den Lösungen :thumbsup:

    Das Spiel "Computershop"...
    Vorteil: Keinerlei SYS-Schutz.
    Findest Du auf vielen einschlägigen Download-Plattformen.


    Ist zwar schon 'ne ziemliche "Printorgie",
    Game ist doch recht flach,
    enthält aber doch auch ein paar brauchbare Code-Schnipsel.


    Noch flacher und print-orgiastischer: Das "Spiel"
    (eher 'ne ziemliche Verarsche) "Dealer".


    Bessere Sachen:
    Pirates!, Fugger, Kaiser wurden schon genannt.
    Ich meine, auch "Vermeer" ist in Basic.

    Danke, aber die Lösung läuft nun dank Metal's Variante wunderbar,
    genau wie ich es mir vorgestellt hatte.


    Daten rette ich in der Tat mit SEQs. Vorteil der POKE-Variante gegenüber anderen ist auch, dass man die "DIM"-Sachen generell einfach im jeweiligen Programmteil so regeln kann, wie man es - je nach den im Programmteil verwendeten SEQs - braucht, während bei anderen Varianten Vorsicht bzw. vor den LOADs CLR geboten ist, damit man nicht "REDIM'D ERROR"s bekommt, falls man die Sachen mal in anderer Reihenfolge lädt.

    TheRyk:
    Das ist seltsam. Ich hab's hier nochmal getestet... funzt wie's soll. Wenn das Programm beendet wird, ist der Cursor auf "L" von LOAD (in der dritten Zeile, direkt unter "READY"), was sofort ausgeführt wird (wegen dem gefüllten Tastaturpuffer). Hast Du "[3 x Down]" direkt nach "[Clear]" auch nicht vergessen einzugeben?


    Ansonsten ist das was Roland sagt schon richtig und auch wirklich eleganter. Und: der Bildschirminhalt bleibt dabei unberührt.

    YEEHAW! :thumbup: Danke, Du hast es erfasst, es lag an den fehlenden 3 Downs. Da habe ich wohl nach dem Zeile ändern vergessen, ENTER zu drücken. :rotwerd:


    Nun funzt es also endlich!

    Sehe gerade, dass ich mich wohl etwas unklar ausgedrückt habe.


    Also, alle 3 Parts sind Basic. Das "ladende" Prog soll aus dem Speicher verschwinden, das "nachgeladene" Prog soll hinein und ausgeführt werden.


    Das funktioniert aber eben nur, wenn das "nachgeladene" kleiner als das "ladende" ist. Warum dem so ist, das wissen die Poster aus 2003. Es ist aber leider tatsächlich so, wenn man mit

    Code
    1. 10 LOAD"PROG",8,1

    arbeitet. Und in den hier vorgeschlagenen Lösungen muss irgendwo noch der Wurm drin sein. Entweder stimmt der Ausführungspoke nicht oder die Cursor-Pokes. Jedenfalls passiert wie gesagt nix, außer dass die Zeilen hingeschrieben werden und der Cursor fröhlich blinkt. Keine der Zeilen wird ausgeführt.