home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 2 / crawlyvol2.bin / apps / math / calc150 / readme.txt < prev   
Text File  |  1992-06-04  |  27KB  |  568 lines

  1. ===========================================================================
  2. Calculator - Rechner - Version 1.50                         22. Januar 1992
  3. ===========================================================================
  4.  
  5.                     (c) 1991, 1992 by Martin Gaeckler
  6.  
  7. +-------------------------------------------------------------------------+
  8. |    Dies ist die letzte Version, die den Status "Public Domain" hat.     |
  9. +-------------------------------------------------------------------------+
  10.  
  11. Diese Datei entaelt Hinweise  sowohl fuer die  Windows-Version als auch die
  12. GEM-Version (Atari ST). Wenn Sie diese Datei auf einem MS-DOS-Rechner lesen,
  13. benutzen Sie bitte den Notizblock von MS-Windows oder einen anderen Editor,
  14. der den ANSI-Zeichensatz unterstuetzt.
  15.  
  16. Der  Rechner ist die  Simulation eines wissenschaftlichen  Taschenrechners.
  17. Die  Benutzung  ist kostenlos.  Es darf frei kopiert werden,  der  Vertrieb
  18. ueber einen Public Domain Versand ist gestattet, es musz aber ein Belgexem-
  19. plar an den Autor geschickt werden.
  20.  
  21. Wenn Sie  immer ueber neueste  Entwicklungen informiert  werden wollen,  so
  22. senden Sie eine kurze Mitteilung an den Autor. Sie werden dann in einer Da-
  23. tenbank gespeichert und bei Freigabe einer neuen Version informiert.  Diese
  24. Registrierung ist kostenlos, nachfolgende Versionen werden jedoch nur gegen
  25. Zahlung einer Lizenzgebuehr verschickt.
  26.  
  27. Geplant sind u.a. folgende Features:
  28. - Einfache Programmierbarkeit
  29. - Complexe Zahlen
  30. - Funktionsgraphen
  31. - Strukturierte Programmiersprache
  32.  
  33. Anschrift: Martin Gaeckler, Ammerseestr. 16, 8027 Neuried
  34. E-Mail:    Martin Gaeckler@M im Maus-Net.
  35.  
  36. ********************************* Achtung *********************************
  37. *                                                                         *
  38. * Dies ist keine ausfuehrliche  Bedienungsanleitung. Es wird davon ausge- *
  39. * gangen, dasz der Benutzer mit Taschenrechnern umgehen kann.             *
  40. *                                                                         *
  41. ***************************************************************************
  42.  
  43.  
  44. Inhalt der Archive
  45. ==================
  46.  
  47. Atari ST (CALC150.LZH):
  48. -----------------------
  49. CALC.PRG          Das ausfuehrbare Programm.
  50. CALC881.PRG       Spezial-Version fuer den Atari TT
  51. CALC.RSC          Die Resourcedefinition
  52. README.TXT        Diese Datei
  53.  
  54. Windows (CALC150.ARJ):
  55. ----------------------
  56. CALC.EXE          Das ausfuehrbare Programm.
  57. README.TXT        Diese Datei.
  58.  
  59.  
  60. Installation und Starten des Programmes
  61. =======================================
  62.  
  63. Atari ST:
  64. ---------
  65. Kopieren  Sie die Dateien  CALC.PRG und  CALC.RSC in ein Verzeichniss Ihrer
  66. Wahl.  Jetzt koennen Sie den  Taschenrechner wie gewohnt durch  Doppelklick
  67. auf das Icon von CALC.PRG starten.
  68. Das Programm koennen Sie aber ebenso als Accessory verwenden. Hierzu kopie-
  69. ren Sie die Dateien  CALC.PRG und CALC.RSC in das  Wurzelverzeichniss Ihres
  70. Startlaufwerks  (bzw. Startdiskette) und  benennen  die Datei  CALC.PRG  in
  71. CALC.ACC um.  Nach einem Neustart Ihres Rechners erscheint im Deskmenue ein
  72. neuer Menuepunkt "Calculator".
  73.  
  74. Windows:
  75. --------
  76. Kopieren  Sie die Datei CALC.EXE  in ein Verzeichniss Ihrer Wahl.  Beachten
  77. Sie aber dabei, dasz sich im  Windows-Verzeichniss bereits ein Taschenrech-
  78. ner  mit  dem gleichen Namen  befindet.  Sie koennen diesen  jedoch getrost
  79. ueberschreiben, da der neue besser ist.
  80. Sie  koennen nun den  Taschenrechner im Programm  Manager installieren oder
  81. vom Datei Manager aus  ganz normal starten.  Das Ausfuehrbare Programm ent-
  82. haelt 2 Icons:  Eine verkleinerte  Version der Dialogbox und  einen kleinen
  83. Abakus. Welchen der Icons Sie im  Program Manager installieren bleibt Ihnen
  84. ueberlassen.
  85.  
  86.  
  87. Profile
  88. =======
  89.  
  90. Der  Taschenrechner merkt  sich automatisch,  das aktuelle  Panel und deren
  91. Position. Hier folgenden grundsaetzliche Hinweise:
  92.  
  93. Atari ST:
  94. ---------
  95. Der Taschenrechner  merkt sich die Information in der Datei CALC.INF. Diese
  96. Datei ist eine Binaerdatei und kann nicht gelesen werden. Die Datei wird im
  97. aktuellen Verzeichniss erwartet,  falls sie nicht gefunden wird, so legt er
  98. sie automatisch im Wurzelverzeichniss des Laufwerks C: an. Das Profile wird
  99. immer dann gesichert, wenn  das Panel gewechselt  oder geschlossen wird und
  100. wenn  die aktuelle  Hauptapplikation terminiert.  Die Datei wird verworfen,
  101. wenn die  eingestellte Auflösung eine  andere ist, als  die Auflösung,  die
  102. beim letzten Programmlauf verwendet wurde.
  103.  
  104. Windows:
  105. --------
  106. Die Informationen  werden in der Datei WIN.INI im  Abschnitt [WinCalc]. Die
  107. Datei wird aktualisiert, wenn  das Panel  gewechselt oder  geschlossen wird
  108. und wenn Windows beendet wird.
  109.  
  110.  
  111. Menue-Referenz
  112. ==============
  113.  
  114. Edit/Copy:              Kopiert den Inhalt der Anzeige auf das Clipboard.
  115.     /Paste:             Laedt  das Clipboard. Befindet  sich am  Anfang des
  116.                         Textes eine  Flieszkommazahl, so wird diese zur An-
  117.                         zeige gebracht. Ansonsten wird der Inhalt des Clip-
  118.                         board ignoriert.
  119.     /Quit:              Schlieszt das Fenster des Taschenrechners und been-
  120.                         det das Programm  (letzteres gilt  auf dem Atari ST
  121.                         nur dann, wenn es nicht  als Accessory geladen wur-
  122.                         de).
  123. Panel/Large:            Es wird das grosze Fenster benutzt.
  124.      /Scientific:       Es wird der wissenschaftiche  Rechner benutzt, die-
  125.                         ser kennt nur Flieszkommazahlen.
  126.      /Computer:         Es wird das  Panel fuer  Computeranwender  benutzt.
  127.                         Dieser  kennt alle Datentypen und nur die wichtigs-
  128.                         ten Operatoren bzw. Funktionen.
  129.      /Small:            Es  wird das  kleinste  Rechner  verwendet,  dieser
  130.                         kennt  nur  die   wichtigsten  Operatoren  und  die
  131.                         Flieszkommazahlen.
  132. Calc/About... bzw.
  133. Info/About Calculator:  Zeigt die  Copyrightnotiz  und  Versionsnummer  des
  134.                         Taschenrechners.
  135.  
  136. Atari ST:
  137. ---------
  138. Das Calc-Menue enthaelt auszerdem die Accessories,  falls der Rechner nicht
  139. selbst als Accessory geladen wurde.
  140.  
  141. Ist der Rechner  als Accessory geladen,  musz  das Menu durch Mausklick auf
  142. einen der Titeleintraege eingeschaltet werden. Dann verhaelt es sich genau-
  143. so wie das Standard-GEM-Menu.
  144.  
  145. Das Clipboard wird  automatisch vom  Taschenrechner installiert, falls dies
  146. nicht  schon eine  andere Applikation  getan hat.  In diesem Falle wird das
  147. Verzechniss  C:\CLIPBRD verwendet.  Es wird jedoch nicht  automatisch ange-
  148. legt.
  149.  
  150.  
  151. Bedeutung der Buttons und deren Tastauraequivalente
  152. ===================================================
  153.  
  154. Hinweis:
  155. Nicht alle Buttons befinden sich auf allen Panels
  156.  
  157. -------------+--------------+-----------------------------------------------
  158. Button *)    | Tastatur *)  | Bedeutung
  159. -------------+--------------+----------------------------------------------
  160.                       Tasten zur Eingabe der Zahlen
  161. -------------+--------------+----------------------------------------------
  162. [0]...[9]    | 0 ... 9      | Dezimalziffern
  163. [A]...[F]    | a/A ... f/F  | Hexziffern
  164. [.]          | .            | Dezimalpunkt
  165. [Exp]        | Tab          | Exponentialtaste, wenn noch keine Ziffer ein-
  166.              |              | gegeben wurde, ergibt sie den Wert von Pi.
  167. [±]([õ])     |              | Vorzeichentaste (Negation)
  168. [°'"]([ãœ"]) |              | Winkeltaste   Mit dieser  Taste  koennen  Sie
  169.              |              | Winkelgroeszen in  Grad-Minuten-Sekunden ein-
  170.              |              | geben.  Zusammen mit der Inverstaste wird die
  171.              |              | angezeigte Dezimalzahl in Grad-Minuten-Sekun-
  172.              |              | den umgerechnet.
  173. -------------+--------------+----------------------------------------------
  174.                                Operatoren
  175. -------------+--------------+----------------------------------------------
  176. [BK]         |              | Binomialkoeffizient (x ueber y) =
  177.              |              | x * (x-1) * (x-2) * ... * (x-y+1)
  178.              |              | ---------------------------------
  179.              |              |              y!
  180.              |              | fuer x reel und y natuerliche Zahl auszer 0
  181.              |              | fuer y = 0 gilt x ueber y = 1
  182.              |              | -> nur im "Scientific panel" verfuegbar
  183. [⇧]([pow])   |              | Potenzoperator (x hoch y)
  184. [⇩]([rot])   |              | Wurzeloperator (y-te Wurzel aus x)
  185. [mod]        | %            | modulo operator
  186. [*]          | *            | Produktoperator
  187. [÷]([≈])     | /            | Divisionsoperator
  188. [+]          | +            | Summenoperator
  189. [-]          | -            | Differenzoperator
  190. [and]        | &            | und (binaer)
  191. [xor]        | ^ (#)        | exclusive oder (binaer)
  192. [or]         | |            | inclusive oder (binaer)
  193. -------------+--------------+----------------------------------------------
  194.                                 Funtionen
  195. -------------+--------------+----------------------------------------------
  196. [Inv]        |              | Aktivierung der Umkehrfunktionen
  197. [hyp]        |              | Aktivierung der Hyperbelfunktionen
  198. [sin]        |              | sinus
  199. [cos]        |              | cosinus
  200. [tan]        |              | tangens
  201. [log]        |              | dekadischer logarithmus
  202. [ln]         |              | natuerlicher logarithmus
  203. [1/x]        |              | Reziprokwert
  204. [√]([sqr])   |              | Quadratwurzel
  205. [abs]        |              | Betragsfunktion
  206. [not]        | ~            | nicht (binaer)
  207. [int]        |              | ganzzahliger Anteil
  208. [frc]        |              | Nachkommastellen
  209. [x!]         | !            | Fakultaet
  210. -------------+--------------+----------------------------------------------
  211.                                Betriebsmodi
  212. -------------+--------------+----------------------------------------------
  213. [Rnd]        |              | Festlegung der signifikanten Ziffern
  214. [Fix]        |              | Festlegung der Nachkommastellen
  215. [Deg]        |              | Winkel werden in Graden gemessen
  216. [Rad]        |              | Winkel werden in Bogenmasz gemessen
  217. [Gra]        |              | Winkel werden in GON (Neugrad) gemessen
  218. [Hex]        |              | Hexadezimalsystem
  219. [Dec]        |              | Dezimalsystem
  220. [Oct]        |              | Oktalsystem
  221. [Bin]        |              | Dualsystem
  222. [Flt]        |              | Flieszkommazahlen, ein eingegebener Term wird
  223.              |              | geloescht, wenn der Datentyp gewechselt wird.
  224.              |              | Flieszkommazahlen  werden  grundsaetzlich  im
  225.              |              | Dezimalsystem angezeigt.
  226. [Lng]        |              | Langwortzahlen  mit der Inv-Taste vorzeichen-
  227.              |              | los,  ein eingegebener  Term wird  geloescht,
  228.              |              | wenn der Datentyp  gewechselt wird.  Long ist
  229.              |              | der  Standarddatentyp,  wenn das Zahlensystem
  230.              |              | vom Dezimalsystem zu einem anderen Zahlensys-
  231.              |              | tem gewechselt und  vorher der Datentyp Float
  232.              |              | eingestellt war.
  233. [Wrd]        |              | Wortzahlen  mit der Inv-Taste  vorzeichenlos,
  234.              |              | ein  eingegebener Term  wird geloescht,  wenn
  235.              |              | der Datentyp gewechselt wird.
  236. [Byt]        |              | Bytezahlen  mit der  Inv-Taste vorzeichenlos,
  237.              |              | ein  eingegebener  Term wird geloescht,  wenn
  238.              |              | der Datentyp gewechselt wird.
  239. [LR]         |              | Lineare Regression:         y = k + m * x
  240. [LNR]        |              | Logarithmische Regression:  y = k + m * ln x
  241. [EXR]        |              | Exponentielle Regression:   y = k * e^(m*x)
  242. [PR]         |              | Leistungsregression:        y = k * x^m
  243. -------------+--------------+----------------------------------------------
  244.                                 Speicher
  245. -------------+--------------+----------------------------------------------
  246. [Min]        |              | aktueller Operand in das M-Register uebertra-
  247.              |              | gen
  248. [MR]         |              | Inhalt des M-Register anzeigen
  249. [M+]         |              | aktuellen Operand zum M-Register addieren
  250. [M-]         |              | aktuellen Operand vom M-Register subtrahieren
  251. [X/Y]        |              | Die aktuelle Anzeige wird mit dem letzten
  252.              |              | Operanden vertauscht.
  253. [X/M]        |              | Die aktuelle Anzeige wird mit dem Speicher
  254.              |              | vertauscht.
  255. -------------+--------------+----------------------------------------------
  256.                           Statistik & Regression
  257. -------------+--------------+----------------------------------------------
  258. [Xin]        | x            | Statistikeingabetaste. Soll ein Wert mehrmals
  259.              |              | eingegeben  werden,  so kann  dies durch  die
  260.              |              | Taste [*] erreicht  werden. Beispiel der Wert
  261.              |              | 5 soll 20 mal  eingegeben werden, dazu druek-
  262.              |              | ken Sie die  Tasten [2][0] [*] [5] [Xin]. Zu-
  263.              |              | sammen mit [Inv] koennen  einzelne (oder auch
  264.              |              | mehrere) wieder geloescht werden.
  265. [Yin]        | y            | Regressionseingabetaste. Wird nach dem ersten
  266.              |              | X-Wert ein Y-Wert eingegeben, so schaltet der
  267.              |              | Rechner  automatisch auf  Regression um.  Bei
  268.              |              | der Eingabe der  Zahlenpaare muß der  Regres-
  269.              |              | sionstyp noch nicht bestimmt werden.
  270. [n]          | n            | Anzahl der Eingabewerte
  271. [Σx]([Ex])   |              | Summe der X-Werte
  272. [Σx²]([ExØ]) |              | Summe der Quadrate von x
  273. [Σy]([Ey])   |              | Summe der Y-Werte
  274. [Σy²]([EyØ]) |              | Summe der Quadrate von y
  275. [Σxy]([EyØ]) |              | Summe der Produkte von x * y
  276. [ø]([x])     |              | Arithmetisches Mittel ueber alle x
  277. [σn]([dn])   |              | Grundgesamtheits-Standardabweichung
  278. [σn1]([dn1]) |              | Stichproben-Standardabweichung
  279. [k]          |              | Konstanter Wert k der Regressionsgleichung
  280. [m]          |              | Regressionskoeffizient m der Regressionsglei-
  281.              |              | chung
  282. [r]          |              | Korrleationskoeffizient der  Regressionsglei-
  283.              |              | chung
  284. [BST]        |              | Es  wird die  Regressionsgleichung  bestimmt,
  285.              |              | die am besten zu  den vorliegenden Eingabeda-
  286.              |              | ten  paszt.  Der entsprechende  Regressiontyp
  287.              |              | wird  eingestellt  und  der Grad  (in %)  der
  288.              |              | Uebereinstimmung angezeigt.
  289. [X]          |              | X-Wert der Regressionsgleichung Y gegebenen
  290. [Y]          |              | Y-Wert der Regressionsgleichung X gegebenen
  291. -------------+--------------+----------------------------------------------
  292.              |              | Sonstige Tasten
  293. -------------+--------------+----------------------------------------------
  294. [[(]         | (            | Klammer auf
  295. [)]]         | )            | Klammer zu
  296. [=]          | Enter/Return | Ergebnisstaste
  297. [C]          | Backspace    | Loeschen des aktuellen Operanden
  298. [ AC ]       | Esc          | Kompletten Term loeschen, Fehlerbedingung zu-
  299.              |              | ruecksetzen.  Zusammen mit der Inv-Taste wird
  300.              |              | auch der Statistikspeicher geloescht.
  301. [Ran]        |              | Zufallszahlen zwischen 0 incl. und 1 excl.
  302. [Eng]        |              | Diese Taste hat zur Zeit keine Bedeutung
  303. -------------+--------------+-----------------------------------------------
  304.  
  305. *) In  Klammern die  Bezeichnung der  Windows-Version, falls diese sich von
  306.    der Atari-Version unterscheidet.
  307.  
  308. Folgende  Funktionen haben KEINE Wirkung,  wenn ein Integer-Datentyp (Byte,
  309. U-Byte, Word, U-Word, Long, U-Long ) eingestellt ist:
  310.  
  311. [sin], [cos], [tan], [Ran], [log], [ln], [1/x], [√]([sqr]), [int], [frc],
  312. [x!],  [Xin], [Yin], [n],   [Σx]([Ex]),  [Σx²]([ExØ]),      [Σy]([Ey]),
  313. [Σy²]([EyØ]), [Σxy]([EyØ]), [ø]([x]),    [σn]([dn]),        [σn1]([dn1]),
  314. [k],   [m],   [r],   [X],   [Y],  [Rnd], [Fix], [°'"]([ãœ"])
  315.  
  316. Anmerkung: Die Wirkung von  [Rnd] und [Fix]  zeigt sich  erst dann (wieder)
  317.            auf der Anzeige, wenn wieder der Float-Datentyp eingestellt ist.
  318.  
  319. Folgende Funktion hat KEINE Wirkung,  wenn der Flieszkomma-Datentyp (Float)
  320. eingestellt ist:
  321.  
  322. [not]
  323.  
  324. Folgende Operatoren erzeugen einen Fehler, wenn ein Integer-Datentyp (Byte,
  325. U-Byte, Word, U-Word, Long, U-Long ) eingestellt ist:
  326.  
  327. [BK], [⇧] ([pow]), [⇩] ([rot])
  328.  
  329. Folgende  Operatoren erzeugen  einen Fehler, wenn  der Flieszkomma-Datentyp
  330. (Float) eingestellt ist:
  331.  
  332. [mod], [and], [xor], [or]
  333.  
  334. Die Anwendung dieser  Operatoren und  Funktionen ist aber  in den genannten
  335. Faellen nicht moeglich.
  336.  
  337.  
  338. Konstantenrechnung
  339. ==================
  340.  
  341. Wuenschen sie  den linken Operanden  einer Operation mehrfach zu verwenden,
  342. so brauchen Sie  nur den Operator  2 mal zu druecken. Anschlieszend muessen
  343. nur noch die rechten  Operanden eingegeben und  jeweils die  Ergebnisstaste
  344. betaetigt werden.
  345.  
  346.  
  347. Warnungen
  348. =========
  349.  
  350. () Overflow         Die Schachtelungstiefe fuer die  Klammern wurde  ueber-
  351.                     schritten.
  352. Out of range        Die eingegebene Zahl ist  ausserhalb des gueltigen Zah-
  353.                     lenbereichs  und kann deshalb  nicht weiter verarbeitet
  354.                     werden.
  355.  
  356. Warnungen koennen  einfach durch Betaetigung  der Taste [C] behoben werden.
  357. Der bisher eingebene Term kann weiter benutzt werden.
  358.  
  359.  
  360. Fehlermeldungen des Rechners
  361. ============================
  362.  
  363. Buffer empty        Der Statistik- bzw.  Regressionsspeicher enthaelt keine
  364.                     Daten
  365. Division by zero    Division durch 0
  366. General error       Allgemeiner Fehler (nicht naeher spezifiziert)
  367. Horizontal line     Der Graph der Regressionsgleichung ist eine horizontale
  368.                     Linie. Es gibt deshalb keine Umkehrfunktion.
  369. Illegal argument    Das Argument einer Funktion ist nicht erlaubt
  370. Illegal operand     Einer der Operanden eines Operators ist nicht erlaubt
  371. Illegal operator    Der  Operator ist mit  dem eingestellten Datentyp nicht
  372.                     anwendbar.
  373. Inexact result      Das Ergebnis einer Funktion waere zu ungenau.
  374. +Inf/-Inf           Das  Ergebnis einer  Berechnung ist zu  grosz (oder un-
  375.                     endlich) um dargestellt werden zu koennen.
  376. Nan                 Das Ergebnis einer Berechnung ist nicht definiert.
  377. No operand expected Ein Operand ist in diesem Zusammenhang nicht erlaubt.
  378. No regression data  Sie haben versucht eine  Regressionsberechnung durchzu-
  379.                     fuehren, obwohl keine Regressionsdaten vorliegen
  380. No statistic data   Sie haben versucht eine Statistikfunktion auszufuehren,
  381.                     obwohl keine Statistikdaten eingegeben wurden.
  382. Stack overflow      Der interne Speicherbereich fuer Zwischenergebnisse ist
  383.                     voll.  Dieser Fehler darf  nie auftreten.  Bitte teilen
  384.                     sie dem Autor die Umstaende mit,  wie sie diesen Fehler
  385.                     erzeugt haben.
  386. Too few regression data
  387.                     Sie haben versucht eine  Regressionsberechnung durchzu-
  388.                     fuehren, obwohl zu wenige Regressionsdaten vorliegen.
  389. Too few statistic data
  390.                     Sie haben versucht eine Statistikfunktion auszufuehren,
  391.                     obwohl zu wenig Statistikdaten eingegeben wurden.
  392. Too many values     Sie haben  versucht mehr  Eingabedaten zu  löschen  als
  393.                     vorhanden sind
  394. X not expected      Sie  haben einen  X-Wert eingegeben,  obwohl das letzte
  395.                     Zahlenpaar noch nicht vollstaendig ist.
  396. Y not expected      Sie  haben einen  Y-Wert eingegeben,  obwohl das letzte
  397.                     Zahlenpaar bereits vollstaendig ist.
  398. Y missing           Sie haben versucht eine  Regressionsberechnung durchzu-
  399.                     fuehren, obwohl das letzte  Zahlenpaar noch nicht voll-
  400.                     staendig ist.
  401.  
  402. Im Falle  eines Fehlers  wird nur noch [ AC ] vom  Rechner akzeptiert.  Der
  403. bisher eingegebene Term geht dabei verloren.
  404.  
  405.  
  406. Technisches
  407. ===========
  408.  
  409. Der Rechner ist komplett in C geschrieben. Das Modul, dasz den eigentlichen
  410. Rechner darstellt (fuer alle  Systeme) entaelt 2253 Zeilen.  Das Modul fuer
  411. die Panels unter GEM enthaelt 1197 Zeilen fuer Windows 572 Zeilen.
  412.  
  413. Als Entwicklungssystem  wurde auf dem Atari ST Turbo C Version 2.0, auf dem
  414. DOS-Rechner  Borland C++ 2.0 verwendet.  Geplant ist auszerdem eine Version
  415. unter UNIX.  Das Rechnermodul wurde bereits erfolgreich mit dem MIPS-Compi-
  416. ler uebersetzt.
  417.  
  418. Die Flieszkommazahlen  unterliegen in ihrer Beschraenkung, dem des Entwick-
  419. lungssystems.  Borland C++ kennt leider nur 8-Byte-Double-Variablen.  Daher
  420. ist  der moegliche  Zahlenbereich  beschraenkt  auf +/-1e+/-300  bei ca. 15
  421. gueltigen Stellen,  waehrend das Atari  Entwicklunssystem etwa +/-1e+/-4000
  422. bei ca. 19 gueltigen Stellen verkraftet.
  423.  
  424.  
  425. Nachrichtenprotokoll
  426. ====================
  427.  
  428. Der folgende Abschnitt ist nur fuer Softwareentwickler interessant. Als nur
  429. Anwender kann man sofort aufhoeren zu lesen.
  430.  
  431. Der Taschenrechner kann  auch Nachrichten einer  Hauptapplikation empfangen
  432. und  Antworten  zurueckschicken.  Es gibt 2 Nachrichten zum  Rechner und  1
  433. Antwort zur Hauptapplikation.
  434.  
  435. - Restart calculator (zum Rechner)
  436.  
  437.   Der Taschenrechner erthaelt folgende Nutzdaten:
  438.  
  439.   Nachrichtennummer:     Identifiziert die Nachricht
  440.   Absender:              Identifiziert  den  Empfaenger der  Antwort  des
  441.                          Rechners.
  442.   Value:                 Zahl fuer die Anzeige
  443.   Type:                  Datentyp (FLOAT, BYTE etc. )
  444.   Radix:                 Zahlensystem (2, 8, 10, 16)
  445.   Operator (nur Atari):  Der erste Operator
  446.  
  447.   Datentypen    0    Fließkommazahl
  448.                 1    Byte
  449.                 2    Byte (vorzeichenlos)
  450.                 3    Word
  451.                 4    Word (vorzeichenlos)
  452.                 5    Langwort
  453.                 6    Langwort (vorzeichenlos)
  454.  
  455.   Radix         2    Binaersystem
  456.                 8    Oktalsystem
  457.                10    Dezimalsystem
  458.                16    Hexadezimalsystem
  459.  
  460.   Operatoren   (alle erlaubten Tastenanschlaege des Taschenrechners)
  461.  
  462.   Der  Taschenrechner wird  neu initialisiert,  oeffnet sein  Fenster und
  463.   stellt die uebergebene Zahl in seinem Anzeigefeld dar. Auf dem Atari ST
  464.   wird der Operator angenommen,  so dasz nur noch mehr der zweite Operand
  465.   eingegeben  und die  Ergebnisstaste  betaetigt werden musz.  Sobald der
  466.   Benutzer  das Taschenrechner Fenster  wieder schlieszt (bei Windows ge-
  467.   nuegt es zu einer  anderen Applikation zu  schalten) wird  die  Antwort
  468.   wieder an die rufende Applikation zurueck geschickt.
  469.  
  470. - Get result (zum Rechner)
  471.  
  472.   Der Taschenrechner erthaelt folgende Nutzdaten:
  473.  
  474.   Nachrichtennummer:     Identifiziert die Nachricht
  475.   Absender:              Identifiziert  den  Empfaenger der  Antwort  des
  476.                          Rechners.
  477.  
  478.   Der Taschenrechner schickt  als Antwort sein  aktuelles Anzeigefeld mit
  479.   eingestelltem Radix und Datentyp.
  480.  
  481. - Answer (vom Rechner)
  482.  
  483.   Die Hauptapplikation erthaelt folgende Nutzdaten:
  484.  
  485.   Nachrichtennummer:     Identifiziert die Nachricht
  486.   Value:                 Zahl in der Anzeige
  487.   Type:                  Datentyp (siehe oben)
  488.   Radix:                 Zahlensystem (siehe oben)
  489.  
  490.   Als Antwort schickt der Rechner  die aktuelle Zahl in der Anzeige sowie
  491.   den eingestellten Datentyp und Radix.
  492.  
  493. Der  Mechanismus  fuer den  Nachrichtenaustausch ist  natuerlich auf beiden
  494. Systemen unterschiedlich.  Es folgt daher eine Beschreibung des Mechanismus
  495. fuer beide Systeme getrennt.
  496.  
  497. Atari ST:
  498. ---------
  499. Nachrichten werden mit der GEM-Funktion appl_write() zum Rechner geschickt.
  500. Die Antworten koennen mit evnt_mesag bzw. evnt_multi gelesen werden.
  501.  
  502. Der 8 Worte umfassende Buffer, der verschickt bzw. gelesen wird hat folgen-
  503. den Aufbau:
  504.  
  505. buffer[0]   : Nachrichtennummer
  506.               Restart calculator     1024
  507.               Get result             1025
  508.               Answer                 1026
  509. buffer[1]   : Absender, die Id erhalten Sie von appl_init()
  510. buffer[2]   : 0
  511. buffer[3]   : Hiword eines  Zeigers auf eine  Zeichenkette,  die eine  Zahl
  512.               darstellen musz
  513. buffer[4]   : Lowword des Zeigers
  514. buffer[5]   : Datentyp
  515. buffer[6]   : Radix
  516. buffer[7]   : Operator
  517.  
  518. Die  Eintraege  buffer[3] - buffer[7] muessen bei "Get result" nicht belegt
  519. sein.
  520.  
  521. Der Eintrag buffer[7] ist  bei "Answer" nicht definiert.  Der Zeiger  zeigt
  522. auf einen statischen String, der beim naechsten Aufruf ueberschrieben wird.
  523.  
  524. Windows:
  525. --------
  526. Nachrichten werden mit  der Windows-Funktion  PostAppMessage() zum  Rechner
  527. geschickt.  Die Antworten  koennen mit  GetMessage() bzw. mit dem  Fenster-
  528. Callback gelesen werden.  Dabei erhalten die  Parameter folgende Bedeutung:
  529.  
  530. message   : Nachrichtennummer
  531.             Restart calculator      WM_USER
  532.             Get result              WM_USER + 1
  533.             Answer                  WM_USER + 2
  534. wParam    : immer 0
  535. lParam    : Handle auf eine  Datenstruktur im  globalen Heap  des  Systems.
  536.             Diese Datenstruktur musz grundsaetzlich von der rufenden Appli-
  537.             kation angelegt werden und darf erst,  nach dem der Rechner die
  538.             Antwort geschickt hat, wieder freigegeben werden.
  539.  
  540. Die Datenstruktur hat (in der Programmiersprache C) folgenden Aufbau:
  541.  
  542. typedef struct
  543. {
  544.     int     callerType;        /* 0: Instance, 1: Window     */
  545.     union
  546.     {
  547.         HANDLE  instance;   /* instance handle for reply */
  548.         HWND    window;     /* window handle for reply   */
  549.     } id;                   /* who called calc           */
  550.     int    type,            /* data type 0 - 6           */
  551.            radix;           /* radix    2, 8, 10, 16     */
  552.     char   value[64];       /* which value to begin      */
  553. }CALCMSG;
  554.  
  555. callerType: Gibt an  welchen Typ  die Absender-Id der rufenden  Applikation
  556.             hat.  0 bedeutet  Instanzhandle,  d.h. die Anwort  wird an  die
  557.             Instanz der Applikation geschickt und kann mit GetMessage gele-
  558.             sen  werden.  1 bedeutet  Windowhandle,  d.h. die Antwort  wird
  559.             direkt  an ein Fenster  der rufenden  Applikation geschickt und
  560.             kann in der CallBack dieses Fensters ausgewertet werden.
  561. instance  : Das Instanzhandle des Absenders (bzw. Empfaengers der Antwort)
  562. window    : Das Windowhandle
  563. type      : Der Datentyp der uebergebenen Zahl
  564. radix     : Das Zahlensystem
  565. value     : Die Zeichenkette, die die Zahl enthaelt.
  566.  
  567. ===========================================================================
  568.