|
|
|
|
|
Kapitel 8 |
Einleitung
Die Befehle im einzelnen
Funktionen zur Umwandlung von Fließkommazahlen
in Strings und umgekehrt
Die ExtensionLibrary erweitert den Befehlssatz des Omikron Basics um solche Anweisungen,
wie sie für die Erstellung von Programmen für das MacOS notwendig oder
zumindest sehr nützlich, im Standard-Befehlssatz aber nicht enthalten sind.
Um die ExtensionLibrary zu benutzen, müssen Sie diese im Editor mit dem Menüpunkt
'LIBRARY zuladen' in Ihr Programm einbinden. Vergessen Sie nicht, am Anfang Ihres
Programms ein 'Extension_Init' und am Ende ein 'Extension_Exit' aufzurufen.
Hinweis: Alle Funktionen ohne Postfix sind von Typ Long-Integer
(%L). Wenn Sie den Editor auf einen anderen Datentyp eingestellt haben, müssen
Sie das Postfix explizit angeben.
Extension_Init
Vor der Benutzung der anderen Befehle muß diese Prozedur einmal aufgerufen
werden.
Extension_Exit
Rufen Sie diese Prozedur auf, wenn Sie keine Funktionen der Library mehr benutzen
möchten.
Error_Messages F
Wenn in Ihrem Programm zur Laufzeit ein Fehler auftritt (z.B. wenn Sie versuchen,
eine Datei zu öffnen, die gar nicht existiert), dann wird normalerweise vom
Omikron Basic eine Fehlermeldung in einer Alertbox ausgegeben. Dieses Verhalten ist
während der Programmentwicklungszeit sicherlich sehr nützlich, wirkt bei
einem fertigen Programm aber eher störend. Darum können Sie mit dieser
Prozedur die Fehlermeldungen abschalten.
F=0 : Fehlermeldungen aus, sonst Fehlermeldungen ein.
Wenn allerdings ein fataler Fehler auftritt (z.B. zu wenig BASIC-Speicher vorhanden), wodurch eine Programmfortsetzung unmöglich wird, dann gibt Omikron Basic in jedem Fall eine Meldung aus und beendet das Programm.
Set_Help(Tc)
Diese Prozedur definiert, welche Taste für ON HELP GOSUB verwendet werden soll.
Für Tc muß der Tastaturcode eingesetzt werden. Die Voreinstellung ist
$69, was der Funktionstaste 13 entspricht. Eine Übersicht über die Tastaturcodes
finden Sie in "Inside Macintosh, Toolbox Essentials" und im Anhang 'Virtual Key Codes'.
Set_Sleep(S)
Diese Prozedur setzt den Sleep-Parameter, den Omikron Basic bei jedem WaitNextEvent-Aufruf
an das MacOS übergibt (siehe auch 'Die
Omikron Basic Ausgabefenster' und 'Neue
Compilersteuerwörter'). Der Sleep-Parameter bestimmt, wieviel Rechenzeit
anderen Programmen überlassen wird. Der Default-Wert ist 1, eine größere
Zahl verlangsamt Ihr Programm, gibt dafür aber anderen parallel laufenden Programmen
mehr Prozessorzeit.
Set_Tab(T)
Diese Prozedur setzt den Tabulator, der für PRINT und LPRINT benutzt wird. Die
Voreinstellung ist 8.
Fill_Input_Buffer(F$,C)
Der INPUT-Buffer wird mit dem String F$ geladen, der Cursor wird an die Position
C ab INPUT-Beginn gesetzt. Durch diesen Befehl ist es möglich, bei INPUT-Anweisungen
schon einen Eingabewert vorzugeben, der dann gegebenenfalls nur noch mit [Return]
bestätigt werden muß. Da der INPUT-Buffer auch noch für andere Zwecke
benutzt wird, sollte diese Prozedur immer unmittelbar vor dem eigentlichen INPUT-Befehl
aufgerufen werden.
FN Get_Created_Dirid
Wenn Sie mit MKDIR eine neue Directory erzeugen, so können Sie die Identifikationsnummer
dieser Direktory erhalten, indem Sie gleich danach diese Funktion aufrufen.
Get_Def_Dir(R Vrefnum%,R
Dirid,R Volname$,R Errnum)
Diese Prozedur liefert die Volume-Referenznummer, die Direktory-Identifikationsnummer
und den Volume-Namen des voreingestellten Pfades zurück. Errnum enhält
gegebenenfalls eine Fehlernummer.
Get_Cur_Dir(R Vrefnum,R Dirid)
Diese Prozedur liefert die Volume-Referenznummer und die Directory-Identifikationsnummer
des aktuellen Pfades zurück. Wenn Sie eine Fileselectbox öffnen, wird gerade
der Inhalt dieses Ordners in der Fileselectbox angezeigt.
Get_System_Folder(Type,R Vrefnum,R Dirid,R Os_Err)
Diese Prozedur dient dazu, die Volume-Referenznummer und die Directory-Identifikationsnummer
des Systemordners und der Unterordner im Systemordner zu ermitteln.
In Type muß der Ordnertyp übergeben werden. Folgende Angaben sind möglich:
Type = CVIL("amnu") : Apple Menu Items
Type = CVIL("ctrl") : Control Panels
Type = CVIL("Desk") : Desktop Folders
Type = CVIL("extn") : Extensions
Type = CVIL("font") : Fonts Folder
Type = CVIL("pref") : Preferences Folder
Type = CVIL("prnt") : PrintMonitor Documents
Type = CVIL("strt") : Startup Items
Type = CVIL("macs") : System Folder
Type = CVIL("temp") : Temporary Items
Type = CVIL("trsh") : Single-User Trash
Type = CVIL("empt") : Shared Trash on Net
Os_Err kann nach der Rückkehr folgende Werte haben:
Os_Err=0 : Kein Fehler.
Os_Err=-43 : Der angegebene Typ wurde nicht gefunden.
Os_Err=-48 : Statt eines Ordner wurde eine Datei gefunden.
FN Get_Vrefnum(Fsspec$)
Diese Funktion gibt die Volume-Referenznummer zurück, wenn ein FileSpecificationRecord
übergeben wird.
FN Get_Dirid(Fsspec$)
Diese Funktion gibt die Direktory-Identifikationsnummer zurück, wenn ein
FileSpecificationRecord übergeben wird.
FN Get_Filename$(Fsspec$)
Diese Funktion gibt den Filenamen zurück, wenn ein FileSpecificationRecord übergeben
wird.
FN Get_Font_Number(Name$)
Diese Funtion gibt die Nummer eines Fonts zurück, wenn Sie dessen Namen (z.B.
Monaco, Courier, VT100) der Funktion übergeben.
FN Get_Fsspec$(Vrefnum,Dirid,Filename$)
Wenn Sie dieser Funktion eine Volume-Referenznummer, eine Directory-Identifikationsnummer
und einen Dateinamen übergeben, so erhalten Sie einen FileSpecificationRecord
zurück, wie Sie Ihn z.B. für OPEN brauchen. Vrefnum und Dirid können
auch null sein. Dann kann Filename$ entweder einen vollständigen Pfad enthalten
oder einen Teilpfad mit vorangestelltem Doppelpunkt oder nur einen Dateinamen ohne
Doppelpunkt davor, wobei in den beiden letzten Fällen vom aktuellen Pfad ausgegangen
wird. Wenn Sie also nur einen Teilpfad übergeben, müssen sie dies durch
einen vorangestellten Doppelpunkt kennzeichnen.
FN Get_File_Count
Mit dieser Funktion können Sie herausfinden, wieviele Bytes z.B. bei PUT od.
GET tatsächlich gelesen bzw. geschrieben wurden.
FN Get_File_Type(Fsspec$)
Diese Funktion liefert den Filetyp (z.B. "TEXT", "PICT" ...)
des durch Fsspec$ bestimmten Files zurück. Das Ergebnis der Funktion ist eine
Long-Integer-Zahl. Um einen String zu erhalten, müssen Sie noch die BASIC-Funktion
MKIL$ darauf anwenden.
FN Get_File_Creator(Fsspec$)
Diese Funktion liefert den Filecreator (z.B. "OmBa" ...) des durch Fsspec$
bestimmten Files zurück. Das Ergebnis der Funktion ist eine Long-Integer-Zahl.
Um einen String zu erhalten, müssen Sie noch die BASIC-Funktion MKIL$ darauf
anwenden.
FN Get_Finder_Flags(Fsspec$)
Mit dieser Funktion können Sie erfragen, welche Finderflags des durch Fsspec$
definierten Files gesetzt sind. Die meisten Finderflags werden intern verwendet.
Darum sind nachfolgend nur diejenigen Flags aufgeführt, die für den Anwender
interessant sind und auch verändert werden dürfen. Wer etwas über
die Bedeutung der übrigen Flags erfahren möchte, kann in "Inside Macintosh,
Toolbox Essentials" nachlesen.
Bit 14 : Die Datei ist unsichtbar, wird also werder auf dem Desktop noch in der Fileselect-Box
dargestellt.
Bit 13 : Die Datei hat eine "BNDL" Resource. Eine solche Resource brauchen
Sie, um Ihren Dateien bestimmte Icons zuzuweisen.
Bit 12 : Weder das Icon noch der Name können vom Finder aus geändert werden.
Bit 11 : Die Datei ist ein sogenanntes "stationery pad". Eine Beschreibung
dieses Begriffs würde hier zu weit führen. Eine genaue Beschreibung finden
Sie in "Inside Macintosh, Toolbox Essentials".
Bit 10 : Die Datei hat ein "customized icon".
Bit 6 : Die Datei ist ein Programm, das von mehreren Anwendern in einem Netzwerk
gleichzeitig genutzt werden kann.
Hinweis: Die Finderflags kann man auch auf Directories anwenden. Sofern sich
dabei keine sinnvolle Bedeutung ergibt, sollten sie als reserviert betrachtet und
deswegen nicht verändert werden.
Set_File_Type([Fsspec$,]Filetype)
Wenn ein neues File erzeugt wird (z.B. mit OPEN "O"), dann wird die zuvor
mit dieser Prozedur eingestellte Filetyp-Nummer dem File zugewiesen. Set_File_Type(CVIL("TEXT")
bewirkt zum Beispiel, daß alle nachfolgend erzeugten Files vom Typ 'TEXT',
also reine ASCII-Files sind. Im Anhang finden Sie eine Liste der wichtigsten vordefinierten
Filetypen.
In der Syntax mit 2 Parametern kann man in Fsspec$ einen FileSpezificationRecord
übergeben, wodurch dann der Typ des damit bestimmten Files geändert wird.
Eine genaue Beschreibung der zuvor verwendeten Bezeichnungen finden Sie in "InsideMacintosh,
Files".
Set_File_Creator([Fsspec$,]Creator)
Wenn ein neues File erzeugt wird (z.B. mit OPEN "O"), dann wird die zuvor
mit dieser Prozedur eingestellte Creator-Identifikationsnummer dem File zugewiesen.
In der Syntax mit 2 Parametern kann man in Fsspec$ einen FileSpezificationRecord
übergeben, wodurch dann der Creator des damit bestimmten Files geändert
wird.
Set_Finder_Flags(Fsspec$,Flags)
Diese Prozedur erlaubt es Ihnen, die sogenannten Finderflags zu verändern. Dazu
müssen Sie in Fsspec$ einen FileSpecificationRecord übergeben, der das
File, dessen Flags geändert werden sollen, genau bestimmt. Die Bedeutung der
einzelnen Bits ist bei FN Get_Finder_Flags beschrieben.
FN Get_Quick_Draw
Diese Funktion liefert einen Zeiger auf die QuickDrawGlobals. Eine genaue
Beschreibung dieser Struktur finden Sie in "Inside Macintosh, Imaging with QuickDraw".
FN Get_G_World_Ptr
Diese Funktion liefert einen Zeiger auf die Offscreen-Grafics-World, die für
die Pufferung des obersten Omikron Basic Ausgabefensters benutzt wird. Die Struktur
ist in "Inside Macintosh, Imaging with QuickDraw" beschrieben.
FN Get_G_World_Ptr(S)
Diese Funktion liefert einen Zeiger auf die Offscreen-Grafics-World, die
für die Pufferung des mit SCREEN S geöffneten
Omikron Basic Ausgabefensters benutzt wird. Die Struktur ist in "Inside Macintosh,
Imaging with QuickDraw" beschrieben.
FN Get_Window_Ptr
Diese Funktion liefert einen Zeiger auf den Window-Pointer des obersten Omikron Basic
Ausgabefensters. Die Struktur ist in "Inside Macintosh, Imaging with QuickDraw"
beschrieben.
FN Get_Window_Ptr(S)
Diese Funktion liefert einen Zeiger auf den Window-Pointer des mit SCREEN
S geöffneten Omikron Basic Ausgabefensters. Die Struktur ist in "Inside
Macintosh, Imaging with QuickDraw" beschrieben.
Get_Window_Offset(Screen_Nr,R
X_Offset,R Y_Offset)
Wenn Sie mit Omikron Basic Ausgabefenstern arbeiten und direkte Ausgaben in die realen
Fenster machen wollen, müssen Sie wissen, welcher Teil des im Speicher gepufferten
virtuellen Bildschirms gerade im Fenster angezeigt wird. Dies hängt nämlich
von der Position der Fensterschieber ab.
Die Prozedur Get_Window_Offset errechnet aus der Position der Fensterschieber
den Offset, den die linke, obere, innere Ecke des realen Fensters auf dem virtuellen
Bildschirm hat und gibt diese Werte in X_Offset und Y_Offset zurück.
Flush_Window_Buffer(Screen_Nr[,X,Y,W,H])
Ab MacOS X werden die Fensterinhalte aller laufenden Programme vom Betriebssystem
gepuffert. Dies hat zur Folge, dass Ausgaben (z.B durch PRINT oder DRAW Befehle)
nicht sofort sichtbar werden. Ein automatischer Update des Fenster-Puffers erfolgt
erst bei der nächsten EVENT-Abfrage (z.B. durch COMPILER "EVENT").
Mit dem Befehl Flush_Window_Buffer(Screen_Nr[,X,Y,W,H]) kann man nun jederzeit
einen Update des Fenster-Puffers erzwingen und dadurch eine Ausgabe sofort sichtbar
machen. Dabei wird in Screen_Nr die Nummer des OmikronBasic Ausgabefensters
angegeben. Optional kann mit X,Y,W,H noch ein Rechteck bestimmt werden, für
das der Fenster-Puffer upgedatet werden soll. Die führt zu einem erheblichen
Geschwindigkeitsgewinn, wenn der zu aktualisierende Bereich wesentlich kleiner ist
als das Fenster.
X-Note: Diese Prozeduren stehen nur für Carbon-Anwendungen (COMPILER
"Carbon") zur Verfügung. Bei Classic-Anwendungen wird der Aufruf
ignoriert.
Set_Window_Title(T$)
Diese Prozedur setzt den Titel des obersten Omikron Basic Ausgabefensters auf T$.
Get_Indexed_Color(Index,R
Rot,R Grün,R Blau)
Diese Prozedur liefert den Rot-, Grün- und Blauanteil einer Farbe
aus der internen Omikron Basic Farbtabelle zurück, deren Index Sie übergeben.
Rot, Grün und Blau können Werte zwischen 0 und 65535 annehmen.
Set_Indexed_Color(Index,Rot,Grün,Blau)
Diese Prozedur setzt den Rot-, Grün- und Blauanteil einer Farbe in der internen
Omikron Basic Farbtabelle, deren Index Sie übergeben. Rot,Grün und Blau
müssen Werte zwischen 0 und 65535 haben.
Set_Pen_Size(Breite,Höhe)
Diese Prozedur setzt Breite und Höhe des Zeichenstiftes, wie er z.B. für
DRAW oder BOX verwendet wird. Sie entspricht LINE WIDTH, nur daß hier Breite
und Höhe unterschiedliche Werte annehmen können.
Set_Roundings(X,Y)
Diese Prozedur definiert die Rundung der Ecken bei Verwendung von RBOX und PRBOX.
X und Y sind die Halbachsen einer Ellipse, die der Rundung angepaßt ist.
Set_Scroll_Parameter(X,Y)
Diese Prozedur definiert die Anzahl der Pixel, um die der Inhalt der Omikron Basic
Ausgabefenster verschoben werden soll, wenn die Scroll-Pfeile angeklickt werden.
X steht dabei für die horizontale Richtung und Y für die vertikale. Die
Voreinstellung ist 8 Pixel für X und 16 Pixel für Y.
Set_Text_Mode(Modus)
Diese Prozedur setzt den Verknüpfungsmodus wie bei MODE, nur speziell für
TEXT-Befehle.
Set_Text_Size(Size)
Diese Prozedur entspricht dem Befehl TEXT HEIGHT, stellt also die Größe
der mit TEXT-Befehlen ausgegebenen Zeichen ein.
Set_Text_Font(Font_Nr)
Diese Prozedur wählt den Font aus, der für TEXT-Befehle benutzt werden
soll.
Set_Text_Face(Face)
Diese Prozedur entspricht dem Befehl TEXT STYLE, stellt also den Schriftstil der
mit TEXT-Befehlen ausgegebenen Zeichen ein.
Set_Text_Fore_Color(Index)
Diese Prozedur entspricht dem Befehl TEXT COLOR, setzt also die für TEXT-Befehle
verwendete Vordergrund-Farbe auf die dem Index zugeordnete Farbe.
Set_Text_Back_Color(Index)
Diese Prozedur setzt die für TEXT-Befehle verwendete Hintergrund-Farbe auf die
dem Index zugeordnete Farbe.
Set_Print_Mode(Modus)
Diese Prozedur setzt den Verknüpfungsmodus wie bei MODE, nur speziell für
PRINT- und INPUT-Befehle.
Set_Print_Size(Size)
Diese Prozedur stellt die Größe der mit PRINT- und INPUT-Befehlen ausgegebenen
Zeichen ein.
Set_Print_Font(Font_Nr)
Diese Prozedur wählt den Font aus, der für PRINT- und INPUT-Befehle benutzt
werden soll.
Achtung: Der PRINT- und INPUT-Befehl funtionieren nur mit nichtproportionalen Fonts korrekt, also Fonts, bei denen alle Buchstaben gleich breit sind. Von den standardmäßig vorhandenen Fonts trifft das nur auf 'Monaco (Font_Nr=4)' und 'Courier (Font_Nr=22)' zu. Ab System 7.6 ist noch 'VT100' vorhanden.
Set_Print_Face(Face)
Diese Prozedur entspricht in etwa dem Befehl TEXT STYLE. Die Einstellung gilt aber
nur für PRINT- und INPUT-Befehle.
Set_Print_Fore_Color(Index)
Diese Prozedur setzt die für PRINT- und INPUT-Befehle verwendete Vordergrund-Farbe
auf die dem Index zugeordnete Farbe.
Set_Print_Back_Color(Index)
Diese Prozedur setzt die für PRINT- und INPUT-Befehle verwendete
Hintergrund-Farbe auf die dem Index zugeordnete Farbe.
Hinweis: Mit diesem Befehl definieren Sie auch gleichzeitig die Hintergrundfarbe
für Omikron Basic Ausgabefenster.
Set_Lprint_Mode(Modus)
Diese Prozedur setzt den Verknüpfungsmodus wie bei MODE, nur speziell für
LPRINT-Befehle.
Set_Lprint_Size(Size)
Diese Prozedur stellt die Größe der mit LPRINT-Befehlen ausgegebenen Zeichen
ein.
Set_Lprint_Font (Font_Nr)
Diese Prozedur wählt den Font aus, der für LPRINT-Befehle benutzt werden
soll.
Achtung: Der LPRINT-Befehl funktioniert nur mit nichtproportionalen Fonts korrekt, also Fonts, bei denen alle Buchstaben gleich breit sind, wenn Tabulatorfunktionen benutzt werden. Von den standardmäßig vorhandenen Fonts trifft das nur auf 'Monaco (Font_Nr=4)' und 'Courier (Font_Nr=22)' zu. Ab System 7.6 ist noch 'VT100' vorhanden.
Set_Lprint_Face(Face)
Diese Prozedur entspricht in etwa dem Befehl TEXT STYLE, die Einstellung
gilt aber nur für LPRINT-Befehle.
Set_Lprint_Fore_Color(Index)
Diese Prozedur setzt die für LPRINT-Befehle verwendete Vordergrund-Farbe auf
die dem Index zugeordnete Farbe.
Set_Lprint_Back_Color(Index)
Diese Prozedur setzt die für LPRINT-Befehle verwendete Hintergrund-Farbe auf
die dem Index zugeordnete Farbe.
Lprstldialog(R Button)
Diese Prozedur stellt die 'PrStlDialog' Dialogbox des Druckertreibers dar. Wurde
die Box mit OK verlassen, so ist Button=1, sonst 0. Sie sollten in Ihr Programm eine
Möglichkeit einbauen, diese Dialogbox aufzurufen, sonst werden beim nächsten
Ausdruck nur die unspeziefischen Default-Werte verwendet.
Lprjobdialog(R Button)
Diese Prozedur stellt die 'PrJobDialog' Dialogbox des Druckertreibers dar. Wurde
die Box mit OK verlassen, so ist Button=1, sonst 0. Diese Dialogbox sollte unbedingt
vor jedem Ausdruck aufgerufen werden, da hier der Anwender noch wichtige Dinge einstellen
kann. Zum Beispiel, welche Seiten überhaupt gedruckt werden sollen, ob ein Preview
(nicht bei jedem Drucker möglich) gewünscht wird, in welcher Auflösung
gedruckt werden soll, und noch einige weitere Einstellungen.
FN Get_Lprstl_Settings$
Mit dieser Funktion können Sie die aktuellen Einstellungen der 'PrStlDialog'
Dialogbox des Druckertreibers abfragen. Die Daten werden als String zurückgeliefert,
der dann für eine spätere Verwendung gespeichert oder an ein Dokument angehängt
werden kann. Übergibt man einen solchen String an die Prozedur Set_Lprstl_Settings,
so werden die darin enthaltenen Einstellungen in die Dialogbox übernommen.
X-Note: Diese Funktion steht nur für Carbon-Anwendungen (COMPILER
"Carbon")
zur Verfügung. Bei Classic-Anwendungen wird ein Nullstring zurückgeliefert.
FN Get_Lprjob_Settings$
Mit dieser Funktion können Sie die aktuellen Einstellungen der 'PrJobDialog'
Dialogbox des Druckertreibers abfragen. Die Daten werden als String zurückgeliefert,
der dann für eine spätere Verwendung gespeichert oder an ein Dokument angehängt
werden kann. Übergibt man einen solchen String an die Prozedur Set_Lprjob_Settings,
so werden die darin enthaltenen Einstellungen in die Dialogbox übernommen.
X-Note: Diese Funktion steht nur für Carbon-Anwendungen (COMPILER
"Carbon") zur Verfügung. Bei Classic-Anwendungen wird ein Nullstring
zurückgeliefert.
Set_Lprstl_Settings(Set$)
Mit dieser Prozedur können Sie die aktuellen Einstellungen der 'PrStlDialog'
Dialogbox des Druckertreibers setzen. Dazu muss der Prozedur ein String übergeben
werden, wie Sie ihn vorher von der Funktion FN
Get_Lprstl_Settings$ erhalten haben.
X-Note: Diese Funktion steht nur für Carbon-Anwendungen (COMPILER
"Carbon") zur Verfügung. Bei Classic-Anwendungen wird der Aufruf
ignoriert.
Set_Lprjob_Settings(Set$)
Mit dieser Prozedur können Sie die aktuellen Einstellungen der 'PrJobDialog'
Dialogbox des Druckertreibers setzen. Dazu muss der Prozedur ein String übergeben
werden, wie Sie ihn vorher von der Funktion FN
Get_Lprjob_Settings$ erhalten haben.
X-Note: Diese Funktion steht nur für Carbon-Anwendungen (COMPILER
"Carbon") zur Verfügung. Bei Classic-Anwendungen wird der Aufruf
ignoriert.
FN Get_Pmsession
FN Get_Pmpage_Format
FN Get_Pmprint_Settings
Diese Funktionen liefern Objekte zurück, die vom Betriebssystem verwaltet werden.
Sie brauchen diese Nummern, wenn Sie selbst Funktionen des MacOS PrintingManagers
über den MAC_OS Befehl aufrufen wollen. Informationen
dazu finden Sie auf den Apple-Internetseiten (Inside Carbon, Supporting Printing
in Your Carbon Application).
X-Note: Diese Funktionen stehen nur für Carbon-Anwendungen (COMPILER
"Carbon") zur Verfügung. Bei Classic-Anwendungen wird Null zurückgeliefert.
Get_Lpr_Pagesize(R W,R H)
Mit dieser Prozedur können Sie die Breite und Höhe einer Seite auf dem
ausgewählten Drucker ermitteln. Die Angaben sind in Pixel und hängen von
den Einstellungen ab, die der Anwender mit Lprstldialog vorgenommen hat. Die
Druckerauflösung ist standardmässig auf 72 dpi eingestellt. Dies entspricht
einer durchschnittlichen Monitorauflösung. Wenn der Ausdruck eine höhere
Auflösung erreichen soll, müssen Sie in der Lprstdialog eine Verkleinerung
wählen (z.B. 20% für 360 dpi).
Get_Lpr_Pagesize gibt die Grösse der bedruckbaren Fläche zurück,
nicht die Grösse des eingelegten Papiers. Sie können diese Funktion z.B.
benutzen, um einen auszudruckenden Text jeweils so umzuformatieren, dass er gut auf
das eingestellte Papierformat passt, oder eine Grafik so zu vergrössern, dass
sie die ausgewählte Seitengrösse gerade ausfüllt. Siehe auch das Programm
'Lissajous.BAS' im DEMO-Ordner.
FN Get_Thprint
Diese Funktion liefert das Handle des von Omikron Basic verwendeten Print-Records
zurück. Dieser enthält weitere Informationen über den Drucker und
die gemachten Einstellungen. Sie benötigen dieses Handle auch, wenn Sie selbst
Systemroutinen mit dem MAC_OS Befehl aufrufen wollen. Eine genaue Beschreibung des
Print-Records und der zur Verfügung stehenden Systemroutinen finden Sie in "Inside
Macintosh, Imaging with Quickdraw".
FN
Microseconds#
Diese Funktion gibt die Zeit in Mikrosekunden zurück, die seit dem Einschalten
des Computers vergangen ist. Beachten Sie, daß die Funktion vom Typ Double-Float
ist. Sie entspricht in etwa der BASIC-Funktion TIMER, ermöglicht aber viel genauere Zeitmessungen, da statt in 1/200
Sekunden in millionstel Sekunden gezählt wird.
FN Ser_Get_Buf (Channel)
Diese Funktion liefert die Anzahl der Zeichen zurück, die sich in dem Puffer
der seriellen Schnittstelle befinden. Der Kanal muß vorher mit OPEN "P",Channel bzw. OPEN "V",Channel geöffnet
worden sein.
Ser_Reset (Channel,In_Out,Baud,Parity,Data_Bits,Stop_Bits)
Diese Prozedur ermöglicht die Konfigurierung der seriellen Schnittstelle, die
zuvor mit OPEN "P",Channel
bzw. OPEN "V",Channel geöffnet wurde.
Mit In_Out können Sie bestimmen, ob die Einstellung für Eingabe oder Ausgabe
gelten soll:
In_Out = 1 : Ausgabe
In_Out = 2 : Eingabe
In_Out = 3 : Ausgabe und Eingabe
Baud gibt an, mit welcher Übertragunsrate (Bits pro Sekunde) gearbeitet werden
soll. Es können die Werte 300,600,1200,1800,2400,3600,4800,7200,9600,14400,19200,28800,38400
und 57600 für Baud eingesetzt werden.
Für Parity sind folgende Zahlen erlaubt:
0 = Keine Parität
1 = Ungerade Parität
2 = Gerade Parität
Data_Bits gibt an, wieviele Datenbits jeweils gesendet werden und darf Werte zwischen
5 und 8 annehmen.
Für Stop_Bits können die Zahlen 10,15 und 20 eingesetzt werden:
10 = 1 Stopbit
15 = 1.5 Stopbits
20 = 2 Stopbits
Weitere Informationen finden Sie in "Inside
Macintosh, Devices".
Ser_Hshake(Channel,Fxon,Fcts,Xon,Xoff,Errs,Evts,Finx,Fdtr)
Diese Prozedur ermöglicht die Einstellung der Handshake-Parameter für die
serielle Schnittstelle, die zuvor mit OPEN "P",Channel bzw. OPEN "V",Channel geöffnet
wurde. Die einzelnen Parameter haben dabei die folgende Bedeutung:
Fxon <>0 aktiviert XON/XOFF für ausgehende Daten.
Fcts <>0 aktiviert CTS für ausgehende Daten.
Xon : Mit diesem Parameter können Sie den ASCII-Code des Zeichens festlegen, das für XON verwendet werden soll.
Xoff : Mit diesem Parameter können Sie den ASCII-Code des Zeichens festlegen, das für XOFF verwendet werden soll.
Errs : In diesem Parameter muss eine Bitmaske übergeben
werden, mit der festgelegt wird, welche Fehler zur Beendigung einer Eingabeaufforderung
führen. Die einzelnen Bits haben dabei die folgende Bedeutung:
Bit 4 : Parity-Fehler
Bit 5 : Hardware-Überlauf
Bit 6 : Framing-Fehler
Evts : In diesem Parameter muss ebenfalls eine Bitmaske
übergeben werden. Sie legt fest, welche Ereignisse den Serial Driver veranlassen
sollen, ein Device-Driver-Event zu senden. Die einzelnen Bits haben die folgende
Bedeutung:
Bit 5 : Änderung im CTS-Signal
Bit 7 : Änderung im Break-Signal
Finx <>0 aktiviert XON/XOFF für eingehende Daten.
Fdtr <>0 aktiviert DTR für eingehende Daten.
Weitere Informationen finden Sie in "Inside Macintosh, Devices".
Ser_Status(Channel,R Cumerrs,R
Xoffsend,R Rdpend,R Wrpend,R Ctshold,R Xoffhold)
Diese Prozedur liefert Informationen über den Zustand der seriellen Schnittstelle,
die zuvor mit OPEN "P",Channel
bzw. OPEN "V",Channel geöffnet wurde. Die einzelnen Parameter haben
dabei die folgende Bedeutung:
Cumerrs : In dieser Variablen wird ein Bitfeld zurückgegeben, das die kumulierten
Fehler anzeigt, die seit dem letzten Aufruf von Ser_Status aufgetreten sind.
Nach dem Aufruf wird das Feld gelöscht. Die einzelnen Bits haben die folgende
Bedeutung:
Bit 0 : Software-Überlauf
Bit 3 : Breaksignal gesetzt
Bit 4 : Parity-Fehler
Bit 5 : Hardware-Überlauf
Bit 6 : Framing-Fehler
Xoffsend : Diese Variable enthält ebenfalls ein Bitfeld
mit folgender Bedeutung:
Bit 6 : DTR-Signal wurde negiert
Bit 7 : XOFF-Zeichen wurde gesendet
Rdpend <>0 bedeutet, dass eine Leseoperation noch offen ist.
Wrpend <>0 bedeutet, dass eine Schreiboperation noch offen ist.
Ctshold <>0 bedeutet, dass der Treiber die Ausgabe aufgrund eines CTS-Signals unterbrochen hat.
Xoffhold <>0 bedeutet, dass der Treiber die Ausgabe unterbrochen hat, weil er ein XOFF-Zeichen empfangen hat.
Bitte beachten Sie, dass die Werte von Ser_Status
zurückgesetzt werden, so dass aufeinanderfolgende Aufrufe keineswegs die gleichen
Werte liefern, auch wenn dazwischen nichts passiert ist.
Weitere Informationen finden Sie in "Inside Macintosh, Devices".
Ser_Set_Brk(Channel)
Diese Prozedur sendet ein Break-Signal an die serielle Schnittstelle, die zuvor mit
OPEN "P",Channel
bzw. OPEN "V",Channel geöffnet wurde.
Ser_Clr_Brk(Channel)
Diese Prozedur löscht das Break-Signal, das zuvor mit Ser_Set_Brk gesetzt wurde.
Die serielle Schnittstelle muss mit OPEN "P",Channel bzw. OPEN "V",Channel geöffnet
worden sein.
FN Get_Scrap$(Type)
Mit dieser Funktion kann man Daten vom Clipboard holen. In Type müssen Sie angeben,
um welche Art von Daten es sich handelt. Z. B. würde Txt$= FN Get_Scrap$(CVIL("TEXT"))
ein Textstück vom Clipboard holen, sofern sich dort Daten vom Typ "TEXT"
befinden. Natürlich können Sie mit dieser Funktion nicht nur Texte holen,
sondern auch beliebige andere Daten wie z.B. Bilder ("PICT"). Die Daten
werden dabei immer in einem String zurückgegeben.
Falls die Daten in einem Speicherblock benötigt werden, können Sie diese
mit der Prozedur String_To_Memory(Txt$,Mem_Adr) in den Speicherblock übertragen.
Put_Scrap(Type,Txt$)
Dieser Prozedur ermöglicht es, beliebige Daten, die sich in dem String Txt$
befinden, auf dem Clipboard abzulegen. In Type müssen sie dabei angeben, um
welche Art von Daten es sich handelt (z. B. einfache ASCII-Texte = "TEXT"
oder Bilder im Apple-Picture-Format = "PICT"). Z. B. würde Put_Scrap(CVIL("TEXT"),"Beispieltext")
den Beispieltext auf das Clipboard schreiben, von wo aus er von anderen Programmen
wieder geladen werden könnte.
Falls sich die Daten in einem Speicherblock befinden, können Sie diese mit der
Funktion Txt$= FN Memory_To_String$(Mem_Adr,Lenght) in einen String übertragen.
FN Memory_To_String$(Mem_Adr,Length)
Diese Funktion kopiert Daten, die sich ab Mem_Adr im Speicher befinden und die Länge
Length haben, in einen String und gibt diesen als Funktionswert zurück.
String_To_Memory(Txt$,Mem_Adr)
Diese Prozedur kopiert Daten, die sich in dem String Txt$ befinden, in den Speicher
ab Mem_Adr.
Warnung: Sie müssen unbedingt sicherstellen,
daß der Speicherblock ab Mem_Adr groß genug ist, um den ganzen String
aufzunehmen, sonst sind schwerste Abstürze zu befürchten.
FN Get_Current_Process#
Es wird eine 8 Byte Zahl zurückgeliefert, die sogenannte ProcessSerialNumber.
Diese Zahl identifiziert einen laufenden Prozess eindeutig. Beachten Sie bitte, daß
die Funktion vom Typ Double-Float ist.
Wenn Sie diese Funktion gleich am Anfang Ihres Programms aufrufen, erhalten Sie die
ProcessSerialNumber Ihres eigenen Programms zurück. Sie können diese Nummer
z.B. benutzen, um mit FN Get_Process_Path$(Psn#) den Pfad zu ermitteln, aus dem das Programm gestartet wurde. Diese
Information ist wichtig, wenn man später bestimmte Dateien aus dem Programmpfad
nachladen möchte. Zum Beispiel findet Omikron Basic auf diese Weise die NEWOMBAS.INF
Datei.
FN Get_Front_Process#
Es wird eine 8 Byte Zahl zurückgeliefert, die sogenannte ProcessSerialNumber.
Diese Zahl identifiziert einen laufenden Prozess eindeutig. Beachten Sie bitte, daß
die Funktion vom Typ Double-Float ist.
Durch Vergleich der aktuellen Psn# mit der Ihres eigenen Programms können Sie
jederzeit feststellen, ob sich Ihr Programm gerade im Vordergrund befindet und dann
bestimmte Aktionen ein- bzw. abschalten (z. B. Cursorblinken, wenn das Programm im
Hintergrund ist).
Set_Front_Process(Psn#)
Dieser Prozedur muß eine ProcessSerialNumber (Psn#) eines bereits laufenden
Programms übergeben werden. Dieses Programm wird dann zum vordersten Prozess.
Wenn das eigene Programm im Hintergrund läuft, weil es z.B. an einem längeren
Problem rechnet und dabei ein Fehler auftritt, der eine Aktion des Anwenders erfordert,
kann man diesen Befehl benutzen, um das eigene Programm zum vordersten Prozess zu
machen.
FN Get_Process_Path$(Psn#)
Es wird ein FileSpecificationRecord zurückgeliefert, der angibt, wo sich das
Programm mit der ProcessSerialNumber (Psn#) auf der Festplatte befindet. Man kann
diese Information z. B. dazu verwenden, um gezielt Dateien aus dem Programmordner
nachzuladen.
FN System_Version
Diese Funktion liefert die Versionsnummer des Betriebssystems zurück. Dabei
ist das Ergebnis als Hexadezimalzahl kodiert. So bedeutet zum Beispiel der Wert $904,
dass das Betriebssystem die Versionsnummer 9.0.4 hat. Eine Anwendung dieser Funktion
finden Sie in dem Programm "FILESELECT.BAS" im Demo-Ordner.
Set_Rnd_Seed(S#)
Der BASIC-Befehl RND liefert ja bekanntlich eine sogenannte Pseudo-Zufallszahl. Diese
wird nicht durch einen echten Zufallsgenerator ermittelt, sondern über eine
bestimmte Iteration, die eine zufallsähnliche Zahlenverteilung liefert. Dabei
ist der Startwert der Iteration bei jedem Programmstart anders, so dass Sie nicht
immer die gleiche Folge von Zufallszahlen erhalten. Für manche Anwendungen ist
es aber gerade wichtig, dass sich immer die gleiche Folge von Zahlen ergibt. Um das
zu erreichen, können Sie jetzt mit dieser Funktion festlegen, wo die Iteration
beginnen soll.
Für die Iteration wird die Formel X <- (75 * X) MOD (2^31-1) benutzt.
Das Fließkommazahlenformat, das vom Omikron Basic für Atari-Computer benutzt wurde, unterscheidet sich von dem für den PowerPC verwendeten. Um nun eine ständige Formatkonvertierung mit entsprechendem Performance-Verlust zu vermeiden, wurde das neue Omikron Basic auf das PowerPC-Format umgestellt (siehe auch das Kapitel 'Unterschiede zur Atari-Version').
Damit Sie Ihre alten Programme leichter umstellen können, gibt es vier Funktionen in der ExtensionLibrary, die das Verhalten der alten Omikron Basic Funktionen nachbilden.
FN CVS#(Single$)
Diese Funktion wandelt einen 6-Byte-String im alten Format in eine Double-Float-Zahl.
Achtung: Da das neue Format einen kleineren Wertebereich hat, als das alte, kann es bei sehr kleinen bzw. sehr großen Zahlen zu Fehlern kommen.
FN CVD#(Double$)
Diese Funktion wandelt einen 10-Byte-String im alten Format in eine Double-Float-Zahl.
Achtung: Da das neue Format einen kleineren Wertebereich hat, als das alte, kann es bei sehr kleinen bzw. sehr großen Zahlen zu Fehlern kommen.
FN MKS$(Zahl)
Diese Funktion wandelt eine Zahl in einen 6-Byte langen String im alten Format um.
FN MKD$(Zahl)
Diese Funktion wandelt eine Zahl in einen 10-Byte langen String im alten Format um.
|
|
|
Support | Bestellen | Start | Home: http://www.berkhan.de |
|
© 1997-2004 |