Magic Disk 64

home to index to text: MD9301-UTILITIES-IRQ-TOOL.txt

Das IRQ-Tool ist eine kleine Hilfe für Basic-Programmierer, die es ermöglicht, den Bildschirm in einen Hires-Grafik und einen normalen Textbildschirm zu splitten.
Die Bedienung ist dabei sehr einfach.
Sie laden das IRQ-Tool lediglich mit LOAD" IRQ-TOOL",8,1 und starten es mit dem Befehl ' SYS 49152,< Zeile>,< Multi>' .
Hierbei steht < Zeile> für die Rasterzeile, ab der der Bildschirm gesplittet werden soll und < Multi> für den Wert, der in Speicherstelle 53270( das Steuerregister für hochauflösende Grafik) stehen soll. Benutzen Sie z. B. den Befehl ' SYS 49152,150,8', so stellt der Bild- schirm bis in Rasterzeile 150 hochauflösende Grafik und ab dort normalen Text dar.
Beim Aufruf werden die beiden Parameter in den Speicherstellen $ CFFE (" Multi") und $ CFFF (" Zeile")( dez.53246 und 53247) abgelegt und von dort 25 Mal in der Sekunde ausgelesen und aktualisiert.
Durch ein paar intelligente POKEs in diese Zwischenspeicher können Sie nun erstaunliche Effekte erzielen. Mit folgendem Basicprogramm kann zum Beispiel eine Grafik fließend über einen Text geschoben werden:

10 SYS 49152,48,8                       
20 FOR I=48 TO 248                      
30 POKE 53247,I                         
40 FOR J=1 TO 20: NEXT J                
50 NEXT I                               

In Zeile 10 wird das IRQ-Tool aktiviert.
Die Schleife in den Zeilen 20 bis 50 schreibt nun in regelmäßigen Abständen einen Zeilenwert in den Zeilenzwischenspeicher. Damit das nicht zu schnell geschieht, wurde eine Verzögerungsschleife in Zeile 40 eingebaut. Wenn Sie das Programm nun starten ( natürlich nachdem das IRQ-Tool vorher geladen wurde und die Basiczeiger mit ' NEW' neu initialisiert wurden), so rollt die Grafikseite wie ein Rollo über den momentanen Text.
Eine andere Anwendung bietet sich durch die Ausnutzung der Fähigkeiten von Speicherstelle 53270(" Multi") . Hier können nämlich einige Dinge eingestellt werden, die den Anzeigemodus der Grafik beeinflussen. Hier eine Belegung der Bits dieses Registers:

Bit Bedeutung                           
 0  Verschieben des                     
 1  Bildschirms in                      
 2  X-Richtung                          
 3  0=38-Zeichen-Modus / 1=40 Zeichen-  
    Modus                               
 4  0=HiRes-Modus / 1=Multicolor-Modus  
 5  unbenutzt                           
 6  unbenutzt                           
 7  unbenutzt                           

So können Sie z. B. den Grafikbildschirm zyklisch hinund herwackeln lassen, oder aber einen einzeiligen Scrolltext von Basic aus programmieren. Hierzu müssen Sie lediglich den 38 Zeichen-Modus einschalten und dann immer die entsprechenden Werte in den Bits 0-2 eintragen.
Diese werden als 3- Bit-Zahl gewertet, die die Verschiebung des Bildschirms um 0-7 Pixel nach links angibt. Als Beispiel hier ein Programm, daß den Grafikbildschirm wackeln lässt:

 10 SYS49152,150,16                     
 20 FOR I=0 TO 7                        
 30 POKE 53246,i+16                     
 40 FOR J=1 TO 20:NEXT                  
 50 NEXT i                              
 60 FOR I=7 TO 0 STEP -1                
 70 POKE 53246,i+16                     
 80 FOR J=1 TO 20:NEXT                  
 90 NEXT i                              
100 GOTO 20                             

In Zeile 10 wird wieder das IRQ-Tool initialisiert. In der Schleife in den Zeilen 20-50 wird nun in regelmäßigen Abständen der Inhalt der Variablen ' I' plus dem Wert 16( für Hires an,38- Zeichen-Modus), in die Speicherstelle 53246 geschrieben, die als Zwischenspeicher für den Parameter " Multi" dient. In den Zeilen 60-90 wird das ganze dann rückwärts wiederholt(' I' wird von 7 auf 0 heruntergezählt) . In Zeile 100 springt das Programm wieder zum Anfang und so fort. In den Zeilen 40 und 80 sind wieder Verzögerungsschleifen eingebaut, damit die Werte nicht zu schnell geschrieben werden.
Am Besten, Sie probieren einfach ein wenig mit dem IRQ-Tool herum. Sie werden erstaunt sein, was für Möglichkeiten dieses winzige Assembler-Programm dem Basic-Programmierer bietet.

                                    (ub)

Valid HTML 4.0 Transitional Valid CSS!