von Frederik Holst Ich hoffe, daß Ihr alle gut ins neue Jahr geschliddert seid und Euren Atari trotz des eventuell neuen PCs behalten habt. Auch dieses Jahr wird es wieder die Peeks und Pokes Ecke geben, die Euch den totalen Ein- und Durchblick in unseren "Kleinen" geben wird. 780, 781 30c, $30d TIMER1 Hier steht der Timer für die Baud-Rate der Peripherie. 782 $30e ADDCOR Korrektions-Flag für die Baud-Raten Berechnung in Zusammenhang mit den Timerregistern. 783 $30f CASFLG Ist gesetzt, wenn man sich im Cassettenmodus befindet wenn man sich im Standard SIO Modus befindet wird hier eine null gelesen. 784, 785 $310, $311 TIMER2 Intervall-Timer 2. Die Timer werden benutzt, um die Baud-Rate der Peripherie, insbesodere der Cassette zu korrigieren. über eine Tabelle wird mittels der Differenz zwischen den Timern ein Korrekturwert gesucht, der an CBAUDL/H übergeben wird (750, 751). 786, 787 $312, $313 TEMP1 2 Byte großer Zwischenspeicher, das von der SIO benutzt wird, um während den Baudraten-Kalkulationen noch die Berechnung für VCOUNT (54283, $d40b) gemacht werden können. 788 $314 TEMP2 Zeitweiliger Zwischenspeicher. 789 $315 TEMP3 Ebenfalls ein zeitweiliger Zwischenspeicher. 790 $316 SAVIO Wird benutzt, um ankommende Bits hier festzustellen und abzuspeichern. Arbeitet mit 53775, $d20f zusammen. 791 $317 TIMFLG Timeout Flag. Wenn es während einer IO Operation auf null kommen sollte (nach 2 Sekunden), wird die Aktion abgebrochen. 792 $318 STACKP SIO Stackpointer. Zeigt zu dem Byte im Stack, das für die gegenwärtige Operation benutzt wird. 793 $319 TSTAT Zeitweiliger Statusspeicher für Adresse 48. 794-831 $31a-33f HATABS Hier befindet sich die Tabelle der Gerätetreiber. Jedem Gerät ist ein dementsprechender Gerätetreiber zugeordnet. Die maximale Anzahl der Treiber beträgt 38. Jede Treiberkennung besteht aus drei Byte. Das erste enthält die Kennung (D, R, S, C, E, K, P ...) im ASCII Code. Darauf folgt die Startadresse im Lo/Hi Format des Treibers. Ein Treiber besteht aus folgenden Routinen: OPEN CLOSE GET BYTE PUT BYTE GET STATUS SPECIAL 832-847 $340-$34f ICOB0 IO Control Block null. Wird normalerweise für den Handler E: benutzt. Eine interessante Adresse ist 842. Hiermit kann man ein RETURN auf dem Bildschirm erzeugen. Ein Beispiel: 10 PRINT: PRINT: PRINT 70: PRINT 80: PRINT 90 20 PRINT "CONT" 30 POSITION 2,0 40 POKE 842,13 : STOP 50 POKE 842,12 60 REM Die nächsten Zeilen werden gelöscht. 70 PRINT "Gelöscht !" 80 PRINT "Gelöscht !" 90 PRINT "Gelöscht !" 848-863 $350-35f IOCB1 IO Control Block eins. 864-879 $360-36f IOCB2 IO Control Block zwei. 880-895 $370-$37f IOCB3 IO Control Block drei. 896-911 $380-38f IOCB4 IO Control Block vier. 912-927 $390-39f IOCB5 IO Control Block fünf. Wieder einmal ist Schluß, doch die IO Operationen sind noch nicht am Ende.