Beiträge von Mike im Thema „VIC20 Demo - schlonkels Fragethread :)“

    Also, zum Abfragen der Sense-Leitung hab ich mal in einem Programm die Routine im KERNAL ab $F8AB verwendet:

    Code
    .F8AB  A9 40     LDA #$40
    .F8AD  2C 1F 91  BIT $911F
    .F8B0  D0 03     BNE $F8B5
    .F8B2  2C 1F 91  BIT $911F
    .F8B5  18        CLC
    .F8B6  60        RTS


    Falls die Sense-Leitung betätigt ist, kehrt die Routine mit gesetztem Z-Flag zurück. Der Code sieht geringfügig anders aus, ja. Auf jeden Fall funktioniert das aber selbst in VICE 1.16. :)

    Wenn selbst eine genaue Kopie dieses Code-Stücks im RAM *nicht* in einer aktuellen Version von VICE funktionieren sollte (müßte ich auch erstmal noch ausprobieren), wäre dies ein Hinweis darauf, daß wir es mit einem KERNAL-Trap von VICE zu tun haben. ;)

    Edit: Hmm, ja - sieht wohl tatsächlich so aus. In 'tape.c' vom VICE Source steht:

    Zitat

    /* Tape traps. These functions implement the standard kernal replacements
    for the tape functions. Every emulator can either use these traps, or
    install its own ones, by passing an appropriate `trap_list' to
    `tape_init()'. */


    ... tja.

    Hier mal meine Variante:


    Bin nicht so der Fan von selbstmodifizierendem Code, wenn's nicht unbedingt nötig ist. ;)

    Zitat von schlonkel

    Aber Speicher ist tatsächlich Mangelware. Besonders wenn der VC20 durch gänderten Bildschirm-RAM sowie -Charset jetzt noch 1.6kB oder so frei hat. Aber ich hab schon eine Speichererweiterung bereitgelegt :P


    Wollt schon schreiben, daß Commodore damals™ gerüchteweise schon Speichererweiterungen gefertigt und verkauft hat - aber Du hast ja glücklicherweise die Kurve gekriegt.

    Kommt ja auch immer drauf an, wie oft der Code ausgeführt werden soll. Wenn er nur einmal gebraucht wird, braucht er natürlich nicht schnell zu sein.

    Bin aber immer gerne zu Diskussionen rund um den VC bereit. ;)

    Es ist z.B. problemlos möglich, den Zeichensatz ab 7168 zu haben und den Bildschirmspeicher bei 6656. Dann hast Du immer noch 2.5 KB frei, 128 frei definierbare Zeichen und die original nicht-inversen Zeichen mit dem bekannten invers-PRINT/POKE-Trick. :)