SCRDUMP/XALTHELP GEMDUMP geschrieben von Th. Morus Walter (c) 1994 by Never Ready Software, Morus Walter Dieses Programm ist FREEWARE! Th. Morus Walter Schulstr. 22 93080 Pentling e-mail: morus.walter@rphs1.physik.uni-regensburg.de - - - - - Die Verwendung des Programmes geschieht auf eigene Gefahr. Der Autor gibt keine Garantie fr irgendwas! - - - - - SCRDUMP.ACC/XALTHELP.PRG sowie GEMDUMP.ACC sind zwei Varianten eines xIMG-Screendump-Programmes. Beide Varianten erlauben die Speicherung des (gesammten) Bildschirms in eine (x)Image-Datei via ALT/HELP sowie die Speicherung des Bildschirms, eines Fensters oder eines - mittels Maus festzulegenden - Rechtecks. Die TOS-Hardcopy l„žt sich (ab Tos1.4) mittels CTRL/ALT/HELP weiterhin aufrufen. Stellt sich natrlich die Frage worin der Unterschied zwischen den Varianten liegt: XALTHELP.PRG ist ein residentes Programm (das man im allgemeinen im Auto-Ordner starten wird), das das ALT/HELP-Flag abfragt und gegebenenfalls den Screendump durchfhrt. SCRDUMP.ACC dient lediglich zum Einstellen der Parameter von XALTHELP.PRG und zum Aufruf fr das Speichern von Fensterinhalten oder Rechtecken. Diese Vorgehensweise hat zwar den Vorteil, daž der ALT/HELP-Dump jederzeit aufgerufen werden kann, verwendet aber GEMDOS-Routinen im Interupt (was nicht erlaubt ist, meistens aber doch gut geht). ACHTUNG! 'meistens aber doch gut geht' ist natrlich keinerlei Garantie. Ich habe ein „hnliches Screendump-Programm lange Zeit verwendet und bin dabei nie abgestrzt. Allerdings sollte man darauf verzichten Screendumps ausgerechnet dann aufzurufen, wenn man davon ausgehen kann, daž das GEMDOS gerade am werkeln ist, also insbesondere nicht w„hrend Dateioperationen. Beim Testen mit XALTHELP ist es mir problemlos gelungen unter solchen Umst„nden Abstrze zu verursachen. (z.B.: Aufruf von wc *.* in der Mupfel (Gemini); drckt man dann ALT/HELP so ist ein Absturz ziemlich sicher.) Der Bildschirm wird in XALTHELP mittels LineA-Variablen und Xbios-Funktionen angesprochen; dies ist natrlich nicht GEM-konform und l„uft deshalb nur in original ST (TT?,Falcon?) und verwandten Bildschirmmodi (z.B. Overscan) nicht aber mit Graphikkarten. GEMDUMP.ACC ist demgegenber ein 99% GEM-konformes und legales Programm. (zum letzten Prozent s.u.). Intern wird in der VBL-Routine zum Abfragen des ALT/HELP-Flags lediglich ein Flag gesetzt, das Accessory fragt dieses Flag regelm„žig (Timer-Event) ab und fhrt gegebenenfalls den Screendump durch. Nachteil dieses Verfahrens ist, daž man auf die Funktion des Timerevents angewiesen ist. Unter Single-Tasking-Tos ist dies beispielsweise immer dann NICHT der Fall, wenn Programme l„ngere Berechnungen durchfhren ohne den GEM-Evntmanager aufzurufen, wenn man TOS-Programme laufen l„žt... Kurz, immer dann, wenn kooperatives Multitasking (MultiGEM, Mag!X 1.x) versagt, dann versagt auch GEMDUMP. Unter Mag!X 2.0 (pr„emtives Multitasking) (und vermutlich auf MultiTOS) sieht es besser aus. Hier sind (abgesehen vom Single-Start eines Programmes unter Mag!X, wo ja Accessories abgeschaltet werden) kaum Einschr„nkungen zu erwarten. Wird der Screendump mittels ALT/HELP ausgel”st und das Accessory kann nicht innerhalb einer Sekunde den Dump durchfhren, so wird der ALT/HELP-Aufruf ignoriert. Beim Aufruf via ALT/HELP - und das ist das letzte Prozent nichtkonformit„t - wird der Bildschirmzugriff nicht mittels wind_update(BEG_UPDATE)/wind_update(END_UPDATE) angemeldet (wie es sein sollte), weil nur so ein aktueller Screendump auch dann m”glich ist, wenn ein anderes Programm den Bildschirmzugriff belegt. Zusammenfassung: wenn Sie ein SingleTaskingTos, einen ST in Original (oder Overscan)-Aufl”sung und wom”glich wenig Speicher haben, so sollten Sie die XALTHELP/SCRDUMP Variante zumindest einmal ausprobieren. ES SEI HIER ABER NOCHMALS AUSDRUECKLICH DARAUF HINGEWIESEN, DASS ES IN SELTENEN FAELLEN STATT EINES SCREENDUMPS AUCH BOMBEN GEBEN KANN. Ansonsten ist GEMDUMP wohl vorzuziehen. Bedienung: ========== Die beiden Accessories k”nnen genauso auch als Programm verwendet werden (einfach umbenennen). Die Dialoge sind - bis auf eine zus„tzliche Option in GEMDUMP - gleich. Im Dialog kann zun„chst der Pfad und (Rumpf-)Name der Bilder festgelegt werden. Dieser wird beim Speichern um eine Nummer und die Endung '.IMG' erg„nzt. Mit dem Button links ber dem Namensfeld kann man den Dateiselector zur Einstellung des Pfades aufrufen. Mit dem Button 'Bildnummer zurcksetzen' kann an erreichen, daž beim šbernehmen der Einstellung die Nummer des n„chsten Bildes wieder auf 0 gesetzt wird, mit dem Button 'X-Imgage schreiben' kann man w„hlen ob eine einfache GEM-Image-Datei ohne Farben (Button nicht selektiert) oder eine XImage-Datei mit Farben geschrieben werden soll. In GEMDUMP kann man mit einem weiteren Button einstellen, ob die Abfrage des ALT/HELP-Flags eingeschaltet sein soll (ist sie dies nicht, kann man natrlich keinen Screendump via ALT/HELP aufrufen; dafr spart man sich die zehnmal in der Sekunde auftretenden Timerevents). Zum Verlassen des Dialoges gibt es sechs Button: 'Abbruch' verl„žt den Dialog, ohne irgendwelche Aktionen. In allen anderen F„llen werden die eingestellten Optionen eingelesen. Bei 'Setzen' ist dies die einzige Aktivit„t, bei 'Sichern' werden die Daten in die Programmdatei, die man mittels Dateiselector ausw„hlt, geschrieben (XALTHELP bzw. GEMDUMP). 'Fenster', 'Rahmen' und 'alles' dienen dem Ausl”sen der Hardcopy. Bei Fenster kann man anschliežend ein Fenster anklicken und es wird nur dessen Inhalt gespeichert. Mausklick rechts bricht die Funktion ab. Klickt man auf den Hintergrund, so wird der ganze Bildschirm ohne Menleiste gespeichert. Ist ein Fenster teilweise berdeckt, so werden die šberdeckungen natrlich mit abgespeichert. Bei 'Rahmen' kann man mittels 'Gummiband' ein Rechteck aufziehen, dessen Inhalt dann abgespeichert wird, bei 'alles' wird der ganze Bildschirm (wie beim ALT/HELP-Aufruf) abgespeichert. Tritt beim Speichern ein Fehler auf (zuwenig Speicher frei, Dateifehler...), so wird dieser natrlich nur dann gemeldet, wenn der Aufruf vom Accessory aus erfolgte. Beim ALT/HELP-Aufruf wird das Speichern einfach komentarlos abgebrochen. Anmerkungen zur Speicherung der Farben: bei GEMDUMP werden die Farben wie es sich geh”rt mittels GEM ermittelt, bei XALTHELP findet das XBIOS Verwendung. Im letzeren Fall werden die pro Farbe nur die unteren 3 Bit (ST-Modus, fr STE wird ein Bit verschlampt) verwendet. Anmerkung zu GEMDUMP: prinzipbedingt ben”tigt GEMDUMP zum Speichern eines Bildschirms (oder eines Teils eine Bildschirm) die doppelte Menge an Speicher, wie fr den Bildschirm (oder den Teil) n”tig ist. SCRDUMP begngt sich demgegenber bei Bildschirmausschnitten mit der einfachen Gr”že des Blockes, beim Speichern der ganzen Seite in berhaupt kein Speicher n”tig. Anmerkung zum Installieren: das Programm kann natrlich nur dann funktionieren, wenn kein anderes Programm das ALT/HELP-Flag ausliest und l”scht. Beide Programm sind nicht in der Lage, die VBL-Queue zu vergr”žern, wenn diese bereits voll ist (sollte aber gew”hnlich nicht passieren). Das gleiche gilt bie XALTHELP fr den Cookie-Eintrag: ist der Cookie-Jar voll, so kann er von XALTHELP nicht erweitert werden (this is somehow a bug). P.S.: installiert wird das Programm natrlich dadurch, daž man XALTHELP.PRG in den AutoOrdner (Position ziemlich egal, bei niedriegen TOS-Versionen muž vorher ein anderes Programm einen Cookie-Jar anlegen) und SCRDUMP.ACC ins Wurzelverzeichnis des Bootlaufwerkes (oder von wo auch immer man die ACCs bootet) kopiert, fr GEMDUMP indem man GEMDUMP.ACC zu den ACCs kopiert. Patchm”glichkeit bei GEMDUMP: die H„ufigkeit der Timerevents und die Zeit, die zwischen ALT/HELP-Aufruf und Speicherung vergehen darf kann im Programm gepatched werden. Dazu muž man mit einem Diskettenmonitor oder einem anderen geeigneten Mittel in der Programmdatei die (2 Byte) Integerwerte in (Byte) Position 30 und 32 „ndern (nach diesen beiden Integern steht ein Magic mit dem Inhalt 'TMMW'). Der erste Wert ist die Zeit fr den Timerevent in Millisekunden (eingestellt ist 100). Der zweite Wert gibt die erlaubte Zeit in 200 Hz Z„hler Ticks an, eingestellt ist 200, also ein Sekunde. noch ein Hinweis: NIE WIEDER FASCHISMUS! NIE WIEDER KRIEG! WIDER DIE NEUE (UND ALTE) RECHTE!