moved from dev to prod

This commit is contained in:
root
2022-11-14 10:05:42 +01:00
parent ac142715b0
commit 43d589aa9b
1364 changed files with 27705 additions and 6101 deletions

31
tools/texel/readme.txt Normal file
View File

@@ -0,0 +1,31 @@
Texel 2.20 (07.03.99)
=====================
Wichtig:
========
Falls Sie kein MagiC 6.0 besitzen:
F<EFBFBD>r das neue Texel m<>ssen Sie das mitgelieferte WDIALOG.PRG in den AUTO-
Ordner kopieren. Beachten Sie, da<64> Sie es zus<75>tzlich in der AUTOEXEC.BAT
eintragen m<>ssen, falls Sie eine solche Datei in ihrem AUTO-Ordner
vorhanden haben (z.B. bei MagiC-PC der Fall).
WDIALOG.PRG finden Sie im TEXEL-Verzeichnis.
Im Ordner TEXEL\OLGA\OLGATOOL finden Sie ein Programm, mit dem Sie
die OLGA.INF auf Korrektheit <20>berpr<70>fen lassen k<>nnen. Falls es
Probleme beim Einbetten oder darstellen/bearbeiten von eingebetteten
Objekten gibt, k<>nnen Sie mit diesem Programm die OLGA.INF <20>berpr<70>fen
lassen. Vermutlich findet das Programm die fehlerhafte Stelle.
Weitere Neuerungen dieser Version k<>nnen Sie der ST-Guide-Online-Hilfe
entnehmen. Rufen Sie dazu im Inhaltsverzeichnis "Was ist neu..." und
danach "... in Version 2.20" auf.
Application Systems Heidelberg Software GmbH
Postfach 10 26 46
69016 Heidelberg
Tel: 06221/300002
Fax: 06221/300389
Mailbox 06221/303671
Internet: http://www.ash.sww.net

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
tools/texel/sheets/demo.txl Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
tools/texel/sheets/new.txl Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,56 @@
// MMult(bereich1,bereich2,bereichZ)
// tm 97-11-23
// multipliziert die zwei Matrizen bereich1,bereich2
// und schreibt das Ergebnis ab der linken oberen Zelle
// des Zielbereichs ins Blatt
proc main(...)
{
if (argc<5) exit(1);
datei = argv[0];
zelle = argv[1];
if (address("texel"))
{
m1 = GetRange(argv[2],datei);
m2 = GetRange(argv[3],datei);
dest = GetRange(argv[4],datei);
r1s = m1[0];
c1s = m1[1];
r1e = m1[2];
c1e = m1[3];
r2s = m2[0];
c2s = m2[1];
r2e = m2[2];
c2e = m2[3];
dr = dest[0];
dc = dest[1];
if (((r1e - r1s) == (c2e - c2s)) && ((c1e - c1s) == (r2e - r2s)))
{
for (r=r1s; r<=r1e; r++)
{
for (c=c2s; c<=c2e; c++)
{
wert = 0.0;
for (i=c1s; i<=c1e; i++)
{
z1 = GetCell(r,i,datei);
z2 = GetCell(i+r2s-c1s,c,datei);
wert += z1*z2;
}
SetCell(r+dr-r1s,c+dc-c2s,wert,datei);
}
}
}
ReturnCellValue(datei,zelle,0.0);
}
}

24
tools/texel/skripte/0.tsc Normal file
View File

@@ -0,0 +1,24 @@
// Texel-Demoskript (f<>r Scripter von Holger Weets und Christian Wempe)
// als Argumente werden immer <20>bergeben:
// Dateiname (z.B. "C:\Texel\balmer.txl")
// Zellreferenz (z.B. "B52")
// danach k<>nnen noch beliebig viele Parameter (auch Bereichsangaben
// der Form "A1:C23") folgen
// die R<>ckgabe an Texel *mu<6D>* mit dem GEMScript-Kommando
// ReturnCellValue(datei,zelle,wert) erfolgen; die Zielzelle
// mu<6D> die aufrufende Zelle sein ("=SkriptNr(...)")
proc main(...)
{
if (argc<2) exit(1);
datei = argv[0];
zelle = argv[1];
wert = 0.0;
/* hier beginnt das eigentliche "Makro" */
/* R<>ckgabe des Ergebnisses */
Texel.ReturnCellValue(datei,zelle,wert);
}

View File

@@ -0,0 +1,17 @@
// Berechnet die Fl<46>che des Kreises mit dem Radius r=argv[2]
// tm 97-11-20
proc main(...)
{
if (argc<3) exit(1);
datei = argv[0];
zelle = argv[1];
r = argv[2];
/* Fl<46>che berechnen */
wert = pi() * r * r;
/* R<>ckgabe des Ergebnisses */
Texel.ReturnCellValue(datei,zelle,wert);
}

View File

@@ -0,0 +1,35 @@
// externes Scripter-Skript, das im <20>bergebenen Sheet
// (bzw. im obersten, wenn kein Sheet angegeben wurde)
// alle Uhrzeitangaben neu parst; dadurch werden die
// Rundungsfehler alter Texel-Versionen beseitigt;
// tm 97-11-28
if (address("texel"))
{
if (argc<1) datei=GetFront();
else
datei=argv[0];
rmax=GetRows();
cmax=GetColumns();
printf("<22>ndere %d Zeilen im Sheet \"%s\".\n",rmax,datei);
for (r=0; r<rmax; r++)
{
printf("Zeile %d...",r+1);
for(c=0; c<cmax; c++)
{
if (IsCellConst(r,c,datei))
{
SetCell(r,c,GetCellFormula(r,c,datei),datei);
}
}
printf("ok.\n");
}
Recalc();
printf("Fertig!\n");
}

63
tools/texel/sokrates.txt Normal file
View File

@@ -0,0 +1,63 @@
"Unsere Jugend liebt den Luxus, hat schlechte Manieren, mi<6D>achtet die
Autorit<EFBFBD>t und hat keine Achtung vor dem Alter. Die heutigen Kinder
sind Tyrannen!" (Sokrates, 470-399 vor Christus)
"Our youth loves luxury, has bad manners, despises authority and has
no respect for age. The children of today are tyrants!" (Socrates, 470-
399 before Christ)
English version by Uwe Lehmann (uwe_lehmann@fr.maus.de)
"O ira nai taba gone ena gauna ni kua, e sa sega vei ira nai
tovo, era taleitaka ga na bula rawarawa, kara sega ni dokai
ira na nodra qase. Ia o ira na gone sobu e sa na qai toro cake
sara!" (Socrates, 470-399 ni sebera ni sucu na Karisito)
Fijian version by Laisani Petersen (spoken on the Fiji Islands)
"Young pel<65> tasol hemi b<>kim g<>dp<64>la h<>mi b<>kim g<>dp<64>la
b<EFBFBD>kim g<>dp<64>la h<>mi g<>t <20>t<EFBFBD>rity n<> hem<65>. Olg<6C>ta na<6E>
tas<EFBFBD>l oli b<>kir<69>p." (Socrates, 470-399 Pasta<74>m Kraes)
Bishlamaro version by Gideon Jacques (spoken on some islands of the
Solomon Islands)
"Nia junularo vivas en lukseco, havas malbonajn kondutmanierojn,
neglektas a<>toritatojn kaj havas nenian respekton anta<74> maljuneco.
La hodia<69>aj infanoj estas tiranoj!" (Sokrates, 470-399 a. Kr.)
Esperanto version by Sascha Malatsion
"Notre jeunesse aime le luxe, a de mauvaises mani<6E>res,
m<EFBFBD>prise l'autorit<69> et n'a aucune attention pour autrui.
Ces enfants sont des tyrans!" (Socrate, 470-399 v. Chr.)
French version by Jo Vandeweghe
"Wakamonotachi wa zeitaku o konomi, hijyo ni busahou de kenito
jidai ni taishite sonkei no nen wo motanai. Jitusei no
kodomo tachi wa boukun de aru. (Sokuratesu, kigenzen 470-399)
Japanese version by Leona Baba
"Iuvenes res luxurias amant, pro malis se gerunt,
homines auctoritatis plenos non respectant, illudunt senes.
Cuius aetatis liberi sunt tyranni." (Sokrates, 470-399 v. Chr.)
Latine scriptum a Marion Messerich @ HD
(<marion_messerich@hd.maus.de>)
"I nostri giovani amano la lussuria, hanno cattive maniere,
disprezzano l'autorit<69> e non rispettano i vecchi. I ragazzi di oggi
sono tiranni!" (Socrate, 470-399 avanti Cristo)
Italian version by Tiziana Marotta and Lodovico Zanier
"Gen<65>ligimiz l<>ks<6B> sever, terbiyesizdir, otoriteyi hi<68>e sayar ve b<>y<EFBFBD>k
ya_s_a saygi g<>stermez. Bug<75>n<EFBFBD>n <20>ocuklari cebbardir!" (Sokrates M.<2E>.
470'ten 399'a kadar)
T<EFBFBD>rk<EFBFBD>e'ye <20>everimi: Basar Alabay / Turkey from Basar Alabay
"Ungdomar <20>lskar lyx, har d<>liga vanor, f<>rraktar aktoriteter och
respekterar inte <20>lder. De verkliga barnen <20>r tyranner!" (Socrates,
470-399 f. k.)
Swedish version by Christoffer Breding
"Eusi Jugend li<6C>bt d<> Luxus, h<>t schl<68>chti Mani<6E>r<EFBFBD>, missacht<68>t
d'Autorit<69>t
und h<>t kei Achtig vor em Alter. Die h<>tig<69> Chind sind Tyrann<6E>!"
(Sokrates, 470-399 vor Christus)
Schwiizert<EFBFBD>tsch: Joachim Fornallaz

BIN
tools/texel/texel.app Normal file

Binary file not shown.

BIN
tools/texel/texel.cla Normal file

Binary file not shown.

152
tools/texel/texel.dat Normal file
View File

