Posts by ThomBraxton

    Hallo Leute,


    ich versuche gerade zu verstehen, wie die Abfrage der Maus (Demo128.bas) mit dem 1351er-Treiber (mouse128.bin) funktioniert und bin dabei über folgende Zeile gestolpert:



    X=1024+((1,0)-24)/8: Y=INT(((1,1)-50)/8)*40
    -----------^^^ ------------------^^^
    IF PEEK(X+Y)<>P THEN GOSUB390


    Wie funktioniert die Berechnung von x und Y? Was haben die (1,0) und (1,1) in der jeweiligen Gleichung zu bedeuten?


    Liebe Grüße!
    ThomBraxton


    Edit: Nach Senden hat sich die ganze Formatierung geändert. Was'n das für'n Blödsinn?

    @ThomBraxton


    Warum arbeitest du nicht mit den Treibern bzw. Basicbeispielen von der 1351 Demodiskette? Da sind auch Beispielerklärungen für Basic7 C128 dabei die funktionieren.
    Das ist m. E. viel einfacher wenn es denn sowieso in Basic realisiert werden soll.


    Nur so als Tip.

    Den von der Demodiskette hatte ich versucht, wollte aber hier in Vice nicht wirklich stabil laufen. Warum auch immer, hat mir der Treiber Müll geliefert oder ließ mein Basic-Programm regelmäßig abschmieren. Da ist mir der Treiber von Mac Bacon wesentlich lieber. Der läuft stabil und liefert mir Pixel- wie auch Zeilen/Spalten-Werte. Jetzt muss ich nur noch herausfinden, warum er mir bei einem linken Mausklick die falschen Werte verarbeitet.


    Mac Bacon:
    Du hast es richtig erkannt. Ich klicke mit der Maus auf Menüeinträge und per X-Spalte/Y-Zeile soll ermittelt werden, welcher Eintrag angeklickt wurde und entsprechend ein Shortcut in a$ gespeichert werden, was aber partout nicht gelingen will. Da keine Taste zuvor gedrückt wurde müsste der Tastaturpuffer leer sein, aber ich werde mal den Löschpoke für den Tastaturpuffer vor die Auswertung setzten. Vielleicht ist das ja mein Denkfehler... Ich teste mal die nächsten Tage ein wenig herum und werde mir mal ein kleines Nebenprogramm schreiben, um die Maussteuerung besser analysieren zu können.


    Ersteinmal Danke an die Helfer für die Tipps!


    Liebe Grüße!
    ThomBraxton

    Hallo Mac Bacon,
    ich versuche seit Tagen in VICE mit deinem Treiber zu arbeiten, doch irgendwie scheint da der Wurm drin zu sein!
    Ich habe in Vice in den Control-Port-Einstellungen den ersten Port mit der 1351 eingestellt. Wenn ich in Vice x128 den Maustreiber (inputdrv128.prg und nicht ddrv128) boote und dann mein Programm starte, dann kann ich die mauskoordinaten wunderbar abfangen und anzeigen lassen, sobald ich aber die linke Maustaste über einem Text auf dem Bildschirm anklicke, und die Position auf dem Bildschirm auswerten möchte, so bekomme ich immer nur Müll heraus. Ich weiß nicht, wo mein Denkfehler liegt. Die Shortcuts mittels Tastatur funktionieren. Ich nutze für den Sprung ins Auswertungs-Upro die Anweisung peek(250). Er verzweigt auch ins Unterprogramm, doch wird dort anscheinend nur Müll empfangen.
    Jetzt frage ich mich schon seit ein paar Tagen, ob die Einstellungen in VICE oder der Treiber falsch sind. Der Treiber heißt hier "inputdrv128" und nicht "ddrv128". Oder habe ich den falschen Maustreiber an Port 1 in Vice eingestellt? Muss ich dort überhaupt eine Maus in Vice aktivieren?
    Wenn ich die Koordinaten ausgewertet habe und festgestellt habe, welche Zeile bzw. welcher Befehl angeklickt wurde, dann weise ich einer Variblen a$ den "shortcut" zu. Danach soll das Programm per Return in die Programmschleife zurück kehren und das zuständige Unterprogramm ausführen. Aber es wird danach in a$ laufend andere Werte gespeichert, was mein Programm aber nicht macht, sondern irgendwie scheint sich der Treiber dort zu verselbständigen. Die Bedienung des Programm über Tastatur macht gar keine Schwierigkeiten. Hast Du einen Tipp?
    Oder verwende ich doch einen falschen Treiber?


    Liebe Grüße!
    ThomBraxton

    Hallo Mac Bacon,


    wenn ich Deinen Treiber benutze und das Programm in Vice ein zweites Mal ausführen möchte (RUN), kommt im x128 ein Sprung in den Monitor und dann kommen nur noch BREAKS als Meldungen. Der "Rechner" lässt sich dann nicht mehr anhalten und läuft in der BREAK-Endlosschleife. Kann man Deinen Treiber auch per Kommando aus dem Speicher entfernen ohne ein RESET auslösen zu müssen?


    Liebe Grüße!
    ThomBraxton

    Hallo Leute,


    bei meiner Recherche bin ich darauf gestoßen, dass in Basic V2 bzw. V7 (128er) die Variablentypen unterschiedlich viel Arbeitsspeicher brauchen. Das ist verständlich!
    Ich verwende schon seit Ewigkeiten Variablen, wie a und a$ bzw. entsprechende Arrays. Ich weiß, dass Ganzzahlvariablen (Integer) weniger Arbeitsspeicher benötigen als Fließkommazahlen. Irgendwie huscht ein Gedanke in meinem Kopft herum, dass Integervariablen weniger Speicher benötigen, diese aber intern im Rechner immer erst in Fließkommazahlen umgewandelt werden???
    Jetzt meine Frage: ist ein Programm schneller, wenn ich anstelle z.B. a=10 die Variante a%=10 bzw. entsprechende Arrays a(20) bzw. a%(20) verwende? Das auch entsprechend in Berechnungen von Koordinaten usw. Stimmt es, dass ein Programm a=0.0 langsamer abarbeitet als a=. ?



    Liebe Grüße!
    ThomBraxton

    Hallo Leute,



    ich bekomme den Treiber auf keinem System kompilliert. Es funktioniert
    nicht im C64Studio und ebenfalls nicht im CMB Prg Studio. Wäre
    vielleicht hier jemand so nett, mir eine kompillierte Version zu posten.
    Das wäre sehr hilfreich und äußerst nett!



    Liebe Grüße!
    ThomBraxton

    Hallo Leute,


    ich bekomme den Treiber auf keinem System kompilliert. Es funktioniert nicht im C64Studio und ebenfalls nicht im CMB Prg Studio. Wäre vielleicht hier jemand so nett, mir eine kompillierte Version zu posten. Das wäre sehr hilfreich und äußerst nett!


    Liebe Grüße!
    ThomBraxton

    Hallo Mac Bacon,


    könntest Du hier im Forum vielleicht für Deinen DuoDriver einen aktuellen Link posten?
    Kann man die Maus auch im Textmodus benutzen oder ist der Treiber nur im Grafikmodus lauffähig?
    Wie funktioniert die Zusammenarbeit des Treibers in Basic auf VICE X128?


    Liebe Grüße!
    ThomBraxton

    Wie oben geschrieben soll es ein Programm für den C128 werden. Das lässt sich auch bestimmt leicht auf den C64 übertragen. Aber ich möchte mal für meine alte Möhre etwas Spielbares schaffen. Zumal auf einer 1571 der Diskzugriff von Hause aus schneller wäre. Deshalb von mir die Frage, wie ich viele Bilder, die selten Full-Screen-Format haben, sondern meist mittels Split-Screen (Oben Grafik unten Text) dargestellt werden sollen, irgendwie in eine Sammel-Datei unterbringen kann.
    Wenn ich das also richtig verstehe, sollte ich eine Datei schaffen, deren Datensatzgröße begrenzen und die Bildinformationen dann häppchenweise dort ablegen. Somit könnte man dann berechnen, wo das eine Bild endet und das nächste beginnt. Aber kann ich denn in dieser Datei dann direkt auf den Datensatz zugreifen, wie in einer relationalen Datenbank oder muss ich mich sequentiell durch die Datei hangeln?



    Und dann wäre da noch die Sache mit dem Komprimieren! Davon habe ich noch gar keinen Plan, wie das mit dem Packen und Entpacken funktionieren soll.



    Liebe Grüße!
    ThomBraxton