Hello, Guest the thread was called235 times and contains 5 replays

last post from Mike at the

VC20: Wie kann man die Repeatgeschwindigkeit für Tastenwiederholung ändern

  • Hallo,


    beim VC20 kann man durch das Setzen des Bit 7 im Register $028a die Tastenwiederholung für alle Tasten aktivieren.

    Die Register $028b & $028c beinhalten die Werte für die Repeatgeschwindigkeit. Die Werte lassen sich nicht so einfach ändern, da das vom Kernel gesteuert bzw. übersteuert wird.


    Ist es trotzdem möglich die Repeatgeschwindigkeit zu ändern / zu verkürzen?


    VG

  • habe es vorerst über eine Interrupt gelöst


  • Die Methode von Parser, einfach das Timer-Intervall des Tastatur-Interrupts zu ändern, hat mehrere Nachteile:


    - Die TI$-Uhr geht falsch (o.k. - sie geht ohnehin nicht besonders genau, aber so auf jeden Fall falsch).

    - wird derartig eine höhere Wiederholrate eingestellt, erhöht das die Interrupt-"Last" des Hauptprogramms. Es läuft dann langsamer.

    - Es gibt zwei Zeiten: eine, bis die Wiederholungen beginnen, und dann die Wiederholrate selbst. Die lassen sich so nicht getrennt ändern.

    - (eher nachrangig): für NTSC wären andere Werte nötig, um den gleichen Effekt zu erzielen.


    aitsch, mit einer eigenen Routine warst Du eigentlich schon auf dem richtigen Weg. Korrekterweise ersetzt man die Routine im KERNAL, die die Tastaturmatrix nach PETSCII umwandelt. Sie kümmert sich auch um die Tastenwiederholungen und ist über den Vektor in ($028F) austauschbar. Das hab' ich (aus einem anderen Grund) von ein paar Jahren mal gemacht, und dabei die originale Routine aus dem ROM extrahiert und um ein paar NOPs erleichtert, hier der relevante Zwischenschritt:


    Die beiden kommentierten Befehle kannst Du nun an deine Erfordernisse anpassen. ^^


    Die Routine besteht im ROM aus zwei Teilen, das habe ich hier noch so belassen, sie aber suggestiv in umgekehrter Reihenfolge angeordnet - der Befehl JMP LAB_EB74 kann ersatzlos gestrichen werden.


    Viele Grüße,


    Michael