Posts by Larry

    Das ergibt schon mal einen Syntax Error:



    DIM ist auch relativ sinnfrei an der Stelle.

    Wenn nun Zeile 30 ersetzt wird mit:


    30 LET ErrorChannel%=0


    Dann bleibt MBASIC am CALL INTERRUPT hängen. INTERRUPT scheint dem CALL Befehl (noch) nicht bekannt zu sein.

    Funktioniert leider nicht da er bei Zeile 221 mit gosub 5 und gosub 18 irgendwas machen will

    aber dein code beginnt bei Zeile 213.....

    Zeile 5 geht zur BBS Eingabe Routine. Kann mit z.B. INPUT"blabla",i$ ersetzt werden.

    GOSUB18 filtert Cursor Moves aus dem Inputstring raus. Kannste theoretisch also auch weg lassen.

    Alles vor Zeile 213 sind irgendwelche BBS System bezogenen Routinen für Input / Diskaccess etc. pp.

    Hmm kannst das ja mal mit dem Eliza BBS Game von meinen BBS abgleichen.

    @ Command entspricht PRINT und PRINT#5 gleichzeitig. Also für "Normalbetrieb" einfach @ durch PRINT ersetzen.

    Der eigentliche Code ist ja nicht sooo lang. Überwiegend nur DATA Zeilen.


    Hallo zusammen,


    hier im Forum habe ich nicht viel zu dem Thema gefunden, außer "... Contiki und FTP, gibt's nicht....".

    Naja es gibt ja auf github im Contiki Repo Code für FTP. Leider bekomme ich das irgendwie nicht compiliert.

    Dachte ich mir macht ja nichts, hast ja eine alte Contiki Version mit FTP.prg drauf, nimmste die.

    Gesagt getan. Contiki 1.2devel im C64 geladen, 64NIC+ Cartridge auf RR-Net gestellt, gestartet und das FTP.prg aus Contiki heraus geladen.

    Leider bekomme ich aber keine Verbindung zum Ultimate64 damit hin. Das bleibt bei Connecting... hängen.


    Hat das jemand von euch mit Contiki schon mal hinbekommen, oder auch eine FTP Verbindung zu einem anderen Server ?

    Falls ihr beide den Fehler nicht findet, dann versuch mal einen anderen SID Chip. Vielleicht wird die Zufallszahl nicht mehr sauber erzeugt.

    Nur eine Idee...


    Edit: Vergiss es, Du schreibst ja es wird IMMER "CMENU 1" geöffnet, auch wenn nichts angezeigt wird.

    Ich will aber deine Probleme auch haben ;-)

    Sicher ?

    Ja dann solltest Du Dich von deinem aktuell eingesetzten BBS Mod verabschieden und stattdessen meinen nehmen. Dann hast Du auch meine Probleme und die Lösungen dazu. Zum Teil jedenfalls....

    Wie du weist ist das aber nicht mal eben copy, paste. Bei mir sind dann doch ein paar Sachen anders, komplexer, mehr Screens etc. pp.

    Wenn Du das wirklich machen willst, gerne.

    Ja hast Du Recht. Das macht Sinn.

    Das Programm entstand zuerst mit der Idee 8 Zieldateien zu erstellen anstatt eine. Deswegen hatte ich mir überlegt, wie ich das am besten machen könnte.

    Dann kam die Idee mit dem Array. Im Laufe der paar Stunden, die ich da dran gegrübelt habe, hatte ich dann die Idee mit 8 Zieldateien wieder verworfen. Eine reicht ja.

    Warum 8 und nicht 10 -> 2 Werte sind jeweils Hi und Low Bytes einer Zahl.

    Ich lasse das für mich jetzt erst mal so. Sind ja nur noch 2 Läufe für 2021er und 2022er Files. Danach hab ich 1 Jahr Ruhe hahaha...

    Alle Jahre wieder... mal ein kleines Update von meinen geistigen Ergüssen von heute.

    Vielleicht hat es der einer oder andere schon im Threat "Heute so gecoded" gelesen. Ich habe ein kleines BASIC Tool geschrieben womit "BBS Kennzahlen" in eine CSV Datei geschrieben werden.

    Zum Hintergrund:

    Irgendwann in 2020 habe ich im BBS Code eine Funktion eingebaut, die die Daten vom aktuellen Tag aus dem Waitscreen (Call, Posts, Uploads, Downloads etc...) in ein SEQ File namens "WSV" wegschreibt und zwar nach jedem Call.

    Dieses File wird vom C-BOOT, also dem BBS Bootfile eingelesen. Ganz praktisch, wenn man mitten am Tag mal das BBS neu starten will oder muss... Früher waren diese Infos verloren, sofern der SysOp die nicht notiert und manuell in die entsprechenden Speicheradresse gePOKEt hat. Am Ende des Tages in den MIDNIGHT Routinen, wird dann dieses WSV File umbenannt mit Datum dahinter und ein neues File erstellt.

    Jetzt sammeln sich im Laufe der Zeit so einige WSV-xxxxx Files an. Was macht man damit ? Entweder löschen und vergessen, oder die Daten nutzen um Ansatzweise BBS Statistikdaten zum haben.


    Also fluchs das o.g. erwähnte Progrämmchen eingetippert, die Files von 2020 auf ein D81 Image gepackt und laufen lassen. Geduld ist Trumpf :)

    Am Ende wird tatsächlich ein SEQ File erzeugt, das dann z.B. mit DirMaster am PC exportiert werden und z.B. in Excel importiert werden kann.

    Mit den so gewonnenen Rohdaten kann ich mir nun ein paar nette Übersichten und Diagramme basteln und schauen wie sich das BBS über die Monate so entwickelt, bzw. wann was los war und wann nicht etc.


    Das Ganze könnte man dann für's echte Retro Feeling wieder in eine SYLK Datei exportieren und dann z.B. in Multiplan verwursten. CP/M am 128er bietet sich da an mit 80Zeichen Screen :)

    Mal sehen....

    Vielleicht kann man mit den gewonnen Daten auch Diagramme Zeichen (mit Simons BASIC ?!) o.ä. oder als PETSCII Balken-/ Säulendiagramm und das wieder zurück zum BBS schicken, z.B, als Status Screen.

    Ideen über Ideen...


    Aber vielleicht habt ihr noch ganz andere Ideen oder sogar Wünsche, was man mit den Daten anstellen könnte....

    Wenn man's richtig macht dann funktioniert es auch :)

    Junge, junge..... zum Teil sind im Array leere Strings. Die entstehen dadurch, dass ich beim Einlesen der Daten, falls die Einlesedatei nicht existiert, oder Fehler hat, weiter zum nächsten File (Tag) springe.

    Das macht nachher beim ASC Probleme.... logisch.


    Hier mal der komplette Sourcecode, falls Interesse besteht und jemand mal so was ähnliches machen will.

    Das kann natürlich noch alles verfeinert werden mit mehr Sicherheits schick schnack etc. Für meinen Bedarf reicht das erst mal.

    Nur nervt noch die Garbage Collection, die Pausenzeiten des Todes verursacht. Also besser VICE im Warp Mode laufen lassen....



    Das Ergebnis exportiert vom Diskimage auf PC sieht dann so aus:


    Und kann direkt in Excel / Calc eingelesen werden.

    Ich glaube so ist es richtig:

    Code
    1. print#9,mid$(str$(asc(ar$(mm,dd,v))),2)";";

    Zum Hintergrund: Mein BBS schreibt täglich 10 Werte in eine SEQ Datei aus 10 verschiedenen Speicherstellen. Also quasi print#xx,peek(12345).

    Wenn im Speicher also der Wert 9 drin stand, dann wird praktisch ein chr$(9) fortgeschrieben.

    Jetzt gehe ich im nachhinein hin und lese diese SEQ Files wieder aus. Damit ich die Werte danach z.B. in einer Excel Tabelle verwenden kann, kann ich mit einem chr$(9) nichts anfangen. Ich will ja den Wert 9 haben.

    Mein Denkfehler war, dass ich nicht dran gedacht hatte den Wert mit ASC in eine Zahl zu wandeln.

    Aktuell läuft das Ganze noch einmal, es werden 365 Files eingelesen (pro Tag eins) und in ein neues File gepackt.

    Mal sehen, wie das Ergebnis gleich ausschaut.


    Edit: sieht schlecht aus. Illegal quantity Error. Arrrrghh.

    Ich habe heute ein kleines BASIC Projekt fertig gemacht. Mein Ziel war es den Inhalt von mehreren SEQ Dateien in eine neue Datei im CSV Format zu schreiben um diese Dann z.B. in Excel verwursten zu können.

    Das funktioniert auch soweit ganz gut. Allerdings fällt mir dann in der Datei auf, dass leere Felder zum Teil als NUL weggeschrieben wurden und zum Teil nicht.


    Hier ein Screenshot aus Notpad++ wo man sehen kann was ich meine:



    Ich lese die Daten aus dem SEQ Files in mehreren Schleifen wie folgt aus:

    Code
    1. ;read filedata
    2. open 8,md,8,"wsv-"+mid$(str$(mm),2)+"?"+mid$(str$(dd),2)+"?"+mid$(str$(yy),2)+",s,r"
    3. for v=1 to 10
    4. get#8,a$:a$=a$+chr$(0)
    5. ;write data into array
    6. ar$(mm,dd,v)=a$
    7. next v
    8. close 8

    Daher würde ich jetzt erwarten, dass entweder überall ein NUL drin steht, oder gar nicht.

    Hat jemand von euch eine Idee woran das liegen könnte ?

    Das File lies sich jedenfalls in LibreOffice Calc ohne Gemecker einlesen...


    Edit: beim drüber schauen habe ich ggf. den Fehler schon gefunden. Das liegt wohl weniger an der Einleseroutine als an dem PRINT# der die Daten ins neue File schreibt.


    Code
    1. ;year;month;day;
    2. print#9,yy$";"mid$(str$(mm),2)";"mid$(str$(dd),2)";";
    3. for v=1 to 9
    4. print#9,mid$(ar$(mm,dd,v),2)";"; <---- das wird wohl so nicht passen
    5. next v
    6. ;last value is not ";" separated
    7. print#9,mid$(ar$(mm,dd,10),2)lf$;

    Die Software müsste man wo drauf flashen, das sie direkt nach dem Einschalten da ist.

    Ja dann müsste die BBS Software im Cartridge funktionieren, evtl. Easyflash um nachladen zu können. Könnte gehen...

    Die Idee hatte ich für mein BBS mit C*BASE auch schon. Es scheitert aber z.B. am Swiftlink, was für die Datenübertragung notwendig ist.

    Und "Wake on Ring" kann er natürlich nicht, aber es gibt Geräte, die bei Anruf ein Relais schalten und damit Strom einschalten.

    Könnte per "Smart Home Steckdose" a la Fritz! gehen. Dann braucht es aber ein Script, was bei aktivität auf IP xxxxxx das Ding anschaltet.

    Ausschalten könnte dann per Timer erfolgen.