Topic : TOS - das Betriebssystem Author : Version : tos.hyp (5. März 2013) Subject : Programmieren/Atari Nodes : 3001 Index Size : 93602 HCP-Version : 5 Compiled on : Atari @charset : atarist @lang : @default : Titel @help : @options : +g -i -s +x +zz -t4 @width : 70 View Ref-File7.10.30 v_opnwk TOS Name: »Open Workstation« - initialisiert einen Gerätetreiber für ein bestimmtes Ein/Ausgabegerät VDI-Nummer: 1 Deklaration: void v_opnwk ( int16_t *work_in, int16_t *handle, int16_t *work_out ); Beschreibung: Die Funktion lädt einen Gerätetreiber. Dazu muß sich jedoch das GDOS im Speicher befinden und der Gerätetreiber muß im ASSIGN.SYS File aufgezählt sein. Falls alles geklappt hat, erhält man in handle eine positive Gerätekennung und Null im Fehlerfall. Parameter Bedeutung work_in Zeiger auf ein Integerfeld mit den genaueren Spezifikationen des zu ladenden Gerätetreibers work_in[0] Nummer des Gerätetreibers wie im ASSIGN.SYS File angegeben. Für den Bildschirm gilt: 1 = aktuelle Auflösung x = 2 + Getrez() work_in[1] Linientyp work_in[2] Linienfarbe work_in[3] Markertyp work_in[4] Markerfarbe work_in[5] Zeichensatznummer work_in[6] Textfarbe work_in[7] Fülltyp work_in[8] Füllmuster-Index work_in[9] Füllmusterfarbe work_in[10] welche Koordinaten sollen benutzt werden: 0 = NDC-Koordinaten 2 = RC-Koordinaten work_in[11] Seitenformat 0 = Voreinstellung benutzen 1 = DIN A3 2 = DIN A4 3 = DIN A5 4 = DIN B5 16 = Letter Size 17 = Half Size 18 = Legal Size 19 = Double Size 20 = Broad Sheet Size work_in[12] + work_in[13] Zeiger auf einen GEMDOS-Dateinamen in C-Konvention (null-terminiert), oder NULL work_in[14] reserviert, sollte 0 sein work_in[15] reserviert, sollte 0 sein work_out Zeiger auf ein Integerfeld, das genauere Informationen über den geladenen Gerätetreiber enthält work_out[0] Anzahl der maximal ansprechbaren Rastereinheiten in der Horizontalen work_out[1] Anzahl der maximal ansprechbaren Rastereinheiten in der Vertikalen work_out[2] Skalierungsflag: 0 = Gerät kann exakt skalieren 1 = Gerät kann nicht exakt skalieren work_out[3] Breite einer Rastereinheit in Mikrometern work_out[4] Höhe einer Rastereinheit in Mikrometern work_out[5] Anzahl der Zeichensatzhöhen oder Null, falls die Höhe kontinuierlich verändert werden kann work_out[6] Anzahl der Linientypen work_out[7] Anzahl der Linienbreiten oder Null, falls die Strichstärke kontinuierlich verändert werden kann work_out[8] Anzahl der Markertypen work_out[9] Anzahl der Markergrößen oder Null, falls die Größe kontinuierlich verändert werden kann work_out[10] Anzahl der Zeichensätze work_out[11] Anzahl der Füllmuster work_out[12] Anzahl der Schraffurarten work_out[13] Anzahl der vordefinierten Farben work_out[14] Anzahl der verfügbaren Grafikgrundfunktionen (GENERAL DRAWING PRIMITIV, GDP). Besitzt den Wert 11, wenn 'Escapement Text' (erst ab PC- GEM/3) verfügbar ist. work_out[15] Liste der auf dem Gerät verfügbaren GDP's. Sind es weniger als zehn wird die Liste durch -1 beendet. Das VDI unterstützt folgende GDP's: 1 = v_bar 2 = v_arc 3 = v_pieslice 4 = v_circle 5 = v_ellipse 6 = v_ellarc 7 = v_ellpie 8 = v_rbox 9 = v_rfbox 10 = v_justified 11 = v_etext work_out[24] Besitzt den Wert 11, wenn 'Escapement Text' verfügbar ist, und ansonsten den Wert 10. (ab PC-GEM/3). work_out[25] Liste aller Attribute der GDP's: 0 = Linie 1 = Marker 2 = Text 3 = Füllbereich 4 = kein Attribut work_out[34] work_out[35] das Gerät ist farbtüchtig (1) oder nicht (0) work_out[36] das Gerät kann Text rotieren (1) oder nicht (0) work_out[37] das Gerät kann eine Fülloperation ausführen (1) oder nicht (0) work_out[38] das Gerät unterstützt CELL ARRAY (1) oder nicht (0) work_out[39] Anzahl der verfügbaren Farben oder 0 = mehr als 32767 Farben verfügbar 2 = monochrom work_out[40] Grafik-Cursor-Kontrolle 0 = keine 1 = nur die Tastatur 2 = Tastatur und andere Geräte work_out[41] Eingabegerät für variierende Eingaben 0 = keine 1 = nur die Tastatur 2 = anderes Gerät work_out[42] Auswahltasten 0 = keine 1 = Funktionstasten auf der Tastatur 2 = zusätzliches Tastenfeld work_out[43] alphanumerische Eingabe 0 = keine 1 = Tastatur work_out[44] Gerätetyp: -1 = Ausgabegerät kann im Querformat ausgeben (ab PC-GEM/3) 0 = reines Ausgabegerät 1 = reines Eingabegerät 2 = Ein/Ausgabegerät 3 = reserviert 4 = Metafile Ausgabe work_out[45] kleinste Buchstabenbreite work_out[46] kleinste Buchstabenhöhe work_out[47] größte Buchstabenbreite work_out[48] größte Buchstabenhöhe work_out[49] kleinste darstellbare Linienbreite work_out[50] immer Null work_out[51] größte Linienbreite work_out[52] immer Null work_out[53] kleinste darstellbare Markerbreite work_out[54] kleinste darstellbare Markerhöhe work_out[55] größte Markerbreite work_out[56] größte Markerhöhe Hinweis: Die Komponenten work_in[11] bis work_in[15] sind nur unter NVDI sinnvoll, und erlauben es, das Seitenformat für Drucker- und Bit-Image Treiber, sowie den Ausgabekanal zu setzen. Bei einem Metafile-Treiber wirkt sich die Einstellung des Seitenformates nicht aus; hier wird lediglich der Dateiname übernommen. Um zu überprüfen, ob das Seiten- bzw. Papierformat tatsächlich eingestellt werden konnte, sollte auf die Funktion vq_extnd zurückgegriffen werden. Die in den Elementen work_out[0,1] zurückgelieferten Werte beschreiben den tatsächlich bedruckbaren Bereich; die nicht bedruckbaren Bereiche können per vq_extnd ermittelt werden. Die hier angegebene Belegung der work_in und work_out Arrays ist übrigens nicht mehr vollständig kompatibel zum PC-GEM, da ab GEM/3 teilweise erhebliche Änderungen bzw. Erweiterungen vorgenommen wurden, die auf dem Atari nicht (oder in anderer Weise) übernommen wurden. Achtung: Bei Druckertreibern, und speziell bei den Atari Seitendruckern gibt es einige Besonderheiten zu beachten. Ergebnis: Die Funktion liefert kein direktes Funktionsergebnis. Verfügbar: Available only with some form of GDOS. Gruppe: Kontrollfunktionen Querverweis: Binding GDOS v_clswk v_opnvwk