@@ -0,0 +1,152 @@
;die Funktionskategorien (die Namen k<>nnen ge<67>ndert werden)
;neue Kategorien k<>nnen angelegt werden (id>0)
#1 Mathe, Trigonometrie
#2 Statistik
#3 Logik
#4 Finanzen
#5 Datum & Zeit
#6 Physik
#7 Information
#8 Bitmanipulation
#9 Datenbank
#10 Matrix
#11 Text
#12 Extern
;die Namen am Zeilenanfang k<>nnen beliebig ge<67>ndert werden!
;als Trenner d<>rfen nur Spaces verwendet werden
Zuf 0 1000 1 ; Zuf|Liefert eine Zufallszahl zwischen 0 (inkl.) und 1 (exkl.)
Fehler 0 1001 7 ; Fehler|Setzt den Wert der Zelle auf #FEHLER
Heute 0 1010 5 ; Heute|Liefert das Tagesdatum als serielle Zeitangabe
Jetzt 0 1011 5 ; Jetzt|Liefert Datum und Uhrzeit als serielle Zeitangabe
std1 0 1012 5 ; std1|Liefert eine Stunde als serielle Zahl
min1 0 1013 5 ; min1|Liefert eine Minute als serielle Zahl
sek1 0 1014 5 ; sek1|Liefert eine Sekunde als serielle Zahl
Falsch 0 1015 3 ; Falsch|Liefert den Wert f<>r logisch falsch (0)
Wahr 0 1016 3 ; Wahr|Liefert den Wert f<>r logisch wahr (1)
Pi 0 1017 1 ; Pi|Liefert den Wert der Kreiszahl Pi (=3.14...)
IstZahl 1! 1100 7 ; IstZahl(Bereich)|Gibt Wahr (1) zur<75>ck, wenn alle Zellen Zahlen enthalten
IstText 1! 1101 7 ; IstText(Bereich)|Gibt Wahr (1) zur<75>ck, wenn alle Zellen Text enthalten
IstLeer 1! 1102 7 ; IstLeer(Bereich)|Gibt Wahr (1) zur<75>ck, wenn alle Zellen leer sind
IstFehler 1! 1103 7 ; IstFehler(Bereich)|Gibt Wahr (1) zur<75>ck, wenn alle Zellen fehlerhafte Rechenergebnisse enthalten
Anzahl 1! 1150 7 ; Anzahl(Bereich)|Gibt die Anzahl der Formel- und Konstantenzellen innerhalb des Bereichs zur<75>ck
Spalten 1! 1151 7 ; Spalten(Bereich)|Liefert die Anzahl der Spalten im angegebenen Bereich
Zeilen 1! 1152 7 ; Zeilen(Bereich)|Liefert die Anzahl der Zeilen im angegebenen Bereich
Anzahl2 1! 1153 7 ; Anzahl2(Bereich)|Gibt die Anzahl der nichtleeren Zellen innerhalb des Bereichs zur<75>ck
MDet 1! 1160 10 ; MDet(Bereich)|Berechnet die Determinante der durch den Bereich angegebenen quadratischen Matrix
Sin 1 2000 1 ; Sin(Zahl)|Liefert den Sinus einer Zahl
Cos 1 2001 1 ; Cos(Zahl)|Liefert den Cosinus einer Zahl
Tan 1 2002 1 ; Tan(Zahl)|Liefert den Tangens einer Zahl
Cot 1 2003 1 ; Cot(Zahl)|Liefert den Cotangens einer Zahl
Sinh 1 2004 1 ; Sinh(Zahl)|Liefert den hyperbolischen Sinus einer Zahl
Cosh 1 2005 1 ; Cosh(Zahl)|Liefert den hyperbolischen Cosinus einer Zahl
Tanh 1 2006 1 ; Tanh(Zahl)|Liefert den hyperbolischen Tangens einer Zahl
Arcsin 1 2007 1 ; Arcsin(Zahl)|Liefert den Arkussinus einer Zahl
Arccos 1 2008 1 ; Arccos(Zahl)|Liefert den Arkuscosinus einer Zahl
Arctan 1 2009 1 ; Arctan(Zahl)|Liefert den Arkustangens einer Zahl
Arccot 1 2010 1 ; Arccot(Zahl)|Liefert den Arkuscotangens einer Zahl
Arsinh 1 2011 1 ; Arsinh(Zahl)|Liefert den hyperbolischen Areasinus einer Zahl
Arcosh 1 2012 1 ; Arcosh(Zahl)|Liefert den hyperbolischen Areacosinus einer Zahl
Artanh 1 2013 1 ; Artanh(Zahl)|Liefert den hyperbolischen Areatangens einer Zahl
Arcoth 1 2014 1 ; Arcoth(Zahl)|Liefert den hyperbolischen Areacotangens einer Zahl
Sec 1 2015 1 ; Sec(Zahl)|Liefert den Sekans einer Zahl
Cosec 1 2016 1 ; Cosec(Zahl)|Liefert den Cosekans einer Zahl
Coth 1 2017 1 ; Coth(Zahl)|Liefert den hyperbolischen Cotangens einer Zahl
Grad 1 2090 1 ; Grad(Zahl)|Wandelt ein Bogenma<6D> in Grad um
Rad 1 2091 1 ; Rad(Winkel)|Wandelt Grad in Bogenma<6D> um
Wert 1 2092 1 ; Wert(Zahl)|Liefert den Wert der Zahl oder Zelle zur<75>ck
Sgn 1 2100 1 ; Sgn(Zahl)|Liefert das Vorzeichen einer Zahl
Abs 1 2101 1 ; Abs(Zahl)|Liefert den Absolutwert einer Zahl
Nachkomma 1 2102 1 ; Nachkomma(Zahl)|Liefert die Nachkommastellen einer Zahl
Int 1 2103 1 ; Int(Zahl)|Liefert den ganzzahligen Anteil einer Zahl
Runden 1 2104 1 ; Runden(Zahl)|Rundet mathematisch auf ganze Zahlen
NRunden 1 2105 1 ; NRunden(Zahl)|Rundet auf ganze Zahlen in Richtung Null
IstGerade 1 2106 1 ; IstGerade(x)|Gibt Wahr (1) zur<75>ck, wenn x gerade ist
IstUngerade 1 2107 1 ; IstUngerade(x)|Gibt Wahr (1) zur<75>ck, wenn x ungerade ist
bNicht 1 2108 8 ; bNicht(x)|Liefert das bitweise Komplement von x
Kehrwert 1 2109 1 ; Kehrwert(x)|Liefert 1/x, den reziproken Wert von x
Exp 1 2150 1 ; Exp(Zahl)|Exponentialfunktion (e^Zahl)
Ln 1 2151 1 ; Ln(Zahl)|Liefert den nat<61>rlichen Logarithmis (zur Basis e = 2.718...)
Lg 1 2152 1 ; Lg(Zahl)|Liefert den 10er-Logarithmus (zur Basis 10) einer Zahl
QWurzel 1 2153 1 ; QWurzel(Zahl)|Liefert die Quadratwurzel einer Zahl
Fakt 1 2154 1 ; Fakt(Zahl)|Liefert die Fakult<6C>t einer nichtnegativen ganzen Zahl
Nicht 1 2155 3 ; Nicht(Wahrheitswert)|Kehrt den Wert des Arguments um
Lb 1 2156 1 ; Lb(Zahl)|Liefert den logarithmus dualis (zur Basis 2) einer Zahl
Quadrat 1 2157 1 ; Quadrat(Zahl)|Liefert das Quadrat einer Zahl
StdNormVert 1 2200 2 ; StdNormVert(x)|Liefert die Werte der Standardnormalverteilung N(0,1)
Balmer 1 2250 6 ; Balmer(Zahl)|Liefert die Frequenzen der Balmer-Serie
Stunde 1 2260 5 ; Stunde(Zahl)|Liefert die Stunden einer seriellen Zeitangabe
Minute 1 2261 5 ; Minute(Zahl)|Liefert die Minuten einer seriellen Zeitangabe
Sekunde 1 2262 5 ; Sekunde(Zahl)|Liefert die Sekunden einer seriellen Zeitangabe
Jahr 1 2263 5 ; Jahr(Zahl)|Liefert das Jahr einer seriellen Zeitangabe
Monat 1 2264 5 ; Monat(Zahl)|Liefert den Monat einer seriellen Zeitangabe
Tag 1 2265 5 ; Tag(Zahl)|Liefert den Tag einer seriellen Zeitangabe
Ostern 1 2266 5 ; Ostern(Jahr)|Liefert das Datum von Ostern als serielle Zeitangabe
Tage 1 2267 5 ; Tage(Jahr)|Gibt die Anzahl der Tage im Jahr zur<75>ck
Schaltjahr 1 2268 5 ; Schaltjahr(Jahr)|Gibt 1 zur<75>ck, wenn das Jahr ein Schaltjahr ist, 0 sonst
Stunden 1 2269 5 ; Stunden(Zahl)|Liefert die absoluten Stunden einer seriellen Zeitangabe
Log 2? 2300 1 ; Log(x[;b])|Liefert den Logarithmus zur Basis b von x
Wochentag 2? 2310 5 ; Wochentag(Zahl[;Typ])|Liefert den Wochentag einer seriellen Zeitangabe
ExpVert 2 2400 2 ; ExpVert(x;Alpha)|Liefert die Werte der Exponentialverteilung
Zufall 2 2401 1 ; Zufall(a;b)|Liefert eine ganze Zufallszahl zwischen a und b (inkl.)
Wurzel 2? 2402 1 ; Wurzel(x[;r])|Berechnet die r-te Wurzel von x
Arctan2 2 2403 1 ; Arctan2(x;y)|Liefert den Winkel zwischen der X-Achse und den angegebenen Koordinaten
Mod 2 2404 1 ; Mod(x;y)|Berechnet x mod y, also den Rest der ganzzahligen Division x/y
Div 2 2405 1 ; Div(x;y)|Berechnet x div y (ganzzahlige Division)
bSchiebL 2 2410 8 ; bSchiebL(x;n)|Verschiebt (shiftet) x um n Bits nach links
bSchiebR 2 2411 8 ; bSchiebR(x;n)|Verschiebt (shiftet) x um n Bits nach rechts
Summe #* 5000 1 ; Summe(Werte)|Berechnet die Summe der angegebenen Werte
Produkt #* 5001 1 ; Produkt(Werte)|Berechnet das Produkt der angegebenen Werte
Min #* 5002 2 ; Min(Werte)|Ermittelt das Minimum der angegebenen Werte
Max #* 5003 2 ; Max(Werte)|Ermittelt das Maximum der angegebenen Werte
Und #* 5004 3 ; Und(Wahrheitswerte)|Liefert 1, wenn alle Werte ungleich 0 sind
Oder #* 5005 3 ; Oder(Wahrheitswerte)|Liefert 1, wenn mindestens ein Wert ungleich 0 ist
bUnd #* 5010 8 ; bUnd(Werte)|Verkn<6B>pft die angegebenen Werte mit bitweisem UND
bOder #* 5011 8 ; bOder(Werte)|Verkn<6B>pft die angegebenen Werte mit bitweisem ODER
bEor #* 5012 8 ; bEor(Werte)|Verkn<6B>pft die angegebenen Werte mit bitweisem XOR (exklusives ODER)
SkriptNr #* 5020 12 ; SkriptNr(n[;Werte])|F<>hrt das GEMScript-Skript "n.tsc" im Ordner "Skripte\" aus
Mittelwert #* 5100 2 ; Mittelwert(Werte)|Liefert das arithmetische Mittel der angegebenen Werte
GeoMittel #* 5101 2 ; GeoMittel(Werte)|Liefert das geometrische Mittel der angegebenen Werte
HarMittel #* 5102 2 ; HarMittel(Werte)|Liefert das harmonische Mittel der angegebenen Werte
QuadMittel #* 5103 2 ; QuadMittel(Werte)|Liefert das quadratische Mittel der angegebenen Werte
Varianz #* 5110 2 ; Varianz(Werte)|Berechnet die Stichprobenvarianz der angegebenen Werte
VarianzN #* 5111 2 ; VarianzN(Werte)|Berechnet die Varianz der Grundgesamtheit der Werte
StdAbw #* 5112 2 ; StdAbw(Werte)|Berechnet die Stichproben-Standardabweichung der Werte
StdAbwN #* 5113 2 ; StdAbwN(Werte)|Berechnet die Standardabweichung der Grundgesamtheit der Werte
MittelAbw #* 5114 2 ; MittelAbw(Werte)|Liefert die mittlere absolute Abweichung der angegebenen Werte
SumQuadAbw #* 5115 2 ; SumQuadAbw(Werte)|Liefert die mittlere quadratische Abweichung der Werte
Median #* 5116 2 ; Median(Werte)|Berechnet den Median (0.5-Quantil) der Werte
QuartilUnten #* 5117 2 ; QuartilUnten(Werte)|Berechnet das 0.25-Quantil der Werte
QuartilOben #* 5118 2 ; QuartilOben(Werte)|Berechnet das 0.75-Quantil der Werte
Quartilsabstand #* 5119 2 ; Quartilsabstand(Werte)|Berechnet die Differenz zwischen oberem und unterem Quartil
Spannweite #* 5120 2 ; Spannweite(Werte)|Berechnet die Differenz zwischen gr<67><72>tem und kleinstem Wert
GleichVert -3 5200 2 ; GleichVert(x;a;b)|Liefert die Gleichverteilung auf dem Intervall (a,b)
NormVert -3 5201 2 ; NormVert(x;m;z)|Liefert die Werte der Normalverteilung N(m,s^2) mit z=s^2
Datum -3 5210 5 ; Datum(Jahr;Monat;Tag)|Berechnet die serielle Zeitangabe des Datums
Zeit -3 5211 5 ; Zeit(Stunde;Minute;Sekunde)|Berechnet die serielle Zeitangabe der Uhrzeit
LIA -3 5250 4 ; LIA(Ansch;Rest;Dauer)|Lineare Abschreibung pro Periode
DIA -4 5251 4 ; DIA(Ansch;Rest;Dauer;Periode)|Arithmetisch-degressive Abschreibung
GDA2 -45 5252 4 ; GDA2(Ansch;Rest;Dauer;Periode[;Monate])|Geometrisch-degressive Abschreibung
DigA -3 5253 4 ; DigA(Ansch;Dauer;Periode)|Digitale Abschreibung (= DIA mit Restwert 0)
GDA -45 5254 4 ; GDA(Ansch;Rest;Dauer;Periode[;Faktor])|Degressive Doppelratenabschreibung
RMZ -34 5255 4 ; RMZ(Zins;Zzr;Bw[;Zw])|Annuit<69>t (regelm. Zahlung) eines Darlehens oder einer Invest. bei konst. Zinssatz
Wenn -13 5300 3 ; Wenn(Wahrheitswert[;Dann_Wert[;Sonst_Wert]])|F<>hrt eine Wahrheitspr<70>fung aus
Wahl -2* 5301 7 ; Wahl(Index;Argument 1[;...Argument n])|Gibt das Argument mit dem passenden Index (1..n) zur<75>ck
Quantil #2* 5302 2 ; Quantil(alpha;Werte)|Berechnet das alpha-Quantil der Werte
MMult #* 9999 10 ; MMult(Bereich1;Bereich2;BereichZ)|Multipliziert zwei Matrizen und schreibt das Ergebnis in den Zielbereich

135
tools/texel/texel.frm Normal file
View File

