Hello, Guest the thread was called1.9k times and contains 59 replays

last post from sauhund at the

Wrapper für Basicfunktionenverbindung

  • lol also


    a) hab ich garnix "angekündigt" :) ich hab gesagt ich bastel grad an nem wrapper für die floating point routinen. alles andere im basic rom werde ich fein weiter ignorieren, da es meiner meinung wenig sinn macht irgendwelche der basic befehle direkt aufzurufen, ausser vielleicht mal bei nem vereinzelten supersonderfall den man aber auch dann nicht mit so nem generischen wrapper erschlagen kann und will. und besagten wrapper werde ich dann irgendwann mal posten, rechne aber eher nicht so bald damit :)
    b) wenn du wirklich meinst sowas zu brauchen, ist das wie dir ja auch schon mehrere erklärt haben kein hexenwerk, WENN du dich denn auch mal damit beschäftigst. allerdings muss man dazu die runtime von cc65 und c allgemein zumindest rudimentär verstehen, sonst wird das nix. das kommt sicher auch noch irgendwann mal, eher gegen ende, von skoes erklärerei dran. jetzt hier irgendwelchen fertigen code für irgendeine einzelne funktion zu posten halte ich für wenig sinnvoll solange nicht das wissen da ist das nötig ist um solch ein beispiel dann für andere funktionen umzustricken.

  • ch hab gesagt ich bastel grad an nem wrapper für die floating point routinen. alles andere im basic rom werde ich fein weiter ignorieren, da es meiner meinung wenig sinn macht irgendwelche der basic befehle direkt aufzurufen


    Befehle machen wirklich keinen Sinn. Wer will schon POKE, FOR oder PRINT aufrufen. Aber alle Funktionen machen auf jeden Fall Sinn: +,-,*,/,Sin(), Cos(),Tan(),Rnd(),Ti(),Ti$() ...



    Was aber schon einen gewissen Reiz haben könnte, das ist ein GOSUB Wrapper für CC65. Man könnte kleine, feine Basic Lösungen als eine Sammlung von Unterprogrammen halten und per CC65 aufrufen ...


    Code
    1. : :
    2. ExecGOSUB(2000); // Basic Code ab Zeile 2000 ausführen bis RETURN
    3. : :
  • Verstehe ich das richtig? Sowas wie Inline-Basic im c-Quelltext?


    Kannst Du ein Beispiel nennen, wo das in Deinen Augen Sinn machen könnte?

  • Verstehe ich das richtig? Sowas wie Inline-Basic im c-Quelltext?


    Inline Basic wird nicht gehen, dann müsste man einen Tokenizer implementieren und es würde zuviel Platz brauchen.



    Ich denke an ein cc65 Programm was für eine höhere Adresse kompiliert wird, zb. ab $6000 bis $e000. Man könnte so beliebige kleine Basic Programme nachladen (Variablen Obergrenze auf $6000 + NEW).


    Ein kleine Routine im Kasettenpuffer blendet das Basic ROM ein, ruft den Basic Interpreter auf und startet das Basic Unterprogramm. Nach der Rückkehr wird das ROM wieder ausgeblendet und zum CC65 Programm zurückgekehrt.


    -------


    Man müsste "nur" die ChrGet Pointer setzen auf die richtige Zeilennummer. Dau könnte müsste man sich nur von $0801 an Zeile für Zeile durchhangeln.


    Vielleicht geht es sogar noch einfacher, die GOSUB Routine im ROM sucht sich ja auch die Zeile schon selber.

  • Für die meisten BASIC-Routinen macht so ein Wrapper schon allein deswegen keinen Sinn, weil der Wrapper oft größer wäre, als wenn man die Routine gleich komplett selber machen würde.

  • a) hab ich garnix "angekündigt" :) ich hab gesagt ich bastel grad an nem wrapper für die floating point routinen. alles andere im basic rom w...


    Ich dachte dieses ist mal eine Herausforderung für die Spezialisten.
    Warum sieht man das von der toternsten Seite, ist doch alles nur Hobby.


    Mit uns kann man eh draussen nichts mehr richtig anfangen. Also hier austoben.



    allerdings muss man dazu die runtime von cc65 und c allgemein zumindest rudimentär verstehen, sonst wird das nix.


    Warum soll man dann nicht die Spezialisten fragen?


    Ich kann auch nur da helfen wo ich kann. Nicht hier, aber im sozialen Bereich(obdachlose betreuen, Frühstück ausgeben für sozial Schwache usw). Ich möchte auch nicht allzuweit einsteigen in "C", man kann zwar alles essen, man braucht aber nicht alles zu Wissen.




    mfg

  • POKE, FOR oder PRINT


    Das gibt es schon beim cc65 als Erweiterung. :winke:


    Das sind aber nur Makros und keine Erweiterungen, und wie Diddl sagte: Macht auch keinen Sinn. Wer C lernen will, sollte sich nicht mit Makros abgeben, die C wie BASIC aussehen lassen, zumal diese nur Einschränkungen gegenüber den dadurch versteckten C-Konstrukten bieten.


    Also:


    FOR I=1 TO 10 ... NEXT I sollte sein: for (i=1;i<=10;i++) { ... }
    POKE (A, B) sollte sein: *A = B;
    B = PEEK (A) sollte sein: B = *A;

  • Für die meisten BASIC-Routinen macht so ein Wrapper schon allein deswegen keinen Sinn, weil der Wrapper oft größer wäre, als wenn man die Routine gleich komplett selber machen würde.


    Was macht auf dem c64 schon Sinn, nur spass an der Freude wenn es klappt, ich hab sie wenigstens wenn das programm klappt,




    mfg

  • Das gibt es schon beim cc65 als Erweiterung.


    ... eben so eine Makromanische Beigabe :winke:


    An deiner Aussage sieht man schon wie verkniffen du das Siehst ...Es ist keine Erweiterung... prost Mahlzeit.... :roll2:
    Ernst geh bei Seite, der Spass kommt.


    mfg

  • Kannst Du ein Beispiel nennen, wo das in Deinen Augen Sinn machen könnte?


    Bei den Tollen Grafikkroutinen vom Plus4. Wer diese kennt weiss was das heisst Grafik auf dem 8Bitter.


    Beim c64 kannst noch niche mal enen Punkt setzen.


    Ich kenn zb auf dem c64 nur Programmierer von Programmen, wo ein Rasterlinienprogramm das andere jagt, wie eintönig. :nixwiss:


    Darum soll mir einer helfen dahin zukommen.

  • Also mir sind tausende von Demos mit Punkten, Linien, gefüllten Flächen etc etc bekannt. Nur weil etwas nicht im ROM ist, heisst das noch lange nicht, dass die Maschine das nicht kann.