Manchmal findet man auf seinen Disketten alte Schätzchen, die man sich gerne noch einmal anschauen würde. Dann wäre es wünschenswert (um umfangreiche Editiervorgänge zu vermeiden), dass TSB auf ältere Zustände zurückgestellt wird. Ein solcher Fall ist die Anpassung der AT-Funktion zum Positionieren von Text ab v2.40.131, bei der die Argumente der Funktion AT umgedreht wurden.
TSB-Befehl | Fehlersymptom | Abhilfe |
PRINT AT() | Die Positionierung der Screen-Ausgaben sieht chaotisch aus oder führt zu Fehlermeldungen und Abstürzen. | Nach Ausführung dieser Routine (und dem nachfolgenden SYS) kann man auf einem aktuellen TSB ältere TSB- oder gar ganz alte SB-Programme ohne weitere AT-Anpassungen laufen lassen): Routine für aktuelles TSB ab v2.40.428: 18500 proc .toggle-at 18510 mp$=dup(".",21):mp=0*len(mp$)+d!peek(71):mp=d!peek(mp+1) 18520 reset18530:fori=0to20:readx$:pokemp+i,nrm(x$):next:reset0 18530 data ad,86,94,ae,7d,94,8d,7d,94,8e,86,94,ad,8b,94,49 18535 data 02,8d,8b,94,60 18540 end procDanach mit SYS mp die alte Verhaltensweise von AT ein- und wieder ausschalten. Der aktuelle Zustand von AT lässt sich mit peek($947d) ermitteln. Ist der Wert dort 25, muss SYS mp ausgeführt werden, ist er dagegen 40, ist das nicht erforderlich. Am Ende eines Programms erfolgt die umgekehrte Abfrage (bei 40: SYS mp), um alles wieder auf den Sollzustand zurückzuversetzen. ----- Verwendet man ein TSB älter als v2.40.428 (bis zu v2.40.131) müssen die DATA-Zeilen so lauten:18530 data ad,79,94,ae,70,94,8d,70,94,8e,79,94,ad,7e,94,49 18535 data 02,8d,7e,94,60Hier lautet die Überprüfungsadresse $9470. |
FIND" | Literale Strings werden nicht mehr gefunden. | In zwei Zeilen (zeigt die Positionen aller Stringkonstanten im aktuellen Programm, $f2 macht den Patch rückgängig):poke $c8e9,0: FIND" poke $c8e9,$f2 |