@@ -0,0 +1,135 @@
;die Zahlenformate
;nur die _Namen_ in den Zeilen bis ";ende" d<>rfen ge<67>ndert werden!
;wer irgend etwas anderes <20>ndert, verliert die Dateikompatibilit<69>t!
;benutzerdefinierte Zahlenformate k<>nnen in texelusr.frm eingetragen werden
#0 Alle
#1 Benutzerdefiniert
#2 Zahlen
#3 Datum
#4 Uhrzeit
#5 Prozent etc.
#6 Wissenschaft
#7 W<>hrung
#8 Winkel
#9 Computer
m1 Januar Februar M<>rz April Mai Juni Juli August September Oktober November Dezember
m2 Jan Feb M<>r Apr Mai Jun Jul Aug Sep Okt Nov Dez
d1 Montag Dienstag Mittwoch Donnerstag Freitag Samstag Sonntag
d2 Mo Di Mi Do Fr Sa So
;ende
c Wei<65> Schwarz Rot Gr<47>n Blau Zyan Gelb Magenta Hellgrau Dunkelgrau Dunkelrot Dunkelgr<67>n Dunkelblau Dunkelzyan Dunkelgelb Dunkelmagenta
2 1 {0|,00}
2 2 {0}
2 3 {#.##0}
2 4 {#.##0|,00}
2 5 {#.##0};-{#.##0}
2 6 [Schwarz]{#.##0};[Rot]-{#.##0}
2 7 {#.##0|,00};-{#.##0|,00}
2 8 [Schwarz]{#.##0|,00};[Rot]-{#.##0|,00}
3 9 [TT].[MM].[JJJJ]
3 10 [TT].[MM].[JJ]
3 11 [TT]. [MMM] [JJ]
3 12 [TT]. [MMM]
3 13 [MMM] [JJ]
3 14 [TTT], [TT]. [MMM] [JJ]
3 15 [TTTT], [T]. [MMMM] [JJJJ]
3 16 [TT].[MM].[JJJJ] [hh]:[mm]
4 17 [H]:[mm] [am/pm]
4 18 [H]:[mm]:[ss] [am/pm]
4 19 [hh]:[mm]
4 20 [hh]:[mm]:[ss]
4 21 [mm]:[ss]
4 22 [TT].[MM].[JJJJ] [hh]:[mm]
5 23 (100){0}%
5 24 (100){0|,00}%
5 25 (1000000){0} ppm
5 26 (1000000){0|,00} ppm
6 27 {0|,00000000E0}
6 28 {0|,00E+00}
6 29 {0|,0E+0}
7 30 [Schwarz]{#.##0|,00} DM;[Rot]-{#.##0|,00} DM
7 31 {#.##0|,00} DM;-{#.##0|,00} DM
7 32 [Schwarz]{#.##0} DM;[Rot]-{#.##0} DM
7 33 {#.##0} DM;-{#.##0} DM
8 34 {0}<7D>
8 35 {0|,00}<7D>
8 36 [w]<5D>
8 37 [w]<5D> [wm]'
8 38 [w]<5D> [wm]' [ws]"
3 39 [TTT]
3 40 [TTTT]
4 41 [#h]:[mm]
4 42 [#h]:[mm]:[ss]
4 43 [Schwarz][#h]:[mm];[Rot]-[#h]:[mm]
4 44 [Schwarz][#h]:[mm]:[ss];[Rot]-[#h]:[mm]:[ss]
9 45 0x[$4];-0x[$4]
9 46 &[&6];-&[&6]
9 47 %[%8];-%[%8]
7 48 [Schwarz]$ {#,##0|.00};[Rot]$ -{#,##0|.00}
7 49 $ {#,##0|.00};$ -{#,##0|.00}
7 50 [Schwarz]$ {#,##0};[Rot]$ -{#,##0}
7 51 $ {#,##0};$ -{#,##0}
7 52 [Schwarz]<5D> {#,##0|.00};[Rot]<5D> -{#,##0|.00}
7 53 <20> {#,##0|.00};<3B> -{#,##0|.00}
7 54 [Schwarz]<5D> {#,##0};[Rot]<5D> -{#,##0}
7 55 <20> {#,##0};<3B> -{#,##0}
3 56 [JJJJ] [MMM] [TT]
3 57 [JJ]/[MM]/[TT]
3 58 [JJJJ]/[MM]/[TT] [hh]:[mm]:[ss]
4 59 [JJJJ]-[MM]-[TT] [hh]:[mm]:[ss]
2 60 {0|.00}
2 61 {#,##0|.00}
2 62 {#,##0|.00};-{#,##0|.00}
2 63 [Schwarz]{#,##0|.00};[Rot]-{#,##0|.00}
7 64 [Schwarz]CAN $ {#,##0|.00};[Rot]CAN $ -{#,##0|.00}
7 65 CAN $ {#,##0|.00};CAN $ -{#,##0|.00}
7 66 [Schwarz]CAN $ {#,##0};[Rot]CAN $ -{#,##0}
7 67 CAN $ {#,##0};CAN $ -{#,##0}
7 68 [Schwarz]{#.##0|,00} FF;[Rot]-{#.##0|,00} FF
7 69 {#.##0|,00} FF;-{#.##0|,00} FF
7 70 [Schwarz]{#.##0} FF;[Rot]-{#.##0} FF
7 71 {#.##0} FF;-{#.##0} FF
3 72 [TT]/[MM]/[JJJJ]
3 73 [TT]/[MM]/[JJ]
9 74 WAHR;WAHR;FALSCH
7 75 [Schwarz]EUR {#.##0|,00};[Rot]EUR -{#.##0|,00}
7 76 EUR {#.##0|,00};EUR -{#.##0|,00}
7 77 [Schwarz]EUR {#.##0};[Rot]EUR -{#.##0}
7 78 EUR {#.##0};EUR -{#.##0}
7 79 [Schwarz]<5D>S {#.##0|,00};[Rot]<5D>S -{#.##0|,00}
7 80 <20>S {#.##0|,00};<3B>S -{#.##0|,00}
7 81 [Schwarz]<5D>S {#.##0};[Rot]<5D>S -{#.##0}
7 82 <20>S {#.##0};<3B>S -{#.##0}
7 83 [Schwarz]sfr {#.##0|,00};[Rot]sfr -{#.##0|,00}
7 84 sfr {#.##0|,00};sfr -{#.##0|,00}
7 85 [Schwarz]sfr {#.##0};[Rot]sfr -{#.##0}
7 86 sfr {#.##0};sfr -{#.##0}
= 86

BIN
tools/texel/texel.his Normal file

Binary file not shown.

BIN
tools/texel/texel.hyp Normal file

Binary file not shown.

BIN
tools/texel/texel.ref Normal file

Binary file not shown.

BIN
tools/texel/texel.rsc Normal file

Binary file not shown.

BIN
tools/texel/texel.tip Normal file

Binary file not shown.

11
tools/texel/texel.val Normal file
View File

@@ -0,0 +1,11 @@
e 2,71828182845904523218
;die folgenden physikalischen Konstanten stammen aus
;Stroppe "Physik", 8. Auflage, VEB Fachbuchverlag, Leipzig 1990
c 2,9979246E8 Lichtgeschwindigkeit im Vakuum [m/s]
g 9,80665 Erdbeschleunigung [m/s^2]
R 8,3144 Gaskonstante [J/(mol K)]
u 1,66057E-27 atomare Masseeinheit [kg]
h 6,626176E-34 Plancksches Wirkungsquantum [Js]
;benutzerdefinierte globale Konstanten werden in texelusr.val gespeichert!

BIN
tools/texel/texel2.rsc Normal file

Binary file not shown.

152
tools/texel/texel_e.dat Normal file
View File

@@ -0,0 +1,152 @@
;die Funktionskategorien (die Namen k<>nnen ge<67>ndert werden)
;neue Kategorien k<>nnen angelegt werden (id>0)
#1 Mathe, Trigonometrie
#2 Statistik
#3 Logik
#4 Finanzen
#5 Datum & Zeit
#6 Physik
#7 Information
#8 Bitmanipulation
#9 Datenbank
#10 Matrix
#11 Text
#12 Extern
;die Namen am Zeilenanfang k<>nnen beliebig ge<67>ndert werden!
;als Trenner d<>rfen nur Spaces verwendet werden
Zuf 0 1000 1 ; Zuf|Liefert eine Zufallszahl zwischen 0 (inkl.) und 1 (exkl.)
Fehler 0 1001 7 ; Fehler|Setzt den Wert der Zelle auf #FEHLER
Heute 0 1010 5 ; Heute|Liefert das Tagesdatum als serielle Zeitangabe
Jetzt 0 1011 5 ; Jetzt|Liefert Datum und Uhrzeit als serielle Zeitangabe
std1 0 1012 5 ; std1|Liefert eine Stunde als serielle Zahl
min1 0 1013 5 ; min1|Liefert eine Minute als serielle Zahl
sek1 0 1014 5 ; sek1|Liefert eine Sekunde als serielle Zahl
Falsch 0 1015 3 ; Falsch|Liefert den Wert f<>r logisch falsch (0)
Wahr 0 1016 3 ; Wahr|Liefert den Wert f<>r logisch wahr (1)
Pi 0 1017 1 ; Pi|Liefert den Wert der Kreiszahl Pi (=3.14...)
IstZahl 1! 1100 7 ; IstZahl(Bereich)|Gibt Wahr (1) zur<75>ck, wenn alle Zellen Zahlen enthalten
IstText 1! 1101 7 ; IstText(Bereich)|Gibt Wahr (1) zur<75>ck, wenn alle Zellen Text enthalten
IstLeer 1! 1102 7 ; IstLeer(Bereich)|Gibt Wahr (1) zur<75>ck, wenn alle Zellen leer sind
IstFehler 1! 1103 7 ; IstFehler(Bereich)|Gibt Wahr (1) zur<75>ck, wenn alle Zellen fehlerhafte Rechenergebnisse enthalten
Anzahl 1! 1150 7 ; Anzahl(Bereich)|Gibt die Anzahl der Formel- und Konstantenzellen innerhalb des Bereichs zur<75>ck
Spalten 1! 1151 7 ; Spalten(Bereich)|Liefert die Anzahl der Spalten im angegebenen Bereich
Zeilen 1! 1152 7 ; Zeilen(Bereich)|Liefert die Anzahl der Zeilen im angegebenen Bereich
Anzahl2 1! 1153 7 ; Anzahl2(Bereich)|Gibt die Anzahl der nichtleeren Zellen innerhalb des Bereichs zur<75>ck
MDet 1! 1160 10 ; MDet(Bereich)|Berechnet die Determinante der durch den Bereich angegebenen quadratischen Matrix
Sin 1 2000 1 ; Sin(Zahl)|Liefert den Sinus einer Zahl
Cos 1 2001 1 ; Cos(Zahl)|Liefert den Cosinus einer Zahl
Tan 1 2002 1 ; Tan(Zahl)|Liefert den Tangens einer Zahl
Cot 1 2003 1 ; Cot(Zahl)|Liefert den Cotangens einer Zahl
Sinh 1 2004 1 ; Sinh(Zahl)|Liefert den hyperbolischen Sinus einer Zahl
Cosh 1 2005 1 ; Cosh(Zahl)|Liefert den hyperbolischen Cosinus einer Zahl
Tanh 1 2006 1 ; Tanh(Zahl)|Liefert den hyperbolischen Tangens einer Zahl
Arcsin 1 2007 1 ; Arcsin(Zahl)|Liefert den Arkussinus einer Zahl
Arccos 1 2008 1 ; Arccos(Zahl)|Liefert den Arkuscosinus einer Zahl
Arctan 1 2009 1 ; Arctan(Zahl)|Liefert den Arkustangens einer Zahl
Arccot 1 2010 1 ; Arccot(Zahl)|Liefert den Arkuscotangens einer Zahl
Arsinh 1 2011 1 ; Arsinh(Zahl)|Liefert den hyperbolischen Areasinus einer Zahl
Arcosh 1 2012 1 ; Arcosh(Zahl)|Liefert den hyperbolischen Areacosinus einer Zahl
Artanh 1 2013 1 ; Artanh(Zahl)|Liefert den hyperbolischen Areatangens einer Zahl
Arcoth 1 2014 1 ; Arcoth(Zahl)|Liefert den hyperbolischen Areacotangens einer Zahl
Sec 1 2015 1 ; Sec(Zahl)|Liefert den Sekans einer Zahl
Cosec 1 2016 1 ; Cosec(Zahl)|Liefert den Cosekans einer Zahl
Coth 1 2017 1 ; Coth(Zahl)|Liefert den hyperbolischen Cotangens einer Zahl
Grad 1 2090 1 ; Grad(Zahl)|Wandelt ein Bogenma<6D> in Grad um
Rad 1 2091 1 ; Rad(Winkel)|Wandelt Grad in Bogenma<6D> um
Wert 1 2092 1 ; Wert(Zahl)|Liefert den Wert der Zahl oder Zelle zur<75>ck
Sgn 1 2100 1 ; Sgn(Zahl)|Liefert das Vorzeichen einer Zahl
Abs 1 2101 1 ; Abs(Zahl)|Liefert den Absolutwert einer Zahl
Nachkomma 1 2102 1 ; Nachkomma(Zahl)|Liefert die Nachkommastellen einer Zahl
Int 1 2103 1 ; Int(Zahl)|Liefert den ganzzahligen Anteil einer Zahl
Runden 1 2104 1 ; Runden(Zahl)|Rundet mathematisch auf ganze Zahlen
NRunden 1 2105 1 ; NRunden(Zahl)|Rundet auf ganze Zahlen in Richtung Null
IstGerade 1 2106 1 ; IstGerade(x)|Gibt Wahr (1) zur<75>ck, wenn x gerade ist
IstUngerade 1 2107 1 ; IstUngerade(x)|Gibt Wahr (1) zur<75>ck, wenn x ungerade ist
bNicht 1 2108 8 ; bNicht(x)|Liefert das bitweise Komplement von x
Kehrwert 1 2109 1 ; Kehrwert(x)|Liefert 1/x, den reziproken Wert von x
Exp 1 2150 1 ; Exp(Zahl)|Exponentialfunktion (e^Zahl)
Ln 1 2151 1 ; Ln(Zahl)|Liefert den nat<61>rlichen Logarithmis (zur Basis e = 2.718...)
Lg 1 2152 1 ; Lg(Zahl)|Liefert den 10er-Logarithmus (zur Basis 10) einer Zahl
QWurzel 1 2153 1 ; QWurzel(Zahl)|Liefert die Quadratwurzel einer Zahl
Fakt 1 2154 1 ; Fakt(Zahl)|Liefert die Fakult<6C>t einer nichtnegativen ganzen Zahl
Nicht 1 2155 3 ; Nicht(Wahrheitswert)|Kehrt den Wert des Arguments um
Lb 1 2156 1 ; Lb(Zahl)|Liefert den logarithmus dualis (zur Basis 2) einer Zahl
Quadrat 1 2157 1 ; Quadrat(Zahl)|Liefert das Quadrat einer Zahl
StdNormVert 1 2200 2 ; StdNormVert(x)|Liefert die Werte der Standardnormalverteilung N(0,1)
Balmer 1 2250 6 ; Balmer(Zahl)|Liefert die Frequenzen der Balmer-Serie
Stunde 1 2260 5 ; Stunde(Zahl)|Liefert die Stunden einer seriellen Zeitangabe
Minute 1 2261 5 ; Minute(Zahl)|Liefert die Minuten einer seriellen Zeitangabe
Sekunde 1 2262 5 ; Sekunde(Zahl)|Liefert die Sekunden einer seriellen Zeitangabe
Jahr 1 2263 5 ; Jahr(Zahl)|Liefert das Jahr einer seriellen Zeitangabe
Monat 1 2264 5 ; Monat(Zahl)|Liefert den Monat einer seriellen Zeitangabe
Tag 1 2265 5 ; Tag(Zahl)|Liefert den Tag einer seriellen Zeitangabe
Ostern 1 2266 5 ; Ostern(Jahr)|Liefert das Datum von Ostern als serielle Zeitangabe
Tage 1 2267 5 ; Tage(Jahr)|Gibt die Anzahl der Tage im Jahr zur<75>ck
Schaltjahr 1 2268 5 ; Schaltjahr(Jahr)|Gibt 1 zur<75>ck, wenn das Jahr ein Schaltjahr ist, 0 sonst
Stunden 1 2269 5 ; Stunden(Zahl)|Liefert die absoluten Stunden einer seriellen Zeitangabe
Log 2? 2300 1 ; Log(x[;b])|Liefert den Logarithmus zur Basis b von x
Wochentag 2? 2310 5 ; Wochentag(Zahl[;Typ])|Liefert den Wochentag einer seriellen Zeitangabe
ExpVert 2 2400 2 ; ExpVert(x;Alpha)|Liefert die Werte der Exponentialverteilung
Zufall 2 2401 1 ; Zufall(a;b)|Liefert eine ganze Zufallszahl zwischen a und b (inkl.)
Wurzel 2? 2402 1 ; Wurzel(x[;r])|Berechnet die r-te Wurzel von x
Arctan2 2 2403 1 ; Arctan2(x;y)|Liefert den Winkel zwischen der X-Achse und den angegebenen Koordinaten
Mod 2 2404 1 ; Mod(x;y)|Berechnet x mod y, also den Rest der ganzzahligen Division x/y
Div 2 2405 1 ; Div(x;y)|Berechnet x div y (ganzzahlige Division)
bSchiebL 2 2410 8 ; bSchiebL(x;n)|Verschiebt (shiftet) x um n Bits nach links
bSchiebR 2 2411 8 ; bSchiebR(x;n)|Verschiebt (shiftet) x um n Bits nach rechts
Summe #* 5000 1 ; Summe(Werte)|Berechnet die Summe der angegebenen Werte
Produkt #* 5001 1 ; Produkt(Werte)|Berechnet das Produkt der angegebenen Werte
Min #* 5002 2 ; Min(Werte)|Ermittelt das Minimum der angegebenen Werte
Max #* 5003 2 ; Max(Werte)|Ermittelt das Maximum der angegebenen Werte
Und #* 5004 3 ; Und(Wahrheitswerte)|Liefert 1, wenn alle Werte ungleich 0 sind
Oder #* 5005 3 ; Oder(Wahrheitswerte)|Liefert 1, wenn mindestens ein Wert ungleich 0 ist
bUnd #* 5010 8 ; bUnd(Werte)|Verkn<6B>pft die angegebenen Werte mit bitweisem UND
bOder #* 5011 8 ; bOder(Werte)|Verkn<6B>pft die angegebenen Werte mit bitweisem ODER
bEor #* 5012 8 ; bEor(Werte)|Verkn<6B>pft die angegebenen Werte mit bitweisem XOR (exklusives ODER)
SkriptNr #* 5020 12 ; SkriptNr(n[;Werte])|F<>hrt das GEMScript-Skript "n.tsc" im Ordner "Skripte\" aus
Mittelwert #* 5100 2 ; Mittelwert(Werte)|Liefert das arithmetische Mittel der angegebenen Werte
GeoMittel #* 5101 2 ; GeoMittel(Werte)|Liefert das geometrische Mittel der angegebenen Werte
HarMittel #* 5102 2 ; HarMittel(Werte)|Liefert das harmonische Mittel der angegebenen Werte
QuadMittel #* 5103 2 ; QuadMittel(Werte)|Liefert das quadratische Mittel der angegebenen Werte
Varianz #* 5110 2 ; Varianz(Werte)|Berechnet die Stichprobenvarianz der angegebenen Werte
VarianzN #* 5111 2 ; VarianzN(Werte)|Berechnet die Varianz der Grundgesamtheit der Werte
StdAbw #* 5112 2 ; StdAbw(Werte)|Berechnet die Stichproben-Standardabweichung der Werte
StdAbwN #* 5113 2 ; StdAbwN(Werte)|Berechnet die Standardabweichung der Grundgesamtheit der Werte
MittelAbw #* 5114 2 ; MittelAbw(Werte)|Liefert die mittlere absolute Abweichung der angegebenen Werte
SumQuadAbw #* 5115 2 ; SumQuadAbw(Werte)|Liefert die mittlere quadratische Abweichung der Werte
Median #* 5116 2 ; Median(Werte)|Berechnet den Median (0.5-Quantil) der Werte
QuartilUnten #* 5117 2 ; QuartilUnten(Werte)|Berechnet das 0.25-Quantil der Werte
QuartilOben #* 5118 2 ; QuartilOben(Werte)|Berechnet das 0.75-Quantil der Werte
Quartilsabstand #* 5119 2 ; Quartilsabstand(Werte)|Berechnet die Differenz zwischen oberem und unterem Quartil
Spannweite #* 5120 2 ; Spannweite(Werte)|Berechnet die Differenz zwischen gr<67><72>tem und kleinstem Wert
GleichVert -3 5200 2 ; GleichVert(x;a;b)|Liefert die Gleichverteilung auf dem Intervall (a,b)
NormVert -3 5201 2 ; NormVert(x;m;z)|Liefert die Werte der Normalverteilung N(m,s^2) mit z=s^2
Datum -3 5210 5 ; Datum(Jahr;Monat;Tag)|Berechnet die serielle Zeitangabe des Datums
Zeit -3 5211 5 ; Zeit(Stunde;Minute;Sekunde)|Berechnet die serielle Zeitangabe der Uhrzeit
LIA -3 5250 4 ; LIA(Ansch;Rest;Dauer)|Lineare Abschreibung pro Periode
DIA -4 5251 4 ; DIA(Ansch;Rest;Dauer;Periode)|Arithmetisch-degressive Abschreibung
GDA2 -45 5252 4 ; GDA2(Ansch;Rest;Dauer;Periode[;Monate])|Geometrisch-degressive Abschreibung
DigA -3 5253 4 ; DigA(Ansch;Dauer;Periode)|Digitale Abschreibung (= DIA mit Restwert 0)
GDA -45 5254 4 ; GDA(Ansch;Rest;Dauer;Periode[;Faktor])|Degressive Doppelratenabschreibung
RMZ -34 5255 4 ; RMZ(Zins;Zzr;Bw[;Zw])|Annuit<69>t (regelm. Zahlung) eines Darlehens oder einer Invest. bei konst. Zinssatz
Wenn -13 5300 3 ; Wenn(Wahrheitswert[;Dann_Wert[;Sonst_Wert]])|F<>hrt eine Wahrheitspr<70>fung aus
Wahl -2* 5301 7 ; Wahl(Index;Argument 1[;...Argument n])|Gibt das Argument mit dem passenden Index (1..n) zur<75>ck
Quantil #2* 5302 2 ; Quantil(alpha;Werte)|Berechnet das alpha-Quantil der Werte
MMult #* 9999 10 ; MMult(Bereich1;Bereich2;BereichZ)|Multipliziert zwei Matrizen und schreibt das Ergebnis in den Zielbereich

135
tools/texel/texel_e.frm Normal file
View File

@@ -0,0 +1,135 @@
;die Zahlenformate
;nur die _Namen_ in den Zeilen bis ";ende" d<>rfen ge<67>ndert werden!
;wer irgend etwas anderes <20>ndert, verliert die Dateikompatibilit<69>t!
;benutzerdefinierte Zahlenformate k<>nnen in texelusr.frm eingetragen werden
#0 Alle
#1 Benutzerdefiniert
#2 Zahlen
#3 Datum
#4 Uhrzeit
#5 Prozent etc.
#6 Wissenschaft
#7 W<>hrung
#8 Winkel
#9 Computer
m1 Januar Februar M<>rz April Mai Juni Juli August September Oktober November Dezember
m2 Jan Feb M<>r Apr Mai Jun Jul Aug Sep Okt Nov Dez
d1 Montag Dienstag Mittwoch Donnerstag Freitag Samstag Sonntag
d2 Mo Di Mi Do Fr Sa So
;ende
c Wei<65> Schwarz Rot Gr<47>n Blau Zyan Gelb Magenta Hellgrau Dunkelgrau Dunkelrot Dunkelgr<67>n Dunkelblau Dunkelzyan Dunkelgelb Dunkelmagenta
2 1 {0|,00}
2 2 {0}
2 3 {#.##0}
2 4 {#.##0|,00}
2 5 {#.##0};-{#.##0}
2 6 [Schwarz]{#.##0};[Rot]-{#.##0}
2 7 {#.##0|,00};-{#.##0|,00}
2 8 [Schwarz]{#.##0|,00};[Rot]-{#.##0|,00}
3 9 [TT].[MM].[JJJJ]
3 10 [TT].[MM].[JJ]
3 11 [TT]. [MMM] [JJ]
3 12 [TT]. [MMM]
3 13 [MMM] [JJ]
3 14 [TTT], [TT]. [MMM] [JJ]
3 15 [TTTT], [T]. [MMMM] [JJJJ]
3 16 [TT].[MM].[JJJJ] [hh]:[mm]
4 17 [H]:[mm] [am/pm]
4 18 [H]:[mm]:[ss] [am/pm]
4 19 [hh]:[mm]
4 20 [hh]:[mm]:[ss]
4 21 [mm]:[ss]
4 22 [TT].[MM].[JJJJ] [hh]:[mm]
5 23 (100){0}%
5 24 (100){0|,00}%
5 25 (1000000){0} ppm
5 26 (1000000){0|,00} ppm
6 27 {0|,00000000E0}
6 28 {0|,00E+00}
6 29 {0|,0E+0}
7 30 [Schwarz]{#.##0|,00} DM;[Rot]-{#.##0|,00} DM
7 31 {#.##0|,00} DM;-{#.##0|,00} DM
7 32 [Schwarz]{#.##0} DM;[Rot]-{#.##0} DM
7 33 {#.##0} DM;-{#.##0} DM
8 34 {0}<7D>
8 35 {0|,00}<7D>
8 36 [w]<5D>
8 37 [w]<5D> [wm]'
8 38 [w]<5D> [wm]' [ws]"
3 39 [TTT]
3 40 [TTTT]
4 41 [#h]:[mm]
4 42 [#h]:[mm]:[ss]
4 43 [Schwarz][#h]:[mm];[Rot]-[#h]:[mm]
4 44 [Schwarz][#h]:[mm]:[ss];[Rot]-[#h]:[mm]:[ss]
9 45 0x[$4];-0x[$4]
9 46 &[&6];-&[&6]
9 47 %[%8];-%[%8]
7 48 [Schwarz]$ {#,##0|.00};[Rot]$ -{#,##0|.00}
7 49 $ {#,##0|.00};$ -{#,##0|.00}
7 50 [Schwarz]$ {#,##0};[Rot]$ -{#,##0}
7 51 $ {#,##0};$ -{#,##0}
7 52 [Schwarz]<5D> {#,##0|.00};[Rot]<5D> -{#,##0|.00}
7 53 <20> {#,##0|.00};<3B> -{#,##0|.00}
7 54 [Schwarz]<5D> {#,##0};[Rot]<5D> -{#,##0}
7 55 <20> {#,##0};<3B> -{#,##0}
3 56 [JJJJ] [MMM] [TT]
3 57 [JJ]/[MM]/[TT]
3 58 [JJJJ]/[MM]/[TT] [hh]:[mm]:[ss]
4 59 [JJJJ]-[MM]-[TT] [hh]:[mm]:[ss]
2 60 {0|.00}
2 61 {#,##0|.00}
2 62 {#,##0|.00};-{#,##0|.00}
2 63 [Schwarz]{#,##0|.00};[Rot]-{#,##0|.00}
7 64 [Schwarz]CAN $ {#,##0|.00};[Rot]CAN $ -{#,##0|.00}
7 65 CAN $ {#,##0|.00};CAN $ -{#,##0|.00}
7 66 [Schwarz]CAN $ {#,##0};[Rot]CAN $ -{#,##0}
7 67 CAN $ {#,##0};CAN $ -{#,##0}
7 68 [Schwarz]{#.##0|,00} FF;[Rot]-{#.##0|,00} FF
7 69 {#.##0|,00} FF;-{#.##0|,00} FF
7 70 [Schwarz]{#.##0} FF;[Rot]-{#.##0} FF
7 71 {#.##0} FF;-{#.##0} FF
3 72 [TT]/[MM]/[JJJJ]
3 73 [TT]/[MM]/[JJ]
9 74 WAHR;WAHR;FALSCH
7 75 [Schwarz]EUR {#.##0|,00};[Rot]EUR -{#.##0|,00}
7 76 EUR {#.##0|,00};EUR -{#.##0|,00}
7 77 [Schwarz]EUR {#.##0};[Rot]EUR -{#.##0}
7 78 EUR {#.##0};EUR -{#.##0}
7 79 [Schwarz]<5D>S {#.##0|,00};[Rot]<5D>S -{#.##0|,00}
7 80 <20>S {#.##0|,00};<3B>S -{#.##0|,00}
7 81 [Schwarz]<5D>S {#.##0};[Rot]<5D>S -{#.##0}
7 82 <20>S {#.##0};<3B>S -{#.##0}
7 83 [Schwarz]sfr {#.##0|,00};[Rot]sfr -{#.##0|,00}
7 84 sfr {#.##0|,00};sfr -{#.##0|,00}
7 85 [Schwarz]sfr {#.##0};[Rot]sfr -{#.##0}
7 86 sfr {#.##0};sfr -{#.##0}
= 86

9
tools/texel/texelusr.dat Normal file
View File

@@ -0,0 +1,9 @@
;Hier k<>nnen Namen f<>r benutzerdefinierte externe GEMScript-
;Skripten eingetragen werden;
;Nummern benutzerdefinierter Skripte m<>ssen immer >=0 und <=22000
;sein, Nummern <0 sind f<>r Texel reserviert!
;nach dem Semikolon folgt die Beschreibung f<>r Funktionsmanager;
;als Trenner d<>rfen nur Spaces verwendet werden;
;die Funktionen werden in die Kategorie 12 ("Extern") aufgenommen.
Kreisfl<EFBFBD>che 42 ; Kreisfl<66>che(r)|Berechnet die Fl<46>che eines Kreises mit dem Radius r

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,25 @@
Es folgt eine Liste der mir bekannten Programme mit GEMscript Unterst<73>tzung:
(Stand: 18.11.97)
Name Ab Autor Bemerkungen
--------------------------------------------------------------------------
Scripter Release 1 C. Wempe, H. Weets Script-Interpreter
jinnee V1.00 M. Lippert Desktop
Finder V1.09 H. Weets Datei-Sucher
freeBase V1.00 H. Weets Datenbank
QStart V2.00 H. Weets Programmstarter
Notice V1.05 H. Weets Editor
RscView Release 4 H. Weets Viewer/Editor f<>r RSC-Dateien
GEMstat V1.00<EFBFBD> C. Sch<63>fer Messwert-Programm
GEMjing V1.03 G. Hoffart Sound-Abspieler
Texel V2.0 T. Much Tabellen-Kalkulation
CAB V? A. Clauss HTML Browser
ArtWorx V? C. Witt Vektorgrafik-Programm
Hinweise auf in dieser Liste fehlende Programme sind hochgradig willkommen.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,964 @@
Fernsteuern von GEM-Applikationen mit
GEMScript
09.11.1997 (Release 1.0)
von
Thomas Much, Holger Weets, Manfred Lippert
Inhaltsverzeichnis
==================
1 Einleitung
2 Das Konzept im <20>berblick
3 GEM-Nachrichten
3.1 Initialisierung
3.1.1 GS_REQUEST
3.1.2 GS_REPLY
3.1.3 Die GS_INFO-Struktur
3.2 Abmeldung
3.2.1 GS_QUIT
3.3 Fernsteuerung
3.3.1 GS_COMMAND
3.3.2 GS_ACK
3.4 Makros
3.4.1 GS_OPENMACRO
3.4.2 GS_MACRO
3.4.3 GS_WRITE
3.4.4 GS_CLOSEMACRO
4 Nachstarten eines GS-Interpreters
5 Standard-GS-Kommandos
5.1 Close
5.2 Copy
5.3 Cut
5.4 Delete
5.5 GetFront
5.6 New
5.7 Open
5.8 Paste
5.9 Print
5.10 Quit
5.11 Save
5.12 SaveAs
5.13 SelectAll
5.14 ToFront
5.15 Undo
6 Weitere GS-Kommandos
6.1 Exec
6.2 CheckApp
7 Parameter
7.1 Leere Parameter
7.2 Datei
7.3 Datei+Pfad
7.4 Script
Anhang
======
A History
B Kontakt
1 Einleitung
*************
GEMScript ist ein Protokoll, um GEM-Applikationen fernzusteuern. Das
Protokoll selbst ist sehr einfach gehalten, so da<64> es f<>r
Programmierer kein gro<72>es Problem darstellt, GEMScript in ihren
Programmen zu unterst<73>tzen.
Diese Dokumentation definiert dieses GEMScript-Protokoll und ist somit
in erster Linie an Programmierer gerichtet. Wohlgemerkt handelt es
sich bei GEMScript noch nicht um ein konkretes Programm, sondern nur
um die Definition einer Kommunikation zwischen GEM-Programmen:
Die am h<>ufigsten auftretende Anwendung einer Kommunikation mittels
GEMScript d<>rfte die durch einen Script-Interpreter darstellen. Einen
solchen Interpreter stellt z.B. "Scripter" von Holger Weets dar.
Festgelegt durch ein Script in einer Sprache, die dieser Interpreter
versteht, verschickt der Interpreter <20>ber das definierte GEMScript-
Protokoll Kommandos an GEM-Programme, die dann die gew<65>nschten
Aktionen ausf<73>hren:
Nat<EFBFBD>rlich k<>nnen auch GEM-Programme ohne einen Script-Interpreter
untereinander per GEMScript kommunizieren.
Die hohe Flexibilit<69>t des GEMScript-Protokolls er<65>ffnet sich dadurch,
da<EFBFBD> in keinster Weise die Kommandos vorgeschrieben sind, die versendet
werden. Es ist nur definiert wie Kommandos verschickt werden, nicht
aber welche Kommandos dies sind.
Jede Applikation kann also ihre eigenen Kommandos bereitstellen, je
nach dem, welche F<>higkeiten sie eben hat. Ein Zeichenprogramm wird
beispielsweise sicher andere Kommandos bereitstellen wollen, als ein
Desktop oder eine Tabellenkalkulation.
Es gibt jedoch ein paar Standard-Kommandos, die in nahezu jeder
Applikation sinnvoll erscheinen, z.B. das <20>ffnen eines Dokumentes.
Daher beschreibt diese GEMScript-Dokumentation ebenfalls einen Satz
solcher Standard-GS-Kommandos, an die sich jede GEMScript-f<>hige
Applikation - soweit m<>glich - halten sollte. Zwingend ist dies jedoch
nicht.
2 Das Konzept im <20>berblick
***************************
Wie im Vorwort schon erw<72>hnt, handelt es sich bei GEMScript um eine
Kommunikation zwischen GEM-Programmen, bei der Kommandos verschickt
werden.
Der eigentliche Austausch basiert auf normalen AES-Nachrichten.
Das zugrundeliegende Prinzip der Kommunikation dabei ist eigentlich
recht einfach:
1. Eine Applikation, die mit einer anderen kommunizieren m<>chte,
meldet sich zun<75>chst einmal bei dieser Applikation an ("Hallo!
Hier bin ich und m<>chte mich gerne mit dir per GEMScript
unterhalten."). Dazu gibt es die Nachrichten GS_REQUEST und
GS_REPLY.
2. Danach kann bereits die "Session" beginnen, d.h. man schickt sich
munter Kommandos zu. Dazu gibt es die Nachrichten GS_COMMAND und
GS_ACK. Die Applikationen unterhalten sich, und sagen
gegenseitig, was zu tun ist. In den meisten F<>llen l<>uft das
ganze recht einseitig ab, d.h. eine Applikation kommandiert, was
zu tun ist (normalerweise der Script-Interpreter) und die andere
Applikation f<>hrt es aus. Nat<61>rlich sind aber auch andere
"Gespr<70>che" denkbar.
3. Will sich eine Applikation nicht mehr unterhalten, meldet sie sich
einfach wieder ab ("Tsch<63><68> dann!"). Dazu gibt es die Nachricht
GS_QUIT.
F<EFBFBD>r Leute, denen das zu einfach ist, gibt es noch ein kleines
Schmankerl, das man in seine GEMScript-f<>higen Applikationen einbauen
kann - aber nicht unbedingt mu<6D>: Die Aufnahme von Aktionen (Makros).
Eine Applikation, die das unterst<73>tzt, nennt man "aufnahmef<65>hig".
Dazu wird nun zwingend ein Script-Interpreter gebraucht, der noch dazu
f<EFBFBD>hig sein mu<6D>, Kommandos aufzuzeichnen, um sie sp<73>ter wieder
abspielen zu k<>nnen. Er mu<6D> quasi selbst<73>ndig Scripts erstellen,
aufgrund der Informationen, die ihm eine Applikation liefert. F<>hrt
man ein solches entstandene Script zu einem sp<73>teren Zeitpunkt aus, so
wiederholt die Applikation sinngem<65><6D> genau das, was sie bei der
Aufnahme gemacht hat.
Hier der prinzipielle Ablauf einer Aufnahme:
1. Der Benutzer aktiviert die Aufnahme in einer Applikation. Die
Applikation sucht daraufhin den GEMScript-Interpreter (startet
ihn gegebenenfalls nach) und initialisiert die GEMScript-
Kommunikation in gewohnter Weise mit GS_REQUEST/GS_REPLY. Meist
mu<6D> der Benutzer nun noch ein File ausw<73>hlen, in der das
aufzunehmende Script landen soll.
2. Die Applikation gibt dem Interpreter bekannt, da<64> sie jetzt gerne
aufnehmen m<>chte. Dazu existiert die Nachricht GS_OPENMACRO. Ist
der Interpreter einverstanden, schickt er GS_MACRO zur<75>ck, als
Zeichen, da<64> nun die Aufnahme beginnen kann.
3. Die Applikation sendet nun alle Aktionen, die aufgenommen werden
sollen, mit der Nachricht GS_WRITE an den Interpreter. Dieser
erzeugt daraus das Script.
4. Beendet der Benutzer die Aufnahme, so sagt die Applikation dies
dem Interpreter mit der Nachricht GS_CLOSEMACRO. Fertig.
Hat man eine Applikation erst mal GEMScript-f<>hig gemacht, stellt im
Grunde also auch die Aufnahmef<65>higkeit kein gro<72>es Problem mehr dar.
Um das ganze zu vervollst<73>ndigen gibt es noch eine weitere kleine
Variante der Aufnahme: Die applikations<6E>bergreifende Aufnahme.
Dazu ist eine weitere spezielle Applikation n<>tig, die diese Aufnahme
koordiniert: Der Aufnahme-Server. Der Desktop "jinnee" funktioniert
beispielsweise als ein solcher Server. Auch diese
applikations<EFBFBD>bergreifende Aufnahme sei kurz erl<72>utert:
1. Der Benutzer aktviert die applikations<6E>bergreifende Aufnahme im
Aufnahme-Server. Wie bei einer normalen Aufnahme, sucht dieser
Server den GEMScript-Interpreter und initialisiert die
GEMScript-Kommunikation mit GS_REQUEST/GS_REPLY.
2. Wie bei der normalen Aufnahme, beginnt der Server, eine Aufnahme
beim Interpreter zu starten (GS_OPENMACRO). Der Interpreter
antwortet mit GS_MACRO.
3. Au<41>erdem versucht der Aufnahme-Server GEMScript-Kontakt zu allen
laufenden Applikationen aufzunehmen (GS_REQUEST/GS_REPLY). Bei
Applikationen, bei denen dies geklappt hat, l<>st der Server quasi
"von au<61>en" eine Aufnahme mit der Nachricht GS_MACRO aus. Sind
die Applikationen von au<61>en aufnahmef<65>hig, fangen sie jetzt an,
munter ihre Kommandos per GS_WRITE an den Server zu schicken.
(F<>r die Applikationen ist der Server in diesem Falle der
Interpreter.)
4. Der Server sammelt alle aufzunehmenden Kommandos aller laufenden
Applikationen, kennzeichnet diese speziell (um sie sp<73>ter beim
Abspielen des Scripts wieder zu erkennen), und schickt diese
neuen Kommandos als "seine" aufzunehmenden Kommandos an den
Interpreter weiter. Dieser zeichnet sie im Script auf.
4. Beendet der Benutzer die Aufnahme, unterbricht der Server die
Aufnahme bei allen Applikationen ebenfalls wieder "von au<61>en".
Ebenso beendet er seine eigene Aufnahme beim Interpreter. (Beides
mit GS_CLOSEMACRO). Fertig.
5. Spielt man das entstandene Script ab, so findet der Interpreter
nur Kommandos, die f<>r den Server bestimmt sind, und schickt
diese dann auch an ihn. Der Server wiederum erkennt, da<64> es sich
um Kommandos anderer Applikationen handelt, und leitet sie
entsprechend einfach weiter. Hier sieht man den Vorteil, den der
Server hat, wenn es sich um ein Desktop handelt (wie im Falle
jinnee): L<>uft eine Applikation beim Abspielen des Scripts nicht,
kann er diese meist ohne gro<72>en Aufwand einfach nachstarten,
sofern die Applikation im Desktop angemeldet ist.
Nach diesem <20>berblick der M<>glichkeiten kann die konkrete
Dokumentation des GEMScript-Protokolls beginnen.
3 GEM-Nachrichten
******************
3.1 Initialisierung
====================
3.1.1 GS_REQUEST
-----------------
Um festzustellen, ob eine Applikation GEMScript unterst<73>tzt, schickt
man ihr folgende Message.
GS_REQUEST
msg[0] 0x1350 (4944)
msg[1] ap_id
msg[2] 0
msg[3]
+ Pointer auf GS_INFO-Struktur
msg[4]
msg[5] 0
msg[6] 0
msg[7] beliebige ID
Antwort:
Wenn die Applikation GEMScript versteht, erh<72>lt man als Antwort
GS_REPLY.
Man mu<6D> jede Applikation nat<61>rlich nur einmal vor dem ersten Kommando
auf GEMScript testen.
3.1.2 GS_REPLY
---------------
GS_REPLY wird von einer GEMScript-f<>higen Applikation als Antwort auf
GS_REQUEST verschickt.
GS_REPLY
msg[0] 0x1351 (4945)
msg[1] ap_id
msg[2] 0
msg[3]
+ Pointer auf GS_INFO-Struktur
msg[4]
msg[5] 0
msg[6] 0: OK, Applikation kann GS-Kommunikation durchf<68>hren
sonst: Fehler, GS-Kommunikation derzeit nicht m<>glich
msg[7] ID aus GS_REQUEST
Wenn eine Applikation in msg[6] einen Fehler meldet, d<>rfen an sie
keine weiteren GS-Nachrichten geschickt werden. Man kann aber zu einem
sp<EFBFBD>teren Zeitpunkt mit GS_REQUEST erneut die GEMScript-F<>higkeit
erfragen.
Man beachte, da<64> eine Applikation mehrere GS_REQUEST-Nachrichten
erhalten kann. Zum einen k<>nnen verschiedene Applikationen eine
Kommunikation beginnen, aber durch die ID kann eine Applikation sogar
in mehreren "Sessions" gleichzeitig kommunizieren.
Ist eine Applikation nur auf eine laufende Kommunikation gleichzeitig
ausgelegt (z.B. weil der aktuelle Kommunikationspartner in einer
globalen Variablen vermerkt wird), so mu<6D> darauf geachtet werden, da<64>
alle folgenden GS_REQUEST-Nachrichten korrekt abgelehnt werden, wenn
bereits eine Kommunikation l<>uft. (Am besten mit einem Wert ungleich 0
in msg[6].)
3.1.3 Die GS_INFO-Struktur
---------------------------
typedef struct {
long len; /* L<>nge der Struktur in Bytes */
int version; /* Versionsnummer des Protokolles beim Sender
(z.Z. 0x0100 = 1.0) */
int msgs; /* Bitmap der unterst<73>tzten Nachrichten (GSM_xxx) */
long ext; /* benutzte Endung, etwa '.SIC' */
} GS_INFO;
GSM_COMMAND = 0x0001 /* kann GS_COMMAND empfangen */
GSM_MACRO = 0x0002 /* kann GS_OPENMACRO, GS_WRITE und GS_CLOSEMACRO
empfangen, GS_MACRO verschicken
(Interpreter) */
GSM_WRITE = 0x0004 /* kann GS_OPENMACRO, GS_WRITE und GS_CLOSEMACRO
verschicken, GS_MACRO empfangen
(aufnahmef<65>hige Applikation) */
Anmerkungen zur GS_INFO-Struktur:
<20> Die Struktur mu<6D> per Mxalloc() im globalen Speicher alloziert
sein.
<20> Die Strukur darf vom Empf<70>nger nicht ver<65>ndert werden. D.h.
GS_REQUEST- und GS_REPLY-Sender m<>ssen jeweils ihre eigene
Struktur allozieren.
<20> Da man nicht feststellen kann, wann der Empf<70>nger die Struktur
ausgelesen hat, sollte sie grunds<64>tzlich verf<72>gbar sein. Es
empfiehlt sich daher, die Struktur am Anfang des Programmes zu
allozieren und erst am Ende wieder freizugeben.
<20> long belegt 32 Bit. Entspricht also auch size_t oder dem
sizeof()-Typ in Pure-C.
<20> int belegt 16 Bit.
<20> ext ist f<>r den Interpreter gedacht. Andere Applikationen k<>nnen
hier 0 eintragen.
3.2 Abmeldung
==============
3.2.1 GS_QUIT
--------------
GS_QUIT sollte an den Kommunikationspartner geschickt werden, wenn
eine fernsteuernde Applikation keine GS_COMMAND-Befehle mehr
verschickt oder wenn eine ferngesteuerte Applikation solche
Nachrichten nicht mehr auswerten kann/m<>chte (z.B. weil die
Applikation terminiert).
GS_QUIT
msg[0] 0x1354 (4948)
msg[1] ap_id
msg[2] 0
msg[3] 0
msg[4] 0
msg[5] 0
msg[6] 0
msg[7] ID aus GS_REQUEST
3.3 Fernsteuerung
==================
3.3.1 GS_COMMAND
-----------------
GS_COMMAND
msg[0] 0x1352 (4946)
msg[1] ap_id
msg[2] 0
msg[3]
+ Pointer auf Kommandozeile, s.u.
msg[4]
msg[5] 0
msg[6] 0
msg[7] ID aus GS_REQUEST
Die Kommandozeile enth<74>lt das eigentliche Kommando, gefolgt von
optionalen Parametern. Kommando und Parameter sind durch ASCII #0
getrennt, am Ende der Kommandozeile steht ASCII #0#0, in C-Notation
also z.B.
"Kommando\0Parameter 1\0Parameter 2\0\0"
Die Kommandos m<>ssen beim Empf<70>nger ohne Beachtung der Gro<72>-/
Kleinschreibung ausgewertet werden. Dabei w<>re es sch<63>n, wenn
m<EFBFBD>glichst viele Standard-GS-Kommandos unterst<73>tzt w<>rden.
Die Zeichenkette mu<6D> per Mxalloc() im globalen Speicher alloziert
sein.
Antwort:
Als Antwort erh<72>lt man die Nachricht GS_ACK, die zum Freigeben dieses
Speichers benutzt werden kann.
Siehe auch: Parameter.
3.3.2 GS_ACK
-------------
Folgende Nachricht wird von einer GEMScript-f<>higen Applikation als
Antwort auf GS_COMMAND verschickt. Die fernsteuernde Applikation kann
beim Empfang dieser Nachricht z.B. den Speicher vom msg[3/4] wieder
freigeben.
GS_ACK
msg[0] 0x1353 (4947)
msg[1] ap_id
msg[2] 0
msg[3]
+ exakt die Werte der empfangenen GS_COMMAND-Nachricht
msg[4]
msg[5]
+ Ergebnis bzw. Fehlermeldung als ASCIIZZ-Text (s.u.) oder NULL
msg[6]
msg[7] 0: (GSACK_OK) OK, Kommando wurde oder wird ausgef<65>hrt
1: (GSACK_UNKNOWN) Kommando unbekannt
2: (GSACK_ERROR) Fehler (Kommando nicht ausgef<65>hrt)
Wird in msg[5/6] eine R<>ckgabe geliefert, liegt diese im Format wie
die GS_COMMAND-Kommandozeile vor, also die einzelnen Werte durch ASCII
#0 getrennt mit ASCII #0#0 am Ende des R<>ckgabestrings.
Antwort:
Wenn die auswertende Applikation in msg[5/6] ein Ergebnis der Funktion
oder eine Fehlerbeschreibung liefert (also einen Wert ungleich NULL),
mu<EFBFBD> die fernsteuernde Applikation folgende Antwort zur<75>ckschicken. Die
auswertende Applikation kann dann ihrerseits den Ergebnisspeicher
freigeben.
GS_ACK
msg[0] 0x1353 (4947)
msg[1] ap_id
msg[2] 0
msg[3] 0
msg[4] 0
msg[5]
+ exakt die Werte der empfangenen GS_ACK-Nachricht
msg[6]
msg[7] 0
Anmerkungen zum R<>ckgabestring:
Der R<>ckgabewert eines Kommandos sollte immer <20>ber msg[5]+msg[6]
zur<EFBFBD>ckgegeben werden, man sollte nicht msg[7] daf<61>r "mi<6D>brauchen".
Dies gilt vor allem f<>r Kommandos, die wahr oder falsch zur<75>ckliefern.
Sofern das Kommando korrekt ausgef<65>hrt werden konnte, sollte man bei
"wahr" einen beliebigen nicht-leeren R<>ckgabestring (z.B. "1")
zur<EFBFBD>ckliefern, bei "false" empfiehlt sich Leerstring oder Nullpointer.
Dies ist z.B. f<>r den Interpreter "Scripter" von Holger sehr
praktisch, denn dann k<>nnen True/False-Kommandos bequem durch
folgendes Script abgefragt werden:
if (kommando(...))
{
/* wahr */
}
else
{
/* falsch */
}
W<EFBFBD>rde das Ergebnis ist msg[7] zur<75>ckgeliefert, m<><6D>te man im Beispiel
"Scripter" folgendes schreiben:
kommando(...)
if (errno == 0)
{
/* wahr */
}
else
{
/* falsch */
}
3.4 Makros
===========
3.4.1 GS_OPENMACRO
-------------------
GS_OPENMACRO
(App->Interpreter)
msg[0] 0x1355 (4949)
msg[1] ap_id
msg[2] 0
msg[3]
+ Pointer auf Dateinamen, unter dem das Script gespeichert werden soll
msg[4]
msg[5] 0
msg[6] 0
msg[7] 0
Eine Applikation will vom Script-Interpreter aufgenommen werden. Als
Antwort bekommt sie GS_MACRO.
Der Interpreter sollte <20>ber die Environment-Variable GEMSCRIPT gesucht
und ggf. auch nachgestartet werden.
Die Datei-Endung f<>r Scripte kann die Applikation vom Interpreter <20>ber
die GS_INFO-Struktur bei GS_REPLY erfahren. Diese Endung wird evtl.
f<EFBFBD>r den Fileselector ben<65>tigt, den man in den meisten F<>llen vor einer
Aufnahme aufrufen wird.
Zusammenfassung des Ablaufs einer Aufnahme:
<20> Interpreter suchen und ggf. nachstarten. (GEMSCRIPT-Variable)
<20> Beim Interpreter anmelden (GS_REQUEST)
<20> Interpreter anwortet mit GS_REPLY (liefert GS_INFO)
<20> Fileselector aufrufen (Extension aus GS_INFO vom Interpreter)
<20> Aufnahme mit GS_OPENMACRO starten
<20> Interpreter liefert GS_MACRO
<20> Aufnahme per GS_WRITE/GS_ACK
<20> Am Ende Aufnahme mit GS_CLOSEMACRO beenden
3.4.2 GS_MACRO
---------------
GS_MACRO
(Interpreter->App)
msg[0] 0x1356 (4950)
msg[1] ap_id
msg[2] 0
msg[3]
+ exakt die Werte der empfangenen GS_OPENMACRO-Nachricht
oder NULL bei Aufnahme-Aufforderung
msg[4]
msg[5] ID (am einfachsten das Dateihandle) zur Identifizierung des Scripts
msg[6] 0: Datei ist ge<67>ffnet, Aufzeichnung kann beginnen; sonst: Fehler
msg[7] 0
Zu beachten: GS_MACRO kann auch ohne ein vorheriges GS_OPENMACRO
auftreten. msg[3/4] ist dann NULL.
Dieser Fall soll quasi Aufforderung zur Aufnahme betrachtet werden,
wodurch z.B. eine applikations<6E>bergreifende Aufnahme durch einen
externen Aufnahme-Server m<>glich ist. Die Applikation wird also
aufgefordert, ab jetzt alle Aktionen per GS_WRITE an den Aufnahme-
Server (der das GS_MACRO gesendet hat) zu schicken.
Will oder kann die Applikation gerade nicht aufnehmen, so mu<6D> sie ein
GS_CLOSEMACRO zur<75>cksenden.
Zusammenfassung des Ablaufs einer erzwungenen Aufnahme:
<20> Aufnahmeserver (z.B. jinnee) meldet sich mit GS_REQUEST bei der
Applikation an. Applikation antwortet mit GS_REPLY.
Aufnahmeserver stellt <20>ber GS_INFO-Struktur fest, da<64> Applikation
GS_MACRO kann, also aufnahmef<65>hig ist.
<20> Aufnahmeserver erzwingt Aufnahme mit GS_MACRO (NULL im
Dateinamen)
<20> Applikation antwortet entweder mit GS_CLOSEMACRO (Ablehnung) oder
nimmt einfach mit GS_WRITE/GS_ACK die Aktionen auf.
<20> Aufnahmeserver oder Applikation beendet Aufnahme mit
GS_CLOSEMACRO
3.4.3 GS_WRITE
---------------
GS_WRITE
(App->Interpreter)
msg[0] 0x1357 (4951)
msg[1] ap_id
msg[2] 0
msg[3]
+ Pointer auf Kommandozeile (wie bei GS_COMMAND)
msg[4]
msg[5] ID aus GS_MACRO
msg[6] 0
msg[7] 0
Der Interpreter antwortet auf diese Nachricht wie bei GS_COMMAND mit
GS_ACK, ohne allerdings in msg[5/6] ein Ergebnis zur<75>ckzuliefern.
Falls in diesem GS_ACK ein Fehler signalisiert wird, sollten keine
weiteren GS_WRITE-Nachrichten verschickt werden.
3.4.4 GS_CLOSEMACRO
--------------------
GS_CLOSEMACRO
(App->Interpreter / Interpreter->App)
msg[0] 0x1358 (4952)
msg[1] ap_id
msg[2] 0
msg[3] 0
msg[4] 0
msg[5] ID aus GS_MACRO
msg[6] 0
msg[7] 0
Beendet die Aufzeichnung eines Scripts.
Zu beachten: Die Aufnahme kann von beiden Seiten beendet werden.
Sowohl von der aufnehmenden Applikation selbst, als auch vom
Interpreter (Aufnahme-Server bei applikations<6E>bergreifender Aufnahme).
4 Nachstarten eines GS-Interpreters
************************************
Damit Applikationen (z.B. zum Aufzeichnen von Makros) einen GS-
Interpreter per appl_find() finden oder - falls ein solcher nicht
l<EFBFBD>uft - nachstarten k<>nnen, kann im Environment die Variable GEMSCRIPT
gesetzt werden, beispielsweise
#_ENV GEMSCRIPT=D:\SCRIPTER\SCRIPTER.APP
5 Standard-GS-Kommandos
************************
5.1 Close
==========
Kommando: Close
Parameter: Datei (optional)
R<EFBFBD>ckgabe: keine
Schlie<EFBFBD>t das der Datei entsprechende Fenster. Wenn keine Datei
<EFBFBD>bergeben wurde, wird das oberste Fenster geschlossen. Das Kommando
darf auch so implementiert sein, da<64> mehrere Datei-Parameter auf
einmal <20>bergeben werden k<>nnen.
5.2 Copy
=========
Kommando: Copy
Parameter: Datei (optional)
R<EFBFBD>ckgabe: keine
Kopiert die Selektion der angegebenen Datei auf das Klemmbrett. Wenn
keine Datei angegeben ist, wird die Selektion des obersten Fensters
verwendet.
5.3 Cut
========
Kommando: Cut
Parameter: Datei (optional)
R<EFBFBD>ckgabe: keine
Schneidet die Selektion der angegebenen Datei aus und schreibt sie auf
das Klemmbrett. Wenn keine Datei angegeben ist, wird die Selektion des
obersten Fensters verwendet.
5.4 Delete
===========
Kommando: Delete
Parameter: Datei (optional)
R<EFBFBD>ckgabe: keine
Schneidet die Selektion der angegebenen Datei aus. Wenn keine Datei
angegeben ist, wird die Selektion des obersten Fensters verwendet.
5.5 GetFront
=============
Kommando: GetFront
Parameter: keine
R<EFBFBD>ckgabe: Datei oder Datei+Pfad
Falls das oberste Fenster der Applikation einen Namen besitzt, mit dem
es in den GS-Kommandos identifiziert werden kann, sollte dieser als
Antwort auf dieses Kommando zur<75>ckgeliefert werden.
5.6 New
========
Kommando: New
Parameter: keine
R<EFBFBD>ckgabe: keine
Legt ein neues Dokument an.
5.7 Open
=========
Kommando: Open
Parameter: Datei+Pfad (optional)
R<EFBFBD>ckgabe: keine
<EFBFBD>ffnet die angegebene Datei. Wenn keine Datei <20>bergeben wurde, sollte
dem Benutzer die Dateiauswahlbox o.<2E>. angezeigt werden. Das Kommando
darf auch so implementiert sein, da<64> mehrere Datei-Parameter auf
einmal <20>bergeben werden k<>nnen.
5.8 Paste
==========
Kommando: Paste
Parameter: Datei (optional)
R<EFBFBD>ckgabe: keine
F<EFBFBD>gt den Inhalt des Klemmbretts in die Selektion der angebenenen Datei
ein. Wenn keine Datei angegeben ist, wird die Selektion des obersten
Fensters verwendet.
5.9 Print
==========
Kommando: Print
Parameter: Datei (optional)
R<EFBFBD>ckgabe: keine
Druckt die angegebene Datei aus. Wenn keine Datei angegeben ist, wird
das oberste Fenster ausgedruckt. Das Kommando darf auch so
implementiert sein, da<64> mehrere Datei-Parameter auf einmal <20>bergeben
werden k<>nnen.
5.10 Quit
==========
Kommando: Quit
Parameter: keine
R<EFBFBD>ckgabe: keine
Beendet die Applikation.
5.11 Save
==========
Kommando: Save
Parameter: Datei (optional)
R<EFBFBD>ckgabe: keine
Speichert die angegebene Datei. Wenn keine Datei <20>bergeben wurde, wird
das oberste Fenster gespeichert. Das Kommando darf auch so
implementiert sein, da<64> mehrere Datei-Parameter auf einmal <20>bergeben
werden k<>nnen.
5.12 SaveAs
============
Kommando: SaveAs
Parameter: Datei, Datei (optional)
R<EFBFBD>ckgabe: keine
Dieses Kommando hat mindestens einen, maximal zwei Parameter. Der
erste bezeichnet den neuen Dateinamen, der zweite das zu speichernde
Fenster. Wenn der zweite Parameter nicht angegeben ist, wird das
oberste Fenster unter dem Dateinamen des ersten Parameters
gespeichert.
5.13 SelectAll
===============
Kommando: SelectAll
Parameter: Datei (optional)
R<EFBFBD>ckgabe: keine
Markiert die gesamte angegebene Datei. Wenn keine Datei angegeben ist,
wird das Dokument im obersten Fenster selektiert.
5.14 ToFront
=============
Kommando: ToFront
Parameter: Datei
R<EFBFBD>ckgabe: keine
Bringt das Fenster mit der angegebenen Datei nach vorne.
5.15 Undo
==========
Kommando: Undo
Parameter: Datei (optional)
R<EFBFBD>ckgabe: keine
Macht die letzte Aktion in der angegebenen Datei r<>ckg<6B>ngig. Wenn
keine Datei angegeben ist, wird die letzte Aktion im obersten Fenster
r<EFBFBD>ckg<EFBFBD>ngig gemacht.
6 Weitere GS-Kommandos
***********************
Im folgenden sind alle Kommandos aufgelistet, bei denen zwar eine
Standardisierung Sinn macht, die aber nicht zwingend unterst<73>tzt
werden m<>ssen, oder nur von bestimmten Programmen zu unterst<73>tzen
sind.
6.1 Exec
=========
Kommando: Exec
Parameter: <Script> <Parameter>
R<EFBFBD>ckgabe: keine
Dieses Kommando mu<6D> von jedem GEMScript-Interpreter unterst<73>tzt
werden. Es dient dazu, Script-Dateien auszuf<75>hren.
Mit <Script> wird die Script-Datei angegeben, dabei mu<6D> der
Interpreter mindestens eine komplette Pfadangabe samt Extension
verstehen.
<Parameter> (optional) steht f<>r weitere beliebige Parameter, die an
das Script weitergegeben werden, falls dies der Interpreter erlaubt.
6.2 CheckApp
=============
Kommando: CheckApp
Parameter: Datei
R<EFBFBD>ckgabe: keine
Versucht, die angegebene Datei nachzustarten.
7 Parameter
************
7.1 Leere Parameter
====================
Mehrere Parameter sind durch ASCII #0 getrennt, und das Ende der
Kommandozeile ist mit ASCII #0#0 gekennzeichnet (siehe GS_COMMAND).
Deshalb mu<6D>te f<>r den Sonderfall "leerer Parameter" eine Ausnahme
eingef<EFBFBD>hrt werden:
Leere Parameter werden durch das ASCII-Zeichen #1 gekennzeichnet, z.B.
"Kommando\0Gleich folgt ein leerer Parameter\0\1\0Gemerkt?\0\0"
Wichtig: Au<41>erdem sind Parameter, die mit den ASCII-Zeichen #2 bis
einschlie<EFBFBD>lich #6 anfangen, f<>r zuk<75>nftige Zwecke reserviert, und
m<EFBFBD>ssen vom Empf<70>nger derzeit ignoriert werden!
Beispiel:
"Kommando\0Parameter 1\0\2Dieser Text wird ignoriert\0Parameter 2\0\0"
7.2 Datei
==========
Der Datei-Parameter bezeichnet einen Dateinamen (mit oder ohne
Pfadangabe). Da einzelne Kommandos durch ASCII #0 getrennt werden,
erfolgt kein (!) Quoting.
GEMScript-f<>hige Applikationen stellen i.d.R. mit einem solchen
Parameter fest, welches Fenster von einem Kommando betroffen ist. Wenn
ein direkter Vergleich von Kommando-Dateinamen und dem Fenster
zugewiesenen Dateinamen keinen Erfolg bringt, sollte die Applikation
nach einer m<>glichst gro<72>en <20>bereinstimmung von Teilstrings suchen.
7.3 Datei+Pfad
===============
Dieser Parameter bezeichnet einen Dateinamen mit absoluter Pfadangabe.
7.4 Script
===========
Dieser Parameter bezeichnet eine Script-Datei (f<>r das Exec-Kommando).
Es handelt sich um eine Datei-Angabe, wobei die Endung der konkreten
Script-Datei auch weggelassen werden kann. Falls dia absolute
Pfadangabe fehlt, mu<6D> er Interpreter in der Lage sein, die Datei zu
finden (z.B. weil sie im Verzeichnis des Interpreters liegt).
A History
**********
Rev 1.0 (14.11.97)
<20> erste <20>ffentliche Version
B Kontakt
**********
Thomas Much, Gerwigstra<72>e 46, D-76131 Karlsruhe, Germany
Fax: +49 / (0)721 / 62 28 21
EMail: Thomas Much @ KA2 (MausNet)
Thomas_Much@ka2.maus.de
Thomas.Much@stud.uni-karlsruhe.de (Internet)
Holger Weets, Tangastra<72>e 45, D-26121 Oldenburg, Germany
EMail: Holger Weets @ OL (MausNet)
Holger_Weets@ol.maus.de (Internet)
Manfred Lippert, Nordring 102, D-90409 N<>rnberg, Germany
EMail: Manfred Lippert @ N (MausNet)
Manfred_Lippert@n.maus.de
ft195@fen.baynet.de (Internet)

View File

@@ -0,0 +1,13 @@
; Standard-3D-Konfiguration
; Um diese Konfiguration zu vewende, mu<6D> die Datei in HUGO.CNF
; umbenannt und in das Overlay-Verzeichnis kopiert werden.
#SWAP_BUTTONS ON ; OK nach rechts
#CENTER_DIALOG OFF ; Dialog beim Mauszeiger
#POPUP_ENTRIES 16 ; 16 Popup-Eintr<74>ge
#SPD_COLOR 10 ; Speedo-Fonts dunkelrot
#TTF_COLOR 11 ; TrueType-Fonts dunkelgr<67>n
#PFB_COLOR 12 ; Type1-Fonts dunkelblau
#FONTS_BY_KIND ON ; Fonts nach Art sortieren
#FONT_PREVIEW ON ; Zeichensatzvorschau im Popup
#INTERIOR_COLOR 8 ; Hintergrundfarbe (Edit-Objekte!) hellgrau

View File

@@ -0,0 +1,17 @@
; Brauner 3D-Look
; Um diese Konfiguration zu vewende, mu<6D> die Datei in HUGO.CNF
; umbenannt und in das Overlay-Verzeichnis kopiert werden.
#SWAP_BUTTONS ON ; OK nach rechts
#CENTER_DIALOG OFF ; Dialog beim Mauszeiger
#POPUP_ENTRIES 16 ; 16 Popup-Eintr<74>ge
#BITMAP_COLOR 6 ; Bitmap-Fonts gelb
#SPD_COLOR 4 ; Speedo-Fonts blau
#TTF_COLOR 10 ; TrueType-Fonts dunkelrot
#PFB_COLOR 8 ; Type1-Fonts hellgrau
#FONTS_BY_KIND ON ; Fonts nach Art sortieren
#FONT_PREVIEW ON ; Zeichensatzvorschau im Font-Popup
#BACK_COLOR 14 ; Hintergrund dunkelgelb
#3D_LCOLOR 6 ; Helle 3D-Farbe gelb
#3D_DCOLOR 10 ; Dunkle 3D-Farbe dunkelrot
#INTERIOR_COLOR 6 ; Hintergrundfarbe gelb

View File

@@ -0,0 +1,243 @@
; HuGo!-Konfiguration
; ===================
;
; (c) 1994-95 RoSoft
; Stefan Rogel
; K<>hlerweg 1
; 67661 Kaiserslautern
; Bankverbindung: Kreissparkasse Kaiserslautern
; BLZ 540 502 20
; Kto. 100 807 577
; eMail: Mausnetz: Stefan Rogel @ LU
; Sonst: Stefan_Rogel@lu.maus.de
; Mit der Datei HUGO.CNF kann HuGo! applikationsunabh<62>ngig konfiguriert wer-
; den. In dieser beispielhaften Einstellung sind alle verf<72>gbaren Schalter
; kurz erl<72>utert.
;
; Die Schalterstellungen werden nur erkannt, wenn nach dem '#' der Schalter-
; name UNMITTELBAR FOLGT! Gro<72>- und Kleinschreibung spielt ebenso wie die
; Reihenfolge keine Rolle. Es m<>ssen nur diejenigen Schalter eingetragen wer-
; den, deren Funktion ge<67>ndert werden soll.
; Bei mehreren gleichlautenden Eintr<74>gen gilt der jeweils letzte.
;
; Insgesamt ist HuGo! beim Scannen dieser Datei sehr tolerant: Was er nicht
; erkennt, wird ignoriert, ung<6E>ltige Schalterstellungen werden korrigiert.
; Aus diesem Grund w<>re es auch nicht n<>tig, Kommentare mit einem ';' einzu-
; leiten.
;
; HUGO.CNF mu<6D> in das Verzeichnis kopiert werden, in dem sich auch XFSL.OVL
; befindet (siehe Anleitung zu HuGo!).
; ALLGEMEINE EINSTELLUNGEN
; ========================
;
; Mit diesen Parametern wird das Verhalten von HuGo! definiert. Sie k<>nnen
; jeweils einen der folgenden Werte annehmen:
;
; - ON Aktiv
; - OFF Inaktiv
;
#BACK_DIAL OFF ; Hintergrundbedienung m<>glich?
; Default: ON
#AUTO_REDRAW ON ; Automatisches Redraw des Textbeispieles?
; Default: ON
#CENTER_DIALOG OFF ; Dialog zentrieren? Wenn dieser Schalter deaktiviert
; ist, erscheint der Dialog an der Mausposition.
; Default: ON
#SWAP_BUTTONS ON ; "Ok"-Button rechts neben dem "Abbruch"-Button? An-
; dernfalls ist der "Abbruch"-Knopf rechts.
; Default: OFF
#FONTS_BY_KIND ON ; Zeichens<6E>tze nach ihrer Art sortieren? Wenn dieser
; Schalter gesetzt ist, werden im Font-Popup zuerst
; die Bitmap-, dann die Speedo-, dann die TrueType und
; zuletzt die Type1-Fonts angezeigt. Ansonsten sind
; die Fonts alphabetisch sortiert.
; Default: OFF
#KIND_TITLE ON ; Wenn FONTS_BY_KIND gesetzt ist, bewirkt dieser Schal-
; ter, da<64> die Fontarten im Popup durch <20>berschriften
; gegliedert werden.
; Default: ON
#FONT_PREVIEW ON ; Mit diesem Schalter kann die Zeichensatzvorschau im
; Font- und im Schnitt-Popup aktiviert werden.
; Dies ist nur auf schnellen Rechnern empfehlenswert!
; Default: OFF
#CHANGE_SKEW ON ; Skewing-Anzeige im Textbeispiel vertauschen? Wenn
; dieser Schalter gesetzt ist, wird bei positiven
; Neigungsgraden die Schrift nach rechts und bei nega-
; tiven Werten nach links geneigt. Diese Umkehrung be-
; zieht sich nur auf die Anzeige im Textbeispiel.
; Default: OFF
#3D ON ; 3D-Effekte im Dialog?
; Default: ON, wenn mehr als 15 Farben verf<72>gbar sind.
#3D_POPUP ON ; 3D-Effekte in den Popups?
; Default: ON, wenn mehr als 15 Farben verf<72>gbar sind.
#3D_ENTRIES OFF ; Popup-Eintr<74>ge mit 3D-Effekten?
; Default: OFF
#CHECKER '*' ; Zeichen, mit dem der aktive Eintrag im Popup mar-
; kiert wird. M<>gliche Werte wie Fontkennzeichnung,
; s.u. Die <20>nderung des Defaultwertes ist dann sinn-
; voll, wenn der GEM-"Haken" im Dialogfont nicht de-
; finiert ist.
; Bei aktiviertem #FONT_PREVIEW wird im Font-Popup
; kein Eintrag mit dem Checker markiert.
; Default: 8 (GEM-"Haken")
; TEXTBEISPIEL
; ============
;
; Mit diesen Parametern werden die ersten beiden Textbeispiele gesetzt. Das
; dritte Textbeispiel ist der Fontname (nicht <20>nderbar), das vierte ist von
; der rufenden Applikation vorgegeben und ebenfalls nicht <20>nderbar.
; Als Werte k<>nnen Zeichenketten von bis zu 60 Zeichen angegeben werden.
; ACHTUNG: Nach dem String ist kein Kommentar m<>glich!
;
#EXAMPLE1 "ABCDabcd"
; 1. Textbeispiel
; Default: "Zwei Boxk<78>mpfer jagen Eva quer durch Sylt"
#EXAMPLE2 ""
; 2. Textbeispiel
; Default: "ABCDE...Zabcde...z"
; DIALOGPARAMETER
; ===============
;
; Mit diesen Parametern wird das Aussehen des HuGo!-Dialoges festgelegt
; Sie k<>nnen als Werte nat<61>rliche Zahlen annehmen, die Farbparameter nur
; Werte von 0 bis 15!
;
#SMALL_ID 276 ; ID des kleinen Dialogfonts
; Default: Systemfont
#IBM_ID 250 ; ID des gro<72>en Dialogfonts
; Default: Systemfont
#COLORS 16 ; Anzahl der einstellbaren Farben
; Default: Vorhandene Farben
#TEXT_COLOR 1 ; Textfarbe der Dialogelemente
; Default: 1 (schwarz)
#BACK_COLOR 8 ; Hintergrundfarbe des Dialogs
; Default: 0 (wei<65>) bzw. 8 (hellgrau) (bei >15 Farben)
#INTERIOR_COLOR 0 ; F<>llfarbe der Dialogelemente
; Default: 0 (wei<65>)
#FRAME_COLOR 1 ; Rahmenfarbe der Dialogelemente
; Default: 1 (schwarz)
#3D_LCOLOR 0 ; Helle 3D-Farbe ("beleuchtet")
; Default: 0 (wei<65>)
#3D_DCOLOR 9 ; Dunkle 3D-Farbe ("im Schatten")
; Default: 9 (dunkelgrau)
#UL_COLOR 2 ; Farbe der Hotkey-Unterstreichung
; Default: 2 (rot)
#SLIDER_PATTERN 4 ; F<>llmuster der Slider (0..6, steigende Schw<68>rzung)
; Default: 1
#POPUP_ENTRIES 100 ; Anzahl der Eintr<74>ge in den Popups (4..x, je nach
; Bildschirmaufl<66>sung und Zeichensatzgr<67><72>e). Nach die-
; sem Wert richtet sich auch die Gr<47><72>e eines Fontsets.
; Default: 8
; FONTKENNZEICHNUNG
; =================
;
; Mit den folgenden Parametern k<>nnen die Fonts mit einem Zeichen
; gekennzeichnet werden.
; Sie k<>nnen als Werte nat<61>rliche Zahlen von 1..255 oder ein ASCII-Zeichen
; (eingeschlossen in Hochkommas) annehmen und sind nur dann sinnvoll, wenn
; #FONT_PREVIEW ausgeschaltet ist.
; Eine weitere M<>glichkeit besteht in der Kennzeichnung durch unterschied-
; liche Farben.
; Standardm<64><6D>ig ist keine Markierung eingestellt.
;
#BITMAP_MARKER ' ' ; Markierung der Bitmap-Fonts
#SPD_MARKER 248 ; Markierung der Speedo-Fonts
#TTF_MARKER 249 ; Markierung der TrueType-Fonts
#PFB_MARKER 249 ; Markierung der Type1-Fonts
#CFN_MARKER 249 ; Markierung der Calamus-Fonts
#MONO_MARKER '=' ; Markierung der <20>quidistanten Fonts
; Diese Markierung <20>berschreibt eine bereits gesetzte
#PROP_MARKER '~' ; Markierung der proportionalen Fonts
; Diese Markierung <20>berschreibt eine bereits gesetzte
#BITMAP_COLOR 1 ; Farbe der Bitmap-Fonts
#SPD_COLOR 2 ; Farbe der Speedo-Fonts
#TTF_COLOR 3 ; Farbe der TrueType-Fonts
#PFB_COLOR 1 ; Farbe der Type1-Fonts
#CFN_COLOR 1 ; Farbe der Calamus-Fonts
#MONO_COLOR 1 ; Farbe der <20>quidistanten Fonts
; Diese Farbe <20>berschreibt eine bereits gesetzte
#PROP_COLOR 1 ; Farbe der proportionalen Fonts
; Diese Farbe <20>berschreibt eine bereits gesetzte
; FUNKTIONSSTEUERUNG
; ==================
;
; Die n<>chsten Schalter k<>nnen folgende Werte annehmen:
;
; - ON Aktiv
; - OFF Inaktiv
; - EQ Unver<65>ndert, d.h. so, wie von der aufrufenden Applikation vorgegeben
; (kann auch weggelassen werden). Dieser Wert ist bei allen Schaltern
; defaultm<74><6D>ig eingestellt.
;
; Die hier angegebenen Schalterstellungen <20>BERSCHREIBEN die von der aufrufen-
; den Applikation <20>bergebenen!
; ZEICHENSATZ-EINSTELLUNGEN
; -------------------------
;
; Angaben dar<61>ber, welche Zeichens<6E>tze zur Auswahl angeboten werden
;
#SYSTEM EQ ; Systemzeichensatz zugelassen?
#MONO EQ ; <20>quidistante Zeichens<6E>tze zugelassen?
#PROP EQ ; Proportionale Zeichens<6E>tze zugelassen?
#BITMAP EQ ; Bitmapfonts zugelassen?
#SPD EQ ; Speedo-Fonts zugelassen?
#TTF EQ ; TrueType-Fonts zugelassen?
#PFB EQ ; Type1-Fonts zugelassen?
#CFN EQ ; Calamus-Fonts zugelassen?
#VECTOR EQ ; Vektorfonts zugelassen? Wenn diese Option ver<65>ndert
wird, werden die mit SPEEDO, TTF, PFB oder CFN
gemachten Einstellungen <20>berschrieben.
; STANDARD-PARAMETER
; ------------------
;
; Funktionen im Parameterbereich "Standard"
;
#NO_SIZE OFF ; Gr<47><72>e nicht <20>nderbar?
#DFLT_SIZE ON ; Sondergr<67><72>e "Default"?
#NO_COLOR OFF ; Farbe nicht <20>nderbar?
; EFFEKTE
; -------
;
; Funktionen im Parameterbereich "Effekte"
;
#NO_ATTR OFF ; Attribute nicht <20>nderbar?
#INV_STYLE ON ; Sonderattribut "Invers"?
; SPEZIAL
; -------
;
; Funktionen im Parameterbereich "Spezial"
;
#NO_ALIGN EQ ; Alignment nicht <20>nderbar?
#NO_ROTATION EQ ; Rotation nicht <20>nderbar?
; VEKTOR-PARAMETER
; ----------------
;
; Funktionen im Parameterbereich "Vektor"
;
#NO_WIDTH OFF ; Breite nicht <20>nderbar?
#NO_KERN OFF ; Kerning-Informationen nicht <20>nderbar?
#NO_SKEW OFF ; Neigung nicht <20>nderbar?

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,35 @@
Kurzanleitung zur HuGo!-Installation (c) Stefan Rogel @ LU
=======================================================================
***********************************************************************
* EINZELHEITEN ZUR INSTALLATION UND PARAMETRIERUNG *
* VON HuGo! SIND IM HYPERTEXT HUGO.HYP ERL<52>UTERT! *
***********************************************************************
Kopieren Sie HUGO.PRG und XFSL.OVL in den AUTO-Ordner des Boot-Lauf-
werks. Danach starten Sie den Rechner neu.
HuGo! installiert die Cookies UFSL und xFSL, sofern diese nicht schon
vorhanden sind. Ein evtl. schon vorhandener UFSL-Cookie wird nicht
<EFBFBD>berschrieben, es besteht also die M<>glichkeit, zus<75>tzlich zu HuGo!
einen reinen UFSL-Selektor zu verwenden, wenn dieser vor HuGo! instal-
liert wurde. Da HuGo! aber auch den UFSL-Aufruf unterst<73>tzt, sollte er
der einzige Fontselektor im AUTO-Ordner sein!
Wenn HuGo! vom Desktop aus gestartet wird, besteht per Abfrage die
M<EFBFBD>glichkeit, einen evtl. schon vorhandenen xFSL-Cookie zu <20>berschrei-
ben.
Es ist nicht zwingend n<>tig, da<64> sich das Overlay XFSL.OVL im selben
Verzeichnis wie die Shell HUGO.PRG befindet, da diese das Overlay
(wie auch alle anderen Dateien) nach folgender Priorit<69>t sucht:
1. Root-Verzeichnis des Boot-Laufwerkes
2. AUTO-Ordner des Boot-Laufwerkes
3. Pfade des Environmentes
4. Aktuelles Verzeichnis
Beim Aufruf im AUTO-Ordner gibt die Shell die Startmeldung des Over-
lays aus, sofern dieses gefunden werden kann.
Ansonsten sollte das Overlay XFSL.OVL in eines der o.g. Verzeichnisse
kopiert werden, damit der Fontselektor zur Verf<72>gung steht.

View File

@@ -0,0 +1,5 @@
Aaah... jetzt, ja: HuGo! '96 ist da! Trotz neuer "Konkurrenz" durch
MagiC 4 hat er noch lange nicht ausgedient. DER Fontselektor l<>uft
(hoffentlich) unter ALLEN TOSen (ab 1.00, MTOS, MagiC, Janus) in
ALLEN Aufl<66>sungen. Version 1.02 vom 1.1.96, (c) Stefan Rogel @ LU.
Neu: Erweiterter 3D-Look, Font-Preview im Popup u.v.m.

View File

@@ -0,0 +1,12 @@
; Standard-Monochrom-Konfiguration
; Um diese Konfiguration zu vewende, mu<6D> die Datei in HUGO.CNF
; umbenannt und in das Overlay-Verzeichnis kopiert werden.
#SWAP_BUTTONS ON ; OK nach rechts
#CENTER_DIALOG OFF ; Dialog beim Mauszeiger
#POPUP_ENTRIES 16 ; 16 Popup-Eintr<74>ge
#SPD_MARKER 248 ; Speedo-Font-Markierung
#TTF_MARKER 249 ; TrueType-Font-Markierung
#PFB_MARKER 249 ; Type1-Font-Markierung
#MONO_MARKER '=' ; Markierung der unproportionalen Fonts
#FONTS_BY_KIND ON ; Fonts nach Art sortieren

View File

@@ -0,0 +1,18 @@
; H<><48>lich poppige 3D-Konfiguration
; Um diese Konfiguration zu vewende, mu<6D> die Datei in HUGO.CNF
; umbenannt und in das Overlay-Verzeichnis kopiert werden.
#SWAP_BUTTONS ON ; OK nach rechts
#CENTER_DIALOG OFF ; Dialog beim Mauszeiger
#POPUP_ENTRIES 16 ; 16 Popup-Eintr<74>ge
#BITMAP_COLOR 0 ; Bitmap-Fonts wei<65>
#SPD_COLOR 6 ; Speedo-Fonts gelb
#TTF_COLOR 4 ; TrueType-Fonts blau
#PFB_COLOR 15 ; Type1-Fonts dunkelmagenta
#FONTS_BY_KIND ON ; Fonts nach Art sortieren
#FONT_PREVIEW ON ; Zeichensatzvorschau im Font-Popup
#BACK_COLOR 7 ; Hintergrund magenta
#3D_LCOLOR 6 ; Helle 3D-Farbe gelb
#3D_DCOLOR 15 ; Dunkle 3D-Farbe dunkelmagenta
#INTERIOR_COLOR 6 ; Hintergrundfarbe gelb
#3DENTRIES ON ; Popupeintr<74>ge im 3D-Look

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1,44 @@
[Extensions]
.TAD=$ARTWORX
.CWG=$ARTWORX
.GEM=$ARTWORX
.CVG=$ARTWORX
.AI=$ARTWORX
.SDB=$STELLA
.TXL=$TEXEL
.DIF=$TEXEL
.CSV=$TEXEL
.XLS=$TEXEL
.HTM=$CAB
.TXT=$QED
.ASC=$QED
.IMG=$PAPILLON
.TIF=$PAPILLON
.JPG=$PAPILLON
.GIF=$PAPILLON
[Objects]
.CWG=ArtWorx-Dokument
.CVG=Calamus-Dokument
.GEM=GEM Metafile
.AI=Adobe Illustrator-Dokument
.TAD=Texel-Diagramm
[Types]
SS=$TEXEL
VG=$ARTWORX
RG=$PAPILLON
GG=$STELLA
ED=$QED
[Applications]
TEXEL=C:\Programm\PP\PRGS\texel.app
STELLA=C:\Programm\STELLA\STELLA.APP
ARTWORX=C:\Programm\ArtWorx\ARTWORX.PRG
IDEALIST=C:\Tools\IdeaList\IDEALIST.PRG
CAB=C:\Programm\WWW\CAB\CAB.APP
QED=C:\Diverses\qed\qed.app
PAPILLON=C:\Programm\PAPILLON\PAPILLON.PRG
[Manager]
;NoCrashChecking

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,27 @@
Die folgenden Programme wurden von den Autoren freundlicherweise
f<EFBFBD>r das Texel-Paket zur Verf<72>gung gestellt. Die Rechte an allen
Dateien dieser Programme liegen beim jeweiligen Autor.
In den Verzeichnissen befinden sich (Installations-)Anleitungen
zu den Programmen.
Bitte beachten Sie, ob und wie Sie die Programme nutzen d<>rfen!
Beim ST-Guide z.B. erwartet der Autor bei Nutzung fairerweise
eine angemessene Spende!
HUGO 1.02 (Freeware) von Stefan Rogel
ICFS 1.00 (Freeware) von Dirk Haun
ICFS-CPX (Freeware) von John McLoud
SENF (Freeware) von Thomas Binder
ST-GUIDE 14 (Fairware) von Holger Weets
OLGA 1.30 (Freeware) von Thomas Much
CALLXFSL (Freeware) von Thomas Much
Wenn ein xFSL4-Fontselektor (HuGo, Calvino) bereits installiert ist,
kann er mit diesem Programm zu einem unmodalen Fontselektor gemacht
werden - CALLXFSL mu<6D> dazu unter MagiC(Mac) oder MultiTOS einfach
nur parallel zu den anderen Applikationen gestartet werden.
Wenn Sie z.B. in HuGo nun das "ID"-Feld <20>ber dem Textbeispiel an-
klicken und die Maus bei gedr<64>ckter Maustaste bewegen, sehen Sie
ein Rechteck am Mauszeiger "kleben". Bringen Sie dies <20>ber ein Texel-
Rechenblatt und lassen die Maustaste los, so wird im aktuellen Block
der in HuGo ausgew<65>hlte Font eingetragen.